| import { Images, SupportedPreviewDocumentTypes } from '@/constants/common'; | |
| import { IReferenceChunk } from '@/interfaces/database/chat'; | |
| import { IChunk } from '@/interfaces/database/knowledge'; | |
| import { UploadFile } from 'antd'; | |
| import { get } from 'lodash'; | |
| import { v4 as uuid } from 'uuid'; | |
| export const buildChunkHighlights = ( | |
| selectedChunk: IChunk | IReferenceChunk, | |
| size: { width: number; height: number }, | |
| ) => { | |
| return Array.isArray(selectedChunk?.positions) && | |
| selectedChunk.positions.every((x) => Array.isArray(x)) | |
| ? selectedChunk?.positions?.map((x) => { | |
| const boundingRect = { | |
| width: size.width, | |
| height: size.height, | |
| x1: x[1], | |
| x2: x[2], | |
| y1: x[3], | |
| y2: x[4], | |
| }; | |
| return { | |
| id: uuid(), | |
| comment: { | |
| text: '', | |
| emoji: '', | |
| }, | |
| content: { | |
| text: | |
| get(selectedChunk, 'content_with_weight') || | |
| get(selectedChunk, 'content', ''), | |
| }, | |
| position: { | |
| boundingRect: boundingRect, | |
| rects: [boundingRect], | |
| pageNumber: x[0], | |
| }, | |
| }; | |
| }) | |
| : []; | |
| }; | |
| export const isFileUploadDone = (file: UploadFile) => file.status === 'done'; | |
| export const getExtension = (name: string) => | |
| name?.slice(name.lastIndexOf('.') + 1).toLowerCase() ?? ''; | |
| export const isPdf = (name: string) => { | |
| return getExtension(name) === 'pdf'; | |
| }; | |
| export const getUnSupportedFilesCount = (message: string) => { | |
| return message.split('\n').length; | |
| }; | |
| export const isSupportedPreviewDocumentType = (fileExtension: string) => { | |
| return SupportedPreviewDocumentTypes.includes(fileExtension); | |
| }; | |
| export const isImage = (image: string) => { | |
| return [...Images, 'svg'].some((x) => x === image); | |
| }; | |