@catull/igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
112 lines • 11.7 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
*/
let IgxResizeHandleDirective = class IgxResizeHandleDirective {
constructor(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
*/
ngOnDestroy() {
this.destroy$.next(true);
this.destroy$.complete();
}
/**
* @hidden
*/
ngAfterViewInit() {
if (!this.column.columnGroup && this.column.resizable) {
this.zone.runOutsideAngular(() => {
fromEvent(this.element.nativeElement, 'mousedown').pipe(debounceTime(this.DEBOUNCE_TIME), takeUntil(this.destroy$)).subscribe((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(() => {
this.colResizingService.isColumnResizing = false;
this.colResizingService.showResizer = false;
this.column.grid.cdr.detectChanges();
});
}
}
/**
* @hidden
*/
onMouseOver() {
this.colResizingService.resizeCursor = 'col-resize';
}
/**
* @hidden
*/
onDoubleClick() {
this._dblClick = true;
this.colResizingService.column = this.column;
this.colResizingService.autosizeColumnOnDblClick();
}
/**
* @hidden
*/
_onResizeAreaMouseDown(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 = () => [
{ 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);
export { IgxResizeHandleDirective };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9pZ25pdGV1aS1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2dyaWRzL3Jlc2l6aW5nL3Jlc2l6ZS1oYW5kbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsYUFBYSxFQUNiLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHOUQ7OztHQUdHO0FBSUgsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBd0I7SUFvQmpDLFlBQW9CLElBQVksRUFDYixPQUFtQixFQUNwQixrQkFBNEM7UUFGMUMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNiLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDcEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUEwQjtRQWQ5RDs7V0FFRztRQUNLLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFMUI7O1dBRUc7UUFDSyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUV6QixrQkFBYSxHQUFHLEdBQUcsQ0FBQztJQUk2QixDQUFDO0lBRW5FOztPQUVHO0lBQ0ksV0FBVztRQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ks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TTtRQUNKLFVBQVU7UUFDQSx3QkFBd0I7R0F0QnJELHdCQUF3QixDQStGcEM7U0EvRlksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSWd4Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29sdW1ucy9jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IElneENvbHVtblJlc2l6aW5nU2VydmljZSB9IGZyb20gJy4vcmVzaXppbmcuc2VydmljZSc7XG5cblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4UmVzaXplSGFuZGxlXSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4UmVzaXplSGFuZGxlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASW5wdXQoJ2lneFJlc2l6ZUhhbmRsZScpXG4gICAgcHVibGljIGNvbHVtbjogSWd4Q29sdW1uQ29tcG9uZW50O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2RibENsaWNrID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IERFQk9VTkNFX1RJTUUgPSAyMDA7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICAgICAgICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgIHB1YmxpYyBjb2xSZXNpemluZ1NlcnZpY2U6IElneENvbHVtblJlc2l6aW5nU2VydmljZSkgeyB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbHVtbi5jb2x1bW5Hcm91cCAmJiB0aGlzLmNvbHVtbi5yZXNpemFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnbW91c2Vkb3duJykucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuREVCT1VOQ0VfVElNRSksXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgICAgICAgICAgICkuc3Vic2NyaWJlKChldmVudDogTW91c2VFdmVudCkgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9kYmxDbGljaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGJsQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5idXR0b24gPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX29uUmVzaXplQXJlYU1vdXNlRG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbi5ncmlkLnJlc2l6ZUxpbmUucmVzaXplci5vbk1vdXNlZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdtb3VzZXVwJykucGlwZShcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5ERUJPVU5DRV9USU1FKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbFJlc2l6aW5nU2VydmljZS5pc0NvbHVtblJlc2l6aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2xSZXNpemluZ1NlcnZpY2Uuc2hvd1Jlc2l6ZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbi5ncmlkLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZW92ZXInKVxuICAgIHB1YmxpYyBvbk1vdXNlT3ZlcigpIHtcbiAgICAgICAgdGhpcy5jb2xSZXNpemluZ1NlcnZpY2UucmVzaXplQ3Vyc29yID0gJ2NvbC1yZXNpemUnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdkYmxjbGljaycpXG4gICAgcHVibGljIG9uRG91YmxlQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuX2RibENsaWNrID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jb2xSZXNpemluZ1NlcnZpY2UuY29sdW1uID0gdGhpcy5jb2x1bW47XG4gICAgICAgIHRoaXMuY29sUmVzaXppbmdTZXJ2aWNlLmF1dG9zaXplQ29sdW1uT25EYmxDbGljaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9vblJlc2l6ZUFyZWFNb3VzZURvd24oZXZlbnQpIHtcbiAgICAgICAgdGhpcy5jb2xSZXNpemluZ1NlcnZpY2UuY29sdW1uID0gdGhpcy5jb2x1bW47XG4gICAgICAgIHRoaXMuY29sUmVzaXppbmdTZXJ2aWNlLmlzQ29sdW1uUmVzaXppbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbFJlc2l6aW5nU2VydmljZS5zdGFydFJlc2l6ZVBvcyA9IGV2ZW50LmNsaWVudFg7XG5cbiAgICAgICAgdGhpcy5jb2xSZXNpemluZ1NlcnZpY2Uuc2hvd1Jlc2l6ZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLmNvbHVtbi5ncmlkLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuXG4iXX0=