@rjsf/core 4.2.3 → 5.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist/core.cjs.development.js +2952 -4606
- package/dist/core.cjs.development.js.map +1 -1
- package/dist/core.cjs.production.min.js +1 -1
- package/dist/core.cjs.production.min.js.map +1 -1
- package/dist/core.esm.js +2900 -4564
- package/dist/core.esm.js.map +1 -1
- package/dist/core.umd.development.js +4054 -0
- package/dist/core.umd.development.js.map +1 -0
- package/dist/core.umd.production.min.js +2 -0
- package/dist/core.umd.production.min.js.map +1 -0
- package/dist/index.d.ts +295 -70
- package/package.json +41 -71
- package/dist/cjs/components/AddButton.js +0 -39
- package/dist/cjs/components/ErrorList.js +0 -41
- package/dist/cjs/components/Form.js +0 -588
- package/dist/cjs/components/IconButton.js +0 -37
- package/dist/cjs/components/fields/ArrayField.js +0 -977
- package/dist/cjs/components/fields/BooleanField.js +0 -107
- package/dist/cjs/components/fields/DescriptionField.js +0 -50
- package/dist/cjs/components/fields/MultiSchemaField.js +0 -275
- package/dist/cjs/components/fields/NullField.js +0 -66
- package/dist/cjs/components/fields/NumberField.js +0 -156
- package/dist/cjs/components/fields/ObjectField.js +0 -366
- package/dist/cjs/components/fields/SchemaField.js +0 -546
- package/dist/cjs/components/fields/StringField.js +0 -98
- package/dist/cjs/components/fields/TitleField.js +0 -42
- package/dist/cjs/components/fields/UnsupportedField.js +0 -46
- package/dist/cjs/components/fields/index.js +0 -47
- package/dist/cjs/components/widgets/AltDateTimeWidget.js +0 -48
- package/dist/cjs/components/widgets/AltDateWidget.js +0 -301
- package/dist/cjs/components/widgets/BaseInput.js +0 -151
- package/dist/cjs/components/widgets/CheckboxWidget.js +0 -85
- package/dist/cjs/components/widgets/CheckboxesWidget.js +0 -121
- package/dist/cjs/components/widgets/ColorWidget.js +0 -45
- package/dist/cjs/components/widgets/DateTimeWidget.js +0 -43
- package/dist/cjs/components/widgets/DateWidget.js +0 -39
- package/dist/cjs/components/widgets/EmailWidget.js +0 -34
- package/dist/cjs/components/widgets/FileWidget.js +0 -215
- package/dist/cjs/components/widgets/HiddenWidget.js +0 -36
- package/dist/cjs/components/widgets/PasswordWidget.js +0 -34
- package/dist/cjs/components/widgets/RadioWidget.js +0 -107
- package/dist/cjs/components/widgets/RangeWidget.js +0 -46
- package/dist/cjs/components/widgets/SelectWidget.js +0 -151
- package/dist/cjs/components/widgets/SubmitButton.js +0 -35
- package/dist/cjs/components/widgets/TextWidget.js +0 -31
- package/dist/cjs/components/widgets/TextareaWidget.js +0 -81
- package/dist/cjs/components/widgets/URLWidget.js +0 -34
- package/dist/cjs/components/widgets/UpDownWidget.js +0 -36
- package/dist/cjs/components/widgets/index.js +0 -73
- package/dist/cjs/defaultRegistry.js +0 -23
- package/dist/cjs/index.js +0 -37
- package/dist/cjs/types.js +0 -47
- package/dist/cjs/utils.js +0 -1407
- package/dist/cjs/validate.js +0 -354
- package/dist/cjs/withTheme.js +0 -53
- package/dist/components/AddButton.d.ts +0 -5
- package/dist/components/ErrorList.d.ts +0 -1
- package/dist/components/Form.d.ts +0 -48
- package/dist/components/IconButton.d.ts +0 -1
- package/dist/components/fields/ArrayField.d.ts +0 -51
- package/dist/components/fields/BooleanField.d.ts +0 -45
- package/dist/components/fields/DescriptionField.d.ts +0 -9
- package/dist/components/fields/MultiSchemaField.d.ts +0 -40
- package/dist/components/fields/NullField.d.ts +0 -6
- package/dist/components/fields/NumberField.d.ts +0 -63
- package/dist/components/fields/ObjectField.d.ts +0 -22
- package/dist/components/fields/SchemaField.d.ts +0 -39
- package/dist/components/fields/StringField.d.ts +0 -45
- package/dist/components/fields/TitleField.d.ts +0 -10
- package/dist/components/fields/UnsupportedField.d.ts +0 -14
- package/dist/components/fields/index.d.ts +0 -26
- package/dist/components/widgets/AltDateTimeWidget.d.ts +0 -22
- package/dist/components/widgets/AltDateWidget.d.ts +0 -22
- package/dist/components/widgets/BaseInput.d.ts +0 -23
- package/dist/components/widgets/CheckboxWidget.d.ts +0 -18
- package/dist/components/widgets/CheckboxesWidget.d.ts +0 -26
- package/dist/components/widgets/ColorWidget.d.ts +0 -15
- package/dist/components/widgets/DateTimeWidget.d.ts +0 -8
- package/dist/components/widgets/DateWidget.d.ts +0 -8
- package/dist/components/widgets/EmailWidget.d.ts +0 -8
- package/dist/components/widgets/FileWidget.d.ts +0 -19
- package/dist/components/widgets/HiddenWidget.d.ts +0 -12
- package/dist/components/widgets/PasswordWidget.d.ts +0 -8
- package/dist/components/widgets/RadioWidget.d.ts +0 -22
- package/dist/components/widgets/RangeWidget.d.ts +0 -8
- package/dist/components/widgets/SelectWidget.d.ts +0 -24
- package/dist/components/widgets/SubmitButton.d.ts +0 -3
- package/dist/components/widgets/TextWidget.d.ts +0 -9
- package/dist/components/widgets/TextareaWidget.d.ts +0 -25
- package/dist/components/widgets/URLWidget.d.ts +0 -8
- package/dist/components/widgets/UpDownWidget.d.ts +0 -8
- package/dist/components/widgets/index.d.ts +0 -43
- package/dist/defaultRegistry.d.ts +0 -41
- package/dist/es/components/AddButton.js +0 -28
- package/dist/es/components/ErrorList.js +0 -31
- package/dist/es/components/Form.js +0 -572
- package/dist/es/components/IconButton.js +0 -27
- package/dist/es/components/fields/ArrayField.js +0 -959
- package/dist/es/components/fields/BooleanField.js +0 -93
- package/dist/es/components/fields/DescriptionField.js +0 -39
- package/dist/es/components/fields/MultiSchemaField.js +0 -261
- package/dist/es/components/fields/NullField.js +0 -55
- package/dist/es/components/fields/NumberField.js +0 -141
- package/dist/es/components/fields/ObjectField.js +0 -351
- package/dist/es/components/fields/SchemaField.js +0 -528
- package/dist/es/components/fields/StringField.js +0 -84
- package/dist/es/components/fields/TitleField.js +0 -30
- package/dist/es/components/fields/UnsupportedField.js +0 -35
- package/dist/es/components/fields/index.js +0 -26
- package/dist/es/components/widgets/AltDateTimeWidget.js +0 -36
- package/dist/es/components/widgets/AltDateWidget.js +0 -287
- package/dist/es/components/widgets/BaseInput.js +0 -140
- package/dist/es/components/widgets/CheckboxWidget.js +0 -73
- package/dist/es/components/widgets/CheckboxesWidget.js +0 -108
- package/dist/es/components/widgets/ColorWidget.js +0 -34
- package/dist/es/components/widgets/DateTimeWidget.js +0 -31
- package/dist/es/components/widgets/DateWidget.js +0 -28
- package/dist/es/components/widgets/EmailWidget.js +0 -23
- package/dist/es/components/widgets/FileWidget.js +0 -201
- package/dist/es/components/widgets/HiddenWidget.js +0 -25
- package/dist/es/components/widgets/PasswordWidget.js +0 -23
- package/dist/es/components/widgets/RadioWidget.js +0 -94
- package/dist/es/components/widgets/RangeWidget.js +0 -34
- package/dist/es/components/widgets/SelectWidget.js +0 -138
- package/dist/es/components/widgets/SubmitButton.js +0 -24
- package/dist/es/components/widgets/TextWidget.js +0 -20
- package/dist/es/components/widgets/TextareaWidget.js +0 -70
- package/dist/es/components/widgets/URLWidget.js +0 -23
- package/dist/es/components/widgets/UpDownWidget.js +0 -24
- package/dist/es/components/widgets/index.js +0 -43
- package/dist/es/defaultRegistry.js +0 -12
- package/dist/es/index.js +0 -16
- package/dist/es/types.js +0 -34
- package/dist/es/utils.js +0 -1309
- package/dist/es/validate.js +0 -338
- package/dist/es/withTheme.js +0 -39
- package/dist/react-jsonschema-form.js +0 -26
- package/dist/react-jsonschema-form.js.map +0 -1
- package/dist/types.d.ts +0 -50
- package/dist/utils.d.ts +0 -81
- package/dist/validate.d.ts +0 -21
- package/dist/withTheme.d.ts +0 -10
- package/index.d.ts +0 -500
- package/lib/components/AddButton.js +0 -28
- package/lib/components/ErrorList.js +0 -31
- package/lib/components/Form.js +0 -572
- package/lib/components/IconButton.js +0 -27
- package/lib/components/fields/ArrayField.js +0 -959
- package/lib/components/fields/BooleanField.js +0 -93
- package/lib/components/fields/DescriptionField.js +0 -39
- package/lib/components/fields/MultiSchemaField.js +0 -261
- package/lib/components/fields/NullField.js +0 -55
- package/lib/components/fields/NumberField.js +0 -141
- package/lib/components/fields/ObjectField.js +0 -351
- package/lib/components/fields/SchemaField.js +0 -528
- package/lib/components/fields/StringField.js +0 -84
- package/lib/components/fields/TitleField.js +0 -30
- package/lib/components/fields/UnsupportedField.js +0 -35
- package/lib/components/fields/index.js +0 -26
- package/lib/components/widgets/AltDateTimeWidget.js +0 -36
- package/lib/components/widgets/AltDateWidget.js +0 -287
- package/lib/components/widgets/BaseInput.js +0 -140
- package/lib/components/widgets/CheckboxWidget.js +0 -73
- package/lib/components/widgets/CheckboxesWidget.js +0 -108
- package/lib/components/widgets/ColorWidget.js +0 -34
- package/lib/components/widgets/DateTimeWidget.js +0 -31
- package/lib/components/widgets/DateWidget.js +0 -28
- package/lib/components/widgets/EmailWidget.js +0 -23
- package/lib/components/widgets/FileWidget.js +0 -201
- package/lib/components/widgets/HiddenWidget.js +0 -25
- package/lib/components/widgets/PasswordWidget.js +0 -23
- package/lib/components/widgets/RadioWidget.js +0 -94
- package/lib/components/widgets/RangeWidget.js +0 -34
- package/lib/components/widgets/SelectWidget.js +0 -138
- package/lib/components/widgets/SubmitButton.js +0 -24
- package/lib/components/widgets/TextWidget.js +0 -20
- package/lib/components/widgets/TextareaWidget.js +0 -70
- package/lib/components/widgets/URLWidget.js +0 -23
- package/lib/components/widgets/UpDownWidget.js +0 -24
- package/lib/components/widgets/index.js +0 -43
- package/lib/defaultRegistry.js +0 -12
- package/lib/index.js +0 -16
- package/lib/types.js +0 -34
- package/lib/utils.js +0 -1309
- package/lib/validate.js +0 -338
- package/lib/withTheme.js +0 -39
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("@rjsf/utils"),require("lodash-es/pick"),require("lodash-es/get"),require("lodash-es/isEmpty"),require("lodash-es/isObject"),require("lodash-es/set"),require("nanoid"),require("lodash-es/unset"),require("lodash-es/has"),require("lodash-es/omit")):"function"==typeof define&&define.amd?define(["exports","react","@rjsf/utils","lodash-es/pick","lodash-es/get","lodash-es/isEmpty","lodash-es/isObject","lodash-es/set","nanoid","lodash-es/unset","lodash-es/has","lodash-es/omit"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self)["@rjsf/core"]={},e.React,e.utils,e._pick,e.get,e._isEmpty,e.isObject,e.set,e.nanoid,e.unset,e.has,e.omit)}(this,(function(e,t,a,r,o,n,i,l,s,d,c,u){"use strict";function m(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var p=m(t),h=m(r),f=m(o),g=m(n),y=m(i),E=m(l),S=m(d),b=m(c),v=m(u);function C(){return s.nanoid()}function F(e){return Array.isArray(e)?e.map((e=>({key:C(),item:e}))):[]}function D(e){return Array.isArray(e)?e.map((e=>e.item)):[]}class x extends t.Component{constructor(e){super(e),this.onOptionChange=e=>{const t=parseInt(e,10),{formData:r,onChange:o,options:n,registry:i}=this.props,{schemaUtils:l}=i,s=l.retrieveSchema(n[t],r);let d;if("object"===a.guessType(r)&&("object"===s.type||s.properties)){d=Object.assign({},r);const e=n.slice();e.splice(t,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(n[t],d)),this.setState({selectedOption:parseInt(e,10)})};const{formData:t,options:r}=this.props;this.state={selectedOption:this.getMatchingOption(0,t,r)}}componentDidUpdate(e,t){const{formData:r,options:o,idSchema:n}=this.props,{selectedOption:i}=this.state;if(!a.deepEquals(r,e.formData)&&n.$id===e.idSchema.$id){const e=this.getMatchingOption(i,r,o);if(!t||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:t,disabled:r=!1,readonly:o=!1,hideError:n=!1,errorSchema:i={},formData:l,formContext:s,idPrefix:d,idSeparator:c,idSchema:u,onBlur:m,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}=a.getUiOptions(E),k=a.getWidget({type:"number"},D,b),N=g[F]||null;let T;N&&(T=N.type?N:Object.assign({},N,{type:t}));const w=g.map(((e,t)=>({label:e.title||"Option "+(t+1),value:t})));return p.default.createElement("div",{className:"panel panel-default panel-body"},p.default.createElement("div",{className:"form-group"},p.default.createElement(k,{id:u.$id+(S.oneOf?"__oneof_select":"__anyof_select"),schema:{type:"number",default:0},onChange:this.onOptionChange,onBlur:m,onFocus:f,value:F,options:{enumOptions:w},registry:y,formContext:s,...x,label:""})),null!==N&&p.default.createElement(C,{name:e,schema:T,uiSchema:E,errorSchema:i,idSchema:u,idPrefix:d,idSeparator:c,formData:l,formContext:s,onChange:h,onBlur:m,onFocus:f,registry:y,disabled:r,readonly:o,hideError:n}))}}const k=/\.([0-9]*0)*$/,N=/[0.]0*$/,T={array:"ArrayField",boolean:"BooleanField",integer:"NumberField",number:"NumberField",object:"ObjectField",string:"StringField",null:"NullField"};function w(e){const{id:t,help:a}=e;return a?p.default.createElement("string"==typeof a?"p":"div",{id:t,className:"help-block"},a):null}function O(e){const{errors:t=[]}=e;return 0===t.length?null:p.default.createElement("div",null,p.default.createElement("ul",{className:"error-detail bs-callout bs-callout-info"},t.filter((e=>!!e)).map(((e,t)=>p.default.createElement("li",{className:"text-danger",key:t},e)))))}function A(e){const{schema:t,idSchema:r,uiSchema:o,formData:n,errorSchema:i,idPrefix:l,idSeparator:s,name:d,onChange:c,onKeyChange:u,onDropPropertyClick:m,required:h,registry:f,wasPropertyKeyModified:g=!1}=e,{formContext:E,schemaUtils:S}=f,b=a.getUiOptions(o),C=a.getTemplate("FieldTemplate",f,b),F=a.getTemplate("DescriptionFieldTemplate",f,b),D=S.retrieveSchema(t,n),x=a.mergeObjects(S.toIdSchema(D,r.$id,n,l,s),r),k=function(e,t,r,o){const n=t.field,{fields:i}=o;if("function"==typeof n)return n;if("string"==typeof n&&n in i)return i[n];const l=a.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=a.getTemplate("UnsupportedFieldTemplate",o,t);return p.default.createElement(n,{schema:e,idSchema:r,reason:"Unknown field type "+e.type,registry:o})}:()=>null}(D,b,x,f),N=Boolean(e.disabled||b.disabled),A=Boolean(e.readonly||b.readonly||e.schema.readOnly||D.readOnly),B=b.hideError,I=void 0===B?e.hideError:Boolean(B),U=Boolean(e.autofocus||b.autofocus);if(0===Object.keys(D).length)return null;const q=S.getDisplayLabel(D,o),{__errors:P,..._}=i||{},R=v.default(o,["ui:classNames","classNames"]);"ui:options"in R&&(R["ui:options"]=v.default(R["ui:options"],["classNames"]));const V=p.default.createElement(k,{...e,idSchema:x,schema:D,uiSchema:R,disabled:N,readonly:A,hideError:I,autofocus:U,errorSchema:_,formContext:E,rawErrors:P}),j=x[a.ID_KEY];let M;M=g?d:b.title||e.schema.title||D.title||d;const K=b.description||e.schema.description||D.description||"",W=P,L=b.help,$="hidden"===b.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),b.classNames&&Y.push(b.classNames);const z={description:p.default.createElement(F,{id:j+"__description",description:K,registry:f}),rawDescription:K,help:p.default.createElement(w,{id:j+"__help",help:L}),rawHelp:"string"==typeof L?L:void 0,errors:I?void 0:p.default.createElement(O,{errors:W}),rawErrors:I?void 0:W,id:j,label:M,hidden:$,onChange:c,onKeyChange:u,onDropPropertyClick:m,required:h,disabled:N,readonly:A,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 p.default.createElement(C,{...z},p.default.createElement(p.default.Fragment,null,V,D.anyOf&&!(null!=o&&o["ui:field"])&&!S.isSelect(D)&&p.default.createElement(J,{name:d,disabled:N,readonly:A,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(y.default(e)?e:{},n))),baseType:D.type,registry:f,schema:D,uiSchema:o}),D.oneOf&&!(null!=o&&o["ui:field"])&&!S.isSelect(D)&&p.default.createElement(G,{name:d,disabled:N,readonly:A,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(y.default(e)?e:{},n))),baseType:D.type,registry:f,schema:D,uiSchema:o})))}const B={AnyOfField:x,ArrayField:class extends t.Component{constructor(e){super(e),this._getNewFormDataRow=()=>{const{schema:e,registry:t}=this.props,{schemaUtils:r}=t;let o=e.items;return a.isFixedItems(e)&&a.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:C(),item:this._getNewFormDataRow()}];this.setState({keyedFormData:r,updatedKeyedFormData:!0},(()=>t(D(r))))},this.onAddIndexClick=e=>t=>{t&&t.preventDefault();const{onChange:a}=this.props,{keyedFormData:r}=this.state,o={key:C(),item:this._getNewFormDataRow()},n=[...r];n.splice(e,0,o),this.setState({keyedFormData:n,updatedKeyedFormData:!0},(()=>a(D(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?E.default(n,[a],r[t]):a>e&&E.default(n,[a-1],r[t])}}const i=o.filter(((t,a)=>a!==e));this.setState({keyedFormData:i,updatedKeyedFormData:!0},(()=>a(D(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?E.default(n,[t],o[e]):r==t?E.default(n,[e],o[t]):E.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(D(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:t=[]}=e,r=F(t);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]}))):F(a)}}get itemTitle(){const{schema:e}=this.props;return f.default(e,[a.ITEMS_KEY,"title"],f.default(e,[a.ITEMS_KEY,"description"],"Item"))}isItemRequired(e){return Array.isArray(e.type)?!e.type.includes("null"):"null"!==e.type}canAddItem(e){const{schema:t,uiSchema:r}=this.props;let{addable:o}=a.getUiOptions(r);return!1!==o&&(o=void 0===t.maxItems||e.length<t.maxItems),o}render(){const{schema:e,uiSchema:t,idSchema:r,registry:o}=this.props,{schemaUtils:n}=o;if(!(a.ITEMS_KEY in e)){const n=a.getUiOptions(t),i=a.getTemplate("UnsupportedFieldTemplate",o,n);return p.default.createElement(i,{schema:e,idSchema:r,reason:"Missing items definition",registry:o})}return n.isMultiSelect(e)?this.renderMultiSelect():a.isCustomWidget(t)?this.renderCustomWidget():a.isFixedItems(e)?this.renderFixedArray():n.isFilesArray(e,t)?this.renderFiles():this.renderNormalArray()}renderNormalArray(){const{schema:e,uiSchema:t={},errorSchema:r,idSchema:o,name:n,disabled:i=!1,readonly:l=!1,autofocus:s=!1,required:d=!1,registry:c,onBlur:u,onFocus:m,idPrefix:h,idSeparator:f="_",rawErrors:g}=this.props,{keyedFormData:E}=this.state,S=void 0===e.title?n:e.title,{schemaUtils:b,formContext:v}=c,C=a.getUiOptions(t),F=y.default(e.items)?e.items:{},x=b.retrieveSchema(F),k=D(this.state.keyedFormData),N={canAdd:this.canAddItem(k),items:E.map(((e,a)=>{const{key:i,item:l}=e,d=l,c=b.retrieveSchema(F,d),p=r?r[a]:void 0,y=b.toIdSchema(c,o.$id+f+a,d,h,f);return this.renderArrayFieldItem({key:i,index:a,name:n&&n+"-"+a,canMoveUp:a>0,canMoveDown:a<k.length-1,itemSchema:c,itemIdSchema:y,itemErrorSchema:p,itemData:d,itemUiSchema:t.items,autofocus:s&&0===a,onBlur:u,onFocus:m,rawErrors:g})})),className:"field field-array field-array-of-"+x.type,disabled:i,idSchema:o,uiSchema:t,onAddClick:this.onAddClick,readonly:l,required:d,schema:e,title:S,formContext:v,formData:k,rawErrors:g,registry:c},T=a.getTemplate("ArrayFieldTemplate",c,C);return p.default.createElement(T,{...N})}renderCustomWidget(){const{schema:e,idSchema:t,uiSchema:r,disabled:o=!1,readonly:n=!1,autofocus:i=!1,required:l=!1,hideError:s,placeholder:d,onBlur:c,onFocus:u,formData:m=[],registry:h,rawErrors:f,name:g}=this.props,{widgets:y,formContext:E}=h,S=e.title||g,{widget:b,...v}=a.getUiOptions(r),C=a.getWidget(e,b,y);return p.default.createElement(C,{id:t&&t.$id,multiple:!0,onChange:this.onSelectChange,onBlur:c,onFocus:u,options:v,schema:e,uiSchema:r,registry:h,value:m,disabled:o,readonly:n,hideError:s,required:l,label:S,placeholder:d,formContext:E,autofocus:i,rawErrors:f})}renderMultiSelect(){const{schema:e,idSchema:t,uiSchema:r,formData:o=[],disabled:n=!1,readonly:i=!1,autofocus:l=!1,required:s=!1,placeholder:d,onBlur:c,onFocus:u,registry:m,rawErrors:h,name:f}=this.props,{widgets:g,schemaUtils:y,formContext:E}=m,S=y.retrieveSchema(e.items,o),b=e.title||f,v=a.optionsList(S),{widget:C="select",...F}=a.getUiOptions(r),D=a.getWidget(e,C,g);return p.default.createElement(D,{id:t&&t.$id,multiple:!0,onChange:this.onSelectChange,onBlur:c,onFocus:u,options:{...F,enumOptions:v},schema:e,uiSchema:r,registry:m,value:o,disabled:n,readonly:i,required:s,label:b,placeholder:d,formContext:E,autofocus:l,rawErrors:h})}renderFiles(){const{schema:e,uiSchema:t,idSchema:r,name:o,disabled:n=!1,readonly:i=!1,autofocus:l=!1,required:s=!1,onBlur:d,onFocus:c,registry:u,formData:m=[],rawErrors:h}=this.props,f=e.title||o,{widgets:g,formContext:y}=u,{widget:E="files",...S}=a.getUiOptions(t),b=a.getWidget(e,E,g);return p.default.createElement(b,{options:S,id:r&&r.$id,multiple:!0,onChange:this.onSelectChange,onBlur:d,onFocus:c,schema:e,uiSchema:t,title:f,value:m,disabled:n,readonly:i,required:s,registry:u,formContext:y,autofocus:l,rawErrors:h,label:""})}renderFixedArray(){const{schema:e,uiSchema:t={},formData:r=[],errorSchema:o,idPrefix:n,idSeparator:i="_",idSchema:l,name:s,disabled:d=!1,readonly:c=!1,autofocus:u=!1,required:m=!1,registry:h,onBlur:f,onFocus:g,rawErrors:E}=this.props,{keyedFormData:S}=this.state;let{formData:b=[]}=this.props;const v=e.title||s,C=a.getUiOptions(t),{schemaUtils:F,formContext:D}=h,x=(y.default(e.items)?e.items:[]).map(((e,t)=>F.retrieveSchema(e,r[t]))),k=y.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(((a,r)=>{const{key:d,item:c}=a,m=c,p=r>=x.length,h=p&&y.default(e.additionalItems)?F.retrieveSchema(e.additionalItems,m):x[r],S=F.toIdSchema(h,l.$id+i+r,m,n,i),v=p?t.additionalItems||{}:Array.isArray(t.items)?t.items[r]:t.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:g,rawErrors:E})})),onAddClick:this.onAddClick,readonly:c,required:m,registry:h,schema:e,uiSchema:t,title:v,formContext:D,rawErrors:E},T=a.getTemplate("ArrayFieldTemplate",h,C);return p.default.createElement(T,{...N})}renderArrayFieldItem(e){const{key:t,index:r,name:o,canRemove:n=!0,canMoveUp:i=!0,canMoveDown:l=!0,itemSchema:s,itemData:d,itemUiSchema:c,itemIdSchema:u,itemErrorSchema:m,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}=a.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:p.default.createElement(k,{name:o,index:r,schema:s,uiSchema:c,formData:d,formContext:x,errorSchema:m,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:t,onAddIndexClick:this.onAddIndexClick,onDropIndexClick:this.onDropIndexClick,onReorderClick:this.onReorderClick,readonly:C,registry:D}}},BooleanField:function(e){const{schema:t,name:r,uiSchema:o,idSchema:n,formData:i,registry:l,required:s,disabled:d,readonly:c,autofocus:u,onChange:m,onFocus:h,onBlur:f,rawErrors:g}=e,{title:E}=t,{widgets:S,formContext:b}=l,{widget:v="checkbox",...C}=a.getUiOptions(o),F=a.getWidget(t,v,S);let D;if(Array.isArray(t.oneOf))D=a.optionsList({oneOf:t.oneOf.map((e=>{if(y.default(e))return{...e,title:e.title||(!0===e.const?"Yes":"No")}})).filter((e=>e))});else{var x;const e=t;t.enum=null!=(x=t.enum)?x:[!0,!1],D=!e.enumNames&&t.enum&&2===t.enum.length&&t.enum.every((e=>"boolean"==typeof e))?[{value:t.enum[0],label:t.enum[0]?"Yes":"No"},{value:t.enum[1],label:t.enum[1]?"Yes":"No"}]:a.optionsList({enum:t.enum,enumNames:e.enumNames})}return p.default.createElement(F,{options:{...C,enumOptions:D},schema:t,uiSchema:o,id:n&&n.$id,onChange:m,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:g})},NumberField:function(e){const{registry:r,onChange:o,formData:n,value:i}=e,[l,s]=t.useState(i),{StringField:d}=r.fields;let c=n;const u=t.useCallback((e=>{s(e),"."===(""+e).charAt(0)&&(e="0"+e);const t="string"==typeof e&&e.match(k)?a.asNumber(e.replace(N,"")):a.asNumber(e);o(t)}),[o]);if("string"==typeof l&&"number"==typeof c){const e=new RegExp((""+c).replace(".","\\.")+"\\.?0*$");l.match(e)&&(c=l)}return p.default.createElement(d,{...e,formData:c,onChange:u})},ObjectField:class extends t.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};S.default(o,e),a(o)},this.getAvailableKey=(e,t)=>{const{uiSchema:r}=this.props,{duplicateKeySuffixSeparator:o="-"}=a.getUiOptions(r);let n=0,i=e;for(;i in t;)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(!y.default(e.additionalProperties))return;const{formData:t,onChange:r,registry:o}=this.props;let n=e.additionalProperties.type;const i={...t};if(a.REF_KEY in e.additionalProperties){const{schemaUtils:r}=o;n=r.retrieveSchema({$ref:e.additionalProperties[a.REF_KEY]},t).type}const l=this.getAvailableKey("newKey",i);E.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:t={},formData:r,errorSchema:o,idSchema:n,name:i,required:l=!1,disabled:s=!1,readonly:d=!1,hideError:c,idPrefix:u,idSeparator:m,onBlur:h,onFocus:g,registry:y}=this.props,{fields:E,formContext:S,schemaUtils:v}=y,{SchemaField:C}=E,F=v.retrieveSchema(e,r),D=a.getUiOptions(t),{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=a.orderProperties(e,D.order)}catch(e){return p.default.createElement("div",null,p.default.createElement("p",{className:"config-error",style:{color:"red"}},"Invalid ",i||"root"," object field configuration:",p.default.createElement("em",null,e.message),"."),p.default.createElement("pre",null,JSON.stringify(F)))}const w=a.getTemplate("ObjectFieldTemplate",y,D),O={title:D.title||k,description:N,properties:T.map((e=>{const i=b.default(F,[a.PROPERTIES_KEY,e,a.ADDITIONAL_PROPERTY_FLAG]),E=i?t.additionalProperties:t[e],v="hidden"===a.getUiOptions(E).widget,D=f.default(n,[e],{});return{content:p.default.createElement(C,{key:e,name:e,required:this.isRequired(e),schema:f.default(F,[a.PROPERTIES_KEY,e],{}),uiSchema:E,errorSchema:f.default(o,e),idSchema:D,idPrefix:u,idSeparator:m,formData:f.default(r,e),formContext:S,wasPropertyKeyModified:this.state.wasPropertyKeyModified,onKeyChange:this.onKeyChange(e),onChange:this.onPropertyChange(e,i),onBlur:h,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:t,schema:F,formData:r,formContext:S,registry:y};return p.default.createElement(w,{...O,onAddClick:this.handleAddClick})}},OneOfField:x,SchemaField:class extends p.default.Component{shouldComponentUpdate(e){return!a.deepEquals(this.props,e)}render(){return p.default.createElement(A,{...this.props})}},StringField:function(e){const{schema:t,name:r,uiSchema:o,idSchema:n,formData:i,required:l,disabled:s=!1,readonly:d=!1,autofocus:c=!1,onChange:u,onBlur:m,onFocus:h,registry:f,rawErrors:g}=e,{title:y,format:E}=t,{widgets:S,formContext:b,schemaUtils:v}=f,C=v.isSelect(t)?a.optionsList(t):void 0;let F=C?"select":"text";E&&a.hasWidget(t,E,S)&&(F=E);const{widget:D=F,placeholder:x="",...k}=a.getUiOptions(o),N=a.getWidget(t,D,S);return p.default.createElement(N,{options:{...k,enumOptions:C},schema:t,uiSchema:o,id:n&&n.$id,label:void 0===y?r:y,value:i,onChange:u,onBlur:m,onFocus:h,required:l,disabled:s,readonly:d,formContext:b,autofocus:c,registry:f,placeholder:x,rawErrors:g})},NullField:function(e){const{formData:a,onChange:r}=e;return t.useEffect((()=>{void 0===a&&r(null)}),[a,r]),null}};function I(e){const{iconType:t="default",icon:a,className:r,...o}=e;return p.default.createElement("button",{type:"button",className:"btn btn-"+t+" "+r,...o},p.default.createElement("i",{className:"glyphicon glyphicon-"+a}))}function U(e){const{label:t,required:a,id:r}=e;return t?p.default.createElement("label",{className:"control-label",htmlFor:r},t,a&&p.default.createElement("span",{className:"required"},"*")):null}function q(e){const{id:t,classNames:r,disabled:o,label:n,onKeyChange:i,onDropPropertyClick:l,readonly:s,required:d,schema:c,children:u,registry:m}=e,{RemoveButton:h}=m.templates.ButtonTemplates;return p.default.createElement("div",{className:r},a.ADDITIONAL_PROPERTY_FLAG in c?p.default.createElement("div",{className:"row"},p.default.createElement("div",{className:"col-xs-5 form-additional"},p.default.createElement("div",{className:"form-group"},p.default.createElement(U,{label:n+" Key",required:d,id:t+"-key"}),p.default.createElement("input",{className:"form-control",type:"text",id:t+"-key",onBlur:e=>i(e.target.value),defaultValue:n}))),p.default.createElement("div",{className:"form-additional form-group col-xs-5"},u),p.default.createElement("div",{className:"col-xs-2"},p.default.createElement(h,{className:"array-item-remove btn-block",style:{border:"0"},disabled:o||s,onClick:l(n)}))):u)}const P={ArrayFieldDescriptionTemplate:function(e){const{idSchema:t,description:r,registry:o,uiSchema:n}=e;if(!r)return null;const i=a.getUiOptions(n),l=a.getTemplate("DescriptionFieldTemplate",o,i);return p.default.createElement(l,{id:t.$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:m}=e,{MoveDownButton:h,MoveUpButton:f,RemoveButton:g}=m.templates.ButtonTemplates,y={flex:1,paddingLeft:6,paddingRight:6,fontWeight:"bold"};return p.default.createElement("div",{className:a},p.default.createElement("div",{className:o?"col-xs-9":"col-xs-12"},t),o&&p.default.createElement("div",{className:"col-xs-3 array-item-toolbox"},p.default.createElement("div",{className:"btn-group",style:{display:"flex",justifyContent:"space-around"}},(i||n)&&p.default.createElement(f,{style:y,disabled:r||u||!i,onClick:c(s,s-1)}),(i||n)&&p.default.createElement(h,{style:y,disabled:r||u||!n,onClick:c(s,s+1)}),l&&p.default.createElement(g,{style:y,disabled:r||u,onClick:d(s)}))))},ArrayFieldTemplate:function(e){const{canAdd:t,className:r,disabled:o,idSchema:n,uiSchema:i,items:l,onAddClick:s,readonly:d,registry:c,required:u,schema:m,title:h}=e,f=a.getUiOptions(i),g=a.getTemplate("ArrayFieldDescriptionTemplate",c,f),y=a.getTemplate("ArrayFieldItemTemplate",c,f),E=a.getTemplate("ArrayFieldTitleTemplate",c,f),{ButtonTemplates:{AddButton:S}}=c.templates;return p.default.createElement("fieldset",{className:r,id:n.$id},p.default.createElement(E,{idSchema:n,title:f.title||h,required:u,uiSchema:i,registry:c}),(f.description||m.description)&&p.default.createElement(g,{idSchema:n,description:f.description||m.description,uiSchema:i,registry:c}),p.default.createElement("div",{className:"row array-item-list"},l&&l.map((e=>{let{key:t,...a}=e;return p.default.createElement(y,{key:t,...a})}))),t&&p.default.createElement(S,{className:"array-item-add",onClick:s,disabled:o||d}))},ArrayFieldTitleTemplate:function(e){const{idSchema:t,title:r,uiSchema:o,required:n,registry:i}=e;if(!r)return null;const l=a.getUiOptions(o),s=a.getTemplate("TitleFieldTemplate",i,l);return p.default.createElement(s,{id:t.$id+"__title",title:r,required:n,uiSchema:o,registry:i})},ButtonTemplates:{SubmitButton:function(e){let{uiSchema:t}=e;const{submitText:r,norender:o,props:n={}}=a.getSubmitButtonOptions(t);return o?null:p.default.createElement("div",null,p.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 p.default.createElement("div",{className:"row"},p.default.createElement("p",{className:"col-xs-3 col-xs-offset-9 text-right "+t},p.default.createElement(I,{iconType:"info",icon:"plus",className:"btn-add col-xs-12",title:"Add",onClick:a,disabled:r})))},MoveDownButton:function(e){return p.default.createElement(I,{title:"Move down",className:"array-item-move-down",...e,icon:"arrow-down"})},MoveUpButton:function(e){return p.default.createElement(I,{title:"Move up",className:"array-item-move-up",...e,icon:"arrow-up"})},RemoveButton:function(e){return p.default.createElement(I,{title:"Remove",className:"array-item-remove",...e,iconType:"danger",icon:"remove"})}},BaseInputTemplate:function(e){const{id:r,value:o,readonly:n,disabled:i,autofocus:l,onBlur:s,onFocus:d,onChange:c,options:u,schema:m,uiSchema:h,formContext:f,registry:g,rawErrors:y,type:E,...S}=e;if(!r)throw console.log("No id for",e),new Error("no id for props "+JSON.stringify(e));const b={...S,...a.getInputProps(m,E,u)};let v;v="number"===b.type||"integer"===b.type?o||0===o?o:"":null==o?"":o;const C=t.useCallback((e=>{let{target:{value:t}}=e;return c(""===t?u.emptyValue:t)}),[c,u]),F=t.useCallback((e=>{let{target:{value:t}}=e;return s(r,t)}),[s,r]),D=t.useCallback((e=>{let{target:{value:t}}=e;return d(r,t)}),[d,r]);return p.default.createElement(p.default.Fragment,null,p.default.createElement("input",{key:r,id:r,className:"form-control",readOnly:n,disabled:i,autoFocus:l,value:v,...b,list:m.examples?"examples_"+r:void 0,onChange:C,onBlur:F,onFocus:D}),Array.isArray(m.examples)&&p.default.createElement("datalist",{key:"datalist_"+r,id:"examples_"+r},[...new Set(m.examples.concat(m.default?[m.default]:[]))].map((e=>p.default.createElement("option",{key:e,value:e})))))},DescriptionFieldTemplate:function(e){const{id:t,description:a}=e;return a?p.default.createElement("string"==typeof a?"p":"div",{id:t,className:"field-description"},a):null},ErrorListTemplate:function(e){let{errors:t}=e;return p.default.createElement("div",{className:"panel panel-danger errors"},p.default.createElement("div",{className:"panel-heading"},p.default.createElement("h3",{className:"panel-title"},"Errors")),p.default.createElement("ul",{className:"list-group"},t.map(((e,t)=>p.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?p.default.createElement("div",{className:"hidden"},r):p.default.createElement(q,{...e},d&&p.default.createElement(U,{label:a,required:s,id:t}),d&&i?i:null,r,o,n)},ObjectFieldTemplate:function(e){const{description:t,disabled:r,formData:o,idSchema:n,onAddClick:i,properties:l,readonly:s,registry:d,required:c,schema:u,title:m,uiSchema:h}=e,f=a.getUiOptions(h),g=a.getTemplate("TitleFieldTemplate",d,f),y=a.getTemplate("DescriptionFieldTemplate",d,f),{ButtonTemplates:{AddButton:E}}=d.templates;return p.default.createElement("fieldset",{id:n.$id},(f.title||m)&&p.default.createElement(g,{id:n.$id+"__title",title:f.title||m,required:c,uiSchema:h,registry:d}),(f.description||t)&&p.default.createElement(y,{id:n.$id+"__description",description:f.description||t,registry:d}),l.map((e=>e.content)),a.canExpand(u,h,o)&&p.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 p.default.createElement("legend",{id:t},a,r&&p.default.createElement("span",{className:"required"},"*"))},UnsupportedFieldTemplate:function(e){const{schema:t,idSchema:a,reason:r}=e;return p.default.createElement("div",{className:"unsupported-field"},p.default.createElement("p",null,"Unsupported field schema",a&&a.$id&&p.default.createElement("span",null," for"," field ",p.default.createElement("code",null,a.$id)),r&&p.default.createElement("em",null,": ",r),"."),t&&p.default.createElement("pre",null,JSON.stringify(t,null,2)))}};function _(e,t){const r=[];for(let o=e;o<=t;o++)r.push({value:o,label:a.pad(o,2)});return r}function R(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 m=n+"_"+t,{SelectWidget:h}=d.widgets;return p.default.createElement(h,{schema:{type:"integer"},id:m,className:"form-control",options:{enumOptions:_(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 V(e,t){return null===e?null:e.replace(";base64",";name="+encodeURIComponent(t)+";base64")}function j(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:V(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:p.default.createElement("ul",{className:"file-info"},t.map(((e,t)=>{const{name:a,size:r,type:o}=e;return p.default.createElement("li",{key:t},p.default.createElement("strong",null,a)," (",o,", ",r," bytes)")})))}function K(e){return e.filter((e=>void 0!==e)).map((e=>{const{blob:t,name:r}=a.dataURItoBlob(e);return{name:r,size:t.size,type:t.type}}))}function W(e,t){return t?Array.from(e.target.options).slice().filter((e=>e.selected)).map((e=>e.value)):e.target.value}function L(e){let{id:a,options:r={},placeholder:o,value:n,required:i,disabled:l,readonly:s,autofocus:d=!1,onChange:c,onBlur:u,onFocus:m}=e;const h=t.useCallback((e=>{let{target:{value:t}}=e;return c(""===t?r.emptyValue:t)}),[c,r.emptyValue]),f=t.useCallback((e=>{let{target:{value:t}}=e;return u(a,t)}),[u,a]),g=t.useCallback((e=>{let{target:{value:t}}=e;return m(a,t)}),[a,m]);return p.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})}L.defaultProps={autofocus:!1,options:{}};const $={PasswordWidget:function(e){const{options:t,registry:r}=e,o=a.getTemplate("BaseInputTemplate",r,t);return p.default.createElement(o,{type:"password",...e})},RadioWidget:function(e){let{options:a,value:r,required:o,disabled:n,readonly:i,autofocus:l=!1,onBlur:s,onFocus:d,onChange:c,id:u}=e;const m=Math.random().toString(),{enumOptions:h,enumDisabled:f,inline:g}=a,y=t.useCallback((e=>s(u,e.target.value)),[s,u]),E=t.useCallback((e=>d(u,e.target.value)),[d,u]);return p.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=p.default.createElement("span",null,p.default.createElement("input",{type:"radio",id:u+"_"+t,checked:a,name:m,required:o,value:e.value,disabled:n||s||i,autoFocus:l&&0===t,onChange:()=>c(e.value),onBlur:y,onFocus:E}),p.default.createElement("span",null,e.label));return g?p.default.createElement("label",{key:t,className:"radio-inline "+d},h):p.default.createElement("div",{key:t,className:"radio "+d},p.default.createElement("label",null,h))})))},UpDownWidget:function(e){const{options:t,registry:r}=e,o=a.getTemplate("BaseInputTemplate",r,t);return p.default.createElement(o,{type:"number",...e})},RangeWidget:function(e){const{value:t,registry:{templates:{BaseInputTemplate:a}}}=e;return p.default.createElement("div",{className:"field-range-wrapper"},p.default.createElement(a,{type:"range",...e}),p.default.createElement("span",{className:"range-view"},t))},SelectWidget:function(e){let{schema:r,id:o,options:n,value:i,required:l,disabled:s,readonly:d,multiple:c=!1,autofocus:u=!1,onChange:m,onBlur:h,onFocus:f,placeholder:g}=e;const{enumOptions:y,enumDisabled:E}=n,S=c?[]:"",b=t.useCallback((e=>{const t=W(e,c);return f(o,a.processSelectValue(r,t,n))}),[f,o,r,c,n]),v=t.useCallback((e=>{const t=W(e,c);return h(o,a.processSelectValue(r,t,n))}),[h,o,r,c,n]),C=t.useCallback((e=>{const t=W(e,c);return m(a.processSelectValue(r,t,n))}),[m,r,c,n]);return p.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&&p.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 p.default.createElement("option",{key:t,value:a,disabled:o},r)})))},TextWidget:function(e){const{options:t,registry:r}=e,o=a.getTemplate("BaseInputTemplate",r,t);return p.default.createElement(o,{...e})},DateWidget:function(e){const{onChange:r,options:o,registry:n}=e,i=a.getTemplate("BaseInputTemplate",n,o),l=t.useCallback((e=>r(e||void 0)),[r]);return p.default.createElement(i,{type:"date",...e,onChange:l})},DateTimeWidget:function(e){const{onChange:t,value:r,options:o,registry:n}=e,i=a.getTemplate("BaseInputTemplate",n,o);return p.default.createElement(i,{type:"datetime-local",...e,value:a.utcToLocal(r),onChange:e=>t(a.localToUTC(e))})},AltDateWidget:function(e){let{time:r=!1,disabled:o=!1,readonly:n=!1,autofocus:i=!1,options:l,id:s,registry:d,onBlur:c,onFocus:u,onChange:m,value:h}=e;const[f,g]=t.useReducer(((e,t)=>({...e,...t})),a.parseDateString(h,r));t.useEffect((()=>{h&&h!==a.toDateString(f,r)&&g(a.parseDateString(h,r))}),[h,f,r]),t.useEffect((()=>{(function(e){return Object.values(e).every((e=>-1!==e))})(f)&&m(a.toDateString(f,r))}),[f,r,m]);const y=t.useCallback(((e,t)=>{g({[e]:t})}),[]),E=t.useCallback((e=>{if(e.preventDefault(),o||n)return;const t=a.parseDateString((new Date).toJSON(),r);g(t)}),[o,n,r]),S=t.useCallback((e=>{e.preventDefault(),o||n||(g(a.parseDateString("",r)),m(void 0))}),[o,n,r,m]);return p.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)=>p.default.createElement("li",{key:t},p.default.createElement(R,{rootId:s,select:y,...e,disabled:o,readonly:n,registry:d,onBlur:c,onFocus:u,autofocus:i&&0===t})))),("undefined"===l.hideNowButton||!l.hideNowButton)&&p.default.createElement("li",null,p.default.createElement("a",{href:"#",className:"btn btn-info btn-now",onClick:E},"Now")),("undefined"===l.hideClearButton||!l.hideClearButton)&&p.default.createElement("li",null,p.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 p.default.createElement(r,{time:t,...a})},EmailWidget:function(e){const{options:t,registry:r}=e,o=a.getTemplate("BaseInputTemplate",r,t);return p.default.createElement(o,{type:"email",...e})},URLWidget:function(e){const{options:t,registry:r}=e,o=a.getTemplate("BaseInputTemplate",r,t);return p.default.createElement(o,{type:"url",...e})},TextareaWidget:L,HiddenWidget:function(e){let{id:t,value:a}=e;return p.default.createElement("input",{type:"hidden",id:t,value:void 0===a?"":a})},ColorWidget:function(e){const{disabled:t,readonly:r,options:o,registry:n}=e,i=a.getTemplate("BaseInputTemplate",n,o);return p.default.createElement(i,{type:"color",...e,disabled:t||r})},FileWidget:function(e){let{multiple:a,id:r,readonly:o,disabled:n,onChange:i,value:l,autofocus:s=!1,options:d}=e;const c=t.useMemo((()=>Array.isArray(l)?K(l):K([l])),[l]),[u,m]=t.useState(c),h=t.useCallback((e=>{var t;e.target.files&&(t=e.target.files,Promise.all(Array.from(t).map(j))).then((e=>{m(e);const t=e.map((e=>e.dataURL));i(a?t:t[0])}))}),[a,i]);return p.default.createElement("div",null,p.default.createElement("p",null,p.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})),p.default.createElement(M,{filesInfo:u}))},CheckboxWidget:function(e){let{schema:r,options:o,id:n,value:i,disabled:l,readonly:s,label:d,autofocus:c=!1,onBlur:u,onFocus:m,onChange:h,registry:f}=e;const g=a.getTemplate("DescriptionFieldTemplate",f,o),y=a.schemaRequiresTrueValue(r),E=t.useCallback((e=>h(e.target.checked)),[h]),S=t.useCallback((e=>u(n,e.target.checked)),[u,n]),b=t.useCallback((e=>m(n,e.target.checked)),[m,n]);return p.default.createElement("div",{className:"checkbox "+(l||s?"disabled":"")},r.description&&p.default.createElement(g,{id:n+"__description",description:r.description,registry:f}),p.default.createElement("label",null,p.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}),p.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 p.default.createElement("div",{className:"checkboxes",id:t},Array.isArray(o)&&o.map(((e,c)=>{const u=-1!==i.indexOf(e.value),m=n&&-1!=n.indexOf(e.value),h=a||m||s?"disabled":"",f=p.default.createElement("span",null,p.default.createElement("input",{type:"checkbox",id:t+"_"+c,checked:u,disabled:a||m||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))}}),p.default.createElement("span",null,e.label));return r?p.default.createElement("label",{key:c,className:"checkbox-inline "+h},f):p.default.createElement("div",{key:c,className:"checkbox "+h},p.default.createElement("label",null,f))})))}};function Y(){return{fields:B,templates:P,widgets:$,rootSchema:{},formContext:{}}}class z extends t.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=h.default(e,t);return Array.isArray(e)?Object.keys(a).map((e=>a[e])):a},this.getFieldNames=(e,t)=>{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 t=n.map((e=>e+"."+i));e[i][a.RJSF_ADDITONAL_PROPERTIES_FLAG]&&""!==e[i][a.NAME_KEY]?o.push(e[i][a.NAME_KEY]):r(e[i],o,t)}else i===a.NAME_KEY&&""!==e[i]&&n.forEach((e=>{e=e.replace(/^\./,"");const a=f.default(t,e);("object"!=typeof a||g.default(a))&&o.push(e)}))})),o};return r(e)},this.onChange=(e,t)=>{const{extraErrors:r,omitExtraData:o,liveOmit:n,noValidate:i,liveValidate:l,onChange:s}=this.props,{schemaUtils:d,schema:c}=this.state;(a.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&&t){const e=r?a.mergeObjects(t,r,!0):t;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&&!a.deepEquals(this.state.formData,this.props.formData)&&this.props.onChange(this.state),this.formElement=p.default.createRef()}UNSAFE_componentWillReceiveProps(e){const t=this.getStateFromProps(e,e.formData);a.deepEquals(t.formData,e.formData)||a.deepEquals(t.formData,this.state.formData)||!e.onChange||e.onChange(t),this.setState(t)}getStateFromProps(e,t){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!==t,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=a.createSchemaUtils(e.validator,s));const c=d.getDefaultFormState(o,t),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,t){return a.shouldRender(this,e,t)}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:t,errorSchema:r,schema:o,uiSchema:n}=this.state,{showErrorList:i,formContext:l}=this.props,s=a.getUiOptions(n),d=a.getTemplate("ErrorListTemplate",e,s);return t&&t.length&&0!=i?p.default.createElement(d,{errors:t,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}=Y();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:m,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 p.default.createElement(E||n||"form",{className:o||"rjsf",id:t,name:i,method:l,target:s,action:d,autoComplete:c,encType:u,acceptCharset:m,noValidate:h,onSubmit:this.onSubmit,as:E?n:void 0,ref:this.formElement},this.renderErrors(D),p.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||p.default.createElement(k,{uiSchema:b}))}}e.default=z,e.getDefaultRegistry=Y,e.withTheme=function(e){return t.forwardRef(((t,a)=>{var r,o;let{fields:n,widgets:i,templates:l,...s}=t;return n={...e.fields,...n},i={...e.widgets,...i},l={...e.templates,...l,ButtonTemplates:{...null==e||null===(r=e.templates)||void 0===r?void 0:r.ButtonTemplates,...null===(o=l)||void 0===o?void 0:o.ButtonTemplates}},p.default.createElement(z,{...e,...s,fields:n,widgets:i,templates:l,ref:a})}))},Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
2
|
+
//# sourceMappingURL=core.umd.production.min.js.map
|