@transferwise/components 46.52.3 → 46.54.0
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/build/dateLookup/dateTrigger/DateTrigger.js +8 -4
- package/build/dateLookup/dateTrigger/DateTrigger.js.map +1 -1
- package/build/dateLookup/dateTrigger/DateTrigger.mjs +8 -4
- package/build/dateLookup/dateTrigger/DateTrigger.mjs.map +1 -1
- package/build/field/Field.js +36 -8
- package/build/field/Field.js.map +1 -1
- package/build/field/Field.mjs +37 -9
- package/build/field/Field.mjs.map +1 -1
- package/build/i18n/en.json +2 -0
- package/build/i18n/en.json.js +2 -0
- package/build/i18n/en.json.js.map +1 -1
- package/build/i18n/en.json.mjs +2 -0
- package/build/i18n/en.json.mjs.map +1 -1
- package/build/index.js +2 -2
- package/build/index.mjs +1 -1
- package/build/inlineAlert/InlineAlert.js +13 -6
- package/build/inlineAlert/InlineAlert.js.map +1 -1
- package/build/inlineAlert/InlineAlert.mjs +13 -6
- package/build/inlineAlert/InlineAlert.mjs.map +1 -1
- package/build/label/Label.js +35 -4
- package/build/label/Label.js.map +1 -1
- package/build/label/Label.messages.js +12 -0
- package/build/label/Label.messages.js.map +1 -0
- package/build/label/Label.messages.mjs +10 -0
- package/build/label/Label.messages.mjs.map +1 -0
- package/build/label/Label.mjs +36 -5
- package/build/label/Label.mjs.map +1 -1
- package/build/main.css +14 -8
- package/build/styles/dateLookup/dateTrigger/DateTrigger.css +0 -8
- package/build/styles/field/Field.css +4 -0
- package/build/styles/main.css +14 -8
- package/build/styles/upload/Upload.css +10 -0
- package/build/tabs/Tab.js +13 -38
- package/build/tabs/Tab.js.map +1 -1
- package/build/tabs/Tab.mjs +13 -34
- package/build/tabs/Tab.mjs.map +1 -1
- package/build/tabs/TabList.js +3 -11
- package/build/tabs/TabList.js.map +1 -1
- package/build/tabs/TabList.mjs +3 -7
- package/build/tabs/TabList.mjs.map +1 -1
- package/build/tabs/TabPanel.js +3 -16
- package/build/tabs/TabPanel.js.map +1 -1
- package/build/tabs/TabPanel.mjs +3 -12
- package/build/tabs/TabPanel.mjs.map +1 -1
- package/build/tabs/Tabs.js +24 -48
- package/build/tabs/Tabs.js.map +1 -1
- package/build/tabs/Tabs.mjs +24 -47
- package/build/tabs/Tabs.mjs.map +1 -1
- package/build/tabs/utils.js +0 -1
- package/build/tabs/utils.js.map +1 -1
- package/build/tabs/utils.mjs +0 -1
- package/build/tabs/utils.mjs.map +1 -1
- package/build/types/dateLookup/dateTrigger/DateTrigger.d.ts.map +1 -1
- package/build/types/field/Field.d.ts +4 -2
- package/build/types/field/Field.d.ts.map +1 -1
- package/build/types/index.d.ts +2 -1
- package/build/types/index.d.ts.map +1 -1
- package/build/types/inlineAlert/InlineAlert.d.ts +9 -0
- package/build/types/inlineAlert/InlineAlert.d.ts.map +1 -1
- package/build/types/label/Label.d.ts +21 -1
- package/build/types/label/Label.d.ts.map +1 -1
- package/build/types/label/Label.messages.d.ts +8 -0
- package/build/types/label/Label.messages.d.ts.map +1 -0
- package/build/types/label/index.d.ts +3 -0
- package/build/types/label/index.d.ts.map +1 -0
- package/build/types/tabs/Tab.d.ts +12 -1
- package/build/types/tabs/Tab.d.ts.map +1 -1
- package/build/types/tabs/TabList.d.ts +3 -8
- package/build/types/tabs/TabList.d.ts.map +1 -1
- package/build/types/tabs/TabPanel.d.ts +6 -14
- package/build/types/tabs/TabPanel.d.ts.map +1 -1
- package/build/types/tabs/Tabs.d.ts +83 -30
- package/build/types/tabs/Tabs.d.ts.map +1 -1
- package/build/types/tabs/index.d.ts +2 -1
- package/build/types/tabs/index.d.ts.map +1 -1
- package/build/types/tabs/utils.d.ts +12 -7
- package/build/types/tabs/utils.d.ts.map +1 -1
- package/build/types/upload/Upload.d.ts +1 -0
- package/build/types/upload/Upload.d.ts.map +1 -1
- package/build/types/upload/Upload.messages.d.ts +4 -0
- package/build/types/upload/Upload.messages.d.ts.map +1 -1
- package/build/types/upload/steps/completeStep/completeStep.d.ts +1 -3
- package/build/types/upload/steps/completeStep/completeStep.d.ts.map +1 -1
- package/build/types/upload/steps/uploadImageStep/uploadImageStep.d.ts +1 -0
- package/build/types/upload/steps/uploadImageStep/uploadImageStep.d.ts.map +1 -1
- package/build/upload/Upload.js +26 -12
- package/build/upload/Upload.js.map +1 -1
- package/build/upload/Upload.messages.js +3 -0
- package/build/upload/Upload.messages.js.map +1 -1
- package/build/upload/Upload.messages.mjs +3 -0
- package/build/upload/Upload.messages.mjs.map +1 -1
- package/build/upload/Upload.mjs +26 -12
- package/build/upload/Upload.mjs.map +1 -1
- package/build/upload/steps/completeStep/completeStep.js +15 -30
- package/build/upload/steps/completeStep/completeStep.js.map +1 -1
- package/build/upload/steps/completeStep/completeStep.mjs +16 -31
- package/build/upload/steps/completeStep/completeStep.mjs.map +1 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.js +56 -32
- package/build/upload/steps/uploadImageStep/uploadImageStep.js.map +1 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs +56 -32
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs.map +1 -1
- package/package.json +2 -2
- package/src/dateInput/DateInput.tests.story.tsx +6 -42
- package/src/dateLookup/DateLookup.rtl.spec.tsx +1 -1
- package/src/dateLookup/dateTrigger/DateTrigger.css +0 -8
- package/src/dateLookup/dateTrigger/DateTrigger.less +0 -8
- package/src/dateLookup/dateTrigger/DateTrigger.spec.js +1 -1
- package/src/dateLookup/dateTrigger/DateTrigger.tsx +9 -4
- package/src/field/Field.css +4 -0
- package/src/field/Field.less +5 -0
- package/src/field/Field.spec.tsx +41 -5
- package/src/field/Field.story.tsx +105 -7
- package/src/field/Field.tsx +34 -10
- package/src/i18n/en.json +2 -0
- package/src/index.ts +2 -1
- package/src/inlineAlert/InlineAlert.story.tsx +7 -72
- package/src/inlineAlert/InlineAlert.tsx +14 -3
- package/src/inputWithDisplayFormat/InputWithDisplayFormat.story.js +5 -10
- package/src/inputs/InputGroup.spec.tsx +1 -1
- package/src/inputs/SearchInput.spec.tsx +1 -1
- package/src/inputs/SelectInput.spec.tsx +1 -1
- package/src/label/Label.messages.tsx +8 -0
- package/src/label/Label.spec.tsx +53 -4
- package/src/label/Label.story.tsx +32 -26
- package/src/label/Label.tsx +47 -2
- package/src/label/index.ts +2 -0
- package/src/main.css +14 -8
- package/src/main.less +1 -0
- package/src/moneyInput/MoneyInput.story.tsx +11 -11
- package/src/radioGroup/RadioGroup.rtl.spec.tsx +1 -1
- package/src/select/Select.rtl.spec.tsx +1 -1
- package/src/switch/Switch.spec.tsx +1 -1
- package/src/switch/Switch.story.tsx +19 -21
- package/src/tabs/Tab.tsx +72 -0
- package/src/tabs/TabList.tsx +11 -0
- package/src/tabs/TabPanel.tsx +14 -0
- package/src/tabs/{Tabs.story.js → Tabs.story.tsx} +1 -1
- package/src/tabs/{Tabs.js → Tabs.tsx} +111 -74
- package/src/tabs/index.ts +2 -0
- package/src/tabs/{utils.spec.js → utils.spec.ts} +24 -21
- package/src/tabs/{utils.js → utils.ts} +15 -9
- package/src/upload/Upload.css +10 -0
- package/src/upload/Upload.less +9 -0
- package/src/upload/Upload.messages.ts +4 -0
- package/src/upload/Upload.spec.js +8 -7
- package/src/upload/Upload.story.tsx +1 -0
- package/src/upload/Upload.tsx +39 -20
- package/src/upload/steps/completeStep/completeStep.spec.js +0 -9
- package/src/upload/steps/completeStep/completeStep.tsx +14 -29
- package/src/upload/steps/uploadImageStep/uploadImageStep.spec.js +12 -0
- package/src/upload/steps/uploadImageStep/uploadImageStep.tsx +43 -24
- package/src/field/Field.tests.story.tsx +0 -33
- package/src/tabs/Tab.js +0 -71
- package/src/tabs/TabList.js +0 -15
- package/src/tabs/TabPanel.js +0 -20
- package/src/tabs/index.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Upload.mjs","sources":["../../src/upload/Upload.tsx"],"sourcesContent":["import { Plus as PlusIcon } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport { Component } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport { Size, Typography } from '../common';\nimport Title from '../title';\n\nimport messages from './Upload.messages';\nimport { UploadImageStep, ProcessingStep, CompleteStep } from './steps';\nimport { postData, asyncFileRead, isSizeValid, isTypeValid, getFileType } from './utils';\nimport { PostDataFetcher, PostDataHTTPOptions, ResponseError } from './utils/postData/postData';\nimport { ProcessIndicatorStatus } from '../processIndicator';\n\n/*\n * This delay is required for the isError/isSuccess to be fired after isProcessing so the processIndicator, will be\n * rendered first and then updated with the right status.\n */\nconst ANIMATION_FIX = 10;\nexport const MAX_SIZE_DEFAULT = 5000000;\n\nexport enum UploadStep {\n UPLOAD_IMAGE_STEP = 'uploadImageStep',\n}\n\nexport interface UploadProps extends WrappedComponentProps {\n animationDelay?: number;\n csButtonText?: string;\n csFailureText?: string;\n csSuccessText?: string;\n csTooLargeMessage?: string;\n csWrongTypeMessage?: string;\n httpOptions?: PostDataHTTPOptions & {\n fileInputName?: string;\n data?: Record<string, string | Blob>;\n };\n /**\n * You can provide a fetcher function with the same interface as the global fetch function, which is used by default.\n * function fetcher(input: RequestInfo, init?: RequestInit): Promise<Response>\n */\n fetcher?: PostDataFetcher;\n maxSize?: number;\n psButtonText?: string;\n psButtonDisabled?: boolean;\n psProcessingText?: string;\n size?: `${Size.SMALL | Size.MEDIUM | Size.LARGE}`;\n /**\n * You can provide multiple rules separated by comma, e.g.: \"application/pdf,image/*\".\n * Using \"*\" will allow every file type to be uploaded.\n */\n usAccept?: string;\n usButtonText?: string;\n usDisabled?: boolean;\n usDropMessage?: string;\n usHelpImage?: React.ReactNode;\n usLabel?: string;\n usPlaceholder?: string;\n /** @deprecated Only a single variant exists, please remove this prop. */\n uploadStep?: `${UploadStep}`;\n onCancel?: () => void;\n onFailure?: (error: unknown) => void;\n onStart?: (file: File) => void;\n onSuccess?: (response: string | Response, fileName: string) => void;\n}\n\ninterface UploadState {\n fileName: string;\n isDroppable: boolean;\n isComplete: boolean;\n isError: boolean;\n isImage: boolean;\n isProcessing: boolean;\n isSuccess: boolean;\n response: unknown;\n uploadedImage: string | undefined;\n}\n\nexport class Upload extends Component<UploadProps, UploadState> {\n declare props: UploadProps & Required<Pick<UploadProps, keyof typeof Upload.defaultProps>>;\n\n static defaultProps = {\n animationDelay: 700,\n maxSize: MAX_SIZE_DEFAULT,\n psButtonDisabled: false,\n size: 'md',\n usAccept: 'image/*',\n usDisabled: false,\n usLabel: '',\n } satisfies Partial<UploadProps>;\n\n dragCounter = 0;\n timeouts = 0;\n\n constructor(props: UploadProps) {\n super(props);\n\n this.state = {\n fileName: '',\n isDroppable: false,\n isComplete: false,\n isError: false,\n isImage: false,\n isProcessing: false,\n isSuccess: false,\n response: undefined,\n uploadedImage: undefined,\n };\n }\n\n getErrorMessage(status?: number) {\n const { csFailureText, csTooLargeMessage, csWrongTypeMessage, maxSize, intl } = this.props;\n switch (status) {\n case 413:\n return (\n csTooLargeMessage ||\n intl.formatMessage(messages.csTooLargeMessage, {\n maxSize: maxSize / 1000000,\n })\n );\n case 415:\n return csWrongTypeMessage || intl.formatMessage(messages.csWrongTypeMessage);\n default:\n return csFailureText || intl.formatMessage(messages.csFailureText);\n }\n }\n\n onDragLeave(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n this.dragCounter -= 1;\n if (this.dragCounter === 0) {\n this.setState({ isDroppable: false });\n }\n }\n\n onDragEnter(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n this.dragCounter += 1;\n const { usDisabled } = this.props;\n const { isProcessing } = this.state;\n if (this.dragCounter === 1 && !usDisabled && !isProcessing) {\n this.setState({ isDroppable: true });\n }\n }\n\n async onDrop(event: React.DragEvent<HTMLDivElement>) {\n const { isProcessing } = this.state;\n event.preventDefault();\n if (!isProcessing) {\n this.reset();\n }\n\n if (event.dataTransfer?.files?.[0]) {\n await this.fileDropped(event.dataTransfer.files[0]);\n }\n }\n\n onAnimationCompleted = async (status: ProcessIndicatorStatus) => {\n const { response, isProcessing, fileName } = this.state;\n const { animationDelay } = this.props;\n\n if (isProcessing && status === 'succeeded') {\n const { onSuccess } = this.props;\n this.timeouts = window.setTimeout(() => {\n this.setState(\n {\n isProcessing: false,\n isComplete: true,\n },\n onSuccess ? () => onSuccess(response as string | Response, fileName) : undefined,\n );\n }, animationDelay);\n }\n\n if (isProcessing && status === 'failed') {\n const { onFailure } = this.props;\n this.timeouts = window.setTimeout(() => {\n this.setState(\n {\n isProcessing: false,\n isComplete: true,\n },\n onFailure ? () => onFailure(response) : undefined,\n );\n }, animationDelay);\n }\n };\n\n asyncPost = async (file: File) => {\n const { httpOptions, fetcher } = this.props;\n if (httpOptions == null) {\n throw new Error('Cannot find HTTP options');\n }\n\n const { fileInputName = file.name, data = {} } = httpOptions;\n\n const formData = new FormData();\n formData.append(fileInputName, file);\n Object.keys(data).forEach((key) => formData.append(key, data[key]));\n return postData(httpOptions, formData, fetcher);\n };\n\n asyncResponse = (response: unknown, type: 'success' | 'error') => {\n // Gives time to the animation callback to fire.\n this.timeouts = window.setTimeout(() => {\n this.setState({\n response,\n isError: type === 'error',\n isSuccess: type === 'success',\n });\n }, ANIMATION_FIX);\n };\n\n handleOnClear: React.MouseEventHandler<HTMLButtonElement> = (event) => {\n event.preventDefault();\n const { onCancel } = this.props;\n onCancel?.();\n\n this.reset();\n };\n\n reset = () => {\n this.dragCounter = 0;\n window.clearTimeout(this.timeouts);\n this.setState({\n isComplete: false,\n isError: false,\n isProcessing: false,\n isSuccess: false,\n });\n };\n\n showDataImage = (dataUrl: string) => {\n const { isImage } = this.state;\n if (isImage) {\n this.setState({\n uploadedImage: dataUrl,\n });\n }\n };\n\n fileDropped = async (file: File) => {\n const { httpOptions, maxSize, onStart, usDisabled, usAccept } = this.props;\n const { isProcessing } = this.state;\n\n if (usDisabled || isProcessing) {\n return false;\n }\n\n if (!file) {\n throw new Error('Could not retrieve file');\n }\n\n this.setState({\n fileName: file.name,\n isDroppable: false,\n isProcessing: true,\n });\n\n onStart?.(file);\n\n let file64 = null;\n\n try {\n file64 = await asyncFileRead(file);\n } catch (error) {\n this.asyncResponse(error, 'error');\n }\n\n if (!file64) {\n return false;\n }\n\n this.setState({\n isImage: getFileType(file, file64).includes('image'),\n });\n\n if (!isTypeValid(file, usAccept, file64)) {\n this.asyncResponse(\n new ResponseError(\n new Response(null, {\n status: 415,\n statusText: 'Unsupported Media Type',\n }),\n ),\n 'error',\n );\n return false;\n }\n\n if (!isSizeValid(file, maxSize)) {\n this.asyncResponse(\n new ResponseError(\n new Response(null, {\n status: 413,\n statusText: 'Request Entity Too Large',\n }),\n ),\n 'error',\n );\n return false;\n }\n\n if (httpOptions) {\n // Post the file to provided endpoint\n let response;\n try {\n response = await this.asyncPost(file);\n } catch (error) {\n this.asyncResponse(error, 'error');\n return false;\n }\n this.asyncResponse(response, 'success');\n this.showDataImage(file64);\n return true;\n }\n // Post on form submit. And return the encoded image.\n this.showDataImage(file64);\n this.asyncResponse(file64, 'success');\n return true;\n };\n\n render() {\n const {\n maxSize,\n usDropMessage,\n usAccept,\n usButtonText,\n usDisabled,\n usHelpImage,\n usLabel,\n usPlaceholder,\n psButtonText,\n psProcessingText,\n psButtonDisabled,\n csButtonText,\n csSuccessText,\n size,\n intl,\n } = this.props;\n\n const {\n response,\n fileName,\n isComplete,\n isDroppable,\n isError,\n isImage,\n isProcessing,\n isSuccess,\n uploadedImage,\n } = this.state;\n\n return (\n <div\n className={clsx('droppable-area', {\n droppable: true,\n 'tw-droppable-sm droppable-sm': size === 'sm',\n 'tw-droppable-md droppable-md': size === 'md' || !size,\n 'tw-droppable-lg droppable-lg': size === 'lg',\n 'droppable-dropping': isDroppable,\n 'droppable-processing': isProcessing,\n 'droppable-complete': isComplete,\n 'droppable-negative': isError,\n })}\n onDragEnter={(event) => this.onDragEnter(event)}\n onDragLeave={(event) => this.onDragLeave(event)}\n onDrop={async (event) => this.onDrop(event)}\n onDragOver={(event) => event.preventDefault()}\n >\n {!isProcessing && !isComplete && (\n <UploadImageStep\n fileDropped={async (file) => this.fileDropped(file)}\n isComplete={isComplete}\n usAccept={usAccept}\n usButtonText={usButtonText || intl.formatMessage(messages.usButtonText)}\n usDisabled={usDisabled}\n usHelpImage={usHelpImage}\n usLabel={usLabel}\n usPlaceholder={\n usPlaceholder ||\n intl.formatMessage(messages.usPlaceholder, { maxSize: maxSize / 1000000 })\n }\n />\n )}\n\n {isProcessing && (\n <ProcessingStep\n isComplete={isComplete}\n isError={isError}\n isSuccess={isSuccess}\n psButtonText={psButtonText || intl.formatMessage(messages.psButtonText)}\n psProcessingText={psProcessingText || intl.formatMessage(messages.psProcessingText)}\n psButtonDisabled={psButtonDisabled}\n onAnimationCompleted={async (status) => this.onAnimationCompleted(status)}\n onClear={(event) => this.handleOnClear(event)}\n />\n )}\n {/* Starts render the step when isSuccess or isError are true so markup is there when css transition kicks in\n css transition to work properly */}\n {(isSuccess || isError || isComplete) && (\n <CompleteStep\n fileName={fileName}\n isComplete={isComplete}\n isError={isError}\n isImage={isImage}\n csButtonText={csButtonText || intl.formatMessage(messages.csButtonText)}\n csFailureText={this.getErrorMessage(\n response != null &&\n typeof response === 'object' &&\n 'status' in response &&\n typeof response.status === 'number'\n ? response.status\n : undefined,\n )}\n csSuccessText={csSuccessText || intl.formatMessage(messages.csSuccessText)}\n uploadedImage={uploadedImage}\n onClear={(event) => this.handleOnClear(event)}\n />\n )}\n {!isProcessing && (\n <div className=\"droppable-dropping-card droppable-card\" aria-live=\"polite\">\n <div className=\"droppable-card-content\">\n <div className=\"circle circle-sm text-primary\">\n <PlusIcon size=\"16\" />\n </div>\n <Title type={Typography.TITLE_BODY} className=\"m-t-3\">\n {usDropMessage || intl.formatMessage(messages.usDropMessage)}\n </Title>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default injectIntl(Upload);\n"],"names":["ANIMATION_FIX","MAX_SIZE_DEFAULT","UploadStep","Upload","Component","defaultProps","animationDelay","maxSize","psButtonDisabled","size","usAccept","usDisabled","usLabel","dragCounter","timeouts","constructor","props","state","fileName","isDroppable","isComplete","isError","isImage","isProcessing","isSuccess","response","undefined","uploadedImage","getErrorMessage","status","csFailureText","csTooLargeMessage","csWrongTypeMessage","intl","formatMessage","messages","onDragLeave","event","preventDefault","setState","onDragEnter","onDrop","reset","dataTransfer","files","fileDropped","onAnimationCompleted","onSuccess","window","setTimeout","onFailure","asyncPost","file","httpOptions","fetcher","Error","fileInputName","name","data","formData","FormData","append","Object","keys","forEach","key","postData","asyncResponse","type","handleOnClear","onCancel","clearTimeout","showDataImage","dataUrl","onStart","file64","asyncFileRead","error","getFileType","includes","isTypeValid","ResponseError","Response","statusText","isSizeValid","render","usDropMessage","usButtonText","usHelpImage","usPlaceholder","psButtonText","psProcessingText","csButtonText","csSuccessText","_jsxs","className","clsx","droppable","onDragOver","children","_jsx","UploadImageStep","ProcessingStep","onClear","CompleteStep","PlusIcon","Title","Typography","TITLE_BODY","injectIntl"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Upload.mjs","sources":["../../src/upload/Upload.tsx"],"sourcesContent":["import { Plus as PlusIcon } from '@transferwise/icons';\nimport { clsx } from 'clsx';\nimport { Component } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport { Size, Typography } from '../common';\nimport Title from '../title';\n\nimport messages from './Upload.messages';\nimport { UploadImageStep, ProcessingStep, CompleteStep } from './steps';\nimport { postData, asyncFileRead, isSizeValid, isTypeValid, getFileType } from './utils';\nimport { PostDataFetcher, PostDataHTTPOptions, ResponseError } from './utils/postData/postData';\nimport { ProcessIndicatorStatus } from '../processIndicator';\n\n/*\n * This delay is required for the isError/isSuccess to be fired after isProcessing so the processIndicator, will be\n * rendered first and then updated with the right status.\n */\nconst ANIMATION_FIX = 10;\nexport const MAX_SIZE_DEFAULT = 5000000;\n\nexport enum UploadStep {\n UPLOAD_IMAGE_STEP = 'uploadImageStep',\n}\n\nexport interface UploadProps extends WrappedComponentProps {\n animationDelay?: number;\n csButtonText?: string;\n csFailureText?: string;\n csSuccessText?: string;\n csTooLargeMessage?: string;\n csWrongTypeMessage?: string;\n httpOptions?: PostDataHTTPOptions & {\n fileInputName?: string;\n data?: Record<string, string | Blob>;\n };\n /**\n * You can provide a fetcher function with the same interface as the global fetch function, which is used by default.\n * function fetcher(input: RequestInfo, init?: RequestInit): Promise<Response>\n */\n fetcher?: PostDataFetcher;\n maxSize?: number;\n psButtonText?: string;\n psButtonDisabled?: boolean;\n psProcessingText?: string;\n size?: `${Size.SMALL | Size.MEDIUM | Size.LARGE}`;\n /**\n * You can provide multiple rules separated by comma, e.g.: \"application/pdf,image/*\".\n * Using \"*\" will allow every file type to be uploaded.\n */\n usAccept?: string;\n usButtonText?: string;\n usButtonRetryText?: string;\n usDisabled?: boolean;\n usDropMessage?: string;\n usHelpImage?: React.ReactNode;\n usLabel?: string;\n usPlaceholder?: string;\n /** @deprecated Only a single variant exists, please remove this prop. */\n uploadStep?: `${UploadStep}`;\n onCancel?: () => void;\n onFailure?: (error: unknown) => void;\n onStart?: (file: File) => void;\n onSuccess?: (response: string | Response, fileName: string) => void;\n}\n\ninterface UploadState {\n fileName: string;\n isDroppable: boolean;\n isComplete: boolean;\n isError: boolean;\n isImage: boolean;\n isProcessing: boolean;\n isSuccess: boolean;\n response: unknown;\n uploadedImage: string | undefined;\n}\n\nexport class Upload extends Component<UploadProps, UploadState> {\n declare props: UploadProps & Required<Pick<UploadProps, keyof typeof Upload.defaultProps>>;\n\n static defaultProps = {\n animationDelay: 700,\n maxSize: MAX_SIZE_DEFAULT,\n psButtonDisabled: false,\n size: 'md',\n usAccept: 'image/*',\n usDisabled: false,\n usLabel: '',\n } satisfies Partial<UploadProps>;\n\n dragCounter = 0;\n timeouts = 0;\n\n constructor(props: UploadProps) {\n super(props);\n\n this.state = {\n fileName: '',\n isDroppable: false,\n isComplete: false,\n isError: false,\n isImage: false,\n isProcessing: false,\n isSuccess: false,\n response: undefined,\n uploadedImage: undefined,\n };\n }\n\n getErrorMessage(status?: number) {\n const { csFailureText, csTooLargeMessage, csWrongTypeMessage, maxSize, intl } = this.props;\n switch (status) {\n case 413:\n return (\n csTooLargeMessage ||\n intl.formatMessage(messages.csTooLargeMessage, {\n maxSize: maxSize / 1000000,\n })\n );\n case 415:\n return csWrongTypeMessage || intl.formatMessage(messages.csWrongTypeMessage);\n default:\n return csFailureText || intl.formatMessage(messages.csFailureText);\n }\n }\n\n onDragLeave(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n this.dragCounter -= 1;\n if (this.dragCounter === 0) {\n this.setState({ isDroppable: false });\n }\n }\n\n onDragEnter(event: React.DragEvent<HTMLDivElement>) {\n event.preventDefault();\n this.dragCounter += 1;\n const { usDisabled } = this.props;\n const { isProcessing } = this.state;\n if (this.dragCounter === 1 && !usDisabled && !isProcessing) {\n this.setState({ isDroppable: true });\n }\n }\n\n async onDrop(event: React.DragEvent<HTMLDivElement>) {\n const { isProcessing } = this.state;\n event.preventDefault();\n if (!isProcessing) {\n this.reset();\n }\n\n if (event.dataTransfer?.files?.[0]) {\n await this.fileDropped(event.dataTransfer.files[0]);\n }\n }\n\n onAnimationCompleted = async (status: ProcessIndicatorStatus) => {\n const { response, isProcessing, fileName } = this.state;\n const { animationDelay } = this.props;\n\n if (isProcessing && status === 'succeeded') {\n const { onSuccess } = this.props;\n this.timeouts = window.setTimeout(() => {\n this.setState(\n {\n isProcessing: false,\n isComplete: true,\n },\n onSuccess ? () => onSuccess(response as string | Response, fileName) : undefined,\n );\n }, animationDelay);\n }\n\n if (isProcessing && status === 'failed') {\n const { onFailure } = this.props;\n this.timeouts = window.setTimeout(() => {\n this.setState(\n {\n isProcessing: false,\n isComplete: true,\n },\n onFailure ? () => onFailure(response) : undefined,\n );\n }, animationDelay);\n }\n };\n\n asyncPost = async (file: File) => {\n const { httpOptions, fetcher } = this.props;\n if (httpOptions == null) {\n throw new Error('Cannot find HTTP options');\n }\n\n const { fileInputName = file.name, data = {} } = httpOptions;\n\n const formData = new FormData();\n formData.append(fileInputName, file);\n Object.keys(data).forEach((key) => formData.append(key, data[key]));\n return postData(httpOptions, formData, fetcher);\n };\n\n asyncResponse = (response: unknown, type: 'success' | 'error') => {\n // Gives time to the animation callback to fire.\n this.timeouts = window.setTimeout(() => {\n this.setState({\n response,\n isError: type === 'error',\n isSuccess: type === 'success',\n });\n }, ANIMATION_FIX);\n };\n\n handleOnClear: React.MouseEventHandler<HTMLButtonElement> = (event) => {\n event.preventDefault();\n const { onCancel } = this.props;\n onCancel?.();\n\n this.reset();\n };\n\n reset = () => {\n this.dragCounter = 0;\n window.clearTimeout(this.timeouts);\n this.setState({\n isComplete: false,\n isError: false,\n isProcessing: false,\n isSuccess: false,\n });\n };\n\n showDataImage = (dataUrl: string) => {\n const { isImage } = this.state;\n if (isImage) {\n this.setState({\n uploadedImage: dataUrl,\n });\n }\n };\n\n fileDropped = async (file: File) => {\n const { httpOptions, maxSize, onStart, usDisabled, usAccept } = this.props;\n const { isProcessing } = this.state;\n\n if (usDisabled || isProcessing) {\n return false;\n }\n\n if (!file) {\n throw new Error('Could not retrieve file');\n }\n\n this.setState({\n fileName: file.name,\n isDroppable: false,\n isProcessing: true,\n });\n\n onStart?.(file);\n\n let file64 = null;\n\n try {\n file64 = await asyncFileRead(file);\n } catch (error) {\n this.asyncResponse(error, 'error');\n }\n\n if (!file64) {\n return false;\n }\n\n this.setState({\n isImage: getFileType(file, file64).includes('image'),\n });\n\n if (!isTypeValid(file, usAccept, file64)) {\n this.asyncResponse(\n new ResponseError(\n new Response(null, {\n status: 415,\n statusText: 'Unsupported Media Type',\n }),\n ),\n 'error',\n );\n return false;\n }\n\n if (!isSizeValid(file, maxSize)) {\n this.asyncResponse(\n new ResponseError(\n new Response(null, {\n status: 413,\n statusText: 'Request Entity Too Large',\n }),\n ),\n 'error',\n );\n return false;\n }\n\n if (httpOptions) {\n // Post the file to provided endpoint\n let response;\n try {\n response = await this.asyncPost(file);\n } catch (error) {\n this.asyncResponse(error, 'error');\n return false;\n }\n this.asyncResponse(response, 'success');\n this.showDataImage(file64);\n return true;\n }\n // Post on form submit. And return the encoded image.\n this.showDataImage(file64);\n this.asyncResponse(file64, 'success');\n return true;\n };\n\n render() {\n const {\n maxSize,\n usDropMessage,\n usAccept,\n usButtonText,\n usButtonRetryText,\n usDisabled,\n usHelpImage,\n usLabel,\n usPlaceholder,\n psButtonText,\n psProcessingText,\n psButtonDisabled,\n csButtonText,\n csSuccessText,\n size,\n intl,\n } = this.props;\n\n const {\n response,\n fileName,\n isComplete,\n isDroppable,\n isError,\n isImage,\n isProcessing,\n isSuccess,\n uploadedImage,\n } = this.state;\n\n return (\n <div\n className={clsx('droppable-area', {\n droppable: true,\n 'tw-droppable-sm droppable-sm': size === 'sm',\n 'tw-droppable-md droppable-md': size === 'md' || !size,\n 'tw-droppable-lg droppable-lg': size === 'lg',\n 'droppable-dropping': isDroppable,\n 'droppable-processing': isProcessing,\n 'droppable-complete': isComplete && !isError,\n 'droppable-negative': isError && !isProcessing,\n })}\n onDragEnter={(event) => this.onDragEnter(event)}\n onDragLeave={(event) => this.onDragLeave(event)}\n onDrop={async (event) => this.onDrop(event)}\n onDragOver={(event) => event.preventDefault()}\n >\n {!isProcessing && !isComplete && (\n <UploadImageStep\n fileDropped={async (file) => this.fileDropped(file)}\n isComplete={isComplete}\n usAccept={usAccept}\n usButtonText={usButtonText || intl.formatMessage(messages.usButtonText)}\n usDisabled={usDisabled}\n usHelpImage={usHelpImage}\n usLabel={usLabel}\n usPlaceholder={\n usPlaceholder ||\n intl.formatMessage(messages.usPlaceholder, { maxSize: maxSize / 1000000 })\n }\n />\n )}\n\n {/* Starts render the step when isSuccess is true so markup is there when css transition kicks in\n css transition to work properly */}\n {(isSuccess || isComplete) && !isError && (\n <CompleteStep\n fileName={fileName}\n isComplete={isComplete}\n isImage={isImage}\n csButtonText={csButtonText || intl.formatMessage(messages.csButtonText)}\n csSuccessText={csSuccessText || intl.formatMessage(messages.csSuccessText)}\n uploadedImage={uploadedImage}\n onClear={(event) => this.handleOnClear(event)}\n />\n )}\n {isError && !isProcessing && (\n <UploadImageStep\n fileDropped={async (file) => {\n this.reset();\n await this.fileDropped(file);\n }}\n isComplete={!isError}\n usAccept={usAccept}\n usButtonText={usButtonRetryText || intl.formatMessage(messages.retry)}\n usDisabled={usDisabled}\n usHelpImage={null}\n usLabel={usLabel}\n usPlaceholder={\n usPlaceholder ||\n intl.formatMessage(messages.usPlaceholder, { maxSize: maxSize / 1000000 })\n }\n errorMessage={this.getErrorMessage(\n response != null &&\n typeof response === 'object' &&\n 'status' in response &&\n typeof response.status === 'number'\n ? response.status\n : undefined,\n )}\n />\n )}\n {isProcessing && (\n <ProcessingStep\n isComplete={isComplete}\n isError={isError}\n isSuccess={isSuccess}\n psButtonText={psButtonText || intl.formatMessage(messages.psButtonText)}\n psProcessingText={psProcessingText || intl.formatMessage(messages.psProcessingText)}\n psButtonDisabled={psButtonDisabled}\n onAnimationCompleted={async (status) => this.onAnimationCompleted(status)}\n onClear={(event) => this.handleOnClear(event)}\n />\n )}\n {!isProcessing && (\n <div className=\"droppable-dropping-card droppable-card\" aria-live=\"polite\">\n <div className=\"droppable-card-content\">\n <div className=\"circle circle-sm text-primary\">\n <PlusIcon size=\"16\" />\n </div>\n <Title type={Typography.TITLE_BODY} className=\"m-t-3\">\n {usDropMessage || intl.formatMessage(messages.usDropMessage)}\n </Title>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n\nexport default injectIntl(Upload);\n"],"names":["ANIMATION_FIX","MAX_SIZE_DEFAULT","UploadStep","Upload","Component","defaultProps","animationDelay","maxSize","psButtonDisabled","size","usAccept","usDisabled","usLabel","dragCounter","timeouts","constructor","props","state","fileName","isDroppable","isComplete","isError","isImage","isProcessing","isSuccess","response","undefined","uploadedImage","getErrorMessage","status","csFailureText","csTooLargeMessage","csWrongTypeMessage","intl","formatMessage","messages","onDragLeave","event","preventDefault","setState","onDragEnter","onDrop","reset","dataTransfer","files","fileDropped","onAnimationCompleted","onSuccess","window","setTimeout","onFailure","asyncPost","file","httpOptions","fetcher","Error","fileInputName","name","data","formData","FormData","append","Object","keys","forEach","key","postData","asyncResponse","type","handleOnClear","onCancel","clearTimeout","showDataImage","dataUrl","onStart","file64","asyncFileRead","error","getFileType","includes","isTypeValid","ResponseError","Response","statusText","isSizeValid","render","usDropMessage","usButtonText","usButtonRetryText","usHelpImage","usPlaceholder","psButtonText","psProcessingText","csButtonText","csSuccessText","_jsxs","className","clsx","droppable","onDragOver","children","_jsx","UploadImageStep","CompleteStep","onClear","retry","errorMessage","ProcessingStep","PlusIcon","Title","Typography","TITLE_BODY","injectIntl"],"mappings":"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"}
|
|
@@ -3,20 +3,15 @@
|
|
|
3
3
|
var icons = require('@transferwise/icons');
|
|
4
4
|
var Body = require('../../../body/Body.js');
|
|
5
5
|
var Button = require('../../../button/Button.js');
|
|
6
|
-
var StatusIcon = require('../../../statusIcon/StatusIcon.js');
|
|
7
6
|
var Title = require('../../../title/Title.js');
|
|
8
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
-
var sentiment = require('../../../common/propsValues/sentiment.js');
|
|
10
|
-
var size = require('../../../common/propsValues/size.js');
|
|
11
8
|
var typography = require('../../../common/propsValues/typography.js');
|
|
12
9
|
|
|
13
10
|
function CompleteStep({
|
|
14
11
|
csButtonText,
|
|
15
|
-
csFailureText,
|
|
16
12
|
csSuccessText,
|
|
17
13
|
fileName,
|
|
18
14
|
isComplete,
|
|
19
|
-
isError,
|
|
20
15
|
isImage,
|
|
21
16
|
onClear,
|
|
22
17
|
uploadedImage
|
|
@@ -26,34 +21,24 @@ function CompleteStep({
|
|
|
26
21
|
"aria-hidden": !isComplete,
|
|
27
22
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
28
23
|
className: "droppable-card-content",
|
|
29
|
-
children: [/*#__PURE__*/jsxRuntime.
|
|
24
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
30
25
|
className: "droppable-card-content d-flex flex-column align-items-center",
|
|
31
26
|
"aria-live": "polite",
|
|
32
|
-
children:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}) : /*#__PURE__*/jsxRuntime.jsx(icons.Document, {}), fileName && /*#__PURE__*/jsxRuntime.jsx(Body, {
|
|
46
|
-
as: "p",
|
|
47
|
-
className: "m-b-0",
|
|
48
|
-
children: fileName
|
|
49
|
-
}), csSuccessText && /*#__PURE__*/jsxRuntime.jsx(Title, {
|
|
50
|
-
className: "caption m-t-1",
|
|
51
|
-
type: typography.Typography.TITLE_BODY,
|
|
52
|
-
children: csSuccessText
|
|
53
|
-
})]
|
|
54
|
-
})
|
|
27
|
+
children: [isImage && uploadedImage ? /*#__PURE__*/jsxRuntime.jsx("img", {
|
|
28
|
+
src: uploadedImage,
|
|
29
|
+
alt: "OK",
|
|
30
|
+
className: "thumbnail "
|
|
31
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(icons.Document, {}), fileName && /*#__PURE__*/jsxRuntime.jsx(Body, {
|
|
32
|
+
as: "p",
|
|
33
|
+
className: "m-b-0",
|
|
34
|
+
children: fileName
|
|
35
|
+
}), csSuccessText && /*#__PURE__*/jsxRuntime.jsx(Title, {
|
|
36
|
+
className: "caption m-t-1",
|
|
37
|
+
type: typography.Typography.TITLE_BODY,
|
|
38
|
+
children: csSuccessText
|
|
39
|
+
})]
|
|
55
40
|
}), csButtonText && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
56
|
-
className:
|
|
41
|
+
className: "m-t-1",
|
|
57
42
|
onClick: onClear,
|
|
58
43
|
children: csButtonText
|
|
59
44
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completeStep.js","sources":["../../../../src/upload/steps/completeStep/completeStep.tsx"],"sourcesContent":["import { Document as DocumentIcon } from '@transferwise/icons';\n\nimport { Typography } from '../../..';\nimport Body from '../../../body';\nimport Button from '../../../button';\nimport
|
|
1
|
+
{"version":3,"file":"completeStep.js","sources":["../../../../src/upload/steps/completeStep/completeStep.tsx"],"sourcesContent":["import { Document as DocumentIcon } from '@transferwise/icons';\n\nimport { Typography } from '../../..';\nimport Body from '../../../body';\nimport Button from '../../../button';\nimport Title from '../../../title';\n\nexport interface CompleteStepProps {\n csButtonText: string;\n csSuccessText: string;\n fileName: string;\n isComplete: boolean;\n isImage: boolean;\n uploadedImage?: string;\n onClear: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nexport default function CompleteStep({\n csButtonText,\n csSuccessText,\n fileName,\n isComplete,\n isImage,\n onClear,\n uploadedImage,\n}: CompleteStepProps) {\n return (\n <div className=\"droppable-complete-card droppable-card\" aria-hidden={!isComplete}>\n <div className=\"droppable-card-content\">\n <div\n className=\"droppable-card-content d-flex flex-column align-items-center\"\n aria-live=\"polite\"\n >\n {isImage && uploadedImage ? (\n <img src={uploadedImage} alt=\"OK\" className=\"thumbnail \" />\n ) : (\n <DocumentIcon />\n )}\n\n {fileName && (\n <Body as=\"p\" className=\"m-b-0\">\n {fileName}\n </Body>\n )}\n {csSuccessText && (\n <Title className=\"caption m-t-1\" type={Typography.TITLE_BODY}>\n {csSuccessText}\n </Title>\n )}\n </div>\n {csButtonText && (\n <Button className=\"m-t-1\" onClick={onClear}>\n {csButtonText}\n </Button>\n )}\n </div>\n </div>\n );\n}\n"],"names":["CompleteStep","csButtonText","csSuccessText","fileName","isComplete","isImage","onClear","uploadedImage","_jsx","className","children","_jsxs","src","alt","DocumentIcon","Body","as","Title","type","Typography","TITLE_BODY","Button","onClick"],"mappings":";;;;;;;;;AAiBc,SAAUA,YAAYA,CAAC;EACnCC,YAAY;EACZC,aAAa;EACbC,QAAQ;EACRC,UAAU;EACVC,OAAO;EACPC,OAAO;AACPC,EAAAA,aAAAA;AACkB,CAAA,EAAA;AAClB,EAAA,oBACEC,cAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,wCAAwC;AAAC,IAAA,aAAA,EAAa,CAACL,UAAW;AAAAM,IAAAA,QAAA,eAC/EC,eAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,wBAAwB;AAAAC,MAAAA,QAAA,gBACrCC,eAAA,CAAA,KAAA,EAAA;AACEF,QAAAA,SAAS,EAAC,8DAA8D;AACxE,QAAA,WAAA,EAAU,QAAQ;AAAAC,QAAAA,QAAA,EAEjBL,CAAAA,OAAO,IAAIE,aAAa,gBACvBC,cAAA,CAAA,KAAA,EAAA;AAAKI,UAAAA,GAAG,EAAEL,aAAc;AAACM,UAAAA,GAAG,EAAC,IAAI;AAACJ,UAAAA,SAAS,EAAC,YAAA;AAAY,SAAA,CAAG,gBAE3DD,cAAA,CAACM,cAAY,EAAA,EAAA,CACd,EAEAX,QAAQ,iBACPK,cAAA,CAACO,IAAI,EAAA;AAACC,UAAAA,EAAE,EAAC,GAAG;AAACP,UAAAA,SAAS,EAAC,OAAO;AAAAC,UAAAA,QAAA,EAC3BP,QAAAA;AAAQ,SACL,CACP,EACAD,aAAa,iBACZM,cAAA,CAACS,KAAK,EAAA;AAACR,UAAAA,SAAS,EAAC,eAAe;UAACS,IAAI,EAAEC,qBAAU,CAACC,UAAW;AAAAV,UAAAA,QAAA,EAC1DR,aAAAA;AAAa,SACT,CACR,CAAA;AAAA,OACE,CACL,EAACD,YAAY,iBACXO,cAAA,CAACa,MAAM,EAAA;AAACZ,QAAAA,SAAS,EAAC,OAAO;AAACa,QAAAA,OAAO,EAAEhB,OAAQ;AAAAI,QAAAA,QAAA,EACxCT,YAAAA;AAAY,OACP,CACT,CAAA;KACE,CAAA;AACP,GAAK,CAAC,CAAA;AAEV;;;;"}
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
import { Document } from '@transferwise/icons';
|
|
2
2
|
import Body from '../../../body/Body.mjs';
|
|
3
3
|
import Button from '../../../button/Button.mjs';
|
|
4
|
-
import StatusIcon from '../../../statusIcon/StatusIcon.mjs';
|
|
5
4
|
import Title from '../../../title/Title.mjs';
|
|
6
|
-
import { jsx, jsxs
|
|
7
|
-
import { Sentiment } from '../../../common/propsValues/sentiment.mjs';
|
|
8
|
-
import { Size } from '../../../common/propsValues/size.mjs';
|
|
5
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
9
6
|
import { Typography } from '../../../common/propsValues/typography.mjs';
|
|
10
7
|
|
|
11
8
|
function CompleteStep({
|
|
12
9
|
csButtonText,
|
|
13
|
-
csFailureText,
|
|
14
10
|
csSuccessText,
|
|
15
11
|
fileName,
|
|
16
12
|
isComplete,
|
|
17
|
-
isError,
|
|
18
13
|
isImage,
|
|
19
14
|
onClear,
|
|
20
15
|
uploadedImage
|
|
@@ -24,34 +19,24 @@ function CompleteStep({
|
|
|
24
19
|
"aria-hidden": !isComplete,
|
|
25
20
|
children: /*#__PURE__*/jsxs("div", {
|
|
26
21
|
className: "droppable-card-content",
|
|
27
|
-
children: [/*#__PURE__*/
|
|
22
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
28
23
|
className: "droppable-card-content d-flex flex-column align-items-center",
|
|
29
24
|
"aria-live": "polite",
|
|
30
|
-
children:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}) : /*#__PURE__*/jsx(Document, {}), fileName && /*#__PURE__*/jsx(Body, {
|
|
44
|
-
as: "p",
|
|
45
|
-
className: "m-b-0",
|
|
46
|
-
children: fileName
|
|
47
|
-
}), csSuccessText && /*#__PURE__*/jsx(Title, {
|
|
48
|
-
className: "caption m-t-1",
|
|
49
|
-
type: Typography.TITLE_BODY,
|
|
50
|
-
children: csSuccessText
|
|
51
|
-
})]
|
|
52
|
-
})
|
|
25
|
+
children: [isImage && uploadedImage ? /*#__PURE__*/jsx("img", {
|
|
26
|
+
src: uploadedImage,
|
|
27
|
+
alt: "OK",
|
|
28
|
+
className: "thumbnail "
|
|
29
|
+
}) : /*#__PURE__*/jsx(Document, {}), fileName && /*#__PURE__*/jsx(Body, {
|
|
30
|
+
as: "p",
|
|
31
|
+
className: "m-b-0",
|
|
32
|
+
children: fileName
|
|
33
|
+
}), csSuccessText && /*#__PURE__*/jsx(Title, {
|
|
34
|
+
className: "caption m-t-1",
|
|
35
|
+
type: Typography.TITLE_BODY,
|
|
36
|
+
children: csSuccessText
|
|
37
|
+
})]
|
|
53
38
|
}), csButtonText && /*#__PURE__*/jsx(Button, {
|
|
54
|
-
className:
|
|
39
|
+
className: "m-t-1",
|
|
55
40
|
onClick: onClear,
|
|
56
41
|
children: csButtonText
|
|
57
42
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completeStep.mjs","sources":["../../../../src/upload/steps/completeStep/completeStep.tsx"],"sourcesContent":["import { Document as DocumentIcon } from '@transferwise/icons';\n\nimport { Typography } from '../../..';\nimport Body from '../../../body';\nimport Button from '../../../button';\nimport
|
|
1
|
+
{"version":3,"file":"completeStep.mjs","sources":["../../../../src/upload/steps/completeStep/completeStep.tsx"],"sourcesContent":["import { Document as DocumentIcon } from '@transferwise/icons';\n\nimport { Typography } from '../../..';\nimport Body from '../../../body';\nimport Button from '../../../button';\nimport Title from '../../../title';\n\nexport interface CompleteStepProps {\n csButtonText: string;\n csSuccessText: string;\n fileName: string;\n isComplete: boolean;\n isImage: boolean;\n uploadedImage?: string;\n onClear: React.MouseEventHandler<HTMLButtonElement>;\n}\n\nexport default function CompleteStep({\n csButtonText,\n csSuccessText,\n fileName,\n isComplete,\n isImage,\n onClear,\n uploadedImage,\n}: CompleteStepProps) {\n return (\n <div className=\"droppable-complete-card droppable-card\" aria-hidden={!isComplete}>\n <div className=\"droppable-card-content\">\n <div\n className=\"droppable-card-content d-flex flex-column align-items-center\"\n aria-live=\"polite\"\n >\n {isImage && uploadedImage ? (\n <img src={uploadedImage} alt=\"OK\" className=\"thumbnail \" />\n ) : (\n <DocumentIcon />\n )}\n\n {fileName && (\n <Body as=\"p\" className=\"m-b-0\">\n {fileName}\n </Body>\n )}\n {csSuccessText && (\n <Title className=\"caption m-t-1\" type={Typography.TITLE_BODY}>\n {csSuccessText}\n </Title>\n )}\n </div>\n {csButtonText && (\n <Button className=\"m-t-1\" onClick={onClear}>\n {csButtonText}\n </Button>\n )}\n </div>\n </div>\n );\n}\n"],"names":["CompleteStep","csButtonText","csSuccessText","fileName","isComplete","isImage","onClear","uploadedImage","_jsx","className","children","_jsxs","src","alt","DocumentIcon","Body","as","Title","type","Typography","TITLE_BODY","Button","onClick"],"mappings":";;;;;;;AAiBc,SAAUA,YAAYA,CAAC;EACnCC,YAAY;EACZC,aAAa;EACbC,QAAQ;EACRC,UAAU;EACVC,OAAO;EACPC,OAAO;AACPC,EAAAA,aAAAA;AACkB,CAAA,EAAA;AAClB,EAAA,oBACEC,GAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,wCAAwC;AAAC,IAAA,aAAA,EAAa,CAACL,UAAW;AAAAM,IAAAA,QAAA,eAC/EC,IAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,wBAAwB;AAAAC,MAAAA,QAAA,gBACrCC,IAAA,CAAA,KAAA,EAAA;AACEF,QAAAA,SAAS,EAAC,8DAA8D;AACxE,QAAA,WAAA,EAAU,QAAQ;AAAAC,QAAAA,QAAA,EAEjBL,CAAAA,OAAO,IAAIE,aAAa,gBACvBC,GAAA,CAAA,KAAA,EAAA;AAAKI,UAAAA,GAAG,EAAEL,aAAc;AAACM,UAAAA,GAAG,EAAC,IAAI;AAACJ,UAAAA,SAAS,EAAC,YAAA;AAAY,SAAA,CAAG,gBAE3DD,GAAA,CAACM,QAAY,EAAA,EAAA,CACd,EAEAX,QAAQ,iBACPK,GAAA,CAACO,IAAI,EAAA;AAACC,UAAAA,EAAE,EAAC,GAAG;AAACP,UAAAA,SAAS,EAAC,OAAO;AAAAC,UAAAA,QAAA,EAC3BP,QAAAA;AAAQ,SACL,CACP,EACAD,aAAa,iBACZM,GAAA,CAACS,KAAK,EAAA;AAACR,UAAAA,SAAS,EAAC,eAAe;UAACS,IAAI,EAAEC,UAAU,CAACC,UAAW;AAAAV,UAAAA,QAAA,EAC1DR,aAAAA;AAAa,SACT,CACR,CAAA;AAAA,OACE,CACL,EAACD,YAAY,iBACXO,GAAA,CAACa,MAAM,EAAA;AAACZ,QAAAA,SAAS,EAAC,OAAO;AAACa,QAAAA,OAAO,EAAEhB,OAAQ;AAAAI,QAAAA,QAAA,EACxCT,YAAAA;AAAY,OACP,CACT,CAAA;KACE,CAAA;AACP,GAAK,CAAC,CAAA;AAEV;;;;"}
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
var icons = require('@transferwise/icons');
|
|
4
4
|
var React = require('react');
|
|
5
|
+
var StatusIcon = require('../../../statusIcon/StatusIcon.js');
|
|
6
|
+
var InlineAlert = require('../../../inlineAlert/InlineAlert.js');
|
|
5
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
var sentiment = require('../../../common/propsValues/sentiment.js');
|
|
9
|
+
var size = require('../../../common/propsValues/size.js');
|
|
6
10
|
|
|
7
11
|
class UploadImageStep extends React.PureComponent {
|
|
8
12
|
uploadInputRef = /*#__PURE__*/React.createRef();
|
|
@@ -20,6 +24,18 @@ class UploadImageStep extends React.PureComponent {
|
|
|
20
24
|
usHelpImage,
|
|
21
25
|
usLabel
|
|
22
26
|
} = this.props;
|
|
27
|
+
const {
|
|
28
|
+
errorMessage
|
|
29
|
+
} = this.props;
|
|
30
|
+
if (errorMessage) {
|
|
31
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
32
|
+
className: "d-flex flex-column align-items-center",
|
|
33
|
+
children: /*#__PURE__*/jsxRuntime.jsx(StatusIcon, {
|
|
34
|
+
size: size.Size.LARGE,
|
|
35
|
+
sentiment: sentiment.Sentiment.NEGATIVE
|
|
36
|
+
})
|
|
37
|
+
});
|
|
38
|
+
}
|
|
23
39
|
if (!usHelpImage) {
|
|
24
40
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
25
41
|
className: "circle circle-sm circle-inverse p-t-1",
|
|
@@ -44,41 +60,49 @@ class UploadImageStep extends React.PureComponent {
|
|
|
44
60
|
usButtonText,
|
|
45
61
|
usDisabled,
|
|
46
62
|
usLabel,
|
|
47
|
-
usPlaceholder
|
|
63
|
+
usPlaceholder,
|
|
64
|
+
errorMessage
|
|
48
65
|
} = this.props;
|
|
49
66
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
children:
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
onChange: () => this.onManualUpload()
|
|
79
|
-
})]
|
|
67
|
+
className: "droppable-default-card",
|
|
68
|
+
"aria-hidden": isComplete,
|
|
69
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
70
|
+
className: "droppable-card-content",
|
|
71
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
72
|
+
className: "m-b-3",
|
|
73
|
+
children: this.getImage()
|
|
74
|
+
}), usLabel && /*#__PURE__*/jsxRuntime.jsx("h4", {
|
|
75
|
+
className: "np-text-title-body m-b-1",
|
|
76
|
+
children: usLabel
|
|
77
|
+
}), usPlaceholder && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
78
|
+
className: "np-text-body-large m-b-3",
|
|
79
|
+
children: String(usPlaceholder)
|
|
80
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("label", {
|
|
81
|
+
className: `btn btn-primary btn-md ${usDisabled ? 'disabled' : ''}`,
|
|
82
|
+
children: [usButtonText ? /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
83
|
+
children: usButtonText
|
|
84
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(icons.Upload, {
|
|
85
|
+
size: 24,
|
|
86
|
+
className: "m-r-0"
|
|
87
|
+
}), /*#__PURE__*/jsxRuntime.jsx("input", {
|
|
88
|
+
ref: this.uploadInputRef,
|
|
89
|
+
type: "file",
|
|
90
|
+
accept: usAccept === '*' ? undefined : usAccept,
|
|
91
|
+
className: "tw-droppable-input hidden",
|
|
92
|
+
disabled: usDisabled,
|
|
93
|
+
name: "file-upload",
|
|
94
|
+
onChange: () => this.onManualUpload()
|
|
80
95
|
})]
|
|
81
|
-
})
|
|
96
|
+
}), errorMessage && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
97
|
+
className: "upload-error-message",
|
|
98
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
99
|
+
className: "m-t-3 has-error",
|
|
100
|
+
children: /*#__PURE__*/jsxRuntime.jsx(InlineAlert, {
|
|
101
|
+
type: sentiment.Sentiment.NEGATIVE,
|
|
102
|
+
children: errorMessage
|
|
103
|
+
})
|
|
104
|
+
})
|
|
105
|
+
})]
|
|
82
106
|
})
|
|
83
107
|
});
|
|
84
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadImageStep.js","sources":["../../../../src/upload/steps/uploadImageStep/uploadImageStep.tsx"],"sourcesContent":["import { Upload as UploadIcon } from '@transferwise/icons';\nimport { createRef, PureComponent } from 'react';\n\nexport interface UploadImageStepProps {\n fileDropped: (file: File) => void;\n isComplete: boolean;\n usAccept: string;\n usButtonText: string;\n usDisabled: boolean;\n usHelpImage: React.ReactNode;\n usLabel: string;\n usPlaceholder: string;\n}\n\nexport default class UploadImageStep extends PureComponent<UploadImageStepProps> {\n uploadInputRef = createRef<HTMLInputElement>();\n\n onManualUpload = () => {\n const { fileDropped } = this.props;\n const file = this.uploadInputRef.current?.files?.[0];\n if (file != null) {\n fileDropped(file);\n }\n };\n\n getImage = () => {\n const { usHelpImage, usLabel } = this.props;\n\n if (!usHelpImage) {\n return (\n <div className=\"circle circle-sm circle-inverse p-t-1\">\n <UploadIcon size={24} />\n </div>\n );\n }\n\n if (typeof usHelpImage === 'string') {\n return <img src={usHelpImage} alt={usLabel} className=\"thumbnail text-xs-center\" />;\n }\n\n return usHelpImage;\n };\n\n render() {\n const { isComplete, usAccept, usButtonText, usDisabled, usLabel, usPlaceholder }
|
|
1
|
+
{"version":3,"file":"uploadImageStep.js","sources":["../../../../src/upload/steps/uploadImageStep/uploadImageStep.tsx"],"sourcesContent":["import { Upload as UploadIcon } from '@transferwise/icons';\nimport { createRef, PureComponent } from 'react';\nimport StatusIcon from '../../../statusIcon';\nimport { Sentiment, Size } from '../../../common';\nimport InlineAlert from '../../../inlineAlert';\n\nexport interface UploadImageStepProps {\n fileDropped: (file: File) => void;\n isComplete: boolean;\n usAccept: string;\n usButtonText: string;\n usDisabled: boolean;\n usHelpImage: React.ReactNode;\n usLabel: string;\n usPlaceholder: string;\n errorMessage?: string | string[];\n}\n\nexport default class UploadImageStep extends PureComponent<UploadImageStepProps> {\n uploadInputRef = createRef<HTMLInputElement>();\n\n onManualUpload = () => {\n const { fileDropped } = this.props;\n const file = this.uploadInputRef.current?.files?.[0];\n if (file != null) {\n fileDropped(file);\n }\n };\n\n getImage = () => {\n const { usHelpImage, usLabel } = this.props;\n const { errorMessage } = this.props;\n\n if (errorMessage) {\n return (\n <div className=\"d-flex flex-column align-items-center\">\n <StatusIcon size={Size.LARGE} sentiment={Sentiment.NEGATIVE} />\n </div>\n );\n }\n\n if (!usHelpImage) {\n return (\n <div className=\"circle circle-sm circle-inverse p-t-1\">\n <UploadIcon size={24} />\n </div>\n );\n }\n\n if (typeof usHelpImage === 'string') {\n return <img src={usHelpImage} alt={usLabel} className=\"thumbnail text-xs-center\" />;\n }\n\n return usHelpImage;\n };\n\n render() {\n const { isComplete, usAccept, usButtonText, usDisabled, usLabel, usPlaceholder, errorMessage } =\n this.props;\n\n return (\n <div className=\"droppable-default-card\" aria-hidden={isComplete}>\n <div className=\"droppable-card-content\">\n <div className=\"m-b-3\">{this.getImage()}</div>\n {usLabel && <h4 className=\"np-text-title-body m-b-1\">{usLabel}</h4>}\n {usPlaceholder && <p className=\"np-text-body-large m-b-3\">{String(usPlaceholder)}</p>}\n <label className={`btn btn-primary btn-md ${usDisabled ? 'disabled' : ''}`}>\n {usButtonText ? (\n <span>{usButtonText}</span>\n ) : (\n <UploadIcon size={24} className=\"m-r-0\" />\n )}\n <input\n ref={this.uploadInputRef}\n type=\"file\"\n accept={usAccept === '*' ? undefined : usAccept}\n className=\"tw-droppable-input hidden\"\n disabled={usDisabled}\n name=\"file-upload\"\n onChange={() => this.onManualUpload()}\n />\n </label>\n {errorMessage && (\n <div className=\"upload-error-message\">\n <div className=\"m-t-3 has-error\">\n <InlineAlert type={Sentiment.NEGATIVE}>{errorMessage}</InlineAlert>\n </div>\n </div>\n )}\n </div>\n </div>\n );\n }\n}\n"],"names":["UploadImageStep","PureComponent","uploadInputRef","createRef","onManualUpload","fileDropped","props","file","current","files","getImage","usHelpImage","usLabel","errorMessage","_jsx","className","children","StatusIcon","size","Size","LARGE","sentiment","Sentiment","NEGATIVE","UploadIcon","src","alt","render","isComplete","usAccept","usButtonText","usDisabled","usPlaceholder","_jsxs","String","ref","type","accept","undefined","disabled","name","onChange","InlineAlert"],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { Upload } from '@transferwise/icons';
|
|
2
2
|
import { PureComponent, createRef } from 'react';
|
|
3
|
+
import StatusIcon from '../../../statusIcon/StatusIcon.mjs';
|
|
4
|
+
import InlineAlert from '../../../inlineAlert/InlineAlert.mjs';
|
|
3
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
|
+
import { Sentiment } from '../../../common/propsValues/sentiment.mjs';
|
|
7
|
+
import { Size } from '../../../common/propsValues/size.mjs';
|
|
4
8
|
|
|
5
9
|
class UploadImageStep extends PureComponent {
|
|
6
10
|
uploadInputRef = /*#__PURE__*/createRef();
|
|
@@ -18,6 +22,18 @@ class UploadImageStep extends PureComponent {
|
|
|
18
22
|
usHelpImage,
|
|
19
23
|
usLabel
|
|
20
24
|
} = this.props;
|
|
25
|
+
const {
|
|
26
|
+
errorMessage
|
|
27
|
+
} = this.props;
|
|
28
|
+
if (errorMessage) {
|
|
29
|
+
return /*#__PURE__*/jsx("div", {
|
|
30
|
+
className: "d-flex flex-column align-items-center",
|
|
31
|
+
children: /*#__PURE__*/jsx(StatusIcon, {
|
|
32
|
+
size: Size.LARGE,
|
|
33
|
+
sentiment: Sentiment.NEGATIVE
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
}
|
|
21
37
|
if (!usHelpImage) {
|
|
22
38
|
return /*#__PURE__*/jsx("div", {
|
|
23
39
|
className: "circle circle-sm circle-inverse p-t-1",
|
|
@@ -42,41 +58,49 @@ class UploadImageStep extends PureComponent {
|
|
|
42
58
|
usButtonText,
|
|
43
59
|
usDisabled,
|
|
44
60
|
usLabel,
|
|
45
|
-
usPlaceholder
|
|
61
|
+
usPlaceholder,
|
|
62
|
+
errorMessage
|
|
46
63
|
} = this.props;
|
|
47
64
|
return /*#__PURE__*/jsx("div", {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
children:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
onChange: () => this.onManualUpload()
|
|
77
|
-
})]
|
|
65
|
+
className: "droppable-default-card",
|
|
66
|
+
"aria-hidden": isComplete,
|
|
67
|
+
children: /*#__PURE__*/jsxs("div", {
|
|
68
|
+
className: "droppable-card-content",
|
|
69
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
70
|
+
className: "m-b-3",
|
|
71
|
+
children: this.getImage()
|
|
72
|
+
}), usLabel && /*#__PURE__*/jsx("h4", {
|
|
73
|
+
className: "np-text-title-body m-b-1",
|
|
74
|
+
children: usLabel
|
|
75
|
+
}), usPlaceholder && /*#__PURE__*/jsx("p", {
|
|
76
|
+
className: "np-text-body-large m-b-3",
|
|
77
|
+
children: String(usPlaceholder)
|
|
78
|
+
}), /*#__PURE__*/jsxs("label", {
|
|
79
|
+
className: `btn btn-primary btn-md ${usDisabled ? 'disabled' : ''}`,
|
|
80
|
+
children: [usButtonText ? /*#__PURE__*/jsx("span", {
|
|
81
|
+
children: usButtonText
|
|
82
|
+
}) : /*#__PURE__*/jsx(Upload, {
|
|
83
|
+
size: 24,
|
|
84
|
+
className: "m-r-0"
|
|
85
|
+
}), /*#__PURE__*/jsx("input", {
|
|
86
|
+
ref: this.uploadInputRef,
|
|
87
|
+
type: "file",
|
|
88
|
+
accept: usAccept === '*' ? undefined : usAccept,
|
|
89
|
+
className: "tw-droppable-input hidden",
|
|
90
|
+
disabled: usDisabled,
|
|
91
|
+
name: "file-upload",
|
|
92
|
+
onChange: () => this.onManualUpload()
|
|
78
93
|
})]
|
|
79
|
-
})
|
|
94
|
+
}), errorMessage && /*#__PURE__*/jsx("div", {
|
|
95
|
+
className: "upload-error-message",
|
|
96
|
+
children: /*#__PURE__*/jsx("div", {
|
|
97
|
+
className: "m-t-3 has-error",
|
|
98
|
+
children: /*#__PURE__*/jsx(InlineAlert, {
|
|
99
|
+
type: Sentiment.NEGATIVE,
|
|
100
|
+
children: errorMessage
|
|
101
|
+
})
|
|
102
|
+
})
|
|
103
|
+
})]
|
|
80
104
|
})
|
|
81
105
|
});
|
|
82
106
|
}
|