UNPKG

rjsf-material-ui

Version:

Material UI theme, fields and widgets for react-jsonschema-form

3 lines (2 loc) 13 kB
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var r=require("react-jsonschema-form"),t=e(require("react")),n=require("react-jsonschema-form/lib/utils"),i=e(require("@material-ui/core/Box")),a=e(require("@material-ui/core/Grid")),l=e(require("@material-ui/core/Paper")),u=e(require("@material-ui/core/Button")),o=e(require("@material-ui/icons/Add")),c=e(require("@material-ui/icons/ArrowUpward")),d=e(require("@material-ui/icons/ArrowDownward")),m=e(require("@material-ui/icons/Remove")),s=e(require("@material-ui/core/Typography")),f=e(require("@material-ui/core/List")),p=e(require("@material-ui/core/ListItem")),v=e(require("@material-ui/core/ListItemIcon")),h=e(require("@material-ui/icons/Error")),b=e(require("@material-ui/core/ListItemText")),E=require("@material-ui/styles"),g=e(require("@material-ui/core/Divider")),y=e(require("@material-ui/core/FormControl")),q=e(require("@material-ui/core/FormHelperText")),F=e(require("@material-ui/core/Checkbox")),x=e(require("@material-ui/core/FormControlLabel")),k=e(require("@material-ui/core/FormLabel")),S=e(require("@material-ui/core/FormGroup")),C=e(require("@material-ui/core/TextField")),w=e(require("@material-ui/core/Radio")),T=e(require("@material-ui/core/RadioGroup")),O=e(require("@material-ui/core/Slider")),B=e(require("@material-ui/core/MenuItem")),W=e(require("@material-ui/core/Select")),D=e(require("@material-ui/core/InputLabel")),j=e(require("@material-ui/core/Input"));function I(){return(I=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}function N(e){if(null==e)throw new TypeError("Cannot destructure undefined")}var L=function(e){return t.createElement(u,Object.assign({},e,{color:"secondary"}),t.createElement(o,null)," ",e.label||"Add Item")},R={remove:t.createElement(m,null),plus:t.createElement(o,null),"arrow-up":t.createElement(c,null),"arrow-down":t.createElement(d,null)},M=function(e){var r=e.icon,n=function(e,r){if(null==e)return{};var t,n,i={},a=Object.keys(e);for(n=0;n<a.length;n++)r.indexOf(t=a[n])>=0||(i[t]=e[t]);return i}(e,["icon","className"]);return t.createElement(u,Object.assign({},n,{size:"small"}),R[r])},$=function(e){var r=e.title;return r?t.createElement(e.TitleField,{id:e.idSchema.$id+"__title",title:r,required:e.required}):t.createElement("div",null)},A=function(e){var r=e.description;return r?t.createElement(e.DescriptionField,{id:e.idSchema.$id+"__description",description:r}):t.createElement("div",null)},U=function(e){var r={flex:1,paddingLeft:6,paddingRight:6,fontWeight:"bold"};return t.createElement(a,{container:!0,key:e.index,alignItems:"center"},t.createElement(a,{item:!0,xs:!0},t.createElement(i,{mb:2},t.createElement(l,{elevation:2},t.createElement(i,{p:2},e.children)))),e.hasToolbar&&t.createElement(a,{item:!0},(e.hasMoveUp||e.hasMoveDown)&&t.createElement(M,{icon:"arrow-up",className:"array-item-move-up",tabIndex:-1,style:r,disabled:e.disabled||e.readonly||!e.hasMoveUp,onClick:e.onReorderClick(e.index,e.index-1)}),(e.hasMoveUp||e.hasMoveDown)&&t.createElement(M,{icon:"arrow-down",tabIndex:-1,style:r,disabled:e.disabled||e.readonly||!e.hasMoveDown,onClick:e.onReorderClick(e.index,e.index+1)}),e.hasRemove&&t.createElement(M,{icon:"remove",tabIndex:-1,style:r,disabled:e.disabled||e.readonly,onClick:e.onDropIndexClick(e.index)})))},_=function(e){return t.createElement("fieldset",{className:e.className},t.createElement($,{key:"array-field-title-"+e.idSchema.$id,TitleField:e.TitleField,idSchema:e.idSchema,title:e.uiSchema["ui:title"]||e.title,required:e.required}),(e.uiSchema["ui:description"]||e.schema.description)&&t.createElement("div",{className:"field-description",key:"field-description-"+e.idSchema.$id},e.uiSchema["ui:description"]||e.schema.description),t.createElement("div",{className:"row array-item-list",key:"array-item-list-"+e.idSchema.$id},e.items&&e.items.map(U)),e.canAdd&&t.createElement(L,{className:"array-item-add",onClick:e.onAddClick,disabled:e.disabled||e.readonly,label:e.uiSchema.buttonLabel}))},V=function(e){return t.createElement(l,{elevation:2},t.createElement(i,{p:2},t.createElement($,{key:"array-field-title-"+e.idSchema.$id,TitleField:e.TitleField,idSchema:e.idSchema,title:e.uiSchema["ui:title"]||e.title,required:e.required}),(e.uiSchema["ui:description"]||e.schema.description)&&t.createElement(A,{key:"array-field-description-"+e.idSchema.$id,DescriptionField:e.DescriptionField,idSchema:e.idSchema,description:e.uiSchema["ui:description"]||e.schema.description}),t.createElement(a,{container:!0,key:"array-item-list-"+e.idSchema.$id},e.items&&e.items.map((function(e){return U(e)})),e.canAdd&&t.createElement(a,{container:!0,justify:"flex-end"},t.createElement(a,{item:!0},t.createElement(i,{mt:2},t.createElement(L,Object.assign({className:"array-item-add",onClick:e.onAddClick,disabled:e.disabled||e.readonly},e.uiSchema["ui:options"]&&{label:e.uiSchema["ui:options"].addButtonLabel}))))))))},G=E.makeStyles({root:{marginTop:5}}),P={DescriptionField:function(e){var r=e.description;if(r){var n=G();return t.createElement(s,{variant:"subtitle2",className:n.root},r)}return null},TitleField:function(e){return t.createElement(t.Fragment,null,t.createElement(i,{mb:1,mt:1},t.createElement(s,{variant:"h5"},e.title),t.createElement(g,null)))}},H=function(e){var r=e.id,n=e.rawErrors,i=void 0===n?[]:n,a=e.rawHelp,l=e.rawDescription;return t.createElement(y,{fullWidth:!0,error:!!i.length},e.children,e.displayLabel&&l?t.createElement(s,{variant:"caption",color:"textSecondary"},l):null,i.length>0&&t.createElement(f,{dense:!0},i.map((function(e,n){return t.createElement(p,{key:n},t.createElement(q,{id:r},"- ",e))}))),a&&t.createElement(q,{id:r},a))},z=E.makeStyles({root:{marginTop:10}}),J=function(e){var r=e.DescriptionField,n=e.description,i=e.TitleField,l=e.title,u=e.properties,o=e.required,c=e.uiSchema,d=e.idSchema,m=z();return t.createElement(t.Fragment,null,(c["ui:title"]||l)&&t.createElement(i,{id:d.$id+"-title",title:l,required:o}),n&&t.createElement(r,{id:d.$id+"-description",description:n}),t.createElement(a,{container:!0,spacing:2,className:m.root},u.map((function(e,r){return t.createElement(a,{item:!0,xs:12,key:r,style:{marginBottom:"10px"}},e.content)}))))},K=new Set(["number","integer"]),Q=function(e,r){var t=e.type,i=e.items;if(""!==r){if("array"===t&&i&&K.has(i.type))return r.map(n.asNumber);if("boolean"===t)return"true"===r;if("number"===t)return n.asNumber(r);if(e.enum){if(e.enum.every((function(e){return"number"===n.guessType(e)})))return n.asNumber(r);if(e.enum.every((function(e){return"boolean"===n.guessType(e)})))return"true"===r}return r}},X={CheckboxWidget:function(e){var r=e.id,n=e.value,i=e.required,a=e.label,l=e.onChange,u=e.onBlur,o=e.onFocus;return t.createElement(y,{fullWidth:!0,required:i},t.createElement(x,{control:t.createElement(F,{id:r,checked:void 0!==n&&n,required:i,disabled:e.disabled||e.readonly,autoFocus:e.autofocus,onChange:function(e,r){return N(e),l(r)},onBlur:function(e){return u(r,e.target.value)},onFocus:function(e){return o(r,e.target.value)}}),label:a}))},CheckboxesWidget:function(e){var r=e.id,n=e.disabled,i=e.options,a=e.value,l=e.autofocus,u=e.readonly,o=e.onChange,c=e.onBlur,d=e.onFocus,m=i.enumOptions,s=i.enumDisabled,f=function(e){return function(r){var t=r.target.checked,n=m.map((function(e){return e.value}));o(t?function(e,r,t){var n=t.indexOf(e);return r.slice(0,n).concat(e,r.slice(n)).sort((function(e,r){return t.indexOf(e)>t.indexOf(r)}))}(e.value,a,n):function(e,r){return r.filter((function(r){return r!==e}))}(e.value,a))}},p=function(e){return c(r,e.target.value)},v=function(e){return d(r,e.target.value)};return t.createElement(y,{fullWidth:!0,required:e.required},t.createElement(k,{htmlFor:r},e.label||e.schema.title),t.createElement(S,null,m.map((function(e,i){var o=-1!==a.indexOf(e.value),c=s&&-1!=s.indexOf(e.value),d=t.createElement(F,{id:r+"_"+i,checked:o,disabled:n||c||u,autoFocus:l&&0===i,onChange:f(e),onBlur:p,onFocus:v});return t.createElement(x,{control:d,key:i,label:e.label})}))))},PasswordWidget:function(e){var r=e.id,n=e.required,i=e.onFocus,a=e.onBlur,l=e.onChange,u=e.options;return t.createElement(y,{fullWidth:!0,required:n},t.createElement(C,{id:r,label:e.label||e.schema.title,autoFocus:e.autofocus,required:n,disabled:e.disabled||e.readonly,type:"password",value:e.value||"",onChange:function(e){var r=e.target.value;return l(""===r?u.emptyValue:r)},onFocus:function(e){return i(r,e.target.value)},onBlur:function(e){return a(r,e.target.value)}}))},RadioWidget:function(e){var r=e.id,n=e.schema,i=e.options,a=e.value,l=e.required,u=e.disabled,o=e.readonly,c=e.label,d=e.onChange,m=e.onBlur,s=e.onFocus,f=Math.random().toString(),p=i.enumOptions,v=i.enumDisabled,h=!!i&&i.inline;return t.createElement(y,{fullWidth:!0,required:l},t.createElement(k,{htmlFor:r},c||n.title),t.createElement(T,{name:f,value:""+a,row:h,onChange:function(e,r){return N(e),d("boolean"==n.type?"false"!==r:r)},onBlur:function(e){return m(r,e.target.value)},onFocus:function(e){return s(r,e.target.value)}},p.map((function(e,r){var n=v&&-1!=v.indexOf(e.value);return t.createElement(x,{control:t.createElement(w,{color:"primary",key:r}),label:""+e.label,value:""+e.value,key:r,disabled:u||n||o})}))))},RangeWidget:function(e){var r=e.readonly,i=e.disabled,l=e.onBlur,u=e.onFocus,o=e.options,c=e.onChange,d=e.required,m=e.label,s=e.id,f=I({value:e.value,label:m,id:s},n.rangeSpec(e.schema));return t.createElement(a,{container:!0,alignItems:"flex-end"},t.createElement(y,{fullWidth:!0,required:d},t.createElement(k,{id:s},m),t.createElement(O,Object.assign({},f,{disabled:i||r,onChange:function(e,r){return N(e),c(""===r?o.emptyValue:r)},onBlur:function(e){return l(s,e.target.value)},onFocus:function(e){return u(s,e.target.value)}}))))},SelectWidget:function(e){var r=e.schema,n=e.id,i=e.options,a=e.required,l=e.disabled,u=e.readonly,o=e.value,c=e.multiple,d=e.autofocus,m=e.onChange,s=e.onBlur,f=e.onFocus,p=i.enumOptions,v=i.enumDisabled,h=c?[]:"";return t.createElement(y,{fullWidth:!0,required:a},t.createElement(D,{shrink:!0,htmlFor:n},e.label||r.title),t.createElement(W,{multiple:void 0!==c&&c,value:void 0===o?h:o,required:a,disabled:l||u,autoFocus:d,onChange:function(e){return m(Q(r,e.target.value))},onBlur:function(e){return s(n,Q(r,e.target.value))},onFocus:function(e){return f(n,Q(r,e.target.value))}},p.map((function(e,r){var n=e.value,i=e.label,a=v&&-1!=v.indexOf(n);return t.createElement(B,{key:r,value:n,disabled:a},i)}))))},TextareaWidget:function(e){var r=e.id,n=e.required,i=e.onBlur,a=e.onFocus,l=e.onChange,u=e.options;return t.createElement(y,{fullWidth:!0,required:n},t.createElement(C,{id:r,label:e.label||e.schema.title,placeholder:e.placeholder,disabled:e.disabled||e.readonly,value:e.value,required:n,autoFocus:e.autofocus,multiline:!0,rows:u.rows||5,onChange:function(e){var r=e.target.value;return l(""===r?u.emptyValue:r)},onBlur:function(e){return i(r,e.target.value)},onFocus:function(e){return a(r,e.target.value)}}))},TextWidget:function(e){var r=e.id,n=e.required,i=e.onChange,a=e.onBlur,l=e.onFocus,u=e.options,o=e.schema;return t.createElement(y,{fullWidth:!0,required:n},t.createElement(C,{id:r,label:e.label||o.title,autoFocus:e.autofocus,required:n,disabled:e.disabled||e.readonly,type:o.type,value:e.value||"",onChange:function(e){var r=e.target.value;return i(""===r?u.emptyValue:r)},onBlur:function(e){return a(r,e.target.value)},onFocus:function(e){return l(r,e.target.value)}}))},UpDownWidget:function(e){var r=e.id,n=e.required,i=e.readonly,a=e.disabled,l=e.value,u=e.onChange,o=e.onBlur,c=e.onFocus,d=e.autofocus;return t.createElement(y,{fullWidth:!0,required:n},t.createElement(D,null,e.label),t.createElement(j,{id:r,autoFocus:d,required:n,type:"number",disabled:a||i,name:name,value:l||"",onChange:function(e){return u(e.target.value)},onBlur:function(e){return o(r,e.target.value)},onFocus:function(e){return c(r,e.target.value)}}))}},Y=n.getDefaultRegistry(),Z=Y.widgets,ee={ArrayFieldTemplate:function(e){var r=e.schema,i=e.registry,a=void 0===i?n.getDefaultRegistry():i;return n.isMultiSelect(r,a.definitions)?t.createElement(_,Object.assign({},e)):t.createElement(V,Object.assign({},e))},fields:I({},Y.fields,{},P),FieldTemplate:H,ObjectFieldTemplate:J,widgets:I({},Z,{},X),ErrorList:function(e){var r=e.errors;return t.createElement(l,{elevation:2},t.createElement(i,{mb:2,p:2},t.createElement(s,{variant:"h6",component:"h6"},"Errors"),t.createElement(f,{dense:!0},r.map((function(e,r){return t.createElement(p,{key:r},t.createElement(v,null,t.createElement(h,{color:"error"})),t.createElement(b,{primary:e.stack}))})))))}},re=r.withTheme(ee);exports.FieldTemplate=H,exports.Fields=P,exports.MuiForm=re,exports.ObjectFieldTemplate=J,exports.Theme=ee,exports.Widgets=X,exports.default=re; //# sourceMappingURL=rjsf-material-ui.cjs.production.min.js.map