UNPKG

@lyra/form-builder

Version:
79 lines (53 loc) 2.29 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _get2 = require('lodash/get'); var _get3 = _interopRequireDefault(_get2); exports.isArrayOfPrimitives = isArrayOfPrimitives; exports.hasOptionsList = hasOptionsList; exports.default = resolveArrayInput; var _OptionsArrayInput = require('../../inputs/OptionsArrayInput'); var _OptionsArrayInput2 = _interopRequireDefault(_OptionsArrayInput); var _BlockEditor = require('../../inputs/BlockEditor'); var _BlockEditor2 = _interopRequireDefault(_BlockEditor); var _ArrayOfPrimitivesInput = require('../../inputs/ArrayOfPrimitivesInput'); var _ArrayOfPrimitivesInput2 = _interopRequireDefault(_ArrayOfPrimitivesInput); var _TagsArrayInput = require('../../inputs/TagsArrayInput'); var _TagsArrayInput2 = _interopRequireDefault(_TagsArrayInput); var _is = require('../../utils/is'); var is = _interopRequireWildcard(_is); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const PRIMITIVES = ['string', 'number', 'boolean']; function isArrayOfPrimitives(type) { return type.of.every(ofType => PRIMITIVES.includes(ofType.jsonType)); } function isTagsArray(type) { return (0, _get3.default)(type.options, 'layout') === 'tags' && type.of.length === 1 && is.type('string', type.of[0]); } function hasBlocks(type) { return type.of.some(memberType => is.type('block', memberType)); } function hasOptionsList(type) { return (0, _get3.default)(type.options, 'list'); } function resolveArrayInput(type) { // Schema provides predefines list if (hasOptionsList(type)) { return _OptionsArrayInput2.default; } if (isTagsArray(type)) { return _TagsArrayInput2.default; } // Special component for array of primitive values if (isArrayOfPrimitives(type)) { return _ArrayOfPrimitivesInput2.default; } // Use block editor if its an array that includes blocks if (hasBlocks(type)) { return _BlockEditor2.default; } // use default return null; }