UNPKG

@catull/igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

110 lines 14 kB
import { __decorate, __metadata, __param } from "tslib"; import { Directive, ElementRef, Inject, Input, NgZone, Output, OnInit, OnDestroy, } from '@angular/core'; import { DOCUMENT } from '@angular/common'; import { Subject, fromEvent, animationFrameScheduler, interval } from 'rxjs'; import { map, switchMap, takeUntil, throttle } from 'rxjs/operators'; /** * @hidden * @internal */ var IgxColumnResizerDirective = /** @class */ (function () { function IgxColumnResizerDirective(element, document, zone) { var _this = this; this.element = element; this.document = document; this.zone = zone; this.restrictHResizeMin = Number.MIN_SAFE_INTEGER; this.restrictHResizeMax = Number.MAX_SAFE_INTEGER; this.resizeEnd = new Subject(); this.resizeStart = new Subject(); this.resize = new Subject(); this._destroy = new Subject(); this.resizeStart.pipe(map(function (event) { return event.clientX; }), takeUntil(this._destroy), switchMap(function (offset) { return _this.resize.pipe(map(function (event) { return event.clientX - offset; }), takeUntil(_this.resizeEnd), takeUntil(_this._destroy)); })).subscribe(function (pos) { var left = _this._left + pos; var min = _this._left - _this.restrictHResizeMin; var max = _this._left + _this.restrictHResizeMax; _this.left = left < min ? min : left; if (left > max) { _this.left = max; } }); } IgxColumnResizerDirective.prototype.ngOnInit = function () { var _this = this; this.zone.runOutsideAngular(function () { fromEvent(_this.document.defaultView, 'mousemove').pipe(throttle(function () { return interval(0, animationFrameScheduler); }), takeUntil(_this._destroy)).subscribe(function (res) { return _this.onMousemove(res); }); fromEvent(_this.document.defaultView, 'mouseup').pipe(takeUntil(_this._destroy)) .subscribe(function (res) { return _this.onMouseup(res); }); }); }; IgxColumnResizerDirective.prototype.ngOnDestroy = function () { this._destroy.next(true); this._destroy.complete(); }; Object.defineProperty(IgxColumnResizerDirective.prototype, "left", { set: function (val) { var _this = this; requestAnimationFrame(function () { return _this.element.nativeElement.style.left = val + 'px'; }); }, enumerable: true, configurable: true }); Object.defineProperty(IgxColumnResizerDirective.prototype, "top", { set: function (val) { var _this = this; requestAnimationFrame(function () { return _this.element.nativeElement.style.top = val + 'px'; }); }, enumerable: true, configurable: true }); IgxColumnResizerDirective.prototype.onMouseup = function (event) { this.resizeEnd.next(event); this.resizeEnd.complete(); }; IgxColumnResizerDirective.prototype.onMousedown = function (event) { event.preventDefault(); var parent = this.element.nativeElement.parentElement.parentElement; this.left = this._left = event.clientX - parent.getBoundingClientRect().left; this.top = event.target.getBoundingClientRect().top - parent.getBoundingClientRect().top; this.resizeStart.next(event); }; IgxColumnResizerDirective.prototype.onMousemove = function (event) { event.preventDefault(); this.resize.next(event); }; IgxColumnResizerDirective.ctorParameters = function () { return [ { type: ElementRef }, { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }, { type: NgZone } ]; }; __decorate([ Input(), __metadata("design:type", Number) ], IgxColumnResizerDirective.prototype, "restrictHResizeMin", void 0); __decorate([ Input(), __metadata("design:type", Number) ], IgxColumnResizerDirective.prototype, "restrictHResizeMax", void 0); __decorate([ Output(), __metadata("design:type", Object) ], IgxColumnResizerDirective.prototype, "resizeEnd", void 0); __decorate([ Output(), __metadata("design:type", Object) ], IgxColumnResizerDirective.prototype, "resizeStart", void 0); __decorate([ Output(), __metadata("design:type", Object) ], IgxColumnResizerDirective.prototype, "resize", void 0); IgxColumnResizerDirective = __decorate([ Directive({ selector: '[igxResizer]' }), __param(1, Inject(DOCUMENT)), __metadata("design:paramtypes", [ElementRef, Object, NgZone]) ], IgxColumnResizerDirective); return IgxColumnResizerDirective; }()); export { IgxColumnResizerDirective }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pZ25pdGV1aS1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2dyaWRzL3Jlc2l6aW5nL3Jlc2l6ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRTs7O0dBR0c7QUFJSDtJQW9CSSxtQ0FBbUIsT0FBbUIsRUFBMkIsUUFBUSxFQUFTLElBQVk7UUFBOUYsaUJBd0JDO1FBeEJrQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQTJCLGFBQVEsR0FBUixRQUFRLENBQUE7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFRO1FBakJ2Rix1QkFBa0IsR0FBVyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7UUFHckQsdUJBQWtCLEdBQVcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBR3JELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBRy9CLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUdqQyxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUczQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUl0QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDakIsR0FBRyxDQUFDLFVBQUMsS0FBSyxJQUFLLE9BQUEs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QixDQTBGckM7SUFBRCxnQ0FBQztDQUFBLEFBMUZELElBMEZDO1NBMUZZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPdXRwdXQsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJqZWN0LCBmcm9tRXZlbnQsIGFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLCBpbnRlcnZhbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGhyb3R0bGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogQGhpZGRlblxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneFJlc2l6ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hDb2x1bW5SZXNpemVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVzdHJpY3RIUmVzaXplTWluOiBudW1iZXIgPSBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlc3RyaWN0SFJlc2l6ZU1heDogbnVtYmVyID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVzaXplRW5kID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlc2l6ZVN0YXJ0ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlc2l6ZSA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICAgIHByaXZhdGUgX2xlZnQ7XG4gICAgcHJpdmF0ZSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZiwgQEluamVjdChET0NVTUVOVCkgcHVibGljIGRvY3VtZW50LCBwdWJsaWMgem9uZTogTmdab25lKSB7XG5cbiAgICAgICAgdGhpcy5yZXNpemVTdGFydC5waXBlKFxuICAgICAgICAgICAgbWFwKChldmVudCkgPT4gZXZlbnQuY2xpZW50WCksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKG9mZnNldCkgPT4gdGhpcy5yZXNpemUucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiBldmVudC5jbGllbnRYIC0gb2Zmc2V0KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5yZXNpemVFbmQpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KVxuICAgICAgICAgICAgKSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKHBvcykgPT4ge1xuXG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gdGhpcy5fbGVmdCArIHBvcztcblxuICAgICAgICAgICAgY29uc3QgbWluID0gdGhpcy5fbGVmdCAtIHRoaXMucmVzdHJpY3RIUmVzaXplTWluO1xuICAgICAgICAgICAgY29uc3QgbWF4ID0gdGhpcy5fbGVmdCArIHRoaXMucmVzdHJpY3RIUmVzaXplTWF4O1xuXG4gICAgICAgICAgICB0aGlzLmxlZnQgPSBsZWZ0IDwgbWluID8gbWluIDogbGVmdDtcblxuICAgICAgICAgICAgaWYgKGxlZnQgPiBtYXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnQgPSBtYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldywgJ21vdXNlbW92ZScpLnBpcGUoXG4gICAgICAgICAgICAgICAgdGhyb3R0bGUoKCkgPT4gaW50ZXJ2YWwoMCwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSlcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKChyZXMpID0+IHRoaXMub25Nb3VzZW1vdmUocmVzKSk7XG5cbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmRvY3VtZW50LmRlZmF1bHRWaWV3LCAnbW91c2V1cCcpLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4gdGhpcy5vbk1vdXNldXAocmVzKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9kZXN0cm95Lm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGxlZnQodmFsKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gdmFsICsgJ3B4Jyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB0b3AodmFsKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSB2YWwgKyAncHgnKTtcbiAgICB9XG5cbiAgICBvbk1vdXNldXAoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5yZXNpemVFbmQubmV4dChldmVudCk7XG4gICAgICAgIHRoaXMucmVzaXplRW5kLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgb25Nb3VzZWRvd24oZXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXG4gICAgICAgIHRoaXMubGVmdCA9IHRoaXMuX2xlZnQgPSBldmVudC5jbGllbnRYIC0gcGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG4gICAgICAgIHRoaXMudG9wID0gZXZlbnQudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCAtIHBhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XG5cbiAgICAgICAgdGhpcy5yZXNpemVTdGFydC5uZXh0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbk1vdXNlbW92ZShldmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnJlc2l6ZS5uZXh0KGV2ZW50KTtcbiAgICB9XG59XG4iXX0=