@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
114 lines • 12.2 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { AfterViewInit, Directive, ElementRef, Input, NgZone, HostListener, OnDestroy } from '@angular/core';
import { Subject, fromEvent } from 'rxjs';
import { debounceTime, takeUntil } from 'rxjs/operators';
import { IgxColumnComponent } from '../columns/column.component';
import { IgxColumnResizingService } from './resizing.service';
/**
* @hidden
* @internal
*/
var IgxResizeHandleDirective = /** @class */ (function () {
function IgxResizeHandleDirective(zone, element, colResizingService) {
this.zone = zone;
this.element = element;
this.colResizingService = colResizingService;
/**
* @hidden
*/
this._dblClick = false;
/**
* @hidden
*/
this.destroy$ = new Subject();
this.DEBOUNCE_TIME = 200;
}
/**
* @hidden
*/
IgxResizeHandleDirective.prototype.ngOnDestroy = function () {
this.destroy$.next(true);
this.destroy$.complete();
};
/**
* @hidden
*/
IgxResizeHandleDirective.prototype.ngAfterViewInit = function () {
var _this = this;
if (!this.column.columnGroup && this.column.resizable) {
this.zone.runOutsideAngular(function () {
fromEvent(_this.element.nativeElement, 'mousedown').pipe(debounceTime(_this.DEBOUNCE_TIME), takeUntil(_this.destroy$)).subscribe(function (event) {
if (_this._dblClick) {
_this._dblClick = false;
return;
}
if (event.button === 0) {
_this._onResizeAreaMouseDown(event);
_this.column.grid.resizeLine.resizer.onMousedown(event);
}
});
});
fromEvent(this.element.nativeElement, 'mouseup').pipe(debounceTime(this.DEBOUNCE_TIME), takeUntil(this.destroy$)).subscribe(function () {
_this.colResizingService.isColumnResizing = false;
_this.colResizingService.showResizer = false;
_this.column.grid.cdr.detectChanges();
});
}
};
/**
* @hidden
*/
IgxResizeHandleDirective.prototype.onMouseOver = function () {
this.colResizingService.resizeCursor = 'col-resize';
};
/**
* @hidden
*/
IgxResizeHandleDirective.prototype.onDoubleClick = function () {
this._dblClick = true;
this.colResizingService.column = this.column;
this.colResizingService.autosizeColumnOnDblClick();
};
/**
* @hidden
*/
IgxResizeHandleDirective.prototype._onResizeAreaMouseDown = function (event) {
this.colResizingService.column = this.column;
this.colResizingService.isColumnResizing = true;
this.colResizingService.startResizePos = event.clientX;
this.colResizingService.showResizer = true;
this.column.grid.cdr.detectChanges();
};
IgxResizeHandleDirective.ctorParameters = function () { return [
{ type: NgZone },
{ type: ElementRef },
{ type: IgxColumnResizingService }
]; };
__decorate([
Input('igxResizeHandle'),
__metadata("design:type", IgxColumnComponent)
], IgxResizeHandleDirective.prototype, "column", void 0);
__decorate([
HostListener('mouseover'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], IgxResizeHandleDirective.prototype, "onMouseOver", null);
__decorate([
HostListener('dblclick'),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], IgxResizeHandleDirective.prototype, "onDoubleClick", null);
IgxResizeHandleDirective = __decorate([
Directive({
selector: '[igxResizeHandle]'
}),
__metadata("design:paramtypes", [NgZone,
ElementRef,
IgxColumnResizingService])
], IgxResizeHandleDirective);
return IgxResizeHandleDirective;
}());
export { IgxResizeHandleDirective };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pZ25pdGV1aS1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2dyaWRzL3Jlc2l6aW5nL3Jlc2l6ZS1oYW5kbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsYUFBYSxFQUNiLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHOUQ7OztHQUdHO0FBSUg7SUFvQkksa0NBQW9CLElBQVksRUFDYixPQUFtQixFQUNwQixrQkFBNEM7UUFGMUMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDcEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUEwQjtRQWQ5RDs7V0FFRztRQUNLLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFMUI7O1dBRUc7UUFDSyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUV6QixrQkFBYSxHQUFHLEdBQUcsQ0FBQztJQUk2QixDQUFDO0lBRW5FOztPQUVHO0lBQ0ksOENBQVcsR0FBbEI7UUFDSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNJLGtEQUFlLEdBQXRCO1FBQUEsaUJBNkJD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d0I7T0F0QnJELHdCQUF3QixDQStGcEM7SUFBRCwrQkFBQztDQUFBLEFBL0ZELElBK0ZDO1NBL0ZZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElneENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbHVtbnMvY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5SZXNpemluZ1NlcnZpY2UgfSBmcm9tICcuL3Jlc2l6aW5nLnNlcnZpY2UnO1xuXG5cbi8qKlxuICogQGhpZGRlblxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2lneFJlc2l6ZUhhbmRsZV0nXG59KVxuZXhwb3J0IGNsYXNzIElneFJlc2l6ZUhhbmRsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KCdpZ3hSZXNpemVIYW5kbGUnKVxuICAgIHB1YmxpYyBjb2x1bW46IElneENvbHVtbkNvbXBvbmVudDtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9kYmxDbGljayA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBERUJPVU5DRV9USU1FID0gMjAwO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgICAgICAgICAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICBwdWJsaWMgY29sUmVzaXppbmdTZXJ2aWNlOiBJZ3hDb2x1bW5SZXNpemluZ1NlcnZpY2UpIHsgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5jb2x1bW4uY29sdW1uR3JvdXAgJiYgdGhpcy5jb2x1bW4ucmVzaXphYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ21vdXNlZG93bicpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSh0aGlzLkRFQk9VTkNFX1RJTUUpLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgICAgICAgICApLnN1YnNjcmliZSgoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fZGJsQ2xpY2spIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2RibENsaWNrID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuYnV0dG9uID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9vblJlc2l6ZUFyZWFNb3VzZURvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2x1bW4uZ3JpZC5yZXNpemVMaW5lLnJlc2l6ZXIub25Nb3VzZWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnbW91c2V1cCcpLnBpcGUoXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuREVCT1VOQ0VfVElNRSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICAgICAgICApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2xSZXNpemluZ1NlcnZpY2UuaXNDb2x1bW5SZXNpemluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuY29sUmVzaXppbmdTZXJ2aWNlLnNob3dSZXNpemVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2x1bW4uZ3JpZC5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VvdmVyJylcbiAgICBwdWJsaWMgb25Nb3VzZU92ZXIoKSB7XG4gICAgICAgIHRoaXMuY29sUmVzaXppbmdTZXJ2aWNlLnJlc2l6ZUN1cnNvciA9ICdjb2wtcmVzaXplJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignZGJsY2xpY2snKVxuICAgIHB1YmxpYyBvbkRvdWJsZUNsaWNrKCkge1xuICAgICAgICB0aGlzLl9kYmxDbGljayA9IHRydWU7XG4gICAgICAgIHRoaXMuY29sUmVzaXppbmdTZXJ2aWNlLmNvbHVtbiA9IHRoaXMuY29sdW1uO1xuICAgICAgICB0aGlzLmNvbFJlc2l6aW5nU2VydmljZS5hdXRvc2l6ZUNvbHVtbk9uRGJsQ2xpY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfb25SZXNpemVBcmVhTW91c2VEb3duKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuY29sUmVzaXppbmdTZXJ2aWNlLmNvbHVtbiA9IHRoaXMuY29sdW1uO1xuICAgICAgICB0aGlzLmNvbFJlc2l6aW5nU2VydmljZS5pc0NvbHVtblJlc2l6aW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb2xSZXNpemluZ1NlcnZpY2Uuc3RhcnRSZXNpemVQb3MgPSBldmVudC5jbGllbnRYO1xuXG4gICAgICAgIHRoaXMuY29sUmVzaXppbmdTZXJ2aWNlLnNob3dSZXNpemVyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb2x1bW4uZ3JpZC5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cblxuIl19