import React from 'react'; import { Point } from './ExcelFileComponents/index'; import './ExcelFile.scss'; import { ContextMenuState } from './ExcelFileComponents/types'; interface ExcelFileProps { /** * The Excel data containing all the sheets and their respective content. */ excelData: WorkSheet[]; /** * Make the Excel Sheet Freeze or Editable using the boolean key. */ editable?: boolean; /** * Optional configuration for the context menu (usually shown on right-click). * This allows customization of the context menu options with a label, value, icon, and action to be performed. * open: boolean; * Whether the context menu should be enabled (open or not). * If set to true, the context menu will be shown, otherwise, it will be disabled. * options: optionsType[]; * Array of options available in the context menu. Each option contains a label (display name), * value (identifier), iconName (icon to display), and action (function to be executed on click). */ contextOption?: ContextMenuState; /** * Controls whether the toolbar is shown or hidden. * Possible values: * - 'show' to display the toolbar * - 'hide' to hide the toolbar */ toolbar?: 'show' | 'disable' | 'hide'; /** * Controls whether the sheet navigation bar (tabs) is shown or hidden. * Possible values: * - 'show' to display the sheet bar * - 'hide' to hide the sheet bar * - 'readOnly' to view the sheet bar */ sheetBar?: 'show' | 'readOnly' | 'hide'; /** * Optional: The total number of rows in the Excel sheet. * This helps in determining the size and content of the sheet. */ rowCount?: number; /** * Optional: The total number of columns in the Excel sheet. * This helps in determining the structure of the sheet. */ colCount?: number; onSave?: (saveData: SaveData[], headerOldNewData?: { sheetName: string; headers: { newData: string; oldData: string; }[]; }[]) => void; onSaveInfoChange?: (info: string) => void; /** * Delay time (in milliseconds) before the onSave callback is executed. */ onSaveDelay?: number; /** * Optional: Sets the vertical (Y-axis) positioning of the context menu. * This allows precise control over where the context menu appears on the screen. */ contextHeightPositioning?: number; /** * Optional: Sets the horizontal (X-axis) positioning of the context menu. * This allows precise control over where the context menu appears on the screen. */ contextWidthPositioning?: number; /** * Optional: Dynamically sets the height of the sheet view area. * This can be useful if you want to change the height of the sheet display. */ sheetHeight?: string; /** * Optional: Enables or disables the context menu for columns. * When set to true, column-related context menu actions are enabled. */ columnContextEnable?: boolean; /** * Optional: Enables or disables the context menu for rows. * When set to true, row-related context menu actions are enabled. */ rowContextEnable?: boolean; sheetBarContextEnable?: boolean; minimumColumnWidth?: number; showHider?: boolean; scroller?: boolean; attachmentAction?: { addAttachment: (file: File) => Promise; deleteAttachment: (fileId: string) => Promise; viewAttachment: (fileId: string, fileName: string) => Promise; }; disableDeleteOption?: boolean; maxRowLimit?: number; maxColLimit?: number; maxSheetLimit?: number; getActiveCell?: (cell: { value: string; active: Point; }) => void; } declare const ExcelFile: React.FC; export default ExcelFile;