UNPKG

22 kBJavaScriptView Raw
1import e,{Message as t,Component as n}from"react";import r from"prop-types";import a from"lodash.get";import i from"lodash.set";import{Form as o,Checkbox as l,Input as s,Button as c,Select as u,Dimmer as d,Loader as p,Message as f}from"semantic-ui-react";import m from"lodash.isequal";import h from"lodash.topath";import{Writer as g,ModelManager as y,ModelFile as v,EnumDeclaration as b,ClassDeclaration as E,Field as O,RelationshipDeclaration as w,EnumValueDeclaration as k,Factory as S,Serializer as F}from"@accordproject/concerto-core";import{inspect as N}from"util";function C(e){return(C="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function j(e,t,n,r,a,i,o){try{var l=e[i](o),s=l.value}catch(e){return void n(e)}l.done?t(s):Promise.resolve(s).then(r,a)}function M(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var i=e.apply(t,n);function o(e){j(i,r,a,o,l,"next",e)}function l(e){j(i,r,a,o,l,"throw",e)}o(void 0)}))}}function x(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function A(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function T(e,t,n){return t&&A(e.prototype,t),n&&A(e,n),e}function D(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function L(){return(L=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function P(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function I(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?P(Object(n),!0).forEach((function(t){D(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):P(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function R(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&q(e,t)}function V(e){return(V=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function q(e,t){return(q=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function J(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function _(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?J(e):t}function z(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=V(e);if(t){var a=V(this).constructor;n=Reflect.construct(r,arguments,a)}else n=r.apply(this,arguments);return _(this,n)}}function H(e){return function(e){if(Array.isArray(e))return Q(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Q(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Q(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Q(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var B=function(n){R(a,e.Component);var r=z(a);function a(e){var t;return x(this,a),(t=r.call(this,e)).state={error:null},t}return T(a,[{key:"componentDidCatch",value:function(e){console.warn(e.message),this.setState({error:e.message})}},{key:"render",value:function(){return this.state.error?e.createElement(t,{warning:!0},e.createElement("p",null,this.state.error)):this.props.children}}]),a}();B.propTypes={children:r.object};var U=function(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/([A-Z])([a-z])/g," $1$2").replace(/ +/g," ").replace(/^./,(function(e){return e.toUpperCase()})).trim()},$=function(e){switch(e){case"DateTime":return"datetime-local";case"Boolean":return"boolean";case"String":return"text";case"Double":case"Long":case"Integer":return"number";default:return e}},W=function(e,t){switch(t){case"Boolean":return"true"===e;case"Double":return parseFloat(e);case"Long":case"Integer":return parseInt(e,10);default:return e}},Y=function(e){switch(e.getType()){case"DateTime":return(new Date).toISOString();case"Integer":return 0;case"Long":case"Double":return 0;case"Boolean":return!1;default:return""}},Z=function(e){if(!e.isAbstract())return e;var t=e.getAssignableClassDeclarations().filter((function(e){return!e.isAbstract()})).filter((function(e){return!e.isSystemType()}));if(0===t.length)throw new Error("No concrete subclasses found");return t[0]},K=function(e,t){return!(!t.hiddenFields||!t.hiddenFields.find((function(t){return"function"==typeof t?t(e):"string"==typeof t&&t===e.getFullyQualifiedName()})))&&(t.stack.pop(),!0)},G=function(e,t){if(e.isPrimitive())return Y(e);var n=t.modelManager.getType(e.getFullyQualifiedTypeName());if((n=Z(n)).isConcept()){var r=t.modelManager.getFactory().newConcept(n.getNamespace(),n.getName(),{includeOptionalFields:!0,generate:"sample"});return t.modelManager.getSerializer().toJSON(r)}var a=t.modelManager.getFactory().newResource(n.getNamespace(),n.getName(),"resource1",{includeOptionalFields:!0,generate:"sample"});return t.modelManager.getSerializer().toJSON(a)},X=Object.freeze({__proto__:null,normalizeLabel:U,toFieldType:$,parseValue:W,convertToJSON:Y,findConcreteSubclass:Z,hideProperty:K,getDefaultValue:G}),ee=function(t){var n=t.skip,r=t.name;return n?null:e.createElement("label",null,U(r))},te=function(t){var n=t.id,r=t.field,a=t.readOnly,i=t.required,s=t.value,c=t.onFieldValueChange,u=t.skipLabel;return e.createElement(o.Field,{required:i},e.createElement(ee,{skip:u,name:r.getName()}),e.createElement(l,{toggle:!0,readOnly:a,checked:s,onChange:function(e,t){return c(t,n)},key:n}))},ne=function(t){var n=t.id,r=t.field,a=t.readOnly,i=t.required,l=t.value,c=t.onFieldValueChange,u=t.skipLabel,d=t.type;return e.createElement(o.Field,{required:i},e.createElement(ee,{skip:u,name:r.getName()}),e.createElement(s,{type:d,readOnly:a,value:l,onChange:function(e,t){return c(I(I({},t),{},{value:W(t.value,r.getType())}),n)},key:n}))},re=function(t){var n=t.id,r=t.field,a=t.readOnly,i=t.required,l=t.value,c=t.onFieldValueChange,u=t.skipLabel,d=t.type;return e.createElement(o.Field,{required:i},e.createElement(ee,{skip:u,name:r.getName()}),e.createElement(s,{type:d,readOnly:a,value:new Date(l).toISOString().slice(0,19),onChange:function(e,t){return c(t,n)},key:n}))},ae=function(t){var n=t.id,r=t.field,a=t.readOnly,i=t.required,l=t.children,s=t.addElement;return e.createElement(o.Field,{required:i},e.createElement(ee,{name:r.getName()}),l,e.createElement("div",{className:"arrayElement grid"},e.createElement("div",null),e.createElement("div",null,e.createElement(c,{positive:!0,basic:!0,icon:"plus",disabled:a,onClick:function(e){s(e,n),e.preventDefault()}}))))},ie=function(t){var n=t.id,r=t.readOnly,a=t.children,i=t.index,o=t.removeElement;return e.createElement("div",{className:"arrayElement grid"},e.createElement("div",null,a),e.createElement("div",null,e.createElement(c,{negative:!0,basic:!0,icon:"times",disabled:r,onClick:function(e){o(e,n,i),e.preventDefault()}})))},oe=function(t){var n=t.id,r=t.field,a=t.readOnly,i=t.value,l=t.onFieldValueChange,c=t.options;return e.createElement(o.Field,{required:!0,key:r.getName().toLowerCase()},a?e.createElement(s,{type:"text",readOnly:!0,value:i,key:n}):e.createElement(u,{fluid:!0,value:i,onChange:function(e,t){return l(t,n)},key:n,options:c}))},le=function(t){var n=t.className,r=t.children;return e.createElement("div",{className:n},e.createElement("div",null,r[0]),e.createElement("div",null,r[1]))},se=function(t){var n=t.children;return e.createElement(le,{className:"monetaryAmount"},n)},ce=function(t){var n=t.children;return e.createElement(le,{className:"duration"},n)},ue=function(){function t(){x(this,t)}return T(t,[{key:"visit",value:function(e,t){if(t.fileWriter||(t.fileWriter=new g),e instanceof y)return this.visitModelManager(e,t);if(e instanceof v)return this.visitModelFile(e,t);if(e instanceof b)return this.visitEnumDeclaration(e,t);if(e instanceof E)return this.visitClassDeclaration(e,t);if(e instanceof O)return this.visitField(e,t);if(e instanceof w)return this.visitRelationship(e,t);if(e instanceof k)return this.visitEnumValueDeclaration(e,t);throw new Error("Unrecognised type: ".concat(C(e),", value: ").concat(N(e,{showHidden:!0,depth:2})))}},{key:"visitClassDeclaration",value:function(e,t){var n=this;if(t.hideIdentifiers){t.hiddenFields||(t.hiddenFields=[]);var r=e.getIdentifierFieldName();if(r){var a=e.getProperty(r);t.hiddenFields.push(a.getFullyQualifiedName())}}return e.isSystemType()||e.isAbstract()?null:["org.accordproject.money.MonetaryAmount","org.accordproject.money.DigitalMonetaryAmount"].includes(e.getFullyQualifiedName())?this.visitMonetaryAmount(e,t):["org.accordproject.time.Duration","org.accordproject.time.Period"].includes(e.getFullyQualifiedName())?this.visitDuration(e,t):["org.accordproject.cicero.contract.AccordParty"].includes(e.getFullyQualifiedName())?this.visitAccordParty(e,t):e.getProperties().map((function(e){return e.accept(n,t)}))}},{key:"visitMonetaryAmount",value:function(t,n){var r=t.getProperties();n.skipLabel=!0;var a=e.createElement(se,{key:t.getName().toLowerCase()},r[0].accept(this,n),r[1].accept(this,n));return n.skipLabel=!1,a}},{key:"visitDuration",value:function(t,n){var r=t.getProperties();n.skipLabel=!0;var a=e.createElement(ce,{key:t.getName().toLowerCase()},r[0].accept(this,n),r[1].accept(this,n));return n.skipLabel=!1,a}},{key:"visitAccordParty",value:function(t,n){var r=t.getProperties();n.skipLabel=!0;var a=e.createElement("div",null,r[0].accept(this,n));return n.skipLabel=!1,a}},{key:"visitEnumDeclaration",value:function(t,n){var r=h(n.stack),i=a(n.json,r);return e.createElement(oe,{id:r,value:i,field:t,readOnly:n.disabled,onFieldValueChange:n.onFieldValueChange,options:t.getProperties().map((function(e){return{key:e.getName(),value:e.getName(),text:e.getName()}}))})}},{key:"visitField",value:function(t,n){var r=this,i=n.skipLabel,o=n.disabled,l=n.addElement,s=n.removeElement,c=n.onFieldValueChange,u=n.stack;if(u.push(t.getName()),K(t,n))return null;var d=h(u),p=a(n.json,d),f=null,m={skipLabel:i||t.isArray(),id:d,field:t,value:p,type:$(t.getType()),required:!t.isOptional(),readOnly:o,addElement:l,removeElement:s,onFieldValueChange:c};return f=t.isArray()?e.createElement(ae,L({},m,{key:"".concat(t.getName(),"_wrapper"),addElement:function(e,r){return l(e,r,G(t,n))}}),p&&p.map((function(a,i){u.push(i);var o=e.createElement(ie,L({},m,{index:i,key:"".concat(t.getName(),"_wrapper[").concat(i,"]")}),r.visitSingletonField(t,n,m));return u.pop(),o}))):this.visitSingletonField(t,n,m),u.pop(),f}},{key:"visitSingletonField",value:function(t,n,r){var i=h(n.stack),l=a(n.json,i);if(t.isPrimitive())return"Boolean"===t.getType()?e.createElement(te,L({},r,{id:i,value:l})):"datetime-local"===$(t.getType())?e.createElement(re,L({},r,{id:i,value:l})):e.createElement(ne,L({},r,{id:i,value:l}));var s=n.modelManager.getType(t.getFullyQualifiedTypeName());return s=Z(s),e.createElement(o.Field,{required:!t.isOptional(),key:t.getName()},e.createElement(ee,{skip:r.skipLabel,name:t.getName()}),s.accept(this,n))}},{key:"visitRelationship",value:function(t,n){var r=n.skipLabel,i=n.disabled,o=n.addElement,l=n.removeElement,s=n.onFieldValueChange,c=n.stack;if(c.push(t.getName()),K(t,n))return null;var u,d=h(c),p=a(n.json,d),f={skipLabel:r||t.isArray(),id:d,field:t,value:p,type:"text",required:!t.isOptional(),readOnly:i,addElement:o,removeElement:l,onFieldValueChange:s};return u=t.isArray()?e.createElement(ae,L({},f,{addElement:function(e,t){return o(e,t,"resource1")}}),p&&p.map((function(t,r){c.push(r);var i=h(c),o=a(n.json,i),l=e.createElement(ie,L({},f,{index:r}),e.createElement(ne,L({},f,{id:i,value:o})));return c.pop(),l}))):e.createElement(ne,f),c.pop(),u}}]),t}(),de=function(){function e(t){x(this,e),this.modelManager=new y,this.modelManager.addModelFile("namespace org.accordproject.base\n abstract asset Asset { }\n abstract participant Participant { }\n abstract transaction Transaction identified by transactionId {\n o String transactionId\n }\n abstract event Event identified by eventId {\n o String eventId\n }","org.accordproject.base.cto",!1,!0),this.options=I({includeSampleData:"empty",updateExternalModels:!1},t),this.factory=new S(this.modelManager),this.serializer=new F(this.factory,this.modelManager),this.loaded=!1}var t;return T(e,[{key:"loadFromText",value:(t=M(regeneratorRuntime.mark((function e(t){var n=this;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.loaded=!1,this.modelManager.clearModelFiles(),e.prev=2,t.forEach((function(e){return n.modelManager.addModelFile(e,null,!0)})),!this.options.updateExternalModels){e.next=7;break}return e.next=7,this.modelManager.updateExternalModels();case 7:this.modelManager.validateModelFiles(),e.next=14;break;case 10:throw e.prev=10,e.t0=e.catch(2),this.modelManager.clearModelFiles(),e.t0;case 14:return this.loaded=!0,e.abrupt("return",this.getTypes());case 16:case"end":return e.stop()}}),e,this,[[2,10]])}))),function(e){return t.apply(this,arguments)})},{key:"getTypes",value:function(){return this.loaded?this.modelManager.getModelFiles().reduce((function(e,t){return e.concat(t.getAllDeclarations())}),[]).filter((function(e){return!e.isEnum()&&!e.isAbstract()})):[]}},{key:"validateInstance",value:function(e){try{this.modelManager.getSerializer().fromJSON(e)}catch(e){return e.message}return null}},{key:"isInstanceOf",value:function(e,t){if(!e||!t)return!1;try{return this.modelManager.getSerializer().fromJSON(e).instanceOf(t)}catch(e){return!1}}},{key:"generateJSON",value:function(e){if(this.loaded){var t=this.modelManager.getType(e);if(t.isEnum())throw new Error("Cannot generate JSON for an enumerated type directly, the type should be contained in Concept, Asset, Transaction or Event declaration");if(t.isAbstract())throw new Error("Cannot generate JSON for abstract types");if(!this.options.includeSampleData)throw new Error("Cannot generate form values when the component is configured not to generate sample data.");var n=t.getNamespace(),r=t.getName(),a={includeOptionalFields:this.options.includeOptionalFields,generate:this.options.includeSampleData};if(t.isConcept()){var i=this.factory.newConcept(n,r,a);return this.serializer.toJSON(i)}var o=this.factory.newResource(n,r,"resource1",a);return this.serializer.toJSON(o)}return null}},{key:"generateHTML",value:function(e,t){if(this.loaded){var n=this.modelManager.getType(e);if(!n)throw new Error("".concat(e," not found"));if(n.isEnum())throw new Error("Cannot generate forms for an enumerated type directly, the type should be contained in Concept, Asset, Transaction or Event declaration");if(n.isAbstract())throw new Error("Cannot generate forms for abstract types");var r=I({customClasses:{},timestamp:Date.now(),modelManager:this.modelManager,json:t,stack:[]},this.options),a=r.visitor;a||(a=new ue,r.wrapHtmlForm=!0);var i=n.accept(a,r);return r.wrapHtmlForm?a.wrapHtmlForm(i,r):n.accept(r.visitor,r)}return null}}]),e}();!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===n&&r.firstChild?r.insertBefore(a,r.firstChild):r.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}('/*\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n.arrayElement, .classElement {\n border-left: 1px solid rgba(34,36,38,.15);\n padding: 5px 0px 5px 10px\n}\n\n.grid {\n display: grid;\n grid-template-columns: auto 36px;\n grid-column-gap: 5px;\n}\n\n.fullHeight {\n height:100%\n}\n\n.monetaryAmount {\n display: grid;\n grid-template-columns: auto 80px;\n grid-column-gap: 5px;\n}\n\n.duration {\n display: grid;\n grid-template-columns: auto 100px;\n grid-column-gap: 5px;\n}');var pe=function(t){R(c,n);var r,l,s=z(c);function c(e){var t;return x(this,c),(t=s.call(this,e)).onFieldValueChange=t.onFieldValueChange.bind(J(t)),t.state={value:null,loading:!0},t.options=I({includeOptionalFields:!0,includeSampleData:"sample",disabled:e.readOnly,visitor:new ue,onFieldValueChange:function(e,n){t.onFieldValueChange(e,n)},addElement:function(e,n,r){t.addElement(e,n,r)},removeElement:function(e,n,r){t.removeElement(e,n,r)}},e.options),t.generator=new de(t.options),t}return T(c,[{key:"componentDidMount",value:function(){var e=this;this._loadAsyncData().then((function(t){e.props.onModelChange(t)}))}},{key:"componentDidUpdate",value:function(e){var t=this;m(this.props.models,e.models)||this._loadAsyncData().then((function(e){t.props.onModelChange(e)}))}},{key:"onFieldValueChange",value:function(e,t){var n="checkbox"===e.type?e.checked:e.value||e.target.value,r=i(I({},this.state.value),t,n);this.setState({value:r}),this.props.onValueChange(r)}},{key:"_loadAsyncData",value:(l=M(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.setState({loading:!0}),e.next=3,this.loadModelFiles(this.props.models,"text");case 3:return t=e.sent,this.setState({loading:!1}),e.abrupt("return",t);case 6:case"end":return e.stop()}}),e,this)}))),function(){return l.apply(this,arguments)})},{key:"loadModelFiles",value:(r=M(regeneratorRuntime.mark((function e(t){var n,r,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=this.props.type,e.prev=1,e.next=4,this.generator.loadFromText(t);case 4:n=e.sent,e.next=11;break;case 7:return e.prev=7,e.t0=e.catch(1),console.error(e.t0.message),e.abrupt("return",{types:[]});case 11:if(0!==n.length){e.next=13;break}return e.abrupt("return",{types:[]});case 13:if(e.prev=13,n.map((function(e){return e.getFullyQualifiedName()})).includes(this.props.type)){e.next=18;break}return a=n[0].getFullyQualifiedName(),r=this.generateJSON(a),e.abrupt("return",{types:n,json:r});case 18:r=this.generateJSON(this.props.type),e.next=24;break;case 21:e.prev=21,e.t1=e.catch(13),console.log(e.t1);case 24:return e.abrupt("return",{types:n,json:r});case 25:case"end":return e.stop()}}),e,this,[[1,7],[13,21]])}))),function(e){return r.apply(this,arguments)})},{key:"removeElement",value:function(e,t,n){a(this.state.value,t).splice(n,1),this.props.onValueChange(this.state.value)}},{key:"addElement",value:function(e,t,n){var r=a(this.state.value,t)||[],o=i(I({},this.state.value),[].concat(H(t),[r.length]),n);this.setState({value:o}),this.props.onValueChange(o)}},{key:"isInstanceOf",value:function(e,t){return this.generator.isInstanceOf(e,t)}},{key:"generateJSON",value:function(e){try{if(this.props.json&&!this.isInstanceOf(this.props.json,e))return this.generator.generateJSON(e);if(!this.props.json)return this.generator.generateJSON(e)}catch(e){console.log(e)}return this.props.json}},{key:"render",value:function(){if(this.state.loading)return e.createElement(d,{active:!0,inverted:!0},e.createElement(p,{inverted:!0},"Loading"));if(this.props.type&&this.state.value)try{return e.createElement(o,{style:I({minHeight:"100px"},this.props.style)},this.generator.generateHTML(this.props.type,this.state.value))}catch(t){return console.error(t),e.createElement(f,{warning:!0},e.createElement(f.Header,null,"An error occured while generating this form"),e.createElement("pre",null,t.message))}return e.createElement(f,{warning:!0},e.createElement(f.Header,null,"Invalid JSON instance provided"),e.createElement("p",null,"The JSON value does not match the model type associated with this form."))}}],[{key:"getDerivedStateFromProps",value:function(e){var t;if("string"==typeof e.json)try{t=JSON.parse(e.json)}catch(e){}else"object"===C(e.json)&&(t=I({},e.json));return{value:t}}}]),c}();pe.propTypes={models:r.arrayOf(r.string),type:r.string,json:r.oneOfType([r.object,r.string]),onModelChange:r.func.isRequired,onValueChange:r.func.isRequired,options:r.shape(),readOnly:r.bool,style:r.shape()};var fe=function(t){return e.createElement(B,null,e.createElement(pe,L({key:t.type},t)))};fe.propTypes={models:r.arrayOf(r.string).isRequired,type:r.string,json:r.oneOfType([r.object,r.string]),onModelChange:r.func.isRequired,onValueChange:r.func.isRequired,options:r.shape(),readOnly:r.bool};export{fe as ConcertoForm,ue as ReactFormVisitor,X as Utilities};