all files / document-editor-container/ribbon/ribbon-base/ ribbon-contextual-tab-manager.js

82.98% Statements 78/94
74.07% Branches 40/54
100% Functions 10/10
82.98% Lines 78/94
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155   14× 14× 14×   317×   14×                                   215×     126×   89× 89× 89× 89×   89× 89× 89× 89× 17× 17× 19× 19× 20× 20× 16× 16×     19× 16×     17×     17× 17×   17× 17×       72× 72×     294×   266×   28× 28× 28× 28× 28×   89× 89× 89× 34× 34× 72× 72× 106× 106× 30× 30×     72× 30×     34×       55×     89× 89× 89×                                                 89×          
define(["require", "exports", "./../table-design-tab/table-design-tab", "./../table-layout-tab/table-tab", "./../header-footer-tab/header-footer-tab", "./ribbon-constants", "../picture-format-tab/picture-format-tab", "@syncfusion/ej2-base"], function (require, exports, table_design_tab_1, table_tab_1, header_footer_tab_1, ribbon_constants_1, picture_format_tab_1, ej2_base_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var RibbonContextualTabManager = (function () {
        function RibbonContextualTabManager(container) {
            this.isContentChange = false;
            this.container = container;
            this.ribbonDocumentEditor = this.container.ribbon;
        }
        RibbonContextualTabManager.prototype.setContentChangeFlag = function (value) {
            this.isContentChange = value;
        };
        RibbonContextualTabManager.prototype.getContextualTabs = function () {
            return [
                {
                    tabs: [
                        this.ribbonDocumentEditor.tabManager.tableDesignTab.getTableDesignTab(),
                        this.ribbonDocumentEditor.tabManager.tableLayoutTab.getTableLayoutTab()
                    ],
                    visible: false
                },
                {
                    tabs: [this.ribbonDocumentEditor.tabManager.headerFooterTab.getHeaderFooterTab()],
                    visible: false
                },
                {
                    tabs: [this.ribbonDocumentEditor.tabManager.pictureFormatTab.getPictureFormatTab()],
                    visible: false
                }
            ];
        };
        RibbonContextualTabManager.prototype.updateContextualTabs = function (ribbon) {
            if (!this.container.documentEditor || !this.container.documentEditor.selection ||
                (!ej2_base_1.isNullOrUndefined(this.container.documentEditor.selection) &&
                    this.container.documentEditor.selection.contextType === 'Text' && this.ribbonDocumentEditor.previousContext === 'Text')) {
                return;
            }
            var currentContext = this.container.documentEditor.selection.contextType;
            this.updateTableContextualTabs(ribbon, currentContext);
            this.updateHeaderFooterContextualTab(ribbon, currentContext);
            this.updatePictureFormatContextualTab(ribbon, currentContext);
        };
        RibbonContextualTabManager.prototype.updateTableContextualTabs = function (ribbon, currentContext) {
            var isTableVisible = currentContext.indexOf('Table') >= 0 && currentContext !== 'TableOfContents';
            var tableDesignId = this.container.element.id + ribbon_constants_1.RIBBON_ID + table_design_tab_1.TABLE_DESIGN_TAB_ID;
            var tableLayoutId = this.container.element.id + ribbon_constants_1.RIBBON_ID + table_tab_1.TABLE_LAYOUT_TAB_ID;
            if (isTableVisible) {
                var isTabPresent = false;
                for (var _i = 0, _a = ribbon.contextualTabs; _i < _a.length; _i++) {
                    var contextualTab = _a[_i];
                    for (var _b = 0, _c = contextualTab.tabs; _b < _c.length; _b++) {
                        var tab = _c[_b];
                        if ((tab.id === tableDesignId || tab.id === tableLayoutId) && contextualTab.visible) {
                            isTabPresent = true;
                            break;
                        }
                    }
                    if (isTabPresent) {
                        break;
                    }
                }
                if (!isTabPresent) {
                    ribbon.showTab(tableDesignId, true);
                    ribbon.showTab(tableLayoutId, true);
                    Eif (this.isContentChange) {
                        ribbon.selectTab(tableDesignId);
                        this.isContentChange = false;
                    }
                }
                Eif (this.ribbonDocumentEditor.tabManager.tableDesignTab) {
                    this.ribbonDocumentEditor.tabManager.tableDesignTab.onSelectionChange();
                }
                Eif (this.ribbonDocumentEditor.tabManager.tableLayoutTab) {
                    this.ribbonDocumentEditor.tabManager.tableLayoutTab.onTableLayoutChange();
                }
            }
            else {
                ribbon.hideTab(tableDesignId, true);
                ribbon.hideTab(tableLayoutId, true);
            }
        };
        RibbonContextualTabManager.prototype.hideContextualTab = function (ribbon) {
            if (this.container.documentEditor.selection &&
                this.container.documentEditor.selection.contextType === this.ribbonDocumentEditor.previousContext) {
                return;
            }
            var ribbonId = this.container.element.id + ribbon_constants_1.RIBBON_ID;
            ribbon.hideTab(ribbonId + table_design_tab_1.TABLE_DESIGN_TAB_ID, true);
            ribbon.hideTab(ribbonId + table_tab_1.TABLE_LAYOUT_TAB_ID, true);
            ribbon.hideTab(ribbonId + header_footer_tab_1.HEADER_FOOTER_TAB_ID, true);
            ribbon.hideTab(ribbonId + picture_format_tab_1.PICTURE_FORMAT_TAB_ID, true);
        };
        RibbonContextualTabManager.prototype.updateHeaderFooterContextualTab = function (ribbon, currentContext) {
            var isInHeaderFooter = currentContext.indexOf('Header') >= 0 || currentContext.indexOf('Footer') >= 0;
            var headerFooterTabId = this.container.element.id + ribbon_constants_1.RIBBON_ID + header_footer_tab_1.HEADER_FOOTER_TAB_ID;
            if (isInHeaderFooter) {
                var isTabPresent = false;
                for (var _i = 0, _a = ribbon.contextualTabs; _i < _a.length; _i++) {
                    var contextualTab = _a[_i];
                    for (var _b = 0, _c = contextualTab.tabs; _b < _c.length; _b++) {
                        var tab = _c[_b];
                        if (tab.id === headerFooterTabId && contextualTab.visible) {
                            isTabPresent = true;
                            break;
                        }
                    }
                    if (isTabPresent) {
                        break;
                    }
                }
                if (!isTabPresent) {
                    ribbon.showTab(headerFooterTabId, true);
                    ribbon.selectTab(headerFooterTabId);
                }
            }
            else {
                ribbon.hideTab(headerFooterTabId, true);
            }
        };
        RibbonContextualTabManager.prototype.updatePictureFormatContextualTab = function (ribbon, currentContext) {
            var isImageSelected = currentContext.indexOf('Image') >= 0;
            var pictureFormatTab = this.container.element.id + ribbon_constants_1.RIBBON_ID + picture_format_tab_1.PICTURE_FORMAT_TAB_ID;
            Iif (isImageSelected) {
                var isTabPresent = false;
                for (var _i = 0, _a = ribbon.contextualTabs; _i < _a.length; _i++) {
                    var contextualTab = _a[_i];
                    for (var _b = 0, _c = contextualTab.tabs; _b < _c.length; _b++) {
                        var tab = _c[_b];
                        if (tab.id === pictureFormatTab && contextualTab.visible) {
                            isTabPresent = true;
                            break;
                        }
                    }
                    if (isTabPresent) {
                        break;
                    }
                }
                if (!isTabPresent) {
                    ribbon.showTab(pictureFormatTab, true);
                    if (this.isContentChange) {
                        ribbon.selectTab(pictureFormatTab);
                        this.isContentChange = false;
                    }
                    this.ribbonDocumentEditor.tabManager.pictureFormatTab.updateImageProperties();
                }
            }
            else {
                ribbon.hideTab(pictureFormatTab, true);
            }
        };
        return RibbonContextualTabManager;
    }());
    exports.RibbonContextualTabManager = RibbonContextualTabManager;
});