@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
94 lines • 7 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: dropdown.service.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
var DropDownService = /** @class */ (function () {
function DropDownService() {
this.closeDropdownBind = this.closeDropdown.bind(this);
}
/**
* @param {?} dropdownScope
* @return {?}
*/
DropDownService.prototype.open = /**
* @param {?} dropdownScope
* @return {?}
*/
function (dropdownScope) {
var _this = this;
if (!this.openScope) {
// 延时绑定document事件,防止事件冒泡导致立即触发
setTimeout((/**
* @return {?}
*/
function () {
window.document.addEventListener('click', _this.closeDropdownBind);
}));
}
this.openScope = dropdownScope;
};
/**
* @param {?} dropdownScope
* @return {?}
*/
DropDownService.prototype.close = /**
* @param {?} dropdownScope
* @return {?}
*/
function (dropdownScope) {
if (this.openScope !== dropdownScope) {
return;
}
this.openScope = null;
window.document.removeEventListener('click', this.closeDropdownBind);
};
/**
* @private
* @param {?} event
* @return {?}
*/
DropDownService.prototype.closeDropdown = /**
* @private
* @param {?} event
* @return {?}
*/
function (event) {
if (!this.openScope) {
return;
}
/** @type {?} */
var menuEl = this.openScope.menuEl.nativeElement;
if (event && this.openScope.menuEl &&
((/input|textarea/i.test(((/** @type {?} */ (event.target))).tagName) && menuEl.contains(event.target))
|| this.openScope.closeScope === 'none'
|| (menuEl.contains(event.target) && this.openScope.closeScope === 'blank')
|| (this.openScope.dropdownChildren.some((/**
* @param {?} children
* @return {?}
*/
function (children) { return children.toggleEl.nativeElement.contains(event.target); }))))) {
return;
}
this.openScope.isOpen = false;
};
DropDownService.decorators = [
{ type: Injectable }
];
return DropDownService;
}());
export { DropDownService };
if (false) {
/**
* @type {?}
* @private
*/
DropDownService.prototype.openScope;
/**
* @type {?}
* @private
*/
DropDownService.prototype.closeDropdownBind;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWRldnVpL2Ryb3Bkb3duLyIsInNvdXJjZXMiOlsiZHJvcGRvd24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0M7SUFBQTtRQUlVLHNCQUFpQixHQUFrQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQW1DM0UsQ0FBQzs7Ozs7SUFqQ1EsOEJBQUk7Ozs7SUFBWCxVQUFZLGFBQWdDO1FBQTVDLGlCQVFDO1FBUEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsOEJBQThCO1lBQzlCLFVBQVU7OztZQUFDO2dCQUNULE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQ3BFLENBQUMsRUFBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztJQUNqQyxDQUFDOzs7OztJQUVNLCtCQUFLOzs7O0lBQVosVUFBYSxhQUFnQztRQUMzQyxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssYUFBYSxFQUFFO1lBQ3BDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7Ozs7OztJQUVPLHVDQUFhOzs7OztJQUFyQixVQUFzQixLQUFpQjtRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixPQUFPO1NBQ1I7O1lBQ0ssTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWE7UUFDbEQsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1lBQ2hDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxtQkFBTSxLQUFLLENBQUMsTUFBTSxFQUFBLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQzttQkFDckYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEtBQUssTUFBTTttQkFDcEMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsS0FBSyxPQUFPLENBQUM7bUJBQ3hFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJOzs7O2dCQUFDLFVBQUEsUUFBUSxJQUFJLE9BQUEsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBdEQsQ0FBc0QsRUFBQyxDQUFDLENBQzVHLEVBQUU7WUFDSCxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQzs7Z0JBdENGLFVBQVU7O0lBdUNYLHNCQUFDO0NBQUEsQUF2Q0QsSUF1Q0M7U0F0Q1ksZUFBZTs7Ozs7O0lBQzFCLG9DQUFxQzs7Ozs7SUFFckMsNENBQXlFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEcm9wRG93bkRpcmVjdGl2ZSB9IGZyb20gJy4vZHJvcGRvd24uZGlyZWN0aXZlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERyb3BEb3duU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBvcGVuU2NvcGU6IERyb3BEb3duRGlyZWN0aXZlO1xyXG5cclxuICBwcml2YXRlIGNsb3NlRHJvcGRvd25CaW5kOiBFdmVudExpc3RlbmVyID0gdGhpcy5jbG9zZURyb3Bkb3duLmJpbmQodGhpcyk7XHJcblxyXG4gIHB1YmxpYyBvcGVuKGRyb3Bkb3duU2NvcGU6IERyb3BEb3duRGlyZWN0aXZlKSB7XHJcbiAgICBpZiAoIXRoaXMub3BlblNjb3BlKSB7XHJcbiAgICAgIC8vIOW7tuaXtue7keWummRvY3VtZW505LqL5Lu277yM6Ziy5q2i5LqL5Lu25YaS5rOh5a+86Ie056uL5Y2z6Kem5Y+RXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHdpbmRvdy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xvc2VEcm9wZG93bkJpbmQpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMub3BlblNjb3BlID0gZHJvcGRvd25TY29wZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZShkcm9wZG93blNjb3BlOiBEcm9wRG93bkRpcmVjdGl2ZSkge1xyXG4gICAgaWYgKHRoaXMub3BlblNjb3BlICE9PSBkcm9wZG93blNjb3BlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMub3BlblNjb3BlID0gbnVsbDtcclxuICAgIHdpbmRvdy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xvc2VEcm9wZG93bkJpbmQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9zZURyb3Bkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAoIXRoaXMub3BlblNjb3BlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IG1lbnVFbCA9IHRoaXMub3BlblNjb3BlLm1lbnVFbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgaWYgKGV2ZW50ICYmIHRoaXMub3BlblNjb3BlLm1lbnVFbCAmJlxyXG4gICAgICAoKC9pbnB1dHx0ZXh0YXJlYS9pLnRlc3QoKDxhbnk+IGV2ZW50LnRhcmdldCkudGFnTmFtZSkgJiYgbWVudUVsLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpXHJcbiAgICAgIHx8IHRoaXMub3BlblNjb3BlLmNsb3NlU2NvcGUgPT09ICdub25lJ1xyXG4gICAgICB8fCAobWVudUVsLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiYgdGhpcy5vcGVuU2NvcGUuY2xvc2VTY29wZSA9PT0gJ2JsYW5rJylcclxuICAgICAgfHwgKHRoaXMub3BlblNjb3BlLmRyb3Bkb3duQ2hpbGRyZW4uc29tZShjaGlsZHJlbiA9PiBjaGlsZHJlbi50b2dnbGVFbC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpKVxyXG4gICAgICApKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMub3BlblNjb3BlLmlzT3BlbiA9IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=