From 6a6239e1cce2ee7d7e2d8fd91eb0adfa455b7a90 Mon Sep 17 00:00:00 2001 From: Bharat Chauhan Date: Sun, 29 Aug 2021 10:52:46 +0530 Subject: [PATCH] Add all files --- .gitignore | 20 ++ LICENSE.txt | 26 ++ MANIFEST.in | 2 + django_jsonform/__init__.py | 1 + django_jsonform/admin.py | 3 + django_jsonform/apps.py | 5 + django_jsonform/models.py | 3 + .../django_jsonform/img/icon-addlink.svg | 3 + .../django_jsonform/img/icon-changelink.svg | 3 + .../django_jsonform/img/icon-deletelink.svg | 3 + .../django_jsonform/react-json-form.min.js | 2 + .../react-json-form.min.js.map | 1 + .../static/django_jsonform/style.css | 192 ++++++++++++++ .../vendor/react-dom.production.min.js | 245 ++++++++++++++++++ .../vendor/react.production.min.js | 31 +++ .../templates/django_jsonform/editor.html | 21 ++ django_jsonform/tests.py | 3 + django_jsonform/urls.py | 9 + django_jsonform/views.py | 12 + django_jsonform/widgets.py | 38 +++ setup.cfg | 34 +++ setup.py | 4 + 22 files changed, 661 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE.txt create mode 100644 MANIFEST.in create mode 100644 django_jsonform/__init__.py create mode 100644 django_jsonform/admin.py create mode 100644 django_jsonform/apps.py create mode 100644 django_jsonform/models.py create mode 100644 django_jsonform/static/django_jsonform/img/icon-addlink.svg create mode 100644 django_jsonform/static/django_jsonform/img/icon-changelink.svg create mode 100644 django_jsonform/static/django_jsonform/img/icon-deletelink.svg create mode 100644 django_jsonform/static/django_jsonform/react-json-form.min.js create mode 100644 django_jsonform/static/django_jsonform/react-json-form.min.js.map create mode 100644 django_jsonform/static/django_jsonform/style.css create mode 100644 django_jsonform/static/django_jsonform/vendor/react-dom.production.min.js create mode 100644 django_jsonform/static/django_jsonform/vendor/react.production.min.js create mode 100644 django_jsonform/templates/django_jsonform/editor.html create mode 100644 django_jsonform/tests.py create mode 100644 django_jsonform/urls.py create mode 100644 django_jsonform/views.py create mode 100644 django_jsonform/widgets.py create mode 100644 setup.cfg create mode 100644 setup.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a2c26f7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +__pycache__/ +*.py[cod] + +env/ +bin/ +build/ +_build/ +develop-eggs/ +dist/ +eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +*.egg-info/ +*.egg +.eggs +.installed.cfg +local/ diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..acf3725 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,26 @@ +Copyright (c) 2021, Bharat Chauhan + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors +may be used to endorse or promote products derived from this software without +specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..7ea2843 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,2 @@ +include README.md +include LICENSE.txt \ No newline at end of file diff --git a/django_jsonform/__init__.py b/django_jsonform/__init__.py new file mode 100644 index 0000000..acb984f --- /dev/null +++ b/django_jsonform/__init__.py @@ -0,0 +1 @@ +__version__ = "0.9.0" \ No newline at end of file diff --git a/django_jsonform/admin.py b/django_jsonform/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/django_jsonform/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/django_jsonform/apps.py b/django_jsonform/apps.py new file mode 100644 index 0000000..018bbba --- /dev/null +++ b/django_jsonform/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class JsonappConfig(AppConfig): + name = 'jsonapp' diff --git a/django_jsonform/models.py b/django_jsonform/models.py new file mode 100644 index 0000000..71a8362 --- /dev/null +++ b/django_jsonform/models.py @@ -0,0 +1,3 @@ +from django.db import models + +# Create your models here. diff --git a/django_jsonform/static/django_jsonform/img/icon-addlink.svg b/django_jsonform/static/django_jsonform/img/icon-addlink.svg new file mode 100644 index 0000000..e004fb1 --- /dev/null +++ b/django_jsonform/static/django_jsonform/img/icon-addlink.svg @@ -0,0 +1,3 @@ + + + diff --git a/django_jsonform/static/django_jsonform/img/icon-changelink.svg b/django_jsonform/static/django_jsonform/img/icon-changelink.svg new file mode 100644 index 0000000..bbb137a --- /dev/null +++ b/django_jsonform/static/django_jsonform/img/icon-changelink.svg @@ -0,0 +1,3 @@ + + + diff --git a/django_jsonform/static/django_jsonform/img/icon-deletelink.svg b/django_jsonform/static/django_jsonform/img/icon-deletelink.svg new file mode 100644 index 0000000..4059b15 --- /dev/null +++ b/django_jsonform/static/django_jsonform/img/icon-deletelink.svg @@ -0,0 +1,3 @@ + + + diff --git a/django_jsonform/static/django_jsonform/react-json-form.min.js b/django_jsonform/static/django_jsonform/react-json-form.min.js new file mode 100644 index 0000000..0ca50c3 --- /dev/null +++ b/django_jsonform/static/django_jsonform/react-json-form.min.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e||self).reactJsonForm=t()}(this,function(){function e(){return(e=Object.assign||function(e){for(var t=1;t=0||(r[a]=e[a]);return r}function r(e){var t={};for(var a in e.keys){var n=e.keys[a],i=n.type;if("array"===i)t[a]=l(n);else if("object"===i)t[a]=r(n);else if("string"===i)t[a]="";else if("number"===e.type)return""}return t}function l(e){var t=[],a=e.items.type;return"array"===a?t.push(l(e.items)):"object"===a?t.push(r(e.items)):("string"===a||"number"===e.type)&&t.push(""),t}function i(e){return"array"===e.type?l(e):"object"===e.type?r(e):"string"===e.type||"number"===e.type?"":void 0}function o(e,t){for(var a=JSON.parse(JSON.stringify(e)),n=0;n0&&React.createElement(k,null,e.schema.title),e.children,e.addable&&React.createElement(u,{className:"add",onClick:function(t){return e.onAdd()},title:"Add new"},t?"Add more":"Add")))}function O(t){var a,n={name:t.name,value:t.data},r=t.schema.type;switch(t.schema.choices&&(n.options=t.schema.choices,r="select"),t.schema.widget&&(r=t.schema.widget),r){case"string":a=g,t.schema.format?("data-url"!==t.schema.format&&"file-url"!==t.schema.format||(a=E),n.type=t.schema.format):n.type="text";break;case"number":case"integer":n.type="number",a=g;break;case"boolean":case"checkbox":n.type="checkbox",a=b;break;case"radio":n.type="radio",a=R;break;case"select":a=N;break;default:n.type="text",a=g}return React.createElement(a,e({},n,{label:t.editable?React.createElement("span",null,t.schema.title," ",React.createElement(u,{className:"edit",onClick:t.onEdit,title:"Edit"},"Edit")):t.schema.title,onChange:function(e){return function(e,t,a){var n;n="checkbox"===e.target.type?e.target.checked:e.target.value,"number"===t&&(""===(n=n.trim())||isNaN(Number(n))||(n=Number(n))),a(e.target.name,n)}(e,t.schema.type,t.onChange)}}))}function x(e,t,a,n,r,l,i,o){return React.createElement(j,{key:a,onRemove:l?function(e){return r(a)}:null},React.createElement(O,{data:e,schema:t,name:a,onChange:n,onEdit:i,editable:o}))}function C(e,t,a,n,r,l,o){var c=[],s=[],p=!0;e.length<=(t.min_items||0)&&(p=!1);var d=!0;e.length>=(t.max_items||100)&&(d=!1);for(var m=0;m\n {props.children}\n \n );\n}","export default function Loader (props) {\n return
;\n}\n","export const EditorContext = React.createContext();\n\n\nexport function capitalize(string) {\n if (!string)\n return '';\n \n return string.charAt(0).toUpperCase() + string.substr(1).toLowerCase();\n}\n\n\nexport function getVerboseName(name) {\n if (name === undefined || name === null)\n return '';\n\n name = name.replace(/_/g, ' ');\n return capitalize(name);\n}\n\n\nexport function getCsrfCookie() {\n if ((document.cookie.split(';').filter((item) => item.trim().indexOf('csrftoken=') === 0)).length) {\n return document.cookie.split(';').filter((item) => item.trim().indexOf('csrftoken=') === 0)[0].split('=')[1];\n }\n return null;\n}\n","import Button from './buttons';\nimport Loader from './loaders';\nimport {EditorContext, getCsrfCookie} from '../util';\n\n\nexport function FormInput({label, help_text, error, inputRef, ...props}) {\n\n if (props.type === 'string')\n props.type = 'text'\n\n if (inputRef)\n props.ref = inputRef;\n\n return (\n
\n {label && }\n \n
\n );\n}\n\n\nexport function FormCheckInput({label, help_text, error, value, ...props}) {\n\n if (!label)\n label = props.name.toUpperCase();\n\n if (props.type === 'bool')\n props.type = 'checkbox';\n\n if (props.checked === undefined)\n props.checked = value;\n\n if (props.checked === '')\n props.checked = false\n\n return (\n
\n \n
\n );\n}\n\n\nexport function FormRadioInput({label, help_text, error, value, options, ...props}) {\n return (\n
\n \n {options.map((option, i) => {\n let label, inputValue;\n if (typeof option === 'object') {\n label = option.label;\n inputValue = option.value;\n } else {\n label = option;\n inputValue = option;\n }\n\n return (\n \n );\n })}\n
\n );\n}\n\n\nexport function FormSelectInput({label, help_text, error, value, options, ...props}) {\n return (\n
\n {label && }\n \n
\n );\n}\n\nexport function dataURItoBlob(dataURI) {\n // Split metadata from data\n const splitted = dataURI.split(\",\");\n // Split params\n const params = splitted[0].split(\";\");\n // Get mime-type from params\n const type = params[0].replace(\"data:\", \"\");\n // Filter the name property from params\n const properties = params.filter(param => {\n return param.split(\"=\")[0] === \"name\";\n });\n // Look for the name and use unknown if no name property.\n let name;\n if (properties.length !== 1) {\n name = \"unknown\";\n } else {\n // Because we filtered out the other property,\n // we only have the name case here.\n name = properties[0].split(\"=\")[1];\n }\n\n // Built the Uint8Array Blob parameter from the base64 string.\n const binary = atob(splitted[1]);\n const array = [];\n for (let i = 0; i < binary.length; i++) {\n array.push(binary.charCodeAt(i));\n }\n // Create the blob object\n const blob = new window.Blob([new Uint8Array(array)], { type });\n\n return {blob, name};\n}\n\n\n\nexport class FormFileInput extends React.Component {\n static contextType = EditorContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n value: props.value,\n fileName: this.getFileName(),\n loading: false\n };\n\n this.inputRef = React.createRef();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== prevProps.value) {\n this.setState({\n value: this.props.value, \n fileName: this.getFileName()\n });\n }\n }\n\n getFileName = () => {\n if (!this.props.value)\n return '';\n\n if (this.props.type === 'data-url') {\n return this.extractFileInfo(this.props.value).name;\n } else if (this.props.type === 'file-url') {\n return this.props.value;\n } else {\n return 'Unknown file';\n }\n }\n\n extractFileInfo = (dataURL) => {\n const {blob, name} = dataURItoBlob(dataURL);\n return {\n name: name,\n size: blob.size,\n type: blob.type\n }\n }\n\n addNameToDataURL = (dataURL, name) => {\n return dataURL.replace(';base64', ';name=' + encodeURIComponent(name) + ';base64');\n }\n\n handleChange = (e) => {\n if (this.props.type === 'data-url') {\n let file = e.target.files[0];\n let fileName = file.name\n\n let reader = new FileReader();\n\n reader.onload = () => {\n\n // this.setState({src: reader.result});\n\n // we create a fake event object\n let event = {\n target: {\n type: 'text',\n value: this.addNameToDataURL(reader.result, fileName),\n name: this.props.name\n }\n };\n\n this.props.onChange(event);\n\n }\n reader.readAsDataURL(file);\n } else if (this.props.type === 'file-url') {\n let endpoint = this.context.fileUploadEndpoint;\n if (!endpoint) {\n console.error(\n \"Error: fileUploadEndpoint option need to be passed \"\n + \"while initializing editor for enabling file uploads.\");\n alert(\"Files can't be uploaded.\");\n return;\n }\n\n this.setState({loading: true});\n\n let formData = new FormData();\n formData.append('field_name', this.context.fieldName);\n formData.append('model_name', this.context.modelName);\n formData.append('coordinates', JSON.stringify(this.props.name.split('-').slice(1)));\n formData.append('file', e.target.files[0]);\n\n fetch(endpoint, {\n method: 'POST',\n headers: {\n 'X-CSRFToken': getCsrfCookie(),\n },\n body: formData\n })\n .then((response) => response.json())\n .then((result) => {\n // we create a fake event object\n let event = {\n target: {\n type: 'text',\n value: result.file_path,\n name: this.props.name\n }\n };\n\n this.props.onChange(event);\n this.setState({loading: false});\n })\n .catch((error) => {\n alert('Something went wrong while uploading file');\n console.error('Error:', error);\n this.setState({loading: false});\n });\n\n }\n\n }\n\n showFileBrowser = () => {\n this.inputRef.current.click();\n }\n\n render() {\n let {label, value, ...props} = {value, ...this.props};\n props.type = 'file';\n props.onChange = this.handleChange;\n\n return (\n
\n {label && }\n
\n {this.state.value && \n
Current file: {this.state.fileName}
\n }\n {this.state.value && !this.state.loading && 'Change:'}\n {this.state.loading ?\n
Uploading...
\n : \n
\n \n
\n }\n
\n
\n );\n }\n}\n","import Button from './buttons';\n\n\nexport function GroupTitle(props) {\n if (!props.children)\n return null;\n\n return (\n
{props.children}
\n );\n}\n\n\nexport function FormRow(props) {\n return (\n
\n {props.onRemove &&\n \n }\n
\n {props.children}\n
\n
\n );\n}\n\n\nexport function FormGroup(props) {\n let hasChildren = React.Children.count(props.children);\n\n let innerClassName = props.level === 0 && !hasChildren\n ? \"\" \n : \"rjf-form-group-inner\";\n\n return (\n
\n {props.level === 0 && {props.schema.title}}\n
\n {props.level > 0 && {props.schema.title}}\n {props.children}\n {props.addable && \n props.onAdd()}\n title=\"Add new\"\n >\n {hasChildren ? 'Add more' : 'Add'}\n \n }\n
\n
\n );\n}\n","import {getBlankData} from './data';\nimport {Button, FormInput, FormCheckInput, FormRadioInput, FormSelectInput,\n FormFileInput, FormRow, FormGroup} from './components';\nimport {getVerboseName} from './util';\n\n\nfunction handleChange(e, valueType, callback) {\n let type = e.target.type\n let value;\n\n if (type === 'checkbox') {\n value = e.target.checked;\n } else {\n value = e.target.value;\n }\n\n if (valueType === 'number') {\n value = value.trim();\n if (value !== '' && !isNaN(Number(value)))\n value = Number(value);\n }\n\n callback(e.target.name, value);\n}\n\n\nfunction FormField(props) {\n let inputProps = {\n name: props.name,\n value: props.data,\n };\n\n let type = props.schema.type;\n if (props.schema.choices) {\n inputProps.options = props.schema.choices;\n type = 'select';\n }\n if (props.schema.widget)\n type = props.schema.widget;\n\n let InputField;\n\n switch (type) {\n case 'string':\n InputField = FormInput;\n\n if (props.schema.format) {\n if (props.schema.format === 'data-url' || props.schema.format === 'file-url') {\n InputField = FormFileInput;\n }\n inputProps.type = props.schema.format;\n }\n else {\n inputProps.type = 'text';\n }\n break;\n case 'number':\n inputProps.type = 'number';\n InputField = FormInput;\n break;\n case 'integer':\n inputProps.type = 'number';\n InputField = FormInput;\n break;\n case 'boolean':\n inputProps.type = 'checkbox';\n InputField = FormCheckInput;\n break;\n case 'checkbox':\n inputProps.type = 'checkbox';\n InputField = FormCheckInput;\n break;\n case 'radio':\n inputProps.type = 'radio';\n InputField = FormRadioInput;\n break;\n case 'select':\n InputField = FormSelectInput;\n break;\n default:\n inputProps.type = 'text';\n InputField = FormInput;\n }\n\n return (\n {props.schema.title} \n :\n props.schema.title\n }\n onChange={(e) => handleChange(e, props.schema.type, props.onChange)}\n />\n );\n}\n\n\nexport function getStringFormRow(data, schema, name, onChange, onRemove, removable, onEdit, editable) {\n\n return (\n onRemove(name) : null}\n >\n \n \n );\n}\n\nexport function getArrayFormRow(data, schema, name, onChange, onAdd, onRemove, level) {\n let rows = [];\n let groups = [];\n\n let removable = true;\n let min_items = schema.min_items || 0;\n if (data.length <= min_items)\n removable = false;\n\n let addable = true;\n let max_items = schema.max_items || 100;\n if (data.length >= max_items)\n addable = false;\n\n for (let i = 0; i < data.length; i++) {\n let item = data[i];\n let childName = name + '-' + i;\n\n if (schema.items.type === 'array') {\n groups.push(getArrayFormRow(item, schema.items, childName, onChange, onAdd, onRemove, level + 1));\n } else if (schema.items.type === 'object') {\n groups.push(getObjectFormRow(item, schema.items, childName, onChange, onAdd, onRemove, level + 1));\n } else {\n rows.push(getStringFormRow(item, schema.items, childName, onChange, onRemove, removable));\n } \n }\n\n let coords = name; // coordinates for insertion and deletion\n\n if (rows.length || (!rows.length && !groups.length)) {\n rows = (\n onAdd(getBlankData(schema.items), coords)}\n key={'row_group_' + name}\n >\n {rows}\n \n );\n }\n\n if (groups.length) {\n let groupTitle = schema.title ?
{schema.title}
: null;\n\n groups = (\n
\n {groupTitle}\n {groups.map((i, index) => (\n
\n {removable && \n onRemove(name + '-' + index)}\n title=\"Remove\"\n >\n ×\n \n }\n {i}\n
\n )\n )}\n {addable && \n onAdd(getBlankData(schema.items), coords)}\n title=\"Add new\"\n >\n Add item\n \n }\n
\n )\n }\n\n return [...rows, ...groups];\n}\n\n\nexport function getObjectFormRow(data, schema, name, onChange, onAdd, onRemove, level) {\n let rows = [];\n\n let keys = [...Object.keys(schema.keys)];\n\n if (schema.additionalProperties)\n keys = [...keys, ...Object.keys(data).filter((k) => keys.indexOf(k) === -1)];\n\n for (let i = 0; i < keys.length; i++) {\n let key = keys[i];\n let value = data[key];\n let childName = name + '-' + key;\n let schemaValue = schema.keys[key] || {type: 'string'};\n\n if (!schemaValue.title)\n schemaValue.title = getVerboseName(key);\n\n let removable = false;\n if (schema.keys[key] === undefined)\n removable = true;\n\n if (schemaValue.type === 'array') {\n rows.push(getArrayFormRow(value, schemaValue, childName, onChange, onAdd, onRemove, level + 1));\n } else if (schemaValue.type === 'object') {\n rows.push(getObjectFormRow(value, schemaValue, childName, onChange, onAdd, onRemove, level + 1));\n } else {\n rows.push(getStringFormRow(\n value, schemaValue, childName, onChange, onRemove, removable, \n () => handleKeyEdit(data, key, value, childName, onAdd, onRemove),\n removable\n ));\n }\n }\n\n if (rows.length || schema.additionalProperties) {\n let className = \"rjf-form-group-inner\";\n if (level === 0 && !rows.length)\n className = \"\";\n \n let coords = name;\n\n rows = (\n handleKeyValueAdd(data, coords, onAdd)}\n key={'row_group_' + name}\n >\n {rows}\n \n );\n }\n\n return rows;\n}\n\n\nfunction handleKeyValueAdd(data, coords, onAdd) {\n let key = prompt(\"Add new key\");\n if (key === null) // clicked cancel\n return;\n\n key = key.trim();\n if (!key)\n alert(\"(!) Can't add empty key.\\r\\n\\r\\n‎\");\n else if (data.hasOwnProperty(key))\n alert(\"(!) Duplicate keys not allowed. This key already exists.\\r\\n\\r\\n‎\");\n else\n onAdd(\"\", coords + '-' + key); \n}\n\n\nfunction handleKeyEdit(data, key, value, coords, onAdd, onRemove) {\n let newKey = prompt(\"Rename key\", key);\n if (newKey === null) // clicked cancel\n return;\n\n newKey = newKey.trim();\n\n if (newKey === key) // same keys\n return;\n\n if (!newKey)\n return alert(\"(!) Key name can't be empty.\\r\\n\\r\\n‎\");\n else if (data.hasOwnProperty(newKey))\n return alert(\"(!) Duplicate keys not allowed. This key already exists.\\r\\n\\r\\n‎\");\n\n onAdd(value, name + '-' + newKey);\n onRemove(coords);\n}\n","import {getBlankData, getSyncedData} from './data';\nimport {getArrayFormRow, getObjectFormRow} from './ui';\nimport {EditorContext} from './util';\n\n\nexport default class Form extends React.Component {\n constructor(props) {\n super(props);\n\n this.dataInput = document.getElementById(this.props.dataInputId);\n this.schema = props.schema;\n\n let data = props.data;\n\n if (!data) {\n // create empty data from schema\n data = getBlankData(this.schema);\n } else {\n // data might be stale if schema has new keys, so add them to data\n try {\n data = getSyncedData(data, this.schema);\n } catch (error) {\n console.log(\"Error: Schema and data don't match\");\n console.log(error);\n }\n }\n\n this.state = {\n value: '',\n data: data\n };\n \n // update data in the input\n this.populateDataInput();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.data !== prevState.data) {\n this.populateDataInput();\n }\n }\n\n populateDataInput = () => {\n this.dataInput.value = JSON.stringify(this.state.data);\n }\n\n handleChange = (coords, value) => {\n /*\n e.target.name is a chain of indices and keys:\n xxx-0-key-1-key2 and so on.\n These can be used as coordinates to locate \n a particular deeply nested item.\n\n This first coordinate is not important and should be removed.\n */\n coords = coords.split('-');\n\n coords.shift(); // remove first coord\n\n function setDataUsingCoords(coords, data, value) {\n let coord = coords.shift();\n if (!isNaN(Number(coord)))\n coord = Number(coord);\n\n if (coords.length) {\n setDataUsingCoords(coords, data[coord], value);\n } else {\n data[coord] = value;\n }\n }\n\n let _data = JSON.parse(JSON.stringify(this.state.data));\n\n setDataUsingCoords(coords, _data, value);\n\n this.setState({data: _data});\n }\n\n getFields = () => {\n let data = this.state.data;\n let formGroups = [];\n\n try {\n if (this.schema.type === 'array') {\n return getArrayFormRow(\n data, this.schema, 'rjf',\n this.handleChange, this.addFieldset, this.removeFieldset,\n 0\n );\n } else if (this.schema.type === 'object') {\n return getObjectFormRow(\n data, this.schema, 'rjf',\n this.handleChange, this.addFieldset, this.removeFieldset,\n 0\n );\n }\n } catch (error) {\n formGroups = (\n

\n (!) Error: Schema and data do not match.\n

\n );\n }\n\n return formGroups;\n }\n\n addFieldset = (blankData, coords) => {\n coords = coords.split('-');\n coords.shift();\n\n this.setState((state) => {\n function addDataUsingCoords(coords, data, value) {\n let coord = coords.shift();\n if (!isNaN(Number(coord)))\n coord = Number(coord);\n\n if (coords.length) {\n addDataUsingCoords(coords, data[coord], value);\n } else {\n if (Array.isArray(data)) {\n data.push(value);\n }\n else {\n if (Array.isArray(data[coord])) {\n data[coord].push(value);\n } else {\n data[coord] = value;\n }\n }\n }\n }\n\n let _data = JSON.parse(JSON.stringify(state.data));\n\n addDataUsingCoords(coords, _data, blankData);\n\n return {data: _data};\n });\n }\n\n removeFieldset = (coords) => {\n coords = coords.split('-');\n coords.shift();\n\n this.setState((state) => {\n function removeDataUsingCoords(coords, data) {\n let coord = coords.shift();\n if (!isNaN(Number(coord)))\n coord = Number(coord);\n\n if (coords.length) {\n removeDataUsingCoords(coords, data[coord]);\n } else {\n if (Array.isArray(data))\n data = data.splice(coord, 1); // in-place mutation\n else\n delete data[coord];\n }\n }\n\n let _data = JSON.parse(JSON.stringify(state.data));\n\n removeDataUsingCoords(coords, _data);\n\n return {data: _data};\n });\n }\n\n render() {\n return (\n
\n
\n \n {this.getFields()}\n \n
\n
\n );\n }\n}\n","import JSONForm from './renderer';\n\n\nexport default {\n JSONForm,\n};","import Form from './form';\n\n\nexport default function JSONForm(config) {\n this.containerId = config.containerId;\n this.dataInputId = config.dataInputId;\n this.schema = config.schema;\n this.data = config.data;\n this.fileUploadEndpoint = config.fileUploadEndpoint;\n this.fieldName = config.fieldName;\n this.modelName = config.modelName;\n\n this.render = function() {\n ReactDOM.render(\n ,\n document.getElementById(this.containerId)\n );\n }\n}"],"names":["getBlankObject","schema","keys","key","value","type","getBlankArray","items","push","getBlankData","getSyncedArray","data","newData","JSON","parse","stringify","i","length","item","getSyncedObject","Object","schemaValue","hasOwnProperty","Button","className","props","React","children","Loader","EditorContext","createContext","FormInput","label","inputRef","ref","FormCheckInput","name","toUpperCase","undefined","checked","FormRadioInput","options","map","option","inputValue","FormSelectInput","defaultValue","disabled","FormFileInput","_this","getFileName","extractFileInfo","dataURL","dataURI","splitted","split","params","replace","properties","filter","param","binary","atob","array","charCodeAt","blob","window","Blob","Uint8Array","dataURItoBlob","size","addNameToDataURL","encodeURIComponent","handleChange","e","file","target","files","fileName","reader","FileReader","onload","event","result","onChange","readAsDataURL","endpoint","context","fileUploadEndpoint","console","error","alert","setState","loading","formData","FormData","append","fieldName","modelName","slice","fetch","method","headers","document","cookie","trim","indexOf","body","then","response","json","file_path","showFileBrowser","current","click","state","createRef","componentDidUpdate","prevProps","prevState","this","render","Component","GroupTitle","FormRow","onRemove","onClick","title","FormGroup","hasChildren","Children","count","innerClassName","level","addable","onAdd","FormField","InputField","inputProps","choices","widget","format","editable","onEdit","valueType","callback","isNaN","Number","getStringFormRow","removable","getArrayFormRow","rows","groups","min_items","max_items","childName","getObjectFormRow","coords","index","additionalProperties","k","string","charAt","substr","toLowerCase","getVerboseName","handleKeyEdit","prompt","handleKeyValueAdd","newKey","contextType","Form","populateDataInput","dataInput","shift","_data","setDataUsingCoords","coord","getFields","formGroups","addFieldset","removeFieldset","style","color","blankData","addDataUsingCoords","Array","isArray","removeDataUsingCoords","splice","getElementById","dataInputId","log","Provider","JSONForm","config","containerId","ReactDOM"],"mappings":"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"} \ No newline at end of file diff --git a/django_jsonform/static/django_jsonform/style.css b/django_jsonform/static/django_jsonform/style.css new file mode 100644 index 0000000..fdb27be --- /dev/null +++ b/django_jsonform/static/django_jsonform/style.css @@ -0,0 +1,192 @@ +.rjf-add-button { + background: url(./img/icon-addlink.svg) 0 1px no-repeat; + padding-left: 16px; + font-size: 12px; + color: #447e9b; + cursor: pointer; + margin-top: 8px; + border: 0px none; +} +.rjf-add-button:hover { + color: #036; + background-color: #f0faff; +} + +.rjf-form-group-wrapper { + position: relative; + width: 100%; + max-width: 39em; +} +.rjf-form-group { + margin-bottom: 15px; + position: relative; + width: 100%; + max-width: 39em; +} +.rjf-form-group-wrapper > .rjf-form-group { + max-width: 100%; +} +.rjf-form-group-inner { + box-sizing: border-box; + position: relative; + width: 100%; + margin-bottom: 10px; + border: 1px solid #e5e5e5; + border-radius: 4px; + padding: 10px; + box-shadow: 0 0 2px rgba(0,0,0,0.075); + transition: background-color 0.12s ease-in-out; +} +.rjf-form-row { + padding: 5px 0; + display: table; + width: 100%; + position: relative; +} +.rjf-form-row-inner { + transition: background-color 0.12s ease-in-out; + padding: 5px; +} + +.rjf-form-row input { + width: 20em; +} + +.rjf-form-row label + div { + margin-left: 170px; +} + +.rjf-file-field { + color: #666; +} + +.rjf-file-field .rjf-file-field-input { + display: inline-block; +} +.rjf-file-field .rjf-file-field-input input { + max-width: 18em; +} + +.rjf-current-file-name { + color: #666; + max-width: 20em; + margin-bottom: 0.5em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.rjf-current-file-name > span { + background-color: #eaf9ff; + color: #071d1f; + padding: 1px 4px; + border-radius: 3px; +} + +.rjf-form-row label input[type="checkbox"] { + margin-top: 0; + vertical-align: 0; + display: inline-block; + width: auto; +} + +.rjf-remove-button { + position: absolute; + top: 2px; + right: 5px; + text-indent: -9999px; + background: url(./img/icon-deletelink.svg) 0 1px no-repeat; + width: 3px; + height: 16px; + border: 0px none; + cursor: pointer; + z-index: 2; +} +.rjf-form-row > .rjf-remove-button { + top: 50%; + transform: translateY(-50%); +} +.rjf-remove-button:hover + .rjf-form-row-inner, +.rjf-remove-button:hover + .rjf-form-group > .rjf-form-group-inner { + background-color: #fff3f3; +} + +.rjf-edit-button { + text-indent: -9999px; + background: url(./img/icon-changelink.svg) 0 1px no-repeat; + width: 3px; + height: 16px; + border: 0px none; + cursor: pointer; +} + +.rjf-file-field-loading { + margin-top: 0.6em; + vertical-align: middle; + display: inline-block; +} +.rjf-loader { + clear: both; + display: inline-block; + margin-right: 0.1em; + height: 0.9em; + width: 0.9em; + vertical-align: middle;; + border: 2px #a7e6f0 solid; + border-top-color: #2d6c8b; + border-radius: 50%; + -webkit-animation: loaderRotate .4s infinite linear; + animation: loaderRotate .4s infinite linear; +} + +@-webkit-keyframes loaderRotate { + from { + -webkit-transform: rotate(0deg); + } + to { + -webkit-transform: rotate(359deg); + } +} +@keyframes loaderRotate { + from { + transform: rotate(0deg); + } + to { + transform: rotate(359deg); + } +} + +@media(max-width: 767px) { + .rjf-form-group { + width: calc(100vw - 30px); + max-width: 100%; + } + + .rjf-form-row input { + width: 100%; + } + + .rjf-form-row label input[type="checkbox"] { + width: auto; + } + + .rjf-form-row > .rjf-remove-button { + top: 5px; + transform: none; + } + + .rjf-form-row label + div { + margin-left: auto; + } + + .rjf-current-file-name { + width: 100%; + max-width: 100%; + white-space: unset; + word-wrap: anywhere; + word-break: break-all; + } + + .rjf-file-field-loading { + margin-top: 0; + } +} \ No newline at end of file diff --git a/django_jsonform/static/django_jsonform/vendor/react-dom.production.min.js b/django_jsonform/static/django_jsonform/vendor/react-dom.production.min.js new file mode 100644 index 0000000..e38d120 --- /dev/null +++ b/django_jsonform/static/django_jsonform/vendor/react-dom.production.min.js @@ -0,0 +1,245 @@ +/** @license React v17.0.2 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +(function(){/* + Modernizr 3.0.0pre (Custom Build) | MIT +*/ +'use strict';(function(M,ha){"object"===typeof exports&&"undefined"!==typeof module?ha(exports,require("react")):"function"===typeof define&&define.amd?define(["exports","react"],ha):(M=M||self,ha(M.ReactDOM={},M.React))})(this,function(M,ha){function m(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;cb}return!1}function Q(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}function Ed(a,b,c,d){var e=I.hasOwnProperty(b)?I[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return"\n"+e[g].replace(" at new "," at ");while(1<=g&&0<=h)}break}}}finally{Gd=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?Kb(a):""}function pi(a){switch(a.tag){case 5:return Kb(a.type);case 16:return Kb("Lazy");case 13:return Kb("Suspense"); +case 19:return Kb("SuspenseList");case 0:case 2:case 15:return a=Bc(a.type,!1),a;case 11:return a=Bc(a.type.render,!1),a;case 22:return a=Bc(a.type._render,!1),a;case 1:return a=Bc(a.type,!0),a;default:return""}}function hb(a){if(null==a)return null;if("function"===typeof a)return a.displayName||a.name||null;if("string"===typeof a)return a;switch(a){case wa:return"Fragment";case Ua:return"Portal";case Lb:return"Profiler";case Hd:return"StrictMode";case Mb:return"Suspense";case Cc:return"SuspenseList"}if("object"=== +typeof a)switch(a.$$typeof){case Id:return(a.displayName||"Context")+".Consumer";case Jd:return(a._context.displayName||"Context")+".Provider";case Dc:var b=a.render;b=b.displayName||b.name||"";return a.displayName||(""!==b?"ForwardRef("+b+")":"ForwardRef");case Ec:return hb(a.type);case Kd:return hb(a._render);case Ld:b=a._payload;a=a._init;try{return hb(a(b))}catch(c){}}return null}function xa(a){switch(typeof a){case "boolean":case "number":case "object":case "string":case "undefined":return a; +default:return""}}function Ef(a){var b=a.type;return(a=a.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===b||"radio"===b)}function qi(a){var b=Ef(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=""+a[b];if(!a.hasOwnProperty(b)&&"undefined"!==typeof c&&"function"===typeof c.get&&"function"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=""+a;f.call(this,a)}});Object.defineProperty(a, +b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=""+a},stopTracking:function(){a._valueTracker=null;delete a[b]}}}}function Fc(a){a._valueTracker||(a._valueTracker=qi(a))}function Ff(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d="";a&&(d=Ef(a)?a.checked?"true":"false":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Gc(a){a=a||("undefined"!==typeof document?document:void 0);if("undefined"===typeof a)return null;try{return a.activeElement|| +a.body}catch(b){return a.body}}function Md(a,b){var c=b.checked;return B({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Gf(a,b){var c=null==b.defaultValue?"":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=xa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:"checkbox"===b.type||"radio"===b.type?null!=b.checked:null!=b.value}}function Hf(a,b){b=b.checked;null!=b&&Ed(a,"checked", +b,!1)}function Nd(a,b){Hf(a,b);var c=xa(b.value),d=b.type;if(null!=c)if("number"===d){if(0===c&&""===a.value||a.value!=c)a.value=""+c}else a.value!==""+c&&(a.value=""+c);else if("submit"===d||"reset"===d){a.removeAttribute("value");return}b.hasOwnProperty("value")?Od(a,b.type,c):b.hasOwnProperty("defaultValue")&&Od(a,b.type,xa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}function If(a,b,c){if(b.hasOwnProperty("value")||b.hasOwnProperty("defaultValue")){var d= +b.type;if(!("submit"!==d&&"reset"!==d||void 0!==b.value&&null!==b.value))return;b=""+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;""!==c&&(a.name="");a.defaultChecked=!!a._wrapperState.initialChecked;""!==c&&(a.name=c)}function Od(a,b,c){if("number"!==b||Gc(a.ownerDocument)!==a)null==c?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c)}function ri(a){var b="";ha.Children.forEach(a,function(a){null!=a&&(b+=a)});return b} +function Pd(a,b){a=B({children:void 0},b);if(b=ri(b.children))a.children=b;return a}function ib(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(m(93));c=c[0]}b=c}null==b&&(b="");c=b}a._wrapperState={initialValue:xa(c)}}function Kf(a,b){var c=xa(b.value),d=xa(b.defaultValue);null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!== +c&&(a.defaultValue=c));null!=d&&(a.defaultValue=""+d)}function Lf(a,b){b=a.textContent;b===a._wrapperState.initialValue&&""!==b&&null!==b&&(a.value=b)}function Mf(a){switch(a){case "svg":return"http://www.w3.org/2000/svg";case "math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Rd(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?Mf(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a}function Nf(a,b,c){return null== +b||"boolean"===typeof b||""===b?"":c||"number"!==typeof b||0===b||Nb.hasOwnProperty(a)&&Nb[a]?(""+b).trim():b+"px"}function Of(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf("--"),e=Nf(c,b[c],d);"float"===c&&(c="cssFloat");d?a.setProperty(c,e):a[c]=e}}function Sd(a,b){if(b){if(si[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(m(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(m(60));if(!("object"===typeof b.dangerouslySetInnerHTML&& +"__html"in b.dangerouslySetInnerHTML))throw Error(m(61));}if(null!=b.style&&"object"!==typeof b.style)throw Error(m(62));}}function Td(a,b){if(-1===a.indexOf("-"))return"string"===typeof b.is;switch(a){case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":return!1;default:return!0}}function Ud(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement); +return 3===a.nodeType?a.parentNode:a}function Pf(a){if(a=Ob(a)){if("function"!==typeof Vd)throw Error(m(280));var b=a.stateNode;b&&(b=Hc(b),Vd(a.stateNode,a.type,b))}}function Qf(a){jb?kb?kb.push(a):kb=[a]:jb=a}function Rf(){if(jb){var a=jb,b=kb;kb=jb=null;Pf(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}function Oc(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Ba(b);a[b]=c}function Hi(a){return 0===a?32:31-(Ii(a)/Ji|0)|0}function Ki(a,b,c,d){Xa||Xd();var e=he,f=Xa;Xa=!0;try{fg(e,a,b,c,d)}finally{(Xa=f)||Wd()}}function Li(a,b,c,d){Mi(Ni,he.bind(null,a,b,c,d))}function he(a, +b,c,d){if(Pc){var e;if((e=0===(b&4))&&0=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ug(c)}}function wg(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wg(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xg(){for(var a=window,b=Gc();b instanceof a.HTMLIFrameElement;){try{var c= +"string"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Gc(a.document)}return b}function ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b||"true"===a.contentEditable)}function yg(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;oe||null==qb||qb!==Gc(d)||(d=qb,"selectionStart"in d&&ne(d)?d={start:d.selectionStart, +end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),$b&&Zb($b,d)||($b=d,d=Tc(pe,"onSelect"),0ub||(a.current=ve[ub],ve[ub]=null,ub--)}function A(a,b,c){ub++;ve[ub]=a.current;a.current=b}function vb(a,b){var c=a.type.contextTypes;if(!c)return Ha;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext= +b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function S(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Sg(a,b,c){if(D.current!==Ha)throw Error(m(168));A(D,b);A(J,c)}function Tg(a,b,c){var d=a.stateNode;a=b.childContextTypes;if("function"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(m(108,hb(b)||"Unknown",e));return B({},c,d)}function Xc(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Ha;Ya=D.current; +A(D,a);A(J,J.current);return!0}function Ug(a,b,c){var d=a.stateNode;if(!d)throw Error(m(169));c?(a=Tg(a,b,Ya),d.__reactInternalMemoizedMergedChildContext=a,t(J),t(D),A(D,a)):t(J);A(J,c)}function wb(){switch(oj()){case Yc:return 99;case Vg:return 98;case Wg:return 97;case Xg:return 96;case Yg:return 95;default:throw Error(m(332));}}function Zg(a){switch(a){case 99:return Yc;case 98:return Vg;case 97:return Wg;case 96:return Xg;case 95:return Yg;default:throw Error(m(332));}}function Za(a,b){a=Zg(a); +return pj(a,b)}function bc(a,b,c){a=Zg(a);return we(a,b,c)}function ja(){if(null!==Zc){var a=Zc;Zc=null;xe(a)}$g()}function $g(){if(!ye&&null!==pa){ye=!0;var a=0;try{var b=pa;Za(99,function(){for(;ap?(x=l,l=null):x=l.sibling;var C=r(e,l,h[p],k);if(null===C){null===l&&(l=x);break}a&&l&&null=== +C.alternate&&b(e,l);g=f(C,g,p);null===v?m=C:v.sibling=C;v=C;l=x}if(p===h.length)return c(e,l),m;if(null===l){for(;px?(C=p,p=null):C=p.sibling;var Da=r(e,p,q.value,k);if(null===Da){null===p&&(p=C);break}a&&p&&null===Da.alternate&&b(e,p);g=f(Da,g,x);null===v?l=Da:v.sibling=Da;v=Da;p=C}if(q.done)return c(e,p),l;if(null===p){for(;!q.done;x++,q=h.next())q=n(e,q.value,k),null!==q&&(g=f(q,g,x),null===v?l=q:v.sibling=q,v=q);return l}for(p=d(e,p);!q.done;x++,q=h.next())q=t(p,e,x,q.value,k),null!==q&&(a&&null!== +q.alternate&&p.delete(null===q.key?x:q.key),g=f(q,g,x),null===v?l=q:v.sibling=q,v=q);a&&p.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k="object"===typeof f&&null!==f&&f.type===wa&&null===f.key;k&&(f=f.props.children);var l="object"===typeof f&&null!==f;if(l)switch(f.$$typeof){case ec:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===wa){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a, +k.sibling);d=e(k,f.props);d.ref=dc(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===wa?(d=zb(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=fd(f.type,f.key,f.props,null,a.mode,h),h.ref=dc(a,d,f),h.return=a,a=h)}return g(a);case Ua:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d= +d.sibling}d=Ee(f,a.mode,h);d.return=a;a=d}return g(a)}if("string"===typeof f||"number"===typeof f)return f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=De(f,a.mode,h),d.return=a,a=d),g(a);if(gd(f))return w(a,d,f,h);if(Jb(f))return z(a,d,f,h);l&&ed(a,f);if("undefined"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(m(152,hb(a.type)||"Component"));}return c(a,d)}}function $a(a){if(a===fc)throw Error(m(174));return a}function Fe(a,b){A(gc, +b);A(hc,a);A(ka,fc);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Rd(null,"");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Rd(b,a)}t(ka);A(ka,b)}function Ab(a){t(ka);t(hc);t(gc)}function jh(a){$a(gc.current);var b=$a(ka.current);var c=Rd(b,a.type);b!==c&&(A(hc,a),A(ka,c))}function Ge(a){hc.current===a&&(t(ka),t(hc))}function hd(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||"$?"===c.data|| +"$!"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function kh(a,b){var c=Z(5,null,null,0);c.elementType="DELETED";c.type="DELETED";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect= +a.lastEffect=c}function lh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=""===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}function He(a){if(la){var b=Na;if(b){var c=b;if(!lh(a,b)){b=tb(c.nextSibling);if(!b||!lh(a,b)){a.flags=a.flags&-1025|2;la=!1;ra=a;return}kh(ra,c)}ra=a;Na=tb(b.firstChild)}else a.flags=a.flags&-1025|2,la=!1, +ra=a}}function mh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;ra=a}function id(a){if(a!==ra)return!1;if(!la)return mh(a),la=!0,!1;var b=a.type;if(5!==a.tag||"head"!==b&&"body"!==b&&!se(b,a.memoizedProps))for(b=Na;b;)kh(a,b),b=tb(b.nextSibling);mh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(m(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if("/$"===c){if(0===b){Na=tb(a.nextSibling);break a}b--}else"$"!==c&&"$!"!== +c&&"$?"!==c||b++}a=a.nextSibling}Na=null}}else Na=ra?tb(a.stateNode.nextSibling):null;return!0}function Ie(){Na=ra=null;la=!1}function Je(){for(var a=0;af))throw Error(m(301));f+=1;K=N=null;b.updateQueue=null;jc.current=sj;a=c(d,e)}while(kc)}jc.current=jd;b=null!==N&&null!==N.next;ic=0;K=N=y=null;kd=!1;if(b)throw Error(m(300));return a}function ab(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===K?y.memoizedState=K=a:K=K.next=a;return K}function bb(){if(null===N){var a=y.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===K?y.memoizedState:K.next;if(null!== +b)K=b,N=a;else{if(null===a)throw Error(m(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===K?y.memoizedState=K=a:K=K.next=a}return K}function ma(a,b){return"function"===typeof b?b(a):b}function lc(a,b,c){b=bb();c=b.queue;if(null===c)throw Error(m(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState; +var h=g=f=null,k=e;do{var l=k.lane;if((ic&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;y.lanes|=l;La|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;X(d,b.memoizedState)||(fa=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState= +d}return[b.memoizedState,c.dispatch]}function mc(a,b,c){b=bb();c=b.queue;if(null===c)throw Error(m(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);X(f,b.memoizedState)||(fa=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function nh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes, +a=(ic&a)===a)b._workInProgressVersionPrimary=d,Bb.push(b);if(a)return c(b._source);Bb.push(b);throw Error(m(350));}function oh(a,b,c,d){var e=R;if(null===e)throw Error(m(349));var f=b._getVersion,g=f(b._source),h=jc.current,k=h.useState(function(){return nh(e,b,c)}),l=k[1],n=k[0];k=K;var t=a.memoizedState,r=t.refs,w=r.getSnapshot,z=t.source;t=t.subscribe;var B=y;a.memoizedState={refs:r,source:b,subscribe:d};h.useEffect(function(){r.getSnapshot=c;r.setSnapshot=l;var a=f(b._source);if(!X(g,a)){a=c(b._source); +X(n,a)||(l(a),a=Oa(B),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=e.entanglements,h=a;0c?98:c,function(){a(!0)});Za(97\x3c/script>",a=a.removeChild(a.firstChild)):"string"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),"select"===c&&(g=a,d.multiple? +g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Fa]=b;a[Wc]=d;xj(a,b,!1,!1);b.stateNode=a;g=Td(c,d);switch(c){case "dialog":z("cancel",a);z("close",a);e=d;break;case "iframe":case "object":case "embed":z("load",a);e=d;break;case "video":case "audio":for(e=0;eWe&&(b.flags|=64,f=!0,oc(d,!1),b.lanes=33554432)}else{if(!f)if(a=hd(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),oc(d,!0),null===d.tail&&"hidden"===d.tailMode&& +!g.alternate&&!la)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*P()-d.renderingStartTime>We&&1073741824!==c&&(b.flags|=64,f=!0,oc(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=P(),c.sibling=null,b=E.current,A(E,f?b&1|2:b&1),c):null;case 23:case 24:return ta=cb.current,t(cb),null!==a&&null!== +a.memoizedState!==(null!==b.memoizedState)&&"unstable-defer-without-hiding"!==d.mode&&(b.flags|=4),null}throw Error(m(156,b.tag));}function zj(a,b){switch(a.tag){case 1:return S(a.type)&&(t(J),t(D)),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 3:Ab();t(J);t(D);Je();b=a.flags;if(0!==(b&64))throw Error(m(285));a.flags=b&-4097|64;return a;case 5:return Ge(a),null;case 13:return t(E),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return t(E),null;case 4:return Ab(),null;case 10:return Ae(a), +null;case 23:case 24:return ta=cb.current,t(cb),null;default:return null}}function Xe(a,b){try{var c="",d=b;do c+=pi(d),d=d.return;while(d);var e=c}catch(f){e="\nError generating stack: "+f.message+"\n"+f.stack}return{value:a,source:b,stack:e}}function Ye(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}function Mh(a,b,c){c=Ia(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){rd||(rd=!0,Ze=d);Ye(a,b)};return c}function Nh(a,b,c){c=Ia(-1,c);c.tag= +3;var d=a.type.getDerivedStateFromError;if("function"===typeof d){var e=b.value;c.payload=function(){Ye(a,b);return d(e)}}var f=a.stateNode;null!==f&&"function"===typeof f.componentDidCatch&&(c.callback=function(){"function"!==typeof d&&(null===na?na=new Set([this]):na.add(this),Ye(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:""})});return c}function Oh(a){var b=a.ref;if(null!==b)if("function"===typeof b)try{b(null)}catch(c){Qa(a,c)}else b.current=null}function Aj(a, +b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:ea(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&te(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(m(163));}function Bj(a,b,c,d){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next; +do 3===(a.tag&3)&&(d=a.create,a.destroy=d()),a=a.next;while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Ph(c,a),Cj(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:ea(c.type,b.memoizedProps),a.componentDidUpdate(d,b.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&dh(c,b,a);return;case 3:b=c.updateQueue; +if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}dh(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&Pg(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&bg(c))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(m(163));}function Qh(a,b){for(var c=a;;){if(5=== +c.tag){var d=c.stateNode;if(b)d=d.style,"function"===typeof d.setProperty?d.setProperty("display","none","important"):d.display="none";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty("display")?e.display:null;d.style.display=Nf("display",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?"":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===a)break;for(;null===c.sibling;){if(null=== +c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}function Rh(a,b,c){if(db&&"function"===typeof db.onCommitFiberUnmount)try{db.onCommitFiberUnmount($e,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Ph(b,c);else{d=b;try{e()}catch(f){Qa(d,f)}}c=c.next}while(c!==a)}break;case 1:Oh(b);a=b.stateNode;if("function"===typeof a.componentWillUnmount)try{a.props= +b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Qa(b,f)}break;case 5:Oh(b);break;case 4:Sh(a,b)}}function Th(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function Uh(a){return 5===a.tag||3===a.tag||4===a.tag}function Vh(a){a:{for(var b=a.return;null!==b;){if(Uh(b))break a;b=b.return}throw Error(m(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d= +!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(m(161));}c.flags&16&&(qc(b,""),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Uh(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?af(a,c,b):bf(a,c,b)}function af(a,b,c){var d= +a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Vc));else if(4!==d&&(a=a.child,null!==a))for(af(a,b,c),a=a.sibling;null!==a;)af(a,b,c),a=a.sibling}function bf(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a); +else if(4!==d&&(a=a.child,null!==a))for(bf(a,b,c),a=a.sibling;null!==a;)bf(a,b,c),a=a.sibling}function Sh(a,b,c){c=b;for(var d=!1,e,f;;){if(!d){e=c.return;a:for(;;){if(null===e)throw Error(m(160));f=e.stateNode;switch(e.tag){case 5:e=f;f=!1;break a;case 3:e=f.containerInfo;f=!0;break a;case 4:e=f.containerInfo;f=!0;break a}e=e.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(Rh(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null=== +k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(Rh(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c= +c.sibling}}function cf(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[Wc]=d;"input"===a&&"radio"===d.type&&null!=d.name&&Hf(c,d);Td(a,e);b=Td(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=P()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>c?4320:1960*Ij(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.")}5!== +L&&(L=2);k=Xe(k,h);r=g;do{switch(r.tag){case 3:f=k;r.flags|=4096;b&=-b;r.lanes|=b;var B=Mh(r,f,b);ch(r,B);break a;case 1:f=k;var A=r.type,D=r.stateNode;if(0===(r.flags&64)&&("function"===typeof A.getDerivedStateFromError||null!==D&&"function"===typeof D.componentDidCatch&&(null===na||!na.has(D)))){r.flags|=4096;b&=-b;r.lanes|=b;var F=Nh(r,f,b);ch(r,F);break a}}r=r.return}while(null!==r)}ci(c)}catch(qa){b=qa;G===c&&null!==c&&(G=c=c.return);continue}break}while(1)}function Yh(){var a=vd.current;vd.current= +jd;return null===a?jd:a}function sc(a,b){var c=n;n|=16;var d=Yh();R===a&&O===b||Gb(a,b);do try{Nj();break}catch(e){Zh(a,e)}while(1);ze();n=c;vd.current=d;if(null!==G)throw Error(m(261));R=null;O=0;return L}function Nj(){for(;null!==G;)di(G)}function Hj(){for(;null!==G&&!Oj();)di(G)}function di(a){var b=Pj(a.alternate,a,ta);a.memoizedProps=a.pendingProps;null===b?ci(a):G=b;kf.current=null}function ci(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=vj(c,b,ta);if(null!==c){G=c;return}c= +b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(ta&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=A,A=h),h=vg(p,A),f=vg(p,g),h&&f&&(1!==u.rangeCount||u.anchorNode!==h.node||u.anchorOffset!==h.offset||u.focusNode!==f.node||u.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),u.removeAllRanges(),A>g?(u.addRange(q),u.extend(f.node, +f.offset)):(q.setEnd(f.node,f.offset),u.addRange(q))))));q=[];for(u=p;u=u.parentNode;)1===u.nodeType&&q.push({element:u,left:u.scrollLeft,top:u.scrollTop});"function"===typeof p.focus&&p.focus();for(p=0;pP()-df?Gb(a,0):jf|=c);ba(a,b)}function Ej(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===wb()?1:2:(0===ua&&(ua=Fb),b=nb(62914560&~ua),0===b&&(b=4194304))); +c=W();a=ud(a,b);null!==a&&(Oc(a,b,c),ba(a,c))}function Uj(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function Qe(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Vj(a){if("function"=== +typeof a)return Qe(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Dc)return 11;if(a===Ec)return 14}return 2}function Ma(a,b){var c=a.alternate;null===c?(c=Z(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue= +a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}function fd(a,b,c,d,e,f){var g=2;d=a;if("function"===typeof a)Qe(a)&&(g=1);else if("string"===typeof a)g=5;else a:switch(a){case wa:return zb(c.children,e,f,b);case fi:g=8;e|=16;break;case Hd:g=8;e|=1;break;case Lb:return a=Z(12,c,b,e|8),a.elementType=Lb,a.type=Lb,a.lanes=f,a;case Mb:return a=Z(13,c,b,e),a.type=Mb,a.elementType=Mb,a.lanes= +f,a;case Cc:return a=Z(19,c,b,e),a.elementType=Cc,a.lanes=f,a;case pf:return Ue(c,e,f,b);case qf:return a=Z(24,c,b,e),a.elementType=qf,a.lanes=f,a;default:if("object"===typeof a&&null!==a)switch(a.$$typeof){case Jd:g=10;break a;case Id:g=9;break a;case Dc:g=11;break a;case Ec:g=14;break a;case Ld:g=16;d=null;break a;case Kd:g=22;break a}throw Error(m(130,null==a?a:typeof a,""));}b=Z(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function zb(a,b,c,d){a=Z(7,a,d,b);a.lanes=c;return a}function Ue(a, +b,c,d){a=Z(23,a,d,b);a.elementType=pf;a.lanes=c;return a}function De(a,b,c){a=Z(6,a,null,b);a.lanes=c;return a}function Ee(a,b,c){b=Z(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function Wj(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode= +null;this.callbackPriority=0;this.eventTimes=ge(0);this.expirationTimes=ge(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=ge(0);this.mutableSourceEagerHydrationData=null}function Xj(a,b,c){var d=3