| 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); |
| }; |
|
|