payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
138 lines (137 loc) • 13.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "FieldSelect", {
enumerable: true,
get: function() {
return FieldSelect;
}
});
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
const _reacti18next = require("react-i18next");
const _types = require("../../../../fields/config/types");
const _getTranslation = require("../../../../utilities/getTranslation");
const _context = require("../../forms/Form/context");
const _createNestedFieldPath = require("../../forms/Form/createNestedFieldPath");
const _Label = /*#__PURE__*/ _interop_require_default(require("../../forms/Label"));
const _ReactSelect = /*#__PURE__*/ _interop_require_default(require("../ReactSelect"));
require("./index.scss");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function _getRequireWildcardCache(nodeInterop) {
if (typeof WeakMap !== "function") return null;
var cacheBabelInterop = new WeakMap();
var cacheNodeInterop = new WeakMap();
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
})(nodeInterop);
}
function _interop_require_wildcard(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj;
}
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
return {
default: obj
};
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj);
}
var newObj = {
__proto__: null
};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for(var key in obj){
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj);
}
return newObj;
}
const baseClass = 'field-select';
const combineLabel = (prefix, field, i18n)=>`${prefix === '' ? '' : `${prefix} > `}${(0, _getTranslation.getTranslation)(field.label || field.name, i18n) || ''}`;
const reduceFields = (fields, i18n, path = '', labelPrefix = '')=>fields.reduce((fieldsToUse, field)=>{
// escape for a variety of reasons
if ((0, _types.fieldAffectsData)(field) && (field.admin?.disableBulkEdit || field.unique || field.hidden || field.admin?.hidden || field.admin?.readOnly)) {
return fieldsToUse;
}
if (!(field.type === 'array' || field.type === 'blocks') && (0, _types.fieldHasSubFields)(field)) {
return [
...fieldsToUse,
...reduceFields(field.fields, i18n, (0, _createNestedFieldPath.createNestedFieldPath)(path, field), combineLabel(labelPrefix, field, i18n))
];
}
if (field.type === 'tabs') {
return [
...fieldsToUse,
...field.tabs.reduce((tabFields, tab)=>{
return [
...tabFields,
...reduceFields(tab.fields, i18n, (0, _types.tabHasName)(tab) ? (0, _createNestedFieldPath.createNestedFieldPath)(path, field) : path, combineLabel(labelPrefix, field, i18n))
];
}, [])
];
}
const formattedField = {
label: combineLabel(labelPrefix, field, i18n),
value: {
...field,
path: (0, _createNestedFieldPath.createNestedFieldPath)(path, field)
}
};
return [
...fieldsToUse,
formattedField
];
}, []);
const FieldSelect = ({ fields, setSelected })=>{
const { i18n, t } = (0, _reacti18next.useTranslation)('general');
const [options] = (0, _react.useState)(()=>reduceFields(fields, i18n));
const { dispatchFields, getFields } = (0, _context.useForm)();
const handleChange = (selected)=>{
const activeFields = getFields();
if (selected === null) {
setSelected([]);
} else {
setSelected(selected.map(({ value })=>value));
}
// remove deselected values from form state
if (selected === null || Object.keys(activeFields).length > selected.length) {
Object.keys(activeFields).forEach((path)=>{
if (selected === null || !selected.find((field)=>{
return field.value.path === path;
})) {
dispatchFields({
path,
type: 'REMOVE'
});
}
});
}
};
return /*#__PURE__*/ _react.default.createElement("div", {
className: baseClass
}, /*#__PURE__*/ _react.default.createElement(_Label.default, {
label: t('fields:selectFieldsToEdit')
}), /*#__PURE__*/ _react.default.createElement(_ReactSelect.default, {
isMulti: true,
onChange: handleChange,
options: options
}));
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL0ZpZWxkU2VsZWN0L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcblxuaW1wb3J0IHR5cGUgeyBGaWVsZCwgRmllbGRXaXRoUGF0aCB9IGZyb20gJy4uLy4uLy4uLy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEsIGZpZWxkSGFzU3ViRmllbGRzLCB0YWJIYXNOYW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2dldFRyYW5zbGF0aW9uJ1xuaW1wb3J0IHsgdXNlRm9ybSB9IGZyb20gJy4uLy4uL2Zvcm1zL0Zvcm0vY29udGV4dCdcbmltcG9ydCB7IGNyZWF0ZU5lc3RlZEZpZWxkUGF0aCB9IGZyb20gJy4uLy4uL2Zvcm1zL0Zvcm0vY3JlYXRlTmVzdGVkRmllbGRQYXRoJ1xuaW1wb3J0IExhYmVsIGZyb20gJy4uLy4uL2Zvcm1zL0xhYmVsJ1xuaW1wb3J0IFJlYWN0U2VsZWN0IGZyb20gJy4uL1JlYWN0U2VsZWN0J1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdmaWVsZC1zZWxlY3QnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGZpZWxkczogRmllbGRbXVxuICBzZXRTZWxlY3RlZDogKGZpZWxkczogRmllbGRXaXRoUGF0aFtdKSA9PiB2b2lkXG59XG5cbmNvbnN0IGNvbWJpbmVMYWJlbCA9IChwcmVmaXgsIGZpZWxkLCBpMThuKTogc3RyaW5nID0+XG4gIGAke3ByZWZpeCA9PT0gJycgPyAnJyA6IGAke3ByZWZpeH0gPiBgfSR7Z2V0VHJhbnNsYXRpb24oZmllbGQubGFiZWwgfHwgZmllbGQubmFtZSwgaTE4bikgfHwgJyd9YFxuY29uc3QgcmVkdWNlRmllbGRzID0gKFxuICBmaWVsZHM6IEZpZWxkW10sXG4gIGkxOG4sXG4gIHBhdGggPSAnJyxcbiAgbGFiZWxQcmVmaXggPSAnJyxcbik6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IEZpZWxkV2l0aFBhdGggfVtdID0+XG4gIGZpZWxkcy5yZWR1Y2UoKGZpZWxkc1RvVXNlLCBmaWVsZCkgPT4ge1xuICAgIC8vIGVzY2FwZSBmb3IgYSB2YXJpZXR5IG9mIHJlYXNvbnNcbiAgICBpZiAoXG4gICAgICBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJlxuICAgICAgKGZpZWxkLmFkbWluPy5kaXNhYmxlQnVsa0VkaXQgfHxcbiAgICAgICAgZmllbGQudW5pcXVlIHx8XG4gICAgICAgIGZpZWxkLmhpZGRlbiB8fFxuICAgICAgICBmaWVsZC5hZG1pbj8uaGlkZGVuIHx8XG4gICAgICAgIGZpZWxkLmFkbWluPy5yZWFkT25seSlcbiAgICApIHtcbiAgICAgIHJldHVybiBmaWVsZHNUb1VzZVxuICAgIH1cbiAgICBpZiAoIShmaWVsZC50eXBlID09PSAnYXJyYXknIHx8IGZpZWxkLnR5cGUgPT09ICdibG9ja3MnKSAmJiBmaWVsZEhhc1N1YkZpZWxkcyhmaWVsZCkpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLmZpZWxkc1RvVXNlLFxuICAgICAgICAuLi5yZWR1Y2VGaWVsZHMoXG4gICAgICAgICAgZmllbGQuZmllbGRzLFxuICAgICAgICAgIGkxOG4sXG4gICAgICAgICAgY3JlYXRlTmVzdGVkRmllbGRQYXRoKHBhdGgsIGZpZWxkKSxcbiAgICAgICAgICBjb21iaW5lTGFiZWwobGFiZWxQcmVmaXgsIGZpZWxkLCBpMThuKSxcbiAgICAgICAgKSxcbiAgICAgIF1cbiAgICB9XG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICd0YWJzJykge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4uZmllbGRzVG9Vc2UsXG4gICAgICAgIC4uLmZpZWxkLnRhYnMucmVkdWNlKCh0YWJGaWVsZHMsIHRhYikgPT4ge1xuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi50YWJGaWVsZHMsXG4gICAgICAgICAgICAuLi5yZWR1Y2VGaWVsZHMoXG4gICAgICAgICAgICAgIHRhYi5maWVsZHMsXG4gICAgICAgICAgICAgIGkxOG4sXG4gICAgICAgICAgICAgIHRhYkhhc05hbWUodGFiKSA/IGNyZWF0ZU5lc3RlZEZpZWxkUGF0aChwYXRoLCBmaWVsZCkgOiBwYXRoLFxuICAgICAgICAgICAgICBjb21iaW5lTGFiZWwobGFiZWxQcmVmaXgsIGZpZWxkLCBpMThuKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgXVxuICAgICAgICB9LCBbXSksXG4gICAgICBdXG4gICAgfVxuICAgIGNvbnN0IGZvcm1hdHRlZEZpZWxkID0ge1xuICAgICAgbGFiZWw6IGNvbWJpbmVMYWJlbChsYWJlbFByZWZpeCwgZmllbGQsIGkxOG4pLFxuICAgICAgdmFsdWU6IHtcbiAgICAgICAgLi4uZmllbGQsXG4gICAgICAgIHBhdGg6IGNyZWF0ZU5lc3RlZEZpZWxkUGF0aChwYXRoLCBmaWVsZCksXG4gICAgICB9LFxuICAgIH1cblxuICAgIHJldHVybiBbLi4uZmllbGRzVG9Vc2UsIGZvcm1hdHRlZEZpZWxkXVxuICB9LCBbXSlcbmV4cG9ydCBjb25zdCBGaWVsZFNlbGVjdDogUmVhY3QuRkM8UHJvcHM+ID0gKHsgZmllbGRzLCBzZXRTZWxlY3RlZCB9KSA9PiB7XG4gIGNvbnN0IHsgaTE4biwgdCB9ID0gdXNlVHJhbnNsYXRpb24oJ2dlbmVyYWwnKVxuICBjb25zdCBbb3B0aW9uc10gPSB1c2VTdGF0ZSgoKSA9PiByZWR1Y2VGaWVsZHMoZmllbGRzLCBpMThuKSlcbiAgY29uc3QgeyBkaXNwYXRjaEZpZWxkcywgZ2V0RmllbGRzIH0gPSB1c2VGb3JtKClcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKHNlbGVjdGVkKSA9PiB7XG4gICAgY29uc3QgYWN0aXZlRmllbGRzID0gZ2V0RmllbGRzKClcbiAgICBpZiAoc2VsZWN0ZWQgPT09IG51bGwpIHtcbiAgICAgIHNldFNlbGVjdGVkKFtdKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRTZWxlY3RlZChzZWxlY3RlZC5tYXAoKHsgdmFsdWUgfSkgPT4gdmFsdWUpKVxuICAgIH1cbiAgICAvLyByZW1vdmUgZGVzZWxlY3RlZCB2YWx1ZXMgZnJvbSBmb3JtIHN0YXRlXG4gICAgaWYgKHNlbGVjdGVkID09PSBudWxsIHx8IE9iamVjdC5rZXlzKGFjdGl2ZUZpZWxkcykubGVuZ3RoID4gc2VsZWN0ZWQubGVuZ3RoKSB7XG4gICAgICBPYmplY3Qua2V5cyhhY3RpdmVGaWVsZHMpLmZvckVhY2goKHBhdGgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdGVkID09PSBudWxsIHx8XG4gICAgICAgICAgIXNlbGVjdGVkLmZpbmQoKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZmllbGQudmFsdWUucGF0aCA9PT0gcGF0aFxuICAgICAgICAgIH0pXG4gICAgICAgICkge1xuICAgICAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICB0eXBlOiAnUkVNT1ZFJyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2Jhc2VDbGFzc30+XG4gICAgICA8TGFiZWwgbGFiZWw9e3QoJ2ZpZWxkczpzZWxlY3RGaWVsZHNUb0VkaXQnKX0gLz5cbiAgICAgIDxSZWFjdFNlbGVjdCBpc011bHRpIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9IG9wdGlvbnM9e29wdGlvbnN9IC8+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJGaWVsZFNlbGVjdCIsImJhc2VDbGFzcyIsImNvbWJpbmVMYWJlbCIsInByZWZpeCIsImZpZWxkIiwiaTE4biIsImdldFRyYW5zbGF0aW9uIiwibGFiZWwiLCJuYW1lIiwicmVkdWNlRmllbGRzIiwiZmllbGRzIiwicGF0aCIsImxhYmVsUHJlZml4IiwicmVkdWNlIiwiZmllbGRzVG9Vc2UiLCJmaWVsZEFmZmVjdHNEYXRhIiwiYWRtaW4iLCJkaXNhYmxlQnVsa0VkaXQiLCJ1bmlxdWUiLCJoaWRkZW4iLCJyZWFkT25seSIsInR5cGUiLCJmaWVsZEhhc1N1YkZpZWxkcyIsImNyZWF0ZU5lc3RlZEZpZWxkUGF0aCIsInRhYnMiLCJ0YWJGaWVsZHMiLCJ0YWIiLCJ0YWJIYXNOYW1lIiwiZm9ybWF0dGVkRmllbGQiLCJ2YWx1ZSIsInNldFNlbGVjdGVkIiwidCIsInVzZVRyYW5zbGF0aW9uIiwib3B0aW9ucyIsInVzZVN0YXRlIiwiZGlzcGF0Y2hGaWVsZHMiLCJnZXRGaWVsZHMiLCJ1c2VGb3JtIiwiaGFuZGxlQ2hhbmdlIiwic2VsZWN0ZWQiLCJhY3RpdmVGaWVsZHMiLCJtYXAiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiZm9yRWFjaCIsImZpbmQiLCJkaXYiLCJjbGFzc05hbWUiLCJMYWJlbCIsIlJlYWN0U2VsZWN0IiwiaXNNdWx0aSIsIm9uQ2hhbmdlIl0sIm1hcHBpbmdzIjoiOzs7OytCQTZFYUE7OztlQUFBQTs7OytEQTdFbUI7OEJBQ0Q7dUJBSWlDO2dDQUNqQzt5QkFDUDt1Q0FDYzs4REFDcEI7b0VBQ007UUFDakI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRVAsTUFBTUMsWUFBWTtBQU9sQixNQUFNQyxlQUFlLENBQUNDLFFBQVFDLE9BQU9DLE9BQ25DLENBQUMsRUFBRUYsV0FBVyxLQUFLLEtBQUssQ0FBQyxFQUFFQSxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUVHLElBQUFBLDhCQUFjLEVBQUNGLE1BQU1HLEtBQUssSUFBSUgsTUFBTUksSUFBSSxFQUFFSCxTQUFTLEdBQUcsQ0FBQztBQUNsRyxNQUFNSSxlQUFlLENBQ25CQyxRQUNBTCxNQUNBTSxPQUFPLEVBQUUsRUFDVEMsY0FBYyxFQUFFLEdBRWhCRixPQUFPRyxNQUFNLENBQUMsQ0FBQ0MsYUFBYVY7UUFDMUIsa0NBQWtDO1FBQ2xDLElBQ0VXLElBQUFBLHVCQUFnQixFQUFDWCxVQUNoQkEsQ0FBQUEsTUFBTVksS0FBSyxFQUFFQyxtQkFDWmIsTUFBTWMsTUFBTSxJQUNaZCxNQUFNZSxNQUFNLElBQ1pmLE1BQU1ZLEtBQUssRUFBRUcsVUFDYmYsTUFBTVksS0FBSyxFQUFFSSxRQUFPLEdBQ3RCO1lBQ0EsT0FBT047UUFDVDtRQUNBLElBQUksQ0FBRVYsQ0FBQUEsTUFBTWlCLElBQUksS0FBSyxXQUFXakIsTUFBTWlCLElBQUksS0FBSyxRQUFPLEtBQU1DLElBQUFBLHdCQUFpQixFQUFDbEIsUUFBUTtZQUNwRixPQUFPO21CQUNGVTttQkFDQUwsYUFDREwsTUFBTU0sTUFBTSxFQUNaTCxNQUNBa0IsSUFBQUEsNENBQXFCLEVBQUNaLE1BQU1QLFFBQzVCRixhQUFhVSxhQUFhUixPQUFPQzthQUVwQztRQUNIO1FBQ0EsSUFBSUQsTUFBTWlCLElBQUksS0FBSyxRQUFRO1lBQ3pCLE9BQU87bUJBQ0ZQO21CQUNBVixNQUFNb0IsSUFBSSxDQUFDWCxNQUFNLENBQUMsQ0FBQ1ksV0FBV0M7b0JBQy9CLE9BQU87MkJBQ0ZEOzJCQUNBaEIsYUFDRGlCLElBQUloQixNQUFNLEVBQ1ZMLE1BQ0FzQixJQUFBQSxpQkFBVSxFQUFDRCxPQUFPSCxJQUFBQSw0Q0FBcUIsRUFBQ1osTUFBTVAsU0FBU08sTUFDdkRULGFBQWFVLGFBQWFSLE9BQU9DO3FCQUVwQztnQkFDSCxHQUFHLEVBQUU7YUFDTjtRQUNIO1FBQ0EsTUFBTXVCLGlCQUFpQjtZQUNyQnJCLE9BQU9MLGFBQWFVLGFBQWFSLE9BQU9DO1lBQ3hDd0IsT0FBTztnQkFDTCxHQUFHekIsS0FBSztnQkFDUk8sTUFBTVksSUFBQUEsNENBQXFCLEVBQUNaLE1BQU1QO1lBQ3BDO1FBQ0Y7UUFFQSxPQUFPO2VBQUlVO1lBQWFjO1NBQWU7SUFDekMsR0FBRyxFQUFFO0FBQ0EsTUFBTTVCLGNBQStCLENBQUMsRUFBRVUsTUFBTSxFQUFFb0IsV0FBVyxFQUFFO0lBQ2xFLE1BQU0sRUFBRXpCLElBQUksRUFBRTBCLENBQUMsRUFBRSxHQUFHQyxJQUFBQSw0QkFBYyxFQUFDO0lBQ25DLE1BQU0sQ0FBQ0MsUUFBUSxHQUFHQyxJQUFBQSxlQUFRLEVBQUMsSUFBTXpCLGFBQWFDLFFBQVFMO0lBQ3RELE1BQU0sRUFBRThCLGNBQWMsRUFBRUMsU0FBUyxFQUFFLEdBQUdDLElBQUFBLGdCQUFPO0lBQzdDLE1BQU1DLGVBQWUsQ0FBQ0M7UUFDcEIsTUFBTUMsZUFBZUo7UUFDckIsSUFBSUcsYUFBYSxNQUFNO1lBQ3JCVCxZQUFZLEVBQUU7UUFDaEIsT0FBTztZQUNMQSxZQUFZUyxTQUFTRSxHQUFHLENBQUMsQ0FBQyxFQUFFWixLQUFLLEVBQUUsR0FBS0E7UUFDMUM7UUFDQSwyQ0FBMkM7UUFDM0MsSUFBSVUsYUFBYSxRQUFRRyxPQUFPQyxJQUFJLENBQUNILGNBQWNJLE1BQU0sR0FBR0wsU0FBU0ssTUFBTSxFQUFFO1lBQzNFRixPQUFPQyxJQUFJLENBQUNILGNBQWNLLE9BQU8sQ0FBQyxDQUFDbEM7Z0JBQ2pDLElBQ0U0QixhQUFhLFFBQ2IsQ0FBQ0EsU0FBU08sSUFBSSxDQUFDLENBQUMxQztvQkFDZCxPQUFPQSxNQUFNeUIsS0FBSyxDQUFDbEIsSUFBSSxLQUFLQTtnQkFDOUIsSUFDQTtvQkFDQXdCLGVBQWU7d0JBQ2J4Qjt3QkFDQVUsTUFBTTtvQkFDUjtnQkFDRjtZQUNGO1FBQ0Y7SUFDRjtJQUVBLHFCQUNFLDZCQUFDMEI7UUFBSUMsV0FBVy9DO3FCQUNkLDZCQUFDZ0QsY0FBSztRQUFDMUMsT0FBT3dCLEVBQUU7c0JBQ2hCLDZCQUFDbUIsb0JBQVc7UUFBQ0MsU0FBQUE7UUFBUUMsVUFBVWQ7UUFBY0wsU0FBU0E7O0FBRzVEIn0=