@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
142 lines • 9.39 kB
JavaScript
/**
* @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