UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

96 lines (95 loc) 9.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "Select", { enumerable: true, get: function() { return Select; } }); const _react = /*#__PURE__*/ _interop_require_default(require("react")); const _reacti18next = require("react-i18next"); const _getTranslation = require("../../../../../../utilities/getTranslation"); const _ReactSelect = /*#__PURE__*/ _interop_require_default(require("../../../ReactSelect")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const formatOptions = (options)=>options.map((option)=>{ if (typeof option === 'object' && (option.value || option.value === '')) { return option; } return { label: option, value: option }; }); const Select = ({ disabled, onChange, operator, options: optionsFromProps, value })=>{ const { i18n } = (0, _reacti18next.useTranslation)(); const [options, setOptions] = _react.default.useState(formatOptions(optionsFromProps)); const isMulti = [ 'in', 'not_in' ].includes(operator); let valueToRender; if (isMulti && Array.isArray(value)) { valueToRender = value.map((val)=>{ const matchingOption = options.find((option)=>option.value === val); return { label: matchingOption ? (0, _getTranslation.getTranslation)(matchingOption.label, i18n) : val, value: matchingOption?.value ?? val }; }); } else if (value) { const matchingOption = options.find((option)=>option.value === value); valueToRender = { label: matchingOption ? (0, _getTranslation.getTranslation)(matchingOption.label, i18n) : value, value: matchingOption?.value ?? value }; } const onSelect = _react.default.useCallback((selectedOption)=>{ let newValue; if (!selectedOption) { newValue = null; } else if (isMulti) { if (Array.isArray(selectedOption)) { newValue = selectedOption.map((option)=>option.value); } else { newValue = []; } } else { newValue = selectedOption.value; } onChange(newValue); }, [ isMulti, onChange ]); _react.default.useEffect(()=>{ setOptions(formatOptions(optionsFromProps)); }, [ optionsFromProps ]); _react.default.useEffect(()=>{ if (!isMulti && Array.isArray(value)) { onChange(value[0]); } }, [ isMulti, onChange, value ]); return /*#__PURE__*/ _react.default.createElement(_ReactSelect.default, { disabled: disabled, isMulti: isMulti, onChange: onSelect, options: options.map((option)=>({ ...option, label: (0, _getTranslation.getTranslation)(option.label, i18n) })), value: valueToRender }); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1doZXJlQnVpbGRlci9Db25kaXRpb24vU2VsZWN0L2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB0eXBlIHsgT3B0aW9uLCBPcHRpb25PYmplY3QgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQcm9wcyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2dldFRyYW5zbGF0aW9uJ1xuaW1wb3J0IFJlYWN0U2VsZWN0IGZyb20gJy4uLy4uLy4uL1JlYWN0U2VsZWN0J1xuXG5jb25zdCBmb3JtYXRPcHRpb25zID0gKG9wdGlvbnM6IE9wdGlvbltdKTogT3B0aW9uT2JqZWN0W10gPT5cbiAgb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4ge1xuICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JyAmJiAob3B0aW9uLnZhbHVlIHx8IG9wdGlvbi52YWx1ZSA9PT0gJycpKSB7XG4gICAgICByZXR1cm4gb3B0aW9uXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGxhYmVsOiBvcHRpb24sXG4gICAgICB2YWx1ZTogb3B0aW9uLFxuICAgIH0gYXMgT3B0aW9uT2JqZWN0XG4gIH0pXG5cbmV4cG9ydCBjb25zdCBTZWxlY3Q6IFJlYWN0LkZDPFByb3BzPiA9ICh7XG4gIGRpc2FibGVkLFxuICBvbkNoYW5nZSxcbiAgb3BlcmF0b3IsXG4gIG9wdGlvbnM6IG9wdGlvbnNGcm9tUHJvcHMsXG4gIHZhbHVlLFxufSkgPT4ge1xuICBjb25zdCB7IGkxOG4gfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgW29wdGlvbnMsIHNldE9wdGlvbnNdID0gUmVhY3QudXNlU3RhdGUoZm9ybWF0T3B0aW9ucyhvcHRpb25zRnJvbVByb3BzKSlcblxuICBjb25zdCBpc011bHRpID0gWydpbicsICdub3RfaW4nXS5pbmNsdWRlcyhvcGVyYXRvcilcbiAgbGV0IHZhbHVlVG9SZW5kZXJcblxuICBpZiAoaXNNdWx0aSAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHZhbHVlVG9SZW5kZXIgPSB2YWx1ZS5tYXAoKHZhbCkgPT4ge1xuICAgICAgY29uc3QgbWF0Y2hpbmdPcHRpb24gPSBvcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB2YWwpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBsYWJlbDogbWF0Y2hpbmdPcHRpb24gPyBnZXRUcmFuc2xhdGlvbihtYXRjaGluZ09wdGlvbi5sYWJlbCwgaTE4bikgOiB2YWwsXG4gICAgICAgIHZhbHVlOiBtYXRjaGluZ09wdGlvbj8udmFsdWUgPz8gdmFsLFxuICAgICAgfVxuICAgIH0pXG4gIH0gZWxzZSBpZiAodmFsdWUpIHtcbiAgICBjb25zdCBtYXRjaGluZ09wdGlvbiA9IG9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHZhbHVlKVxuICAgIHZhbHVlVG9SZW5kZXIgPSB7XG4gICAgICBsYWJlbDogbWF0Y2hpbmdPcHRpb24gPyBnZXRUcmFuc2xhdGlvbihtYXRjaGluZ09wdGlvbi5sYWJlbCwgaTE4bikgOiB2YWx1ZSxcbiAgICAgIHZhbHVlOiBtYXRjaGluZ09wdGlvbj8udmFsdWUgPz8gdmFsdWUsXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb25TZWxlY3QgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAoc2VsZWN0ZWRPcHRpb24pID0+IHtcbiAgICAgIGxldCBuZXdWYWx1ZVxuICAgICAgaWYgKCFzZWxlY3RlZE9wdGlvbikge1xuICAgICAgICBuZXdWYWx1ZSA9IG51bGxcbiAgICAgIH0gZWxzZSBpZiAoaXNNdWx0aSkge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzZWxlY3RlZE9wdGlvbikpIHtcbiAgICAgICAgICBuZXdWYWx1ZSA9IHNlbGVjdGVkT3B0aW9uLm1hcCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3VmFsdWUgPSBbXVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdWYWx1ZSA9IHNlbGVjdGVkT3B0aW9uLnZhbHVlXG4gICAgICB9XG5cbiAgICAgIG9uQ2hhbmdlKG5ld1ZhbHVlKVxuICAgIH0sXG4gICAgW2lzTXVsdGksIG9uQ2hhbmdlXSxcbiAgKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0T3B0aW9ucyhmb3JtYXRPcHRpb25zKG9wdGlvbnNGcm9tUHJvcHMpKVxuICB9LCBbb3B0aW9uc0Zyb21Qcm9wc10pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzTXVsdGkgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIG9uQ2hhbmdlKHZhbHVlWzBdKVxuICAgIH1cbiAgfSwgW2lzTXVsdGksIG9uQ2hhbmdlLCB2YWx1ZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8UmVhY3RTZWxlY3RcbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIGlzTXVsdGk9e2lzTXVsdGl9XG4gICAgICBvbkNoYW5nZT17b25TZWxlY3R9XG4gICAgICBvcHRpb25zPXtvcHRpb25zLm1hcCgob3B0aW9uKSA9PiAoeyAuLi5vcHRpb24sIGxhYmVsOiBnZXRUcmFuc2xhdGlvbihvcHRpb24ubGFiZWwsIGkxOG4pIH0pKX1cbiAgICAgIHZhbHVlPXt2YWx1ZVRvUmVuZGVyfVxuICAgIC8+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJTZWxlY3QiLCJmb3JtYXRPcHRpb25zIiwib3B0aW9ucyIsIm1hcCIsIm9wdGlvbiIsInZhbHVlIiwibGFiZWwiLCJkaXNhYmxlZCIsIm9uQ2hhbmdlIiwib3BlcmF0b3IiLCJvcHRpb25zRnJvbVByb3BzIiwiaTE4biIsInVzZVRyYW5zbGF0aW9uIiwic2V0T3B0aW9ucyIsIlJlYWN0IiwidXNlU3RhdGUiLCJpc011bHRpIiwiaW5jbHVkZXMiLCJ2YWx1ZVRvUmVuZGVyIiwiQXJyYXkiLCJpc0FycmF5IiwidmFsIiwibWF0Y2hpbmdPcHRpb24iLCJmaW5kIiwiZ2V0VHJhbnNsYXRpb24iLCJvblNlbGVjdCIsInVzZUNhbGxiYWNrIiwic2VsZWN0ZWRPcHRpb24iLCJuZXdWYWx1ZSIsInVzZUVmZmVjdCIsIlJlYWN0U2VsZWN0Il0sIm1hcHBpbmdzIjoiOzs7OytCQXFCYUE7OztlQUFBQTs7OzhEQXJCSzs4QkFDYTtnQ0FLQTtvRUFDUDs7Ozs7O0FBRXhCLE1BQU1DLGdCQUFnQixDQUFDQyxVQUNyQkEsUUFBUUMsR0FBRyxDQUFDLENBQUNDO1FBQ1gsSUFBSSxPQUFPQSxXQUFXLFlBQWFBLENBQUFBLE9BQU9DLEtBQUssSUFBSUQsT0FBT0MsS0FBSyxLQUFLLEVBQUMsR0FBSTtZQUN2RSxPQUFPRDtRQUNUO1FBRUEsT0FBTztZQUNMRSxPQUFPRjtZQUNQQyxPQUFPRDtRQUNUO0lBQ0Y7QUFFSyxNQUFNSixTQUEwQixDQUFDLEVBQ3RDTyxRQUFRLEVBQ1JDLFFBQVEsRUFDUkMsUUFBUSxFQUNSUCxTQUFTUSxnQkFBZ0IsRUFDekJMLEtBQUssRUFDTjtJQUNDLE1BQU0sRUFBRU0sSUFBSSxFQUFFLEdBQUdDLElBQUFBLDRCQUFjO0lBQy9CLE1BQU0sQ0FBQ1YsU0FBU1csV0FBVyxHQUFHQyxjQUFLLENBQUNDLFFBQVEsQ0FBQ2QsY0FBY1M7SUFFM0QsTUFBTU0sVUFBVTtRQUFDO1FBQU07S0FBUyxDQUFDQyxRQUFRLENBQUNSO0lBQzFDLElBQUlTO0lBRUosSUFBSUYsV0FBV0csTUFBTUMsT0FBTyxDQUFDZixRQUFRO1FBQ25DYSxnQkFBZ0JiLE1BQU1GLEdBQUcsQ0FBQyxDQUFDa0I7WUFDekIsTUFBTUMsaUJBQWlCcEIsUUFBUXFCLElBQUksQ0FBQyxDQUFDbkIsU0FBV0EsT0FBT0MsS0FBSyxLQUFLZ0I7WUFDakUsT0FBTztnQkFDTGYsT0FBT2dCLGlCQUFpQkUsSUFBQUEsOEJBQWMsRUFBQ0YsZUFBZWhCLEtBQUssRUFBRUssUUFBUVU7Z0JBQ3JFaEIsT0FBT2lCLGdCQUFnQmpCLFNBQVNnQjtZQUNsQztRQUNGO0lBQ0YsT0FBTyxJQUFJaEIsT0FBTztRQUNoQixNQUFNaUIsaUJBQWlCcEIsUUFBUXFCLElBQUksQ0FBQyxDQUFDbkIsU0FBV0EsT0FBT0MsS0FBSyxLQUFLQTtRQUNqRWEsZ0JBQWdCO1lBQ2RaLE9BQU9nQixpQkFBaUJFLElBQUFBLDhCQUFjLEVBQUNGLGVBQWVoQixLQUFLLEVBQUVLLFFBQVFOO1lBQ3JFQSxPQUFPaUIsZ0JBQWdCakIsU0FBU0E7UUFDbEM7SUFDRjtJQUVBLE1BQU1vQixXQUFXWCxjQUFLLENBQUNZLFdBQVcsQ0FDaEMsQ0FBQ0M7UUFDQyxJQUFJQztRQUNKLElBQUksQ0FBQ0QsZ0JBQWdCO1lBQ25CQyxXQUFXO1FBQ2IsT0FBTyxJQUFJWixTQUFTO1lBQ2xCLElBQUlHLE1BQU1DLE9BQU8sQ0FBQ08saUJBQWlCO2dCQUNqQ0MsV0FBV0QsZUFBZXhCLEdBQUcsQ0FBQyxDQUFDQyxTQUFXQSxPQUFPQyxLQUFLO1lBQ3hELE9BQU87Z0JBQ0x1QixXQUFXLEVBQUU7WUFDZjtRQUNGLE9BQU87WUFDTEEsV0FBV0QsZUFBZXRCLEtBQUs7UUFDakM7UUFFQUcsU0FBU29CO0lBQ1gsR0FDQTtRQUFDWjtRQUFTUjtLQUFTO0lBR3JCTSxjQUFLLENBQUNlLFNBQVMsQ0FBQztRQUNkaEIsV0FBV1osY0FBY1M7SUFDM0IsR0FBRztRQUFDQTtLQUFpQjtJQUVyQkksY0FBSyxDQUFDZSxTQUFTLENBQUM7UUFDZCxJQUFJLENBQUNiLFdBQVdHLE1BQU1DLE9BQU8sQ0FBQ2YsUUFBUTtZQUNwQ0csU0FBU0gsS0FBSyxDQUFDLEVBQUU7UUFDbkI7SUFDRixHQUFHO1FBQUNXO1FBQVNSO1FBQVVIO0tBQU07SUFFN0IscUJBQ0UsNkJBQUN5QixvQkFBVztRQUNWdkIsVUFBVUE7UUFDVlMsU0FBU0E7UUFDVFIsVUFBVWlCO1FBQ1Z2QixTQUFTQSxRQUFRQyxHQUFHLENBQUMsQ0FBQ0MsU0FBWSxDQUFBO2dCQUFFLEdBQUdBLE1BQU07Z0JBQUVFLE9BQU9rQixJQUFBQSw4QkFBYyxFQUFDcEIsT0FBT0UsS0FBSyxFQUFFSztZQUFNLENBQUE7UUFDekZOLE9BQU9hOztBQUdiIn0=