UNPKG

@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
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 };