define(["require", "exports", "./ribbon-constants", "@syncfusion/ej2-base"], function (require, exports, ribbon_constants_1, ej2_base_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var RibbonStateManager = (function () {
function RibbonStateManager(container) {
this.container = container;
}
RibbonStateManager.prototype.updateRibbonState = function (ribbon) {
Iif (!ribbon) {
return;
}
var isProtectedDocument = this.container.documentEditor.documentHelper.protectionType !== 'NoProtection';
var isSelectionInProtectedRegion = this.container.documentEditor.editorModule.restrictEditing;
Iif (isProtectedDocument) {
this.enableDisableRibbonItem(ribbon, !isSelectionInProtectedRegion);
}
else {
this.enableDisableRibbonItem(ribbon, !isProtectedDocument);
}
};
RibbonStateManager.prototype.enableDisableRibbonItem = function (ribbon, enable) {
Iif (!ribbon.tabs || !ribbon.tabs.length) {
return;
}
if (enable) {
for (var _i = 0, _a = ribbon.tabs; _i < _a.length; _i++) {
var tab = _a[_i];
ribbon.enableTab(tab.id);
for (var _b = 0, _c = tab.groups; _b < _c.length; _b++) {
var group = _c[_b];
ribbon.enableGroup(group.id);
}
}
this.container.ribbon.toggleTrackChanges();
return;
}
for (var _d = 0, _e = ribbon.tabs; _d < _e.length; _d++) {
var tab = _e[_d];
var tabId = tab.id;
var isViewTab = tabId.indexOf('view') !== -1;
var isHomeTab = tabId.indexOf('home') !== -1;
var isReviewTab = tabId.indexOf('review') !== -1;
if (isReviewTab) {
ribbon.enableTab(tabId);
this.handleReviewTabProtection(ribbon, tab);
}
else if (isViewTab) {
ribbon.enableTab(tabId);
ribbon.disableGroup(this.container.element.id + ribbon_constants_1.RIBBON_ID + '_showGroup');
}
else if (isHomeTab) {
ribbon.enableTab(tabId);
this.handleHomeTabProtection(ribbon, tab);
}
else {
for (var _f = 0, _g = tab.groups; _f < _g.length; _f++) {
var group = _g[_f];
ribbon.disableGroup(group.id);
}
}
}
};
RibbonStateManager.prototype.handleHomeTabProtection = function (ribbon, tab) {
var homeGroups = tab.groups;
for (var _i = 0, homeGroups_1 = homeGroups; _i < homeGroups_1.length; _i++) {
var group = homeGroups_1[_i];
var isFindGroup = group.id.indexOf('find') !== -1;
if (isFindGroup) {
ribbon.enableGroup(group.id);
this.enableOnlyFindItems(ribbon, group);
}
else {
ribbon.disableGroup(group.id);
}
}
};
RibbonStateManager.prototype.enableOnlyFindItems = function (ribbon, group) {
for (var _i = 0, _a = group.collections || []; _i < _a.length; _i++) {
var collection = _a[_i];
for (var _b = 0, _c = collection.items || []; _b < _c.length; _b++) {
var item = _c[_b];
var itemId = item.id;
if (itemId && itemId.indexOf('find') !== -1) {
ribbon.enableItem(itemId);
}
else {
ribbon.disableItem(itemId);
}
}
}
};
RibbonStateManager.prototype.handleReviewTabProtection = function (ribbon, tab) {
var reviewGroups = tab.groups;
for (var _i = 0, reviewGroups_1 = reviewGroups; _i < reviewGroups_1.length; _i++) {
var group = reviewGroups_1[_i];
var isRestrictedGroup = group.id.indexOf('comments') !== -1 ||
group.id.indexOf('tracking') !== -1;
if (group.id.indexOf('comments') !== -1) {
var documentEditor = this.container.documentEditor;
var enable = false;
Eif (!ej2_base_1.isNullOrUndefined(documentEditor) && (documentEditor.isReadOnly ||
documentEditor.documentHelper.isDocumentProtected)) {
enable = documentEditor.documentHelper.isCommentOnlyMode || !documentEditor.isReadOnlyMode;
}
this.container.ribbon.enableDisableInsertComment(enable);
}
else if (isRestrictedGroup) {
ribbon.disableGroup(group.id);
}
else {
ribbon.enableGroup(group.id);
}
}
};
return RibbonStateManager;
}());
exports.RibbonStateManager = RibbonStateManager;
});
|