UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

216 lines (215 loc) 16.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, Input, EventEmitter, Output } from '@angular/core'; import { AbstractMenuItem } from './AbstractMenuItem'; import { NeedFocusService } from '../service/NeedFocusService.service'; import { Option } from '../decorator/Option.decorator'; import { I18N } from '../decorator/I18N.decorator'; import { MenuItemModel } from './model/MenuItemModel'; import { EventUtils } from '../share/utils/EventUtils'; import { CHECK_EVENT, UNCHECK_EVENT } from '../share/CustomEventType'; const /** @type {?} */ TYPE_NAME = "phx-check-menu-item"; export class CheckMenuItem extends AbstractMenuItem { /** * @param {?} needFocusService */ constructor(needFocusService) { super(needFocusService); this._isCheck = false; this.checkEvent = new EventEmitter(); this.uncheckEvent = new EventEmitter(); } /** * @return {?} */ ngOnInit() { if (this.model !== null && typeof this.model !== 'undefined') { let /** @type {?} */ chkModel = this.model; if (chkModel.checked !== null && typeof chkModel.checked === 'boolean') { this._isCheck = chkModel.checked; } } } /** * @param {?} check * @return {?} */ setCheck(check) { this._isCheck = check; } /** * @return {?} */ hasModel() { if (this.model !== null && typeof this.model !== 'undefined') { return true; } return false; } /** * @return {?} */ hasPrefixIcon() { if (this.model !== null && typeof this.model !== 'undefined') { let /** @type {?} */ chkModel = this.model; if (chkModel.prefixIconURL !== null && typeof chkModel.prefixIconURL === 'string') { return true; } } return false; } /** * @return {?} */ check() { this.setCheck(true); let /** @type {?} */ data = null; let /** @type {?} */ ev = EventUtils.newCustomEvent(CHECK_EVENT, this, data, null); this.checkEvent.emit(ev); } /** * @return {?} */ uncheck() { this.setCheck(false); let /** @type {?} */ data = null; let /** @type {?} */ ev = EventUtils.newCustomEvent(UNCHECK_EVENT, this, data, null); this.uncheckEvent.emit(ev); } /** * @return {?} */ getCheckEvent() { return this.checkEvent; } /** * @param {?} event * @return {?} */ setCheckEvent(event) { this.checkEvent = event; } /** * @return {?} */ getUncheckEvent() { return this.uncheckEvent; } /** * @param {?} event * @return {?} */ setUncheckEvent(event) { this.uncheckEvent = event; } /** * @return {?} */ isCheck() { return this._isCheck; } /** * @return {?} */ getPrefixIconURL() { if (this.model === null || typeof this.model === 'undefined') { return null; } return (/** @type {?} */ (this.model)).prefixIconURL; } /** * @return {?} */ getPrefixLabel() { if (this.model === null || typeof this.model === 'undefined') { return null; } return (/** @type {?} */ (this.model)).prefixLabel; } /** * @return {?} */ getLabel() { if (this.model === null || typeof this.model === 'undefined') { return null; } return (/** @type {?} */ (this.model)).label; } } CheckMenuItem.TYPE_NAME = TYPE_NAME; CheckMenuItem.CHECK_EVENT = CHECK_EVENT; CheckMenuItem.UNCHECK_EVENT = UNCHECK_EVENT; CheckMenuItem.decorators = [ { type: Component, args: [{ moduleId: module.id, selector: TYPE_NAME, template: `<div class="phx-check-menu-item" (click)="onClick($event)"> <div class="container" *ngIf="hasModel()"> <div class="left"> <div *ngIf="hasPrefixIcon()"> <img src="{{getPrefixIconURL()}}"> </div> <div *ngIf="!hasPrefixIcon()"> {{getPrefixLabel()}} </div> </div> <div class="center">{{getLabel()}}</div> <div class="right"> <div class="heavy-check-mark" *ngIf="isCheck()"></div> </div> </div> </div> ` },] }, ]; /** @nocollapse */ CheckMenuItem.ctorParameters = () => [ { type: NeedFocusService, }, ]; CheckMenuItem.propDecorators = { "model": [{ type: Input },], "checkEvent": [{ type: Output, args: ['phxCheck',] },], "uncheckEvent": [{ type: Output, args: ['phxUncheck',] },], }; tslib_1.__decorate([ Option(), I18N(), tslib_1.__metadata("design:type", MenuItemModel) ], CheckMenuItem.prototype, "model", void 0); tslib_1.__decorate([ Option('check'), tslib_1.__metadata("design:type", EventEmitter) ], CheckMenuItem.prototype, "checkEvent", void 0); tslib_1.__decorate([ Option('uncheck'), tslib_1.__metadata("design:type", EventEmitter) ], CheckMenuItem.prototype, "uncheckEvent", void 0); function CheckMenuItem_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ CheckMenuItem.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ CheckMenuItem.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ CheckMenuItem.propDecorators; /** @type {?} */ CheckMenuItem.TYPE_NAME; /** @type {?} */ CheckMenuItem.CHECK_EVENT; /** @type {?} */ CheckMenuItem.UNCHECK_EVENT; /** @type {?} */ CheckMenuItem.prototype._isCheck; /** @type {?} */ CheckMenuItem.prototype.model; /** @type {?} */ CheckMenuItem.prototype.checkEvent; /** @type {?} */ CheckMenuItem.prototype.uncheckEvent; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2hlY2tNZW51SXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnQvQ2hlY2tNZW51SXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFzQixLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl0RSx1QkFBTSxTQUFTLEdBQVcscUJBQXFCLENBQUM7QUF1QmhELE1BQU0sb0JBQXFCLFNBQVEsZ0JBQWdCOzs7O0lBcUJqRCxZQUFZLGdCQUFrQztRQUM1QyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBQ3hDOzs7O0lBRU0sUUFBUTtRQUNiLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLENB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SUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLENBQUMsbUJBQU0sSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLFdBQVcsQ0FBQzs7Ozs7SUFHaEMsUUFBUTtRQUNiLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQzdELE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDYjtRQUVELE1BQU0sQ0FBQyxtQkFBTSxJQUFJLENBQUMsS0FBSyxFQUFDLENBQUMsS0FBSyxDQUFDOzs7MEJBcEhVLFNBQVM7NEJBRVAsV0FBVzs4QkFDVCxhQUFhOztZQTFCN0QsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRTtnQkFDbkIsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7OztDQWdCWDthQUNBOzs7O1lBbkNRLGdCQUFnQjs7O3NCQTZDdEIsS0FBSzsyQkFLTCxNQUFNLFNBQUMsVUFBVTs2QkFHakIsTUFBTSxTQUFDLFlBQVk7OztJQVBuQixNQUFNLEVBQUU7SUFDUixJQUFJLEVBQUU7c0NBQ1UsYUFBYTs7O0lBRzdCLE1BQU0sQ0FBQyxPQUFPLENBQUM7c0NBQ0ksWUFBWTs7O0lBRS9CLE1BQU0sQ0FBQyxTQUFTLENBQUM7c0NBQ0ksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBFbGVtZW50UmVmLCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0TWVudUl0ZW0gfSBmcm9tICcuL0Fic3RyYWN0TWVudUl0ZW0nO1xuaW1wb3J0IHsgTmVlZEZvY3VzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvTmVlZEZvY3VzU2VydmljZS5zZXJ2aWNlJztcblxuaW1wb3J0IHsgT3B0aW9uIH0gZnJvbSAnLi4vZGVjb3JhdG9yL09wdGlvbi5kZWNvcmF0b3InO1xuaW1wb3J0IHsgSTE4TiB9IGZyb20gJy4uL2RlY29yYXRvci9JMThOLmRlY29yYXRvcic7XG5cbmltcG9ydCB7IE1lbnVJdGVtTW9kZWwgfSBmcm9tICcuL21vZGVsL01lbnVJdGVtTW9kZWwnO1xuXG5pbXBvcnQgeyBFdmVudFV0aWxzIH0gZnJvbSAnLi4vc2hhcmUvdXRpbHMvRXZlbnRVdGlscyc7XG5cbmltcG9ydCB7IENIRUNLX0VWRU5ULCBVTkNIRUNLX0VWRU5UIH0gZnJvbSAnLi4vc2hhcmUvQ3VzdG9tRXZlbnRUeXBlJztcblxuZGVjbGFyZSB2YXIgJDogYW55O1xuXG5jb25zdCBUWVBFX05BTUU6IHN0cmluZyA9IFwicGh4LWNoZWNrLW1lbnUtaXRlbVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgbW9kdWxlSWQ6IG1vZHVsZS5pZCxcbiAgc2VsZWN0b3I6IFRZUEVfTkFNRSxcbiAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwicGh4LWNoZWNrLW1lbnUtaXRlbVwiIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIj5cblx0PGRpdiBjbGFzcz1cImNvbnRhaW5lclwiICpuZ0lmPVwiaGFzTW9kZWwoKVwiPlxuXHRcdDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiaGFzUHJlZml4SWNvbigpXCI+XG5cdFx0XHRcdDxpbWcgc3JjPVwie3tnZXRQcmVmaXhJY29uVVJMKCl9fVwiPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiIWhhc1ByZWZpeEljb24oKVwiPlxuXHRcdFx0XHR7e2dldFByZWZpeExhYmVsKCl9fVxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImNlbnRlclwiPnt7Z2V0TGFiZWwoKX19PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cInJpZ2h0XCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiaGVhdnktY2hlY2stbWFya1wiICpuZ0lmPVwiaXNDaGVjaygpXCI+PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuPC9kaXY+XG5gXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrTWVudUl0ZW0gZXh0ZW5kcyBBYnN0cmFjdE1lbnVJdGVtIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRZUEVfTkFNRTogc3RyaW5nID0gVFlQRV9OQU1FO1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0hFQ0tfRVZFTlQ6IHN0cmluZyA9IENIRUNLX0VWRU5UO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFVOQ0hFQ0tfRVZFTlQ6IHN0cmluZyA9IFVOQ0hFQ0tfRVZFTlQ7XG5cbiAgcHJpdmF0ZSBfaXNDaGVjazogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgQEkxOE4oKVxuICBwcm90ZWN0ZWQgbW9kZWw6IE1lbnVJdGVtTW9kZWw7XG5cbiAgQE91dHB1dCgncGh4Q2hlY2snKVxuICBAT3B0aW9uKCdjaGVjaycpXG4gIHByaXZhdGUgY2hlY2tFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XG4gIEBPdXRwdXQoJ3BoeFVuY2hlY2snKVxuICBAT3B0aW9uKCd1bmNoZWNrJylcbiAgcHJpdmF0ZSB1bmNoZWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKG5lZWRGb2N1c1NlcnZpY2U6IE5lZWRGb2N1c1NlcnZpY2UpIHtcbiAgICBzdXBlcihuZWVkRm9jdXNTZXJ2aWNlKTtcbiAgICB0aGlzLl9pc0NoZWNrID0gZmFsc2U7XG4gICAgdGhpcy5jaGVja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIHRoaXMudW5jaGVja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1vZGVsICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLm1vZGVsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IGNoa01vZGVsOiBhbnkgPSB0aGlzLm1vZGVsO1xuICAgICAgaWYgKGNoa01vZGVsLmNoZWNrZWQgIT09IG51bGwgJiYgdHlwZW9mIGNoa01vZGVsLmNoZWNrZWQgPT09ICdib29sZWFuJykge1xuICAgICAgICB0aGlzLl9pc0NoZWNrID0gY2hrTW9kZWwuY2hlY2tlZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldENoZWNrKGNoZWNrOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5faXNDaGVjayA9IGNoZWNrO1xuICB9XG5cbiAgcHVibGljIGhhc01vZGVsKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm1vZGVsICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLm1vZGVsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNQcmVmaXhJY29uKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm1vZGVsICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLm1vZGVsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IGNoa01vZGVsOiBhbnkgPSB0aGlzLm1vZGVsO1xuICAgICAgaWYgKGNoa01vZGVsLnByZWZpeEljb25VUkwgIT09IG51bGwgJiYgdHlwZW9mIGNoa01vZGVsLnByZWZpeEljb25VUkwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLnNldENoZWNrKHRydWUpO1xuXG4gICAgbGV0IGRhdGE6IGFueSA9IG51bGw7XG4gICAgbGV0IGV2ID0gRXZlbnRVdGlscy5uZXdDdXN0b21FdmVudChDSEVDS19FVkVOVCwgdGhpcywgZGF0YSwgbnVsbCk7XG5cbiAgICB0aGlzLmNoZWNrRXZlbnQuZW1pdChldik7XG4gIH1cblxuICBwdWJsaWMgdW5jaGVjaygpOiB2b2lkIHtcbiAgICB0aGlzLnNldENoZWNrKGZhbHNlKTtcblxuICAgIGxldCBkYXRhOiBhbnkgPSBudWxsO1xuICAgIGxldCBldiA9IEV2ZW50VXRpbHMubmV3Q3VzdG9tRXZlbnQoVU5DSEVDS19FVkVOVCwgdGhpcywgZGF0YSwgbnVsbCk7XG5cbiAgICB0aGlzLnVuY2hlY2tFdmVudC5lbWl0KGV2KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDaGVja0V2ZW50KCk6IEV2ZW50RW1pdHRlcjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGVja0V2ZW50O1xuICB9XG5cbiAgcHVibGljIHNldENoZWNrRXZlbnQoZXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5jaGVja0V2ZW50ID0gZXZlbnQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0VW5jaGVja0V2ZW50KCk6IEV2ZW50RW1pdHRlcjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy51bmNoZWNrRXZlbnQ7XG4gIH1cblxuICBwdWJsaWMgc2V0VW5jaGVja0V2ZW50KGV2ZW50OiBFdmVudEVtaXR0ZXI8YW55Pik6IHZvaWQge1xuICAgIHRoaXMudW5jaGVja0V2ZW50ID0gZXZlbnQ7XG4gIH1cblxuICBwdWJsaWMgaXNDaGVjaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNDaGVjaztcbiAgfVxuXG4gIHB1YmxpYyBnZXRQcmVmaXhJY29uVVJMKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubW9kZWwgPT09IG51bGwgfHwgdHlwZW9mIHRoaXMubW9kZWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKDxhbnk+dGhpcy5tb2RlbCkucHJlZml4SWNvblVSTDtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQcmVmaXhMYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLm1vZGVsID09PSBudWxsIHx8IHR5cGVvZiB0aGlzLm1vZGVsID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuICg8YW55PnRoaXMubW9kZWwpLnByZWZpeExhYmVsO1xuICB9XG5cbiAgcHVibGljIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubW9kZWwgPT09IG51bGwgfHwgdHlwZW9mIHRoaXMubW9kZWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gKDxhbnk+dGhpcy5tb2RlbCkubGFiZWw7XG4gIH1cbn1cbiJdfQ==