ng-devui
Version:
DevUI components based on Angular
75 lines • 8.11 kB
JavaScript
import { Directive, Injectable, QueryList } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
import { debounceTime } from 'rxjs/operators';
import * as i0 from "@angular/core";
export class DescendantRegisterService {
constructor() {
this._result = [];
this.changeSubject = new BehaviorSubject([]);
this.changes = this.changeSubject.asObservable().pipe(debounceTime(200));
}
register(t) {
if (!t) {
return;
}
const index = this._result.indexOf(t);
if (index === -1) {
this._result.push(t);
this.changeSubject.next(this._result);
}
}
unregister(t) {
if (!t) {
return;
}
const index = this._result.indexOf(t);
if (index > -1) {
this._result.splice(index, 1);
this.changeSubject.next(this._result);
}
}
queryResult() {
return this._result.concat([]);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DescendantRegisterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DescendantRegisterService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DescendantRegisterService, decorators: [{
type: Injectable
}] });
/* eslint-disable-next-line @angular-eslint/directive-class-suffix */
export class DescendantChildren {
constructor(drs) {
this.drs = drs;
}
ngOnInit() {
this.drs.register(this.descendantItem);
}
ngOnDestroy() {
this.drs.unregister(this.descendantItem);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DescendantChildren, deps: [{ token: DescendantRegisterService }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DescendantChildren, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DescendantChildren, decorators: [{
type: Directive
}], ctorParameters: () => [{ type: DescendantRegisterService }] });
export class DescendantRoot extends QueryList {
constructor(drs) {
super();
this.drs = drs;
}
on() {
if (this.sub) {
return;
}
this.reset(this.drs.queryResult());
this.sub = this.drs.changes.subscribe(result => { this.reset(result); });
}
off() {
if (this.sub) {
this.sub.unsubscribe();
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLWRlc2MtcmVnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9kZXZ1aS9kcmFnZHJvcC9zZXJ2aWNlcy9kcmFnLWRyb3AtZGVzYy1yZWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQXFDLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHOUMsTUFBTSxPQUFPLHlCQUF5QjtJQUR0QztRQUVZLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsa0JBQWEsR0FBc0IsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7UUFDeEUsWUFBTyxHQUF5QixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FDM0UsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUNsQixDQUFDO0tBb0JIO0lBbkJRLFFBQVEsQ0FBQyxDQUFJO1FBQ2xCLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUFBLE9BQU87UUFBQyxDQUFDO1FBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBQ00sVUFBVSxDQUFDLENBQUk7UUFDcEIsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQUEsT0FBTztRQUFDLENBQUM7UUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFDTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQzsrR0F4QlUseUJBQXlCO21IQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVU7O0FBNkJYLHFFQUFxRTtBQUNyRSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQXFCLEdBQWlDO1FBQWpDLFFBQUcsR0FBSCxHQUFHLENBQThCO0lBQUcsQ0FBQztJQUUxRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7K0dBUlUsa0JBQWtCO21HQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRjlCLFNBQVM7O0FBYVYsTUFBTSxPQUFPLGNBQWtCLFNBQVEsU0FBWTtJQUVqRCxZQUFvQixHQUFpQztRQUNuRCxLQUFLLEVBQUUsQ0FBQztRQURVLFFBQUcsR0FBSCxHQUFHLENBQThCO0lBRXJELENBQUM7SUFDTSxFQUFFO1FBQ1AsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU0sR0FBRztRQUNSLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGVzY2VuZGFudFJlZ2lzdGVyU2VydmljZTxUPiB7XG4gIHByb3RlY3RlZCBfcmVzdWx0OiBBcnJheTxUPiA9IFtdO1xuICBwcm90ZWN0ZWQgY2hhbmdlU3ViamVjdDogU3ViamVjdDxBcnJheTxUPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PFQ+PihbXSk7XG4gIHB1YmxpYyBjaGFuZ2VzOiBPYnNlcnZhYmxlPEFycmF5PFQ+PiA9IHRoaXMuY2hhbmdlU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKFxuICAgIGRlYm91bmNlVGltZSgyMDApXG4gICk7XG4gIHB1YmxpYyByZWdpc3Rlcih0OiBUKSB7XG4gICAgaWYgKCF0KSB7cmV0dXJuOyB9XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9yZXN1bHQuaW5kZXhPZih0KTtcbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICB0aGlzLl9yZXN1bHQucHVzaCh0KTtcbiAgICAgIHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMuX3Jlc3VsdCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyB1bnJlZ2lzdGVyKHQ6IFQpIHtcbiAgICBpZiAoIXQpIHtyZXR1cm47IH1cbiAgICBjb25zdCBpbmRleCA9IHRoaXMuX3Jlc3VsdC5pbmRleE9mKHQpO1xuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLl9yZXN1bHQuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIHRoaXMuY2hhbmdlU3ViamVjdC5uZXh0KHRoaXMuX3Jlc3VsdCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBxdWVyeVJlc3VsdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0LmNvbmNhdChbXSk7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSgpXG4vKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXggKi9cbmV4cG9ydCBjbGFzcyBEZXNjZW5kYW50Q2hpbGRyZW48VD4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yIChwcml2YXRlIGRyczogRGVzY2VuZGFudFJlZ2lzdGVyU2VydmljZTxUPikge31cbiAgcHJvdGVjdGVkIGRlc2NlbmRhbnRJdGVtOiBUO1xuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRycy5yZWdpc3Rlcih0aGlzLmRlc2NlbmRhbnRJdGVtKTtcbiAgfVxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRycy51bnJlZ2lzdGVyKHRoaXMuZGVzY2VuZGFudEl0ZW0pO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZXNjZW5kYW50Um9vdDxUPiBleHRlbmRzIFF1ZXJ5TGlzdDxUPiB7XG4gIHByb3RlY3RlZCBzdWI6IFN1YnNjcmlwdGlvbjtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkcnM6IERlc2NlbmRhbnRSZWdpc3RlclNlcnZpY2U8VD4pIHtcbiAgICBzdXBlcigpO1xuICB9XG4gIHB1YmxpYyBvbigpIHtcbiAgICBpZiAodGhpcy5zdWIpIHsgcmV0dXJuOyB9XG4gICAgdGhpcy5yZXNldCh0aGlzLmRycy5xdWVyeVJlc3VsdCgpKTtcbiAgICB0aGlzLnN1YiA9IHRoaXMuZHJzLmNoYW5nZXMuc3Vic2NyaWJlKHJlc3VsdCA9PiB7dGhpcy5yZXNldChyZXN1bHQpOyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvZmYoKSB7XG4gICAgaWYgKHRoaXMuc3ViKSB7XG4gICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19