UNPKG

@syncfusion/ej2-documenteditor

Version:

Feature-rich document editor control with built-in support for context menu, options pane and dialogs.

320 lines (319 loc) 9.59 kB
import { WParagraphFormat } from '../format/paragraph-format'; import { WSectionFormat } from '../format/section-format'; import { WCharacterFormat } from '../format/character-format'; import { WListFormat } from '../format/list-format'; import { WListLevel } from '../list/list-level'; import { EditorHistory } from '../index'; import { IWidget, FieldElementBox, TableWidget, TableRowWidget, BookmarkElementBox, EditRangeStartElementBox, CommentElementBox, FormField } from '../viewer/page'; import { DocumentEditor } from '../../document-editor'; import { Action } from '../../index'; import { TextPosition } from '../index'; import { ElementBox } from '../viewer/page'; import { WTableFormat, WRowFormat, WCellFormat } from '../format/index'; import { DocumentHelper } from '../viewer'; import { ProtectionType } from '../../base/types'; /** * @private */ export declare class BaseHistoryInfo { private ownerIn; documentHelper: DocumentHelper; private actionIn; private removedNodesIn; private modifiedPropertiesIn; private modifiedNodeLength; private selectionStartIn; private selectionEndIn; private insertPositionIn; private endPositionIn; private currentPropertyIndex; private ignoredWord; insertedText: string; insertedData: ImageData; type: string; headerFooterStart: number; headerFooterEnd: number; private tableRelatedLength; insertNodesIn: IWidget[]; cellOperation: Operation[]; fieldBegin: FieldElementBox; private startIndex; private insertIndex; private endIndex; ignoreStartOffset: boolean; insertedElement: ElementBox; splittedRevisions: MarkerData[]; isAcceptOrReject: string; insertedNodes: IWidget[]; pasteContent: string; private insertedTableFormat; private insertedRowFormat; private insertedCellFormat; private insertedParagraphFormat; private insertedCharacterFormat; private insertedSectionFormat; insertedFormat: Object; /** * @private */ lastElementRevision: ElementBox; /** * @private */ endRevisionLogicalIndex: string; /** * @private */ markerData: MarkerData[]; /** * @private */ formFieldType: string; /** * @private */ isEditHyperlink: boolean; /** * @private */ dropDownIndex: number; readonly owner: DocumentEditor; readonly editorHistory: EditorHistory; action: Action; readonly modifiedProperties: Object[]; readonly removedNodes: IWidget[]; selectionStart: string; selectionEnd: string; insertPosition: string; endPosition: string; constructor(node: DocumentEditor); private readonly viewer; updateSelection(): void; setBookmarkInfo(bookmark: BookmarkElementBox): void; setFormFieldInfo(field: FieldElementBox, value: string | number | boolean): void; setEditRangeInfo(editStart: EditRangeStartElementBox): void; private revertFormTextFormat; private revertFormField; private revertBookmark; private revertComment; private revertEditRangeRegion; revert(): void; private highlightListText; private removeContent; updateEndRevisionInfo(): void; private retrieveEndPosition; /** * Method to retrieve exact spitted node which is marked as last available element. * * @param {ElementBox} elementBox - Specifies the element box * @returns {ElementBox} - Returns element box */ private checkAdjacentNodeForMarkedRevision; private revertModifiedProperties; private redoAction; private revertModifiedNodes; private insertRemovedNodes; undoRevisionForElements(start: TextPosition, end: TextPosition, id: string): void; private revertResizing; private revertTableDialogProperties; addModifiedPropertiesForSection(format: WSectionFormat, property: string, value: Object): Object; addModifiedProperties(format: WCharacterFormat, property: string, value: Object): Object; addModifiedPropertiesForParagraphFormat(format: WParagraphFormat, property: string, value: Object): Object; addModifiedPropertiesForContinueNumbering(paragraphFormat: WParagraphFormat, value: Object): Object; addModifiedPropertiesForRestartNumbering(listFormat: WListFormat, value: Object): Object; addModifiedPropertiesForList(listLevel: WListLevel): Object; private revertProperties; addModifiedCellOptions(applyFormat: WCellFormat, format: WCellFormat, table: TableWidget): WCellFormat; private copyCellOptions; addModifiedTableOptions(format: WTableFormat): void; private copyTableOptions; private getProperty; private getCharacterPropertyValue; addModifiedTableProperties(format: WTableFormat, property: string, value: Object): Object; addModifiedRowProperties(rowFormat: WRowFormat, property: string, value: Object): Object; addModifiedCellProperties(cellFormat: WCellFormat, property: string, value: Object): Object; /** * @private * @returns {void} */ destroy(): void; /** * @private */ getDeleteOperationsForTrackChanges(): Operation[]; /** * @private */ getDeleteOperationForTrackChanges(element: ElementBox): Operation; /** * @private */ getActionInfo(isInvertOperation?: boolean): Operation[]; /** * @private */ private getElementAbsolutePosition; /** * @private */ getFieldOperation(): Operation[]; private getEditHyperlinkOperation; private getPasteContentLength; /** * @private * @returns {Operation} */ getUpdateOperation(): Operation; private getResizingOperation; /** * @private * @returns {Operation} */ getDeleteOperation(action: Action, setEndIndex?: boolean, text?: string): Operation; /** * @private * @returns {Operation} */ getInsertOperation(action: Action): Operation; private buildTableRowCellOperation; private assignRevisionData; private createAcceptRejectOperation; private beforeInsertTableRevision; private afterInsertTableRrevision; private buildRowOperation; /** * @private */ buildRowOperationForTrackChanges(row: TableRowWidget, action?: Action): void; private buildCellOperation; private deleteColumnOperation; private getPasteMergeOperation; private deleteCell; /** * @private * @returns {Operation} */ getFormatOperation(element?: ElementBox, action?: string): Operation; private getRemovedText; private getRemovedFieldCode; private getParagraphText; private getTableText; private getRowText; /** * @private * @returns {Operation} */ getCommentOperation(operation: Operation, comment?: CommentElementBox): Operation; /** * @private */ getDeleteCommentOperation(modifiedActions: BaseHistoryInfo[], operations: Operation[]): void; /** * @private * @returns {Operation} */ buildFormatOperation(action: Action, ischarFormat: boolean, isCellFormat: boolean): Operation[]; /** * @private * @returns {Operation} */ getSelectedCellOperation(action: Action, ischarFormat?: boolean, isBorder?: boolean, isShading?: boolean): Operation[]; private createListFormat; private createCharacterFormat; private createParagraphFormat; /** * @private * @returns {void} */ createTableFormat(action: Action): void; /** * @private * @returns {void} */ createRowFormat(action: Action): void; /** * @private * @returns {void} */ createCellFormat(action: Action): void; private getTableFormatString; private createSectionFormat; private getRowString; private getCellString; } /** * @private */ export interface Operation { action?: 'Insert' | 'Delete' | 'Format' | 'Update'; offset?: number; text?: string; length?: number; skipOperation?: boolean; imageData?: ImageData; type?: string; markerData?: MarkerData; protectionData?: ProtectionData; enableTrackChanges?: boolean; pasteContent?: string; characterFormat?: string; tableFormat?: string; rowFormat?: string; cellFormat?: string; paragraphFormat?: string; styleData?: string; sectionFormat?: string; listData?: string; } /** * @private */ export interface ImageData { imageString?: string; height?: number; width?: number; metaString?: string; } /** * @private */ export interface MarkerData { bookmarkName?: string; type?: string; user?: string; editRangeId?: number; skipOperation?: boolean; columnFirst?: string; columnLast?: string; isAfterParagraphMark?: boolean; isAfterTableMark?: boolean; isAfterRowMark?: boolean; isAfterCellMark?: boolean; formFieldData?: FormField; checkBoxValue?: boolean; commentId?: string; author?: string; date?: string; initial?: string; done?: boolean; commentIndex?: number; text?: string; ownerCommentId?: string; isReply?: boolean; revisionId?: string; revisionType?: string; isAcceptOrReject?: string; splittedRevisions?: MarkerData[]; removedIds?: string[]; dropDownIndex?: number; isSkipTracking?: boolean; revisionForFootnoteEndnoteContent?: MarkerData; } /** * @private */ export interface ProtectionData { saltValue?: string; hashValue?: string; protectionType?: ProtectionType; }