ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
71 lines • 9.34 kB
JavaScript
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output } from '@angular/core';
import { Subject } from 'rxjs';
import { takeUntil } from 'rxjs/operators';
import { NzResizableService } from './resizable.service';
export class NzResizeHandleMouseDownEvent {
constructor(direction, mouseEvent) {
this.direction = direction;
this.mouseEvent = mouseEvent;
}
}
export class NzResizeHandleComponent {
constructor(nzResizableService, cdr, elementRef) {
this.nzResizableService = nzResizableService;
this.cdr = cdr;
this.elementRef = elementRef;
this.nzDirection = 'bottomRight';
this.nzMouseDown = new EventEmitter();
this.entered = false;
this.destroy$ = new Subject();
// TODO: move to host after View Engine deprecation
this.elementRef.nativeElement.classList.add('nz-resizable-handle');
}
ngOnInit() {
this.nzResizableService.mouseEntered$.pipe(takeUntil(this.destroy$)).subscribe(entered => {
this.entered = entered;
this.cdr.markForCheck();
});
}
onMousedown(event) {
this.nzResizableService.handleMouseDown$.next(new NzResizeHandleMouseDownEvent(this.nzDirection, event));
}
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
}
}
NzResizeHandleComponent.decorators = [
{ type: Component, args: [{
selector: 'nz-resize-handle, [nz-resize-handle]',
exportAs: 'nzResizeHandle',
template: ` <ng-content></ng-content> `,
changeDetection: ChangeDetectionStrategy.OnPush,
host: {
'[class.nz-resizable-handle-top]': `nzDirection === 'top'`,
'[class.nz-resizable-handle-right]': `nzDirection === 'right'`,
'[class.nz-resizable-handle-bottom]': `nzDirection === 'bottom'`,
'[class.nz-resizable-handle-left]': `nzDirection === 'left'`,
'[class.nz-resizable-handle-topRight]': `nzDirection === 'topRight'`,
'[class.nz-resizable-handle-bottomRight]': `nzDirection === 'bottomRight'`,
'[class.nz-resizable-handle-bottomLeft]': `nzDirection === 'bottomLeft'`,
'[class.nz-resizable-handle-topLeft]': `nzDirection === 'topLeft'`,
'[class.nz-resizable-handle-box-hover]': 'entered',
'(mousedown)': 'onMousedown($event)',
'(touchstart)': 'onMousedown($event)'
}
},] }
];
NzResizeHandleComponent.ctorParameters = () => [
{ type: NzResizableService },
{ type: ChangeDetectorRef },
{ type: ElementRef }
];
NzResizeHandleComponent.propDecorators = {
nzDirection: [{ type: Input }],
nzMouseDown: [{ type: Output }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL3Jlc2l6YWJsZS9yZXNpemUtaGFuZGxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBWXpELE1BQU0sT0FBTyw0QkFBNEI7SUFDdkMsWUFBbUIsU0FBNEIsRUFBUyxVQUFtQztRQUF4RSxjQUFTLEdBQVQsU0FBUyxDQUFtQjtRQUFTLGVBQVUsR0FBVixVQUFVLENBQXlCO0lBQUcsQ0FBQztDQUNoRztBQXFCRCxNQUFNLE9BQU8sdUJBQXVCO0lBT2xDLFlBQ1Usa0JBQXNDLEVBQ3RDLEdBQXNCLEVBQ3RCLFVBQXNCO1FBRnRCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVR2QixnQkFBVyxHQUFzQixhQUFhLENBQUM7UUFDckMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBZ0MsQ0FBQztRQUVsRixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ1IsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFPckMsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDdkYsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBOEI7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLDRCQUE0QixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs7WUFqREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQ0FBc0M7Z0JBQ2hELFFBQVEsRUFBRSxnQkFBZ0I7Z0JBQzFCLFFBQVEsRUFBRSw2QkFBNkI7Z0JBQ3ZDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxJQUFJLEVBQUU7b0JBQ0osaUNBQWlDLEVBQUUsdUJBQXVCO29CQUMxRCxtQ0FBbUMsRUFBRSx5QkFBeUI7b0JBQzlELG9DQUFvQyxFQUFFLDBCQUEwQjtvQkFDaEUsa0NBQWtDLEVBQUUsd0JBQXdCO29CQUM1RCxzQ0FBc0MsRUFBRSw0QkFBNEI7b0JBQ3BFLHlDQUF5QyxFQUFFLCtCQUErQjtvQkFDMUUsd0NBQXdDLEVBQUUsOEJBQThCO29CQUN4RSxxQ0FBcUMsRUFBRSwyQkFBMkI7b0JBQ2xFLHVDQUF1QyxFQUFFLFNBQVM7b0JBQ2xELGFBQWEsRUFBRSxxQkFBcUI7b0JBQ3BDLGNBQWMsRUFBRSxxQkFBcUI7aUJBQ3RDO2FBQ0Y7OztZQWxDUSxrQkFBa0I7WUFaekIsaUJBQWlCO1lBRWpCLFVBQVU7OzswQkE4Q1QsS0FBSzswQkFDTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE56UmVzaXphYmxlU2VydmljZSB9IGZyb20gJy4vcmVzaXphYmxlLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBOelJlc2l6ZURpcmVjdGlvbiA9XG4gIHwgJ3RvcCdcbiAgfCAncmlnaHQnXG4gIHwgJ2JvdHRvbSdcbiAgfCAnbGVmdCdcbiAgfCAndG9wUmlnaHQnXG4gIHwgJ2JvdHRvbVJpZ2h0J1xuICB8ICdib3R0b21MZWZ0J1xuICB8ICd0b3BMZWZ0JztcblxuZXhwb3J0IGNsYXNzIE56UmVzaXplSGFuZGxlTW91c2VEb3duRXZlbnQge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlyZWN0aW9uOiBOelJlc2l6ZURpcmVjdGlvbiwgcHVibGljIG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7fVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduei1yZXNpemUtaGFuZGxlLCBbbnotcmVzaXplLWhhbmRsZV0nLFxuICBleHBvcnRBczogJ256UmVzaXplSGFuZGxlJyxcbiAgdGVtcGxhdGU6IGAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MubnotcmVzaXphYmxlLWhhbmRsZS10b3BdJzogYG56RGlyZWN0aW9uID09PSAndG9wJ2AsXG4gICAgJ1tjbGFzcy5uei1yZXNpemFibGUtaGFuZGxlLXJpZ2h0XSc6IGBuekRpcmVjdGlvbiA9PT0gJ3JpZ2h0J2AsXG4gICAgJ1tjbGFzcy5uei1yZXNpemFibGUtaGFuZGxlLWJvdHRvbV0nOiBgbnpEaXJlY3Rpb24gPT09ICdib3R0b20nYCxcbiAgICAnW2NsYXNzLm56LXJlc2l6YWJsZS1oYW5kbGUtbGVmdF0nOiBgbnpEaXJlY3Rpb24gPT09ICdsZWZ0J2AsXG4gICAgJ1tjbGFzcy5uei1yZXNpemFibGUtaGFuZGxlLXRvcFJpZ2h0XSc6IGBuekRpcmVjdGlvbiA9PT0gJ3RvcFJpZ2h0J2AsXG4gICAgJ1tjbGFzcy5uei1yZXNpemFibGUtaGFuZGxlLWJvdHRvbVJpZ2h0XSc6IGBuekRpcmVjdGlvbiA9PT0gJ2JvdHRvbVJpZ2h0J2AsXG4gICAgJ1tjbGFzcy5uei1yZXNpemFibGUtaGFuZGxlLWJvdHRvbUxlZnRdJzogYG56RGlyZWN0aW9uID09PSAnYm90dG9tTGVmdCdgLFxuICAgICdbY2xhc3MubnotcmVzaXphYmxlLWhhbmRsZS10b3BMZWZ0XSc6IGBuekRpcmVjdGlvbiA9PT0gJ3RvcExlZnQnYCxcbiAgICAnW2NsYXNzLm56LXJlc2l6YWJsZS1oYW5kbGUtYm94LWhvdmVyXSc6ICdlbnRlcmVkJyxcbiAgICAnKG1vdXNlZG93biknOiAnb25Nb3VzZWRvd24oJGV2ZW50KScsXG4gICAgJyh0b3VjaHN0YXJ0KSc6ICdvbk1vdXNlZG93bigkZXZlbnQpJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE56UmVzaXplSGFuZGxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBuekRpcmVjdGlvbjogTnpSZXNpemVEaXJlY3Rpb24gPSAnYm90dG9tUmlnaHQnO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgbnpNb3VzZURvd24gPSBuZXcgRXZlbnRFbWl0dGVyPE56UmVzaXplSGFuZGxlTW91c2VEb3duRXZlbnQ+KCk7XG5cbiAgZW50ZXJlZCA9IGZhbHNlO1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG56UmVzaXphYmxlU2VydmljZTogTnpSZXNpemFibGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgLy8gVE9ETzogbW92ZSB0byBob3N0IGFmdGVyIFZpZXcgRW5naW5lIGRlcHJlY2F0aW9uXG4gICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnbnotcmVzaXphYmxlLWhhbmRsZScpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5uelJlc2l6YWJsZVNlcnZpY2UubW91c2VFbnRlcmVkJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKGVudGVyZWQgPT4ge1xuICAgICAgdGhpcy5lbnRlcmVkID0gZW50ZXJlZDtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgb25Nb3VzZWRvd24oZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5uelJlc2l6YWJsZVNlcnZpY2UuaGFuZGxlTW91c2VEb3duJC5uZXh0KG5ldyBOelJlc2l6ZUhhbmRsZU1vdXNlRG93bkV2ZW50KHRoaXMubnpEaXJlY3Rpb24sIGV2ZW50KSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==