@syncfusion/ej2-documenteditor
Version:
Feature-rich document editor control with built-in support for context menu, options pane and dialogs.
112 lines (111 loc) • 4.04 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';
import { RIBBON_ID } from '../ribbon-base/ribbon-constants';
export var CELL_PROPERTIES_GROUP_ID = '_cell_properties_group';
export var MERGE_CELLS_BUTTON_ID = '_merge_cells_button';
/**
* Represents the Cell Properties Group in Table Layout tab
* @private
*/
var CellPropertiesGroup = /** @class */ (function (_super) {
__extends(CellPropertiesGroup, _super);
/**
* Constructor for the CellPropertiesGroup
* @param {DocumentEditorContainer} container - DocumentEditorContainer instance
*/
function CellPropertiesGroup(container) {
var _this = _super.call(this, container) || this;
_this.commonID = _this.container.element.id + RIBBON_ID;
return _this;
}
/**
* Gets the ribbon group model for Cell Properties
* @returns {RibbonGroupModel} - Ribbon group model
*/
CellPropertiesGroup.prototype.getGroupModel = function () {
return {
id: this.commonID + CELL_PROPERTIES_GROUP_ID,
header: this.localObj.getConstant('Cell Properties'),
enableGroupOverflow: true,
overflowHeader: this.localObj.getConstant('Cell Properties'),
collections: [
{
items: [
this.getMergeCellsButton()
// Additional cell property buttons can be added here
]
}
]
};
};
/**
* Gets the Merge Cells button model
* @returns {RibbonItemModel} - Ribbon item model for Merge Cells button
*/
CellPropertiesGroup.prototype.getMergeCellsButton = function () {
var _this = this;
return {
type: 'Button',
id: this.commonID + MERGE_CELLS_BUTTON_ID,
disabled: true,
keyTip: 'M',
buttonSettings: {
content: this.localObj.getConstant('Merge cells'),
iconCss: 'e-icons e-de-ctnr-mergecell',
clicked: function () { return _this.mergeSelectedCells(); }
},
ribbonTooltipSettings: {
content: this.localObj.getConstant('Merge cells')
}
};
};
/**
* Merges the selected cells
* @returns { void }
*/
CellPropertiesGroup.prototype.mergeSelectedCells = function () {
this.documentEditor.editorModule.mergeCells();
};
/**
* Checks if cells can be merged
* @returns {boolean} - True if cells can be merged, false otherwise
*/
CellPropertiesGroup.prototype.canMergeCells = function () {
return this.documentEditor.editorModule.canMergeCells();
};
/**
* Updates the merge cells button state based on selection
* @returns {void}
*/
CellPropertiesGroup.prototype.updateSelection = function () {
this.updateMergeCellsButtonState();
};
/**
* Updates the merge cells button enabled/disabled state
* @returns {void}
*/
CellPropertiesGroup.prototype.updateMergeCellsButtonState = function () {
var id = this.commonID + MERGE_CELLS_BUTTON_ID;
var ribbon = this.container.ribbon.ribbon;
if (this.canMergeCells()) {
ribbon.enableItem(id);
}
else {
ribbon.disableItem(id);
}
};
return CellPropertiesGroup;
}(RibbonGroupBase));
export { CellPropertiesGroup };