@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
110 lines • 14 kB
JavaScript
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=