com.phloxui
Version:
PhloxUI Ng2+ Framework
137 lines (136 loc) • 10.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { AbstractMenuItem } from '../component/AbstractMenuItem';
/**
* <p style="text-indent: 2em;">
* An abstract base class for <code>menu</code> component. A <code>menu</code> might consist of one or more child <code>menu item</code>s.
* You can see that this class extends [[AbstractMenuItem]] allowing itself to be able to be added into another parent <code>menu</code>.
* It is not necessary that all child <code>menu item</code>s must be the same <code>type</code>. For example, a single <code>menu</code>
* may consist of <code>checkable menu item</code>s or <code>sub menu</code>s etc. You can specify the type of each <code>menu item</code>
* by using the model's field [[MenuItemModel.type]].
* </p>
*
* @author shiorin, tee4cute
* @see [[AbstractMenuItem]]
* @see [[MenuItemModel]]
* @abstract
*/
var /**
* <p style="text-indent: 2em;">
* An abstract base class for <code>menu</code> component. A <code>menu</code> might consist of one or more child <code>menu item</code>s.
* You can see that this class extends [[AbstractMenuItem]] allowing itself to be able to be added into another parent <code>menu</code>.
* It is not necessary that all child <code>menu item</code>s must be the same <code>type</code>. For example, a single <code>menu</code>
* may consist of <code>checkable menu item</code>s or <code>sub menu</code>s etc. You can specify the type of each <code>menu item</code>
* by using the model's field [[MenuItemModel.type]].
* </p>
*
* @author shiorin, tee4cute
* @see [[AbstractMenuItem]]
* @see [[MenuItemModel]]
* @abstract
*/
AbstractMenu = /** @class */ (function (_super) {
tslib_1.__extends(AbstractMenu, _super);
function AbstractMenu(needFocusService) {
var _this = _super.call(this, needFocusService) || this;
_this.items = [];
_this.menuItemHandler = function (data) {
if ((data !== null && typeof data !== 'undefined') && (data.instance !== null && typeof data.instance !== 'undefined')) {
if (_this !== null && typeof _this !== 'undefined') {
data.instance.setMenu(_this);
data.instance.setModel(data.model);
_this.addMenuItem(data.instance);
}
else {
data.instance.setMenu(null);
}
}
};
return _this;
}
/**
* @param {?} menuItem
* @return {?}
*/
AbstractMenu.prototype.addMenuItem = /**
* @param {?} menuItem
* @return {?}
*/
function (menuItem) {
if (menuItem == null) {
return;
}
this.items.push(menuItem);
};
/**
* @return {?}
*/
AbstractMenu.prototype.getItems = /**
* @return {?}
*/
function () {
return this.items;
};
/**
* @return {?}
*/
AbstractMenu.prototype.renderMenu = /**
* @return {?}
*/
function () {
// clear items
this.items = [];
this.doRenderMenu();
};
/**
* @return {?}
*/
AbstractMenu.prototype.getMenuItemHandler = /**
* @return {?}
*/
function () {
return this.menuItemHandler;
};
/**
* @return {?}
*/
AbstractMenu.prototype.getModel = /**
* @return {?}
*/
function () {
return this.model;
};
return AbstractMenu;
}(AbstractMenuItem));
/**
* <p style="text-indent: 2em;">
* An abstract base class for <code>menu</code> component. A <code>menu</code> might consist of one or more child <code>menu item</code>s.
* You can see that this class extends [[AbstractMenuItem]] allowing itself to be able to be added into another parent <code>menu</code>.
* It is not necessary that all child <code>menu item</code>s must be the same <code>type</code>. For example, a single <code>menu</code>
* may consist of <code>checkable menu item</code>s or <code>sub menu</code>s etc. You can specify the type of each <code>menu item</code>
* by using the model's field [[MenuItemModel.type]].
* </p>
*
* @author shiorin, tee4cute
* @see [[AbstractMenuItem]]
* @see [[MenuItemModel]]
* @abstract
*/
export { AbstractMenu };
function AbstractMenu_tsickle_Closure_declarations() {
/** @type {?} */
AbstractMenu.prototype.model;
/** @type {?} */
AbstractMenu.prototype.items;
/** @type {?} */
AbstractMenu.prototype.menuItemHandler;
/**
* @abstract
* @return {?}
*/
AbstractMenu.prototype.doRenderMenu = function () { };
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RNZW51LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L0Fic3RyYWN0TWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUdBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFnQmpFOzs7Ozs7Ozs7Ozs7OztBQUFBO0lBQTJDLHdDQUFnQjtJQVd2RCxzQkFBWSxnQkFBa0M7UUFBOUMsWUFDSSxrQkFBTSxnQkFBZ0IsQ0FBQyxTQWMxQjtRQVpHLEtBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUksQ0FBQyxlQUFlLEdBQUcsVUFBQyxJQUFTO1lBQzdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JILEVBQUUsQ0FBQyxDQUFDLEtBQUksS0FBSyxJQUFJLElBQUksT0FBTyxLQUFJLEtBQUssV0FBVyxDQUFDLENBQUEsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSSxDQUFDLENBQUM7b0JBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDbkMsS0FBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ25DO2dCQUFDLElBQUksQ0FBQyxDQUFDO29CQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMvQjthQUNKO1NBQ0osQ0FBQTs7S0FDSjs7Ozs7SUFFUyxrQ0FBVzs7OztJQUFyQixVQUFzQixRQUEwQjtRQUM1QyxFQUFFLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNuQixNQUFNLENBQUM7U0FDVjtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQzdCOzs7O0lBRU0sK0JBQVE7Ozs7UUFDWCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzs7Ozs7SUFLZixpQ0FBVTs7Ozs7UUFFYixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Ozs7O0lBR2pCLHlDQUFrQjs7OztRQUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQzs7Ozs7SUFHdkIsK0JBQVE7Ozs7UUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzs7dUJBdkV4QjtFQW1CMkMsZ0JBQWdCLEVBc0QxRCxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7QUF0REQsd0JBc0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZW51SXRlbU1vZGVsIH0gZnJvbSAnLi9tb2RlbC9NZW51SXRlbU1vZGVsJztcbmltcG9ydCB7IE1lbnVNb2RlbCB9IGZyb20gJy4vbW9kZWwvTWVudU1vZGVsJztcbmltcG9ydCB7IEFic3RyYWN0TWVudUl0ZW0gfSBmcm9tICcuLi9jb21wb25lbnQvQWJzdHJhY3RNZW51SXRlbSc7XG5pbXBvcnQgeyBOZWVkRm9jdXNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9OZWVkRm9jdXNTZXJ2aWNlLnNlcnZpY2UnO1xuXG4vKipcbiAqIDxwIHN0eWxlPVwidGV4dC1pbmRlbnQ6IDJlbTtcIj5cbiAqIEFuIGFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIDxjb2RlPm1lbnU8L2NvZGU+IGNvbXBvbmVudC4gQSA8Y29kZT5tZW51PC9jb2RlPiBtaWdodCBjb25zaXN0IG9mIG9uZSBvciBtb3JlIGNoaWxkIDxjb2RlPm1lbnUgaXRlbTwvY29kZT5zLlxuICogWW91IGNhbiBzZWUgdGhhdCB0aGlzIGNsYXNzIGV4dGVuZHMgW1tBYnN0cmFjdE1lbnVJdGVtXV0gYWxsb3dpbmcgaXRzZWxmIHRvIGJlIGFibGUgdG8gYmUgYWRkZWQgaW50byBhbm90aGVyIHBhcmVudCA8Y29kZT5tZW51PC9jb2RlPi5cbiAqIEl0IGlzIG5vdCBuZWNlc3NhcnkgdGhhdCBhbGwgY2hpbGQgPGNvZGU+bWVudSBpdGVtPC9jb2RlPnMgbXVzdCBiZSB0aGUgc2FtZSA8Y29kZT50eXBlPC9jb2RlPi4gRm9yIGV4YW1wbGUsIGEgc2luZ2xlIDxjb2RlPm1lbnU8L2NvZGU+XG4gKiBtYXkgY29uc2lzdCBvZiA8Y29kZT5jaGVja2FibGUgbWVudSBpdGVtPC9jb2RlPnMgb3IgPGNvZGU+c3ViIG1lbnU8L2NvZGU+cyBldGMuIFlvdSBjYW4gc3BlY2lmeSB0aGUgdHlwZSBvZiBlYWNoIDxjb2RlPm1lbnUgaXRlbTwvY29kZT5cbiAqIGJ5IHVzaW5nIHRoZSBtb2RlbCdzIGZpZWxkIFtbTWVudUl0ZW1Nb2RlbC50eXBlXV0uXG4gKiA8L3A+XG4gKlxuICogQGF1dGhvciBzaGlvcmluLCB0ZWU0Y3V0ZVxuICogQHNlZSBbW0Fic3RyYWN0TWVudUl0ZW1dXVxuICogQHNlZSBbW01lbnVJdGVtTW9kZWxdXVxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RNZW51IGV4dGVuZHMgQWJzdHJhY3RNZW51SXRlbSB7XG5cbiAgICAvLyBPdmVycmlkZSB0aGlzIHByb3BlcnR5IHRvIGRlY2xhcmUgaXQgYXMgVHlwZTxNZW51TW9kZWw+XG4gICAgLy8gQE9wdGlvbigpXG4gICAgLy8gQEkxOE4oKVxuICAgIHByb3RlY3RlZCBtb2RlbDogTWVudU1vZGVsO1xuICAgIC8vIEBJMThOKClcbiAgICBwcm90ZWN0ZWQgaXRlbXM6IEFic3RyYWN0TWVudUl0ZW1bXTtcbiAgICAvLyBAT3B0aW9uKClcbiAgICBwcm90ZWN0ZWQgbWVudUl0ZW1IYW5kbGVyOiBGdW5jdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKG5lZWRGb2N1c1NlcnZpY2U6IE5lZWRGb2N1c1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIobmVlZEZvY3VzU2VydmljZSk7XG5cbiAgICAgICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLm1lbnVJdGVtSGFuZGxlciA9IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmICgoZGF0YSAhPT0gbnVsbCAmJiB0eXBlb2YgZGF0YSAhPT0gJ3VuZGVmaW5lZCcpICYmIChkYXRhLmluc3RhbmNlICE9PSBudWxsICYmIHR5cGVvZiBkYXRhLmluc3RhbmNlICE9PSAndW5kZWZpbmVkJykpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcyAhPT0gbnVsbCAmJiB0eXBlb2YgdGhpcyAhPT0gJ3VuZGVmaW5lZCcpe1xuICAgICAgICAgICAgICAgICAgICBkYXRhLmluc3RhbmNlLnNldE1lbnUodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGRhdGEuaW5zdGFuY2Uuc2V0TW9kZWwoZGF0YS5tb2RlbCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkTWVudUl0ZW0oZGF0YS5pbnN0YW5jZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5pbnN0YW5jZS5zZXRNZW51KG51bGwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhZGRNZW51SXRlbShtZW51SXRlbTogQWJzdHJhY3RNZW51SXRlbSk6IHZvaWQge1xuICAgICAgICBpZiAobWVudUl0ZW0gPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXRlbXMucHVzaChtZW51SXRlbSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEl0ZW1zKCk6IEFic3RyYWN0TWVudUl0ZW1bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zO1xuICAgIH1cblxuICAgIGFic3RyYWN0IGRvUmVuZGVyTWVudSgpOiB2b2lkO1xuXG4gICAgcHVibGljIHJlbmRlck1lbnUoKTogdm9pZHtcbiAgICAgICAgLy8gY2xlYXIgaXRlbXNcbiAgICAgICAgdGhpcy5pdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLmRvUmVuZGVyTWVudSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRNZW51SXRlbUhhbmRsZXIoKTogRnVuY3Rpb24ge1xuICAgICAgcmV0dXJuIHRoaXMubWVudUl0ZW1IYW5kbGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRNb2RlbCgpOiBNZW51TW9kZWwge1xuICAgICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gICAgfVxufVxuIl19