UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

72 lines 9.95 kB
/** * 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 { DOCUMENT } from '@angular/common'; import { Inject, Injectable } from '@angular/core'; import { Subject } from 'rxjs'; import { isTouchEvent } from 'ng-zorro-antd/core/util'; import * as i0 from "@angular/core"; export class NzResizableService { constructor(ngZone, document) { this.ngZone = ngZone; this.listeners = new Map(); /** * The `OutsideAngular` prefix means that the subject will emit events outside of the Angular zone, * so that becomes a bit more descriptive for those who'll maintain the code in the future: * ```ts * nzResizableService.handleMouseDownOutsideAngular$.subscribe(event => { * console.log(Zone.current); // <root> * console.log(NgZone.isInAngularZone()); // false * }); * ``` */ this.handleMouseDownOutsideAngular$ = new Subject(); this.documentMouseUpOutsideAngular$ = new Subject(); this.documentMouseMoveOutsideAngular$ = new Subject(); this.mouseEnteredOutsideAngular$ = new Subject(); this.document = document; } startResizing(event) { const _isTouchEvent = isTouchEvent(event); this.clearListeners(); const moveEvent = _isTouchEvent ? 'touchmove' : 'mousemove'; const upEvent = _isTouchEvent ? 'touchend' : 'mouseup'; const moveEventHandler = (e) => { this.documentMouseMoveOutsideAngular$.next(e); }; const upEventHandler = (e) => { this.documentMouseUpOutsideAngular$.next(e); this.clearListeners(); }; this.listeners.set(moveEvent, moveEventHandler); this.listeners.set(upEvent, upEventHandler); this.ngZone.runOutsideAngular(() => { this.listeners.forEach((handler, name) => { this.document.addEventListener(name, handler); }); }); } clearListeners() { this.listeners.forEach((handler, name) => { this.document.removeEventListener(name, handler); }); this.listeners.clear(); } ngOnDestroy() { this.handleMouseDownOutsideAngular$.complete(); this.documentMouseUpOutsideAngular$.complete(); this.documentMouseMoveOutsideAngular$.complete(); this.mouseEnteredOutsideAngular$.complete(); this.clearListeners(); } } NzResizableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzResizableService, deps: [{ token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); NzResizableService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzResizableService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzResizableService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT] }] }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9jb21wb25lbnRzL3Jlc2l6YWJsZS9yZXNpemFibGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUt2RCxNQUFNLE9BQU8sa0JBQWtCO0lBbUI3QixZQUFvQixNQUFjLEVBQW9CLFFBQW1CO1FBQXJELFdBQU0sR0FBTixNQUFNLENBQVE7UUFqQjFCLGNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBb0QsQ0FBQztRQUVoRjs7Ozs7Ozs7O1dBU0c7UUFDSCxtQ0FBOEIsR0FBRyxJQUFJLE9BQU8sRUFBZ0MsQ0FBQztRQUM3RSxtQ0FBOEIsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztRQUN4RSxxQ0FBZ0MsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztRQUMxRSxnQ0FBMkIsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBR25ELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBOEI7UUFDMUMsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQzVELE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDdkQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQTBCLEVBQVEsRUFBRTtZQUM1RCxJQUFJLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQztRQUNGLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBMEIsRUFBUSxFQUFFO1lBQzFELElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsT0FBd0IsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxPQUF3QixDQUFDLENBQUM7UUFDcEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLDhCQUE4QixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakQsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDOzsrR0EzRFUsa0JBQWtCLHdDQW1CZSxRQUFRO21IQW5CekMsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVU7OzBCQW9CNEIsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBOZ1pvbmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgaXNUb3VjaEV2ZW50IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3V0aWwnO1xuXG5pbXBvcnQgeyBOelJlc2l6ZUhhbmRsZU1vdXNlRG93bkV2ZW50IH0gZnJvbSAnLi9yZXNpemUtaGFuZGxlLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOelJlc2l6YWJsZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudDtcbiAgcHJpdmF0ZSBsaXN0ZW5lcnMgPSBuZXcgTWFwPHN0cmluZywgKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZD4oKTtcblxuICAvKipcbiAgICogVGhlIGBPdXRzaWRlQW5ndWxhcmAgcHJlZml4IG1lYW5zIHRoYXQgdGhlIHN1YmplY3Qgd2lsbCBlbWl0IGV2ZW50cyBvdXRzaWRlIG9mIHRoZSBBbmd1bGFyIHpvbmUsXG4gICAqIHNvIHRoYXQgYmVjb21lcyBhIGJpdCBtb3JlIGRlc2NyaXB0aXZlIGZvciB0aG9zZSB3aG8nbGwgbWFpbnRhaW4gdGhlIGNvZGUgaW4gdGhlIGZ1dHVyZTpcbiAgICogYGBgdHNcbiAgICogbnpSZXNpemFibGVTZXJ2aWNlLmhhbmRsZU1vdXNlRG93bk91dHNpZGVBbmd1bGFyJC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgKiAgIGNvbnNvbGUubG9nKFpvbmUuY3VycmVudCk7IC8vIDxyb290PlxuICAgKiAgIGNvbnNvbGUubG9nKE5nWm9uZS5pc0luQW5ndWxhclpvbmUoKSk7IC8vIGZhbHNlXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGhhbmRsZU1vdXNlRG93bk91dHNpZGVBbmd1bGFyJCA9IG5ldyBTdWJqZWN0PE56UmVzaXplSGFuZGxlTW91c2VEb3duRXZlbnQ+KCk7XG4gIGRvY3VtZW50TW91c2VVcE91dHNpZGVBbmd1bGFyJCA9IG5ldyBTdWJqZWN0PE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50PigpO1xuICBkb2N1bWVudE1vdXNlTW92ZU91dHNpZGVBbmd1bGFyJCA9IG5ldyBTdWJqZWN0PE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50PigpO1xuICBtb3VzZUVudGVyZWRPdXRzaWRlQW5ndWxhciQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUsIEBJbmplY3QoRE9DVU1FTlQpIGRvY3VtZW50OiBOelNhZmVBbnkpIHtcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XG4gIH1cblxuICBzdGFydFJlc2l6aW5nKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IF9pc1RvdWNoRXZlbnQgPSBpc1RvdWNoRXZlbnQoZXZlbnQpO1xuICAgIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgICBjb25zdCBtb3ZlRXZlbnQgPSBfaXNUb3VjaEV2ZW50ID8gJ3RvdWNobW92ZScgOiAnbW91c2Vtb3ZlJztcbiAgICBjb25zdCB1cEV2ZW50ID0gX2lzVG91Y2hFdmVudCA/ICd0b3VjaGVuZCcgOiAnbW91c2V1cCc7XG4gICAgY29uc3QgbW92ZUV2ZW50SGFuZGxlciA9IChlOiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgdGhpcy5kb2N1bWVudE1vdXNlTW92ZU91dHNpZGVBbmd1bGFyJC5uZXh0KGUpO1xuICAgIH07XG4gICAgY29uc3QgdXBFdmVudEhhbmRsZXIgPSAoZTogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMuZG9jdW1lbnRNb3VzZVVwT3V0c2lkZUFuZ3VsYXIkLm5leHQoZSk7XG4gICAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XG4gICAgfTtcblxuICAgIHRoaXMubGlzdGVuZXJzLnNldChtb3ZlRXZlbnQsIG1vdmVFdmVudEhhbmRsZXIpO1xuICAgIHRoaXMubGlzdGVuZXJzLnNldCh1cEV2ZW50LCB1cEV2ZW50SGFuZGxlcik7XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLmxpc3RlbmVycy5mb3JFYWNoKChoYW5kbGVyLCBuYW1lKSA9PiB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihuYW1lLCBoYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuZXJzLmZvckVhY2goKGhhbmRsZXIsIG5hbWUpID0+IHtcbiAgICAgIHRoaXMuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihuYW1lLCBoYW5kbGVyIGFzIEV2ZW50TGlzdGVuZXIpO1xuICAgIH0pO1xuICAgIHRoaXMubGlzdGVuZXJzLmNsZWFyKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmhhbmRsZU1vdXNlRG93bk91dHNpZGVBbmd1bGFyJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZG9jdW1lbnRNb3VzZVVwT3V0c2lkZUFuZ3VsYXIkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5kb2N1bWVudE1vdXNlTW92ZU91dHNpZGVBbmd1bGFyJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMubW91c2VFbnRlcmVkT3V0c2lkZUFuZ3VsYXIkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jbGVhckxpc3RlbmVycygpO1xuICB9XG59XG4iXX0=