@startlibs/form 1.1.2 → 1.2.0-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.
- package/lib/AutoComplete.mjs +19 -10
- package/lib/AutoComplete.mjs.map +1 -1
- package/lib/Checkbox.mjs +4 -2
- package/lib/Checkbox.mjs.map +1 -1
- package/lib/Combobox.mjs +1 -1
- package/lib/Combobox.mjs.map +1 -1
- package/lib/DatePicker.mjs +25 -9
- package/lib/DatePicker.mjs.map +1 -1
- package/lib/Errors.mjs +20 -10
- package/lib/Errors.mjs.map +1 -1
- package/lib/ExpandableBox.mjs +1 -1
- package/lib/ExpandableBox.mjs.map +1 -1
- package/lib/Field.mjs +10 -5
- package/lib/Field.mjs.map +1 -1
- package/lib/FieldBox.mjs +3 -3
- package/lib/FieldBox.mjs.map +1 -1
- package/lib/InputboxGroup.mjs +1 -1
- package/lib/InputboxGroup.mjs.map +1 -1
- package/lib/RichText.mjs +11 -6
- package/lib/RichText.mjs.map +1 -1
- package/lib/TextInput.mjs +4 -4
- package/lib/TextInput.mjs.map +1 -1
- package/lib/alt/checkbox/SimpleCheckbox.mjs +1 -1
- package/lib/alt/checkbox/SimpleCheckbox.mjs.map +1 -1
- package/lib/alt/checkbox/ToggleCheckbox.mjs +4 -3
- package/lib/alt/checkbox/ToggleCheckbox.mjs.map +1 -1
- package/lib/alt/radiobox/CleanTabRadiobox.mjs +1 -1
- package/lib/alt/radiobox/CleanTabRadiobox.mjs.map +1 -1
- package/lib/alt/radiobox/SimpleRadiobox.mjs +2 -2
- package/lib/alt/radiobox/SimpleRadiobox.mjs.map +1 -1
- package/lib/alt/radiobox/TabRadiobox.mjs +1 -1
- package/lib/alt/radiobox/TabRadiobox.mjs.map +1 -1
- package/lib/index.cjs +106 -54
- package/lib/index.cjs.map +1 -1
- package/lib/index.mjs +2 -2
- package/lib/withFormImageInput.mjs +1 -1
- package/lib/withFormImageInput.mjs.map +1 -1
- package/lib-yak/AutoComplete.mjs +705 -0
- package/lib-yak/AutoComplete.mjs.map +1 -0
- package/lib-yak/Checkbox.mjs +80 -0
- package/lib-yak/Checkbox.mjs.map +1 -0
- package/lib-yak/Combobox.mjs +652 -0
- package/lib-yak/Combobox.mjs.map +1 -0
- package/lib-yak/ComboboxWithCustom.mjs +77 -0
- package/lib-yak/ComboboxWithCustom.mjs.map +1 -0
- package/lib-yak/DatePicker.mjs +774 -0
- package/lib-yak/DatePicker.mjs.map +1 -0
- package/lib-yak/EditableBox.mjs +495 -0
- package/lib-yak/EditableBox.mjs.map +1 -0
- package/lib-yak/Errors.mjs +226 -0
- package/lib-yak/Errors.mjs.map +1 -0
- package/lib-yak/ExpandableBox.mjs +247 -0
- package/lib-yak/ExpandableBox.mjs.map +1 -0
- package/lib-yak/Field.mjs +93 -0
- package/lib-yak/Field.mjs.map +1 -0
- package/lib-yak/FieldBox.mjs +173 -0
- package/lib-yak/FieldBox.mjs.map +1 -0
- package/lib-yak/Form.mjs +322 -0
- package/lib-yak/Form.mjs.map +1 -0
- package/lib-yak/FormValue.mjs +111 -0
- package/lib-yak/FormValue.mjs.map +1 -0
- package/lib-yak/InputboxGroup.mjs +146 -0
- package/lib-yak/InputboxGroup.mjs.map +1 -0
- package/lib-yak/Radiobox.mjs +69 -0
- package/lib-yak/Radiobox.mjs.map +1 -0
- package/lib-yak/RichText.mjs +776 -0
- package/lib-yak/RichText.mjs.map +1 -0
- package/lib-yak/TextInput.mjs +589 -0
- package/lib-yak/TextInput.mjs.map +1 -0
- package/lib-yak/alt/checkbox/SimpleCheckbox.mjs +225 -0
- package/lib-yak/alt/checkbox/SimpleCheckbox.mjs.map +1 -0
- package/lib-yak/alt/checkbox/ToggleCheckbox.mjs +173 -0
- package/lib-yak/alt/checkbox/ToggleCheckbox.mjs.map +1 -0
- package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs +87 -0
- package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs.map +1 -0
- package/lib-yak/alt/radiobox/IconRadioBox.mjs +138 -0
- package/lib-yak/alt/radiobox/IconRadioBox.mjs.map +1 -0
- package/lib-yak/alt/radiobox/SimpleRadiobox.mjs +203 -0
- package/lib-yak/alt/radiobox/SimpleRadiobox.mjs.map +1 -0
- package/lib-yak/alt/radiobox/TabRadiobox.mjs +117 -0
- package/lib-yak/alt/radiobox/TabRadiobox.mjs.map +1 -0
- package/lib-yak/enhanceInput.mjs +131 -0
- package/lib-yak/enhanceInput.mjs.map +1 -0
- package/lib-yak/index.mjs +28 -0
- package/lib-yak/index.mjs.map +1 -0
- package/lib-yak/useConfirmDialog.mjs +117 -0
- package/lib-yak/useConfirmDialog.mjs.map +1 -0
- package/lib-yak/useDraftConfirmation.mjs +56 -0
- package/lib-yak/useDraftConfirmation.mjs.map +1 -0
- package/lib-yak/validation.mjs +91 -0
- package/lib-yak/validation.mjs.map +1 -0
- package/lib-yak/withFormImageInput.mjs +298 -0
- package/lib-yak/withFormImageInput.mjs.map +1 -0
- package/package.json +13 -3
- package/src/AutoComplete.jsx +25 -15
- package/src/Checkbox.jsx +2 -2
- package/src/Combobox.jsx +1 -1
- package/src/DatePicker.jsx +25 -22
- package/src/Errors.jsx +18 -8
- package/src/ExpandableBox.jsx +3 -3
- package/src/Field.jsx +9 -4
- package/src/FieldBox.jsx +6 -6
- package/src/IconRadioBoxOldHubt.jsx +1 -1
- package/src/InputboxGroup.jsx +1 -1
- package/src/RichText.jsx +17 -13
- package/src/TextInput.jsx +37 -26
- package/src/alt/checkbox/SimpleCheckbox.jsx +5 -5
- package/src/alt/checkbox/ToggleCheckbox.jsx +9 -8
- package/src/alt/radiobox/CleanTabRadiobox.jsx +2 -2
- package/src/alt/radiobox/SimpleRadiobox.jsx +7 -7
- package/src/alt/radiobox/TabRadiobox.jsx +4 -4
- package/src/withFormImageInput.jsx +2 -2
package/lib/index.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { ComponentMetaContext, Form, FormContext, WithForm, getFormResponse, getFormValues, useForm, useFormMeta, useFormValue, useFormValueRef, withForm, withForm2 } from './Form.mjs';
|
|
2
2
|
export { EnhanceInput, PathContext, enhanceInput, enhancedInputDisplayName, useInput } from './enhanceInput.mjs';
|
|
3
|
-
export { BellowFieldDescription, Field, FieldDescription, HelpText } from './Field.mjs';
|
|
3
|
+
export { BellowFieldDescription, Field, FieldDescription, FieldLabel, HelpText } from './Field.mjs';
|
|
4
4
|
export { FieldBox, FieldBoxAction, FieldBoxHelpText, FieldBoxIcon } from './FieldBox.mjs';
|
|
5
5
|
export { ConfirmDialog, FormDialog, useConfirmDialog, useConfirmDialogWithProps } from './useConfirmDialog.mjs';
|
|
6
6
|
export { FloatLabelTextInput, TextInput, useTextInput } from './TextInput.mjs';
|
|
7
|
-
export { ErrorFilterProvider, Errors, ErrorsContext, useErrors, useErrorsUtils, useHasError, useProvideErrors, useTransientErrorHelper } from './Errors.mjs';
|
|
7
|
+
export { ErrorFilterProvider, Errors, ErrorsCloseIcon, ErrorsContainer, ErrorsContext, ErrorsItem, useErrors, useErrorsUtils, useHasError, useProvideErrors, useTransientErrorHelper } from './Errors.mjs';
|
|
8
8
|
export { FileInput, WithFileInput, WithImageInput } from './withFormImageInput.mjs';
|
|
9
9
|
export { Checkbox } from './Checkbox.mjs';
|
|
10
10
|
export { Combobox, ComboboxInput, ComboboxMenu, NO_DIGITABLE_FOUND, Option, SEPARATOR } from './Combobox.mjs';
|
|
@@ -20,7 +20,7 @@ const FileInput = /*#__PURE__*/styled.input.attrs({
|
|
|
20
20
|
}).withConfig({
|
|
21
21
|
displayName: "withFormImageInput__FileInput",
|
|
22
22
|
componentId: "sc-o7trbb-0"
|
|
23
|
-
})(["z-index:1;cursor:pointer;opacity:0;position:absolute;top:0;right:0;left:0;bottom:0;width:100%;height:100%;overflow:hidden
|
|
23
|
+
})(["z-index:1;cursor:pointer;opacity:0;position:absolute;top:0;right:0;left:0;bottom:0;width:100%;height:100%;overflow:hidden;&::-webkit-file-upload-button{visibility:hidden;}&::file-upload-button{visibility:hidden;}"]);
|
|
24
24
|
const WithImageInput = _ref => {
|
|
25
25
|
let {
|
|
26
26
|
children,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withFormImageInput.mjs","sources":["../src/withFormImageInput.jsx"],"sourcesContent":["import React, {useContext, useState} from 'react'\nimport styled from 'styled-components'\nimport {FormContext, useFormValue} from './Form'\nimport {useToggle} from '@startlibs/core'\nimport {getUID, callIfFunction} from '@startlibs/utils'\nimport _ from 'lodash/fp'\n\nexport const FileInput = styled.input.attrs({type: 'file'})`\n z-index: 1;\n cursor: pointer;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n ::-webkit-file-upload-button {\n visibility: hidden;\n }\n ::file-upload-button {\n visibility: hidden;\n }\n `\n\n\nexport const WithImageInput = ({children, multiple, path = [\"image\"], preValidation = _.stubFalse, onChangeFile, onClose, onClick, uploadFetcher, onSuccess, onFailure, ajaxError, onTouchEnd, ...rest}) => {\n const form = useContext(FormContext)\n const loading = useToggle()\n const [tempImage, setTempImage] = useState()\n const getPath = (str,fileIndex = 0) => typeof path === 'function' ? [].concat(path(str,fileIndex)) : str !== 'image' ? [].concat(path).slice(0, -1).concat(str) : path\n\n const imagePath = getPath('image')\n const [formImage] = useFormValue(imagePath)\n const image = tempImage || formImage\n\n const validate = (files) => {\n const validations = files.map(preValidation).filter(Boolean)\n if (validations.length) {\n validations.forEach(v =>\n form.setError(getPath('image').join('.'), v)\n )\n return files.filter((file) => !preValidation(file))\n }\n return files\n }\n\n const handleFileEvent = (e) => {\n e.preventDefault()\n callIfFunction(onClose)\n const files = Array.from((e.nativeEvent.dataTransfer || e.nativeEvent.target).files)\n if (files.length > 0) {\n validate(files.slice(0,multiple ? undefined : 1)).forEach( (file,i) =>\n handleFile(file,e,i)\n )\n }\n }\n\n const handleFile = (file, eventTarget, fileIndex = 0) => {\n const getIndexedPath = (str) => getPath(str,fileIndex)\n const path = getIndexedPath()\n const oldUploadStatus = form.getMeta(getIndexedPath('uploadStatus'))\n const oldImage = form.getValue(getIndexedPath('image'))\n const oldImageHeight = form.getValue(getIndexedPath('imageHeight'))\n const oldImageWidth = form.getValue(getIndexedPath('imageWidth'))\n const oldFilename = form.getValue(getIndexedPath('fileName'))\n\n const objectUrl = URL.createObjectURL(file)\n const image = document.createElement('img')\n image.onload = () => {\n const {naturalWidth: imageWidth, naturalHeight: imageHeight} = image\n const newValues = {image: file, filename: file.name, imageWidth, imageHeight}\n form.setValues(_.flow(\n _.set(getIndexedPath('filename'), file.name),\n _.set(getIndexedPath('image'), file),\n _.set(getIndexedPath('imageWidth'), imageWidth),\n _.set(getIndexedPath('imageHeight'), imageHeight)\n ))\n form.setMeta(_.flow(\n _.update('submittingFiles', (v) => v ? v + 1 : 1),\n _.update('uploadingPaths', _.union([path.join(\".\")])),\n _.set(getIndexedPath('uploadStatus'), 'loading')\n ))\n setTempImage(objectUrl)\n callIfFunction(onChangeFile,file)\n loading.open()\n uploadFetcher(file, newValues)\n .then(({image, uploadStatus}) => {\n loading.close()\n if (form.getValue(getIndexedPath('image')) !== file) {\n form.setMeta(_.update(['submittingFiles'], (v) => v - 1))\n return\n }\n form.clearErrors()\n form.setValue(getIndexedPath('image'), image, false)\n form.setMeta(_.flow(\n _.update('uploadingPaths', _.difference(_,[path.join(\".\")])),\n _.update(['submittingFiles'], (v) => v - 1),\n _.update(['submittedFiles'], (v) => (v || []).concat([{path, file, image}])),\n _.set(getIndexedPath('uploadStatus'), uploadStatus)\n ))\n setTempImage(null)\n callIfFunction(onSuccess, {image, uploadStatus, imageWidth, imageHeight})\n }).catch((e) => {\n loading.close()\n if (form.getValue(getIndexedPath('image')) !== file) {\n form.setMeta(_.update(['submittingFiles'], (v) => v - 1))\n return\n }\n form.setError(getIndexedPath('image').join('.'), callIfFunction(ajaxError,_.get('[1].status',e)))\n form.setValues(_.flow(\n _.set(getIndexedPath('filename'), oldFilename),\n _.set(getIndexedPath('image'), oldImage),\n _.set(getIndexedPath('imageWidth'), oldImageWidth),\n _.set(getIndexedPath('imageHeight'), oldImageHeight)\n ),\n false\n )\n form.setMeta(_.flow(\n _.update('uploadingPaths', _.difference(_,[path.join(\".\")])),\n _.update(['submittingFiles'], (v) => v - 1),\n _.update(['submittedFiles'], (v) => (v || []).concat([{path, file, image}])),\n _.set(getIndexedPath('uploadStatus'), oldUploadStatus)\n ))\n setTempImage(null)\n callIfFunction(onFailure)\n })\n if (eventTarget && eventTarget.parentNode && typeof eventTarget.parentNode.click === 'function')\n eventTarget.parentNode.click()\n }\n image.src = objectUrl\n }\n\n const listenToClose = () => {\n }\n\n const handleClick = (e) => {\n callIfFunction(onClick,e)\n listenToClose()\n }\n const handleTouchEnd = (e) => {\n callIfFunction(onTouchEnd,e)\n listenToClose()\n }\n\n return children(\n <FileInput multiple={multiple} onChange={handleFileEvent} onClick={handleClick} tabIndex={-1} onTouchEnd={handleTouchEnd}/>,\n {\n image,\n isLoading: loading.isOpen,\n handleFile,\n handleFileEvent,\n Input: FileInput\n }\n )\n}\n\n\n\n\nexport const WithFileInput = ({children, multiple, path = [\"file\"], preValidation = _.stubFalse, onChangeFile, onClose, onClick, uploadFetcher, onSuccess, onFailure, ajaxError, onTouchEnd, maxFiles, ...rest}) => {\n const form = useContext(FormContext)\n const loading = useToggle()\n const [tempImage, setTempImage] = useState()\n const getPath = (str,fileIndex) => typeof path === 'function' ? [].concat(path(str,fileIndex)) : str !== 'file' ? [].concat(path).slice(0, -1).concat(str) : path\n\n const validate = (files) => {\n const validations = files.map(preValidation).filter(Boolean)\n if (validations.length) {\n validations.forEach(v =>\n form.setError(getPath('file',0).join('.'), v)\n )\n return files.filter((file) => !preValidation(file))\n }\n return files\n }\n\n const handleFileEvent = (e) => {\n e.preventDefault()\n callIfFunction(onClose)\n const files = Array.from((e.nativeEvent.dataTransfer || e.nativeEvent.target).files)\n if (files.length > 0) {\n validate(files.slice(0,multiple ? undefined : 1)).forEach( (file,i) =>\n handleFile(file,e,i)\n )\n }\n }\n\n const handleFile = (file, eventTarget) => {\n const currentFileIndex = (form.getValue(getPath()) || []).length\n if (currentFileIndex >= maxFiles) {\n form.setErrors({'': 'Número máximo de arquivos atingido'})\n return\n }\n const createGetIndexedPath = (index) => (str) => getPath(str,index)\n const getIndexedPath = createGetIndexedPath(currentFileIndex)\n const path = getIndexedPath()\n const oldUploadStatus = form.getMeta(getIndexedPath('uploadStatus'))\n const oldFile = form.getValue(getIndexedPath('file'))\n const oldFilename = form.getValue(getIndexedPath('fileName'))\n\n const uid = getUID()\n\n form.setValues(_.flow(\n _.set(getIndexedPath('filename'), file.name),\n _.set(getIndexedPath('file'), file),\n _.set(getIndexedPath('uid'), uid),\n ))\n form.setMeta(_.flow(\n _.update('submittingFiles', (v) => v ? v + 1 : 1),\n _.update('uploadingPaths', _.union([path.join(\".\")])),\n _.set(getIndexedPath('uploadStatus'), 'loading')\n ))\n callIfFunction(onChangeFile,file)\n\n loading.open()\n uploadFetcher(file)\n .then(({file, uploadStatus, response}) => {\n loading.close()\n const list = (form.getValue(getPath()) || [])\n const index = list.findIndex((f) => f.uid === uid)\n if (index < 0) {\n form.setMeta(_.update(['submittingFiles'], (v) => v - 1))\n return\n }\n const getIndexedPath = createGetIndexedPath(index)\n form.clearErrors()\n form.setValue(getIndexedPath('file'), response, false)\n form.setMeta(_.flow(\n _.update('uploadingPaths', _.difference(_,[path.join(\".\")])),\n _.update(['submittingFiles'], (v) => v - 1),\n _.update(['submittedFiles'], (v) => (v || []).concat([{path, file}])),\n _.set(getIndexedPath('uploadStatus'), uploadStatus)\n ))\n callIfFunction(onSuccess, {file, uploadStatus})\n }).catch((e) => {\n loading.close()\n const list = (form.getValue(getPath()) || [])\n const index = list.findIndex((f) => f.uid === uid)\n if (index < 0) {\n form.setMeta(_.update(['submittingFiles'], (v) => v - 1))\n return\n }\n const getIndexedPath = createGetIndexedPath(index)\n form.setError(getIndexedPath('file').join('.'), callIfFunction(ajaxError,_.get('[1].status',e)))\n if (oldFile) {\n form.setValues(\n _.flow(\n _.set(getIndexedPath('filename'), oldFilename),\n _.set(getIndexedPath('file'), oldFile),\n ),\n false\n )\n } else {\n form.setValues(\n _.update(getPath(), _.filter((f) => f.uid !== uid)),\n false\n )\n }\n form.setMeta(_.flow(\n _.update('uploadingPaths', _.difference(_,[path.join(\".\")])),\n _.update(['submittingFiles'], (v) => v - 1),\n _.update(['submittedFiles'], (v) => (v || []).concat([{path, file}])),\n _.set(getIndexedPath('uploadStatus'), oldUploadStatus)\n ))\n callIfFunction(onFailure)\n })\n if (eventTarget && eventTarget.parentNode && typeof eventTarget.parentNode.click === 'function')\n eventTarget.parentNode.click()\n }\n\n const listenToClose = () => {\n }\n\n const handleClick = (e) => {\n callIfFunction(onClick,e)\n listenToClose()\n }\n const handleTouchEnd = (e) => {\n callIfFunction(onTouchEnd,e)\n listenToClose()\n }\n\n return children(\n <FileInput multiple={multiple} onChange={handleFileEvent} onClick={handleClick} tabIndex={-1} onTouchEnd={handleTouchEnd}/>,\n {\n isLoading: loading.isOpen,\n handleFile,\n handleFileEvent,\n Input: FileInput\n }\n )\n}\n\n\n"],"names":["FileInput","styled","input","attrs","type","withConfig","displayName","componentId","WithImageInput","_ref","children","multiple","path","preValidation","_stubFalse","onChangeFile","onClose","onClick","uploadFetcher","onSuccess","onFailure","ajaxError","onTouchEnd","rest","_objectWithoutProperties","_excluded","form","useContext","FormContext","loading","useToggle","tempImage","setTempImage","useState","getPath","str","fileIndex","arguments","length","undefined","concat","slice","imagePath","formImage","useFormValue","image","validate","files","validations","map","filter","Boolean","forEach","v","setError","join","file","handleFileEvent","e","preventDefault","callIfFunction","Array","from","nativeEvent","dataTransfer","target","i","handleFile","eventTarget","getIndexedPath","oldUploadStatus","getMeta","oldImage","getValue","oldImageHeight","oldImageWidth","oldFilename","objectUrl","URL","createObjectURL","document","createElement","onload","naturalWidth","imageWidth","naturalHeight","imageHeight","newValues","filename","name","setValues","_flow","_set","setMeta","_update","_union","open","then","_ref2","uploadStatus","close","clearErrors","setValue","_difference","placeholder","catch","_get","parentNode","click","src","handleClick","handleTouchEnd","React","onChange","tabIndex","isLoading","isOpen","Input","WithFileInput","_ref3","maxFiles","_excluded2","currentFileIndex","setErrors","createGetIndexedPath","index","oldFile","uid","getUID","_ref4","response","list","findIndex","f","_filter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"withFormImageInput.mjs","sources":["../src/withFormImageInput.jsx"],"sourcesContent":["import React, {useContext, useState} from 'react'\nimport styled from 'styled-components'\nimport {FormContext, useFormValue} from './Form'\nimport {useToggle} from '@startlibs/core'\nimport {getUID, callIfFunction} from '@startlibs/utils'\nimport _ from 'lodash/fp'\n\nexport const FileInput = styled.input.attrs({type: 'file'})`\n z-index: 1;\n cursor: pointer;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n &::-webkit-file-upload-button {\n visibility: hidden;\n }\n &::file-upload-button {\n visibility: hidden;\n }\n `\n\n\nexport const WithImageInput = ({children, multiple, path = [\"image\"], preValidation = _.stubFalse, onChangeFile, onClose, onClick, uploadFetcher, onSuccess, onFailure, ajaxError, onTouchEnd, ...rest}) => {\n const form = useContext(FormContext)\n const loading = useToggle()\n const [tempImage, setTempImage] = useState()\n const getPath = (str,fileIndex = 0) => typeof path === 'function' ? [].concat(path(str,fileIndex)) : str !== 'image' ? [].concat(path).slice(0, -1).concat(str) : path\n\n const imagePath = getPath('image')\n const [formImage] = useFormValue(imagePath)\n const image = tempImage || formImage\n\n const validate = (files) => {\n const validations = files.map(preValidation).filter(Boolean)\n if (validations.length) {\n validations.forEach(v =>\n form.setError(getPath('image').join('.'), v)\n )\n return files.filter((file) => !preValidation(file))\n }\n return files\n }\n\n const handleFileEvent = (e) => {\n e.preventDefault()\n callIfFunction(onClose)\n const files = Array.from((e.nativeEvent.dataTransfer || e.nativeEvent.target).files)\n if (files.length > 0) {\n validate(files.slice(0,multiple ? undefined : 1)).forEach( (file,i) =>\n handleFile(file,e,i)\n )\n }\n }\n\n const handleFile = (file, eventTarget, fileIndex = 0) => {\n const getIndexedPath = (str) => getPath(str,fileIndex)\n const path = getIndexedPath()\n const oldUploadStatus = form.getMeta(getIndexedPath('uploadStatus'))\n const oldImage = form.getValue(getIndexedPath('image'))\n const oldImageHeight = form.getValue(getIndexedPath('imageHeight'))\n const oldImageWidth = form.getValue(getIndexedPath('imageWidth'))\n const oldFilename = form.getValue(getIndexedPath('fileName'))\n\n const objectUrl = URL.createObjectURL(file)\n const image = document.createElement('img')\n image.onload = () => {\n const {naturalWidth: imageWidth, naturalHeight: imageHeight} = image\n const newValues = {image: file, filename: file.name, imageWidth, imageHeight}\n form.setValues(_.flow(\n _.set(getIndexedPath('filename'), file.name),\n _.set(getIndexedPath('image'), file),\n _.set(getIndexedPath('imageWidth'), imageWidth),\n _.set(getIndexedPath('imageHeight'), imageHeight)\n ))\n form.setMeta(_.flow(\n _.update('submittingFiles', (v) => v ? v + 1 : 1),\n _.update('uploadingPaths', _.union([path.join(\".\")])),\n _.set(getIndexedPath('uploadStatus'), 'loading')\n ))\n setTempImage(objectUrl)\n callIfFunction(onChangeFile,file)\n loading.open()\n uploadFetcher(file, newValues)\n .then(({image, uploadStatus}) => {\n loading.close()\n if (form.getValue(getIndexedPath('image')) !== file) {\n form.setMeta(_.update(['submittingFiles'], (v) => v - 1))\n return\n }\n form.clearErrors()\n form.setValue(getIndexedPath('image'), image, false)\n form.setMeta(_.flow(\n _.update('uploadingPaths', _.difference(_,[path.join(\".\")])),\n _.update(['submittingFiles'], (v) => v - 1),\n _.update(['submittedFiles'], (v) => (v || []).concat([{path, file, image}])),\n _.set(getIndexedPath('uploadStatus'), uploadStatus)\n ))\n setTempImage(null)\n callIfFunction(onSuccess, {image, uploadStatus, imageWidth, imageHeight})\n }).catch((e) => {\n loading.close()\n if (form.getValue(getIndexedPath('image')) !== file) {\n form.setMeta(_.update(['submittingFiles'], (v) => v - 1))\n return\n }\n form.setError(getIndexedPath('image').join('.'), callIfFunction(ajaxError,_.get('[1].status',e)))\n form.setValues(_.flow(\n _.set(getIndexedPath('filename'), oldFilename),\n _.set(getIndexedPath('image'), oldImage),\n _.set(getIndexedPath('imageWidth'), oldImageWidth),\n _.set(getIndexedPath('imageHeight'), oldImageHeight)\n ),\n false\n )\n form.setMeta(_.flow(\n _.update('uploadingPaths', _.difference(_,[path.join(\".\")])),\n _.update(['submittingFiles'], (v) => v - 1),\n _.update(['submittedFiles'], (v) => (v || []).concat([{path, file, image}])),\n _.set(getIndexedPath('uploadStatus'), oldUploadStatus)\n ))\n setTempImage(null)\n callIfFunction(onFailure)\n })\n if (eventTarget && eventTarget.parentNode && typeof eventTarget.parentNode.click === 'function')\n eventTarget.parentNode.click()\n }\n image.src = objectUrl\n }\n\n const listenToClose = () => {\n }\n\n const handleClick = (e) => {\n callIfFunction(onClick,e)\n listenToClose()\n }\n const handleTouchEnd = (e) => {\n callIfFunction(onTouchEnd,e)\n listenToClose()\n }\n\n return children(\n <FileInput multiple={multiple} onChange={handleFileEvent} onClick={handleClick} tabIndex={-1} onTouchEnd={handleTouchEnd}/>,\n {\n image,\n isLoading: loading.isOpen,\n handleFile,\n handleFileEvent,\n Input: FileInput\n }\n )\n}\n\n\n\n\nexport const WithFileInput = ({children, multiple, path = [\"file\"], preValidation = _.stubFalse, onChangeFile, onClose, onClick, uploadFetcher, onSuccess, onFailure, ajaxError, onTouchEnd, maxFiles, ...rest}) => {\n const form = useContext(FormContext)\n const loading = useToggle()\n const [tempImage, setTempImage] = useState()\n const getPath = (str,fileIndex) => typeof path === 'function' ? [].concat(path(str,fileIndex)) : str !== 'file' ? [].concat(path).slice(0, -1).concat(str) : path\n\n const validate = (files) => {\n const validations = files.map(preValidation).filter(Boolean)\n if (validations.length) {\n validations.forEach(v =>\n form.setError(getPath('file',0).join('.'), v)\n )\n return files.filter((file) => !preValidation(file))\n }\n return files\n }\n\n const handleFileEvent = (e) => {\n e.preventDefault()\n callIfFunction(onClose)\n const files = Array.from((e.nativeEvent.dataTransfer || e.nativeEvent.target).files)\n if (files.length > 0) {\n validate(files.slice(0,multiple ? undefined : 1)).forEach( (file,i) =>\n handleFile(file,e,i)\n )\n }\n }\n\n const handleFile = (file, eventTarget) => {\n const currentFileIndex = (form.getValue(getPath()) || []).length\n if (currentFileIndex >= maxFiles) {\n form.setErrors({'': 'Número máximo de arquivos atingido'})\n return\n }\n const createGetIndexedPath = (index) => (str) => getPath(str,index)\n const getIndexedPath = createGetIndexedPath(currentFileIndex)\n const path = getIndexedPath()\n const oldUploadStatus = form.getMeta(getIndexedPath('uploadStatus'))\n const oldFile = form.getValue(getIndexedPath('file'))\n const oldFilename = form.getValue(getIndexedPath('fileName'))\n\n const uid = getUID()\n\n form.setValues(_.flow(\n _.set(getIndexedPath('filename'), file.name),\n _.set(getIndexedPath('file'), file),\n _.set(getIndexedPath('uid'), uid),\n ))\n form.setMeta(_.flow(\n _.update('submittingFiles', (v) => v ? v + 1 : 1),\n _.update('uploadingPaths', _.union([path.join(\".\")])),\n _.set(getIndexedPath('uploadStatus'), 'loading')\n ))\n callIfFunction(onChangeFile,file)\n\n loading.open()\n uploadFetcher(file)\n .then(({file, uploadStatus, response}) => {\n loading.close()\n const list = (form.getValue(getPath()) || [])\n const index = list.findIndex((f) => f.uid === uid)\n if (index < 0) {\n form.setMeta(_.update(['submittingFiles'], (v) => v - 1))\n return\n }\n const getIndexedPath = createGetIndexedPath(index)\n form.clearErrors()\n form.setValue(getIndexedPath('file'), response, false)\n form.setMeta(_.flow(\n _.update('uploadingPaths', _.difference(_,[path.join(\".\")])),\n _.update(['submittingFiles'], (v) => v - 1),\n _.update(['submittedFiles'], (v) => (v || []).concat([{path, file}])),\n _.set(getIndexedPath('uploadStatus'), uploadStatus)\n ))\n callIfFunction(onSuccess, {file, uploadStatus})\n }).catch((e) => {\n loading.close()\n const list = (form.getValue(getPath()) || [])\n const index = list.findIndex((f) => f.uid === uid)\n if (index < 0) {\n form.setMeta(_.update(['submittingFiles'], (v) => v - 1))\n return\n }\n const getIndexedPath = createGetIndexedPath(index)\n form.setError(getIndexedPath('file').join('.'), callIfFunction(ajaxError,_.get('[1].status',e)))\n if (oldFile) {\n form.setValues(\n _.flow(\n _.set(getIndexedPath('filename'), oldFilename),\n _.set(getIndexedPath('file'), oldFile),\n ),\n false\n )\n } else {\n form.setValues(\n _.update(getPath(), _.filter((f) => f.uid !== uid)),\n false\n )\n }\n form.setMeta(_.flow(\n _.update('uploadingPaths', _.difference(_,[path.join(\".\")])),\n _.update(['submittingFiles'], (v) => v - 1),\n _.update(['submittedFiles'], (v) => (v || []).concat([{path, file}])),\n _.set(getIndexedPath('uploadStatus'), oldUploadStatus)\n ))\n callIfFunction(onFailure)\n })\n if (eventTarget && eventTarget.parentNode && typeof eventTarget.parentNode.click === 'function')\n eventTarget.parentNode.click()\n }\n\n const listenToClose = () => {\n }\n\n const handleClick = (e) => {\n callIfFunction(onClick,e)\n listenToClose()\n }\n const handleTouchEnd = (e) => {\n callIfFunction(onTouchEnd,e)\n listenToClose()\n }\n\n return children(\n <FileInput multiple={multiple} onChange={handleFileEvent} onClick={handleClick} tabIndex={-1} onTouchEnd={handleTouchEnd}/>,\n {\n isLoading: loading.isOpen,\n handleFile,\n handleFileEvent,\n Input: FileInput\n }\n )\n}\n\n\n"],"names":["FileInput","styled","input","attrs","type","withConfig","displayName","componentId","WithImageInput","_ref","children","multiple","path","preValidation","_stubFalse","onChangeFile","onClose","onClick","uploadFetcher","onSuccess","onFailure","ajaxError","onTouchEnd","rest","_objectWithoutProperties","_excluded","form","useContext","FormContext","loading","useToggle","tempImage","setTempImage","useState","getPath","str","fileIndex","arguments","length","undefined","concat","slice","imagePath","formImage","useFormValue","image","validate","files","validations","map","filter","Boolean","forEach","v","setError","join","file","handleFileEvent","e","preventDefault","callIfFunction","Array","from","nativeEvent","dataTransfer","target","i","handleFile","eventTarget","getIndexedPath","oldUploadStatus","getMeta","oldImage","getValue","oldImageHeight","oldImageWidth","oldFilename","objectUrl","URL","createObjectURL","document","createElement","onload","naturalWidth","imageWidth","naturalHeight","imageHeight","newValues","filename","name","setValues","_flow","_set","setMeta","_update","_union","open","then","_ref2","uploadStatus","close","clearErrors","setValue","_difference","placeholder","catch","_get","parentNode","click","src","handleClick","handleTouchEnd","React","onChange","tabIndex","isLoading","isOpen","Input","WithFileInput","_ref3","maxFiles","_excluded2","currentFileIndex","setErrors","createGetIndexedPath","index","oldFile","uid","getUID","_ref4","response","list","findIndex","f","_filter"],"mappings":"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"}
|