@rjsf/core 5.0.0-beta.10 → 5.0.0-beta.12

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@rjsf/utils"),a=require("lodash/pick"),r=require("lodash/get"),o=require("lodash/isEmpty"),i=require("lodash/isObject"),n=require("lodash/set"),l=require("nanoid"),s=require("lodash/unset"),d=require("lodash/has"),c=require("lodash/omit");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=u(e),p=u(a),h=u(r),f=u(o),g=u(i),y=u(n),E=u(s),S=u(d),v=u(c);function b(){return l.nanoid()}function C(e){return Array.isArray(e)?e.map((e=>({key:b(),item:e}))):[]}function F(e){return Array.isArray(e)?e.map((e=>e.item)):[]}class D extends e.Component{constructor(e){super(e),this.onOptionChange=e=>{const a=parseInt(e,10),{formData:r,onChange:o,options:i,registry:n}=this.props,{schemaUtils:l}=n,s=l.retrieveSchema(i[a],r);let d;if("object"===t.guessType(r)&&("object"===s.type||s.properties)){d=Object.assign({},r);const e=i.slice();e.splice(a,1);for(const t of e)if(t.properties)for(const e in t.properties)e in d&&E.default(d,e)}o(l.getDefaultFormState(i[a],d)),this.setState({selectedOption:parseInt(e,10)})};const{formData:a,options:r}=this.props;this.state={selectedOption:this.getMatchingOption(0,a,r)}}componentDidUpdate(e,a){const{formData:r,options:o,idSchema:i}=this.props,{selectedOption:n}=this.state;if(!t.deepEquals(r,e.formData)&&i.$id===e.idSchema.$id){const e=this.getMatchingOption(n,r,o);if(!a||e===n)return;this.setState({selectedOption:e})}}getMatchingOption(e,t,a){const{schemaUtils:r}=this.props.registry,o=r.getMatchingOption(t,a);return 0!==o?o:e||0}render(){const{name:e,baseType:a,disabled:r=!1,readonly:o=!1,hideError:i=!1,errorSchema:n={},formData:l,formContext:s,idPrefix:d,idSeparator:c,idSchema:u,onBlur:p,onChange:h,onFocus:f,options:g,registry:y,uiSchema:E,schema:S}=this.props,{widgets:v,fields:b}=y,{SchemaField:C}=b,{selectedOption:F}=this.state,{widget:D="select",...x}=t.getUiOptions(E),k=t.getWidget({type:"number"},D,v),T=g[F]||null;let N;T&&(N=T.type?T:Object.assign({},T,{type:a}));const A=g.map(((e,t)=>({label:e.title||"Option "+(t+1),value:t})));return m.default.createElement("div",{className:"panel panel-default panel-body"},m.default.createElement("div",{className:"form-group"},m.default.createElement(k,{id:u.$id+(S.oneOf?"__oneof_select":"__anyof_select"),schema:{type:"number",default:0},onChange:this.onOptionChange,onBlur:p,onFocus:f,value:F,options:{enumOptions:A},registry:y,formContext:s,...x,label:""})),null!==T&&m.default.createElement(C,{name:e,schema:N,uiSchema:E,errorSchema:n,idSchema:u,idPrefix:d,idSeparator:c,formData:l,formContext:s,onChange:h,onBlur:p,onFocus:f,registry:y,disabled:r,readonly:o,hideError:i}))}}const x=/\.([0-9]*0)*$/,k=/[0.]0*$/,T={array:"ArrayField",boolean:"BooleanField",integer:"NumberField",number:"NumberField",object:"ObjectField",string:"StringField",null:"NullField"};function N(e){const{schema:a,idSchema:r,uiSchema:o,formData:i,errorSchema:n,idPrefix:l,idSeparator:s,name:d,onChange:c,onKeyChange:u,onDropPropertyClick:p,required:h,registry:f,wasPropertyKeyModified:y=!1}=e,{formContext:E,schemaUtils:S}=f,b=t.getUiOptions(o),C=t.getTemplate("FieldTemplate",f,b),F=t.getTemplate("DescriptionFieldTemplate",f,b),D=t.getTemplate("FieldHelpTemplate",f,b),x=t.getTemplate("FieldErrorTemplate",f,b),k=S.retrieveSchema(a,i),N=t.mergeObjects(S.toIdSchema(k,r.$id,i,l,s),r),A=function(e,a,r,o){const i=a.field,{fields:n}=o;if("function"==typeof i)return i;if("string"==typeof i&&i in n)return n[i];const l=t.getSchemaType(e),s=Array.isArray(l)?l[0]:l||"",d=T[s];return d||!e.anyOf&&!e.oneOf?d in n?n[d]:()=>{const i=t.getTemplate("UnsupportedFieldTemplate",o,a);return m.default.createElement(i,{schema:e,idSchema:r,reason:"Unknown field type "+e.type,registry:o})}:()=>null}(k,b,N,f),w=Boolean(e.disabled||b.disabled),O=Boolean(e.readonly||b.readonly||e.schema.readOnly||k.readOnly),B=b.hideError,I=void 0===B?e.hideError:Boolean(B),U=Boolean(e.autofocus||b.autofocus);if(0===Object.keys(k).length)return null;const q=S.getDisplayLabel(k,o),{__errors:P,..._}=n||{},R=v.default(o,["ui:classNames","classNames"]);"ui:options"in R&&(R["ui:options"]=v.default(R["ui:options"],["classNames"]));const V=m.default.createElement(A,{...e,idSchema:N,schema:k,uiSchema:R,disabled:w,readonly:O,hideError:I,autofocus:U,errorSchema:_,formContext:E,rawErrors:P}),M=N[t.ID_KEY];let W;W=y||t.ADDITIONAL_PROPERTY_FLAG in k?d:b.title||e.schema.title||k.title||d;const K=b.description||e.schema.description||k.description||"",j=b.help,L="hidden"===b.widget,$=["form-group","field","field-"+k.type];!I&&P&&P.length>0&&$.push("field-error has-error has-danger"),null!=o&&o.classNames&&$.push(o.classNames),b.classNames&&$.push(b.classNames);const Y=m.default.createElement(D,{help:j,idSchema:N,schema:k,uiSchema:o,hasErrors:!I&&P&&P.length>0,registry:f}),z=I?void 0:m.default.createElement(x,{errors:P,errorSchema:n,idSchema:N,schema:k,uiSchema:o,registry:f}),H={description:m.default.createElement(F,{id:M+"__description",description:K,registry:f}),rawDescription:K,help:Y,rawHelp:"string"==typeof j?j:void 0,errors:z,rawErrors:I?void 0:P,id:M,label:W,hidden:L,onChange:c,onKeyChange:u,onDropPropertyClick:p,required:h,disabled:w,readonly:O,hideError:I,displayLabel:q,classNames:$.join(" ").trim(),formContext:E,formData:i,schema:k,uiSchema:o,registry:f},J=f.fields.AnyOfField,G=f.fields.OneOfField;return m.default.createElement(C,{...H},m.default.createElement(m.default.Fragment,null,V,k.anyOf&&!(null!=o&&o["ui:field"])&&!S.isSelect(k)&&m.default.createElement(J,{name:d,disabled:w,readonly:O,hideError:I,errorSchema:n,formData:i,formContext:E,idPrefix:l,idSchema:N,idSeparator:s,onBlur:e.onBlur,onChange:e.onChange,onFocus:e.onFocus,options:k.anyOf.map((e=>S.retrieveSchema(g.default(e)?e:{},i))),baseType:k.type,registry:f,schema:k,uiSchema:o}),k.oneOf&&!(null!=o&&o["ui:field"])&&!S.isSelect(k)&&m.default.createElement(G,{name:d,disabled:w,readonly:O,hideError:I,errorSchema:n,formData:i,formContext:E,idPrefix:l,idSchema:N,idSeparator:s,onBlur:e.onBlur,onChange:e.onChange,onFocus:e.onFocus,options:k.oneOf.map((e=>S.retrieveSchema(g.default(e)?e:{},i))),baseType:k.type,registry:f,schema:k,uiSchema:o})))}const A={AnyOfField:D,ArrayField:class extends e.Component{constructor(e){super(e),this._getNewFormDataRow=()=>{const{schema:e,registry:a}=this.props,{schemaUtils:r}=a;let o=e.items;return t.isFixedItems(e)&&t.allowAdditionalItems(e)&&(o=e.additionalItems),r.getDefaultFormState(o)},this.onAddClick=e=>{e&&e.preventDefault();const{onChange:t}=this.props,{keyedFormData:a}=this.state,r=[...a,{key:b(),item:this._getNewFormDataRow()}];this.setState({keyedFormData:r,updatedKeyedFormData:!0},(()=>t(F(r))))},this.onAddIndexClick=e=>t=>{t&&t.preventDefault();const{onChange:a}=this.props,{keyedFormData:r}=this.state,o={key:b(),item:this._getNewFormDataRow()},i=[...r];i.splice(e,0,o),this.setState({keyedFormData:i,updatedKeyedFormData:!0},(()=>a(F(i))))},this.onDropIndexClick=e=>t=>{t&&t.preventDefault();const{onChange:a,errorSchema:r}=this.props,{keyedFormData:o}=this.state;let i;if(r){i={};for(const t in r){const a=parseInt(t);a<e?y.default(i,[a],r[t]):a>e&&y.default(i,[a-1],r[t])}}const n=o.filter(((t,a)=>a!==e));this.setState({keyedFormData:n,updatedKeyedFormData:!0},(()=>a(F(n),i)))},this.onReorderClick=(e,t)=>a=>{a&&(a.preventDefault(),a.currentTarget.blur());const{onChange:r,errorSchema:o}=this.props;let i;if(this.props.errorSchema){i={};for(const a in o){const r=parseInt(a);r==e?y.default(i,[t],o[e]):r==t?y.default(i,[e],o[t]):y.default(i,[a],o[r])}}const{keyedFormData:n}=this.state,l=function(){const a=n.slice();return a.splice(e,1),a.splice(t,0,n[e]),a}();this.setState({keyedFormData:l},(()=>r(F(l),i)))},this.onChangeForIndex=e=>(t,a)=>{const{formData:r,onChange:o,errorSchema:i}=this.props;o((Array.isArray(r)?r:[]).map(((a,r)=>e===r?void 0===t?null:t:a)),i&&i&&{...i,[e]:a})},this.onSelectChange=e=>{const{onChange:t}=this.props;t(e)};const{formData:a=[]}=e,r=C(a);this.state={keyedFormData:r,updatedKeyedFormData:!1}}static getDerivedStateFromProps(e,t){if(t.updatedKeyedFormData)return{updatedKeyedFormData:!1};const a=Array.isArray(e.formData)?e.formData:[],r=t.keyedFormData||[];return{keyedFormData:a.length===r.length?r.map(((e,t)=>({key:e.key,item:a[t]}))):C(a)}}get itemTitle(){const{schema:e}=this.props;return h.default(e,[t.ITEMS_KEY,"title"],h.default(e,[t.ITEMS_KEY,"description"],"Item"))}isItemRequired(e){return Array.isArray(e.type)?!e.type.includes("null"):"null"!==e.type}canAddItem(e){const{schema:a,uiSchema:r}=this.props;let{addable:o}=t.getUiOptions(r);return!1!==o&&(o=void 0===a.maxItems||e.length<a.maxItems),o}render(){const{schema:e,uiSchema:a,idSchema:r,registry:o}=this.props,{schemaUtils:i}=o;if(!(t.ITEMS_KEY in e)){const i=t.getUiOptions(a),n=t.getTemplate("UnsupportedFieldTemplate",o,i);return m.default.createElement(n,{schema:e,idSchema:r,reason:"Missing items definition",registry:o})}return i.isMultiSelect(e)?this.renderMultiSelect():t.isCustomWidget(a)?this.renderCustomWidget():t.isFixedItems(e)?this.renderFixedArray():i.isFilesArray(e,a)?this.renderFiles():this.renderNormalArray()}renderNormalArray(){const{schema:e,uiSchema:a={},errorSchema:r,idSchema:o,name:i,disabled:n=!1,readonly:l=!1,autofocus:s=!1,required:d=!1,registry:c,onBlur:u,onFocus:p,idPrefix:h,idSeparator:f="_",rawErrors:y}=this.props,{keyedFormData:E}=this.state,S=void 0===e.title?i:e.title,{schemaUtils:v,formContext:b}=c,C=t.getUiOptions(a),D=g.default(e.items)?e.items:{},x=v.retrieveSchema(D),k=F(this.state.keyedFormData),T={canAdd:this.canAddItem(k),items:E.map(((e,t)=>{const{key:n,item:l}=e,d=l,c=v.retrieveSchema(D,d),m=r?r[t]:void 0,g=v.toIdSchema(c,o.$id+f+t,d,h,f);return this.renderArrayFieldItem({key:n,index:t,name:i&&i+"-"+t,canMoveUp:t>0,canMoveDown:t<k.length-1,itemSchema:c,itemIdSchema:g,itemErrorSchema:m,itemData:d,itemUiSchema:a.items,autofocus:s&&0===t,onBlur:u,onFocus:p,rawErrors:y})})),className:"field field-array field-array-of-"+x.type,disabled:n,idSchema:o,uiSchema:a,onAddClick:this.onAddClick,readonly:l,required:d,schema:e,title:S,formContext:b,formData:k,rawErrors:y,registry:c},N=t.getTemplate("ArrayFieldTemplate",c,C);return m.default.createElement(N,{...T})}renderCustomWidget(){const{schema:e,idSchema:a,uiSchema:r,disabled:o=!1,readonly:i=!1,autofocus:n=!1,required:l=!1,hideError:s,placeholder:d,onBlur:c,onFocus:u,formData:p=[],registry:h,rawErrors:f,name:g}=this.props,{widgets:y,formContext:E}=h,S=e.title||g,{widget:v,...b}=t.getUiOptions(r),C=t.getWidget(e,v,y);return m.default.createElement(C,{id:a&&a.$id,multiple:!0,onChange:this.onSelectChange,onBlur:c,onFocus:u,options:b,schema:e,uiSchema:r,registry:h,value:p,disabled:o,readonly:i,hideError:s,required:l,label:S,placeholder:d,formContext:E,autofocus:n,rawErrors:f})}renderMultiSelect(){const{schema:e,idSchema:a,uiSchema:r,formData:o=[],disabled:i=!1,readonly:n=!1,autofocus:l=!1,required:s=!1,placeholder:d,onBlur:c,onFocus:u,registry:p,rawErrors:h,name:f}=this.props,{widgets:g,schemaUtils:y,formContext:E}=p,S=y.retrieveSchema(e.items,o),v=e.title||f,b=t.optionsList(S),{widget:C="select",...F}=t.getUiOptions(r),D=t.getWidget(e,C,g);return m.default.createElement(D,{id:a&&a.$id,multiple:!0,onChange:this.onSelectChange,onBlur:c,onFocus:u,options:{...F,enumOptions:b},schema:e,uiSchema:r,registry:p,value:o,disabled:i,readonly:n,required:s,label:v,placeholder:d,formContext:E,autofocus:l,rawErrors:h})}renderFiles(){const{schema:e,uiSchema:a,idSchema:r,name:o,disabled:i=!1,readonly:n=!1,autofocus:l=!1,required:s=!1,onBlur:d,onFocus:c,registry:u,formData:p=[],rawErrors:h}=this.props,f=e.title||o,{widgets:g,formContext:y}=u,{widget:E="files",...S}=t.getUiOptions(a),v=t.getWidget(e,E,g);return m.default.createElement(v,{options:S,id:r&&r.$id,multiple:!0,onChange:this.onSelectChange,onBlur:d,onFocus:c,schema:e,uiSchema:a,title:f,value:p,disabled:i,readonly:n,required:s,registry:u,formContext:y,autofocus:l,rawErrors:h,label:""})}renderFixedArray(){const{schema:e,uiSchema:a={},formData:r=[],errorSchema:o,idPrefix:i,idSeparator:n="_",idSchema:l,name:s,disabled:d=!1,readonly:c=!1,autofocus:u=!1,required:p=!1,registry:h,onBlur:f,onFocus:y,rawErrors:E}=this.props,{keyedFormData:S}=this.state;let{formData:v=[]}=this.props;const b=e.title||s,C=t.getUiOptions(a),{schemaUtils:F,formContext:D}=h,x=(g.default(e.items)?e.items:[]).map(((e,t)=>F.retrieveSchema(e,r[t]))),k=g.default(e.additionalItems)?F.retrieveSchema(e.additionalItems,r):null;(!v||v.length<x.length)&&(v=v||[],v=v.concat(new Array(x.length-v.length)));const T={canAdd:this.canAddItem(v)&&!!k,className:"field field-array field-array-fixed-items",disabled:d,idSchema:l,formData:r,items:S.map(((t,r)=>{const{key:d,item:c}=t,m=c,p=r>=x.length,h=p&&g.default(e.additionalItems)?F.retrieveSchema(e.additionalItems,m):x[r],S=F.toIdSchema(h,l.$id+n+r,m,i,n),b=p?a.additionalItems||{}:Array.isArray(a.items)?a.items[r]:a.items||{};return this.renderArrayFieldItem({key:d,index:r,name:s&&s+"-"+r,canRemove:p,canMoveUp:r>=x.length+1,canMoveDown:p&&r<v.length-1,itemSchema:h,itemData:m,itemUiSchema:b,itemIdSchema:S,itemErrorSchema:o?o[r]:void 0,autofocus:u&&0===r,onBlur:f,onFocus:y,rawErrors:E})})),onAddClick:this.onAddClick,readonly:c,required:p,registry:h,schema:e,uiSchema:a,title:b,formContext:D,rawErrors:E},N=t.getTemplate("ArrayFieldTemplate",h,C);return m.default.createElement(N,{...T})}renderArrayFieldItem(e){const{key:a,index:r,name:o,canRemove:i=!0,canMoveUp:n=!0,canMoveDown:l=!0,itemSchema:s,itemData:d,itemUiSchema:c,itemIdSchema:u,itemErrorSchema:p,autofocus:h,onBlur:f,onFocus:g,rawErrors:y}=e,{disabled:E,hideError:S,idPrefix:v,idSeparator:b,readonly:C,uiSchema:F,registry:D,formContext:x}=this.props,{fields:{ArraySchemaField:k,SchemaField:T}}=D,N=k||T,{orderable:A=!0,removable:w=!0}=t.getUiOptions(F),O={moveUp:A&&n,moveDown:A&&l,remove:w&&i,toolbar:!1};return O.toolbar=Object.keys(O).some((e=>O[e])),{children:m.default.createElement(N,{name:o,index:r,schema:s,uiSchema:c,formData:d,formContext:x,errorSchema:p,idPrefix:v,idSeparator:b,idSchema:u,required:this.isItemRequired(s),onChange:this.onChangeForIndex(r),onBlur:f,onFocus:g,registry:D,disabled:E,readonly:C,hideError:S,autofocus:h,rawErrors:y}),className:"array-item",disabled:E,hasToolbar:O.toolbar,hasMoveUp:O.moveUp,hasMoveDown:O.moveDown,hasRemove:O.remove,index:r,key:a,onAddIndexClick:this.onAddIndexClick,onDropIndexClick:this.onDropIndexClick,onReorderClick:this.onReorderClick,readonly:C,registry:D,uiSchema:c}}},BooleanField:function(e){const{schema:a,name:r,uiSchema:o,idSchema:i,formData:n,registry:l,required:s,disabled:d,readonly:c,autofocus:u,onChange:p,onFocus:h,onBlur:f,rawErrors:y}=e,{title:E}=a,{widgets:S,formContext:v}=l,{widget:b="checkbox",...C}=t.getUiOptions(o),F=t.getWidget(a,b,S);let D;if(Array.isArray(a.oneOf))D=t.optionsList({oneOf:a.oneOf.map((e=>{if(g.default(e))return{...e,title:e.title||(!0===e.const?"Yes":"No")}})).filter((e=>e))});else{var x;const e=a;a.enum=null!=(x=a.enum)?x:[!0,!1],D=!e.enumNames&&a.enum&&2===a.enum.length&&a.enum.every((e=>"boolean"==typeof e))?[{value:a.enum[0],label:a.enum[0]?"Yes":"No"},{value:a.enum[1],label:a.enum[1]?"Yes":"No"}]:t.optionsList({enum:a.enum,enumNames:e.enumNames})}return m.default.createElement(F,{options:{...C,enumOptions:D},schema:a,uiSchema:o,id:i&&i.$id,onChange:p,onFocus:h,onBlur:f,label:void 0===E?r:E,value:n,required:s,disabled:d,readonly:c,registry:l,formContext:v,autofocus:u,rawErrors:y})},NumberField:function(a){const{registry:r,onChange:o,formData:i,value:n}=a,[l,s]=e.useState(n),{StringField:d}=r.fields;let c=i;const u=e.useCallback((e=>{s(e),"."===(""+e).charAt(0)&&(e="0"+e);const a="string"==typeof e&&e.match(x)?t.asNumber(e.replace(k,"")):t.asNumber(e);o(a)}),[o]);if("string"==typeof l&&"number"==typeof c){const e=new RegExp((""+c).replace(".","\\.")+"\\.?0*$");l.match(e)&&(c=l)}return m.default.createElement(d,{...a,formData:c,onChange:u})},ObjectField:class extends e.Component{constructor(){var e;super(...arguments),e=this,this.state={wasPropertyKeyModified:!1,additionalProperties:{}},this.onPropertyChange=function(t,a){return void 0===a&&(a=!1),(r,o)=>{const{formData:i,onChange:n,errorSchema:l}=e.props;void 0===r&&a&&(r=""),n({...i,[t]:r},l&&l&&{...l,[t]:o})}},this.onDropPropertyClick=e=>t=>{t.preventDefault();const{onChange:a,formData:r}=this.props,o={...r};E.default(o,e),a(o)},this.getAvailableKey=(e,a)=>{const{uiSchema:r}=this.props,{duplicateKeySuffixSeparator:o="-"}=t.getUiOptions(r);let i=0,n=e;for(;n in a;)n=""+e+o+ ++i;return n},this.onKeyChange=e=>(t,a)=>{if(e===t)return;const{formData:r,onChange:o,errorSchema:i}=this.props;t=this.getAvailableKey(t,r);const n={...r},l={[e]:t},s=Object.keys(n).map((e=>({[l[e]||e]:n[e]}))),d=Object.assign({},...s);this.setState({wasPropertyKeyModified:!0}),o(d,i&&i&&{...i,[t]:a})},this.handleAddClick=e=>()=>{if(!g.default(e.additionalProperties))return;const{formData:a,onChange:r,registry:o}=this.props;let i=e.additionalProperties.type;const n={...a};if(t.REF_KEY in e.additionalProperties){const{schemaUtils:r}=o;i=r.retrieveSchema({$ref:e.additionalProperties[t.REF_KEY]},a).type}const l=this.getAvailableKey("newKey",n);y.default(n,l,this.getDefaultValue(i)),r(n)}}isRequired(e){const{schema:t}=this.props;return Array.isArray(t.required)&&-1!==t.required.indexOf(e)}getDefaultValue(e){switch(e){case"string":default:return"New Value";case"array":return[];case"boolean":return!1;case"null":return null;case"number":return 0;case"object":return{}}}render(){const{schema:e,uiSchema:a={},formData:r,errorSchema:o,idSchema:i,name:n,required:l=!1,disabled:s=!1,readonly:d=!1,hideError:c,idPrefix:u,idSeparator:p,onBlur:f,onFocus:g,registry:y}=this.props,{fields:E,formContext:v,schemaUtils:b}=y,{SchemaField:C}=E,F=b.retrieveSchema(e,r),D=t.getUiOptions(a),{properties:x={}}=F,k=void 0===F.title?n:F.title,T=D.description||F.description;let N;try{const e=Object.keys(x);N=t.orderProperties(e,D.order)}catch(e){return m.default.createElement("div",null,m.default.createElement("p",{className:"config-error",style:{color:"red"}},"Invalid ",n||"root"," object field configuration:",m.default.createElement("em",null,e.message),"."),m.default.createElement("pre",null,JSON.stringify(F)))}const A=t.getTemplate("ObjectFieldTemplate",y,D),w={title:D.title||k,description:T,properties:N.map((e=>{const n=S.default(F,[t.PROPERTIES_KEY,e,t.ADDITIONAL_PROPERTY_FLAG]),E=n?a.additionalProperties:a[e],b="hidden"===t.getUiOptions(E).widget,D=h.default(i,[e],{});return{content:m.default.createElement(C,{key:e,name:e,required:this.isRequired(e),schema:h.default(F,[t.PROPERTIES_KEY,e],{}),uiSchema:E,errorSchema:h.default(o,e),idSchema:D,idPrefix:u,idSeparator:p,formData:h.default(r,e),formContext:v,wasPropertyKeyModified:this.state.wasPropertyKeyModified,onKeyChange:this.onKeyChange(e),onChange:this.onPropertyChange(e,n),onBlur:f,onFocus:g,registry:y,disabled:s,readonly:d,hideError:c,onDropPropertyClick:this.onDropPropertyClick}),name:e,readonly:d,disabled:s,required:l,hidden:b}})),readonly:d,disabled:s,required:l,idSchema:i,uiSchema:a,schema:F,formData:r,formContext:v,registry:y};return m.default.createElement(A,{...w,onAddClick:this.handleAddClick})}},OneOfField:D,SchemaField:class extends m.default.Component{shouldComponentUpdate(e){return!t.deepEquals(this.props,e)}render(){return m.default.createElement(N,{...this.props})}},StringField:function(e){const{schema:a,name:r,uiSchema:o,idSchema:i,formData:n,required:l,disabled:s=!1,readonly:d=!1,autofocus:c=!1,onChange:u,onBlur:p,onFocus:h,registry:f,rawErrors:g}=e,{title:y,format:E}=a,{widgets:S,formContext:v,schemaUtils:b}=f,C=b.isSelect(a)?t.optionsList(a):void 0;let F=C?"select":"text";E&&t.hasWidget(a,E,S)&&(F=E);const{widget:D=F,placeholder:x="",...k}=t.getUiOptions(o),T=t.getWidget(a,D,S);return m.default.createElement(T,{options:{...k,enumOptions:C},schema:a,uiSchema:o,id:i&&i.$id,label:void 0===y?r:y,value:n,onChange:u,onBlur:p,onFocus:h,required:l,disabled:s,readonly:d,formContext:v,autofocus:c,registry:f,placeholder:x,rawErrors:g})},NullField:function(t){const{formData:a,onChange:r}=t;return e.useEffect((()=>{void 0===a&&r(null)}),[a,r]),null}};function w(e){const{iconType:t="default",icon:a,className:r,uiSchema:o,...i}=e;return m.default.createElement("button",{type:"button",className:"btn btn-"+t+" "+r,...i},m.default.createElement("i",{className:"glyphicon glyphicon-"+a}))}function O(e){const{label:t,required:a,id:r}=e;return t?m.default.createElement("label",{className:"control-label",htmlFor:r},t,a&&m.default.createElement("span",{className:"required"},"*")):null}const B={ArrayFieldDescriptionTemplate:function(e){const{idSchema:a,description:r,registry:o,uiSchema:i}=e;if(!r)return null;const n=t.getUiOptions(i),l=t.getTemplate("DescriptionFieldTemplate",o,n);return m.default.createElement(l,{id:a.$id+"__description",description:r,registry:o})},ArrayFieldItemTemplate:function(e){const{children:t,className:a,disabled:r,hasToolbar:o,hasMoveDown:i,hasMoveUp:n,hasRemove:l,index:s,onDropIndexClick:d,onReorderClick:c,readonly:u,registry:p,uiSchema:h}=e,{MoveDownButton:f,MoveUpButton:g,RemoveButton:y}=p.templates.ButtonTemplates,E={flex:1,paddingLeft:6,paddingRight:6,fontWeight:"bold"};return m.default.createElement("div",{className:a},m.default.createElement("div",{className:o?"col-xs-9":"col-xs-12"},t),o&&m.default.createElement("div",{className:"col-xs-3 array-item-toolbox"},m.default.createElement("div",{className:"btn-group",style:{display:"flex",justifyContent:"space-around"}},(n||i)&&m.default.createElement(g,{style:E,disabled:r||u||!n,onClick:c(s,s-1),uiSchema:h}),(n||i)&&m.default.createElement(f,{style:E,disabled:r||u||!i,onClick:c(s,s+1),uiSchema:h}),l&&m.default.createElement(y,{style:E,disabled:r||u,onClick:d(s),uiSchema:h}))))},ArrayFieldTemplate:function(e){const{canAdd:a,className:r,disabled:o,idSchema:i,uiSchema:n,items:l,onAddClick:s,readonly:d,registry:c,required:u,schema:p,title:h}=e,f=t.getUiOptions(n),g=t.getTemplate("ArrayFieldDescriptionTemplate",c,f),y=t.getTemplate("ArrayFieldItemTemplate",c,f),E=t.getTemplate("ArrayFieldTitleTemplate",c,f),{ButtonTemplates:{AddButton:S}}=c.templates;return m.default.createElement("fieldset",{className:r,id:i.$id},m.default.createElement(E,{idSchema:i,title:f.title||h,required:u,uiSchema:n,registry:c}),(f.description||p.description)&&m.default.createElement(g,{idSchema:i,description:f.description||p.description,uiSchema:n,registry:c}),m.default.createElement("div",{className:"row array-item-list"},l&&l.map((e=>{let{key:t,...a}=e;return m.default.createElement(y,{key:t,...a})}))),a&&m.default.createElement(S,{className:"array-item-add",onClick:s,disabled:o||d,uiSchema:n}))},ArrayFieldTitleTemplate:function(e){const{idSchema:a,title:r,uiSchema:o,required:i,registry:n}=e;if(!r)return null;const l=t.getUiOptions(o),s=t.getTemplate("TitleFieldTemplate",n,l);return m.default.createElement(s,{id:a.$id+"__title",title:r,required:i,uiSchema:o,registry:n})},ButtonTemplates:{SubmitButton:function(e){let{uiSchema:a}=e;const{submitText:r,norender:o,props:i={}}=t.getSubmitButtonOptions(a);return o?null:m.default.createElement("div",null,m.default.createElement("button",{type:"submit",...i,className:"btn btn-info "+i.className},r))},AddButton:function(e){let{className:t,onClick:a,disabled:r}=e;return m.default.createElement("div",{className:"row"},m.default.createElement("p",{className:"col-xs-3 col-xs-offset-9 text-right "+t},m.default.createElement(w,{iconType:"info",icon:"plus",className:"btn-add col-xs-12",title:"Add",onClick:a,disabled:r})))},MoveDownButton:function(e){return m.default.createElement(w,{title:"Move down",className:"array-item-move-down",...e,icon:"arrow-down"})},MoveUpButton:function(e){return m.default.createElement(w,{title:"Move up",className:"array-item-move-up",...e,icon:"arrow-up"})},RemoveButton:function(e){return m.default.createElement(w,{title:"Remove",className:"array-item-remove",...e,iconType:"danger",icon:"remove"})}},BaseInputTemplate:function(a){const{id:r,value:o,readonly:i,disabled:n,autofocus:l,onBlur:s,onFocus:d,onChange:c,options:u,schema:p,uiSchema:h,formContext:f,registry:g,rawErrors:y,type:E,...S}=a;if(!r)throw console.log("No id for",a),new Error("no id for props "+JSON.stringify(a));const v={...S,...t.getInputProps(p,E,u)};let b;b="number"===v.type||"integer"===v.type?o||0===o?o:"":null==o?"":o;const C=e.useCallback((e=>{let{target:{value:t}}=e;return c(""===t?u.emptyValue:t)}),[c,u]),F=e.useCallback((e=>{let{target:{value:t}}=e;return s(r,t)}),[s,r]),D=e.useCallback((e=>{let{target:{value:t}}=e;return d(r,t)}),[d,r]);return m.default.createElement(m.default.Fragment,null,m.default.createElement("input",{id:r,name:r,className:"form-control",readOnly:i,disabled:n,autoFocus:l,value:b,...v,list:p.examples?"examples_"+r:void 0,onChange:C,onBlur:F,onFocus:D}),Array.isArray(p.examples)&&m.default.createElement("datalist",{key:"datalist_"+r,id:"examples_"+r},[...new Set(p.examples.concat(p.default?[p.default]:[]))].map((e=>m.default.createElement("option",{key:e,value:e})))))},DescriptionFieldTemplate:function(e){const{id:t,description:a}=e;return a?m.default.createElement("string"==typeof a?"p":"div",{id:t,className:"field-description"},a):null},ErrorListTemplate:function(e){let{errors:t}=e;return m.default.createElement("div",{className:"panel panel-danger errors"},m.default.createElement("div",{className:"panel-heading"},m.default.createElement("h3",{className:"panel-title"},"Errors")),m.default.createElement("ul",{className:"list-group"},t.map(((e,t)=>m.default.createElement("li",{key:t,className:"list-group-item text-danger"},e.stack)))))},FieldTemplate:function(e){const{id:a,label:r,children:o,errors:i,help:n,description:l,hidden:s,required:d,displayLabel:c,registry:u,uiSchema:p}=e,h=t.getUiOptions(p),f=t.getTemplate("WrapIfAdditionalTemplate",u,h);return s?m.default.createElement("div",{className:"hidden"},o):m.default.createElement(f,{...e},c&&m.default.createElement(O,{label:r,required:d,id:a}),c&&l?l:null,o,i,n)},FieldErrorTemplate:function(e){const{errors:t=[],idSchema:a}=e;return 0===t.length?null:m.default.createElement("div",null,m.default.createElement("ul",{id:a.$id+"__error",className:"error-detail bs-callout bs-callout-info"},t.filter((e=>!!e)).map(((e,t)=>m.default.createElement("li",{className:"text-danger",key:t},e)))))},FieldHelpTemplate:function(e){const{idSchema:t,help:a}=e;return a?m.default.createElement("string"==typeof a?"p":"div",{id:t.$id+"__help",className:"help-block"},a):null},ObjectFieldTemplate:function(e){const{description:a,disabled:r,formData:o,idSchema:i,onAddClick:n,properties:l,readonly:s,registry:d,required:c,schema:u,title:p,uiSchema:h}=e,f=t.getUiOptions(h),g=t.getTemplate("TitleFieldTemplate",d,f),y=t.getTemplate("DescriptionFieldTemplate",d,f),{ButtonTemplates:{AddButton:E}}=d.templates;return m.default.createElement("fieldset",{id:i.$id},(f.title||p)&&m.default.createElement(g,{id:i.$id+"__title",title:f.title||p,required:c,uiSchema:h,registry:d}),(f.description||a)&&m.default.createElement(y,{id:i.$id+"__description",description:f.description||a,registry:d}),l.map((e=>e.content)),t.canExpand(u,h,o)&&m.default.createElement(E,{className:"object-property-expand",onClick:n(u),disabled:r||s,uiSchema:h}))},TitleFieldTemplate:function(e){const{id:t,title:a,required:r}=e;return m.default.createElement("legend",{id:t},a,r&&m.default.createElement("span",{className:"required"},"*"))},UnsupportedFieldTemplate:function(e){const{schema:t,idSchema:a,reason:r}=e;return m.default.createElement("div",{className:"unsupported-field"},m.default.createElement("p",null,"Unsupported field schema",a&&a.$id&&m.default.createElement("span",null," for"," field ",m.default.createElement("code",null,a.$id)),r&&m.default.createElement("em",null,": ",r),"."),t&&m.default.createElement("pre",null,JSON.stringify(t,null,2)))},WrapIfAdditionalTemplate:function(e){const{id:a,classNames:r,disabled:o,label:i,onKeyChange:n,onDropPropertyClick:l,readonly:s,required:d,schema:c,children:u,uiSchema:p,registry:h}=e,{RemoveButton:f}=h.templates.ButtonTemplates;return m.default.createElement("div",{className:r},t.ADDITIONAL_PROPERTY_FLAG in c?m.default.createElement("div",{className:"row"},m.default.createElement("div",{className:"col-xs-5 form-additional"},m.default.createElement("div",{className:"form-group"},m.default.createElement(O,{label:i+" Key",required:d,id:a+"-key"}),m.default.createElement("input",{className:"form-control",type:"text",id:a+"-key",onBlur:e=>n(e.target.value),defaultValue:i}))),m.default.createElement("div",{className:"form-additional form-group col-xs-5"},u),m.default.createElement("div",{className:"col-xs-2"},m.default.createElement(f,{className:"array-item-remove btn-block",style:{border:"0"},disabled:o||s,onClick:l(i),uiSchema:p}))):u)}};function I(e,a){const r=[];for(let o=e;o<=a;o++)r.push({value:o,label:t.pad(o,2)});return r}function U(e){let{type:t,range:a,value:r,select:o,rootId:i,disabled:n,readonly:l,autofocus:s,registry:d,onBlur:c,onFocus:u}=e;const p=i+"_"+t,{SelectWidget:h}=d.widgets;return m.default.createElement(h,{schema:{type:"integer"},id:p,className:"form-control",options:{enumOptions:I(a[0],a[1])},placeholder:t,value:r,disabled:n,readonly:l,autofocus:s,onChange:e=>o(t,e),onBlur:c,onFocus:u,registry:d,label:""})}function q(e,t){return null===e?null:e.replace(";base64",";name="+encodeURIComponent(t)+";base64")}function P(e){const{name:t,size:a,type:r}=e;return new Promise(((o,i)=>{const n=new window.FileReader;n.onerror=i,n.onload=e=>{var i;"string"==typeof(null===(i=e.target)||void 0===i?void 0:i.result)?o({dataURL:q(e.target.result,t),name:t,size:a,type:r}):o({dataURL:null,name:t,size:a,type:r})},n.readAsDataURL(e)}))}function _(e){let{filesInfo:t}=e;return 0===t.length?null:m.default.createElement("ul",{className:"file-info"},t.map(((e,t)=>{const{name:a,size:r,type:o}=e;return m.default.createElement("li",{key:t},m.default.createElement("strong",null,a)," (",o,", ",r," bytes)")})))}function R(e){return e.filter((e=>void 0!==e)).map((e=>{const{blob:a,name:r}=t.dataURItoBlob(e);return{name:r,size:a.size,type:a.type}}))}function V(e,t){return t?Array.from(e.target.options).slice().filter((e=>e.selected)).map((e=>e.value)):e.target.value}function M(t){let{id:a,options:r={},placeholder:o,value:i,required:n,disabled:l,readonly:s,autofocus:d=!1,onChange:c,onBlur:u,onFocus:p}=t;const h=e.useCallback((e=>{let{target:{value:t}}=e;return c(""===t?r.emptyValue:t)}),[c,r.emptyValue]),f=e.useCallback((e=>{let{target:{value:t}}=e;return u(a,t)}),[u,a]),g=e.useCallback((e=>{let{target:{value:t}}=e;return p(a,t)}),[a,p]);return m.default.createElement("textarea",{id:a,name:a,className:"form-control",value:i||"",placeholder:o,required:n,disabled:l,readOnly:s,autoFocus:d,rows:r.rows,onBlur:f,onFocus:g,onChange:h})}M.defaultProps={autofocus:!1,options:{}};const W={PasswordWidget:function(e){const{options:a,registry:r}=e,o=t.getTemplate("BaseInputTemplate",r,a);return m.default.createElement(o,{type:"password",...e})},RadioWidget:function(t){let{options:a,value:r,required:o,disabled:i,readonly:n,autofocus:l=!1,onBlur:s,onFocus:d,onChange:c,id:u}=t;const p=Math.random().toString(),{enumOptions:h,enumDisabled:f,inline:g}=a,y=e.useCallback((e=>s(u,e.target.value)),[s,u]),E=e.useCallback((e=>d(u,e.target.value)),[d,u]);return m.default.createElement("div",{className:"field-radio-group",id:u},Array.isArray(h)&&h.map(((e,t)=>{const a=e.value===r,s=Array.isArray(f)&&-1!=f.indexOf(e.value),d=i||s||n?"disabled":"",h=m.default.createElement("span",null,m.default.createElement("input",{type:"radio",id:u+"-"+e.value,checked:a,name:p,required:o,value:e.value,disabled:i||s||n,autoFocus:l&&0===t,onChange:()=>c(e.value),onBlur:y,onFocus:E}),m.default.createElement("span",null,e.label));return g?m.default.createElement("label",{key:e.value,className:"radio-inline "+d},h):m.default.createElement("div",{key:e.value,className:"radio "+d},m.default.createElement("label",null,h))})))},UpDownWidget:function(e){const{options:a,registry:r}=e,o=t.getTemplate("BaseInputTemplate",r,a);return m.default.createElement(o,{type:"number",...e})},RangeWidget:function(e){const{value:t,registry:{templates:{BaseInputTemplate:a}}}=e;return m.default.createElement("div",{className:"field-range-wrapper"},m.default.createElement(a,{type:"range",...e}),m.default.createElement("span",{className:"range-view"},t))},SelectWidget:function(a){let{schema:r,id:o,options:i,value:n,required:l,disabled:s,readonly:d,multiple:c=!1,autofocus:u=!1,onChange:p,onBlur:h,onFocus:f,placeholder:g}=a;const{enumOptions:y,enumDisabled:E}=i,S=c?[]:"",v=e.useCallback((e=>{const a=V(e,c);return f(o,t.processSelectValue(r,a,i))}),[f,o,r,c,i]),b=e.useCallback((e=>{const a=V(e,c);return h(o,t.processSelectValue(r,a,i))}),[h,o,r,c,i]),C=e.useCallback((e=>{const a=V(e,c);return p(t.processSelectValue(r,a,i))}),[p,r,c,i]);return m.default.createElement("select",{id:o,name:o,multiple:c,className:"form-control",value:void 0===n?S:n,required:l,disabled:s||d,autoFocus:u,onBlur:b,onFocus:v,onChange:C},!c&&void 0===r.default&&m.default.createElement("option",{value:""},g),Array.isArray(y)&&y.map(((e,t)=>{let{value:a,label:r}=e;const o=E&&-1!=E.indexOf(a);return m.default.createElement("option",{key:t,value:a,disabled:o},r)})))},TextWidget:function(e){const{options:a,registry:r}=e,o=t.getTemplate("BaseInputTemplate",r,a);return m.default.createElement(o,{...e})},DateWidget:function(a){const{onChange:r,options:o,registry:i}=a,n=t.getTemplate("BaseInputTemplate",i,o),l=e.useCallback((e=>r(e||void 0)),[r]);return m.default.createElement(n,{type:"date",...a,onChange:l})},DateTimeWidget:function(e){const{onChange:a,value:r,options:o,registry:i}=e,n=t.getTemplate("BaseInputTemplate",i,o);return m.default.createElement(n,{type:"datetime-local",...e,value:t.utcToLocal(r),onChange:e=>a(t.localToUTC(e))})},AltDateWidget:function(a){let{time:r=!1,disabled:o=!1,readonly:i=!1,autofocus:n=!1,options:l,id:s,registry:d,onBlur:c,onFocus:u,onChange:p,value:h}=a;const[f,g]=e.useReducer(((e,t)=>({...e,...t})),t.parseDateString(h,r));e.useEffect((()=>{h&&h!==t.toDateString(f,r)&&g(t.parseDateString(h,r))}),[h,f,r]),e.useEffect((()=>{(function(e){return Object.values(e).every((e=>-1!==e))})(f)&&p(t.toDateString(f,r))}),[f,r,p]);const y=e.useCallback(((e,t)=>{g({[e]:t})}),[]),E=e.useCallback((e=>{if(e.preventDefault(),o||i)return;const a=t.parseDateString((new Date).toJSON(),r);g(a)}),[o,i,r]),S=e.useCallback((e=>{e.preventDefault(),o||i||(g(t.parseDateString("",r)),p(void 0))}),[o,i,r,p]);return m.default.createElement("ul",{className:"list-inline"},function(e,t,a){void 0===a&&(a=[1900,(new Date).getFullYear()+2]);const{year:r,month:o,day:i,hour:n,minute:l,second:s}=e,d=[{type:"year",range:a,value:r},{type:"month",range:[1,12],value:o},{type:"day",range:[1,31],value:i}];return t&&d.push({type:"hour",range:[0,23],value:n},{type:"minute",range:[0,59],value:l},{type:"second",range:[0,59],value:s}),d}(f,r,l.yearsRange).map(((e,t)=>m.default.createElement("li",{key:t},m.default.createElement(U,{rootId:s,select:y,...e,disabled:o,readonly:i,registry:d,onBlur:c,onFocus:u,autofocus:n&&0===t})))),("undefined"===l.hideNowButton||!l.hideNowButton)&&m.default.createElement("li",null,m.default.createElement("a",{href:"#",className:"btn btn-info btn-now",onClick:E},"Now")),("undefined"===l.hideClearButton||!l.hideClearButton)&&m.default.createElement("li",null,m.default.createElement("a",{href:"#",className:"btn btn-warning btn-clear",onClick:S},"Clear")))},AltDateTimeWidget:function(e){let{time:t=!0,...a}=e;const{AltDateWidget:r}=a.registry.widgets;return m.default.createElement(r,{time:t,...a})},EmailWidget:function(e){const{options:a,registry:r}=e,o=t.getTemplate("BaseInputTemplate",r,a);return m.default.createElement(o,{type:"email",...e})},URLWidget:function(e){const{options:a,registry:r}=e,o=t.getTemplate("BaseInputTemplate",r,a);return m.default.createElement(o,{type:"url",...e})},TextareaWidget:M,HiddenWidget:function(e){let{id:t,value:a}=e;return m.default.createElement("input",{type:"hidden",id:t,name:t,value:void 0===a?"":a})},ColorWidget:function(e){const{disabled:a,readonly:r,options:o,registry:i}=e,n=t.getTemplate("BaseInputTemplate",i,o);return m.default.createElement(n,{type:"color",...e,disabled:a||r})},FileWidget:function(t){let{multiple:a,id:r,readonly:o,disabled:i,onChange:n,value:l,autofocus:s=!1,options:d}=t;const c=e.useMemo((()=>Array.isArray(l)?R(l):R([l])),[l]),[u,p]=e.useState(c),h=e.useCallback((e=>{var t;e.target.files&&(t=e.target.files,Promise.all(Array.from(t).map(P))).then((e=>{p(e);const t=e.map((e=>e.dataURL));n(a?t:t[0])}))}),[a,n]);return m.default.createElement("div",null,m.default.createElement("p",null,m.default.createElement("input",{id:r,name:r,type:"file",disabled:o||i,onChange:h,defaultValue:"",autoFocus:s,multiple:a,accept:d.accept?String(d.accept):void 0})),m.default.createElement(_,{filesInfo:u}))},CheckboxWidget:function(a){let{schema:r,options:o,id:i,value:n,disabled:l,readonly:s,label:d,autofocus:c=!1,onBlur:u,onFocus:p,onChange:h,registry:f}=a;const g=t.getTemplate("DescriptionFieldTemplate",f,o),y=t.schemaRequiresTrueValue(r),E=e.useCallback((e=>h(e.target.checked)),[h]),S=e.useCallback((e=>u(i,e.target.checked)),[u,i]),v=e.useCallback((e=>p(i,e.target.checked)),[p,i]);return m.default.createElement("div",{className:"checkbox "+(l||s?"disabled":"")},r.description&&m.default.createElement(g,{id:i+"__description",description:r.description,registry:f}),m.default.createElement("label",null,m.default.createElement("input",{type:"checkbox",id:i,name:i,checked:void 0!==n&&n,required:y,disabled:l||s,autoFocus:c,onChange:E,onBlur:S,onFocus:v}),m.default.createElement("span",null,d)))},CheckboxesWidget:function(e){let{id:t,disabled:a,options:{inline:r=!1,enumOptions:o,enumDisabled:i},value:n,autofocus:l=!1,readonly:s,onChange:d}=e;return m.default.createElement("div",{className:"checkboxes",id:t},Array.isArray(o)&&o.map(((e,c)=>{const u=-1!==n.indexOf(e.value),p=Array.isArray(i)&&-1!=i.indexOf(e.value),h=a||p||s?"disabled":"",f=m.default.createElement("span",null,m.default.createElement("input",{type:"checkbox",id:t+"-"+e.value,name:t,checked:u,disabled:a||p||s,autoFocus:l&&0===c,onChange:t=>{const a=o.map((e=>{let{value:t}=e;return t}));d(t.target.checked?function(e,t,a){const r=a.indexOf(e);return t.slice(0,r).concat(e,t.slice(r)).sort(((e,t)=>Number(a.indexOf(e)>a.indexOf(t))))}(e.value,n,a):function(e,t){return t.filter((t=>t!==e))}(e.value,n))}}),m.default.createElement("span",null,e.label));return r?m.default.createElement("label",{key:e.value,className:"checkbox-inline "+h},f):m.default.createElement("div",{key:e.value,className:"checkbox "+h},m.default.createElement("label",null,f))})))}};function K(){return{fields:A,templates:B,widgets:W,rootSchema:{},formContext:{}}}class j extends e.Component{constructor(e){if(super(e),this.formElement=void 0,this.getUsedFormData=(e,t)=>{if(0===t.length&&"object"!=typeof e)return e;const a=p.default(e,t);return Array.isArray(e)?Object.keys(a).map((e=>a[e])):a},this.getFieldNames=(e,a)=>{const r=function(e,o,i){return void 0===o&&(o=[]),void 0===i&&(i=[""]),Object.keys(e).forEach((n=>{if("object"==typeof e[n]){const a=i.map((e=>e+"."+n));e[n][t.RJSF_ADDITONAL_PROPERTIES_FLAG]&&""!==e[n][t.NAME_KEY]?o.push(e[n][t.NAME_KEY]):r(e[n],o,a)}else n===t.NAME_KEY&&""!==e[n]&&i.forEach((e=>{e=e.replace(/^\./,"");const t=h.default(a,e);("object"!=typeof t||f.default(t))&&o.push(e)}))})),o};return r(e)},this.onChange=(e,a)=>{const{extraErrors:r,omitExtraData:o,liveOmit:i,noValidate:n,liveValidate:l,onChange:s}=this.props,{schemaUtils:d,schema:c}=this.state;(t.isObject(e)||Array.isArray(e))&&(e=this.getStateFromProps(this.props,e).formData);const u=!n&&l;let m={formData:e,schema:c},p=e;if(!0===o&&!0===i){const t=d.retrieveSchema(c,e),a=d.toPathSchema(t,"",e),r=this.getFieldNames(a,e);p=this.getUsedFormData(e,r),m={formData:p}}if(u){const e=this.validate(p);let t=e.errors,a=e.errorSchema;const o=t,i=a;if(r){const o=d.mergeValidationData(e,r);a=o.errorSchema,t=o.errors}m={formData:p,errors:t,errorSchema:a,schemaValidationErrors:o,schemaValidationErrorSchema:i}}else if(!n&&a){const e=r?t.mergeObjects(a,r,!0):a;m={formData:p,errorSchema:e,errors:d.getValidator().toErrorList(e)}}this.setState(m,(()=>s&&s({...this.state,...m})))},this.onBlur=(e,t)=>{const{onBlur:a}=this.props;a&&a(e,t)},this.onFocus=(e,t)=>{const{onFocus:a}=this.props;a&&a(e,t)},this.onSubmit=e=>{if(e.preventDefault(),e.target!==e.currentTarget)return;e.persist();const{omitExtraData:t,extraErrors:a,noValidate:r,onSubmit:o}=this.props;let{formData:i}=this.state;const{schema:n,schemaUtils:l}=this.state;if(!0===t){const e=l.retrieveSchema(n,i),t=l.toPathSchema(e,"",i),a=this.getFieldNames(t,i);i=this.getUsedFormData(i,a)}if(r||this.validateForm()){const t=a||{},r=a?l.getValidator().toErrorList(a):[];this.setState({formData:i,errors:r,errorSchema:t,schemaValidationErrors:[],schemaValidationErrorSchema:{}},(()=>{o&&o({...this.state,formData:i,status:"submitted"},e)}))}},!e.validator)throw new Error("A validator is required for Form functionality to work");this.state=this.getStateFromProps(e,e.formData),this.props.onChange&&!t.deepEquals(this.state.formData,this.props.formData)&&this.props.onChange(this.state),this.formElement=m.default.createRef()}UNSAFE_componentWillReceiveProps(e){const a=this.getStateFromProps(e,e.formData);t.deepEquals(a.formData,e.formData)||t.deepEquals(a.formData,this.state.formData)||!e.onChange||e.onChange(a),this.setState(a)}getStateFromProps(e,a){const r=this.state||{},o="schema"in e?e.schema:this.props.schema,i=("uiSchema"in e?e.uiSchema:this.props.uiSchema)||{},n=void 0!==a,l=n&&!e.noValidate&&("liveValidate"in e?e.liveValidate:this.props.liveValidate),s=o;let d=r.schemaUtils;d&&!d.doesSchemaUtilsDiffer(e.validator,s)||(d=t.createSchemaUtils(e.validator,s));const c=d.getDefaultFormState(o,a),u=d.retrieveSchema(o,c);let m,p,h=r.schemaValidationErrors,f=r.schemaValidationErrorSchema;if(l){const e=this.validate(c,o,d);m=e.errors,p=e.errorSchema,h=m,f=p}else{const t=e.noValidate?{errors:[],errorSchema:{}}:e.liveValidate?{errors:r.errors||[],errorSchema:r.errorSchema||{}}:{errors:r.schemaValidationErrors||[],errorSchema:r.schemaValidationErrorSchema||{}};m=t.errors,p=t.errorSchema}if(e.extraErrors){const t=d.mergeValidationData({errorSchema:p,errors:m},e.extraErrors);p=t.errorSchema,m=t.errors}const g=d.toIdSchema(u,i["ui:rootFieldId"],c,e.idPrefix,e.idSeparator);return{schemaUtils:d,schema:o,uiSchema:i,idSchema:g,formData:c,edit:n,errors:m,errorSchema:p,schemaValidationErrors:h,schemaValidationErrorSchema:f}}shouldComponentUpdate(e,a){return t.shouldRender(this,e,a)}validate(e,t,a){void 0===t&&(t=this.props.schema);const r=a||this.state.schemaUtils,{customValidate:o,transformErrors:i}=this.props,n=r.retrieveSchema(t,e);return r.getValidator().validateFormData(e,n,o,i)}renderErrors(e){const{errors:a,errorSchema:r,schema:o,uiSchema:i}=this.state,{showErrorList:n,formContext:l}=this.props,s=t.getUiOptions(i),d=t.getTemplate("ErrorListTemplate",e,s);return a&&a.length&&0!=n?m.default.createElement(d,{errors:a,errorSchema:r||{},schema:o,uiSchema:i,formContext:l}):null}getRegistry(){var e;const{schemaUtils:t}=this.state,{fields:a,templates:r,widgets:o,formContext:i}=K();return{fields:{...a,...this.props.fields},templates:{...r,...this.props.templates,ButtonTemplates:{...r.ButtonTemplates,...null===(e=this.props.templates)||void 0===e?void 0:e.ButtonTemplates}},widgets:{...o,...this.props.widgets},rootSchema:this.props.schema,formContext:this.props.formContext||i,schemaUtils:t}}submit(){this.formElement.current&&(this.formElement.current.dispatchEvent(new CustomEvent("submit",{cancelable:!0})),this.formElement.current.requestSubmit())}validateForm(){const{extraErrors:e,onError:t}=this.props,{formData:a}=this.state,{schemaUtils:r}=this.state,o=this.validate(a);let i=o.errors,n=o.errorSchema;const l=i,s=n;if(i.length>0){if(e){const t=r.mergeValidationData(o,e);n=t.errorSchema,i=t.errors}return this.setState({errors:i,errorSchema:n,schemaValidationErrors:l,schemaValidationErrorSchema:s},(()=>{t?t(i):console.error("Form validation failed",i)})),!1}return!0}render(){const{children:e,id:t,idPrefix:a,idSeparator:r,className:o="",tagName:i,name:n,method:l,target:s,action:d,autoComplete:c,enctype:u,acceptcharset:p,noHtml5Validate:h=!1,disabled:f=!1,readonly:g=!1,formContext:y,_internalFormWrapper:E}=this.props,{schema:S,uiSchema:v,formData:b,errorSchema:C,idSchema:F}=this.state,D=this.getRegistry(),{SchemaField:x}=D.fields,{SubmitButton:k}=D.templates.ButtonTemplates;return m.default.createElement(E||i||"form",{className:o||"rjsf",id:t,name:n,method:l,target:s,action:d,autoComplete:c,encType:u,acceptCharset:p,noValidate:h,onSubmit:this.onSubmit,as:E?i:void 0,ref:this.formElement},this.renderErrors(D),m.default.createElement(x,{name:"",schema:S,uiSchema:v,errorSchema:C,idSchema:F,idPrefix:a,idSeparator:r,formContext:y,formData:b,onChange:this.onChange,onBlur:this.onBlur,onFocus:this.onFocus,registry:D,disabled:f,readonly:g}),e||m.default.createElement(k,{uiSchema:v}))}}exports.default=j,exports.getDefaultRegistry=K,exports.withTheme=function(t){return e.forwardRef(((e,a)=>{var r,o;let{fields:i,widgets:n,templates:l,...s}=e;return i={...t.fields,...i},n={...t.widgets,...n},l={...t.templates,...l,ButtonTemplates:{...null==t||null===(r=t.templates)||void 0===r?void 0:r.ButtonTemplates,...null===(o=l)||void 0===o?void 0:o.ButtonTemplates}},m.default.createElement(j,{...t,...s,fields:i,widgets:n,templates:l,ref:a})}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@rjsf/utils"),a=require("lodash/get"),r=require("lodash/isEmpty"),o=require("lodash/pick"),i=require("lodash/isObject"),n=require("lodash/set"),l=require("nanoid"),s=require("lodash/unset"),d=require("lodash/has"),c=require("lodash/omit");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=u(e),p=u(a),h=u(r),f=u(o),g=u(i),y=u(n),S=u(s),E=u(d),b=u(c);function v(){return l.nanoid()}function C(e){return Array.isArray(e)?e.map((e=>({key:v(),item:e}))):[]}function F(e){return Array.isArray(e)?e.map((e=>e.item)):[]}class D extends e.Component{constructor(e){super(e),this._getNewFormDataRow=()=>{const{schema:e,registry:a}=this.props,{schemaUtils:r}=a;let o=e.items;return t.isFixedItems(e)&&t.allowAdditionalItems(e)&&(o=e.additionalItems),r.getDefaultFormState(o)},this.onAddClick=e=>{e&&e.preventDefault();const{onChange:t}=this.props,{keyedFormData:a}=this.state,r=[...a,{key:v(),item:this._getNewFormDataRow()}];this.setState({keyedFormData:r,updatedKeyedFormData:!0},(()=>t(F(r))))},this.onAddIndexClick=e=>t=>{t&&t.preventDefault();const{onChange:a}=this.props,{keyedFormData:r}=this.state,o={key:v(),item:this._getNewFormDataRow()},i=[...r];i.splice(e,0,o),this.setState({keyedFormData:i,updatedKeyedFormData:!0},(()=>a(F(i))))},this.onDropIndexClick=e=>t=>{t&&t.preventDefault();const{onChange:a,errorSchema:r}=this.props,{keyedFormData:o}=this.state;let i;if(r){i={};for(const t in r){const a=parseInt(t);a<e?y.default(i,[a],r[t]):a>e&&y.default(i,[a-1],r[t])}}const n=o.filter(((t,a)=>a!==e));this.setState({keyedFormData:n,updatedKeyedFormData:!0},(()=>a(F(n),i)))},this.onReorderClick=(e,t)=>a=>{a&&(a.preventDefault(),a.currentTarget.blur());const{onChange:r,errorSchema:o}=this.props;let i;if(this.props.errorSchema){i={};for(const a in o){const r=parseInt(a);r==e?y.default(i,[t],o[e]):r==t?y.default(i,[e],o[t]):y.default(i,[a],o[r])}}const{keyedFormData:n}=this.state,l=function(){const a=n.slice();return a.splice(e,1),a.splice(t,0,n[e]),a}();this.setState({keyedFormData:l},(()=>r(F(l),i)))},this.onChangeForIndex=e=>(t,a,r)=>{const{formData:o,onChange:i,errorSchema:n}=this.props;i((Array.isArray(o)?o:[]).map(((a,r)=>e===r?void 0===t?null:t:a)),n&&n&&{...n,[e]:a},r)},this.onSelectChange=e=>{const{onChange:t,idSchema:a}=this.props;t(e,void 0,a&&a.$id)};const{formData:a=[]}=e,r=C(a);this.state={keyedFormData:r,updatedKeyedFormData:!1}}static getDerivedStateFromProps(e,t){if(t.updatedKeyedFormData)return{updatedKeyedFormData:!1};const a=Array.isArray(e.formData)?e.formData:[],r=t.keyedFormData||[];return{keyedFormData:a.length===r.length?r.map(((e,t)=>({key:e.key,item:a[t]}))):C(a)}}get itemTitle(){const{schema:e}=this.props;return p.default(e,[t.ITEMS_KEY,"title"],p.default(e,[t.ITEMS_KEY,"description"],"Item"))}isItemRequired(e){return Array.isArray(e.type)?!e.type.includes("null"):"null"!==e.type}canAddItem(e){const{schema:a,uiSchema:r}=this.props;let{addable:o}=t.getUiOptions(r);return!1!==o&&(o=void 0===a.maxItems||e.length<a.maxItems),o}render(){const{schema:e,uiSchema:a,idSchema:r,registry:o}=this.props,{schemaUtils:i}=o;if(!(t.ITEMS_KEY in e)){const i=t.getUiOptions(a),n=t.getTemplate("UnsupportedFieldTemplate",o,i);return m.default.createElement(n,{schema:e,idSchema:r,reason:"Missing items definition",registry:o})}return i.isMultiSelect(e)?this.renderMultiSelect():t.isCustomWidget(a)?this.renderCustomWidget():t.isFixedItems(e)?this.renderFixedArray():i.isFilesArray(e,a)?this.renderFiles():this.renderNormalArray()}renderNormalArray(){const{schema:e,uiSchema:a={},errorSchema:r,idSchema:o,name:i,disabled:n=!1,readonly:l=!1,autofocus:s=!1,required:d=!1,registry:c,onBlur:u,onFocus:p,idPrefix:h,idSeparator:f="_",rawErrors:y}=this.props,{keyedFormData:S}=this.state,E=void 0===e.title?i:e.title,{schemaUtils:b,formContext:v}=c,C=t.getUiOptions(a),D=g.default(e.items)?e.items:{},x=b.retrieveSchema(D),k=F(this.state.keyedFormData),T={canAdd:this.canAddItem(k),items:S.map(((e,t)=>{const{key:n,item:l}=e,d=l,c=b.retrieveSchema(D,d),m=r?r[t]:void 0,g=b.toIdSchema(c,o.$id+f+t,d,h,f);return this.renderArrayFieldItem({key:n,index:t,name:i&&`${i}-${t}`,canMoveUp:t>0,canMoveDown:t<k.length-1,itemSchema:c,itemIdSchema:g,itemErrorSchema:m,itemData:d,itemUiSchema:a.items,autofocus:s&&0===t,onBlur:u,onFocus:p,rawErrors:y})})),className:`field field-array field-array-of-${x.type}`,disabled:n,idSchema:o,uiSchema:a,onAddClick:this.onAddClick,readonly:l,required:d,schema:e,title:E,formContext:v,formData:k,rawErrors:y,registry:c},N=t.getTemplate("ArrayFieldTemplate",c,C);return m.default.createElement(N,{...T})}renderCustomWidget(){const{schema:e,idSchema:a,uiSchema:r,disabled:o=!1,readonly:i=!1,autofocus:n=!1,required:l=!1,hideError:s,placeholder:d,onBlur:c,onFocus:u,formData:p=[],registry:h,rawErrors:f,name:g}=this.props,{widgets:y,formContext:S}=h,E=e.title||g,{widget:b,...v}=t.getUiOptions(r),C=t.getWidget(e,b,y);return m.default.createElement(C,{id:a&&a.$id,multiple:!0,onChange:this.onSelectChange,onBlur:c,onFocus:u,options:v,schema:e,uiSchema:r,registry:h,value:p,disabled:o,readonly:i,hideError:s,required:l,label:E,placeholder:d,formContext:S,autofocus:n,rawErrors:f})}renderMultiSelect(){const{schema:e,idSchema:a,uiSchema:r,formData:o=[],disabled:i=!1,readonly:n=!1,autofocus:l=!1,required:s=!1,placeholder:d,onBlur:c,onFocus:u,registry:p,rawErrors:h,name:f}=this.props,{widgets:g,schemaUtils:y,formContext:S}=p,E=y.retrieveSchema(e.items,o),b=e.title||f,v=t.optionsList(E),{widget:C="select",...F}=t.getUiOptions(r),D=t.getWidget(e,C,g);return m.default.createElement(D,{id:a&&a.$id,multiple:!0,onChange:this.onSelectChange,onBlur:c,onFocus:u,options:{...F,enumOptions:v},schema:e,uiSchema:r,registry:p,value:o,disabled:i,readonly:n,required:s,label:b,placeholder:d,formContext:S,autofocus:l,rawErrors:h})}renderFiles(){const{schema:e,uiSchema:a,idSchema:r,name:o,disabled:i=!1,readonly:n=!1,autofocus:l=!1,required:s=!1,onBlur:d,onFocus:c,registry:u,formData:p=[],rawErrors:h}=this.props,f=e.title||o,{widgets:g,formContext:y}=u,{widget:S="files",...E}=t.getUiOptions(a),b=t.getWidget(e,S,g);return m.default.createElement(b,{options:E,id:r&&r.$id,multiple:!0,onChange:this.onSelectChange,onBlur:d,onFocus:c,schema:e,uiSchema:a,title:f,value:p,disabled:i,readonly:n,required:s,registry:u,formContext:y,autofocus:l,rawErrors:h,label:""})}renderFixedArray(){const{schema:e,uiSchema:a={},formData:r=[],errorSchema:o,idPrefix:i,idSeparator:n="_",idSchema:l,name:s,disabled:d=!1,readonly:c=!1,autofocus:u=!1,required:p=!1,registry:h,onBlur:f,onFocus:y,rawErrors:S}=this.props,{keyedFormData:E}=this.state;let{formData:b=[]}=this.props;const v=e.title||s,C=t.getUiOptions(a),{schemaUtils:F,formContext:D}=h,x=(g.default(e.items)?e.items:[]).map(((e,t)=>F.retrieveSchema(e,r[t]))),k=g.default(e.additionalItems)?F.retrieveSchema(e.additionalItems,r):null;(!b||b.length<x.length)&&(b=b||[],b=b.concat(new Array(x.length-b.length)));const T={canAdd:this.canAddItem(b)&&!!k,className:"field field-array field-array-fixed-items",disabled:d,idSchema:l,formData:r,items:E.map(((t,r)=>{const{key:d,item:c}=t,m=c,p=r>=x.length,h=p&&g.default(e.additionalItems)?F.retrieveSchema(e.additionalItems,m):x[r],E=F.toIdSchema(h,l.$id+n+r,m,i,n),v=p?a.additionalItems||{}:Array.isArray(a.items)?a.items[r]:a.items||{};return this.renderArrayFieldItem({key:d,index:r,name:s&&`${s}-${r}`,canRemove:p,canMoveUp:r>=x.length+1,canMoveDown:p&&r<b.length-1,itemSchema:h,itemData:m,itemUiSchema:v,itemIdSchema:E,itemErrorSchema:o?o[r]:void 0,autofocus:u&&0===r,onBlur:f,onFocus:y,rawErrors:S})})),onAddClick:this.onAddClick,readonly:c,required:p,registry:h,schema:e,uiSchema:a,title:v,formContext:D,rawErrors:S},N=t.getTemplate("ArrayFieldTemplate",h,C);return m.default.createElement(N,{...T})}renderArrayFieldItem(e){const{key:a,index:r,name:o,canRemove:i=!0,canMoveUp:n=!0,canMoveDown:l=!0,itemSchema:s,itemData:d,itemUiSchema:c,itemIdSchema:u,itemErrorSchema:p,autofocus:h,onBlur:f,onFocus:g,rawErrors:y}=e,{disabled:S,hideError:E,idPrefix:b,idSeparator:v,readonly:C,uiSchema:F,registry:D,formContext:x}=this.props,{fields:{ArraySchemaField:k,SchemaField:T}}=D,N=k||T,{orderable:A=!0,removable:w=!0}=t.getUiOptions(F),O={moveUp:A&&n,moveDown:A&&l,remove:w&&i,toolbar:!1};return O.toolbar=Object.keys(O).some((e=>O[e])),{children:m.default.createElement(N,{name:o,index:r,schema:s,uiSchema:c,formData:d,formContext:x,errorSchema:p,idPrefix:b,idSeparator:v,idSchema:u,required:this.isItemRequired(s),onChange:this.onChangeForIndex(r),onBlur:f,onFocus:g,registry:D,disabled:S,readonly:C,hideError:E,autofocus:h,rawErrors:y}),className:"array-item",disabled:S,hasToolbar:O.toolbar,hasMoveUp:O.moveUp,hasMoveDown:O.moveDown,hasRemove:O.remove,index:r,key:a,onAddIndexClick:this.onAddIndexClick,onDropIndexClick:this.onDropIndexClick,onReorderClick:this.onReorderClick,readonly:C,registry:D,uiSchema:c}}}function x(e){const{schema:a,name:r,uiSchema:o,idSchema:i,formData:n,registry:l,required:s,disabled:d,readonly:c,autofocus:u,onChange:p,onFocus:h,onBlur:f,rawErrors:y}=e,{title:S}=a,{widgets:E,formContext:b}=l,{widget:v="checkbox",...C}=t.getUiOptions(o),F=t.getWidget(a,v,E);let D;if(Array.isArray(a.oneOf))D=t.optionsList({oneOf:a.oneOf.map((e=>{if(g.default(e))return{...e,title:e.title||(!0===e.const?"Yes":"No")}})).filter((e=>e))});else{const e=a,r=a.enum??[!0,!1];D=!e.enumNames&&2===r.length&&r.every((e=>"boolean"==typeof e))?[{value:r[0],label:r[0]?"Yes":"No"},{value:r[1],label:r[1]?"Yes":"No"}]:t.optionsList({enum:r,enumNames:e.enumNames})}return m.default.createElement(F,{options:{...C,enumOptions:D},schema:a,uiSchema:o,id:i&&i.$id,onChange:p,onFocus:h,onBlur:f,label:void 0===S?r:S,value:n,required:s,disabled:d,readonly:c,registry:l,formContext:b,autofocus:u,rawErrors:y})}class k extends e.Component{constructor(e){super(e),this.onOptionChange=e=>{const a=parseInt(e,10),{formData:r,onChange:o,options:i,registry:n}=this.props,{schemaUtils:l}=n,s=l.retrieveSchema(i[a],r);let d;if("object"===t.guessType(r)&&("object"===s.type||s.properties)){d=Object.assign({},r);const e=i.slice();e.splice(a,1);for(const t of e)if(t.properties)for(const e in t.properties)e in d&&S.default(d,e)}o(l.getDefaultFormState(i[a],d),void 0,this.getFieldId()),this.setState({selectedOption:parseInt(e,10)})};const{formData:a,options:r}=this.props;this.state={selectedOption:this.getMatchingOption(0,a,r)}}componentDidUpdate(e,a){const{formData:r,options:o,idSchema:i}=this.props,{selectedOption:n}=this.state;if(!t.deepEquals(r,e.formData)&&i.$id===e.idSchema.$id){const e=this.getMatchingOption(n,r,o);if(!a||e===n)return;this.setState({selectedOption:e})}}getMatchingOption(e,t,a){const{schemaUtils:r}=this.props.registry,o=r.getMatchingOption(t,a);return 0!==o?o:e||0}getFieldId(){const{idSchema:e,schema:t}=this.props;return`${e.$id}${t.oneOf?"__oneof_select":"__anyof_select"}`}render(){const{name:e,baseType:a,disabled:r=!1,readonly:o=!1,hideError:i=!1,errorSchema:n={},formData:l,formContext:s,idPrefix:d,idSeparator:c,idSchema:u,onBlur:p,onChange:h,onFocus:f,options:g,registry:y,uiSchema:S}=this.props,{widgets:E,fields:b}=y,{SchemaField:v}=b,{selectedOption:C}=this.state,{widget:F="select",...D}=t.getUiOptions(S),x=t.getWidget({type:"number"},F,E),k=g[C]||null;let T;k&&(T=k.type?k:Object.assign({},k,{type:a}));const N=g.map(((e,t)=>({label:e.title||`Option ${t+1}`,value:t})));return m.default.createElement("div",{className:"panel panel-default panel-body"},m.default.createElement("div",{className:"form-group"},m.default.createElement(x,{id:this.getFieldId(),schema:{type:"number",default:0},onChange:this.onOptionChange,onBlur:p,onFocus:f,value:C,options:{enumOptions:N},registry:y,formContext:s,...D,label:""})),null!==k&&m.default.createElement(v,{name:e,schema:T,uiSchema:S,errorSchema:n,idSchema:u,idPrefix:d,idSeparator:c,formData:l,formContext:s,onChange:h,onBlur:p,onFocus:f,registry:y,disabled:r,readonly:o,hideError:i}))}}const T=/\.([0-9]*0)*$/,N=/[0.]0*$/;function A(a){const{registry:r,onChange:o,formData:i,value:n}=a,[l,s]=e.useState(n),{StringField:d}=r.fields;let c=i;const u=e.useCallback((e=>{s(e),"."===`${e}`.charAt(0)&&(e=`0${e}`);const a="string"==typeof e&&e.match(T)?t.asNumber(e.replace(N,"")):t.asNumber(e);o(a)}),[o]);if("string"==typeof l&&"number"==typeof c){const e=new RegExp(`${c}`.replace(".","\\.")+"\\.?0*$");l.match(e)&&(c=l)}return m.default.createElement(d,{...a,formData:c,onChange:u})}class w extends e.Component{constructor(){var e;super(...arguments),e=this,this.state={wasPropertyKeyModified:!1,additionalProperties:{}},this.onPropertyChange=function(t,a){return void 0===a&&(a=!1),(r,o,i)=>{const{formData:n,onChange:l,errorSchema:s}=e.props;void 0===r&&a&&(r=""),l({...n,[t]:r},s&&s&&{...s,[t]:o},i)}},this.onDropPropertyClick=e=>t=>{t.preventDefault();const{onChange:a,formData:r}=this.props,o={...r};S.default(o,e),a(o)},this.getAvailableKey=(e,a)=>{const{uiSchema:r}=this.props,{duplicateKeySuffixSeparator:o="-"}=t.getUiOptions(r);let i=0,n=e;for(;n in a;)n=`${e}${o}${++i}`;return n},this.onKeyChange=e=>(t,a)=>{if(e===t)return;const{formData:r,onChange:o,errorSchema:i}=this.props;t=this.getAvailableKey(t,r);const n={...r},l={[e]:t},s=Object.keys(n).map((e=>({[l[e]||e]:n[e]}))),d=Object.assign({},...s);this.setState({wasPropertyKeyModified:!0}),o(d,i&&i&&{...i,[t]:a})},this.handleAddClick=e=>()=>{if(!e.additionalProperties)return;const{formData:a,onChange:r,registry:o}=this.props,i={...a};let n;if(g.default(e.additionalProperties)&&(n=e.additionalProperties.type,t.REF_KEY in e.additionalProperties)){const{schemaUtils:r}=o;n=r.retrieveSchema({$ref:e.additionalProperties[t.REF_KEY]},a).type}const l=this.getAvailableKey("newKey",i);y.default(i,l,this.getDefaultValue(n)),r(i)}}isRequired(e){const{schema:t}=this.props;return Array.isArray(t.required)&&-1!==t.required.indexOf(e)}getDefaultValue(e){switch(e){case"string":default:return"New Value";case"array":return[];case"boolean":return!1;case"null":return null;case"number":return 0;case"object":return{}}}render(){const{schema:e,uiSchema:a={},formData:r,errorSchema:o,idSchema:i,name:n,required:l=!1,disabled:s=!1,readonly:d=!1,hideError:c,idPrefix:u,idSeparator:h,onBlur:f,onFocus:g,registry:y}=this.props,{fields:S,formContext:b,schemaUtils:v}=y,{SchemaField:C}=S,F=v.retrieveSchema(e,r),D=t.getUiOptions(a),{properties:x={}}=F,k=void 0===F.title?n:F.title,T=D.description||F.description;let N;try{const e=Object.keys(x);N=t.orderProperties(e,D.order)}catch(e){return m.default.createElement("div",null,m.default.createElement("p",{className:"config-error",style:{color:"red"}},"Invalid ",n||"root"," object field configuration:",m.default.createElement("em",null,e.message),"."),m.default.createElement("pre",null,JSON.stringify(F)))}const A=t.getTemplate("ObjectFieldTemplate",y,D),w={title:D.title||k,description:T,properties:N.map((e=>{const n=E.default(F,[t.PROPERTIES_KEY,e,t.ADDITIONAL_PROPERTY_FLAG]),S=n?a.additionalProperties:a[e],v="hidden"===t.getUiOptions(S).widget,D=p.default(i,[e],{});return{content:m.default.createElement(C,{key:e,name:e,required:this.isRequired(e),schema:p.default(F,[t.PROPERTIES_KEY,e],{}),uiSchema:S,errorSchema:p.default(o,e),idSchema:D,idPrefix:u,idSeparator:h,formData:p.default(r,e),formContext:b,wasPropertyKeyModified:this.state.wasPropertyKeyModified,onKeyChange:this.onKeyChange(e),onChange:this.onPropertyChange(e,n),onBlur:f,onFocus:g,registry:y,disabled:s,readonly:d,hideError:c,onDropPropertyClick:this.onDropPropertyClick}),name:e,readonly:d,disabled:s,required:l,hidden:v}})),readonly:d,disabled:s,required:l,idSchema:i,uiSchema:a,schema:F,formData:r,formContext:b,registry:y};return m.default.createElement(A,{...w,onAddClick:this.handleAddClick})}}const O={array:"ArrayField",boolean:"BooleanField",integer:"NumberField",number:"NumberField",object:"ObjectField",string:"StringField",null:"NullField"};function B(e){const{schema:a,idSchema:r,uiSchema:o,formData:i,errorSchema:n,idPrefix:l,idSeparator:s,name:d,onChange:c,onKeyChange:u,onDropPropertyClick:p,required:h,registry:f,wasPropertyKeyModified:y=!1}=e,{formContext:S,schemaUtils:E}=f,v=t.getUiOptions(o),C=t.getTemplate("FieldTemplate",f,v),F=t.getTemplate("DescriptionFieldTemplate",f,v),D=t.getTemplate("FieldHelpTemplate",f,v),x=t.getTemplate("FieldErrorTemplate",f,v),k=E.retrieveSchema(a,i),T=r[t.ID_KEY],N=t.mergeObjects(E.toIdSchema(k,T,i,l,s),r),A=m.default.useCallback(((e,t,a)=>c(e,t,a||T)),[T,c]),w=function(e,a,r,o){const i=a.field,{fields:n}=o;if("function"==typeof i)return i;if("string"==typeof i&&i in n)return n[i];const l=t.getSchemaType(e),s=Array.isArray(l)?l[0]:l||"",d=O[s];return d||!e.anyOf&&!e.oneOf?d in n?n[d]:()=>{const i=t.getTemplate("UnsupportedFieldTemplate",o,a);return m.default.createElement(i,{schema:e,idSchema:r,reason:`Unknown field type ${e.type}`,registry:o})}:()=>null}(k,v,N,f),B=Boolean(e.disabled||v.disabled),I=Boolean(e.readonly||v.readonly||e.schema.readOnly||k.readOnly),U=v.hideError,$=void 0===U?e.hideError:Boolean(U),q=Boolean(e.autofocus||v.autofocus);if(0===Object.keys(k).length)return null;const P=E.getDisplayLabel(k,o),{__errors:_,...R}=n||{},V=b.default(o,["ui:classNames","classNames"]);"ui:options"in V&&(V["ui:options"]=b.default(V["ui:options"],["classNames"]));const M=m.default.createElement(w,{...e,onChange:A,idSchema:N,schema:k,uiSchema:V,disabled:B,readonly:I,hideError:$,autofocus:q,errorSchema:R,formContext:S,rawErrors:_}),K=N[t.ID_KEY];let W;W=y||t.ADDITIONAL_PROPERTY_FLAG in k?d:v.title||e.schema.title||k.title||d;const j=v.description||e.schema.description||k.description||"",L=v.help,Y="hidden"===v.widget,z=["form-group","field",`field-${k.type}`];!$&&_&&_.length>0&&z.push("field-error has-error has-danger"),null!=o&&o.classNames&&z.push(o.classNames),v.classNames&&z.push(v.classNames);const H=m.default.createElement(D,{help:L,idSchema:N,schema:k,uiSchema:o,hasErrors:!$&&_&&_.length>0,registry:f}),J=$?void 0:m.default.createElement(x,{errors:_,errorSchema:n,idSchema:N,schema:k,uiSchema:o,registry:f}),G={description:m.default.createElement(F,{id:`${K}__description`,description:j,schema:k,uiSchema:o,registry:f}),rawDescription:j,help:H,rawHelp:"string"==typeof L?L:void 0,errors:J,rawErrors:$?void 0:_,id:K,label:W,hidden:Y,onChange:c,onKeyChange:u,onDropPropertyClick:p,required:h,disabled:B,readonly:I,hideError:$,displayLabel:P,classNames:z.join(" ").trim(),formContext:S,formData:i,schema:k,uiSchema:o,registry:f},Q=f.fields.AnyOfField,X=f.fields.OneOfField;return m.default.createElement(C,{...G},m.default.createElement(m.default.Fragment,null,M,k.anyOf&&!(null!=o&&o["ui:field"])&&!E.isSelect(k)&&m.default.createElement(Q,{name:d,disabled:B,readonly:I,hideError:$,errorSchema:n,formData:i,formContext:S,idPrefix:l,idSchema:N,idSeparator:s,onBlur:e.onBlur,onChange:e.onChange,onFocus:e.onFocus,options:k.anyOf.map((e=>E.retrieveSchema(g.default(e)?e:{},i))),baseType:k.type,registry:f,schema:k,uiSchema:o}),k.oneOf&&!(null!=o&&o["ui:field"])&&!E.isSelect(k)&&m.default.createElement(X,{name:d,disabled:B,readonly:I,hideError:$,errorSchema:n,formData:i,formContext:S,idPrefix:l,idSchema:N,idSeparator:s,onBlur:e.onBlur,onChange:e.onChange,onFocus:e.onFocus,options:k.oneOf.map((e=>E.retrieveSchema(g.default(e)?e:{},i))),baseType:k.type,registry:f,schema:k,uiSchema:o})))}class I extends m.default.Component{shouldComponentUpdate(e){return!t.deepEquals(this.props,e)}render(){return m.default.createElement(B,{...this.props})}}function U(e){const{schema:a,name:r,uiSchema:o,idSchema:i,formData:n,required:l,disabled:s=!1,readonly:d=!1,autofocus:c=!1,onChange:u,onBlur:p,onFocus:h,registry:f,rawErrors:g}=e,{title:y,format:S}=a,{widgets:E,formContext:b,schemaUtils:v}=f,C=v.isSelect(a)?t.optionsList(a):void 0;let F=C?"select":"text";S&&t.hasWidget(a,S,E)&&(F=S);const{widget:D=F,placeholder:x="",...k}=t.getUiOptions(o),T=t.getWidget(a,D,E);return m.default.createElement(T,{options:{...k,enumOptions:C},schema:a,uiSchema:o,id:i&&i.$id,label:void 0===y?r:y,value:n,onChange:u,onBlur:p,onFocus:h,required:l,disabled:s,readonly:d,formContext:b,autofocus:c,registry:f,placeholder:x,rawErrors:g})}function $(t){const{formData:a,onChange:r}=t;return e.useEffect((()=>{void 0===a&&r(null)}),[a,r]),null}function q(e){const{idSchema:a,description:r,registry:o,schema:i,uiSchema:n}=e,l=t.getUiOptions(n),{label:s=!0}=l;if(!r||!s)return null;const d=t.getTemplate("DescriptionFieldTemplate",o,l);return m.default.createElement(d,{id:`${a.$id}__description`,description:r,schema:i,uiSchema:n,registry:o})}function P(e){const{children:t,className:a,disabled:r,hasToolbar:o,hasMoveDown:i,hasMoveUp:n,hasRemove:l,index:s,onDropIndexClick:d,onReorderClick:c,readonly:u,registry:p,uiSchema:h}=e,{MoveDownButton:f,MoveUpButton:g,RemoveButton:y}=p.templates.ButtonTemplates,S={flex:1,paddingLeft:6,paddingRight:6,fontWeight:"bold"};return m.default.createElement("div",{className:a},m.default.createElement("div",{className:o?"col-xs-9":"col-xs-12"},t),o&&m.default.createElement("div",{className:"col-xs-3 array-item-toolbox"},m.default.createElement("div",{className:"btn-group",style:{display:"flex",justifyContent:"space-around"}},(n||i)&&m.default.createElement(g,{style:S,disabled:r||u||!n,onClick:c(s,s-1),uiSchema:h}),(n||i)&&m.default.createElement(f,{style:S,disabled:r||u||!i,onClick:c(s,s+1),uiSchema:h}),l&&m.default.createElement(y,{style:S,disabled:r||u,onClick:d(s),uiSchema:h}))))}function _(e){const{canAdd:a,className:r,disabled:o,idSchema:i,uiSchema:n,items:l,onAddClick:s,readonly:d,registry:c,required:u,schema:p,title:h}=e,f=t.getUiOptions(n),g=t.getTemplate("ArrayFieldDescriptionTemplate",c,f),y=t.getTemplate("ArrayFieldItemTemplate",c,f),S=t.getTemplate("ArrayFieldTitleTemplate",c,f),{ButtonTemplates:{AddButton:E}}=c.templates;return m.default.createElement("fieldset",{className:r,id:i.$id},m.default.createElement(S,{idSchema:i,title:f.title||h,required:u,schema:p,uiSchema:n,registry:c}),m.default.createElement(g,{idSchema:i,description:f.description||p.description,schema:p,uiSchema:n,registry:c}),m.default.createElement("div",{className:"row array-item-list"},l&&l.map((e=>{let{key:t,...a}=e;return m.default.createElement(y,{key:t,...a})}))),a&&m.default.createElement(E,{className:"array-item-add",onClick:s,disabled:o||d,uiSchema:n}))}function R(e){const{idSchema:a,title:r,schema:o,uiSchema:i,required:n,registry:l}=e,s=t.getUiOptions(i),{label:d=!0}=s;if(!r||!d)return null;const c=t.getTemplate("TitleFieldTemplate",l,s);return m.default.createElement(c,{id:`${a.$id}__title`,title:r,required:n,schema:o,uiSchema:i,registry:l})}function V(a){const{id:r,value:o,readonly:i,disabled:n,autofocus:l,onBlur:s,onFocus:d,onChange:c,options:u,schema:p,uiSchema:h,formContext:f,registry:g,rawErrors:y,type:S,...E}=a;if(!r)throw console.log("No id for",a),new Error(`no id for props ${JSON.stringify(a)}`);const b={...E,...t.getInputProps(p,S,u)};let v;v="number"===b.type||"integer"===b.type?o||0===o?o:"":null==o?"":o;const C=e.useCallback((e=>{let{target:{value:t}}=e;return c(""===t?u.emptyValue:t)}),[c,u]),F=e.useCallback((e=>{let{target:{value:t}}=e;return s(r,t)}),[s,r]),D=e.useCallback((e=>{let{target:{value:t}}=e;return d(r,t)}),[d,r]);return m.default.createElement(m.default.Fragment,null,m.default.createElement("input",{id:r,name:r,className:"form-control",readOnly:i,disabled:n,autoFocus:l,value:v,...b,list:p.examples?`examples_${r}`:void 0,onChange:C,onBlur:F,onFocus:D}),Array.isArray(p.examples)&&m.default.createElement("datalist",{key:`datalist_${r}`,id:`examples_${r}`},[...new Set(p.examples.concat(p.default?[p.default]:[]))].map((e=>m.default.createElement("option",{key:e,value:e})))))}function M(e){let{uiSchema:a}=e;const{submitText:r,norender:o,props:i={}}=t.getSubmitButtonOptions(a);return o?null:m.default.createElement("div",null,m.default.createElement("button",{type:"submit",...i,className:`btn btn-info ${i.className}`},r))}function K(e){const{iconType:t="default",icon:a,className:r,uiSchema:o,...i}=e;return m.default.createElement("button",{type:"button",className:`btn btn-${t} ${r}`,...i},m.default.createElement("i",{className:`glyphicon glyphicon-${a}`}))}function W(e){return m.default.createElement(K,{title:"Move down",className:"array-item-move-down",...e,icon:"arrow-down"})}function j(e){return m.default.createElement(K,{title:"Move up",className:"array-item-move-up",...e,icon:"arrow-up"})}function L(e){return m.default.createElement(K,{title:"Remove",className:"array-item-remove",...e,iconType:"danger",icon:"remove"})}function Y(e){let{className:t,onClick:a,disabled:r}=e;return m.default.createElement("div",{className:"row"},m.default.createElement("p",{className:`col-xs-3 col-xs-offset-9 text-right ${t}`},m.default.createElement(K,{iconType:"info",icon:"plus",className:"btn-add col-xs-12",title:"Add",onClick:a,disabled:r})))}function z(e){const{id:t,description:a}=e;return a?m.default.createElement("string"==typeof a?"p":"div",{id:t,className:"field-description"},a):null}function H(e){let{errors:t}=e;return m.default.createElement("div",{className:"panel panel-danger errors"},m.default.createElement("div",{className:"panel-heading"},m.default.createElement("h3",{className:"panel-title"},"Errors")),m.default.createElement("ul",{className:"list-group"},t.map(((e,t)=>m.default.createElement("li",{key:t,className:"list-group-item text-danger"},e.stack)))))}function J(e){const{label:t,required:a,id:r}=e;return t?m.default.createElement("label",{className:"control-label",htmlFor:r},t,a&&m.default.createElement("span",{className:"required"},"*")):null}function G(e){const{id:a,label:r,children:o,errors:i,help:n,description:l,hidden:s,required:d,displayLabel:c,registry:u,uiSchema:p}=e,h=t.getUiOptions(p),f=t.getTemplate("WrapIfAdditionalTemplate",u,h);return s?m.default.createElement("div",{className:"hidden"},o):m.default.createElement(f,{...e},c&&m.default.createElement(J,{label:r,required:d,id:a}),c&&l?l:null,o,i,n)}function Q(e){const{errors:t=[],idSchema:a}=e;return 0===t.length?null:m.default.createElement("div",null,m.default.createElement("ul",{id:`${a.$id}__error`,className:"error-detail bs-callout bs-callout-info"},t.filter((e=>!!e)).map(((e,t)=>m.default.createElement("li",{className:"text-danger",key:t},e)))))}function X(e){const{idSchema:t,help:a}=e;return a?m.default.createElement("string"==typeof a?"p":"div",{id:`${t.$id}__help`,className:"help-block"},a):null}function Z(e){const{description:a,disabled:r,formData:o,idSchema:i,onAddClick:n,properties:l,readonly:s,registry:d,required:c,schema:u,title:p,uiSchema:h}=e,f=t.getUiOptions(h),g=t.getTemplate("TitleFieldTemplate",d,f),y=t.getTemplate("DescriptionFieldTemplate",d,f),{ButtonTemplates:{AddButton:S}}=d.templates;return m.default.createElement("fieldset",{id:i.$id},(f.title||p)&&m.default.createElement(g,{id:`${i.$id}__title`,title:f.title||p,required:c,schema:u,uiSchema:h,registry:d}),(f.description||a)&&m.default.createElement(y,{id:`${i.$id}__description`,description:f.description||a,schema:u,uiSchema:h,registry:d}),l.map((e=>e.content)),t.canExpand(u,h,o)&&m.default.createElement(S,{className:"object-property-expand",onClick:n(u),disabled:r||s,uiSchema:h}))}function ee(e){const{id:t,title:a,required:r}=e;return m.default.createElement("legend",{id:t},a,r&&m.default.createElement("span",{className:"required"},"*"))}function te(e){const{schema:t,idSchema:a,reason:r}=e;return m.default.createElement("div",{className:"unsupported-field"},m.default.createElement("p",null,"Unsupported field schema",a&&a.$id&&m.default.createElement("span",null," for"," field ",m.default.createElement("code",null,a.$id)),r&&m.default.createElement("em",null,": ",r),"."),t&&m.default.createElement("pre",null,JSON.stringify(t,null,2)))}function ae(e){const{id:a,classNames:r,disabled:o,label:i,onKeyChange:n,onDropPropertyClick:l,readonly:s,required:d,schema:c,children:u,uiSchema:p,registry:h}=e,{RemoveButton:f}=h.templates.ButtonTemplates;return m.default.createElement("div",{className:r},t.ADDITIONAL_PROPERTY_FLAG in c?m.default.createElement("div",{className:"row"},m.default.createElement("div",{className:"col-xs-5 form-additional"},m.default.createElement("div",{className:"form-group"},m.default.createElement(J,{label:`${i} Key`,required:d,id:`${a}-key`}),m.default.createElement("input",{className:"form-control",type:"text",id:`${a}-key`,onBlur:e=>n(e.target.value),defaultValue:i}))),m.default.createElement("div",{className:"form-additional form-group col-xs-5"},u),m.default.createElement("div",{className:"col-xs-2"},m.default.createElement(f,{className:"array-item-remove btn-block",style:{border:"0"},disabled:o||s,onClick:l(i),uiSchema:p}))):u)}function re(e,a){const r=[];for(let o=e;o<=a;o++)r.push({value:o,label:t.pad(o,2)});return r}function oe(e){let{type:t,range:a,value:r,select:o,rootId:i,disabled:n,readonly:l,autofocus:s,registry:d,onBlur:c,onFocus:u}=e;const p=i+"_"+t,{SelectWidget:h}=d.widgets;return m.default.createElement(h,{schema:{type:"integer"},id:p,className:"form-control",options:{enumOptions:re(a[0],a[1])},placeholder:t,value:r,disabled:n,readonly:l,autofocus:s,onChange:e=>o(t,e),onBlur:c,onFocus:u,registry:d,label:""})}function ie(a){let{time:r=!1,disabled:o=!1,readonly:i=!1,autofocus:n=!1,options:l,id:s,registry:d,onBlur:c,onFocus:u,onChange:p,value:h}=a;const[f,g]=e.useReducer(((e,t)=>({...e,...t})),t.parseDateString(h,r));e.useEffect((()=>{h&&h!==t.toDateString(f,r)&&g(t.parseDateString(h,r))}),[h,f,r]),e.useEffect((()=>{(function(e){return Object.values(e).every((e=>-1!==e))})(f)&&p(t.toDateString(f,r))}),[f,r,p]);const y=e.useCallback(((e,t)=>{g({[e]:t})}),[]),S=e.useCallback((e=>{if(e.preventDefault(),o||i)return;const a=t.parseDateString((new Date).toJSON(),r);g(a)}),[o,i,r]),E=e.useCallback((e=>{e.preventDefault(),o||i||(g(t.parseDateString("",r)),p(void 0))}),[o,i,r,p]);return m.default.createElement("ul",{className:"list-inline"},function(e,t,a){void 0===a&&(a=[1900,(new Date).getFullYear()+2]);const{year:r,month:o,day:i,hour:n,minute:l,second:s}=e,d=[{type:"year",range:a,value:r},{type:"month",range:[1,12],value:o},{type:"day",range:[1,31],value:i}];return t&&d.push({type:"hour",range:[0,23],value:n},{type:"minute",range:[0,59],value:l},{type:"second",range:[0,59],value:s}),d}(f,r,l.yearsRange).map(((e,t)=>m.default.createElement("li",{key:t},m.default.createElement(oe,{rootId:s,select:y,...e,disabled:o,readonly:i,registry:d,onBlur:c,onFocus:u,autofocus:n&&0===t})))),("undefined"===l.hideNowButton||!l.hideNowButton)&&m.default.createElement("li",null,m.default.createElement("a",{href:"#",className:"btn btn-info btn-now",onClick:S},"Now")),("undefined"===l.hideClearButton||!l.hideClearButton)&&m.default.createElement("li",null,m.default.createElement("a",{href:"#",className:"btn btn-warning btn-clear",onClick:E},"Clear")))}function ne(e){let{time:t=!0,...a}=e;const{AltDateWidget:r}=a.registry.widgets;return m.default.createElement(r,{time:t,...a})}function le(a){let{schema:r,uiSchema:o,options:i,id:n,value:l,disabled:s,readonly:d,label:c,autofocus:u=!1,onBlur:p,onFocus:h,onChange:f,registry:g}=a;const y=t.getTemplate("DescriptionFieldTemplate",g,i),S=t.schemaRequiresTrueValue(r),E=e.useCallback((e=>f(e.target.checked)),[f]),b=e.useCallback((e=>p(n,e.target.checked)),[p,n]),v=e.useCallback((e=>h(n,e.target.checked)),[h,n]);return m.default.createElement("div",{className:"checkbox "+(s||d?"disabled":"")},r.description&&m.default.createElement(y,{id:n+"__description",description:r.description,schema:r,uiSchema:o,registry:g}),m.default.createElement("label",null,m.default.createElement("input",{type:"checkbox",id:n,name:n,checked:void 0!==l&&l,required:S,disabled:s||d,autoFocus:u,onChange:E,onBlur:b,onFocus:v}),m.default.createElement("span",null,c)))}function se(e){let{id:t,disabled:a,options:{inline:r=!1,enumOptions:o,enumDisabled:i},value:n,autofocus:l=!1,readonly:s,onChange:d}=e;return m.default.createElement("div",{className:"checkboxes",id:t},Array.isArray(o)&&o.map(((e,c)=>{const u=-1!==n.indexOf(e.value),p=Array.isArray(i)&&-1!=i.indexOf(e.value),h=a||p||s?"disabled":"",f=m.default.createElement("span",null,m.default.createElement("input",{type:"checkbox",id:`${t}-${e.value}`,name:t,checked:u,disabled:a||p||s,autoFocus:l&&0===c,onChange:t=>{const a=o.map((e=>{let{value:t}=e;return t}));d(t.target.checked?function(e,t,a){const r=a.indexOf(e);return t.slice(0,r).concat(e,t.slice(r)).sort(((e,t)=>Number(a.indexOf(e)>a.indexOf(t))))}(e.value,n,a):function(e,t){return t.filter((t=>t!==e))}(e.value,n))}}),m.default.createElement("span",null,e.label));return r?m.default.createElement("label",{key:e.value,className:`checkbox-inline ${h}`},f):m.default.createElement("div",{key:e.value,className:`checkbox ${h}`},m.default.createElement("label",null,f))})))}function de(e){const{disabled:a,readonly:r,options:o,registry:i}=e,n=t.getTemplate("BaseInputTemplate",i,o);return m.default.createElement(n,{type:"color",...e,disabled:a||r})}function ce(a){const{onChange:r,options:o,registry:i}=a,n=t.getTemplate("BaseInputTemplate",i,o),l=e.useCallback((e=>r(e||void 0)),[r]);return m.default.createElement(n,{type:"date",...a,onChange:l})}function ue(e){const{onChange:a,value:r,options:o,registry:i}=e,n=t.getTemplate("BaseInputTemplate",i,o);return m.default.createElement(n,{type:"datetime-local",...e,value:t.utcToLocal(r),onChange:e=>a(t.localToUTC(e))})}function me(e){const{options:a,registry:r}=e,o=t.getTemplate("BaseInputTemplate",r,a);return m.default.createElement(o,{type:"email",...e})}function pe(e,t){return null===e?null:e.replace(";base64",`;name=${encodeURIComponent(t)};base64`)}function he(e){const{name:t,size:a,type:r}=e;return new Promise(((o,i)=>{const n=new window.FileReader;n.onerror=i,n.onload=e=>{var i;"string"==typeof(null===(i=e.target)||void 0===i?void 0:i.result)?o({dataURL:pe(e.target.result,t),name:t,size:a,type:r}):o({dataURL:null,name:t,size:a,type:r})},n.readAsDataURL(e)}))}function fe(e){let{filesInfo:t}=e;return 0===t.length?null:m.default.createElement("ul",{className:"file-info"},t.map(((e,t)=>{const{name:a,size:r,type:o}=e;return m.default.createElement("li",{key:t},m.default.createElement("strong",null,a)," (",o,", ",r," bytes)")})))}function ge(e){return e.filter((e=>void 0!==e)).map((e=>{const{blob:a,name:r}=t.dataURItoBlob(e);return{name:r,size:a.size,type:a.type}}))}function ye(t){let{multiple:a,id:r,readonly:o,disabled:i,onChange:n,value:l,autofocus:s=!1,options:d}=t;const c=e.useMemo((()=>Array.isArray(l)?ge(l):ge([l])),[l]),[u,p]=e.useState(c),h=e.useCallback((e=>{var t;e.target.files&&(t=e.target.files,Promise.all(Array.from(t).map(he))).then((e=>{p(e);const t=e.map((e=>e.dataURL));n(a?t:t[0])}))}),[a,n]);return m.default.createElement("div",null,m.default.createElement("p",null,m.default.createElement("input",{id:r,name:r,type:"file",disabled:o||i,onChange:h,defaultValue:"",autoFocus:s,multiple:a,accept:d.accept?String(d.accept):void 0})),m.default.createElement(fe,{filesInfo:u}))}function Se(e){let{id:t,value:a}=e;return m.default.createElement("input",{type:"hidden",id:t,name:t,value:void 0===a?"":a})}function Ee(e){const{options:a,registry:r}=e,o=t.getTemplate("BaseInputTemplate",r,a);return m.default.createElement(o,{type:"password",...e})}function be(t){let{options:a,value:r,required:o,disabled:i,readonly:n,autofocus:l=!1,onBlur:s,onFocus:d,onChange:c,id:u}=t;const p=Math.random().toString(),{enumOptions:h,enumDisabled:f,inline:g}=a,y=e.useCallback((e=>s(u,e.target.value)),[s,u]),S=e.useCallback((e=>d(u,e.target.value)),[d,u]);return m.default.createElement("div",{className:"field-radio-group",id:u},Array.isArray(h)&&h.map(((e,t)=>{const a=e.value===r,s=Array.isArray(f)&&-1!=f.indexOf(e.value),d=i||s||n?"disabled":"",h=m.default.createElement("span",null,m.default.createElement("input",{type:"radio",id:`${u}-${e.value}`,checked:a,name:p,required:o,value:e.value,disabled:i||s||n,autoFocus:l&&0===t,onChange:()=>c(e.value),onBlur:y,onFocus:S}),m.default.createElement("span",null,e.label));return g?m.default.createElement("label",{key:e.value,className:`radio-inline ${d}`},h):m.default.createElement("div",{key:e.value,className:`radio ${d}`},m.default.createElement("label",null,h))})))}function ve(e){const{value:t,registry:{templates:{BaseInputTemplate:a}}}=e;return m.default.createElement("div",{className:"field-range-wrapper"},m.default.createElement(a,{type:"range",...e}),m.default.createElement("span",{className:"range-view"},t))}function Ce(e,t){return t?Array.from(e.target.options).slice().filter((e=>e.selected)).map((e=>e.value)):e.target.value}function Fe(a){let{schema:r,id:o,options:i,value:n,required:l,disabled:s,readonly:d,multiple:c=!1,autofocus:u=!1,onChange:p,onBlur:h,onFocus:f,placeholder:g}=a;const{enumOptions:y,enumDisabled:S}=i,E=c?[]:"",b=e.useCallback((e=>{const a=Ce(e,c);return f(o,t.processSelectValue(r,a,i))}),[f,o,r,c,i]),v=e.useCallback((e=>{const a=Ce(e,c);return h(o,t.processSelectValue(r,a,i))}),[h,o,r,c,i]),C=e.useCallback((e=>{const a=Ce(e,c);return p(t.processSelectValue(r,a,i))}),[p,r,c,i]);return m.default.createElement("select",{id:o,name:o,multiple:c,className:"form-control",value:void 0===n?E:n,required:l,disabled:s||d,autoFocus:u,onBlur:v,onFocus:b,onChange:C},!c&&void 0===r.default&&m.default.createElement("option",{value:""},g),Array.isArray(y)&&y.map(((e,t)=>{let{value:a,label:r}=e;const o=S&&-1!=S.indexOf(a);return m.default.createElement("option",{key:t,value:a,disabled:o},r)})))}function De(t){let{id:a,options:r={},placeholder:o,value:i,required:n,disabled:l,readonly:s,autofocus:d=!1,onChange:c,onBlur:u,onFocus:p}=t;const h=e.useCallback((e=>{let{target:{value:t}}=e;return c(""===t?r.emptyValue:t)}),[c,r.emptyValue]),f=e.useCallback((e=>{let{target:{value:t}}=e;return u(a,t)}),[u,a]),g=e.useCallback((e=>{let{target:{value:t}}=e;return p(a,t)}),[a,p]);return m.default.createElement("textarea",{id:a,name:a,className:"form-control",value:i||"",placeholder:o,required:n,disabled:l,readOnly:s,autoFocus:d,rows:r.rows,onBlur:f,onFocus:g,onChange:h})}function xe(e){const{options:a,registry:r}=e,o=t.getTemplate("BaseInputTemplate",r,a);return m.default.createElement(o,{...e})}function ke(e){const{options:a,registry:r}=e,o=t.getTemplate("BaseInputTemplate",r,a);return m.default.createElement(o,{type:"url",...e})}function Te(e){const{options:a,registry:r}=e,o=t.getTemplate("BaseInputTemplate",r,a);return m.default.createElement(o,{type:"number",...e})}function Ne(){return{fields:{AnyOfField:k,ArrayField:D,BooleanField:x,NumberField:A,ObjectField:w,OneOfField:k,SchemaField:I,StringField:U,NullField:$},templates:{ArrayFieldDescriptionTemplate:q,ArrayFieldItemTemplate:P,ArrayFieldTemplate:_,ArrayFieldTitleTemplate:R,ButtonTemplates:{SubmitButton:M,AddButton:Y,MoveDownButton:W,MoveUpButton:j,RemoveButton:L},BaseInputTemplate:V,DescriptionFieldTemplate:z,ErrorListTemplate:H,FieldTemplate:G,FieldErrorTemplate:Q,FieldHelpTemplate:X,ObjectFieldTemplate:Z,TitleFieldTemplate:ee,UnsupportedFieldTemplate:te,WrapIfAdditionalTemplate:ae},widgets:{PasswordWidget:Ee,RadioWidget:be,UpDownWidget:Te,RangeWidget:ve,SelectWidget:Fe,TextWidget:xe,DateWidget:ce,DateTimeWidget:ue,AltDateWidget:ie,AltDateTimeWidget:ne,EmailWidget:me,URLWidget:ke,TextareaWidget:De,HiddenWidget:Se,ColorWidget:de,FileWidget:ye,CheckboxWidget:le,CheckboxesWidget:se},rootSchema:{},formContext:{}}}De.defaultProps={autofocus:!1,options:{}};class Ae extends e.Component{constructor(e){if(super(e),this.formElement=void 0,this.getUsedFormData=(e,t)=>{if(0===t.length&&"object"!=typeof e)return e;const a=f.default(e,t);return Array.isArray(e)?Object.keys(a).map((e=>a[e])):a},this.getFieldNames=(e,a)=>{const r=function(e,o,i){return void 0===o&&(o=[]),void 0===i&&(i=[[]]),Object.keys(e).forEach((n=>{if("object"==typeof e[n]){const a=i.map((e=>[...e,n]));e[n][t.RJSF_ADDITONAL_PROPERTIES_FLAG]&&""!==e[n][t.NAME_KEY]?o.push(e[n][t.NAME_KEY]):r(e[n],o,a)}else n===t.NAME_KEY&&""!==e[n]&&i.forEach((e=>{const t=p.default(a,e);("object"!=typeof t||h.default(t))&&o.push(e)}))})),o};return r(e)},this.onChange=(e,a,r)=>{const{extraErrors:o,omitExtraData:i,liveOmit:n,noValidate:l,liveValidate:s,onChange:d}=this.props,{schemaUtils:c,schema:u}=this.state;(t.isObject(e)||Array.isArray(e))&&(e=this.getStateFromProps(this.props,e).formData);const m=!l&&s;let p={formData:e,schema:u},h=e;if(!0===i&&!0===n){const t=c.retrieveSchema(u,e),a=c.toPathSchema(t,"",e),r=this.getFieldNames(a,e);h=this.getUsedFormData(e,r),p={formData:h}}if(m){const e=this.validate(h);let t=e.errors,a=e.errorSchema;const r=t,i=a;if(o){const r=c.mergeValidationData(e,o);a=r.errorSchema,t=r.errors}p={formData:h,errors:t,errorSchema:a,schemaValidationErrors:r,schemaValidationErrorSchema:i}}else if(!l&&a){const e=o?t.mergeObjects(a,o,!0):a;p={formData:h,errorSchema:e,errors:c.getValidator().toErrorList(e)}}this.setState(p,(()=>d&&d({...this.state,...p},r)))},this.onBlur=(e,t)=>{const{onBlur:a}=this.props;a&&a(e,t)},this.onFocus=(e,t)=>{const{onFocus:a}=this.props;a&&a(e,t)},this.onSubmit=e=>{if(e.preventDefault(),e.target!==e.currentTarget)return;e.persist();const{omitExtraData:t,extraErrors:a,noValidate:r,onSubmit:o}=this.props;let{formData:i}=this.state;const{schema:n,schemaUtils:l}=this.state;if(!0===t){const e=l.retrieveSchema(n,i),t=l.toPathSchema(e,"",i),a=this.getFieldNames(t,i);i=this.getUsedFormData(i,a)}if(r||this.validateForm()){const t=a||{},r=a?l.getValidator().toErrorList(a):[];this.setState({formData:i,errors:r,errorSchema:t,schemaValidationErrors:[],schemaValidationErrorSchema:{}},(()=>{o&&o({...this.state,formData:i,status:"submitted"},e)}))}},!e.validator)throw new Error("A validator is required for Form functionality to work");this.state=this.getStateFromProps(e,e.formData),this.props.onChange&&!t.deepEquals(this.state.formData,this.props.formData)&&this.props.onChange(this.state),this.formElement=m.default.createRef()}UNSAFE_componentWillReceiveProps(e){const a=this.getStateFromProps(e,e.formData);t.deepEquals(a.formData,e.formData)||t.deepEquals(a.formData,this.state.formData)||!e.onChange||e.onChange(a),this.setState(a)}getStateFromProps(e,a){const r=this.state||{},o="schema"in e?e.schema:this.props.schema,i=("uiSchema"in e?e.uiSchema:this.props.uiSchema)||{},n=void 0!==a,l=n&&!e.noValidate&&("liveValidate"in e?e.liveValidate:this.props.liveValidate),s=o;let d=r.schemaUtils;d&&!d.doesSchemaUtilsDiffer(e.validator,s)||(d=t.createSchemaUtils(e.validator,s));const c=d.getDefaultFormState(o,a),u=d.retrieveSchema(o,c);let m,p,h=r.schemaValidationErrors,f=r.schemaValidationErrorSchema;if(l){const e=this.validate(c,o,d);m=e.errors,p=e.errorSchema,h=m,f=p}else{const t=e.noValidate?{errors:[],errorSchema:{}}:e.liveValidate?{errors:r.errors||[],errorSchema:r.errorSchema||{}}:{errors:r.schemaValidationErrors||[],errorSchema:r.schemaValidationErrorSchema||{}};m=t.errors,p=t.errorSchema}if(e.extraErrors){const t=d.mergeValidationData({errorSchema:p,errors:m},e.extraErrors);p=t.errorSchema,m=t.errors}const g=d.toIdSchema(u,i["ui:rootFieldId"],c,e.idPrefix,e.idSeparator);return{schemaUtils:d,schema:o,uiSchema:i,idSchema:g,formData:c,edit:n,errors:m,errorSchema:p,schemaValidationErrors:h,schemaValidationErrorSchema:f}}shouldComponentUpdate(e,a){return t.shouldRender(this,e,a)}validate(e,t,a){void 0===t&&(t=this.props.schema);const r=a||this.state.schemaUtils,{customValidate:o,transformErrors:i}=this.props,n=r.retrieveSchema(t,e);return r.getValidator().validateFormData(e,n,o,i)}renderErrors(e){const{errors:a,errorSchema:r,schema:o,uiSchema:i}=this.state,{formContext:n}=this.props,l=t.getUiOptions(i),s=t.getTemplate("ErrorListTemplate",e,l);return a&&a.length?m.default.createElement(s,{errors:a,errorSchema:r||{},schema:o,uiSchema:i,formContext:n}):null}getRegistry(){var e;const{schemaUtils:t}=this.state,{fields:a,templates:r,widgets:o,formContext:i}=Ne();return{fields:{...a,...this.props.fields},templates:{...r,...this.props.templates,ButtonTemplates:{...r.ButtonTemplates,...null===(e=this.props.templates)||void 0===e?void 0:e.ButtonTemplates}},widgets:{...o,...this.props.widgets},rootSchema:this.props.schema,formContext:this.props.formContext||i,schemaUtils:t}}submit(){this.formElement.current&&(this.formElement.current.dispatchEvent(new CustomEvent("submit",{cancelable:!0})),this.formElement.current.requestSubmit())}validateForm(){const{extraErrors:e,onError:t}=this.props,{formData:a}=this.state,{schemaUtils:r}=this.state,o=this.validate(a);let i=o.errors,n=o.errorSchema;const l=i,s=n;if(i.length>0){if(e){const t=r.mergeValidationData(o,e);n=t.errorSchema,i=t.errors}return this.setState({errors:i,errorSchema:n,schemaValidationErrors:l,schemaValidationErrorSchema:s},(()=>{t?t(i):console.error("Form validation failed",i)})),!1}return!0}render(){const{children:e,id:t,idPrefix:a,idSeparator:r,className:o="",tagName:i,name:n,method:l,target:s,action:d,autoComplete:c,enctype:u,acceptcharset:p,noHtml5Validate:h=!1,disabled:f=!1,readonly:g=!1,formContext:y,showErrorList:S="top",_internalFormWrapper:E}=this.props,{schema:b,uiSchema:v,formData:C,errorSchema:F,idSchema:D}=this.state,x=this.getRegistry(),{SchemaField:k}=x.fields,{SubmitButton:T}=x.templates.ButtonTemplates;return m.default.createElement(E||i||"form",{className:o||"rjsf",id:t,name:n,method:l,target:s,action:d,autoComplete:c,encType:u,acceptCharset:p,noValidate:h,onSubmit:this.onSubmit,as:E?i:void 0,ref:this.formElement},"top"===S&&this.renderErrors(x),m.default.createElement(k,{name:"",schema:b,uiSchema:v,errorSchema:F,idSchema:D,idPrefix:a,idSeparator:r,formContext:y,formData:C,onChange:this.onChange,onBlur:this.onBlur,onFocus:this.onFocus,registry:x,disabled:f,readonly:g}),e||m.default.createElement(T,{uiSchema:v}),"bottom"===S&&this.renderErrors(x))}}exports.default=Ae,exports.getDefaultRegistry=Ne,exports.withTheme=function(t){return e.forwardRef(((e,a)=>{var r,o;let{fields:i,widgets:n,templates:l,...s}=e;return i={...t.fields,...i},n={...t.widgets,...n},l={...t.templates,...l,ButtonTemplates:{...null==t||null===(r=t.templates)||void 0===r?void 0:r.ButtonTemplates,...null===(o=l)||void 0===o?void 0:o.ButtonTemplates}},m.default.createElement(Ae,{...t,...s,fields:i,widgets:n,templates:l,ref:a})}))};
2
2
  //# sourceMappingURL=core.cjs.production.min.js.map