UNPKG

@catull/igniteui-angular

Version:

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

114 lines 12.2 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 */ 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