JSDoc: Source: menu_util.js

# Source: menu_util.js

    /*************************************************************
     *
     *  Copyright (c) 2015-2016 The MathJax Consortium
     *
     *  Licensed under the Apache License, Version 2.0 (the "License");
     *  you may not use this file except in compliance with the License.
     *  You may obtain a copy of the License at
     *
     *      http://www.apache.org/licenses/LICENSE-2.0
     *
     *  Unless required by applicable law or agreed to in writing, software
     *  distributed under the License is distributed on an "AS IS" BASIS,
     *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     *  See the License for the specific language governing permissions and
     *  limitations under the License.
     */
    /**
     * @fileoverview Utility class for menu handling.
     *
     * @author volker.sorge@gmail.com (Volker Sorge)
     */
    /// <reference path="context_menu.ts" />
    /// <reference path="item.ts" />
    /// <reference path="menu.ts" />
    /// <reference path="sub_menu.ts" />

        /**
         * @namespace
         */
        var MenuUtil;

        (function (MenuUtil) {
            /**
             * Closes the entire context menu.
             * @param {Item} item The item on which the menu close is called.
             */
            MenuUtil.close = close;
            function close(item) {
                let menu = item.getMenu();
                if (menu instanceof ContextMenu.SubMenu) {
                    menu.baseMenu.unpost();
                }
                else {
                    menu.unpost();
                }
            }
            /**
             * Retrieves the currently active element of the overall context menu.
             * @param {Item} item The item on which the last call was made.
             * @return {HtmlElement} The currently active element.
             */
            MenuUtil.getActiveElement = getActiveElement;
            function getActiveElement(item) {
                let menu = item.getMenu();
                let baseMenu = menu instanceof ContextMenu.SubMenu ?
                    menu.baseMenu : menu;
                return baseMenu.getStore().getActive();
            }
            /**
             * Error function for controlled exceptions.
             * @param {Error} error The thrown error, containing the stack trace.
             * @param {string} msg The message to be signalled.
             */
            MenuUtil.error = error;
            function error(error, msg) {
                console.log('ContextMenu Error: ' + msg);
            }
            /**
             * @return {number} A global, increasing unique counter.
             */
            MenuUtil.counter = counter;
            function counter() {
                return count++;
            }
            let count = 0;
        })(MenuUtil = ContextMenu.MenuUtil || (ContextMenu.MenuUtil = {}));