com.phloxui
Version:
PhloxUI Ng2+ Framework
110 lines (109 loc) • 11.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
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';
var DefaultActionModelMenuFactory = /** @class */ (function () {
function DefaultActionModelMenuFactory() {
}
/**
* @param {?} anyModel
* @param {?} context
* @return {?}
*/
DefaultActionModelMenuFactory.prototype.getMenuItemModels = /**
* @param {?} anyModel
* @param {?} context
* @return {?}
*/
function (anyModel, context) {
var /** @type {?} */ menuItemModelArray = [];
if (anyModel === null || typeof anyModel === 'undefined') {
return menuItemModelArray;
}
var /** @type {?} */ menuItems = [];
if (anyModel instanceof ActionModelMenu) {
var /** @type {?} */ actionMenu = /** @type {?} */ (anyModel);
menuItems = actionMenu.items;
}
var _loop_1 = function (action) {
if (action.isShow === null) {
return "continue";
}
if (typeof action.isShow !== 'function') {
return "continue";
}
if (!action.isShow(context)) {
return "continue";
}
var /** @type {?} */ isEnable = true;
var /** @type {?} */ menuItem = null;
var /** @type {?} */ actionItems = this_1.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, function (actionEvent) {
if (!isEnable) {
return;
}
action.actionPerformedHandler.call(null, actionEvent);
});
}
if (menuItem !== null) {
menuItemModelArray.push(menuItem);
}
};
var this_1 = this;
try {
for (var menuItems_1 = tslib_1.__values(menuItems), menuItems_1_1 = menuItems_1.next(); !menuItems_1_1.done; menuItems_1_1 = menuItems_1.next()) {
var action = menuItems_1_1.value;
_loop_1(action);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (menuItems_1_1 && !menuItems_1_1.done && (_a = menuItems_1.return)) _a.call(menuItems_1);
}
finally { if (e_1) throw e_1.error; }
}
return menuItemModelArray;
var e_1, _a;
};
/**
* @param {?} context
* @return {?}
*/
DefaultActionModelMenuFactory.prototype.createMenuModel = /**
* @param {?} context
* @return {?}
*/
function (context) {
var /** @type {?} */ menuItemModelArray = [];
if (context === null || typeof context === 'undefined') {
return new MenuModel(DefaultMenuItem, 'action Menu', menuItemModelArray);
}
var /** @type {?} */ anyContext = context;
if (typeof anyContext.getModel !== 'function') {
return new MenuModel(DefaultMenuItem, 'action Menu', menuItemModelArray);
}
var /** @type {?} */ anyModel = anyContext.getModel();
if (anyModel === null || typeof anyModel === 'undefined') {
return new MenuModel(DefaultMenuItem, 'action Menu', menuItemModelArray);
}
menuItemModelArray = this.getMenuItemModels(anyModel, context);
var /** @type {?} */ model = new MenuModel(DefaultMenuItem, 'action Menu', menuItemModelArray);
return model;
};
return DefaultActionModelMenuFactory;
}());
export { DefaultActionModelMenuFactory };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdEFjdGlvbk1vZGVsTWVudUZhY3RvcnkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvZWRpdG9yL0RlZmF1bHRBY3Rpb25Nb2RlbE1lbnVGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUczRCxJQUFBOzs7Ozs7OztJQUVZLHlEQUFpQjs7Ozs7Y0FBQyxRQUFhLEVBQUUsT0FBaUI7UUFDdEQscUJBQUksa0JBQWtCLEdBQW9CLEVBQUUsQ0FBQztRQUU3QyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDdkQsTUFBTSxDQUFDLGtCQUFrQixDQUFDO1NBQzdCO1FBRUQscUJBQUksU0FBUyxHQUFVLEVBQUUsQ0FBQztRQUMxQixFQUFFLENBQUEsQ0FBQyxRQUFRLFlBQWEsZUFBZSxDQUFDLENBQUEsQ0FBQztZQUNyQyxxQkFBSSxVQUFVLHFCQUFHLFFBQTJCLENBQUEsQ0FBQztZQUU3QyxTQUFTLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztTQUNoQztnQ0FFUSxNQUFNO1lBQ1gsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDOzthQUU1QjtZQUVELEVBQUUsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDOzthQUV6QztZQUVELEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7O2FBRTdCO1lBRUQscUJBQUksUUFBUSxHQUFZLElBQUksQ0FBQztZQUU3QixxQkFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLHFCQUFJLFdBQVcsR0FBRyxPQUFLLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUUxRCxFQUFFLENBQUEsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBLENBQUM7O2dCQUV2QixRQUFRLEdBQUcsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2FBQzdGO1lBQUMsSUFBSSxDQUFDLENBQUM7O2dCQUVKLFFBQVEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsVUFBQyxXQUFnQjtvQkFDbkYsRUFBRSxDQUFBLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQSxDQUFDO3dCQUNWLE1BQU0sQ0FBQztxQkFDVjtvQkFDRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztpQkFDekQsQ0FBQyxDQUFDO2FBQ047WUFFRCxFQUFFLENBQUEsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUEsQ0FBQztnQkFDbEIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3JDOzs7O1lBakNMLEdBQUcsQ0FBQyxDQUFlLElBQUEsY0FBQSxpQkFBQSxTQUFTLENBQUEsb0NBQUE7Z0JBQXZCLElBQUksTUFBTSxzQkFBQTt3QkFBTixNQUFNO2FBa0NkOzs7Ozs7Ozs7UUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUM7Ozs7Ozs7SUFHdkIsdURBQWU7Ozs7Y0FBQyxPQUFpQjtRQUNwQyxxQkFBSSxrQkFBa0IsR0FBb0IsRUFBRSxDQUFDO1FBRTdDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLElBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNyRCxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQzVFO1FBRUQscUJBQUksVUFBVSxHQUFRLE9BQU8sQ0FBQztRQUU5QixFQUFFLENBQUMsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxRQUFRLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztZQUM1QyxNQUFNLENBQUMsSUFBSSxTQUFTLENBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1NBQzVFO1FBRUQscUJBQUksUUFBUSxHQUFRLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUUxQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLE9BQU8sUUFBUSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDdkQsTUFBTSxDQUFDLElBQUksU0FBUyxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztTQUM1RTtRQUVELGtCQUFrQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFHL0QscUJBQUksS0FBSyxHQUFjLElBQUksU0FBUyxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUV6RixNQUFNLENBQUMsS0FBSyxDQUFDOzt3Q0F6RnJCO0lBMkZDLENBQUE7QUFqRkQseUNBaUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU1lbnVNb2RlbEZhY3RvcnkgfSBmcm9tICcuLi9JTWVudU1vZGVsRmFjdG9yeSc7XG5pbXBvcnQgeyBJQ29udGV4dCB9IGZyb20gJy4uL0lDb250ZXh0JztcbmltcG9ydCB7IERlZmF1bHRNZW51SXRlbSB9IGZyb20gJy4uL0RlZmF1bHRNZW51SXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVmYXVsdE1lbnUgfSBmcm9tICcuLi9EZWZhdWx0TWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVudUl0ZW1Nb2RlbCB9IGZyb20gJy4uL21vZGVsL01lbnVJdGVtTW9kZWwnO1xuaW1wb3J0IHsgTWVudU1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvTWVudU1vZGVsJztcbmltcG9ydCB7IEFjdGlvbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWwvQWN0aW9uTW9kZWwnO1xuaW1wb3J0IHsgQWN0aW9uTW9kZWxNZW51IH0gZnJvbSAnLi4vbW9kZWwvQWN0aW9uTW9kZWxNZW51JztcbmltcG9ydCB7IEFjdGlvbkJ1dHRvbiB9IGZyb20gJy4vZWRpdG9yLmludGVybmFsL0FjdGlvbkJ1dHRvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgRGVmYXVsdEFjdGlvbk1vZGVsTWVudUZhY3RvcnkgaW1wbGVtZW50cyBJTWVudU1vZGVsRmFjdG9yeSB7XG5cbiAgICBwcml2YXRlIGdldE1lbnVJdGVtTW9kZWxzKGFueU1vZGVsOiBhbnksIGNvbnRleHQ6IElDb250ZXh0KTogTWVudUl0ZW1Nb2RlbFtde1xuICAgICAgICBsZXQgbWVudUl0ZW1Nb2RlbEFycmF5OiBNZW51SXRlbU1vZGVsW10gPSBbXTtcblxuICAgICAgICBpZiAoYW55TW9kZWwgPT09IG51bGwgfHwgdHlwZW9mIGFueU1vZGVsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIG1lbnVJdGVtTW9kZWxBcnJheTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBtZW51SXRlbXM6IGFueVtdID0gW107XG4gICAgICAgIGlmKGFueU1vZGVsIGluc3RhbmNlb2YgIEFjdGlvbk1vZGVsTWVudSl7XG4gICAgICAgICAgICBsZXQgYWN0aW9uTWVudSA9IGFueU1vZGVsIGFzIEFjdGlvbk1vZGVsTWVudTtcblxuICAgICAgICAgICAgbWVudUl0ZW1zID0gYWN0aW9uTWVudS5pdGVtcztcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGFjdGlvbiBvZiBtZW51SXRlbXMpIHtcbiAgICAgICAgICAgIGlmIChhY3Rpb24uaXNTaG93ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgYWN0aW9uLmlzU2hvdyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghYWN0aW9uLmlzU2hvdyhjb250ZXh0KSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgaXNFbmFibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgICAgICAgICBsZXQgbWVudUl0ZW0gPSBudWxsO1xuICAgICAgICAgICAgbGV0IGFjdGlvbkl0ZW1zID0gdGhpcy5nZXRNZW51SXRlbU1vZGVscyhhY3Rpb24sIGNvbnRleHQpO1xuXG4gICAgICAgICAgICBpZihhY3Rpb25JdGVtcy5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgICAgICAvLyBpcyBtZW51XG4gICAgICAgICAgICAgICAgbWVudUl0ZW0gPSBuZXcgTWVudU1vZGVsKERlZmF1bHRNZW51LCBhY3Rpb24ubGFiZWwsIGFjdGlvbkl0ZW1zLCBhY3Rpb24ubWVudU1vZGVsRmFjdG9yeSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGlzIGl0ZW1cbiAgICAgICAgICAgICAgICBtZW51SXRlbSA9IG5ldyBNZW51SXRlbU1vZGVsKERlZmF1bHRNZW51SXRlbSwgYWN0aW9uLmxhYmVsLCBpc0VuYWJsZSwgKGFjdGlvbkV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYoIWlzRW5hYmxlKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBhY3Rpb24uYWN0aW9uUGVyZm9ybWVkSGFuZGxlci5jYWxsKG51bGwsIGFjdGlvbkV2ZW50KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYobWVudUl0ZW0gIT09IG51bGwpe1xuICAgICAgICAgICAgICAgIG1lbnVJdGVtTW9kZWxBcnJheS5wdXNoKG1lbnVJdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtZW51SXRlbU1vZGVsQXJyYXk7XG4gICAgfVxuXG4gICAgcHVibGljIGNyZWF0ZU1lbnVNb2RlbChjb250ZXh0OiBJQ29udGV4dCk6IE1lbnVNb2RlbCB7XG4gICAgICAgIGxldCBtZW51SXRlbU1vZGVsQXJyYXk6IE1lbnVJdGVtTW9kZWxbXSA9IFtdO1xuXG4gICAgICAgIGlmIChjb250ZXh0ID09PSBudWxsIHx8IHR5cGVvZiBjb250ZXh0ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBNZW51TW9kZWwoRGVmYXVsdE1lbnVJdGVtLCAnYWN0aW9uIE1lbnUnLCBtZW51SXRlbU1vZGVsQXJyYXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGFueUNvbnRleHQ6IGFueSA9IGNvbnRleHQ7XG5cbiAgICAgICAgaWYgKHR5cGVvZiBhbnlDb250ZXh0LmdldE1vZGVsICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IE1lbnVNb2RlbChEZWZhdWx0TWVudUl0ZW0sICdhY3Rpb24gTWVudScsIG1lbnVJdGVtTW9kZWxBcnJheSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgYW55TW9kZWw6IGFueSA9IGFueUNvbnRleHQuZ2V0TW9kZWwoKTtcblxuICAgICAgICBpZiAoYW55TW9kZWwgPT09IG51bGwgfHwgdHlwZW9mIGFueU1vZGVsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBNZW51TW9kZWwoRGVmYXVsdE1lbnVJdGVtLCAnYWN0aW9uIE1lbnUnLCBtZW51SXRlbU1vZGVsQXJyYXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgbWVudUl0ZW1Nb2RlbEFycmF5ID0gdGhpcy5nZXRNZW51SXRlbU1vZGVscyhhbnlNb2RlbCwgY29udGV4dCk7XG5cblxuICAgICAgICBsZXQgbW9kZWw6IE1lbnVNb2RlbCA9IG5ldyBNZW51TW9kZWwoRGVmYXVsdE1lbnVJdGVtLCAnYWN0aW9uIE1lbnUnLCBtZW51SXRlbU1vZGVsQXJyYXkpO1xuXG4gICAgICAgIHJldHVybiBtb2RlbDtcbiAgICB9XG59XG4iXX0=