@apia/uploader-component 4.0.46

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/components/utils/makeDocTypeTooltip.tsx","../src/FileUploaderContext.tsx","../src/components/Permissions/index.tsx","../src/components/FilesList.tsx","../src/components/AddFileSection/index.tsx","../src/components/UploaderFileHeader/index.tsx","../src/components/Metadata/renders/MetadataLabel.tsx","../src/components/Metadata/renders/MetadataField.tsx","../src/components/Metadata/MetadataTable.tsx","../src/components/Directory/index.tsx","../src/components/UploaderContent.tsx","../src/openUploaderModal.tsx","../src/components/DirectoriesRenderers/FileIconRenderer.tsx","../src/components/DirectoriesRenderers/FolderIconRenderer.tsx","../src/components/DirectoriesRenderers/LoadMoreRenderer.tsx","../src/components/DirectoriesRenderers/LockedFolderIconRenderer.tsx","../src/components/UploadedFiles/menu/items/DeleteDocument.tsx","../src/components/UploadedFiles/menu/items/DownloadDocument.tsx","../src/components/UploadedFiles/menu/items/EditDocument.tsx","../src/components/UploadedFiles/menu/items/LockDocument.tsx","../src/components/UploadedFiles/getUploaderShownMenuOptions.ts","../src/components/UploadedFiles/menu/items/DocumentInfoModal/VersionTable.tsx","../src/components/UploadedFiles/menu/items/DocumentInfoModal/PermissionsInfo.tsx","../src/components/UploadedFiles/menu/items/DocumentInfoModal/InfoTable.tsx","../src/components/UploadedFiles/menu/items/DocumentInfoModal/MetadataTable.tsx","../src/components/UploadedFiles/menu/items/DocumentInfoModal/index.tsx","../src/components/UploadedFiles/menu/items/VersionDocument.tsx","../src/components/UploadedFiles/openUploaderMenu.tsx","../src/components/UploadedFiles/menu/items/TranslateDocument.tsx","../src/components/UploadedFiles/UploadedFiles.tsx"],"sourcesContent":["import { Box, getVariant } from '@apia/theme';\r\nimport { TDocType, UploaderApi } from '@apia/uploader-controller';\r\nimport { getLabel, parseAsSize } from '@apia/util';\r\n\r\nexport function makeDocTypeTooltip(api: UploaderApi, docTypes?: DocTypeInfo[]) {\r\n const docTypesInfo = docTypes || getTooltipsToShow(api);\r\n\r\n return (\r\n <Box\r\n className=\"docTypes__tooltipWrapper\"\r\n {...getVariant('layout.common.components.uploader.tooltip')}\r\n >\r\n {docTypesInfo.map((currentDocType) => (\r\n <Box key={currentDocType.id}>\r\n <Box className=\"head\" as=\"strong\">\r\n {currentDocType.label}\r\n </Box>\r\n <Box>\r\n <Box as=\"strong\">{window.LBL_ALLOWED_EXTENSIONS} </Box>\r\n <Box as=\"span\">\r\n {currentDocType.extensions.length > 0\r\n ? currentDocType.extensions.join(', ')\r\n : getLabel('lblAllDcTypeAcc').text}\r\n .\r\n </Box>\r\n </Box>\r\n <Box>\r\n <Box as=\"strong\">{window.LBL_MAX_SIZE} </Box>\r\n <Box as=\"span\">{parseAsSize(currentDocType.maxSize)}</Box>\r\n </Box>\r\n </Box>\r\n ))}\r\n </Box>\r\n );\r\n}\r\n\r\nexport type DocTypeInfo = {\r\n extensions: string[];\r\n id: string;\r\n maxSize: number;\r\n label: string;\r\n};\r\n\r\nfunction buildExtensionsArray(ext: string) {\r\n return (ext ?? '')\r\n .split(';')\r\n .filter((current) => current !== '')\r\n .map((current) => `.${current}`);\r\n}\r\n\r\nfunction addDocTypeInfoToArray(arr: DocTypeInfo[], docType: TDocType) {\r\n arr.push({\r\n extensions: buildExtensionsArray(docType.docExts),\r\n id: docType.id,\r\n label: docType.title,\r\n maxSize: docType.maxSize,\r\n });\r\n}\r\n\r\nfunction getTooltipsToShow(api: UploaderApi) {\r\n try {\r\n const hasOneClickUpload = api.props.modalConfig.oneClickUpload;\r\n const docTypes = api.state.allowedTypes;\r\n\r\n const docTypesInfo: DocTypeInfo[] = [];\r\n const generic = docTypes.find((c) => String(c.id) === '1');\r\n\r\n if (generic) {\r\n addDocTypeInfoToArray(docTypesInfo, generic);\r\n } else if (hasOneClickUpload) {\r\n const docType = docTypes[0];\r\n addDocTypeInfoToArray(docTypesInfo, docType);\r\n } else {\r\n docTypes.forEach((docType) => {\r\n addDocTypeInfoToArray(docTypesInfo, docType);\r\n });\r\n }\r\n\r\n return docTypesInfo;\r\n } catch (e) {\r\n e;\r\n return [];\r\n }\r\n}\r\n","import { UploaderModalController } from '@apia/uploader-controller';\r\nimport { createContext, useContext, ReactNode } from 'react';\r\n\r\nconst FileUploadContext = createContext<UploaderModalController | undefined>(\r\n undefined,\r\n);\r\n\r\nexport const FileUploadProvider = ({\r\n store,\r\n children,\r\n}: {\r\n store: UploaderModalController;\r\n children: ReactNode;\r\n}) => {\r\n return (\r\n <FileUploadContext.Provider value={store}>\r\n {children}\r\n </FileUploadContext.Provider>\r\n );\r\n};\r\n\r\nexport const useFileUploadContext = (): UploaderModalController => {\r\n const context = useContext(FileUploadContext);\r\n if (context === undefined) {\r\n throw new Error('There is no FileUploadContext');\r\n }\r\n return context;\r\n};\r\n\r\nexport default FileUploadContext;\r\n","import { observer } from 'mobx-react-lite';\r\nimport { useFileUploadContext } from '../../FileUploaderContext';\r\nimport { Permissions as OuterPermissions } from '@apia/components';\r\n\r\nexport const Permissions = observer(() => {\r\n const controller = useFileUploadContext();\r\n const modalConfig = controller.modalConfig;\r\n const state = controller.state;\r\n\r\n return (\r\n <OuterPermissions\r\n everyonePermissionsValue={state.permissions.allowAllType}\r\n onChangeEveryonePermissions={(ev) => {\r\n state.permissions.allowAllType = ev;\r\n }}\r\n onChangePools={(pools) => {\r\n controller.state.permissions.pools = pools;\r\n }}\r\n onChangeUsers={(users) => {\r\n controller.state.permissions.users = users;\r\n }}\r\n permissions={controller.state.permissions}\r\n collapsePermissions={modalConfig.collapsePermissions}\r\n disabled={state.isReadonly}\r\n />\r\n );\r\n});\r\n","import React, { forwardRef, useCallback } from 'react';\r\nimport { Box, BoxProps, getVariant } from '@apia/theme';\r\nimport { CollapsiblePanel, FileCard } from '@apia/components';\r\nimport { getLabel } from '@apia/util';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { useFileUploadContext } from '../FileUploaderContext';\r\n\r\ninterface IFilesList extends BoxProps {\r\n iconsSize?: 'sm' | 'md' | 'lg' | 'xl';\r\n}\r\n\r\nconst FilesList = observer(\r\n forwardRef<HTMLDivElement, IFilesList>(({ iconsSize, ...props }, ref) => {\r\n const controller = useFileUploadContext();\r\n const files = controller.inProgressFiles;\r\n const fromDirectoryFile = controller.state.fromDirectoryFile;\r\n const handleClose = useCallback(\r\n (name: string) => {\r\n controller.clearFile(name);\r\n },\r\n [controller],\r\n );\r\n\r\n return (\r\n <CollapsiblePanel\r\n label={<span>{getLabel('lblPrevDocsToAdd').text}</span>}\r\n id=\"selectedFiles\"\r\n collapseIconToRight\r\n closedIcon=\"ArrowUpThin\"\r\n openIcon=\"ArrowDownThin\"\r\n rememberCollapsedState={false}\r\n >\r\n <Box\r\n {...props}\r\n as=\"ul\"\r\n className=\"filesList\"\r\n {...getVariant('layout.common.filesList')}\r\n ref={ref}\r\n >\r\n {!fromDirectoryFile ? (\r\n files.map((c) => {\r\n return (\r\n <FileCard\r\n name={c.name}\r\n iconsSize={iconsSize}\r\n handleClose={handleClose}\r\n className=\"fileList__modal\"\r\n />\r\n );\r\n })\r\n ) : (\r\n <FileCard\r\n name={fromDirectoryFile.docName}\r\n className=\"fileList__modal\"\r\n handleClose={() => {\r\n controller.clearPartialState();\r\n controller.clearDirectoryFile();\r\n }}\r\n />\r\n )}\r\n {files.length === 0 &&\r\n !fromDirectoryFile &&\r\n getLabel('lblNoUpType').text}\r\n </Box>\r\n </CollapsiblePanel>\r\n );\r\n }),\r\n);\r\n\r\nexport default React.memo(FilesList);\r\n","import { observer } from 'mobx-react-lite';\r\nimport {\r\n ApiaUtil,\r\n DateInput,\r\n SimpleButton,\r\n Dropzone,\r\n ApiaUtilModalHandler,\r\n} from '@apia/components';\r\nimport { Box, Textarea } from '@apia/theme';\r\nimport { getLabel } from '@apia/util';\r\nimport { useFileUploadContext } from '../../FileUploaderContext';\r\nimport { ApiaMonDocModal2 } from '@apia/api';\r\nimport { Tree } from '@apia/tree2-component';\r\nimport FilesList from '../FilesList';\r\nimport { FilePicker } from '@apia/uploader-controller';\r\n\r\nexport const AddFileSection = observer(() => {\r\n const controller = useFileUploadContext();\r\n const modalConfig = controller.modalConfig;\r\n\r\n const handleOnChange = (e: File[]) => {\r\n const newFiles = Array.from(e);\r\n controller.addFiles(newFiles);\r\n };\r\n\r\n const filePicker = new FilePicker(controller.api);\r\n\r\n return (\r\n <>\r\n <Box className=\"uploader__dropzone_description_section\">\r\n <Box className=\"uploader__dropzone\">\r\n {controller.conf?.versionFile && (\r\n <strong>\r\n {\r\n getLabel('lblNameMustBe', {\r\n text: { TOK1: controller.conf?.versionFile.docName ?? '' },\r\n }).text\r\n }\r\n </strong>\r\n )}\r\n <Dropzone\r\n progress={controller.progress}\r\n className=\"dropzoneModal\"\r\n messageError={\r\n controller.state.fileReqError\r\n ? getLabel('msgReqField').text\r\n : undefined\r\n }\r\n onChange={handleOnChange}\r\n />\r\n {(modalConfig.allowDocumentsMonitor ||\r\n modalConfig.allowPickFromDirectories) &&\r\n !controller.conf?.versionFile && (\r\n <Box className=\"uploader__dropzone_actions\">\r\n {modalConfig.allowPickFromDirectories && (\r\n <SimpleButton\r\n variant=\"outline\"\r\n onClick={() => {\r\n let modal: ApiaUtilModalHandler | null = null;\r\n\r\n const handleSelection = () => {\r\n const firstElement = filePicker.selectedItems\r\n .values()\r\n .next().value;\r\n\r\n if (firstElement?.id)\r\n controller.api.pickFileById(\r\n firstElement.state.nodeProps.id,\r\n );\r\n modal?.close();\r\n };\r\n\r\n modal = ApiaUtil.instance.modals.open({\r\n title: getLabel('btnSelDcFrmTree').text,\r\n children: (\r\n <Tree\r\n id={controller.api.id}\r\n isMultiple={false}\r\n onNodeDoubleClick={handleSelection}\r\n store={filePicker}\r\n />\r\n ),\r\n onConfirm: handleSelection,\r\n onCancel: () => modal?.close(),\r\n });\r\n }}\r\n >\r\n {getLabel('btnSelDcFrmTree').text}\r\n </SimpleButton>\r\n )}\r\n {modalConfig.allowDocumentsMonitor && modalConfig.monitorId && (\r\n <SimpleButton\r\n variant=\"outline\"\r\n onClick={() =>\r\n new ApiaMonDocModal2()\r\n .openModal({\r\n monitorProperties: {\r\n docTypeId: controller.docTypes.map((d) => d.id),\r\n docTypeSel: controller.selectedDocTypeId ?? '1',\r\n monDocId:\r\n controller.api.props.modalConfig.monitorId ?? 1,\r\n },\r\n })\r\n .then((res) => {\r\n if (res[0]?.row?.id)\r\n controller.api.pickFileById(res[0].row.id);\r\n })\r\n }\r\n >\r\n {getLabel('btnMonDoc').text}\r\n </SimpleButton>\r\n )}\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n <FilesList />\r\n <Box className=\"uploader__dropzone_description_section\">\r\n <label>\r\n <span>{getLabel('lblDes').text}</span>\r\n <Textarea\r\n disabled={controller.state.isReadonly}\r\n value={controller.description}\r\n onChange={(e) => {\r\n controller.setDescription(e.target.value);\r\n }}\r\n />\r\n </label>\r\n <label>\r\n <span>{getLabel('lblExpDate').text}</span>\r\n <DateInput\r\n disabled={controller.state.isReadonly}\r\n value={controller.state.docExpDate}\r\n onChange={(d) => {\r\n controller.state.docExpDate = d ?? undefined;\r\n }}\r\n />\r\n </label>\r\n </Box>\r\n </>\r\n );\r\n});\r\n","import {\r\n ApiaUtil,\r\n Autocomplete,\r\n AutocompleteController,\r\n IconButton,\r\n} from '@apia/components';\r\nimport { Box } from '@apia/theme';\r\nimport { arrayOrArray, getLabel } from '@apia/util';\r\nimport { useFileUploadContext } from '../../FileUploaderContext';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { makeDocTypeTooltip } from '../utils/makeDocTypeTooltip';\r\nimport { useEffect, useMemo } from 'react';\r\n\r\nexport const UploaderFileHeader = observer(() => {\r\n const controller = useFileUploadContext();\r\n const docTypes = controller.docTypes.map((c) => ({\r\n label: c.title,\r\n value: String(c.id),\r\n }));\r\n const selectedDocTypeId = controller.selectedDocTypeId;\r\n useEffect(() => {\r\n handler.setValue(selectedDocTypeId, { force: true });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedDocTypeId]);\r\n\r\n const properties = {\r\n disabled:\r\n controller.state.fromDirectoryFile || controller.conf?.versionFile\r\n ? true\r\n : false,\r\n caseInsensitive: true,\r\n options: docTypes,\r\n onChange(id: string) {\r\n controller.changeDocType(id);\r\n },\r\n };\r\n const handler = useMemo(() => {\r\n return new AutocompleteController(properties);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n <label>\r\n <span>{getLabel('lblDocType').text}</span>\r\n <Box className=\"uploader__file_selection\">\r\n <Autocomplete handler={handler} properties={properties} />\r\n <IconButton\r\n variant=\"outline\"\r\n className=\"uploader__file_infoBtn\"\r\n icon=\"Info\"\r\n size={'Xl'}\r\n iconSize={20}\r\n onMouseEnter={(e) => {\r\n ApiaUtil.instance.tooltips.open({\r\n attachToElement: () => e.target as HTMLElement,\r\n children: makeDocTypeTooltip(\r\n controller.api,\r\n arrayOrArray(controller.selectedDocType).map((c) => ({\r\n extensions: c.docExts.split(';'),\r\n id: c.id,\r\n label: c.title,\r\n maxSize: c.maxSize,\r\n })),\r\n ),\r\n });\r\n }}\r\n />\r\n </Box>\r\n </label>\r\n );\r\n});\r\n","import { forwardRef } from 'react';\r\nimport { Box, Input } from '@apia/theme';\r\nimport { RequiredMark } from '@apia/components';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { useFileUploadContext } from '../../../FileUploaderContext';\r\nimport { TDocumentMetadata } from '@apia/uploader-controller';\r\n\r\nconst MetadataLabel = observer(\r\n forwardRef<HTMLInputElement, { metadata: TDocumentMetadata; i: number }>(\r\n ({ metadata, i }, ref) => {\r\n const controller = useFileUploadContext();\r\n\r\n return (\r\n <Box\r\n tabIndex={i === 0 ? 0 : -1}\r\n className=\"metadata__render_container\"\r\n ref={metadata.free !== 'Y' ? ref : null}\r\n >\r\n <RequiredMark isRequired={metadata.required === 'Y'} />\r\n {metadata.free === 'Y' ? (\r\n <>\r\n <Input\r\n value={metadata.title}\r\n disabled={controller.state.isReadonly}\r\n tabIndex={i === 0 ? 0 : -1}\r\n ref={ref}\r\n className=\"metadata__field\"\r\n onChange={(e) => {\r\n metadata.title = e.target.value;\r\n metadata.labelErrorMessage = '';\r\n }}\r\n />\r\n {metadata.labelErrorMessage && (\r\n <Box as=\"span\" className=\"errorRequired\">\r\n {metadata.labelErrorMessage}\r\n </Box>\r\n )}\r\n </>\r\n ) : (\r\n <span>{metadata.title}</span>\r\n )}\r\n </Box>\r\n );\r\n },\r\n ),\r\n);\r\n\r\nexport default MetadataLabel;\r\n","//1\r\nimport { forwardRef } from 'react';\r\nimport { Box, Input } from '@apia/theme';\r\nimport { DateInput, NumberInput, RequiredMark } from '@apia/components';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { TDocumentMetadata } from '@apia/execution';\r\nimport { useFileUploadContext } from '../../../FileUploaderContext';\r\nimport { getLabel } from '@apia/util';\r\n\r\ninterface MetadataFieldProps {\r\n metadata: TDocumentMetadata;\r\n}\r\n\r\nexport const MetadataField = observer(\r\n forwardRef<HTMLInputElement, MetadataFieldProps>(({ metadata }, ref) => {\r\n let component = null;\r\n const controller = useFileUploadContext();\r\n\r\n if (metadata.type === 'D') {\r\n component = (\r\n <DateInput\r\n disabled={controller.state.isReadonly}\r\n className=\"metadata__field\"\r\n value={metadata.value}\r\n tabIndex={-1}\r\n ref={ref}\r\n onChange={(e) => {\r\n metadata.value = e;\r\n metadata.errorMessage = '';\r\n }}\r\n />\r\n );\r\n } else if (metadata.type === 'N') {\r\n component = (\r\n <NumberInput\r\n value={metadata.value}\r\n disabled={controller.state.isReadonly}\r\n className=\"metadata__field\"\r\n tabIndex={-1}\r\n ref={ref}\r\n onChange={(e) => {\r\n if (e.error) {\r\n metadata.errorMessage = getLabel('msgMustBeNum').text;\r\n } else {\r\n metadata.errorMessage = '';\r\n }\r\n metadata.value = e.value;\r\n }}\r\n />\r\n );\r\n } else {\r\n component = (\r\n <Input\r\n value={metadata.value}\r\n disabled={controller.state.isReadonly}\r\n tabIndex={-1}\r\n ref={ref}\r\n className=\"metadata__field\"\r\n onChange={(e) => {\r\n metadata.value = e.target.value;\r\n metadata.errorMessage = '';\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <Box className=\"metadata__render_container\">\r\n <RequiredMark\r\n isRequired={metadata.required === 'Y' || metadata.free === 'Y'}\r\n />\r\n {component}\r\n {metadata.errorMessage && (\r\n <Box as=\"span\" className=\"errorRequired\">\r\n {metadata.errorMessage}\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n }),\r\n);\r\n","import React from 'react';\r\nimport { makeObservable, observable, action } from 'mobx';\r\nimport { useFileUploadContext } from '../../FileUploaderContext';\r\nimport { getLabel } from '@apia/util';\r\nimport { Box, getVariant } from '@apia/theme';\r\nimport { CollapsiblePanel, IconButton } from '@apia/components';\r\nimport MetadataLabel from './renders/MetadataLabel';\r\nimport { MetadataField } from './renders/MetadataField';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { TDocumentMetadata } from '@apia/uploader-controller';\r\n\r\nexport class MetadataTable {\r\n activeCell: { row: number; col: number } | null = null;\r\n lastSelectedIndex: number | null = null;\r\n selectedIndices: number[] = [];\r\n cellRefs: { [key: string]: HTMLElement | null } = {};\r\n onDelete?: () => void;\r\n\r\n constructor() {\r\n makeObservable(this, {\r\n activeCell: observable,\r\n lastSelectedIndex: observable,\r\n selectedIndices: observable,\r\n cellRefs: observable,\r\n setActiveCell: action,\r\n setLastSelectedIndex: action,\r\n setSelectedIndices: action,\r\n updateCellRef: action,\r\n handleRowClick: action,\r\n handleKeyDown: action,\r\n });\r\n }\r\n\r\n setActiveCell(cell: { row: number; col: number }) {\r\n this.activeCell = cell;\r\n }\r\n\r\n setLastSelectedIndex(index: number) {\r\n this.lastSelectedIndex = index;\r\n }\r\n\r\n setSelectedIndices(indices: number[]) {\r\n this.selectedIndices = indices;\r\n }\r\n\r\n updateCellRef(key: string, el: HTMLElement | null) {\r\n this.cellRefs[key] = el;\r\n }\r\n\r\n // Helper: returns an inclusive range between two indices.\r\n getRange(start: number, end: number): number[] {\r\n const range: number[] = [];\r\n const min = Math.min(start, end);\r\n const max = Math.max(start, end);\r\n for (let i = min; i <= max; i++) {\r\n range.push(i);\r\n }\r\n return range;\r\n }\r\n focusCell(rowI: number, colI: number) {\r\n const cellKey = `cell-${rowI}-${colI}`;\r\n const cellEl = this.cellRefs[cellKey];\r\n cellEl?.focus();\r\n cellEl?.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n\r\n // Modified handleRowClick: now accepts an optional colIndex.\r\n handleRowClick(\r\n index: number,\r\n e?: MouseEvent,\r\n isSelectable: boolean = true,\r\n colIndex?: number,\r\n ) {\r\n const newCol = colIndex !== undefined ? colIndex : 0;\r\n if (isSelectable) {\r\n if (e && (e as any).ctrlKey) {\r\n if (this.selectedIndices.includes(index)) {\r\n this.selectedIndices = this.selectedIndices.filter(\r\n (i) => i !== index,\r\n );\r\n } else {\r\n this.selectedIndices.push(index);\r\n }\r\n this.lastSelectedIndex = index;\r\n this.activeCell = { row: index, col: newCol };\r\n } else if (e && (e as any).shiftKey && this.lastSelectedIndex !== null) {\r\n const range = this.getRange(this.lastSelectedIndex, index);\r\n this.selectedIndices = Array.from(\r\n new Set([...this.selectedIndices, ...range]),\r\n );\r\n this.lastSelectedIndex = index;\r\n this.activeCell = { row: index, col: newCol };\r\n } else {\r\n this.selectedIndices = [index];\r\n this.lastSelectedIndex = index;\r\n this.activeCell = { row: index, col: newCol };\r\n }\r\n } else {\r\n // For rows that are not selectable, update activeCell using the provided col.\r\n this.activeCell = { row: index, col: newCol };\r\n }\r\n this.focusCell(index, newCol);\r\n }\r\n\r\n // Handle key navigation.\r\n // isRowSelectable is a predicate function that returns true if a given row is selectable.\r\n handleKeyDown(\r\n e: React.KeyboardEvent<HTMLElement>,\r\n columns: any[],\r\n listLength: number,\r\n isRowSelectable: (rowIndex: number) => boolean,\r\n ) {\r\n if (listLength === 0) return;\r\n\r\n // Check for Delete key (or \"Supr\")\r\n if (\r\n (this.selectedIndices.length > 0 && e.key === 'Delete') ||\r\n e.key === 'Del' ||\r\n e.key === 'Supr'\r\n ) {\r\n e.preventDefault();\r\n if (this.onDelete) {\r\n this.onDelete();\r\n }\r\n return;\r\n }\r\n\r\n const maxColIndex = columns.length - 1;\r\n\r\n // Row navigation: ArrowUp / ArrowDown\r\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\r\n e.preventDefault();\r\n const currentRow =\r\n this.lastSelectedIndex !== null ? this.lastSelectedIndex : 0;\r\n let newRow = currentRow;\r\n if (e.key === 'ArrowDown') {\r\n newRow = (currentRow + 1) % listLength;\r\n } else if (e.key === 'ArrowUp') {\r\n newRow = (currentRow - 1 + listLength) % listLength;\r\n }\r\n if (isRowSelectable(newRow)) {\r\n if (e.shiftKey) {\r\n this.selectedIndices = Array.from(\r\n new Set([...this.selectedIndices, newRow]),\r\n );\r\n } else {\r\n this.selectedIndices = [newRow];\r\n }\r\n this.lastSelectedIndex = newRow;\r\n } else {\r\n this.lastSelectedIndex = newRow;\r\n }\r\n const newCol = this.activeCell ? this.activeCell.col : 0;\r\n this.activeCell = { row: newRow, col: newCol };\r\n const cellKey = `cell-${newRow}-${newCol}`;\r\n const cellEl = this.cellRefs[cellKey];\r\n cellEl?.focus();\r\n cellEl?.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n // Cell navigation: ArrowLeft / ArrowRight\r\n else if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\r\n e.preventDefault();\r\n let currentCell = this.activeCell;\r\n if (!currentCell) {\r\n const row =\r\n this.lastSelectedIndex !== null ? this.lastSelectedIndex : 0;\r\n currentCell = { row, col: 0 };\r\n }\r\n if (e.key === 'ArrowLeft') {\r\n const newCol = currentCell.col - 1;\r\n if (newCol >= 0 && this.cellRefs[`cell-${currentCell.row}-${newCol}`]) {\r\n // If left cell in the same row exists, use it.\r\n this.activeCell = { row: currentCell.row, col: newCol };\r\n } else {\r\n // Otherwise, search rows below for a cell on the left.\r\n let found = false;\r\n let target: { row: number; col: number } | null = null;\r\n for (let r = currentCell.row + 1; r < listLength; r++) {\r\n for (let c = currentCell.col - 1; c >= 0; c--) {\r\n if (this.cellRefs[`cell-${r}-${c}`]) {\r\n target = { row: r, col: c };\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (found) break;\r\n }\r\n if (found && target) {\r\n this.activeCell = target;\r\n } else {\r\n // Fallback: remain in current row, leftmost cell.\r\n this.activeCell = { row: currentCell.row, col: 0 };\r\n }\r\n }\r\n } else if (e.key === 'ArrowRight') {\r\n let newCol = currentCell.col + 1;\r\n if (\r\n newCol > maxColIndex ||\r\n !this.cellRefs[`cell-${currentCell.row}-${newCol}`]\r\n ) {\r\n newCol = maxColIndex;\r\n }\r\n this.activeCell = { row: currentCell.row, col: newCol };\r\n }\r\n if (this.activeCell) {\r\n const cellKey = `cell-${this.activeCell.row}-${this.activeCell.col}`;\r\n const cellEl = this.cellRefs[cellKey];\r\n cellEl?.focus();\r\n cellEl?.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n }\r\n }\r\n }\r\n\r\n reset() {\r\n this.activeCell = null;\r\n this.lastSelectedIndex = null;\r\n this.selectedIndices = [];\r\n this.cellRefs = {};\r\n }\r\n\r\n component = observer(() => {\r\n const controller = useFileUploadContext();\r\n const modalConfig = controller.modalConfig;\r\n const columns = [\r\n { name: 'metadataName', label: getLabel('lblTit').text },\r\n { name: 'metadataValue', label: getLabel('lblValue').text },\r\n ];\r\n\r\n const metadata = controller.allMetadata;\r\n\r\n const isRowSelectable = (rowIndex: number) =>\r\n metadata[rowIndex].free === 'Y';\r\n\r\n this.onDelete = () => {\r\n controller.deleteMetadata(this.selectedIndices);\r\n const offset = controller.state.metadata.metadataArray.length;\r\n const newLength = metadata.length - 1;\r\n\r\n if (newLength - offset > 0) {\r\n this.selectedIndices = [newLength - 1];\r\n this.setActiveCell({ row: newLength - 1, col: 0 });\r\n this.setLastSelectedIndex(newLength - 1);\r\n this.focusCell(newLength - 1, 0);\r\n } else {\r\n this.selectedIndices = [];\r\n this.setLastSelectedIndex(newLength - 1);\r\n this.focusCell(newLength - 1, 0);\r\n }\r\n };\r\n\r\n return (\r\n <CollapsiblePanel\r\n label={<span>{getLabel('titMetadata').text}</span>}\r\n id=\"metadata\"\r\n collapseIconToRight\r\n closedIcon=\"ArrowUpThin\"\r\n openIcon=\"ArrowDownThin\"\r\n aria-label={getLabel('titMetadata').text}\r\n collapsed={modalConfig.collapseMetadata}\r\n >\r\n {(metadata.length > 0 || controller.state.metadata.isFreeMetadata) && (\r\n <Box\r\n className=\"metadata__container\"\r\n tabIndex={0}\r\n onKeyDown={(e: React.KeyboardEvent<HTMLDivElement>) =>\r\n this.handleKeyDown(e, columns, metadata.length, isRowSelectable)\r\n }\r\n >\r\n <Box className=\"metadata__table_container\">\r\n <Box\r\n as=\"table\"\r\n role=\"table\"\r\n aria-label=\"Metadata Table\"\r\n aria-describedby=\"metadata-table-description\"\r\n >\r\n <thead role=\"rowgroup\">\r\n <tr role=\"row\">\r\n {columns.map((col) => (\r\n <th key={col.name} role=\"columnheader\" scope=\"col\">\r\n {col.label}\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody role=\"rowgroup\">\r\n {metadata.map((c: TDocumentMetadata, rowIndex: number) => {\r\n const isRowSelected =\r\n this.selectedIndices?.includes(rowIndex);\r\n return (\r\n <tr\r\n key={c.id}\r\n role=\"row\"\r\n onClick={(e: any) => {\r\n e.stopPropagation();\r\n this.handleRowClick(\r\n rowIndex,\r\n e,\r\n isRowSelectable(rowIndex),\r\n );\r\n }}\r\n className={`${isRowSelected ? 'selected' : ''}`}\r\n >\r\n {columns.map((col, colIndex) => (\r\n <td\r\n key={col.name}\r\n role=\"cell\"\r\n style={{\r\n cursor: !isRowSelectable(rowIndex)\r\n ? 'not-allowed'\r\n : 'default',\r\n }}\r\n onClick={(e: any) => {\r\n e.stopPropagation();\r\n // Pass the clicked column index to focus that cell.\r\n this.handleRowClick(\r\n rowIndex,\r\n e,\r\n isRowSelectable(rowIndex),\r\n colIndex,\r\n );\r\n }}\r\n >\r\n {colIndex === 0 ? (\r\n <MetadataLabel\r\n i={rowIndex}\r\n metadata={metadata[rowIndex]}\r\n ref={(el) =>\r\n this.updateCellRef(\r\n `cell-${rowIndex}-${colIndex}`,\r\n el,\r\n )\r\n }\r\n />\r\n ) : (\r\n <MetadataField\r\n metadata={metadata[rowIndex]}\r\n ref={(el) =>\r\n this.updateCellRef(\r\n `cell-${rowIndex}-${colIndex}`,\r\n el,\r\n )\r\n }\r\n />\r\n )}\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n })}\r\n </tbody>\r\n </Box>\r\n </Box>\r\n {metadata.length < 1 && (\r\n <Box>{getLabel('lblNoMetadataForThisDocType').text}</Box>\r\n )}\r\n {controller.state.metadata.isFreeMetadata && (\r\n <Box className=\"metadata__actions\">\r\n <IconButton\r\n disabled={controller.state.isReadonly}\r\n icon=\"Plus\"\r\n {...getVariant('outline')}\r\n className=\"addMetadata\"\r\n onClick={() => {\r\n controller.addMetadata();\r\n setTimeout(() => {\r\n const newRowI = metadata.length;\r\n const newField = document.querySelector(\r\n 'tr:last-child .metadata__field',\r\n ) as HTMLElement | null;\r\n\r\n // Scroll smoothly to the new row/field\r\n if (newField) {\r\n newField.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'nearest',\r\n inline: 'nearest',\r\n });\r\n newField.focus();\r\n }\r\n\r\n this.selectedIndices = [newRowI];\r\n this.setActiveCell({ row: newRowI, col: 0 });\r\n this.setLastSelectedIndex(newRowI);\r\n\r\n // Also ensure the table container scrolls to bottom (fallback)\r\n const container = document.querySelector(\r\n '.uploader__content',\r\n ) as HTMLElement | null;\r\n if (container) {\r\n container.scrollTo({\r\n top: container.scrollHeight,\r\n behavior: 'smooth',\r\n });\r\n }\r\n }, 0);\r\n }}\r\n type=\"button\"\r\n aria-label=\"Add Metadata\"\r\n aria-description=\"Adds a new metadata row to the table\"\r\n />\r\n <IconButton\r\n disabled={\r\n controller.state.isReadonly ||\r\n this.selectedIndices.length === 0\r\n }\r\n icon=\"Trash\"\r\n {...getVariant('outline-danger')}\r\n onClick={() => this.onDelete && this.onDelete()}\r\n type=\"button\"\r\n className=\"deleteMetadata\"\r\n aria-label=\"Delete Metadata\"\r\n aria-description=\"Deletes the selected metadata row\"\r\n />\r\n </Box>\r\n )}\r\n </Box>\r\n )}\r\n {metadata.length < 1 && !controller.state.metadata.isFreeMetadata && (\r\n <>{getLabel('lblNoMetadataForThisDocType').text}</>\r\n )}\r\n </CollapsiblePanel>\r\n );\r\n });\r\n}\r\n","import { useFileUploadContext } from '../../FileUploaderContext';\r\nimport { getLabel } from '@apia/util';\r\nimport { CollapsiblePanel, IconButton } from '@apia/components';\r\nimport { Tree } from '@apia/tree2-component';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\nexport const Directory = observer(() => {\r\n const controller = useFileUploadContext();\r\n const modalConfig = controller.modalConfig;\r\n\r\n if (controller.state.isReadonly) return null;\r\n\r\n return (\r\n <CollapsiblePanel\r\n label={<span>{getLabel('lblDocFolders').text}</span>}\r\n id=\"direcotry\"\r\n collapseIconToRight\r\n closedIcon=\"ArrowUpThin\"\r\n openIcon=\"ArrowDownThin\"\r\n className=\"uploader__directory\"\r\n collapsed={modalConfig.collapseDirectories}\r\n >\r\n <IconButton\r\n className=\"uploader__directory__clear-directory\"\r\n icon=\"Close\"\r\n title=\"\"\r\n onClick={() => {\r\n controller.directories!.selectedItems.clear();\r\n controller.state.docFolder = undefined;\r\n }}\r\n />\r\n <Tree\r\n id={controller.api.id}\r\n isMultiple={false}\r\n onSelect={(nodes) => {\r\n const node = nodes.values().next().value;\r\n if (node && node.state.nodeProps.canWrite)\r\n controller.state.docFolder = Number(node.id);\r\n }}\r\n store={controller.directories!}\r\n />\r\n </CollapsiblePanel>\r\n );\r\n});\r\n","import { Box, getVariant } from '@apia/theme';\r\n\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Permissions } from './Permissions';\r\nimport { AddFileSection } from './AddFileSection';\r\nimport { UploaderFileHeader } from './UploaderFileHeader';\r\nimport { MetadataTable } from './Metadata/MetadataTable';\r\nimport { Directory } from './Directory';\r\nimport { useFileUploadContext } from '../FileUploaderContext';\r\n\r\nconst Metadata = new MetadataTable();\r\n\r\nexport const UploaderContent = observer(() => {\r\n const controller = useFileUploadContext();\r\n const modalConfig = controller.modalConfig;\r\n\r\n return (\r\n <Box\r\n className=\"uploader__container\"\r\n {...getVariant('layout.common.components.uploader.defaultView')}\r\n >\r\n <UploaderFileHeader />\r\n <Box className=\"uploader__content\">\r\n <AddFileSection />\r\n {modalConfig.showPermissions && <Permissions />}\r\n {modalConfig.showDirectoriesStructure && <Directory />}\r\n {modalConfig.showMetadata && <Metadata.component />}\r\n </Box>\r\n </Box>\r\n );\r\n});\r\n","import { ApiaUtil } from '@apia/components';\r\nimport { UploaderModalController } from '@apia/uploader-controller';\r\nimport { FileUploadProvider } from './FileUploaderContext';\r\nimport { UploaderContent } from './components/UploaderContent';\r\n\r\nexport function openUploaderModal(c: UploaderModalController) {\r\n ApiaUtil.instance.modals.open({\r\n children: (\r\n <FileUploadProvider store={c}>\r\n <UploaderContent />\r\n </FileUploadProvider>\r\n ),\r\n size: 'fileModal',\r\n noHeader: true,\r\n initialFocusGetter(ref) {\r\n return ref.querySelector('.dropzone') as HTMLElement;\r\n },\r\n onConfirm: async () => {\r\n const isValid = await c.confirm();\r\n if (isValid) {\r\n c.onCloseModal();\r\n return true;\r\n }\r\n const dropzone = document.querySelector('.dropzoneModal') as HTMLElement;\r\n if (dropzone && c.state.fileReqError) {\r\n dropzone.focus();\r\n } else {\r\n document\r\n .querySelector<HTMLElement>(\r\n '.metadata__table_container .metadata__field:has(+ .errorRequired)',\r\n )\r\n ?.focus();\r\n }\r\n return false;\r\n },\r\n onCancel() {\r\n c.onCloseModal();\r\n },\r\n onExited() {\r\n c.onCloseModal();\r\n },\r\n onClose() {\r\n c.onCloseModal();\r\n },\r\n });\r\n}\r\n","import { FileIcon } from '@apia/icons';\r\nimport { TTreeIconRenderer } from '@apia/tree2-component';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\nexport const FileIconRenderer: TTreeIconRenderer = observer(({ node }) => {\r\n return <FileIcon iconSize=\"sm\" docName={node.state.label} />;\r\n});\r\n","import { Icon } from '@apia/icons';\r\nimport { TTreeIconRenderer } from '@apia/tree2-component';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\nexport const FolderIconRenderer: TTreeIconRenderer = observer(({ node }) => {\r\n return node.state.isExpanded ? (\r\n <Icon title=\"\" name=\"FolderOpen\" />\r\n ) : (\r\n <Icon title=\"\" name=\"FolderClosed\" />\r\n );\r\n});\r\n","import { SimpleButton } from '@apia/components';\r\nimport { TTreeLabelRenderer } from '@apia/tree2-component';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\nexport const LoadMoreRenderer: TTreeLabelRenderer = observer(({ node }) => {\r\n return (\r\n <SimpleButton\r\n isLoading={node.state.nodeProps.isLoadingMore}\r\n tabIndex={-1}\r\n variant=\"inherit-sm\"\r\n >\r\n {node.state.label}\r\n </SimpleButton>\r\n );\r\n});\r\n","import { Icon } from '@apia/icons';\r\nimport { Box } from '@apia/theme';\r\nimport { TTreeIconRenderer } from '@apia/tree2-component';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\nexport const LockedFolderIconRenderer: TTreeIconRenderer = observer(() => {\r\n return (\r\n <Box sx={{ '& *': { color: 'palette.error.main' } }}>\r\n <Icon title=\"\" name=\"Locked\" />\r\n </Box>\r\n );\r\n});\r\n","import { ApiaUtil } from '@apia/components';\r\nimport { TUploaderFileInfo, UploaderApi } from '@apia/uploader-controller';\r\nimport { Box } from '@apia/theme';\r\nimport { getLabel } from '@apia/util';\r\n\r\nexport const DeleteDocument = (\r\n api: UploaderApi,\r\n f: TUploaderFileInfo,\r\n props?: {\r\n langId?: number;\r\n },\r\n) => {\r\n return {\r\n children: <Box>{getLabel('btnDel').text}</Box>,\r\n key: '7',\r\n onClick: async () => {\r\n const file = api.getDocument(f.docId)!;\r\n if (\r\n await ApiaUtil.instance.dialogs.confirm({\r\n children:\r\n // !window.langId &&\r\n Object.values(api.state.translatedFiles.get(file.docId) ?? {})\r\n .length > 0\r\n ? getLabel('msgDelFileTrans').text\r\n : window.MSG_CONFIG_DELETE_DOCUMENT_FILE_INPUT_NAME.replace(\r\n '<TOK>',\r\n file.docName ?? file.name ?? 'NONAME',\r\n ),\r\n title: window.BTN_FILE_ERASE_LBL,\r\n })\r\n ) {\r\n await api.ajaxDeleteDocument(file.docId, props?.langId);\r\n }\r\n },\r\n };\r\n};\r\n","import { TUploaderFileInfo, UploaderApi } from '@apia/uploader-controller';\r\nimport { Box } from '@apia/theme';\r\nimport { getLabel } from '@apia/util';\r\n\r\nexport const DownloadDocument = (api: UploaderApi, file: TUploaderFileInfo) => {\r\n return {\r\n children: <Box>{getLabel('lblDownFile').text}</Box>,\r\n key: '3',\r\n onClick: () => {\r\n api.checkWebDavLock(file.docId);\r\n api.downloadDocument(file.docId);\r\n },\r\n };\r\n};\r\n","import { TUploaderFileInfo, UploaderApi } from '@apia/uploader-controller';\r\nimport { Box } from '@apia/theme';\r\nimport { getLabel } from '@apia/util';\r\n\r\nexport const EditDocument = (api: UploaderApi, file: TUploaderFileInfo) => {\r\n return {\r\n children: <Box>{getLabel('lblEdit').text}</Box>,\r\n key: '2',\r\n onClick: () => {\r\n api.editDocument(file.docId);\r\n },\r\n };\r\n};\r\n","import { TUploaderFileInfo, UploaderApi } from '@apia/uploader-controller';\r\nimport { Box } from '@apia/theme';\r\nimport { getLabel, toBoolean } from '@apia/util';\r\n\r\nexport const LockDocument = (api: UploaderApi, file: TUploaderFileInfo) => {\r\n return {\r\n icon: (file.isLocked || toBoolean(file.lock) || file.locked) && 'Check',\r\n children: (\r\n <Box\r\n sx={{\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: 3,\r\n }}\r\n >\r\n {file.isLocked || toBoolean(file.lock) || file.locked\r\n ? getLabel('lblDocLockedBy', {\r\n text: { TOK1: file.lockingUser || file?.lockedBy || '' },\r\n }).text\r\n : getLabel('btnLock').text}\r\n </Box>\r\n ),\r\n key: '5',\r\n onClick: () => {\r\n api.lockDocument(file.docId);\r\n },\r\n };\r\n};\r\n","import { TUploaderFileInfo } from '@apia/uploader-controller';\r\n\r\nexport type TUploaderMenuItemsConditions = Partial<\r\n Record<\r\n | 'showEdition'\r\n | 'showLock'\r\n | 'showDownload'\r\n | 'showVersion'\r\n | 'showDelete'\r\n | 'showTranslate',\r\n boolean\r\n >\r\n>;\r\n\r\nexport function getUploaderShownMenuOptions(\r\n {\r\n showDownload,\r\n showEdition,\r\n showLock,\r\n showVersion,\r\n showDelete,\r\n showTranslate,\r\n }: TUploaderMenuItemsConditions,\r\n file: TUploaderFileInfo,\r\n) {\r\n /**\r\n * What options will be shown in the menu (if present)\r\n */\r\n const showEditOption =\r\n showEdition !== false &&\r\n file.canEdit !== false &&\r\n Number(file?.docId) >= 0 &&\r\n !window.IN_MONITOR;\r\n const showLockOption =\r\n showLock !== false &&\r\n file.canWrite !== false &&\r\n Number(file?.docId) >= 0 &&\r\n !window.IN_MONITOR;\r\n const showDownloadOption = showDownload !== false;\r\n const showVersionOption =\r\n showVersion !== false &&\r\n file.canWrite !== false &&\r\n Number(file?.docId) >= 0 &&\r\n !window.IN_MONITOR;\r\n const showDeleteOption =\r\n showDelete !== false && file.canWrite !== false && !window.IN_MONITOR;\r\n const showTranslateOption =\r\n showTranslate !== false && file.canWrite !== false && !window.IN_MONITOR;\r\n\r\n return {\r\n showEditOption,\r\n showLockOption,\r\n showDownloadOption,\r\n showVersionOption,\r\n showDeleteOption,\r\n showTranslateOption,\r\n };\r\n}\r\n","import { CollapsiblePanel, SimpleButton } from '@apia/components';\r\nimport { TUploaderFileInfo, UploaderApi } from '@apia/uploader-controller';\r\nimport { Box } from '@apia/theme';\r\nimport { getLabel } from '@apia/util';\r\n\r\nexport const VersionTable = ({\r\n data,\r\n api,\r\n file,\r\n}: {\r\n data: Array<{\r\n verUser: string;\r\n verNumber: string;\r\n verDate: string;\r\n }>;\r\n api: UploaderApi;\r\n file: TUploaderFileInfo;\r\n}) => {\r\n return (\r\n <CollapsiblePanel\r\n label={<span>{getLabel('sbtDocVer').text}</span>}\r\n id=\"versions_infoModal\"\r\n collapseIconToRight\r\n closedIcon=\"ArrowUpThin\"\r\n openIcon=\"ArrowDownThin\"\r\n defaultCollapsed\r\n >\r\n <Box className=\"doc_info_table_container\">\r\n <table className=\"doc_info_table versions_table\">\r\n <thead>\r\n <tr>\r\n <th>{getLabel('lblVer').text}</th>\r\n <th>{getLabel('lblUsu').text}</th>\r\n <th>{getLabel('lblDate').text}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {data.map((version, index) => (\r\n <tr key={index}>\r\n <td>\r\n {\r\n <SimpleButton\r\n variant=\"link\"\r\n onClick={() => {\r\n api.downloadVersion(file.docId, version.verNumber);\r\n }}\r\n >\r\n {version.verNumber}\r\n </SimpleButton>\r\n }\r\n </td>\r\n <td>{version.verUser}</td>\r\n <td>{version.verDate}</td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </Box>\r\n </CollapsiblePanel>\r\n );\r\n};\r\n","import { CollapsiblePanel, SwitchCard } from '@apia/components';\r\nimport { Box, Select } from '@apia/theme';\r\nimport { arrayOrArray, getLabel } from '@apia/util';\r\nimport { DocumentInfo } from '.';\r\n\r\nexport const PermissionsInfo = ({ data }: { data: DocumentInfo }) => {\r\n return (\r\n <CollapsiblePanel\r\n label={<span>{getLabel('lblPer').text}</span>}\r\n id=\"permissions_infoModal\"\r\n collapseIconToRight\r\n closedIcon=\"ArrowUpThin\"\r\n openIcon=\"ArrowDownThin\"\r\n className=\"uploader__permissions\"\r\n defaultCollapsed\r\n >\r\n <Box className=\"allPermissions\">\r\n <span>{getLabel('lblTod').text}</span>\r\n <Select disabled value={data.allPoolPermission}>\r\n <option value=\"M\">{getLabel('lblPerMod').text}</option>\r\n <option value=\"R\">{getLabel('lblPerVer').text}</option>\r\n <option value={''}>{getLabel('lblAccessDenied').text}</option>\r\n </Select>\r\n </Box>\r\n <Box className=\"permissions__list\">\r\n <Box as=\"ul\">\r\n {arrayOrArray(data.permissions?.user).map((c) => {\r\n return (\r\n <Box as=\"li\" key={c.id}>\r\n <SwitchCard\r\n label={c.name}\r\n align=\"right\"\r\n icon=\"User2\"\r\n value={c.permType === 'M' ? true : false}\r\n switchProps={{ disabled: true }}\r\n />\r\n </Box>\r\n );\r\n })}\r\n {arrayOrArray(data.permissions?.pool).map((c) => {\r\n return (\r\n <Box as=\"li\" key={c.id}>\r\n <SwitchCard\r\n label={c.name}\r\n align=\"right\"\r\n icon=\"Groups\"\r\n value={c.permType === 'M' ? true : false}\r\n switchProps={{ disabled: true }}\r\n />\r\n </Box>\r\n );\r\n })}\r\n </Box>\r\n </Box>\r\n </CollapsiblePanel>\r\n );\r\n};\r\n","import { ApiaUtil, IconButton } from '@apia/components';\r\nimport { Box } from '@apia/theme';\r\nimport { getLabel } from '@apia/util';\r\nimport { DocumentInfo } from '.';\r\n\r\nexport const InfoTable = ({\r\n data,\r\n docId,\r\n}: {\r\n data: DocumentInfo;\r\n docId: string;\r\n}) => {\r\n return (\r\n <Box as=\"table\" variant=\"layout.common.tables.information\">\r\n <tbody>\r\n <tr>\r\n <td>\r\n <span>{getLabel('lblDocType').text}:</span>\r\n </td>\r\n <td>{data.type}</td>\r\n </tr>\r\n <tr>\r\n <td>\r\n <span>{getLabel('lblDocName').text}:</span>\r\n </td>\r\n <td>{data.name}</td>\r\n </tr>\r\n <tr>\r\n <td>\r\n <span>{getLabel('lblDes').text}:</span>\r\n </td>\r\n <td>{data.description}</td>\r\n </tr>\r\n <tr>\r\n <td>\r\n <span>{getLabel('lblExpDate').text}:</span>\r\n </td>\r\n <td>{data.expirationDate}</td>\r\n </tr>\r\n {data.folderPath && (\r\n <tr>\r\n <td>\r\n <span>{getLabel('lblDir').text}:</span>\r\n </td>\r\n <td>{data.folderPath}</td>\r\n </tr>\r\n )}\r\n <tr>\r\n <td>\r\n <span>{getLabel('lblDwnLink').text}:</span>\r\n </td>\r\n {Number(docId) > 0 && (\r\n <Box as=\"td\" className=\"table__buttons\">\r\n <IconButton\r\n icon=\"Download\"\r\n size=\"Lg\"\r\n onClick={() => {\r\n window.open(data.downloadLink, '_blank');\r\n }}\r\n />\r\n <IconButton\r\n icon=\"Copy\"\r\n size=\"Lg\"\r\n title={getLabel('lblCpyLink').text}\r\n onClick={() => {\r\n navigator.clipboard\r\n .writeText(data.downloadLink)\r\n .then(() => {\r\n ApiaUtil.instance.notifications.notify({\r\n message: getLabel('lblCopiedLink').text,\r\n type: 'success',\r\n });\r\n console.log('Download link copied to clipboard');\r\n })\r\n .catch((err) => {\r\n console.error('Failed to copy download link:', err);\r\n });\r\n }}\r\n />\r\n </Box>\r\n )}\r\n </tr>\r\n </tbody>\r\n </Box>\r\n );\r\n};\r\n","import { CollapsiblePanel } from '@apia/components';\r\nimport { Box } from '@apia/theme';\r\nimport { getLabel } from '@apia/util';\r\n\r\nexport const MetadataTable = ({\r\n data,\r\n}: {\r\n data: Array<{\r\n title: string;\r\n value: string;\r\n }>;\r\n}) => {\r\n return (\r\n <CollapsiblePanel\r\n label={<span>{getLabel('titMetadata').text}</span>}\r\n id=\"metadata_infoModal\"\r\n collapseIconToRight\r\n closedIcon=\"ArrowUpThin\"\r\n openIcon=\"ArrowDownThin\"\r\n defaultCollapsed\r\n >\r\n <Box className=\"doc_info_table_container\">\r\n <table className=\"doc_info_table\">\r\n <thead>\r\n <tr>\r\n <th>{getLabel('lblTit').text}</th>\r\n <th>{getLabel('lblVal').text}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {data.map((item, index) => (\r\n <tr key={index}>\r\n <td>{item.title}</td>\r\n <td>{item.value}</td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </Box>\r\n </CollapsiblePanel>\r\n );\r\n};\r\n","import { ApiaUtil } from '@apia/components';\r\nimport { Box, getVariant } from '@apia/theme';\r\nimport { arrayOrArray, getLabel } from '@apia/util';\r\nimport { VersionTable } from './VersionTable';\r\nimport { PermissionsInfo } from './PermissionsInfo';\r\nimport { InfoTable } from './InfoTable';\r\nimport { MetadataTable } from './MetadataTable';\r\nimport {\r\n UploaderApi,\r\n TUploaderFileInfo,\r\n TDocumentInformation,\r\n TDocumentPermission,\r\n} from '@apia/uploader-controller';\r\n\r\nexport const DocInfoModal = (api: UploaderApi, file: TUploaderFileInfo) => {\r\n return {\r\n children: <Box>{getLabel('btnInfo').text}</Box>,\r\n key: '1',\r\n onClick: async () => {\r\n const data = {\r\n ...parseDocumentInfo(await api.getDocumentInfo({ docId: file.docId })),\r\n };\r\n\r\n ApiaUtil.instance.modals.open({\r\n children: <DocModalComponent data={data} file={file} api={api} />,\r\n size: 'flex',\r\n title: getLabel('btnInfo').text,\r\n });\r\n },\r\n };\r\n};\r\n\r\nconst DocModalComponent = ({\r\n data,\r\n file,\r\n api,\r\n}: {\r\n data: DocumentInfo;\r\n file: TUploaderFileInfo;\r\n api: UploaderApi;\r\n}) => {\r\n file;\r\n return (\r\n <Box {...getVariant('layout.common.components.uploader.infoModal')}>\r\n <InfoTable data={data} docId={file.docId} />\r\n <PermissionsInfo data={data} />\r\n {data.versions.length > 0 && (\r\n <VersionTable data={data.versions} api={api} file={file} />\r\n )}\r\n {data.metadata.length > 0 && <MetadataTable data={data.metadata} />}\r\n </Box>\r\n );\r\n};\r\n\r\nexport function parseDocumentInfo(\r\n data: TDocumentInformation | null | undefined,\r\n) {\r\n if (!data) throw new Error('There is no data in DocumentInfoModal');\r\n const { general } = data.function.data;\r\n return {\r\n docId: general.docId,\r\n allPoolPermission: general.docAllPoolPerm,\r\n description: general.docDesc,\r\n downloadLink: general.docDwnExternal,\r\n expirationDate: general.docExpDate ?? '',\r\n metadata: arrayOrArray(data.function.metadatas?.metadata),\r\n name: general.docName,\r\n permissions: data.function.data?.permissions,\r\n type: general.docTypeLabel,\r\n versions: arrayOrArray(data.function.data?.versions?.version),\r\n folderPath: data.function.data.general.docFolderPath,\r\n };\r\n}\r\n\r\nexport type DocumentInfo = {\r\n docId: string;\r\n allPoolPermission: string;\r\n description: string;\r\n downloadLink: string;\r\n expirationDate: string;\r\n metadata: any[];\r\n name: string;\r\n permissions: {\r\n pool?: TDocumentPermission | TDocumentPermission[];\r\n user?: TDocumentPermission | TDocumentPermission[];\r\n };\r\n type: string;\r\n versions: any[];\r\n folderPath: string;\r\n};\r\n","import { TUploaderFileInfo, UploaderApi } from '@apia/uploader-controller';\r\nimport { Box } from '@apia/theme';\r\nimport { getLabel } from '@apia/util';\r\n\r\nexport const VersionDocument = (api: UploaderApi, file: TUploaderFileInfo) => {\r\n return {\r\n children: <Box>{getLabel('lblUploadNewVersion').text}</Box>,\r\n key: '6',\r\n onClick: async () => {\r\n if (!api.modalConfig.oneClickUpload) {\r\n api.onVersionUpload(file);\r\n return;\r\n }\r\n\r\n const input = document.createElement('input');\r\n input.type = 'file';\r\n input.multiple = true;\r\n input.style.display = 'none';\r\n\r\n const cleanup = () => {\r\n input.removeEventListener('change', onChange);\r\n if (input.parentNode) input.parentNode.removeChild(input);\r\n };\r\n\r\n const onChange = (e: Event) => {\r\n try {\r\n const target = e.target as HTMLInputElement;\r\n if (target && target.files && target.files.length > 0) {\r\n const newFiles = Array.from(target.files);\r\n api.onVersionUpload(file, { newFiles });\r\n }\r\n } finally {\r\n cleanup();\r\n }\r\n };\r\n\r\n input.addEventListener('change', onChange);\r\n document.body.appendChild(input);\r\n\r\n if (api.modalConfig.oneClickUpload) {\r\n const checkLock = await api.checkLockDocument(file.docId, true);\r\n const isLocked = await api.checkWebDavLock(file.docId);\r\n\r\n if (checkLock === true && isLocked) {\r\n input.click();\r\n }\r\n } else {\r\n input.click();\r\n }\r\n },\r\n };\r\n};\r\n","import {\r\n getUploaderShownMenuOptions,\r\n TUploaderMenuItemsConditions,\r\n} from './getUploaderShownMenuOptions';\r\nimport { EditDocument } from './menu/items/EditDocument';\r\nimport { ApiaUtil } from '@apia/components';\r\nimport { DeleteDocument } from './menu/items/DeleteDocument';\r\nimport { DocInfoModal } from './menu/items/DocumentInfoModal';\r\nimport { DownloadDocument } from './menu/items/DownloadDocument';\r\nimport { LockDocument } from './menu/items/LockDocument';\r\nimport { TranslateDocument } from './menu/items/TranslateDocument';\r\nimport { VersionDocument } from './menu/items/VersionDocument';\r\nimport { TUploaderFileInfo, UploaderApi } from '@apia/uploader-controller';\r\n\r\nexport function openUploaderMenu(\r\n anchor: HTMLElement,\r\n uploaderApi: UploaderApi,\r\n props: TUploaderMenuItemsConditions,\r\n file: TUploaderFileInfo,\r\n langId?: string,\r\n) {\r\n const {\r\n showDeleteOption,\r\n showDownloadOption,\r\n showEditOption,\r\n showLockOption,\r\n showTranslateOption,\r\n showVersionOption,\r\n } = getUploaderShownMenuOptions(props, file);\r\n\r\n ApiaUtil.instance.menu.open({\r\n items: [\r\n DocInfoModal(uploaderApi, file),\r\n showEditOption && EditDocument(uploaderApi, file),\r\n showDownloadOption && DownloadDocument(uploaderApi, file),\r\n /**\r\n * Lock version and delete section\r\n */\r\n showLockOption || showVersionOption || showDeleteOption\r\n ? 'separator'\r\n : null,\r\n showLockOption && LockDocument(uploaderApi, file),\r\n showVersionOption && VersionDocument(uploaderApi, file),\r\n showDeleteOption &&\r\n DeleteDocument(uploaderApi, file, {\r\n langId: langId ? Number(langId) : undefined,\r\n }),\r\n /**\r\n * Sign and translation section\r\n */\r\n showTranslateOption ? 'separator' : null,\r\n showTranslateOption && TranslateDocument(uploaderApi, file),\r\n ].filter(Boolean) as any,\r\n menuProps: {\r\n anchorRef: {\r\n current: anchor.closest('button') as HTMLElement,\r\n },\r\n },\r\n });\r\n}\r\n","import { ApiaUtil, Dropzone, FileCard } from '@apia/components';\r\nimport { TUploaderFileInfo, UploaderApi } from '@apia/uploader-controller';\r\nimport { Box } from '@apia/theme';\r\nimport { getLabel } from '@apia/util';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { openUploaderMenu } from '../../openUploaderMenu';\r\n\r\nexport const TranslateDocument = (\r\n api: UploaderApi,\r\n file: TUploaderFileInfo,\r\n) => {\r\n const translationsCount = [\r\n ...(api.state.translatedFiles.get(file.docId)?.values() ?? []),\r\n ].length;\r\n\r\n return {\r\n children: (\r\n <Box>\r\n {getLabel('btnTrans').text} ({translationsCount})\r\n </Box>\r\n ),\r\n key: '9',\r\n onClick: () => {\r\n ApiaUtil.instance.modals.open({\r\n title: getLabel('titTra').text,\r\n children: <TranslateDocumentModal api={api} file={file} />,\r\n initialFocusGetter(ref) {\r\n return ref.querySelector('.dropzone') as HTMLElement;\r\n },\r\n });\r\n },\r\n };\r\n};\r\n\r\nexport const TranslateDocumentModal = observer(\r\n ({ api, file }: { api: UploaderApi; file: TUploaderFileInfo }) => {\r\n const langs = Object.entries(api.langs ?? {}).map(([key, value]) => ({\r\n id: key,\r\n title: String(value),\r\n }));\r\n const translateFileMap = api.state.translatedFiles.get(file.docId);\r\n return (\r\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>\r\n <Box sx={{ fontWeight: 'bold' }}>\r\n {\r\n getLabel('lblTranslatesForFile', {\r\n text: { TOK1: file.docName ?? '' },\r\n }).text\r\n }\r\n </Box>\r\n {langs.map((c) => {\r\n const translatedFile = translateFileMap?.get(Number(c.id));\r\n return (\r\n <Box>\r\n <span>{c.title}</span>\r\n {translateFileMap && translatedFile ? (\r\n <FileCard\r\n name={translatedFile.docName ?? ''}\r\n width=\"100%\"\r\n additionalButtons={[\r\n {\r\n icon: 'Download',\r\n size: 'Lg',\r\n iconSize: 20,\r\n onClick: (e) => {\r\n e.stopPropagation();\r\n api.checkWebDavLock(translatedFile.docId);\r\n api.downloadDocument(translatedFile.docId);\r\n },\r\n },\r\n {\r\n icon: 'Ellipsis',\r\n size: 'Lg',\r\n iconSize: 20,\r\n onClick: (e) => {\r\n e.stopPropagation();\r\n openUploaderMenu(\r\n e.target as HTMLElement,\r\n api,\r\n {\r\n showTranslate: false,\r\n showEdition: false,\r\n showLock: true,\r\n showDelete: true,\r\n showDownload: true,\r\n showVersion: false,\r\n },\r\n translatedFile,\r\n c.id,\r\n );\r\n },\r\n onDoubleClick: (e) => {\r\n e.stopPropagation();\r\n },\r\n },\r\n ]}\r\n />\r\n ) : (\r\n <Dropzone\r\n onClick={(ev) => {\r\n if (!api.modalConfig.oneClickUpload) {\r\n ev.preventDefault();\r\n api.onTranslateUpload({\r\n langId: Number(c.id),\r\n translatingFile: file,\r\n });\r\n }\r\n }}\r\n onChange={(e: File[]) => {\r\n api.onTranslateUpload(\r\n {\r\n langId: Number(c.id),\r\n translatingFile: file,\r\n },\r\n e,\r\n );\r\n }}\r\n />\r\n )}\r\n </Box>\r\n );\r\n })}\r\n </Box>\r\n );\r\n },\r\n);\r\n","import { Box, getVariant } from '@apia/theme';\r\nimport { getLabel, toBoolean } from '@apia/util';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { ApiaUtil, Dropzone, FileCard, SimpleButton } from '@apia/components';\r\nimport { useCallback } from 'react';\r\nimport { openUploaderMenu } from './openUploaderMenu';\r\nimport { makeDocTypeTooltip } from '../utils/makeDocTypeTooltip';\r\nimport { TUploaderFileInfo, UploaderApi } from '@apia/uploader-controller';\r\n\r\nexport const UploadedFiles = observer(\r\n ({\r\n uploaderApi,\r\n hideDropzone,\r\n openContextMenu,\r\n }: {\r\n uploaderApi: UploaderApi;\r\n hideDropzone?: boolean;\r\n openContextMenu?: typeof openUploaderMenu;\r\n }) => {\r\n const existingFiles = uploaderApi.filesArray;\r\n\r\n const handleFileClick = (\r\n e: React.MouseEvent<HTMLDivElement, MouseEvent>,\r\n file: TUploaderFileInfo,\r\n ) => {\r\n if (e.ctrlKey) {\r\n uploaderApi.state.selectedFiles =\r\n uploaderApi.state.selectedFiles.filter((id) => id !== file.docId);\r\n } else {\r\n if (!uploaderApi.state.selectedFiles.includes(file.docId)) {\r\n uploaderApi.state.selectedFiles.push(file.docId);\r\n }\r\n }\r\n };\r\n\r\n const handleInfoButton = useCallback(\r\n (ev: React.MouseEvent<Element, MouseEvent>) =>\r\n ApiaUtil.instance.tooltips.open({\r\n attachToElement: () => ev.target as HTMLElement,\r\n children: makeDocTypeTooltip(uploaderApi),\r\n }),\r\n [uploaderApi],\r\n );\r\n\r\n return (\r\n <Box\r\n sx={{\r\n p: 4,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: 4,\r\n }}\r\n >\r\n {!hideDropzone && (\r\n <Dropzone\r\n progress={uploaderApi.state.progress}\r\n className=\"dropzone__uploadedfiles\"\r\n onClick={(ev) => {\r\n if (!uploaderApi.modalConfig.oneClickUpload) {\r\n ev.preventDefault();\r\n uploaderApi.onStartUpload();\r\n }\r\n }}\r\n onChange={(e: File[]) => {\r\n uploaderApi.onStartUpload(e);\r\n }}\r\n handleInfoButton={(e) => handleInfoButton(e)}\r\n />\r\n )}\r\n <Box className=\"uploadedFiles__container\">\r\n {existingFiles.length > 0 && (\r\n <Box\r\n {...getVariant('layout.common.components.uploader.filesList')}\r\n className=\"uploadedFiles\"\r\n >\r\n {uploaderApi.filesArray.map((c) => {\r\n return (\r\n <FileCard\r\n {...(Number(c.docId) >= 0\r\n ? {\r\n onDropFiles: (files: File[]) => {\r\n uploaderApi.onVersionUpload(\r\n uploaderApi.state.files[c.docId],\r\n { newFiles: files },\r\n );\r\n },\r\n }\r\n : {})}\r\n className={`${uploaderApi.state.selectedFiles.find((current) => current === c.docId) ? 'selected' : ''}`}\r\n key={c.docId}\r\n name={c.docName ?? ''}\r\n width=\"100%\"\r\n onClick={(e) => handleFileClick(e, c)}\r\n onDoubleClick={() => {\r\n uploaderApi.downloadDocument(c.docId);\r\n }}\r\n additionalButtons={[\r\n {\r\n icon: 'Download',\r\n size: 'Lg',\r\n iconSize: 20,\r\n onClick: (e) => {\r\n e.stopPropagation();\r\n uploaderApi.downloadDocument(c.docId);\r\n },\r\n },\r\n {\r\n icon: 'Ellipsis',\r\n size: 'Lg',\r\n iconSize: 20,\r\n onClick: (e) => {\r\n e.stopPropagation();\r\n (openContextMenu\r\n ? openContextMenu\r\n : openUploaderMenu)(\r\n e.target as HTMLElement,\r\n uploaderApi,\r\n {\r\n showEdition: toBoolean(window.IS_EDITION_ALLOWED),\r\n showTranslate:\r\n uploaderApi.context.allowTranslation,\r\n },\r\n c,\r\n );\r\n },\r\n onDoubleClick: (e) => {\r\n e.stopPropagation();\r\n },\r\n },\r\n ]}\r\n />\r\n );\r\n })}\r\n </Box>\r\n )}\r\n <SimpleButton\r\n variant=\"outline-sm\"\r\n className=\"download_Button\"\r\n onClick={() => {\r\n uploaderApi.downloadMultipleDocuments();\r\n }}\r\n >\r\n {getLabel('btnDow').text}\r\n </SimpleButton>\r\n </Box>\r\n </Box>\r\n );\r\n },\r\n);\r\n"],"names":["OuterPermissions","FilesList","MetadataTable"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@apia/uploader-component",
3
+ "version": "4.0.46",
4
+ "sideEffects": false,
5
+ "author": "Alexis Leite <alexisleite@live.com>",
6
+ "main": "dist/index.js",
7
+ "module": "dist/index.js",
8
+ "type": "module",
9
+ "typings": "dist/index.d.ts",
10
+ "scripts": {
11
+ "libDev": "rollup --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts",
12
+ "libBuild": "rollup --config ../../config/rollup.common.mjs --environment MODE:production,ENTRY:index.ts",
13
+ "libWatch": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts,WATCH:true",
14
+ "libWatchForExecution": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts,WATCH:true,DEV_SERVER_MODULE:execution",
15
+ "libWatchForDashboards": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts,WATCH:true,DEV_SERVER_MODULE:dashboards"
16
+ },
17
+ "devDependencies": {
18
+ "@types/react": "^18.2.43",
19
+ "@types/react-dom": "^18.2.17",
20
+ "@typescript-eslint/eslint-plugin": "^6.14.0",
21
+ "axios": "^1.11.0",
22
+ "typescript": "5.4.2"
23
+ },
24
+ "peerDependencies": {
25
+ "react": "^18.2.0",
26
+ "react-dom": "^18.2.0"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public",
30
+ "registry": "https://registry.npmjs.org/"
31
+ },
32
+ "dependencies": {
33
+ "@apia/api": "^4.0.46",
34
+ "@apia/api2": "^4.0.46",
35
+ "@apia/components": "^4.0.46",
36
+ "@apia/icons": "^4.0.46",
37
+ "@apia/theme": "^4.0.46",
38
+ "@apia/tree2-component": "^4.0.46",
39
+ "@apia/uploader-controller": "^4.0.46",
40
+ "@apia/util": "^4.0.46"
41
+ },
42
+ "gitHead": "4e62bf323a961a7725868bf069566daf21b084f8"
43
+ }