This commit is contained in:
47
node_modules/decap-cms-core/dist/decap-cms-core.js
generated
vendored
Normal file
47
node_modules/decap-cms-core/dist/decap-cms-core.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
110
node_modules/decap-cms-core/dist/decap-cms-core.js.LICENSE.txt
generated
vendored
Normal file
110
node_modules/decap-cms-core/dist/decap-cms-core.js.LICENSE.txt
generated
vendored
Normal file
@@ -0,0 +1,110 @@
|
||||
/*!
|
||||
Copyright (c) 2015 Jed Watson.
|
||||
Based on code that is Copyright 2013-2015, Facebook, Inc.
|
||||
All rights reserved.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Adapted from jQuery UI core
|
||||
*
|
||||
* http://jqueryui.com
|
||||
*
|
||||
* Copyright 2014 jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*
|
||||
* http://api.jqueryui.com/category/ui-core/
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Determine if an object is a Buffer
|
||||
*
|
||||
* @author Feross Aboukhadijeh <https://feross.org>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/*!
|
||||
* The buffer module from node.js, for the browser.
|
||||
*
|
||||
* @author Feross Aboukhadijeh <https://feross.org>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/*!
|
||||
* is-extendable <https://github.com/jonschlinkert/is-extendable>
|
||||
*
|
||||
* Copyright (c) 2015, Jon Schlinkert.
|
||||
* Licensed under the MIT License.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* repeat-string <https://github.com/jonschlinkert/repeat-string>
|
||||
*
|
||||
* Copyright (c) 2014-2015, Jon Schlinkert.
|
||||
* Licensed under the MIT License.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* strip-bom-string <https://github.com/jonschlinkert/strip-bom-string>
|
||||
*
|
||||
* Copyright (c) 2015, 2017, Jon Schlinkert.
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
|
||||
/*! https://mths.be/punycode v1.4.1 by @mathias */
|
||||
|
||||
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
||||
|
||||
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
||||
|
||||
/*! topbar 0.1.4, 2020-04-27
|
||||
* http://buunguyen.github.io/topbar
|
||||
* Copyright (c) 2019 Buu Nguyen
|
||||
* Licensed under the MIT License */
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-is.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @license React
|
||||
* react-jsx-runtime.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/**
|
||||
* what-input - A global utility for tracking the current input method (mouse, keyboard or touch).
|
||||
* @version v5.2.12
|
||||
* @link https://github.com/ten1seven/what-input
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/** @license React v16.13.1
|
||||
* react-is.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/** @license React v17.0.2
|
||||
* react-is.production.min.js
|
||||
*
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */
|
||||
1
node_modules/decap-cms-core/dist/decap-cms-core.js.map
generated
vendored
Normal file
1
node_modules/decap-cms-core/dist/decap-cms-core.js.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
112
node_modules/decap-cms-core/dist/esm/actions/auth.js
generated
vendored
Normal file
112
node_modules/decap-cms-core/dist/esm/actions/auth.js
generated
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.USE_OPEN_AUTHORING = exports.LOGOUT = exports.AUTH_SUCCESS = exports.AUTH_REQUEST_DONE = exports.AUTH_REQUEST = exports.AUTH_FAILURE = void 0;
|
||||
exports.authError = authError;
|
||||
exports.authenticate = authenticate;
|
||||
exports.authenticateUser = authenticateUser;
|
||||
exports.authenticating = authenticating;
|
||||
exports.doneAuthenticating = doneAuthenticating;
|
||||
exports.loginUser = loginUser;
|
||||
exports.logout = logout;
|
||||
exports.logoutUser = logoutUser;
|
||||
exports.useOpenAuthoring = useOpenAuthoring;
|
||||
var _backend = require("../backend");
|
||||
var _notifications = require("./notifications");
|
||||
const AUTH_REQUEST = exports.AUTH_REQUEST = 'AUTH_REQUEST';
|
||||
const AUTH_SUCCESS = exports.AUTH_SUCCESS = 'AUTH_SUCCESS';
|
||||
const AUTH_FAILURE = exports.AUTH_FAILURE = 'AUTH_FAILURE';
|
||||
const AUTH_REQUEST_DONE = exports.AUTH_REQUEST_DONE = 'AUTH_REQUEST_DONE';
|
||||
const USE_OPEN_AUTHORING = exports.USE_OPEN_AUTHORING = 'USE_OPEN_AUTHORING';
|
||||
const LOGOUT = exports.LOGOUT = 'LOGOUT';
|
||||
function authenticating() {
|
||||
return {
|
||||
type: AUTH_REQUEST
|
||||
};
|
||||
}
|
||||
function authenticate(userData) {
|
||||
return {
|
||||
type: AUTH_SUCCESS,
|
||||
payload: userData
|
||||
};
|
||||
}
|
||||
function authError(error) {
|
||||
return {
|
||||
type: AUTH_FAILURE,
|
||||
error: 'Failed to authenticate',
|
||||
payload: error
|
||||
};
|
||||
}
|
||||
function doneAuthenticating() {
|
||||
return {
|
||||
type: AUTH_REQUEST_DONE
|
||||
};
|
||||
}
|
||||
function useOpenAuthoring() {
|
||||
return {
|
||||
type: USE_OPEN_AUTHORING
|
||||
};
|
||||
}
|
||||
function logout() {
|
||||
return {
|
||||
type: LOGOUT
|
||||
};
|
||||
}
|
||||
|
||||
// Check if user data token is cached and is valid
|
||||
function authenticateUser() {
|
||||
return (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
dispatch(authenticating());
|
||||
return Promise.resolve(backend.currentUser()).then(user => {
|
||||
if (user) {
|
||||
if (user.useOpenAuthoring) {
|
||||
dispatch(useOpenAuthoring());
|
||||
}
|
||||
dispatch(authenticate(user));
|
||||
} else {
|
||||
dispatch(doneAuthenticating());
|
||||
}
|
||||
}).catch(error => {
|
||||
dispatch(authError(error));
|
||||
dispatch(logoutUser());
|
||||
});
|
||||
};
|
||||
}
|
||||
function loginUser(credentials) {
|
||||
return (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
dispatch(authenticating());
|
||||
return backend.authenticate(credentials).then(user => {
|
||||
if (user.useOpenAuthoring) {
|
||||
dispatch(useOpenAuthoring());
|
||||
}
|
||||
dispatch(authenticate(user));
|
||||
}).catch(error => {
|
||||
console.error(error);
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
details: error.message,
|
||||
key: 'ui.toast.onFailToAuth'
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
dispatch(authError(error));
|
||||
});
|
||||
};
|
||||
}
|
||||
function logoutUser() {
|
||||
return (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
Promise.resolve(backend.logout()).then(() => {
|
||||
dispatch(logout());
|
||||
dispatch((0, _notifications.clearNotifications)());
|
||||
});
|
||||
};
|
||||
}
|
||||
23
node_modules/decap-cms-core/dist/esm/actions/collections.js
generated
vendored
Normal file
23
node_modules/decap-cms-core/dist/esm/actions/collections.js
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.createNewEntry = createNewEntry;
|
||||
exports.searchCollections = searchCollections;
|
||||
exports.showCollection = showCollection;
|
||||
var _history = require("../routing/history");
|
||||
var _urlHelper = require("../lib/urlHelper");
|
||||
function searchCollections(query, collection) {
|
||||
if (collection) {
|
||||
_history.history.push(`/collections/${collection}/search/${query}`);
|
||||
} else {
|
||||
_history.history.push(`/search/${query}`);
|
||||
}
|
||||
}
|
||||
function showCollection(collectionName) {
|
||||
_history.history.push((0, _urlHelper.getCollectionUrl)(collectionName));
|
||||
}
|
||||
function createNewEntry(collectionName) {
|
||||
_history.history.push((0, _urlHelper.getNewEntryUrl)(collectionName));
|
||||
}
|
||||
479
node_modules/decap-cms-core/dist/esm/actions/config.js
generated
vendored
Normal file
479
node_modules/decap-cms-core/dist/esm/actions/config.js
generated
vendored
Normal file
@@ -0,0 +1,479 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.CONFIG_SUCCESS = exports.CONFIG_REQUEST = exports.CONFIG_FAILURE = void 0;
|
||||
exports.applyDefaults = applyDefaults;
|
||||
exports.configFailed = configFailed;
|
||||
exports.configLoaded = configLoaded;
|
||||
exports.configLoading = configLoading;
|
||||
exports.detectProxyServer = detectProxyServer;
|
||||
exports.handleLocalBackend = handleLocalBackend;
|
||||
exports.loadConfig = loadConfig;
|
||||
exports.normalizeConfig = normalizeConfig;
|
||||
exports.parseConfig = parseConfig;
|
||||
var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
|
||||
var _trim2 = _interopRequireDefault(require("lodash/trim"));
|
||||
var _trimStart2 = _interopRequireDefault(require("lodash/trimStart"));
|
||||
var _yaml = _interopRequireDefault(require("yaml"));
|
||||
var _immutable = require("immutable");
|
||||
var _deepmerge = _interopRequireDefault(require("deepmerge"));
|
||||
var _immer = require("immer");
|
||||
var _publishModes = require("../constants/publishModes");
|
||||
var _configSchema = require("../constants/configSchema");
|
||||
var _collections = require("../reducers/collections");
|
||||
var _integrations = require("../reducers/integrations");
|
||||
var _backend = require("../backend");
|
||||
var _i18n = require("../lib/i18n");
|
||||
var _collectionTypes = require("../constants/collectionTypes");
|
||||
const _excluded = ["sortableFields"];
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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; }
|
||||
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; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const CONFIG_REQUEST = exports.CONFIG_REQUEST = 'CONFIG_REQUEST';
|
||||
const CONFIG_SUCCESS = exports.CONFIG_SUCCESS = 'CONFIG_SUCCESS';
|
||||
const CONFIG_FAILURE = exports.CONFIG_FAILURE = 'CONFIG_FAILURE';
|
||||
function isObjectField(field) {
|
||||
return 'fields' in field;
|
||||
}
|
||||
function isFieldList(field) {
|
||||
return 'types' in field || 'field' in field;
|
||||
}
|
||||
function traverseFieldsJS(fields, updater) {
|
||||
return fields.map(field => {
|
||||
const newField = updater(field);
|
||||
if (isObjectField(newField)) {
|
||||
return _objectSpread(_objectSpread({}, newField), {}, {
|
||||
fields: traverseFieldsJS(newField.fields, updater)
|
||||
});
|
||||
} else if (isFieldList(newField) && newField.field) {
|
||||
return _objectSpread(_objectSpread({}, newField), {}, {
|
||||
field: traverseFieldsJS([newField.field], updater)[0]
|
||||
});
|
||||
} else if (isFieldList(newField) && newField.types) {
|
||||
return _objectSpread(_objectSpread({}, newField), {}, {
|
||||
types: traverseFieldsJS(newField.types, updater)
|
||||
});
|
||||
}
|
||||
return newField;
|
||||
});
|
||||
}
|
||||
function getConfigUrl() {
|
||||
const validTypes = {
|
||||
'text/yaml': 'yaml',
|
||||
'application/x-yaml': 'yaml'
|
||||
};
|
||||
const configLinkEl = document.querySelector('link[rel="cms-config-url"]');
|
||||
if (configLinkEl && validTypes[configLinkEl.type] && configLinkEl.href) {
|
||||
console.log(`Using config file path: "${configLinkEl.href}"`);
|
||||
return configLinkEl.href;
|
||||
}
|
||||
return 'config.yml';
|
||||
}
|
||||
function setDefaultPublicFolderForField(field) {
|
||||
if ('media_folder' in field && !('public_folder' in field)) {
|
||||
return _objectSpread(_objectSpread({}, field), {}, {
|
||||
public_folder: field.media_folder
|
||||
});
|
||||
}
|
||||
return field;
|
||||
}
|
||||
|
||||
// Mapping between existing camelCase and its snake_case counterpart
|
||||
const WIDGET_KEY_MAP = {
|
||||
dateFormat: 'date_format',
|
||||
timeFormat: 'time_format',
|
||||
pickerUtc: 'picker_utc',
|
||||
editorComponents: 'editor_components',
|
||||
valueType: 'value_type',
|
||||
valueField: 'value_field',
|
||||
searchFields: 'search_fields',
|
||||
displayFields: 'display_fields',
|
||||
optionsLength: 'options_length'
|
||||
};
|
||||
function setSnakeCaseConfig(field) {
|
||||
const deprecatedKeys = Object.keys(WIDGET_KEY_MAP).filter(camel => camel in field);
|
||||
const snakeValues = deprecatedKeys.map(camel => {
|
||||
const snake = WIDGET_KEY_MAP[camel];
|
||||
console.warn(`Field ${field.name} is using a deprecated configuration '${camel}'. Please use '${snake}'`);
|
||||
return {
|
||||
[snake]: field[camel]
|
||||
};
|
||||
});
|
||||
return Object.assign({}, field, ...snakeValues);
|
||||
}
|
||||
function setI18nField(field) {
|
||||
if (field[_i18n.I18N] === true) {
|
||||
return _objectSpread(_objectSpread({}, field), {}, {
|
||||
[_i18n.I18N]: _i18n.I18N_FIELD.TRANSLATE
|
||||
});
|
||||
} else if (field[_i18n.I18N] === false || !field[_i18n.I18N]) {
|
||||
return _objectSpread(_objectSpread({}, field), {}, {
|
||||
[_i18n.I18N]: _i18n.I18N_FIELD.NONE
|
||||
});
|
||||
}
|
||||
return field;
|
||||
}
|
||||
function getI18nDefaults(collectionOrFileI18n, defaultI18n) {
|
||||
if (typeof collectionOrFileI18n === 'boolean') {
|
||||
return defaultI18n;
|
||||
} else {
|
||||
const locales = collectionOrFileI18n.locales || defaultI18n.locales;
|
||||
const defaultLocale = collectionOrFileI18n.default_locale || locales[0];
|
||||
const mergedI18n = (0, _deepmerge.default)(defaultI18n, collectionOrFileI18n);
|
||||
mergedI18n.locales = locales;
|
||||
mergedI18n.default_locale = defaultLocale;
|
||||
throwOnMissingDefaultLocale(mergedI18n);
|
||||
return mergedI18n;
|
||||
}
|
||||
}
|
||||
function setI18nDefaultsForFields(collectionOrFileFields, hasI18n) {
|
||||
if (hasI18n) {
|
||||
return traverseFieldsJS(collectionOrFileFields, setI18nField);
|
||||
} else {
|
||||
return traverseFieldsJS(collectionOrFileFields, field => {
|
||||
const newField = _objectSpread({}, field);
|
||||
delete newField[_i18n.I18N];
|
||||
return newField;
|
||||
});
|
||||
}
|
||||
}
|
||||
function throwOnInvalidFileCollectionStructure(i18n) {
|
||||
if (i18n && i18n.structure !== _i18n.I18N_STRUCTURE.SINGLE_FILE) {
|
||||
throw new Error(`i18n configuration for files collections is limited to ${_i18n.I18N_STRUCTURE.SINGLE_FILE} structure`);
|
||||
}
|
||||
}
|
||||
function throwOnMissingDefaultLocale(i18n) {
|
||||
if (i18n && i18n.default_locale && !i18n.locales.includes(i18n.default_locale)) {
|
||||
throw new Error(`i18n locales '${i18n.locales.join(', ')}' are missing the default locale ${i18n.default_locale}`);
|
||||
}
|
||||
}
|
||||
function hasIntegration(config, collection) {
|
||||
// TODO remove fromJS when Immutable is removed from the integrations state slice
|
||||
const integrations = (0, _integrations.getIntegrations)((0, _immutable.fromJS)(config));
|
||||
const integration = (0, _integrations.selectIntegration)(integrations, collection.name, 'listEntries');
|
||||
return !!integration;
|
||||
}
|
||||
function normalizeConfig(config) {
|
||||
const {
|
||||
collections = []
|
||||
} = config;
|
||||
const normalizedCollections = collections.map(collection => {
|
||||
const {
|
||||
fields,
|
||||
files
|
||||
} = collection;
|
||||
let normalizedCollection = collection;
|
||||
if (fields) {
|
||||
const normalizedFields = traverseFieldsJS(fields, setSnakeCaseConfig);
|
||||
normalizedCollection = _objectSpread(_objectSpread({}, normalizedCollection), {}, {
|
||||
fields: normalizedFields
|
||||
});
|
||||
}
|
||||
if (files) {
|
||||
const normalizedFiles = files.map(file => {
|
||||
const normalizedFileFields = traverseFieldsJS(file.fields, setSnakeCaseConfig);
|
||||
return _objectSpread(_objectSpread({}, file), {}, {
|
||||
fields: normalizedFileFields
|
||||
});
|
||||
});
|
||||
normalizedCollection = _objectSpread(_objectSpread({}, normalizedCollection), {}, {
|
||||
files: normalizedFiles
|
||||
});
|
||||
}
|
||||
if (normalizedCollection.sortableFields) {
|
||||
const {
|
||||
sortableFields
|
||||
} = normalizedCollection,
|
||||
rest = _objectWithoutProperties(normalizedCollection, _excluded);
|
||||
normalizedCollection = _objectSpread(_objectSpread({}, rest), {}, {
|
||||
sortable_fields: sortableFields
|
||||
});
|
||||
console.warn(`Collection ${collection.name} is using a deprecated configuration 'sortableFields'. Please use 'sortable_fields'`);
|
||||
}
|
||||
return normalizedCollection;
|
||||
});
|
||||
return _objectSpread(_objectSpread({}, config), {}, {
|
||||
collections: normalizedCollections
|
||||
});
|
||||
}
|
||||
function applyDefaults(originalConfig) {
|
||||
return (0, _immer.produce)(originalConfig, config => {
|
||||
config.publish_mode = config.publish_mode || _publishModes.SIMPLE;
|
||||
config.slug = config.slug || {};
|
||||
config.collections = config.collections || [];
|
||||
|
||||
// Use `site_url` as default `display_url`.
|
||||
if (!config.display_url && config.site_url) {
|
||||
config.display_url = config.site_url;
|
||||
}
|
||||
|
||||
// Use media_folder as default public_folder.
|
||||
const defaultPublicFolder = `/${(0, _trimStart2.default)(config.media_folder, '/')}`;
|
||||
if (!('public_folder' in config)) {
|
||||
config.public_folder = defaultPublicFolder;
|
||||
}
|
||||
|
||||
// default values for the slug config
|
||||
if (!('encoding' in config.slug)) {
|
||||
config.slug.encoding = 'unicode';
|
||||
}
|
||||
if (!('clean_accents' in config.slug)) {
|
||||
config.slug.clean_accents = false;
|
||||
}
|
||||
if (!('sanitize_replacement' in config.slug)) {
|
||||
config.slug.sanitize_replacement = '-';
|
||||
}
|
||||
const i18n = config[_i18n.I18N];
|
||||
if (i18n) {
|
||||
i18n.default_locale = i18n.default_locale || i18n.locales[0];
|
||||
}
|
||||
throwOnMissingDefaultLocale(i18n);
|
||||
const backend = (0, _backend.resolveBackend)(config);
|
||||
for (const collection of config.collections) {
|
||||
if (!('publish' in collection)) {
|
||||
collection.publish = true;
|
||||
}
|
||||
let collectionI18n = collection[_i18n.I18N];
|
||||
if (i18n && collectionI18n) {
|
||||
collectionI18n = getI18nDefaults(collectionI18n, i18n);
|
||||
collection[_i18n.I18N] = collectionI18n;
|
||||
} else {
|
||||
collectionI18n = undefined;
|
||||
delete collection[_i18n.I18N];
|
||||
}
|
||||
if (collection.fields) {
|
||||
collection.fields = setI18nDefaultsForFields(collection.fields, Boolean(collectionI18n));
|
||||
}
|
||||
const {
|
||||
folder,
|
||||
files,
|
||||
view_filters,
|
||||
view_groups,
|
||||
meta
|
||||
} = collection;
|
||||
if (folder) {
|
||||
collection.type = _collectionTypes.FOLDER;
|
||||
if (collection.path && !collection.media_folder) {
|
||||
// default value for media folder when using the path config
|
||||
collection.media_folder = '';
|
||||
}
|
||||
if ('media_folder' in collection && !('public_folder' in collection)) {
|
||||
collection.public_folder = collection.media_folder;
|
||||
}
|
||||
if (collection.fields) {
|
||||
collection.fields = traverseFieldsJS(collection.fields, setDefaultPublicFolderForField);
|
||||
}
|
||||
collection.folder = (0, _trim2.default)(folder, '/');
|
||||
if (meta && meta.path) {
|
||||
const metaField = _objectSpread({
|
||||
name: 'path',
|
||||
meta: true,
|
||||
required: true
|
||||
}, meta.path);
|
||||
collection.fields = [metaField, ...(collection.fields || [])];
|
||||
}
|
||||
}
|
||||
if (files) {
|
||||
collection.type = _collectionTypes.FILES;
|
||||
throwOnInvalidFileCollectionStructure(collectionI18n);
|
||||
delete collection.nested;
|
||||
delete collection.meta;
|
||||
for (const file of files) {
|
||||
file.file = (0, _trimStart2.default)(file.file, '/');
|
||||
if ('media_folder' in file && !('public_folder' in file)) {
|
||||
file.public_folder = file.media_folder;
|
||||
}
|
||||
if (file.fields) {
|
||||
file.fields = traverseFieldsJS(file.fields, setDefaultPublicFolderForField);
|
||||
}
|
||||
let fileI18n = file[_i18n.I18N];
|
||||
if (fileI18n && collectionI18n) {
|
||||
fileI18n = getI18nDefaults(fileI18n, collectionI18n);
|
||||
file[_i18n.I18N] = fileI18n;
|
||||
} else {
|
||||
fileI18n = undefined;
|
||||
delete file[_i18n.I18N];
|
||||
}
|
||||
throwOnInvalidFileCollectionStructure(fileI18n);
|
||||
if (file.fields) {
|
||||
file.fields = setI18nDefaultsForFields(file.fields, Boolean(fileI18n));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!collection.sortable_fields) {
|
||||
collection.sortable_fields = (0, _collections.selectDefaultSortableFields)(
|
||||
// TODO remove fromJS when Immutable is removed from the collections state slice
|
||||
(0, _immutable.fromJS)(collection), backend, hasIntegration(config, collection));
|
||||
}
|
||||
collection.view_filters = (view_filters || []).map(filter => {
|
||||
return _objectSpread(_objectSpread({}, filter), {}, {
|
||||
id: `${filter.field}__${filter.pattern}`
|
||||
});
|
||||
});
|
||||
collection.view_groups = (view_groups || []).map(group => {
|
||||
return _objectSpread(_objectSpread({}, group), {}, {
|
||||
id: `${group.field}__${group.pattern}`
|
||||
});
|
||||
});
|
||||
if (config.editor && !collection.editor) {
|
||||
collection.editor = {
|
||||
preview: config.editor.preview
|
||||
};
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
function parseConfig(data) {
|
||||
const config = _yaml.default.parse(data, {
|
||||
maxAliasCount: -1,
|
||||
prettyErrors: true,
|
||||
merge: true
|
||||
});
|
||||
if (typeof window !== 'undefined' && typeof window.CMS_ENV === 'string' && config[window.CMS_ENV]) {
|
||||
const configKeys = Object.keys(config[window.CMS_ENV]);
|
||||
for (const key of configKeys) {
|
||||
config[key] = config[window.CMS_ENV][key];
|
||||
}
|
||||
}
|
||||
return config;
|
||||
}
|
||||
async function getConfigYaml(file, hasManualConfig) {
|
||||
const response = await fetch(file, {
|
||||
credentials: 'same-origin'
|
||||
}).catch(error => error);
|
||||
if (response instanceof Error || response.status !== 200) {
|
||||
if (hasManualConfig) {
|
||||
return {};
|
||||
}
|
||||
const message = response instanceof Error ? response.message : response.status;
|
||||
throw new Error(`Failed to load config.yml (${message})`);
|
||||
}
|
||||
const contentType = response.headers.get('Content-Type') || 'Not-Found';
|
||||
const isYaml = contentType.indexOf('yaml') !== -1;
|
||||
if (!isYaml) {
|
||||
console.log(`Response for ${file} was not yaml. (Content-Type: ${contentType})`);
|
||||
if (hasManualConfig) {
|
||||
return {};
|
||||
}
|
||||
}
|
||||
return parseConfig(await response.text());
|
||||
}
|
||||
function configLoaded(config) {
|
||||
return {
|
||||
type: CONFIG_SUCCESS,
|
||||
payload: config
|
||||
};
|
||||
}
|
||||
function configLoading() {
|
||||
return {
|
||||
type: CONFIG_REQUEST
|
||||
};
|
||||
}
|
||||
function configFailed(err) {
|
||||
return {
|
||||
type: CONFIG_FAILURE,
|
||||
error: 'Error loading config',
|
||||
payload: err
|
||||
};
|
||||
}
|
||||
async function detectProxyServer(localBackend) {
|
||||
const allowedHosts = ['localhost', '127.0.0.1', ...(typeof localBackend === 'boolean' ? [] : (localBackend === null || localBackend === void 0 ? void 0 : localBackend.allowed_hosts) || [])];
|
||||
if (!allowedHosts.includes(location.hostname) || !localBackend) {
|
||||
return {};
|
||||
}
|
||||
const defaultUrl = 'http://localhost:8081/api/v1';
|
||||
const proxyUrl = localBackend === true ? defaultUrl : localBackend.url || defaultUrl.replace('localhost', location.hostname);
|
||||
try {
|
||||
console.log(`Looking for Decap CMS Proxy Server at '${proxyUrl}'`);
|
||||
const res = await fetch(`${proxyUrl}`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
action: 'info'
|
||||
})
|
||||
});
|
||||
const {
|
||||
repo,
|
||||
publish_modes,
|
||||
type
|
||||
} = await res.json();
|
||||
if (typeof repo === 'string' && Array.isArray(publish_modes) && typeof type === 'string') {
|
||||
console.log(`Detected Decap CMS Proxy Server at '${proxyUrl}' with repo: '${repo}'`);
|
||||
return {
|
||||
proxyUrl,
|
||||
publish_modes,
|
||||
type
|
||||
};
|
||||
} else {
|
||||
console.log(`Decap CMS Proxy Server not detected at '${proxyUrl}'`);
|
||||
return {};
|
||||
}
|
||||
} catch {
|
||||
console.log(`Decap CMS Proxy Server not detected at '${proxyUrl}'`);
|
||||
return {};
|
||||
}
|
||||
}
|
||||
function getPublishMode(config, publishModes, backendType) {
|
||||
if (config.publish_mode && publishModes && !publishModes.includes(config.publish_mode)) {
|
||||
const newPublishMode = publishModes[0];
|
||||
console.log(`'${config.publish_mode}' is not supported by '${backendType}' backend, switching to '${newPublishMode}'`);
|
||||
return newPublishMode;
|
||||
}
|
||||
return config.publish_mode;
|
||||
}
|
||||
async function handleLocalBackend(originalConfig) {
|
||||
if (!originalConfig.local_backend) {
|
||||
return originalConfig;
|
||||
}
|
||||
const {
|
||||
proxyUrl,
|
||||
publish_modes: publishModes,
|
||||
type: backendType
|
||||
} = await detectProxyServer(originalConfig.local_backend);
|
||||
if (!proxyUrl) {
|
||||
return originalConfig;
|
||||
}
|
||||
return (0, _immer.produce)(originalConfig, config => {
|
||||
config.backend.name = 'proxy';
|
||||
config.backend.proxy_url = proxyUrl;
|
||||
if (config.publish_mode) {
|
||||
config.publish_mode = getPublishMode(config, publishModes, backendType);
|
||||
}
|
||||
});
|
||||
}
|
||||
function loadConfig(manualConfig = {}, onLoad) {
|
||||
if (window.CMS_CONFIG) {
|
||||
return configLoaded(window.CMS_CONFIG);
|
||||
}
|
||||
return async dispatch => {
|
||||
dispatch(configLoading());
|
||||
try {
|
||||
const configUrl = getConfigUrl();
|
||||
const hasManualConfig = !(0, _isEmpty2.default)(manualConfig);
|
||||
const configYaml = manualConfig.load_config_file === false ? {} : await getConfigYaml(configUrl, hasManualConfig);
|
||||
|
||||
// Merge manual config into the config.yml one
|
||||
const mergedConfig = (0, _deepmerge.default)(configYaml, manualConfig);
|
||||
(0, _configSchema.validateConfig)(mergedConfig);
|
||||
const withLocalBackend = await handleLocalBackend(mergedConfig);
|
||||
const normalizedConfig = normalizeConfig(withLocalBackend);
|
||||
const config = applyDefaults(normalizedConfig);
|
||||
dispatch(configLoaded(config));
|
||||
if (typeof onLoad === 'function') {
|
||||
onLoad();
|
||||
}
|
||||
} catch (err) {
|
||||
dispatch(configFailed(err));
|
||||
throw err;
|
||||
}
|
||||
};
|
||||
}
|
||||
86
node_modules/decap-cms-core/dist/esm/actions/deploys.js
generated
vendored
Normal file
86
node_modules/decap-cms-core/dist/esm/actions/deploys.js
generated
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.DEPLOY_PREVIEW_SUCCESS = exports.DEPLOY_PREVIEW_REQUEST = exports.DEPLOY_PREVIEW_FAILURE = void 0;
|
||||
exports.loadDeployPreview = loadDeployPreview;
|
||||
var _backend = require("../backend");
|
||||
var _reducers = require("../reducers");
|
||||
var _notifications = require("./notifications");
|
||||
const DEPLOY_PREVIEW_REQUEST = exports.DEPLOY_PREVIEW_REQUEST = 'DEPLOY_PREVIEW_REQUEST';
|
||||
const DEPLOY_PREVIEW_SUCCESS = exports.DEPLOY_PREVIEW_SUCCESS = 'DEPLOY_PREVIEW_SUCCESS';
|
||||
const DEPLOY_PREVIEW_FAILURE = exports.DEPLOY_PREVIEW_FAILURE = 'DEPLOY_PREVIEW_FAILURE';
|
||||
function deployPreviewLoading(collection, slug) {
|
||||
return {
|
||||
type: DEPLOY_PREVIEW_REQUEST,
|
||||
payload: {
|
||||
collection,
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function deployPreviewLoaded(collection, slug, deploy) {
|
||||
const {
|
||||
url,
|
||||
status
|
||||
} = deploy;
|
||||
return {
|
||||
type: DEPLOY_PREVIEW_SUCCESS,
|
||||
payload: {
|
||||
collection,
|
||||
slug,
|
||||
url,
|
||||
status
|
||||
}
|
||||
};
|
||||
}
|
||||
function deployPreviewError(collection, slug) {
|
||||
return {
|
||||
type: DEPLOY_PREVIEW_FAILURE,
|
||||
payload: {
|
||||
collection,
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Requests a deploy preview object from the registered backend.
|
||||
*/
|
||||
function loadDeployPreview(collection, slug, entry, published, opts) {
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const collectionName = collection.get('name');
|
||||
|
||||
// Exit if currently fetching
|
||||
const deployState = (0, _reducers.selectDeployPreview)(state, collectionName, slug);
|
||||
if (deployState && deployState.isFetching) {
|
||||
return;
|
||||
}
|
||||
dispatch(deployPreviewLoading(collectionName, slug));
|
||||
try {
|
||||
/**
|
||||
* `getDeploy` is for published entries, while `getDeployPreview` is for
|
||||
* unpublished entries.
|
||||
*/
|
||||
const deploy = published ? backend.getDeploy(collection, slug, entry) : await backend.getDeployPreview(collection, slug, entry, opts);
|
||||
if (deploy) {
|
||||
return dispatch(deployPreviewLoaded(collectionName, slug, deploy));
|
||||
}
|
||||
return dispatch(deployPreviewError(collectionName, slug));
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
details: error.message,
|
||||
key: 'ui.toast.onFailToLoadDeployPreview'
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
dispatch(deployPreviewError(collectionName, slug));
|
||||
}
|
||||
};
|
||||
}
|
||||
494
node_modules/decap-cms-core/dist/esm/actions/editorialWorkflow.js
generated
vendored
Normal file
494
node_modules/decap-cms-core/dist/esm/actions/editorialWorkflow.js
generated
vendored
Normal file
@@ -0,0 +1,494 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.UNPUBLISHED_ENTRY_SUCCESS = exports.UNPUBLISHED_ENTRY_STATUS_CHANGE_SUCCESS = exports.UNPUBLISHED_ENTRY_STATUS_CHANGE_REQUEST = exports.UNPUBLISHED_ENTRY_STATUS_CHANGE_FAILURE = exports.UNPUBLISHED_ENTRY_REQUEST = exports.UNPUBLISHED_ENTRY_REDIRECT = exports.UNPUBLISHED_ENTRY_PUBLISH_SUCCESS = exports.UNPUBLISHED_ENTRY_PUBLISH_REQUEST = exports.UNPUBLISHED_ENTRY_PUBLISH_FAILURE = exports.UNPUBLISHED_ENTRY_PERSIST_SUCCESS = exports.UNPUBLISHED_ENTRY_PERSIST_REQUEST = exports.UNPUBLISHED_ENTRY_PERSIST_FAILURE = exports.UNPUBLISHED_ENTRY_DELETE_SUCCESS = exports.UNPUBLISHED_ENTRY_DELETE_REQUEST = exports.UNPUBLISHED_ENTRY_DELETE_FAILURE = exports.UNPUBLISHED_ENTRIES_SUCCESS = exports.UNPUBLISHED_ENTRIES_REQUEST = exports.UNPUBLISHED_ENTRIES_FAILURE = void 0;
|
||||
exports.deleteUnpublishedEntry = deleteUnpublishedEntry;
|
||||
exports.loadUnpublishedEntries = loadUnpublishedEntries;
|
||||
exports.loadUnpublishedEntry = loadUnpublishedEntry;
|
||||
exports.persistUnpublishedEntry = persistUnpublishedEntry;
|
||||
exports.publishUnpublishedEntry = publishUnpublishedEntry;
|
||||
exports.unpublishPublishedEntry = unpublishPublishedEntry;
|
||||
exports.updateUnpublishedEntryStatus = updateUnpublishedEntryStatus;
|
||||
var _get2 = _interopRequireDefault(require("lodash/get"));
|
||||
var _immutable = require("immutable");
|
||||
var _decapCmsLibUtil = require("decap-cms-lib-util");
|
||||
var _backend = require("../backend");
|
||||
var _reducers = require("../reducers");
|
||||
var _entries = require("../reducers/entries");
|
||||
var _publishModes = require("../constants/publishModes");
|
||||
var _entries2 = require("./entries");
|
||||
var _AssetProxy = require("../valueObjects/AssetProxy");
|
||||
var _media = require("./media");
|
||||
var _mediaLibrary = require("./mediaLibrary");
|
||||
var _validationErrorTypes = _interopRequireDefault(require("../constants/validationErrorTypes"));
|
||||
var _history = require("../routing/history");
|
||||
var _notifications = require("./notifications");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
/*
|
||||
* Constant Declarations
|
||||
*/
|
||||
const UNPUBLISHED_ENTRY_REQUEST = exports.UNPUBLISHED_ENTRY_REQUEST = 'UNPUBLISHED_ENTRY_REQUEST';
|
||||
const UNPUBLISHED_ENTRY_SUCCESS = exports.UNPUBLISHED_ENTRY_SUCCESS = 'UNPUBLISHED_ENTRY_SUCCESS';
|
||||
const UNPUBLISHED_ENTRY_REDIRECT = exports.UNPUBLISHED_ENTRY_REDIRECT = 'UNPUBLISHED_ENTRY_REDIRECT';
|
||||
const UNPUBLISHED_ENTRIES_REQUEST = exports.UNPUBLISHED_ENTRIES_REQUEST = 'UNPUBLISHED_ENTRIES_REQUEST';
|
||||
const UNPUBLISHED_ENTRIES_SUCCESS = exports.UNPUBLISHED_ENTRIES_SUCCESS = 'UNPUBLISHED_ENTRIES_SUCCESS';
|
||||
const UNPUBLISHED_ENTRIES_FAILURE = exports.UNPUBLISHED_ENTRIES_FAILURE = 'UNPUBLISHED_ENTRIES_FAILURE';
|
||||
const UNPUBLISHED_ENTRY_PERSIST_REQUEST = exports.UNPUBLISHED_ENTRY_PERSIST_REQUEST = 'UNPUBLISHED_ENTRY_PERSIST_REQUEST';
|
||||
const UNPUBLISHED_ENTRY_PERSIST_SUCCESS = exports.UNPUBLISHED_ENTRY_PERSIST_SUCCESS = 'UNPUBLISHED_ENTRY_PERSIST_SUCCESS';
|
||||
const UNPUBLISHED_ENTRY_PERSIST_FAILURE = exports.UNPUBLISHED_ENTRY_PERSIST_FAILURE = 'UNPUBLISHED_ENTRY_PERSIST_FAILURE';
|
||||
const UNPUBLISHED_ENTRY_STATUS_CHANGE_REQUEST = exports.UNPUBLISHED_ENTRY_STATUS_CHANGE_REQUEST = 'UNPUBLISHED_ENTRY_STATUS_CHANGE_REQUEST';
|
||||
const UNPUBLISHED_ENTRY_STATUS_CHANGE_SUCCESS = exports.UNPUBLISHED_ENTRY_STATUS_CHANGE_SUCCESS = 'UNPUBLISHED_ENTRY_STATUS_CHANGE_SUCCESS';
|
||||
const UNPUBLISHED_ENTRY_STATUS_CHANGE_FAILURE = exports.UNPUBLISHED_ENTRY_STATUS_CHANGE_FAILURE = 'UNPUBLISHED_ENTRY_STATUS_CHANGE_FAILURE';
|
||||
const UNPUBLISHED_ENTRY_PUBLISH_REQUEST = exports.UNPUBLISHED_ENTRY_PUBLISH_REQUEST = 'UNPUBLISHED_ENTRY_PUBLISH_REQUEST';
|
||||
const UNPUBLISHED_ENTRY_PUBLISH_SUCCESS = exports.UNPUBLISHED_ENTRY_PUBLISH_SUCCESS = 'UNPUBLISHED_ENTRY_PUBLISH_SUCCESS';
|
||||
const UNPUBLISHED_ENTRY_PUBLISH_FAILURE = exports.UNPUBLISHED_ENTRY_PUBLISH_FAILURE = 'UNPUBLISHED_ENTRY_PUBLISH_FAILURE';
|
||||
const UNPUBLISHED_ENTRY_DELETE_REQUEST = exports.UNPUBLISHED_ENTRY_DELETE_REQUEST = 'UNPUBLISHED_ENTRY_DELETE_REQUEST';
|
||||
const UNPUBLISHED_ENTRY_DELETE_SUCCESS = exports.UNPUBLISHED_ENTRY_DELETE_SUCCESS = 'UNPUBLISHED_ENTRY_DELETE_SUCCESS';
|
||||
const UNPUBLISHED_ENTRY_DELETE_FAILURE = exports.UNPUBLISHED_ENTRY_DELETE_FAILURE = 'UNPUBLISHED_ENTRY_DELETE_FAILURE';
|
||||
|
||||
/*
|
||||
* Simple Action Creators (Internal)
|
||||
*/
|
||||
|
||||
function unpublishedEntryLoading(collection, slug) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_REQUEST,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntryLoaded(collection, entry) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_SUCCESS,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
entry
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntryRedirected(collection, slug) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_REDIRECT,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntriesLoading() {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRIES_REQUEST
|
||||
};
|
||||
}
|
||||
function unpublishedEntriesLoaded(entries, pagination) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRIES_SUCCESS,
|
||||
payload: {
|
||||
entries,
|
||||
pages: pagination
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntriesFailed(error) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRIES_FAILURE,
|
||||
error: 'Failed to load entries',
|
||||
payload: error
|
||||
};
|
||||
}
|
||||
function unpublishedEntryPersisting(collection, slug) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_PERSIST_REQUEST,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntryPersisted(collection, entry) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_PERSIST_SUCCESS,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
entry
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntryPersistedFail(error, collection, slug) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_PERSIST_FAILURE,
|
||||
payload: {
|
||||
error,
|
||||
collection: collection.get('name'),
|
||||
slug
|
||||
},
|
||||
error
|
||||
};
|
||||
}
|
||||
function unpublishedEntryStatusChangeRequest(collection, slug) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_STATUS_CHANGE_REQUEST,
|
||||
payload: {
|
||||
collection,
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntryStatusChangePersisted(collection, slug, newStatus) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_STATUS_CHANGE_SUCCESS,
|
||||
payload: {
|
||||
collection,
|
||||
slug,
|
||||
newStatus
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntryStatusChangeError(collection, slug) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_STATUS_CHANGE_FAILURE,
|
||||
payload: {
|
||||
collection,
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntryPublishRequest(collection, slug) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_PUBLISH_REQUEST,
|
||||
payload: {
|
||||
collection,
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntryPublished(collection, slug) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_PUBLISH_SUCCESS,
|
||||
payload: {
|
||||
collection,
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntryPublishError(collection, slug) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_PUBLISH_FAILURE,
|
||||
payload: {
|
||||
collection,
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntryDeleteRequest(collection, slug) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_DELETE_REQUEST,
|
||||
payload: {
|
||||
collection,
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntryDeleted(collection, slug) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_DELETE_SUCCESS,
|
||||
payload: {
|
||||
collection,
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishedEntryDeleteError(collection, slug) {
|
||||
return {
|
||||
type: UNPUBLISHED_ENTRY_DELETE_FAILURE,
|
||||
payload: {
|
||||
collection,
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/*
|
||||
* Exported Thunk Action Creators
|
||||
*/
|
||||
|
||||
function loadUnpublishedEntry(collection, slug) {
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const entriesLoaded = (0, _get2.default)(state.editorialWorkflow.toJS(), 'pages.ids', false);
|
||||
//run possible unpublishedEntries migration
|
||||
if (!entriesLoaded) {
|
||||
try {
|
||||
const {
|
||||
entries,
|
||||
pagination
|
||||
} = await backend.unpublishedEntries(state.collections);
|
||||
dispatch(unpublishedEntriesLoaded(entries, pagination));
|
||||
// eslint-disable-next-line no-empty
|
||||
} catch (e) {}
|
||||
}
|
||||
dispatch(unpublishedEntryLoading(collection, slug));
|
||||
try {
|
||||
const entry = await backend.unpublishedEntry(state, collection, slug);
|
||||
const assetProxies = await Promise.all(entry.mediaFiles.filter(file => file.draft).map(({
|
||||
url,
|
||||
file,
|
||||
path
|
||||
}) => (0, _AssetProxy.createAssetProxy)({
|
||||
path,
|
||||
url,
|
||||
file
|
||||
})));
|
||||
dispatch((0, _media.addAssets)(assetProxies));
|
||||
dispatch(unpublishedEntryLoaded(collection, entry));
|
||||
dispatch((0, _entries2.createDraftFromEntry)(entry));
|
||||
} catch (error) {
|
||||
if (error.name === _decapCmsLibUtil.EDITORIAL_WORKFLOW_ERROR && error.notUnderEditorialWorkflow) {
|
||||
dispatch(unpublishedEntryRedirected(collection, slug));
|
||||
dispatch((0, _entries2.loadEntry)(collection, slug));
|
||||
} else {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.onFailToLoadEntries',
|
||||
details: error
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
function loadUnpublishedEntries(collections) {
|
||||
return (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const entriesLoaded = (0, _get2.default)(state.editorialWorkflow.toJS(), 'pages.ids', false);
|
||||
if (state.config.publish_mode !== _publishModes.EDITORIAL_WORKFLOW || entriesLoaded) {
|
||||
return;
|
||||
}
|
||||
dispatch(unpublishedEntriesLoading());
|
||||
backend.unpublishedEntries(collections).then(response => dispatch(unpublishedEntriesLoaded(response.entries, response.pagination))).catch(error => {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.onFailToLoadEntries',
|
||||
details: error
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
dispatch(unpublishedEntriesFailed(error));
|
||||
Promise.reject(error);
|
||||
});
|
||||
};
|
||||
}
|
||||
function persistUnpublishedEntry(collection, existingUnpublishedEntry) {
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const entryDraft = state.entryDraft;
|
||||
const fieldsErrors = entryDraft.get('fieldsErrors');
|
||||
const unpublishedSlugs = (0, _reducers.selectUnpublishedSlugs)(state, collection.get('name'));
|
||||
const publishedSlugs = (0, _reducers.selectPublishedSlugs)(state, collection.get('name'));
|
||||
const usedSlugs = publishedSlugs.concat(unpublishedSlugs);
|
||||
const entriesLoaded = (0, _get2.default)(state.editorialWorkflow.toJS(), 'pages.ids', false);
|
||||
|
||||
//load unpublishedEntries
|
||||
!entriesLoaded && dispatch(loadUnpublishedEntries(state.collections));
|
||||
|
||||
// Early return if draft contains validation errors
|
||||
if (!fieldsErrors.isEmpty()) {
|
||||
const hasPresenceErrors = fieldsErrors.some(errors => errors.some(error => error.type && error.type === _validationErrorTypes.default.PRESENCE));
|
||||
if (hasPresenceErrors) {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.missingRequiredField'
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
}
|
||||
return Promise.reject();
|
||||
}
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const entry = entryDraft.get('entry');
|
||||
const assetProxies = (0, _entries2.getMediaAssets)({
|
||||
entry
|
||||
});
|
||||
const serializedEntry = (0, _entries2.getSerializedEntry)(collection, entry);
|
||||
const serializedEntryDraft = entryDraft.set('entry', serializedEntry);
|
||||
dispatch(unpublishedEntryPersisting(collection, entry.get('slug')));
|
||||
const persistAction = existingUnpublishedEntry ? backend.persistUnpublishedEntry : backend.persistEntry;
|
||||
try {
|
||||
const newSlug = await persistAction.call(backend, {
|
||||
config: state.config,
|
||||
collection,
|
||||
entryDraft: serializedEntryDraft,
|
||||
assetProxies,
|
||||
usedSlugs
|
||||
});
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.entrySaved'
|
||||
},
|
||||
type: 'success',
|
||||
dismissAfter: 4000
|
||||
}));
|
||||
dispatch(unpublishedEntryPersisted(collection, serializedEntry));
|
||||
if (entry.get('slug') !== newSlug) {
|
||||
await dispatch(loadUnpublishedEntry(collection, newSlug));
|
||||
(0, _history.navigateToEntry)(collection.get('name'), newSlug);
|
||||
}
|
||||
} catch (error) {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.onFailToPersist',
|
||||
details: error
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
return Promise.reject(dispatch(unpublishedEntryPersistedFail(error, collection, entry.get('slug'))));
|
||||
}
|
||||
};
|
||||
}
|
||||
function updateUnpublishedEntryStatus(collection, slug, oldStatus, newStatus) {
|
||||
return (dispatch, getState) => {
|
||||
if (oldStatus === newStatus) return;
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
dispatch(unpublishedEntryStatusChangeRequest(collection, slug));
|
||||
backend.updateUnpublishedEntryStatus(collection, slug, newStatus).then(() => {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.entryUpdated'
|
||||
},
|
||||
type: 'success',
|
||||
dismissAfter: 4000
|
||||
}));
|
||||
dispatch(unpublishedEntryStatusChangePersisted(collection, slug, newStatus));
|
||||
}).catch(error => {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.onFailToUpdateStatus',
|
||||
details: error
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
dispatch(unpublishedEntryStatusChangeError(collection, slug));
|
||||
});
|
||||
};
|
||||
}
|
||||
function deleteUnpublishedEntry(collection, slug) {
|
||||
return (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
dispatch(unpublishedEntryDeleteRequest(collection, slug));
|
||||
return backend.deleteUnpublishedEntry(collection, slug).then(() => {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.onDeleteUnpublishedChanges'
|
||||
},
|
||||
type: 'success',
|
||||
dismissAfter: 4000
|
||||
}));
|
||||
dispatch(unpublishedEntryDeleted(collection, slug));
|
||||
}).catch(error => {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.onDeleteUnpublishedChanges',
|
||||
details: error
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
dispatch(unpublishedEntryDeleteError(collection, slug));
|
||||
});
|
||||
};
|
||||
}
|
||||
function publishUnpublishedEntry(collectionName, slug) {
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const collections = state.collections;
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const entry = (0, _reducers.selectUnpublishedEntry)(state, collectionName, slug);
|
||||
dispatch(unpublishedEntryPublishRequest(collectionName, slug));
|
||||
try {
|
||||
await backend.publishUnpublishedEntry(entry);
|
||||
// re-load media after entry was published
|
||||
dispatch((0, _mediaLibrary.loadMedia)());
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.entryPublished'
|
||||
},
|
||||
type: 'success',
|
||||
dismissAfter: 4000
|
||||
}));
|
||||
dispatch(unpublishedEntryPublished(collectionName, slug));
|
||||
const collection = collections.get(collectionName);
|
||||
if (collection.has('nested')) {
|
||||
dispatch((0, _entries2.loadEntries)(collection));
|
||||
const newSlug = (0, _backend.slugFromCustomPath)(collection, entry.get('path'));
|
||||
(0, _entries2.loadEntry)(collection, newSlug);
|
||||
if (slug !== newSlug && (0, _entries.selectEditingDraft)(state.entryDraft)) {
|
||||
(0, _history.navigateToEntry)(collection.get('name'), newSlug);
|
||||
}
|
||||
} else {
|
||||
return dispatch((0, _entries2.loadEntry)(collection, slug));
|
||||
}
|
||||
} catch (error) {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.onFailToPublishEntry',
|
||||
details: error
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
dispatch(unpublishedEntryPublishError(collectionName, slug));
|
||||
}
|
||||
};
|
||||
}
|
||||
function unpublishPublishedEntry(collection, slug) {
|
||||
return (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const entry = (0, _reducers.selectEntry)(state, collection.get('name'), slug);
|
||||
const entryDraft = (0, _immutable.Map)().set('entry', entry);
|
||||
dispatch(unpublishedEntryPersisting(collection, slug));
|
||||
return backend.deleteEntry(state, collection, slug).then(() => backend.persistEntry({
|
||||
config: state.config,
|
||||
collection,
|
||||
entryDraft,
|
||||
assetProxies: [],
|
||||
usedSlugs: (0, _immutable.List)(),
|
||||
status: _publishModes.status.get('PENDING_PUBLISH')
|
||||
})).then(() => {
|
||||
dispatch(unpublishedEntryPersisted(collection, entry));
|
||||
dispatch((0, _entries2.entryDeleted)(collection, slug));
|
||||
dispatch(loadUnpublishedEntry(collection, slug));
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.entryUnpublished'
|
||||
},
|
||||
type: 'success',
|
||||
dismissAfter: 4000
|
||||
}));
|
||||
}).catch(error => {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.onFailToUnpublishEntry',
|
||||
details: error
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
dispatch(unpublishedEntryPersistedFail(error, collection, entry.get('slug')));
|
||||
});
|
||||
};
|
||||
}
|
||||
908
node_modules/decap-cms-core/dist/esm/actions/entries.js
generated
vendored
Normal file
908
node_modules/decap-cms-core/dist/esm/actions/entries.js
generated
vendored
Normal file
@@ -0,0 +1,908 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.SORT_ENTRIES_SUCCESS = exports.SORT_ENTRIES_REQUEST = exports.SORT_ENTRIES_FAILURE = exports.REMOVE_DRAFT_ENTRY_MEDIA_FILE = exports.GROUP_ENTRIES_SUCCESS = exports.GROUP_ENTRIES_REQUEST = exports.GROUP_ENTRIES_FAILURE = exports.FILTER_ENTRIES_SUCCESS = exports.FILTER_ENTRIES_REQUEST = exports.FILTER_ENTRIES_FAILURE = exports.ENTRY_SUCCESS = exports.ENTRY_REQUEST = exports.ENTRY_PERSIST_SUCCESS = exports.ENTRY_PERSIST_REQUEST = exports.ENTRY_PERSIST_FAILURE = exports.ENTRY_FAILURE = exports.ENTRY_DELETE_SUCCESS = exports.ENTRY_DELETE_REQUEST = exports.ENTRY_DELETE_FAILURE = exports.ENTRIES_SUCCESS = exports.ENTRIES_REQUEST = exports.ENTRIES_FAILURE = exports.DRAFT_VALIDATION_ERRORS = exports.DRAFT_LOCAL_BACKUP_RETRIEVED = exports.DRAFT_DISCARD = exports.DRAFT_CREATE_FROM_LOCAL_BACKUP = exports.DRAFT_CREATE_FROM_ENTRY = exports.DRAFT_CREATE_EMPTY = exports.DRAFT_CREATE_DUPLICATE_FROM_ENTRY = exports.DRAFT_CLEAR_ERRORS = exports.DRAFT_CHANGE_FIELD = exports.CHANGE_VIEW_STYLE = exports.ADD_DRAFT_ENTRY_MEDIA_FILE = void 0;
|
||||
exports.addDraftEntryMediaFile = addDraftEntryMediaFile;
|
||||
exports.changeDraftField = changeDraftField;
|
||||
exports.changeDraftFieldValidation = changeDraftFieldValidation;
|
||||
exports.changeViewStyle = changeViewStyle;
|
||||
exports.clearFieldErrors = clearFieldErrors;
|
||||
exports.createDraftDuplicateFromEntry = createDraftDuplicateFromEntry;
|
||||
exports.createDraftFromEntry = createDraftFromEntry;
|
||||
exports.createEmptyDraft = createEmptyDraft;
|
||||
exports.createEmptyDraftData = createEmptyDraftData;
|
||||
exports.deleteEntry = deleteEntry;
|
||||
exports.deleteLocalBackup = deleteLocalBackup;
|
||||
exports.discardDraft = discardDraft;
|
||||
exports.draftDuplicateEntry = draftDuplicateEntry;
|
||||
exports.emptyDraftCreated = emptyDraftCreated;
|
||||
exports.entriesFailed = entriesFailed;
|
||||
exports.entriesLoaded = entriesLoaded;
|
||||
exports.entriesLoading = entriesLoading;
|
||||
exports.entryDeleteFail = entryDeleteFail;
|
||||
exports.entryDeleted = entryDeleted;
|
||||
exports.entryDeleting = entryDeleting;
|
||||
exports.entryLoadError = entryLoadError;
|
||||
exports.entryLoaded = entryLoaded;
|
||||
exports.entryLoading = entryLoading;
|
||||
exports.entryPersistFail = entryPersistFail;
|
||||
exports.entryPersisted = entryPersisted;
|
||||
exports.entryPersisting = entryPersisting;
|
||||
exports.filterByField = filterByField;
|
||||
exports.getAllEntries = getAllEntries;
|
||||
exports.getMediaAssets = getMediaAssets;
|
||||
exports.getSerializedEntry = getSerializedEntry;
|
||||
exports.groupByField = groupByField;
|
||||
exports.loadEntries = loadEntries;
|
||||
exports.loadEntry = loadEntry;
|
||||
exports.loadLocalBackup = loadLocalBackup;
|
||||
exports.localBackupRetrieved = localBackupRetrieved;
|
||||
exports.persistEntry = persistEntry;
|
||||
exports.persistLocalBackup = persistLocalBackup;
|
||||
exports.removeDraftEntryMediaFile = removeDraftEntryMediaFile;
|
||||
exports.retrieveLocalBackup = retrieveLocalBackup;
|
||||
exports.sortByField = sortByField;
|
||||
exports.traverseCollectionCursor = traverseCollectionCursor;
|
||||
exports.tryLoadEntry = tryLoadEntry;
|
||||
exports.validateMetaField = validateMetaField;
|
||||
var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
|
||||
var _immutable = require("immutable");
|
||||
var _decapCmsLibUtil = require("decap-cms-lib-util");
|
||||
var _cursors = require("../reducers/cursors");
|
||||
var _collections = require("../reducers/collections");
|
||||
var _reducers = require("../reducers");
|
||||
var _integrations = require("../integrations");
|
||||
var _backend = require("../backend");
|
||||
var _serializeEntryValues = require("../lib/serializeEntryValues");
|
||||
var _Entry = require("../valueObjects/Entry");
|
||||
var _AssetProxy = require("../valueObjects/AssetProxy");
|
||||
var _validationErrorTypes = _interopRequireDefault(require("../constants/validationErrorTypes"));
|
||||
var _media = require("./media");
|
||||
var _redux = require("../types/redux");
|
||||
var _mediaLibrary = require("./mediaLibrary");
|
||||
var _waitUntil = require("./waitUntil");
|
||||
var _entries = require("../reducers/entries");
|
||||
var _entryDraft = require("../reducers/entryDraft");
|
||||
var _history = require("../routing/history");
|
||||
var _formatters = require("../lib/formatters");
|
||||
var _i18n = require("../lib/i18n");
|
||||
var _notifications = require("./notifications");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
/*
|
||||
* Constant Declarations
|
||||
*/
|
||||
const ENTRY_REQUEST = exports.ENTRY_REQUEST = 'ENTRY_REQUEST';
|
||||
const ENTRY_SUCCESS = exports.ENTRY_SUCCESS = 'ENTRY_SUCCESS';
|
||||
const ENTRY_FAILURE = exports.ENTRY_FAILURE = 'ENTRY_FAILURE';
|
||||
const ENTRIES_REQUEST = exports.ENTRIES_REQUEST = 'ENTRIES_REQUEST';
|
||||
const ENTRIES_SUCCESS = exports.ENTRIES_SUCCESS = 'ENTRIES_SUCCESS';
|
||||
const ENTRIES_FAILURE = exports.ENTRIES_FAILURE = 'ENTRIES_FAILURE';
|
||||
const SORT_ENTRIES_REQUEST = exports.SORT_ENTRIES_REQUEST = 'SORT_ENTRIES_REQUEST';
|
||||
const SORT_ENTRIES_SUCCESS = exports.SORT_ENTRIES_SUCCESS = 'SORT_ENTRIES_SUCCESS';
|
||||
const SORT_ENTRIES_FAILURE = exports.SORT_ENTRIES_FAILURE = 'SORT_ENTRIES_FAILURE';
|
||||
const FILTER_ENTRIES_REQUEST = exports.FILTER_ENTRIES_REQUEST = 'FILTER_ENTRIES_REQUEST';
|
||||
const FILTER_ENTRIES_SUCCESS = exports.FILTER_ENTRIES_SUCCESS = 'FILTER_ENTRIES_SUCCESS';
|
||||
const FILTER_ENTRIES_FAILURE = exports.FILTER_ENTRIES_FAILURE = 'FILTER_ENTRIES_FAILURE';
|
||||
const GROUP_ENTRIES_REQUEST = exports.GROUP_ENTRIES_REQUEST = 'GROUP_ENTRIES_REQUEST';
|
||||
const GROUP_ENTRIES_SUCCESS = exports.GROUP_ENTRIES_SUCCESS = 'GROUP_ENTRIES_SUCCESS';
|
||||
const GROUP_ENTRIES_FAILURE = exports.GROUP_ENTRIES_FAILURE = 'GROUP_ENTRIES_FAILURE';
|
||||
const DRAFT_CREATE_FROM_ENTRY = exports.DRAFT_CREATE_FROM_ENTRY = 'DRAFT_CREATE_FROM_ENTRY';
|
||||
const DRAFT_CREATE_EMPTY = exports.DRAFT_CREATE_EMPTY = 'DRAFT_CREATE_EMPTY';
|
||||
const DRAFT_DISCARD = exports.DRAFT_DISCARD = 'DRAFT_DISCARD';
|
||||
const DRAFT_CHANGE_FIELD = exports.DRAFT_CHANGE_FIELD = 'DRAFT_CHANGE_FIELD';
|
||||
const DRAFT_VALIDATION_ERRORS = exports.DRAFT_VALIDATION_ERRORS = 'DRAFT_VALIDATION_ERRORS';
|
||||
const DRAFT_CLEAR_ERRORS = exports.DRAFT_CLEAR_ERRORS = 'DRAFT_CLEAR_ERRORS';
|
||||
const DRAFT_LOCAL_BACKUP_RETRIEVED = exports.DRAFT_LOCAL_BACKUP_RETRIEVED = 'DRAFT_LOCAL_BACKUP_RETRIEVED';
|
||||
const DRAFT_CREATE_FROM_LOCAL_BACKUP = exports.DRAFT_CREATE_FROM_LOCAL_BACKUP = 'DRAFT_CREATE_FROM_LOCAL_BACKUP';
|
||||
const DRAFT_CREATE_DUPLICATE_FROM_ENTRY = exports.DRAFT_CREATE_DUPLICATE_FROM_ENTRY = 'DRAFT_CREATE_DUPLICATE_FROM_ENTRY';
|
||||
const ENTRY_PERSIST_REQUEST = exports.ENTRY_PERSIST_REQUEST = 'ENTRY_PERSIST_REQUEST';
|
||||
const ENTRY_PERSIST_SUCCESS = exports.ENTRY_PERSIST_SUCCESS = 'ENTRY_PERSIST_SUCCESS';
|
||||
const ENTRY_PERSIST_FAILURE = exports.ENTRY_PERSIST_FAILURE = 'ENTRY_PERSIST_FAILURE';
|
||||
const ENTRY_DELETE_REQUEST = exports.ENTRY_DELETE_REQUEST = 'ENTRY_DELETE_REQUEST';
|
||||
const ENTRY_DELETE_SUCCESS = exports.ENTRY_DELETE_SUCCESS = 'ENTRY_DELETE_SUCCESS';
|
||||
const ENTRY_DELETE_FAILURE = exports.ENTRY_DELETE_FAILURE = 'ENTRY_DELETE_FAILURE';
|
||||
const ADD_DRAFT_ENTRY_MEDIA_FILE = exports.ADD_DRAFT_ENTRY_MEDIA_FILE = 'ADD_DRAFT_ENTRY_MEDIA_FILE';
|
||||
const REMOVE_DRAFT_ENTRY_MEDIA_FILE = exports.REMOVE_DRAFT_ENTRY_MEDIA_FILE = 'REMOVE_DRAFT_ENTRY_MEDIA_FILE';
|
||||
const CHANGE_VIEW_STYLE = exports.CHANGE_VIEW_STYLE = 'CHANGE_VIEW_STYLE';
|
||||
|
||||
/*
|
||||
* Simple Action Creators (Internal)
|
||||
* We still need to export them for tests
|
||||
*/
|
||||
function entryLoading(collection, slug) {
|
||||
return {
|
||||
type: ENTRY_REQUEST,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function entryLoaded(collection, entry) {
|
||||
return {
|
||||
type: ENTRY_SUCCESS,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
entry
|
||||
}
|
||||
};
|
||||
}
|
||||
function entryLoadError(error, collection, slug) {
|
||||
return {
|
||||
type: ENTRY_FAILURE,
|
||||
payload: {
|
||||
error,
|
||||
collection: collection.get('name'),
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function entriesLoading(collection) {
|
||||
return {
|
||||
type: ENTRIES_REQUEST,
|
||||
payload: {
|
||||
collection: collection.get('name')
|
||||
}
|
||||
};
|
||||
}
|
||||
function entriesLoaded(collection, entries, pagination, cursor, append = true) {
|
||||
return {
|
||||
type: ENTRIES_SUCCESS,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
entries,
|
||||
page: pagination,
|
||||
cursor: _decapCmsLibUtil.Cursor.create(cursor),
|
||||
append
|
||||
}
|
||||
};
|
||||
}
|
||||
function entriesFailed(collection, error) {
|
||||
return {
|
||||
type: ENTRIES_FAILURE,
|
||||
error: 'Failed to load entries',
|
||||
payload: error.toString(),
|
||||
meta: {
|
||||
collection: collection.get('name')
|
||||
}
|
||||
};
|
||||
}
|
||||
async function getAllEntries(state, collection) {
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const integration = (0, _reducers.selectIntegration)(state, collection.get('name'), 'listEntries');
|
||||
const provider = integration ? (0, _integrations.getIntegrationProvider)(state.integrations, backend.getToken, integration) : backend;
|
||||
const entries = await provider.listAllEntries(collection);
|
||||
return entries;
|
||||
}
|
||||
function sortByField(collection, key, direction = _redux.SortDirection.Ascending) {
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
// if we're already fetching we update the sort key, but skip loading entries
|
||||
const isFetching = (0, _entries.selectIsFetching)(state.entries, collection.get('name'));
|
||||
dispatch({
|
||||
type: SORT_ENTRIES_REQUEST,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
key,
|
||||
direction
|
||||
}
|
||||
});
|
||||
if (isFetching) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const entries = await getAllEntries(state, collection);
|
||||
dispatch({
|
||||
type: SORT_ENTRIES_SUCCESS,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
key,
|
||||
direction,
|
||||
entries
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
dispatch({
|
||||
type: SORT_ENTRIES_FAILURE,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
key,
|
||||
direction,
|
||||
error
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
function filterByField(collection, filter) {
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
// if we're already fetching we update the filter key, but skip loading entries
|
||||
const isFetching = (0, _entries.selectIsFetching)(state.entries, collection.get('name'));
|
||||
dispatch({
|
||||
type: FILTER_ENTRIES_REQUEST,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
filter
|
||||
}
|
||||
});
|
||||
if (isFetching) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const entries = await getAllEntries(state, collection);
|
||||
dispatch({
|
||||
type: FILTER_ENTRIES_SUCCESS,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
filter,
|
||||
entries
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
dispatch({
|
||||
type: FILTER_ENTRIES_FAILURE,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
filter,
|
||||
error
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
function groupByField(collection, group) {
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const isFetching = (0, _entries.selectIsFetching)(state.entries, collection.get('name'));
|
||||
dispatch({
|
||||
type: GROUP_ENTRIES_REQUEST,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
group
|
||||
}
|
||||
});
|
||||
if (isFetching) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const entries = await getAllEntries(state, collection);
|
||||
dispatch({
|
||||
type: GROUP_ENTRIES_SUCCESS,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
group,
|
||||
entries
|
||||
}
|
||||
});
|
||||
} catch (error) {
|
||||
dispatch({
|
||||
type: GROUP_ENTRIES_FAILURE,
|
||||
payload: {
|
||||
collection: collection.get('name'),
|
||||
group,
|
||||
error
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
function changeViewStyle(viewStyle) {
|
||||
return {
|
||||
type: CHANGE_VIEW_STYLE,
|
||||
payload: {
|
||||
style: viewStyle
|
||||
}
|
||||
};
|
||||
}
|
||||
function entryPersisting(collection, entry) {
|
||||
return {
|
||||
type: ENTRY_PERSIST_REQUEST,
|
||||
payload: {
|
||||
collectionName: collection.get('name'),
|
||||
entrySlug: entry.get('slug')
|
||||
}
|
||||
};
|
||||
}
|
||||
function entryPersisted(collection, entry, slug) {
|
||||
return {
|
||||
type: ENTRY_PERSIST_SUCCESS,
|
||||
payload: {
|
||||
collectionName: collection.get('name'),
|
||||
entrySlug: entry.get('slug'),
|
||||
/**
|
||||
* Pass slug from backend for newly created entries.
|
||||
*/
|
||||
slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function entryPersistFail(collection, entry, error) {
|
||||
return {
|
||||
type: ENTRY_PERSIST_FAILURE,
|
||||
error: 'Failed to persist entry',
|
||||
payload: {
|
||||
collectionName: collection.get('name'),
|
||||
entrySlug: entry.get('slug'),
|
||||
error: error.toString()
|
||||
}
|
||||
};
|
||||
}
|
||||
function entryDeleting(collection, slug) {
|
||||
return {
|
||||
type: ENTRY_DELETE_REQUEST,
|
||||
payload: {
|
||||
collectionName: collection.get('name'),
|
||||
entrySlug: slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function entryDeleted(collection, slug) {
|
||||
return {
|
||||
type: ENTRY_DELETE_SUCCESS,
|
||||
payload: {
|
||||
collectionName: collection.get('name'),
|
||||
entrySlug: slug
|
||||
}
|
||||
};
|
||||
}
|
||||
function entryDeleteFail(collection, slug, error) {
|
||||
return {
|
||||
type: ENTRY_DELETE_FAILURE,
|
||||
payload: {
|
||||
collectionName: collection.get('name'),
|
||||
entrySlug: slug,
|
||||
error: error.toString()
|
||||
}
|
||||
};
|
||||
}
|
||||
function emptyDraftCreated(entry) {
|
||||
return {
|
||||
type: DRAFT_CREATE_EMPTY,
|
||||
payload: entry
|
||||
};
|
||||
}
|
||||
/*
|
||||
* Exported simple Action Creators
|
||||
*/
|
||||
function createDraftFromEntry(entry) {
|
||||
return {
|
||||
type: DRAFT_CREATE_FROM_ENTRY,
|
||||
payload: {
|
||||
entry
|
||||
}
|
||||
};
|
||||
}
|
||||
function draftDuplicateEntry(entry) {
|
||||
return {
|
||||
type: DRAFT_CREATE_DUPLICATE_FROM_ENTRY,
|
||||
payload: (0, _Entry.createEntry)(entry.get('collection'), '', '', {
|
||||
data: entry.get('data'),
|
||||
mediaFiles: entry.get('mediaFiles').toJS()
|
||||
})
|
||||
};
|
||||
}
|
||||
function discardDraft() {
|
||||
return {
|
||||
type: DRAFT_DISCARD
|
||||
};
|
||||
}
|
||||
function changeDraftField({
|
||||
field,
|
||||
value,
|
||||
metadata,
|
||||
entries,
|
||||
i18n
|
||||
}) {
|
||||
return {
|
||||
type: DRAFT_CHANGE_FIELD,
|
||||
payload: {
|
||||
field,
|
||||
value,
|
||||
metadata,
|
||||
entries,
|
||||
i18n
|
||||
}
|
||||
};
|
||||
}
|
||||
function changeDraftFieldValidation(uniquefieldId, errors) {
|
||||
return {
|
||||
type: DRAFT_VALIDATION_ERRORS,
|
||||
payload: {
|
||||
uniquefieldId,
|
||||
errors
|
||||
}
|
||||
};
|
||||
}
|
||||
function clearFieldErrors() {
|
||||
return {
|
||||
type: DRAFT_CLEAR_ERRORS
|
||||
};
|
||||
}
|
||||
function localBackupRetrieved(entry) {
|
||||
return {
|
||||
type: DRAFT_LOCAL_BACKUP_RETRIEVED,
|
||||
payload: {
|
||||
entry
|
||||
}
|
||||
};
|
||||
}
|
||||
function loadLocalBackup() {
|
||||
return {
|
||||
type: DRAFT_CREATE_FROM_LOCAL_BACKUP
|
||||
};
|
||||
}
|
||||
function addDraftEntryMediaFile(file) {
|
||||
return {
|
||||
type: ADD_DRAFT_ENTRY_MEDIA_FILE,
|
||||
payload: file
|
||||
};
|
||||
}
|
||||
function removeDraftEntryMediaFile({
|
||||
id
|
||||
}) {
|
||||
return {
|
||||
type: REMOVE_DRAFT_ENTRY_MEDIA_FILE,
|
||||
payload: {
|
||||
id
|
||||
}
|
||||
};
|
||||
}
|
||||
function persistLocalBackup(entry, collection) {
|
||||
return (_dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
return backend.persistLocalDraftBackup(entry, collection);
|
||||
};
|
||||
}
|
||||
function createDraftDuplicateFromEntry(entry) {
|
||||
return dispatch => {
|
||||
dispatch((0, _waitUntil.waitUntil)({
|
||||
predicate: ({
|
||||
type
|
||||
}) => type === DRAFT_CREATE_EMPTY,
|
||||
run: () => dispatch(draftDuplicateEntry(entry))
|
||||
}));
|
||||
};
|
||||
}
|
||||
function retrieveLocalBackup(collection, slug) {
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const {
|
||||
entry
|
||||
} = await backend.getLocalDraftBackup(collection, slug);
|
||||
if (entry) {
|
||||
// load assets from backup
|
||||
const mediaFiles = entry.mediaFiles || [];
|
||||
const assetProxies = await Promise.all(mediaFiles.map(file => {
|
||||
if (file.file || file.url) {
|
||||
return (0, _AssetProxy.createAssetProxy)({
|
||||
path: file.path,
|
||||
file: file.file,
|
||||
url: file.url,
|
||||
field: file.field
|
||||
});
|
||||
} else {
|
||||
return (0, _media.getAsset)({
|
||||
collection,
|
||||
entry: (0, _immutable.fromJS)(entry),
|
||||
path: file.path,
|
||||
field: file.field
|
||||
})(dispatch, getState);
|
||||
}
|
||||
}));
|
||||
dispatch((0, _media.addAssets)(assetProxies));
|
||||
return dispatch(localBackupRetrieved(entry));
|
||||
}
|
||||
};
|
||||
}
|
||||
function deleteLocalBackup(collection, slug) {
|
||||
return (_dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
return backend.deleteLocalDraftBackup(collection, slug);
|
||||
};
|
||||
}
|
||||
|
||||
/*
|
||||
* Exported Thunk Action Creators
|
||||
*/
|
||||
|
||||
function loadEntry(collection, slug) {
|
||||
return async (dispatch, getState) => {
|
||||
await (0, _mediaLibrary.waitForMediaLibraryToLoad)(dispatch, getState());
|
||||
dispatch(entryLoading(collection, slug));
|
||||
try {
|
||||
const loadedEntry = await tryLoadEntry(getState(), collection, slug);
|
||||
dispatch(entryLoaded(collection, loadedEntry));
|
||||
dispatch(createDraftFromEntry(loadedEntry));
|
||||
} catch (error) {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
details: error.message,
|
||||
key: 'ui.toast.onFailToLoadEntries'
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
dispatch(entryLoadError(error, collection, slug));
|
||||
}
|
||||
};
|
||||
}
|
||||
async function tryLoadEntry(state, collection, slug) {
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const loadedEntry = await backend.getEntry(state, collection, slug);
|
||||
return loadedEntry;
|
||||
}
|
||||
const appendActions = (0, _immutable.fromJS)({
|
||||
['append_next']: {
|
||||
action: 'next',
|
||||
append: true
|
||||
}
|
||||
});
|
||||
function addAppendActionsToCursor(cursor) {
|
||||
return _decapCmsLibUtil.Cursor.create(cursor).updateStore('actions', actions => {
|
||||
return actions.union(appendActions.filter(v => actions.has(v.get('action'))).keySeq());
|
||||
});
|
||||
}
|
||||
function loadEntries(collection, page = 0) {
|
||||
return async (dispatch, getState) => {
|
||||
if (collection.get('isFetching')) {
|
||||
return;
|
||||
}
|
||||
const state = getState();
|
||||
const sortFields = (0, _entries.selectEntriesSortFields)(state.entries, collection.get('name'));
|
||||
if (sortFields && sortFields.length > 0) {
|
||||
const field = sortFields[0];
|
||||
return dispatch(sortByField(collection, field.get('key'), field.get('direction')));
|
||||
}
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const integration = (0, _reducers.selectIntegration)(state, collection.get('name'), 'listEntries');
|
||||
const provider = integration ? (0, _integrations.getIntegrationProvider)(state.integrations, backend.getToken, integration) : backend;
|
||||
const append = !!(page && !isNaN(page) && page > 0);
|
||||
dispatch(entriesLoading(collection));
|
||||
try {
|
||||
const loadAllEntries = collection.has('nested') || (0, _i18n.hasI18n)(collection);
|
||||
let response = await (loadAllEntries ?
|
||||
// nested collections require all entries to construct the tree
|
||||
provider.listAllEntries(collection).then(entries => ({
|
||||
entries
|
||||
})) : provider.listEntries(collection, page));
|
||||
response = _objectSpread(_objectSpread({}, response), {}, {
|
||||
// The only existing backend using the pagination system is the
|
||||
// Algolia integration, which is also the only integration used
|
||||
// to list entries. Thus, this checking for an integration can
|
||||
// determine whether or not this is using the old integer-based
|
||||
// pagination API. Other backends will simply store an empty
|
||||
// cursor, which behaves identically to no cursor at all.
|
||||
cursor: integration ? _decapCmsLibUtil.Cursor.create({
|
||||
actions: ['next'],
|
||||
meta: {
|
||||
usingOldPaginationAPI: true
|
||||
},
|
||||
data: {
|
||||
nextPage: page + 1
|
||||
}
|
||||
}) : _decapCmsLibUtil.Cursor.create(response.cursor)
|
||||
});
|
||||
dispatch(entriesLoaded(collection, response.cursor.meta.get('usingOldPaginationAPI') ? response.entries.reverse() : response.entries, response.pagination, addAppendActionsToCursor(response.cursor), append));
|
||||
} catch (err) {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
details: err,
|
||||
key: 'ui.toast.onFailToLoadEntries'
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
return Promise.reject(dispatch(entriesFailed(collection, err)));
|
||||
}
|
||||
};
|
||||
}
|
||||
function traverseCursor(backend, cursor, action) {
|
||||
if (!cursor.actions.has(action)) {
|
||||
throw new Error(`The current cursor does not support the pagination action "${action}".`);
|
||||
}
|
||||
return backend.traverseCursor(cursor, action);
|
||||
}
|
||||
function traverseCollectionCursor(collection, action) {
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const collectionName = collection.get('name');
|
||||
if (state.entries.getIn(['pages', `${collectionName}`, 'isFetching'])) {
|
||||
return;
|
||||
}
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const {
|
||||
action: realAction,
|
||||
append
|
||||
} = appendActions.has(action) ? appendActions.get(action).toJS() : {
|
||||
action,
|
||||
append: false
|
||||
};
|
||||
const cursor = (0, _cursors.selectCollectionEntriesCursor)(state.cursors, collection.get('name'));
|
||||
|
||||
// Handle cursors representing pages in the old, integer-based
|
||||
// pagination API
|
||||
if (cursor.meta.get('usingOldPaginationAPI', false)) {
|
||||
return dispatch(loadEntries(collection, cursor.data.get('nextPage')));
|
||||
}
|
||||
try {
|
||||
var _newCursor$meta;
|
||||
dispatch(entriesLoading(collection));
|
||||
const {
|
||||
entries,
|
||||
cursor: newCursor
|
||||
} = await traverseCursor(backend, cursor, realAction);
|
||||
const pagination = (_newCursor$meta = newCursor.meta) === null || _newCursor$meta === void 0 ? void 0 : _newCursor$meta.get('page');
|
||||
return dispatch(entriesLoaded(collection, entries, pagination, addAppendActionsToCursor(newCursor), append));
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
details: err,
|
||||
key: 'ui.toast.onFailToLoadEntries'
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
return Promise.reject(dispatch(entriesFailed(collection, err)));
|
||||
}
|
||||
};
|
||||
}
|
||||
function escapeHtml(unsafe) {
|
||||
return unsafe.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''');
|
||||
}
|
||||
function processValue(unsafe) {
|
||||
if (['true', 'True', 'TRUE'].includes(unsafe)) {
|
||||
return true;
|
||||
}
|
||||
if (['false', 'False', 'FALSE'].includes(unsafe)) {
|
||||
return false;
|
||||
}
|
||||
return escapeHtml(unsafe);
|
||||
}
|
||||
function getDataFields(fields) {
|
||||
return fields.filter(f => !f.get('meta')).toList();
|
||||
}
|
||||
function getMetaFields(fields) {
|
||||
return fields.filter(f => f.get('meta') === true).toList();
|
||||
}
|
||||
function createEmptyDraft(collection, search) {
|
||||
return async (dispatch, getState) => {
|
||||
const params = new URLSearchParams(search);
|
||||
params.forEach((value, key) => {
|
||||
collection = (0, _collections.updateFieldByKey)(collection, key, field => field.set('default', processValue(value)));
|
||||
});
|
||||
const fields = collection.get('fields', (0, _immutable.List)());
|
||||
const dataFields = getDataFields(fields);
|
||||
const data = createEmptyDraftData(dataFields);
|
||||
const metaFields = getMetaFields(fields);
|
||||
const meta = createEmptyDraftData(metaFields);
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
if (!collection.has('media_folder')) {
|
||||
await (0, _mediaLibrary.waitForMediaLibraryToLoad)(dispatch, getState());
|
||||
}
|
||||
const i18nFields = createEmptyDraftI18nData(collection, dataFields);
|
||||
let newEntry = (0, _Entry.createEntry)(collection.get('name'), '', '', {
|
||||
data,
|
||||
i18n: i18nFields,
|
||||
mediaFiles: [],
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
meta: meta
|
||||
});
|
||||
newEntry = await backend.processEntry(state, collection, newEntry);
|
||||
dispatch(emptyDraftCreated(newEntry));
|
||||
};
|
||||
}
|
||||
function createEmptyDraftData(fields, skipField = () => false) {
|
||||
return fields.reduce((reduction, value) => {
|
||||
const acc = reduction;
|
||||
const item = value;
|
||||
if (skipField(item)) {
|
||||
return acc;
|
||||
}
|
||||
const subfields = item.get('field') || item.get('fields');
|
||||
const list = item.get('widget') == 'list';
|
||||
const name = item.get('name');
|
||||
const defaultValue = item.get('default', null);
|
||||
function isEmptyDefaultValue(val) {
|
||||
return [[{}], {}].some(e => (0, _isEqual2.default)(val, e));
|
||||
}
|
||||
const hasSubfields = _immutable.List.isList(subfields) || _immutable.Map.isMap(subfields);
|
||||
if (hasSubfields) {
|
||||
if (list && _immutable.List.isList(defaultValue)) {
|
||||
acc[name] = defaultValue;
|
||||
} else {
|
||||
const asList = _immutable.List.isList(subfields) ? subfields : (0, _immutable.List)([subfields]);
|
||||
const subDefaultValue = list ? [createEmptyDraftData(asList, skipField)] : createEmptyDraftData(asList, skipField);
|
||||
if (!isEmptyDefaultValue(subDefaultValue)) {
|
||||
acc[name] = subDefaultValue;
|
||||
}
|
||||
}
|
||||
return acc;
|
||||
}
|
||||
if (defaultValue !== null) {
|
||||
acc[name] = defaultValue;
|
||||
}
|
||||
return acc;
|
||||
}, {});
|
||||
}
|
||||
function createEmptyDraftI18nData(collection, dataFields) {
|
||||
if (!(0, _i18n.hasI18n)(collection)) {
|
||||
return {};
|
||||
}
|
||||
function skipField(field) {
|
||||
return field.get(_i18n.I18N) !== _i18n.I18N_FIELD.DUPLICATE && field.get(_i18n.I18N) !== _i18n.I18N_FIELD.TRANSLATE;
|
||||
}
|
||||
const i18nData = createEmptyDraftData(dataFields, skipField);
|
||||
return (0, _i18n.duplicateDefaultI18nFields)(collection, i18nData);
|
||||
}
|
||||
function getMediaAssets({
|
||||
entry
|
||||
}) {
|
||||
const filesArray = entry.get('mediaFiles').toArray();
|
||||
const assets = filesArray.filter(file => file.get('draft')).map(file => (0, _AssetProxy.createAssetProxy)({
|
||||
path: file.get('path'),
|
||||
file: file.get('file'),
|
||||
url: file.get('url'),
|
||||
field: file.get('field')
|
||||
}));
|
||||
return assets;
|
||||
}
|
||||
function getSerializedEntry(collection, entry) {
|
||||
/**
|
||||
* Serialize the values of any fields with registered serializers, and
|
||||
* update the entry and entryDraft with the serialized values.
|
||||
*/
|
||||
const fields = (0, _collections.selectFields)(collection, entry.get('slug'));
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
function serializeData(data) {
|
||||
return (0, _serializeEntryValues.serializeValues)(data, fields);
|
||||
}
|
||||
const serializedData = serializeData(entry.get('data'));
|
||||
let serializedEntry = entry.set('data', serializedData);
|
||||
if ((0, _i18n.hasI18n)(collection)) {
|
||||
serializedEntry = (0, _i18n.serializeI18n)(collection, serializedEntry, serializeData);
|
||||
}
|
||||
return serializedEntry;
|
||||
}
|
||||
function persistEntry(collection) {
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const entryDraft = state.entryDraft;
|
||||
const fieldsErrors = entryDraft.get('fieldsErrors');
|
||||
const usedSlugs = (0, _reducers.selectPublishedSlugs)(state, collection.get('name'));
|
||||
|
||||
// Early return if draft contains validation errors
|
||||
if (!fieldsErrors.isEmpty()) {
|
||||
const hasPresenceErrors = fieldsErrors.some(errors => errors.some(error => error.type && error.type === _validationErrorTypes.default.PRESENCE));
|
||||
if (hasPresenceErrors) {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.missingRequiredField'
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
}
|
||||
return Promise.reject();
|
||||
}
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const entry = entryDraft.get('entry');
|
||||
const assetProxies = getMediaAssets({
|
||||
entry
|
||||
});
|
||||
const serializedEntry = getSerializedEntry(collection, entry);
|
||||
const serializedEntryDraft = entryDraft.set('entry', serializedEntry);
|
||||
dispatch(entryPersisting(collection, serializedEntry));
|
||||
return backend.persistEntry({
|
||||
config: state.config,
|
||||
collection,
|
||||
entryDraft: serializedEntryDraft,
|
||||
assetProxies,
|
||||
usedSlugs
|
||||
}).then(async newSlug => {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.entrySaved'
|
||||
},
|
||||
type: 'success',
|
||||
dismissAfter: 4000
|
||||
}));
|
||||
|
||||
// re-load media library if entry had media files
|
||||
if (assetProxies.length > 0) {
|
||||
await dispatch((0, _mediaLibrary.loadMedia)());
|
||||
}
|
||||
dispatch(entryPersisted(collection, serializedEntry, newSlug));
|
||||
if (collection.has('nested')) {
|
||||
await dispatch(loadEntries(collection));
|
||||
}
|
||||
if (entry.get('slug') !== newSlug) {
|
||||
await dispatch(loadEntry(collection, newSlug));
|
||||
(0, _history.navigateToEntry)(collection.get('name'), newSlug);
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error(error);
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
details: error,
|
||||
key: 'ui.toast.onFailToPersist'
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
return Promise.reject(dispatch(entryPersistFail(collection, serializedEntry, error)));
|
||||
});
|
||||
};
|
||||
}
|
||||
function deleteEntry(collection, slug) {
|
||||
return (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
dispatch(entryDeleting(collection, slug));
|
||||
return backend.deleteEntry(state, collection, slug).then(() => {
|
||||
return dispatch(entryDeleted(collection, slug));
|
||||
}).catch(error => {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
details: error,
|
||||
key: 'ui.toast.onFailToDelete'
|
||||
},
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
console.error(error);
|
||||
return Promise.reject(dispatch(entryDeleteFail(collection, slug, error)));
|
||||
});
|
||||
};
|
||||
}
|
||||
function getPathError(path, key, t) {
|
||||
return {
|
||||
error: {
|
||||
type: _validationErrorTypes.default.CUSTOM,
|
||||
message: t(`editor.editorControlPane.widget.${key}`, {
|
||||
path
|
||||
})
|
||||
}
|
||||
};
|
||||
}
|
||||
function validateMetaField(state, collection, field, value, t) {
|
||||
if (field.get('meta') && field.get('name') === 'path') {
|
||||
var _state$entryDraft;
|
||||
if (!value) {
|
||||
return getPathError(value, 'invalidPath', t);
|
||||
}
|
||||
const sanitizedPath = value.split('/').map((0, _formatters.getProcessSegment)(state.config.slug)).join('/');
|
||||
if (value !== sanitizedPath) {
|
||||
return getPathError(value, 'invalidPath', t);
|
||||
}
|
||||
const customPath = (0, _entryDraft.selectCustomPath)(collection, (0, _immutable.fromJS)({
|
||||
entry: {
|
||||
meta: {
|
||||
path: value
|
||||
}
|
||||
}
|
||||
}));
|
||||
const existingEntry = customPath ? (0, _entries.selectEntryByPath)(state.entries, collection.get('name'), customPath) : undefined;
|
||||
const existingEntryPath = existingEntry === null || existingEntry === void 0 ? void 0 : existingEntry.get('path');
|
||||
const draftPath = (_state$entryDraft = state.entryDraft) === null || _state$entryDraft === void 0 ? void 0 : _state$entryDraft.getIn(['entry', 'path']);
|
||||
if (existingEntryPath && existingEntryPath !== draftPath) {
|
||||
return getPathError(value, 'pathExists', t);
|
||||
}
|
||||
}
|
||||
return {
|
||||
error: false
|
||||
};
|
||||
}
|
||||
162
node_modules/decap-cms-core/dist/esm/actions/media.js
generated
vendored
Normal file
162
node_modules/decap-cms-core/dist/esm/actions/media.js
generated
vendored
Normal file
@@ -0,0 +1,162 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.REMOVE_ASSET = exports.LOAD_ASSET_SUCCESS = exports.LOAD_ASSET_REQUEST = exports.LOAD_ASSET_FAILURE = exports.ADD_ASSETS = exports.ADD_ASSET = void 0;
|
||||
exports.addAsset = addAsset;
|
||||
exports.addAssets = addAssets;
|
||||
exports.boundGetAsset = boundGetAsset;
|
||||
exports.getAsset = getAsset;
|
||||
exports.loadAsset = loadAsset;
|
||||
exports.loadAssetFailure = loadAssetFailure;
|
||||
exports.loadAssetRequest = loadAssetRequest;
|
||||
exports.loadAssetSuccess = loadAssetSuccess;
|
||||
exports.removeAsset = removeAsset;
|
||||
var _decapCmsLibUtil = require("decap-cms-lib-util");
|
||||
var _AssetProxy = require("../valueObjects/AssetProxy");
|
||||
var _entries = require("../reducers/entries");
|
||||
var _mediaLibrary = require("../reducers/mediaLibrary");
|
||||
var _mediaLibrary2 = require("./mediaLibrary");
|
||||
const ADD_ASSETS = exports.ADD_ASSETS = 'ADD_ASSETS';
|
||||
const ADD_ASSET = exports.ADD_ASSET = 'ADD_ASSET';
|
||||
const REMOVE_ASSET = exports.REMOVE_ASSET = 'REMOVE_ASSET';
|
||||
const LOAD_ASSET_REQUEST = exports.LOAD_ASSET_REQUEST = 'LOAD_ASSET_REQUEST';
|
||||
const LOAD_ASSET_SUCCESS = exports.LOAD_ASSET_SUCCESS = 'LOAD_ASSET_SUCCESS';
|
||||
const LOAD_ASSET_FAILURE = exports.LOAD_ASSET_FAILURE = 'LOAD_ASSET_FAILURE';
|
||||
function addAssets(assets) {
|
||||
return {
|
||||
type: ADD_ASSETS,
|
||||
payload: assets
|
||||
};
|
||||
}
|
||||
function addAsset(assetProxy) {
|
||||
return {
|
||||
type: ADD_ASSET,
|
||||
payload: assetProxy
|
||||
};
|
||||
}
|
||||
function removeAsset(path) {
|
||||
return {
|
||||
type: REMOVE_ASSET,
|
||||
payload: path
|
||||
};
|
||||
}
|
||||
function loadAssetRequest(path) {
|
||||
return {
|
||||
type: LOAD_ASSET_REQUEST,
|
||||
payload: {
|
||||
path
|
||||
}
|
||||
};
|
||||
}
|
||||
function loadAssetSuccess(path) {
|
||||
return {
|
||||
type: LOAD_ASSET_SUCCESS,
|
||||
payload: {
|
||||
path
|
||||
}
|
||||
};
|
||||
}
|
||||
function loadAssetFailure(path, error) {
|
||||
return {
|
||||
type: LOAD_ASSET_FAILURE,
|
||||
payload: {
|
||||
path,
|
||||
error
|
||||
}
|
||||
};
|
||||
}
|
||||
function loadAsset(resolvedPath) {
|
||||
return async (dispatch, getState) => {
|
||||
try {
|
||||
dispatch(loadAssetRequest(resolvedPath));
|
||||
// load asset url from backend
|
||||
await (0, _mediaLibrary2.waitForMediaLibraryToLoad)(dispatch, getState());
|
||||
const file = (0, _mediaLibrary.selectMediaFileByPath)(getState(), resolvedPath);
|
||||
if (file) {
|
||||
const url = await (0, _mediaLibrary2.getMediaDisplayURL)(dispatch, getState(), file);
|
||||
const asset = (0, _AssetProxy.createAssetProxy)({
|
||||
path: resolvedPath,
|
||||
url: url || resolvedPath
|
||||
});
|
||||
dispatch(addAsset(asset));
|
||||
} else {
|
||||
const {
|
||||
url
|
||||
} = await (0, _mediaLibrary2.getMediaFile)(getState(), resolvedPath);
|
||||
const asset = (0, _AssetProxy.createAssetProxy)({
|
||||
path: resolvedPath,
|
||||
url
|
||||
});
|
||||
dispatch(addAsset(asset));
|
||||
}
|
||||
dispatch(loadAssetSuccess(resolvedPath));
|
||||
} catch (e) {
|
||||
dispatch(loadAssetFailure(resolvedPath, e));
|
||||
}
|
||||
};
|
||||
}
|
||||
const emptyAsset = (0, _AssetProxy.createAssetProxy)({
|
||||
path: 'empty.svg',
|
||||
file: new File([`<svg xmlns="http://www.w3.org/2000/svg"></svg>`], 'empty.svg', {
|
||||
type: 'image/svg+xml'
|
||||
})
|
||||
});
|
||||
function boundGetAsset(dispatch, collection, entry) {
|
||||
function bound(path, field) {
|
||||
const asset = dispatch(getAsset({
|
||||
collection,
|
||||
entry,
|
||||
path,
|
||||
field
|
||||
}));
|
||||
return asset;
|
||||
}
|
||||
return bound;
|
||||
}
|
||||
function getAsset({
|
||||
collection,
|
||||
entry,
|
||||
path,
|
||||
field
|
||||
}) {
|
||||
return (dispatch, getState) => {
|
||||
if (!path) return emptyAsset;
|
||||
const state = getState();
|
||||
const resolvedPath = (0, _entries.selectMediaFilePath)(state.config, collection, entry, path, field);
|
||||
let {
|
||||
asset,
|
||||
isLoading,
|
||||
error
|
||||
} = state.medias[resolvedPath] || {};
|
||||
if (isLoading) {
|
||||
return emptyAsset;
|
||||
}
|
||||
if (asset) {
|
||||
// There is already an AssetProxy in memory for this path. Use it.
|
||||
return asset;
|
||||
}
|
||||
if ((0, _decapCmsLibUtil.isAbsolutePath)(resolvedPath)) {
|
||||
// asset path is a public url so we can just use it as is
|
||||
asset = (0, _AssetProxy.createAssetProxy)({
|
||||
path: resolvedPath,
|
||||
url: path
|
||||
});
|
||||
dispatch(addAsset(asset));
|
||||
} else {
|
||||
if (error) {
|
||||
// on load error default back to original path
|
||||
asset = (0, _AssetProxy.createAssetProxy)({
|
||||
path: resolvedPath,
|
||||
url: path
|
||||
});
|
||||
dispatch(addAsset(asset));
|
||||
} else {
|
||||
dispatch(loadAsset(resolvedPath));
|
||||
asset = emptyAsset;
|
||||
}
|
||||
}
|
||||
return asset;
|
||||
};
|
||||
}
|
||||
589
node_modules/decap-cms-core/dist/esm/actions/mediaLibrary.js
generated
vendored
Normal file
589
node_modules/decap-cms-core/dist/esm/actions/mediaLibrary.js
generated
vendored
Normal file
@@ -0,0 +1,589 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.MEDIA_REMOVE_INSERTED = exports.MEDIA_PERSIST_SUCCESS = exports.MEDIA_PERSIST_REQUEST = exports.MEDIA_PERSIST_FAILURE = exports.MEDIA_LOAD_SUCCESS = exports.MEDIA_LOAD_REQUEST = exports.MEDIA_LOAD_FAILURE = exports.MEDIA_LIBRARY_OPEN = exports.MEDIA_LIBRARY_CREATE = exports.MEDIA_LIBRARY_CLOSE = exports.MEDIA_INSERT = exports.MEDIA_DISPLAY_URL_SUCCESS = exports.MEDIA_DISPLAY_URL_REQUEST = exports.MEDIA_DISPLAY_URL_FAILURE = exports.MEDIA_DELETE_SUCCESS = exports.MEDIA_DELETE_REQUEST = exports.MEDIA_DELETE_FAILURE = void 0;
|
||||
exports.clearMediaControl = clearMediaControl;
|
||||
exports.closeMediaLibrary = closeMediaLibrary;
|
||||
exports.createMediaLibrary = createMediaLibrary;
|
||||
exports.deleteMedia = deleteMedia;
|
||||
exports.getMediaDisplayURL = getMediaDisplayURL;
|
||||
exports.getMediaFile = getMediaFile;
|
||||
exports.insertMedia = insertMedia;
|
||||
exports.loadMedia = loadMedia;
|
||||
exports.loadMediaDisplayURL = loadMediaDisplayURL;
|
||||
exports.mediaDeleteFailed = mediaDeleteFailed;
|
||||
exports.mediaDeleted = mediaDeleted;
|
||||
exports.mediaDeleting = mediaDeleting;
|
||||
exports.mediaDisplayURLFailure = mediaDisplayURLFailure;
|
||||
exports.mediaDisplayURLRequest = mediaDisplayURLRequest;
|
||||
exports.mediaDisplayURLSuccess = mediaDisplayURLSuccess;
|
||||
exports.mediaLoadFailed = mediaLoadFailed;
|
||||
exports.mediaLoaded = mediaLoaded;
|
||||
exports.mediaLoading = mediaLoading;
|
||||
exports.mediaPersistFailed = mediaPersistFailed;
|
||||
exports.mediaPersisted = mediaPersisted;
|
||||
exports.mediaPersisting = mediaPersisting;
|
||||
exports.openMediaLibrary = openMediaLibrary;
|
||||
exports.persistMedia = persistMedia;
|
||||
exports.removeInsertedMedia = removeInsertedMedia;
|
||||
exports.removeMediaControl = removeMediaControl;
|
||||
exports.waitForMediaLibraryToLoad = waitForMediaLibraryToLoad;
|
||||
var _immutable = require("immutable");
|
||||
var _decapCmsLibUtil = require("decap-cms-lib-util");
|
||||
var _backend = require("../backend");
|
||||
var _AssetProxy = require("../valueObjects/AssetProxy");
|
||||
var _reducers = require("../reducers");
|
||||
var _entries = require("../reducers/entries");
|
||||
var _mediaLibrary = require("../reducers/mediaLibrary");
|
||||
var _integrations = require("../integrations");
|
||||
var _media = require("./media");
|
||||
var _entries2 = require("./entries");
|
||||
var _urlHelper = require("../lib/urlHelper");
|
||||
var _waitUntil = require("./waitUntil");
|
||||
var _notifications = require("./notifications");
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const MEDIA_LIBRARY_OPEN = exports.MEDIA_LIBRARY_OPEN = 'MEDIA_LIBRARY_OPEN';
|
||||
const MEDIA_LIBRARY_CLOSE = exports.MEDIA_LIBRARY_CLOSE = 'MEDIA_LIBRARY_CLOSE';
|
||||
const MEDIA_LIBRARY_CREATE = exports.MEDIA_LIBRARY_CREATE = 'MEDIA_LIBRARY_CREATE';
|
||||
const MEDIA_INSERT = exports.MEDIA_INSERT = 'MEDIA_INSERT';
|
||||
const MEDIA_REMOVE_INSERTED = exports.MEDIA_REMOVE_INSERTED = 'MEDIA_REMOVE_INSERTED';
|
||||
const MEDIA_LOAD_REQUEST = exports.MEDIA_LOAD_REQUEST = 'MEDIA_LOAD_REQUEST';
|
||||
const MEDIA_LOAD_SUCCESS = exports.MEDIA_LOAD_SUCCESS = 'MEDIA_LOAD_SUCCESS';
|
||||
const MEDIA_LOAD_FAILURE = exports.MEDIA_LOAD_FAILURE = 'MEDIA_LOAD_FAILURE';
|
||||
const MEDIA_PERSIST_REQUEST = exports.MEDIA_PERSIST_REQUEST = 'MEDIA_PERSIST_REQUEST';
|
||||
const MEDIA_PERSIST_SUCCESS = exports.MEDIA_PERSIST_SUCCESS = 'MEDIA_PERSIST_SUCCESS';
|
||||
const MEDIA_PERSIST_FAILURE = exports.MEDIA_PERSIST_FAILURE = 'MEDIA_PERSIST_FAILURE';
|
||||
const MEDIA_DELETE_REQUEST = exports.MEDIA_DELETE_REQUEST = 'MEDIA_DELETE_REQUEST';
|
||||
const MEDIA_DELETE_SUCCESS = exports.MEDIA_DELETE_SUCCESS = 'MEDIA_DELETE_SUCCESS';
|
||||
const MEDIA_DELETE_FAILURE = exports.MEDIA_DELETE_FAILURE = 'MEDIA_DELETE_FAILURE';
|
||||
const MEDIA_DISPLAY_URL_REQUEST = exports.MEDIA_DISPLAY_URL_REQUEST = 'MEDIA_DISPLAY_URL_REQUEST';
|
||||
const MEDIA_DISPLAY_URL_SUCCESS = exports.MEDIA_DISPLAY_URL_SUCCESS = 'MEDIA_DISPLAY_URL_SUCCESS';
|
||||
const MEDIA_DISPLAY_URL_FAILURE = exports.MEDIA_DISPLAY_URL_FAILURE = 'MEDIA_DISPLAY_URL_FAILURE';
|
||||
function createMediaLibrary(instance) {
|
||||
const api = {
|
||||
show: instance.show || (() => undefined),
|
||||
hide: instance.hide || (() => undefined),
|
||||
onClearControl: instance.onClearControl || (() => undefined),
|
||||
onRemoveControl: instance.onRemoveControl || (() => undefined),
|
||||
enableStandalone: instance.enableStandalone || (() => undefined)
|
||||
};
|
||||
return {
|
||||
type: MEDIA_LIBRARY_CREATE,
|
||||
payload: api
|
||||
};
|
||||
}
|
||||
function clearMediaControl(id) {
|
||||
return (_dispatch, getState) => {
|
||||
const state = getState();
|
||||
const mediaLibrary = state.mediaLibrary.get('externalLibrary');
|
||||
if (mediaLibrary) {
|
||||
mediaLibrary.onClearControl({
|
||||
id
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
function removeMediaControl(id) {
|
||||
return (_dispatch, getState) => {
|
||||
const state = getState();
|
||||
const mediaLibrary = state.mediaLibrary.get('externalLibrary');
|
||||
if (mediaLibrary) {
|
||||
mediaLibrary.onRemoveControl({
|
||||
id
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
function openMediaLibrary(payload = {}) {
|
||||
return (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const mediaLibrary = state.mediaLibrary.get('externalLibrary');
|
||||
if (mediaLibrary) {
|
||||
const {
|
||||
controlID: id,
|
||||
value,
|
||||
config = (0, _immutable.Map)(),
|
||||
allowMultiple,
|
||||
forImage
|
||||
} = payload;
|
||||
mediaLibrary.show({
|
||||
id,
|
||||
value,
|
||||
config: config.toJS(),
|
||||
allowMultiple,
|
||||
imagesOnly: forImage
|
||||
});
|
||||
}
|
||||
dispatch(mediaLibraryOpened(payload));
|
||||
};
|
||||
}
|
||||
function closeMediaLibrary() {
|
||||
return (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const mediaLibrary = state.mediaLibrary.get('externalLibrary');
|
||||
if (mediaLibrary) {
|
||||
mediaLibrary.hide();
|
||||
}
|
||||
dispatch(mediaLibraryClosed());
|
||||
};
|
||||
}
|
||||
function insertMedia(mediaPath, field) {
|
||||
return (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const config = state.config;
|
||||
const entry = state.entryDraft.get('entry');
|
||||
const collectionName = state.entryDraft.getIn(['entry', 'collection']);
|
||||
const collection = state.collections.get(collectionName);
|
||||
if (Array.isArray(mediaPath)) {
|
||||
mediaPath = mediaPath.map(path => (0, _entries.selectMediaFilePublicPath)(config, collection, path, entry, field));
|
||||
} else {
|
||||
mediaPath = (0, _entries.selectMediaFilePublicPath)(config, collection, mediaPath, entry, field);
|
||||
}
|
||||
dispatch(mediaInserted(mediaPath));
|
||||
};
|
||||
}
|
||||
function removeInsertedMedia(controlID) {
|
||||
return {
|
||||
type: MEDIA_REMOVE_INSERTED,
|
||||
payload: {
|
||||
controlID
|
||||
}
|
||||
};
|
||||
}
|
||||
function loadMedia(opts = {}) {
|
||||
const {
|
||||
delay = 0,
|
||||
query = '',
|
||||
page = 1,
|
||||
privateUpload
|
||||
} = opts;
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const integration = (0, _reducers.selectIntegration)(state, null, 'assetStore');
|
||||
if (integration) {
|
||||
const provider = (0, _integrations.getIntegrationProvider)(state.integrations, backend.getToken, integration);
|
||||
dispatch(mediaLoading(page));
|
||||
try {
|
||||
const files = await provider.retrieve(query, page, privateUpload);
|
||||
const mediaLoadedOpts = {
|
||||
page,
|
||||
canPaginate: true,
|
||||
dynamicSearch: true,
|
||||
dynamicSearchQuery: query,
|
||||
privateUpload
|
||||
};
|
||||
return dispatch(mediaLoaded(files, mediaLoadedOpts));
|
||||
} catch (error) {
|
||||
return dispatch(mediaLoadFailed({
|
||||
privateUpload
|
||||
}));
|
||||
}
|
||||
}
|
||||
dispatch(mediaLoading(page));
|
||||
function loadFunction() {
|
||||
return backend.getMedia().then(files => dispatch(mediaLoaded(files))).catch(error => {
|
||||
console.error(error);
|
||||
if (error.status === 404) {
|
||||
console.log('This 404 was expected and handled appropriately.');
|
||||
dispatch(mediaLoaded([]));
|
||||
} else {
|
||||
dispatch(mediaLoadFailed());
|
||||
}
|
||||
});
|
||||
}
|
||||
if (delay > 0) {
|
||||
return new Promise(resolve => {
|
||||
setTimeout(() => resolve(loadFunction()), delay);
|
||||
});
|
||||
} else {
|
||||
return loadFunction();
|
||||
}
|
||||
};
|
||||
}
|
||||
function createMediaFileFromAsset({
|
||||
id,
|
||||
file,
|
||||
assetProxy,
|
||||
draft
|
||||
}) {
|
||||
const mediaFile = {
|
||||
id,
|
||||
name: (0, _decapCmsLibUtil.basename)(assetProxy.path),
|
||||
displayURL: assetProxy.url,
|
||||
draft,
|
||||
file,
|
||||
size: file.size,
|
||||
url: assetProxy.url,
|
||||
path: assetProxy.path,
|
||||
field: assetProxy.field
|
||||
};
|
||||
return mediaFile;
|
||||
}
|
||||
function persistMedia(file, opts = {}) {
|
||||
const {
|
||||
privateUpload,
|
||||
field
|
||||
} = opts;
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const integration = (0, _reducers.selectIntegration)(state, null, 'assetStore');
|
||||
const files = (0, _mediaLibrary.selectMediaFiles)(state, field);
|
||||
const fileName = (0, _urlHelper.sanitizeSlug)(file.name.toLowerCase(), state.config.slug);
|
||||
const existingFile = files.find(existingFile => existingFile.name.toLowerCase() === fileName);
|
||||
const editingDraft = (0, _entries.selectEditingDraft)(state.entryDraft);
|
||||
|
||||
/**
|
||||
* Check for existing files of the same name before persisting. If no asset
|
||||
* store integration is used, files are being stored in Git, so we can
|
||||
* expect file names to be unique. If an asset store is in use, file names
|
||||
* may not be unique, so we forego this check.
|
||||
*/
|
||||
if (!integration && existingFile) {
|
||||
if (!window.confirm(`${existingFile.name} already exists. Do you want to replace it?`)) {
|
||||
return;
|
||||
} else {
|
||||
await dispatch(deleteMedia(existingFile, {
|
||||
privateUpload
|
||||
}));
|
||||
}
|
||||
}
|
||||
if (integration || !editingDraft) {
|
||||
dispatch(mediaPersisting());
|
||||
}
|
||||
try {
|
||||
let assetProxy;
|
||||
if (integration) {
|
||||
try {
|
||||
const provider = (0, _integrations.getIntegrationProvider)(state.integrations, backend.getToken, integration);
|
||||
const response = await provider.upload(file, privateUpload);
|
||||
assetProxy = (0, _AssetProxy.createAssetProxy)({
|
||||
url: response.asset.url,
|
||||
path: response.asset.url
|
||||
});
|
||||
} catch (error) {
|
||||
assetProxy = (0, _AssetProxy.createAssetProxy)({
|
||||
file,
|
||||
path: fileName
|
||||
});
|
||||
}
|
||||
} else if (privateUpload) {
|
||||
throw new Error('The Private Upload option is only available for Asset Store Integration');
|
||||
} else {
|
||||
const entry = state.entryDraft.get('entry');
|
||||
const collection = state.collections.get(entry === null || entry === void 0 ? void 0 : entry.get('collection'));
|
||||
const path = (0, _entries.selectMediaFilePath)(state.config, collection, entry, fileName, field);
|
||||
assetProxy = (0, _AssetProxy.createAssetProxy)({
|
||||
file,
|
||||
path,
|
||||
field
|
||||
});
|
||||
}
|
||||
dispatch((0, _media.addAsset)(assetProxy));
|
||||
let mediaFile;
|
||||
if (integration) {
|
||||
const id = await (0, _decapCmsLibUtil.getBlobSHA)(file);
|
||||
// integration assets are persisted immediately, thus draft is false
|
||||
mediaFile = createMediaFileFromAsset({
|
||||
id,
|
||||
file,
|
||||
assetProxy,
|
||||
draft: false
|
||||
});
|
||||
} else if (editingDraft) {
|
||||
const id = await (0, _decapCmsLibUtil.getBlobSHA)(file);
|
||||
mediaFile = createMediaFileFromAsset({
|
||||
id,
|
||||
file,
|
||||
assetProxy,
|
||||
draft: editingDraft
|
||||
});
|
||||
return dispatch((0, _entries2.addDraftEntryMediaFile)(mediaFile));
|
||||
} else {
|
||||
mediaFile = await backend.persistMedia(state.config, assetProxy);
|
||||
}
|
||||
return dispatch(mediaPersisted(mediaFile, {
|
||||
privateUpload
|
||||
}));
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: `Failed to persist media: ${error}`,
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
return dispatch(mediaPersistFailed({
|
||||
privateUpload
|
||||
}));
|
||||
}
|
||||
};
|
||||
}
|
||||
function deleteMedia(file, opts = {}) {
|
||||
const {
|
||||
privateUpload
|
||||
} = opts;
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const integration = (0, _reducers.selectIntegration)(state, null, 'assetStore');
|
||||
if (integration) {
|
||||
const provider = (0, _integrations.getIntegrationProvider)(state.integrations, backend.getToken, integration);
|
||||
dispatch(mediaDeleting());
|
||||
try {
|
||||
await provider.delete(file.id);
|
||||
return dispatch(mediaDeleted(file, {
|
||||
privateUpload
|
||||
}));
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: `Failed to delete media: ${error.message}`,
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
return dispatch(mediaDeleteFailed({
|
||||
privateUpload
|
||||
}));
|
||||
}
|
||||
}
|
||||
try {
|
||||
if (file.draft) {
|
||||
dispatch((0, _media.removeAsset)(file.path));
|
||||
dispatch((0, _entries2.removeDraftEntryMediaFile)({
|
||||
id: file.id
|
||||
}));
|
||||
} else {
|
||||
const editingDraft = (0, _entries.selectEditingDraft)(state.entryDraft);
|
||||
dispatch(mediaDeleting());
|
||||
dispatch((0, _media.removeAsset)(file.path));
|
||||
await backend.deleteMedia(state.config, file.path);
|
||||
dispatch(mediaDeleted(file));
|
||||
if (editingDraft) {
|
||||
dispatch((0, _entries2.removeDraftEntryMediaFile)({
|
||||
id: file.id
|
||||
}));
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: `Failed to delete media: ${error.message}`,
|
||||
type: 'error',
|
||||
dismissAfter: 8000
|
||||
}));
|
||||
return dispatch(mediaDeleteFailed());
|
||||
}
|
||||
};
|
||||
}
|
||||
async function getMediaFile(state, path) {
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const {
|
||||
url
|
||||
} = await backend.getMediaFile(path);
|
||||
return {
|
||||
url
|
||||
};
|
||||
}
|
||||
function loadMediaDisplayURL(file) {
|
||||
return async (dispatch, getState) => {
|
||||
const {
|
||||
displayURL,
|
||||
id
|
||||
} = file;
|
||||
const state = getState();
|
||||
const displayURLState = (0, _mediaLibrary.selectMediaDisplayURL)(state, id);
|
||||
if (!id || !displayURL || displayURLState.get('url') || displayURLState.get('isFetching') || displayURLState.get('err')) {
|
||||
return Promise.resolve();
|
||||
}
|
||||
if (typeof displayURL === 'string') {
|
||||
dispatch(mediaDisplayURLRequest(id));
|
||||
dispatch(mediaDisplayURLSuccess(id, displayURL));
|
||||
return;
|
||||
}
|
||||
try {
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
dispatch(mediaDisplayURLRequest(id));
|
||||
const newURL = await backend.getMediaDisplayURL(displayURL);
|
||||
if (newURL) {
|
||||
dispatch(mediaDisplayURLSuccess(id, newURL));
|
||||
} else {
|
||||
throw new Error('No display URL was returned!');
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
dispatch(mediaDisplayURLFailure(id, err));
|
||||
}
|
||||
};
|
||||
}
|
||||
function mediaLibraryOpened(payload) {
|
||||
return {
|
||||
type: MEDIA_LIBRARY_OPEN,
|
||||
payload
|
||||
};
|
||||
}
|
||||
function mediaLibraryClosed() {
|
||||
return {
|
||||
type: MEDIA_LIBRARY_CLOSE
|
||||
};
|
||||
}
|
||||
function mediaInserted(mediaPath) {
|
||||
return {
|
||||
type: MEDIA_INSERT,
|
||||
payload: {
|
||||
mediaPath
|
||||
}
|
||||
};
|
||||
}
|
||||
function mediaLoading(page) {
|
||||
return {
|
||||
type: MEDIA_LOAD_REQUEST,
|
||||
payload: {
|
||||
page
|
||||
}
|
||||
};
|
||||
}
|
||||
function mediaLoaded(files, opts = {}) {
|
||||
return {
|
||||
type: MEDIA_LOAD_SUCCESS,
|
||||
payload: _objectSpread({
|
||||
files
|
||||
}, opts)
|
||||
};
|
||||
}
|
||||
function mediaLoadFailed(opts = {}) {
|
||||
const {
|
||||
privateUpload
|
||||
} = opts;
|
||||
return {
|
||||
type: MEDIA_LOAD_FAILURE,
|
||||
payload: {
|
||||
privateUpload
|
||||
}
|
||||
};
|
||||
}
|
||||
function mediaPersisting() {
|
||||
return {
|
||||
type: MEDIA_PERSIST_REQUEST
|
||||
};
|
||||
}
|
||||
function mediaPersisted(file, opts = {}) {
|
||||
const {
|
||||
privateUpload
|
||||
} = opts;
|
||||
return {
|
||||
type: MEDIA_PERSIST_SUCCESS,
|
||||
payload: {
|
||||
file,
|
||||
privateUpload
|
||||
}
|
||||
};
|
||||
}
|
||||
function mediaPersistFailed(opts = {}) {
|
||||
const {
|
||||
privateUpload
|
||||
} = opts;
|
||||
return {
|
||||
type: MEDIA_PERSIST_FAILURE,
|
||||
payload: {
|
||||
privateUpload
|
||||
}
|
||||
};
|
||||
}
|
||||
function mediaDeleting() {
|
||||
return {
|
||||
type: MEDIA_DELETE_REQUEST
|
||||
};
|
||||
}
|
||||
function mediaDeleted(file, opts = {}) {
|
||||
const {
|
||||
privateUpload
|
||||
} = opts;
|
||||
return {
|
||||
type: MEDIA_DELETE_SUCCESS,
|
||||
payload: {
|
||||
file,
|
||||
privateUpload
|
||||
}
|
||||
};
|
||||
}
|
||||
function mediaDeleteFailed(opts = {}) {
|
||||
const {
|
||||
privateUpload
|
||||
} = opts;
|
||||
return {
|
||||
type: MEDIA_DELETE_FAILURE,
|
||||
payload: {
|
||||
privateUpload
|
||||
}
|
||||
};
|
||||
}
|
||||
function mediaDisplayURLRequest(key) {
|
||||
return {
|
||||
type: MEDIA_DISPLAY_URL_REQUEST,
|
||||
payload: {
|
||||
key
|
||||
}
|
||||
};
|
||||
}
|
||||
function mediaDisplayURLSuccess(key, url) {
|
||||
return {
|
||||
type: MEDIA_DISPLAY_URL_SUCCESS,
|
||||
payload: {
|
||||
key,
|
||||
url
|
||||
}
|
||||
};
|
||||
}
|
||||
function mediaDisplayURLFailure(key, err) {
|
||||
return {
|
||||
type: MEDIA_DISPLAY_URL_FAILURE,
|
||||
payload: {
|
||||
key,
|
||||
err
|
||||
}
|
||||
};
|
||||
}
|
||||
async function waitForMediaLibraryToLoad(dispatch, state) {
|
||||
if (state.mediaLibrary.get('isLoading') !== false && !state.mediaLibrary.get('externalLibrary')) {
|
||||
await (0, _waitUntil.waitUntilWithTimeout)(dispatch, resolve => ({
|
||||
predicate: ({
|
||||
type
|
||||
}) => type === MEDIA_LOAD_SUCCESS || type === MEDIA_LOAD_FAILURE,
|
||||
run: () => resolve()
|
||||
}));
|
||||
}
|
||||
}
|
||||
async function getMediaDisplayURL(dispatch, state, file) {
|
||||
const displayURLState = (0, _mediaLibrary.selectMediaDisplayURL)(state, file.id);
|
||||
let url;
|
||||
if (displayURLState.get('url')) {
|
||||
// url was already loaded
|
||||
url = displayURLState.get('url');
|
||||
} else if (displayURLState.get('err')) {
|
||||
// url loading had an error
|
||||
url = null;
|
||||
} else {
|
||||
var _await$promise;
|
||||
const key = file.id;
|
||||
const promise = (0, _waitUntil.waitUntilWithTimeout)(dispatch, resolve => ({
|
||||
predicate: ({
|
||||
type,
|
||||
payload
|
||||
}) => (type === MEDIA_DISPLAY_URL_SUCCESS || type === MEDIA_DISPLAY_URL_FAILURE) && payload.key === key,
|
||||
run: (_dispatch, _getState, action) => resolve(action.payload.url)
|
||||
}));
|
||||
if (!displayURLState.get('isFetching')) {
|
||||
// load display url
|
||||
dispatch(loadMediaDisplayURL(file));
|
||||
}
|
||||
url = (_await$promise = await promise) !== null && _await$promise !== void 0 ? _await$promise : null;
|
||||
}
|
||||
return url;
|
||||
}
|
||||
29
node_modules/decap-cms-core/dist/esm/actions/notifications.js
generated
vendored
Normal file
29
node_modules/decap-cms-core/dist/esm/actions/notifications.js
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.NOTIFICATION_SEND = exports.NOTIFICATION_DISMISS = exports.NOTIFICATIONS_CLEAR = void 0;
|
||||
exports.addNotification = addNotification;
|
||||
exports.clearNotifications = clearNotifications;
|
||||
exports.dismissNotification = dismissNotification;
|
||||
const NOTIFICATION_SEND = exports.NOTIFICATION_SEND = 'NOTIFICATION_SEND';
|
||||
const NOTIFICATION_DISMISS = exports.NOTIFICATION_DISMISS = 'NOTIFICATION_DISMISS';
|
||||
const NOTIFICATIONS_CLEAR = exports.NOTIFICATIONS_CLEAR = 'NOTIFICATION_CLEAR';
|
||||
function addNotification(notification) {
|
||||
return {
|
||||
type: NOTIFICATION_SEND,
|
||||
payload: notification
|
||||
};
|
||||
}
|
||||
function dismissNotification(id) {
|
||||
return {
|
||||
type: NOTIFICATION_DISMISS,
|
||||
id
|
||||
};
|
||||
}
|
||||
function clearNotifications() {
|
||||
return {
|
||||
type: NOTIFICATIONS_CLEAR
|
||||
};
|
||||
}
|
||||
166
node_modules/decap-cms-core/dist/esm/actions/search.js
generated
vendored
Normal file
166
node_modules/decap-cms-core/dist/esm/actions/search.js
generated
vendored
Normal file
@@ -0,0 +1,166 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.SEARCH_ENTRIES_SUCCESS = exports.SEARCH_ENTRIES_REQUEST = exports.SEARCH_ENTRIES_FAILURE = exports.SEARCH_CLEAR = exports.QUERY_SUCCESS = exports.QUERY_REQUEST = exports.QUERY_FAILURE = exports.CLEAR_REQUESTS = void 0;
|
||||
exports.clearRequests = clearRequests;
|
||||
exports.clearSearch = clearSearch;
|
||||
exports.query = query;
|
||||
exports.queryFailure = queryFailure;
|
||||
exports.querySuccess = querySuccess;
|
||||
exports.querying = querying;
|
||||
exports.searchEntries = searchEntries;
|
||||
exports.searchFailure = searchFailure;
|
||||
exports.searchSuccess = searchSuccess;
|
||||
exports.searchingEntries = searchingEntries;
|
||||
var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
|
||||
var _backend = require("../backend");
|
||||
var _integrations = require("../integrations");
|
||||
var _reducers = require("../reducers");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
/*
|
||||
* Constant Declarations
|
||||
*/
|
||||
const SEARCH_ENTRIES_REQUEST = exports.SEARCH_ENTRIES_REQUEST = 'SEARCH_ENTRIES_REQUEST';
|
||||
const SEARCH_ENTRIES_SUCCESS = exports.SEARCH_ENTRIES_SUCCESS = 'SEARCH_ENTRIES_SUCCESS';
|
||||
const SEARCH_ENTRIES_FAILURE = exports.SEARCH_ENTRIES_FAILURE = 'SEARCH_ENTRIES_FAILURE';
|
||||
const QUERY_REQUEST = exports.QUERY_REQUEST = 'QUERY_REQUEST';
|
||||
const QUERY_SUCCESS = exports.QUERY_SUCCESS = 'QUERY_SUCCESS';
|
||||
const QUERY_FAILURE = exports.QUERY_FAILURE = 'QUERY_FAILURE';
|
||||
const SEARCH_CLEAR = exports.SEARCH_CLEAR = 'SEARCH_CLEAR';
|
||||
const CLEAR_REQUESTS = exports.CLEAR_REQUESTS = 'CLEAR_REQUESTS';
|
||||
|
||||
/*
|
||||
* Simple Action Creators (Internal)
|
||||
* We still need to export them for tests
|
||||
*/
|
||||
function searchingEntries(searchTerm, searchCollections, page) {
|
||||
return {
|
||||
type: SEARCH_ENTRIES_REQUEST,
|
||||
payload: {
|
||||
searchTerm,
|
||||
searchCollections,
|
||||
page
|
||||
}
|
||||
};
|
||||
}
|
||||
function searchSuccess(entries, page) {
|
||||
return {
|
||||
type: SEARCH_ENTRIES_SUCCESS,
|
||||
payload: {
|
||||
entries,
|
||||
page
|
||||
}
|
||||
};
|
||||
}
|
||||
function searchFailure(error) {
|
||||
return {
|
||||
type: SEARCH_ENTRIES_FAILURE,
|
||||
payload: {
|
||||
error
|
||||
}
|
||||
};
|
||||
}
|
||||
function querying(searchTerm, request) {
|
||||
return {
|
||||
type: QUERY_REQUEST,
|
||||
payload: {
|
||||
searchTerm,
|
||||
request
|
||||
}
|
||||
};
|
||||
}
|
||||
function querySuccess(namespace, hits) {
|
||||
return {
|
||||
type: QUERY_SUCCESS,
|
||||
payload: {
|
||||
namespace,
|
||||
hits
|
||||
}
|
||||
};
|
||||
}
|
||||
function queryFailure(error) {
|
||||
return {
|
||||
type: QUERY_FAILURE,
|
||||
payload: {
|
||||
error
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/*
|
||||
* Exported simple Action Creators
|
||||
*/
|
||||
|
||||
function clearSearch() {
|
||||
return {
|
||||
type: SEARCH_CLEAR
|
||||
};
|
||||
}
|
||||
function clearRequests() {
|
||||
return {
|
||||
type: CLEAR_REQUESTS
|
||||
};
|
||||
}
|
||||
|
||||
/*
|
||||
* Exported Thunk Action Creators
|
||||
*/
|
||||
|
||||
// SearchEntries will search for complete entries in all collections.
|
||||
function searchEntries(searchTerm, searchCollections, page = 0) {
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const {
|
||||
search
|
||||
} = state;
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const allCollections = searchCollections || state.collections.keySeq().toArray();
|
||||
const collections = allCollections.filter(collection => (0, _reducers.selectIntegration)(state, collection, 'search'));
|
||||
const integration = (0, _reducers.selectIntegration)(state, collections[0], 'search');
|
||||
|
||||
// avoid duplicate searches
|
||||
if (search.isFetching && search.term === searchTerm && (0, _isEqual2.default)(allCollections, search.collections) && (
|
||||
// if an integration doesn't exist, 'page' is not used
|
||||
search.page === page || !integration)) {
|
||||
return;
|
||||
}
|
||||
dispatch(searchingEntries(searchTerm, allCollections, page));
|
||||
const searchPromise = integration ? (0, _integrations.getIntegrationProvider)(state.integrations, backend.getToken, integration).search(collections, searchTerm, page) : backend.search(state.collections.filter((_, key) => allCollections.indexOf(key) !== -1).valueSeq().toArray(), searchTerm);
|
||||
try {
|
||||
const response = await searchPromise;
|
||||
return dispatch(searchSuccess(response.entries, response.pagination));
|
||||
} catch (error) {
|
||||
return dispatch(searchFailure(error));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// Instead of searching for complete entries, query will search for specific fields
|
||||
// in specific collections and return raw data (no entries).
|
||||
function query(namespace, collectionName, searchFields, searchTerm, file, limit) {
|
||||
return async (dispatch, getState) => {
|
||||
const state = getState();
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const integration = (0, _reducers.selectIntegration)(state, collectionName, 'search');
|
||||
const collection = state.collections.find(collection => collection.get('name') === collectionName);
|
||||
dispatch(clearRequests());
|
||||
const queryIdentifier = `${collectionName}-${searchFields.join()}-${searchTerm}-${file}-${limit}`;
|
||||
const queuedQueryPromise = state.search.requests.find(({
|
||||
id
|
||||
}) => id == queryIdentifier);
|
||||
const queryPromise = queuedQueryPromise ? queuedQueryPromise.queryResponse : integration ? (0, _integrations.getIntegrationProvider)(state.integrations, backend.getToken, integration).searchBy(searchFields.map(f => `data.${f}`), collectionName, searchTerm) : backend.query(collection, searchFields, searchTerm, file, limit);
|
||||
dispatch(querying(searchTerm, queuedQueryPromise ? undefined : {
|
||||
id: queryIdentifier,
|
||||
expires: new Date(new Date().getTime() + 10 * 1000),
|
||||
queryResponse: queryPromise
|
||||
}));
|
||||
try {
|
||||
const response = await queryPromise;
|
||||
return dispatch(querySuccess(namespace, response.hits));
|
||||
} catch (error) {
|
||||
return dispatch(queryFailure(error));
|
||||
}
|
||||
};
|
||||
}
|
||||
90
node_modules/decap-cms-core/dist/esm/actions/status.js
generated
vendored
Normal file
90
node_modules/decap-cms-core/dist/esm/actions/status.js
generated
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.STATUS_SUCCESS = exports.STATUS_REQUEST = exports.STATUS_FAILURE = void 0;
|
||||
exports.checkBackendStatus = checkBackendStatus;
|
||||
exports.statusFailure = statusFailure;
|
||||
exports.statusRequest = statusRequest;
|
||||
exports.statusSuccess = statusSuccess;
|
||||
var _backend = require("../backend");
|
||||
var _notifications = require("./notifications");
|
||||
const STATUS_REQUEST = exports.STATUS_REQUEST = 'STATUS_REQUEST';
|
||||
const STATUS_SUCCESS = exports.STATUS_SUCCESS = 'STATUS_SUCCESS';
|
||||
const STATUS_FAILURE = exports.STATUS_FAILURE = 'STATUS_FAILURE';
|
||||
function statusRequest() {
|
||||
return {
|
||||
type: STATUS_REQUEST
|
||||
};
|
||||
}
|
||||
function statusSuccess(status) {
|
||||
return {
|
||||
type: STATUS_SUCCESS,
|
||||
payload: {
|
||||
status
|
||||
}
|
||||
};
|
||||
}
|
||||
function statusFailure(error) {
|
||||
return {
|
||||
type: STATUS_FAILURE,
|
||||
payload: {
|
||||
error
|
||||
}
|
||||
};
|
||||
}
|
||||
function checkBackendStatus() {
|
||||
return async (dispatch, getState) => {
|
||||
try {
|
||||
const state = getState();
|
||||
if (state.status.isFetching) {
|
||||
return;
|
||||
}
|
||||
dispatch(statusRequest());
|
||||
const backend = (0, _backend.currentBackend)(state.config);
|
||||
const status = await backend.status();
|
||||
const backendDownKey = 'ui.toast.onBackendDown';
|
||||
const previousBackendDownNotifications = state.notifications.notifications.filter(n => {
|
||||
var _n$message;
|
||||
return typeof n.message != 'string' && ((_n$message = n.message) === null || _n$message === void 0 ? void 0 : _n$message.key) === backendDownKey;
|
||||
});
|
||||
if (status.api.status === false) {
|
||||
if (previousBackendDownNotifications.length === 0) {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
details: status.api.statusPage,
|
||||
key: 'ui.toast.onBackendDown'
|
||||
},
|
||||
type: 'error'
|
||||
}));
|
||||
}
|
||||
return dispatch(statusSuccess(status));
|
||||
} else if (status.api.status === true && previousBackendDownNotifications.length > 0) {
|
||||
// If backend is up, clear all the danger messages
|
||||
previousBackendDownNotifications.forEach(notification => {
|
||||
dispatch((0, _notifications.dismissNotification)(notification.id));
|
||||
});
|
||||
}
|
||||
const authError = status.auth.status === false;
|
||||
if (authError) {
|
||||
const key = 'ui.toast.onLoggedOut';
|
||||
const existingNotification = state.notifications.notifications.find(n => {
|
||||
var _n$message2;
|
||||
return typeof n.message != 'string' && ((_n$message2 = n.message) === null || _n$message2 === void 0 ? void 0 : _n$message2.key) === key;
|
||||
});
|
||||
if (!existingNotification) {
|
||||
dispatch((0, _notifications.addNotification)({
|
||||
message: {
|
||||
key: 'ui.toast.onLoggedOut'
|
||||
},
|
||||
type: 'error'
|
||||
}));
|
||||
}
|
||||
}
|
||||
dispatch(statusSuccess(status));
|
||||
} catch (error) {
|
||||
dispatch(statusFailure(error));
|
||||
}
|
||||
};
|
||||
}
|
||||
39
node_modules/decap-cms-core/dist/esm/actions/waitUntil.js
generated
vendored
Normal file
39
node_modules/decap-cms-core/dist/esm/actions/waitUntil.js
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.waitUntil = waitUntil;
|
||||
exports.waitUntilWithTimeout = waitUntilWithTimeout;
|
||||
var _waitUntilAction = require("../redux/middleware/waitUntilAction");
|
||||
function waitUntil({
|
||||
predicate,
|
||||
run
|
||||
}) {
|
||||
return {
|
||||
type: _waitUntilAction.WAIT_UNTIL_ACTION,
|
||||
predicate,
|
||||
run
|
||||
};
|
||||
}
|
||||
async function waitUntilWithTimeout(dispatch, waitActionArgs, timeout = 30000) {
|
||||
let waitDone = false;
|
||||
const waitPromise = new Promise(resolve => {
|
||||
dispatch(waitUntil(waitActionArgs(resolve)));
|
||||
});
|
||||
const timeoutPromise = new Promise(resolve => {
|
||||
setTimeout(() => {
|
||||
if (waitDone) {
|
||||
resolve();
|
||||
} else {
|
||||
console.warn('Wait Action timed out');
|
||||
resolve(null);
|
||||
}
|
||||
}, timeout);
|
||||
});
|
||||
const result = await Promise.race([waitPromise.then(result => {
|
||||
waitDone = true;
|
||||
return result;
|
||||
}).catch(null), timeoutPromise]);
|
||||
return result;
|
||||
}
|
||||
1104
node_modules/decap-cms-core/dist/esm/backend.js
generated
vendored
Normal file
1104
node_modules/decap-cms-core/dist/esm/backend.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
107
node_modules/decap-cms-core/dist/esm/bootstrap.js
generated
vendored
Normal file
107
node_modules/decap-cms-core/dist/esm/bootstrap.js
generated
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _client = require("react-dom/client");
|
||||
var _reactRedux = require("react-redux");
|
||||
var _reactRouterDom = require("react-router-dom");
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _reactPolyglot = require("react-polyglot");
|
||||
var _redux = require("./redux");
|
||||
var _history = require("./routing/history");
|
||||
var _config = require("./actions/config");
|
||||
var _auth = require("./actions/auth");
|
||||
var _phrases = require("./lib/phrases");
|
||||
var _config2 = require("./reducers/config");
|
||||
var _UI = require("./components/UI");
|
||||
var _App = _interopRequireDefault(require("./components/App/App"));
|
||||
require("./components/EditorWidgets");
|
||||
require("./mediaLibrary");
|
||||
require("what-input");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
const ROOT_ID = 'nc-root';
|
||||
function TranslatedApp({
|
||||
locale,
|
||||
config
|
||||
}) {
|
||||
return (0, _react2.jsx)(_reactPolyglot.I18n, {
|
||||
locale: locale,
|
||||
messages: (0, _phrases.getPhrases)(locale)
|
||||
}, (0, _react2.jsx)(_UI.ErrorBoundary, {
|
||||
showBackup: true,
|
||||
config: config
|
||||
}, (0, _react2.jsx)(_reactRouterDom.Router, {
|
||||
history: _history.history
|
||||
}, (0, _react2.jsx)(_reactRouterDom.Route, {
|
||||
component: _App.default
|
||||
}))));
|
||||
}
|
||||
function mapDispatchToProps(state) {
|
||||
return {
|
||||
locale: (0, _config2.selectLocale)(state.config),
|
||||
config: state.config
|
||||
};
|
||||
}
|
||||
const ConnectedTranslatedApp = (0, _reactRedux.connect)(mapDispatchToProps)(TranslatedApp);
|
||||
function bootstrap(opts = {}) {
|
||||
const {
|
||||
config
|
||||
} = opts;
|
||||
|
||||
/**
|
||||
* Log the version number.
|
||||
*/
|
||||
if (typeof "3.4.2" === 'string') {
|
||||
console.log(`decap-cms-core ${"3.4.2"}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get DOM element where app will mount.
|
||||
*/
|
||||
function getRoot() {
|
||||
/**
|
||||
* Return existing root if found.
|
||||
*/
|
||||
const existingRoot = document.getElementById(ROOT_ID);
|
||||
if (existingRoot) {
|
||||
return existingRoot;
|
||||
}
|
||||
|
||||
/**
|
||||
* If no existing root, create and return a new root.
|
||||
*/
|
||||
const newRoot = document.createElement('div');
|
||||
newRoot.id = ROOT_ID;
|
||||
document.body.appendChild(newRoot);
|
||||
return newRoot;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dispatch config to store if received. This config will be merged into
|
||||
* config.yml if it exists, and any portion that produces a conflict will be
|
||||
* overwritten.
|
||||
*/
|
||||
_redux.store.dispatch((0, _config.loadConfig)(config, function onLoad() {
|
||||
_redux.store.dispatch((0, _auth.authenticateUser)());
|
||||
}));
|
||||
|
||||
/**
|
||||
* Create connected root component.
|
||||
*/
|
||||
function Root() {
|
||||
return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_decapCmsUiDefault.GlobalStyles, null), (0, _react2.jsx)(_reactRedux.Provider, {
|
||||
store: _redux.store
|
||||
}, (0, _react2.jsx)(ConnectedTranslatedApp, null)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Render application root.
|
||||
*/
|
||||
const root = (0, _client.createRoot)(getRoot());
|
||||
root.render((0, _react2.jsx)(Root, null));
|
||||
}
|
||||
var _default = exports.default = bootstrap;
|
||||
299
node_modules/decap-cms-core/dist/esm/components/App/App.js
generated
vendored
Normal file
299
node_modules/decap-cms-core/dist/esm/components/App/App.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
161
node_modules/decap-cms-core/dist/esm/components/App/Header.js
generated
vendored
Normal file
161
node_modules/decap-cms-core/dist/esm/components/App/Header.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
26
node_modules/decap-cms-core/dist/esm/components/App/NotFoundPage.js
generated
vendored
Normal file
26
node_modules/decap-cms-core/dist/esm/components/App/NotFoundPage.js
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _reactPolyglot = require("react-polyglot");
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
const NotFoundContainer = /*#__PURE__*/(0, _base.default)("div", {
|
||||
target: "ew40z3q0",
|
||||
label: "NotFoundContainer"
|
||||
})("margin:", _decapCmsUiDefault.lengths.pageMargin, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0FwcC9Ob3RGb3VuZFBhZ2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTW9DIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0FwcC9Ob3RGb3VuZFBhZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIH0gZnJvbSAncmVhY3QtcG9seWdsb3QnO1xuaW1wb3J0IHsgbGVuZ3RocyB9IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5cbmNvbnN0IE5vdEZvdW5kQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luOiAke2xlbmd0aHMucGFnZU1hcmdpbn07XG5gO1xuXG5mdW5jdGlvbiBOb3RGb3VuZFBhZ2UoeyB0IH0pIHtcbiAgcmV0dXJuIChcbiAgICA8Tm90Rm91bmRDb250YWluZXI+XG4gICAgICA8aDI+e3QoJ2FwcC5ub3RGb3VuZFBhZ2UuaGVhZGVyJyl9PC9oMj5cbiAgICA8L05vdEZvdW5kQ29udGFpbmVyPlxuICApO1xufVxuXG5Ob3RGb3VuZFBhZ2UucHJvcFR5cGVzID0ge1xuICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoTm90Rm91bmRQYWdlKTtcbiJdfQ== */"));
|
||||
function NotFoundPage({
|
||||
t
|
||||
}) {
|
||||
return (0, _react2.jsx)(NotFoundContainer, null, (0, _react2.jsx)("h2", null, t('app.notFoundPage.header')));
|
||||
}
|
||||
NotFoundPage.propTypes = {
|
||||
t: _propTypes.default.func.isRequired
|
||||
};
|
||||
var _default = exports.default = (0, _reactPolyglot.translate)()(NotFoundPage);
|
||||
209
node_modules/decap-cms-core/dist/esm/components/Collection/Collection.js
generated
vendored
Normal file
209
node_modules/decap-cms-core/dist/esm/components/Collection/Collection.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
53
node_modules/decap-cms-core/dist/esm/components/Collection/CollectionControls.js
generated
vendored
Normal file
53
node_modules/decap-cms-core/dist/esm/components/Collection/CollectionControls.js
generated
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _ViewStyleControl = _interopRequireDefault(require("./ViewStyleControl"));
|
||||
var _SortControl = _interopRequireDefault(require("./SortControl"));
|
||||
var _FilterControl = _interopRequireDefault(require("./FilterControl"));
|
||||
var _GroupControl = _interopRequireDefault(require("./GroupControl"));
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
const CollectionControlsContainer = /*#__PURE__*/(0, _base.default)("div", {
|
||||
target: "emfmed70",
|
||||
label: "CollectionControlsContainer"
|
||||
})("display:flex;align-items:center;flex-direction:row-reverse;margin-top:22px;width:", _decapCmsUiDefault.lengths.topCardWidth, ";max-width:100%;&>div{margin-left:6px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vQ29sbGVjdGlvbkNvbnRyb2xzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVM4QyIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Db2xsZWN0aW9uL0NvbGxlY3Rpb25Db250cm9scy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBsZW5ndGhzIH0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgVmlld1N0eWxlQ29udHJvbCBmcm9tICcuL1ZpZXdTdHlsZUNvbnRyb2wnO1xuaW1wb3J0IFNvcnRDb250cm9sIGZyb20gJy4vU29ydENvbnRyb2wnO1xuaW1wb3J0IEZpbHRlckNvbnRyb2wgZnJvbSAnLi9GaWx0ZXJDb250cm9sJztcbmltcG9ydCBHcm91cENvbnRyb2wgZnJvbSAnLi9Hcm91cENvbnRyb2wnO1xuXG5jb25zdCBDb2xsZWN0aW9uQ29udHJvbHNDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gIG1hcmdpbi10b3A6IDIycHg7XG4gIHdpZHRoOiAke2xlbmd0aHMudG9wQ2FyZFdpZHRofTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICYgPiBkaXYge1xuICAgIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIH1cbmA7XG5cbmZ1bmN0aW9uIENvbGxlY3Rpb25Db250cm9scyh7XG4gIHZpZXdTdHlsZSxcbiAgb25DaGFuZ2VWaWV3U3R5bGUsXG4gIHNvcnRhYmxlRmllbGRzLFxuICBvblNvcnRDbGljayxcbiAgc29ydCxcbiAgdmlld0ZpbHRlcnMsXG4gIHZpZXdHcm91cHMsXG4gIG9uRmlsdGVyQ2xpY2ssXG4gIG9uR3JvdXBDbGljayxcbiAgdCxcbiAgZmlsdGVyLFxuICBncm91cCxcbn0pIHtcbiAgcmV0dXJuIChcbiAgICA8Q29sbGVjdGlvbkNvbnRyb2xzQ29udGFpbmVyPlxuICAgICAgPFZpZXdTdHlsZUNvbnRyb2wgdmlld1N0eWxlPXt2aWV3U3R5bGV9IG9uQ2hhbmdlVmlld1N0eWxlPXtvbkNoYW5nZVZpZXdTdHlsZX0gLz5cbiAgICAgIHt2aWV3R3JvdXBzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8R3JvdXBDb250cm9sIHZpZXdHcm91cHM9e3ZpZXdHcm91cHN9IG9uR3JvdXBDbGljaz17b25Hcm91cENsaWNrfSB0PXt0fSBncm91cD17Z3JvdXB9IC8+XG4gICAgICApfVxuICAgICAge3ZpZXdGaWx0ZXJzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8RmlsdGVyQ29udHJvbFxuICAgICAgICAgIHZpZXdGaWx0ZXJzPXt2aWV3RmlsdGVyc31cbiAgICAgICAgICBvbkZpbHRlckNsaWNrPXtvbkZpbHRlckNsaWNrfVxuICAgICAgICAgIHQ9e3R9XG4gICAgICAgICAgZmlsdGVyPXtmaWx0ZXJ9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAge3NvcnRhYmxlRmllbGRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8U29ydENvbnRyb2wgZmllbGRzPXtzb3J0YWJsZUZpZWxkc30gc29ydD17c29ydH0gb25Tb3J0Q2xpY2s9e29uU29ydENsaWNrfSAvPlxuICAgICAgKX1cbiAgICA8L0NvbGxlY3Rpb25Db250cm9sc0NvbnRhaW5lcj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29sbGVjdGlvbkNvbnRyb2xzO1xuIl19 */"));
|
||||
function CollectionControls({
|
||||
viewStyle,
|
||||
onChangeViewStyle,
|
||||
sortableFields,
|
||||
onSortClick,
|
||||
sort,
|
||||
viewFilters,
|
||||
viewGroups,
|
||||
onFilterClick,
|
||||
onGroupClick,
|
||||
t,
|
||||
filter,
|
||||
group
|
||||
}) {
|
||||
return (0, _react2.jsx)(CollectionControlsContainer, null, (0, _react2.jsx)(_ViewStyleControl.default, {
|
||||
viewStyle: viewStyle,
|
||||
onChangeViewStyle: onChangeViewStyle
|
||||
}), viewGroups.length > 0 && (0, _react2.jsx)(_GroupControl.default, {
|
||||
viewGroups: viewGroups,
|
||||
onGroupClick: onGroupClick,
|
||||
t: t,
|
||||
group: group
|
||||
}), viewFilters.length > 0 && (0, _react2.jsx)(_FilterControl.default, {
|
||||
viewFilters: viewFilters,
|
||||
onFilterClick: onFilterClick,
|
||||
t: t,
|
||||
filter: filter
|
||||
}), sortableFields.length > 0 && (0, _react2.jsx)(_SortControl.default, {
|
||||
fields: sortableFields,
|
||||
sort: sort,
|
||||
onSortClick: onSortClick
|
||||
}));
|
||||
}
|
||||
var _default = exports.default = CollectionControls;
|
||||
234
node_modules/decap-cms-core/dist/esm/components/Collection/CollectionSearch.js
generated
vendored
Normal file
234
node_modules/decap-cms-core/dist/esm/components/Collection/CollectionSearch.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
76
node_modules/decap-cms-core/dist/esm/components/Collection/CollectionTop.js
generated
vendored
Normal file
76
node_modules/decap-cms-core/dist/esm/components/Collection/CollectionTop.js
generated
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _reactPolyglot = require("react-polyglot");
|
||||
var _reactRouterDom = require("react-router-dom");
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
||||
const CollectionTopContainer = /*#__PURE__*/(0, _base.default)("div", {
|
||||
target: "ei8nkzc4",
|
||||
label: "CollectionTopContainer"
|
||||
})(_decapCmsUiDefault.components.cardTop, ";margin-bottom:22px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vQ29sbGVjdGlvblRvcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFReUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvQ29sbGVjdGlvbi9Db2xsZWN0aW9uVG9wLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIH0gZnJvbSAncmVhY3QtcG9seWdsb3QnO1xuaW1wb3J0IHsgTGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgY29tcG9uZW50cywgYnV0dG9ucywgc2hhZG93cyB9IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcblxuY29uc3QgQ29sbGVjdGlvblRvcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gICR7Y29tcG9uZW50cy5jYXJkVG9wfTtcbiAgbWFyZ2luLWJvdHRvbTogMjJweDtcbmA7XG5cbmNvbnN0IENvbGxlY3Rpb25Ub3BSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5gO1xuXG5jb25zdCBDb2xsZWN0aW9uVG9wSGVhZGluZyA9IHN0eWxlZC5oMWBcbiAgJHtjb21wb25lbnRzLmNhcmRUb3BIZWFkaW5nfTtcbmA7XG5cbmNvbnN0IENvbGxlY3Rpb25Ub3BOZXdCdXR0b24gPSBzdHlsZWQoTGluaylgXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke3NoYWRvd3MuZHJvcERlZXB9O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7YnV0dG9ucy5ncmF5fTtcblxuICBwYWRkaW5nOiAwIDMwcHg7XG5gO1xuXG5jb25zdCBDb2xsZWN0aW9uVG9wRGVzY3JpcHRpb24gPSBzdHlsZWQucGBcbiAgJHtjb21wb25lbnRzLmNhcmRUb3BEZXNjcmlwdGlvbn07XG4gIG1hcmdpbi1ib3R0b206IDA7XG5gO1xuXG5mdW5jdGlvbiBnZXRDb2xsZWN0aW9uUHJvcHMoY29sbGVjdGlvbikge1xuICBjb25zdCBjb2xsZWN0aW9uTGFiZWwgPSBjb2xsZWN0aW9uLmdldCgnbGFiZWwnKTtcbiAgY29uc3QgY29sbGVjdGlvbkxhYmVsU2luZ3VsYXIgPSBjb2xsZWN0aW9uLmdldCgnbGFiZWxfc2luZ3VsYXInKTtcbiAgY29uc3QgY29sbGVjdGlvbkRlc2NyaXB0aW9uID0gY29sbGVjdGlvbi5nZXQoJ2Rlc2NyaXB0aW9uJyk7XG5cbiAgcmV0dXJuIHtcbiAgICBjb2xsZWN0aW9uTGFiZWwsXG4gICAgY29sbGVjdGlvbkxhYmVsU2luZ3VsYXIsXG4gICAgY29sbGVjdGlvbkRlc2NyaXB0aW9uLFxuICB9O1xufVxuXG5mdW5jdGlvbiBDb2xsZWN0aW9uVG9wKHsgY29sbGVjdGlvbiwgbmV3RW50cnlVcmwsIHQgfSkge1xuICBjb25zdCB7IGNvbGxlY3Rpb25MYWJlbCwgY29sbGVjdGlvbkxhYmVsU2luZ3VsYXIsIGNvbGxlY3Rpb25EZXNjcmlwdGlvbiB9ID0gZ2V0Q29sbGVjdGlvblByb3BzKFxuICAgIGNvbGxlY3Rpb24sXG4gICAgdCxcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxDb2xsZWN0aW9uVG9wQ29udGFpbmVyPlxuICAgICAgPENvbGxlY3Rpb25Ub3BSb3c+XG4gICAgICAgIDxDb2xsZWN0aW9uVG9wSGVhZGluZz57Y29sbGVjdGlvbkxhYmVsfTwvQ29sbGVjdGlvblRvcEhlYWRpbmc+XG4gICAgICAgIHtuZXdFbnRyeVVybCA/IChcbiAgICAgICAgICA8Q29sbGVjdGlvblRvcE5ld0J1dHRvbiB0bz17bmV3RW50cnlVcmx9PlxuICAgICAgICAgICAge3QoJ2NvbGxlY3Rpb24uY29sbGVjdGlvblRvcC5uZXdCdXR0b24nLCB7XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbkxhYmVsU2luZ3VsYXIgfHwgY29sbGVjdGlvbkxhYmVsLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9Db2xsZWN0aW9uVG9wTmV3QnV0dG9uPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvQ29sbGVjdGlvblRvcFJvdz5cbiAgICAgIHtjb2xsZWN0aW9uRGVzY3JpcHRpb24gPyAoXG4gICAgICAgIDxDb2xsZWN0aW9uVG9wRGVzY3JpcHRpb24+e2NvbGxlY3Rpb25EZXNjcmlwdGlvbn08L0NvbGxlY3Rpb25Ub3BEZXNjcmlwdGlvbj5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvQ29sbGVjdGlvblRvcENvbnRhaW5lcj5cbiAgKTtcbn1cblxuQ29sbGVjdGlvblRvcC5wcm9wVHlwZXMgPSB7XG4gIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgbmV3RW50cnlVcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCB0cmFuc2xhdGUoKShDb2xsZWN0aW9uVG9wKTtcbiJdfQ== */"));
|
||||
const CollectionTopRow = /*#__PURE__*/(0, _base.default)("div", {
|
||||
target: "ei8nkzc3",
|
||||
label: "CollectionTopRow"
|
||||
})(process.env.NODE_ENV === "production" ? {
|
||||
name: "bcffy2",
|
||||
styles: "display:flex;align-items:center;justify-content:space-between"
|
||||
} : {
|
||||
name: "bcffy2",
|
||||
styles: "display:flex;align-items:center;justify-content:space-between",
|
||||
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vQ29sbGVjdGlvblRvcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhbUMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvQ29sbGVjdGlvbi9Db2xsZWN0aW9uVG9wLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdHJhbnNsYXRlIH0gZnJvbSAncmVhY3QtcG9seWdsb3QnO1xuaW1wb3J0IHsgTGluayB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHsgY29tcG9uZW50cywgYnV0dG9ucywgc2hhZG93cyB9IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcblxuY29uc3QgQ29sbGVjdGlvblRvcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gICR7Y29tcG9uZW50cy5jYXJkVG9wfTtcbiAgbWFyZ2luLWJvdHRvbTogMjJweDtcbmA7XG5cbmNvbnN0IENvbGxlY3Rpb25Ub3BSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5gO1xuXG5jb25zdCBDb2xsZWN0aW9uVG9wSGVhZGluZyA9IHN0eWxlZC5oMWBcbiAgJHtjb21wb25lbnRzLmNhcmRUb3BIZWFkaW5nfTtcbmA7XG5cbmNvbnN0IENvbGxlY3Rpb25Ub3BOZXdCdXR0b24gPSBzdHlsZWQoTGluaylgXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke3NoYWRvd3MuZHJvcERlZXB9O1xuICAke2J1dHRvbnMuZGVmYXVsdH07XG4gICR7YnV0dG9ucy5ncmF5fTtcblxuICBwYWRkaW5nOiAwIDMwcHg7XG5gO1xuXG5jb25zdCBDb2xsZWN0aW9uVG9wRGVzY3JpcHRpb24gPSBzdHlsZWQucGBcbiAgJHtjb21wb25lbnRzLmNhcmRUb3BEZXNjcmlwdGlvbn07XG4gIG1hcmdpbi1ib3R0b206IDA7XG5gO1xuXG5mdW5jdGlvbiBnZXRDb2xsZWN0aW9uUHJvcHMoY29sbGVjdGlvbikge1xuICBjb25zdCBjb2xsZWN0aW9uTGFiZWwgPSBjb2xsZWN0aW9uLmdldCgnbGFiZWwnKTtcbiAgY29uc3QgY29sbGVjdGlvbkxhYmVsU2luZ3VsYXIgPSBjb2xsZWN0aW9uLmdldCgnbGFiZWxfc2luZ3VsYXInKTtcbiAgY29uc3QgY29sbGVjdGlvbkRlc2NyaXB0aW9uID0gY29sbGVjdGlvbi5nZXQoJ2Rlc2NyaXB0aW9uJyk7XG5cbiAgcmV0dXJuIHtcbiAgICBjb2xsZWN0aW9uTGFiZWwsXG4gICAgY29sbGVjdGlvbkxhYmVsU2luZ3VsYXIsXG4gICAgY29sbGVjdGlvbkRlc2NyaXB0aW9uLFxuICB9O1xufVxuXG5mdW5jdGlvbiBDb2xsZWN0aW9uVG9wKHsgY29sbGVjdGlvbiwgbmV3RW50cnlVcmwsIHQgfSkge1xuICBjb25zdCB7IGNvbGxlY3Rpb25MYWJlbCwgY29sbGVjdGlvbkxhYmVsU2luZ3VsYXIsIGNvbGxlY3Rpb25EZXNjcmlwdGlvbiB9ID0gZ2V0Q29sbGVjdGlvblByb3BzKFxuICAgIGNvbGxlY3Rpb24sXG4gICAgdCxcbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxDb2xsZWN0aW9uVG9wQ29udGFpbmVyPlxuICAgICAgPENvbGxlY3Rpb25Ub3BSb3c+XG4gICAgICAgIDxDb2xsZWN0aW9uVG9wSGVhZGluZz57Y29sbGVjdGlvbkxhYmVsfTwvQ29sbGVjdGlvblRvcEhlYWRpbmc+XG4gICAgICAgIHtuZXdFbnRyeVVybCA/IChcbiAgICAgICAgICA8Q29sbGVjdGlvblRvcE5ld0J1dHRvbiB0bz17bmV3RW50cnlVcmx9PlxuICAgICAgICAgICAge3QoJ2NvbGxlY3Rpb24uY29sbGVjdGlvblRvcC5uZXdCdXR0b24nLCB7XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb25MYWJlbDogY29sbGVjdGlvbkxhYmVsU2luZ3VsYXIgfHwgY29sbGVjdGlvbkxhYmVsLFxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9Db2xsZWN0aW9uVG9wTmV3QnV0dG9uPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvQ29sbGVjdGlvblRvcFJvdz5cbiAgICAgIHtjb2xsZWN0aW9uRGVzY3JpcHRpb24gPyAoXG4gICAgICAgIDxDb2xsZWN0aW9uVG9wRGVzY3JpcHRpb24+e2NvbGxlY3Rpb25EZXNjcmlwdGlvbn08L0NvbGxlY3Rpb25Ub3BEZXNjcmlwdGlvbj5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvQ29sbGVjdGlvblRvcENvbnRhaW5lcj5cbiAgKTtcbn1cblxuQ29sbGVjdGlvblRvcC5wcm9wVHlwZXMgPSB7XG4gIGNvbGxlY3Rpb246IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgbmV3RW50cnlVcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCB0cmFuc2xhdGUoKShDb2xsZWN0aW9uVG9wKTtcbiJdfQ== */",
|
||||
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
||||
});
|
||||
const CollectionTopHeading = /*#__PURE__*/(0, _base.default)("h1", {
|
||||
target: "ei8nkzc2",
|
||||
label: "CollectionTopHeading"
|
||||
})(_decapCmsUiDefault.components.cardTopHeading, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vQ29sbGVjdGlvblRvcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQnNDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vQ29sbGVjdGlvblRvcC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IGNvbXBvbmVudHMsIGJ1dHRvbnMsIHNoYWRvd3MgfSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmNvbnN0IENvbGxlY3Rpb25Ub3BDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAke2NvbXBvbmVudHMuY2FyZFRvcH07XG4gIG1hcmdpbi1ib3R0b206IDIycHg7XG5gO1xuXG5jb25zdCBDb2xsZWN0aW9uVG9wUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgQ29sbGVjdGlvblRvcEhlYWRpbmcgPSBzdHlsZWQuaDFgXG4gICR7Y29tcG9uZW50cy5jYXJkVG9wSGVhZGluZ307XG5gO1xuXG5jb25zdCBDb2xsZWN0aW9uVG9wTmV3QnV0dG9uID0gc3R5bGVkKExpbmspYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtzaGFkb3dzLmRyb3BEZWVwfTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke2J1dHRvbnMuZ3JheX07XG5cbiAgcGFkZGluZzogMCAzMHB4O1xuYDtcblxuY29uc3QgQ29sbGVjdGlvblRvcERlc2NyaXB0aW9uID0gc3R5bGVkLnBgXG4gICR7Y29tcG9uZW50cy5jYXJkVG9wRGVzY3JpcHRpb259O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuYDtcblxuZnVuY3Rpb24gZ2V0Q29sbGVjdGlvblByb3BzKGNvbGxlY3Rpb24pIHtcbiAgY29uc3QgY29sbGVjdGlvbkxhYmVsID0gY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyk7XG4gIGNvbnN0IGNvbGxlY3Rpb25MYWJlbFNpbmd1bGFyID0gY29sbGVjdGlvbi5nZXQoJ2xhYmVsX3Npbmd1bGFyJyk7XG4gIGNvbnN0IGNvbGxlY3Rpb25EZXNjcmlwdGlvbiA9IGNvbGxlY3Rpb24uZ2V0KCdkZXNjcmlwdGlvbicpO1xuXG4gIHJldHVybiB7XG4gICAgY29sbGVjdGlvbkxhYmVsLFxuICAgIGNvbGxlY3Rpb25MYWJlbFNpbmd1bGFyLFxuICAgIGNvbGxlY3Rpb25EZXNjcmlwdGlvbixcbiAgfTtcbn1cblxuZnVuY3Rpb24gQ29sbGVjdGlvblRvcCh7IGNvbGxlY3Rpb24sIG5ld0VudHJ5VXJsLCB0IH0pIHtcbiAgY29uc3QgeyBjb2xsZWN0aW9uTGFiZWwsIGNvbGxlY3Rpb25MYWJlbFNpbmd1bGFyLCBjb2xsZWN0aW9uRGVzY3JpcHRpb24gfSA9IGdldENvbGxlY3Rpb25Qcm9wcyhcbiAgICBjb2xsZWN0aW9uLFxuICAgIHQsXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8Q29sbGVjdGlvblRvcENvbnRhaW5lcj5cbiAgICAgIDxDb2xsZWN0aW9uVG9wUm93PlxuICAgICAgICA8Q29sbGVjdGlvblRvcEhlYWRpbmc+e2NvbGxlY3Rpb25MYWJlbH08L0NvbGxlY3Rpb25Ub3BIZWFkaW5nPlxuICAgICAgICB7bmV3RW50cnlVcmwgPyAoXG4gICAgICAgICAgPENvbGxlY3Rpb25Ub3BOZXdCdXR0b24gdG89e25ld0VudHJ5VXJsfT5cbiAgICAgICAgICAgIHt0KCdjb2xsZWN0aW9uLmNvbGxlY3Rpb25Ub3AubmV3QnV0dG9uJywge1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb25MYWJlbFNpbmd1bGFyIHx8IGNvbGxlY3Rpb25MYWJlbCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvQ29sbGVjdGlvblRvcE5ld0J1dHRvbj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L0NvbGxlY3Rpb25Ub3BSb3c+XG4gICAgICB7Y29sbGVjdGlvbkRlc2NyaXB0aW9uID8gKFxuICAgICAgICA8Q29sbGVjdGlvblRvcERlc2NyaXB0aW9uPntjb2xsZWN0aW9uRGVzY3JpcHRpb259PC9Db2xsZWN0aW9uVG9wRGVzY3JpcHRpb24+XG4gICAgICApIDogbnVsbH1cbiAgICA8L0NvbGxlY3Rpb25Ub3BDb250YWluZXI+XG4gICk7XG59XG5cbkNvbGxlY3Rpb25Ub3AucHJvcFR5cGVzID0ge1xuICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIG5ld0VudHJ5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoQ29sbGVjdGlvblRvcCk7XG4iXX0= */"));
|
||||
const CollectionTopNewButton = /*#__PURE__*/(0, _base.default)(_reactRouterDom.Link, {
|
||||
target: "ei8nkzc1",
|
||||
label: "CollectionTopNewButton"
|
||||
})(_decapCmsUiDefault.buttons.button, ";", _decapCmsUiDefault.shadows.dropDeep, ";", _decapCmsUiDefault.buttons.default, ";", _decapCmsUiDefault.buttons.gray, ";padding:0 30px;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vQ29sbGVjdGlvblRvcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1QjJDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vQ29sbGVjdGlvblRvcC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IGNvbXBvbmVudHMsIGJ1dHRvbnMsIHNoYWRvd3MgfSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmNvbnN0IENvbGxlY3Rpb25Ub3BDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAke2NvbXBvbmVudHMuY2FyZFRvcH07XG4gIG1hcmdpbi1ib3R0b206IDIycHg7XG5gO1xuXG5jb25zdCBDb2xsZWN0aW9uVG9wUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgQ29sbGVjdGlvblRvcEhlYWRpbmcgPSBzdHlsZWQuaDFgXG4gICR7Y29tcG9uZW50cy5jYXJkVG9wSGVhZGluZ307XG5gO1xuXG5jb25zdCBDb2xsZWN0aW9uVG9wTmV3QnV0dG9uID0gc3R5bGVkKExpbmspYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtzaGFkb3dzLmRyb3BEZWVwfTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke2J1dHRvbnMuZ3JheX07XG5cbiAgcGFkZGluZzogMCAzMHB4O1xuYDtcblxuY29uc3QgQ29sbGVjdGlvblRvcERlc2NyaXB0aW9uID0gc3R5bGVkLnBgXG4gICR7Y29tcG9uZW50cy5jYXJkVG9wRGVzY3JpcHRpb259O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuYDtcblxuZnVuY3Rpb24gZ2V0Q29sbGVjdGlvblByb3BzKGNvbGxlY3Rpb24pIHtcbiAgY29uc3QgY29sbGVjdGlvbkxhYmVsID0gY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyk7XG4gIGNvbnN0IGNvbGxlY3Rpb25MYWJlbFNpbmd1bGFyID0gY29sbGVjdGlvbi5nZXQoJ2xhYmVsX3Npbmd1bGFyJyk7XG4gIGNvbnN0IGNvbGxlY3Rpb25EZXNjcmlwdGlvbiA9IGNvbGxlY3Rpb24uZ2V0KCdkZXNjcmlwdGlvbicpO1xuXG4gIHJldHVybiB7XG4gICAgY29sbGVjdGlvbkxhYmVsLFxuICAgIGNvbGxlY3Rpb25MYWJlbFNpbmd1bGFyLFxuICAgIGNvbGxlY3Rpb25EZXNjcmlwdGlvbixcbiAgfTtcbn1cblxuZnVuY3Rpb24gQ29sbGVjdGlvblRvcCh7IGNvbGxlY3Rpb24sIG5ld0VudHJ5VXJsLCB0IH0pIHtcbiAgY29uc3QgeyBjb2xsZWN0aW9uTGFiZWwsIGNvbGxlY3Rpb25MYWJlbFNpbmd1bGFyLCBjb2xsZWN0aW9uRGVzY3JpcHRpb24gfSA9IGdldENvbGxlY3Rpb25Qcm9wcyhcbiAgICBjb2xsZWN0aW9uLFxuICAgIHQsXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8Q29sbGVjdGlvblRvcENvbnRhaW5lcj5cbiAgICAgIDxDb2xsZWN0aW9uVG9wUm93PlxuICAgICAgICA8Q29sbGVjdGlvblRvcEhlYWRpbmc+e2NvbGxlY3Rpb25MYWJlbH08L0NvbGxlY3Rpb25Ub3BIZWFkaW5nPlxuICAgICAgICB7bmV3RW50cnlVcmwgPyAoXG4gICAgICAgICAgPENvbGxlY3Rpb25Ub3BOZXdCdXR0b24gdG89e25ld0VudHJ5VXJsfT5cbiAgICAgICAgICAgIHt0KCdjb2xsZWN0aW9uLmNvbGxlY3Rpb25Ub3AubmV3QnV0dG9uJywge1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb25MYWJlbFNpbmd1bGFyIHx8IGNvbGxlY3Rpb25MYWJlbCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvQ29sbGVjdGlvblRvcE5ld0J1dHRvbj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L0NvbGxlY3Rpb25Ub3BSb3c+XG4gICAgICB7Y29sbGVjdGlvbkRlc2NyaXB0aW9uID8gKFxuICAgICAgICA8Q29sbGVjdGlvblRvcERlc2NyaXB0aW9uPntjb2xsZWN0aW9uRGVzY3JpcHRpb259PC9Db2xsZWN0aW9uVG9wRGVzY3JpcHRpb24+XG4gICAgICApIDogbnVsbH1cbiAgICA8L0NvbGxlY3Rpb25Ub3BDb250YWluZXI+XG4gICk7XG59XG5cbkNvbGxlY3Rpb25Ub3AucHJvcFR5cGVzID0ge1xuICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIG5ld0VudHJ5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoQ29sbGVjdGlvblRvcCk7XG4iXX0= */"));
|
||||
const CollectionTopDescription = /*#__PURE__*/(0, _base.default)("p", {
|
||||
target: "ei8nkzc0",
|
||||
label: "CollectionTopDescription"
|
||||
})(_decapCmsUiDefault.components.cardTopDescription, ";margin-bottom:0;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vQ29sbGVjdGlvblRvcC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQ3lDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vQ29sbGVjdGlvblRvcC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IGNvbXBvbmVudHMsIGJ1dHRvbnMsIHNoYWRvd3MgfSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmNvbnN0IENvbGxlY3Rpb25Ub3BDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAke2NvbXBvbmVudHMuY2FyZFRvcH07XG4gIG1hcmdpbi1ib3R0b206IDIycHg7XG5gO1xuXG5jb25zdCBDb2xsZWN0aW9uVG9wUm93ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuY29uc3QgQ29sbGVjdGlvblRvcEhlYWRpbmcgPSBzdHlsZWQuaDFgXG4gICR7Y29tcG9uZW50cy5jYXJkVG9wSGVhZGluZ307XG5gO1xuXG5jb25zdCBDb2xsZWN0aW9uVG9wTmV3QnV0dG9uID0gc3R5bGVkKExpbmspYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtzaGFkb3dzLmRyb3BEZWVwfTtcbiAgJHtidXR0b25zLmRlZmF1bHR9O1xuICAke2J1dHRvbnMuZ3JheX07XG5cbiAgcGFkZGluZzogMCAzMHB4O1xuYDtcblxuY29uc3QgQ29sbGVjdGlvblRvcERlc2NyaXB0aW9uID0gc3R5bGVkLnBgXG4gICR7Y29tcG9uZW50cy5jYXJkVG9wRGVzY3JpcHRpb259O1xuICBtYXJnaW4tYm90dG9tOiAwO1xuYDtcblxuZnVuY3Rpb24gZ2V0Q29sbGVjdGlvblByb3BzKGNvbGxlY3Rpb24pIHtcbiAgY29uc3QgY29sbGVjdGlvbkxhYmVsID0gY29sbGVjdGlvbi5nZXQoJ2xhYmVsJyk7XG4gIGNvbnN0IGNvbGxlY3Rpb25MYWJlbFNpbmd1bGFyID0gY29sbGVjdGlvbi5nZXQoJ2xhYmVsX3Npbmd1bGFyJyk7XG4gIGNvbnN0IGNvbGxlY3Rpb25EZXNjcmlwdGlvbiA9IGNvbGxlY3Rpb24uZ2V0KCdkZXNjcmlwdGlvbicpO1xuXG4gIHJldHVybiB7XG4gICAgY29sbGVjdGlvbkxhYmVsLFxuICAgIGNvbGxlY3Rpb25MYWJlbFNpbmd1bGFyLFxuICAgIGNvbGxlY3Rpb25EZXNjcmlwdGlvbixcbiAgfTtcbn1cblxuZnVuY3Rpb24gQ29sbGVjdGlvblRvcCh7IGNvbGxlY3Rpb24sIG5ld0VudHJ5VXJsLCB0IH0pIHtcbiAgY29uc3QgeyBjb2xsZWN0aW9uTGFiZWwsIGNvbGxlY3Rpb25MYWJlbFNpbmd1bGFyLCBjb2xsZWN0aW9uRGVzY3JpcHRpb24gfSA9IGdldENvbGxlY3Rpb25Qcm9wcyhcbiAgICBjb2xsZWN0aW9uLFxuICAgIHQsXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8Q29sbGVjdGlvblRvcENvbnRhaW5lcj5cbiAgICAgIDxDb2xsZWN0aW9uVG9wUm93PlxuICAgICAgICA8Q29sbGVjdGlvblRvcEhlYWRpbmc+e2NvbGxlY3Rpb25MYWJlbH08L0NvbGxlY3Rpb25Ub3BIZWFkaW5nPlxuICAgICAgICB7bmV3RW50cnlVcmwgPyAoXG4gICAgICAgICAgPENvbGxlY3Rpb25Ub3BOZXdCdXR0b24gdG89e25ld0VudHJ5VXJsfT5cbiAgICAgICAgICAgIHt0KCdjb2xsZWN0aW9uLmNvbGxlY3Rpb25Ub3AubmV3QnV0dG9uJywge1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uTGFiZWw6IGNvbGxlY3Rpb25MYWJlbFNpbmd1bGFyIHx8IGNvbGxlY3Rpb25MYWJlbCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvQ29sbGVjdGlvblRvcE5ld0J1dHRvbj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L0NvbGxlY3Rpb25Ub3BSb3c+XG4gICAgICB7Y29sbGVjdGlvbkRlc2NyaXB0aW9uID8gKFxuICAgICAgICA8Q29sbGVjdGlvblRvcERlc2NyaXB0aW9uPntjb2xsZWN0aW9uRGVzY3JpcHRpb259PC9Db2xsZWN0aW9uVG9wRGVzY3JpcHRpb24+XG4gICAgICApIDogbnVsbH1cbiAgICA8L0NvbGxlY3Rpb25Ub3BDb250YWluZXI+XG4gICk7XG59XG5cbkNvbGxlY3Rpb25Ub3AucHJvcFR5cGVzID0ge1xuICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIG5ld0VudHJ5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoQ29sbGVjdGlvblRvcCk7XG4iXX0= */"));
|
||||
function getCollectionProps(collection) {
|
||||
const collectionLabel = collection.get('label');
|
||||
const collectionLabelSingular = collection.get('label_singular');
|
||||
const collectionDescription = collection.get('description');
|
||||
return {
|
||||
collectionLabel,
|
||||
collectionLabelSingular,
|
||||
collectionDescription
|
||||
};
|
||||
}
|
||||
function CollectionTop({
|
||||
collection,
|
||||
newEntryUrl,
|
||||
t
|
||||
}) {
|
||||
const {
|
||||
collectionLabel,
|
||||
collectionLabelSingular,
|
||||
collectionDescription
|
||||
} = getCollectionProps(collection, t);
|
||||
return (0, _react2.jsx)(CollectionTopContainer, null, (0, _react2.jsx)(CollectionTopRow, null, (0, _react2.jsx)(CollectionTopHeading, null, collectionLabel), newEntryUrl ? (0, _react2.jsx)(CollectionTopNewButton, {
|
||||
to: newEntryUrl
|
||||
}, t('collection.collectionTop.newButton', {
|
||||
collectionLabel: collectionLabelSingular || collectionLabel
|
||||
})) : null), collectionDescription ? (0, _react2.jsx)(CollectionTopDescription, null, collectionDescription) : null);
|
||||
}
|
||||
CollectionTop.propTypes = {
|
||||
collection: _reactImmutableProptypes.default.map.isRequired,
|
||||
newEntryUrl: _propTypes.default.string,
|
||||
t: _propTypes.default.func.isRequired
|
||||
};
|
||||
var _default = exports.default = (0, _reactPolyglot.translate)()(CollectionTop);
|
||||
23
node_modules/decap-cms-core/dist/esm/components/Collection/ControlButton.js
generated
vendored
Normal file
23
node_modules/decap-cms-core/dist/esm/components/Collection/ControlButton.js
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.ControlButton = ControlButton;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _react2 = require("@emotion/react");
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
const Button = /*#__PURE__*/(0, _base.default)(_decapCmsUiDefault.StyledDropdownButton, {
|
||||
target: "e1obtllk0",
|
||||
label: "Button"
|
||||
})(_decapCmsUiDefault.buttons.button, ";", _decapCmsUiDefault.buttons.medium, ";", _decapCmsUiDefault.buttons.grayText, ";font-size:14px;&:after{top:11px;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vQ29udHJvbEJ1dHRvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLMkMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvQ29sbGVjdGlvbi9Db250cm9sQnV0dG9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGJ1dHRvbnMsIFN0eWxlZERyb3Bkb3duQnV0dG9uLCBjb2xvcnMgfSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmNvbnN0IEJ1dHRvbiA9IHN0eWxlZChTdHlsZWREcm9wZG93bkJ1dHRvbilgXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMubWVkaXVtfTtcbiAgJHtidXR0b25zLmdyYXlUZXh0fTtcbiAgZm9udC1zaXplOiAxNHB4O1xuXG4gICY6YWZ0ZXIge1xuICAgIHRvcDogMTFweDtcbiAgfVxuYDtcblxuZXhwb3J0IGZ1bmN0aW9uIENvbnRyb2xCdXR0b24oeyBhY3RpdmUsIHRpdGxlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8QnV0dG9uXG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgY29sb3I6ICR7YWN0aXZlID8gY29sb3JzLmFjdGl2ZSA6IHVuZGVmaW5lZH07XG4gICAgICBgfVxuICAgID5cbiAgICAgIHt0aXRsZX1cbiAgICA8L0J1dHRvbj5cbiAgKTtcbn1cbiJdfQ== */"));
|
||||
function ControlButton({
|
||||
active,
|
||||
title
|
||||
}) {
|
||||
return (0, _react2.jsx)(Button, {
|
||||
css: /*#__PURE__*/(0, _react2.css)("color:", active ? _decapCmsUiDefault.colors.active : undefined, ";;label:ControlButton;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vQ29udHJvbEJ1dHRvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQmMiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvQ29sbGVjdGlvbi9Db250cm9sQnV0dG9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGJ1dHRvbnMsIFN0eWxlZERyb3Bkb3duQnV0dG9uLCBjb2xvcnMgfSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmNvbnN0IEJ1dHRvbiA9IHN0eWxlZChTdHlsZWREcm9wZG93bkJ1dHRvbilgXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2J1dHRvbnMubWVkaXVtfTtcbiAgJHtidXR0b25zLmdyYXlUZXh0fTtcbiAgZm9udC1zaXplOiAxNHB4O1xuXG4gICY6YWZ0ZXIge1xuICAgIHRvcDogMTFweDtcbiAgfVxuYDtcblxuZXhwb3J0IGZ1bmN0aW9uIENvbnRyb2xCdXR0b24oeyBhY3RpdmUsIHRpdGxlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8QnV0dG9uXG4gICAgICBjc3M9e2Nzc2BcbiAgICAgICAgY29sb3I6ICR7YWN0aXZlID8gY29sb3JzLmFjdGl2ZSA6IHVuZGVmaW5lZH07XG4gICAgICBgfVxuICAgID5cbiAgICAgIHt0aXRsZX1cbiAgICA8L0J1dHRvbj5cbiAgKTtcbn1cbiJdfQ== */"))
|
||||
}, title);
|
||||
}
|
||||
73
node_modules/decap-cms-core/dist/esm/components/Collection/Entries/Entries.js
generated
vendored
Normal file
73
node_modules/decap-cms-core/dist/esm/components/Collection/Entries/Entries.js
generated
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
||||
var _reactPolyglot = require("react-polyglot");
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _EntryListing = _interopRequireDefault(require("./EntryListing"));
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
||||
const PaginationMessage = /*#__PURE__*/(0, _base.default)("div", {
|
||||
target: "e1d0i3na1",
|
||||
label: "PaginationMessage"
|
||||
})("width:", _decapCmsUiDefault.lengths.topCardWidth, ";padding:16px;text-align:center;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vRW50cmllcy9FbnRyaWVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNvQyIsImZpbGUiOiIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Db2xsZWN0aW9uL0VudHJpZXMvRW50cmllcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExvYWRlciwgbGVuZ3RocyB9IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcblxuaW1wb3J0IEVudHJ5TGlzdGluZyBmcm9tICcuL0VudHJ5TGlzdGluZyc7XG5cbmNvbnN0IFBhZ2luYXRpb25NZXNzYWdlID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6ICR7bGVuZ3Rocy50b3BDYXJkV2lkdGh9O1xuICBwYWRkaW5nOiAxNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBOb0VudHJpZXNNZXNzYWdlID0gc3R5bGVkKFBhZ2luYXRpb25NZXNzYWdlKWBcbiAgbWFyZ2luLXRvcDogMTZweDtcbmA7XG5cbmZ1bmN0aW9uIEVudHJpZXMoe1xuICBjb2xsZWN0aW9ucyxcbiAgZW50cmllcyxcbiAgaXNGZXRjaGluZyxcbiAgdmlld1N0eWxlLFxuICBjdXJzb3IsXG4gIGhhbmRsZUN1cnNvckFjdGlvbnMsXG4gIHQsXG4gIHBhZ2UsXG59KSB7XG4gIGNvbnN0IGxvYWRpbmdNZXNzYWdlcyA9IFtcbiAgICB0KCdjb2xsZWN0aW9uLmVudHJpZXMubG9hZGluZ0VudHJpZXMnKSxcbiAgICB0KCdjb2xsZWN0aW9uLmVudHJpZXMuY2FjaGluZ0VudHJpZXMnKSxcbiAgICB0KCdjb2xsZWN0aW9uLmVudHJpZXMubG9uZ2VyTG9hZGluZycpLFxuICBdO1xuXG4gIGlmIChpc0ZldGNoaW5nICYmIHBhZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiA8TG9hZGVyIGFjdGl2ZT57bG9hZGluZ01lc3NhZ2VzfTwvTG9hZGVyPjtcbiAgfVxuXG4gIGNvbnN0IGhhc0VudHJpZXMgPSAoZW50cmllcyAmJiBlbnRyaWVzLnNpemUgPiAwKSB8fCBjdXJzb3I/LmFjdGlvbnM/LmhhcygnYXBwZW5kX25leHQnKTtcbiAgaWYgKGhhc0VudHJpZXMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPEVudHJ5TGlzdGluZ1xuICAgICAgICAgIGNvbGxlY3Rpb25zPXtjb2xsZWN0aW9uc31cbiAgICAgICAgICBlbnRyaWVzPXtlbnRyaWVzfVxuICAgICAgICAgIHZpZXdTdHlsZT17dmlld1N0eWxlfVxuICAgICAgICAgIGN1cnNvcj17Y3Vyc29yfVxuICAgICAgICAgIGhhbmRsZUN1cnNvckFjdGlvbnM9e2hhbmRsZUN1cnNvckFjdGlvbnN9XG4gICAgICAgICAgcGFnZT17cGFnZX1cbiAgICAgICAgLz5cbiAgICAgICAge2lzRmV0Y2hpbmcgJiYgcGFnZSAhPT0gdW5kZWZpbmVkICYmIGVudHJpZXMuc2l6ZSA+IDAgPyAoXG4gICAgICAgICAgPFBhZ2luYXRpb25NZXNzYWdlPnt0KCdjb2xsZWN0aW9uLmVudHJpZXMubG9hZGluZ0VudHJpZXMnKX08L1BhZ2luYXRpb25NZXNzYWdlPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gPE5vRW50cmllc01lc3NhZ2U+e3QoJ2NvbGxlY3Rpb24uZW50cmllcy5ub0VudHJpZXMnKX08L05vRW50cmllc01lc3NhZ2U+O1xufVxuXG5FbnRyaWVzLnByb3BUeXBlcyA9IHtcbiAgY29sbGVjdGlvbnM6IEltbXV0YWJsZVByb3BUeXBlcy5pdGVyYWJsZS5pc1JlcXVpcmVkLFxuICBlbnRyaWVzOiBJbW11dGFibGVQcm9wVHlwZXMubGlzdCxcbiAgcGFnZTogUHJvcFR5cGVzLm51bWJlcixcbiAgaXNGZXRjaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gIHZpZXdTdHlsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgY3Vyc29yOiBQcm9wVHlwZXMuYW55LmlzUmVxdWlyZWQsXG4gIGhhbmRsZUN1cnNvckFjdGlvbnM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCB0cmFuc2xhdGUoKShFbnRyaWVzKTtcbiJdfQ== */"));
|
||||
const NoEntriesMessage = /*#__PURE__*/(0, _base.default)(PaginationMessage, {
|
||||
target: "e1d0i3na0",
|
||||
label: "NoEntriesMessage"
|
||||
})(process.env.NODE_ENV === "production" ? {
|
||||
name: "yz1nei",
|
||||
styles: "margin-top:16px"
|
||||
} : {
|
||||
name: "yz1nei",
|
||||
styles: "margin-top:16px",
|
||||
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vRW50cmllcy9FbnRyaWVzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVrRCIsImZpbGUiOiIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9Db2xsZWN0aW9uL0VudHJpZXMvRW50cmllcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IExvYWRlciwgbGVuZ3RocyB9IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcblxuaW1wb3J0IEVudHJ5TGlzdGluZyBmcm9tICcuL0VudHJ5TGlzdGluZyc7XG5cbmNvbnN0IFBhZ2luYXRpb25NZXNzYWdlID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6ICR7bGVuZ3Rocy50b3BDYXJkV2lkdGh9O1xuICBwYWRkaW5nOiAxNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBOb0VudHJpZXNNZXNzYWdlID0gc3R5bGVkKFBhZ2luYXRpb25NZXNzYWdlKWBcbiAgbWFyZ2luLXRvcDogMTZweDtcbmA7XG5cbmZ1bmN0aW9uIEVudHJpZXMoe1xuICBjb2xsZWN0aW9ucyxcbiAgZW50cmllcyxcbiAgaXNGZXRjaGluZyxcbiAgdmlld1N0eWxlLFxuICBjdXJzb3IsXG4gIGhhbmRsZUN1cnNvckFjdGlvbnMsXG4gIHQsXG4gIHBhZ2UsXG59KSB7XG4gIGNvbnN0IGxvYWRpbmdNZXNzYWdlcyA9IFtcbiAgICB0KCdjb2xsZWN0aW9uLmVudHJpZXMubG9hZGluZ0VudHJpZXMnKSxcbiAgICB0KCdjb2xsZWN0aW9uLmVudHJpZXMuY2FjaGluZ0VudHJpZXMnKSxcbiAgICB0KCdjb2xsZWN0aW9uLmVudHJpZXMubG9uZ2VyTG9hZGluZycpLFxuICBdO1xuXG4gIGlmIChpc0ZldGNoaW5nICYmIHBhZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiA8TG9hZGVyIGFjdGl2ZT57bG9hZGluZ01lc3NhZ2VzfTwvTG9hZGVyPjtcbiAgfVxuXG4gIGNvbnN0IGhhc0VudHJpZXMgPSAoZW50cmllcyAmJiBlbnRyaWVzLnNpemUgPiAwKSB8fCBjdXJzb3I/LmFjdGlvbnM/LmhhcygnYXBwZW5kX25leHQnKTtcbiAgaWYgKGhhc0VudHJpZXMpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPEVudHJ5TGlzdGluZ1xuICAgICAgICAgIGNvbGxlY3Rpb25zPXtjb2xsZWN0aW9uc31cbiAgICAgICAgICBlbnRyaWVzPXtlbnRyaWVzfVxuICAgICAgICAgIHZpZXdTdHlsZT17dmlld1N0eWxlfVxuICAgICAgICAgIGN1cnNvcj17Y3Vyc29yfVxuICAgICAgICAgIGhhbmRsZUN1cnNvckFjdGlvbnM9e2hhbmRsZUN1cnNvckFjdGlvbnN9XG4gICAgICAgICAgcGFnZT17cGFnZX1cbiAgICAgICAgLz5cbiAgICAgICAge2lzRmV0Y2hpbmcgJiYgcGFnZSAhPT0gdW5kZWZpbmVkICYmIGVudHJpZXMuc2l6ZSA+IDAgPyAoXG4gICAgICAgICAgPFBhZ2luYXRpb25NZXNzYWdlPnt0KCdjb2xsZWN0aW9uLmVudHJpZXMubG9hZGluZ0VudHJpZXMnKX08L1BhZ2luYXRpb25NZXNzYWdlPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gPE5vRW50cmllc01lc3NhZ2U+e3QoJ2NvbGxlY3Rpb24uZW50cmllcy5ub0VudHJpZXMnKX08L05vRW50cmllc01lc3NhZ2U+O1xufVxuXG5FbnRyaWVzLnByb3BUeXBlcyA9IHtcbiAgY29sbGVjdGlvbnM6IEltbXV0YWJsZVByb3BUeXBlcy5pdGVyYWJsZS5pc1JlcXVpcmVkLFxuICBlbnRyaWVzOiBJbW11dGFibGVQcm9wVHlwZXMubGlzdCxcbiAgcGFnZTogUHJvcFR5cGVzLm51bWJlcixcbiAgaXNGZXRjaGluZzogUHJvcFR5cGVzLmJvb2wsXG4gIHZpZXdTdHlsZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgY3Vyc29yOiBQcm9wVHlwZXMuYW55LmlzUmVxdWlyZWQsXG4gIGhhbmRsZUN1cnNvckFjdGlvbnM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCB0cmFuc2xhdGUoKShFbnRyaWVzKTtcbiJdfQ== */",
|
||||
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
||||
});
|
||||
function Entries({
|
||||
collections,
|
||||
entries,
|
||||
isFetching,
|
||||
viewStyle,
|
||||
cursor,
|
||||
handleCursorActions,
|
||||
t,
|
||||
page
|
||||
}) {
|
||||
var _cursor$actions;
|
||||
const loadingMessages = [t('collection.entries.loadingEntries'), t('collection.entries.cachingEntries'), t('collection.entries.longerLoading')];
|
||||
if (isFetching && page === undefined) {
|
||||
return (0, _react2.jsx)(_decapCmsUiDefault.Loader, {
|
||||
active: true
|
||||
}, loadingMessages);
|
||||
}
|
||||
const hasEntries = entries && entries.size > 0 || (cursor === null || cursor === void 0 ? void 0 : (_cursor$actions = cursor.actions) === null || _cursor$actions === void 0 ? void 0 : _cursor$actions.has('append_next'));
|
||||
if (hasEntries) {
|
||||
return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_EntryListing.default, {
|
||||
collections: collections,
|
||||
entries: entries,
|
||||
viewStyle: viewStyle,
|
||||
cursor: cursor,
|
||||
handleCursorActions: handleCursorActions,
|
||||
page: page
|
||||
}), isFetching && page !== undefined && entries.size > 0 ? (0, _react2.jsx)(PaginationMessage, null, t('collection.entries.loadingEntries')) : null);
|
||||
}
|
||||
return (0, _react2.jsx)(NoEntriesMessage, null, t('collection.entries.noEntries'));
|
||||
}
|
||||
Entries.propTypes = {
|
||||
collections: _reactImmutableProptypes.default.iterable.isRequired,
|
||||
entries: _reactImmutableProptypes.default.list,
|
||||
page: _propTypes.default.number,
|
||||
isFetching: _propTypes.default.bool,
|
||||
viewStyle: _propTypes.default.string,
|
||||
cursor: _propTypes.default.any.isRequired,
|
||||
handleCursorActions: _propTypes.default.func.isRequired,
|
||||
t: _propTypes.default.func.isRequired
|
||||
};
|
||||
var _default = exports.default = (0, _reactPolyglot.translate)()(Entries);
|
||||
192
node_modules/decap-cms-core/dist/esm/components/Collection/Entries/EntriesCollection.js
generated
vendored
Normal file
192
node_modules/decap-cms-core/dist/esm/components/Collection/Entries/EntriesCollection.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
116
node_modules/decap-cms-core/dist/esm/components/Collection/Entries/EntriesSearch.js
generated
vendored
Normal file
116
node_modules/decap-cms-core/dist/esm/components/Collection/Entries/EntriesSearch.js
generated
vendored
Normal file
@@ -0,0 +1,116 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
||||
var _reactRedux = require("react-redux");
|
||||
var _decapCmsLibUtil = require("decap-cms-lib-util");
|
||||
var _reducers = require("../../../reducers");
|
||||
var _search = require("../../../actions/search");
|
||||
var _Entries = _interopRequireDefault(require("./Entries"));
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
class EntriesSearch extends _react.default.Component {
|
||||
constructor(...args) {
|
||||
super(...args);
|
||||
_defineProperty(this, "getCursor", () => {
|
||||
const {
|
||||
page
|
||||
} = this.props;
|
||||
return _decapCmsLibUtil.Cursor.create({
|
||||
actions: isNaN(page) ? [] : ['append_next']
|
||||
});
|
||||
});
|
||||
_defineProperty(this, "handleCursorActions", action => {
|
||||
const {
|
||||
page,
|
||||
searchTerm,
|
||||
searchEntries,
|
||||
collectionNames
|
||||
} = this.props;
|
||||
if (action === 'append_next') {
|
||||
const nextPage = page + 1;
|
||||
searchEntries(searchTerm, collectionNames, nextPage);
|
||||
}
|
||||
});
|
||||
}
|
||||
componentDidMount() {
|
||||
const {
|
||||
searchTerm,
|
||||
searchEntries,
|
||||
collectionNames
|
||||
} = this.props;
|
||||
searchEntries(searchTerm, collectionNames);
|
||||
}
|
||||
componentDidUpdate(prevProps) {
|
||||
const {
|
||||
searchTerm,
|
||||
collectionNames
|
||||
} = this.props;
|
||||
|
||||
// check if the search parameters are the same
|
||||
if (prevProps.searchTerm === searchTerm && (0, _isEqual2.default)(prevProps.collectionNames, collectionNames)) return;
|
||||
const {
|
||||
searchEntries
|
||||
} = prevProps;
|
||||
searchEntries(searchTerm, collectionNames);
|
||||
}
|
||||
componentWillUnmount() {
|
||||
this.props.clearSearch();
|
||||
}
|
||||
render() {
|
||||
const {
|
||||
collections,
|
||||
entries,
|
||||
isFetching
|
||||
} = this.props;
|
||||
return (0, _react2.jsx)(_Entries.default, {
|
||||
cursor: this.getCursor(),
|
||||
handleCursorActions: this.handleCursorActions,
|
||||
collections: collections,
|
||||
entries: entries,
|
||||
isFetching: isFetching
|
||||
});
|
||||
}
|
||||
}
|
||||
_defineProperty(EntriesSearch, "propTypes", {
|
||||
isFetching: _propTypes.default.bool,
|
||||
searchEntries: _propTypes.default.func.isRequired,
|
||||
clearSearch: _propTypes.default.func.isRequired,
|
||||
searchTerm: _propTypes.default.string.isRequired,
|
||||
collections: _reactImmutableProptypes.default.seq,
|
||||
collectionNames: _propTypes.default.array,
|
||||
entries: _reactImmutableProptypes.default.list,
|
||||
page: _propTypes.default.number
|
||||
});
|
||||
function mapStateToProps(state, ownProps) {
|
||||
const {
|
||||
searchTerm
|
||||
} = ownProps;
|
||||
const collections = ownProps.collections.toIndexedSeq();
|
||||
const collectionNames = ownProps.collections.keySeq().toArray();
|
||||
const isFetching = state.search.isFetching;
|
||||
const page = state.search.page;
|
||||
const entries = (0, _reducers.selectSearchedEntries)(state, collectionNames);
|
||||
return {
|
||||
isFetching,
|
||||
page,
|
||||
collections,
|
||||
collectionNames,
|
||||
entries,
|
||||
searchTerm
|
||||
};
|
||||
}
|
||||
const mapDispatchToProps = {
|
||||
searchEntries: _search.searchEntries,
|
||||
clearSearch: _search.clearSearch
|
||||
};
|
||||
var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(EntriesSearch);
|
||||
133
node_modules/decap-cms-core/dist/esm/components/Collection/Entries/EntryCard.js
generated
vendored
Normal file
133
node_modules/decap-cms-core/dist/esm/components/Collection/Entries/EntryCard.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
120
node_modules/decap-cms-core/dist/esm/components/Collection/Entries/EntryListing.js
generated
vendored
Normal file
120
node_modules/decap-cms-core/dist/esm/components/Collection/Entries/EntryListing.js
generated
vendored
Normal file
@@ -0,0 +1,120 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
||||
var _reactWaypoint = require("react-waypoint");
|
||||
var _immutable = require("immutable");
|
||||
var _collections = require("../../../reducers/collections");
|
||||
var _EntryCard = _interopRequireDefault(require("./EntryCard"));
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
||||
const CardsGrid = /*#__PURE__*/(0, _base.default)("ul", {
|
||||
target: "etq0ss00",
|
||||
label: "CardsGrid"
|
||||
})(process.env.NODE_ENV === "production" ? {
|
||||
name: "1dbthoi",
|
||||
styles: "display:flex;flex-flow:row wrap;list-style-type:none;margin-left:-12px;margin-top:16px;margin-bottom:16px"
|
||||
} : {
|
||||
name: "1dbthoi",
|
||||
styles: "display:flex;flex-flow:row wrap;list-style-type:none;margin-left:-12px;margin-top:16px;margin-bottom:16px",
|
||||
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vRW50cmllcy9FbnRyeUxpc3RpbmcuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVTJCIiwiZmlsZSI6Ii4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vRW50cmllcy9FbnRyeUxpc3RpbmcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBJbW11dGFibGVQcm9wVHlwZXMgZnJvbSAncmVhY3QtaW1tdXRhYmxlLXByb3B0eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBXYXlwb2ludCB9IGZyb20gJ3JlYWN0LXdheXBvaW50JztcbmltcG9ydCB7IE1hcCB9IGZyb20gJ2ltbXV0YWJsZSc7XG5cbmltcG9ydCB7IHNlbGVjdEZpZWxkcywgc2VsZWN0SW5mZXJyZWRGaWVsZCB9IGZyb20gJy4uLy4uLy4uL3JlZHVjZXJzL2NvbGxlY3Rpb25zJztcbmltcG9ydCBFbnRyeUNhcmQgZnJvbSAnLi9FbnRyeUNhcmQnO1xuXG5jb25zdCBDYXJkc0dyaWQgPSBzdHlsZWQudWxgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgbWFyZ2luLWxlZnQ6IC0xMnB4O1xuICBtYXJnaW4tdG9wOiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuYDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRW50cnlMaXN0aW5nIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjb2xsZWN0aW9uczogSW1tdXRhYmxlUHJvcFR5cGVzLml0ZXJhYmxlLmlzUmVxdWlyZWQsXG4gICAgZW50cmllczogSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3QsXG4gICAgdmlld1N0eWxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGN1cnNvcjogUHJvcFR5cGVzLmFueS5pc1JlcXVpcmVkLFxuICAgIGhhbmRsZUN1cnNvckFjdGlvbnM6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgcGFnZTogUHJvcFR5cGVzLm51bWJlcixcbiAgfTtcblxuICBoYXNNb3JlID0gKCkgPT4ge1xuICAgIGNvbnN0IGhhc01vcmUgPSB0aGlzLnByb3BzLmN1cnNvcj8uYWN0aW9ucz8uaGFzKCdhcHBlbmRfbmV4dCcpO1xuICAgIHJldHVybiBoYXNNb3JlO1xuICB9O1xuXG4gIGhhbmRsZUxvYWRNb3JlID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLmhhc01vcmUoKSkge1xuICAgICAgdGhpcy5wcm9wcy5oYW5kbGVDdXJzb3JBY3Rpb25zKCdhcHBlbmRfbmV4dCcpO1xuICAgIH1cbiAgfTtcblxuICBpbmZlckZpZWxkcyA9IGNvbGxlY3Rpb24gPT4ge1xuICAgIGNvbnN0IHRpdGxlRmllbGQgPSBzZWxlY3RJbmZlcnJlZEZpZWxkKGNvbGxlY3Rpb24sICd0aXRsZScpO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uRmllbGQgPSBzZWxlY3RJbmZlcnJlZEZpZWxkKGNvbGxlY3Rpb24sICdkZXNjcmlwdGlvbicpO1xuICAgIGNvbnN0IGltYWdlRmllbGQgPSBzZWxlY3RJbmZlcnJlZEZpZWxkKGNvbGxlY3Rpb24sICdpbWFnZScpO1xuICAgIGNvbnN0IGZpZWxkcyA9IHNlbGVjdEZpZWxkcyhjb2xsZWN0aW9uKTtcbiAgICBjb25zdCBpbmZlcnJlZEZpZWxkcyA9IFt0aXRsZUZpZWxkLCBkZXNjcmlwdGlvbkZpZWxkLCBpbWFnZUZpZWxkXTtcbiAgICBjb25zdCByZW1haW5pbmdGaWVsZHMgPVxuICAgICAgZmllbGRzICYmIGZpZWxkcy5maWx0ZXIoZiA9PiBpbmZlcnJlZEZpZWxkcy5pbmRleE9mKGYuZ2V0KCduYW1lJykpID09PSAtMSk7XG4gICAgcmV0dXJuIHsgdGl0bGVGaWVsZCwgZGVzY3JpcHRpb25GaWVsZCwgaW1hZ2VGaWVsZCwgcmVtYWluaW5nRmllbGRzIH07XG4gIH07XG5cbiAgcmVuZGVyQ2FyZHNGb3JTaW5nbGVDb2xsZWN0aW9uID0gKCkgPT4ge1xuICAgIGNvbnN0IHsgY29sbGVjdGlvbnMsIGVudHJpZXMsIHZpZXdTdHlsZSB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBpbmZlcnJlZEZpZWxkcyA9IHRoaXMuaW5mZXJGaWVsZHMoY29sbGVjdGlvbnMpO1xuICAgIGNvbnN0IGVudHJ5Q2FyZFByb3BzID0geyBjb2xsZWN0aW9uOiBjb2xsZWN0aW9ucywgaW5mZXJyZWRGaWVsZHMsIHZpZXdTdHlsZSB9O1xuICAgIHJldHVybiBlbnRyaWVzLm1hcCgoZW50cnksIGlkeCkgPT4gPEVudHJ5Q2FyZCB7Li4uZW50cnlDYXJkUHJvcHN9IGVudHJ5PXtlbnRyeX0ga2V5PXtpZHh9IC8+KTtcbiAgfTtcblxuICByZW5kZXJDYXJkc0Zvck11bHRpcGxlQ29sbGVjdGlvbnMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBjb2xsZWN0aW9ucywgZW50cmllcyB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBpc1NpbmdsZUNvbGxlY3Rpb25Jbkxpc3QgPSBjb2xsZWN0aW9ucy5zaXplID09PSAxO1xuICAgIHJldHVybiBlbnRyaWVzLm1hcCgoZW50cnksIGlkeCkgPT4ge1xuICAgICAgY29uc3QgY29sbGVjdGlvbk5hbWUgPSBlbnRyeS5nZXQoJ2NvbGxlY3Rpb24nKTtcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9ucy5maW5kKGNvbGwgPT4gY29sbC5nZXQoJ25hbWUnKSA9PT0gY29sbGVjdGlvbk5hbWUpO1xuICAgICAgY29uc3QgY29sbGVjdGlvbkxhYmVsID0gIWlzU2luZ2xlQ29sbGVjdGlvbkluTGlzdCAmJiBjb2xsZWN0aW9uLmdldCgnbGFiZWwnKTtcbiAgICAgIGNvbnN0IGluZmVycmVkRmllbGRzID0gdGhpcy5pbmZlckZpZWxkcyhjb2xsZWN0aW9uKTtcbiAgICAgIGNvbnN0IGVudHJ5Q2FyZFByb3BzID0geyBjb2xsZWN0aW9uLCBlbnRyeSwgaW5mZXJyZWRGaWVsZHMsIGNvbGxlY3Rpb25MYWJlbCB9O1xuICAgICAgcmV0dXJuIDxFbnRyeUNhcmQgey4uLmVudHJ5Q2FyZFByb3BzfSBrZXk9e2lkeH0gLz47XG4gICAgfSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY29sbGVjdGlvbnMsIHBhZ2UgfSA9IHRoaXMucHJvcHM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPENhcmRzR3JpZD5cbiAgICAgICAgICB7TWFwLmlzTWFwKGNvbGxlY3Rpb25zKVxuICAgICAgICAgICAgPyB0aGlzLnJlbmRlckNhcmRzRm9yU2luZ2xlQ29sbGVjdGlvbigpXG4gICAgICAgICAgICA6IHRoaXMucmVuZGVyQ2FyZHNGb3JNdWx0aXBsZUNvbGxlY3Rpb25zKCl9XG4gICAgICAgICAge3RoaXMuaGFzTW9yZSgpICYmIDxXYXlwb2ludCBrZXk9e3BhZ2V9IG9uRW50ZXI9e3RoaXMuaGFuZGxlTG9hZE1vcmV9IC8+fVxuICAgICAgICA8L0NhcmRzR3JpZD5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cbiJdfQ== */",
|
||||
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
||||
});
|
||||
class EntryListing extends _react.default.Component {
|
||||
constructor(...args) {
|
||||
super(...args);
|
||||
_defineProperty(this, "hasMore", () => {
|
||||
var _this$props$cursor, _this$props$cursor$ac;
|
||||
const hasMore = (_this$props$cursor = this.props.cursor) === null || _this$props$cursor === void 0 ? void 0 : (_this$props$cursor$ac = _this$props$cursor.actions) === null || _this$props$cursor$ac === void 0 ? void 0 : _this$props$cursor$ac.has('append_next');
|
||||
return hasMore;
|
||||
});
|
||||
_defineProperty(this, "handleLoadMore", () => {
|
||||
if (this.hasMore()) {
|
||||
this.props.handleCursorActions('append_next');
|
||||
}
|
||||
});
|
||||
_defineProperty(this, "inferFields", collection => {
|
||||
const titleField = (0, _collections.selectInferredField)(collection, 'title');
|
||||
const descriptionField = (0, _collections.selectInferredField)(collection, 'description');
|
||||
const imageField = (0, _collections.selectInferredField)(collection, 'image');
|
||||
const fields = (0, _collections.selectFields)(collection);
|
||||
const inferredFields = [titleField, descriptionField, imageField];
|
||||
const remainingFields = fields && fields.filter(f => inferredFields.indexOf(f.get('name')) === -1);
|
||||
return {
|
||||
titleField,
|
||||
descriptionField,
|
||||
imageField,
|
||||
remainingFields
|
||||
};
|
||||
});
|
||||
_defineProperty(this, "renderCardsForSingleCollection", () => {
|
||||
const {
|
||||
collections,
|
||||
entries,
|
||||
viewStyle
|
||||
} = this.props;
|
||||
const inferredFields = this.inferFields(collections);
|
||||
const entryCardProps = {
|
||||
collection: collections,
|
||||
inferredFields,
|
||||
viewStyle
|
||||
};
|
||||
return entries.map((entry, idx) => (0, _react2.jsx)(_EntryCard.default, _extends({}, entryCardProps, {
|
||||
entry: entry,
|
||||
key: idx
|
||||
})));
|
||||
});
|
||||
_defineProperty(this, "renderCardsForMultipleCollections", () => {
|
||||
const {
|
||||
collections,
|
||||
entries
|
||||
} = this.props;
|
||||
const isSingleCollectionInList = collections.size === 1;
|
||||
return entries.map((entry, idx) => {
|
||||
const collectionName = entry.get('collection');
|
||||
const collection = collections.find(coll => coll.get('name') === collectionName);
|
||||
const collectionLabel = !isSingleCollectionInList && collection.get('label');
|
||||
const inferredFields = this.inferFields(collection);
|
||||
const entryCardProps = {
|
||||
collection,
|
||||
entry,
|
||||
inferredFields,
|
||||
collectionLabel
|
||||
};
|
||||
return (0, _react2.jsx)(_EntryCard.default, _extends({}, entryCardProps, {
|
||||
key: idx
|
||||
}));
|
||||
});
|
||||
});
|
||||
}
|
||||
render() {
|
||||
const {
|
||||
collections,
|
||||
page
|
||||
} = this.props;
|
||||
return (0, _react2.jsx)("div", null, (0, _react2.jsx)(CardsGrid, null, _immutable.Map.isMap(collections) ? this.renderCardsForSingleCollection() : this.renderCardsForMultipleCollections(), this.hasMore() && (0, _react2.jsx)(_reactWaypoint.Waypoint, {
|
||||
key: page,
|
||||
onEnter: this.handleLoadMore
|
||||
})));
|
||||
}
|
||||
}
|
||||
exports.default = EntryListing;
|
||||
_defineProperty(EntryListing, "propTypes", {
|
||||
collections: _reactImmutableProptypes.default.iterable.isRequired,
|
||||
entries: _reactImmutableProptypes.default.list,
|
||||
viewStyle: _propTypes.default.string,
|
||||
cursor: _propTypes.default.any.isRequired,
|
||||
handleCursorActions: _propTypes.default.func.isRequired,
|
||||
page: _propTypes.default.number
|
||||
});
|
||||
40
node_modules/decap-cms-core/dist/esm/components/Collection/FilterControl.js
generated
vendored
Normal file
40
node_modules/decap-cms-core/dist/esm/components/Collection/FilterControl.js
generated
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _reactPolyglot = require("react-polyglot");
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _ControlButton = require("./ControlButton");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function FilterControl({
|
||||
viewFilters,
|
||||
t,
|
||||
onFilterClick,
|
||||
filter
|
||||
}) {
|
||||
const hasActiveFilter = filter === null || filter === void 0 ? void 0 : filter.valueSeq().toJS().some(f => f.active === true);
|
||||
return (0, _react2.jsx)(_decapCmsUiDefault.Dropdown, {
|
||||
renderButton: () => {
|
||||
return (0, _react2.jsx)(_ControlButton.ControlButton, {
|
||||
active: hasActiveFilter,
|
||||
title: t('collection.collectionTop.filterBy')
|
||||
});
|
||||
},
|
||||
closeOnSelection: false,
|
||||
dropdownTopOverlap: "30px",
|
||||
dropdownPosition: "left"
|
||||
}, viewFilters.map(viewFilter => {
|
||||
return (0, _react2.jsx)(_decapCmsUiDefault.DropdownCheckedItem, {
|
||||
key: viewFilter.id,
|
||||
label: viewFilter.label,
|
||||
id: viewFilter.id,
|
||||
checked: filter.getIn([viewFilter.id, 'active'], false),
|
||||
onClick: () => onFilterClick(viewFilter)
|
||||
});
|
||||
}));
|
||||
}
|
||||
var _default = exports.default = (0, _reactPolyglot.translate)()(FilterControl);
|
||||
40
node_modules/decap-cms-core/dist/esm/components/Collection/GroupControl.js
generated
vendored
Normal file
40
node_modules/decap-cms-core/dist/esm/components/Collection/GroupControl.js
generated
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _reactPolyglot = require("react-polyglot");
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _ControlButton = require("./ControlButton");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function GroupControl({
|
||||
viewGroups,
|
||||
t,
|
||||
onGroupClick,
|
||||
group
|
||||
}) {
|
||||
const hasActiveGroup = group === null || group === void 0 ? void 0 : group.valueSeq().toJS().some(f => f.active === true);
|
||||
return (0, _react2.jsx)(_decapCmsUiDefault.Dropdown, {
|
||||
renderButton: () => {
|
||||
return (0, _react2.jsx)(_ControlButton.ControlButton, {
|
||||
active: hasActiveGroup,
|
||||
title: t('collection.collectionTop.groupBy')
|
||||
});
|
||||
},
|
||||
closeOnSelection: false,
|
||||
dropdownTopOverlap: "30px",
|
||||
dropdownWidth: "160px",
|
||||
dropdownPosition: "left"
|
||||
}, viewGroups.map(viewGroup => {
|
||||
return (0, _react2.jsx)(_decapCmsUiDefault.DropdownItem, {
|
||||
key: viewGroup.id,
|
||||
label: viewGroup.label,
|
||||
onClick: () => onGroupClick(viewGroup),
|
||||
isActive: group.getIn([viewGroup.id, 'active'], false)
|
||||
});
|
||||
}));
|
||||
}
|
||||
var _default = exports.default = (0, _reactPolyglot.translate)()(GroupControl);
|
||||
310
node_modules/decap-cms-core/dist/esm/components/Collection/NestedCollection.js
generated
vendored
Normal file
310
node_modules/decap-cms-core/dist/esm/components/Collection/NestedCollection.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
101
node_modules/decap-cms-core/dist/esm/components/Collection/Sidebar.js
generated
vendored
Normal file
101
node_modules/decap-cms-core/dist/esm/components/Collection/Sidebar.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
66
node_modules/decap-cms-core/dist/esm/components/Collection/SortControl.js
generated
vendored
Normal file
66
node_modules/decap-cms-core/dist/esm/components/Collection/SortControl.js
generated
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _reactPolyglot = require("react-polyglot");
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _redux = require("../../types/redux");
|
||||
var _ControlButton = require("./ControlButton");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
||||
function nextSortDirection(direction) {
|
||||
switch (direction) {
|
||||
case _redux.SortDirection.Ascending:
|
||||
return _redux.SortDirection.Descending;
|
||||
case _redux.SortDirection.Descending:
|
||||
return _redux.SortDirection.None;
|
||||
default:
|
||||
return _redux.SortDirection.Ascending;
|
||||
}
|
||||
}
|
||||
function sortIconProps(sortDir) {
|
||||
return {
|
||||
icon: 'chevron',
|
||||
iconDirection: sortIconDirections[sortDir],
|
||||
iconSmall: true
|
||||
};
|
||||
}
|
||||
const sortIconDirections = {
|
||||
[_redux.SortDirection.Ascending]: 'up',
|
||||
[_redux.SortDirection.Descending]: 'down'
|
||||
};
|
||||
function SortControl({
|
||||
t,
|
||||
fields,
|
||||
onSortClick,
|
||||
sort
|
||||
}) {
|
||||
const hasActiveSort = sort === null || sort === void 0 ? void 0 : sort.valueSeq().toJS().some(s => s.direction !== _redux.SortDirection.None);
|
||||
return (0, _react2.jsx)(_decapCmsUiDefault.Dropdown, {
|
||||
renderButton: () => {
|
||||
return (0, _react2.jsx)(_ControlButton.ControlButton, {
|
||||
active: hasActiveSort,
|
||||
title: t('collection.collectionTop.sortBy')
|
||||
});
|
||||
},
|
||||
closeOnSelection: false,
|
||||
dropdownTopOverlap: "30px",
|
||||
dropdownWidth: "160px",
|
||||
dropdownPosition: "left"
|
||||
}, fields.map(field => {
|
||||
const sortDir = sort === null || sort === void 0 ? void 0 : sort.getIn([field.key, 'direction']);
|
||||
const isActive = sortDir && sortDir !== _redux.SortDirection.None;
|
||||
const nextSortDir = nextSortDirection(sortDir);
|
||||
return (0, _react2.jsx)(_decapCmsUiDefault.DropdownItem, _extends({
|
||||
key: field.key,
|
||||
label: field.label,
|
||||
onClick: () => onSortClick(field.key, nextSortDir),
|
||||
isActive: isActive
|
||||
}, isActive && sortIconProps(sortDir)));
|
||||
}));
|
||||
}
|
||||
var _default = exports.default = (0, _reactPolyglot.translate)()(SortControl);
|
||||
46
node_modules/decap-cms-core/dist/esm/components/Collection/ViewStyleControl.js
generated
vendored
Normal file
46
node_modules/decap-cms-core/dist/esm/components/Collection/ViewStyleControl.js
generated
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _collectionViews = require("../../constants/collectionViews");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
||||
const ViewControlsSection = /*#__PURE__*/(0, _base.default)("div", {
|
||||
target: "evv1i7c1",
|
||||
label: "ViewControlsSection"
|
||||
})(process.env.NODE_ENV === "production" ? {
|
||||
name: "k6mob8",
|
||||
styles: "display:flex;align-items:center;justify-content:flex-end;max-width:500px"
|
||||
} : {
|
||||
name: "k6mob8",
|
||||
styles: "display:flex;align-items:center;justify-content:flex-end;max-width:500px",
|
||||
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vVmlld1N0eWxlQ29udHJvbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNc0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvQ29sbGVjdGlvbi9WaWV3U3R5bGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IEljb24sIGJ1dHRvbnMsIGNvbG9ycyB9IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcblxuaW1wb3J0IHsgVklFV19TVFlMRV9MSVNULCBWSUVXX1NUWUxFX0dSSUQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29sbGVjdGlvblZpZXdzJztcblxuY29uc3QgVmlld0NvbnRyb2xzU2VjdGlvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIG1heC13aWR0aDogNTAwcHg7XG5gO1xuXG5jb25zdCBWaWV3Q29udHJvbHNCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gKHByb3BzLmlzQWN0aXZlID8gY29sb3JzLmFjdGl2ZSA6ICcjYjNiOWM0Jyl9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMCA0cHg7XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cblxuICAke0ljb259IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuYDtcblxuZnVuY3Rpb24gVmlld1N0eWxlQ29udHJvbCh7IHZpZXdTdHlsZSwgb25DaGFuZ2VWaWV3U3R5bGUgfSkge1xuICByZXR1cm4gKFxuICAgIDxWaWV3Q29udHJvbHNTZWN0aW9uPlxuICAgICAgPFZpZXdDb250cm9sc0J1dHRvblxuICAgICAgICBpc0FjdGl2ZT17dmlld1N0eWxlID09PSBWSUVXX1NUWUxFX0xJU1R9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlVmlld1N0eWxlKFZJRVdfU1RZTEVfTElTVCl9XG4gICAgICA+XG4gICAgICAgIDxJY29uIHR5cGU9XCJsaXN0XCIgLz5cbiAgICAgIDwvVmlld0NvbnRyb2xzQnV0dG9uPlxuICAgICAgPFZpZXdDb250cm9sc0J1dHRvblxuICAgICAgICBpc0FjdGl2ZT17dmlld1N0eWxlID09PSBWSUVXX1NUWUxFX0dSSUR9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlVmlld1N0eWxlKFZJRVdfU1RZTEVfR1JJRCl9XG4gICAgICA+XG4gICAgICAgIDxJY29uIHR5cGU9XCJncmlkXCIgLz5cbiAgICAgIDwvVmlld0NvbnRyb2xzQnV0dG9uPlxuICAgIDwvVmlld0NvbnRyb2xzU2VjdGlvbj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVmlld1N0eWxlQ29udHJvbDtcbiJdfQ== */",
|
||||
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
||||
});
|
||||
const ViewControlsButton = /*#__PURE__*/(0, _base.default)("button", {
|
||||
target: "evv1i7c0",
|
||||
label: "ViewControlsButton"
|
||||
})(_decapCmsUiDefault.buttons.button, ";color:", props => props.isActive ? _decapCmsUiDefault.colors.active : '#b3b9c4', ";background-color:transparent;display:block;padding:0;margin:0 4px;&:last-child{margin-right:0;}", _decapCmsUiDefault.Icon, "{display:block;}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0NvbGxlY3Rpb24vVmlld1N0eWxlQ29udHJvbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhd0MiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvQ29sbGVjdGlvbi9WaWV3U3R5bGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IEljb24sIGJ1dHRvbnMsIGNvbG9ycyB9IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcblxuaW1wb3J0IHsgVklFV19TVFlMRV9MSVNULCBWSUVXX1NUWUxFX0dSSUQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29sbGVjdGlvblZpZXdzJztcblxuY29uc3QgVmlld0NvbnRyb2xzU2VjdGlvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIG1heC13aWR0aDogNTAwcHg7XG5gO1xuXG5jb25zdCBWaWV3Q29udHJvbHNCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgY29sb3I6ICR7cHJvcHMgPT4gKHByb3BzLmlzQWN0aXZlID8gY29sb3JzLmFjdGl2ZSA6ICcjYjNiOWM0Jyl9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMCA0cHg7XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cblxuICAke0ljb259IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuYDtcblxuZnVuY3Rpb24gVmlld1N0eWxlQ29udHJvbCh7IHZpZXdTdHlsZSwgb25DaGFuZ2VWaWV3U3R5bGUgfSkge1xuICByZXR1cm4gKFxuICAgIDxWaWV3Q29udHJvbHNTZWN0aW9uPlxuICAgICAgPFZpZXdDb250cm9sc0J1dHRvblxuICAgICAgICBpc0FjdGl2ZT17dmlld1N0eWxlID09PSBWSUVXX1NUWUxFX0xJU1R9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlVmlld1N0eWxlKFZJRVdfU1RZTEVfTElTVCl9XG4gICAgICA+XG4gICAgICAgIDxJY29uIHR5cGU9XCJsaXN0XCIgLz5cbiAgICAgIDwvVmlld0NvbnRyb2xzQnV0dG9uPlxuICAgICAgPFZpZXdDb250cm9sc0J1dHRvblxuICAgICAgICBpc0FjdGl2ZT17dmlld1N0eWxlID09PSBWSUVXX1NUWUxFX0dSSUR9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlVmlld1N0eWxlKFZJRVdfU1RZTEVfR1JJRCl9XG4gICAgICA+XG4gICAgICAgIDxJY29uIHR5cGU9XCJncmlkXCIgLz5cbiAgICAgIDwvVmlld0NvbnRyb2xzQnV0dG9uPlxuICAgIDwvVmlld0NvbnRyb2xzU2VjdGlvbj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVmlld1N0eWxlQ29udHJvbDtcbiJdfQ== */"));
|
||||
function ViewStyleControl({
|
||||
viewStyle,
|
||||
onChangeViewStyle
|
||||
}) {
|
||||
return (0, _react2.jsx)(ViewControlsSection, null, (0, _react2.jsx)(ViewControlsButton, {
|
||||
isActive: viewStyle === _collectionViews.VIEW_STYLE_LIST,
|
||||
onClick: () => onChangeViewStyle(_collectionViews.VIEW_STYLE_LIST)
|
||||
}, (0, _react2.jsx)(_decapCmsUiDefault.Icon, {
|
||||
type: "list"
|
||||
})), (0, _react2.jsx)(ViewControlsButton, {
|
||||
isActive: viewStyle === _collectionViews.VIEW_STYLE_GRID,
|
||||
onClick: () => onChangeViewStyle(_collectionViews.VIEW_STYLE_GRID)
|
||||
}, (0, _react2.jsx)(_decapCmsUiDefault.Icon, {
|
||||
type: "grid"
|
||||
})));
|
||||
}
|
||||
var _default = exports.default = ViewStyleControl;
|
||||
478
node_modules/decap-cms-core/dist/esm/components/Editor/Editor.js
generated
vendored
Normal file
478
node_modules/decap-cms-core/dist/esm/components/Editor/Editor.js
generated
vendored
Normal file
@@ -0,0 +1,478 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = exports.Editor = void 0;
|
||||
var _debounce2 = _interopRequireDefault(require("lodash/debounce"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
||||
var _reactRedux = require("react-redux");
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _reactPolyglot = require("react-polyglot");
|
||||
var _history = require("../../routing/history");
|
||||
var _auth = require("../../actions/auth");
|
||||
var _entries = require("../../actions/entries");
|
||||
var _editorialWorkflow = require("../../actions/editorialWorkflow");
|
||||
var _deploys = require("../../actions/deploys");
|
||||
var _reducers = require("../../reducers");
|
||||
var _collections = require("../../reducers/collections");
|
||||
var _publishModes = require("../../constants/publishModes");
|
||||
var _EditorInterface = _interopRequireDefault(require("./EditorInterface"));
|
||||
var _withWorkflow = _interopRequireDefault(require("./withWorkflow"));
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
class Editor extends _react.default.Component {
|
||||
constructor(...args) {
|
||||
super(...args);
|
||||
_defineProperty(this, "createBackup", (0, _debounce2.default)(function (entry, collection) {
|
||||
this.props.persistLocalBackup(entry, collection);
|
||||
}, 2000));
|
||||
_defineProperty(this, "handleChangeDraftField", (field, value, metadata, i18n) => {
|
||||
const entries = [this.props.unPublishedEntry, this.props.publishedEntry].filter(Boolean);
|
||||
this.props.changeDraftField({
|
||||
field,
|
||||
value,
|
||||
metadata,
|
||||
entries,
|
||||
i18n
|
||||
});
|
||||
});
|
||||
_defineProperty(this, "handleChangeStatus", newStatusName => {
|
||||
const {
|
||||
entryDraft,
|
||||
updateUnpublishedEntryStatus,
|
||||
collection,
|
||||
slug,
|
||||
currentStatus,
|
||||
t
|
||||
} = this.props;
|
||||
if (entryDraft.get('hasChanged')) {
|
||||
window.alert(t('editor.editor.onUpdatingWithUnsavedChanges'));
|
||||
return;
|
||||
}
|
||||
const newStatus = _publishModes.status.get(newStatusName);
|
||||
updateUnpublishedEntryStatus(collection.get('name'), slug, currentStatus, newStatus);
|
||||
});
|
||||
_defineProperty(this, "handlePersistEntry", async (opts = {}) => {
|
||||
const {
|
||||
createNew = false,
|
||||
duplicate = false
|
||||
} = opts;
|
||||
const {
|
||||
persistEntry,
|
||||
collection,
|
||||
currentStatus,
|
||||
hasWorkflow,
|
||||
loadEntry,
|
||||
slug,
|
||||
createDraftDuplicateFromEntry,
|
||||
entryDraft
|
||||
} = this.props;
|
||||
await persistEntry(collection);
|
||||
this.deleteBackup();
|
||||
if (createNew) {
|
||||
(0, _history.navigateToNewEntry)(collection.get('name'));
|
||||
duplicate && createDraftDuplicateFromEntry(entryDraft.get('entry'));
|
||||
} else if (slug && hasWorkflow && !currentStatus) {
|
||||
loadEntry(collection, slug);
|
||||
}
|
||||
});
|
||||
_defineProperty(this, "handlePublishEntry", async (opts = {}) => {
|
||||
const {
|
||||
createNew = false,
|
||||
duplicate = false
|
||||
} = opts;
|
||||
const {
|
||||
publishUnpublishedEntry,
|
||||
createDraftDuplicateFromEntry,
|
||||
entryDraft,
|
||||
collection,
|
||||
slug,
|
||||
currentStatus,
|
||||
t
|
||||
} = this.props;
|
||||
if (currentStatus !== _publishModes.status.last()) {
|
||||
window.alert(t('editor.editor.onPublishingNotReady'));
|
||||
return;
|
||||
} else if (entryDraft.get('hasChanged')) {
|
||||
window.alert(t('editor.editor.onPublishingWithUnsavedChanges'));
|
||||
return;
|
||||
} else if (!window.confirm(t('editor.editor.onPublishing'))) {
|
||||
return;
|
||||
}
|
||||
await publishUnpublishedEntry(collection.get('name'), slug);
|
||||
this.deleteBackup();
|
||||
if (createNew) {
|
||||
(0, _history.navigateToNewEntry)(collection.get('name'));
|
||||
}
|
||||
duplicate && createDraftDuplicateFromEntry(entryDraft.get('entry'));
|
||||
});
|
||||
_defineProperty(this, "handleUnpublishEntry", async () => {
|
||||
const {
|
||||
unpublishPublishedEntry,
|
||||
collection,
|
||||
slug,
|
||||
t
|
||||
} = this.props;
|
||||
if (!window.confirm(t('editor.editor.onUnpublishing'))) return;
|
||||
await unpublishPublishedEntry(collection, slug);
|
||||
return (0, _history.navigateToCollection)(collection.get('name'));
|
||||
});
|
||||
_defineProperty(this, "handleDuplicateEntry", () => {
|
||||
const {
|
||||
createDraftDuplicateFromEntry,
|
||||
collection,
|
||||
entryDraft
|
||||
} = this.props;
|
||||
(0, _history.navigateToNewEntry)(collection.get('name'));
|
||||
createDraftDuplicateFromEntry(entryDraft.get('entry'));
|
||||
});
|
||||
_defineProperty(this, "handleDeleteEntry", () => {
|
||||
const {
|
||||
entryDraft,
|
||||
newEntry,
|
||||
collection,
|
||||
deleteEntry,
|
||||
slug,
|
||||
t
|
||||
} = this.props;
|
||||
if (entryDraft.get('hasChanged')) {
|
||||
if (!window.confirm(t('editor.editor.onDeleteWithUnsavedChanges'))) {
|
||||
return;
|
||||
}
|
||||
} else if (!window.confirm(t('editor.editor.onDeletePublishedEntry'))) {
|
||||
return;
|
||||
}
|
||||
if (newEntry) {
|
||||
return (0, _history.navigateToCollection)(collection.get('name'));
|
||||
}
|
||||
setTimeout(async () => {
|
||||
await deleteEntry(collection, slug);
|
||||
this.deleteBackup();
|
||||
return (0, _history.navigateToCollection)(collection.get('name'));
|
||||
}, 0);
|
||||
});
|
||||
_defineProperty(this, "handleDeleteUnpublishedChanges", async () => {
|
||||
const {
|
||||
entryDraft,
|
||||
collection,
|
||||
slug,
|
||||
deleteUnpublishedEntry,
|
||||
loadEntry,
|
||||
isModification,
|
||||
t
|
||||
} = this.props;
|
||||
if (entryDraft.get('hasChanged') && !window.confirm(t('editor.editor.onDeleteUnpublishedChangesWithUnsavedChanges'))) {
|
||||
return;
|
||||
} else if (!window.confirm(t('editor.editor.onDeleteUnpublishedChanges'))) {
|
||||
return;
|
||||
}
|
||||
await deleteUnpublishedEntry(collection.get('name'), slug);
|
||||
this.deleteBackup();
|
||||
if (isModification) {
|
||||
loadEntry(collection, slug);
|
||||
} else {
|
||||
(0, _history.navigateToCollection)(collection.get('name'));
|
||||
}
|
||||
});
|
||||
}
|
||||
componentDidMount() {
|
||||
const {
|
||||
newEntry,
|
||||
collection,
|
||||
slug,
|
||||
loadEntry,
|
||||
createEmptyDraft,
|
||||
loadEntries,
|
||||
retrieveLocalBackup,
|
||||
collectionEntriesLoaded,
|
||||
t
|
||||
} = this.props;
|
||||
retrieveLocalBackup(collection, slug);
|
||||
if (newEntry) {
|
||||
createEmptyDraft(collection, this.props.location.search);
|
||||
} else {
|
||||
loadEntry(collection, slug);
|
||||
}
|
||||
const leaveMessage = t('editor.editor.onLeavePage');
|
||||
this.exitBlocker = event => {
|
||||
if (this.props.entryDraft.get('hasChanged')) {
|
||||
// This message is ignored in most browsers, but its presence
|
||||
// triggers the confirmation dialog
|
||||
event.returnValue = leaveMessage;
|
||||
return leaveMessage;
|
||||
}
|
||||
};
|
||||
window.addEventListener('beforeunload', this.exitBlocker);
|
||||
const navigationBlocker = (location, action) => {
|
||||
/**
|
||||
* New entry being saved and redirected to it's new slug based url.
|
||||
*/
|
||||
const isPersisting = this.props.entryDraft.getIn(['entry', 'isPersisting']);
|
||||
const newRecord = this.props.entryDraft.getIn(['entry', 'newRecord']);
|
||||
const newEntryPath = `/collections/${collection.get('name')}/new`;
|
||||
if (isPersisting && newRecord && this.props.location.pathname === newEntryPath && action === 'PUSH') {
|
||||
return;
|
||||
}
|
||||
if (this.props.hasChanged) {
|
||||
return leaveMessage;
|
||||
}
|
||||
};
|
||||
const unblock = _history.history.block(navigationBlocker);
|
||||
|
||||
/**
|
||||
* This will run as soon as the location actually changes, unless creating
|
||||
* a new post. The confirmation above will run first.
|
||||
*/
|
||||
this.unlisten = _history.history.listen((location, action) => {
|
||||
const newEntryPath = `/collections/${collection.get('name')}/new`;
|
||||
const entriesPath = `/collections/${collection.get('name')}/entries/`;
|
||||
const {
|
||||
pathname
|
||||
} = location;
|
||||
if (pathname.startsWith(newEntryPath) || pathname.startsWith(entriesPath) && action === 'PUSH') {
|
||||
return;
|
||||
}
|
||||
this.deleteBackup();
|
||||
unblock();
|
||||
this.unlisten();
|
||||
});
|
||||
if (!collectionEntriesLoaded) {
|
||||
loadEntries(collection);
|
||||
}
|
||||
}
|
||||
componentDidUpdate(prevProps) {
|
||||
if (!prevProps.localBackup && this.props.localBackup) {
|
||||
const confirmLoadBackup = window.confirm(this.props.t('editor.editor.confirmLoadBackup'));
|
||||
if (confirmLoadBackup) {
|
||||
this.props.loadLocalBackup();
|
||||
} else {
|
||||
this.deleteBackup();
|
||||
}
|
||||
}
|
||||
if (this.props.hasChanged) {
|
||||
this.createBackup(this.props.entryDraft.get('entry'), this.props.collection);
|
||||
}
|
||||
if (prevProps.entry === this.props.entry) return;
|
||||
const {
|
||||
newEntry,
|
||||
collection
|
||||
} = this.props;
|
||||
if (newEntry) {
|
||||
prevProps.createEmptyDraft(collection, this.props.location.search);
|
||||
}
|
||||
}
|
||||
componentWillUnmount() {
|
||||
this.createBackup.flush();
|
||||
this.props.discardDraft();
|
||||
window.removeEventListener('beforeunload', this.exitBlocker);
|
||||
}
|
||||
deleteBackup() {
|
||||
const {
|
||||
deleteLocalBackup,
|
||||
collection,
|
||||
slug,
|
||||
newEntry
|
||||
} = this.props;
|
||||
this.createBackup.cancel();
|
||||
deleteLocalBackup(collection, !newEntry && slug);
|
||||
}
|
||||
render() {
|
||||
const {
|
||||
entry,
|
||||
entryDraft,
|
||||
fields,
|
||||
collection,
|
||||
changeDraftFieldValidation,
|
||||
user,
|
||||
hasChanged,
|
||||
displayUrl,
|
||||
hasWorkflow,
|
||||
useOpenAuthoring,
|
||||
unpublishedEntry,
|
||||
newEntry,
|
||||
isModification,
|
||||
currentStatus,
|
||||
logoutUser,
|
||||
deployPreview,
|
||||
loadDeployPreview,
|
||||
draftKey,
|
||||
slug,
|
||||
t,
|
||||
editorBackLink
|
||||
} = this.props;
|
||||
const isPublished = !newEntry && !unpublishedEntry;
|
||||
if (entry && entry.get('error')) {
|
||||
return (0, _react2.jsx)("div", null, (0, _react2.jsx)("h3", null, entry.get('error')));
|
||||
} else if (entryDraft == null || entryDraft.get('entry') === undefined || entry && entry.get('isFetching')) {
|
||||
return (0, _react2.jsx)(_decapCmsUiDefault.Loader, {
|
||||
active: true
|
||||
}, t('editor.editor.loadingEntry'));
|
||||
}
|
||||
return (0, _react2.jsx)(_EditorInterface.default, {
|
||||
draftKey: draftKey,
|
||||
entry: entryDraft.get('entry'),
|
||||
collection: collection,
|
||||
fields: fields,
|
||||
fieldsMetaData: entryDraft.get('fieldsMetaData'),
|
||||
fieldsErrors: entryDraft.get('fieldsErrors'),
|
||||
onChange: this.handleChangeDraftField,
|
||||
onValidate: changeDraftFieldValidation,
|
||||
onPersist: this.handlePersistEntry,
|
||||
onDelete: this.handleDeleteEntry,
|
||||
onDeleteUnpublishedChanges: this.handleDeleteUnpublishedChanges,
|
||||
onChangeStatus: this.handleChangeStatus,
|
||||
onPublish: this.handlePublishEntry,
|
||||
unPublish: this.handleUnpublishEntry,
|
||||
onDuplicate: this.handleDuplicateEntry,
|
||||
showDelete: this.props.showDelete,
|
||||
user: user,
|
||||
hasChanged: hasChanged,
|
||||
displayUrl: displayUrl,
|
||||
hasWorkflow: hasWorkflow,
|
||||
useOpenAuthoring: useOpenAuthoring,
|
||||
hasUnpublishedChanges: unpublishedEntry,
|
||||
isNewEntry: newEntry,
|
||||
isModification: isModification,
|
||||
currentStatus: currentStatus,
|
||||
onLogoutClick: logoutUser,
|
||||
deployPreview: deployPreview,
|
||||
loadDeployPreview: opts => loadDeployPreview(collection, slug, entry, isPublished, opts),
|
||||
editorBackLink: editorBackLink,
|
||||
t: t
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.Editor = Editor;
|
||||
_defineProperty(Editor, "propTypes", {
|
||||
changeDraftField: _propTypes.default.func.isRequired,
|
||||
changeDraftFieldValidation: _propTypes.default.func.isRequired,
|
||||
collection: _reactImmutableProptypes.default.map.isRequired,
|
||||
createDraftDuplicateFromEntry: _propTypes.default.func.isRequired,
|
||||
createEmptyDraft: _propTypes.default.func.isRequired,
|
||||
discardDraft: _propTypes.default.func.isRequired,
|
||||
entry: _reactImmutableProptypes.default.map,
|
||||
entryDraft: _reactImmutableProptypes.default.map.isRequired,
|
||||
loadEntry: _propTypes.default.func.isRequired,
|
||||
persistEntry: _propTypes.default.func.isRequired,
|
||||
deleteEntry: _propTypes.default.func.isRequired,
|
||||
showDelete: _propTypes.default.bool.isRequired,
|
||||
fields: _reactImmutableProptypes.default.list.isRequired,
|
||||
slug: _propTypes.default.string,
|
||||
newEntry: _propTypes.default.bool.isRequired,
|
||||
displayUrl: _propTypes.default.string,
|
||||
hasWorkflow: _propTypes.default.bool,
|
||||
useOpenAuthoring: _propTypes.default.bool,
|
||||
unpublishedEntry: _propTypes.default.bool,
|
||||
isModification: _propTypes.default.bool,
|
||||
collectionEntriesLoaded: _propTypes.default.bool,
|
||||
updateUnpublishedEntryStatus: _propTypes.default.func.isRequired,
|
||||
publishUnpublishedEntry: _propTypes.default.func.isRequired,
|
||||
deleteUnpublishedEntry: _propTypes.default.func.isRequired,
|
||||
logoutUser: _propTypes.default.func.isRequired,
|
||||
loadEntries: _propTypes.default.func.isRequired,
|
||||
deployPreview: _propTypes.default.object,
|
||||
loadDeployPreview: _propTypes.default.func.isRequired,
|
||||
currentStatus: _propTypes.default.string,
|
||||
user: _propTypes.default.object,
|
||||
location: _propTypes.default.shape({
|
||||
pathname: _propTypes.default.string,
|
||||
search: _propTypes.default.string
|
||||
}),
|
||||
hasChanged: _propTypes.default.bool,
|
||||
t: _propTypes.default.func.isRequired,
|
||||
retrieveLocalBackup: _propTypes.default.func.isRequired,
|
||||
localBackup: _reactImmutableProptypes.default.map,
|
||||
loadLocalBackup: _propTypes.default.func,
|
||||
persistLocalBackup: _propTypes.default.func.isRequired,
|
||||
deleteLocalBackup: _propTypes.default.func
|
||||
});
|
||||
function mapStateToProps(state, ownProps) {
|
||||
const {
|
||||
collections,
|
||||
entryDraft,
|
||||
auth,
|
||||
config,
|
||||
entries,
|
||||
globalUI
|
||||
} = state;
|
||||
const slug = ownProps.match.params[0];
|
||||
const collection = collections.get(ownProps.match.params.name);
|
||||
const collectionName = collection.get('name');
|
||||
const newEntry = ownProps.newRecord === true;
|
||||
const fields = (0, _collections.selectFields)(collection, slug);
|
||||
const entry = newEntry ? null : (0, _reducers.selectEntry)(state, collectionName, slug);
|
||||
const user = auth.user;
|
||||
const hasChanged = entryDraft.get('hasChanged');
|
||||
const displayUrl = config.display_url;
|
||||
const hasWorkflow = config.publish_mode === _publishModes.EDITORIAL_WORKFLOW;
|
||||
const useOpenAuthoring = globalUI.useOpenAuthoring;
|
||||
const isModification = entryDraft.getIn(['entry', 'isModification']);
|
||||
const collectionEntriesLoaded = !!entries.getIn(['pages', collectionName]);
|
||||
const unPublishedEntry = (0, _reducers.selectUnpublishedEntry)(state, collectionName, slug);
|
||||
const publishedEntry = (0, _reducers.selectEntry)(state, collectionName, slug);
|
||||
const currentStatus = unPublishedEntry && unPublishedEntry.get('status');
|
||||
const deployPreview = (0, _reducers.selectDeployPreview)(state, collectionName, slug);
|
||||
const localBackup = entryDraft.get('localBackup');
|
||||
const draftKey = entryDraft.get('key');
|
||||
let editorBackLink = `/collections/${collectionName}`;
|
||||
if (new URLSearchParams(ownProps.location.search).get('ref') === 'workflow') {
|
||||
editorBackLink = `/workflow`;
|
||||
}
|
||||
if (collection.has('nested') && slug) {
|
||||
const pathParts = slug.split('/');
|
||||
if (pathParts.length > 2) {
|
||||
editorBackLink = `${editorBackLink}/filter/${pathParts.slice(0, -2).join('/')}`;
|
||||
}
|
||||
}
|
||||
return {
|
||||
collection,
|
||||
collections,
|
||||
newEntry,
|
||||
entryDraft,
|
||||
fields,
|
||||
slug,
|
||||
entry,
|
||||
user,
|
||||
hasChanged,
|
||||
displayUrl,
|
||||
hasWorkflow,
|
||||
useOpenAuthoring,
|
||||
isModification,
|
||||
collectionEntriesLoaded,
|
||||
currentStatus,
|
||||
deployPreview,
|
||||
localBackup,
|
||||
draftKey,
|
||||
publishedEntry,
|
||||
unPublishedEntry,
|
||||
editorBackLink
|
||||
};
|
||||
}
|
||||
const mapDispatchToProps = {
|
||||
changeDraftField: _entries.changeDraftField,
|
||||
changeDraftFieldValidation: _entries.changeDraftFieldValidation,
|
||||
loadEntry: _entries.loadEntry,
|
||||
loadEntries: _entries.loadEntries,
|
||||
loadDeployPreview: _deploys.loadDeployPreview,
|
||||
loadLocalBackup: _entries.loadLocalBackup,
|
||||
retrieveLocalBackup: _entries.retrieveLocalBackup,
|
||||
persistLocalBackup: _entries.persistLocalBackup,
|
||||
deleteLocalBackup: _entries.deleteLocalBackup,
|
||||
createDraftDuplicateFromEntry: _entries.createDraftDuplicateFromEntry,
|
||||
createEmptyDraft: _entries.createEmptyDraft,
|
||||
discardDraft: _entries.discardDraft,
|
||||
persistEntry: _entries.persistEntry,
|
||||
deleteEntry: _entries.deleteEntry,
|
||||
updateUnpublishedEntryStatus: _editorialWorkflow.updateUnpublishedEntryStatus,
|
||||
publishUnpublishedEntry: _editorialWorkflow.publishUnpublishedEntry,
|
||||
unpublishPublishedEntry: _editorialWorkflow.unpublishPublishedEntry,
|
||||
deleteUnpublishedEntry: _editorialWorkflow.deleteUnpublishedEntry,
|
||||
logoutUser: _auth.logoutUser
|
||||
};
|
||||
var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _withWorkflow.default)((0, _reactPolyglot.translate)()(Editor)));
|
||||
396
node_modules/decap-cms-core/dist/esm/components/Editor/EditorControlPane/EditorControl.js
generated
vendored
Normal file
396
node_modules/decap-cms-core/dist/esm/components/Editor/EditorControlPane/EditorControl.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
259
node_modules/decap-cms-core/dist/esm/components/Editor/EditorControlPane/EditorControlPane.js
generated
vendored
Normal file
259
node_modules/decap-cms-core/dist/esm/components/Editor/EditorControlPane/EditorControlPane.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
362
node_modules/decap-cms-core/dist/esm/components/Editor/EditorControlPane/Widget.js
generated
vendored
Normal file
362
node_modules/decap-cms-core/dist/esm/components/Editor/EditorControlPane/Widget.js
generated
vendored
Normal file
@@ -0,0 +1,362 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _react = _interopRequireWildcard(require("react"));
|
||||
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
||||
var _immutable = require("immutable");
|
||||
var _commonTags = require("common-tags");
|
||||
var _registry = require("../../../lib/registry");
|
||||
var _validationErrorTypes = _interopRequireDefault(require("../../../constants/validationErrorTypes"));
|
||||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
||||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
function truthy() {
|
||||
return {
|
||||
error: false
|
||||
};
|
||||
}
|
||||
function isEmpty(value) {
|
||||
return value === null || value === undefined || Object.prototype.hasOwnProperty.call(value, 'length') && value.length === 0 || value.constructor === Object && Object.keys(value).length === 0 || _immutable.List.isList(value) && value.size === 0;
|
||||
}
|
||||
class Widget extends _react.Component {
|
||||
constructor(...args) {
|
||||
super(...args);
|
||||
_defineProperty(this, "processInnerControlRef", ref => {
|
||||
if (!ref) return;
|
||||
|
||||
/**
|
||||
* If the widget is a container that receives state updates from the store,
|
||||
* we'll need to get the ref of the actual control via the `react-redux`
|
||||
* `getWrappedInstance` method. Note that connected widgets must pass
|
||||
* `withRef: true` to `connect` in the options object.
|
||||
*/
|
||||
this.innerWrappedControl = ref.getWrappedInstance ? ref.getWrappedInstance() : ref;
|
||||
this.wrappedControlValid = this.innerWrappedControl.isValid || truthy;
|
||||
|
||||
/**
|
||||
* Get the `shouldComponentUpdate` method from the wrapped control, and
|
||||
* provide the control instance is the `this` binding.
|
||||
*/
|
||||
const {
|
||||
shouldComponentUpdate: scu
|
||||
} = this.innerWrappedControl;
|
||||
this.wrappedControlShouldComponentUpdate = scu && scu.bind(this.innerWrappedControl);
|
||||
});
|
||||
_defineProperty(this, "getValidateValue", () => {
|
||||
var _this$innerWrappedCon, _this$innerWrappedCon2;
|
||||
let value = ((_this$innerWrappedCon = this.innerWrappedControl) === null || _this$innerWrappedCon === void 0 ? void 0 : (_this$innerWrappedCon2 = _this$innerWrappedCon.getValidateValue) === null || _this$innerWrappedCon2 === void 0 ? void 0 : _this$innerWrappedCon2.call(_this$innerWrappedCon)) || this.props.value;
|
||||
// Convert list input widget value to string for validation test
|
||||
_immutable.List.isList(value) && (value = value.join(','));
|
||||
return value;
|
||||
});
|
||||
_defineProperty(this, "validate", (skipWrapped = false) => {
|
||||
const value = this.getValidateValue();
|
||||
const field = this.props.field;
|
||||
const errors = [];
|
||||
const validations = [this.validatePresence, this.validatePattern];
|
||||
if (field.get('meta')) {
|
||||
validations.push(this.props.validateMetaField);
|
||||
}
|
||||
validations.forEach(func => {
|
||||
const response = func(field, value, this.props.t);
|
||||
if (response.error) errors.push(response.error);
|
||||
});
|
||||
if (skipWrapped) {
|
||||
if (skipWrapped.error) errors.push(skipWrapped.error);
|
||||
} else {
|
||||
const wrappedError = this.validateWrappedControl(field);
|
||||
if (wrappedError.error) errors.push(wrappedError.error);
|
||||
}
|
||||
this.props.onValidate(errors);
|
||||
});
|
||||
_defineProperty(this, "validatePresence", (field, value) => {
|
||||
const {
|
||||
t,
|
||||
parentIds
|
||||
} = this.props;
|
||||
const isRequired = field.get('required', true);
|
||||
if (isRequired && isEmpty(value)) {
|
||||
const error = {
|
||||
type: _validationErrorTypes.default.PRESENCE,
|
||||
parentIds,
|
||||
message: t('editor.editorControlPane.widget.required', {
|
||||
fieldLabel: field.get('label', field.get('name'))
|
||||
})
|
||||
};
|
||||
return {
|
||||
error
|
||||
};
|
||||
}
|
||||
return {
|
||||
error: false
|
||||
};
|
||||
});
|
||||
_defineProperty(this, "validatePattern", (field, value) => {
|
||||
const {
|
||||
t,
|
||||
parentIds
|
||||
} = this.props;
|
||||
const pattern = field.get('pattern', false);
|
||||
if (isEmpty(value)) {
|
||||
return {
|
||||
error: false
|
||||
};
|
||||
}
|
||||
if (pattern && !RegExp(pattern.first()).test(value)) {
|
||||
const error = {
|
||||
type: _validationErrorTypes.default.PATTERN,
|
||||
parentIds,
|
||||
message: t('editor.editorControlPane.widget.regexPattern', {
|
||||
fieldLabel: field.get('label', field.get('name')),
|
||||
pattern: pattern.last()
|
||||
})
|
||||
};
|
||||
return {
|
||||
error
|
||||
};
|
||||
}
|
||||
return {
|
||||
error: false
|
||||
};
|
||||
});
|
||||
_defineProperty(this, "validateWrappedControl", field => {
|
||||
const {
|
||||
t,
|
||||
parentIds
|
||||
} = this.props;
|
||||
if (typeof this.wrappedControlValid !== 'function') {
|
||||
throw new Error((0, _commonTags.oneLine)`
|
||||
this.wrappedControlValid is not a function. Are you sure widget
|
||||
"${field.get('widget')}" is registered?
|
||||
`);
|
||||
}
|
||||
const response = this.wrappedControlValid();
|
||||
if (typeof response === 'boolean') {
|
||||
const isValid = response;
|
||||
return {
|
||||
error: !isValid
|
||||
};
|
||||
} else if (Object.prototype.hasOwnProperty.call(response, 'error')) {
|
||||
return response;
|
||||
} else if (response instanceof Promise) {
|
||||
response.then(() => {
|
||||
this.validate({
|
||||
error: false
|
||||
});
|
||||
}, err => {
|
||||
const error = {
|
||||
type: _validationErrorTypes.default.CUSTOM,
|
||||
message: `${field.get('label', field.get('name'))} - ${err}.`
|
||||
};
|
||||
this.validate({
|
||||
error
|
||||
});
|
||||
});
|
||||
const error = {
|
||||
type: _validationErrorTypes.default.CUSTOM,
|
||||
parentIds,
|
||||
message: t('editor.editorControlPane.widget.processing', {
|
||||
fieldLabel: field.get('label', field.get('name'))
|
||||
})
|
||||
};
|
||||
return {
|
||||
error
|
||||
};
|
||||
}
|
||||
return {
|
||||
error: false
|
||||
};
|
||||
});
|
||||
/**
|
||||
* In case the `onChangeObject` function is frozen by a child widget implementation,
|
||||
* e.g. when debounced, always get the latest object value instead of using
|
||||
* `this.props.value` directly.
|
||||
*/
|
||||
_defineProperty(this, "getObjectValue", () => this.props.value || (0, _immutable.Map)());
|
||||
/**
|
||||
* Change handler for fields that are nested within another field.
|
||||
*/
|
||||
_defineProperty(this, "onChangeObject", (field, newValue, newMetadata) => {
|
||||
const newObjectValue = this.getObjectValue().set(field.get('name'), newValue);
|
||||
return this.props.onChange(newObjectValue, newMetadata && {
|
||||
[this.props.field.get('name')]: newMetadata
|
||||
});
|
||||
});
|
||||
_defineProperty(this, "setInactiveStyle", () => {
|
||||
this.props.setInactiveStyle();
|
||||
if (this.props.field.has('pattern') && !isEmpty(this.getValidateValue())) {
|
||||
this.validate();
|
||||
}
|
||||
});
|
||||
}
|
||||
shouldComponentUpdate(nextProps) {
|
||||
/**
|
||||
* Avoid unnecessary rerenders while loading assets.
|
||||
*/
|
||||
if (this.props.isLoadingAsset && nextProps.isLoadingAsset) return false;
|
||||
/**
|
||||
* Allow widgets to provide their own `shouldComponentUpdate` method.
|
||||
*/
|
||||
if (this.wrappedControlShouldComponentUpdate) {
|
||||
return this.wrappedControlShouldComponentUpdate(nextProps);
|
||||
}
|
||||
return this.props.value !== nextProps.value || this.props.classNameWrapper !== nextProps.classNameWrapper || this.props.hasActiveStyle !== nextProps.hasActiveStyle;
|
||||
}
|
||||
render() {
|
||||
const {
|
||||
controlComponent,
|
||||
entry,
|
||||
collection,
|
||||
config,
|
||||
field,
|
||||
value,
|
||||
mediaPaths,
|
||||
metadata,
|
||||
onChange,
|
||||
onValidateObject,
|
||||
onOpenMediaLibrary,
|
||||
onRemoveMediaControl,
|
||||
onPersistMedia,
|
||||
onClearMediaControl,
|
||||
onAddAsset,
|
||||
onRemoveInsertedMedia,
|
||||
getAsset,
|
||||
classNameWrapper,
|
||||
classNameWidget,
|
||||
classNameWidgetActive,
|
||||
classNameLabel,
|
||||
classNameLabelActive,
|
||||
setActiveStyle,
|
||||
hasActiveStyle,
|
||||
editorControl,
|
||||
uniqueFieldId,
|
||||
resolveWidget,
|
||||
widget,
|
||||
getEditorComponents,
|
||||
query,
|
||||
queryHits,
|
||||
clearSearch,
|
||||
clearFieldErrors,
|
||||
isFetching,
|
||||
loadEntry,
|
||||
fieldsErrors,
|
||||
controlRef,
|
||||
isEditorComponent,
|
||||
isNewEditorComponent,
|
||||
parentIds,
|
||||
t,
|
||||
isDisabled,
|
||||
isFieldDuplicate,
|
||||
isFieldHidden,
|
||||
locale,
|
||||
isParentListCollapsed
|
||||
} = this.props;
|
||||
return /*#__PURE__*/_react.default.createElement(controlComponent, {
|
||||
entry,
|
||||
collection,
|
||||
config,
|
||||
field,
|
||||
value,
|
||||
mediaPaths,
|
||||
metadata,
|
||||
onChange,
|
||||
onChangeObject: this.onChangeObject,
|
||||
onValidateObject,
|
||||
onOpenMediaLibrary,
|
||||
onClearMediaControl,
|
||||
onRemoveMediaControl,
|
||||
onPersistMedia,
|
||||
onAddAsset,
|
||||
onRemoveInsertedMedia,
|
||||
getAsset,
|
||||
forID: uniqueFieldId,
|
||||
ref: this.processInnerControlRef,
|
||||
validate: this.validate,
|
||||
classNameWrapper,
|
||||
classNameWidget,
|
||||
classNameWidgetActive,
|
||||
classNameLabel,
|
||||
classNameLabelActive,
|
||||
setActiveStyle,
|
||||
setInactiveStyle: () => this.setInactiveStyle(),
|
||||
hasActiveStyle,
|
||||
editorControl,
|
||||
resolveWidget,
|
||||
widget,
|
||||
getEditorComponents,
|
||||
getRemarkPlugins: _registry.getRemarkPlugins,
|
||||
query,
|
||||
queryHits,
|
||||
clearSearch,
|
||||
clearFieldErrors,
|
||||
isFetching,
|
||||
loadEntry,
|
||||
isEditorComponent,
|
||||
isNewEditorComponent,
|
||||
fieldsErrors,
|
||||
controlRef,
|
||||
parentIds,
|
||||
t,
|
||||
isDisabled,
|
||||
isFieldDuplicate,
|
||||
isFieldHidden,
|
||||
locale,
|
||||
isParentListCollapsed
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.default = Widget;
|
||||
_defineProperty(Widget, "propTypes", {
|
||||
controlComponent: _propTypes.default.func.isRequired,
|
||||
field: _reactImmutableProptypes.default.map.isRequired,
|
||||
hasActiveStyle: _propTypes.default.bool,
|
||||
setActiveStyle: _propTypes.default.func.isRequired,
|
||||
setInactiveStyle: _propTypes.default.func.isRequired,
|
||||
classNameWrapper: _propTypes.default.string.isRequired,
|
||||
classNameWidget: _propTypes.default.string.isRequired,
|
||||
classNameWidgetActive: _propTypes.default.string.isRequired,
|
||||
classNameLabel: _propTypes.default.string.isRequired,
|
||||
classNameLabelActive: _propTypes.default.string.isRequired,
|
||||
value: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.object, _propTypes.default.string, _propTypes.default.bool]),
|
||||
mediaPaths: _reactImmutableProptypes.default.map.isRequired,
|
||||
metadata: _reactImmutableProptypes.default.map,
|
||||
fieldsErrors: _reactImmutableProptypes.default.map,
|
||||
onChange: _propTypes.default.func.isRequired,
|
||||
onValidate: _propTypes.default.func,
|
||||
onOpenMediaLibrary: _propTypes.default.func.isRequired,
|
||||
onClearMediaControl: _propTypes.default.func.isRequired,
|
||||
onRemoveMediaControl: _propTypes.default.func.isRequired,
|
||||
onPersistMedia: _propTypes.default.func.isRequired,
|
||||
onAddAsset: _propTypes.default.func.isRequired,
|
||||
onRemoveInsertedMedia: _propTypes.default.func.isRequired,
|
||||
getAsset: _propTypes.default.func.isRequired,
|
||||
resolveWidget: _propTypes.default.func.isRequired,
|
||||
widget: _propTypes.default.object.isRequired,
|
||||
getEditorComponents: _propTypes.default.func.isRequired,
|
||||
isFetching: _propTypes.default.bool,
|
||||
controlRef: _propTypes.default.func,
|
||||
query: _propTypes.default.func.isRequired,
|
||||
clearSearch: _propTypes.default.func.isRequired,
|
||||
clearFieldErrors: _propTypes.default.func.isRequired,
|
||||
queryHits: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]),
|
||||
editorControl: _propTypes.default.elementType.isRequired,
|
||||
uniqueFieldId: _propTypes.default.string.isRequired,
|
||||
loadEntry: _propTypes.default.func.isRequired,
|
||||
t: _propTypes.default.func.isRequired,
|
||||
onValidateObject: _propTypes.default.func,
|
||||
isEditorComponent: _propTypes.default.bool,
|
||||
isNewEditorComponent: _propTypes.default.bool,
|
||||
entry: _reactImmutableProptypes.default.map.isRequired,
|
||||
isDisabled: _propTypes.default.bool,
|
||||
isFieldDuplicate: _propTypes.default.func,
|
||||
isFieldHidden: _propTypes.default.func,
|
||||
locale: _propTypes.default.string,
|
||||
isParentListCollapsed: _propTypes.default.bool
|
||||
});
|
||||
400
node_modules/decap-cms-core/dist/esm/components/Editor/EditorInterface.js
generated
vendored
Normal file
400
node_modules/decap-cms-core/dist/esm/components/Editor/EditorInterface.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
56
node_modules/decap-cms-core/dist/esm/components/Editor/EditorPreviewPane/EditorPreview.js
generated
vendored
Normal file
56
node_modules/decap-cms-core/dist/esm/components/Editor/EditorPreviewPane/EditorPreview.js
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
||||
function isVisible(field) {
|
||||
return field.get('widget') !== 'hidden';
|
||||
}
|
||||
const PreviewContainer = /*#__PURE__*/(0, _base.default)("div", {
|
||||
target: "e1iji6y40",
|
||||
label: "PreviewContainer"
|
||||
})(process.env.NODE_ENV === "production" ? {
|
||||
name: "9bq7s9",
|
||||
styles: "font-family:Roboto,'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif"
|
||||
} : {
|
||||
name: "9bq7s9",
|
||||
styles: "font-family:Roboto,'Helvetica Neue',HelveticaNeue,Helvetica,Arial,sans-serif",
|
||||
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0VkaXRvci9FZGl0b3JQcmV2aWV3UGFuZS9FZGl0b3JQcmV2aWV3LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNtQyIsImZpbGUiOiIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9FZGl0b3IvRWRpdG9yUHJldmlld1BhbmUvRWRpdG9yUHJldmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IEltbXV0YWJsZVByb3BUeXBlcyBmcm9tICdyZWFjdC1pbW11dGFibGUtcHJvcHR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcblxuZnVuY3Rpb24gaXNWaXNpYmxlKGZpZWxkKSB7XG4gIHJldHVybiBmaWVsZC5nZXQoJ3dpZGdldCcpICE9PSAnaGlkZGVuJztcbn1cblxuY29uc3QgUHJldmlld0NvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGZvbnQtZmFtaWx5OiBSb2JvdG8sICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYU5ldWUsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG5gO1xuXG4vKipcbiAqIFVzZSBhIHN0YXRlZnVsIGNvbXBvbmVudCBzbyB0aGF0IGNoaWxkIGNvbXBvbmVudHMgY2FuIGVmZmVjdGl2ZWx5IHV0aWxpemVcbiAqIGBzaG91bGRDb21wb25lbnRVcGRhdGVgLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQcmV2aWV3IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY29sbGVjdGlvbiwgZmllbGRzLCB3aWRnZXRGb3IgfSA9IHRoaXMucHJvcHM7XG4gICAgaWYgKCFjb2xsZWN0aW9uIHx8ICFmaWVsZHMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdDb250YWluZXI+XG4gICAgICAgIHtmaWVsZHMuZmlsdGVyKGlzVmlzaWJsZSkubWFwKGZpZWxkID0+IChcbiAgICAgICAgICA8ZGl2IGtleT17ZmllbGQuZ2V0KCduYW1lJyl9Pnt3aWRnZXRGb3IoZmllbGQuZ2V0KCduYW1lJykpfTwvZGl2PlxuICAgICAgICApKX1cbiAgICAgIDwvUHJldmlld0NvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG5cblByZXZpZXcucHJvcFR5cGVzID0ge1xuICBjb2xsZWN0aW9uOiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIGVudHJ5OiBJbW11dGFibGVQcm9wVHlwZXMubWFwLmlzUmVxdWlyZWQsXG4gIGZpZWxkczogSW1tdXRhYmxlUHJvcFR5cGVzLmxpc3QuaXNSZXF1aXJlZCxcbiAgZ2V0QXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHdpZGdldEZvcjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbn07XG4iXX0= */",
|
||||
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
||||
});
|
||||
|
||||
/**
|
||||
* Use a stateful component so that child components can effectively utilize
|
||||
* `shouldComponentUpdate`.
|
||||
*/
|
||||
class Preview extends _react.default.Component {
|
||||
render() {
|
||||
const {
|
||||
collection,
|
||||
fields,
|
||||
widgetFor
|
||||
} = this.props;
|
||||
if (!collection || !fields) {
|
||||
return null;
|
||||
}
|
||||
return (0, _react2.jsx)(PreviewContainer, null, fields.filter(isVisible).map(field => (0, _react2.jsx)("div", {
|
||||
key: field.get('name')
|
||||
}, widgetFor(field.get('name')))));
|
||||
}
|
||||
}
|
||||
exports.default = Preview;
|
||||
Preview.propTypes = {
|
||||
collection: _reactImmutableProptypes.default.map.isRequired,
|
||||
entry: _reactImmutableProptypes.default.map.isRequired,
|
||||
fields: _reactImmutableProptypes.default.list.isRequired,
|
||||
getAsset: _propTypes.default.func.isRequired,
|
||||
widgetFor: _propTypes.default.func.isRequired
|
||||
};
|
||||
33
node_modules/decap-cms-core/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewContent.js
generated
vendored
Normal file
33
node_modules/decap-cms-core/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewContent.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _reactIs = require("react-is");
|
||||
var _reactScrollSync = require("react-scroll-sync");
|
||||
var _reactFrameComponent = require("react-frame-component");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
/**
|
||||
* We need to create a lightweight component here so that we can access the
|
||||
* context within the Frame. This allows us to attach the ScrollSyncPane to the
|
||||
* body.
|
||||
*/class PreviewContent extends _react.default.Component {
|
||||
render() {
|
||||
const {
|
||||
previewComponent,
|
||||
previewProps
|
||||
} = this.props;
|
||||
return (0, _react2.jsx)(_reactFrameComponent.FrameContextConsumer, null, context => (0, _react2.jsx)(_reactScrollSync.ScrollSyncPane, {
|
||||
attachTo: context.document.scrollingElement
|
||||
}, (0, _reactIs.isElement)(previewComponent) ? /*#__PURE__*/_react.default.cloneElement(previewComponent, previewProps) : /*#__PURE__*/_react.default.createElement(previewComponent, previewProps)));
|
||||
}
|
||||
}
|
||||
PreviewContent.propTypes = {
|
||||
previewComponent: _propTypes.default.func.isRequired,
|
||||
previewProps: _propTypes.default.object
|
||||
};
|
||||
var _default = exports.default = PreviewContent;
|
||||
270
node_modules/decap-cms-core/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewPane.js
generated
vendored
Normal file
270
node_modules/decap-cms-core/dist/esm/components/Editor/EditorPreviewPane/EditorPreviewPane.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
38
node_modules/decap-cms-core/dist/esm/components/Editor/EditorPreviewPane/PreviewHOC.js
generated
vendored
Normal file
38
node_modules/decap-cms-core/dist/esm/components/Editor/EditorPreviewPane/PreviewHOC.js
generated
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
||||
const _excluded = ["previewComponent"];
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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; }
|
||||
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; }
|
||||
class PreviewHOC extends _react.default.Component {
|
||||
/**
|
||||
* Only re-render on value change, but always re-render objects and lists.
|
||||
* Their child widgets will each also be wrapped with this component, and
|
||||
* will only be updated on value change.
|
||||
*/
|
||||
shouldComponentUpdate(nextProps) {
|
||||
const isWidgetContainer = ['object', 'list'].includes(nextProps.field.get('widget'));
|
||||
return isWidgetContainer || this.props.value !== nextProps.value || this.props.fieldsMetaData !== nextProps.fieldsMetaData || this.props.getAsset !== nextProps.getAsset;
|
||||
}
|
||||
render() {
|
||||
const _this$props = this.props,
|
||||
{
|
||||
previewComponent
|
||||
} = _this$props,
|
||||
props = _objectWithoutProperties(_this$props, _excluded);
|
||||
return /*#__PURE__*/_react.default.createElement(previewComponent, props);
|
||||
}
|
||||
}
|
||||
PreviewHOC.propTypes = {
|
||||
previewComponent: _propTypes.default.func.isRequired,
|
||||
field: _reactImmutableProptypes.default.map.isRequired,
|
||||
value: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.object, _propTypes.default.string, _propTypes.default.bool])
|
||||
};
|
||||
var _default = exports.default = PreviewHOC;
|
||||
551
node_modules/decap-cms-core/dist/esm/components/Editor/EditorToolbar.js
generated
vendored
Normal file
551
node_modules/decap-cms-core/dist/esm/components/Editor/EditorToolbar.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
64
node_modules/decap-cms-core/dist/esm/components/Editor/withWorkflow.js
generated
vendored
Normal file
64
node_modules/decap-cms-core/dist/esm/components/Editor/withWorkflow.js
generated
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = withWorkflow;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _reactRedux = require("react-redux");
|
||||
var _publishModes = require("../../constants/publishModes");
|
||||
var _reducers = require("../../reducers");
|
||||
var _collections = require("../../reducers/collections");
|
||||
var _editorialWorkflow = require("../../actions/editorialWorkflow");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
function mapStateToProps(state, ownProps) {
|
||||
const {
|
||||
collections
|
||||
} = state;
|
||||
const isEditorialWorkflow = state.config.publish_mode === _publishModes.EDITORIAL_WORKFLOW;
|
||||
const collection = collections.get(ownProps.match.params.name);
|
||||
const returnObj = {
|
||||
isEditorialWorkflow,
|
||||
showDelete: !ownProps.newEntry && (0, _collections.selectAllowDeletion)(collection)
|
||||
};
|
||||
if (isEditorialWorkflow) {
|
||||
const slug = ownProps.match.params[0];
|
||||
const unpublishedEntry = (0, _reducers.selectUnpublishedEntry)(state, collection.get('name'), slug);
|
||||
if (unpublishedEntry) {
|
||||
returnObj.unpublishedEntry = true;
|
||||
returnObj.entry = unpublishedEntry;
|
||||
}
|
||||
}
|
||||
return returnObj;
|
||||
}
|
||||
function mergeProps(stateProps, dispatchProps, ownProps) {
|
||||
const {
|
||||
isEditorialWorkflow,
|
||||
unpublishedEntry
|
||||
} = stateProps;
|
||||
const {
|
||||
dispatch
|
||||
} = dispatchProps;
|
||||
const returnObj = {};
|
||||
if (isEditorialWorkflow) {
|
||||
// Overwrite loadEntry to loadUnpublishedEntry
|
||||
returnObj.loadEntry = (collection, slug) => dispatch((0, _editorialWorkflow.loadUnpublishedEntry)(collection, slug));
|
||||
|
||||
// Overwrite persistEntry to persistUnpublishedEntry
|
||||
returnObj.persistEntry = collection => dispatch((0, _editorialWorkflow.persistUnpublishedEntry)(collection, unpublishedEntry));
|
||||
}
|
||||
return _objectSpread(_objectSpread(_objectSpread({}, ownProps), stateProps), returnObj);
|
||||
}
|
||||
function withWorkflow(Editor) {
|
||||
return (0, _reactRedux.connect)(mapStateToProps, null, mergeProps)(class WorkflowEditor extends _react.default.Component {
|
||||
render() {
|
||||
return (0, _react2.jsx)(Editor, this.props);
|
||||
}
|
||||
});
|
||||
}
|
||||
25
node_modules/decap-cms-core/dist/esm/components/EditorWidgets/Unknown/UnknownControl.js
generated
vendored
Normal file
25
node_modules/decap-cms-core/dist/esm/components/EditorWidgets/Unknown/UnknownControl.js
generated
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _reactPolyglot = require("react-polyglot");
|
||||
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function UnknownControl({
|
||||
field,
|
||||
t
|
||||
}) {
|
||||
return (0, _react2.jsx)("div", null, t('editor.editorWidgets.unknownControl.noControl', {
|
||||
widget: field.get('widget')
|
||||
}));
|
||||
}
|
||||
UnknownControl.propTypes = {
|
||||
field: _reactImmutableProptypes.default.map,
|
||||
t: _propTypes.default.func.isRequired
|
||||
};
|
||||
var _default = exports.default = (0, _reactPolyglot.translate)()(UnknownControl);
|
||||
27
node_modules/decap-cms-core/dist/esm/components/EditorWidgets/Unknown/UnknownPreview.js
generated
vendored
Normal file
27
node_modules/decap-cms-core/dist/esm/components/EditorWidgets/Unknown/UnknownPreview.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _reactPolyglot = require("react-polyglot");
|
||||
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function UnknownPreview({
|
||||
field,
|
||||
t
|
||||
}) {
|
||||
return (0, _react2.jsx)("div", {
|
||||
className: "nc-widgetPreview"
|
||||
}, t('editor.editorWidgets.unknownPreview.noPreview', {
|
||||
widget: field.get('widget')
|
||||
}));
|
||||
}
|
||||
UnknownPreview.propTypes = {
|
||||
field: _reactImmutableProptypes.default.map,
|
||||
t: _propTypes.default.func.isRequired
|
||||
};
|
||||
var _default = exports.default = (0, _reactPolyglot.translate)()(UnknownPreview);
|
||||
7
node_modules/decap-cms-core/dist/esm/components/EditorWidgets/index.js
generated
vendored
Normal file
7
node_modules/decap-cms-core/dist/esm/components/EditorWidgets/index.js
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
"use strict";
|
||||
|
||||
var _registry = require("../../lib/registry");
|
||||
var _UnknownControl = _interopRequireDefault(require("./Unknown/UnknownControl"));
|
||||
var _UnknownPreview = _interopRequireDefault(require("./Unknown/UnknownPreview"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
(0, _registry.registerWidget)('unknown', _UnknownControl.default, _UnknownPreview.default);
|
||||
29
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/EmptyMessage.js
generated
vendored
Normal file
29
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/EmptyMessage.js
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
const EmptyMessageContainer = /*#__PURE__*/(0, _base.default)("div", {
|
||||
target: "e156433y0",
|
||||
label: "EmptyMessageContainer"
|
||||
})("height:100%;width:100%;display:flex;justify-content:center;align-items:center;color:", props => props.isPrivate && _decapCmsUiDefault.colors.textFieldBorder, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL01lZGlhTGlicmFyeS9FbXB0eU1lc3NhZ2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS3dDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL01lZGlhTGlicmFyeS9FbXB0eU1lc3NhZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNvbG9ycyB9IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcblxuY29uc3QgRW1wdHlNZXNzYWdlQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLmlzUHJpdmF0ZSAmJiBjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbmA7XG5cbmZ1bmN0aW9uIEVtcHR5TWVzc2FnZSh7IGNvbnRlbnQsIGlzUHJpdmF0ZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPEVtcHR5TWVzc2FnZUNvbnRhaW5lciBpc1ByaXZhdGU9e2lzUHJpdmF0ZX0+XG4gICAgICA8aDE+e2NvbnRlbnR9PC9oMT5cbiAgICA8L0VtcHR5TWVzc2FnZUNvbnRhaW5lcj5cbiAgKTtcbn1cblxuRW1wdHlNZXNzYWdlLnByb3BUeXBlcyA9IHtcbiAgY29udGVudDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpc1ByaXZhdGU6IFByb3BUeXBlcy5ib29sLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgRW1wdHlNZXNzYWdlO1xuIl19 */"));
|
||||
function EmptyMessage({
|
||||
content,
|
||||
isPrivate
|
||||
}) {
|
||||
return (0, _react2.jsx)(EmptyMessageContainer, {
|
||||
isPrivate: isPrivate
|
||||
}, (0, _react2.jsx)("h1", null, content));
|
||||
}
|
||||
EmptyMessage.propTypes = {
|
||||
content: _propTypes.default.string.isRequired,
|
||||
isPrivate: _propTypes.default.bool
|
||||
};
|
||||
var _default = exports.default = EmptyMessage;
|
||||
443
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibrary.js
generated
vendored
Normal file
443
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibrary.js
generated
vendored
Normal file
@@ -0,0 +1,443 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _map2 = _interopRequireDefault(require("lodash/map"));
|
||||
var _orderBy2 = _interopRequireDefault(require("lodash/orderBy"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes"));
|
||||
var _reactRedux = require("react-redux");
|
||||
var _reactPolyglot = require("react-polyglot");
|
||||
var _fuzzy = _interopRequireDefault(require("fuzzy"));
|
||||
var _decapCmsLibUtil = require("decap-cms-lib-util");
|
||||
var _mediaLibrary = require("../../actions/mediaLibrary");
|
||||
var _mediaLibrary2 = require("../../reducers/mediaLibrary");
|
||||
var _MediaLibraryModal = _interopRequireWildcard(require("./MediaLibraryModal"));
|
||||
var _react2 = require("@emotion/react");
|
||||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
||||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /**
|
||||
* Extensions used to determine which files to show when the media library is
|
||||
* accessed from an image insertion field.
|
||||
*/
|
||||
const IMAGE_EXTENSIONS_VIEWABLE = ['jpg', 'jpeg', 'webp', 'gif', 'png', 'bmp', 'tiff', 'svg', 'avif'];
|
||||
const IMAGE_EXTENSIONS = [...IMAGE_EXTENSIONS_VIEWABLE];
|
||||
class MediaLibrary extends _react.default.Component {
|
||||
constructor(...args) {
|
||||
super(...args);
|
||||
/**
|
||||
* The currently selected file and query are tracked in component state as
|
||||
* they do not impact the rest of the application.
|
||||
*/
|
||||
_defineProperty(this, "state", {
|
||||
selectedFile: {},
|
||||
query: '',
|
||||
isPersisted: false
|
||||
});
|
||||
_defineProperty(this, "loadDisplayURL", file => {
|
||||
const {
|
||||
loadMediaDisplayURL
|
||||
} = this.props;
|
||||
loadMediaDisplayURL(file);
|
||||
});
|
||||
/**
|
||||
* Filter an array of file data to include only images.
|
||||
*/
|
||||
_defineProperty(this, "filterImages", files => {
|
||||
return files.filter(file => {
|
||||
const ext = (0, _decapCmsLibUtil.fileExtension)(file.name).toLowerCase();
|
||||
return IMAGE_EXTENSIONS.includes(ext);
|
||||
});
|
||||
});
|
||||
/**
|
||||
* Transform file data for table display.
|
||||
*/
|
||||
_defineProperty(this, "toTableData", files => {
|
||||
const tableData = files && files.map(({
|
||||
key,
|
||||
name,
|
||||
id,
|
||||
size,
|
||||
path,
|
||||
queryOrder,
|
||||
displayURL,
|
||||
draft
|
||||
}) => {
|
||||
const ext = (0, _decapCmsLibUtil.fileExtension)(name).toLowerCase();
|
||||
return {
|
||||
key,
|
||||
id,
|
||||
name,
|
||||
path,
|
||||
type: ext.toUpperCase(),
|
||||
size,
|
||||
queryOrder,
|
||||
displayURL,
|
||||
draft,
|
||||
isImage: IMAGE_EXTENSIONS.includes(ext),
|
||||
isViewableImage: IMAGE_EXTENSIONS_VIEWABLE.includes(ext)
|
||||
};
|
||||
});
|
||||
|
||||
/**
|
||||
* Get the sort order for use with `lodash.orderBy`, and always add the
|
||||
* `queryOrder` sort as the lowest priority sort order.
|
||||
*/
|
||||
const {
|
||||
sortFields
|
||||
} = this.state;
|
||||
const fieldNames = (0, _map2.default)(sortFields, 'fieldName').concat('queryOrder');
|
||||
const directions = (0, _map2.default)(sortFields, 'direction').concat('asc');
|
||||
return (0, _orderBy2.default)(tableData, fieldNames, directions);
|
||||
});
|
||||
_defineProperty(this, "handleClose", () => {
|
||||
this.props.closeMediaLibrary();
|
||||
});
|
||||
/**
|
||||
* Toggle asset selection on click.
|
||||
*/
|
||||
_defineProperty(this, "handleAssetClick", asset => {
|
||||
const selectedFile = this.state.selectedFile.key === asset.key ? {} : asset;
|
||||
this.setState({
|
||||
selectedFile
|
||||
});
|
||||
});
|
||||
/**
|
||||
* Upload a file.
|
||||
*/
|
||||
_defineProperty(this, "handlePersist", async event => {
|
||||
/**
|
||||
* Stop the browser from automatically handling the file input click, and
|
||||
* get the file for upload, and retain the synthetic event for access after
|
||||
* the asynchronous persist operation.
|
||||
*/
|
||||
event.persist();
|
||||
event.stopPropagation();
|
||||
event.preventDefault();
|
||||
const {
|
||||
persistMedia,
|
||||
privateUpload,
|
||||
config,
|
||||
t,
|
||||
field
|
||||
} = this.props;
|
||||
const {
|
||||
files: fileList
|
||||
} = event.dataTransfer || event.target;
|
||||
const files = [...fileList];
|
||||
const file = files[0];
|
||||
const maxFileSize = config.get('max_file_size');
|
||||
if (maxFileSize && file.size > maxFileSize) {
|
||||
window.alert(t('mediaLibrary.mediaLibrary.fileTooLarge', {
|
||||
size: Math.floor(maxFileSize / 1000)
|
||||
}));
|
||||
} else {
|
||||
await persistMedia(file, {
|
||||
privateUpload,
|
||||
field
|
||||
});
|
||||
this.setState({
|
||||
isPersisted: true
|
||||
});
|
||||
this.scrollToTop();
|
||||
}
|
||||
event.target.value = null;
|
||||
});
|
||||
/**
|
||||
* Stores the public path of the file in the application store, where the
|
||||
* editor field that launched the media library can retrieve it.
|
||||
*/
|
||||
_defineProperty(this, "handleInsert", () => {
|
||||
const {
|
||||
selectedFile
|
||||
} = this.state;
|
||||
const {
|
||||
path
|
||||
} = selectedFile;
|
||||
const {
|
||||
insertMedia,
|
||||
field
|
||||
} = this.props;
|
||||
insertMedia(path, field);
|
||||
this.handleClose();
|
||||
});
|
||||
/**
|
||||
* Removes the selected file from the backend.
|
||||
*/
|
||||
_defineProperty(this, "handleDelete", () => {
|
||||
const {
|
||||
selectedFile
|
||||
} = this.state;
|
||||
const {
|
||||
files,
|
||||
deleteMedia,
|
||||
privateUpload,
|
||||
t
|
||||
} = this.props;
|
||||
if (!window.confirm(t('mediaLibrary.mediaLibrary.onDelete'))) {
|
||||
return;
|
||||
}
|
||||
const file = files.find(file => selectedFile.key === file.key);
|
||||
deleteMedia(file, {
|
||||
privateUpload
|
||||
}).then(() => {
|
||||
this.setState({
|
||||
selectedFile: {}
|
||||
});
|
||||
});
|
||||
});
|
||||
/**
|
||||
* Downloads the selected file.
|
||||
*/
|
||||
_defineProperty(this, "handleDownload", () => {
|
||||
const {
|
||||
selectedFile
|
||||
} = this.state;
|
||||
const {
|
||||
displayURLs
|
||||
} = this.props;
|
||||
const url = displayURLs.getIn([selectedFile.id, 'url']) || selectedFile.url;
|
||||
if (!url) {
|
||||
return;
|
||||
}
|
||||
const filename = selectedFile.name;
|
||||
const element = document.createElement('a');
|
||||
element.setAttribute('href', url);
|
||||
element.setAttribute('download', filename);
|
||||
element.style.display = 'none';
|
||||
document.body.appendChild(element);
|
||||
element.click();
|
||||
document.body.removeChild(element);
|
||||
this.setState({
|
||||
selectedFile: {}
|
||||
});
|
||||
});
|
||||
/**
|
||||
*
|
||||
*/
|
||||
_defineProperty(this, "handleLoadMore", () => {
|
||||
const {
|
||||
loadMedia,
|
||||
dynamicSearchQuery,
|
||||
page,
|
||||
privateUpload
|
||||
} = this.props;
|
||||
loadMedia({
|
||||
query: dynamicSearchQuery,
|
||||
page: page + 1,
|
||||
privateUpload
|
||||
});
|
||||
});
|
||||
/**
|
||||
* Executes media library search for implementations that support dynamic
|
||||
* search via request. For these implementations, the Enter key must be
|
||||
* pressed to execute search. If assets are being stored directly through
|
||||
* the GitHub backend, search is in-memory and occurs as the query is typed,
|
||||
* so this handler has no impact.
|
||||
*/
|
||||
_defineProperty(this, "handleSearchKeyDown", async event => {
|
||||
const {
|
||||
dynamicSearch,
|
||||
loadMedia,
|
||||
privateUpload
|
||||
} = this.props;
|
||||
if (event.key === 'Enter' && dynamicSearch) {
|
||||
await loadMedia({
|
||||
query: this.state.query,
|
||||
privateUpload
|
||||
});
|
||||
this.scrollToTop();
|
||||
}
|
||||
});
|
||||
_defineProperty(this, "scrollToTop", () => {
|
||||
this.scrollContainerRef.scrollTop = 0;
|
||||
});
|
||||
/**
|
||||
* Updates query state as the user types in the search field.
|
||||
*/
|
||||
_defineProperty(this, "handleSearchChange", event => {
|
||||
this.setState({
|
||||
query: event.target.value
|
||||
});
|
||||
});
|
||||
/**
|
||||
* Filters files that do not match the query. Not used for dynamic search.
|
||||
*/
|
||||
_defineProperty(this, "queryFilter", (query, files) => {
|
||||
/**
|
||||
* Because file names don't have spaces, typing a space eliminates all
|
||||
* potential matches, so we strip them all out internally before running the
|
||||
* query.
|
||||
*/
|
||||
const strippedQuery = query.replace(/ /g, '');
|
||||
const matches = _fuzzy.default.filter(strippedQuery, files, {
|
||||
extract: file => file.name
|
||||
});
|
||||
const matchFiles = matches.map((match, queryIndex) => {
|
||||
const file = files[match.index];
|
||||
return _objectSpread(_objectSpread({}, file), {}, {
|
||||
queryIndex
|
||||
});
|
||||
});
|
||||
return matchFiles;
|
||||
});
|
||||
}
|
||||
componentDidMount() {
|
||||
this.props.loadMedia();
|
||||
}
|
||||
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||
/**
|
||||
* We clear old state from the media library when it's being re-opened
|
||||
* because, when doing so on close, the state is cleared while the media
|
||||
* library is still fading away.
|
||||
*/
|
||||
const isOpening = !this.props.isVisible && nextProps.isVisible;
|
||||
if (isOpening) {
|
||||
this.setState({
|
||||
selectedFile: {},
|
||||
query: ''
|
||||
});
|
||||
}
|
||||
if (this.state.isPersisted) {
|
||||
this.setState({
|
||||
selectedFile: nextProps.files[0],
|
||||
isPersisted: false
|
||||
});
|
||||
}
|
||||
}
|
||||
componentDidUpdate(prevProps) {
|
||||
const isOpening = !prevProps.isVisible && this.props.isVisible;
|
||||
if (isOpening && prevProps.privateUpload !== this.props.privateUpload) {
|
||||
this.props.loadMedia({
|
||||
privateUpload: this.props.privateUpload
|
||||
});
|
||||
}
|
||||
if (this.state.isPersisted) {
|
||||
this.setState({
|
||||
selectedFile: this.props.files[0],
|
||||
isPersisted: false
|
||||
});
|
||||
}
|
||||
}
|
||||
render() {
|
||||
const {
|
||||
isVisible,
|
||||
canInsert,
|
||||
files,
|
||||
dynamicSearch,
|
||||
dynamicSearchActive,
|
||||
forImage,
|
||||
isLoading,
|
||||
isPersisting,
|
||||
isDeleting,
|
||||
hasNextPage,
|
||||
isPaginating,
|
||||
privateUpload,
|
||||
displayURLs,
|
||||
t
|
||||
} = this.props;
|
||||
return (0, _react2.jsx)(_MediaLibraryModal.default, {
|
||||
isVisible: isVisible,
|
||||
canInsert: canInsert,
|
||||
files: files,
|
||||
dynamicSearch: dynamicSearch,
|
||||
dynamicSearchActive: dynamicSearchActive,
|
||||
forImage: forImage,
|
||||
isLoading: isLoading,
|
||||
isPersisting: isPersisting,
|
||||
isDeleting: isDeleting,
|
||||
hasNextPage: hasNextPage,
|
||||
isPaginating: isPaginating,
|
||||
privateUpload: privateUpload,
|
||||
query: this.state.query,
|
||||
selectedFile: this.state.selectedFile,
|
||||
handleFilter: this.filterImages,
|
||||
handleQuery: this.queryFilter,
|
||||
toTableData: this.toTableData,
|
||||
handleClose: this.handleClose,
|
||||
handleSearchChange: this.handleSearchChange,
|
||||
handleSearchKeyDown: this.handleSearchKeyDown,
|
||||
handlePersist: this.handlePersist,
|
||||
handleDelete: this.handleDelete,
|
||||
handleInsert: this.handleInsert,
|
||||
handleDownload: this.handleDownload,
|
||||
setScrollContainerRef: ref => this.scrollContainerRef = ref,
|
||||
handleAssetClick: this.handleAssetClick,
|
||||
handleLoadMore: this.handleLoadMore,
|
||||
displayURLs: displayURLs,
|
||||
loadDisplayURL: this.loadDisplayURL,
|
||||
t: t
|
||||
});
|
||||
}
|
||||
}
|
||||
_defineProperty(MediaLibrary, "propTypes", {
|
||||
isVisible: _propTypes.default.bool,
|
||||
loadMediaDisplayURL: _propTypes.default.func,
|
||||
displayURLs: _reactImmutableProptypes.default.map,
|
||||
canInsert: _propTypes.default.bool,
|
||||
files: _propTypes.default.arrayOf(_propTypes.default.shape(_MediaLibraryModal.fileShape)).isRequired,
|
||||
dynamicSearch: _propTypes.default.bool,
|
||||
dynamicSearchActive: _propTypes.default.bool,
|
||||
forImage: _propTypes.default.bool,
|
||||
isLoading: _propTypes.default.bool,
|
||||
isPersisting: _propTypes.default.bool,
|
||||
isDeleting: _propTypes.default.bool,
|
||||
hasNextPage: _propTypes.default.bool,
|
||||
isPaginating: _propTypes.default.bool,
|
||||
privateUpload: _propTypes.default.bool,
|
||||
config: _reactImmutableProptypes.default.map,
|
||||
loadMedia: _propTypes.default.func.isRequired,
|
||||
dynamicSearchQuery: _propTypes.default.string,
|
||||
page: _propTypes.default.number,
|
||||
persistMedia: _propTypes.default.func.isRequired,
|
||||
deleteMedia: _propTypes.default.func.isRequired,
|
||||
insertMedia: _propTypes.default.func.isRequired,
|
||||
closeMediaLibrary: _propTypes.default.func.isRequired,
|
||||
t: _propTypes.default.func.isRequired
|
||||
});
|
||||
_defineProperty(MediaLibrary, "defaultProps", {
|
||||
files: []
|
||||
});
|
||||
function mapStateToProps(state) {
|
||||
const {
|
||||
mediaLibrary
|
||||
} = state;
|
||||
const field = mediaLibrary.get('field');
|
||||
const mediaLibraryProps = {
|
||||
isVisible: mediaLibrary.get('isVisible'),
|
||||
canInsert: mediaLibrary.get('canInsert'),
|
||||
files: (0, _mediaLibrary2.selectMediaFiles)(state, field),
|
||||
displayURLs: mediaLibrary.get('displayURLs'),
|
||||
dynamicSearch: mediaLibrary.get('dynamicSearch'),
|
||||
dynamicSearchActive: mediaLibrary.get('dynamicSearchActive'),
|
||||
dynamicSearchQuery: mediaLibrary.get('dynamicSearchQuery'),
|
||||
forImage: mediaLibrary.get('forImage'),
|
||||
isLoading: mediaLibrary.get('isLoading'),
|
||||
isPersisting: mediaLibrary.get('isPersisting'),
|
||||
isDeleting: mediaLibrary.get('isDeleting'),
|
||||
privateUpload: mediaLibrary.get('privateUpload'),
|
||||
config: mediaLibrary.get('config'),
|
||||
page: mediaLibrary.get('page'),
|
||||
hasNextPage: mediaLibrary.get('hasNextPage'),
|
||||
isPaginating: mediaLibrary.get('isPaginating'),
|
||||
field
|
||||
};
|
||||
return _objectSpread({}, mediaLibraryProps);
|
||||
}
|
||||
const mapDispatchToProps = {
|
||||
loadMedia: _mediaLibrary.loadMedia,
|
||||
persistMedia: _mediaLibrary.persistMedia,
|
||||
deleteMedia: _mediaLibrary.deleteMedia,
|
||||
insertMedia: _mediaLibrary.insertMedia,
|
||||
loadMediaDisplayURL: _mediaLibrary.loadMediaDisplayURL,
|
||||
closeMediaLibrary: _mediaLibrary.closeMediaLibrary
|
||||
};
|
||||
var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)((0, _reactPolyglot.translate)()(MediaLibrary));
|
||||
106
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibraryButtons.js
generated
vendored
Normal file
106
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibraryButtons.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
107
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibraryCard.js
generated
vendored
Normal file
107
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibraryCard.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
210
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibraryCardGrid.js
generated
vendored
Normal file
210
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibraryCardGrid.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
39
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibraryHeader.js
generated
vendored
Normal file
39
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibraryHeader.js
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
const CloseButton = /*#__PURE__*/(0, _base.default)("button", {
|
||||
target: "estf6121",
|
||||
label: "CloseButton"
|
||||
})(_decapCmsUiDefault.buttons.button, ";", _decapCmsUiDefault.shadows.dropMiddle, ";position:absolute;margin-right:-40px;left:-40px;top:-40px;width:40px;height:40px;border-radius:50%;background-color:white;padding:0;display:flex;justify-content:center;align-items:center;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL01lZGlhTGlicmFyeS9NZWRpYUxpYnJhcnlIZWFkZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS2lDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL01lZGlhTGlicmFyeS9NZWRpYUxpYnJhcnlIZWFkZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IEljb24sIHNoYWRvd3MsIGNvbG9ycywgYnV0dG9ucyB9IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcblxuY29uc3QgQ2xvc2VCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICAke2J1dHRvbnMuYnV0dG9ufTtcbiAgJHtzaGFkb3dzLmRyb3BNaWRkbGV9O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbi1yaWdodDogLTQwcHg7XG4gIGxlZnQ6IC00MHB4O1xuICB0b3A6IC00MHB4O1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmA7XG5cbmNvbnN0IExpYnJhcnlUaXRsZSA9IHN0eWxlZC5oMWBcbiAgbGluZS1oZWlnaHQ6IDM2cHg7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuaXNQcml2YXRlICYmIGNvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuYDtcblxuZnVuY3Rpb24gTWVkaWFMaWJyYXJ5SGVhZGVyKHsgb25DbG9zZSwgdGl0bGUsIGlzUHJpdmF0ZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxDbG9zZUJ1dHRvbiBvbkNsaWNrPXtvbkNsb3NlfT5cbiAgICAgICAgPEljb24gdHlwZT1cImNsb3NlXCIgLz5cbiAgICAgIDwvQ2xvc2VCdXR0b24+XG4gICAgICA8TGlicmFyeVRpdGxlIGlzUHJpdmF0ZT17aXNQcml2YXRlfT57dGl0bGV9PC9MaWJyYXJ5VGl0bGU+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbk1lZGlhTGlicmFyeUhlYWRlci5wcm9wVHlwZXMgPSB7XG4gIG9uQ2xvc2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGlzUHJpdmF0ZTogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBNZWRpYUxpYnJhcnlIZWFkZXI7XG4iXX0= */"));
|
||||
const LibraryTitle = /*#__PURE__*/(0, _base.default)("h1", {
|
||||
target: "estf6120",
|
||||
label: "LibraryTitle"
|
||||
})("line-height:36px;font-size:22px;text-align:left;margin-bottom:25px;color:", props => props.isPrivate && _decapCmsUiDefault.colors.textFieldBorder, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL01lZGlhTGlicmFyeS9NZWRpYUxpYnJhcnlIZWFkZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0I4QiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9NZWRpYUxpYnJhcnkvTWVkaWFMaWJyYXJ5SGVhZGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBJY29uLCBzaGFkb3dzLCBjb2xvcnMsIGJ1dHRvbnMgfSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmNvbnN0IENsb3NlQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgJHtidXR0b25zLmJ1dHRvbn07XG4gICR7c2hhZG93cy5kcm9wTWlkZGxlfTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXJnaW4tcmlnaHQ6IC00MHB4O1xuICBsZWZ0OiAtNDBweDtcbiAgdG9wOiAtNDBweDtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogNDBweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5jb25zdCBMaWJyYXJ5VGl0bGUgPSBzdHlsZWQuaDFgXG4gIGxpbmUtaGVpZ2h0OiAzNnB4O1xuICBmb250LXNpemU6IDIycHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLmlzUHJpdmF0ZSAmJiBjb2xvcnMudGV4dEZpZWxkQm9yZGVyfTtcbmA7XG5cbmZ1bmN0aW9uIE1lZGlhTGlicmFyeUhlYWRlcih7IG9uQ2xvc2UsIHRpdGxlLCBpc1ByaXZhdGUgfSkge1xuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8Q2xvc2VCdXR0b24gb25DbGljaz17b25DbG9zZX0+XG4gICAgICAgIDxJY29uIHR5cGU9XCJjbG9zZVwiIC8+XG4gICAgICA8L0Nsb3NlQnV0dG9uPlxuICAgICAgPExpYnJhcnlUaXRsZSBpc1ByaXZhdGU9e2lzUHJpdmF0ZX0+e3RpdGxlfTwvTGlicmFyeVRpdGxlPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5NZWRpYUxpYnJhcnlIZWFkZXIucHJvcFR5cGVzID0ge1xuICBvbkNsb3NlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0aXRsZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBpc1ByaXZhdGU6IFByb3BUeXBlcy5ib29sLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgTWVkaWFMaWJyYXJ5SGVhZGVyO1xuIl19 */"));
|
||||
function MediaLibraryHeader({
|
||||
onClose,
|
||||
title,
|
||||
isPrivate
|
||||
}) {
|
||||
return (0, _react2.jsx)("div", null, (0, _react2.jsx)(CloseButton, {
|
||||
onClick: onClose
|
||||
}, (0, _react2.jsx)(_decapCmsUiDefault.Icon, {
|
||||
type: "close"
|
||||
})), (0, _react2.jsx)(LibraryTitle, {
|
||||
isPrivate: isPrivate
|
||||
}, title));
|
||||
}
|
||||
MediaLibraryHeader.propTypes = {
|
||||
onClose: _propTypes.default.func.isRequired,
|
||||
title: _propTypes.default.string.isRequired,
|
||||
isPrivate: _propTypes.default.bool
|
||||
};
|
||||
var _default = exports.default = MediaLibraryHeader;
|
||||
161
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibraryModal.js
generated
vendored
Normal file
161
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibraryModal.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
59
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibrarySearch.js
generated
vendored
Normal file
59
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibrarySearch.js
generated
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
||||
const SearchContainer = /*#__PURE__*/(0, _base.default)("div", {
|
||||
target: "el0uck02",
|
||||
label: "SearchContainer"
|
||||
})(process.env.NODE_ENV === "production" ? {
|
||||
name: "sycyb7",
|
||||
styles: "height:37px;display:flex;align-items:center;position:relative;width:400px"
|
||||
} : {
|
||||
name: "sycyb7",
|
||||
styles: "height:37px;display:flex;align-items:center;position:relative;width:400px",
|
||||
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL01lZGlhTGlicmFyeS9NZWRpYUxpYnJhcnlTZWFyY2guanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS2tDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL01lZGlhTGlicmFyeS9NZWRpYUxpYnJhcnlTZWFyY2guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IEljb24sIGxlbmd0aHMsIGNvbG9ycywgekluZGV4IH0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5jb25zdCBTZWFyY2hDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBoZWlnaHQ6IDM3cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDQwMHB4O1xuYDtcblxuY29uc3QgU2VhcmNoSW5wdXQgPSBzdHlsZWQuaW5wdXRgXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmYwZjQ7XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuXG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZzogMTBweCA2cHggMTBweCAzMnB4O1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgxfTtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAke2NvbG9ycy5hY3RpdmV9O1xuICB9XG5gO1xuXG5jb25zdCBTZWFyY2hJY29uID0gc3R5bGVkKEljb24pYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA2cHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDJ9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbmA7XG5cbmZ1bmN0aW9uIE1lZGlhTGlicmFyeVNlYXJjaCh7IHZhbHVlLCBvbkNoYW5nZSwgb25LZXlEb3duLCBwbGFjZWhvbGRlciwgZGlzYWJsZWQgfSkge1xuICByZXR1cm4gKFxuICAgIDxTZWFyY2hDb250YWluZXI+XG4gICAgICA8U2VhcmNoSWNvbiB0eXBlPVwic2VhcmNoXCIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgIDxTZWFyY2hJbnB1dFxuICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgLz5cbiAgICA8L1NlYXJjaENvbnRhaW5lcj5cbiAgKTtcbn1cblxuTWVkaWFMaWJyYXJ5U2VhcmNoLnByb3BUeXBlcyA9IHtcbiAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvbktleURvd246IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1lZGlhTGlicmFyeVNlYXJjaDtcbiJdfQ== */",
|
||||
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
||||
});
|
||||
const SearchInput = /*#__PURE__*/(0, _base.default)("input", {
|
||||
target: "el0uck01",
|
||||
label: "SearchInput"
|
||||
})("background-color:#eff0f4;border-radius:", _decapCmsUiDefault.lengths.borderRadius, ";font-size:14px;padding:10px 6px 10px 32px;width:100%;position:relative;z-index:", _decapCmsUiDefault.zIndex.zIndex1, ";&:focus{outline:none;box-shadow:inset 0 0 0 2px ", _decapCmsUiDefault.colors.active, ";}" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL01lZGlhTGlicmFyeS9NZWRpYUxpYnJhcnlTZWFyY2guanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYWdDIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL01lZGlhTGlicmFyeS9NZWRpYUxpYnJhcnlTZWFyY2guanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IEljb24sIGxlbmd0aHMsIGNvbG9ycywgekluZGV4IH0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5jb25zdCBTZWFyY2hDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBoZWlnaHQ6IDM3cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDQwMHB4O1xuYDtcblxuY29uc3QgU2VhcmNoSW5wdXQgPSBzdHlsZWQuaW5wdXRgXG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmYwZjQ7XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuXG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZzogMTBweCA2cHggMTBweCAzMnB4O1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgxfTtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDJweCAke2NvbG9ycy5hY3RpdmV9O1xuICB9XG5gO1xuXG5jb25zdCBTZWFyY2hJY29uID0gc3R5bGVkKEljb24pYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICBsZWZ0OiA2cHg7XG4gIHotaW5kZXg6ICR7ekluZGV4LnpJbmRleDJ9O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbmA7XG5cbmZ1bmN0aW9uIE1lZGlhTGlicmFyeVNlYXJjaCh7IHZhbHVlLCBvbkNoYW5nZSwgb25LZXlEb3duLCBwbGFjZWhvbGRlciwgZGlzYWJsZWQgfSkge1xuICByZXR1cm4gKFxuICAgIDxTZWFyY2hDb250YWluZXI+XG4gICAgICA8U2VhcmNoSWNvbiB0eXBlPVwic2VhcmNoXCIgc2l6ZT1cInNtYWxsXCIgLz5cbiAgICAgIDxTZWFyY2hJbnB1dFxuICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgb25LZXlEb3duPXtvbktleURvd259XG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgLz5cbiAgICA8L1NlYXJjaENvbnRhaW5lcj5cbiAgKTtcbn1cblxuTWVkaWFMaWJyYXJ5U2VhcmNoLnByb3BUeXBlcyA9IHtcbiAgdmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBvbktleURvd246IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE1lZGlhTGlicmFyeVNlYXJjaDtcbiJdfQ== */"));
|
||||
const SearchIcon = /*#__PURE__*/(0, _base.default)(_decapCmsUiDefault.Icon, {
|
||||
target: "el0uck00",
|
||||
label: "SearchIcon"
|
||||
})("position:absolute;top:50%;left:6px;z-index:", _decapCmsUiDefault.zIndex.zIndex2, ";transform:translate(0, -50%);" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL01lZGlhTGlicmFyeS9NZWRpYUxpYnJhcnlTZWFyY2guanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkIrQiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9NZWRpYUxpYnJhcnkvTWVkaWFMaWJyYXJ5U2VhcmNoLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBJY29uLCBsZW5ndGhzLCBjb2xvcnMsIHpJbmRleCB9IGZyb20gJ2RlY2FwLWNtcy11aS1kZWZhdWx0JztcblxuY29uc3QgU2VhcmNoQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAzN3B4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA0MDBweDtcbmA7XG5cbmNvbnN0IFNlYXJjaElucHV0ID0gc3R5bGVkLmlucHV0YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZmMGY0O1xuICBib3JkZXItcmFkaXVzOiAke2xlbmd0aHMuYm9yZGVyUmFkaXVzfTtcblxuICBmb250LXNpemU6IDE0cHg7XG4gIHBhZGRpbmc6IDEwcHggNnB4IDEwcHggMzJweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogJHt6SW5kZXguekluZGV4MX07XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAycHggJHtjb2xvcnMuYWN0aXZlfTtcbiAgfVxuYDtcblxuY29uc3QgU2VhcmNoSWNvbiA9IHN0eWxlZChJY29uKWBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNnB4O1xuICB6LWluZGV4OiAke3pJbmRleC56SW5kZXgyfTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG5gO1xuXG5mdW5jdGlvbiBNZWRpYUxpYnJhcnlTZWFyY2goeyB2YWx1ZSwgb25DaGFuZ2UsIG9uS2V5RG93biwgcGxhY2Vob2xkZXIsIGRpc2FibGVkIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U2VhcmNoQ29udGFpbmVyPlxuICAgICAgPFNlYXJjaEljb24gdHlwZT1cInNlYXJjaFwiIHNpemU9XCJzbWFsbFwiIC8+XG4gICAgICA8U2VhcmNoSW5wdXRcbiAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIC8+XG4gICAgPC9TZWFyY2hDb250YWluZXI+XG4gICk7XG59XG5cbk1lZGlhTGlicmFyeVNlYXJjaC5wcm9wVHlwZXMgPSB7XG4gIHZhbHVlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgb25LZXlEb3duOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICBwbGFjZWhvbGRlcjogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBNZWRpYUxpYnJhcnlTZWFyY2g7XG4iXX0= */"));
|
||||
function MediaLibrarySearch({
|
||||
value,
|
||||
onChange,
|
||||
onKeyDown,
|
||||
placeholder,
|
||||
disabled
|
||||
}) {
|
||||
return (0, _react2.jsx)(SearchContainer, null, (0, _react2.jsx)(SearchIcon, {
|
||||
type: "search",
|
||||
size: "small"
|
||||
}), (0, _react2.jsx)(SearchInput, {
|
||||
value: value,
|
||||
onChange: onChange,
|
||||
onKeyDown: onKeyDown,
|
||||
placeholder: placeholder,
|
||||
disabled: disabled
|
||||
}));
|
||||
}
|
||||
MediaLibrarySearch.propTypes = {
|
||||
value: _propTypes.default.string,
|
||||
onChange: _propTypes.default.func.isRequired,
|
||||
onKeyDown: _propTypes.default.func.isRequired,
|
||||
placeholder: _propTypes.default.string.isRequired,
|
||||
disabled: _propTypes.default.bool
|
||||
};
|
||||
var _default = exports.default = MediaLibrarySearch;
|
||||
133
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibraryTop.js
generated
vendored
Normal file
133
node_modules/decap-cms-core/dist/esm/components/MediaLibrary/MediaLibraryTop.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
84
node_modules/decap-cms-core/dist/esm/components/UI/DragDrop.js
generated
vendored
Normal file
84
node_modules/decap-cms-core/dist/esm/components/UI/DragDrop.js
generated
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.DragSource = DragSource;
|
||||
exports.DropTarget = DropTarget;
|
||||
exports.HTML5DragDrop = HTML5DragDrop;
|
||||
var _reactDndHtml5Backend = require("react-dnd-html5-backend");
|
||||
var _reactDnd = require("react-dnd");
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _react2 = require("@emotion/react");
|
||||
const _excluded = ["namespace"],
|
||||
_excluded2 = ["children", "isDragging", "connectDragComponent"],
|
||||
_excluded3 = ["onDrop", "namespace"];
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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; }
|
||||
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; }
|
||||
function DragSource(_ref) {
|
||||
let {
|
||||
namespace
|
||||
} = _ref,
|
||||
props = _objectWithoutProperties(_ref, _excluded);
|
||||
const DragComponent = (0, _reactDnd.DragSource)(namespace, {
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
beginDrag(_ref2) {
|
||||
let {
|
||||
children,
|
||||
isDragging,
|
||||
connectDragComponent
|
||||
} = _ref2,
|
||||
ownProps = _objectWithoutProperties(_ref2, _excluded2);
|
||||
// We return the rest of the props as the ID of the element being dragged.
|
||||
return ownProps;
|
||||
}
|
||||
}, connect => ({
|
||||
connectDragComponent: connect.dragSource()
|
||||
}))(({
|
||||
children,
|
||||
connectDragComponent
|
||||
}) => children(connectDragComponent));
|
||||
return /*#__PURE__*/_react.default.createElement(DragComponent, props, props.children);
|
||||
}
|
||||
DragSource.propTypes = {
|
||||
namespace: _propTypes.default.any.isRequired,
|
||||
children: _propTypes.default.func.isRequired
|
||||
};
|
||||
function DropTarget(_ref3) {
|
||||
let {
|
||||
onDrop,
|
||||
namespace
|
||||
} = _ref3,
|
||||
props = _objectWithoutProperties(_ref3, _excluded3);
|
||||
const DropComponent = (0, _reactDnd.DropTarget)(namespace, {
|
||||
drop(ownProps, monitor) {
|
||||
onDrop(monitor.getItem());
|
||||
}
|
||||
}, (connect, monitor) => ({
|
||||
connectDropTarget: connect.dropTarget(),
|
||||
isHovered: monitor.isOver()
|
||||
}))(({
|
||||
children,
|
||||
connectDropTarget,
|
||||
isHovered
|
||||
}) => children(connectDropTarget, {
|
||||
isHovered
|
||||
}));
|
||||
return /*#__PURE__*/_react.default.createElement(DropComponent, props, props.children);
|
||||
}
|
||||
DropTarget.propTypes = {
|
||||
onDrop: _propTypes.default.func.isRequired,
|
||||
namespace: _propTypes.default.any.isRequired,
|
||||
children: _propTypes.default.func.isRequired
|
||||
};
|
||||
function HTML5DragDrop(WrappedComponent) {
|
||||
return class HTML5DragDrop extends _react.default.Component {
|
||||
render() {
|
||||
return (0, _react2.jsx)(_reactDnd.DndProvider, {
|
||||
backend: _reactDndHtml5Backend.HTML5Backend
|
||||
}, (0, _react2.jsx)(WrappedComponent, this.props));
|
||||
}
|
||||
};
|
||||
}
|
||||
183
node_modules/decap-cms-core/dist/esm/components/UI/ErrorBoundary.js
generated
vendored
Normal file
183
node_modules/decap-cms-core/dist/esm/components/UI/ErrorBoundary.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
34
node_modules/decap-cms-core/dist/esm/components/UI/FileUploadButton.js
generated
vendored
Normal file
34
node_modules/decap-cms-core/dist/esm/components/UI/FileUploadButton.js
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.FileUploadButton = FileUploadButton;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function FileUploadButton({
|
||||
label,
|
||||
imagesOnly,
|
||||
onChange,
|
||||
disabled,
|
||||
className
|
||||
}) {
|
||||
return (0, _react2.jsx)("label", {
|
||||
tabIndex: '0',
|
||||
className: `nc-fileUploadButton ${className || ''}`
|
||||
}, (0, _react2.jsx)("span", null, label), (0, _react2.jsx)("input", {
|
||||
type: "file",
|
||||
accept: imagesOnly ? 'image/*' : '*/*',
|
||||
onChange: onChange,
|
||||
disabled: disabled
|
||||
}));
|
||||
}
|
||||
FileUploadButton.propTypes = {
|
||||
className: _propTypes.default.string,
|
||||
label: _propTypes.default.string.isRequired,
|
||||
imagesOnly: _propTypes.default.bool,
|
||||
onChange: _propTypes.default.func.isRequired,
|
||||
disabled: _propTypes.default.bool
|
||||
};
|
||||
113
node_modules/decap-cms-core/dist/esm/components/UI/Modal.js
generated
vendored
Normal file
113
node_modules/decap-cms-core/dist/esm/components/UI/Modal.js
generated
vendored
Normal file
@@ -0,0 +1,113 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.Modal = void 0;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _react2 = require("@emotion/react");
|
||||
var _reactModal = _interopRequireDefault(require("react-modal"));
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
||||
var _ref = process.env.NODE_ENV === "production" ? {
|
||||
name: "1o9c9d2-ReactModalGlobalStyles",
|
||||
styles: ".ReactModal__Body--open{overflow:hidden;};label:ReactModalGlobalStyles;"
|
||||
} : {
|
||||
name: "1o9c9d2-ReactModalGlobalStyles",
|
||||
styles: ".ReactModal__Body--open{overflow:hidden;};label:ReactModalGlobalStyles;",
|
||||
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1VJL01vZGFsLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNpQiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9VSS9Nb2RhbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHsgY3NzLCBHbG9iYWwsIENsYXNzTmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgUmVhY3RNb2RhbCBmcm9tICdyZWFjdC1tb2RhbCc7XG5pbXBvcnQgeyB0cmFuc2l0aW9ucywgc2hhZG93cywgbGVuZ3RocywgekluZGV4IH0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5mdW5jdGlvbiBSZWFjdE1vZGFsR2xvYmFsU3R5bGVzKCkge1xuICByZXR1cm4gKFxuICAgIDxHbG9iYWxcbiAgICAgIHN0eWxlcz17Y3NzYFxuICAgICAgICAuUmVhY3RNb2RhbF9fQm9keS0tb3BlbiB7XG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgYH1cbiAgICAvPlxuICApO1xufVxuXG5jb25zdCBzdHlsZVN0cmluZ3MgPSB7XG4gIG1vZGFsQm9keTogYFxuICAgICR7c2hhZG93cy5kcm9wRGVlcH07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAke2xlbmd0aHMuYm9yZGVyUmFkaXVzfTtcbiAgICBoZWlnaHQ6IDgwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiAyMjAwcHg7XG4gICAgcGFkZGluZzogMjBweDtcblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIGAsXG4gIG92ZXJsYXk6IGBcbiAgICB6LWluZGV4OiAke3pJbmRleC56SW5kZXg5OTk5OX07XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHt0cmFuc2l0aW9ucy5tYWlufSwgb3BhY2l0eSAke3RyYW5zaXRpb25zLm1haW59O1xuICBgLFxuICBvdmVybGF5QWZ0ZXJPcGVuOiBgXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIG9wYWNpdHk6IDE7XG4gIGAsXG4gIG92ZXJsYXlCZWZvcmVDbG9zZTogYFxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgYCxcbn07XG5cbmV4cG9ydCBjbGFzcyBNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLmlzUmVxdWlyZWQsXG4gICAgaXNPcGVuOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkNsb3NlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIFJlYWN0TW9kYWwuc2V0QXBwRWxlbWVudCgnI25jLXJvb3QnKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7IGlzT3BlbiwgY2hpbGRyZW4sIGNsYXNzTmFtZSwgb25DbG9zZSB9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPFJlYWN0TW9kYWxHbG9iYWxTdHlsZXMgLz5cbiAgICAgICAgPENsYXNzTmFtZXM+XG4gICAgICAgICAgeyh7IGNzcywgY3ggfSkgPT4gKFxuICAgICAgICAgICAgPFJlYWN0TW9kYWxcbiAgICAgICAgICAgICAgaXNPcGVuPXtpc09wZW59XG4gICAgICAgICAgICAgIG9uUmVxdWVzdENsb3NlPXtvbkNsb3NlfVxuICAgICAgICAgICAgICBjbG9zZVRpbWVvdXRNUz17MzAwfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e3tcbiAgICAgICAgICAgICAgICBiYXNlOiBjeChcbiAgICAgICAgICAgICAgICAgIGNzc2BcbiAgICAgICAgICAgICAgICAgICAgJHtzdHlsZVN0cmluZ3MubW9kYWxCb2R5fTtcbiAgICAgICAgICAgICAgICAgIGAsXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBhZnRlck9wZW46ICcnLFxuICAgICAgICAgICAgICAgIGJlZm9yZUNsb3NlOiAnJyxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgb3ZlcmxheUNsYXNzTmFtZT17e1xuICAgICAgICAgICAgICAgIGJhc2U6IGNzc2BcbiAgICAgICAgICAgICAgICAgICR7c3R5bGVTdHJpbmdzLm92ZXJsYXl9O1xuICAgICAgICAgICAgICAgIGAsXG4gICAgICAgICAgICAgICAgYWZ0ZXJPcGVuOiBjc3NgXG4gICAgICAgICAgICAgICAgICAke3N0eWxlU3RyaW5ncy5vdmVybGF5QWZ0ZXJPcGVufTtcbiAgICAgICAgICAgICAgICBgLFxuICAgICAgICAgICAgICAgIGJlZm9yZUNsb3NlOiBjc3NgXG4gICAgICAgICAgICAgICAgICAke3N0eWxlU3RyaW5ncy5vdmVybGF5QmVmb3JlQ2xvc2V9O1xuICAgICAgICAgICAgICAgIGAsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgIDwvUmVhY3RNb2RhbD5cbiAgICAgICAgICApfVxuICAgICAgICA8L0NsYXNzTmFtZXM+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG59XG4iXX0= */",
|
||||
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
||||
};
|
||||
function ReactModalGlobalStyles() {
|
||||
return (0, _react2.jsx)(_react2.Global, {
|
||||
styles: _ref
|
||||
});
|
||||
}
|
||||
const styleStrings = {
|
||||
modalBody: `
|
||||
${_decapCmsUiDefault.shadows.dropDeep};
|
||||
background-color: #fff;
|
||||
border-radius: ${_decapCmsUiDefault.lengths.borderRadius};
|
||||
height: 80%;
|
||||
text-align: center;
|
||||
max-width: 2200px;
|
||||
padding: 20px;
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
`,
|
||||
overlay: `
|
||||
z-index: ${_decapCmsUiDefault.zIndex.zIndex99999};
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
opacity: 0;
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
transition: background-color ${_decapCmsUiDefault.transitions.main}, opacity ${_decapCmsUiDefault.transitions.main};
|
||||
`,
|
||||
overlayAfterOpen: `
|
||||
background-color: rgba(0, 0, 0, 0.6);
|
||||
opacity: 1;
|
||||
`,
|
||||
overlayBeforeClose: `
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
opacity: 0;
|
||||
`
|
||||
};
|
||||
class Modal extends _react.default.Component {
|
||||
componentDidMount() {
|
||||
_reactModal.default.setAppElement('#nc-root');
|
||||
}
|
||||
render() {
|
||||
const {
|
||||
isOpen,
|
||||
children,
|
||||
className,
|
||||
onClose
|
||||
} = this.props;
|
||||
return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(ReactModalGlobalStyles, null), (0, _react2.jsx)(_react2.ClassNames, null, ({
|
||||
css,
|
||||
cx
|
||||
}) => (0, _react2.jsx)(_reactModal.default, {
|
||||
isOpen: isOpen,
|
||||
onRequestClose: onClose,
|
||||
closeTimeoutMS: 300,
|
||||
className: {
|
||||
base: cx(css`
|
||||
${styleStrings.modalBody};
|
||||
`, className),
|
||||
afterOpen: '',
|
||||
beforeClose: ''
|
||||
},
|
||||
overlayClassName: {
|
||||
base: css`
|
||||
${styleStrings.overlay};
|
||||
`,
|
||||
afterOpen: css`
|
||||
${styleStrings.overlayAfterOpen};
|
||||
`,
|
||||
beforeClose: css`
|
||||
${styleStrings.overlayBeforeClose};
|
||||
`
|
||||
}
|
||||
}, children)));
|
||||
}
|
||||
}
|
||||
exports.Modal = Modal;
|
||||
_defineProperty(Modal, "propTypes", {
|
||||
children: _propTypes.default.node.isRequired,
|
||||
isOpen: _propTypes.default.bool.isRequired,
|
||||
className: _propTypes.default.string,
|
||||
onClose: _propTypes.default.func.isRequired
|
||||
});
|
||||
73
node_modules/decap-cms-core/dist/esm/components/UI/Notifications.js
generated
vendored
Normal file
73
node_modules/decap-cms-core/dist/esm/components/UI/Notifications.js
generated
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _react = _interopRequireWildcard(require("react"));
|
||||
var _injectStyle = require("react-toastify/dist/inject-style");
|
||||
var _reactToastify = require("react-toastify");
|
||||
var _reactRedux = require("react-redux");
|
||||
var _reactPolyglot = require("react-polyglot");
|
||||
var _notifications = require("../../actions/notifications");
|
||||
var _react2 = require("@emotion/react");
|
||||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
||||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // eslint-disable-next-line no-unused-vars
|
||||
// import { translate } from 'react-polyglot';
|
||||
(0, _injectStyle.injectStyle)();
|
||||
function Notifications({
|
||||
notifications
|
||||
}) {
|
||||
const t = (0, _reactPolyglot.useTranslate)();
|
||||
const dispatch = (0, _reactRedux.useDispatch)();
|
||||
const [idMap, setIdMap] = _react.default.useState({});
|
||||
(0, _react.useEffect)(() => {
|
||||
notifications.filter(notification => !idMap[notification.id]).forEach(notification => {
|
||||
const toastId = (0, _reactToastify.toast)(typeof notification.message == 'string' ? notification.message : t(notification.message.key, _objectSpread({}, notification.message)), {
|
||||
autoClose: notification.dismissAfter,
|
||||
type: notification.type
|
||||
});
|
||||
idMap[notification.id] = toastId;
|
||||
setIdMap(idMap);
|
||||
if (notification.dismissAfter) {
|
||||
setTimeout(() => {
|
||||
dispatch((0, _notifications.dismissNotification)(notification.id));
|
||||
}, notification.dismissAfter);
|
||||
}
|
||||
});
|
||||
Object.entries(idMap).forEach(([id, toastId]) => {
|
||||
if (!notifications.find(notification => notification.id === id)) {
|
||||
_reactToastify.toast.dismiss(toastId);
|
||||
delete idMap[id];
|
||||
setIdMap(idMap);
|
||||
}
|
||||
});
|
||||
}, [notifications]);
|
||||
_reactToastify.toast.onChange(payload => {
|
||||
if (payload.status == 'removed') {
|
||||
var _Object$entries$find;
|
||||
const id = (_Object$entries$find = Object.entries(idMap).find(([, toastId]) => toastId === payload.id)) === null || _Object$entries$find === void 0 ? void 0 : _Object$entries$find[0];
|
||||
if (id) {
|
||||
dispatch((0, _notifications.dismissNotification)(id));
|
||||
}
|
||||
}
|
||||
});
|
||||
return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_reactToastify.ToastContainer, {
|
||||
position: "top-right",
|
||||
theme: "colored",
|
||||
className: "notif__container"
|
||||
}));
|
||||
}
|
||||
function mapStateToProps({
|
||||
notifications
|
||||
}) {
|
||||
return {
|
||||
notifications: notifications.notifications
|
||||
};
|
||||
}
|
||||
var _default = exports.default = (0, _reactRedux.connect)(mapStateToProps)(Notifications);
|
||||
117
node_modules/decap-cms-core/dist/esm/components/UI/SettingsDropdown.js
generated
vendored
Normal file
117
node_modules/decap-cms-core/dist/esm/components/UI/SettingsDropdown.js
generated
vendored
Normal file
@@ -0,0 +1,117 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _propTypes = _interopRequireDefault(require("prop-types"));
|
||||
var _react2 = require("@emotion/react");
|
||||
var _reactPolyglot = require("react-polyglot");
|
||||
var _decapCmsUiDefault = require("decap-cms-ui-default");
|
||||
var _urlHelper = require("../../lib/urlHelper");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
||||
const styles = {
|
||||
avatarImage: process.env.NODE_ENV === "production" ? {
|
||||
name: "m2n7c1-avatarImage",
|
||||
styles: "width:32px;border-radius:32px;label:avatarImage;"
|
||||
} : {
|
||||
name: "m2n7c1-avatarImage",
|
||||
styles: "width:32px;border-radius:32px;label:avatarImage;",
|
||||
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1VJL1NldHRpbmdzRHJvcGRvd24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVWtCIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1VJL1NldHRpbmdzRHJvcGRvd24uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IHRyYW5zbGF0ZSB9IGZyb20gJ3JlYWN0LXBvbHlnbG90JztcbmltcG9ydCB7IEljb24sIERyb3Bkb3duLCBEcm9wZG93bkl0ZW0sIERyb3Bkb3duQnV0dG9uLCBjb2xvcnMgfSBmcm9tICdkZWNhcC1jbXMtdWktZGVmYXVsdCc7XG5cbmltcG9ydCB7IHN0cmlwUHJvdG9jb2wgfSBmcm9tICcuLi8uLi9saWIvdXJsSGVscGVyJztcblxuY29uc3Qgc3R5bGVzID0ge1xuICBhdmF0YXJJbWFnZTogY3NzYFxuICAgIHdpZHRoOiAzMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDMycHg7XG4gIGAsXG59O1xuXG5jb25zdCBBdmF0YXJEcm9wZG93bkJ1dHRvbiA9IHN0eWxlZChEcm9wZG93bkJ1dHRvbilgXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogOHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAjMWUyNTMyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbmA7XG5cbmNvbnN0IEF2YXRhckltYWdlID0gc3R5bGVkLmltZ2BcbiAgJHtzdHlsZXMuYXZhdGFySW1hZ2V9O1xuYDtcblxuY29uc3QgQXZhdGFyUGxhY2Vob2xkZXJJY29uID0gc3R5bGVkKEljb24pYFxuICAke3N0eWxlcy5hdmF0YXJJbWFnZX07XG4gIGhlaWdodDogMzJweDtcbiAgY29sb3I6ICMxZTI1MzI7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7Y29sb3JzLnRleHRGaWVsZEJvcmRlcn07XG5gO1xuXG5jb25zdCBBcHBIZWFkZXJTaXRlTGluayA9IHN0eWxlZC5hYFxuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjN2I4MjkwO1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG5gO1xuXG5jb25zdCBBcHBIZWFkZXJUZXN0UmVwb0luZGljYXRvciA9IHN0eWxlZC5hYFxuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGNvbG9yOiAjN2I4MjkwO1xuICBwYWRkaW5nOiAxMHB4IDE2cHg7XG5gO1xuXG5mdW5jdGlvbiBBdmF0YXIoeyBpbWFnZVVybCB9KSB7XG4gIHJldHVybiBpbWFnZVVybCA/IChcbiAgICA8QXZhdGFySW1hZ2Ugc3JjPXtpbWFnZVVybH0gLz5cbiAgKSA6IChcbiAgICA8QXZhdGFyUGxhY2Vob2xkZXJJY29uIHR5cGU9XCJ1c2VyXCIgc2l6ZT1cImxhcmdlXCIgLz5cbiAgKTtcbn1cblxuQXZhdGFyLnByb3BUeXBlcyA9IHtcbiAgaW1hZ2VVcmw6IFByb3BUeXBlcy5zdHJpbmcsXG59O1xuXG5mdW5jdGlvbiBTZXR0aW5nc0Ryb3Bkb3duKHsgZGlzcGxheVVybCwgaXNUZXN0UmVwbywgaW1hZ2VVcmwsIG9uTG9nb3V0Q2xpY2ssIHQgfSkge1xuICByZXR1cm4gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIHtpc1Rlc3RSZXBvICYmIChcbiAgICAgICAgPEFwcEhlYWRlclRlc3RSZXBvSW5kaWNhdG9yXG4gICAgICAgICAgaHJlZj1cImh0dHBzOi8vd3d3LmRlY2FwY21zLm9yZy9kb2NzL3Rlc3QtYmFja2VuZFwiXG4gICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIFRlc3QgQmFja2VuZCDihpdcbiAgICAgICAgPC9BcHBIZWFkZXJUZXN0UmVwb0luZGljYXRvcj5cbiAgICAgICl9XG4gICAgICB7ZGlzcGxheVVybCA/IChcbiAgICAgICAgPEFwcEhlYWRlclNpdGVMaW5rIGhyZWY9e2Rpc3BsYXlVcmx9IHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgIHtzdHJpcFByb3RvY29sKGRpc3BsYXlVcmwpfVxuICAgICAgICA8L0FwcEhlYWRlclNpdGVMaW5rPlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8RHJvcGRvd25cbiAgICAgICAgZHJvcGRvd25Ub3BPdmVybGFwPVwiNTBweFwiXG4gICAgICAgIGRyb3Bkb3duV2lkdGg9XCIxMDBweFwiXG4gICAgICAgIGRyb3Bkb3duUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgIHJlbmRlckJ1dHRvbj17KCkgPT4gKFxuICAgICAgICAgIDxBdmF0YXJEcm9wZG93bkJ1dHRvbj5cbiAgICAgICAgICAgIDxBdmF0YXIgaW1hZ2VVcmw9e2ltYWdlVXJsfSAvPlxuICAgICAgICAgIDwvQXZhdGFyRHJvcGRvd25CdXR0b24+XG4gICAgICAgICl9XG4gICAgICA+XG4gICAgICAgIDxEcm9wZG93bkl0ZW0gbGFiZWw9e3QoJ3VpLnNldHRpbmdzRHJvcGRvd24ubG9nT3V0Jyl9IG9uQ2xpY2s9e29uTG9nb3V0Q2xpY2t9IC8+XG4gICAgICA8L0Ryb3Bkb3duPlxuICAgIDwvUmVhY3QuRnJhZ21lbnQ+XG4gICk7XG59XG5cblNldHRpbmdzRHJvcGRvd24ucHJvcFR5cGVzID0ge1xuICBkaXNwbGF5VXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBpc1Rlc3RSZXBvOiBQcm9wVHlwZXMuYm9vbCxcbiAgaW1hZ2VVcmw6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uTG9nb3V0Q2xpY2s6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59O1xuXG5leHBvcnQgZGVmYXVsdCB0cmFuc2xhdGUoKShTZXR0aW5nc0Ryb3Bkb3duKTtcbiJdfQ== */",
|
||||
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
||||
}
|
||||
};
|
||||
const AvatarDropdownButton = /*#__PURE__*/(0, _base.default)(_decapCmsUiDefault.DropdownButton, {
|
||||
target: "e1gt62yu4",
|
||||
label: "AvatarDropdownButton"
|
||||
})(process.env.NODE_ENV === "production" ? {
|
||||
name: "dtukf8",
|
||||
styles: "display:inline-block;padding:8px;cursor:pointer;color:#1e2532;background-color:transparent"
|
||||
} : {
|
||||
name: "dtukf8",
|
||||
styles: "display:inline-block;padding:8px;cursor:pointer;color:#1e2532;background-color:transparent",
|
||||
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1VJL1NldHRpbmdzRHJvcGRvd24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JtRCIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9VSS9TZXR0aW5nc0Ryb3Bkb3duLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBJY29uLCBEcm9wZG93biwgRHJvcGRvd25JdGVtLCBEcm9wZG93bkJ1dHRvbiwgY29sb3JzIH0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdHJpcFByb3RvY29sIH0gZnJvbSAnLi4vLi4vbGliL3VybEhlbHBlcic7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgYXZhdGFySW1hZ2U6IGNzc2BcbiAgICB3aWR0aDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xuICBgLFxufTtcblxuY29uc3QgQXZhdGFyRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzFlMjUzMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5gO1xuXG5jb25zdCBBdmF0YXJJbWFnZSA9IHN0eWxlZC5pbWdgXG4gICR7c3R5bGVzLmF2YXRhckltYWdlfTtcbmA7XG5cbmNvbnN0IEF2YXRhclBsYWNlaG9sZGVySWNvbiA9IHN0eWxlZChJY29uKWBcbiAgJHtzdHlsZXMuYXZhdGFySW1hZ2V9O1xuICBoZWlnaHQ6IDMycHg7XG4gIGNvbG9yOiAjMWUyNTMyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuYDtcblxuY29uc3QgQXBwSGVhZGVyU2l0ZUxpbmsgPSBzdHlsZWQuYWBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzdiODI5MDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuYDtcblxuY29uc3QgQXBwSGVhZGVyVGVzdFJlcG9JbmRpY2F0b3IgPSBzdHlsZWQuYWBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzdiODI5MDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuYDtcblxuZnVuY3Rpb24gQXZhdGFyKHsgaW1hZ2VVcmwgfSkge1xuICByZXR1cm4gaW1hZ2VVcmwgPyAoXG4gICAgPEF2YXRhckltYWdlIHNyYz17aW1hZ2VVcmx9IC8+XG4gICkgOiAoXG4gICAgPEF2YXRhclBsYWNlaG9sZGVySWNvbiB0eXBlPVwidXNlclwiIHNpemU9XCJsYXJnZVwiIC8+XG4gICk7XG59XG5cbkF2YXRhci5wcm9wVHlwZXMgPSB7XG4gIGltYWdlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZnVuY3Rpb24gU2V0dGluZ3NEcm9wZG93bih7IGRpc3BsYXlVcmwsIGlzVGVzdFJlcG8sIGltYWdlVXJsLCBvbkxvZ291dENsaWNrLCB0IH0pIHtcbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICB7aXNUZXN0UmVwbyAmJiAoXG4gICAgICAgIDxBcHBIZWFkZXJUZXN0UmVwb0luZGljYXRvclxuICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5kZWNhcGNtcy5vcmcvZG9jcy90ZXN0LWJhY2tlbmRcIlxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgID5cbiAgICAgICAgICBUZXN0IEJhY2tlbmQg4oaXXG4gICAgICAgIDwvQXBwSGVhZGVyVGVzdFJlcG9JbmRpY2F0b3I+XG4gICAgICApfVxuICAgICAge2Rpc3BsYXlVcmwgPyAoXG4gICAgICAgIDxBcHBIZWFkZXJTaXRlTGluayBocmVmPXtkaXNwbGF5VXJsfSB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7c3RyaXBQcm90b2NvbChkaXNwbGF5VXJsKX1cbiAgICAgICAgPC9BcHBIZWFkZXJTaXRlTGluaz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPERyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjUwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTAwcHhcIlxuICAgICAgICBkcm9wZG93blBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8QXZhdGFyRHJvcGRvd25CdXR0b24+XG4gICAgICAgICAgICA8QXZhdGFyIGltYWdlVXJsPXtpbWFnZVVybH0gLz5cbiAgICAgICAgICA8L0F2YXRhckRyb3Bkb3duQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICA8RHJvcGRvd25JdGVtIGxhYmVsPXt0KCd1aS5zZXR0aW5nc0Ryb3Bkb3duLmxvZ091dCcpfSBvbkNsaWNrPXtvbkxvZ291dENsaWNrfSAvPlxuICAgICAgPC9Ecm9wZG93bj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufVxuXG5TZXR0aW5nc0Ryb3Bkb3duLnByb3BUeXBlcyA9IHtcbiAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaXNUZXN0UmVwbzogUHJvcFR5cGVzLmJvb2wsXG4gIGltYWdlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoU2V0dGluZ3NEcm9wZG93bik7XG4iXX0= */",
|
||||
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
||||
});
|
||||
const AvatarImage = /*#__PURE__*/(0, _base.default)("img", {
|
||||
target: "e1gt62yu3",
|
||||
label: "AvatarImage"
|
||||
})(styles.avatarImage, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1VJL1NldHRpbmdzRHJvcGRvd24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0I4QiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9VSS9TZXR0aW5nc0Ryb3Bkb3duLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBJY29uLCBEcm9wZG93biwgRHJvcGRvd25JdGVtLCBEcm9wZG93bkJ1dHRvbiwgY29sb3JzIH0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdHJpcFByb3RvY29sIH0gZnJvbSAnLi4vLi4vbGliL3VybEhlbHBlcic7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgYXZhdGFySW1hZ2U6IGNzc2BcbiAgICB3aWR0aDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xuICBgLFxufTtcblxuY29uc3QgQXZhdGFyRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzFlMjUzMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5gO1xuXG5jb25zdCBBdmF0YXJJbWFnZSA9IHN0eWxlZC5pbWdgXG4gICR7c3R5bGVzLmF2YXRhckltYWdlfTtcbmA7XG5cbmNvbnN0IEF2YXRhclBsYWNlaG9sZGVySWNvbiA9IHN0eWxlZChJY29uKWBcbiAgJHtzdHlsZXMuYXZhdGFySW1hZ2V9O1xuICBoZWlnaHQ6IDMycHg7XG4gIGNvbG9yOiAjMWUyNTMyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuYDtcblxuY29uc3QgQXBwSGVhZGVyU2l0ZUxpbmsgPSBzdHlsZWQuYWBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzdiODI5MDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuYDtcblxuY29uc3QgQXBwSGVhZGVyVGVzdFJlcG9JbmRpY2F0b3IgPSBzdHlsZWQuYWBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzdiODI5MDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuYDtcblxuZnVuY3Rpb24gQXZhdGFyKHsgaW1hZ2VVcmwgfSkge1xuICByZXR1cm4gaW1hZ2VVcmwgPyAoXG4gICAgPEF2YXRhckltYWdlIHNyYz17aW1hZ2VVcmx9IC8+XG4gICkgOiAoXG4gICAgPEF2YXRhclBsYWNlaG9sZGVySWNvbiB0eXBlPVwidXNlclwiIHNpemU9XCJsYXJnZVwiIC8+XG4gICk7XG59XG5cbkF2YXRhci5wcm9wVHlwZXMgPSB7XG4gIGltYWdlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZnVuY3Rpb24gU2V0dGluZ3NEcm9wZG93bih7IGRpc3BsYXlVcmwsIGlzVGVzdFJlcG8sIGltYWdlVXJsLCBvbkxvZ291dENsaWNrLCB0IH0pIHtcbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICB7aXNUZXN0UmVwbyAmJiAoXG4gICAgICAgIDxBcHBIZWFkZXJUZXN0UmVwb0luZGljYXRvclxuICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5kZWNhcGNtcy5vcmcvZG9jcy90ZXN0LWJhY2tlbmRcIlxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgID5cbiAgICAgICAgICBUZXN0IEJhY2tlbmQg4oaXXG4gICAgICAgIDwvQXBwSGVhZGVyVGVzdFJlcG9JbmRpY2F0b3I+XG4gICAgICApfVxuICAgICAge2Rpc3BsYXlVcmwgPyAoXG4gICAgICAgIDxBcHBIZWFkZXJTaXRlTGluayBocmVmPXtkaXNwbGF5VXJsfSB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7c3RyaXBQcm90b2NvbChkaXNwbGF5VXJsKX1cbiAgICAgICAgPC9BcHBIZWFkZXJTaXRlTGluaz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPERyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjUwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTAwcHhcIlxuICAgICAgICBkcm9wZG93blBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8QXZhdGFyRHJvcGRvd25CdXR0b24+XG4gICAgICAgICAgICA8QXZhdGFyIGltYWdlVXJsPXtpbWFnZVVybH0gLz5cbiAgICAgICAgICA8L0F2YXRhckRyb3Bkb3duQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICA8RHJvcGRvd25JdGVtIGxhYmVsPXt0KCd1aS5zZXR0aW5nc0Ryb3Bkb3duLmxvZ091dCcpfSBvbkNsaWNrPXtvbkxvZ291dENsaWNrfSAvPlxuICAgICAgPC9Ecm9wZG93bj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufVxuXG5TZXR0aW5nc0Ryb3Bkb3duLnByb3BUeXBlcyA9IHtcbiAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaXNUZXN0UmVwbzogUHJvcFR5cGVzLmJvb2wsXG4gIGltYWdlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoU2V0dGluZ3NEcm9wZG93bik7XG4iXX0= */"));
|
||||
const AvatarPlaceholderIcon = /*#__PURE__*/(0, _base.default)(_decapCmsUiDefault.Icon, {
|
||||
target: "e1gt62yu2",
|
||||
label: "AvatarPlaceholderIcon"
|
||||
})(styles.avatarImage, ";height:32px;color:#1e2532;background-color:", _decapCmsUiDefault.colors.textFieldBorder, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1VJL1NldHRpbmdzRHJvcGRvd24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEIwQyIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9VSS9TZXR0aW5nc0Ryb3Bkb3duLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBJY29uLCBEcm9wZG93biwgRHJvcGRvd25JdGVtLCBEcm9wZG93bkJ1dHRvbiwgY29sb3JzIH0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdHJpcFByb3RvY29sIH0gZnJvbSAnLi4vLi4vbGliL3VybEhlbHBlcic7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgYXZhdGFySW1hZ2U6IGNzc2BcbiAgICB3aWR0aDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xuICBgLFxufTtcblxuY29uc3QgQXZhdGFyRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzFlMjUzMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5gO1xuXG5jb25zdCBBdmF0YXJJbWFnZSA9IHN0eWxlZC5pbWdgXG4gICR7c3R5bGVzLmF2YXRhckltYWdlfTtcbmA7XG5cbmNvbnN0IEF2YXRhclBsYWNlaG9sZGVySWNvbiA9IHN0eWxlZChJY29uKWBcbiAgJHtzdHlsZXMuYXZhdGFySW1hZ2V9O1xuICBoZWlnaHQ6IDMycHg7XG4gIGNvbG9yOiAjMWUyNTMyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuYDtcblxuY29uc3QgQXBwSGVhZGVyU2l0ZUxpbmsgPSBzdHlsZWQuYWBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzdiODI5MDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuYDtcblxuY29uc3QgQXBwSGVhZGVyVGVzdFJlcG9JbmRpY2F0b3IgPSBzdHlsZWQuYWBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzdiODI5MDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuYDtcblxuZnVuY3Rpb24gQXZhdGFyKHsgaW1hZ2VVcmwgfSkge1xuICByZXR1cm4gaW1hZ2VVcmwgPyAoXG4gICAgPEF2YXRhckltYWdlIHNyYz17aW1hZ2VVcmx9IC8+XG4gICkgOiAoXG4gICAgPEF2YXRhclBsYWNlaG9sZGVySWNvbiB0eXBlPVwidXNlclwiIHNpemU9XCJsYXJnZVwiIC8+XG4gICk7XG59XG5cbkF2YXRhci5wcm9wVHlwZXMgPSB7XG4gIGltYWdlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZnVuY3Rpb24gU2V0dGluZ3NEcm9wZG93bih7IGRpc3BsYXlVcmwsIGlzVGVzdFJlcG8sIGltYWdlVXJsLCBvbkxvZ291dENsaWNrLCB0IH0pIHtcbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICB7aXNUZXN0UmVwbyAmJiAoXG4gICAgICAgIDxBcHBIZWFkZXJUZXN0UmVwb0luZGljYXRvclxuICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5kZWNhcGNtcy5vcmcvZG9jcy90ZXN0LWJhY2tlbmRcIlxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgID5cbiAgICAgICAgICBUZXN0IEJhY2tlbmQg4oaXXG4gICAgICAgIDwvQXBwSGVhZGVyVGVzdFJlcG9JbmRpY2F0b3I+XG4gICAgICApfVxuICAgICAge2Rpc3BsYXlVcmwgPyAoXG4gICAgICAgIDxBcHBIZWFkZXJTaXRlTGluayBocmVmPXtkaXNwbGF5VXJsfSB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7c3RyaXBQcm90b2NvbChkaXNwbGF5VXJsKX1cbiAgICAgICAgPC9BcHBIZWFkZXJTaXRlTGluaz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPERyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjUwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTAwcHhcIlxuICAgICAgICBkcm9wZG93blBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8QXZhdGFyRHJvcGRvd25CdXR0b24+XG4gICAgICAgICAgICA8QXZhdGFyIGltYWdlVXJsPXtpbWFnZVVybH0gLz5cbiAgICAgICAgICA8L0F2YXRhckRyb3Bkb3duQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICA8RHJvcGRvd25JdGVtIGxhYmVsPXt0KCd1aS5zZXR0aW5nc0Ryb3Bkb3duLmxvZ091dCcpfSBvbkNsaWNrPXtvbkxvZ291dENsaWNrfSAvPlxuICAgICAgPC9Ecm9wZG93bj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufVxuXG5TZXR0aW5nc0Ryb3Bkb3duLnByb3BUeXBlcyA9IHtcbiAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaXNUZXN0UmVwbzogUHJvcFR5cGVzLmJvb2wsXG4gIGltYWdlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoU2V0dGluZ3NEcm9wZG93bik7XG4iXX0= */"));
|
||||
const AppHeaderSiteLink = /*#__PURE__*/(0, _base.default)("a", {
|
||||
target: "e1gt62yu1",
|
||||
label: "AppHeaderSiteLink"
|
||||
})(process.env.NODE_ENV === "production" ? {
|
||||
name: "1uk00au",
|
||||
styles: "font-size:14px;font-weight:400;color:#7b8290;padding:10px 16px"
|
||||
} : {
|
||||
name: "1uk00au",
|
||||
styles: "font-size:14px;font-weight:400;color:#7b8290;padding:10px 16px",
|
||||
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1VJL1NldHRpbmdzRHJvcGRvd24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUNrQyIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9VSS9TZXR0aW5nc0Ryb3Bkb3duLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBJY29uLCBEcm9wZG93biwgRHJvcGRvd25JdGVtLCBEcm9wZG93bkJ1dHRvbiwgY29sb3JzIH0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdHJpcFByb3RvY29sIH0gZnJvbSAnLi4vLi4vbGliL3VybEhlbHBlcic7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgYXZhdGFySW1hZ2U6IGNzc2BcbiAgICB3aWR0aDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xuICBgLFxufTtcblxuY29uc3QgQXZhdGFyRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzFlMjUzMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5gO1xuXG5jb25zdCBBdmF0YXJJbWFnZSA9IHN0eWxlZC5pbWdgXG4gICR7c3R5bGVzLmF2YXRhckltYWdlfTtcbmA7XG5cbmNvbnN0IEF2YXRhclBsYWNlaG9sZGVySWNvbiA9IHN0eWxlZChJY29uKWBcbiAgJHtzdHlsZXMuYXZhdGFySW1hZ2V9O1xuICBoZWlnaHQ6IDMycHg7XG4gIGNvbG9yOiAjMWUyNTMyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuYDtcblxuY29uc3QgQXBwSGVhZGVyU2l0ZUxpbmsgPSBzdHlsZWQuYWBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzdiODI5MDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuYDtcblxuY29uc3QgQXBwSGVhZGVyVGVzdFJlcG9JbmRpY2F0b3IgPSBzdHlsZWQuYWBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzdiODI5MDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuYDtcblxuZnVuY3Rpb24gQXZhdGFyKHsgaW1hZ2VVcmwgfSkge1xuICByZXR1cm4gaW1hZ2VVcmwgPyAoXG4gICAgPEF2YXRhckltYWdlIHNyYz17aW1hZ2VVcmx9IC8+XG4gICkgOiAoXG4gICAgPEF2YXRhclBsYWNlaG9sZGVySWNvbiB0eXBlPVwidXNlclwiIHNpemU9XCJsYXJnZVwiIC8+XG4gICk7XG59XG5cbkF2YXRhci5wcm9wVHlwZXMgPSB7XG4gIGltYWdlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZnVuY3Rpb24gU2V0dGluZ3NEcm9wZG93bih7IGRpc3BsYXlVcmwsIGlzVGVzdFJlcG8sIGltYWdlVXJsLCBvbkxvZ291dENsaWNrLCB0IH0pIHtcbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICB7aXNUZXN0UmVwbyAmJiAoXG4gICAgICAgIDxBcHBIZWFkZXJUZXN0UmVwb0luZGljYXRvclxuICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5kZWNhcGNtcy5vcmcvZG9jcy90ZXN0LWJhY2tlbmRcIlxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgID5cbiAgICAgICAgICBUZXN0IEJhY2tlbmQg4oaXXG4gICAgICAgIDwvQXBwSGVhZGVyVGVzdFJlcG9JbmRpY2F0b3I+XG4gICAgICApfVxuICAgICAge2Rpc3BsYXlVcmwgPyAoXG4gICAgICAgIDxBcHBIZWFkZXJTaXRlTGluayBocmVmPXtkaXNwbGF5VXJsfSB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7c3RyaXBQcm90b2NvbChkaXNwbGF5VXJsKX1cbiAgICAgICAgPC9BcHBIZWFkZXJTaXRlTGluaz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPERyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjUwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTAwcHhcIlxuICAgICAgICBkcm9wZG93blBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8QXZhdGFyRHJvcGRvd25CdXR0b24+XG4gICAgICAgICAgICA8QXZhdGFyIGltYWdlVXJsPXtpbWFnZVVybH0gLz5cbiAgICAgICAgICA8L0F2YXRhckRyb3Bkb3duQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICA8RHJvcGRvd25JdGVtIGxhYmVsPXt0KCd1aS5zZXR0aW5nc0Ryb3Bkb3duLmxvZ091dCcpfSBvbkNsaWNrPXtvbkxvZ291dENsaWNrfSAvPlxuICAgICAgPC9Ecm9wZG93bj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufVxuXG5TZXR0aW5nc0Ryb3Bkb3duLnByb3BUeXBlcyA9IHtcbiAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaXNUZXN0UmVwbzogUHJvcFR5cGVzLmJvb2wsXG4gIGltYWdlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoU2V0dGluZ3NEcm9wZG93bik7XG4iXX0= */",
|
||||
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
||||
});
|
||||
const AppHeaderTestRepoIndicator = /*#__PURE__*/(0, _base.default)("a", {
|
||||
target: "e1gt62yu0",
|
||||
label: "AppHeaderTestRepoIndicator"
|
||||
})(process.env.NODE_ENV === "production" ? {
|
||||
name: "1uk00au",
|
||||
styles: "font-size:14px;font-weight:400;color:#7b8290;padding:10px 16px"
|
||||
} : {
|
||||
name: "1uk00au",
|
||||
styles: "font-size:14px;font-weight:400;color:#7b8290;padding:10px 16px",
|
||||
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1VJL1NldHRpbmdzRHJvcGRvd24uanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEMyQyIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9VSS9TZXR0aW5nc0Ryb3Bkb3duLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICdyZWFjdC1wb2x5Z2xvdCc7XG5pbXBvcnQgeyBJY29uLCBEcm9wZG93biwgRHJvcGRvd25JdGVtLCBEcm9wZG93bkJ1dHRvbiwgY29sb3JzIH0gZnJvbSAnZGVjYXAtY21zLXVpLWRlZmF1bHQnO1xuXG5pbXBvcnQgeyBzdHJpcFByb3RvY29sIH0gZnJvbSAnLi4vLi4vbGliL3VybEhlbHBlcic7XG5cbmNvbnN0IHN0eWxlcyA9IHtcbiAgYXZhdGFySW1hZ2U6IGNzc2BcbiAgICB3aWR0aDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xuICBgLFxufTtcblxuY29uc3QgQXZhdGFyRHJvcGRvd25CdXR0b24gPSBzdHlsZWQoRHJvcGRvd25CdXR0b24pYFxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDhweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogIzFlMjUzMjtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5gO1xuXG5jb25zdCBBdmF0YXJJbWFnZSA9IHN0eWxlZC5pbWdgXG4gICR7c3R5bGVzLmF2YXRhckltYWdlfTtcbmA7XG5cbmNvbnN0IEF2YXRhclBsYWNlaG9sZGVySWNvbiA9IHN0eWxlZChJY29uKWBcbiAgJHtzdHlsZXMuYXZhdGFySW1hZ2V9O1xuICBoZWlnaHQ6IDMycHg7XG4gIGNvbG9yOiAjMWUyNTMyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke2NvbG9ycy50ZXh0RmllbGRCb3JkZXJ9O1xuYDtcblxuY29uc3QgQXBwSGVhZGVyU2l0ZUxpbmsgPSBzdHlsZWQuYWBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzdiODI5MDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuYDtcblxuY29uc3QgQXBwSGVhZGVyVGVzdFJlcG9JbmRpY2F0b3IgPSBzdHlsZWQuYWBcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBjb2xvcjogIzdiODI5MDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuYDtcblxuZnVuY3Rpb24gQXZhdGFyKHsgaW1hZ2VVcmwgfSkge1xuICByZXR1cm4gaW1hZ2VVcmwgPyAoXG4gICAgPEF2YXRhckltYWdlIHNyYz17aW1hZ2VVcmx9IC8+XG4gICkgOiAoXG4gICAgPEF2YXRhclBsYWNlaG9sZGVySWNvbiB0eXBlPVwidXNlclwiIHNpemU9XCJsYXJnZVwiIC8+XG4gICk7XG59XG5cbkF2YXRhci5wcm9wVHlwZXMgPSB7XG4gIGltYWdlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZnVuY3Rpb24gU2V0dGluZ3NEcm9wZG93bih7IGRpc3BsYXlVcmwsIGlzVGVzdFJlcG8sIGltYWdlVXJsLCBvbkxvZ291dENsaWNrLCB0IH0pIHtcbiAgcmV0dXJuIChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICB7aXNUZXN0UmVwbyAmJiAoXG4gICAgICAgIDxBcHBIZWFkZXJUZXN0UmVwb0luZGljYXRvclxuICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5kZWNhcGNtcy5vcmcvZG9jcy90ZXN0LWJhY2tlbmRcIlxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgID5cbiAgICAgICAgICBUZXN0IEJhY2tlbmQg4oaXXG4gICAgICAgIDwvQXBwSGVhZGVyVGVzdFJlcG9JbmRpY2F0b3I+XG4gICAgICApfVxuICAgICAge2Rpc3BsYXlVcmwgPyAoXG4gICAgICAgIDxBcHBIZWFkZXJTaXRlTGluayBocmVmPXtkaXNwbGF5VXJsfSB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAgICB7c3RyaXBQcm90b2NvbChkaXNwbGF5VXJsKX1cbiAgICAgICAgPC9BcHBIZWFkZXJTaXRlTGluaz5cbiAgICAgICkgOiBudWxsfVxuICAgICAgPERyb3Bkb3duXG4gICAgICAgIGRyb3Bkb3duVG9wT3ZlcmxhcD1cIjUwcHhcIlxuICAgICAgICBkcm9wZG93bldpZHRoPVwiMTAwcHhcIlxuICAgICAgICBkcm9wZG93blBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICByZW5kZXJCdXR0b249eygpID0+IChcbiAgICAgICAgICA8QXZhdGFyRHJvcGRvd25CdXR0b24+XG4gICAgICAgICAgICA8QXZhdGFyIGltYWdlVXJsPXtpbWFnZVVybH0gLz5cbiAgICAgICAgICA8L0F2YXRhckRyb3Bkb3duQnV0dG9uPlxuICAgICAgICApfVxuICAgICAgPlxuICAgICAgICA8RHJvcGRvd25JdGVtIGxhYmVsPXt0KCd1aS5zZXR0aW5nc0Ryb3Bkb3duLmxvZ091dCcpfSBvbkNsaWNrPXtvbkxvZ291dENsaWNrfSAvPlxuICAgICAgPC9Ecm9wZG93bj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufVxuXG5TZXR0aW5nc0Ryb3Bkb3duLnByb3BUeXBlcyA9IHtcbiAgZGlzcGxheVVybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgaXNUZXN0UmVwbzogUHJvcFR5cGVzLmJvb2wsXG4gIGltYWdlVXJsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkxvZ291dENsaWNrOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0OiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgdHJhbnNsYXRlKCkoU2V0dGluZ3NEcm9wZG93bik7XG4iXX0= */",
|
||||
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
||||
});
|
||||
function Avatar({
|
||||
imageUrl
|
||||
}) {
|
||||
return imageUrl ? (0, _react2.jsx)(AvatarImage, {
|
||||
src: imageUrl
|
||||
}) : (0, _react2.jsx)(AvatarPlaceholderIcon, {
|
||||
type: "user",
|
||||
size: "large"
|
||||
});
|
||||
}
|
||||
Avatar.propTypes = {
|
||||
imageUrl: _propTypes.default.string
|
||||
};
|
||||
function SettingsDropdown({
|
||||
displayUrl,
|
||||
isTestRepo,
|
||||
imageUrl,
|
||||
onLogoutClick,
|
||||
t
|
||||
}) {
|
||||
return (0, _react2.jsx)(_react.default.Fragment, null, isTestRepo && (0, _react2.jsx)(AppHeaderTestRepoIndicator, {
|
||||
href: "https://www.decapcms.org/docs/test-backend",
|
||||
target: "_blank",
|
||||
rel: "noopener noreferrer"
|
||||
}, "Test Backend \u2197"), displayUrl ? (0, _react2.jsx)(AppHeaderSiteLink, {
|
||||
href: displayUrl,
|
||||
target: "_blank"
|
||||
}, (0, _urlHelper.stripProtocol)(displayUrl)) : null, (0, _react2.jsx)(_decapCmsUiDefault.Dropdown, {
|
||||
dropdownTopOverlap: "50px",
|
||||
dropdownWidth: "100px",
|
||||
dropdownPosition: "right",
|
||||
renderButton: () => (0, _react2.jsx)(AvatarDropdownButton, null, (0, _react2.jsx)(Avatar, {
|
||||
imageUrl: imageUrl
|
||||
}))
|
||||
}, (0, _react2.jsx)(_decapCmsUiDefault.DropdownItem, {
|
||||
label: t('ui.settingsDropdown.logOut'),
|
||||
onClick: onLogoutClick
|
||||
})));
|
||||
}
|
||||
SettingsDropdown.propTypes = {
|
||||
displayUrl: _propTypes.default.string,
|
||||
isTestRepo: _propTypes.default.bool,
|
||||
imageUrl: _propTypes.default.string,
|
||||
onLogoutClick: _propTypes.default.func.isRequired,
|
||||
t: _propTypes.default.func.isRequired
|
||||
};
|
||||
var _default = exports.default = (0, _reactPolyglot.translate)()(SettingsDropdown);
|
||||
60
node_modules/decap-cms-core/dist/esm/components/UI/index.js
generated
vendored
Normal file
60
node_modules/decap-cms-core/dist/esm/components/UI/index.js
generated
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "DragSource", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _DragDrop.DragSource;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "DropTarget", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _DragDrop.DropTarget;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "ErrorBoundary", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _ErrorBoundary.default;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "FileUploadButton", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _FileUploadButton.FileUploadButton;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "HTML5DragDrop", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _DragDrop.HTML5DragDrop;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "Modal", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _Modal.Modal;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "Notifications", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _Notifications.default;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "SettingsDropdown", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _SettingsDropdown.default;
|
||||
}
|
||||
});
|
||||
var _DragDrop = require("./DragDrop");
|
||||
var _ErrorBoundary = _interopRequireDefault(require("./ErrorBoundary"));
|
||||
var _FileUploadButton = require("./FileUploadButton");
|
||||
var _Modal = require("./Modal");
|
||||
var _Notifications = _interopRequireDefault(require("./Notifications"));
|
||||
var _SettingsDropdown = _interopRequireDefault(require("./SettingsDropdown"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
143
node_modules/decap-cms-core/dist/esm/components/Workflow/Workflow.js
generated
vendored
Normal file
143
node_modules/decap-cms-core/dist/esm/components/Workflow/Workflow.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
136
node_modules/decap-cms-core/dist/esm/components/Workflow/WorkflowCard.js
generated
vendored
Normal file
136
node_modules/decap-cms-core/dist/esm/components/Workflow/WorkflowCard.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
218
node_modules/decap-cms-core/dist/esm/components/Workflow/WorkflowList.js
generated
vendored
Normal file
218
node_modules/decap-cms-core/dist/esm/components/Workflow/WorkflowList.js
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
8
node_modules/decap-cms-core/dist/esm/constants/collectionTypes.js
generated
vendored
Normal file
8
node_modules/decap-cms-core/dist/esm/constants/collectionTypes.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.FOLDER = exports.FILES = void 0;
|
||||
const FILES = exports.FILES = 'file_based_collection';
|
||||
const FOLDER = exports.FOLDER = 'folder_based_collection';
|
||||
8
node_modules/decap-cms-core/dist/esm/constants/collectionViews.js
generated
vendored
Normal file
8
node_modules/decap-cms-core/dist/esm/constants/collectionViews.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.VIEW_STYLE_LIST = exports.VIEW_STYLE_GRID = void 0;
|
||||
const VIEW_STYLE_LIST = exports.VIEW_STYLE_LIST = 'VIEW_STYLE_LIST';
|
||||
const VIEW_STYLE_GRID = exports.VIEW_STYLE_GRID = 'VIEW_STYLE_GRID';
|
||||
8
node_modules/decap-cms-core/dist/esm/constants/commitProps.js
generated
vendored
Normal file
8
node_modules/decap-cms-core/dist/esm/constants/commitProps.js
generated
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.COMMIT_DATE = exports.COMMIT_AUTHOR = void 0;
|
||||
const COMMIT_AUTHOR = exports.COMMIT_AUTHOR = 'commit_author';
|
||||
const COMMIT_DATE = exports.COMMIT_DATE = 'commit_date';
|
||||
593
node_modules/decap-cms-core/dist/esm/constants/configSchema.js
generated
vendored
Normal file
593
node_modules/decap-cms-core/dist/esm/constants/configSchema.js
generated
vendored
Normal file
@@ -0,0 +1,593 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.validateConfig = validateConfig;
|
||||
var _ajv = _interopRequireDefault(require("ajv"));
|
||||
var _keywords = require("ajv-keywords/dist/keywords");
|
||||
var _ajvErrors = _interopRequireDefault(require("ajv-errors"));
|
||||
var _uuid = require("uuid");
|
||||
var _formats = require("../formats/formats");
|
||||
var _registry = require("../lib/registry");
|
||||
var _i18n = require("../lib/i18n");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function _extendableBuiltin(cls) {
|
||||
function ExtendableBuiltin() {
|
||||
var instance = Reflect.construct(cls, Array.from(arguments));
|
||||
Object.setPrototypeOf(instance, Object.getPrototypeOf(this));
|
||||
return instance;
|
||||
}
|
||||
ExtendableBuiltin.prototype = Object.create(cls.prototype, {
|
||||
constructor: {
|
||||
value: cls,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
if (Object.setPrototypeOf) {
|
||||
Object.setPrototypeOf(ExtendableBuiltin, cls);
|
||||
} else {
|
||||
ExtendableBuiltin.__proto__ = cls;
|
||||
}
|
||||
return ExtendableBuiltin;
|
||||
}
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const localeType = {
|
||||
type: 'string',
|
||||
minLength: 2,
|
||||
maxLength: 10,
|
||||
pattern: '^[a-zA-Z-_]+$'
|
||||
};
|
||||
const i18n = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
structure: {
|
||||
type: 'string',
|
||||
enum: Object.values(_i18n.I18N_STRUCTURE)
|
||||
},
|
||||
locales: {
|
||||
type: 'array',
|
||||
minItems: 1,
|
||||
items: localeType,
|
||||
uniqueItems: true
|
||||
},
|
||||
default_locale: localeType
|
||||
}
|
||||
};
|
||||
const i18nRoot = _objectSpread(_objectSpread({}, i18n), {}, {
|
||||
required: ['structure', 'locales']
|
||||
});
|
||||
const i18nCollection = {
|
||||
oneOf: [{
|
||||
type: 'boolean'
|
||||
}, i18n]
|
||||
};
|
||||
const i18nField = {
|
||||
oneOf: [{
|
||||
type: 'boolean'
|
||||
}, {
|
||||
type: 'string',
|
||||
enum: Object.values(_i18n.I18N_FIELD)
|
||||
}]
|
||||
};
|
||||
|
||||
/**
|
||||
* Config for fields in both file and folder collections.
|
||||
*/
|
||||
function fieldsConfig() {
|
||||
const id = (0, _uuid.v4)();
|
||||
return {
|
||||
$id: `fields_${id}`,
|
||||
type: 'array',
|
||||
minItems: 1,
|
||||
items: {
|
||||
// ------- Each field: -------
|
||||
$id: `field_${id}`,
|
||||
type: 'object',
|
||||
properties: {
|
||||
name: {
|
||||
type: 'string'
|
||||
},
|
||||
label: {
|
||||
type: 'string'
|
||||
},
|
||||
widget: {
|
||||
type: 'string'
|
||||
},
|
||||
required: {
|
||||
type: 'boolean'
|
||||
},
|
||||
i18n: i18nField,
|
||||
hint: {
|
||||
type: 'string'
|
||||
},
|
||||
pattern: {
|
||||
type: 'array',
|
||||
minItems: 2,
|
||||
items: [{
|
||||
oneOf: [{
|
||||
type: 'string'
|
||||
}, {
|
||||
instanceof: 'RegExp'
|
||||
}]
|
||||
}, {
|
||||
type: 'string'
|
||||
}]
|
||||
},
|
||||
field: {
|
||||
$ref: `field_${id}`
|
||||
},
|
||||
fields: {
|
||||
$ref: `fields_${id}`
|
||||
},
|
||||
types: {
|
||||
$ref: `fields_${id}`
|
||||
}
|
||||
},
|
||||
select: {
|
||||
$data: '0/widget'
|
||||
},
|
||||
selectCases: _objectSpread({}, getWidgetSchemas()),
|
||||
required: ['name']
|
||||
},
|
||||
uniqueItemProperties: ['name']
|
||||
};
|
||||
}
|
||||
const viewFilters = {
|
||||
type: 'array',
|
||||
minItems: 1,
|
||||
items: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
label: {
|
||||
type: 'string'
|
||||
},
|
||||
field: {
|
||||
type: 'string'
|
||||
},
|
||||
pattern: {
|
||||
oneOf: [{
|
||||
type: 'boolean'
|
||||
}, {
|
||||
type: 'string'
|
||||
}]
|
||||
}
|
||||
},
|
||||
additionalProperties: false,
|
||||
required: ['label', 'field', 'pattern']
|
||||
}
|
||||
};
|
||||
const viewGroups = {
|
||||
type: 'array',
|
||||
minItems: 1,
|
||||
items: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
label: {
|
||||
type: 'string'
|
||||
},
|
||||
field: {
|
||||
type: 'string'
|
||||
},
|
||||
pattern: {
|
||||
type: 'string'
|
||||
}
|
||||
},
|
||||
additionalProperties: false,
|
||||
required: ['label', 'field']
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* The schema had to be wrapped in a function to
|
||||
* fix a circular dependency problem for WebPack,
|
||||
* where the imports get resolved asynchronously.
|
||||
*/
|
||||
function getConfigSchema() {
|
||||
return {
|
||||
type: 'object',
|
||||
properties: {
|
||||
backend: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
name: {
|
||||
type: 'string',
|
||||
examples: ['test-repo']
|
||||
},
|
||||
auth_scope: {
|
||||
type: 'string',
|
||||
examples: ['repo', 'public_repo'],
|
||||
enum: ['repo', 'public_repo']
|
||||
},
|
||||
cms_label_prefix: {
|
||||
type: 'string',
|
||||
minLength: 1
|
||||
},
|
||||
open_authoring: {
|
||||
type: 'boolean',
|
||||
examples: [true]
|
||||
}
|
||||
},
|
||||
required: ['name']
|
||||
},
|
||||
local_backend: {
|
||||
oneOf: [{
|
||||
type: 'boolean'
|
||||
}, {
|
||||
type: 'object',
|
||||
properties: {
|
||||
url: {
|
||||
type: 'string',
|
||||
examples: ['http://localhost:8081/api/v1']
|
||||
},
|
||||
allowed_hosts: {
|
||||
type: 'array',
|
||||
items: {
|
||||
type: 'string'
|
||||
}
|
||||
}
|
||||
},
|
||||
additionalProperties: false
|
||||
}]
|
||||
},
|
||||
locale: {
|
||||
type: 'string',
|
||||
examples: ['en', 'fr', 'de']
|
||||
},
|
||||
i18n: i18nRoot,
|
||||
site_url: {
|
||||
type: 'string',
|
||||
examples: ['https://example.com']
|
||||
},
|
||||
display_url: {
|
||||
type: 'string',
|
||||
examples: ['https://example.com']
|
||||
},
|
||||
logo_url: {
|
||||
type: 'string',
|
||||
examples: ['https://example.com/images/logo.svg']
|
||||
},
|
||||
show_preview_links: {
|
||||
type: 'boolean'
|
||||
},
|
||||
media_folder: {
|
||||
type: 'string',
|
||||
examples: ['assets/uploads']
|
||||
},
|
||||
public_folder: {
|
||||
type: 'string',
|
||||
examples: ['/uploads']
|
||||
},
|
||||
media_folder_relative: {
|
||||
type: 'boolean'
|
||||
},
|
||||
media_library: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
name: {
|
||||
type: 'string',
|
||||
examples: ['uploadcare']
|
||||
},
|
||||
config: {
|
||||
type: 'object'
|
||||
}
|
||||
},
|
||||
required: ['name']
|
||||
},
|
||||
publish_mode: {
|
||||
type: 'string',
|
||||
enum: ['simple', 'editorial_workflow', ''],
|
||||
examples: ['editorial_workflow']
|
||||
},
|
||||
slug: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
encoding: {
|
||||
type: 'string',
|
||||
enum: ['unicode', 'ascii']
|
||||
},
|
||||
clean_accents: {
|
||||
type: 'boolean'
|
||||
}
|
||||
}
|
||||
},
|
||||
collections: {
|
||||
type: 'array',
|
||||
minItems: 1,
|
||||
items: {
|
||||
// ------- Each collection: -------
|
||||
type: 'object',
|
||||
properties: {
|
||||
name: {
|
||||
type: 'string'
|
||||
},
|
||||
label: {
|
||||
type: 'string'
|
||||
},
|
||||
label_singular: {
|
||||
type: 'string'
|
||||
},
|
||||
description: {
|
||||
type: 'string'
|
||||
},
|
||||
folder: {
|
||||
type: 'string'
|
||||
},
|
||||
files: {
|
||||
type: 'array',
|
||||
items: {
|
||||
// ------- Each file: -------
|
||||
type: 'object',
|
||||
properties: {
|
||||
name: {
|
||||
type: 'string'
|
||||
},
|
||||
label: {
|
||||
type: 'string'
|
||||
},
|
||||
label_singular: {
|
||||
type: 'string'
|
||||
},
|
||||
description: {
|
||||
type: 'string'
|
||||
},
|
||||
file: {
|
||||
type: 'string'
|
||||
},
|
||||
preview_path: {
|
||||
type: 'string'
|
||||
},
|
||||
preview_path_date_field: {
|
||||
type: 'string'
|
||||
},
|
||||
fields: fieldsConfig()
|
||||
},
|
||||
required: ['name', 'label', 'file', 'fields']
|
||||
},
|
||||
uniqueItemProperties: ['name']
|
||||
},
|
||||
identifier_field: {
|
||||
type: 'string'
|
||||
},
|
||||
summary: {
|
||||
type: 'string'
|
||||
},
|
||||
slug: {
|
||||
type: 'string'
|
||||
},
|
||||
path: {
|
||||
type: 'string'
|
||||
},
|
||||
preview_path: {
|
||||
type: 'string'
|
||||
},
|
||||
preview_path_date_field: {
|
||||
type: 'string'
|
||||
},
|
||||
create: {
|
||||
type: 'boolean'
|
||||
},
|
||||
publish: {
|
||||
type: 'boolean'
|
||||
},
|
||||
hide: {
|
||||
type: 'boolean'
|
||||
},
|
||||
editor: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
preview: {
|
||||
type: 'boolean'
|
||||
}
|
||||
}
|
||||
},
|
||||
format: {
|
||||
type: 'string'
|
||||
},
|
||||
extension: {
|
||||
type: 'string'
|
||||
},
|
||||
frontmatter_delimiter: {
|
||||
type: ['string', 'array'],
|
||||
minItems: 2,
|
||||
maxItems: 2,
|
||||
items: {
|
||||
type: 'string'
|
||||
}
|
||||
},
|
||||
fields: fieldsConfig(),
|
||||
sortable_fields: {
|
||||
type: 'array',
|
||||
items: {
|
||||
type: 'string'
|
||||
}
|
||||
},
|
||||
sortableFields: {
|
||||
type: 'array',
|
||||
items: {
|
||||
type: 'string'
|
||||
}
|
||||
},
|
||||
view_filters: viewFilters,
|
||||
view_groups: viewGroups,
|
||||
nested: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
depth: {
|
||||
type: 'number',
|
||||
minimum: 1,
|
||||
maximum: 1000
|
||||
},
|
||||
summary: {
|
||||
type: 'string'
|
||||
}
|
||||
},
|
||||
required: ['depth']
|
||||
},
|
||||
meta: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
path: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
label: {
|
||||
type: 'string'
|
||||
},
|
||||
widget: {
|
||||
type: 'string'
|
||||
},
|
||||
index_file: {
|
||||
type: 'string'
|
||||
}
|
||||
},
|
||||
required: ['label', 'widget', 'index_file']
|
||||
}
|
||||
},
|
||||
additionalProperties: false,
|
||||
minProperties: 1
|
||||
},
|
||||
i18n: i18nCollection
|
||||
},
|
||||
required: ['name', 'label'],
|
||||
oneOf: [{
|
||||
required: ['files']
|
||||
}, {
|
||||
required: ['folder', 'fields']
|
||||
}],
|
||||
not: {
|
||||
required: ['sortable_fields', 'sortableFields']
|
||||
},
|
||||
if: {
|
||||
required: ['extension']
|
||||
},
|
||||
then: {
|
||||
// Cannot infer format from extension.
|
||||
if: {
|
||||
properties: {
|
||||
extension: {
|
||||
enum: Object.keys(_formats.extensionFormatters)
|
||||
}
|
||||
}
|
||||
},
|
||||
else: {
|
||||
required: ['format']
|
||||
}
|
||||
},
|
||||
dependencies: {
|
||||
frontmatter_delimiter: {
|
||||
properties: {
|
||||
format: {
|
||||
enum: _formats.frontmatterFormats
|
||||
}
|
||||
},
|
||||
required: ['format']
|
||||
}
|
||||
}
|
||||
},
|
||||
uniqueItemProperties: ['name']
|
||||
},
|
||||
editor: {
|
||||
type: 'object',
|
||||
properties: {
|
||||
preview: {
|
||||
type: 'boolean'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
required: ['backend', 'collections'],
|
||||
anyOf: [{
|
||||
required: ['media_folder']
|
||||
}, {
|
||||
required: ['media_library']
|
||||
}]
|
||||
};
|
||||
}
|
||||
function getWidgetSchemas() {
|
||||
const schemas = (0, _registry.getWidgets)().map(widget => ({
|
||||
[widget.name]: widget.schema
|
||||
}));
|
||||
return Object.assign(...schemas);
|
||||
}
|
||||
class ConfigError extends _extendableBuiltin(Error) {
|
||||
constructor(errors, ...args) {
|
||||
const message = errors.map(({
|
||||
message,
|
||||
instancePath
|
||||
}) => {
|
||||
const dotPath = instancePath.slice(1).split('/').map(seg => seg.match(/^\d+$/) ? `[${seg}]` : `.${seg}`).join('').slice(1);
|
||||
return `${dotPath ? `'${dotPath}'` : 'config'} ${message}`;
|
||||
}).join('\n');
|
||||
super(message, ...args);
|
||||
this.errors = errors;
|
||||
this.message = message;
|
||||
}
|
||||
toString() {
|
||||
return this.message;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* `validateConfig` is a pure function. It does not mutate
|
||||
* the config that is passed in.
|
||||
*/
|
||||
function validateConfig(config) {
|
||||
const ajv = new _ajv.default({
|
||||
allErrors: true,
|
||||
$data: true,
|
||||
strict: false
|
||||
});
|
||||
(0, _keywords.uniqueItemProperties)(ajv);
|
||||
(0, _keywords.select)(ajv);
|
||||
(0, _keywords.instanceof)(ajv);
|
||||
(0, _keywords.prohibited)(ajv);
|
||||
(0, _ajvErrors.default)(ajv);
|
||||
const valid = ajv.validate(getConfigSchema(), config);
|
||||
if (!valid) {
|
||||
const errors = ajv.errors.map(e => {
|
||||
switch (e.keyword) {
|
||||
// TODO: remove after https://github.com/ajv-validator/ajv-keywords/pull/123 is merged
|
||||
case 'uniqueItemProperties':
|
||||
{
|
||||
const path = e.instancePath || '';
|
||||
let newError = e;
|
||||
if (path.endsWith('/fields')) {
|
||||
newError = _objectSpread(_objectSpread({}, e), {}, {
|
||||
message: 'fields names must be unique'
|
||||
});
|
||||
} else if (path.endsWith('/files')) {
|
||||
newError = _objectSpread(_objectSpread({}, e), {}, {
|
||||
message: 'files names must be unique'
|
||||
});
|
||||
} else if (path.endsWith('/collections')) {
|
||||
newError = _objectSpread(_objectSpread({}, e), {}, {
|
||||
message: 'collections names must be unique'
|
||||
});
|
||||
}
|
||||
return newError;
|
||||
}
|
||||
case 'instanceof':
|
||||
{
|
||||
const path = e.instancePath || '';
|
||||
let newError = e;
|
||||
if (/fields\/\d+\/pattern\/\d+/.test(path)) {
|
||||
newError = _objectSpread(_objectSpread({}, e), {}, {
|
||||
message: 'must be a regular expression'
|
||||
});
|
||||
}
|
||||
return newError;
|
||||
}
|
||||
default:
|
||||
return e;
|
||||
}
|
||||
});
|
||||
console.error('Config Errors', errors);
|
||||
throw new ConfigError(errors);
|
||||
}
|
||||
}
|
||||
64
node_modules/decap-cms-core/dist/esm/constants/fieldInference.js
generated
vendored
Normal file
64
node_modules/decap-cms-core/dist/esm/constants/fieldInference.js
generated
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.SORTABLE_FIELDS = exports.INFERABLE_FIELDS = exports.IDENTIFIER_FIELDS = void 0;
|
||||
var _react = _interopRequireDefault(require("react"));
|
||||
var _react2 = require("@emotion/react");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
const IDENTIFIER_FIELDS = exports.IDENTIFIER_FIELDS = ['title', 'path'];
|
||||
const SORTABLE_FIELDS = exports.SORTABLE_FIELDS = ['title', 'date', 'author', 'description'];
|
||||
const INFERABLE_FIELDS = exports.INFERABLE_FIELDS = {
|
||||
title: {
|
||||
type: 'string',
|
||||
secondaryTypes: [],
|
||||
synonyms: ['title', 'name', 'label', 'headline', 'header'],
|
||||
defaultPreview: value => (0, _react2.jsx)("h1", null, value),
|
||||
// eslint-disable-line react/display-name
|
||||
fallbackToFirstField: true,
|
||||
showError: true
|
||||
},
|
||||
shortTitle: {
|
||||
type: 'string',
|
||||
secondaryTypes: [],
|
||||
synonyms: ['short_title', 'shortTitle', 'short'],
|
||||
defaultPreview: value => (0, _react2.jsx)("h2", null, value),
|
||||
// eslint-disable-line react/display-name
|
||||
fallbackToFirstField: false,
|
||||
showError: false
|
||||
},
|
||||
author: {
|
||||
type: 'string',
|
||||
secondaryTypes: [],
|
||||
synonyms: ['author', 'name', 'by', 'byline', 'owner'],
|
||||
defaultPreview: value => (0, _react2.jsx)("strong", null, value),
|
||||
// eslint-disable-line react/display-name
|
||||
fallbackToFirstField: false,
|
||||
showError: false
|
||||
},
|
||||
date: {
|
||||
type: 'datetime',
|
||||
secondaryTypes: ['date'],
|
||||
synonyms: ['date', 'publishDate', 'publish_date'],
|
||||
defaultPreview: value => value,
|
||||
fallbackToFirstField: false,
|
||||
showError: false
|
||||
},
|
||||
description: {
|
||||
type: 'string',
|
||||
secondaryTypes: ['text', 'markdown'],
|
||||
synonyms: ['shortDescription', 'short_description', 'shortdescription', 'description', 'intro', 'introduction', 'brief', 'content', 'biography', 'bio', 'summary'],
|
||||
defaultPreview: value => value,
|
||||
fallbackToFirstField: false,
|
||||
showError: false
|
||||
},
|
||||
image: {
|
||||
type: 'image',
|
||||
secondaryTypes: [],
|
||||
synonyms: ['image', 'thumbnail', 'thumb', 'picture', 'avatar', 'photo', 'cover', 'hero', 'logo'],
|
||||
defaultPreview: value => value,
|
||||
fallbackToFirstField: false,
|
||||
showError: false
|
||||
}
|
||||
};
|
||||
23
node_modules/decap-cms-core/dist/esm/constants/publishModes.js
generated
vendored
Normal file
23
node_modules/decap-cms-core/dist/esm/constants/publishModes.js
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.statusDescriptions = exports.status = exports.Statues = exports.SIMPLE = exports.EDITORIAL_WORKFLOW = void 0;
|
||||
var _immutable = require("immutable");
|
||||
// Create/edit workflow modes
|
||||
const SIMPLE = exports.SIMPLE = 'simple';
|
||||
const EDITORIAL_WORKFLOW = exports.EDITORIAL_WORKFLOW = 'editorial_workflow';
|
||||
const Statues = exports.Statues = {
|
||||
DRAFT: 'draft',
|
||||
PENDING_REVIEW: 'pending_review',
|
||||
PENDING_PUBLISH: 'pending_publish'
|
||||
};
|
||||
|
||||
// Available status
|
||||
const status = exports.status = (0, _immutable.OrderedMap)(Statues);
|
||||
const statusDescriptions = exports.statusDescriptions = (0, _immutable.Map)({
|
||||
[status.get('DRAFT')]: 'Draft',
|
||||
[status.get('PENDING_REVIEW')]: 'Waiting for Review',
|
||||
[status.get('PENDING_PUBLISH')]: 'Waiting to go live'
|
||||
});
|
||||
12
node_modules/decap-cms-core/dist/esm/constants/validationErrorTypes.js
generated
vendored
Normal file
12
node_modules/decap-cms-core/dist/esm/constants/validationErrorTypes.js
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _default = exports.default = {
|
||||
PRESENCE: 'PRESENCE',
|
||||
PATTERN: 'PATTERN',
|
||||
RANGE: 'RANGE',
|
||||
CUSTOM: 'CUSTOM'
|
||||
};
|
||||
93
node_modules/decap-cms-core/dist/esm/formats/formats.js
generated
vendored
Normal file
93
node_modules/decap-cms-core/dist/esm/formats/formats.js
generated
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.frontmatterFormats = exports.formatExtensions = exports.extensionFormatters = void 0;
|
||||
exports.getFormatExtensions = getFormatExtensions;
|
||||
exports.resolveFormat = resolveFormat;
|
||||
var _get2 = _interopRequireDefault(require("lodash/get"));
|
||||
var _immutable = require("immutable");
|
||||
var _yaml = _interopRequireDefault(require("./yaml"));
|
||||
var _toml = _interopRequireDefault(require("./toml"));
|
||||
var _json = _interopRequireDefault(require("./json"));
|
||||
var _frontmatter = require("./frontmatter");
|
||||
var _registry = require("../lib/registry");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const frontmatterFormats = exports.frontmatterFormats = ['yaml-frontmatter', 'toml-frontmatter', 'json-frontmatter'];
|
||||
const formatExtensions = exports.formatExtensions = {
|
||||
yml: 'yml',
|
||||
yaml: 'yml',
|
||||
toml: 'toml',
|
||||
json: 'json',
|
||||
frontmatter: 'md',
|
||||
'json-frontmatter': 'md',
|
||||
'toml-frontmatter': 'md',
|
||||
'yaml-frontmatter': 'md'
|
||||
};
|
||||
function getFormatExtensions() {
|
||||
return _objectSpread(_objectSpread({}, formatExtensions), (0, _registry.getCustomFormatsExtensions)());
|
||||
}
|
||||
const extensionFormatters = exports.extensionFormatters = {
|
||||
yml: _yaml.default,
|
||||
yaml: _yaml.default,
|
||||
toml: _toml.default,
|
||||
json: _json.default,
|
||||
md: _frontmatter.FrontmatterInfer,
|
||||
markdown: _frontmatter.FrontmatterInfer,
|
||||
html: _frontmatter.FrontmatterInfer
|
||||
};
|
||||
function formatByName(name, customDelimiter) {
|
||||
const formatters = _objectSpread({
|
||||
yml: _yaml.default,
|
||||
yaml: _yaml.default,
|
||||
toml: _toml.default,
|
||||
json: _json.default,
|
||||
frontmatter: _frontmatter.FrontmatterInfer,
|
||||
'json-frontmatter': (0, _frontmatter.frontmatterJSON)(customDelimiter),
|
||||
'toml-frontmatter': (0, _frontmatter.frontmatterTOML)(customDelimiter),
|
||||
'yaml-frontmatter': (0, _frontmatter.frontmatterYAML)(customDelimiter)
|
||||
}, (0, _registry.getCustomFormatsFormatters)());
|
||||
if (name in formatters) {
|
||||
return formatters[name];
|
||||
}
|
||||
throw new Error(`No formatter available with name: ${name}`);
|
||||
}
|
||||
function frontmatterDelimiterIsList(frontmatterDelimiter) {
|
||||
return _immutable.List.isList(frontmatterDelimiter);
|
||||
}
|
||||
function resolveFormat(collection, entry) {
|
||||
// Check for custom delimiter
|
||||
const frontmatter_delimiter = collection.get('frontmatter_delimiter');
|
||||
const customDelimiter = frontmatterDelimiterIsList(frontmatter_delimiter) ? frontmatter_delimiter.toArray() : frontmatter_delimiter;
|
||||
|
||||
// If the format is specified in the collection, use that format.
|
||||
const formatSpecification = collection.get('format');
|
||||
if (formatSpecification) {
|
||||
return formatByName(formatSpecification, customDelimiter);
|
||||
}
|
||||
|
||||
// If a file already exists, infer the format from its file extension.
|
||||
const filePath = entry && entry.path;
|
||||
if (filePath) {
|
||||
const fileExtension = filePath.split('.').pop();
|
||||
if (fileExtension) {
|
||||
return (0, _get2.default)(extensionFormatters, fileExtension);
|
||||
}
|
||||
}
|
||||
|
||||
// If creating a new file, and an `extension` is specified in the
|
||||
// collection config, infer the format from that extension.
|
||||
const extension = collection.get('extension');
|
||||
if (extension) {
|
||||
return (0, _get2.default)(extensionFormatters, extension);
|
||||
}
|
||||
|
||||
// If no format is specified and it cannot be inferred, return the default.
|
||||
return formatByName('frontmatter', customDelimiter);
|
||||
}
|
||||
162
node_modules/decap-cms-core/dist/esm/formats/frontmatter.js
generated
vendored
Normal file
162
node_modules/decap-cms-core/dist/esm/formats/frontmatter.js
generated
vendored
Normal file
@@ -0,0 +1,162 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.FrontmatterInfer = exports.FrontmatterFormatter = void 0;
|
||||
exports.frontmatterJSON = frontmatterJSON;
|
||||
exports.frontmatterTOML = frontmatterTOML;
|
||||
exports.frontmatterYAML = frontmatterYAML;
|
||||
exports.getFormatOpts = getFormatOpts;
|
||||
var _grayMatter = _interopRequireDefault(require("gray-matter"));
|
||||
var _toml = _interopRequireDefault(require("./toml"));
|
||||
var _yaml = _interopRequireDefault(require("./yaml"));
|
||||
var _json = _interopRequireDefault(require("./json"));
|
||||
const _excluded = ["body"];
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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; }
|
||||
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; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const Languages = {
|
||||
YAML: 'yaml',
|
||||
TOML: 'toml',
|
||||
JSON: 'json'
|
||||
};
|
||||
const parsers = {
|
||||
toml: {
|
||||
parse: input => _toml.default.fromFile(input),
|
||||
stringify: (metadata, opts) => {
|
||||
const {
|
||||
sortedKeys
|
||||
} = opts || {};
|
||||
return _toml.default.toFile(metadata, sortedKeys);
|
||||
}
|
||||
},
|
||||
json: {
|
||||
parse: input => {
|
||||
let JSONinput = input.trim();
|
||||
// Fix JSON if leading and trailing brackets were trimmed.
|
||||
if (JSONinput.slice(0, 1) !== '{') {
|
||||
JSONinput = '{' + JSONinput + '}';
|
||||
}
|
||||
return _json.default.fromFile(JSONinput);
|
||||
},
|
||||
stringify: metadata => {
|
||||
let JSONoutput = _json.default.toFile(metadata).trim();
|
||||
// Trim leading and trailing brackets.
|
||||
if (JSONoutput.slice(0, 1) === '{' && JSONoutput.slice(-1) === '}') {
|
||||
JSONoutput = JSONoutput.slice(1, -1);
|
||||
}
|
||||
return JSONoutput;
|
||||
}
|
||||
},
|
||||
yaml: {
|
||||
parse: input => _yaml.default.fromFile(input),
|
||||
stringify: (metadata, opts) => {
|
||||
const {
|
||||
sortedKeys,
|
||||
comments
|
||||
} = opts || {};
|
||||
return _yaml.default.toFile(metadata, sortedKeys, comments);
|
||||
}
|
||||
}
|
||||
};
|
||||
function inferFrontmatterFormat(str) {
|
||||
const lineEnd = str.indexOf('\n');
|
||||
const firstLine = str.slice(0, lineEnd !== -1 ? lineEnd : 0).trim();
|
||||
if (firstLine.length > 3 && firstLine.slice(0, 3) === '---') {
|
||||
// No need to infer, `gray-matter` will handle things like `---toml` for us.
|
||||
return;
|
||||
}
|
||||
switch (firstLine) {
|
||||
case '---':
|
||||
return getFormatOpts(Languages.YAML);
|
||||
case '+++':
|
||||
return getFormatOpts(Languages.TOML);
|
||||
case '{':
|
||||
return getFormatOpts(Languages.JSON);
|
||||
default:
|
||||
console.warn('Unrecognized front-matter format.');
|
||||
}
|
||||
}
|
||||
function getFormatOpts(format, customDelimiter) {
|
||||
if (!format) {
|
||||
return undefined;
|
||||
}
|
||||
const formats = {
|
||||
yaml: {
|
||||
language: Languages.YAML,
|
||||
delimiters: '---'
|
||||
},
|
||||
toml: {
|
||||
language: Languages.TOML,
|
||||
delimiters: '+++'
|
||||
},
|
||||
json: {
|
||||
language: Languages.JSON,
|
||||
delimiters: ['{', '}']
|
||||
}
|
||||
};
|
||||
const {
|
||||
language,
|
||||
delimiters
|
||||
} = formats[format];
|
||||
return {
|
||||
language,
|
||||
delimiters: customDelimiter || delimiters
|
||||
};
|
||||
}
|
||||
class FrontmatterFormatter {
|
||||
constructor(format, customDelimiter) {
|
||||
_defineProperty(this, "format", void 0);
|
||||
this.format = getFormatOpts(format, customDelimiter);
|
||||
}
|
||||
fromFile(content) {
|
||||
const format = this.format || inferFrontmatterFormat(content);
|
||||
const result = (0, _grayMatter.default)(content, _objectSpread({
|
||||
engines: parsers
|
||||
}, format));
|
||||
// in the absent of a body when serializing an entry we use an empty one
|
||||
// when calling `toFile`, so we don't want to add it when parsing.
|
||||
return _objectSpread(_objectSpread({}, result.data), result.content.trim() && {
|
||||
body: result.content
|
||||
});
|
||||
}
|
||||
toFile(data, sortedKeys, comments) {
|
||||
const {
|
||||
body = ''
|
||||
} = data,
|
||||
meta = _objectWithoutProperties(data, _excluded);
|
||||
|
||||
// Stringify to YAML if the format was not set
|
||||
const format = this.format || getFormatOpts(Languages.YAML);
|
||||
|
||||
// gray-matter always adds a line break at the end which trips our
|
||||
// change detection logic
|
||||
// https://github.com/jonschlinkert/gray-matter/issues/96
|
||||
const trimLastLineBreak = body.slice(-1) !== '\n';
|
||||
const file = _grayMatter.default.stringify(body, meta, _objectSpread({
|
||||
engines: parsers,
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore `sortedKeys` is not recognized by gray-matter, so it gets passed through to the parser
|
||||
sortedKeys,
|
||||
comments
|
||||
}, format));
|
||||
return trimLastLineBreak && file.slice(-1) === '\n' ? file.slice(0, -1) : file;
|
||||
}
|
||||
}
|
||||
exports.FrontmatterFormatter = FrontmatterFormatter;
|
||||
const FrontmatterInfer = exports.FrontmatterInfer = new FrontmatterFormatter();
|
||||
function frontmatterYAML(customDelimiter) {
|
||||
return new FrontmatterFormatter(Languages.YAML, customDelimiter);
|
||||
}
|
||||
function frontmatterTOML(customDelimiter) {
|
||||
return new FrontmatterFormatter(Languages.TOML, customDelimiter);
|
||||
}
|
||||
function frontmatterJSON(customDelimiter) {
|
||||
return new FrontmatterFormatter(Languages.JSON, customDelimiter);
|
||||
}
|
||||
18
node_modules/decap-cms-core/dist/esm/formats/helpers.js
generated
vendored
Normal file
18
node_modules/decap-cms-core/dist/esm/formats/helpers.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.sortKeys = sortKeys;
|
||||
function sortKeys(sortedKeys,
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
selector = a => a) {
|
||||
return (a, b) => {
|
||||
const idxA = sortedKeys.indexOf(selector(a));
|
||||
const idxB = sortedKeys.indexOf(selector(b));
|
||||
if (idxA === -1 || idxB === -1) return 0;
|
||||
if (idxA > idxB) return 1;
|
||||
if (idxA < idxB) return -1;
|
||||
return 0;
|
||||
};
|
||||
}
|
||||
14
node_modules/decap-cms-core/dist/esm/formats/json.js
generated
vendored
Normal file
14
node_modules/decap-cms-core/dist/esm/formats/json.js
generated
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _default = exports.default = {
|
||||
fromFile(content) {
|
||||
return JSON.parse(content);
|
||||
},
|
||||
toFile(data) {
|
||||
return JSON.stringify(data, null, 2);
|
||||
}
|
||||
};
|
||||
39
node_modules/decap-cms-core/dist/esm/formats/toml.js
generated
vendored
Normal file
39
node_modules/decap-cms-core/dist/esm/formats/toml.js
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _toml = _interopRequireDefault(require("@iarna/toml"));
|
||||
var _tomlifyJ = _interopRequireDefault(require("tomlify-j0.4"));
|
||||
var _dayjs = _interopRequireDefault(require("dayjs"));
|
||||
var _AssetProxy = _interopRequireDefault(require("../valueObjects/AssetProxy"));
|
||||
var _helpers = require("./helpers");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function outputReplacer(_key, value) {
|
||||
if (_dayjs.default.isDayjs(value)) {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
return value.format(value._f);
|
||||
}
|
||||
if (value instanceof _AssetProxy.default) {
|
||||
return `${value.path}`;
|
||||
}
|
||||
if (typeof value === 'number' && Number.isInteger(value)) {
|
||||
// Return the string representation of integers so tomlify won't render with tenths (".0")
|
||||
return value.toString();
|
||||
}
|
||||
// Return `false` to use default (`undefined` would delete key).
|
||||
return false;
|
||||
}
|
||||
var _default = exports.default = {
|
||||
fromFile(content) {
|
||||
return _toml.default.parse(content);
|
||||
},
|
||||
toFile(data, sortedKeys = []) {
|
||||
return _tomlifyJ.default.toToml(data, {
|
||||
replace: outputReplacer,
|
||||
sort: (0, _helpers.sortKeys)(sortedKeys)
|
||||
});
|
||||
}
|
||||
};
|
||||
62
node_modules/decap-cms-core/dist/esm/formats/yaml.js
generated
vendored
Normal file
62
node_modules/decap-cms-core/dist/esm/formats/yaml.js
generated
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _yaml = _interopRequireDefault(require("yaml"));
|
||||
var _helpers = require("./helpers");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function addComments(items, comments, prefix = '') {
|
||||
items.forEach(item => {
|
||||
if (item.key !== undefined) {
|
||||
var _item$value;
|
||||
const itemKey = item.key.toString();
|
||||
const key = prefix ? `${prefix}.${itemKey}` : itemKey;
|
||||
if (comments[key]) {
|
||||
const value = comments[key].split('\\n').join('\n ');
|
||||
item.commentBefore = ` ${value}`;
|
||||
}
|
||||
if (Array.isArray((_item$value = item.value) === null || _item$value === void 0 ? void 0 : _item$value.items)) {
|
||||
addComments(item.value.items, comments, key);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
const timestampTag = {
|
||||
identify: value => value instanceof Date,
|
||||
default: true,
|
||||
tag: '!timestamp',
|
||||
test: RegExp('^' + '([0-9]{4})-([0-9]{2})-([0-9]{2})' +
|
||||
// YYYY-MM-DD
|
||||
'T' +
|
||||
// T
|
||||
'([0-9]{2}):([0-9]{2}):([0-9]{2}(\\.[0-9]+)?)' +
|
||||
// HH:MM:SS(.ss)?
|
||||
'Z' +
|
||||
// Z
|
||||
'$'),
|
||||
resolve: str => new Date(str),
|
||||
stringify: value => value.toISOString()
|
||||
};
|
||||
var _default = exports.default = {
|
||||
fromFile(content) {
|
||||
if (content && content.trim().endsWith('---')) {
|
||||
content = content.trim().slice(0, -3);
|
||||
}
|
||||
return _yaml.default.parse(content, {
|
||||
customTags: [timestampTag]
|
||||
});
|
||||
},
|
||||
toFile(data, sortedKeys = [], comments = {}) {
|
||||
const contents = _yaml.default.createNode(data);
|
||||
addComments(contents.items, comments);
|
||||
contents.items.sort((0, _helpers.sortKeys)(sortedKeys, item => {
|
||||
var _item$key;
|
||||
return (_item$key = item.key) === null || _item$key === void 0 ? void 0 : _item$key.toString();
|
||||
}));
|
||||
const doc = new _yaml.default.Document();
|
||||
doc.contents = contents;
|
||||
return doc.toString();
|
||||
}
|
||||
};
|
||||
18
node_modules/decap-cms-core/dist/esm/index.js
generated
vendored
Normal file
18
node_modules/decap-cms-core/dist/esm/index.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = exports.DecapCmsCore = void 0;
|
||||
var _bootstrap = _interopRequireDefault(require("./bootstrap"));
|
||||
var _registry = _interopRequireDefault(require("./lib/registry"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const DecapCmsCore = exports.DecapCmsCore = _objectSpread(_objectSpread({}, _registry.default), {}, {
|
||||
init: _bootstrap.default
|
||||
});
|
||||
var _default = exports.default = DecapCmsCore;
|
||||
36
node_modules/decap-cms-core/dist/esm/integrations/index.js
generated
vendored
Normal file
36
node_modules/decap-cms-core/dist/esm/integrations/index.js
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.getIntegrationProvider = void 0;
|
||||
exports.resolveIntegrations = resolveIntegrations;
|
||||
var _immutable = require("immutable");
|
||||
var _implementation = _interopRequireDefault(require("./providers/algolia/implementation"));
|
||||
var _implementation2 = _interopRequireDefault(require("./providers/assetStore/implementation"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function resolveIntegrations(integrationsConfig, getToken) {
|
||||
let integrationInstances = (0, _immutable.Map)({});
|
||||
integrationsConfig.get('providers').forEach((providerData, providerName) => {
|
||||
switch (providerName) {
|
||||
case 'algolia':
|
||||
integrationInstances = integrationInstances.set('algolia', new _implementation.default(providerData));
|
||||
break;
|
||||
case 'assetStore':
|
||||
integrationInstances = integrationInstances.set('assetStore', new _implementation2.default(providerData, getToken));
|
||||
break;
|
||||
}
|
||||
});
|
||||
return integrationInstances;
|
||||
}
|
||||
const getIntegrationProvider = exports.getIntegrationProvider = function () {
|
||||
let integrations = null;
|
||||
return (integrationsConfig, getToken, provider) => {
|
||||
if (integrations) {
|
||||
return integrations.get(provider);
|
||||
} else {
|
||||
integrations = resolveIntegrations(integrationsConfig, getToken);
|
||||
return integrations.get(provider);
|
||||
}
|
||||
};
|
||||
}();
|
||||
184
node_modules/decap-cms-core/dist/esm/integrations/providers/algolia/implementation.js
generated
vendored
Normal file
184
node_modules/decap-cms-core/dist/esm/integrations/providers/algolia/implementation.js
generated
vendored
Normal file
@@ -0,0 +1,184 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _flatten2 = _interopRequireDefault(require("lodash/flatten"));
|
||||
var _decapCmsLibUtil = require("decap-cms-lib-util");
|
||||
var _Entry = require("../../../valueObjects/Entry");
|
||||
var _collections = require("../../../reducers/collections");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const {
|
||||
fetchWithTimeout: fetch
|
||||
} = _decapCmsLibUtil.unsentRequest;
|
||||
function getSlug(path) {
|
||||
return path.split('/').pop().replace(/\.[^.]+$/, '');
|
||||
}
|
||||
class Algolia {
|
||||
constructor(config) {
|
||||
this.config = config;
|
||||
if (config.get('applicationID') == null || config.get('apiKey') == null) {
|
||||
throw 'The Algolia search integration needs the credentials (applicationID and apiKey) in the integration configuration.';
|
||||
}
|
||||
this.applicationID = config.get('applicationID');
|
||||
this.apiKey = config.get('apiKey');
|
||||
const prefix = config.get('indexPrefix');
|
||||
this.indexPrefix = prefix ? `${prefix}-` : '';
|
||||
this.searchURL = `https://${this.applicationID}-dsn.algolia.net/1`;
|
||||
this.entriesCache = {
|
||||
collection: null,
|
||||
page: null,
|
||||
entries: []
|
||||
};
|
||||
}
|
||||
requestHeaders(headers = {}) {
|
||||
return _objectSpread({
|
||||
'X-Algolia-API-Key': this.apiKey,
|
||||
'X-Algolia-Application-Id': this.applicationID,
|
||||
'Content-Type': 'application/json'
|
||||
}, headers);
|
||||
}
|
||||
parseJsonResponse(response) {
|
||||
return response.json().then(json => {
|
||||
if (!response.ok) {
|
||||
return Promise.reject(json);
|
||||
}
|
||||
return json;
|
||||
});
|
||||
}
|
||||
urlFor(path, options) {
|
||||
const params = [];
|
||||
if (options.params) {
|
||||
for (const key in options.params) {
|
||||
params.push(`${key}=${encodeURIComponent(options.params[key])}`);
|
||||
}
|
||||
}
|
||||
if (params.length) {
|
||||
path += `?${params.join('&')}`;
|
||||
}
|
||||
return path;
|
||||
}
|
||||
request(path, options = {}) {
|
||||
const headers = this.requestHeaders(options.headers || {});
|
||||
const url = this.urlFor(path, options);
|
||||
return fetch(url, _objectSpread(_objectSpread({}, options), {}, {
|
||||
headers
|
||||
})).then(response => {
|
||||
const contentType = response.headers.get('Content-Type');
|
||||
if (contentType && contentType.match(/json/)) {
|
||||
return this.parseJsonResponse(response);
|
||||
}
|
||||
return response.text();
|
||||
});
|
||||
}
|
||||
search(collections, searchTerm, page) {
|
||||
const searchCollections = collections.map(collection => ({
|
||||
indexName: `${this.indexPrefix}${collection}`,
|
||||
params: `query=${searchTerm}&page=${page}`
|
||||
}));
|
||||
return this.request(`${this.searchURL}/indexes/*/queries`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({
|
||||
requests: searchCollections
|
||||
})
|
||||
}).then(response => {
|
||||
const entries = response.results.map((result, index) => result.hits.map(hit => {
|
||||
const slug = getSlug(hit.path);
|
||||
return (0, _Entry.createEntry)(collections[index], slug, hit.path, {
|
||||
data: hit.data,
|
||||
partial: true
|
||||
});
|
||||
}));
|
||||
return {
|
||||
entries: (0, _flatten2.default)(entries),
|
||||
pagination: page
|
||||
};
|
||||
});
|
||||
}
|
||||
searchBy(field, collection, query) {
|
||||
return this.request(`${this.searchURL}/indexes/${this.indexPrefix}${collection}`, {
|
||||
params: {
|
||||
restrictSearchableAttributes: field,
|
||||
query
|
||||
}
|
||||
});
|
||||
}
|
||||
listEntries(collection, page) {
|
||||
if (this.entriesCache.collection === collection && this.entriesCache.page === page) {
|
||||
return Promise.resolve({
|
||||
page: this.entriesCache.page,
|
||||
entries: this.entriesCache.entries
|
||||
});
|
||||
} else {
|
||||
return this.request(`${this.searchURL}/indexes/${this.indexPrefix}${collection.get('name')}`, {
|
||||
params: {
|
||||
page
|
||||
}
|
||||
}).then(response => {
|
||||
const entries = response.hits.map(hit => {
|
||||
const slug = (0, _collections.selectEntrySlug)(collection, hit.path);
|
||||
return (0, _Entry.createEntry)(collection.get('name'), slug, hit.path, {
|
||||
data: hit.data,
|
||||
partial: true
|
||||
});
|
||||
});
|
||||
this.entriesCache = {
|
||||
collection,
|
||||
pagination: response.page,
|
||||
entries
|
||||
};
|
||||
return {
|
||||
entries,
|
||||
pagination: response.page
|
||||
};
|
||||
});
|
||||
}
|
||||
}
|
||||
async listAllEntries(collection) {
|
||||
const params = {
|
||||
hitsPerPage: 1000
|
||||
};
|
||||
let response = await this.request(`${this.searchURL}/indexes/${this.indexPrefix}${collection.get('name')}`, {
|
||||
params
|
||||
});
|
||||
let {
|
||||
nbPages = 0,
|
||||
hits,
|
||||
page
|
||||
} = response;
|
||||
page = page + 1;
|
||||
while (page < nbPages) {
|
||||
response = await this.request(`${this.searchURL}/indexes/${this.indexPrefix}${collection.get('name')}`, {
|
||||
params: _objectSpread(_objectSpread({}, params), {}, {
|
||||
page
|
||||
})
|
||||
});
|
||||
hits = [...hits, ...response.hits];
|
||||
page = page + 1;
|
||||
}
|
||||
const entries = hits.map(hit => {
|
||||
const slug = (0, _collections.selectEntrySlug)(collection, hit.path);
|
||||
return (0, _Entry.createEntry)(collection.get('name'), slug, hit.path, {
|
||||
data: hit.data,
|
||||
partial: true
|
||||
});
|
||||
});
|
||||
return entries;
|
||||
}
|
||||
getEntry(collection, slug) {
|
||||
return this.searchBy('slug', collection.get('name'), slug).then(response => {
|
||||
const entry = response.hits.filter(hit => hit.slug === slug)[0];
|
||||
return (0, _Entry.createEntry)(collection.get('name'), slug, entry.path, {
|
||||
data: entry.data,
|
||||
partial: true
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.default = Algolia;
|
||||
175
node_modules/decap-cms-core/dist/esm/integrations/providers/assetStore/implementation.js
generated
vendored
Normal file
175
node_modules/decap-cms-core/dist/esm/integrations/providers/assetStore/implementation.js
generated
vendored
Normal file
@@ -0,0 +1,175 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _trimEnd2 = _interopRequireDefault(require("lodash/trimEnd"));
|
||||
var _pickBy2 = _interopRequireDefault(require("lodash/pickBy"));
|
||||
var _decapCmsLibUtil = require("decap-cms-lib-util");
|
||||
var _urlHelper = require("../../../lib/urlHelper");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const {
|
||||
fetchWithTimeout: fetch
|
||||
} = _decapCmsLibUtil.unsentRequest;
|
||||
class AssetStore {
|
||||
constructor(config, getToken) {
|
||||
this.config = config;
|
||||
if (config.get('getSignedFormURL') == null) {
|
||||
throw 'The AssetStore integration needs the getSignedFormURL in the integration configuration.';
|
||||
}
|
||||
this.getToken = getToken;
|
||||
this.shouldConfirmUpload = config.get('shouldConfirmUpload', false);
|
||||
this.getSignedFormURL = (0, _trimEnd2.default)(config.get('getSignedFormURL'), '/');
|
||||
}
|
||||
parseJsonResponse(response) {
|
||||
return response.json().then(json => {
|
||||
if (!response.ok) {
|
||||
return Promise.reject(json);
|
||||
}
|
||||
return json;
|
||||
});
|
||||
}
|
||||
urlFor(path, options) {
|
||||
const params = [];
|
||||
if (options.params) {
|
||||
for (const key in options.params) {
|
||||
params.push(`${key}=${encodeURIComponent(options.params[key])}`);
|
||||
}
|
||||
}
|
||||
if (params.length) {
|
||||
path += `?${params.join('&')}`;
|
||||
}
|
||||
return path;
|
||||
}
|
||||
requestHeaders(headers = {}) {
|
||||
return _objectSpread({}, headers);
|
||||
}
|
||||
confirmRequest(assetID) {
|
||||
this.getToken().then(token => this.request(`${this.getSignedFormURL}/${assetID}`, {
|
||||
method: 'PUT',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${token}`
|
||||
},
|
||||
body: JSON.stringify({
|
||||
state: 'uploaded'
|
||||
})
|
||||
}));
|
||||
}
|
||||
async request(path, options = {}) {
|
||||
const headers = this.requestHeaders(options.headers || {});
|
||||
const url = this.urlFor(path, options);
|
||||
const response = await fetch(url, _objectSpread(_objectSpread({}, options), {}, {
|
||||
headers
|
||||
}));
|
||||
const contentType = response.headers.get('Content-Type');
|
||||
const isJson = contentType && contentType.match(/json/);
|
||||
const content = isJson ? await this.parseJsonResponse(response) : response.text();
|
||||
return content;
|
||||
}
|
||||
async retrieve(query, page, privateUpload) {
|
||||
const params = (0, _pickBy2.default)({
|
||||
search: query,
|
||||
page,
|
||||
filter: privateUpload ? 'private' : 'public'
|
||||
}, val => !!val);
|
||||
const url = (0, _urlHelper.addParams)(this.getSignedFormURL, params);
|
||||
const token = await this.getToken();
|
||||
const headers = {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${token}`
|
||||
};
|
||||
const response = await this.request(url, {
|
||||
headers
|
||||
});
|
||||
const files = response.map(({
|
||||
id,
|
||||
name,
|
||||
size,
|
||||
url
|
||||
}) => {
|
||||
return {
|
||||
id,
|
||||
name,
|
||||
size,
|
||||
displayURL: url,
|
||||
url,
|
||||
path: url
|
||||
};
|
||||
});
|
||||
return files;
|
||||
}
|
||||
delete(assetID) {
|
||||
const url = `${this.getSignedFormURL}/${assetID}`;
|
||||
return this.getToken().then(token => this.request(url, {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${token}`
|
||||
}
|
||||
}));
|
||||
}
|
||||
async upload(file, privateUpload = false) {
|
||||
const fileData = {
|
||||
name: file.name,
|
||||
size: file.size
|
||||
};
|
||||
if (file.type) {
|
||||
fileData.content_type = file.type;
|
||||
}
|
||||
if (privateUpload) {
|
||||
fileData.visibility = 'private';
|
||||
}
|
||||
try {
|
||||
const token = await this.getToken();
|
||||
const response = await this.request(this.getSignedFormURL, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${token}`
|
||||
},
|
||||
body: JSON.stringify(fileData)
|
||||
});
|
||||
const formURL = response.form.url;
|
||||
const formFields = response.form.fields;
|
||||
const {
|
||||
id,
|
||||
name,
|
||||
size,
|
||||
url
|
||||
} = response.asset;
|
||||
const formData = new FormData();
|
||||
Object.keys(formFields).forEach(key => formData.append(key, formFields[key]));
|
||||
formData.append('file', file, file.name);
|
||||
await this.request(formURL, {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
});
|
||||
if (this.shouldConfirmUpload) {
|
||||
await this.confirmRequest(id);
|
||||
}
|
||||
const asset = {
|
||||
id,
|
||||
name,
|
||||
size,
|
||||
displayURL: url,
|
||||
url,
|
||||
path: url
|
||||
};
|
||||
return {
|
||||
success: true,
|
||||
asset
|
||||
};
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.default = AssetStore;
|
||||
9
node_modules/decap-cms-core/dist/esm/lib/consoleError.js
generated
vendored
Normal file
9
node_modules/decap-cms-core/dist/esm/lib/consoleError.js
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = consoleError;
|
||||
function consoleError(title, description) {
|
||||
console.error(`%c ⛔ ${title}\n` + `%c${description}\n\n`, 'color: black; font-weight: bold; font-size: 16px; line-height: 50px;', 'color: black;');
|
||||
}
|
||||
204
node_modules/decap-cms-core/dist/esm/lib/formatters.js
generated
vendored
Normal file
204
node_modules/decap-cms-core/dist/esm/lib/formatters.js
generated
vendored
Normal file
@@ -0,0 +1,204 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.commitMessageFormatter = commitMessageFormatter;
|
||||
exports.folderFormatter = folderFormatter;
|
||||
exports.getProcessSegment = getProcessSegment;
|
||||
exports.prepareSlug = prepareSlug;
|
||||
exports.previewUrlFormatter = previewUrlFormatter;
|
||||
exports.slugFormatter = slugFormatter;
|
||||
exports.summaryFormatter = summaryFormatter;
|
||||
var _trimStart2 = _interopRequireDefault(require("lodash/trimStart"));
|
||||
var _trimEnd2 = _interopRequireDefault(require("lodash/trimEnd"));
|
||||
var _partialRight2 = _interopRequireDefault(require("lodash/partialRight"));
|
||||
var _flow2 = _interopRequireDefault(require("lodash/flow"));
|
||||
var _decapCmsLibWidgets = require("decap-cms-lib-widgets");
|
||||
var _commonTags = require("common-tags");
|
||||
var _collections = require("../reducers/collections");
|
||||
var _urlHelper = require("./urlHelper");
|
||||
var _collectionTypes = require("../constants/collectionTypes");
|
||||
var _commitProps = require("../constants/commitProps");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const {
|
||||
compileStringTemplate,
|
||||
parseDateFromEntry,
|
||||
SLUG_MISSING_REQUIRED_DATE,
|
||||
keyToPathArray,
|
||||
addFileTemplateFields
|
||||
} = _decapCmsLibWidgets.stringTemplate;
|
||||
const commitMessageTemplates = {
|
||||
create: 'Create {{collection}} “{{slug}}”',
|
||||
update: 'Update {{collection}} “{{slug}}”',
|
||||
delete: 'Delete {{collection}} “{{slug}}”',
|
||||
uploadMedia: 'Upload “{{path}}”',
|
||||
deleteMedia: 'Delete “{{path}}”',
|
||||
openAuthoring: '{{message}}'
|
||||
};
|
||||
const variableRegex = /\{\{([^}]+)\}\}/g;
|
||||
function commitMessageFormatter(type, config, {
|
||||
slug,
|
||||
path,
|
||||
collection,
|
||||
authorLogin,
|
||||
authorName
|
||||
}, isOpenAuthoring) {
|
||||
const templates = _objectSpread(_objectSpread({}, commitMessageTemplates), config.backend.commit_messages || {});
|
||||
const commitMessage = templates[type].replace(variableRegex, (_, variable) => {
|
||||
switch (variable) {
|
||||
case 'slug':
|
||||
return slug || '';
|
||||
case 'path':
|
||||
return path || '';
|
||||
case 'collection':
|
||||
return collection ? collection.get('label_singular') || collection.get('label') : '';
|
||||
case 'author-login':
|
||||
return authorLogin || '';
|
||||
case 'author-name':
|
||||
return authorName || '';
|
||||
default:
|
||||
console.warn(`Ignoring unknown variable “${variable}” in commit message template.`);
|
||||
return '';
|
||||
}
|
||||
});
|
||||
if (!isOpenAuthoring) {
|
||||
return commitMessage;
|
||||
}
|
||||
const message = templates.openAuthoring.replace(variableRegex, (_, variable) => {
|
||||
switch (variable) {
|
||||
case 'message':
|
||||
return commitMessage;
|
||||
case 'author-login':
|
||||
return authorLogin || '';
|
||||
case 'author-name':
|
||||
return authorName || '';
|
||||
default:
|
||||
console.warn(`Ignoring unknown variable “${variable}” in open authoring message template.`);
|
||||
return '';
|
||||
}
|
||||
});
|
||||
return message;
|
||||
}
|
||||
function prepareSlug(slug) {
|
||||
return slug.trim()
|
||||
// Convert slug to lower-case
|
||||
.toLocaleLowerCase()
|
||||
|
||||
// Remove single quotes.
|
||||
.replace(/[']/g, '')
|
||||
|
||||
// Replace periods with dashes.
|
||||
.replace(/[.]/g, '-');
|
||||
}
|
||||
function getProcessSegment(slugConfig, ignoreValues) {
|
||||
return value => ignoreValues && ignoreValues.includes(value) ? value : (0, _flow2.default)([value => String(value), prepareSlug, (0, _partialRight2.default)(_urlHelper.sanitizeSlug, slugConfig)])(value);
|
||||
}
|
||||
function slugFormatter(collection, entryData, slugConfig) {
|
||||
const slugTemplate = collection.get('slug') || '{{slug}}';
|
||||
const identifier = entryData.getIn(keyToPathArray((0, _collections.selectIdentifier)(collection)));
|
||||
if (!identifier) {
|
||||
throw new Error('Collection must have a field name that is a valid entry identifier, or must have `identifier_field` set');
|
||||
}
|
||||
const processSegment = getProcessSegment(slugConfig);
|
||||
const date = new Date();
|
||||
const slug = compileStringTemplate(slugTemplate, date, identifier, entryData, processSegment);
|
||||
if (!collection.has('path')) {
|
||||
return slug;
|
||||
} else {
|
||||
const pathTemplate = prepareSlug(collection.get('path'));
|
||||
return compileStringTemplate(pathTemplate, date, slug, entryData, value => value === slug ? value : processSegment(value));
|
||||
}
|
||||
}
|
||||
function previewUrlFormatter(baseUrl, collection, slug, entry, slugConfig) {
|
||||
/**
|
||||
* Preview URL can't be created without `baseUrl`. This makes preview URLs
|
||||
* optional for backends that don't support them.
|
||||
*/
|
||||
if (!baseUrl) {
|
||||
return;
|
||||
}
|
||||
const basePath = (0, _trimEnd2.default)(baseUrl, '/');
|
||||
const isFileCollection = collection.get('type') === _collectionTypes.FILES;
|
||||
const file = isFileCollection ? (0, _collections.getFileFromSlug)(collection, entry.get('slug')) : undefined;
|
||||
function getPathTemplate() {
|
||||
var _file$get;
|
||||
return (_file$get = file === null || file === void 0 ? void 0 : file.get('preview_path')) !== null && _file$get !== void 0 ? _file$get : collection.get('preview_path');
|
||||
}
|
||||
function getDateField() {
|
||||
var _file$get2;
|
||||
return (_file$get2 = file === null || file === void 0 ? void 0 : file.get('preview_path_date_field')) !== null && _file$get2 !== void 0 ? _file$get2 : collection.get('preview_path_date_field');
|
||||
}
|
||||
|
||||
/**
|
||||
* If a `previewPath` is provided for the collection/file, use it to construct the
|
||||
* URL path.
|
||||
*/
|
||||
const pathTemplate = getPathTemplate();
|
||||
|
||||
/**
|
||||
* Without a `previewPath` for the collection/file (via config), the preview URL
|
||||
* will be the URL provided by the backend.
|
||||
*/
|
||||
if (!pathTemplate) {
|
||||
return baseUrl;
|
||||
}
|
||||
let fields = entry.get('data');
|
||||
fields = addFileTemplateFields(entry.get('path'), fields, collection.get('folder'));
|
||||
const dateFieldName = getDateField() || (0, _collections.selectInferredField)(collection, 'date');
|
||||
const date = parseDateFromEntry(entry, dateFieldName);
|
||||
|
||||
// Prepare and sanitize slug variables only, leave the rest of the
|
||||
// `preview_path` template as is.
|
||||
const processSegment = getProcessSegment(slugConfig, [fields.get('dirname')]);
|
||||
let compiledPath;
|
||||
try {
|
||||
compiledPath = compileStringTemplate(pathTemplate, date, slug, fields, processSegment);
|
||||
} catch (err) {
|
||||
// Print an error and ignore `preview_path` if both:
|
||||
// 1. Date is invalid (according to DayJs), and
|
||||
// 2. A date expression (eg. `{{year}}`) is used in `preview_path`
|
||||
if (err.name === SLUG_MISSING_REQUIRED_DATE) {
|
||||
console.error((0, _commonTags.stripIndent)`
|
||||
Collection "${collection.get('name')}" configuration error:
|
||||
\`preview_path_date_field\` must be a field with a valid date. Ignoring \`preview_path\`.
|
||||
`);
|
||||
return basePath;
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
const previewPath = (0, _trimStart2.default)(compiledPath, ' /');
|
||||
return `${basePath}/${previewPath}`;
|
||||
}
|
||||
function summaryFormatter(summaryTemplate, entry, collection) {
|
||||
let entryData = entry.get('data');
|
||||
const date = parseDateFromEntry(entry, (0, _collections.selectInferredField)(collection, 'date')) || null;
|
||||
const identifier = entryData.getIn(keyToPathArray((0, _collections.selectIdentifier)(collection)));
|
||||
entryData = addFileTemplateFields(entry.get('path'), entryData, collection.get('folder'));
|
||||
// allow commit information in summary template
|
||||
if (entry.get('author') && !(0, _collections.selectField)(collection, _commitProps.COMMIT_AUTHOR)) {
|
||||
entryData = entryData.set(_commitProps.COMMIT_AUTHOR, entry.get('author'));
|
||||
}
|
||||
if (entry.get('updatedOn') && !(0, _collections.selectField)(collection, _commitProps.COMMIT_DATE)) {
|
||||
entryData = entryData.set(_commitProps.COMMIT_DATE, entry.get('updatedOn'));
|
||||
}
|
||||
const summary = compileStringTemplate(summaryTemplate, date, identifier, entryData);
|
||||
return summary;
|
||||
}
|
||||
function folderFormatter(folderTemplate, entry, collection, defaultFolder, folderKey, slugConfig) {
|
||||
if (!entry || !entry.get('data')) {
|
||||
return folderTemplate;
|
||||
}
|
||||
let fields = entry.get('data').set(folderKey, defaultFolder);
|
||||
fields = addFileTemplateFields(entry.get('path'), fields, collection.get('folder'));
|
||||
const date = parseDateFromEntry(entry, (0, _collections.selectInferredField)(collection, 'date')) || null;
|
||||
const identifier = fields.getIn(keyToPathArray((0, _collections.selectIdentifier)(collection)));
|
||||
const processSegment = getProcessSegment(slugConfig, [defaultFolder, fields.get('dirname')]);
|
||||
const mediaFolder = compileStringTemplate(folderTemplate, date, identifier, fields, processSegment);
|
||||
return mediaFolder;
|
||||
}
|
||||
378
node_modules/decap-cms-core/dist/esm/lib/i18n.js
generated
vendored
Normal file
378
node_modules/decap-cms-core/dist/esm/lib/i18n.js
generated
vendored
Normal file
@@ -0,0 +1,378 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.I18N_STRUCTURE = exports.I18N_FIELD = exports.I18N = void 0;
|
||||
exports.duplicateDefaultI18nFields = duplicateDefaultI18nFields;
|
||||
exports.duplicateI18nFields = duplicateI18nFields;
|
||||
exports.formatI18nBackup = formatI18nBackup;
|
||||
exports.getDataPath = getDataPath;
|
||||
exports.getFilePath = getFilePath;
|
||||
exports.getFilePaths = getFilePaths;
|
||||
exports.getI18nBackup = getI18nBackup;
|
||||
exports.getI18nDataFiles = getI18nDataFiles;
|
||||
exports.getI18nEntry = getI18nEntry;
|
||||
exports.getI18nFiles = getI18nFiles;
|
||||
exports.getI18nFilesDepth = getI18nFilesDepth;
|
||||
exports.getI18nInfo = getI18nInfo;
|
||||
exports.getLocaleDataPath = getLocaleDataPath;
|
||||
exports.getLocaleFromPath = getLocaleFromPath;
|
||||
exports.getPreviewEntry = getPreviewEntry;
|
||||
exports.groupEntries = groupEntries;
|
||||
exports.hasI18n = hasI18n;
|
||||
exports.isFieldDuplicate = isFieldDuplicate;
|
||||
exports.isFieldHidden = isFieldHidden;
|
||||
exports.isFieldTranslatable = isFieldTranslatable;
|
||||
exports.normalizeFilePath = normalizeFilePath;
|
||||
exports.serializeI18n = serializeI18n;
|
||||
var _escapeRegExp2 = _interopRequireDefault(require("lodash/escapeRegExp"));
|
||||
var _groupBy2 = _interopRequireDefault(require("lodash/groupBy"));
|
||||
var _set2 = _interopRequireDefault(require("lodash/set"));
|
||||
var _immutable = require("immutable");
|
||||
var _collections = require("../reducers/collections");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const I18N = exports.I18N = 'i18n';
|
||||
let I18N_STRUCTURE = exports.I18N_STRUCTURE = /*#__PURE__*/function (I18N_STRUCTURE) {
|
||||
I18N_STRUCTURE["MULTIPLE_FOLDERS"] = "multiple_folders";
|
||||
I18N_STRUCTURE["MULTIPLE_FILES"] = "multiple_files";
|
||||
I18N_STRUCTURE["SINGLE_FILE"] = "single_file";
|
||||
return I18N_STRUCTURE;
|
||||
}({});
|
||||
let I18N_FIELD = exports.I18N_FIELD = /*#__PURE__*/function (I18N_FIELD) {
|
||||
I18N_FIELD["TRANSLATE"] = "translate";
|
||||
I18N_FIELD["DUPLICATE"] = "duplicate";
|
||||
I18N_FIELD["NONE"] = "none";
|
||||
return I18N_FIELD;
|
||||
}({});
|
||||
function hasI18n(collection) {
|
||||
return collection.has(I18N);
|
||||
}
|
||||
function getI18nInfo(collection) {
|
||||
if (!hasI18n(collection)) {
|
||||
return {};
|
||||
}
|
||||
const {
|
||||
structure,
|
||||
locales,
|
||||
default_locale: defaultLocale
|
||||
} = collection.get(I18N).toJS();
|
||||
return {
|
||||
structure,
|
||||
locales,
|
||||
defaultLocale
|
||||
};
|
||||
}
|
||||
function getI18nFilesDepth(collection, depth) {
|
||||
const {
|
||||
structure
|
||||
} = getI18nInfo(collection);
|
||||
if (structure === I18N_STRUCTURE.MULTIPLE_FOLDERS) {
|
||||
return depth + 1;
|
||||
}
|
||||
return depth;
|
||||
}
|
||||
function isFieldTranslatable(field, locale, defaultLocale) {
|
||||
const isTranslatable = locale !== defaultLocale && field.get(I18N) === I18N_FIELD.TRANSLATE;
|
||||
return isTranslatable;
|
||||
}
|
||||
function isFieldDuplicate(field, locale, defaultLocale) {
|
||||
const isDuplicate = locale !== defaultLocale && field.get(I18N) === I18N_FIELD.DUPLICATE;
|
||||
return isDuplicate;
|
||||
}
|
||||
function isFieldHidden(field, locale, defaultLocale) {
|
||||
const isHidden = locale !== defaultLocale && field.get(I18N) === I18N_FIELD.NONE;
|
||||
return isHidden;
|
||||
}
|
||||
function getLocaleDataPath(locale) {
|
||||
return [I18N, locale, 'data'];
|
||||
}
|
||||
function getDataPath(locale, defaultLocale) {
|
||||
const dataPath = locale !== defaultLocale ? getLocaleDataPath(locale) : ['data'];
|
||||
return dataPath;
|
||||
}
|
||||
function getFilePath(structure, extension, path, slug, locale) {
|
||||
switch (structure) {
|
||||
case I18N_STRUCTURE.MULTIPLE_FOLDERS:
|
||||
return path.replace(`/${slug}`, `/${locale}/${slug}`);
|
||||
case I18N_STRUCTURE.MULTIPLE_FILES:
|
||||
return path.replace(new RegExp(`${(0, _escapeRegExp2.default)(extension)}$`), `${locale}.${extension}`);
|
||||
case I18N_STRUCTURE.SINGLE_FILE:
|
||||
default:
|
||||
return path;
|
||||
}
|
||||
}
|
||||
function getLocaleFromPath(structure, extension, path) {
|
||||
switch (structure) {
|
||||
case I18N_STRUCTURE.MULTIPLE_FOLDERS:
|
||||
{
|
||||
const parts = path.split('/');
|
||||
// filename
|
||||
parts.pop();
|
||||
// locale
|
||||
return parts.pop();
|
||||
}
|
||||
case I18N_STRUCTURE.MULTIPLE_FILES:
|
||||
{
|
||||
const parts = path.slice(0, -`.${extension}`.length);
|
||||
return parts.split('.').pop();
|
||||
}
|
||||
case I18N_STRUCTURE.SINGLE_FILE:
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
}
|
||||
function getFilePaths(collection, extension, path, slug) {
|
||||
const {
|
||||
structure,
|
||||
locales
|
||||
} = getI18nInfo(collection);
|
||||
if (structure === I18N_STRUCTURE.SINGLE_FILE) {
|
||||
return [path];
|
||||
}
|
||||
const paths = locales.map(locale => getFilePath(structure, extension, path, slug, locale));
|
||||
return paths;
|
||||
}
|
||||
function normalizeFilePath(structure, path, locale) {
|
||||
switch (structure) {
|
||||
case I18N_STRUCTURE.MULTIPLE_FOLDERS:
|
||||
return path.replace(`${locale}/`, '');
|
||||
case I18N_STRUCTURE.MULTIPLE_FILES:
|
||||
return path.replace(`.${locale}`, '');
|
||||
case I18N_STRUCTURE.SINGLE_FILE:
|
||||
default:
|
||||
return path;
|
||||
}
|
||||
}
|
||||
function getI18nFiles(collection, extension, entryDraft, entryToRaw, path, slug, newPath) {
|
||||
const {
|
||||
structure,
|
||||
defaultLocale,
|
||||
locales
|
||||
} = getI18nInfo(collection);
|
||||
if (structure === I18N_STRUCTURE.SINGLE_FILE) {
|
||||
const data = locales.reduce((map, locale) => {
|
||||
const dataPath = getDataPath(locale, defaultLocale);
|
||||
return map.set(locale, entryDraft.getIn(dataPath));
|
||||
}, (0, _immutable.Map)({}));
|
||||
const draft = entryDraft.set('data', data);
|
||||
return [_objectSpread({
|
||||
path: getFilePath(structure, extension, path, slug, locales[0]),
|
||||
slug,
|
||||
raw: entryToRaw(draft)
|
||||
}, newPath && {
|
||||
newPath: getFilePath(structure, extension, newPath, slug, locales[0])
|
||||
})];
|
||||
}
|
||||
const dataFiles = locales.map(locale => {
|
||||
const dataPath = getDataPath(locale, defaultLocale);
|
||||
const draft = entryDraft.set('data', entryDraft.getIn(dataPath));
|
||||
return _objectSpread({
|
||||
path: getFilePath(structure, extension, path, slug, locale),
|
||||
slug,
|
||||
raw: draft.get('data') ? entryToRaw(draft) : ''
|
||||
}, newPath && {
|
||||
newPath: getFilePath(structure, extension, newPath, slug, locale)
|
||||
});
|
||||
}).filter(dataFile => dataFile.raw);
|
||||
return dataFiles;
|
||||
}
|
||||
function getI18nBackup(collection, entry, entryToRaw) {
|
||||
const {
|
||||
locales,
|
||||
defaultLocale
|
||||
} = getI18nInfo(collection);
|
||||
const i18nBackup = locales.filter(l => l !== defaultLocale).reduce((acc, locale) => {
|
||||
const dataPath = getDataPath(locale, defaultLocale);
|
||||
const data = entry.getIn(dataPath);
|
||||
if (!data) {
|
||||
return acc;
|
||||
}
|
||||
const draft = entry.set('data', data);
|
||||
return _objectSpread(_objectSpread({}, acc), {}, {
|
||||
[locale]: {
|
||||
raw: entryToRaw(draft)
|
||||
}
|
||||
});
|
||||
}, {});
|
||||
return i18nBackup;
|
||||
}
|
||||
function formatI18nBackup(i18nBackup, formatRawData) {
|
||||
const i18n = Object.entries(i18nBackup).reduce((acc, [locale, {
|
||||
raw
|
||||
}]) => {
|
||||
const entry = formatRawData(raw);
|
||||
return _objectSpread(_objectSpread({}, acc), {}, {
|
||||
[locale]: {
|
||||
data: entry.data
|
||||
}
|
||||
});
|
||||
}, {});
|
||||
return i18n;
|
||||
}
|
||||
function mergeValues(collection, structure, defaultLocale, values) {
|
||||
let defaultEntry = values.find(e => e.locale === defaultLocale);
|
||||
if (!defaultEntry) {
|
||||
defaultEntry = values[0];
|
||||
console.warn(`Could not locale entry for default locale '${defaultLocale}'`);
|
||||
}
|
||||
const i18n = values.filter(e => e.locale !== defaultEntry.locale).reduce((acc, {
|
||||
locale,
|
||||
value
|
||||
}) => {
|
||||
const dataPath = getLocaleDataPath(locale);
|
||||
return (0, _set2.default)(acc, dataPath, value.data);
|
||||
}, {});
|
||||
const path = normalizeFilePath(structure, defaultEntry.value.path, defaultLocale);
|
||||
const slug = (0, _collections.selectEntrySlug)(collection, path);
|
||||
const entryValue = _objectSpread(_objectSpread(_objectSpread({}, defaultEntry.value), {}, {
|
||||
raw: ''
|
||||
}, i18n), {}, {
|
||||
path,
|
||||
slug
|
||||
});
|
||||
return entryValue;
|
||||
}
|
||||
function mergeSingleFileValue(entryValue, defaultLocale, locales) {
|
||||
const data = entryValue.data[defaultLocale] || {};
|
||||
const i18n = locales.filter(l => l !== defaultLocale).map(l => ({
|
||||
locale: l,
|
||||
value: entryValue.data[l]
|
||||
})).filter(e => e.value).reduce((acc, e) => {
|
||||
return _objectSpread(_objectSpread({}, acc), {}, {
|
||||
[e.locale]: {
|
||||
data: e.value
|
||||
}
|
||||
});
|
||||
}, {});
|
||||
return _objectSpread(_objectSpread({}, entryValue), {}, {
|
||||
data,
|
||||
i18n,
|
||||
raw: ''
|
||||
});
|
||||
}
|
||||
async function getI18nEntry(collection, extension, path, slug, getEntryValue) {
|
||||
const {
|
||||
structure,
|
||||
locales,
|
||||
defaultLocale
|
||||
} = getI18nInfo(collection);
|
||||
let entryValue;
|
||||
if (structure === I18N_STRUCTURE.SINGLE_FILE) {
|
||||
entryValue = mergeSingleFileValue(await getEntryValue(path), defaultLocale, locales);
|
||||
} else {
|
||||
const entryValues = await Promise.all(locales.map(async locale => {
|
||||
const entryPath = getFilePath(structure, extension, path, slug, locale);
|
||||
const value = await getEntryValue(entryPath).catch(() => null);
|
||||
return {
|
||||
value,
|
||||
locale
|
||||
};
|
||||
}));
|
||||
const nonNullValues = entryValues.filter(e => e.value !== null);
|
||||
entryValue = mergeValues(collection, structure, defaultLocale, nonNullValues);
|
||||
}
|
||||
return entryValue;
|
||||
}
|
||||
function groupEntries(collection, extension, entries) {
|
||||
const {
|
||||
structure,
|
||||
defaultLocale,
|
||||
locales
|
||||
} = getI18nInfo(collection);
|
||||
if (structure === I18N_STRUCTURE.SINGLE_FILE) {
|
||||
return entries.map(e => mergeSingleFileValue(e, defaultLocale, locales));
|
||||
}
|
||||
const grouped = (0, _groupBy2.default)(entries.map(e => ({
|
||||
locale: getLocaleFromPath(structure, extension, e.path),
|
||||
value: e
|
||||
})), ({
|
||||
locale,
|
||||
value: e
|
||||
}) => {
|
||||
return normalizeFilePath(structure, e.path, locale);
|
||||
});
|
||||
const groupedEntries = Object.values(grouped).reduce((acc, values) => {
|
||||
const entryValue = mergeValues(collection, structure, defaultLocale, values);
|
||||
return [...acc, entryValue];
|
||||
}, []);
|
||||
return groupedEntries;
|
||||
}
|
||||
function getI18nDataFiles(collection, extension, path, slug, diffFiles) {
|
||||
const {
|
||||
structure
|
||||
} = getI18nInfo(collection);
|
||||
if (structure === I18N_STRUCTURE.SINGLE_FILE) {
|
||||
return diffFiles;
|
||||
}
|
||||
const paths = getFilePaths(collection, extension, path, slug);
|
||||
const dataFiles = paths.reduce((acc, path) => {
|
||||
const dataFile = diffFiles.find(file => file.path === path);
|
||||
if (dataFile) {
|
||||
return [...acc, dataFile];
|
||||
} else {
|
||||
return [...acc, {
|
||||
path,
|
||||
id: '',
|
||||
newFile: false
|
||||
}];
|
||||
}
|
||||
}, []);
|
||||
return dataFiles;
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
function duplicateDefaultI18nFields(collection, dataFields) {
|
||||
const {
|
||||
locales,
|
||||
defaultLocale
|
||||
} = getI18nInfo(collection);
|
||||
const i18nFields = Object.fromEntries(locales.filter(locale => locale !== defaultLocale).map(locale => [locale, {
|
||||
data: dataFields
|
||||
}]));
|
||||
return i18nFields;
|
||||
}
|
||||
function duplicateI18nFields(entryDraft, field, locales, defaultLocale, fieldPath = [field.get('name')]) {
|
||||
const value = entryDraft.getIn(['entry', 'data', ...fieldPath]);
|
||||
if (field.get(I18N) === I18N_FIELD.DUPLICATE) {
|
||||
locales.filter(l => l !== defaultLocale).forEach(l => {
|
||||
entryDraft = entryDraft.setIn(['entry', ...getDataPath(l, defaultLocale), ...fieldPath], value);
|
||||
});
|
||||
}
|
||||
if (field.has('field') && !_immutable.List.isList(value)) {
|
||||
const fields = [field.get('field')];
|
||||
fields.forEach(field => {
|
||||
entryDraft = duplicateI18nFields(entryDraft, field, locales, defaultLocale, [...fieldPath, field.get('name')]);
|
||||
});
|
||||
} else if (field.has('fields') && !_immutable.List.isList(value)) {
|
||||
const fields = field.get('fields').toArray();
|
||||
fields.forEach(field => {
|
||||
entryDraft = duplicateI18nFields(entryDraft, field, locales, defaultLocale, [...fieldPath, field.get('name')]);
|
||||
});
|
||||
}
|
||||
return entryDraft;
|
||||
}
|
||||
function getPreviewEntry(entry, locale, defaultLocale) {
|
||||
if (locale === defaultLocale) {
|
||||
return entry;
|
||||
}
|
||||
return entry.set('data', entry.getIn([I18N, locale, 'data']));
|
||||
}
|
||||
function serializeI18n(collection, entry,
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
serializeValues) {
|
||||
const {
|
||||
locales,
|
||||
defaultLocale
|
||||
} = getI18nInfo(collection);
|
||||
locales.filter(locale => locale !== defaultLocale).forEach(locale => {
|
||||
const dataPath = getLocaleDataPath(locale);
|
||||
entry = entry.setIn(dataPath, serializeValues(entry.getIn(dataPath)));
|
||||
});
|
||||
return entry;
|
||||
}
|
||||
13
node_modules/decap-cms-core/dist/esm/lib/phrases.js
generated
vendored
Normal file
13
node_modules/decap-cms-core/dist/esm/lib/phrases.js
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.getPhrases = getPhrases;
|
||||
var _merge2 = _interopRequireDefault(require("lodash/merge"));
|
||||
var _registry = require("./registry");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function getPhrases(locale) {
|
||||
const phrases = (0, _merge2.default)({}, (0, _registry.getLocale)('en'), (0, _registry.getLocale)(locale));
|
||||
return phrases;
|
||||
}
|
||||
364
node_modules/decap-cms-core/dist/esm/lib/registry.js
generated
vendored
Normal file
364
node_modules/decap-cms-core/dist/esm/lib/registry.js
generated
vendored
Normal file
@@ -0,0 +1,364 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
exports.getBackend = getBackend;
|
||||
exports.getCustomFormats = getCustomFormats;
|
||||
exports.getCustomFormatsExtensions = getCustomFormatsExtensions;
|
||||
exports.getCustomFormatsFormatters = getCustomFormatsFormatters;
|
||||
exports.getEditorComponents = getEditorComponents;
|
||||
exports.getEventListeners = getEventListeners;
|
||||
exports.getFormatter = getFormatter;
|
||||
exports.getLocale = getLocale;
|
||||
exports.getMediaLibrary = getMediaLibrary;
|
||||
exports.getPreviewStyles = getPreviewStyles;
|
||||
exports.getPreviewTemplate = getPreviewTemplate;
|
||||
exports.getRemarkPlugins = getRemarkPlugins;
|
||||
exports.getWidget = getWidget;
|
||||
exports.getWidgetValueSerializer = getWidgetValueSerializer;
|
||||
exports.getWidgets = getWidgets;
|
||||
exports.invokeEvent = invokeEvent;
|
||||
exports.registerBackend = registerBackend;
|
||||
exports.registerCustomFormat = registerCustomFormat;
|
||||
exports.registerEditorComponent = registerEditorComponent;
|
||||
exports.registerEventListener = registerEventListener;
|
||||
exports.registerLocale = registerLocale;
|
||||
exports.registerMediaLibrary = registerMediaLibrary;
|
||||
exports.registerPreviewStyle = registerPreviewStyle;
|
||||
exports.registerPreviewTemplate = registerPreviewTemplate;
|
||||
exports.registerRemarkPlugin = registerRemarkPlugin;
|
||||
exports.registerWidget = registerWidget;
|
||||
exports.registerWidgetValueSerializer = registerWidgetValueSerializer;
|
||||
exports.removeEventListener = removeEventListener;
|
||||
exports.resolveWidget = resolveWidget;
|
||||
var _immutable = require("immutable");
|
||||
var _immer = require("immer");
|
||||
var _commonTags = require("common-tags");
|
||||
var _EditorComponent = _interopRequireDefault(require("../valueObjects/EditorComponent"));
|
||||
const _excluded = ["name", "controlComponent", "previewComponent", "schema", "allowMapValue", "globalStyles"];
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
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; }
|
||||
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; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const allowedEvents = ['prePublish', 'postPublish', 'preUnpublish', 'postUnpublish', 'preSave', 'postSave'];
|
||||
const eventHandlers = {};
|
||||
allowedEvents.forEach(e => {
|
||||
eventHandlers[e] = [];
|
||||
});
|
||||
|
||||
/**
|
||||
* Global Registry Object
|
||||
*/
|
||||
const registry = {
|
||||
backends: {},
|
||||
templates: {},
|
||||
previewStyles: [],
|
||||
widgets: {},
|
||||
editorComponents: (0, _immutable.Map)(),
|
||||
remarkPlugins: [],
|
||||
widgetValueSerializers: {},
|
||||
mediaLibraries: [],
|
||||
locales: {},
|
||||
eventHandlers,
|
||||
formats: {}
|
||||
};
|
||||
var _default = exports.default = {
|
||||
registerPreviewStyle,
|
||||
getPreviewStyles,
|
||||
registerPreviewTemplate,
|
||||
getPreviewTemplate,
|
||||
registerWidget,
|
||||
getWidget,
|
||||
getWidgets,
|
||||
resolveWidget,
|
||||
registerEditorComponent,
|
||||
getEditorComponents,
|
||||
registerRemarkPlugin,
|
||||
getRemarkPlugins,
|
||||
registerWidgetValueSerializer,
|
||||
getWidgetValueSerializer,
|
||||
registerBackend,
|
||||
getBackend,
|
||||
registerMediaLibrary,
|
||||
getMediaLibrary,
|
||||
registerLocale,
|
||||
getLocale,
|
||||
registerEventListener,
|
||||
removeEventListener,
|
||||
getEventListeners,
|
||||
invokeEvent,
|
||||
registerCustomFormat,
|
||||
getCustomFormats,
|
||||
getCustomFormatsExtensions,
|
||||
getCustomFormatsFormatters
|
||||
};
|
||||
/**
|
||||
* Preview Styles
|
||||
*
|
||||
* Valid options:
|
||||
* - raw {boolean} if `true`, `style` value is expected to be a CSS string
|
||||
*/
|
||||
function registerPreviewStyle(style, opts) {
|
||||
registry.previewStyles.push(_objectSpread(_objectSpread({}, opts), {}, {
|
||||
value: style
|
||||
}));
|
||||
}
|
||||
function getPreviewStyles() {
|
||||
return registry.previewStyles;
|
||||
}
|
||||
|
||||
/**
|
||||
* Preview Templates
|
||||
*/
|
||||
function registerPreviewTemplate(name, component) {
|
||||
registry.templates[name] = component;
|
||||
}
|
||||
function getPreviewTemplate(name) {
|
||||
return registry.templates[name];
|
||||
}
|
||||
|
||||
/**
|
||||
* Editor Widgets
|
||||
*/
|
||||
function registerWidget(name, control, preview, schema = {}) {
|
||||
if (Array.isArray(name)) {
|
||||
name.forEach(widget => {
|
||||
if (typeof widget !== 'object') {
|
||||
console.error(`Cannot register widget: ${widget}`);
|
||||
} else {
|
||||
registerWidget(widget);
|
||||
}
|
||||
});
|
||||
} else if (typeof name === 'string') {
|
||||
// A registered widget control can be reused by a new widget, allowing
|
||||
// multiple copies with different previews.
|
||||
const newControl = typeof control === 'string' ? registry.widgets[control].control : control;
|
||||
registry.widgets[name] = {
|
||||
control: newControl,
|
||||
preview,
|
||||
schema
|
||||
};
|
||||
} else if (typeof name === 'object') {
|
||||
const {
|
||||
name: widgetName,
|
||||
controlComponent: control,
|
||||
previewComponent: preview,
|
||||
schema = {},
|
||||
allowMapValue,
|
||||
globalStyles
|
||||
} = name,
|
||||
options = _objectWithoutProperties(name, _excluded);
|
||||
if (registry.widgets[widgetName]) {
|
||||
console.warn((0, _commonTags.oneLine)`
|
||||
Multiple widgets registered with name "${widgetName}". Only the last widget registered with
|
||||
this name will be used.
|
||||
`);
|
||||
}
|
||||
if (!control) {
|
||||
throw Error(`Widget "${widgetName}" registered without \`controlComponent\`.`);
|
||||
}
|
||||
registry.widgets[widgetName] = _objectSpread({
|
||||
control,
|
||||
preview,
|
||||
schema,
|
||||
globalStyles,
|
||||
allowMapValue
|
||||
}, options);
|
||||
} else {
|
||||
console.error('`registerWidget` failed, called with incorrect arguments.');
|
||||
}
|
||||
}
|
||||
function getWidget(name) {
|
||||
return registry.widgets[name];
|
||||
}
|
||||
function getWidgets() {
|
||||
return (0, _immer.produce)(Object.entries(registry.widgets), draft => {
|
||||
return draft.map(([key, value]) => _objectSpread({
|
||||
name: key
|
||||
}, value));
|
||||
});
|
||||
}
|
||||
function resolveWidget(name) {
|
||||
return getWidget(name || 'string') || getWidget('unknown');
|
||||
}
|
||||
|
||||
/**
|
||||
* Markdown Editor Custom Components
|
||||
*/
|
||||
function registerEditorComponent(component) {
|
||||
const plugin = (0, _EditorComponent.default)(component);
|
||||
if (plugin.type === 'code-block') {
|
||||
const codeBlock = registry.editorComponents.find(c => c.type === 'code-block');
|
||||
if (codeBlock) {
|
||||
console.warn((0, _commonTags.oneLine)`
|
||||
Only one editor component of type "code-block" may be registered. Previously registered code
|
||||
block component(s) will be overwritten.
|
||||
`);
|
||||
registry.editorComponents = registry.editorComponents.delete(codeBlock.id);
|
||||
}
|
||||
}
|
||||
registry.editorComponents = registry.editorComponents.set(plugin.id, plugin);
|
||||
}
|
||||
function getEditorComponents() {
|
||||
return registry.editorComponents;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remark plugins
|
||||
*/
|
||||
/** @typedef {import('unified').Pluggable} RemarkPlugin */
|
||||
/** @type {(plugin: RemarkPlugin) => void} */
|
||||
function registerRemarkPlugin(plugin) {
|
||||
registry.remarkPlugins.push(plugin);
|
||||
}
|
||||
/** @type {() => Array<RemarkPlugin>} */
|
||||
function getRemarkPlugins() {
|
||||
return registry.remarkPlugins;
|
||||
}
|
||||
|
||||
/**
|
||||
* Widget Serializers
|
||||
*/
|
||||
function registerWidgetValueSerializer(widgetName, serializer) {
|
||||
registry.widgetValueSerializers[widgetName] = serializer;
|
||||
}
|
||||
function getWidgetValueSerializer(widgetName) {
|
||||
return registry.widgetValueSerializers[widgetName];
|
||||
}
|
||||
|
||||
/**
|
||||
* Backend API
|
||||
*/
|
||||
function registerBackend(name, BackendClass) {
|
||||
if (!name || !BackendClass) {
|
||||
console.error("Backend parameters invalid. example: CMS.registerBackend('myBackend', BackendClass)");
|
||||
} else if (registry.backends[name]) {
|
||||
console.error(`Backend [${name}] already registered. Please choose a different name.`);
|
||||
} else {
|
||||
registry.backends[name] = {
|
||||
init: (...args) => new BackendClass(...args)
|
||||
};
|
||||
}
|
||||
}
|
||||
function getBackend(name) {
|
||||
return registry.backends[name];
|
||||
}
|
||||
|
||||
/**
|
||||
* Media Libraries
|
||||
*/
|
||||
function registerMediaLibrary(mediaLibrary, options) {
|
||||
if (registry.mediaLibraries.find(ml => mediaLibrary.name === ml.name)) {
|
||||
throw new Error(`A media library named ${mediaLibrary.name} has already been registered.`);
|
||||
}
|
||||
registry.mediaLibraries.push(_objectSpread(_objectSpread({}, mediaLibrary), {}, {
|
||||
options
|
||||
}));
|
||||
}
|
||||
function getMediaLibrary(name) {
|
||||
return registry.mediaLibraries.find(ml => ml.name === name);
|
||||
}
|
||||
function validateEventName(name) {
|
||||
if (!allowedEvents.includes(name)) {
|
||||
throw new Error(`Invalid event name '${name}'`);
|
||||
}
|
||||
}
|
||||
function getEventListeners(name) {
|
||||
validateEventName(name);
|
||||
return [...registry.eventHandlers[name]];
|
||||
}
|
||||
function registerEventListener({
|
||||
name,
|
||||
handler
|
||||
}, options = {}) {
|
||||
validateEventName(name);
|
||||
registry.eventHandlers[name].push({
|
||||
handler,
|
||||
options
|
||||
});
|
||||
}
|
||||
async function invokeEvent({
|
||||
name,
|
||||
data
|
||||
}) {
|
||||
validateEventName(name);
|
||||
const handlers = registry.eventHandlers[name];
|
||||
let _data = _objectSpread({}, data);
|
||||
for (const {
|
||||
handler,
|
||||
options
|
||||
} of handlers) {
|
||||
const result = await handler(_data, options);
|
||||
if (result !== undefined) {
|
||||
const entry = _data.entry.set('data', result);
|
||||
_data = _objectSpread(_objectSpread({}, data), {}, {
|
||||
entry
|
||||
});
|
||||
}
|
||||
}
|
||||
return _data.entry.get('data');
|
||||
}
|
||||
function removeEventListener({
|
||||
name,
|
||||
handler
|
||||
}) {
|
||||
validateEventName(name);
|
||||
if (handler) {
|
||||
registry.eventHandlers[name] = registry.eventHandlers[name].filter(item => item.handler !== handler);
|
||||
} else {
|
||||
registry.eventHandlers[name] = [];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Locales
|
||||
*/
|
||||
function registerLocale(locale, phrases) {
|
||||
if (!locale || !phrases) {
|
||||
console.error("Locale parameters invalid. example: CMS.registerLocale('locale', phrases)");
|
||||
} else {
|
||||
registry.locales[locale] = phrases;
|
||||
}
|
||||
}
|
||||
function getLocale(locale) {
|
||||
return registry.locales[locale];
|
||||
}
|
||||
function registerCustomFormat(name, extension, formatter) {
|
||||
registry.formats[name] = {
|
||||
extension,
|
||||
formatter
|
||||
};
|
||||
}
|
||||
function getCustomFormats() {
|
||||
return registry.formats;
|
||||
}
|
||||
function getCustomFormatsExtensions() {
|
||||
return Object.entries(registry.formats).reduce(function (acc, [name, {
|
||||
extension
|
||||
}]) {
|
||||
return _objectSpread(_objectSpread({}, acc), {}, {
|
||||
[name]: extension
|
||||
});
|
||||
}, {});
|
||||
}
|
||||
|
||||
/** @type {() => Record<string, unknown>} */
|
||||
function getCustomFormatsFormatters() {
|
||||
return Object.entries(registry.formats).reduce(function (acc, [name, {
|
||||
formatter
|
||||
}]) {
|
||||
return _objectSpread(_objectSpread({}, acc), {}, {
|
||||
[name]: formatter
|
||||
});
|
||||
}, {});
|
||||
}
|
||||
function getFormatter(name) {
|
||||
var _registry$formats$nam;
|
||||
return (_registry$formats$nam = registry.formats[name]) === null || _registry$formats$nam === void 0 ? void 0 : _registry$formats$nam.formatter;
|
||||
}
|
||||
74
node_modules/decap-cms-core/dist/esm/lib/serializeEntryValues.js
generated
vendored
Normal file
74
node_modules/decap-cms-core/dist/esm/lib/serializeEntryValues.js
generated
vendored
Normal file
@@ -0,0 +1,74 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.deserializeValues = deserializeValues;
|
||||
exports.serializeValues = serializeValues;
|
||||
var _isNil2 = _interopRequireDefault(require("lodash/isNil"));
|
||||
var _immutable = require("immutable");
|
||||
var _registry = require("./registry");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
/**
|
||||
* Methods for serializing/deserializing entry field values. Most widgets don't
|
||||
* require this for their values, and those that do can typically serialize/
|
||||
* deserialize on every change from within the widget. The serialization
|
||||
* handlers here are for widgets whose values require heavy serialization that
|
||||
* would hurt performance if run for every change.
|
||||
|
||||
* An example of this is the markdown widget, whose value is stored as a
|
||||
* markdown string. Instead of stringifying on every change of that field, a
|
||||
* deserialization method is registered from the widget's control module that
|
||||
* converts the stored markdown string to an AST, and that AST serves as the
|
||||
* widget model during editing.
|
||||
*
|
||||
* Serialization handlers should be registered for each widget that requires
|
||||
* them, and the registration method is exposed through the registry. Any
|
||||
* registered deserialization handlers run on entry load, and serialization
|
||||
* handlers run on persist.
|
||||
*/
|
||||
function runSerializer(values, fields, method) {
|
||||
/**
|
||||
* Reduce the list of fields to a map where keys are field names and values
|
||||
* are field values, serializing the values of fields whose widgets have
|
||||
* registered serializers. If the field is a list or object, call recursively
|
||||
* for nested fields.
|
||||
*/
|
||||
let serializedData = fields.reduce((acc, field) => {
|
||||
const fieldName = field.get('name');
|
||||
const value = values.get(fieldName);
|
||||
const serializer = (0, _registry.getWidgetValueSerializer)(field.get('widget'));
|
||||
const nestedFields = field.get('fields');
|
||||
|
||||
// Call recursively for fields within lists
|
||||
if (nestedFields && _immutable.List.isList(value)) {
|
||||
return acc.set(fieldName, value.map(val => runSerializer(val, nestedFields, method)));
|
||||
}
|
||||
|
||||
// Call recursively for fields within objects
|
||||
if (nestedFields && _immutable.Map.isMap(value)) {
|
||||
return acc.set(fieldName, runSerializer(value, nestedFields, method));
|
||||
}
|
||||
|
||||
// Run serialization method on value if not null or undefined
|
||||
if (serializer && !(0, _isNil2.default)(value)) {
|
||||
return acc.set(fieldName, serializer[method](value));
|
||||
}
|
||||
|
||||
// If no serializer is registered for the field's widget, use the field as is
|
||||
if (!(0, _isNil2.default)(value)) {
|
||||
return acc.set(fieldName, value);
|
||||
}
|
||||
return acc;
|
||||
}, (0, _immutable.Map)());
|
||||
|
||||
//preserve unknown fields value
|
||||
serializedData = values.mergeDeep(serializedData);
|
||||
return serializedData;
|
||||
}
|
||||
function serializeValues(values, fields) {
|
||||
return runSerializer(values, fields, 'serialize');
|
||||
}
|
||||
function deserializeValues(values, fields) {
|
||||
return runSerializer(values, fields, 'deserialize');
|
||||
}
|
||||
15
node_modules/decap-cms-core/dist/esm/lib/textHelper.js
generated
vendored
Normal file
15
node_modules/decap-cms-core/dist/esm/lib/textHelper.js
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.stringToRGB = stringToRGB;
|
||||
function stringToRGB(str) {
|
||||
if (!str) return '000000';
|
||||
let hash = 0;
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
hash = str.charCodeAt(i) + ((hash << 5) - hash);
|
||||
}
|
||||
const c = (hash & 0x00ffffff).toString(16).toUpperCase();
|
||||
return `00000${c}`.slice(-6);
|
||||
}
|
||||
128
node_modules/decap-cms-core/dist/esm/lib/urlHelper.js
generated
vendored
Normal file
128
node_modules/decap-cms-core/dist/esm/lib/urlHelper.js
generated
vendored
Normal file
@@ -0,0 +1,128 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.addParams = addParams;
|
||||
exports.getCharReplacer = getCharReplacer;
|
||||
exports.getCollectionUrl = getCollectionUrl;
|
||||
exports.getNewEntryUrl = getNewEntryUrl;
|
||||
exports.joinUrlPath = joinUrlPath;
|
||||
exports.sanitizeChar = sanitizeChar;
|
||||
exports.sanitizeSlug = sanitizeSlug;
|
||||
exports.sanitizeURI = sanitizeURI;
|
||||
exports.stripProtocol = stripProtocol;
|
||||
var _partialRight2 = _interopRequireDefault(require("lodash/partialRight"));
|
||||
var _flow2 = _interopRequireDefault(require("lodash/flow"));
|
||||
var _escapeRegExp2 = _interopRequireDefault(require("lodash/escapeRegExp"));
|
||||
var _isString2 = _interopRequireDefault(require("lodash/isString"));
|
||||
var _url = _interopRequireDefault(require("url"));
|
||||
var _urlJoin = _interopRequireDefault(require("url-join"));
|
||||
var _diacritics = _interopRequireDefault(require("diacritics"));
|
||||
var _sanitizeFilename = _interopRequireDefault(require("sanitize-filename"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
function getUrl(urlString, direct) {
|
||||
return `${direct ? '/#' : ''}${urlString}`;
|
||||
}
|
||||
function getCollectionUrl(collectionName, direct) {
|
||||
return getUrl(`/collections/${collectionName}`, direct);
|
||||
}
|
||||
function getNewEntryUrl(collectionName, direct) {
|
||||
return getUrl(`/collections/${collectionName}/new`, direct);
|
||||
}
|
||||
function addParams(urlString, params) {
|
||||
const parsedUrl = _url.default.parse(urlString, true);
|
||||
parsedUrl.query = _objectSpread(_objectSpread({}, parsedUrl.query), params);
|
||||
return _url.default.format(parsedUrl);
|
||||
}
|
||||
function stripProtocol(urlString) {
|
||||
const protocolEndIndex = urlString.indexOf('//');
|
||||
return protocolEndIndex > -1 ? urlString.slice(protocolEndIndex + 2) : urlString;
|
||||
}
|
||||
|
||||
/* See https://www.w3.org/International/articles/idn-and-iri/#path.
|
||||
* According to the new IRI (Internationalized Resource Identifier) spec, RFC 3987,
|
||||
* ASCII chars should be kept the same way as in standard URIs (letters digits _ - . ~).
|
||||
* Non-ASCII chars (unless they are not in the allowed "ucschars" list) should be percent-encoded.
|
||||
* If the string is not encoded in Unicode, it should be converted to UTF-8 and normalized first,
|
||||
* but JS stores strings as UTF-16/UCS-2 internally, so we should not normalize or re-encode.
|
||||
*/
|
||||
const uriChars = /[\w\-.~]/i;
|
||||
const ucsChars = /[\xA0-\u{D7FF}\u{F900}-\u{FDCF}\u{FDF0}-\u{FFEF}\u{10000}-\u{1FFFD}\u{20000}-\u{2FFFD}\u{30000}-\u{3FFFD}\u{40000}-\u{4FFFD}\u{50000}-\u{5FFFD}\u{60000}-\u{6FFFD}\u{70000}-\u{7FFFD}\u{80000}-\u{8FFFD}\u{90000}-\u{9FFFD}\u{A0000}-\u{AFFFD}\u{B0000}-\u{BFFFD}\u{C0000}-\u{CFFFD}\u{D0000}-\u{DFFFD}\u{E1000}-\u{EFFFD}]/u;
|
||||
function validURIChar(char) {
|
||||
return uriChars.test(char);
|
||||
}
|
||||
function validIRIChar(char) {
|
||||
return uriChars.test(char) || ucsChars.test(char);
|
||||
}
|
||||
function getCharReplacer(encoding, replacement) {
|
||||
let validChar;
|
||||
if (encoding === 'unicode') {
|
||||
validChar = validIRIChar;
|
||||
} else if (encoding === 'ascii') {
|
||||
validChar = validURIChar;
|
||||
} else {
|
||||
throw new Error('`options.encoding` must be "unicode" or "ascii".');
|
||||
}
|
||||
|
||||
// Check and make sure the replacement character is actually a safe char itself.
|
||||
if (!Array.from(replacement).every(validChar)) {
|
||||
throw new Error('The replacement character(s) (options.replacement) is itself unsafe.');
|
||||
}
|
||||
return char => validChar(char) ? char : replacement;
|
||||
}
|
||||
// `sanitizeURI` does not actually URI-encode the chars (that is the browser's and server's job), just removes the ones that are not allowed.
|
||||
function sanitizeURI(str, options) {
|
||||
const {
|
||||
replacement = '',
|
||||
encoding = 'unicode'
|
||||
} = options || {};
|
||||
if (!(0, _isString2.default)(str)) {
|
||||
throw new Error('The input slug must be a string.');
|
||||
}
|
||||
if (!(0, _isString2.default)(replacement)) {
|
||||
throw new Error('`options.replacement` must be a string.');
|
||||
}
|
||||
|
||||
// `Array.from` must be used instead of `String.split` because
|
||||
// `split` converts things like emojis into UTF-16 surrogate pairs.
|
||||
return Array.from(str).map(getCharReplacer(encoding, replacement)).join('');
|
||||
}
|
||||
function sanitizeChar(char, options) {
|
||||
const {
|
||||
encoding = 'unicode',
|
||||
sanitize_replacement: replacement = ''
|
||||
} = options || {};
|
||||
return getCharReplacer(encoding, replacement)(char);
|
||||
}
|
||||
function sanitizeSlug(str, options) {
|
||||
if (!(0, _isString2.default)(str)) {
|
||||
throw new Error('The input slug must be a string.');
|
||||
}
|
||||
const {
|
||||
encoding,
|
||||
clean_accents: stripDiacritics,
|
||||
sanitize_replacement: replacement
|
||||
} = options || {};
|
||||
const sanitizedSlug = (0, _flow2.default)([...(stripDiacritics ? [_diacritics.default.remove] : []), (0, _partialRight2.default)(sanitizeURI, {
|
||||
replacement,
|
||||
encoding
|
||||
}), (0, _partialRight2.default)(_sanitizeFilename.default, {
|
||||
replacement
|
||||
})])(str);
|
||||
|
||||
// Remove any doubled or leading/trailing replacement characters (that were added in the sanitizers).
|
||||
const doubleReplacement = new RegExp(`(?:${(0, _escapeRegExp2.default)(replacement)})+`, 'g');
|
||||
const trailingReplacement = new RegExp(`${(0, _escapeRegExp2.default)(replacement)}$`);
|
||||
const leadingReplacement = new RegExp(`^${(0, _escapeRegExp2.default)(replacement)}`);
|
||||
const normalizedSlug = sanitizedSlug.replace(doubleReplacement, replacement).replace(leadingReplacement, '').replace(trailingReplacement, '');
|
||||
return normalizedSlug;
|
||||
}
|
||||
function joinUrlPath(base, ...path) {
|
||||
return (0, _urlJoin.default)(base, ...path);
|
||||
}
|
||||
42
node_modules/decap-cms-core/dist/esm/mediaLibrary.js
generated
vendored
Normal file
42
node_modules/decap-cms-core/dist/esm/mediaLibrary.js
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
"use strict";
|
||||
|
||||
var _once2 = _interopRequireDefault(require("lodash/once"));
|
||||
var _registry = require("./lib/registry");
|
||||
var _redux = require("./redux");
|
||||
var _config = require("./actions/config");
|
||||
var _mediaLibrary = require("./actions/mediaLibrary");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
/**
|
||||
* This module is currently concerned only with external media libraries
|
||||
* registered via `registerMediaLibrary`.
|
||||
*/
|
||||
|
||||
function handleInsert(url) {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
return _redux.store.dispatch((0, _mediaLibrary.insertMedia)(url, undefined));
|
||||
}
|
||||
const initializeMediaLibrary = (0, _once2.default)(async function initializeMediaLibrary(name, options) {
|
||||
const lib = (0, _registry.getMediaLibrary)(name);
|
||||
if (!lib) {
|
||||
const err = new Error(`Missing external media library '${name}'. Please use 'registerMediaLibrary' to register it.`);
|
||||
_redux.store.dispatch((0, _config.configFailed)(err));
|
||||
} else {
|
||||
const instance = await lib.init({
|
||||
options,
|
||||
handleInsert
|
||||
});
|
||||
_redux.store.dispatch((0, _mediaLibrary.createMediaLibrary)(instance));
|
||||
}
|
||||
});
|
||||
_redux.store.subscribe(() => {
|
||||
const state = _redux.store.getState();
|
||||
if (state) {
|
||||
var _state$config$media_l;
|
||||
const mediaLibraryName = (_state$config$media_l = state.config.media_library) === null || _state$config$media_l === void 0 ? void 0 : _state$config$media_l.name;
|
||||
if (mediaLibraryName && !state.mediaLibrary.get('externalLibrary')) {
|
||||
const mediaLibraryConfig = state.config.media_library;
|
||||
initializeMediaLibrary(mediaLibraryName, mediaLibraryConfig);
|
||||
}
|
||||
}
|
||||
});
|
||||
33
node_modules/decap-cms-core/dist/esm/reducers/auth.js
generated
vendored
Normal file
33
node_modules/decap-cms-core/dist/esm/reducers/auth.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.defaultState = exports.default = void 0;
|
||||
var _immer = require("immer");
|
||||
var _auth = require("../actions/auth");
|
||||
const defaultState = exports.defaultState = {
|
||||
isFetching: false,
|
||||
user: undefined,
|
||||
error: undefined
|
||||
};
|
||||
const auth = (0, _immer.produce)((state, action) => {
|
||||
switch (action.type) {
|
||||
case _auth.AUTH_REQUEST:
|
||||
state.isFetching = true;
|
||||
break;
|
||||
case _auth.AUTH_SUCCESS:
|
||||
state.user = action.payload;
|
||||
break;
|
||||
case _auth.AUTH_FAILURE:
|
||||
state.error = action.payload && action.payload.toString();
|
||||
break;
|
||||
case _auth.AUTH_REQUEST_DONE:
|
||||
state.isFetching = false;
|
||||
break;
|
||||
case _auth.LOGOUT:
|
||||
state.user = undefined;
|
||||
state.isFetching = false;
|
||||
}
|
||||
}, defaultState);
|
||||
var _default = exports.default = auth;
|
||||
427
node_modules/decap-cms-core/dist/esm/reducers/collections.js
generated
vendored
Normal file
427
node_modules/decap-cms-core/dist/esm/reducers/collections.js
generated
vendored
Normal file
@@ -0,0 +1,427 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
exports.getFieldsNames = getFieldsNames;
|
||||
exports.getFileFromSlug = getFileFromSlug;
|
||||
exports.selectAllowDeletion = selectAllowDeletion;
|
||||
exports.selectAllowNewEntries = selectAllowNewEntries;
|
||||
exports.selectDefaultSortableFields = selectDefaultSortableFields;
|
||||
exports.selectEntryCollectionTitle = selectEntryCollectionTitle;
|
||||
exports.selectEntryPath = selectEntryPath;
|
||||
exports.selectEntrySlug = selectEntrySlug;
|
||||
exports.selectField = selectField;
|
||||
exports.selectFields = selectFields;
|
||||
exports.selectFieldsComments = selectFieldsComments;
|
||||
exports.selectFieldsWithMediaFolders = selectFieldsWithMediaFolders;
|
||||
exports.selectFileEntryLabel = selectFileEntryLabel;
|
||||
exports.selectFolderEntryExtension = selectFolderEntryExtension;
|
||||
exports.selectHasMetaPath = selectHasMetaPath;
|
||||
exports.selectIdentifier = selectIdentifier;
|
||||
exports.selectInferredField = selectInferredField;
|
||||
exports.selectMediaFolders = selectMediaFolders;
|
||||
exports.selectSortDataPath = selectSortDataPath;
|
||||
exports.selectSortableFields = selectSortableFields;
|
||||
exports.selectTemplateName = selectTemplateName;
|
||||
exports.selectViewFilters = selectViewFilters;
|
||||
exports.selectViewGroups = selectViewGroups;
|
||||
exports.traverseFields = traverseFields;
|
||||
exports.updateFieldByKey = updateFieldByKey;
|
||||
var _escapeRegExp2 = _interopRequireDefault(require("lodash/escapeRegExp"));
|
||||
var _get2 = _interopRequireDefault(require("lodash/get"));
|
||||
var _immutable = require("immutable");
|
||||
var _decapCmsLibWidgets = require("decap-cms-lib-widgets");
|
||||
var _consoleError = _interopRequireDefault(require("../lib/consoleError"));
|
||||
var _config = require("../actions/config");
|
||||
var _collectionTypes = require("../constants/collectionTypes");
|
||||
var _commitProps = require("../constants/commitProps");
|
||||
var _fieldInference = require("../constants/fieldInference");
|
||||
var _formats = require("../formats/formats");
|
||||
var _entries = require("./entries");
|
||||
var _formatters = require("../lib/formatters");
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const {
|
||||
keyToPathArray
|
||||
} = _decapCmsLibWidgets.stringTemplate;
|
||||
const defaultState = (0, _immutable.fromJS)({});
|
||||
function collections(state = defaultState, action) {
|
||||
switch (action.type) {
|
||||
case _config.CONFIG_SUCCESS:
|
||||
{
|
||||
const collections = action.payload.collections;
|
||||
let newState = (0, _immutable.OrderedMap)({});
|
||||
collections.forEach(collection => {
|
||||
newState = newState.set(collection.name, (0, _immutable.fromJS)(collection));
|
||||
});
|
||||
return newState;
|
||||
}
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
}
|
||||
const selectors = {
|
||||
[_collectionTypes.FOLDER]: {
|
||||
entryExtension(collection) {
|
||||
const ext = collection.get('extension') || (0, _get2.default)((0, _formats.getFormatExtensions)(), collection.get('format') || 'frontmatter');
|
||||
if (!ext) {
|
||||
throw new Error(`No extension found for format ${collection.get('format')}`);
|
||||
}
|
||||
return ext.replace(/^\./, '');
|
||||
},
|
||||
fields(collection) {
|
||||
return collection.get('fields');
|
||||
},
|
||||
entryPath(collection, slug) {
|
||||
const folder = collection.get('folder').replace(/\/$/, '');
|
||||
return `${folder}/${slug}.${this.entryExtension(collection)}`;
|
||||
},
|
||||
entrySlug(collection, path) {
|
||||
var _path$split$pop;
|
||||
const folder = collection.get('folder').replace(/\/$/, '');
|
||||
const slug = (_path$split$pop = path.split(folder + '/').pop()) === null || _path$split$pop === void 0 ? void 0 : _path$split$pop.replace(new RegExp(`\\.${(0, _escapeRegExp2.default)(this.entryExtension(collection))}$`), '');
|
||||
return slug;
|
||||
},
|
||||
allowNewEntries(collection) {
|
||||
return collection.get('create');
|
||||
},
|
||||
allowDeletion(collection) {
|
||||
return collection.get('delete', true);
|
||||
},
|
||||
templateName(collection) {
|
||||
return collection.get('name');
|
||||
}
|
||||
},
|
||||
[_collectionTypes.FILES]: {
|
||||
fileForEntry(collection, slug) {
|
||||
const files = collection.get('files');
|
||||
return files && files.filter(f => (f === null || f === void 0 ? void 0 : f.get('name')) === slug).get(0);
|
||||
},
|
||||
fields(collection, slug) {
|
||||
const file = this.fileForEntry(collection, slug);
|
||||
return file && file.get('fields');
|
||||
},
|
||||
entryPath(collection, slug) {
|
||||
const file = this.fileForEntry(collection, slug);
|
||||
return file && file.get('file');
|
||||
},
|
||||
entrySlug(collection, path) {
|
||||
const file = collection.get('files').filter(f => (f === null || f === void 0 ? void 0 : f.get('file')) === path).get(0);
|
||||
return file && file.get('name');
|
||||
},
|
||||
entryLabel(collection, slug) {
|
||||
const file = this.fileForEntry(collection, slug);
|
||||
return file && file.get('label');
|
||||
},
|
||||
allowNewEntries() {
|
||||
return false;
|
||||
},
|
||||
allowDeletion(collection) {
|
||||
return collection.get('delete', false);
|
||||
},
|
||||
templateName(_collection, slug) {
|
||||
return slug;
|
||||
}
|
||||
}
|
||||
};
|
||||
function getFieldsWithMediaFolders(fields) {
|
||||
const fieldsWithMediaFolders = fields.reduce((acc, f) => {
|
||||
if (f.has('media_folder')) {
|
||||
acc = [...acc, f];
|
||||
}
|
||||
if (f.has('fields')) {
|
||||
var _f$get;
|
||||
const fields = (_f$get = f.get('fields')) === null || _f$get === void 0 ? void 0 : _f$get.toArray();
|
||||
acc = [...acc, ...getFieldsWithMediaFolders(fields)];
|
||||
} else if (f.has('field')) {
|
||||
const field = f.get('field');
|
||||
acc = [...acc, ...getFieldsWithMediaFolders([field])];
|
||||
} else if (f.has('types')) {
|
||||
var _f$get2;
|
||||
const types = (_f$get2 = f.get('types')) === null || _f$get2 === void 0 ? void 0 : _f$get2.toArray();
|
||||
acc = [...acc, ...getFieldsWithMediaFolders(types)];
|
||||
}
|
||||
return acc;
|
||||
}, []);
|
||||
return fieldsWithMediaFolders;
|
||||
}
|
||||
function getFileFromSlug(collection, slug) {
|
||||
var _collection$get;
|
||||
return (_collection$get = collection.get('files')) === null || _collection$get === void 0 ? void 0 : _collection$get.toArray().find(f => f.get('name') === slug);
|
||||
}
|
||||
function selectFieldsWithMediaFolders(collection, slug) {
|
||||
if (collection.has('folder')) {
|
||||
const fields = collection.get('fields').toArray();
|
||||
return getFieldsWithMediaFolders(fields);
|
||||
} else if (collection.has('files')) {
|
||||
var _getFileFromSlug;
|
||||
const fields = ((_getFileFromSlug = getFileFromSlug(collection, slug)) === null || _getFileFromSlug === void 0 ? void 0 : _getFileFromSlug.get('fields').toArray()) || [];
|
||||
return getFieldsWithMediaFolders(fields);
|
||||
}
|
||||
return [];
|
||||
}
|
||||
function selectMediaFolders(config, collection, entry) {
|
||||
const fields = selectFieldsWithMediaFolders(collection, entry.get('slug'));
|
||||
const folders = fields.map(f => (0, _entries.selectMediaFolder)(config, collection, entry, f));
|
||||
if (collection.has('files')) {
|
||||
const file = getFileFromSlug(collection, entry.get('slug'));
|
||||
if (file) {
|
||||
folders.unshift((0, _entries.selectMediaFolder)(config, collection, entry, undefined));
|
||||
}
|
||||
}
|
||||
if (collection.has('media_folder')) {
|
||||
// stop evaluating media folders at collection level
|
||||
collection = collection.delete('files');
|
||||
folders.unshift((0, _entries.selectMediaFolder)(config, collection, entry, undefined));
|
||||
}
|
||||
return (0, _immutable.Set)(folders).toArray();
|
||||
}
|
||||
function selectFields(collection, slug) {
|
||||
return selectors[collection.get('type')].fields(collection, slug);
|
||||
}
|
||||
function selectFolderEntryExtension(collection) {
|
||||
return selectors[_collectionTypes.FOLDER].entryExtension(collection);
|
||||
}
|
||||
function selectFileEntryLabel(collection, slug) {
|
||||
return selectors[_collectionTypes.FILES].entryLabel(collection, slug);
|
||||
}
|
||||
function selectEntryPath(collection, slug) {
|
||||
return selectors[collection.get('type')].entryPath(collection, slug);
|
||||
}
|
||||
function selectEntrySlug(collection, path) {
|
||||
return selectors[collection.get('type')].entrySlug(collection, path);
|
||||
}
|
||||
function selectAllowNewEntries(collection) {
|
||||
return selectors[collection.get('type')].allowNewEntries(collection);
|
||||
}
|
||||
function selectAllowDeletion(collection) {
|
||||
return selectors[collection.get('type')].allowDeletion(collection);
|
||||
}
|
||||
function selectTemplateName(collection, slug) {
|
||||
return selectors[collection.get('type')].templateName(collection, slug);
|
||||
}
|
||||
function getFieldsNames(fields, prefix = '') {
|
||||
let names = fields.map(f => `${prefix}${f.get('name')}`);
|
||||
fields.forEach((f, index) => {
|
||||
if (f.has('fields')) {
|
||||
var _f$get3;
|
||||
const fields = (_f$get3 = f.get('fields')) === null || _f$get3 === void 0 ? void 0 : _f$get3.toArray();
|
||||
names = [...names, ...getFieldsNames(fields, `${names[index]}.`)];
|
||||
} else if (f.has('field')) {
|
||||
const field = f.get('field');
|
||||
names = [...names, ...getFieldsNames([field], `${names[index]}.`)];
|
||||
} else if (f.has('types')) {
|
||||
var _f$get4;
|
||||
const types = (_f$get4 = f.get('types')) === null || _f$get4 === void 0 ? void 0 : _f$get4.toArray();
|
||||
names = [...names, ...getFieldsNames(types, `${names[index]}.`)];
|
||||
}
|
||||
});
|
||||
return names;
|
||||
}
|
||||
function selectField(collection, key) {
|
||||
const array = keyToPathArray(key);
|
||||
let name;
|
||||
let field;
|
||||
let fields = collection.get('fields', (0, _immutable.List)()).toArray();
|
||||
while ((name = array.shift()) && fields) {
|
||||
var _field, _field3, _field5;
|
||||
field = fields.find(f => f.get('name') === name);
|
||||
if ((_field = field) !== null && _field !== void 0 && _field.has('fields')) {
|
||||
var _field2, _field2$get;
|
||||
fields = (_field2 = field) === null || _field2 === void 0 ? void 0 : (_field2$get = _field2.get('fields')) === null || _field2$get === void 0 ? void 0 : _field2$get.toArray();
|
||||
} else if ((_field3 = field) !== null && _field3 !== void 0 && _field3.has('field')) {
|
||||
var _field4;
|
||||
fields = [(_field4 = field) === null || _field4 === void 0 ? void 0 : _field4.get('field')];
|
||||
} else if ((_field5 = field) !== null && _field5 !== void 0 && _field5.has('types')) {
|
||||
var _field6, _field6$get;
|
||||
fields = (_field6 = field) === null || _field6 === void 0 ? void 0 : (_field6$get = _field6.get('types')) === null || _field6$get === void 0 ? void 0 : _field6$get.toArray();
|
||||
}
|
||||
}
|
||||
return field;
|
||||
}
|
||||
function traverseFields(fields, updater, done = () => false) {
|
||||
if (done()) {
|
||||
return fields;
|
||||
}
|
||||
fields = fields.map(f => {
|
||||
const field = updater(f);
|
||||
if (done()) {
|
||||
return field;
|
||||
} else if (field.has('fields')) {
|
||||
return field.set('fields', traverseFields(field.get('fields'), updater, done));
|
||||
} else if (field.has('field')) {
|
||||
return field.set('field', traverseFields((0, _immutable.List)([field.get('field')]), updater, done).get(0));
|
||||
} else if (field.has('types')) {
|
||||
return field.set('types', traverseFields(field.get('types'), updater, done));
|
||||
} else {
|
||||
return field;
|
||||
}
|
||||
}).toList();
|
||||
return fields;
|
||||
}
|
||||
function updateFieldByKey(collection, key, updater) {
|
||||
const selected = selectField(collection, key);
|
||||
if (!selected) {
|
||||
return collection;
|
||||
}
|
||||
let updated = false;
|
||||
function updateAndBreak(f) {
|
||||
const field = f;
|
||||
if (field === selected) {
|
||||
updated = true;
|
||||
return updater(field);
|
||||
} else {
|
||||
return field;
|
||||
}
|
||||
}
|
||||
collection = collection.set('fields', traverseFields(collection.get('fields', (0, _immutable.List)()), updateAndBreak, () => updated));
|
||||
return collection;
|
||||
}
|
||||
function selectIdentifier(collection) {
|
||||
const identifier = collection.get('identifier_field');
|
||||
const identifierFields = identifier ? [identifier, ..._fieldInference.IDENTIFIER_FIELDS] : [..._fieldInference.IDENTIFIER_FIELDS];
|
||||
const fieldNames = getFieldsNames(collection.get('fields', (0, _immutable.List)()).toArray());
|
||||
return identifierFields.find(id => fieldNames.find(name => name.toLowerCase().trim() === id.toLowerCase().trim()));
|
||||
}
|
||||
function selectInferredField(collection, fieldName) {
|
||||
if (fieldName === 'title' && collection.get('identifier_field')) {
|
||||
return selectIdentifier(collection);
|
||||
}
|
||||
const inferableField = _fieldInference.INFERABLE_FIELDS[fieldName];
|
||||
const fields = collection.get('fields');
|
||||
let field;
|
||||
|
||||
// If collection has no fields or fieldName is not defined within inferables list, return null
|
||||
if (!fields || !inferableField) return null;
|
||||
// Try to return a field of the specified type with one of the synonyms
|
||||
const mainTypeFields = fields.filter(f => (f === null || f === void 0 ? void 0 : f.get('widget', 'string')) === inferableField.type).map(f => f === null || f === void 0 ? void 0 : f.get('name'));
|
||||
field = mainTypeFields.filter(f => inferableField.synonyms.indexOf(f) !== -1);
|
||||
if (field && field.size > 0) return field.first();
|
||||
|
||||
// Try to return a field for each of the specified secondary types
|
||||
const secondaryTypeFields = fields.filter(f => inferableField.secondaryTypes.indexOf(f === null || f === void 0 ? void 0 : f.get('widget', 'string')) !== -1).map(f => f === null || f === void 0 ? void 0 : f.get('name'));
|
||||
field = secondaryTypeFields.filter(f => inferableField.synonyms.indexOf(f) !== -1);
|
||||
if (field && field.size > 0) return field.first();
|
||||
|
||||
// Try to return the first field of the specified type
|
||||
if (inferableField.fallbackToFirstField && mainTypeFields.size > 0) return mainTypeFields.first();
|
||||
|
||||
// Coundn't infer the field. Show error and return null.
|
||||
if (inferableField.showError) {
|
||||
(0, _consoleError.default)(`The Field ${fieldName} is missing for the collection “${collection.get('name')}”`, `Decap CMS tries to infer the entry ${fieldName} automatically, but one couldn't be found for entries of the collection “${collection.get('name')}”. Please check your site configuration.`);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
function selectEntryCollectionTitle(collection, entry) {
|
||||
// prefer formatted summary over everything else
|
||||
const summaryTemplate = collection.get('summary');
|
||||
if (summaryTemplate) return (0, _formatters.summaryFormatter)(summaryTemplate, entry, collection);
|
||||
|
||||
// if the collection is a file collection return the label of the entry
|
||||
if (collection.get('type') == _collectionTypes.FILES) {
|
||||
const label = selectFileEntryLabel(collection, entry.get('slug'));
|
||||
if (label) return label;
|
||||
}
|
||||
|
||||
// try to infer a title field from the entry data
|
||||
const entryData = entry.get('data');
|
||||
const titleField = selectInferredField(collection, 'title');
|
||||
const result = titleField && entryData.getIn(keyToPathArray(titleField));
|
||||
|
||||
// if the custom field does not yield a result, fallback to 'title'
|
||||
if (!result && titleField !== 'title') {
|
||||
return entryData.getIn(keyToPathArray('title'));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function selectDefaultSortableFields(collection, backend, hasIntegration) {
|
||||
let defaultSortable = _fieldInference.SORTABLE_FIELDS.map(type => {
|
||||
const field = selectInferredField(collection, type);
|
||||
if (backend.isGitBackend() && type === 'author' && !field && !hasIntegration) {
|
||||
// default to commit author if not author field is found
|
||||
return _commitProps.COMMIT_AUTHOR;
|
||||
}
|
||||
return field;
|
||||
}).filter(Boolean);
|
||||
if (backend.isGitBackend() && !hasIntegration) {
|
||||
// always have commit date by default
|
||||
defaultSortable = [_commitProps.COMMIT_DATE, ...defaultSortable];
|
||||
}
|
||||
return defaultSortable;
|
||||
}
|
||||
function selectSortableFields(collection, t) {
|
||||
const fields = collection.get('sortable_fields').toArray().map(key => {
|
||||
if (key === _commitProps.COMMIT_DATE) {
|
||||
return {
|
||||
key,
|
||||
field: {
|
||||
name: key,
|
||||
label: t('collection.defaultFields.updatedOn.label')
|
||||
}
|
||||
};
|
||||
}
|
||||
const field = selectField(collection, key);
|
||||
if (key === _commitProps.COMMIT_AUTHOR && !field) {
|
||||
return {
|
||||
key,
|
||||
field: {
|
||||
name: key,
|
||||
label: t('collection.defaultFields.author.label')
|
||||
}
|
||||
};
|
||||
}
|
||||
return {
|
||||
key,
|
||||
field: field === null || field === void 0 ? void 0 : field.toJS()
|
||||
};
|
||||
}).filter(item => !!item.field).map(item => _objectSpread(_objectSpread({}, item.field), {}, {
|
||||
key: item.key
|
||||
}));
|
||||
return fields;
|
||||
}
|
||||
function selectSortDataPath(collection, key) {
|
||||
if (key === _commitProps.COMMIT_DATE) {
|
||||
return 'updatedOn';
|
||||
} else if (key === _commitProps.COMMIT_AUTHOR && !selectField(collection, key)) {
|
||||
return 'author';
|
||||
} else {
|
||||
return `data.${key}`;
|
||||
}
|
||||
}
|
||||
function selectViewFilters(collection) {
|
||||
const viewFilters = collection.get('view_filters').toJS();
|
||||
return viewFilters;
|
||||
}
|
||||
function selectViewGroups(collection) {
|
||||
const viewGroups = collection.get('view_groups').toJS();
|
||||
return viewGroups;
|
||||
}
|
||||
function selectFieldsComments(collection, entryMap) {
|
||||
let fields = [];
|
||||
if (collection.has('folder')) {
|
||||
fields = collection.get('fields').toArray();
|
||||
} else if (collection.has('files')) {
|
||||
const file = collection.get('files').find(f => (f === null || f === void 0 ? void 0 : f.get('name')) === entryMap.get('slug'));
|
||||
fields = file.get('fields').toArray();
|
||||
}
|
||||
const comments = {};
|
||||
const names = getFieldsNames(fields);
|
||||
names.forEach(name => {
|
||||
const field = selectField(collection, name);
|
||||
if (field !== null && field !== void 0 && field.has('comment')) {
|
||||
comments[name] = field.get('comment');
|
||||
}
|
||||
});
|
||||
return comments;
|
||||
}
|
||||
function selectHasMetaPath(collection) {
|
||||
var _collection$get2;
|
||||
return collection.has('folder') && collection.get('type') === _collectionTypes.FOLDER && collection.has('meta') && ((_collection$get2 = collection.get('meta')) === null || _collection$get2 === void 0 ? void 0 : _collection$get2.has('path'));
|
||||
}
|
||||
var _default = exports.default = collections;
|
||||
18
node_modules/decap-cms-core/dist/esm/reducers/combinedReducer.js
generated
vendored
Normal file
18
node_modules/decap-cms-core/dist/esm/reducers/combinedReducer.js
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
var _redux = require("redux");
|
||||
var _index = _interopRequireDefault(require("./index"));
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
function createRootReducer() {
|
||||
return (0, _redux.combineReducers)(_objectSpread({}, _index.default));
|
||||
}
|
||||
var _default = exports.default = createRootReducer;
|
||||
41
node_modules/decap-cms-core/dist/esm/reducers/config.js
generated
vendored
Normal file
41
node_modules/decap-cms-core/dist/esm/reducers/config.js
generated
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
exports.selectLocale = selectLocale;
|
||||
exports.selectUseWorkflow = selectUseWorkflow;
|
||||
var _immer = require("immer");
|
||||
var _config = require("../actions/config");
|
||||
var _publishModes = require("../constants/publishModes");
|
||||
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
||||
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
||||
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; }
|
||||
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
||||
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
||||
const defaultState = {
|
||||
isFetching: true
|
||||
};
|
||||
const config = (0, _immer.produce)((state, action) => {
|
||||
switch (action.type) {
|
||||
case _config.CONFIG_REQUEST:
|
||||
state.isFetching = true;
|
||||
break;
|
||||
case _config.CONFIG_SUCCESS:
|
||||
return _objectSpread(_objectSpread({}, action.payload), {}, {
|
||||
isFetching: false,
|
||||
error: undefined
|
||||
});
|
||||
case _config.CONFIG_FAILURE:
|
||||
state.isFetching = false;
|
||||
state.error = action.payload.toString();
|
||||
}
|
||||
}, defaultState);
|
||||
function selectLocale(state) {
|
||||
return state.locale || 'en';
|
||||
}
|
||||
function selectUseWorkflow(state) {
|
||||
return state.publish_mode === _publishModes.EDITORIAL_WORKFLOW;
|
||||
}
|
||||
var _default = exports.default = config;
|
||||
37
node_modules/decap-cms-core/dist/esm/reducers/cursors.js
generated
vendored
Normal file
37
node_modules/decap-cms-core/dist/esm/reducers/cursors.js
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = void 0;
|
||||
exports.selectCollectionEntriesCursor = selectCollectionEntriesCursor;
|
||||
var _immutable = require("immutable");
|
||||
var _decapCmsLibUtil = require("decap-cms-lib-util");
|
||||
var _entries = require("../actions/entries");
|
||||
// Since pagination can be used for a variety of views (collections
|
||||
// and searches are the most common examples), we namespace cursors by
|
||||
// their type before storing them in the state.
|
||||
function selectCollectionEntriesCursor(state, collectionName) {
|
||||
return new _decapCmsLibUtil.Cursor(state.getIn(['cursorsByType', 'collectionEntries', collectionName]));
|
||||
}
|
||||
function cursors(state = (0, _immutable.fromJS)({
|
||||
cursorsByType: {
|
||||
collectionEntries: {}
|
||||
}
|
||||
}), action) {
|
||||
switch (action.type) {
|
||||
case _entries.ENTRIES_SUCCESS:
|
||||
{
|
||||
return state.setIn(['cursorsByType', 'collectionEntries', action.payload.collection], _decapCmsLibUtil.Cursor.create(action.payload.cursor).store);
|
||||
}
|
||||
case _entries.FILTER_ENTRIES_SUCCESS:
|
||||
case _entries.GROUP_ENTRIES_SUCCESS:
|
||||
case _entries.SORT_ENTRIES_SUCCESS:
|
||||
{
|
||||
return state.deleteIn(['cursorsByType', 'collectionEntries', action.payload.collection]);
|
||||
}
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
}
|
||||
var _default = exports.default = cursors;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user