@quantlab/handsontable
Version:
Spreadsheet-like data grid editor that provides copy/paste functionality compatible with Excel/Google Docs
74 lines (66 loc) • 2.86 kB
JavaScript
import {objectEach} from './../../helpers/object';
import alignmentItem, {KEY as ALIGNMENT} from './predefinedItems/alignment';
import clearColumnItem, {KEY as CLEAR_COLUMN} from './predefinedItems/clearColumn';
import columnLeftItem, {KEY as COLUMN_LEFT} from './predefinedItems/columnLeft';
import columnRightItem, {KEY as COLUMN_RIGHT} from './predefinedItems/columnRight';
import readOnlyItem, {KEY as READ_ONLY} from './predefinedItems/readOnly';
import redoItem, {KEY as REDO} from './predefinedItems/redo';
import removeColumnItem, {KEY as REMOVE_COLUMN} from './predefinedItems/removeColumn';
import removeRowItem, {KEY as REMOVE_ROW} from './predefinedItems/removeRow';
import rowAboveItem, {KEY as ROW_ABOVE} from './predefinedItems/rowAbove';
import rowBelowItem, {KEY as ROW_BELOW} from './predefinedItems/rowBelow';
import separatorItem, {KEY as SEPARATOR} from './predefinedItems/separator';
import undoItem, {KEY as UNDO} from './predefinedItems/undo';
export {KEY as ALIGNMENT} from './predefinedItems/alignment';
export {KEY as CLEAR_COLUMN} from './predefinedItems/clearColumn';
export {KEY as COLUMN_LEFT} from './predefinedItems/columnLeft';
export {KEY as COLUMN_RIGHT} from './predefinedItems/columnRight';
export {KEY as READ_ONLY} from './predefinedItems/readOnly';
export {KEY as REDO} from './predefinedItems/redo';
export {KEY as REMOVE_COLUMN} from './predefinedItems/removeColumn';
export {KEY as REMOVE_ROW} from './predefinedItems/removeRow';
export {KEY as ROW_ABOVE} from './predefinedItems/rowAbove';
export {KEY as ROW_BELOW} from './predefinedItems/rowBelow';
export {KEY as SEPARATOR} from './predefinedItems/separator';
export {KEY as UNDO} from './predefinedItems/undo';
export const ITEMS = [
ROW_ABOVE, ROW_BELOW, COLUMN_LEFT, COLUMN_RIGHT, CLEAR_COLUMN, REMOVE_ROW, REMOVE_COLUMN, UNDO, REDO, READ_ONLY,
ALIGNMENT, SEPARATOR
];
const _predefinedItems = {
[SEPARATOR]: separatorItem,
[ROW_ABOVE]: rowAboveItem,
[ROW_BELOW]: rowBelowItem,
[COLUMN_LEFT]: columnLeftItem,
[COLUMN_RIGHT]: columnRightItem,
[CLEAR_COLUMN]: clearColumnItem,
[REMOVE_ROW]: removeRowItem,
[REMOVE_COLUMN]: removeColumnItem,
[UNDO]: undoItem,
[REDO]: redoItem,
[READ_ONLY]: readOnlyItem,
[ALIGNMENT]: alignmentItem,
};
/**
* Gets new object with all predefined menu items.
*
* @returns {Object}
*/
export function predefinedItems() {
const items = {};
objectEach(_predefinedItems, (itemFactory, key) => {
items[key] = itemFactory();
});
return items;
}
/**
* Add new predefined menu item to the collection.
*
* @param {String} key Menu command id.
* @param {Object} item Object command descriptor.
*/
export function addItem(key, item) {
if (ITEMS.indexOf(key) === -1) {
_predefinedItems[key] = item;
}
}