{"version":3,"file":"js/1203-17829dd1a9c6e10f79c8.chunk.js","mappings":"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","sources":["webpack://printivity/./client/app/styleguide/components/Collapse/Collapse.tsx","webpack://printivity/./client/app/styleguide/components/DateTimeZone/DateTimeZone.tsx","webpack://printivity/./client/app/styleguide/components/ProductsTable/ProductDetails/ProductDetails.tsx","webpack://printivity/./client/app/styleguide/components/ProductsTable/PoductDetailsTabs/ProductDetailsTabs.tsx","webpack://printivity/./client/app/styleguide/components/ProductsTable/ProductDescription/ProductDescription.tsx","webpack://printivity/./client/app/styleguide/components/UploadArea/dropzone-s3-uploader.tsx","webpack://printivity/./client/app/styleguide/components/UploadArea/UploadArea.tsx","webpack://printivity/./client/app/styleguide/components/UploadAreaWithStatus/UploadAreaWithStatus.tsx","webpack://printivity/./client/app/api/fileUploads.ts"],"sourcesContent":["import * as React from 'react';\nimport cn from 'classnames';\nimport { Collapse as RCollapse } from 'react-collapse';\nimport { IconArrowUp, IconArrowDown } from 'styleguide/icons';\nimport Grid from '../Grid/Grid';\nimport { useImperativeHandle } from 'react';\n\ntype ItemTitleProps = {\n expanded: boolean;\n onClick: () => void;\n centered: boolean;\n fixedIcon: boolean;\n className?: string;\n iconClassName?: string;\n iconColor?: string;\n isWide?: boolean;\n};\n\nconst ItemTitle = ({\n expanded,\n onClick,\n centered,\n fixedIcon,\n className,\n iconClassName,\n iconColor,\n isWide,\n children,\n}: React.PropsWithChildren) => (\n \n
{children}
\n
\n {expanded ? (\n \n ) : (\n \n )}\n
\n \n);\n\ntype ItemBodyProps = {\n expanded: boolean;\n className?: string;\n isWide?: boolean;\n withPadding?: boolean;\n};\n\nconst ItemBody = ({\n expanded,\n className,\n isWide,\n withPadding,\n children,\n}: React.PropsWithChildren) => (\n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n);\n\ntype ItemProps = {\n body: React.ReactNode;\n title: React.ReactNode;\n\n // Optional state and behavior props\n expanded?: boolean;\n initiallyExpanded?: boolean;\n onToggle?: () => void;\n showMore?: boolean;\n\n // Optional styling props\n classNameBody?: string;\n classNameTitle?: string;\n iconClassName?: string;\n iconColor?: string;\n\n // Optional layout props\n centeredTitle?: boolean;\n fixedIcon?: boolean;\n isWide?: boolean;\n withPadding?: boolean;\n renderCollapsed?: boolean;\n};\n\nconst Item = React.forwardRef(\n (\n {\n body,\n title,\n expanded: controlledExpanded,\n initiallyExpanded,\n onToggle,\n showMore = false,\n classNameBody,\n classNameTitle,\n iconClassName,\n iconColor,\n centeredTitle = false,\n fixedIcon = true,\n isWide = false,\n withPadding = false,\n renderCollapsed = true,\n }: ItemProps,\n ref,\n ) => {\n const [expanded, setExpanded] = React.useState(!!controlledExpanded || !!initiallyExpanded);\n\n useImperativeHandle(ref, () => ({\n expanded,\n setExpanded,\n }));\n\n React.useEffect(() => {\n if (controlledExpanded === undefined) return;\n setExpanded(controlledExpanded);\n }, [controlledExpanded]);\n\n const toggleExpanded = () => {\n setExpanded(prev => !prev);\n if (onToggle) onToggle();\n };\n\n const collapseTitle = (\n \n {title}\n \n );\n\n const collapseBody = (\n \n {(expanded && body) || (!expanded && renderCollapsed && body)}\n \n );\n\n return showMore ? (\n <>\n {collapseBody} {collapseTitle}\n \n ) : (\n <>\n {collapseTitle}\n {collapseBody}\n \n );\n },\n);\n\nconst Collapse = ({ children, ...otherProps }: React.HTMLProps) => (\n
{children}
\n);\n\nCollapse.Item = Item;\n\nexport default Collapse;\n","import * as React from 'react';\nimport AppContext from 'contexts/AppContext/AppContext';\nimport { format } from 'date-fns-tz';\n\ninterface Props {\n date: string | Date;\n className?: string;\n fnsFormat: string;\n preText?: string;\n showTimeZone?: boolean;\n showEndOfDay?: boolean;\n dataCy?: string;\n}\n\nconst DateTimeZone = ({\n className,\n date,\n fnsFormat,\n preText,\n showEndOfDay,\n dataCy,\n showTimeZone = false,\n}: Props) => {\n const appContext = React.useContext(AppContext);\n\n if (!date) {\n return
--/--/--
;\n }\n\n let timeZoneString: string;\n let newFormat: string = fnsFormat;\n let newDate: Date = typeof date === 'string' ? new Date(date) : date;\n\n if (showTimeZone) {\n newFormat = `${fnsFormat} zzz`;\n timeZoneString = format(newDate, newFormat);\n } else {\n newDate = appContext.keepTimezoneConvertTime(newDate);\n\n timeZoneString = format(newDate, newFormat);\n\n if (showEndOfDay) {\n const time = format(newDate, 'h:mma');\n\n if (time === '11:00PM' || time === '11:30PM' || time === '11:59PM') {\n newFormat = newFormat.replace(' h:mma', '');\n timeZoneString = `${format(newDate, newFormat)} by End of Day`;\n }\n }\n }\n\n return (\n
\n {preText ? `${preText} ${timeZoneString}` : timeZoneString}\n
\n );\n};\n\nexport default DateTimeZone;\n","import { LineItem } from 'api/orders/types';\nimport * as React from 'react';\nimport cn from 'classnames';\nimport Span from 'styleguide/components/Span/Span';\nimport startCase from 'lodash-es/startCase';\nimport Loader from 'styleguide/components/Loader/Loader';\nimport DateTimeZone from 'styleguide/components/DateTimeZone/DateTimeZone';\nimport OrderContext from 'contexts/OrderContext/OrderContext';\n\ninterface Props {\n lineItem: LineItem;\n deliveryDate: string;\n}\n\nconst ProductDetails = ({ lineItem, deliveryDate }: Props) => {\n const { order } = React.useContext(OrderContext);\n\n return (\n <>\n {lineItem.description.map((item, i) => {\n const key = Object.keys(item)[0];\n\n return (\n
\n {`${startCase(key)}: `}\n {`${item[key]}`}\n
\n );\n })}\n {deliveryDate &&\n order.status === 'loaded' &&\n (!order.shipments[0] || (order.shipments[0] && order.shipments[0].quoteState === 'valid')) && (\n \n )}\n {deliveryDate && order.status === 'loading' && (\n \n )}\n \n );\n};\n\nexport default ProductDetails;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport { LineItem } from 'api/orders/types';\nimport Span from 'styleguide/components/Span/Span';\nimport startCase from 'lodash-es/startCase';\n\ninterface Props {\n lineItem: LineItem;\n withBackground: boolean;\n}\n\nconst ProductDetailsTabs = ({ lineItem, withBackground }: Props) => {\n const quoterJson = lineItem.quoterJson;\n const tabArray = Array.from({ length: parseInt(quoterJson.numberOfTabs, 10) }, (_, index) => index + 1);\n const tabAttributes = ['numberOfTabs', 'tabPaperType', 'tabMylar'];\n\n return (\n
\n \n Tabs\n \n {tabAttributes.map((tabAttribute, i) => (\n
\n {`${startCase(tabAttribute)}: `}\n {`${startCase(quoterJson[tabAttribute])}`}\n
\n ))}\n {tabArray.map((tabAttribute, i) => (\n <>\n
\n {`Tab ${tabAttribute} Text: `}\n {`${quoterJson[`tab${tabAttribute}Name`]}`}\n
\n
\n {`Tab ${tabAttribute} Page Location: `}\n {`${quoterJson[`tab${tabAttribute}Page`]}`}\n
\n \n ))}\n
\n );\n};\n\nexport default ProductDetailsTabs;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport { LineItem } from 'api/orders/types';\nimport Span from 'styleguide/components/Span/Span';\nimport startCase from 'lodash-es/startCase';\nimport Collapse from 'styleguide/components/Collapse/Collapse';\nimport IfMobile from 'styleguide/components/Conditional/IfMobile';\nimport IfTabletOrDesktop from 'styleguide/components/Conditional/IfTabletOrDesktop';\nimport ProductDetails from 'styleguide/components/ProductsTable/ProductDetails/ProductDetails';\nimport ProductDetailsTabs from 'styleguide/components/ProductsTable/PoductDetailsTabs/ProductDetailsTabs';\n\nconst ProductTitle = ({ lineItem, withBackground, dataCy }) => (\n \n {lineItem.alias ? startCase(lineItem.alias) : lineItem.product.name}\n \n);\n\ninterface Props {\n lineItem: LineItem;\n deliveryDate?: string;\n initiallyExpanded?: boolean;\n withBackground?: boolean;\n}\n\nconst ProductDescription = ({ lineItem, deliveryDate, initiallyExpanded, withBackground }: Props) => {\n const [open, setOpen] = React.useState(false);\n const quoterJson = lineItem.quoterJson;\n const tabs = quoterJson.tabDividers && quoterJson.tabDividers !== 'no-tab-dividers';\n\n const handleCollapseItemToggle = () => setOpen(!open);\n\n if (!withBackground) {\n return (\n <>\n \n \n {tabs && }\n \n );\n }\n\n return (\n <>\n \n \n \n }\n body={\n <>\n \n {tabs && }\n \n }\n classNameTitle={cn(\n 'border border-neutral-200 rounded-xl p-4 bg-neutral-50',\n open || initiallyExpanded ? 'border-b-0 rounded-b-none pb-2' : '',\n )}\n iconClassName=\"!w-2 !h-2\"\n onToggle={handleCollapseItemToggle}\n isWide\n classNameBody={cn(\n '!p-4 border border-neutral-200 rounded-xl bg-neutral-50',\n open || initiallyExpanded ? 'border-t-0 rounded-t-none !pt-0' : '',\n )}\n initiallyExpanded={initiallyExpanded}\n />\n \n \n \n \n \n {tabs && }\n \n \n );\n};\n\nexport default ProductDescription;\n","/* eslint-disable react/destructuring-assignment */\nimport * as React from 'react';\nimport S3Upload from 'react-s3-uploader/s3upload';\nimport Dropzone from 'react-dropzone';\nimport { UploadFile } from './UploadArea';\n\ninterface Props {\n filename?: string;\n s3Url: string;\n notDropzoneProps?: string[];\n isImage?: (filename: string) => boolean;\n passChildrenProps?: boolean;\n\n imageComponent?: React.ComponentType;\n fileComponent?: React.ComponentType;\n progressComponent?: React.ComponentType;\n errorComponent?: React.ComponentType;\n\n children?: React.ReactNode;\n\n onDrop?: (...args) => File[];\n onError?: (error: Error, file: File) => void;\n onProgress?: (percentage: number, status: string, file: File) => void;\n onFinish?: (wrappedFile: { file: UploadFile; uploadId: number }) => void;\n\n upload: {\n preprocess?: (file: File, next: (preProcessedFile: File) => void) => void;\n getSignedUrl?: (file: File, callback) => void;\n };\n\n className?: string | Record;\n style?: Record;\n activeStyle?: Record;\n rejectStyle?: Record;\n multiple?: boolean;\n}\n\ntype DropzoneUpload = {\n filename: string;\n fileUrl: string;\n default: boolean;\n file?: Record;\n};\n\ntype S3Uploaded = {\n file: File;\n uploadId: number;\n};\n\ntype UploadedFile = DropzoneUpload | S3Uploaded;\n\ninterface State {\n uploadedFiles: UploadedFile[];\n uploaderOptions: Record;\n progress: number;\n error: Error;\n}\n\nexport default class DropzoneS3Uploader extends React.Component {\n // eslint-disable-next-line react/static-property-placement\n public static defaultProps = {\n upload: {},\n className: 'react-dropzone-s3-uploader',\n passChildrenProps: true,\n isImage: filename => filename && filename.match(/\\.(jpeg|jpg|gif|png|svg)/i),\n notDropzoneProps: [\n 'onError',\n 'onFinish',\n 's3Url',\n 'filename',\n 'host',\n 'upload',\n 'isImage',\n 'notDropzoneProps',\n ],\n style: {\n width: 200,\n height: 200,\n border: 'dashed 2px #999',\n borderRadius: 5,\n position: 'relative',\n cursor: 'pointer',\n overflow: 'hidden',\n },\n activeStyle: {\n borderStyle: 'solid',\n backgroundColor: '#eee',\n },\n rejectStyle: {\n borderStyle: 'solid',\n backgroundColor: '#ffdddd',\n },\n multiple: true,\n };\n\n constructor(props) {\n super(props);\n const uploadedFiles: DropzoneUpload[] = [];\n const { filename } = props;\n if (filename) {\n uploadedFiles.push({\n filename,\n fileUrl: this.fileUrl(props.s3Url, filename),\n default: true,\n file: {},\n });\n }\n this.state = {\n uploadedFiles,\n uploaderOptions: null,\n progress: 0,\n error: null,\n };\n }\n\n componentDidMount() {\n return this.setUploaderOptions(this.props);\n }\n\n setUploaderOptions = props => {\n this.setState({\n uploaderOptions: {\n contentDisposition: 'auto',\n uploadRequestHeaders: { 'x-amz-acl': 'public-read' },\n onFinishS3Put: this.handleFinish,\n onProgress: this.handleProgress,\n onError: this.handleError,\n ...props.upload,\n },\n });\n };\n\n handleProgress = (progress: number, textState: string, file: File) => {\n if (this.props.onProgress) {\n this.props.onProgress(progress, textState, file);\n }\n this.setState({ progress });\n };\n\n handleError = (err: Error, file: File) => {\n if (this.props.onError) {\n this.props.onError(err, file);\n }\n this.setState({ error: err, progress: null });\n };\n\n handleFinish = (info: { uploadId: number }, file: File) => {\n const uploadedFile: S3Uploaded = {\n file,\n ...info,\n };\n\n this.setState(\n prevState => {\n const uploadedFiles = [...prevState.uploadedFiles];\n\n uploadedFiles.push(uploadedFile);\n\n return {\n uploadedFiles,\n error: null,\n progress: null,\n };\n },\n () => {\n if (this.props.onFinish) {\n this.props.onFinish(uploadedFile);\n }\n },\n );\n };\n\n handleDrop = (files: File[]) => {\n let newFiles = { ...files };\n this.setState({ uploadedFiles: [], error: null, progress: null });\n if (this.props.onDrop) {\n newFiles = this.props.onDrop(files);\n }\n const options = {\n files: newFiles,\n ...this.state.uploaderOptions,\n };\n // eslint-disable-next-line no-new\n new S3Upload(options);\n };\n\n fileUrl = (s3Url, filename) => `${s3Url.endsWith('/') ? s3Url.slice(0, -1) : s3Url}/${filename}`;\n\n renderImage = ({ uploadedFile }) => (\n
\n \"Uploaded\n
\n );\n\n renderFile = ({ uploadedFile }) => (\n
\n
\n \n
\n
{uploadedFile.file.name}
\n
\n );\n\n renderProgress = ({ progress }) => (progress ?
{progress}
: null);\n\n renderError = ({ error }) => (error ?
{error}
: null);\n\n render() {\n const {\n s3Url,\n passChildrenProps,\n children,\n imageComponent,\n fileComponent,\n progressComponent,\n errorComponent,\n ...dropzoneProps\n } = this.props;\n\n const ImageComponent = imageComponent || this.renderImage;\n const FileComponent = fileComponent || this.renderFile;\n const ProgressComponent = progressComponent || this.renderProgress;\n const ErrorComponent = errorComponent || this.renderError;\n\n const { uploadedFiles } = this.state;\n const childProps = { s3Url, ...this.state };\n this.props.notDropzoneProps.forEach(prop => delete dropzoneProps[prop]);\n\n let content = null;\n if (children) {\n content = passChildrenProps\n ? React.Children.map(children, (child: React.ReactElement) => React.cloneElement(child, childProps))\n : this.props.children;\n } else {\n content = (\n
\n {uploadedFiles.map(uploadedFile => {\n const props = {\n key: (uploadedFile as DropzoneUpload).filename,\n uploadedFile,\n ...childProps,\n };\n return this.props.isImage((uploadedFile as DropzoneUpload).fileUrl) ? (\n \n ) : (\n \n );\n })}\n \n \n
\n );\n }\n\n return (\n {}} onDrop={this.handleDrop}>\n {content}\n \n );\n }\n}\n","import * as React from 'react';\nimport cn from 'classnames';\nimport DropZoneS3Uploader from './dropzone-s3-uploader';\nimport { IconUpload } from 'styleguide/icons';\nimport IfMobile from 'styleguide/components/Conditional/IfMobile';\n\nexport interface UploadFile extends File {\n uploadId?: number | null;\n filename?: string;\n}\n\ninterface Props {\n onFilesDrop?: (acceptedFiles: File[]) => File[];\n getSignedUrl?: (file: File, callback) => void;\n preprocess?: (file: File, next: (preProcessedFile: File) => void) => void;\n onProgress?: (percent: number, status: string, file: File) => void;\n onFinish?: (wrappedFile: { file: UploadFile; uploadId: number }) => void;\n onError?: (status: Error, file: File) => void;\n}\n\nconst UploadArea = ({ onFilesDrop, getSignedUrl, preprocess, onProgress, onFinish, onError }: Props) => {\n const onDrop = (acceptedFiles: File[]) => {\n if (onFilesDrop) {\n return onFilesDrop(acceptedFiles);\n }\n return [];\n };\n\n return (\n \n {/* @ts-ignore */}\n {({ getRootProps, getInputProps, isDragActive }) => (\n \n \n \n \n
Select Files
\n
\n
\n {isDragActive ? (\n

Drop file(s) here to upload...

\n ) : (\n

\n Drag files to upload complete designs or browse\n

\n )}\n
\n
5GB max filesize
\n \n )}\n \n );\n};\n\nexport default UploadArea;\n","import * as React from 'react';\nimport { verifyUpload, deleteUpload, VerifySuccessResults, postUploads } from 'api/fileUploads';\nimport UploadArea, { UploadFile } from '../UploadArea/UploadArea';\nimport FileStatus from '../FileStatus/FileStatus';\nimport { Status } from 'libs/utils/api/types';\nimport { FileVersion, LineItem, Upload } from 'api/orders/types';\nimport { UploadForm } from 'bundles/App/pages/UploadPage/MainSection/MainSection';\nimport ButtonAsNativeLink from 'styleguide/components/Button/ButtonAsNativeLink';\nimport { ProofApproval } from 'bundles/App/pages/ProofApprovalsPage/types';\nimport toasts from 'utils/toast';\nimport { type OrderDispatchType } from 'app/contexts/OrderContext/actions';\nimport ProductDescription from 'styleguide/components/ProductsTable/ProductDescription/ProductDescription';\nimport cn from 'classnames';\n\nexport interface FileData {\n key?: string;\n id?: number;\n name?: string;\n message?: string;\n status?: number;\n url?: string;\n verified?: boolean;\n uploadTimestamp?: Date;\n uploadDuration?: string;\n size?: number;\n}\n\ninterface FilesData {\n [key: string]: FileData;\n}\n\ninterface Props {\n showButtons?: boolean;\n lineItem?: LineItem;\n owner?: FileVersion | ProofApproval;\n ownerType?: string;\n uploadForm?: UploadForm;\n onLoading: () => void;\n onReady: () => void;\n onRemoveUpload?: (dispatch: OrderDispatchType, id: number) => void;\n onAddUpload?: (dispatch: OrderDispatchType, id: number, upload: Upload) => void;\n dispatch?: OrderDispatchType;\n filesFromProps?: Upload[];\n analyticsFn?: (properties: Record) => Promise;\n}\n\ninterface UploadForSignedUrl {\n upload: {\n name: string;\n guestUploadAttributes?: {\n name: string;\n email: string;\n comments: string;\n };\n };\n contentType: string;\n ownerId?: number;\n ownerType?: string;\n}\n\nconst UploadAreaWithStatus = ({\n showButtons,\n lineItem,\n owner,\n ownerType,\n uploadForm,\n onLoading,\n onReady,\n onRemoveUpload,\n onAddUpload,\n dispatch,\n filesFromProps,\n analyticsFn,\n}: Props) => {\n const [filesData, setFilesData] = React.useState(\n owner\n ? owner.uploads.reduce((acc, upload) => {\n acc[upload.name] = {\n key: upload.id.toString(),\n id: upload.id,\n name: upload.name,\n message: '',\n url: upload.url,\n verified: true,\n };\n\n return acc;\n }, {})\n : {},\n );\n const [filesSentToAnalytics, setFilesSentToAnalytics] = React.useState({});\n\n React.useEffect(() => {\n if (owner) {\n setFilesData(\n owner.uploads.reduce((acc, upload) => {\n acc[upload.name] = {\n key: upload.id.toString(),\n id: upload.id,\n name: upload.name,\n message: '',\n url: upload.url, // TODO: do we need link?\n verified: true,\n };\n\n return acc;\n }, {}),\n );\n }\n }, [owner]);\n\n React.useEffect(() => {\n if (filesFromProps) {\n setFilesData(\n filesFromProps.reduce((acc, upload) => {\n acc[upload.name] = {\n key: upload.id.toString(),\n id: upload.id,\n name: upload.name,\n message: '',\n url: upload.url,\n verified: true,\n };\n\n return acc;\n }, {}),\n );\n }\n }, [filesFromProps]);\n\n React.useEffect(() => {\n if (\n !filesData ||\n Object.keys(filesData).length === 0 ||\n Object.keys(filesData).some(\n key => filesData[key].message === 'Uploading' || !filesData[key].uploadDuration,\n )\n ) {\n return;\n }\n if (analyticsFn) {\n const filesToSend = Object.keys(filesData).filter(\n key => !Object.keys(filesSentToAnalytics).includes(key),\n );\n const properties = filesToSend.reduce((acc, key, index) => {\n acc[`upload_duration_${index + 1}`] = filesData[key].uploadDuration;\n acc[`upload_status_${index + 1}`] = filesData[key].verified ? 'success' : 'failure';\n // eslint-disable-next-line dot-notation\n acc['file_count'] = filesToSend.length;\n acc[`size_${index + 1}`] = `${filesData[key].size / 1024} KB`;\n return acc;\n }, {});\n setFilesSentToAnalytics({ ...filesData });\n analyticsFn(properties);\n }\n }, [filesData]);\n\n const getSignedUrl = (file: File, callback) => {\n const upload: UploadForSignedUrl = { upload: { name: file.name }, contentType: file.type };\n if (owner) {\n upload.ownerId = owner.id;\n upload.ownerType = ownerType;\n } else if (uploadForm) {\n upload.upload.guestUploadAttributes = {\n name: uploadForm.fullName,\n email: uploadForm.email,\n comments: uploadForm.comments,\n };\n }\n\n postUploads(upload).then(res => {\n if (res.status === Status.Ok) {\n callback(res.payload);\n }\n });\n };\n\n const preprocess = (file: File, next: (preProcessedFile: File) => void) => {\n onLoading();\n next(file);\n };\n\n const onProgress = (percent: number, status: string, file: File) => {\n const newFilesData = { ...filesData };\n if (newFilesData[file.name] === undefined) {\n newFilesData[file.name] = {};\n newFilesData[file.name].uploadTimestamp = new Date();\n }\n newFilesData[file.name].message = status;\n newFilesData[file.name].status = percent;\n setFilesData(newFilesData);\n onReady();\n };\n\n const onFilesDrop = (files: File[]): File[] => {\n let filteredFiles = [...files];\n files.forEach(file => {\n if (filesData[file.name]) {\n filteredFiles = [...filteredFiles.filter(f => f.name !== file.name)];\n toasts.create(`the file \"${file.name}\" already exists. please rename your file`, 'error');\n }\n });\n\n return filteredFiles;\n };\n\n const onFinish = (wrappedFile: { file: UploadFile; uploadId: number }) => {\n if (!wrappedFile.uploadId) {\n throw Error(`${wrappedFile.file.name} has no uploadId.`);\n }\n\n const handleSuccess = (res: VerifySuccessResults) => {\n onAddUpload(dispatch, owner?.id, {\n name: wrappedFile.file.name,\n id: wrappedFile.uploadId,\n url: res.url,\n createdAt: res.createdAt,\n });\n };\n\n verifyUpload(wrappedFile.uploadId).then(res => {\n const newFilesData = { ...filesData };\n\n if (res.status === Status.Ok) {\n newFilesData[wrappedFile.file.name].id = res.payload.id;\n handleSuccess(res.payload);\n }\n newFilesData[wrappedFile.file.name].verified = res.status === Status.Ok;\n setFilesData(prevFilesData => {\n const updatedFilesData = { ...prevFilesData, ...newFilesData };\n Object.keys(updatedFilesData).forEach(key => {\n if (res.status === Status.Ok && updatedFilesData[key].id === res.payload.id) {\n updatedFilesData[key] = {\n ...updatedFilesData[key],\n uploadDuration: `${\n (Date.now() - updatedFilesData[key].uploadTimestamp.getTime()) / 1000\n } seconds`,\n size: wrappedFile.file.size,\n };\n }\n });\n return updatedFilesData;\n });\n onReady();\n });\n };\n\n const onError = (status: Error, file: File) => {\n const newFilesData = { ...filesData };\n newFilesData[file.name].message = 'Error';\n setFilesData(newFilesData);\n onReady();\n };\n\n const removeFile = (key: string) => {\n if (filesData[key].id) {\n onLoading();\n deleteUpload(filesData[key].id).then(res => {\n if (res.status === Status.Ok) {\n onRemoveUpload(dispatch, filesData[key].id);\n }\n });\n }\n const newFilesData = { ...filesData };\n delete newFilesData[key];\n setFilesData(newFilesData);\n onReady();\n };\n\n const getItemsArray = (items: FilesData) =>\n Object.keys(items).map(key => {\n const item = {\n key,\n name: key.split('~')[0],\n status: items[key].status,\n url: items[key].url,\n verified: items[key].verified,\n message: items[key].message,\n };\n return item;\n });\n\n return (\n <>\n
\n
\n \n
\n
\n \n
\n
\n {lineItem && }\n
\n
\n
\n \n
\n {!!showButtons && (\n
\n \n Go to Homepage\n \n
\n )}\n \n );\n};\n\nexport default UploadAreaWithStatus;\n","import apiCall from 'app/libs/utils/api/apiCall';\nimport { buildUrl } from 'libs/utils/api';\nimport { SharedErrors } from 'libs/utils/api/types';\nimport { BasicResponse } from 'api/types';\n\nexport interface UploadResponse {\n uploadId: number;\n signedUrl: string;\n}\n\n// POST /uploads\nexport const postUploads = upload => {\n const url = buildUrl(`/uploads/`);\n return apiCall.post({ url, data: upload });\n};\n\nexport interface VerifySuccessResults {\n success: boolean;\n url: string;\n createdAt: string;\n id: number;\n}\n\nexport interface VerifyFailureResults {\n success: boolean;\n status_text: string;\n response_text: string;\n}\n\n// get /uploads/:uploadId/verify\nexport const verifyUpload = (uploadId: number) => {\n const url = buildUrl(`/uploads/${uploadId}/verify`);\n return apiCall.get({ url });\n};\n\n// DELETE /uploads/destroy/:id\nexport const deleteUpload = (uploadId: number) => {\n const url = buildUrl(`/uploads/${uploadId}`);\n return apiCall.delete({ url });\n};\n"],"names":["ItemTitle","_ref","expanded","onClick","centered","fixedIcon","className","iconClassName","iconColor","isWide","children","React","Grid","Container","cn","IconArrowUp","color","IconArrowDown","ItemBody","_ref2","withPadding","RCollapse","isOpened","theme","collapse","content","Row","Col","sm","md","Collapse","_ref4","otherProps","_objectWithoutProperties","_excluded","Item","_ref3","ref","body","title","controlledExpanded","initiallyExpanded","onToggle","_ref3$showMore","showMore","classNameBody","classNameTitle","_ref3$centeredTitle","centeredTitle","_ref3$fixedIcon","_ref3$isWide","_ref3$withPadding","_ref3$renderCollapsed","renderCollapsed","_React$useState2","_slicedToArray","setExpanded","useImperativeHandle","undefined","collapseTitle","prev","collapseBody","timeZoneString","date","fnsFormat","preText","showEndOfDay","dataCy","_ref$showTimeZone","showTimeZone","appContext","AppContext","newFormat","newDate","Date","concat","format","keepTimezoneConvertTime","time","replace","lineItem","deliveryDate","order","OrderContext","description","map","item","i","key","Object","keys","Span","startCase","status","shipments","quoteState","DateTimeZone","length","Loader","id","size","withBackground","quoterJson","tabArray","Array","from","parseInt","numberOfTabs","_","index","tabAttribute","ProductTitle","alias","product","name","open","setOpen","tabs","tabDividers","IfMobile","ProductDetails","ProductDetailsTabs","IfTabletOrDesktop","DropzoneS3Uploader","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","_defineProperty","_assertThisInitialized","call","setState","uploaderOptions","_objectSpread","contentDisposition","uploadRequestHeaders","onFinishS3Put","handleFinish","onProgress","handleProgress","onError","handleError","upload","progress","textState","file","err","error","info","uploadedFile","prevState","uploadedFiles","_toConsumableArray","push","onFinish","files","newFiles","onDrop","options","state","S3Upload","s3Url","filename","endsWith","slice","src","fileUrl","alt","style","fontSize","default","value","this","setUploaderOptions","_this2","_this$props","passChildrenProps","imageComponent","fileComponent","progressComponent","errorComponent","dropzoneProps","ImageComponent","renderImage","FileComponent","renderFile","ProgressComponent","renderProgress","ErrorComponent","renderError","childProps","notDropzoneProps","forEach","prop","child","isImage","Dropzone","assign","handleDrop","match","width","height","border","borderRadius","position","cursor","overflow","activeStyle","borderStyle","backgroundColor","rejectStyle","multiple","onFilesDrop","getSignedUrl","preprocess","DropZoneS3Uploader","acceptedFiles","getRootProps","getInputProps","isDragActive","IconUpload","showButtons","owner","ownerType","uploadForm","onLoading","onReady","onRemoveUpload","onAddUpload","dispatch","filesFromProps","analyticsFn","uploads","reduce","acc","toString","message","url","verified","filesData","setFilesData","_React$useState4","filesSentToAnalytics","setFilesSentToAnalytics","some","uploadDuration","filesToSend","filter","includes","properties","removeFile","uploadId","buildUrl","apiCall","then","res","Status","Ok","newFilesData","getItemsArray","items","split","UploadArea","next","percent","uploadTimestamp","filteredFiles","f","toasts","create","wrappedFile","Error","get","payload","createdAt","handleSuccess","prevFilesData","updatedFilesData","now","getTime","callback","contentType","type","ownerId","guestUploadAttributes","fullName","email","comments","post","data","postUploads","FileStatus","filesInUpload","ProductDescription","ButtonAsNativeLink","buttonType","target"],"sourceRoot":""}