@rjsf/core 5.0.0-beta.5 → 5.0.0-beta.8

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"),n=require("lodash/isObject"),i=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(n),y=u(i),E=u(s),S=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.onOptionChange=e=>{const a=parseInt(e,10),{formData:r,onChange:o,options:n,registry:i}=this.props,{schemaUtils:l}=i,s=l.retrieveSchema(n[a],r);let d;if("object"===t.guessType(r)&&("object"===s.type||s.properties)){d=Object.assign({},r);const e=n.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(n[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:n}=this.props,{selectedOption:i}=this.state;if(!t.deepEquals(r,e.formData)&&n.$id===e.idSchema.$id){const e=this.getMatchingOption(i,r,o);if(!a||e===i)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:n=!1,errorSchema:i={},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:b,fields:v}=y,{SchemaField:C}=v,{selectedOption:F}=this.state,{widget:D="select",...x}=t.getUiOptions(E),k=t.getWidget({type:"number"},D,b),N=g[F]||null;let T;N&&(T=N.type?N:Object.assign({},N,{type:a}));const w=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:w},registry:y,formContext:s,...x,label:""})),null!==N&&m.default.createElement(C,{name:e,schema:T,uiSchema:E,errorSchema:i,idSchema:u,idPrefix:d,idSeparator:c,formData:l,formContext:s,onChange:h,onBlur:p,onFocus:f,registry:y,disabled:r,readonly:o,hideError:n}))}}const x=/\.([0-9]*0)*$/,k=/[0.]0*$/,N={array:"ArrayField",boolean:"BooleanField",integer:"NumberField",number:"NumberField",object:"ObjectField",string:"StringField",null:"NullField"};function T(e){const{id:t,help:a}=e;return a?m.default.createElement("string"==typeof a?"p":"div",{id:t,className:"help-block"},a):null}function w(e){const{errors:t=[]}=e;return 0===t.length?null:m.default.createElement("div",null,m.default.createElement("ul",{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 A(e){const{schema:a,idSchema:r,uiSchema:o,formData:n,errorSchema:i,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,v=t.getUiOptions(o),C=t.getTemplate("FieldTemplate",f,v),F=t.getTemplate("DescriptionFieldTemplate",f,v),D=S.retrieveSchema(a,n),x=t.mergeObjects(S.toIdSchema(D,r.$id,n,l,s),r),k=function(e,a,r,o){const n=a.field,{fields:i}=o;if("function"==typeof n)return n;if("string"==typeof n&&n in i)return i[n];const l=t.getSchemaType(e),s=Array.isArray(l)?l[0]:l||"",d=N[s];return d||!e.anyOf&&!e.oneOf?d in i?i[d]:()=>{const n=t.getTemplate("UnsupportedFieldTemplate",o,a);return m.default.createElement(n,{schema:e,idSchema:r,reason:"Unknown field type "+e.type,registry:o})}:()=>null}(D,v,x,f),A=Boolean(e.disabled||v.disabled),O=Boolean(e.readonly||v.readonly||e.schema.readOnly||D.readOnly),B=v.hideError,I=void 0===B?e.hideError:Boolean(B),U=Boolean(e.autofocus||v.autofocus);if(0===Object.keys(D).length)return null;const q=S.getDisplayLabel(D,o),{__errors:P,..._}=i||{},R=b.default(o,["ui:classNames","classNames"]);"ui:options"in R&&(R["ui:options"]=b.default(R["ui:options"],["classNames"]));const V=m.default.createElement(k,{...e,idSchema:x,schema:D,uiSchema:R,disabled:A,readonly:O,hideError:I,autofocus:U,errorSchema:_,formContext:E,rawErrors:P}),M=x[t.ID_KEY];let K;K=y?d:v.title||e.schema.title||D.title||d;const j=v.description||e.schema.description||D.description||"",W=P,L=v.help,$="hidden"===v.widget,Y=["form-group","field","field-"+D.type];!I&&W&&W.length>0&&Y.push("field-error has-error has-danger"),null!=o&&o.classNames&&Y.push(o.classNames),v.classNames&&Y.push(v.classNames);const z={description:m.default.createElement(F,{id:M+"__description",description:j,registry:f}),rawDescription:j,help:m.default.createElement(T,{id:M+"__help",help:L}),rawHelp:"string"==typeof L?L:void 0,errors:I?void 0:m.default.createElement(w,{errors:W}),rawErrors:I?void 0:W,id:M,label:K,hidden:$,onChange:c,onKeyChange:u,onDropPropertyClick:p,required:h,disabled:A,readonly:O,hideError:I,displayLabel:q,classNames:Y.join(" ").trim(),formContext:E,formData:n,schema:D,uiSchema:o,registry:f},J=f.fields.AnyOfField,G=f.fields.OneOfField;return m.default.createElement(C,{...z},m.default.createElement(m.default.Fragment,null,V,D.anyOf&&!(null!=o&&o["ui:field"])&&!S.isSelect(D)&&m.default.createElement(J,{name:d,disabled:A,readonly:O,hideError:I,errorSchema:i,formData:n,formContext:E,idPrefix:l,idSchema:x,idSeparator:s,onBlur:e.onBlur,onChange:e.onChange,onFocus:e.onFocus,options:D.anyOf.map((e=>S.retrieveSchema(g.default(e)?e:{},n))),baseType:D.type,registry:f,schema:D,uiSchema:o}),D.oneOf&&!(null!=o&&o["ui:field"])&&!S.isSelect(D)&&m.default.createElement(G,{name:d,disabled:A,readonly:O,hideError:I,errorSchema:i,formData:n,formContext:E,idPrefix:l,idSchema:x,idSeparator:s,onBlur:e.onBlur,onChange:e.onChange,onFocus:e.onFocus,options:D.oneOf.map((e=>S.retrieveSchema(g.default(e)?e:{},n))),baseType:D.type,registry:f,schema:D,uiSchema:o})))}const O={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: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()},n=[...r];n.splice(e,0,o),this.setState({keyedFormData:n,updatedKeyedFormData:!0},(()=>a(F(n))))},this.onDropIndexClick=e=>t=>{t&&t.preventDefault();const{onChange:a,errorSchema:r}=this.props,{keyedFormData:o}=this.state;let n;if(r){n={};for(const t in r){const a=parseInt(t);a<e?y.default(n,[a],r[t]):a>e&&y.default(n,[a-1],r[t])}}const i=o.filter(((t,a)=>a!==e));this.setState({keyedFormData:i,updatedKeyedFormData:!0},(()=>a(F(i),n)))},this.onReorderClick=(e,t)=>a=>{a&&(a.preventDefault(),a.currentTarget.blur());const{onChange:r,errorSchema:o}=this.props;let n;if(this.props.errorSchema){n={};for(const a in o){const r=parseInt(a);r==e?y.default(n,[t],o[e]):r==t?y.default(n,[e],o[t]):y.default(n,[a],o[r])}}const{keyedFormData:i}=this.state,l=function(){const a=i.slice();return a.splice(e,1),a.splice(t,0,i[e]),a}();this.setState({keyedFormData:l},(()=>r(F(l),n)))},this.onChangeForIndex=e=>(t,a)=>{const{formData:r,onChange:o,errorSchema:n}=this.props;o((Array.isArray(r)?r:[]).map(((a,r)=>e===r?void 0===t?null:t:a)),n&&n&&{...n,[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:n}=o;if(!(t.ITEMS_KEY in e)){const n=t.getUiOptions(a),i=t.getTemplate("UnsupportedFieldTemplate",o,n);return m.default.createElement(i,{schema:e,idSchema:r,reason:"Missing items definition",registry:o})}return n.isMultiSelect(e)?this.renderMultiSelect():t.isCustomWidget(a)?this.renderCustomWidget():t.isFixedItems(e)?this.renderFixedArray():n.isFilesArray(e,a)?this.renderFiles():this.renderNormalArray()}renderNormalArray(){const{schema:e,uiSchema:a={},errorSchema:r,idSchema:o,name:n,disabled:i=!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?n: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),N={canAdd:this.canAddItem(k),items:E.map(((e,t)=>{const{key:i,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:i,index:t,name:n&&n+"-"+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:i,idSchema:o,uiSchema:a,onAddClick:this.onAddClick,readonly:l,required:d,schema:e,title:S,formContext:v,formData:k,rawErrors:y,registry:c},T=t.getTemplate("ArrayFieldTemplate",c,C);return m.default.createElement(T,{...N})}renderCustomWidget(){const{schema:e,idSchema:a,uiSchema:r,disabled:o=!1,readonly:n=!1,autofocus:i=!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: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:n,hideError:s,required:l,label:S,placeholder:d,formContext:E,autofocus:i,rawErrors:f})}renderMultiSelect(){const{schema:e,idSchema:a,uiSchema:r,formData:o=[],disabled:n=!1,readonly:i=!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),b=e.title||f,v=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:v},schema:e,uiSchema:r,registry:p,value:o,disabled:n,readonly:i,required:s,label:b,placeholder:d,formContext:E,autofocus:l,rawErrors:h})}renderFiles(){const{schema:e,uiSchema:a,idSchema:r,name:o,disabled:n=!1,readonly:i=!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),b=t.getWidget(e,E,g);return m.default.createElement(b,{options:S,id:r&&r.$id,multiple:!0,onChange:this.onSelectChange,onBlur:d,onFocus:c,schema:e,uiSchema:a,title:f,value:p,disabled:n,readonly:i,required:s,registry:u,formContext:y,autofocus:l,rawErrors:h,label:""})}renderFixedArray(){const{schema:e,uiSchema:a={},formData:r=[],errorSchema:o,idPrefix:n,idSeparator:i="_",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: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 N={canAdd:this.canAddItem(b)&&!!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+i+r,m,n,i),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: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:v,formContext:D,rawErrors:E},T=t.getTemplate("ArrayFieldTemplate",h,C);return m.default.createElement(T,{...N})}renderArrayFieldItem(e){const{key:a,index:r,name:o,canRemove:n=!0,canMoveUp:i=!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:b,idSeparator:v,readonly:C,uiSchema:F,registry:D,formContext:x}=this.props,{fields:{SchemaField:k}}=D,{orderable:N=!0,removable:T=!0}=t.getUiOptions(F),w={moveUp:N&&i,moveDown:N&&l,remove:T&&n,toolbar:!1};return w.toolbar=Object.keys(w).some((e=>w[e])),{children:m.default.createElement(k,{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:E,readonly:C,hideError:S,autofocus:h,rawErrors:y}),className:"array-item",disabled:E,hasToolbar:w.toolbar,hasMoveUp:w.moveUp,hasMoveDown:w.moveDown,hasRemove:w.remove,index:r,key:a,onAddIndexClick:this.onAddIndexClick,onDropIndexClick:this.onDropIndexClick,onReorderClick:this.onReorderClick,readonly:C,registry:D}}},BooleanField:function(e){const{schema:a,name:r,uiSchema:o,idSchema:n,formData:i,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:b}=l,{widget:v="checkbox",...C}=t.getUiOptions(o),F=t.getWidget(a,v,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:n&&n.$id,onChange:p,onFocus:h,onBlur:f,label:void 0===E?r:E,value:i,required:s,disabled:d,readonly:c,registry:l,formContext:b,autofocus:u,rawErrors:y})},NumberField:function(a){const{registry:r,onChange:o,formData:n,value:i}=a,[l,s]=e.useState(i),{StringField:d}=r.fields;let c=n;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:n,onChange:i,errorSchema:l}=e.props;void 0===r&&a&&(r=""),i({...n,[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 n=0,i=e;for(;i in a;)i=""+e+o+ ++n;return i},this.onKeyChange=e=>(t,a)=>{if(e===t)return;const{formData:r,onChange:o,errorSchema:n}=this.props;t=this.getAvailableKey(t,r);const i={...r},l={[e]:t},s=Object.keys(i).map((e=>({[l[e]||e]:i[e]}))),d=Object.assign({},...s);this.setState({wasPropertyKeyModified:!0}),o(d,n&&n&&{...n,[t]:a})},this.handleAddClick=e=>()=>{if(!g.default(e.additionalProperties))return;const{formData:a,onChange:r,registry:o}=this.props;let n=e.additionalProperties.type;const i={...a};if(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:n,name:i,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:b,schemaUtils:v}=y,{SchemaField:C}=E,F=v.retrieveSchema(e,r),D=t.getUiOptions(a),{properties:x={}}=F,k=void 0===F.title?i:F.title,N=D.description||F.description;let T;try{const e=Object.keys(x);T=t.orderProperties(e,D.order)}catch(e){return m.default.createElement("div",null,m.default.createElement("p",{className:"config-error",style:{color:"red"}},"Invalid ",i||"root"," object field configuration:",m.default.createElement("em",null,e.message),"."),m.default.createElement("pre",null,JSON.stringify(F)))}const w=t.getTemplate("ObjectFieldTemplate",y,D),A={title:D.title||k,description:N,properties:T.map((e=>{const i=S.default(F,[t.PROPERTIES_KEY,e,t.ADDITIONAL_PROPERTY_FLAG]),E=i?a.additionalProperties:a[e],v="hidden"===t.getUiOptions(E).widget,D=h.default(n,[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:b,wasPropertyKeyModified:this.state.wasPropertyKeyModified,onKeyChange:this.onKeyChange(e),onChange:this.onPropertyChange(e,i),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:n,uiSchema:a,schema:F,formData:r,formContext:b,registry:y};return m.default.createElement(w,{...A,onAddClick:this.handleAddClick})}},OneOfField:D,SchemaField:class extends m.default.Component{shouldComponentUpdate(e){return!t.deepEquals(this.props,e)}render(){return m.default.createElement(A,{...this.props})}},StringField:function(e){const{schema:a,name:r,uiSchema:o,idSchema:n,formData:i,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:b,schemaUtils:v}=f,C=v.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),N=t.getWidget(a,D,S);return m.default.createElement(N,{options:{...k,enumOptions:C},schema:a,uiSchema:o,id:n&&n.$id,label:void 0===y?r:y,value:i,onChange:u,onBlur:p,onFocus:h,required:l,disabled:s,readonly:d,formContext:b,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 B(e){const{iconType:t="default",icon:a,className:r,...o}=e;return m.default.createElement("button",{type:"button",className:"btn btn-"+t+" "+r,...o},m.default.createElement("i",{className:"glyphicon glyphicon-"+a}))}function I(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 U(e){const{id:a,classNames:r,disabled:o,label:n,onKeyChange:i,onDropPropertyClick:l,readonly:s,required:d,schema:c,children:u,registry:p}=e,{RemoveButton:h}=p.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(I,{label:n+" Key",required:d,id:a+"-key"}),m.default.createElement("input",{className:"form-control",type:"text",id:a+"-key",onBlur:e=>i(e.target.value),defaultValue:n}))),m.default.createElement("div",{className:"form-additional form-group col-xs-5"},u),m.default.createElement("div",{className:"col-xs-2"},m.default.createElement(h,{className:"array-item-remove btn-block",style:{border:"0"},disabled:o||s,onClick:l(n)}))):u)}const q={ArrayFieldDescriptionTemplate:function(e){const{idSchema:a,description:r,registry:o,uiSchema:n}=e;if(!r)return null;const i=t.getUiOptions(n),l=t.getTemplate("DescriptionFieldTemplate",o,i);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:n,hasMoveUp:i,hasRemove:l,index:s,onDropIndexClick:d,onReorderClick:c,readonly:u,registry:p}=e,{MoveDownButton:h,MoveUpButton:f,RemoveButton:g}=p.templates.ButtonTemplates,y={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"}},(i||n)&&m.default.createElement(f,{style:y,disabled:r||u||!i,onClick:c(s,s-1)}),(i||n)&&m.default.createElement(h,{style:y,disabled:r||u||!n,onClick:c(s,s+1)}),l&&m.default.createElement(g,{style:y,disabled:r||u,onClick:d(s)}))))},ArrayFieldTemplate:function(e){const{canAdd:a,className:r,disabled:o,idSchema:n,uiSchema:i,items:l,onAddClick:s,readonly:d,registry:c,required:u,schema:p,title:h}=e,f=t.getUiOptions(i),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:n.$id},m.default.createElement(E,{idSchema:n,title:f.title||h,required:u,uiSchema:i,registry:c}),(f.description||p.description)&&m.default.createElement(g,{idSchema:n,description:f.description||p.description,uiSchema:i,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}))},ArrayFieldTitleTemplate:function(e){const{idSchema:a,title:r,uiSchema:o,required:n,registry:i}=e;if(!r)return null;const l=t.getUiOptions(o),s=t.getTemplate("TitleFieldTemplate",i,l);return m.default.createElement(s,{id:a.$id+"__title",title:r,required:n,uiSchema:o,registry:i})},ButtonTemplates:{SubmitButton:function(e){let{uiSchema:a}=e;const{submitText:r,norender:o,props:n={}}=t.getSubmitButtonOptions(a);return o?null:m.default.createElement("div",null,m.default.createElement("button",{type:"submit",...n,className:"btn btn-info "+n.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(B,{iconType:"info",icon:"plus",className:"btn-add col-xs-12",title:"Add",onClick:a,disabled:r})))},MoveDownButton:function(e){return m.default.createElement(B,{title:"Move down",className:"array-item-move-down",...e,icon:"arrow-down"})},MoveUpButton:function(e){return m.default.createElement(B,{title:"Move up",className:"array-item-move-up",...e,icon:"arrow-up"})},RemoveButton:function(e){return m.default.createElement(B,{title:"Remove",className:"array-item-remove",...e,iconType:"danger",icon:"remove"})}},BaseInputTemplate:function(a){const{id:r,value:o,readonly:n,disabled:i,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 b={...S,...t.getInputProps(p,E,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",{key:r,id:r,className:"form-control",readOnly:n,disabled:i,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})))))},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:t,label:a,children:r,errors:o,help:n,description:i,hidden:l,required:s,displayLabel:d}=e;return l?m.default.createElement("div",{className:"hidden"},r):m.default.createElement(U,{...e},d&&m.default.createElement(I,{label:a,required:s,id:t}),d&&i?i:null,r,o,n)},ObjectFieldTemplate:function(e){const{description:a,disabled:r,formData:o,idSchema:n,onAddClick:i,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:n.$id},(f.title||p)&&m.default.createElement(g,{id:n.$id+"__title",title:f.title||p,required:c,uiSchema:h,registry:d}),(f.description||a)&&m.default.createElement(y,{id:n.$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:i(u),disabled:r||s}))},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)))}};function P(e,a){const r=[];for(let o=e;o<=a;o++)r.push({value:o,label:t.pad(o,2)});return r}function _(e){let{type:t,range:a,value:r,select:o,rootId:n,disabled:i,readonly:l,autofocus:s,registry:d,onBlur:c,onFocus:u}=e;const p=n+"_"+t,{SelectWidget:h}=d.widgets;return m.default.createElement(h,{schema:{type:"integer"},id:p,className:"form-control",options:{enumOptions:P(a[0],a[1])},placeholder:t,value:r,disabled:i,readonly:l,autofocus:s,onChange:e=>o(t,e),onBlur:c,onFocus:u,registry:d,label:""})}function R(e,t){return null===e?null:e.replace(";base64",";name="+encodeURIComponent(t)+";base64")}function V(e){const{name:t,size:a,type:r}=e;return new Promise(((o,n)=>{const i=new window.FileReader;i.onerror=n,i.onload=e=>{var n;"string"==typeof(null===(n=e.target)||void 0===n?void 0:n.result)?o({dataURL:R(e.target.result,t),name:t,size:a,type:r}):o({dataURL:null,name:t,size:a,type:r})},i.readAsDataURL(e)}))}function M(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 K(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 j(e,t){return t?Array.from(e.target.options).slice().filter((e=>e.selected)).map((e=>e.value)):e.target.value}function W(t){let{id:a,options:r={},placeholder:o,value:n,required:i,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,className:"form-control",value:n||"",placeholder:o,required:i,disabled:l,readOnly:s,autoFocus:d,rows:r.rows,onBlur:f,onFocus:g,onChange:h})}W.defaultProps={autofocus:!1,options:{}};const L={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:n,readonly:i,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=f&&-1!=f.indexOf(e.value),d=n||s||i?"disabled":"",h=m.default.createElement("span",null,m.default.createElement("input",{type:"radio",id:u+"_"+t,checked:a,name:p,required:o,value:e.value,disabled:n||s||i,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:t,className:"radio-inline "+d},h):m.default.createElement("div",{key:t,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:n,value:i,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}=n,S=c?[]:"",b=e.useCallback((e=>{const a=j(e,c);return f(o,t.processSelectValue(r,a,n))}),[f,o,r,c,n]),v=e.useCallback((e=>{const a=j(e,c);return h(o,t.processSelectValue(r,a,n))}),[h,o,r,c,n]),C=e.useCallback((e=>{const a=j(e,c);return p(t.processSelectValue(r,a,n))}),[p,r,c,n]);return m.default.createElement("select",{id:o,multiple:c,className:"form-control",value:void 0===i?S:i,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=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:n}=a,i=t.getTemplate("BaseInputTemplate",n,o),l=e.useCallback((e=>r(e||void 0)),[r]);return m.default.createElement(i,{type:"date",...a,onChange:l})},DateTimeWidget:function(e){const{onChange:a,value:r,options:o,registry:n}=e,i=t.getTemplate("BaseInputTemplate",n,o);return m.default.createElement(i,{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:n=!1,autofocus:i=!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||n)return;const a=t.parseDateString((new Date).toJSON(),r);g(a)}),[o,n,r]),S=e.useCallback((e=>{e.preventDefault(),o||n||(g(t.parseDateString("",r)),p(void 0))}),[o,n,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:n,hour:i,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:n}];return t&&d.push({type:"hour",range:[0,23],value:i},{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(_,{rootId:s,select:y,...e,disabled:o,readonly:n,registry:d,onBlur:c,onFocus:u,autofocus:i&&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:W,HiddenWidget:function(e){let{id:t,value:a}=e;return m.default.createElement("input",{type:"hidden",id:t,value:void 0===a?"":a})},ColorWidget:function(e){const{disabled:a,readonly:r,options:o,registry:n}=e,i=t.getTemplate("BaseInputTemplate",n,o);return m.default.createElement(i,{type:"color",...e,disabled:a||r})},FileWidget:function(t){let{multiple:a,id:r,readonly:o,disabled:n,onChange:i,value:l,autofocus:s=!1,options:d}=t;const c=e.useMemo((()=>Array.isArray(l)?K(l):K([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(V))).then((e=>{p(e);const t=e.map((e=>e.dataURL));i(a?t:t[0])}))}),[a,i]);return m.default.createElement("div",null,m.default.createElement("p",null,m.default.createElement("input",{id:r,type:"file",disabled:o||n,onChange:h,defaultValue:"",autoFocus:s,multiple:a,accept:d.accept?String(d.accept):void 0})),m.default.createElement(M,{filesInfo:u}))},CheckboxWidget:function(a){let{schema:r,options:o,id:n,value:i,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(n,e.target.checked)),[u,n]),b=e.useCallback((e=>p(n,e.target.checked)),[p,n]);return m.default.createElement("div",{className:"checkbox "+(l||s?"disabled":"")},r.description&&m.default.createElement(g,{id:n+"__description",description:r.description,registry:f}),m.default.createElement("label",null,m.default.createElement("input",{type:"checkbox",id:n,checked:void 0!==i&&i,required:y,disabled:l||s,autoFocus:c,onChange:E,onBlur:S,onFocus:b}),m.default.createElement("span",null,d)))},CheckboxesWidget:function(e){let{id:t,disabled:a,options:{inline:r=!1,enumOptions:o,enumDisabled:n},value:i,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!==i.indexOf(e.value),p=n&&-1!=n.indexOf(e.value),h=a||p||s?"disabled":"",f=m.default.createElement("span",null,m.default.createElement("input",{type:"checkbox",id:t+"_"+c,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,i,a):function(e,t){return t.filter((t=>t!==e))}(e.value,i))}}),m.default.createElement("span",null,e.label));return r?m.default.createElement("label",{key:c,className:"checkbox-inline "+h},f):m.default.createElement("div",{key:c,className:"checkbox "+h},m.default.createElement("label",null,f))})))}};function $(){return{fields:O,templates:q,widgets:L,rootSchema:{},formContext:{}}}class Y 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,n){return void 0===o&&(o=[]),void 0===n&&(n=[""]),Object.keys(e).forEach((i=>{if("object"==typeof e[i]){const a=n.map((e=>e+"."+i));e[i][t.RJSF_ADDITONAL_PROPERTIES_FLAG]&&""!==e[i][t.NAME_KEY]?o.push(e[i][t.NAME_KEY]):r(e[i],o,a)}else i===t.NAME_KEY&&""!==e[i]&&n.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:n,noValidate:i,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=!i&&l;let m={formData:e,schema:c},p=e;if(!0===o&&!0===n){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(d,p);let t=e.errors,a=e.errorSchema;const o=t,n=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:n}}else if(!i&&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,onError:n}=this.props;let{formData:i}=this.state;const{schema:l,schemaUtils:s}=this.state;if(!0===t){const e=s.retrieveSchema(l,i),t=s.toPathSchema(e,"",i),a=this.getFieldNames(t,i);i=this.getUsedFormData(i,a)}if(!r){const e=this.validate(s,i);let t=e.errors,r=e.errorSchema;const o=t,l=r;if(t.length>0){if(a){const o=s.mergeValidationData(e,a);r=o.errorSchema,t=o.errors}return void this.setState({errors:t,errorSchema:r,schemaValidationErrors:o,schemaValidationErrorSchema:l},(()=>{n?n(t):console.error("Form validation failed",t)}))}}const d=a||{},c=a?s.getValidator().toErrorList(a):[];this.setState({formData:i,errors:c,errorSchema:d,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,n=("uiSchema"in e?e.uiSchema:this.props.uiSchema)||{},i=void 0!==a,l=i&&!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(d,c,o);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,n["ui:rootFieldId"],c,e.idPrefix,e.idSeparator);return{schemaUtils:d,schema:o,uiSchema:n,idSchema:g,formData:c,edit:i,errors:m,errorSchema:p,schemaValidationErrors:h,schemaValidationErrorSchema:f}}shouldComponentUpdate(e,a){return t.shouldRender(this,e,a)}validate(e,t,a){void 0===a&&(a=this.props.schema);const{customValidate:r,transformErrors:o}=this.props,n=e.retrieveSchema(a,t);return e.getValidator().validateFormData(t,n,r,o)}renderErrors(e){const{errors:a,errorSchema:r,schema:o,uiSchema:n}=this.state,{showErrorList:i,formContext:l}=this.props,s=t.getUiOptions(n),d=t.getTemplate("ErrorListTemplate",e,s);return a&&a.length&&0!=i?m.default.createElement(d,{errors:a,errorSchema:r||{},schema:o,uiSchema:n,formContext:l}):null}getRegistry(){var e;const{schemaUtils:t}=this.state,{fields:a,templates:r,widgets:o,formContext:n}=$();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||n,schemaUtils:t}}submit(){this.formElement.current&&(this.formElement.current.dispatchEvent(new CustomEvent("submit",{cancelable:!0})),this.formElement.current.requestSubmit())}render(){const{children:e,id:t,idPrefix:a,idSeparator:r,className:o="",tagName:n,name:i,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:b,formData:v,errorSchema:C,idSchema:F}=this.state,D=this.getRegistry(),{SchemaField:x}=D.fields,{SubmitButton:k}=D.templates.ButtonTemplates;return m.default.createElement(E||n||"form",{className:o||"rjsf",id:t,name:i,method:l,target:s,action:d,autoComplete:c,encType:u,acceptCharset:p,noValidate:h,onSubmit:this.onSubmit,as:E?n:void 0,ref:this.formElement},this.renderErrors(D),m.default.createElement(x,{name:"",schema:S,uiSchema:b,errorSchema:C,idSchema:F,idPrefix:a,idSeparator:r,formContext:y,formData:v,onChange:this.onChange,onBlur:this.onBlur,onFocus:this.onFocus,registry:D,disabled:f,readonly:g}),e||m.default.createElement(k,{uiSchema:b}))}}exports.default=Y,exports.getDefaultRegistry=$,exports.withTheme=function(t){return e.forwardRef(((e,a)=>{var r,o;let{fields:n,widgets:i,templates:l,...s}=e;return n={...t.fields,...n},i={...t.widgets,...i},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(Y,{...t,...s,fields:n,widgets:i,templates:l,ref:a})}))};
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"),n=require("lodash/isObject"),i=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(n),y=u(i),E=u(s),S=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.onOptionChange=e=>{const a=parseInt(e,10),{formData:r,onChange:o,options:n,registry:i}=this.props,{schemaUtils:l}=i,s=l.retrieveSchema(n[a],r);let d;if("object"===t.guessType(r)&&("object"===s.type||s.properties)){d=Object.assign({},r);const e=n.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(n[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:n}=this.props,{selectedOption:i}=this.state;if(!t.deepEquals(r,e.formData)&&n.$id===e.idSchema.$id){const e=this.getMatchingOption(i,r,o);if(!a||e===i)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:n=!1,errorSchema:i={},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:b,fields:v}=y,{SchemaField:C}=v,{selectedOption:F}=this.state,{widget:D="select",...x}=t.getUiOptions(E),k=t.getWidget({type:"number"},D,b),T=g[F]||null;let N;T&&(N=T.type?T:Object.assign({},T,{type:a}));const w=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:w},registry:y,formContext:s,...x,label:""})),null!==T&&m.default.createElement(C,{name:e,schema:N,uiSchema:E,errorSchema:i,idSchema:u,idPrefix:d,idSeparator:c,formData:l,formContext:s,onChange:h,onBlur:p,onFocus:f,registry:y,disabled:r,readonly:o,hideError:n}))}}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:n,errorSchema:i,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,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=S.retrieveSchema(a,n),N=t.mergeObjects(S.toIdSchema(k,r.$id,n,l,s),r),w=function(e,a,r,o){const n=a.field,{fields:i}=o;if("function"==typeof n)return n;if("string"==typeof n&&n in i)return i[n];const l=t.getSchemaType(e),s=Array.isArray(l)?l[0]:l||"",d=T[s];return d||!e.anyOf&&!e.oneOf?d in i?i[d]:()=>{const n=t.getTemplate("UnsupportedFieldTemplate",o,a);return m.default.createElement(n,{schema:e,idSchema:r,reason:"Unknown field type "+e.type,registry:o})}:()=>null}(k,v,N,f),A=Boolean(e.disabled||v.disabled),O=Boolean(e.readonly||v.readonly||e.schema.readOnly||k.readOnly),B=v.hideError,I=void 0===B?e.hideError:Boolean(B),U=Boolean(e.autofocus||v.autofocus);if(0===Object.keys(k).length)return null;const q=S.getDisplayLabel(k,o),{__errors:P,..._}=i||{},R=b.default(o,["ui:classNames","classNames"]);"ui:options"in R&&(R["ui:options"]=b.default(R["ui:options"],["classNames"]));const V=m.default.createElement(w,{...e,idSchema:N,schema:k,uiSchema:R,disabled:A,readonly:O,hideError:I,autofocus:U,errorSchema:_,formContext:E,rawErrors:P}),M=N[t.ID_KEY];let K;K=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||"",W=v.help,L="hidden"===v.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),v.classNames&&$.push(v.classNames);const Y=m.default.createElement(D,{help:W,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:i,idSchema:N,schema:k,uiSchema:o,registry:f}),H={description:m.default.createElement(F,{id:M+"__description",description:j,registry:f}),rawDescription:j,help:Y,rawHelp:"string"==typeof W?W:void 0,errors:z,rawErrors:I?void 0:P,id:M,label:K,hidden:L,onChange:c,onKeyChange:u,onDropPropertyClick:p,required:h,disabled:A,readonly:O,hideError:I,displayLabel:q,classNames:$.join(" ").trim(),formContext:E,formData:n,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:A,readonly:O,hideError:I,errorSchema:i,formData:n,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:{},n))),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:A,readonly:O,hideError:I,errorSchema:i,formData:n,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:{},n))),baseType:k.type,registry:f,schema:k,uiSchema:o})))}class w extends m.default.Component{shouldComponentUpdate(e){return!t.deepEquals(this.props,e)}render(){return m.default.createElement(N,{...this.props})}}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: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()},n=[...r];n.splice(e,0,o),this.setState({keyedFormData:n,updatedKeyedFormData:!0},(()=>a(F(n))))},this.onDropIndexClick=e=>t=>{t&&t.preventDefault();const{onChange:a,errorSchema:r}=this.props,{keyedFormData:o}=this.state;let n;if(r){n={};for(const t in r){const a=parseInt(t);a<e?y.default(n,[a],r[t]):a>e&&y.default(n,[a-1],r[t])}}const i=o.filter(((t,a)=>a!==e));this.setState({keyedFormData:i,updatedKeyedFormData:!0},(()=>a(F(i),n)))},this.onReorderClick=(e,t)=>a=>{a&&(a.preventDefault(),a.currentTarget.blur());const{onChange:r,errorSchema:o}=this.props;let n;if(this.props.errorSchema){n={};for(const a in o){const r=parseInt(a);r==e?y.default(n,[t],o[e]):r==t?y.default(n,[e],o[t]):y.default(n,[a],o[r])}}const{keyedFormData:i}=this.state,l=function(){const a=i.slice();return a.splice(e,1),a.splice(t,0,i[e]),a}();this.setState({keyedFormData:l},(()=>r(F(l),n)))},this.onChangeForIndex=e=>(t,a)=>{const{formData:r,onChange:o,errorSchema:n}=this.props;o((Array.isArray(r)?r:[]).map(((a,r)=>e===r?void 0===t?null:t:a)),n&&n&&{...n,[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:n}=o;if(!(t.ITEMS_KEY in e)){const n=t.getUiOptions(a),i=t.getTemplate("UnsupportedFieldTemplate",o,n);return m.default.createElement(i,{schema:e,idSchema:r,reason:"Missing items definition",registry:o})}return n.isMultiSelect(e)?this.renderMultiSelect():t.isCustomWidget(a)?this.renderCustomWidget():t.isFixedItems(e)?this.renderFixedArray():n.isFilesArray(e,a)?this.renderFiles():this.renderNormalArray()}renderNormalArray(){const{schema:e,uiSchema:a={},errorSchema:r,idSchema:o,name:n,disabled:i=!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?n: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:E.map(((e,t)=>{const{key:i,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:i,index:t,name:n&&n+"-"+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:i,idSchema:o,uiSchema:a,onAddClick:this.onAddClick,readonly:l,required:d,schema:e,title:S,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:n=!1,autofocus:i=!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: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:n,hideError:s,required:l,label:S,placeholder:d,formContext:E,autofocus:i,rawErrors:f})}renderMultiSelect(){const{schema:e,idSchema:a,uiSchema:r,formData:o=[],disabled:n=!1,readonly:i=!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),b=e.title||f,v=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:v},schema:e,uiSchema:r,registry:p,value:o,disabled:n,readonly:i,required:s,label:b,placeholder:d,formContext:E,autofocus:l,rawErrors:h})}renderFiles(){const{schema:e,uiSchema:a,idSchema:r,name:o,disabled:n=!1,readonly:i=!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),b=t.getWidget(e,E,g);return m.default.createElement(b,{options:S,id:r&&r.$id,multiple:!0,onChange:this.onSelectChange,onBlur:d,onFocus:c,schema:e,uiSchema:a,title:f,value:p,disabled:n,readonly:i,required:s,registry:u,formContext:y,autofocus:l,rawErrors:h,label:""})}renderFixedArray(){const{schema:e,uiSchema:a={},formData:r=[],errorSchema:o,idPrefix:n,idSeparator:i="_",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: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: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+i+r,m,n,i),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: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:v,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:n=!0,canMoveUp:i=!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:b,idSeparator:v,readonly:C,uiSchema:F,registry:D,formContext:x}=this.props,{fields:{ArraySchemaField:k}}=D,{orderable:T=!0,removable:N=!0}=t.getUiOptions(F),w={moveUp:T&&i,moveDown:T&&l,remove:N&&n,toolbar:!1};return w.toolbar=Object.keys(w).some((e=>w[e])),{children:m.default.createElement(k,{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:E,readonly:C,hideError:S,autofocus:h,rawErrors:y}),className:"array-item",disabled:E,hasToolbar:w.toolbar,hasMoveUp:w.moveUp,hasMoveDown:w.moveDown,hasRemove:w.remove,index:r,key:a,onAddIndexClick:this.onAddIndexClick,onDropIndexClick:this.onDropIndexClick,onReorderClick:this.onReorderClick,readonly:C,registry:D}}},ArraySchemaField:w,BooleanField:function(e){const{schema:a,name:r,uiSchema:o,idSchema:n,formData:i,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:b}=l,{widget:v="checkbox",...C}=t.getUiOptions(o),F=t.getWidget(a,v,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:n&&n.$id,onChange:p,onFocus:h,onBlur:f,label:void 0===E?r:E,value:i,required:s,disabled:d,readonly:c,registry:l,formContext:b,autofocus:u,rawErrors:y})},NumberField:function(a){const{registry:r,onChange:o,formData:n,value:i}=a,[l,s]=e.useState(i),{StringField:d}=r.fields;let c=n;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:n,onChange:i,errorSchema:l}=e.props;void 0===r&&a&&(r=""),i({...n,[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 n=0,i=e;for(;i in a;)i=""+e+o+ ++n;return i},this.onKeyChange=e=>(t,a)=>{if(e===t)return;const{formData:r,onChange:o,errorSchema:n}=this.props;t=this.getAvailableKey(t,r);const i={...r},l={[e]:t},s=Object.keys(i).map((e=>({[l[e]||e]:i[e]}))),d=Object.assign({},...s);this.setState({wasPropertyKeyModified:!0}),o(d,n&&n&&{...n,[t]:a})},this.handleAddClick=e=>()=>{if(!g.default(e.additionalProperties))return;const{formData:a,onChange:r,registry:o}=this.props;let n=e.additionalProperties.type;const i={...a};if(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:n,name:i,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:b,schemaUtils:v}=y,{SchemaField:C}=E,F=v.retrieveSchema(e,r),D=t.getUiOptions(a),{properties:x={}}=F,k=void 0===F.title?i: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 ",i||"root"," object field configuration:",m.default.createElement("em",null,e.message),"."),m.default.createElement("pre",null,JSON.stringify(F)))}const w=t.getTemplate("ObjectFieldTemplate",y,D),A={title:D.title||k,description:T,properties:N.map((e=>{const i=S.default(F,[t.PROPERTIES_KEY,e,t.ADDITIONAL_PROPERTY_FLAG]),E=i?a.additionalProperties:a[e],v="hidden"===t.getUiOptions(E).widget,D=h.default(n,[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:b,wasPropertyKeyModified:this.state.wasPropertyKeyModified,onKeyChange:this.onKeyChange(e),onChange:this.onPropertyChange(e,i),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:n,uiSchema:a,schema:F,formData:r,formContext:b,registry:y};return m.default.createElement(w,{...A,onAddClick:this.handleAddClick})}},OneOfField:D,SchemaField:w,StringField:function(e){const{schema:a,name:r,uiSchema:o,idSchema:n,formData:i,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:b,schemaUtils:v}=f,C=v.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:n&&n.$id,label:void 0===y?r:y,value:i,onChange:u,onBlur:p,onFocus:h,required:l,disabled:s,readonly:d,formContext:b,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 O(e){const{iconType:t="default",icon:a,className:r,...o}=e;return m.default.createElement("button",{type:"button",className:"btn btn-"+t+" "+r,...o},m.default.createElement("i",{className:"glyphicon glyphicon-"+a}))}function B(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 I(e){const{id:a,classNames:r,disabled:o,label:n,onKeyChange:i,onDropPropertyClick:l,readonly:s,required:d,schema:c,children:u,registry:p}=e,{RemoveButton:h}=p.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(B,{label:n+" Key",required:d,id:a+"-key"}),m.default.createElement("input",{className:"form-control",type:"text",id:a+"-key",onBlur:e=>i(e.target.value),defaultValue:n}))),m.default.createElement("div",{className:"form-additional form-group col-xs-5"},u),m.default.createElement("div",{className:"col-xs-2"},m.default.createElement(h,{className:"array-item-remove btn-block",style:{border:"0"},disabled:o||s,onClick:l(n)}))):u)}const U={ArrayFieldDescriptionTemplate:function(e){const{idSchema:a,description:r,registry:o,uiSchema:n}=e;if(!r)return null;const i=t.getUiOptions(n),l=t.getTemplate("DescriptionFieldTemplate",o,i);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:n,hasMoveUp:i,hasRemove:l,index:s,onDropIndexClick:d,onReorderClick:c,readonly:u,registry:p}=e,{MoveDownButton:h,MoveUpButton:f,RemoveButton:g}=p.templates.ButtonTemplates,y={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"}},(i||n)&&m.default.createElement(f,{style:y,disabled:r||u||!i,onClick:c(s,s-1)}),(i||n)&&m.default.createElement(h,{style:y,disabled:r||u||!n,onClick:c(s,s+1)}),l&&m.default.createElement(g,{style:y,disabled:r||u,onClick:d(s)}))))},ArrayFieldTemplate:function(e){const{canAdd:a,className:r,disabled:o,idSchema:n,uiSchema:i,items:l,onAddClick:s,readonly:d,registry:c,required:u,schema:p,title:h}=e,f=t.getUiOptions(i),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:n.$id},m.default.createElement(E,{idSchema:n,title:f.title||h,required:u,uiSchema:i,registry:c}),(f.description||p.description)&&m.default.createElement(g,{idSchema:n,description:f.description||p.description,uiSchema:i,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}))},ArrayFieldTitleTemplate:function(e){const{idSchema:a,title:r,uiSchema:o,required:n,registry:i}=e;if(!r)return null;const l=t.getUiOptions(o),s=t.getTemplate("TitleFieldTemplate",i,l);return m.default.createElement(s,{id:a.$id+"__title",title:r,required:n,uiSchema:o,registry:i})},ButtonTemplates:{SubmitButton:function(e){let{uiSchema:a}=e;const{submitText:r,norender:o,props:n={}}=t.getSubmitButtonOptions(a);return o?null:m.default.createElement("div",null,m.default.createElement("button",{type:"submit",...n,className:"btn btn-info "+n.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(O,{iconType:"info",icon:"plus",className:"btn-add col-xs-12",title:"Add",onClick:a,disabled:r})))},MoveDownButton:function(e){return m.default.createElement(O,{title:"Move down",className:"array-item-move-down",...e,icon:"arrow-down"})},MoveUpButton:function(e){return m.default.createElement(O,{title:"Move up",className:"array-item-move-up",...e,icon:"arrow-up"})},RemoveButton:function(e){return m.default.createElement(O,{title:"Remove",className:"array-item-remove",...e,iconType:"danger",icon:"remove"})}},BaseInputTemplate:function(a){const{id:r,value:o,readonly:n,disabled:i,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 b={...S,...t.getInputProps(p,E,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",{key:r,id:r,className:"form-control",readOnly:n,disabled:i,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})))))},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:t,label:a,children:r,errors:o,help:n,description:i,hidden:l,required:s,displayLabel:d}=e;return l?m.default.createElement("div",{className:"hidden"},r):m.default.createElement(I,{...e},d&&m.default.createElement(B,{label:a,required:s,id:t}),d&&i?i:null,r,o,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:n,onAddClick:i,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:n.$id},(f.title||p)&&m.default.createElement(g,{id:n.$id+"__title",title:f.title||p,required:c,uiSchema:h,registry:d}),(f.description||a)&&m.default.createElement(y,{id:n.$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:i(u),disabled:r||s}))},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)))}};function q(e,a){const r=[];for(let o=e;o<=a;o++)r.push({value:o,label:t.pad(o,2)});return r}function P(e){let{type:t,range:a,value:r,select:o,rootId:n,disabled:i,readonly:l,autofocus:s,registry:d,onBlur:c,onFocus:u}=e;const p=n+"_"+t,{SelectWidget:h}=d.widgets;return m.default.createElement(h,{schema:{type:"integer"},id:p,className:"form-control",options:{enumOptions:q(a[0],a[1])},placeholder:t,value:r,disabled:i,readonly:l,autofocus:s,onChange:e=>o(t,e),onBlur:c,onFocus:u,registry:d,label:""})}function _(e,t){return null===e?null:e.replace(";base64",";name="+encodeURIComponent(t)+";base64")}function R(e){const{name:t,size:a,type:r}=e;return new Promise(((o,n)=>{const i=new window.FileReader;i.onerror=n,i.onload=e=>{var n;"string"==typeof(null===(n=e.target)||void 0===n?void 0:n.result)?o({dataURL:_(e.target.result,t),name:t,size:a,type:r}):o({dataURL:null,name:t,size:a,type:r})},i.readAsDataURL(e)}))}function V(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 M(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 K(e,t){return t?Array.from(e.target.options).slice().filter((e=>e.selected)).map((e=>e.value)):e.target.value}function j(t){let{id:a,options:r={},placeholder:o,value:n,required:i,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,className:"form-control",value:n||"",placeholder:o,required:i,disabled:l,readOnly:s,autoFocus:d,rows:r.rows,onBlur:f,onFocus:g,onChange:h})}j.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:n,readonly:i,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=f&&-1!=f.indexOf(e.value),d=n||s||i?"disabled":"",h=m.default.createElement("span",null,m.default.createElement("input",{type:"radio",id:u+"_"+t,checked:a,name:p,required:o,value:e.value,disabled:n||s||i,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:t,className:"radio-inline "+d},h):m.default.createElement("div",{key:t,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:n,value:i,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}=n,S=c?[]:"",b=e.useCallback((e=>{const a=K(e,c);return f(o,t.processSelectValue(r,a,n))}),[f,o,r,c,n]),v=e.useCallback((e=>{const a=K(e,c);return h(o,t.processSelectValue(r,a,n))}),[h,o,r,c,n]),C=e.useCallback((e=>{const a=K(e,c);return p(t.processSelectValue(r,a,n))}),[p,r,c,n]);return m.default.createElement("select",{id:o,multiple:c,className:"form-control",value:void 0===i?S:i,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=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:n}=a,i=t.getTemplate("BaseInputTemplate",n,o),l=e.useCallback((e=>r(e||void 0)),[r]);return m.default.createElement(i,{type:"date",...a,onChange:l})},DateTimeWidget:function(e){const{onChange:a,value:r,options:o,registry:n}=e,i=t.getTemplate("BaseInputTemplate",n,o);return m.default.createElement(i,{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:n=!1,autofocus:i=!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||n)return;const a=t.parseDateString((new Date).toJSON(),r);g(a)}),[o,n,r]),S=e.useCallback((e=>{e.preventDefault(),o||n||(g(t.parseDateString("",r)),p(void 0))}),[o,n,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:n,hour:i,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:n}];return t&&d.push({type:"hour",range:[0,23],value:i},{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(P,{rootId:s,select:y,...e,disabled:o,readonly:n,registry:d,onBlur:c,onFocus:u,autofocus:i&&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:j,HiddenWidget:function(e){let{id:t,value:a}=e;return m.default.createElement("input",{type:"hidden",id:t,value:void 0===a?"":a})},ColorWidget:function(e){const{disabled:a,readonly:r,options:o,registry:n}=e,i=t.getTemplate("BaseInputTemplate",n,o);return m.default.createElement(i,{type:"color",...e,disabled:a||r})},FileWidget:function(t){let{multiple:a,id:r,readonly:o,disabled:n,onChange:i,value:l,autofocus:s=!1,options:d}=t;const c=e.useMemo((()=>Array.isArray(l)?M(l):M([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(R))).then((e=>{p(e);const t=e.map((e=>e.dataURL));i(a?t:t[0])}))}),[a,i]);return m.default.createElement("div",null,m.default.createElement("p",null,m.default.createElement("input",{id:r,type:"file",disabled:o||n,onChange:h,defaultValue:"",autoFocus:s,multiple:a,accept:d.accept?String(d.accept):void 0})),m.default.createElement(V,{filesInfo:u}))},CheckboxWidget:function(a){let{schema:r,options:o,id:n,value:i,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(n,e.target.checked)),[u,n]),b=e.useCallback((e=>p(n,e.target.checked)),[p,n]);return m.default.createElement("div",{className:"checkbox "+(l||s?"disabled":"")},r.description&&m.default.createElement(g,{id:n+"__description",description:r.description,registry:f}),m.default.createElement("label",null,m.default.createElement("input",{type:"checkbox",id:n,checked:void 0!==i&&i,required:y,disabled:l||s,autoFocus:c,onChange:E,onBlur:S,onFocus:b}),m.default.createElement("span",null,d)))},CheckboxesWidget:function(e){let{id:t,disabled:a,options:{inline:r=!1,enumOptions:o,enumDisabled:n},value:i,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!==i.indexOf(e.value),p=n&&-1!=n.indexOf(e.value),h=a||p||s?"disabled":"",f=m.default.createElement("span",null,m.default.createElement("input",{type:"checkbox",id:t+"_"+c,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,i,a):function(e,t){return t.filter((t=>t!==e))}(e.value,i))}}),m.default.createElement("span",null,e.label));return r?m.default.createElement("label",{key:c,className:"checkbox-inline "+h},f):m.default.createElement("div",{key:c,className:"checkbox "+h},m.default.createElement("label",null,f))})))}};function L(){return{fields:A,templates:U,widgets:W,rootSchema:{},formContext:{}}}class $ 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,n){return void 0===o&&(o=[]),void 0===n&&(n=[""]),Object.keys(e).forEach((i=>{if("object"==typeof e[i]){const a=n.map((e=>e+"."+i));e[i][t.RJSF_ADDITONAL_PROPERTIES_FLAG]&&""!==e[i][t.NAME_KEY]?o.push(e[i][t.NAME_KEY]):r(e[i],o,a)}else i===t.NAME_KEY&&""!==e[i]&&n.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:n,noValidate:i,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=!i&&l;let m={formData:e,schema:c},p=e;if(!0===o&&!0===n){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(d,p);let t=e.errors,a=e.errorSchema;const o=t,n=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:n}}else if(!i&&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,onError:n}=this.props;let{formData:i}=this.state;const{schema:l,schemaUtils:s}=this.state;if(!0===t){const e=s.retrieveSchema(l,i),t=s.toPathSchema(e,"",i),a=this.getFieldNames(t,i);i=this.getUsedFormData(i,a)}if(!r){const e=this.validate(s,i);let t=e.errors,r=e.errorSchema;const o=t,l=r;if(t.length>0){if(a){const o=s.mergeValidationData(e,a);r=o.errorSchema,t=o.errors}return void this.setState({errors:t,errorSchema:r,schemaValidationErrors:o,schemaValidationErrorSchema:l},(()=>{n?n(t):console.error("Form validation failed",t)}))}}const d=a||{},c=a?s.getValidator().toErrorList(a):[];this.setState({formData:i,errors:c,errorSchema:d,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,n=("uiSchema"in e?e.uiSchema:this.props.uiSchema)||{},i=void 0!==a,l=i&&!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(d,c,o);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,n["ui:rootFieldId"],c,e.idPrefix,e.idSeparator);return{schemaUtils:d,schema:o,uiSchema:n,idSchema:g,formData:c,edit:i,errors:m,errorSchema:p,schemaValidationErrors:h,schemaValidationErrorSchema:f}}shouldComponentUpdate(e,a){return t.shouldRender(this,e,a)}validate(e,t,a){void 0===a&&(a=this.props.schema);const{customValidate:r,transformErrors:o}=this.props,n=e.retrieveSchema(a,t);return e.getValidator().validateFormData(t,n,r,o)}renderErrors(e){const{errors:a,errorSchema:r,schema:o,uiSchema:n}=this.state,{showErrorList:i,formContext:l}=this.props,s=t.getUiOptions(n),d=t.getTemplate("ErrorListTemplate",e,s);return a&&a.length&&0!=i?m.default.createElement(d,{errors:a,errorSchema:r||{},schema:o,uiSchema:n,formContext:l}):null}getRegistry(){var e;const{schemaUtils:t}=this.state,{fields:a,templates:r,widgets:o,formContext:n}=L();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||n,schemaUtils:t}}submit(){this.formElement.current&&(this.formElement.current.dispatchEvent(new CustomEvent("submit",{cancelable:!0})),this.formElement.current.requestSubmit())}render(){const{children:e,id:t,idPrefix:a,idSeparator:r,className:o="",tagName:n,name:i,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:b,formData:v,errorSchema:C,idSchema:F}=this.state,D=this.getRegistry(),{SchemaField:x}=D.fields,{SubmitButton:k}=D.templates.ButtonTemplates;return m.default.createElement(E||n||"form",{className:o||"rjsf",id:t,name:i,method:l,target:s,action:d,autoComplete:c,encType:u,acceptCharset:p,noValidate:h,onSubmit:this.onSubmit,as:E?n:void 0,ref:this.formElement},this.renderErrors(D),m.default.createElement(x,{name:"",schema:S,uiSchema:b,errorSchema:C,idSchema:F,idPrefix:a,idSeparator:r,formContext:y,formData:v,onChange:this.onChange,onBlur:this.onBlur,onFocus:this.onFocus,registry:D,disabled:f,readonly:g}),e||m.default.createElement(k,{uiSchema:b}))}}exports.default=$,exports.getDefaultRegistry=L,exports.withTheme=function(t){return e.forwardRef(((e,a)=>{var r,o;let{fields:n,widgets:i,templates:l,...s}=e;return n={...t.fields,...n},i={...t.widgets,...i},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($,{...t,...s,fields:n,widgets:i,templates:l,ref:a})}))};
2
2
  //# sourceMappingURL=core.cjs.production.min.js.map