all files / document-editor-container/helper/ ribbon-helper.js

83.13% Statements 69/83
68.85% Branches 42/61
83.33% Functions 10/12
83.13% Lines 69/83
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     23×     23×   23× 23×                                                 15× 15× 15× 14×     15× 58× 14×                                       13× 13×         169× 169× 169× 25×     16× 16×              
define(["require", "exports", "../ribbon/ribbon-base/ribbon-constants", "../ribbon/home-tab/home-tab", "../ribbon/insert-tab/insert-tab", "../ribbon/view-tab/view-tab", "../ribbon/header-footer-tab/header-footer-tab", "../ribbon/layout-tab/layout-tab", "../ribbon/table-design-tab/table-design-tab", "../ribbon/table-layout-tab/table-tab", "../ribbon/picture-format-tab/picture-format-tab", "../ribbon/review-tab/review-tab", "../ribbon/reference-tab/reference-tab", "../ribbon/developer-tab/developer-tab"], function (require, exports, ribbon_constants_1, home_tab_1, insert_tab_1, view_tab_1, header_footer_tab_1, layout_tab_1, table_design_tab_1, table_tab_1, picture_format_tab_1, review_tab_1, reference_tab_1, developer_tab_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var RibbonHelper = (function () {
        function RibbonHelper() {
        }
        RibbonHelper.getTabId = function (tabType, containerId) {
            Iif (typeof tabType === 'string' && tabType.indexOf(ribbon_constants_1.RIBBON_ID) >= 0) {
                return tabType;
            }
            return RibbonHelper.getDefaultTabId(tabType, containerId);
        };
        RibbonHelper.getDefaultTabId = function (tabType, containerId) {
            var defaultId = containerId + ribbon_constants_1.RIBBON_ID;
            switch (tabType) {
                case 'Home':
                    return defaultId + home_tab_1.HOME_TAB_ID;
                case 'Insert':
                    return defaultId + insert_tab_1.INSERT_TAB_ID;
                case 'View':
                    return defaultId + view_tab_1.VIEW_TAB_ID;
                case 'Review':
                    return defaultId + review_tab_1.REVIEW_TAB_ID;
                case 'Layout':
                    return defaultId + layout_tab_1.LAYOUT_TAB_ID;
                case 'References':
                    return defaultId + reference_tab_1.REFERENCES_TAB_ID;
                case 'HeaderFooter':
                    return defaultId + header_footer_tab_1.HEADER_FOOTER_TAB_ID;
                case 'Developer':
                    return defaultId + developer_tab_1.DEVELOPER_TAB_ID;
                case 'TableDesign':
                    return defaultId + table_design_tab_1.TABLE_DESIGN_TAB_ID;
                case 'TableLayout':
                    return defaultId + table_tab_1.TABLE_LAYOUT_TAB_ID;
                case 'PictureFormat':
                    return defaultId + picture_format_tab_1.PICTURE_FORMAT_TAB_ID;
                default:
                    return tabType;
            }
        };
        RibbonHelper.getGroupId = function (groupId, tabs, containerId) {
            Iif (typeof groupId === 'string') {
                return groupId;
            }
            var group = RibbonHelper.findGroup(groupId, tabs, containerId);
            return group ? group.id : '';
        };
        RibbonHelper.findGroup = function (groupInfo, tabs, containerId) {
            var tabId = RibbonHelper.getTabId(groupInfo.tabId, containerId);
            var tab = RibbonHelper.findTab(tabs, tabId);
            if (tab && tab.groups && tab.groups.length > groupInfo.index) {
                return tab.groups[groupInfo.index];
            }
            return undefined;
        };
        RibbonHelper.findTab = function (tabs, tabId) {
            for (var i = 0; i < tabs.length; i++) {
                if (tabs[parseInt(i.toString(), 10)].id === tabId) {
                    return tabs[parseInt(i.toString(), 10)];
                }
            }
            return undefined;
        };
        RibbonHelper.getCollectionIdFromGroup = function (groupInfo, tabs, containerId) {
            var group = RibbonHelper.findGroup(groupInfo, tabs, containerId);
            if (group && group.collections && group.collections.length > 0) {
                return group.collections[group.collections.length - 1].id;
            }
            return '';
        };
        RibbonHelper.getCollectionIdFromItem = function (groupInfo, container, itemId) {
            var group = RibbonHelper.findGroup(groupInfo, container.ribbon.ribbon.tabs, container.element.id);
            Iif (!group) {
                return '';
            }
            if (itemId) {
                Eif (group && group.collections && group.collections.length > 0) {
                    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];
                            if (item.id === itemId) {
                                return collection.id;
                            }
                        }
                    }
                }
            }
            return group.collections[group.collections.length - 1].id;
        };
        RibbonHelper.getItemIdsFromGroup = function (itemInfo, container) {
            var itemIds = [];
            var groupInfo = { tabId: itemInfo.tabId, index: itemInfo.groupIndex };
            var group = RibbonHelper.findGroup(groupInfo, container.ribbon.ribbon.tabs, container.element.id);
            Eif (group && group.collections && itemInfo.itemIndexes && itemInfo.itemIndexes.length > 0) {
                var allItems = [];
                for (var _i = 0, _a = group.collections; _i < _a.length; _i++) {
                    var collection = _a[_i];
                    Eif (collection.items) {
                        allItems = allItems.concat(collection.items);
                    }
                }
                for (var i = 0; i < itemInfo.itemIndexes.length; i++) {
                    var itemIndex = itemInfo.itemIndexes[parseInt(i.toString(), 10)];
                    if (itemIndex >= 0 && itemIndex < allItems.length) {
                        itemIds.push(allItems[parseInt(itemIndex.toString(), 10)].id);
                    }
                }
            }
            return itemIds;
        };
        RibbonHelper.updateToggleButtonState = function (ribbonObj, buttonId, isActive) {
            Eif (ribbonObj) {
                var button = document.getElementById(buttonId);
                if (button) {
                    if (isActive) {
                        button.classList.add('e-active');
                        button.setAttribute('aria-pressed', 'true');
                    }
                    else {
                        button.classList.remove('e-active');
                        button.setAttribute('aria-pressed', 'false');
                    }
                }
            }
        };
        return RibbonHelper;
    }());
    exports.RibbonHelper = RibbonHelper;
});