UNPKG

@catull/igniteui-angular

Version:

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

112 lines 11.7 kB
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=