@orbe-agro/client-core 5.6.247 → 5.6.248
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/dist/@ecme/components/template/Footer.js +1 -1
- package/dist/@ecme/components/ui/Upload/Upload.js +1 -1
- package/dist/@ecme/components/ui/Upload/Upload.js.map +1 -1
- package/dist/@ecme/components/ui/UploadCustom/UploadCustom.js +1 -1
- package/dist/@ecme/components/ui/UploadCustom/UploadCustom.js.map +1 -1
- package/lib/@ecme/components/ui/Upload/Upload.tsx +1 -1
- package/lib/@ecme/components/ui/UploadCustom/UploadCustom.tsx +1 -1
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import Container from "../shared/Container.js";
|
|
|
3
3
|
import classNames from "../../utils/classNames.js";
|
|
4
4
|
import { APP_NAME } from "../../constants/app.constant.js";
|
|
5
5
|
import { PAGE_CONTAINER_GUTTER_X } from "../../constants/theme.constant.js";
|
|
6
|
-
const version = true ? "5.6.
|
|
6
|
+
const version = true ? "5.6.248" : "0.0.0";
|
|
7
7
|
const FooterContent = () => {
|
|
8
8
|
return /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-auto items-center justify-between", children: [
|
|
9
9
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
@@ -106,7 +106,7 @@ const Upload = (props) => {
|
|
|
106
106
|
return /* @__PURE__ */ jsx(Button, { disabled, onClick: (e) => e.preventDefault(), children: "Upload" });
|
|
107
107
|
}
|
|
108
108
|
if (draggable && !children) {
|
|
109
|
-
return /* @__PURE__ */ jsx("span", { children: "
|
|
109
|
+
return /* @__PURE__ */ jsx("span", { children: "Escolha um arquivo ou arraste-o aqui" });
|
|
110
110
|
}
|
|
111
111
|
return children;
|
|
112
112
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Upload.js","sources":["../../../../../lib/@ecme/components/ui/Upload/Upload.tsx"],"sourcesContent":["import { useRef, useState, useCallback, useEffect } from 'react'\nimport classNames from '../utils/classNames'\nimport cloneDeep from 'lodash/cloneDeep'\nimport FileItem from './FileItem'\nimport Button from '../Button/Button'\nimport CloseButton from '../CloseButton'\nimport Notification from '../Notification/Notification'\nimport toast from '../toast/toast'\nimport type { CommonProps } from '../@types/common'\nimport type { ReactNode, ChangeEvent, MouseEvent, Ref } from 'react'\n\nexport interface UploadProps extends CommonProps {\n accept?: string\n beforeUpload?: (file: FileList | null, fileList: File[]) => boolean | string\n disabled?: boolean\n draggable?: boolean\n fileList?: File[]\n fileListClass?: string\n fileItemClass?: string\n multiple?: boolean\n onChange?: (file: File[], fileList: File[]) => void\n onFileRemove?: (file: File[]) => void\n ref?: Ref<HTMLDivElement>\n showList?: boolean\n tip?: string | ReactNode\n uploadLimit?: number\n}\n\nconst filesToArray = (files: File[]) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Object.keys(files).map((key) => files[key as any])\n\nconst Upload = (props: UploadProps) => {\n const {\n accept,\n beforeUpload,\n disabled = false,\n draggable = false,\n fileList = [],\n fileListClass,\n fileItemClass,\n multiple,\n onChange,\n onFileRemove,\n ref,\n showList = true,\n tip,\n uploadLimit,\n children,\n className,\n ...rest\n } = props\n\n const fileInputField = useRef<HTMLInputElement>(null)\n const [files, setFiles] = useState(fileList)\n const [dragOver, setDragOver] = useState(false)\n\n useEffect(() => {\n if (JSON.stringify(files) !== JSON.stringify(fileList)) {\n setFiles(fileList)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(fileList)])\n\n const triggerMessage = (msg: string | ReactNode = '') => {\n toast.push(\n <Notification type=\"danger\" duration={2000}>\n {msg || 'Upload Failed!'}\n </Notification>,\n {\n placement: 'top-center',\n },\n )\n }\n\n const pushFile = (newFiles: FileList | null, file: File[]) => {\n if (newFiles) {\n for (const f of newFiles) {\n file.push(f)\n }\n }\n\n return file\n }\n\n const addNewFiles = (newFiles: FileList | null) => {\n let file = cloneDeep(files)\n if (typeof uploadLimit === 'number' && uploadLimit !== 0) {\n if (Object.keys(file).length >= uploadLimit) {\n if (uploadLimit === 1) {\n file.shift()\n file = pushFile(newFiles, file)\n }\n\n return filesToArray({ ...file })\n }\n }\n file = pushFile(newFiles, file)\n return filesToArray({ ...file })\n }\n\n const onNewFileUpload = (e: ChangeEvent<HTMLInputElement>) => {\n const { files: newFiles } = e.target\n let result: boolean | string = true\n\n if (beforeUpload) {\n result = beforeUpload(newFiles, files)\n\n if (result === false) {\n triggerMessage()\n return\n }\n\n if (typeof result === 'string' && result.length > 0) {\n triggerMessage(result)\n return\n }\n }\n\n if (result) {\n const updatedFiles = addNewFiles(newFiles)\n setFiles(updatedFiles)\n onChange?.(updatedFiles, files)\n }\n }\n\n const removeFile = (fileIndex: number) => {\n const deletedFileList = files.filter((_, index) => index !== fileIndex)\n setFiles(deletedFileList)\n onFileRemove?.(deletedFileList)\n }\n\n const triggerUpload = (e: MouseEvent<HTMLDivElement>) => {\n if (!disabled) {\n fileInputField.current?.click()\n }\n e.stopPropagation()\n }\n\n const renderChildren = () => {\n if (!draggable && !children) {\n return (\n <Button disabled={disabled} onClick={(e) => e.preventDefault()}>\n Upload\n </Button>\n )\n }\n\n if (draggable && !children) {\n return <span>Choose a file or drag and drop here</span>\n }\n\n return children\n }\n\n const handleDragLeave = useCallback(() => {\n if (draggable) {\n setDragOver(false)\n }\n }, [draggable])\n\n const handleDragOver = useCallback(() => {\n if (draggable && !disabled) {\n setDragOver(true)\n }\n }, [draggable, disabled])\n\n const handleDrop = useCallback(() => {\n if (draggable) {\n setDragOver(false)\n }\n }, [draggable])\n\n const draggableProp = {\n onDragLeave: handleDragLeave,\n onDragOver: handleDragOver,\n onDrop: handleDrop,\n }\n\n const draggableEventFeedbackClass = `border-primary`\n\n const uploadClass = classNames(\n 'upload',\n draggable && `upload-draggable`,\n draggable && !disabled && `hover:${draggableEventFeedbackClass}`,\n draggable && disabled && 'disabled',\n dragOver && draggableEventFeedbackClass,\n className,\n )\n\n const uploadInputClass = classNames(\n 'upload-input',\n draggable && `draggable`,\n )\n\n return (\n <>\n <div\n ref={ref}\n className={uploadClass}\n {...(draggable ? draggableProp : { onClick: triggerUpload })}\n {...rest}\n >\n <input\n ref={fileInputField}\n className={uploadInputClass}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n accept={accept}\n title=\"\"\n value=\"\"\n onChange={onNewFileUpload}\n {...rest}\n ></input>\n {renderChildren()}\n </div>\n {tip}\n {showList && (\n <div className={classNames('upload-file-list', fileListClass)}>\n {files.map((file, index) => (\n <FileItem\n key={file.name + index}\n file={file}\n className={fileItemClass}\n >\n <CloseButton\n className=\"upload-file-remove\"\n onClick={() => removeFile(index)}\n />\n </FileItem>\n ))}\n </div>\n )}\n </>\n )\n}\n\nexport default Upload\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Upload.js","sources":["../../../../../lib/@ecme/components/ui/Upload/Upload.tsx"],"sourcesContent":["import { useRef, useState, useCallback, useEffect } from 'react'\nimport classNames from '../utils/classNames'\nimport cloneDeep from 'lodash/cloneDeep'\nimport FileItem from './FileItem'\nimport Button from '../Button/Button'\nimport CloseButton from '../CloseButton'\nimport Notification from '../Notification/Notification'\nimport toast from '../toast/toast'\nimport type { CommonProps } from '../@types/common'\nimport type { ReactNode, ChangeEvent, MouseEvent, Ref } from 'react'\n\nexport interface UploadProps extends CommonProps {\n accept?: string\n beforeUpload?: (file: FileList | null, fileList: File[]) => boolean | string\n disabled?: boolean\n draggable?: boolean\n fileList?: File[]\n fileListClass?: string\n fileItemClass?: string\n multiple?: boolean\n onChange?: (file: File[], fileList: File[]) => void\n onFileRemove?: (file: File[]) => void\n ref?: Ref<HTMLDivElement>\n showList?: boolean\n tip?: string | ReactNode\n uploadLimit?: number\n}\n\nconst filesToArray = (files: File[]) =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Object.keys(files).map((key) => files[key as any])\n\nconst Upload = (props: UploadProps) => {\n const {\n accept,\n beforeUpload,\n disabled = false,\n draggable = false,\n fileList = [],\n fileListClass,\n fileItemClass,\n multiple,\n onChange,\n onFileRemove,\n ref,\n showList = true,\n tip,\n uploadLimit,\n children,\n className,\n ...rest\n } = props\n\n const fileInputField = useRef<HTMLInputElement>(null)\n const [files, setFiles] = useState(fileList)\n const [dragOver, setDragOver] = useState(false)\n\n useEffect(() => {\n if (JSON.stringify(files) !== JSON.stringify(fileList)) {\n setFiles(fileList)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(fileList)])\n\n const triggerMessage = (msg: string | ReactNode = '') => {\n toast.push(\n <Notification type=\"danger\" duration={2000}>\n {msg || 'Upload Failed!'}\n </Notification>,\n {\n placement: 'top-center',\n },\n )\n }\n\n const pushFile = (newFiles: FileList | null, file: File[]) => {\n if (newFiles) {\n for (const f of newFiles) {\n file.push(f)\n }\n }\n\n return file\n }\n\n const addNewFiles = (newFiles: FileList | null) => {\n let file = cloneDeep(files)\n if (typeof uploadLimit === 'number' && uploadLimit !== 0) {\n if (Object.keys(file).length >= uploadLimit) {\n if (uploadLimit === 1) {\n file.shift()\n file = pushFile(newFiles, file)\n }\n\n return filesToArray({ ...file })\n }\n }\n file = pushFile(newFiles, file)\n return filesToArray({ ...file })\n }\n\n const onNewFileUpload = (e: ChangeEvent<HTMLInputElement>) => {\n const { files: newFiles } = e.target\n let result: boolean | string = true\n\n if (beforeUpload) {\n result = beforeUpload(newFiles, files)\n\n if (result === false) {\n triggerMessage()\n return\n }\n\n if (typeof result === 'string' && result.length > 0) {\n triggerMessage(result)\n return\n }\n }\n\n if (result) {\n const updatedFiles = addNewFiles(newFiles)\n setFiles(updatedFiles)\n onChange?.(updatedFiles, files)\n }\n }\n\n const removeFile = (fileIndex: number) => {\n const deletedFileList = files.filter((_, index) => index !== fileIndex)\n setFiles(deletedFileList)\n onFileRemove?.(deletedFileList)\n }\n\n const triggerUpload = (e: MouseEvent<HTMLDivElement>) => {\n if (!disabled) {\n fileInputField.current?.click()\n }\n e.stopPropagation()\n }\n\n const renderChildren = () => {\n if (!draggable && !children) {\n return (\n <Button disabled={disabled} onClick={(e) => e.preventDefault()}>\n Upload\n </Button>\n )\n }\n\n if (draggable && !children) {\n return <span>Escolha um arquivo ou arraste-o aqui</span>\n }\n\n return children\n }\n\n const handleDragLeave = useCallback(() => {\n if (draggable) {\n setDragOver(false)\n }\n }, [draggable])\n\n const handleDragOver = useCallback(() => {\n if (draggable && !disabled) {\n setDragOver(true)\n }\n }, [draggable, disabled])\n\n const handleDrop = useCallback(() => {\n if (draggable) {\n setDragOver(false)\n }\n }, [draggable])\n\n const draggableProp = {\n onDragLeave: handleDragLeave,\n onDragOver: handleDragOver,\n onDrop: handleDrop,\n }\n\n const draggableEventFeedbackClass = `border-primary`\n\n const uploadClass = classNames(\n 'upload',\n draggable && `upload-draggable`,\n draggable && !disabled && `hover:${draggableEventFeedbackClass}`,\n draggable && disabled && 'disabled',\n dragOver && draggableEventFeedbackClass,\n className,\n )\n\n const uploadInputClass = classNames(\n 'upload-input',\n draggable && `draggable`,\n )\n\n return (\n <>\n <div\n ref={ref}\n className={uploadClass}\n {...(draggable ? draggableProp : { onClick: triggerUpload })}\n {...rest}\n >\n <input\n ref={fileInputField}\n className={uploadInputClass}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n accept={accept}\n title=\"\"\n value=\"\"\n onChange={onNewFileUpload}\n {...rest}\n ></input>\n {renderChildren()}\n </div>\n {tip}\n {showList && (\n <div className={classNames('upload-file-list', fileListClass)}>\n {files.map((file, index) => (\n <FileItem\n key={file.name + index}\n file={file}\n className={fileItemClass}\n >\n <CloseButton\n className=\"upload-file-remove\"\n onClick={() => removeFile(index)}\n />\n </FileItem>\n ))}\n </div>\n )}\n </>\n )\n}\n\nexport default Upload\n"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,7 @@ const UploadCustom = (props) => {
|
|
|
61
61
|
return /* @__PURE__ */ jsx(Button, { disabled, onClick: (e) => e.preventDefault(), children: "Upload" });
|
|
62
62
|
}
|
|
63
63
|
if (draggable && !children) {
|
|
64
|
-
return /* @__PURE__ */ jsx("span", { children: "
|
|
64
|
+
return /* @__PURE__ */ jsx("span", { children: "Escolha um arquivo ou arraste-o aqui" });
|
|
65
65
|
}
|
|
66
66
|
return children;
|
|
67
67
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadCustom.js","sources":["../../../../../lib/@ecme/components/ui/UploadCustom/UploadCustom.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useRef, useState, useCallback } from 'react'\nimport classNames from '../utils/classNames'\nimport Button from '../Button/Button'\nimport Notification from '../Notification/Notification'\nimport toast from '../toast/toast'\nimport type { CommonProps } from '../@types/common'\nimport type { ReactNode, ChangeEvent, MouseEvent, Ref } from 'react'\n\nexport interface UploadCustomProps extends CommonProps {\n accept?: string\n beforeUpload?: (file: FileList | null) => boolean | string\n disabled?: boolean\n draggable?: boolean\n multiple?: boolean\n onChange?: (files: File[]) => void\n ref?: Ref<HTMLDivElement>\n tip?: string | ReactNode\n}\n\nconst UploadCustom = (props: UploadCustomProps) => {\n const {\n accept,\n beforeUpload,\n disabled = false,\n draggable = false,\n multiple,\n onChange,\n ref,\n tip,\n children,\n className,\n ...rest\n } = props\n\n const fileInputField = useRef<HTMLInputElement>(null)\n const [dragOver, setDragOver] = useState(false)\n\n const triggerMessage = (msg: string | ReactNode = '') => {\n toast.push(\n <Notification type=\"danger\" duration={2000}>\n {msg || 'Upload Failed!'}\n </Notification>,\n {\n placement: 'top-center',\n },\n )\n }\n\n const onNewFileUpload = (e: ChangeEvent<HTMLInputElement>) => {\n const { files: newFiles } = e.target\n let result: boolean | string = true\n\n if (beforeUpload) {\n result = beforeUpload(newFiles)\n\n if (result === false) {\n triggerMessage()\n return\n }\n\n if (typeof result === 'string' && result.length > 0) {\n triggerMessage(result)\n return\n }\n }\n\n if (result && newFiles) {\n // Converte FileList para Array e passa apenas os novos arquivos\n const filesArray = Array.from(newFiles)\n onChange?.(filesArray)\n }\n\n // Limpa o input para permitir selecionar o mesmo arquivo novamente\n if (fileInputField.current) {\n fileInputField.current.value = ''\n }\n }\n\n const triggerUpload = (e: MouseEvent<HTMLDivElement>) => {\n if (!disabled) {\n fileInputField.current?.click()\n }\n e.stopPropagation()\n }\n\n const renderChildren = () => {\n if (!draggable && !children) {\n return (\n <Button disabled={disabled} onClick={(e) => e.preventDefault()}>\n Upload\n </Button>\n )\n }\n\n if (draggable && !children) {\n return <span>
|
|
1
|
+
{"version":3,"file":"UploadCustom.js","sources":["../../../../../lib/@ecme/components/ui/UploadCustom/UploadCustom.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useRef, useState, useCallback } from 'react'\nimport classNames from '../utils/classNames'\nimport Button from '../Button/Button'\nimport Notification from '../Notification/Notification'\nimport toast from '../toast/toast'\nimport type { CommonProps } from '../@types/common'\nimport type { ReactNode, ChangeEvent, MouseEvent, Ref } from 'react'\n\nexport interface UploadCustomProps extends CommonProps {\n accept?: string\n beforeUpload?: (file: FileList | null) => boolean | string\n disabled?: boolean\n draggable?: boolean\n multiple?: boolean\n onChange?: (files: File[]) => void\n ref?: Ref<HTMLDivElement>\n tip?: string | ReactNode\n}\n\nconst UploadCustom = (props: UploadCustomProps) => {\n const {\n accept,\n beforeUpload,\n disabled = false,\n draggable = false,\n multiple,\n onChange,\n ref,\n tip,\n children,\n className,\n ...rest\n } = props\n\n const fileInputField = useRef<HTMLInputElement>(null)\n const [dragOver, setDragOver] = useState(false)\n\n const triggerMessage = (msg: string | ReactNode = '') => {\n toast.push(\n <Notification type=\"danger\" duration={2000}>\n {msg || 'Upload Failed!'}\n </Notification>,\n {\n placement: 'top-center',\n },\n )\n }\n\n const onNewFileUpload = (e: ChangeEvent<HTMLInputElement>) => {\n const { files: newFiles } = e.target\n let result: boolean | string = true\n\n if (beforeUpload) {\n result = beforeUpload(newFiles)\n\n if (result === false) {\n triggerMessage()\n return\n }\n\n if (typeof result === 'string' && result.length > 0) {\n triggerMessage(result)\n return\n }\n }\n\n if (result && newFiles) {\n // Converte FileList para Array e passa apenas os novos arquivos\n const filesArray = Array.from(newFiles)\n onChange?.(filesArray)\n }\n\n // Limpa o input para permitir selecionar o mesmo arquivo novamente\n if (fileInputField.current) {\n fileInputField.current.value = ''\n }\n }\n\n const triggerUpload = (e: MouseEvent<HTMLDivElement>) => {\n if (!disabled) {\n fileInputField.current?.click()\n }\n e.stopPropagation()\n }\n\n const renderChildren = () => {\n if (!draggable && !children) {\n return (\n <Button disabled={disabled} onClick={(e) => e.preventDefault()}>\n Upload\n </Button>\n )\n }\n\n if (draggable && !children) {\n return <span>Escolha um arquivo ou arraste-o aqui</span>\n }\n\n return children\n }\n\n const handleDragLeave = useCallback(() => {\n if (draggable) {\n setDragOver(false)\n }\n }, [draggable])\n\n const handleDragOver = useCallback(() => {\n if (draggable && !disabled) {\n setDragOver(true)\n }\n }, [draggable, disabled])\n\n const handleDrop = useCallback(() => {\n if (draggable) {\n setDragOver(false)\n }\n }, [draggable])\n\n const draggableProp = {\n onDragLeave: handleDragLeave,\n onDragOver: handleDragOver,\n onDrop: handleDrop,\n }\n\n const draggableEventFeedbackClass = `border-primary`\n\n const uploadClass = classNames(\n 'upload',\n draggable && `upload-draggable`,\n draggable && !disabled && `hover:${draggableEventFeedbackClass}`,\n draggable && disabled && 'disabled',\n dragOver && draggableEventFeedbackClass,\n className,\n )\n\n const uploadInputClass = classNames(\n 'upload-input',\n draggable && `draggable`,\n )\n\n return (\n <>\n <div\n ref={ref}\n className={uploadClass}\n {...(draggable ? draggableProp : { onClick: triggerUpload })}\n {...(rest as any)}\n >\n <input\n ref={fileInputField}\n className={uploadInputClass}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n accept={accept}\n title=\"\"\n value=\"\"\n onChange={onNewFileUpload}\n ></input>\n {renderChildren()}\n </div>\n {tip}\n </>\n )\n}\n\nexport default UploadCustom\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED