@syncfusion/ej2-richtexteditor
Version:
Essential JS 2 RichTextEditor component
84 lines (83 loc) • 3.21 kB
TypeScript
/**
* Handles table pasting operations within the editor
*
* This class provides functionality for pasting table content from one location to another,
* handling complex scenarios such as:
* - Merging and splitting cells
* - Preserving row and column spans
* - Managing cell content and styles
* - Preventing overflow when pasting into selected regions
* - Adjusting table structure to accommodate pasted content
*
* @hidden
* @private
*/
export declare class TablePasting {
private allCells;
private hasCellsUpdated;
private preventOverflowCells;
/**
* Handles pasting a table into the target table at the specified cell
*
* This method processes the inserted table and integrates it into the target location,
* handling cell merging, content preservation, and structural adjustments.
* When multiple cells are selected, it ensures proper distribution of content.
*
* @param {HTMLTableElement} insertedTable - The table being pasted
* @param {NodeListOf<Element>} targetCells - Collection of cells where the paste operation targets
* @returns {void}
* @hidden
* @private
*/
handleTablePaste(insertedTable: HTMLTableElement, targetCells: NodeListOf<Element>): void;
private getClosestTable;
private getTableRows;
private getRowIndex;
private getCellIndex;
private pasteMultipleRows;
private ensureCellCount;
private getOrCreateRow;
private fillRowWithEmptyCells;
private getMaxColumnCount;
private pasteRowContent;
private adjustCellSpans;
private calculateAdjustedRowSpan;
private calculateAdjustedColSpan;
private ensureTargetTableCapacity;
private shouldSkipCell;
private getRowCells;
private copyCellAttributes;
private getCellSpanAttributes;
private handleCellInsertLocation;
private handleInsertRowMismatch;
private adjustCellHeights;
private handleRowspanChanges;
private handleColspanChanges;
private applyRowspanAttributes;
private processRowspanCell;
private handleComplexCellRemoval;
private handleColspanCellRemoval;
private handleRowspanCellRemoval;
private removeRowspanAttributes;
private getInsertionColIndex;
private findMatchingCellIndex;
private removeFollowingSiblings;
private insertFollowingSiblings;
/**
* Retrieves a valid table element from the pasted content if it exists and is valid
*
* This method examines the pasted content to find a table element. It handles three scenarios:
* 1. The inserted node is already a table
* 2. The inserted node contains a table that needs to be extracted
* 3. The inserted node contains a table with wrapper elements that should be preserved
*
* If the content is not a valid table or a valid wrapper around a table, returns null.
*
* @param {HTMLElement} insertedNode - The node that was pasted into the editor
* @returns {HTMLElement | null} - The valid table element or wrapper, or null if no valid table found
* @hidden
* @private
*/
getValidTableFromPaste(insertedNode: HTMLElement): HTMLElement | null;
private getWrapperNodeForTable;
}