@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
225 lines • 16.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: resize.directive.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, ElementRef, EventEmitter, Input, NgZone, Output } from '@angular/core';
var ResizeDirective = /** @class */ (function () {
function ResizeDirective(el, ngZone) {
var _this = this;
this.el = el;
this.ngZone = ngZone;
// 是否允许拖动
this.enableResize = true;
// 按下事件,mousedown,touchstart等
this.pressEvent = new EventEmitter();
// 拖动中事件,mousemove,touchmove等
this.dragEvent = new EventEmitter();
// 释放事件,mouseup,touchend等
this.releaseEvent = new EventEmitter();
this.bind = (/**
* @param {?} el
* @param {?} event
* @param {?} callback
* @return {?}
*/
function (el, event, callback) { return el.addEventListener && el.addEventListener(event, callback); });
this.unbind = (/**
* @param {?} el
* @param {?} event
* @param {?} callback
* @return {?}
*/
function (el, event, callback) { return el && el.removeEventListener && el.removeEventListener(event, callback); });
this.mousedown = (/**
* @param {?} e
* @return {?}
*/
function (e) {
_this.bind(document, 'mousemove', _this.mousemove);
_this.bind(document, 'mouseup', _this.mouseup);
_this.pressEvent.emit(_this.normalizeEvent(e));
});
this.mousemove = (/**
* @param {?} e
* @return {?}
*/
function (e) {
_this.dragEvent.emit(_this.normalizeEvent(e));
});
this.mouseup = (/**
* @param {?} e
* @return {?}
*/
function (e) {
_this.unbind(document, 'mousemove', _this.mousemove);
_this.unbind(document, 'mouseup', _this.mouseup);
_this.releaseEvent.emit(_this.normalizeEvent(e));
});
this.touchstart = (/**
* @param {?} e
* @return {?}
*/
function (e) {
_this.bind(document, 'touchmove', _this.touchmove);
_this.bind(document, 'touchend', _this.touchend);
if (e.touches.length === 1) {
_this.pressEvent.emit(_this.normalizeEvent(e));
}
});
this.touchmove = (/**
* @param {?} e
* @return {?}
*/
function (e) {
if (e.touches.length === 1) {
_this.dragEvent.emit(_this.normalizeEvent(e));
}
});
this.touchend = (/**
* @param {?} e
* @return {?}
*/
function (e) {
_this.bind(document, 'touchmove', _this.touchmove);
_this.bind(document, 'touchend', _this.touchend);
if (e.touches.length === 0) {
_this.releaseEvent.emit(_this.normalizeEvent(e));
}
});
}
/**
* @return {?}
*/
ResizeDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
if (this.enableResize) {
this.ngZone.runOutsideAngular((/**
* @return {?}
*/
function () {
_this.bindEvent();
}));
}
};
/**
* @return {?}
*/
ResizeDirective.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
if (this.enableResize) {
this.unbind(this.el.nativeElement, 'mousedown', this.mousedown);
this.unbind(this.el.nativeElement, 'touchstart', this.touchstart);
}
};
/**
* @return {?}
*/
ResizeDirective.prototype.bindEvent = /**
* @return {?}
*/
function () {
/** @type {?} */
var element = this.el.nativeElement;
// 绑定mousedown事件
this.bind(element, 'mousedown', this.mousedown);
// 绑定触屏事件
this.bind(element, 'touchstart', this.touchstart);
};
// 返回常用位置信息
// 返回常用位置信息
/**
* @param {?} e
* @return {?}
*/
ResizeDirective.prototype.normalizeEvent =
// 返回常用位置信息
/**
* @param {?} e
* @return {?}
*/
function (e) {
// 判断事件类型,用于计算位置坐标
if (e.type.match(/touch/)) {
return {
pageX: e.changedTouches[0].pageX,
pageY: e.changedTouches[0].pageY,
clientX: e.changedTouches[0].clientX,
clientY: e.changedTouches[0].clientY,
type: e.type,
originalEvent: e,
isTouch: true
};
}
return {
pageX: e.pageX,
pageY: e.pageY,
clientX: e.clientX,
clientY: e.clientY,
offsetX: e.offsetX,
offsetY: e.offsetY,
type: e.type,
originalEvent: e
};
};
ResizeDirective.decorators = [
{ type: Directive, args: [{
selector: '[dResize]'
},] }
];
/** @nocollapse */
ResizeDirective.ctorParameters = function () { return [
{ type: ElementRef },
{ type: NgZone }
]; };
ResizeDirective.propDecorators = {
enableResize: [{ type: Input }],
pressEvent: [{ type: Output }],
dragEvent: [{ type: Output }],
releaseEvent: [{ type: Output }]
};
return ResizeDirective;
}());
export { ResizeDirective };
if (false) {
/** @type {?} */
ResizeDirective.prototype.enableResize;
/** @type {?} */
ResizeDirective.prototype.pressEvent;
/** @type {?} */
ResizeDirective.prototype.dragEvent;
/** @type {?} */
ResizeDirective.prototype.releaseEvent;
/** @type {?} */
ResizeDirective.prototype.bind;
/** @type {?} */
ResizeDirective.prototype.unbind;
/** @type {?} */
ResizeDirective.prototype.mousedown;
/** @type {?} */
ResizeDirective.prototype.mousemove;
/** @type {?} */
ResizeDirective.prototype.mouseup;
/** @type {?} */
ResizeDirective.prototype.touchstart;
/** @type {?} */
ResizeDirective.prototype.touchmove;
/** @type {?} */
ResizeDirective.prototype.touchend;
/**
* @type {?}
* @private
*/
ResizeDirective.prototype.el;
/**
* @type {?}
* @private
*/
ResizeDirective.prototype.ngZone;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWRldnVpL3NwbGl0dGVyLyIsInNvdXJjZXMiOlsicmVzaXplLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUc7SUFZRSx5QkFBb0IsRUFBYyxFQUFVLE1BQWM7UUFBMUQsaUJBQThEO1FBQTFDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFROztRQVBqRCxpQkFBWSxHQUFHLElBQUksQ0FBQzs7UUFFbkIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7O1FBRWhDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDOztRQUUvQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFrQjVDLFNBQUk7Ozs7OztRQUFHLFVBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLElBQUssT0FBQSxFQUFFLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsRUFBM0QsQ0FBMkQsRUFBQztRQUU1RixXQUFNOzs7Ozs7UUFBRyxVQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxJQUFLLE9BQUEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUF2RSxDQUF1RSxFQUFDO1FBVTFHLGNBQVM7Ozs7UUFBRyxVQUFDLENBQUM7WUFDWixLQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsS0FBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pELEtBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFF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Z0JBdkdBLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztpQkFDdEI7Ozs7Z0JBSm1CLFVBQVU7Z0JBQXVCLE1BQU07OzsrQkFPeEQsS0FBSzs2QkFFTCxNQUFNOzRCQUVOLE1BQU07K0JBRU4sTUFBTTs7SUE2RlQsc0JBQUM7Q0FBQSxBQXhHRCxJQXdHQztTQXJHWSxlQUFlOzs7SUFFMUIsdUNBQTZCOztJQUU3QixxQ0FBMEM7O0lBRTFDLG9DQUF5Qzs7SUFFekMsdUNBQTRDOztJQWtCNUMsK0JBQTRGOztJQUU1RixpQ0FBMEc7O0lBVTFHLG9DQUlDOztJQUVELG9DQUVDOztJQUVELGtDQUlDOztJQUVELHFDQU1DOztJQUVELG9DQUlDOztJQUVELG1DQU1DOzs7OztJQWpFVyw2QkFBc0I7Ozs7O0lBQUUsaUNBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2RSZXNpemVdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVzaXplRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIC8vIOaYr+WQpuWFgeiuuOaLluWKqFxyXG4gIEBJbnB1dCgpIGVuYWJsZVJlc2l6ZSA9IHRydWU7XHJcbiAgLy8g5oyJ5LiL5LqL5Lu277yMbW91c2Vkb3du77yMdG91Y2hzdGFydOetiVxyXG4gIEBPdXRwdXQoKSBwcmVzc0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIC8vIOaLluWKqOS4reS6i+S7tu+8jG1vdXNlbW92Ze+8jHRvdWNobW92ZeetiVxyXG4gIEBPdXRwdXQoKSBkcmFnRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAvLyDph4rmlL7kuovku7bvvIxtb3VzZXVw77yMdG91Y2hlbmTnrYlcclxuICBAT3V0cHV0KCkgcmVsZWFzZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlUmVzaXplKSB7XHJcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICB0aGlzLmJpbmRFdmVudCgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlUmVzaXplKSB7XHJcbiAgICAgIHRoaXMudW5iaW5kKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicsIHRoaXMubW91c2Vkb3duKTtcclxuICAgICAgdGhpcy51bmJpbmQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAndG91Y2hzdGFydCcsIHRoaXMudG91Y2hzdGFydCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBiaW5kID0gKGVsLCBldmVudCwgY2FsbGJhY2spID0+IGVsLmFkZEV2ZW50TGlzdGVuZXIgJiYgZWwuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgY2FsbGJhY2spO1xyXG5cclxuICB1bmJpbmQgPSAoZWwsIGV2ZW50LCBjYWxsYmFjaykgPT4gZWwgJiYgZWwucmVtb3ZlRXZlbnRMaXN0ZW5lciAmJiBlbC5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBjYWxsYmFjayk7XHJcblxyXG4gIGJpbmRFdmVudCgpIHtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAvLyDnu5Hlrpptb3VzZWRvd27kuovku7ZcclxuICAgIHRoaXMuYmluZChlbGVtZW50LCAnbW91c2Vkb3duJywgdGhpcy5tb3VzZWRvd24pO1xyXG4gICAgLy8g57uR5a6a6Kem5bGP5LqL5Lu2XHJcbiAgICB0aGlzLmJpbmQoZWxlbWVudCwgJ3RvdWNoc3RhcnQnLCB0aGlzLnRvdWNoc3RhcnQpO1xyXG4gIH1cclxuXHJcbiAgbW91c2Vkb3duID0gKGUpID0+IHtcclxuICAgIHRoaXMuYmluZChkb2N1bWVudCwgJ21vdXNlbW92ZScsIHRoaXMubW91c2Vtb3ZlKTtcclxuICAgIHRoaXMuYmluZChkb2N1bWVudCwgJ21vdXNldXAnLCB0aGlzLm1vdXNldXApO1xyXG4gICAgdGhpcy5wcmVzc0V2ZW50LmVtaXQodGhpcy5ub3JtYWxpemVFdmVudChlKSk7XHJcbiAgfVxyXG5cclxuICBtb3VzZW1vdmUgPSAoZSkgPT4ge1xyXG4gICAgdGhpcy5kcmFnRXZlbnQuZW1pdCh0aGlzLm5vcm1hbGl6ZUV2ZW50KGUpKTtcclxuICB9XHJcblxyXG4gIG1vdXNldXAgPSAoZSkgPT4ge1xyXG4gICAgdGhpcy51bmJpbmQoZG9jdW1lbnQsICdtb3VzZW1vdmUnLCB0aGlzLm1vdXNlbW92ZSk7XHJcbiAgICB0aGlzLnVuYmluZChkb2N1bWVudCwgJ21vdXNldXAnLCB0aGlzLm1vdXNldXApO1xyXG4gICAgdGhpcy5yZWxlYXNlRXZlbnQuZW1pdCh0aGlzLm5vcm1hbGl6ZUV2ZW50KGUpKTtcclxuICB9XHJcblxyXG4gIHRvdWNoc3RhcnQgPSAoZSkgPT4ge1xyXG4gICAgdGhpcy5iaW5kKGRvY3VtZW50LCAndG91Y2htb3ZlJywgdGhpcy50b3VjaG1vdmUpO1xyXG4gICAgdGhpcy5iaW5kKGRvY3VtZW50LCAndG91Y2hlbmQnLCB0aGlzLnRvdWNoZW5kKTtcclxuICAgIGlmIChlLnRvdWNoZXMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMucHJlc3NFdmVudC5lbWl0KHRoaXMubm9ybWFsaXplRXZlbnQoZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG91Y2htb3ZlID0gKGUpID0+IHtcclxuICAgIGlmIChlLnRvdWNoZXMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMuZHJhZ0V2ZW50LmVtaXQodGhpcy5ub3JtYWxpemVFdmVudChlKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0b3VjaGVuZCA9IChlKSA9PiB7XHJcbiAgICB0aGlzLmJpbmQoZG9jdW1lbnQsICd0b3VjaG1vdmUnLCB0aGlzLnRvdWNobW92ZSk7XHJcbiAgICB0aGlzLmJpbmQoZG9jdW1lbnQsICd0b3VjaGVuZCcsIHRoaXMudG91Y2hlbmQpO1xyXG4gICAgaWYgKGUudG91Y2hlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy5yZWxlYXNlRXZlbnQuZW1pdCh0aGlzLm5vcm1hbGl6ZUV2ZW50KGUpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIOi/lOWbnuW4uOeUqOS9jee9ruS/oeaBr1xyXG4gIG5vcm1hbGl6ZUV2ZW50KGUpIHtcclxuICAgIC8vIOWIpOaWreS6i+S7tuexu+Wei++8jOeUqOS6juiuoeeul+S9jee9ruWdkOagh1xyXG4gICAgaWYgKGUudHlwZS5tYXRjaCgvdG91Y2gvKSkge1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgcGFnZVg6IGUuY2hhbmdlZFRvdWNoZXNbMF0ucGFnZVgsXHJcbiAgICAgICAgICBwYWdlWTogZS5jaGFuZ2VkVG91Y2hlc1swXS5wYWdlWSxcclxuICAgICAgICAgIGNsaWVudFg6IGUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WCxcclxuICAgICAgICAgIGNsaWVudFk6IGUuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSxcclxuICAgICAgICAgIHR5cGU6IGUudHlwZSxcclxuICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGUsXHJcbiAgICAgICAgICBpc1RvdWNoOiB0cnVlXHJcbiAgICAgIH07XHJcbiAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBwYWdlWDogZS5wYWdlWCxcclxuICAgICAgICBwYWdlWTogZS5wYWdlWSxcclxuICAgICAgICBjbGllbnRYOiBlLmNsaWVudFgsXHJcbiAgICAgICAgY2xpZW50WTogZS5jbGllbnRZLFxyXG4gICAgICAgIG9mZnNldFg6IGUub2Zmc2V0WCxcclxuICAgICAgICBvZmZzZXRZOiBlLm9mZnNldFksXHJcbiAgICAgICAgdHlwZTogZS50eXBlLFxyXG4gICAgICAgIG9yaWdpbmFsRXZlbnQ6IGVcclxuICAgIH07XHJcbn1cclxufVxyXG4iXX0=