react-schema-form 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils.js","../src/ComposedComponent.js","../src/Text.js","../src/Number.js","../src/TextArea.js","../src/Markdown.js","../src/TextSuggest.js","../src/Select.js","../src/MultiSelect.js","../src/Radios.js","../src/NativeDateField.js","../src/Date.js","../src/Timestamp.js","../src/Checkbox.js","../src/Help.js","../src/Array.js","../src/FieldSet.js","../src/TripleBoolean.js","../src/Taxonomy.js","../src/SchemaForm.js"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport isObject from 'lodash/isObject'\nimport cloneDeep from 'lodash/cloneDeep'\nimport extend from 'lodash/extend'\nimport isUndefined from 'lodash/isUndefined'\nimport ObjectPath from 'objectpath'\nimport tv4 from 'tv4'\nimport notevil from 'notevil'\n\n// Evaluates an expression in a safe way\nconst safeEval = (condition, scope) => {\n try {\n const scopeSafe = cloneDeep(scope)\n return notevil(condition, scopeSafe)\n } catch (error) {\n return undefined\n }\n}\n\nconst stripNullType = (type) => {\n if (Array.isArray(type) && type.length === 2) {\n if (type[0] === 'null') return type[1]\n if (type[1] === 'null') return type[0]\n }\n return type\n}\n\n// Creates an default titleMap list from an enum, i.e. a list of strings.\nconst enumToTitleMap = (enm) => {\n const titleMap = [] // canonical titleMap format is a list.\n enm.forEach((name) => {\n titleMap.push({ name, value: name })\n })\n return titleMap\n}\n\n// Takes a titleMap in either object or list format and returns one in\n// in the list format.\nconst canonicalTitleMap = (titleMap, originalEnum) => {\n if (!originalEnum) return titleMap\n\n const canonical = []\n const enumValues =\n Object.keys(titleMap).length === 0 ? originalEnum : titleMap\n originalEnum.forEach((value, idx) => {\n canonical.push({ name: enumValues[idx], value })\n })\n return canonical\n}\n\n// Creates a form object with all common properties\nconst stdFormObj = (name, schema, options) => {\n options = options || {}\n const f =\n options.global && options.global.formDefaults\n ? cloneDeep(options.global.formDefaults)\n : {}\n if (options.global && options.global.supressPropertyTitles === true) {\n f.title = schema.title\n } else {\n f.title = schema.title || name\n }\n\n if (schema.description) {\n f.description = schema.description\n }\n if (options.required === true || schema.required === true) {\n f.required = true\n }\n if (schema.maxLength) {\n f.maxlength = schema.maxLength\n }\n if (schema.minLength) {\n f.minlength = schema.minLength\n }\n if (schema.readOnly || schema.readonly) {\n f.readonly = true\n }\n if (schema.minimum) {\n f.minimum = schema.minimum + (schema.exclusiveMinimum ? 1 : 0)\n }\n if (schema.maximum) {\n f.maximum = schema.maximum - (schema.exclusiveMaximum ? 1 : 0)\n }\n\n // Non standard attributes (DONT USE DEPRECATED)\n // If you must set stuff like this in the schema use the x-schema-form attribute\n if (schema.validationMessage) {\n f.validationMessage = schema.validationMessage\n }\n if (schema.enumNames) {\n f.titleMap = canonicalTitleMap(schema.enumNames, schema.enum)\n }\n f.schema = schema\n\n return f\n}\n\nconst tBoolean = (name, schema, options) => {\n if (stripNullType(schema.type) === 'tBoolean' && !schema.enum) {\n const f = stdFormObj(name, schema, options)\n f.key = options.path\n f.type = 'tBoolean'\n options.lookup[ObjectPath.stringify(options.path)] = f\n return f\n }\n return undefined\n}\n\nconst text = (name, schema, options) => {\n if (stripNullType(schema.type) === 'string' && !schema.enum) {\n const f = stdFormObj(name, schema, options)\n f.key = options.path\n f.type = 'text'\n options.lookup[ObjectPath.stringify(options.path)] = f\n return f\n }\n return undefined\n}\n\n// default in json form for number and integer is a text field\n// input type=\"number\" would be more suitable don't ya think?\nconst number = (name, schema, options) => {\n if (stripNullType(schema.type) === 'number') {\n const f = stdFormObj(name, schema, options)\n f.key = options.path\n f.type = 'number'\n options.lookup[ObjectPath.stringify(options.path)] = f\n return f\n }\n return undefined\n}\n\nconst integer = (name, schema, options) => {\n if (stripNullType(schema.type) === 'integer') {\n const f = stdFormObj(name, schema, options)\n f.key = options.path\n f.type = 'number'\n options.lookup[ObjectPath.stringify(options.path)] = f\n return f\n }\n return undefined\n}\n\nconst date = (name, schema, options) => {\n if (stripNullType(schema.type) === 'date') {\n const f = stdFormObj(name, schema, options)\n f.key = options.path\n f.type = 'date'\n options.lookup[ObjectPath.stringify(options.path)] = f\n return f\n }\n return undefined\n}\n\nconst checkbox = (name, schema, options) => {\n if (stripNullType(schema.type) === 'boolean') {\n const f = stdFormObj(name, schema, options)\n f.key = options.path\n f.type = 'checkbox'\n options.lookup[ObjectPath.stringify(options.path)] = f\n return f\n }\n return undefined\n}\n\nconst select = (name, schema, options) => {\n if (stripNullType(schema.type) === 'string' && schema.enum) {\n const f = stdFormObj(name, schema, options)\n f.key = options.path\n f.type = 'select'\n if (!f.titleMap && !schema.isObject) {\n f.titleMap = enumToTitleMap(schema.enum)\n }\n options.lookup[ObjectPath.stringify(options.path)] = f\n return f\n }\n return undefined\n}\n\nconst removeEmpty = (obj) =>\n Object.entries(obj).forEach(([key, val]) => {\n if (val && typeof val === 'object') removeEmpty(val)\n // eslint-disable-next-line no-param-reassign\n else if (val === undefined || val === null || val === '') delete obj[key]\n })\n\nconst checkboxes = (name, schema, options) => {\n if (\n stripNullType(schema.type) === 'array' &&\n schema.items &&\n schema.items.enum\n ) {\n const f = stdFormObj(name, schema, options)\n f.key = options.path\n f.type = 'checkboxes'\n if (!f.titleMap) {\n f.titleMap = enumToTitleMap(schema.items.enum)\n }\n options.lookup[ObjectPath.stringify(options.path)] = f\n return f\n }\n return undefined\n}\n\nconst defaultFormDefinition = (name, schema, options) => {\n // eslint-disable-next-line no-use-before-define\n const rules = defaults[stripNullType(schema.type)]\n if (rules) {\n let def\n for (let i = 0; i < rules.length; i += 1) {\n def = rules[i](name, schema, options)\n\n // first handler in list that actually returns something is our handler!\n if (def) {\n // Do we have form defaults in the schema under the x-schema-form-attribute?\n if (\n def.schema['x-schema-form'] &&\n isObject(def.schema['x-schema-form'])\n ) {\n def = extend(def, def.schema['x-schema-form'])\n }\n return def\n }\n }\n }\n return undefined\n}\n\nconst fieldset = (name, schema, options) => {\n if (stripNullType(schema.type) === 'object') {\n const f = stdFormObj(name, schema, options)\n f.type = 'fieldset'\n f.items = []\n options.lookup[ObjectPath.stringify(options.path)] = f\n\n // recurse down into properties\n if (schema.properties) {\n Object.keys(schema.properties).forEach((key) => {\n if (Object.prototype.hasOwnProperty.call(schema.properties, key)) {\n const path = options.path.slice()\n path.push(key)\n if (options.ignore[ObjectPath.stringify(path)] !== true) {\n const required =\n schema.required && schema.required.indexOf(key) !== -1\n\n const def = defaultFormDefinition(key, schema.properties[key], {\n path,\n required: required || false,\n lookup: options.lookup,\n ignore: options.ignore,\n global: options.global\n })\n if (def) {\n f.items.push(def)\n }\n }\n }\n })\n }\n return f\n }\n return undefined\n}\n\nconst tuple = (name, schema, options) => {\n if (stripNullType(schema.type) === 'array') {\n const f = stdFormObj(name, schema, options)\n f.type = 'tuple'\n f.key = options.path\n options.lookup[ObjectPath.stringify(options.path)] = f\n\n if (Array.isArray(schema.items)) {\n const required =\n schema.required &&\n schema.required.indexOf(options.path[options.path.length - 1])\n\n f.items = schema.items.reduce((items, item, index) => {\n const arrPath = options.path.slice()\n arrPath.push(index)\n\n const def = defaultFormDefinition(name, item, {\n path: arrPath,\n required: required || false,\n lookup: options.lookup,\n ignore: options.ignore,\n global: options.global\n })\n if (def) {\n items.push(def)\n }\n\n return items\n }, [])\n\n return f\n }\n }\n return undefined\n}\n\nconst array = (name, schema, options) => {\n if (stripNullType(schema.type) === 'array') {\n const f = stdFormObj(name, schema, options)\n f.type = 'array'\n f.key = options.path\n options.lookup[ObjectPath.stringify(options.path)] = f\n\n // don't do anything if items is not defined.\n if (typeof schema.items !== 'undefined') {\n const required =\n schema.required &&\n schema.required.indexOf(options.path[options.path.length - 1]) !== -1\n\n // The default is to always just create one child. This works since if the\n // schemas items declaration is of type: \"object\" then we get a fieldset.\n // We also follow json form notatation, adding empty brackets \"[]\" to\n // signify arrays.\n\n const arrPath = options.path.slice()\n arrPath.push('')\n const def = defaultFormDefinition(name, schema.items, {\n path: arrPath,\n required: required || false,\n lookup: options.lookup,\n ignore: options.ignore,\n global: options.global\n })\n if (def) {\n f.items = [def]\n } else {\n // This is the case that item only contains key value pair for rc-select multipel\n f.items = schema.items\n }\n }\n return f\n }\n return undefined\n}\n\nconst defaults = {\n string: [select, text],\n object: [fieldset],\n number: [number],\n integer: [integer],\n boolean: [checkbox],\n array: [checkboxes, tuple, array],\n date: [date],\n tBoolean: [tBoolean]\n}\n\nconst getDefaults = (schema, ignore, globalOptions) => {\n const form = []\n const lookup = {} // Map path => form obj for fast lookup in merging\n ignore = ignore || {}\n globalOptions = globalOptions || {}\n if (stripNullType(schema.type) === 'object') {\n if (schema.properties) {\n Object.keys(schema.properties).forEach((key) => {\n if (Object.prototype.hasOwnProperty.call(schema.properties, key)) {\n if (ignore[key] !== true) {\n const required =\n schema.required && schema.required.indexOf(key) !== -1\n const def = defaultFormDefinition(key, schema.properties[key], {\n path: [key], // Path to this property in bracket notation.\n lookup, // Extra map to register with. Optimization for merger.\n ignore, // The ignore list of paths (sans root level name)\n required, // Is it required? (v4 json schema style)\n global: globalOptions // Global options, including form defaults\n })\n if (def) {\n form.push(def)\n }\n }\n }\n })\n }\n } else {\n throw new Error(\n 'Not implemented. Only type \"object\" allowed at root level of schema.'\n )\n }\n return { form, lookup }\n}\n\nconst postProcessFn = (form) => form\n\n/**\n * Append default form rule\n * @param {string} type json schema type\n * @param {Function} rule a function(propertyName,propertySchema,options) that returns a form\n * definition or undefined\n */\nconst appendRule = (type, rule) => {\n if (!defaults[type]) {\n defaults[type] = []\n }\n defaults[type].push(rule)\n}\n/**\n * Prepend default form rule\n * @param {string} type json schema type\n * @param {Function} rule a function(propertyName,propertySchema,options) that returns a form\n * definition or undefined\n */\nconst prependRule = (type, rule) => {\n if (!defaults[type]) {\n defaults[type] = []\n }\n defaults[type].unshift(rule)\n}\n\n// Utility functions\n/**\n * Traverse a schema, applying a function(schema,path) on every sub schema\n * i.e. every property of an object.\n */\nconst traverseSchema = (schema, fn, path, ignoreArrays) => {\n ignoreArrays = typeof ignoreArrays !== 'undefined' ? ignoreArrays : true\n\n path = path || []\n\n const traverse = (innerSchema, innerFunc, innerPath) => {\n innerFunc(innerSchema, innerPath)\n if (innerSchema.properties) {\n Object.keys(innerSchema.properties).forEach((key) => {\n if (Object.prototype.hasOwnProperty.call(innerSchema.properties, key)) {\n const currentPath = innerPath.slice()\n currentPath.push(key)\n traverse(innerSchema.properties[key], innerFunc, currentPath)\n }\n })\n }\n // Only support type \"array\" which have a schema as \"items\".\n if (!ignoreArrays && innerSchema.items) {\n const arrPath = innerPath.slice()\n arrPath.push('')\n traverse(innerSchema.items, innerFunc, arrPath)\n }\n }\n\n traverse(schema, fn, path || [])\n}\n\nconst traverseForm = (form, fn) => {\n fn(form)\n if (form.items) {\n form.items.forEach((f) => {\n traverseForm(f, fn)\n })\n }\n\n if (form.tabs) {\n form.tabs.forEach((tab) => {\n tab.items.forEach((f) => {\n traverseForm(f, fn)\n })\n })\n }\n}\n\nconst merge = (schema, form, ignore, options, readonly) => {\n form = form || ['*']\n options = options || {}\n\n // Get readonly from root object\n readonly = readonly || schema.readonly || schema.readOnly\n\n const stdForm = getDefaults(schema, ignore, options)\n // simple case, we have a \"*\", just put the stdForm there\n const idx = form.indexOf('*')\n if (idx !== -1) {\n form = form\n .slice(0, idx)\n .concat(stdForm.form)\n .concat(form.slice(idx + 1))\n }\n\n // ok let's merge!\n // We look at the supplied form and extend it with schema standards\n const { lookup } = stdForm\n return postProcessFn(\n form.map((obj) => {\n // handle the shortcut with just a name\n if (typeof obj === 'string') {\n obj = { key: obj }\n }\n if (obj && obj.key) {\n if (typeof obj.key === 'string') {\n obj.key = ObjectPath.parse(obj.key)\n }\n }\n\n if (obj && obj.itemForm) {\n obj.items = []\n const str = ObjectPath.stringify(obj.key)\n const foundForm = lookup[str]\n foundForm.items.forEach((item) => {\n const o = cloneDeep(obj.itemForm)\n o.key = item.key\n obj.items.push(o)\n })\n }\n\n // extend with std form from schema.\n if (obj && obj.key) {\n const strid = ObjectPath.stringify(obj.key)\n if (lookup[strid]) {\n const schemaDefaults = lookup[strid]\n Object.keys(schemaDefaults).forEach((key) => {\n if (Object.prototype.hasOwnProperty.call(schemaDefaults, key)) {\n if (obj[key] === undefined) {\n obj[key] = schemaDefaults[key]\n }\n }\n })\n }\n }\n\n // Are we inheriting readonly?\n if (readonly === true) {\n // Inheriting false is not cool.\n obj.readonly = true\n }\n\n // if it's a type with items, merge 'em!\n if (obj && obj.items && obj.items.length > 0) {\n obj.items = merge(schema, obj.items, ignore, options, obj.readonly)\n }\n\n // if its has tabs, merge them also!\n if (obj && obj.tabs) {\n obj.tabs.forEach((tab) => {\n tab.items = merge(schema, tab.items, ignore, options, obj.readonly)\n })\n }\n\n // Special case: checkbox\n // Since have to ternary state we need a default\n if (obj && obj.type === 'checkbox' && isUndefined(obj.schema.default)) {\n obj.schema.default = false\n }\n\n return obj\n })\n )\n}\n\nfunction selectOrSet(projection, obj, valueToSet, type) {\n const numRe = /^\\d+$/\n\n if (!obj) {\n obj = this\n }\n // Support [] array syntax\n const parts =\n typeof projection === 'string' ? ObjectPath.parse(projection) : projection\n\n if (typeof valueToSet !== 'undefined' && parts.length === 1) {\n // special case, just setting one variable\n obj[parts[0]] = valueToSet\n return obj\n }\n\n if (\n typeof valueToSet !== 'undefined' &&\n typeof obj[parts[0]] === 'undefined'\n ) {\n // We need to look ahead to check if array is appropriate\n obj[parts[0]] = parts.length >= 2 && numRe.test(parts[1]) ? [] : {}\n }\n\n if (\n typeof type !== 'undefined' &&\n ['number', 'integer'].indexOf(type) > -1 &&\n typeof valueToSet === 'undefined'\n ) {\n // number or integer can undefined\n obj[parts[0]] = valueToSet\n return obj\n }\n\n let value = obj[parts[0]]\n for (let i = 1; i < parts.length; i += 1) {\n // Special case: We allow JSON Form syntax for arrays using empty brackets\n // These will of course not work here so we exit if they are found.\n if (parts[i] === '') {\n return undefined\n }\n if (typeof valueToSet !== 'undefined') {\n if (i === parts.length - 1) {\n // last step. Let's set the value\n value[parts[i]] = valueToSet\n return valueToSet\n }\n // Make sure to create new objects on the way if they are not there.\n // We need to look ahead to check if array is appropriate\n let tmp = value[parts[i]]\n if (typeof tmp === 'undefined' || tmp === null) {\n tmp = numRe.test(parts[i + 1]) ? [] : {}\n value[parts[i]] = tmp\n }\n value = tmp\n } else if (value) {\n // Just get nex value.\n value = value[parts[i]]\n }\n }\n return value\n}\n\nconst validateBySchema = (schema, value) => tv4.validateResult(value, schema)\n\nconst validate = (form, value, getLocalizedString) => {\n if (!form) {\n return { valid: true }\n }\n const { schema } = form\n if (!schema) {\n return { valid: true }\n }\n // Input of type text and textareas will give us a viewValue of ''\n // when empty, this is a valid value in a schema and does not count as something\n // that breaks validation of 'required'. But for our own sanity an empty field should\n // not validate if it's required.\n\n if (value === '') {\n value = undefined\n }\n\n // Numbers fields will give a null value, which also means empty field\n if (form.type === 'number' && value === null) {\n value = undefined\n }\n\n if (form.type === 'number' && Number.isNaN(parseFloat(value))) {\n value = undefined\n }\n\n // Version 4 of JSON Schema has the required property not on the\n // property itself but on the wrapping object. Since we like to test\n // only this property we wrap it in a fake object.\n const wrap = { type: 'object', properties: {} }\n const propName = form.key[form.key.length - 1]\n wrap.properties[propName] = schema\n\n if (form.required) {\n wrap.required = [propName]\n }\n const valueWrap = {}\n if (typeof value !== 'undefined') {\n valueWrap[propName] = value\n }\n\n const tv4Result = tv4.validateResult(valueWrap, wrap)\n if (\n tv4Result != null &&\n !tv4Result.valid &&\n form.validationMessage != null &&\n typeof value !== 'undefined'\n ) {\n tv4Result.error.message = getLocalizedString\n ? getLocalizedString(form.validationMessage)\n : form.validationMessage\n }\n return tv4Result\n}\n\nconst getValueFromModel = (model, key) => {\n let result\n if (Array.isArray(key)) {\n key.reduce((cur, nxt) => cur && cur[nxt], model)\n result = key.reduce((cur, nxt) => cur && cur[nxt], model)\n } else {\n result = model[key]\n }\n return result\n}\n\nconst getTitleByValue = (titleMap, value) => {\n for (let i = 0; i < titleMap.length; i += 1) {\n const item = titleMap[i]\n if (item.value === value) return item.name\n }\n return undefined\n}\n\nexport default {\n traverseForm,\n traverseSchema,\n prependRule,\n appendRule,\n postProcessFn,\n getDefaults,\n defaultFormDefinition,\n defaults,\n array,\n fieldset,\n checkboxes,\n select,\n checkbox,\n integer,\n number,\n text,\n stdFormObj,\n canonicalTitleMap,\n enumToTitleMap,\n stripNullType,\n merge,\n validate,\n validateBySchema,\n safeEval,\n selectOrSet,\n getValueFromModel,\n getTitleByValue,\n removeEmpty\n}\n","// @flow\nimport React from 'react'\nimport utils from './utils'\n\nconst defaultValue = (props) => {\n // check if there is a value in the model, if there is, display it. Otherwise, check if\n // there is a default value, display it.\n let value\n if (props.form && props.form.key)\n value = utils.selectOrSet(props.form.key, props.model)\n\n // check if there is a default value\n if (value === null || value === undefined) {\n if (props.form.default) {\n value = props.form.default\n } else if (props.form.schema && props.form.schema.default) {\n value = props.form.schema.default\n }\n }\n return value\n}\n\ntype Props = {\n errorText: any,\n form: any,\n showErrors: boolean,\n localization: any,\n onChange: any\n}\n\nconst getDisplayName = (WrappedComponent) =>\n WrappedComponent.displayName || WrappedComponent.name || 'Component'\n\nexport default (ComposedComponent, defaultProps = {}) =>\n (class Composed extends React.Component<Props> {\n constructor(props) {\n super(props)\n this.displayName = `ComposedComponent(${getDisplayName(\n ComposedComponent\n )})`\n this.onChangeValidate = this.onChangeValidate.bind(this)\n this.state = this.constructor.getDerivedStateFromProps(this.props)\n }\n\n static getDerivedStateFromProps(nextProps: Props) {\n const { errorText, form, showErrors, localization } = nextProps\n const getLocalizedString = localization && localization.getLocalizedString\n const value = defaultValue(nextProps)\n if (!showErrors) {\n return {\n value,\n valid: true,\n error: ''\n }\n }\n\n const validationResult = utils.validate(\n form,\n value || undefined,\n getLocalizedString\n )\n\n const error = !validationResult.valid ? validationResult.error : undefined\n\n return {\n value,\n valid: validationResult.valid,\n error: (!validationResult.valid ? error.message : null) || errorText\n }\n }\n\n /**\n * Called when <input> value changes.\n * @param e The input element, or something.\n */\n onChangeValidate(e, v) {\n const { form, onChange, localization } = this.props; // eslint-disable-line\n const getLocalizedString = localization && localization.getLocalizedString\n let value = null\n // use the schema type so that we can have a limited number of types to handle. This\n // gives us the flexibility to create add-ons without touching the code of main project.\n const type = form.schema ? form.schema.type : form.type\n // console.log(type)\n switch (type) {\n case 'integer':\n case 'number': {\n value = e\n break\n }\n case 'boolean':\n value = e.target.checked\n break\n case 'array':\n value = e\n break\n case 'object':\n if (form.type === 'date') {\n if (e.target.value.length > 0) {\n value = new Date(e.target.value)\n } else {\n value = ''\n }\n break\n }\n ;({ value } = e.target)\n break\n default:\n // string goes here.\n ;({ value } = e.target)\n }\n\n const validationResult = utils.validate(form, value, getLocalizedString)\n this.setState({\n value,\n valid: validationResult.valid,\n error: validationResult.valid ? null : validationResult.error.message\n })\n\n onChange(form.key, value)\n }\n\n render() {\n return (\n <ComposedComponent\n {...defaultProps}\n {...this.props}\n {...this.state}\n onChangeValidate={this.onChangeValidate}\n />\n )\n }\n })\n","// @flow\n/**\n * Created by steve on 15/09/15.\n */\nimport React from 'react'\nimport TextField from '@mui/material/TextField'\nimport ComposedComponent from './ComposedComponent'\nimport type { Localization } from './types'\n\ntype Props = {\n form: any,\n model: any,\n value: any,\n setDefault: any,\n error: any,\n onChangeValidate: any,\n localization: Localization,\n otherProps?: any\n}\n\nclass Text extends React.Component<Props> {\n constructor(props) {\n super(props)\n const { model, form, value, setDefault } = this.props\n const { key } = form\n setDefault(key, model, form, value)\n }\n\n render() {\n const {\n form,\n error,\n value,\n onChangeValidate,\n localization: { getLocalizedString },\n otherProps\n } = this.props\n return (\n <TextField\n type={form.type}\n label={form.title && getLocalizedString(form.title)}\n placeholder={form.placeholder && getLocalizedString(form.placeholder)}\n helperText={\n (error || form.description) &&\n getLocalizedString(error || form.description)\n }\n error={!!error}\n onChange={onChangeValidate}\n value={value || ''}\n disabled={form.readonly}\n fullWidth\n required={form.required}\n style={form.style}\n {...otherProps}\n {...form.otherProps}\n />\n )\n }\n}\n\nText.defaultProps = {\n otherProps: undefined\n}\n\nexport default ComposedComponent(Text)\n","// @flow\n/**\n * Created by steve on 15/09/15.\n */\nimport React from 'react'\nimport ComposedComponent from './ComposedComponent'\nimport type { Localization } from './types'\nimport Text from './Text'\n\ntype Props = {\n value: any,\n onChangeValidate: any,\n form: {\n key: string,\n required: boolean,\n placeholder: string,\n readonly: boolean,\n description: string,\n schema: any,\n useLocalizer: boolean,\n type?: string\n },\n error: any,\n localization: Localization\n}\n\n/**\n * There is no default number picker as part of Material-UI.\n * Instead, use a TextField and validate.\n */\nconst NumberComponent = (props: Props) => {\n const {\n form,\n value,\n localization: { getLocalizedNumber },\n onChangeValidate\n } = props\n let inputValue = value || value === 0 ? value : ''\n if (form.useLocalizer) inputValue = getLocalizedNumber(inputValue)\n\n const onChange = (e) => {\n const type = form.schema ? form.schema.type : form.type\n let enteredValue = null\n if (type === 'integer') {\n enteredValue = parseInt(e.target.value, 10)\n } else if (type === 'number') {\n const values = e.target.value.split('.')\n if (values.length < 2) {\n enteredValue = parseInt(e.target.value, 10)\n } else if (values.length > 1) {\n if (values[1].length > 0) enteredValue = parseFloat(e.target.value)\n else enteredValue = `${parseInt(values[0], 10)}.`\n }\n }\n onChangeValidate(enteredValue)\n }\n\n return (\n <Text\n {...props}\n form={{ ...form, type: 'string' }}\n value={inputValue}\n otherProps={{ onChange }}\n />\n )\n}\n\nexport default ComposedComponent(NumberComponent)\n","// @flow\n/**\n * Created by steve on 15/09/15.\n */\nimport React from 'react'\nimport ComposedComponent from './ComposedComponent'\nimport type { Localization } from './types'\nimport Text from './Text'\n\ntype Props = {\n form: any,\n value: any,\n error: any,\n onChangeValidate: any,\n localization: Localization\n}\n\nconst TextArea = (props: Props) => {\n const { form } = props\n return (\n <Text\n {...props}\n otherProps={{\n multiline: true,\n rows: form.rows,\n maxRows: form.maxRows\n }}\n />\n )\n}\n\nexport default ComposedComponent(TextArea)\n","/**\n * Created by steve on 15/09/15.\n */\nimport React, { useState, useEffect } from 'react'\nimport FormLabel from '@mui/material/FormLabel'\nimport FormHelperText from '@mui/material/FormHelperText'\nimport ReactMde from 'react-mde'\nimport * as Showdown from 'showdown'\nimport 'react-mde/lib/styles/css/react-mde-all.css'\n\nimport ComposedComponent from './ComposedComponent'\n\nconst converter = new Showdown.Converter({\n tables: true,\n simplifiedAutoLink: true,\n strikethrough: true,\n tasklists: true\n})\n\nconst Markdown = (props) => {\n const { model, form, value, error, setDefault, onChangeValidate } = props\n const { key, title } = form\n setDefault(key, model, form, value)\n const [selectedTab, setSelectedTab] = useState('write')\n const [text, setText] = useState(value)\n useEffect(() => {\n onChangeValidate({ target: { value: text } })\n }, [text])\n return (\n <React.Fragment>\n <FormLabel required={form.required}>{title}</FormLabel>\n <ReactMde\n value={value}\n onChange={setText}\n readOnly={form.readonly}\n selectedTab={selectedTab}\n onTabChange={setSelectedTab}\n generateMarkdownPreview={(markdown) =>\n Promise.resolve(converter.makeHtml(markdown))\n }\n />\n {error ? <FormHelperText error>{error}</FormHelperText> : null}\n </React.Fragment>\n )\n}\n\nexport default ComposedComponent(Markdown)\n","/* eslint-disable */\n// temporary disable eslint in this unfinished file because it blocks tests\n/**\n * Created by XaviTorello on 30/05/18\n */\nimport React from \"react\";\nimport ComposedComponent from \"./ComposedComponent\";\n\nconst dataSourceConfig = {\n text: \"name\",\n value: \"value\"\n};\n\nclass TextSuggest extends React.Component {\n handleUpdate = (newValue, index) => {\n const { key } = this.props.form;\n const { type } = this.props.form.schema;\n return this.props.onChange(\n key,\n newValue[dataSourceConfig.value],\n type,\n this.props.form\n );\n };\n\n handleInit = init_value => {\n if (!this.props.form.schema || !this.props.form.schema.enum)\n return init_value.toString();\n\n const names =\n this.props.form.schema.enumNames || this.props.form.schema.enum;\n const values = this.props.form.schema.enum;\n\n const init_value_name = names[values.indexOf(init_value)];\n\n // this.handleUpdate({[dataSourceConfig['value']]: init_value, [dataSourceConfig['text']]: init_value_name})\n\n return init_value_name || init_value.toString();\n };\n\n render() {\n // assign the filter, by default case insensitive\n const filter = (filter => {\n switch (filter) {\n case \"fuzzy\":\n return AutoComplete.fuzzyFilter;\n default:\n return AutoComplete.caseInsensitiveFilter;\n }\n })(this.props.form.filter);\n\n const value = this.props.value && this.handleInit(this.props.value);\n\n return (\n <div className={this.props.form.htmlClass}>\n <AutoComplete\n type={this.props.form.type}\n floatingLabelText={this.props.form.title}\n hintText={this.props.form.placeholder}\n errorText={this.props.error}\n onNewRequest={this.handleUpdate}\n disabled={this.props.form.readonly}\n style={this.props.form.style || { width: \"100%\" }}\n openOnFocus\n searchText={value}\n dataSource={this.props.form.titleMap || [\"Loading...\"]}\n filter={filter}\n maxSearchResults={this.props.form.maxSearchResults || 5}\n dataSourceConfig={dataSourceConfig}\n />\n </div>\n );\n }\n}\n\nexport default ComposedComponent(TextSuggest);\n","import React, { useState, useEffect } from 'react'\nimport MenuItem from '@mui/material/MenuItem'\nimport MuiSelect from '@mui/material/Select'\nimport InputLabel from '@mui/material/InputLabel'\nimport FormControl from '@mui/material/FormControl'\nimport FormHelperText from '@mui/material/FormHelperText'\nimport ComposedComponent from './ComposedComponent'\nimport utils from './utils'\n\nfunction Select(props) {\n const {\n model,\n form,\n error,\n setDefault,\n onChange,\n onChangeValidate,\n localization: { getLocalizedString },\n form: {\n key,\n schema: { isObject, enum: values, findFn, displayFn, noLocalization }\n }\n } = props\n\n let defaultValue =\n form && form.selectProps && form.selectProps.multiple ? [] : ''\n if (props.form.default) {\n defaultValue = props.form.default\n } else if (props.form.schema && props.form.schema.default) {\n defaultValue = props.form.schema.default\n }\n const [currentValue, setCurrentValue] = useState(\n utils.getValueFromModel(model, form.key) || defaultValue\n )\n\n useEffect(() => {\n setDefault(key, model, form, currentValue)\n }, [])\n\n const onSelected = (event) => {\n const selectedValue = event.target.value\n setCurrentValue(selectedValue)\n if (isObject) {\n const item = values.find((each) =>\n findFn ? findFn(each, selectedValue) : each === selectedValue\n )\n onChange(key, item)\n } else {\n onChangeValidate(event)\n }\n }\n\n const getLabel = (each) => {\n if (displayFn) {\n return displayFn(each)\n }\n if (noLocalization) return each.name\n return getLocalizedString(each.name)\n }\n\n let menuItems = []\n if (isObject) {\n menuItems = form.schema.enum.map((item, idx) => (\n // eslint-disable-next-line react/no-array-index-key\n <MenuItem key={idx} value={item}>\n {getLabel(item)}\n </MenuItem>\n ))\n } else {\n menuItems = form.titleMap.map((item, idx) => (\n // eslint-disable-next-line react/no-array-index-key\n <MenuItem key={idx} value={item.value}>\n {getLabel(item)}\n </MenuItem>\n ))\n }\n\n return (\n <FormControl fullWidth error={!!error} {...form.otherProps}>\n <InputLabel required={form.required} {...form.labelProps}>\n {form.title && getLocalizedString(form.title)}\n </InputLabel>\n <MuiSelect\n value={currentValue}\n placeholder={form.placeholder && getLocalizedString(form.placeholder)}\n disabled={form.readonly}\n onChange={onSelected}\n {...form.selectProps}\n >\n {menuItems}\n </MuiSelect>\n <FormHelperText {...form.helperTextProps}>\n {(error || form.description) &&\n getLocalizedString(error || form.description)}\n </FormHelperText>\n </FormControl>\n )\n}\n\nexport default ComposedComponent(Select)\n","// @flow\nimport React, { Component } from 'react'\nimport withStyles from '@mui/styles/withStyles';\nimport MenuItem from '@mui/material/MenuItem'\nimport MuiSelect from '@mui/material/Select'\nimport InputLabel from '@mui/material/InputLabel'\nimport FormControl from '@mui/material/FormControl'\nimport Chip from '@mui/material/Chip'\nimport ComposedComponent from './ComposedComponent'\nimport utils from './utils'\nimport type { Localization } from './types'\n\nconst styles = (theme) => ({\n root: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n chip: {\n margin: theme.spacing(0.25)\n },\n menuItem: {\n fontWeight: theme.typography.fontWeightRegular\n },\n selectedMenuItem: {\n fontWeight: theme.typography.fontWeightMedium\n }\n})\n\nconst ITEM_HEIGHT = 48\nconst ITEM_PADDING_TOP = 8\nconst MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250\n }\n }\n}\n\ntype Props = {\n model: any,\n form: any,\n onChangeValidate: any,\n classes: any,\n localization: Localization\n}\n\ntype State = {\n currentValue: any\n}\n\nclass MultiSelect extends Component<Props, State> {\n constructor(props) {\n super(props)\n const { model, form } = this.props\n this.state = {\n currentValue: utils.getValueFromModel(model, form.key) || []\n }\n }\n\n static getDerivedStateFromProps(props: Props) {\n const { model, form } = props\n if (model && form.key) {\n return {\n currentValue: utils.getValueFromModel(model, form.key) || []\n }\n }\n return null\n }\n\n onSelected = (event) => {\n const { onChangeValidate } = this.props\n const currentValue = event.target.value\n this.setState({ currentValue })\n onChangeValidate(currentValue)\n }\n\n render() {\n const {\n form,\n classes,\n localization: { getLocalizedString }\n } = this.props\n const { currentValue } = this.state\n const getTitle = utils.getTitleByValue.bind(this, form.titleMap)\n const menuItems = form.titleMap.map((item) => (\n <MenuItem\n key={item.value}\n value={item.value}\n className={\n currentValue.indexOf(item.value) === -1\n ? classes.menuItem\n : classes.selectedMenuItem\n }\n >\n {item.name && getLocalizedString(item.name)}\n </MenuItem>\n ))\n return (\n <FormControl fullWidth {...form.otherProps}>\n <InputLabel required={form.required}>\n {form.title && getLocalizedString(form.title)}\n </InputLabel>\n <MuiSelect\n multiple\n value={currentValue || ''}\n placeholder={form.placeholder && getLocalizedString(form.placeholder)}\n disabled={form.readonly}\n onChange={this.onSelected}\n MenuProps={MenuProps}\n renderValue={(selected) => (\n <div className={classes.chips}>\n {selected.map((value) => (\n <Chip\n key={value}\n label={getTitle(value) && getLocalizedString(getTitle(value))}\n className={classes.chip}\n />\n ))}\n </div>\n )}\n >\n {menuItems}\n </MuiSelect>\n </FormControl>\n )\n }\n}\n\nexport default ComposedComponent(withStyles(styles)(MultiSelect))\n","// @flow\nimport React, { Component } from 'react'\nimport FormControl from '@mui/material/FormControl'\nimport FormControlLabel from '@mui/material/FormControlLabel'\nimport FormLabel from '@mui/material/FormLabel'\nimport RadioGroup from '@mui/material/RadioGroup'\nimport Radio from '@mui/material/Radio'\nimport withStyles from '@mui/styles/withStyles';\nimport ComposedComponent from './ComposedComponent'\nimport type { Localization } from './types'\n\nconst styles = (theme) => ({\n formControl: {\n marginTop: theme.spacing(1)\n },\n group: {\n margin: theme.spacing(1, 0)\n }\n})\n\ntype Props = {\n classes: any,\n form: any,\n value: any,\n onChangeValidate: any,\n localization: Localization\n}\n\nclass Radios extends Component<Props> {\n renderItems = (form) => {\n const {\n localization: { getLocalizedString }\n } = this.props\n return form.titleMap.map((item, index) => (\n <FormControlLabel\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n control={<Radio />}\n label={item.name && getLocalizedString(item.name)}\n value={item.value}\n disabled={form.readonly}\n />\n ))\n }\n\n render() {\n const {\n classes,\n form,\n value,\n onChangeValidate,\n localization: { getLocalizedString }\n } = this.props\n return (\n <FormControl\n component='fieldset'\n className={classes.formControl}\n {...form.otherProps}\n >\n <FormLabel component='legend' required={form.required}>\n {form.title && getLocalizedString(form.title)}\n </FormLabel>\n <RadioGroup\n value={value}\n name={form.title}\n onChange={onChangeValidate}\n className={classes.group}\n >\n {this.renderItems(form)}\n </RadioGroup>\n </FormControl>\n )\n }\n}\n\nexport default ComposedComponent(withStyles(styles)(Radios))\n","// @flow\n/*\nNative date field. \nContains common logic for final components Date and DateTime.\n*/\nimport React from 'react'\nimport type { Localization } from './types'\nimport Text from './Text'\n\ntype Props = {\n onChangeValidate: any,\n form: any,\n value: any,\n type: any,\n localization: Localization\n}\n\nconst NativeDateField = (props: Props) => {\n const {\n value,\n localization: { getLocalizedDate },\n form,\n type\n } = props\n return (\n <Text\n {...props}\n form={{ ...form, type }}\n value={getLocalizedDate(value)}\n otherProps={{ InputLabelProps: { shrink: true } }}\n {...form.otherProps}\n />\n )\n}\n\nexport default NativeDateField\n","/**\n * Created by steve on 22/12/15.\n */\nimport ComposedComponent from './ComposedComponent'\nimport NativeDateField from './NativeDateField'\n\nexport default ComposedComponent(NativeDateField, { type: 'date' })\n","// @flow\n/**\n * Created by steve on 15/09/15.\n */\nimport React from 'react'\nimport TextField from '@mui/material/TextField'\nimport ComposedComponent from './ComposedComponent'\nimport type { Localization } from './types'\n\ntype Props = {\n form: any,\n model: any,\n value: any,\n setDefault: any,\n error: any,\n onChangeValidate: any,\n localization: Localization\n}\n\nclass Timestamp extends React.Component<Props> {\n constructor(props) {\n super(props)\n const { model, form, value, setDefault } = this.props\n const { key } = form\n const d = new Date()\n const currentTimestamp = d.toISOString().substring(0, 16)\n setDefault(key, model, form, value || currentTimestamp)\n }\n\n render() {\n const {\n form,\n error,\n value,\n onChangeValidate,\n localization: { getLocalizedString }\n } = this.props\n return (\n <TextField\n type='datetime-local'\n label={form.title && getLocalizedString(form.title)}\n placeholder={form.placeholder && getLocalizedString(form.placeholder)}\n helperText={\n (error || form.description) &&\n getLocalizedString(error || form.description)\n }\n error={!!error}\n onChange={onChangeValidate}\n value={value || ''}\n disabled={form.readonly}\n fullWidth\n required={form.required}\n style={form.style}\n {...form.otherProps}\n />\n )\n }\n}\n\nexport default ComposedComponent(Timestamp)\n","/**\n * Created by steve on 20/09/15.\n */\nimport React from 'react'\nimport Checkbox from '@mui/material/Checkbox'\nimport FormGroup from '@mui/material/FormGroup'\nimport FormControlLabel from '@mui/material/FormControlLabel'\nimport ComposedComponent from './ComposedComponent'\n\nfunction FormCheckbox(props) {\n const {\n model,\n form,\n value,\n setDefault,\n localization: { getLocalizedString },\n onChangeValidate\n } = props\n const { key } = form\n setDefault(key, model, form, value)\n return (\n <FormGroup row>\n <FormControlLabel\n className={form.className}\n label={form.title && getLocalizedString(form.title)}\n control={\n <Checkbox\n name={form.key.slice(-1)[0]}\n value={form.key.slice(-1)[0]}\n checked={value || false}\n disabled={form.readonly}\n onChange={onChangeValidate}\n />\n }\n {...form.otherProps}\n />\n </FormGroup>\n )\n}\n\nexport default ComposedComponent(FormCheckbox)\n","// @flow\n/**\n * Created by steve on 20/09/15.\n */\nimport React from 'react'\nimport Typography from '@mui/material/Typography'\n\ntype Props = {\n form: any\n}\n\nconst Help = ({\n form: { description, variant, align, color, noWrap, paragraph, otherProps }\n}: Props) => (\n <Typography\n variant={variant}\n align={align}\n color={color}\n noWrap={noWrap}\n paragraph={paragraph}\n {...otherProps}\n >\n {description}\n </Typography>\n)\n\nexport default Help\n","// @flow\nimport React, { Component } from 'react'\nimport withStyles from '@mui/styles/withStyles';\nimport Button from '@mui/material/Button'\nimport Card from '@mui/material/Card'\nimport IconButton from '@mui/material/IconButton'\nimport DeleteIcon from '@mui/icons-material/Close'\nimport cloneDeep from 'lodash/cloneDeep'\nimport FormLabel from '@mui/material/FormLabel'\nimport utils from './utils'\nimport ComposedComponent from './ComposedComponent'\nimport type { Localization } from './types'\n\nconst styles = (theme) => ({\n arrayItem: {\n position: 'relative',\n padding: theme.spacing(),\n marginTop: theme.spacing(),\n display: 'flex'\n },\n deleteItemButton: {\n margin: [[theme.spacing(-1), theme.spacing(-1), 'auto', 'auto']]\n },\n addButton: {\n marginLeft: theme.spacing()\n },\n elementsContainer: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n title: {\n margin: 'auto 0'\n }\n})\n\ntype Props = {\n form: any,\n key: any,\n model: any,\n classes: any,\n builder: any,\n mapper: any,\n options: any,\n onChangeValidate: any,\n onChange: any,\n localization: Localization\n}\n\ntype State = {\n model: any\n}\n\nclass ArrayComponent extends Component<Props, State> {\n static assignItemId(item) {\n let newItem = null\n if (item && typeof item === 'object' && Array.isArray(item)) {\n newItem = [...item]\n } else if (\n item &&\n typeof item === 'object' &&\n !item[ArrayComponent.ITEM_ID]\n ) {\n newItem = { ...item }\n }\n\n if (newItem) {\n // define hidden property with internal id\n Object.defineProperty(newItem, ArrayComponent.ITEM_ID, {\n enumerable: false,\n writable: true\n })\n ArrayComponent.SEQUENCE += 1\n newItem[ArrayComponent.ITEM_ID] = ArrayComponent.SEQUENCE\n return newItem\n }\n\n return item\n }\n\n static setIndex = (index) => (form) => {\n if (form.key) {\n // todo fix mutable object\n // eslint-disable-next-line no-param-reassign\n form.key[form.key.indexOf('')] = index\n }\n }\n\n static copyWithIndex = (form, index) => {\n const copy = cloneDeep(form)\n copy.arrayIndex = index\n utils.traverseForm(copy, ArrayComponent.setIndex(index))\n return copy\n }\n\n SEQUENCE = 1\n\n constructor(props) {\n super(props)\n const { form, model } = this.props\n // we have the model here for the entire form, get the model for this array only\n // and add to the state. if is empty, add an entry by calling onAppend directly.\n this.state = {\n model: utils.selectOrSet(form.key, model) || []\n }\n }\n\n static getDerivedStateFromProps(props: Props, state) {\n const { form } = props\n const propsKey = form.key\n if (\n props.form &&\n propsKey === state.formKey &&\n props.model &&\n props.model[propsKey] === state.model\n ) {\n return null // nothing changed\n }\n const model = utils.selectOrSet(propsKey, props.model) || []\n return {\n formKey: propsKey,\n model: model.map(ArrayComponent.assignItemId)\n }\n }\n\n componentDidMount() {\n const { form, model } = this.props\n // Always start with one empty form unless configured otherwise.\n if (form.startEmpty !== true && model.length === 0) {\n this.onAppend()\n }\n }\n\n onAppend = () => {\n const { form, options, onChangeValidate } = this.props\n const { model } = this.state\n let empty\n if (form && form.schema && form.schema.items) {\n const { items } = form.schema\n if (items.type && items.type.indexOf('object') !== -1) {\n empty = {}\n\n // Check for possible defaults\n if (!options || options.setSchemaDefaults !== false) {\n empty = typeof items.default !== 'undefined' ? items.default : empty\n\n // Check for defaults further down in the schema.\n // If the default instance sets the new array item to something falsy, i.e. null\n // then there is no need to go further down.\n if (empty) {\n utils.traverseSchema(items, (prop, path) => {\n if (typeof prop.default !== 'undefined') {\n utils.selectOrSet(path, empty, prop.default)\n }\n })\n }\n }\n } else if (items.type && items.type.indexOf('array') !== -1) {\n empty = []\n if (!options || options.setSchemaDefaults !== false) {\n empty = items.default || empty\n }\n } else if (!options || options.setSchemaDefaults !== false) {\n // No type? could still have defaults.\n empty = items.default || empty\n }\n }\n const newModel = model\n ArrayComponent.assignItemId(empty)\n newModel.push(empty)\n this.setState({\n model: newModel\n })\n onChangeValidate(model)\n }\n\n onDelete = (index) => () => {\n const { model } = this.state\n const { onChangeValidate } = this.props\n const newModel = model\n newModel.splice(index, 1)\n this.setState({\n model: newModel\n })\n onChangeValidate(model)\n }\n\n getAddButton = () => {\n const { form, classes } = this.props\n\n const AddButton =\n form.AddButton ||\n ((props) => (\n <Button\n className={classes.addButton}\n variant='contained'\n color='primary'\n {...props}\n />\n ))\n return <AddButton onClick={this.onAppend}>{form.add || 'Add'}</AddButton>\n }\n\n static ITEM_ID = Symbol('_SCHEMAFORM_ITEM_ID')\n\n render() {\n const {\n classes,\n form,\n builder,\n model,\n mapper,\n onChange,\n localization: { getLocalizedString }\n } = this.props\n\n const { model: stateModel } = this.state\n const arrays = []\n\n for (let i = 0; i < stateModel.length; i += 1) {\n const item = stateModel[i]\n const forms = form.items.map((eachForm, index) => {\n const copy = ArrayComponent.copyWithIndex(eachForm, i)\n return builder(copy, model, index, mapper, onChange, builder, {\n arrayIndex: i\n })\n })\n arrays.push(\n <Card\n className={classes.arrayItem}\n key={(item && item[ArrayComponent.ITEM_ID]) || i}\n >\n <div className={classes.elementsContainer}>{forms}</div>\n <IconButton\n onClick={this.onDelete(i)}\n className={classes.deleteItemButton}\n size=\"large\">\n <DeleteIcon fontSize='small' />\n </IconButton>\n </Card>\n )\n }\n return (\n <div className={classes.root}>\n <div style={{ display: 'flex' }}>\n <FormLabel required={form.required} className={classes.title}>\n {form.title && getLocalizedString(form.title)}\n </FormLabel>\n {this.getAddButton()}\n </div>\n <div>{arrays}</div>\n </div>\n )\n }\n}\n\nexport default ComposedComponent(withStyles(styles)(ArrayComponent))\n","// @flow\n/**\n * Created by steve on 11/09/15.\n */\nimport React from 'react'\nimport FormControl from '@mui/material/FormControl'\nimport FormLabel from '@mui/material/FormLabel'\nimport withStyles from '@mui/styles/withStyles';\nimport classNames from 'classnames'\nimport type { Localization } from './types'\n\nconst styles = (theme) => ({\n root: {\n marginTop: theme.spacing(1)\n },\n fields: {\n marginLeft: theme.spacing(1)\n }\n})\n\ntype Props = {\n form: any,\n mapper: any,\n builder: any,\n model: any,\n onChange: any,\n classes: any,\n localization: Localization\n}\n\nconst FieldSet = ({\n form,\n mapper,\n builder,\n model,\n onChange,\n classes,\n localization: { getLocalizedString }\n}: Props) => {\n const forms = form.items.map((f, index) =>\n builder(f, model, index, mapper, onChange, builder)\n )\n const className = classNames(classes.root, form.htmlClass)\n\n return (\n <FormControl\n component='fieldset'\n className={className}\n style={form.style}\n {...form.otherProps}\n >\n <FormLabel component='legend' required={form.required}>\n {form.title && getLocalizedString(form.title)}\n </FormLabel>\n <div className={classes.fields}>{forms}</div>\n </FormControl>\n )\n}\n\nexport default withStyles(styles)(FieldSet)\n","// @flow\n/**\n * Created by steve on 15/09/15.\n */\nimport React, { Component } from 'react'\nimport {\n Card,\n Button,\n Checkbox,\n FormControlLabel,\n FormGroup\n} from '@mui/material'\nimport FormLabel from '@mui/material/FormLabel'\nimport ComposedComponent from './ComposedComponent'\nimport type { Localization } from './types'\n\ntype Props = {\n model: any,\n form: {\n title: string,\n yesLabel: string,\n noLabel: string,\n clearButtonLabel: string,\n key: any,\n required?: boolean\n },\n value: any,\n setDefault: any,\n onChangeValidate: any,\n localization: Localization\n}\n\ntype State = {\n yesChecked: boolean,\n noChecked: boolean\n}\n\n/**\n * There is no default number picker as part of Material-UI.\n * Instead, use a TextField and validate.\n */\nclass TripleBoolean extends Component<Props, State> {\n static getDerivedStateFromProps(nextProps) {\n return {\n yesChecked: nextProps.value === 'yes',\n noChecked: nextProps.value === 'no'\n }\n }\n\n divStyle = {\n padding: '20px'\n }\n\n constructor(props) {\n super(props)\n this.state = {\n yesChecked: false,\n noChecked: false\n }\n\n const { model, form, value, setDefault } = this.props\n const { key } = form\n\n setDefault(key, model, form, value)\n }\n\n displaySwitch() {\n const {\n form: { title, yesLabel, noLabel, clearButtonLabel, required },\n onChangeValidate,\n value,\n localization: { getLocalizedString }\n } = this.props\n const { yesChecked, noChecked } = this.state\n return (\n <div style={this.divStyle}>\n <FormLabel required={required}>\n {title && getLocalizedString(title)}\n </FormLabel>\n <br />\n <FormGroup>\n <FormControlLabel\n control={\n <Checkbox\n onClick={(e) => {\n onChangeValidate(e, 'yes')\n }}\n checked={yesChecked}\n />\n }\n label={yesLabel ? getLocalizedString(yesLabel) : 'Yes'}\n />\n <FormControlLabel\n control={\n <Checkbox\n onClick={(e) => {\n onChangeValidate(e, 'no')\n }}\n checked={noChecked}\n />\n }\n label={noLabel ? getLocalizedString(noLabel) : 'No'}\n />\n </FormGroup>\n {value === 'yes' || value === 'no' ? (\n <Button\n id='temp'\n variant='text'\n color='primary'\n onClick={(e) => onChangeValidate(e, 'unanswered')}\n >\n {clearButtonLabel\n ? getLocalizedString(clearButtonLabel)\n : 'clear response'}\n </Button>\n ) : (\n ''\n )}\n </div>\n )\n }\n\n render() {\n return <Card>{this.displaySwitch()}</Card>\n }\n}\n\nexport default ComposedComponent(TripleBoolean)\n","import React, { useState, useEffect } from 'react'\nimport FormLabel from '@mui/material/FormLabel'\nimport FormHelperText from '@mui/material/FormHelperText'\nimport CheckboxTree from 'react-checkbox-tree'\nimport 'react-checkbox-tree/lib/react-checkbox-tree.css'\nimport CheckBoxIcon from '@mui/icons-material/CheckBox'\nimport CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank'\nimport IndeterminateCheckBoxIcon from '@mui/icons-material/IndeterminateCheckBox'\nimport ChevronRightIcon from '@mui/icons-material/ChevronRight'\nimport KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'\nimport AddBoxIcon from '@mui/icons-material/AddBox'\nimport FolderIcon from '@mui/icons-material/Folder'\nimport FolderOpenIcon from '@mui/icons-material/FolderOpen'\nimport InsertDriveFileIcon from '@mui/icons-material/InsertDriveFile'\nimport Cookies from 'universal-cookie'\nimport ComposedComponent from './ComposedComponent'\n\nfunction Taxonomy(props) {\n const { model, form, value, error, setDefault, onChangeValidate } = props\n const { key, title, action } = form\n setDefault(key, model, form, value)\n const [taxonomies, setTaxonomies] = useState(value || []) // an array of values\n const [expanded, setExpended] = useState([])\n const [terms, setTerms] = useState([]) // the entire category\n useEffect(() => {\n onChangeValidate(taxonomies)\n }, [taxonomies])\n\n const fetchCateogry = (url) => {\n const cookies = new Cookies()\n const headers = { 'Content-Type': 'application/json' }\n if (cookies.get('csrf'))\n Object.assign(headers, { 'X-CSRF-TOKEN': cookies.get('csrf') })\n fetch(url, { headers, credentials: 'include' })\n .then((res) => {\n if (res.ok) {\n return res.json()\n }\n return res.text().then((text) => {\n throw new Error(text)\n })\n })\n .then((res) => {\n setTerms(res)\n })\n .catch((error) => {\n console.error(error)\n })\n }\n\n useEffect(() => {\n const { url } = action\n fetchCateogry(url)\n }, [])\n\n const icons = {\n check: <CheckBoxIcon className='rct-icon rct-icon-check' />,\n uncheck: <CheckBoxOutlineBlankIcon className='rct-icon rct-icon-uncheck' />,\n halfCheck: (\n <IndeterminateCheckBoxIcon className='rct-icon rct-icon-half-check' />\n ),\n expandClose: (\n <ChevronRightIcon className='rct-icon rct-icon-expand-close' />\n ),\n expandOpen: (\n <KeyboardArrowDownIcon className='rct-icon rct-icon-expand-open' />\n ),\n expandAll: <AddBoxIcon className='rct-icon rct-icon-expand-all' />,\n collapseAll: (\n <IndeterminateCheckBoxIcon className='rct-icon rct-icon-collapse-all' />\n ),\n parentClose: <FolderIcon className='rct-icon rct-icon-parent-close' />,\n parentOpen: <FolderOpenIcon className='rct-icon rct-icon-parent-open' />,\n leaf: <InsertDriveFileIcon className='rct-icon rct-icon-leaf-close' />\n }\n\n return (\n <React.Fragment>\n <FormLabel required={form.required}>{title}</FormLabel>\n <CheckboxTree\n nodes={terms}\n checked={taxonomies}\n expanded={expanded}\n onCheck={(checked) => setTaxonomies(checked)}\n onExpand={(expanded) => setExpended(expanded)}\n icons={icons}\n noCascade\n />\n {error ? <FormHelperText error>{error}</FormHelperText> : null}\n </React.Fragment>\n )\n}\n\nexport default ComposedComponent(Taxonomy)\n","// @flow\n/**\n * Created by steve on 11/09/15.\n */\nimport React, { Component } from 'react'\nimport merge from 'lodash/merge'\nimport isNil from 'lodash/isNil'\nimport utils from './utils'\nimport Number from './Number'\nimport Text from './Text'\nimport TextArea from './TextArea'\nimport Markdown from './Markdown'\nimport TextSuggest from './TextSuggest'\nimport Select from './Select'\nimport MultiSelect from './MultiSelect'\nimport Radios from './Radios'\nimport DateComponent from './Date'\nimport Timestamp from './Timestamp'\nimport Checkbox from './Checkbox'\nimport Help from './Help'\nimport Array from './Array'\nimport FieldSet from './FieldSet'\nimport TripleBoolean from './TripleBoolean'\nimport Taxonomy from './Taxonomy'\nimport type { Localization } from './types'\n\ntype Props = {\n onModelChange: any,\n errors: any,\n schema: any,\n form: any,\n ignore: any,\n option: any,\n model: any,\n className: any,\n mapper: any,\n localization?: Localization,\n showErrors?: boolean,\n evalContext: any\n}\n\nconst formatDate = (date: string | Date) => {\n let value =\n (date && typeof date === 'object' && date.toISOString().slice(0, 10)) ||\n date\n if (!value) value = ''\n if (value.length > 0) value = new Date(value).toISOString().slice(0, 10)\n return value\n}\n\nclass SchemaForm extends Component<Props> {\n mapper = {\n number: Number,\n text: Text,\n password: Text,\n textarea: TextArea,\n markdown: Markdown,\n textsuggest: TextSuggest,\n select: Select,\n taxonomy: Taxonomy,\n radios: Radios,\n date: DateComponent,\n timestamp: Timestamp,\n checkbox: Checkbox,\n help: Help,\n array: Array,\n tBoolean: TripleBoolean,\n fieldset: FieldSet,\n tuple: FieldSet,\n multiselect: MultiSelect\n }\n\n constructor(props) {\n super(props)\n this.builder = this.builder.bind(this)\n }\n\n // Assign default values and save it to the model\n setDefault = (key, model, form, value) => {\n const { onModelChange } = this.props\n const currentValue = utils.selectOrSet(key, model)\n\n // If current value is not setted and exist a default, apply the default over the model\n if (isNil(currentValue) && !isNil(value))\n onModelChange(key, value, form.type, form)\n }\n\n getLocalization = () => {\n const { localization } = this.props\n return {\n getLocalizedString:\n localization && localization.getLocalizedString\n ? localization.getLocalizedString\n : (value) => value,\n getLocalizedNumber:\n localization && localization.getLocalizedNumber\n ? localization.getLocalizedNumber\n : (value) => value,\n getLocalizedDate:\n localization && localization.getLocalizedDate\n ? localization.getLocalizedDate\n : formatDate\n }\n }\n\n builder(form, model, index, mapper, onChange, builder) {\n const { errors, showErrors, evalContext } = this.props\n const Field = this.mapper[form.type]\n if (!Field) {\n return null\n }\n\n // Apply conditionals to review if this field must be rendered\n if (\n form.condition &&\n !utils.safeEval(form.condition, { model, form, ...evalContext })\n ) {\n return null\n }\n\n const key = (form.key && form.key.join('.')) || index\n\n const error = errors && key in errors ? errors[key] : null\n\n return (\n <Field\n model={model}\n form={form}\n key={key}\n onChange={onChange}\n setDefault={this.setDefault}\n mapper={mapper}\n builder={builder}\n errorText={error}\n localization={this.getLocalization()}\n showErrors={showErrors}\n />\n )\n }\n\n render() {\n const {\n schema,\n form,\n ignore,\n option,\n model,\n className,\n onModelChange,\n mapper\n } = this.props\n const merged = utils.merge(schema, form, ignore, option)\n\n let mergedMapper = this.mapper\n if (mapper) {\n mergedMapper = merge(this.mapper, mapper)\n }\n const forms = merged.map((formPart, index) =>\n this.builder(\n formPart,\n model,\n index,\n mergedMapper,\n onModelChange,\n this.builder\n )\n )\n\n return <div className={className}>{forms}</div>\n }\n}\n\nSchemaForm.defaultProps = {\n localization: undefined,\n showErrors: false\n}\n\nexport default SchemaForm\n"],"names":["safeEval","condition","scope","scopeSafe","cloneDeep","notevil","error","undefined","stripNullType","type","Array","isArray","length","enumToTitleMap","enm","titleMap","forEach","name","push","value","canonicalTitleMap","originalEnum","canonical","enumValues","Object","keys","idx","stdFormObj","schema","options","f","global","formDefaults","supressPropertyTitles","title","description","required","maxLength","maxlength","minLength","minlength","readOnly","readonly","minimum","exclusiveMinimum","maximum","exclusiveMaximum","validationMessage","enumNames","tBoolean","key","path","lookup","ObjectPath","stringify","text","number","integer","date","checkbox","select","isObject","removeEmpty","obj","entries","val","checkboxes","items","defaultFormDefinition","rules","defaults","def","i","extend","fieldset","properties","prototype","hasOwnProperty","call","slice","ignore","indexOf","tuple","reduce","item","index","arrPath","array","string","object","getDefaults","globalOptions","form","Error","postProcessFn","appendRule","rule","prependRule","unshift","traverseSchema","fn","ignoreArrays","traverse","innerSchema","innerFunc","innerPath","currentPath","traverseForm","tabs","tab","merge","stdForm","concat","map","parse","itemForm","str","foundForm","o","strid","schemaDefaults","isUndefined","selectOrSet","projection","valueToSet","numRe","parts","test","tmp","validateBySchema","tv4","validateResult","validate","getLocalizedString","valid","Number","isNaN","parseFloat","wrap","propName","valueWrap","tv4Result","message","getValueFromModel","model","result","cur","nxt","getTitleByValue","defaultValue","props","utils","getDisplayName","WrappedComponent","displayName","ComposedComponent","defaultProps","onChangeValidate","bind","state","constructor","getDerivedStateFromProps","nextProps","errorText","showErrors","localization","validationResult","e","v","onChange","target","checked","Date","setState","render","React","Component","Text","setDefault","otherProps","placeholder","style","NumberComponent","getLocalizedNumber","inputValue","useLocalizer","enteredValue","parseInt","values","split","TextArea","multiline","rows","maxRows","converter","Showdown","tables","simplifiedAutoLink","strikethrough","tasklists","Markdown","useState","selectedTab","setSelectedTab","setText","useEffect","markdown","Promise","resolve","makeHtml","dataSourceConfig","TextSuggest","handleUpdate","newValue","handleInit","init_value","toString","names","init_value_name","filter","AutoComplete","fuzzyFilter","caseInsensitiveFilter","htmlClass","width","maxSearchResults","Select","findFn","displayFn","noLocalization","selectProps","multiple","currentValue","setCurrentValue","onSelected","event","selectedValue","find","each","getLabel","menuItems","labelProps","helperTextProps","styles","theme","root","display","flexWrap","chips","chip","margin","spacing","menuItem","fontWeight","typography","fontWeightRegular","selectedMenuItem","fontWeightMedium","ITEM_HEIGHT","ITEM_PADDING_TOP","MenuProps","PaperProps","maxHeight","MultiSelect","classes","getTitle","selected","withStyles","formControl","marginTop","group","Radios","renderItems","NativeDateField","getLocalizedDate","InputLabelProps","shrink","Timestamp","d","currentTimestamp","toISOString","substring","FormCheckbox","className","Checkbox","Help","variant","align","color","noWrap","paragraph","arrayItem","position","padding","deleteItemButton","addButton","marginLeft","elementsContainer","ArrayComponent","assignItemId","newItem","ITEM_ID","defineProperty","enumerable","writable","SEQUENCE","onAppend","empty","setSchemaDefaults","prop","newModel","onDelete","splice","getAddButton","AddButton","add","propsKey","formKey","componentDidMount","startEmpty","builder","mapper","stateModel","arrays","forms","eachForm","copy","copyWithIndex","arrayIndex","setIndex","Symbol","fields","FieldSet","classNames","TripleBoolean","yesChecked","noChecked","divStyle","displaySwitch","yesLabel","noLabel","clearButtonLabel","FormGroup","FormControlLabel","Button","Card","Taxonomy","action","taxonomies","setTaxonomies","expanded","setExpended","terms","setTerms","fetchCateogry","url","cookies","Cookies","headers","get","assign","fetch","credentials","then","res","ok","json","console","icons","check","uncheck","halfCheck","expandClose","expandOpen","expandAll","collapseAll","parentClose","parentOpen","leaf","formatDate","SchemaForm","password","textarea","textsuggest","taxonomy","radios","DateComponent","timestamp","help","multiselect","onModelChange","isNil","getLocalization","errors","evalContext","Field","join","option","merged","mergedMapper","formPart"],"mappings":"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"}