'use strict';
import '../sass/jquery.contextMenu.scss';
import ContextMenu from './classes/ContextMenu';
import ContextMenuItemTypes from './classes/ContextMenuItemTypes';
import elementFunction from './jquery/contextMenuFunction';
/**
* The jQuery namespace.
* @external "jQuery"
* @see {@link http://docs.jquery.com/Plugins/Authoring The jQuery Plugin Guide}
*/
/**
* @class jQuery.contextMenu
* @function external:jQuery.contextMenu
* @instance
*
* @param {string} operation
* @param {ContextMenuOptions} options
*
* @property {ContextMenu} manager
* @property {getInputValues} getInputValues
* @property {setInputValues} setInputValues
* @property {fromMenu} ContextMenuHtml5Builder#fromMenu
* @property {ContextMenuOptions} defaults
* @property {ContextMenuEventHandler} handle
* @property {ContextMenuOperations} operations
* @property {Object<string, ContextMenuData>} menus
*/
const manager = new ContextMenu();
// manage contextMenu instances
let contextMenu = function (operation, options) {
manager.execute(operation, options);
};
contextMenu.getInputValues = function (currentMenuData, data) {
return manager.getInputValues(currentMenuData, data);
};
contextMenu.setInputValues = function (currentMenuData, data) {
return manager.getInputValues(currentMenuData, data);
};
contextMenu.fromMenu = function (element) {
return manager.html5builder.fromMenu(element);
};
// make defaults accessible
contextMenu.defaults = manager.defaults;
contextMenu.types = manager.defaults.types;
contextMenu.manager = manager;
// export internal functions - undocumented, for hacking only!
contextMenu.handle = manager.handler;
contextMenu.operations = manager.operations;
contextMenu.menus = manager.menus;
contextMenu.namespaces = manager.namespaces;
$.fn.contextMenu = elementFunction;
$.contextMenu = contextMenu;
module.exports = {ContextMenu, ContextMenuItemTypes};