UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

81 lines (80 loc) 10.7 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import { DefaultMenuItem } from '../DefaultMenuItem.component'; import { DefaultMenu } from '../DefaultMenu.component'; import { MenuItemModel } from '../model/MenuItemModel'; import { MenuModel } from '../model/MenuModel'; import { ActionModelMenu } from '../model/ActionModelMenu'; export class DefaultActionModelMenuFactory { /** * @param {?} anyModel * @param {?} context * @return {?} */ getMenuItemModels(anyModel, context) { let /** @type {?} */ menuItemModelArray = []; if (anyModel === null || typeof anyModel === 'undefined') { return menuItemModelArray; } let /** @type {?} */ menuItems = []; if (anyModel instanceof ActionModelMenu) { let /** @type {?} */ actionMenu = /** @type {?} */ (anyModel); menuItems = actionMenu.items; } for (let /** @type {?} */ action of menuItems) { if (action.isShow === null) { continue; } if (typeof action.isShow !== 'function') { continue; } if (!action.isShow(context)) { continue; } let /** @type {?} */ isEnable = true; let /** @type {?} */ menuItem = null; let /** @type {?} */ actionItems = this.getMenuItemModels(action, context); if (actionItems.length > 0) { // is menu menuItem = new MenuModel(DefaultMenu, action.label, actionItems, action.menuModelFactory); } else { // is item menuItem = new MenuItemModel(DefaultMenuItem, action.label, isEnable, (actionEvent) => { if (!isEnable) { return; } action.actionPerformedHandler.call(null, actionEvent); }); } if (menuItem !== null) { menuItemModelArray.push(menuItem); } } return menuItemModelArray; } /** * @param {?} context * @return {?} */ createMenuModel(context) { let /** @type {?} */ menuItemModelArray = []; if (context === null || typeof context === 'undefined') { return new MenuModel(DefaultMenuItem, 'action Menu', menuItemModelArray); } let /** @type {?} */ anyContext = context; if (typeof anyContext.getModel !== 'function') { return new MenuModel(DefaultMenuItem, 'action Menu', menuItemModelArray); } let /** @type {?} */ anyModel = anyContext.getModel(); if (anyModel === null || typeof anyModel === 'undefined') { return new MenuModel(DefaultMenuItem, 'action Menu', menuItemModelArray); } menuItemModelArray = this.getMenuItemModels(anyModel, context); let /** @type {?} */ model = new MenuModel(DefaultMenuItem, 'action Menu', menuItemModelArray); return model; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEFjdGlvbk1vZGVsTWVudUZhY3RvcnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZWRpdG9yL0RlZmF1bHRBY3Rpb25Nb2RlbE1lbnVGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzNELE1BQU07Ozs7OztJQUVNLGlCQUFpQixDQUFDLFFBQWEsRUFBRSxPQUFpQjtRQUN0RCxxQkFBSSxrQkFBa0IsR0FBb0IsRUFBRSxDQUFDO1FBRTdDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxJQUFJLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUN2RCxNQUFNLENBQUMsa0JBQWtCLENBQUM7U0FDN0I7UUFFRCxxQkFBSSxTQUFTLEdBQVUsRUFBRSxDQUFDO1FBQzFCLEVBQUUsQ0FBQSxDQUFDLFFBQVEsWUFBYSxlQUFlLENBQUMsQ0FBQSxDQUFDO1lBQ3JDLHFCQUFJLFVBQVUscUJBQUcsUUFBMkIsQ0FBQSxDQUFDO1lBRTdDLFNBQVMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1NBQ2hDO1FBRUQsR0FBRyxDQUFDLENBQUMscUJBQUksTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN6QixRQUFRLENBQUM7YUFDWjtZQUVELEVBQUUsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUN0QyxRQUFRLENBQUE7YUFDWDtZQUVELEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLFFBQVEsQ0FBQzthQUNaO1lBRUQscUJBQUksUUFBUSxHQUFZLElBQUksQ0FBQztZQUU3QixxQkFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLHFCQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRTFELEVBQUUsQ0FBQSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQzs7Z0JBRXZCLFFBQVEsR0FBRyxJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDN0Y7WUFBQyxJQUFJLENBQUMsQ0FBQzs7Z0JBRUosUUFBUSxHQUFHLElBQUksYUFBYSxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLFdBQWdCLEVBQUUsRUFBRTtvQkFDdkYsRUFBRSxDQUFBLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFDO3dCQUNWLE1BQU0sQ0FBQztxQkFDVjtvQkFDRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztpQkFDekQsQ0FBQyxDQUFDO2FBQ047WUFFRCxFQUFFLENBQUEsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUEsQ0FBQztnQkFDbEIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JDO1NBQ0o7UUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUM7Ozs7OztJQUd2QixlQUFlLENBQUMsT0FBaUI7UUFDcEMscUJBQUksa0JBQWtCLEdBQW9CLEVBQUUsQ0FBQztRQUU3QyxFQUFFLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDckQsTUFBTSxDQUFDLElBQUksU0FBUyxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztTQUM1RTtRQUVELHFCQUFJLFVBQVUsR0FBUSxPQUFPLENBQUM7UUFFOUIsRUFBRSxDQUFDLENBQUMsT0FBTyxVQUFVLENBQUMsUUFBUSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDNUMsTUFBTSxDQUFDLElBQUksU0FBUyxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztTQUM1RTtRQUVELHFCQUFJLFFBQVEsR0FBUSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFMUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksSUFBSSxPQUFPLFFBQVEsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUM7U0FDNUU7UUFFRCxrQkFBa0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRy9ELHFCQUFJLEtBQUssR0FBYyxJQUFJLFNBQVMsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFFekYsTUFBTSxDQUFDLEtBQUssQ0FBQzs7Q0FFcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJTWVudU1vZGVsRmFjdG9yeSB9IGZyb20gJy4uL0lNZW51TW9kZWxGYWN0b3J5JztcbmltcG9ydCB7IElDb250ZXh0IH0gZnJvbSAnLi4vSUNvbnRleHQnO1xuaW1wb3J0IHsgRGVmYXVsdE1lbnVJdGVtIH0gZnJvbSAnLi4vRGVmYXVsdE1lbnVJdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWZhdWx0TWVudSB9IGZyb20gJy4uL0RlZmF1bHRNZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW51SXRlbU1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvTWVudUl0ZW1Nb2RlbCc7XG5pbXBvcnQgeyBNZW51TW9kZWwgfSBmcm9tICcuLi9tb2RlbC9NZW51TW9kZWwnO1xuaW1wb3J0IHsgQWN0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9BY3Rpb25Nb2RlbCc7XG5pbXBvcnQgeyBBY3Rpb25Nb2RlbE1lbnUgfSBmcm9tICcuLi9tb2RlbC9BY3Rpb25Nb2RlbE1lbnUnO1xuaW1wb3J0IHsgQWN0aW9uQnV0dG9uIH0gZnJvbSAnLi9lZGl0b3IuaW50ZXJuYWwvQWN0aW9uQnV0dG9uLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0QWN0aW9uTW9kZWxNZW51RmFjdG9yeSBpbXBsZW1lbnRzIElNZW51TW9kZWxGYWN0b3J5IHtcblxuICAgIHByaXZhdGUgZ2V0TWVudUl0ZW1Nb2RlbHMoYW55TW9kZWw6IGFueSwgY29udGV4dDogSUNvbnRleHQpOiBNZW51SXRlbU1vZGVsW117XG4gICAgICAgIGxldCBtZW51SXRlbU1vZGVsQXJyYXk6IE1lbnVJdGVtTW9kZWxbXSA9IFtdO1xuXG4gICAgICAgIGlmIChhbnlNb2RlbCA9PT0gbnVsbCB8fCB0eXBlb2YgYW55TW9kZWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVudUl0ZW1Nb2RlbEFycmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG1lbnVJdGVtczogYW55W10gPSBbXTtcbiAgICAgICAgaWYoYW55TW9kZWwgaW5zdGFuY2VvZiAgQWN0aW9uTW9kZWxNZW51KXtcbiAgICAgICAgICAgIGxldCBhY3Rpb25NZW51ID0gYW55TW9kZWwgYXMgQWN0aW9uTW9kZWxNZW51O1xuXG4gICAgICAgICAgICBtZW51SXRlbXMgPSBhY3Rpb25NZW51Lml0ZW1zO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChsZXQgYWN0aW9uIG9mIG1lbnVJdGVtcykge1xuICAgICAgICAgICAgaWYgKGFjdGlvbi5pc1Nob3cgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBhY3Rpb24uaXNTaG93ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFhY3Rpb24uaXNTaG93KGNvbnRleHQpKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBpc0VuYWJsZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICAgICAgICAgIGxldCBtZW51SXRlbSA9IG51bGw7XG4gICAgICAgICAgICBsZXQgYWN0aW9uSXRlbXMgPSB0aGlzLmdldE1lbnVJdGVtTW9kZWxzKGFjdGlvbiwgY29udGV4dCk7XG5cbiAgICAgICAgICAgIGlmKGFjdGlvbkl0ZW1zLmxlbmd0aCA+IDApe1xuICAgICAgICAgICAgICAgIC8vIGlzIG1lbnVcbiAgICAgICAgICAgICAgICBtZW51SXRlbSA9IG5ldyBNZW51TW9kZWwoRGVmYXVsdE1lbnUsIGFjdGlvbi5sYWJlbCwgYWN0aW9uSXRlbXMsIGFjdGlvbi5tZW51TW9kZWxGYWN0b3J5KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gaXMgaXRlbVxuICAgICAgICAgICAgICAgIG1lbnVJdGVtID0gbmV3IE1lbnVJdGVtTW9kZWwoRGVmYXVsdE1lbnVJdGVtLCBhY3Rpb24ubGFiZWwsIGlzRW5hYmxlLCAoYWN0aW9uRXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZighaXNFbmFibGUpe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5hY3Rpb25QZXJmb3JtZWRIYW5kbGVyLmNhbGwobnVsbCwgYWN0aW9uRXZlbnQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZihtZW51SXRlbSAhPT0gbnVsbCl7XG4gICAgICAgICAgICAgICAgbWVudUl0ZW1Nb2RlbEFycmF5LnB1c2gobWVudUl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1lbnVJdGVtTW9kZWxBcnJheTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlTWVudU1vZGVsKGNvbnRleHQ6IElDb250ZXh0KTogTWVudU1vZGVsIHtcbiAgICAgICAgbGV0IG1lbnVJdGVtTW9kZWxBcnJheTogTWVudUl0ZW1Nb2RlbFtdID0gW107XG5cbiAgICAgICAgaWYgKGNvbnRleHQgPT09IG51bGwgfHwgdHlwZW9mIGNvbnRleHQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1lbnVNb2RlbChEZWZhdWx0TWVudUl0ZW0sICdhY3Rpb24gTWVudScsIG1lbnVJdGVtTW9kZWxBcnJheSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgYW55Q29udGV4dDogYW55ID0gY29udGV4dDtcblxuICAgICAgICBpZiAodHlwZW9mIGFueUNvbnRleHQuZ2V0TW9kZWwgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTWVudU1vZGVsKERlZmF1bHRNZW51SXRlbSwgJ2FjdGlvbiBNZW51JywgbWVudUl0ZW1Nb2RlbEFycmF5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBhbnlNb2RlbDogYW55ID0gYW55Q29udGV4dC5nZXRNb2RlbCgpO1xuXG4gICAgICAgIGlmIChhbnlNb2RlbCA9PT0gbnVsbCB8fCB0eXBlb2YgYW55TW9kZWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1lbnVNb2RlbChEZWZhdWx0TWVudUl0ZW0sICdhY3Rpb24gTWVudScsIG1lbnVJdGVtTW9kZWxBcnJheSk7XG4gICAgICAgIH1cblxuICAgICAgICBtZW51SXRlbU1vZGVsQXJyYXkgPSB0aGlzLmdldE1lbnVJdGVtTW9kZWxzKGFueU1vZGVsLCBjb250ZXh0KTtcblxuXG4gICAgICAgIGxldCBtb2RlbDogTWVudU1vZGVsID0gbmV3IE1lbnVNb2RlbChEZWZhdWx0TWVudUl0ZW0sICdhY3Rpb24gTWVudScsIG1lbnVJdGVtTW9kZWxBcnJheSk7XG5cbiAgICAgICAgcmV0dXJuIG1vZGVsO1xuICAgIH1cbn1cbiJdfQ==