UNPKG

@syncfusion/ej2-richtexteditor

Version:
84 lines (83 loc) 3.21 kB
/** * 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; }