UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

94 lines 7 kB
/** * @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=