UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

138 lines (137 loc) • 13.8 kB
"use strict"; 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=