@maif/react-forms 1.0.36 → 1.0.37-rc.1

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.
Files changed (69) hide show
  1. package/README.md +1 -1
  2. package/lib/esm/index.js +461 -573
  3. package/lib/index.js +460 -572
  4. package/package.json +7 -2
  5. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -10
  6. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -10
  7. package/.github/workflows/build-playground.yml +0 -34
  8. package/.github/workflows/generate-release-note.yml +0 -48
  9. package/.github/workflows/release.yml +0 -73
  10. package/docs/asset-manifest.json +0 -24
  11. package/docs/index.html +0 -1
  12. package/docs/manifest.json +0 -25
  13. package/docs/robots.txt +0 -3
  14. package/docs/static/css/2.6902daba.chunk.css +0 -11
  15. package/docs/static/css/2.6902daba.chunk.css.map +0 -1
  16. package/docs/static/css/main.8693c9f3.chunk.css +0 -2
  17. package/docs/static/css/main.8693c9f3.chunk.css.map +0 -1
  18. package/docs/static/js/2.bc3a307f.chunk.js +0 -3
  19. package/docs/static/js/2.bc3a307f.chunk.js.LICENSE.txt +0 -147
  20. package/docs/static/js/2.bc3a307f.chunk.js.map +0 -1
  21. package/docs/static/js/main.a5abf7f1.chunk.js +0 -2
  22. package/docs/static/js/main.a5abf7f1.chunk.js.map +0 -1
  23. package/docs/static/js/runtime-main.368a22f5.js +0 -2
  24. package/docs/static/js/runtime-main.368a22f5.js.map +0 -1
  25. package/docs/static/media/fa-brands-400.2285773e.woff +0 -0
  26. package/docs/static/media/fa-brands-400.23f19bb0.eot +0 -0
  27. package/docs/static/media/fa-brands-400.2f517e09.svg +0 -3717
  28. package/docs/static/media/fa-brands-400.527940b1.ttf +0 -0
  29. package/docs/static/media/fa-brands-400.d878b0a6.woff2 +0 -0
  30. package/docs/static/media/fa-regular-400.4689f52c.svg +0 -801
  31. package/docs/static/media/fa-regular-400.491974d1.ttf +0 -0
  32. package/docs/static/media/fa-regular-400.77206a6b.eot +0 -0
  33. package/docs/static/media/fa-regular-400.7a333762.woff2 +0 -0
  34. package/docs/static/media/fa-regular-400.bb58e57c.woff +0 -0
  35. package/docs/static/media/fa-solid-900.1551f4f6.woff2 +0 -0
  36. package/docs/static/media/fa-solid-900.7a8b4f13.svg +0 -5034
  37. package/docs/static/media/fa-solid-900.9bbb245e.eot +0 -0
  38. package/docs/static/media/fa-solid-900.be9ee23c.ttf +0 -0
  39. package/docs/static/media/fa-solid-900.eeccf4f6.woff +0 -0
  40. package/examples/.env +0 -2
  41. package/examples/README.md +0 -0
  42. package/examples/package.json +0 -43
  43. package/examples/public/index.html +0 -43
  44. package/examples/public/manifest.json +0 -25
  45. package/examples/public/robots.txt +0 -3
  46. package/examples/src/App.css +0 -10
  47. package/examples/src/Playground.js +0 -158
  48. package/examples/src/WrapperError.js +0 -21
  49. package/examples/src/index.css +0 -13
  50. package/examples/src/index.js +0 -11
  51. package/examples/src/reportWebVitals.js +0 -13
  52. package/examples/src/schema/basic.json +0 -15
  53. package/examples/src/schema/constrainedBasic.json +0 -28
  54. package/examples/src/schema/constraintsWithRef.json +0 -44
  55. package/examples/src/schema/dynamicForm.json +0 -57
  56. package/examples/src/schema/formArray.js +0 -30
  57. package/examples/src/schema/formInForm.json +0 -39
  58. package/examples/src/schema/selector.json +0 -14
  59. package/jest-sync.config.json +0 -17
  60. package/rollup.config.js +0 -66
  61. package/scripts/build.sh +0 -34
  62. package/test/array.spec.js +0 -78
  63. package/test/bool.spec.js +0 -29
  64. package/test/date.spec.js +0 -41
  65. package/test/number.spec.js +0 -124
  66. package/test/object.spec.js +0 -14
  67. package/test/string.spec.js +0 -87
  68. package/test/testUtils.js +0 -30
  69. package/test-setup.js +0 -9
