@syncfusion/ej2-documenteditor
Version:
Feature-rich document editor control with built-in support for context menu, options pane and dialogs.
90 lines (89 loc) • 3.66 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 __());
};
})();
import { RibbonGroupBase } from '../ribbon-interfaces';
export var COMMENT_ID = '_insert_comment';
/**
* Comments group implementation for Insert tab
* @private
*/
var CommentsGroup = /** @class */ (function (_super) {
__extends(CommentsGroup, _super);
function CommentsGroup() {
return _super !== null && _super.apply(this, arguments) || this;
}
/**
* Get the Ribbon items for Comments group
* @returns {RibbonGroupModel} - Returns the Ribbon items for Comments group
* @private
*/
CommentsGroup.prototype.getGroupModel = function () {
return {
header: this.localObj.getConstant('Comments'),
groupIconCss: 'e-icons e-de-cnt-cmt-add',
enableGroupOverflow: true,
overflowHeader: this.localObj.getConstant('Comments'),
collections: [{
items: [{
type: 'Button',
keyTip: 'C',
buttonSettings: {
content: this.localObj.getConstant('New Comment'),
iconCss: 'e-icons e-de-cnt-cmt-add',
isToggle: false,
clicked: this.newCommentHandler.bind(this)
},
id: this.ribbonId + COMMENT_ID,
ribbonTooltipSettings: {
content: this.localObj.getConstant('Add a comment about the current selection')
}
}]
}]
};
};
CommentsGroup.prototype.newCommentHandler = function () {
this.container.documentEditor.editorModule.isUserInsert = true;
this.container.documentEditor.editorModule.insertComment('');
this.container.documentEditor.editorModule.isUserInsert = false;
};
/**
* Update selection to reflect current state
* @returns {void}
* @private
*/
CommentsGroup.prototype.updateSelection = function () {
var isHeaderFooter = this.documentEditor.selection.contextType.indexOf('Header') >= 0 ||
this.documentEditor.selection.contextType.indexOf('Footer') >= 0;
var shouldDisable = isHeaderFooter ||
this.container.documentEditor.selection.isinFootnote ||
this.container.documentEditor.selection.isinEndnote ||
this.container.documentEditor.commentReviewPane.commentPane.isEditMode;
this.enableDisableComment(!shouldDisable);
};
/**
* @param {boolean} enable - Enable disable the comment
* @returns {void}
* @private
*/
CommentsGroup.prototype.enableDisableComment = function (enable) {
var ribbon = this.container.ribbon.ribbon;
if (enable) {
ribbon.enableItem(this.ribbonId + COMMENT_ID);
}
else {
ribbon.disableItem(this.ribbonId + COMMENT_ID);
}
};
return CommentsGroup;
}(RibbonGroupBase));
export { CommentsGroup };