68 lines
3.0 KiB
JavaScript
68 lines
3.0 KiB
JavaScript
import { objectEach } from "../../helpers/object.mjs";
|
|
import alignmentItem, { KEY as ALIGNMENT } from "./predefinedItems/alignment.mjs";
|
|
import clearColumnItem, { KEY as CLEAR_COLUMN } from "./predefinedItems/clearColumn.mjs";
|
|
import columnLeftItem, { KEY as COLUMN_LEFT } from "./predefinedItems/columnLeft.mjs";
|
|
import columnRightItem, { KEY as COLUMN_RIGHT } from "./predefinedItems/columnRight.mjs";
|
|
import readOnlyItem, { KEY as READ_ONLY } from "./predefinedItems/readOnly.mjs";
|
|
import redoItem, { KEY as REDO } from "./predefinedItems/redo.mjs";
|
|
import removeColumnItem, { KEY as REMOVE_COLUMN } from "./predefinedItems/removeColumn.mjs";
|
|
import removeRowItem, { KEY as REMOVE_ROW } from "./predefinedItems/removeRow.mjs";
|
|
import rowAboveItem, { KEY as ROW_ABOVE } from "./predefinedItems/rowAbove.mjs";
|
|
import rowBelowItem, { KEY as ROW_BELOW } from "./predefinedItems/rowBelow.mjs";
|
|
import separatorItem, { KEY as SEPARATOR } from "./predefinedItems/separator.mjs";
|
|
import noItemsItem, { KEY as NO_ITEMS } from "./predefinedItems/noItems.mjs";
|
|
import undoItem, { KEY as UNDO } from "./predefinedItems/undo.mjs";
|
|
export { KEY as ALIGNMENT } from "./predefinedItems/alignment.mjs";
|
|
export { KEY as CLEAR_COLUMN } from "./predefinedItems/clearColumn.mjs";
|
|
export { KEY as COLUMN_LEFT } from "./predefinedItems/columnLeft.mjs";
|
|
export { KEY as COLUMN_RIGHT } from "./predefinedItems/columnRight.mjs";
|
|
export { KEY as READ_ONLY } from "./predefinedItems/readOnly.mjs";
|
|
export { KEY as REDO } from "./predefinedItems/redo.mjs";
|
|
export { KEY as REMOVE_COLUMN } from "./predefinedItems/removeColumn.mjs";
|
|
export { KEY as REMOVE_ROW } from "./predefinedItems/removeRow.mjs";
|
|
export { KEY as ROW_ABOVE } from "./predefinedItems/rowAbove.mjs";
|
|
export { KEY as ROW_BELOW } from "./predefinedItems/rowBelow.mjs";
|
|
export { KEY as SEPARATOR } from "./predefinedItems/separator.mjs";
|
|
export { KEY as NO_ITEMS } from "./predefinedItems/noItems.mjs";
|
|
export { KEY as UNDO } from "./predefinedItems/undo.mjs";
|
|
export const ITEMS = [ROW_ABOVE, ROW_BELOW, COLUMN_LEFT, COLUMN_RIGHT, CLEAR_COLUMN, REMOVE_ROW, REMOVE_COLUMN, UNDO, REDO, READ_ONLY, ALIGNMENT, SEPARATOR, NO_ITEMS];
|
|
const _predefinedItems = {
|
|
[SEPARATOR]: separatorItem,
|
|
[NO_ITEMS]: noItemsItem,
|
|
[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;
|
|
}
|
|
} |