ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
94 lines (93 loc) • 6.45 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Directive, Input, Output, EventEmitter, HostListener, ElementRef, Renderer2, InjectionToken, } from '@angular/core';
/** @type {?} */
export const INTERFACE_TOKEN = new InjectionToken('InterfaceToken');
export class TouchFeedbackDirective {
/**
* @param {?} _elementRef
* @param {?} _renderer
*/
constructor(_elementRef, _renderer) {
this._elementRef = _elementRef;
this._renderer = _renderer;
this.activeStyle = true;
this.clickStart = new EventEmitter();
this.clickEnd = new EventEmitter();
}
/**
* @param {?} className
* @return {?}
*/
addClass(className) {
this._renderer.addClass(this._elementRef.nativeElement, className);
}
/**
* @param {?} className
* @return {?}
*/
removeClass(className) {
this._renderer.removeClass(this._elementRef.nativeElement, className);
}
/**
* @return {?}
*/
ngOnInit() {
this._className = this.className;
}
/**
* @return {?}
*/
touchStart() {
if (this.activeStyle) {
this.addClass(this._className);
this.clickStart.emit();
}
}
/**
* @return {?}
*/
touchEnd() {
if (this.activeStyle) {
this.removeClass(this._className);
this.clickEnd.emit();
}
}
}
TouchFeedbackDirective.decorators = [
{ type: Directive, args: [{
selector: '[TouchFeedback]'
},] }
];
/** @nocollapse */
TouchFeedbackDirective.ctorParameters = () => [
{ type: ElementRef },
{ type: Renderer2 }
];
TouchFeedbackDirective.propDecorators = {
className: [{ type: Input }],
activeStyle: [{ type: Input }],
clickStart: [{ type: Output }],
clickEnd: [{ type: Output }],
touchStart: [{ type: HostListener, args: ['touchstart', ['$event'],] }, { type: HostListener, args: ['mousedown', ['$event'],] }],
touchEnd: [{ type: HostListener, args: ['touchend', ['$event'],] }, { type: HostListener, args: ['mouseup', ['$event'],] }]
};
if (false) {
/** @type {?} */
TouchFeedbackDirective.prototype._className;
/** @type {?} */
TouchFeedbackDirective.prototype.className;
/** @type {?} */
TouchFeedbackDirective.prototype.activeStyle;
/** @type {?} */
TouchFeedbackDirective.prototype.clickStart;
/** @type {?} */
TouchFeedbackDirective.prototype.clickEnd;
/** @type {?} */
TouchFeedbackDirective.prototype._elementRef;
/** @type {?} */
TouchFeedbackDirective.prototype._renderer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91Y2gtZmVlZGJhY2suZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctem9ycm8tYW50ZC1tb2JpbGUvIiwic291cmNlcyI6WyJjb3JlL2RpcmVjdGl2ZS90b3VjaC1mZWVkYmFjay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osWUFBWSxFQUNaLFVBQVUsRUFFVixTQUFTLEVBQ1QsY0FBYyxHQUNmLE1BQU0sZUFBZSxDQUFDOztBQUV2QixhQUFhLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBTSxnQkFBZ0IsQ0FBQyxDQUFDO0FBS3pFLE1BQU07Ozs7O0lBUUosWUFBb0IsV0FBdUIsRUFBVSxTQUFvQjtRQUFyRCxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQVc7MkJBSmxELElBQUk7MEJBQ2UsSUFBSSxZQUFZLEVBQUU7d0JBQ3BCLElBQUksWUFBWSxFQUFFO0tBS3pEOzs7OztJQUVPLFFBQVEsQ0FBQyxTQUFpQjtRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQzs7Ozs7O0lBRzdELFdBQVcsQ0FBQyxTQUFpQjtRQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQzs7Ozs7SUFHeEUsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztLQUNsQzs7OztJQUlELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN4QjtLQUNGOzs7O0lBSUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3RCO0tBQ0Y7OztZQTVDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjthQUM1Qjs7OztZQVZDLFVBQVU7WUFFVixTQUFTOzs7d0JBWVIsS0FBSzswQkFDTCxLQUFLO3lCQUNMLE1BQU07dUJBQ04sTUFBTTt5QkFtQk4sWUFBWSxTQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUNyQyxZQUFZLFNBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO3VCQVFwQyxZQUFZLFNBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQ25DLFlBQVksU0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBFbGVtZW50UmVmLFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgSW5qZWN0aW9uVG9rZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgSU5URVJGQUNFX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ0ludGVyZmFjZVRva2VuJyk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tUb3VjaEZlZWRiYWNrXSdcbn0pXG5leHBvcnQgY2xhc3MgVG91Y2hGZWVkYmFja0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHJpdmF0ZSBfY2xhc3NOYW1lO1xuICBASW5wdXQoKSBjbGFzc05hbWU6IEFycmF5PHN0cmluZz47XG4gIEBJbnB1dCgpIGFjdGl2ZVN0eWxlID0gdHJ1ZTtcbiAgQE91dHB1dCgpIGNsaWNrU3RhcnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2xpY2tFbmQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG5cbiAgfVxuXG4gIHByaXZhdGUgYWRkQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWU7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcbiAgdG91Y2hTdGFydCgpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVTdHlsZSkge1xuICAgICAgdGhpcy5hZGRDbGFzcyh0aGlzLl9jbGFzc05hbWUpO1xuICAgICAgdGhpcy5jbGlja1N0YXJ0LmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd0b3VjaGVuZCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNldXAnLCBbJyRldmVudCddKVxuICB0b3VjaEVuZCgpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVTdHlsZSkge1xuICAgICAgdGhpcy5yZW1vdmVDbGFzcyh0aGlzLl9jbGFzc05hbWUpO1xuICAgICAgdGhpcy5jbGlja0VuZC5lbWl0KCk7XG4gICAgfVxuICB9XG59XG4iXX0=