@@ -1,2 +0,0 @@
1
- (this["webpackJsonp@maif/react-forms-playground"]=this["webpackJsonp@maif/react-forms-playground"]||[]).push([[0],{122:function(e){e.exports=JSON.parse('{"name":{"type":"string","label":"name","placeholder":"Your name"},"age":{"type":"number","label":"Your age"},"code":{"type":"object","format":"code"}}')},2303:function(e,t,a){},2306:function(e,t,a){"use strict";a.r(t);var n=a(1),r=a.n(n),s=a(59),c=a.n(s),o=(a(432),a(41)),i=a(97),l=(a(2303),a(2304),a(122)),u=a(416),d=a(417),m=a(418),b=a(419),p=a(420),f=a(421),h=a(7),j=a(8),y=a(19),g=a(20),O=a(28),v=function(e){Object(y.a)(a,e);var t=Object(g.a)(a);function a(){var e;Object(h.a)(this,a);for(var n=arguments.length,r=new Array(n),s=0;s<n;s++)r[s]=arguments[s];return(e=t.call.apply(t,[this].concat(r))).state={error:void 0},e}return Object(j.a)(a,[{key:"componentDidCatch",value:function(e){this.setState({error:e})}},{key:"reset",value:function(){this.setState({error:void 0})}},{key:"render",value:function(){return this.state.error?Object(O.jsx)("div",{children:"Something wrong happened"}):this.props.children}}]),a}(r.a.Component),x=(a(52),{basic:l,formArray:'{\n "users": {\n type: "object",\n format: "form",\n array: true,\n schema: {\n fullname: {\n type: "string",\n render: (props) => {\n const { setValues, setValue, value, onChange } = props\n console.log("coucou")\n return <input\n type="text"\n onChange={e => onChange(e.target.value)}\n value={value}\n />\n }\n\n },\n firstname: {\n type: "string"\n },\n lastname: {\n type: "string"\n }\n }\n }\n}',constrainedBasic:u,constraintsWithRef:d,simpleSelector:m,formInForm:b,dynamicForm:p}),N=function(){var e=Object(n.useState)(JSON.stringify(l,0,2)),t=Object(o.a)(e,2),a=t[0],s=t[1],c=Object(n.useState)(l),u=Object(o.a)(c,2),d=u[0],m=u[1],b=Object(n.useState)(void 0),p=Object(o.a)(b,2),h=p[0],j=p[1],y=Object(n.useState)(),g=Object(o.a)(y,2),N=g[0],w=g[1],S=Object(n.useRef)(),J=Object(n.useRef)();Object(n.useEffect)((function(){J.current&&J.current.reset(),C(a)}),[a]),Object(n.useEffect)((function(){j(void 0)}),[d]);var C=function(e){try{var t="() => { try { return ".concat("object"===typeof e?JSON.stringify(e,null,2):e," } catch(err) {} }"),a=f.transform(t,{presets:["react","es2015"]}).code.replace('"use strict";',"").trim(),n=new Function("React","return ".concat(a))(r.a)();n&&m(n)}catch(s){}};return Object(O.jsxs)("div",{className:"my-md-4 bd-layout",children:[Object(O.jsx)("nav",{className:"navbar navbar-expand-lg navbar-light bg-light fixed-top",children:Object(O.jsxs)("div",{className:"container-fluid",children:[Object(O.jsx)("span",{className:"navbar-brand",children:"react-forms playground"}),Object(O.jsx)("button",{className:"navbar-toggler",type:"button","data-bs-toggle":"collapse","data-bs-target":"#navbarSupportedContent","aria-controls":"navbarSupportedContent","aria-expanded":"false","aria-label":"Toggle navigation",children:Object(O.jsx)("span",{className:"navbar-toggler-icon"})}),Object(O.jsx)("div",{className:"collapse navbar-collapse",id:"navbarSupportedContent",children:Object(O.jsxs)("ul",{className:"navbar-nav me-auto mb-2 mb-lg-0",children:[Object(O.jsx)("li",{className:"nav-item",children:Object(O.jsx)("a",{className:"nav-link",href:"https://github.com/MAIF/react-forms#readme",children:"Documentation"})}),Object(O.jsx)("li",{className:"nav-item",children:Object(O.jsx)("a",{className:"nav-link",href:"https://github.com/MAIF/react-forms",children:"Project"})})]})})]})}),Object(O.jsxs)("div",{className:"container",style:{marginTop:"70px"},children:[Object(O.jsxs)("em",{className:"tagline px-0 py-2",children:["Choose a JSON schema below and check the generated form. Check the ",Object(O.jsx)("a",{href:"https://github.com/MAIF/react-forms",children:"documentation"})," for more details."]}),Object(O.jsxs)("div",{className:"d-flex",children:[Object(O.jsxs)("div",{className:"col-8",style:{marginRight:"10px"},children:[Object(O.jsx)("label",{htmlFor:"selector",children:"Try with a schema"}),Object(O.jsx)(i.c,{className:"py-2",possibleValues:Object.entries(x),transformer:function(e){var t=Object(o.a)(e,2);return{label:t[0],value:t[1]}},defaultValue:{value:l,label:"basic"},onChange:s}),Object(O.jsx)(i.a,{mode:"javascript",onChange:function(e){try{s(e)}catch(h){console.log(h)}},value:"object"===typeof a?JSON.stringify(a,null,2):a}),Object(O.jsx)("label",{children:"Default value"}),Object(O.jsx)(i.a,{mode:"json",onChange:function(e){try{w(JSON.parse(e))}catch(t){}},value:"object"===typeof N?JSON.stringify(N,null,2):N})]}),Object(O.jsxs)("div",{className:"col-4 px-2",children:[Object(O.jsx)("label",{children:"Generated form"}),h&&Object(O.jsx)("span",{style:{color:"tomato"},children:h}),Object(O.jsx)("div",{style:{backgroundColor:"#ececec",padding:"10px 15px"},children:Object(O.jsx)(v,{ref:J,children:Object(O.jsx)(i.b,{schema:d,value:N,flow:Object.keys(d),onSubmit:function(e){return alert(JSON.stringify(e,null,2))},options:{watch:function(e){var t;return null===S||void 0===S||null===(t=S.current)||void 0===t?void 0:t.dispatch({changes:{from:0,to:S.current.state.doc.length,insert:JSON.stringify(e,null,2)}})},actions:{submit:{label:"Try it"}}}})})}),Object(O.jsxs)("div",{className:"py-2",children:[Object(O.jsx)("label",{children:"Form state"}),Object(O.jsx)(i.a,{setRef:function(e){return S.current=e},showGutter:!1,mode:"json"})]})]})]})]})]})};c.a.render(Object(O.jsx)(r.a.StrictMode,{children:Object(O.jsx)(N,{})}),document.getElementById("root"))},310:function(e,t){},416:function(e){e.exports=JSON.parse('{"name":{"type":"string","label":"name","placeholder":"Your name","constraints":[{"type":"required","message":"required field"}]},"age":{"type":"number","label":"Your age","constraints":[{"type":"required","message":"required field"},{"type":"min","ref":18,"message":"You must be an adult"}]}}')},417:function(e){e.exports=JSON.parse('{"oldPassword":{"type":"string","format":"password","label":"Old Password","constraints":[{"type":"required","message":"Your old password is required"}]},"newPassword":{"type":"string","format":"password","label":"New password","constraints":[{"type":"required","message":"Your new password is required"}]},"confirmNewPassword":{"type":"string","format":"password","label":"Confirm new password","constraints":[{"type":"required","message":"confirm password is required"},{"type":"oneOf","arrayOfValues":[{"ref":"newPassword"}],"message":"confirm and password must be equal"}]}}')},418:function(e){e.exports=JSON.parse('{"type":{"type":"string","label":"type","format":"select","options":["mammal","fish","bird","insect"],"defaultValue":"fish"}}')},419:function(e){e.exports=JSON.parse('{"type":{"type":"string","label":"type","format":"select","options":["mammal","fish","bird","insect"],"defaultValue":"fish"},"habitat":{"type":"object","label":"habitat","format":"form","schema":{"continent":{"type":"string","label":"continent","format":"select","options":["Africa","Asia","Europe","North America","Oc\xe9ania","South America"]},"country":{"type":"string","label":"country"}}}}')},420:function(e){e.exports=JSON.parse('{"type":{"type":"string","label":"type","format":"select","options":["mammal","fish","bird","insect"],"defaultValue":"fish"},"habitat":{"type":"object","label":"habitat","format":"form","conditionalSchema":{"ref":"type","switch":[{"condition":"fish","schema":{"sea":{"type":"string","label":"ocean or sea"}},"flow":["sea"]},{"default":true,"schema":{"continent":{"type":"string","label":"continent","format":"select","options":["Africa","Asia","Europe","North America","Oc\xe9ania","South America"]},"country":{"type":"string","label":"country"}},"flow":["continent","country"]}]}}}')},432:function(e,t,a){},959:function(e,t){},960:function(e,t){}},[[2306,1,2]]]);
2
- //# sourceMappingURL=main.a5abf7f1.chunk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["WrapperError.js","Playground.js","schema/formArray.js","index.js"],"names":["WrapperError","state","error","undefined","this","setState","props","children","React","Component","examples","basic","formArray","constrainedBasic","constraintsWithRef","simpleSelector","formInForm","dynamicForm","Playground","useState","JSON","stringify","schema","setSchema","realSchema","setRealSchema","setError","value","setValue","ref","useRef","childRef","useEffect","current","reset","babelize","e","code","generatedCode","babel","presets","replace","trim","res","Function","func","_","className","type","data-bs-toggle","data-bs-target","aria-controls","aria-expanded","aria-label","id","href","style","marginTop","marginRight","htmlFor","possibleValues","Object","entries","transformer","label","defaultValue","onChange","mode","console","log","parse","color","backgroundColor","padding","flow","keys","onSubmit","d","alert","options","watch","unsaved","dispatch","changes","from","to","doc","length","insert","actions","submit","setRef","r","showGutter","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.a5abf7f1.chunk.js","sourcesContent":["import React from 'react'\n\nexport default class WrapperError extends React.Component {\n state = {\n error: undefined\n }\n\n componentDidCatch(error) {\n this.setState({ error })\n }\n\n reset() {\n this.setState({ error: undefined })\n }\n\n render() {\n if (this.state.error)\n return <div>Something wrong happened</div>\n return this.props.children\n }\n}","import React, { useState, useEffect, useRef } from 'react';\nimport { Form, CodeInput, SelectInput } from '@maif/react-forms'\n\nimport './App.css';\nimport 'bootstrap/dist/css/bootstrap.min.css'\n\nimport basic from './schema/basic.json';\nimport formArray from './schema/formArray';\nimport constrainedBasic from './schema/constrainedBasic.json';\nimport constraintsWithRef from './schema/constraintsWithRef.json';\nimport simpleSelector from './schema/selector.json';\nimport formInForm from './schema/formInForm.json';\nimport dynamicForm from './schema/dynamicForm.json';\nimport * as babel from 'babel-standalone'\nimport WrapperError from './WrapperError';\nimport { ValidationError } from 'yup';\n\nconst examples = {\n basic,\n formArray,\n constrainedBasic,\n constraintsWithRef,\n simpleSelector,\n formInForm,\n dynamicForm\n}\n\nexport const Playground = () => {\n const [schema, setSchema] = useState(JSON.stringify(basic, 0, 2))\n const [realSchema, setRealSchema] = useState(basic)\n const [error, setError] = useState(undefined)\n const [value, setValue] = useState()\n\n const ref = useRef()\n const childRef = useRef()\n\n useEffect(() => {\n if (childRef.current)\n childRef.current.reset()\n babelize(schema)\n }, [schema])\n\n useEffect(() => {\n setError(undefined)\n }, [realSchema])\n\n const babelize = e => {\n try {\n const code = `() => { try { return ${(typeof e === 'object' ? JSON.stringify(e, null, 2) : e)} } catch(err) {} }`\n const babelCode = babel.transform(code, { presets: ['react', 'es2015'] }).code;\n\n const generatedCode = babelCode.replace('\"use strict\";', \"\").trim()\n const func = new Function(\"React\", `return ${generatedCode}`);\n const res = func(React)()\n if (res)\n setRealSchema(res)\n } catch (_) {\n\n }\n }\n\n return (\n <div className=\"my-md-4 bd-layout\">\n <nav className=\"navbar navbar-expand-lg navbar-light bg-light fixed-top\">\n <div className=\"container-fluid\">\n <span className=\"navbar-brand\">react-forms playground</span>\n <button className=\"navbar-toggler\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#navbarSupportedContent\" aria-controls=\"navbarSupportedContent\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n <span className=\"navbar-toggler-icon\"></span>\n </button>\n <div className=\"collapse navbar-collapse\" id=\"navbarSupportedContent\">\n <ul className=\"navbar-nav me-auto mb-2 mb-lg-0\">\n <li className=\"nav-item\">\n <a className=\"nav-link\" href=\"https://github.com/MAIF/react-forms#readme\">Documentation</a>\n </li>\n <li className=\"nav-item\">\n <a className=\"nav-link\" href=\"https://github.com/MAIF/react-forms\">Project</a>\n </li>\n </ul>\n </div>\n </div>\n </nav>\n <div className=\"container\" style={{ marginTop: '70px' }}>\n <em className='tagline px-0 py-2'>Choose a JSON schema below and check the generated form. Check the <a href='https://github.com/MAIF/react-forms'>documentation</a> for more details.</em>\n <div className=\"d-flex\">\n <div className='col-8' style={{ marginRight: '10px' }}>\n <label htmlFor=\"selector\">Try with a schema</label>\n <SelectInput\n className=\"py-2\"\n possibleValues={Object.entries(examples)}\n transformer={([key, value]) => ({ label: key, value })}\n defaultValue={{ value: basic, label: \"basic\" }}\n onChange={setSchema}\n />\n <CodeInput\n mode=\"javascript\"\n onChange={e => {\n try {\n setSchema(e)\n } catch (error) {\n console.log(error)\n }\n }}\n value={typeof schema === 'object' ? JSON.stringify(schema, null, 2) : schema}\n />\n <label>Default value</label>\n <CodeInput\n mode=\"json\"\n onChange={e => {\n try {\n setValue(JSON.parse(e))\n } catch (_) { }\n }}\n value={typeof value === 'object' ? JSON.stringify(value, null, 2) : value}\n />\n </div>\n <div className='col-4 px-2'>\n <label>Generated form</label>\n {error && <span style={{ color: 'tomato' }}>{error}</span>}\n <div style={{ backgroundColor: '#ececec', padding: '10px 15px' }}>\n <WrapperError ref={childRef}>\n <Form\n schema={realSchema}\n value={value}\n flow={Object.keys(realSchema)}\n onSubmit={d => alert(JSON.stringify(d, null, 2))}\n options={{\n watch: unsaved => ref?.current?.dispatch({\n changes: {\n from: 0,\n to: ref.current.state.doc.length,\n insert: JSON.stringify(unsaved, null, 2)\n }\n }),\n actions: {\n submit: {\n label: 'Try it'\n }\n }\n }}\n />\n </WrapperError>\n </div>\n <div className='py-2'>\n <label>Form state</label>\n <CodeInput\n setRef={r => ref.current = r}\n showGutter={false}\n mode=\"json\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default Playground;\n","const schema = `{\n \"users\": {\n type: \"object\",\n format: \"form\",\n array: true,\n schema: {\n fullname: {\n type: \"string\",\n render: (props) => {\n const { setValues, setValue, value, onChange } = props\n console.log(\"coucou\")\n return <input\n type=\"text\"\n onChange={e => onChange(e.target.value)}\n value={value}\n />\n }\n\n },\n firstname: {\n type: \"string\"\n },\n lastname: {\n type: \"string\"\n }\n }\n }\n}`\n\nexport default schema","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport Playground from './Playground';\n\nReactDOM.render(\n <React.StrictMode>\n <Playground />\n </React.StrictMode>,\n document.getElementById('root')\n);\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- !function(e){function r(r){for(var n,a,f=r[0],l=r[1],i=r[2],c=0,s=[];c<f.length;c++)a=f[c],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&s.push(o[a][0]),o[a]=0;for(n in l)Object.prototype.hasOwnProperty.call(l,n)&&(e[n]=l[n]);for(p&&p(r);s.length;)s.shift()();return u.push.apply(u,i||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,f=1;f<t.length;f++){var l=t[f];0!==o[l]&&(n=!1)}n&&(u.splice(r--,1),e=a(a.s=t[0]))}return e}var n={},o={1:0},u=[];function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.m=e,a.c=n,a.d=function(e,r,t){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},a.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(a.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(t,n,function(r){return e[r]}.bind(null,n));return t},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="/react-forms/";var f=this["webpackJsonp@maif/react-forms-playground"]=this["webpackJsonp@maif/react-forms-playground"]||[],l=f.push.bind(f);f.push=r,f=f.slice();for(var i=0;i<f.length;i++)r(f[i]);var p=l;t()}([]);
2
- //# sourceMappingURL=runtime-main.368a22f5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../webpack/bootstrap"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","1","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","this","oldJsonpFunction","slice"],"mappings":"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","file":"static/js/runtime-main.368a22f5.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/react-forms/\";\n\n \tvar jsonpArray = this[\"webpackJsonp@maif/react-forms-playground\"] = this[\"webpackJsonp@maif/react-forms-playground\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""}