@syncfusion/ej2-documenteditor
Version:
Feature-rich document editor control with built-in support for context menu, options pane and dialogs.
1,140 lines • 210 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
import { Component, Property, NotifyPropertyChanges, Event, ChildProperty, classList, Complex, formatUnit, updateCSSText } from '@syncfusion/ej2-base';
import { isNullOrUndefined, L10n, Browser } from '@syncfusion/ej2-base';
import { Save } from '@syncfusion/ej2-file-utils';
import { XmlHttpRequestHandler, beforeXmlHttpRequestSend } from './index';
import { LayoutViewer, PageLayoutViewer, WebLayoutViewer, BulletsAndNumberingDialog } from './index';
import { Print } from './index';
import { BodyWidget, ParagraphWidget } from './index';
import { WSectionFormat, WParagraphFormat, WCharacterFormat } from './index';
import { SfdtReader } from './index';
import { Selection } from './index';
import { Editor, EditorHistory } from './index';
import { WStyles } from './index';
import { Search } from './index';
import { OptionsPane } from './index';
import { XmlPane } from './index';
import { WordExport } from './index';
import { TextExport } from './index';
import { ContextMenu } from './index';
import { ImageResizer } from './index';
import { SfdtExport } from './index';
import { HyperlinkDialog, TableDialog, BookmarkDialog, StylesDialog, TableOfContentsDialog } from './index';
import { PageSetupDialog, ParagraphDialog, ListDialog, StyleDialog, FontDialog } from './index';
import { TablePropertiesDialog, BordersAndShadingDialog, CellOptionsDialog, TableOptionsDialog } from './index';
import { SpellChecker } from './implementation/spell-check/spell-checker';
import { SpellCheckDialog } from './implementation/dialogs/spellCheck-dialog';
import { DocumentHelper, listsProperty, abstractListsProperty } from './index';
import { CheckBoxFormFieldDialog, DropDownFormField, TextFormField, CheckBoxFormField, WCharacterStyle } from './implementation/index';
import { TextFormFieldDialog } from './implementation/dialogs/form-field-text-dialog';
import { DropDownFormFieldDialog } from './implementation/dialogs/form-field-drop-down-dialog';
import { RevisionCollection } from './implementation/track-changes/track-changes';
import { NotesDialog } from './implementation/dialogs/notes-dialog';
import { ContentControl, FootNoteWidget, ImageElementBox, TextElementBox } from './implementation/viewer/page';
import { internalZoomFactorChange, contentChangeEvent, documentChangeEvent, selectionChangeEvent, zoomFactorChangeEvent, beforeFieldFillEvent, afterFieldFillEvent, serviceFailureEvent, viewChangeEvent, customContextMenuSelectEvent, customContextMenuBeforeOpenEvent, internalviewChangeEvent, internalDocumentEditorSettingsChange, trackChanges, internalOptionPaneChange, documentLoadFailedEvent, beforecontentControlFillEvent, aftercontentControlFillEvent } from './base/constants';
import { Optimized, Regular, HelperMethods } from './index';
import { ColumnsDialog } from './implementation/dialogs/columns-dialog';
import { ZipArchiveItem, ZipArchive } from '@syncfusion/ej2-compression';
import { TabDialog } from './implementation/dialogs/tab-dialog';
import { RulerHelper } from './implementation/utility/dom-util';
import { DatePickerDialog } from './implementation/dialogs/datepicker-dialog';
import { ContentControlPropertiesDialog } from './implementation/dialogs/content-control-properties-dialog';
import { PicContentControlDialog } from './implementation/dialogs/pic-contentControl-dialog';
import { DialogUtility, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';
import { Comment } from './base/events-helper';
/**
* The `DocumentEditorSettings` module is used to provide the customize property of Document Editor.
*/
var DocumentEditorSettings = /** @class */ (function (_super) {
__extends(DocumentEditorSettings, _super);
function DocumentEditorSettings() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate([
Property(null)
], DocumentEditorSettings.prototype, "popupTarget", void 0);
__decorate([
Property('#FFE97F')
], DocumentEditorSettings.prototype, "searchHighlightColor", void 0);
__decorate([
Property(['Algerian', 'Arial', 'Calibri', 'Cambria', 'Cambria Math', 'Candara', 'Courier New', 'Georgia', 'Impact', 'Segoe Print', 'Segoe Script', 'Segoe UI', 'Symbol', 'Times New Roman', 'Verdana', 'Wingdings'])
], DocumentEditorSettings.prototype, "fontFamilies", void 0);
__decorate([
Property({ shadingColor: '#cfcfcf', applyShading: true, selectionColor: '#cccccc', formFillingMode: 'Popup' })
], DocumentEditorSettings.prototype, "formFieldSettings", void 0);
__decorate([
Property({ customData: '', showCustomDataWithAuthor: false })
], DocumentEditorSettings.prototype, "revisionSettings", void 0);
__decorate([
Property({ interval: 2000, itertationCount: 5 })
], DocumentEditorSettings.prototype, "autoResizeSettings", void 0);
__decorate([
Property({ enable: false, initialPageLoadCount: 5, incrementalPageLoadCount: 3 })
], DocumentEditorSettings.prototype, "openAsyncSettings", void 0);
__decorate([
Property({ roomName: '', editableRegionColor: '#22b24b', lockedRegionColor: '#f44336' })
], DocumentEditorSettings.prototype, "collaborativeEditingSettings", void 0);
__decorate([
Property(1)
], DocumentEditorSettings.prototype, "printDevicePixelRatio", void 0);
__decorate([
Property(true)
], DocumentEditorSettings.prototype, "enableOptimizedTextMeasuring", void 0);
__decorate([
Property(true)
], DocumentEditorSettings.prototype, "allowDragAndDrop", void 0);
__decorate([
Property(32767)
], DocumentEditorSettings.prototype, "maximumRows", void 0);
__decorate([
Property(63)
], DocumentEditorSettings.prototype, "maximumColumns", void 0);
__decorate([
Property(false)
], DocumentEditorSettings.prototype, "showHiddenMarks", void 0);
__decorate([
Property(false)
], DocumentEditorSettings.prototype, "showBookmarks", void 0);
__decorate([
Property(true)
], DocumentEditorSettings.prototype, "highlightEditableRanges", void 0);
__decorate([
Property(true)
], DocumentEditorSettings.prototype, "optimizeSfdt", void 0);
__decorate([
Property(false)
], DocumentEditorSettings.prototype, "allowHyphensInBookmarkNames", void 0);
__decorate([
Property(false)
], DocumentEditorSettings.prototype, "showRuler", void 0);
__decorate([
Property({ mode: 'Picker', modeSwitcher: true, showButtons: true })
], DocumentEditorSettings.prototype, "colorPickerSettings", void 0);
__decorate([
Property(false)
], DocumentEditorSettings.prototype, "showNavigationPane", void 0);
__decorate([
Property({ mentionChar: '@' })
], DocumentEditorSettings.prototype, "mentionSettings", void 0);
__decorate([
Property(false)
], DocumentEditorSettings.prototype, "pasteAsNewParagraph", void 0);
__decorate([
Property(false)
], DocumentEditorSettings.prototype, "enableScreenReader", void 0);
__decorate([
Property(false)
], DocumentEditorSettings.prototype, "enableSpellCheckOnScroll", void 0);
__decorate([
Property('Tick')
], DocumentEditorSettings.prototype, "defaultCheckBoxOption", void 0);
return DocumentEditorSettings;
}(ChildProperty));
export { DocumentEditorSettings };
/**
* Represents the settings and properties of the document that is opened in Document editor component.
*/
var DocumentSettings = /** @class */ (function (_super) {
__extends(DocumentSettings, _super);
function DocumentSettings() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate([
Property('Word2013')
], DocumentSettings.prototype, "compatibilityMode", void 0);
return DocumentSettings;
}(ChildProperty));
export { DocumentSettings };
/**
* Represents the revision settings.
*/
var RevisionSettings = /** @class */ (function (_super) {
__extends(RevisionSettings, _super);
function RevisionSettings() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate([
Property('')
], RevisionSettings.prototype, "customData", void 0);
__decorate([
Property(false)
], RevisionSettings.prototype, "showCustomDataWithAuthor", void 0);
return RevisionSettings;
}(ChildProperty));
export { RevisionSettings };
/**
* Gets or sets the asynchronous page loading settings for the document.
*/
var OpenAsyncSettings = /** @class */ (function (_super) {
__extends(OpenAsyncSettings, _super);
function OpenAsyncSettings() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate([
Property(false)
], OpenAsyncSettings.prototype, "enable", void 0);
__decorate([
Property(5)
], OpenAsyncSettings.prototype, "initialPageLoadCount", void 0);
__decorate([
Property(3)
], OpenAsyncSettings.prototype, "incrementalPageLoadCount", void 0);
return OpenAsyncSettings;
}(ChildProperty));
export { OpenAsyncSettings };
/**
* Represents the settings required for resizing the Document editor automatically when the visibility of parent element changed.
*/
var AutoResizeSettings = /** @class */ (function (_super) {
__extends(AutoResizeSettings, _super);
function AutoResizeSettings() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate([
Property(2000)
], AutoResizeSettings.prototype, "interval", void 0);
__decorate([
Property(5)
], AutoResizeSettings.prototype, "iterationCount", void 0);
return AutoResizeSettings;
}(ChildProperty));
export { AutoResizeSettings };
/**
* The Document editor component is used to draft, save or print rich text contents as page by page.
*/
var DocumentEditor = /** @class */ (function (_super) {
__extends(DocumentEditor, _super);
/**
* Initializes a new instance of the DocumentEditor class.
*
* @param {DocumentEditorModel} options Specifies the document editor model.
* @param {string | HTMLElement} element Specifies the element.
*/
function DocumentEditor(options, element) {
var _this = _super.call(this, options, element) || this;
_this.enableHeaderFooterIn = false;
/**
* @private
*/
_this.isShiftingEnabled = false;
/**
* @private
*/
_this.isContainerResize = false;
/**
* @private
*/
_this.enableXMLPane = false;
/**
* @private
*/
_this.isLayoutEnabled = true;
/**
* @private
*/
_this.isPastingContent = false;
/**
* @private
*/
_this.isOnIndent = false;
/**
* @private
*/
_this.isTableMarkerDragging = false;
/**
* @private
*/
_this.startXPosition = 0;
/**
* @private
*/
_this.parser = undefined;
/**
* @private
*/
_this.isUpdateTrackChanges = false;
_this.disableHistoryIn = false;
_this.documentSettingOps = [];
/**
* @private
*/
_this.skipSettingsOps = false;
_this.isSettingOp = false;
/**
* @private
*/
_this.findResultsList = undefined;
/**
* @private
*/
_this.tablePropertiesDialogModule = undefined;
/**
* @private
*/
_this.bordersAndShadingDialogModule = undefined;
/**
* @private
*/
_this.cellOptionsDialogModule = undefined;
/**
* @private
*/
_this.tableOptionsDialogModule = undefined;
/**
* @private
*/
_this.paragraphDialogModule = undefined;
/**
* @private
*/
_this.imageResizerModule = undefined;
_this.createdTriggered = false;
/**
* @private
*/
_this.serverActionSettingsImport = 'Import';
/**
* @private
*/
_this.isUpdateFocus = false;
/**
* Gets or sets a value indicating whether xml toolbar is enabled or not.
* @private
*
* @default false
*/
_this.isXmlPaneTool = false;
/**
* Gets or sets a value indicating whether xml cc is enabled or not.
* @private
*
* @default false
*/
_this.isXmlMapCC = false;
/**
* @private
*/
_this.defaultLocale = {
'Table': 'Table',
'Row': 'Row',
'Cell': 'Cell',
'Ok': 'OK',
'Apply': 'Apply',
'Alt Text': 'Alt Text',
'Title': 'Title',
'Description': 'Description',
'Cancel': 'Cancel',
'Size': 'Size',
'Preferred Width': 'Preferred width',
'Points': 'Points',
'Percent': 'Percent',
'Measure in': 'Measure in',
'Alignment': 'Alignment',
'OutlineLevel': 'Outline Level',
'BodyText': 'Body Text',
'Level1': 'Level 1',
'Level2': 'Level 2',
'Level3': 'Level 3',
'Level4': 'Level 4',
'Level5': 'Level 5',
'Level6': 'Level 6',
'Level7': 'Level 7',
'Level8': 'Level 8',
'Level9': 'Level 9',
'Left': 'Left',
'Center': 'Center',
'Right': 'Right',
'Decimal': 'Decimal',
'Bar': 'Bar',
'Justify': 'Justify',
'Indent from left': 'Indent from left',
'Borders and Shading': 'Borders and Shading',
'Options': 'Options',
'Specify height': 'Specify height',
'At least': 'At least',
'Exactly': 'Exactly',
'Row height is': 'Row height is',
'Allow row to break across pages': 'Allow row to break across pages',
'Repeat as header row at the top of each page': 'Repeat as header row at the top of each page',
'Vertical alignment': 'Vertical alignment',
'Top': 'Top',
'Bottom': 'Bottom',
'Default cell margins': 'Default cell margins',
'Default cell spacing': 'Default cell spacing',
'Allow spacing between cells': 'Allow spacing between cells',
'Cell margins': 'Cell margins',
'Same as the whole table': 'Same as the whole table',
'Borders': 'Borders',
'None': 'None',
'Style': 'Style',
'Width': 'Width',
'Height': 'Height',
'Letter': 'Letter',
'1, 2, 3, ...': '1, 2, 3, ...',
'a, b, c, ...': 'a, b, c, ...',
'A, B, C, ...': 'A, B, C, ...',
'I, II, III, ...': 'I, II, III, ...',
'i, ii, iii, ...': 'i, ii, iii, ...',
'Tabloid': 'Tabloid',
'Legal': 'Legal',
'Statement': 'Statement',
'Executive': 'Executive',
'A3': 'A3',
'A4': 'A4',
'A5': 'A5',
'B4': 'B4',
'B5': 'B5',
'Custom Size': 'Custom size',
'Different odd and even': 'Different odd and even',
'Different first page': 'Different first page',
'From edge': 'From edge',
'Header': 'Header',
'Footer': 'Footer',
'First Page Header': 'First Page Header',
'First Page Footer': 'First Page Footer',
'Even Page Header': 'Even Page Header',
'Even Page Footer': 'Even Page Footer',
'Odd Page Header': 'Odd Page Header',
'Odd Page Footer': 'Odd Page Footer',
'Same as Previous': 'Same as Previous',
'Section': 'Section',
'Margin': 'Margins',
'Paper': 'Paper',
'Layout': 'Layout',
'Orientation': 'Orientation',
'Landscape': 'Landscape',
'Portrait': 'Portrait',
'Show page numbers': 'Show page numbers',
'Right align page numbers': 'Right align page numbers',
'Nothing': 'Nothing',
'Tab leader': 'Tab leader',
'Leader': 'Leader',
'Show levels': 'Show levels',
'Use hyperlinks instead of page numbers': 'Use hyperlinks instead of page numbers',
'Build table of contents from': 'Build table of contents from',
'Styles': 'Styles',
'Available styles': 'Available styles',
'TOC level': 'TOC level',
'Heading': 'Heading',
'Heading 1': 'Heading 1',
'Heading 2': 'Heading 2',
'Heading 3': 'Heading 3',
'Heading 4': 'Heading 4',
'Heading 5': 'Heading 5',
'Heading 6': 'Heading 6',
'Heading 7': 'Heading 7',
'Heading 8': 'Heading 8',
'Heading 9': 'Heading 9',
'List Paragraph': 'List Paragraph',
'Normal': 'Normal',
'Outline levels': 'Outline levels',
'Table entry fields': 'Table entry fields',
'Modify': 'Modify',
'Color': 'Color',
'Setting': 'Setting',
'Box': 'Box',
'All': 'All',
'Custom': 'Custom',
'Preview': 'Preview',
'Shading': 'Shading',
'Fill': 'Fill',
'Apply To': 'Apply to',
'Border Style information': 'The selected border style is not supported to display in this editor, so it will be displayed like solid borders. However, the selected border style will be maintained in the document and will render accurately when the document is opened in other Word Viewer/Editors.',
'Table Properties': 'Table Properties',
'Cell Options': 'Cell Options',
'Table Options': 'Table Options',
'Insert Table': 'Insert Table',
'Number of columns': 'Number of columns',
'Number of rows': 'Number of rows',
'Text to display': 'Text to display',
'ScreenTip text': 'ScreenTip text',
'Address': 'Address',
'Insert Hyperlink': 'Insert Hyperlink',
'Edit Hyperlink': 'Edit Hyperlink',
'Insert': 'Insert',
'General': 'General',
'The number must be between': 'The number must be between 1 and 9',
'The Invalid number': 'This is not a valid number',
'Indentation': 'Indentation',
'Before text': 'Before text',
'Special': 'Special',
'First line': 'First line',
'Hanging': 'Hanging',
'After text': 'After text',
'By': 'By',
'Before': 'Before',
'Line Spacing': 'Line spacing',
'After': 'After',
'At': 'At',
'Multiple': 'Multiple',
'Spacing': 'Spacing',
'Define new Multilevel list': 'Define new Multilevel list',
'List level': 'List level',
'Choose level to modify': 'Choose level to modify',
'Level': 'Level',
'Number format': 'Number format',
'Number style for this level': 'Number style for this level',
'Enter formatting for number': 'Enter formatting for number',
'Start at': 'Start at',
'Restart list after': 'Restart list after',
'Position': 'Position',
'Text indent at': 'Text indent at',
'Aligned at': 'Aligned at',
'Follow number with': 'Follow number with',
'Tab character': 'Tab character',
'Space': 'Space',
'Arabic': 'Arabic',
'UpRoman': 'UpRoman',
'LowRoman': 'LowRoman',
'UpLetter': 'UpLetter',
'LowLetter': 'LowLetter',
'Number': 'Number',
'Leading zero': 'Leading zero',
'Bullet': 'Bullet',
'Ordinal': 'Ordinal',
'Ordinal Text': 'Ordinal Text',
'For East': 'For East',
'No Restart': 'No Restart',
'Font': 'Font',
'Font style': 'Font style',
'Underline style': 'Underline style',
'Font color': 'Font color',
'Effects': 'Effects',
'Strikethrough': 'Strikethrough',
'Superscript': 'Superscript',
'Subscript': 'Subscript',
'Double strikethrough': 'Double strikethrough',
'Regular': 'Regular',
'Bold': 'Bold',
'Italic': 'Italic',
'Cut': 'Cut',
'Copy': 'Copy',
'Paste': 'Paste',
'Hyperlink': 'Hyperlink',
'Remove Content Control': 'Remove Content Control',
'Content Control Properties': 'Content Control Properties',
'Remove content control when contents are edited': 'Remove content control when contents are edited',
'Content control cannot be deleted': 'Content control cannot be deleted',
'Contents cannot be edited': 'Contents cannot be edited',
'Plain Text properties': 'Plain Text properties',
'Allow carriage returns': 'Allow carriage returns',
'Drop_Down List properties': 'Drop_Down List properties',
'Display Text': 'Display Text',
'Locking': 'Locking',
'Tag': 'Tag',
'Value': 'Value',
'PictureContentControl': 'PictureContentControl',
'Upload from computer': 'Upload from computer',
'Picture': 'Picture',
'Choose an item': 'Choose an item',
'Insert Pictures': 'Insert Pictures',
'Open Hyperlink': 'Open Hyperlink',
'Copy Hyperlink': 'Copy Hyperlink',
'Remove Hyperlink': 'Remove Hyperlink',
'Paragraph': 'Paragraph',
'Linked Style': 'Linked(Paragraph and Character)',
'Character': 'Character',
'Merge Cells': 'Merge Cells',
'Insert Above': 'Insert Above',
'Insert Below': 'Insert Below',
'Insert Left': 'Insert Left',
'Insert Right': 'Insert Right',
'Delete': 'Delete',
'Delete Table': 'Delete Table',
'Delete Row': 'Delete Row',
'Delete Column': 'Delete Column',
'File Name': 'File Name',
'Format Type': 'Format Type',
'Save': 'Save',
'Navigation': 'Navigation',
'Results': 'Results',
'Replace': 'Replace',
'Replace All': 'Replace All',
'We replaced all': 'We replaced all',
'Find': 'Find',
'No matches': 'No matches',
'All Done': 'All Done',
'Result': 'Result',
'of': 'of',
'instances': 'instances',
'with': 'with',
'Click to follow link': 'Click to follow link',
'Continue Numbering': 'Continue Numbering',
'Bookmark name': 'Bookmark name',
'Tab': 'Tab',
'Tab stop position': 'Tab stop position',
'Close': 'Close',
'Restart At': 'Restart At',
'Properties': 'Properties',
'Name': 'Name',
'Style type': 'Style type',
'Style based on': 'Style based on',
'Style for following paragraph': 'Style for following paragraph',
'Formatting': 'Formatting',
'Numbering and Bullets': 'Numbering and Bullets',
'Numbering': 'Numbering',
'Update Field': 'Update Field',
'Edit Field': 'Edit Field',
'Bookmark': 'Bookmark',
'Page Setup': 'Page Setup',
'No bookmarks found': 'No bookmarks found',
'Number format tooltip information': 'Single-level number format: </br>[PREFIX]%[LEVELNUMBER][SUFFIX]</br>'
+ 'For example, "Chapter %1." will display numbering like</br>Chapter 1. Item</br>Chapter 2. Item</br>…'
+ '</br>Chapter N. Item</br>'
+ '</br>Multilevel number format:</br>[PREFIX]%[LEVELNUMBER][SUFFIX]+[PREFIX]%[LEVELNUMBER][SUFFIX]'
+ '</br>For example, "%1.%2." will display numbering like</br>1.1. Item</br>1.2. Item</br>…</br>1.N. Item',
'Format': 'Format',
'Create New Style': 'Create New Style',
'Modify Style': 'Modify Style',
'New': 'New',
'InsertFootnote': 'InsertFootnote',
'InsertEndnote': 'InsertEndnote',
'Footnote': 'Footnote',
'Endnote': 'Endnote',
'Notes Options': 'Notes Options',
'Bullets': 'Bullets',
'Use bookmarks': 'Use bookmarks',
'Table of Contents': 'Table of Contents',
'AutoFit': 'AutoFit',
'AutoFit to Contents': 'AutoFit to Contents',
'AutoFit to Window': 'AutoFit to Window',
'Fixed Column Width': 'Fixed Column Width',
'Reset': 'Reset',
'Match case': 'Match case',
'Whole words': 'Whole words',
'Add': 'Add',
'Go To': 'Go To',
'Search for': 'Search for',
'Replace with': 'Replace with',
'TOC 1': 'TOC 1',
'TOC 2': 'TOC 2',
'TOC 3': 'TOC 3',
'TOC 4': 'TOC 4',
'TOC 5': 'TOC 5',
'TOC 6': 'TOC 6',
'TOC 7': 'TOC 7',
'TOC 8': 'TOC 8',
'TOC 9': 'TOC 9',
'Right-to-left': 'Right-to-left',
'Left-to-right': 'Left-to-right',
'Direction': 'Direction',
'Table direction': 'Table direction',
'Indent from right': 'Indent from right',
/* eslint-disable */
"Contextual Spacing": "Don't add space between paragraphs of the same style",
"Password Mismatch": "The password don't match",
'Restrict Editing': 'Restrict Editing',
'Formatting restrictions': 'Formatting restrictions',
'Allow formatting': 'Allow formatting',
'Editing restrictions': 'Editing restrictions',
'Read only': 'Read only',
'Exceptions Optional': 'Exceptions (optional)',
'Select Part Of Document And User': 'Select parts of the document and choose users who are allowed to freely edit them.',
'Everyone': 'Everyone',
'More users': 'More users',
'Add Users': 'Add Users',
'Enforcing Protection': 'Yes, Start Enforcing Protection',
'Start Enforcing Protection': 'Start Enforcing Protection',
'Enter User': 'Enter User',
'Users': 'Users',
'Enter new password': 'Enter new password',
'Reenter new password to confirm': 'Reenter new password to confirm',
'Your permissions': 'Your permissions',
'Protected Document': 'This document is protected from unintentional editing.',
'FormFieldsOnly': 'You may only fill in forms in this region.',
'CommentsOnly': 'You may only insert comments into this region.',
'ReadOnlyProtection': 'You may edit in this region.',
'Stop Protection': 'Stop Protection',
'Password': 'Password',
'Spelling Editor': 'Spelling Editor',
'Spelling': 'Spelling',
'Spell Check': 'Spell Check',
'Underline errors': 'Underline errors',
'Ignore': 'Ignore',
'Ignore All': 'Ignore All',
'Add to Dictionary': 'Add to Dictionary',
'Change': 'Change',
'Change All': 'Change All',
'Suggestions': 'Suggestions',
'The password is incorrect': 'The password is incorrect',
'Error in establishing connection with web server': 'Error in establishing connection with web server',
'Failed to load the file': 'Failed to load the file',
'Highlight the regions I can edit': 'Highlight the regions I can edit',
'Show All Regions I Can Edit': 'Show All Regions I Can Edit',
'Find Next Region I Can Edit': 'Find Next Region I Can Edit',
'Keep source formatting': 'Keep source formatting',
'Match destination formatting': 'Match destination formatting',
'InsertAsRows': 'Insert as New Rows',
'InsertAsColumns': 'Insert as New Columns',
'OverwriteCells': 'Overwrite Cells',
'NestTable': 'Nest Table',
'Text only': 'Text only',
'Comments': 'Comments',
'Type your comment': 'Type your comment',
'Post': 'Post',
'Reply': 'Reply',
'New Comment': 'New Comment',
'Edit': 'Edit',
'Resolve': 'Resolve',
'Reopen': 'Reopen',
'No comments in this document': 'No comments in this document',
'more': 'more',
'Type your comment here': 'Type your comment here',
'Next Comment': 'Next Comment',
'Previous Comment': 'Previous Comment',
'Unsaved comments': 'Unsaved comments',
'XML Mapping': 'XML Mapping',
'Custom XML Part': 'Custom XML Part:',
'Choose an XML file': 'Choose an XML file',
'Add new part': 'Add new part',
'Discard Comment body': 'You have comments that haven\'t been posted yet. If you leave this page, they\'ll be discarded',
'Discard Content Control': 'You can not insert a content control when the selection includes another content control.',
'No Headings': 'No Heading Found!',
'Add Headings': 'This document has no headings. Please add headings and try again.',
'More Options': 'More Options',
'Click to see this comment': 'Click to see this comment',
'Form Fields': 'Form Fields',
'Text Form': 'Text Form',
'Check Box': 'Check Box',
'Drop Down Form Field': 'Drop Down Form Field',
'Drop-down items': 'Drop-down items',
'Items in drop-down list': 'Items in drop-down list',
'ADD': 'ADD',
'REMOVE': 'REMOVE',
'Field settings': 'Field settings',
'Tooltip': 'Tooltip',
'Drop-down enabled': 'Drop-down enabled',
'Check Box Form Field': 'Check Box Form Field',
'Check box size': 'Check box size',
'Auto': 'Auto',
'Default value': 'Default value',
'Not checked': 'Not checked',
'Checked': 'Checked',
'Check box enabled': 'Check box enabled',
'Text Form Field': 'Text Form Field',
'Type': 'Type',
'Default text': 'Default text',
'Maximum length': 'Maximum length',
'Text format': 'Text format',
'Fillin enabled': 'Fill-in enabled',
'Default number': 'Default number',
'Default date': 'Default date',
'Date format': 'Date format',
'Merge Track': 'This action wont be marked as change. Do you want to continue?',
'UnTrack': 'Cannot be tracked !',
'Accept': 'Accept',
'Reject': 'Reject',
'Previous Changes': 'Previous Changes',
'Next Changes': 'Next Changes',
'Inserted': 'Inserted',
'Deleted': 'Deleted',
'Move From': 'Move From',
'Move To': 'Move To',
'Changes': 'Changes',
'Accept all': 'Accept all',
'Reject all': 'Reject all',
'No changes': 'No changes',
'Accept Changes': 'Accept Changes',
'Reject Changes': 'Reject Changes',
'User': 'User',
'View': 'View',
'Insertion': 'Insertion',
'Deletion': 'Deletion',
'All caps': 'All caps',
'This region is locked by': 'This region is locked by',
'Lock': 'Lock',
'Unlock': 'Unlock',
'Already locked': 'Selected or part of region is already locked by another user',
'Click to View/Edit Footnote': 'Click to View/Edit Footnote',
'Click to View/Edit Endnote': 'Click to View/Edit Endnote',
'Multiple Comment': 'Please post your comment',
'No suggestions': 'No suggestions',
'More Suggestion': 'More Suggestion',
'Ignore Once': 'Ignore Once',
'Keep With Next': 'Keep with next',
'Keep Lines Together': 'Keep lines together',
'WidowControl': 'Widow/Orphan control',
'Indents and Spacing': 'Indents and Spacing',
'Line and Page Breaks': 'Line and Page Breaks',
'Pagination': 'Pagination',
'Single': 'Single',
'DashSmallGap': 'DashSmallGap',
'DashDot': 'DashDot',
'Double': 'Double',
'ThinThickSmallGap': 'ThinThickSmallGap',
'ThickThinSmallGap': 'ThickThinSmallGap',
'ThickThinMediumGap': 'ThickThinMediumGap',
'ThickThinLargeGap': 'ThickThinLargeGap',
'SingleWavy': 'SingleWavy',
'DoubleWavy': 'DoubleWavy',
'Inset': 'Inset',
'DashLargeGap': 'DashLargeGap',
'Dot': 'Dot',
'DashDotDot': 'DashDotDot',
'Triple': 'Triple',
'ThinThickThinSmallGap': 'ThinThickThinSmallGap',
'ThinThickThinMediumGap': 'ThinThickThinMediumGap',
'ThinThickThinLargeGap': 'ThinThickThinLargeGap',
'DashDotStroked': 'DashDotStroked',
'Engrave3D': 'Engrave3D',
'Thick': 'Thick',
'Outset': 'Outset',
'Emboss3D': 'Emboss3D',
'ThinThickLargeGap': 'ThinThickLargeGap',
'ThinThickMediumGap': 'ThinThickMediumGap',
'Number of rows must be between': 'Number of rows must be between',
'Number of columns must be between': 'Number of columns must be between',
'and': 'and',
'Unlimited': 'Unlimited',
'Regular text': 'Regular text',
'Date': 'Date',
'Uppercase': 'Uppercase',
'Lowercase': 'Lowercase',
'FirstCapital': 'FirstCapital',
'TitleCase': 'Titlecase',
'Filling in forms': 'Filling in forms',
'px': 'px',
'Tracked changes': 'Tracked changes',
'TrackChangesOnly': 'You may edit in this region, but all change will be tracked.',
'RemovedIgnoreExceptions': 'If you make this change in document protection, Word will ignore all the exceptions in this document.',
'RemovedIgnore': 'Do you want to remove the ignored exceptions?',
'Information': 'Information',
'Yes': 'Yes',
'No': 'No',
'Page Break': 'Page Break',
'Column Break': 'Column Break',
'Section Break Next Page': 'Section Break (Next Page)',
'Section Break Continuous': 'Section Break (Continuous)',
'Unsupported format': 'The file format you have selected isn\'t supported. Please choose valid format.',
'One': 'One',
'Two': 'Two',
'Three': 'Three',
'Presets': 'Presets',
'Columns': 'Columns',
'Split your text into two or more columns': 'Split your text into two or more columns',
'Line between column': 'Line between column',
'Width and Spacing': 'Width and Spacing',
'Equal column width': 'Equal column width',
'Column': 'Column',
'Paste Content Dialog': 'Due to browser’s security policy, paste from system clipboard is restricted. Alternatively use the keyboard shortcut',
'Paste Content CheckBox': 'Don’t show again',
'BookMarkList': 'List of bookmarks in the document',
'TabMarkList': 'List of tab stops in the paragraph',
'Default tab stops': 'Default tab stops',
'Tab stops to be cleared': 'Tab stops to be cleared',
'Tabs': 'Tabs',
'Set': 'Set',
'Clear': 'Clear',
'Clear All': 'Clear All',
'Discard comments': 'Discard comments',
'Discard': 'Discard',
'Keep editing': 'Keep editing',
'The top/bottom margins are too large for the page height in some sections.': 'The top/bottom margins are too large for the page height in some sections.',
'Column width cannot be less than 36 pt.': 'Column width cannot be less than 36 pt.',
'Left and right margins.': 'Settings you chose for the left and right margins, column spacing, or pargraph indents are too large for the page width in same secitions.',
'Left Indent': 'Left Indent',
'Right Indent': 'Right Indent',
'Hanging Indent': 'Hanging Indent',
'First Line Indent': 'First Line Indent',
'Left Margin': 'Left Margin',
'Right Margin': 'Right Margin',
'Top Margin': 'Top Margin',
'Bottom Margin': 'Bottom Margin',
'Left Tab': 'Left Tab',
'Right Tab': 'Right Tab',
'Center Tab': 'Center Tab',
'Decimal Tab': 'Decimal Tab',
'Bar Tab': 'Bar Tab',
'Move Table Column': 'Move Table Column',
'Default Content Control Text': 'Click here or tap to insert text',
'Default Date Picker': 'Click or tap enter the date',
'Rich text Controls': 'Rich text controls cannot be applied here.',
'Plain text Controls': 'Plain text controls cannot be applied here.',
'DropDownLimitWarning': 'You can have no more than 25 items in your drop-down list box.'
};
_this.initHelper();
return _this;
}
DocumentEditor_1 = DocumentEditor;
Object.defineProperty(DocumentEditor.prototype, "enableHeaderAndFooter", {
/**
* @private
* @returns {boolean} Returns true if header and footer is enabled.
*/
get: function () {
return this.enableHeaderFooterIn;
},
/**
* @private
* @param {boolean} value True if enable the header and footer; Otherwise, false.
*/
set: function (value) {
this.enableHeaderFooterIn = value;
if (!value && this.selectionModule && this.selectionModule.isWebLayout) {
this.selectionModule.isWebLayout = false;
}
this.viewer.updateScrollBars();
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentEditor.prototype, "pageCount", {
/**
* Gets the total number of pages.
*
* @returns {number} Returns the page count.
*/
get: function () {
if (!this.isDocumentLoaded || isNullOrUndefined(this.viewer) || this.viewer instanceof WebLayoutViewer) {
return 1;
}
return this.documentHelper.pages.length;
},
enumerable: true,
configurable: true
});
/**
* Gets the entire document's comment information.
*
* @returns {CommentInfo[]} Returns the collection of comments.
*/
DocumentEditor.prototype.getComments = function () {
var data = [];
var commentCollection = this.documentHelper.comments;
if (commentCollection.length > 0) {
var tempData = [];
for (var _i = 0, _a = this.documentHelper.comments; _i < _a.length; _i++) {
var comment = _a[_i];
tempData = [];
var commentProperties = {
author: comment.author,
isResolved: comment.isResolved ? comment.isResolved : false,
dateTime: this.editor.parseDateTime(comment.createdDate)
};
for (var _b = 0, _c = comment.replyComments; _b < _c.length; _b++) {
var replyComment = _c[_b];
var replyCommentProperties = {
author: replyComment.author,
isResolved: replyComment.isResolved ? comment.isResolved : false,
dateTime: this.editor.parseDateTime(replyComment.createdDate)
};
var commentText = HelperMethods.parseCommentAsText(replyComment);
var newComment = new Comment(replyComment.commentId, replyCommentProperties, commentText);
tempData.push(newComment);
}
var commentInfo = {
id: comment.commentId,
text: HelperMethods.parseCommentAsText(comment),
commentProperties: commentProperties,
replies: tempData
};
data.push(commentInfo);
}
}
return data;
};
Object.defineProperty(DocumentEditor.prototype, "selection", {
/**
* Gets the selection object of the document editor.
*
* @default undefined
* @aspType Selection
* @returns {Selection} Returns the selection object.
*/
get: function () {
if (!this.selectionModule) {
this.checkModuleInjection('Selection', this.enableSelection);
}
return this.selectionModule;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentEditor.prototype, "editor", {
/**
* Gets the editor object of the document editor.
*
* @aspType Editor
* @returns {Editor} Returns the editor object.
*/
get: function () {
if (!this.editorModule) {
this.checkModuleInjection('Editor', this.enableEditor);
}
return this.editorModule;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentEditor.prototype, "editorHistory", {
/**
* Gets the editor history object of the document editor.
*
* @aspType EditorHistory
* @returns {EditorHistory} Returns the editor history object.
*/
get: function () {
if (!this.editorHistoryModule) {
this.checkModuleInjection('EditorHistory', this.enableEditorHistory);
}
return this.editorHistoryModule;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentEditor.prototype, "search", {
/**
* Gets the search object of the document editor.
*
* @aspType Search
* @returns { Search } Returns the search object.
*/
get: function () {
if (!this.searchModule) {
this.checkModuleInjection('Search', this.enableSearch);
}
return this.searchModule;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentEditor.prototype, "contextMenu", {
/**
* Gets the context menu object of the document editor.
*
* @aspType ContextMenu
* @returns {ContextMenu} Returns the context menu object.
*/
get: function () {
if (!this.contextMenuModule) {
this.checkModuleInjection('ContextMenu', this.enableContextMenu);
}
return this.contextMenuModule;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentEditor.prototype, "spellCheckDialog", {
/**
* Gets the spell check dialog object of the document editor.
*
* @returns {SpellCheckDialog} Returns the spell check dialog object.
*/
get: function () {
if (!this.spellCheckDialogModule) {
this.checkModuleInjection('SpellCheck', this.enableSpellCheck);
}
return this.spellCheckDialogModule;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentEditor.prototype, "spellChecker", {
/**
* Gets the spell check object of the document editor.
*
* @aspType SpellChecker
* @returns {SpellChecker} Returns the spell checker object.
*/
get: function () {
if (!this.spellCheckerModule) {
this.checkModuleInjection('SpellCheck', this.enableSpellCheck);
}
return this.spellCheckerModule;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentEditor.prototype, "containerId", {
/**
* @private
* @returns {string }- Returns the container id.
*/
get: function () {
return this.element.id;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentEditor.prototype, "isDocumentLoaded", {
/**
* @private
* @returns {boolean} - Returns true if document is loaded.
*/
get: function () {
return this.isDocumentLoadedIn;
},
/**
* @private
* @param {boolean} value - Specifies whether the document is loaded or not.
* @returns {void}
*/
set: function (value) {
this.isDocumentLoadedIn = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(DocumentEditor.prototype, "isDocumentEmpty", {
/**
* Describes whether Document contains any content or not
*
* @returns {boolean} Returns `true` if Document does not contains any content; otherwise, `false`
* @aspType bool
* @default false
*/
get: function () {
if (this.documentH