UNPKG

@duoduo-oba/ng-devui

Version:

DevUI components based on Angular

142 lines 9.39 kB
/** * @fileoverview added by tsickle * Generated from: dropdown-toggle.directive.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, ElementRef, Host, HostBinding, HostListener, Input } from '@angular/core'; import { DropDownDirective } from './dropdown.directive'; export class DropDownToggleDirective { /** * @param {?} dropdown * @param {?} el */ constructor(dropdown, el) { this.dropdown = dropdown; this.el = el; this.addClass = true; this.toggleOnFocus = false; this.autoFocus = false; this.isMouseEvent = false; } /** * @return {?} */ get tabIndex() { return this.disabled ? null : 0; } /** * @return {?} */ get attrDisabled() { return this.disabled ? 'disabled' : null; } /** * @return {?} */ get disabled() { return this.dropdown && this.dropdown.disabled; } /** * @return {?} */ ngOnInit() { this.dropdown.dropDownToggle = this; } /** * @return {?} */ ngAfterViewInit() { if (this.autoFocus) { setTimeout((/** * @return {?} */ () => { this.el.nativeElement.focus(); }), 0); } } /** * @param {?} event * @return {?} */ toggleDropdown(event) { if (!this.disabled) { this.dropdown.toggle(); } return false; } // mousedown mouseup解决focus与click冲突问题 /** * @param {?} event * @return {?} */ setMouseEventTrue(event) { this.isMouseEvent = true; } /** * @param {?} event * @return {?} */ setMouseEventFalse(event) { this.isMouseEvent = false; } /** * @param {?} event * @return {?} */ toggleOnFocusFn(event) { if (this.toggleOnFocus && !this.disabled && !this.dropdown.isOpen && !this.isMouseEvent) { this.dropdown.toggle(); } } /** * @return {?} */ toggle() { this.dropdown.toggle(); } } DropDownToggleDirective.decorators = [ { type: Directive, args: [{ selector: '[dDropDownToggle]', exportAs: 'd-dropdown-toggle', },] } ]; /** @nocollapse */ DropDownToggleDirective.ctorParameters = () => [ { type: DropDownDirective, decorators: [{ type: Host }] }, { type: ElementRef } ]; DropDownToggleDirective.propDecorators = { tabIndex: [{ type: HostBinding, args: ['attr.tabIndex',] }], attrDisabled: [{ type: HostBinding, args: ['attr.disabled',] }], addClass: [{ type: HostBinding, args: ['class.devui-dropdown-toggle',] }], toggleOnFocus: [{ type: Input }], autoFocus: [{ type: Input }], toggleDropdown: [{ type: HostListener, args: ['click', ['$event'],] }], setMouseEventTrue: [{ type: HostListener, args: ['mousedown', ['$event'],] }], setMouseEventFalse: [{ type: HostListener, args: ['mouseup', ['$event'],] }], toggleOnFocusFn: [{ type: HostListener, args: ['focus', ['$event'],] }], toggle: [{ type: HostListener, args: ['keydown.enter',] }] }; if (false) { /** @type {?} */ DropDownToggleDirective.prototype.addClass; /** @type {?} */ DropDownToggleDirective.prototype.toggleOnFocus; /** @type {?} */ DropDownToggleDirective.prototype.autoFocus; /** @type {?} */ DropDownToggleDirective.prototype.isMouseEvent; /** * @type {?} * @private */ DropDownToggleDirective.prototype.dropdown; /** * @type {?} * @private */ DropDownToggleDirective.prototype.el; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdG9nZ2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWRldnVpL2Ryb3Bkb3duLyIsInNvdXJjZXMiOlsiZHJvcGRvd24tdG9nZ2xlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBVSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFNekQsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7SUFnQmxDLFlBQTRCLFFBQTJCLEVBQVUsRUFBYztRQUFuRCxhQUFRLEdBQVIsUUFBUSxDQUFtQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQVk7UUFMbkMsYUFBUSxHQUFHLElBQUksQ0FBQztRQUNuRCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzNCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBRThELENBQUM7Ozs7SUFmcEYsSUFBa0MsUUFBUTtRQUN4QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Ozs7SUFDRCxJQUNJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNDLENBQUM7Ozs7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDakQsQ0FBQzs7OztJQVFELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDdEMsQ0FBQzs7OztJQUNELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsVUFBVTs7O1lBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQztTQUNQO0lBQ0gsQ0FBQzs7Ozs7SUFHRCxjQUFjLENBQUMsS0FBaUI7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN4QjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7Ozs7O0lBR0QsaUJBQWlCLENBQUMsS0FBSztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDOzs7OztJQUVELGtCQUFrQixDQUFDLEtBQUs7UUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQzs7Ozs7SUFFRCxlQUFlLENBQUMsS0FBaUI7UUFDL0IsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN2RixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQzs7OztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7OztZQTFERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsUUFBUSxFQUFFLG1CQUFtQjthQUM5Qjs7OztZQUxRLGlCQUFpQix1QkFzQlgsSUFBSTtZQXZCQyxVQUFVOzs7dUJBUTNCLFdBQVcsU0FBQyxlQUFlOzJCQUczQixXQUFXLFNBQUMsZUFBZTt1QkFPM0IsV0FBVyxTQUFDLDZCQUE2Qjs0QkFDekMsS0FBSzt3QkFDTCxLQUFLOzZCQWdCTCxZQUFZLFNBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dDQVFoQyxZQUFZLFNBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2lDQUlwQyxZQUFZLFNBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDOzhCQUlsQyxZQUFZLFNBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO3FCQU1oQyxZQUFZLFNBQUMsZUFBZTs7OztJQXhDN0IsMkNBQTREOztJQUM1RCxnREFBK0I7O0lBQy9CLDRDQUEyQjs7SUFDM0IsK0NBQXFCOzs7OztJQUVULDJDQUEyQzs7Ozs7SUFBRSxxQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3QsIE9uSW5pdCwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRHJvcERvd25EaXJlY3RpdmUgfSBmcm9tICcuL2Ryb3Bkb3duLmRpcmVjdGl2ZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tkRHJvcERvd25Ub2dnbGVdJyxcclxuICBleHBvcnRBczogJ2QtZHJvcGRvd24tdG9nZ2xlJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERyb3BEb3duVG9nZ2xlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiSW5kZXgnKSBnZXQgdGFiSW5kZXgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCA/IG51bGwgOiAwO1xyXG4gIH1cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGlzYWJsZWQnKVxyXG4gIGdldCBhdHRyRGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsO1xyXG4gIH1cclxuICBnZXQgZGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kcm9wZG93biAmJiB0aGlzLmRyb3Bkb3duLmRpc2FibGVkO1xyXG4gIH1cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRldnVpLWRyb3Bkb3duLXRvZ2dsZScpIGFkZENsYXNzID0gdHJ1ZTtcclxuICBASW5wdXQoKSB0b2dnbGVPbkZvY3VzID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYXV0b0ZvY3VzID0gZmFsc2U7XHJcbiAgaXNNb3VzZUV2ZW50ID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcHJpdmF0ZSBkcm9wZG93bjogRHJvcERvd25EaXJlY3RpdmUsIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZHJvcGRvd24uZHJvcERvd25Ub2dnbGUgPSB0aGlzO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hdXRvRm9jdXMpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIHRvZ2dsZURyb3Bkb3duKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5kcm9wZG93bi50b2dnbGUoKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgLy8gbW91c2Vkb3duIG1vdXNldXDop6PlhrNmb2N1c+S4jmNsaWNr5Yay56qB6Zeu6aKYXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcclxuICBzZXRNb3VzZUV2ZW50VHJ1ZShldmVudCkge1xyXG4gICAgdGhpcy5pc01vdXNlRXZlbnQgPSB0cnVlO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdtb3VzZXVwJywgWyckZXZlbnQnXSlcclxuICBzZXRNb3VzZUV2ZW50RmFsc2UoZXZlbnQpIHtcclxuICAgIHRoaXMuaXNNb3VzZUV2ZW50ID0gZmFsc2U7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJywgWyckZXZlbnQnXSlcclxuICB0b2dnbGVPbkZvY3VzRm4oZXZlbnQ6IEZvY3VzRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLnRvZ2dsZU9uRm9jdXMgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuZHJvcGRvd24uaXNPcGVuICYmICF0aGlzLmlzTW91c2VFdmVudCkge1xyXG4gICAgICB0aGlzLmRyb3Bkb3duLnRvZ2dsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJylcclxuICBwdWJsaWMgdG9nZ2xlKCkge1xyXG4gICAgdGhpcy5kcm9wZG93bi50b2dnbGUoKTtcclxuICB9XHJcbn1cclxuIl19