@obliczeniowo/elementary
Version:
Library made in Angular version 20
93 lines (88 loc) • 2.86 kB
JavaScript
import { Subscriber, BehaviorSubject } from 'rxjs';
import { isSubscription } from 'rxjs/internal/Subscription';
import { EventEmitter } from '@angular/core';
function isFunction$1(value) {
return typeof value === 'function';
}
function isObserver$1(value) {
return value && isFunction$1(value.next) && isFunction$1(value.error) && isFunction$1(value.complete);
}
function isSubscriber$1(value) {
return (value && value instanceof Subscriber) || (isObserver$1(value) && isSubscription(value));
}
class BehaviorSubjectExt extends BehaviorSubject {
subscriptions = [];
clearSubscriptions() {
this.subscriptions.forEach(sub => !sub.closed && sub.unsubscribe());
this.subscriptions = [];
}
clearClosed() {
this.subscriptions = this.subscriptions.filter(subscription => !subscription.closed);
}
subscribe(observerOrNext, error, complete) {
let subscriber;
if (isSubscriber$1(observerOrNext)) {
subscriber = super.subscribe(observerOrNext);
}
else {
subscriber = super.subscribe(observerOrNext, error, complete);
}
this.clearClosed();
this.subscriptions.push(subscriber);
return subscriber;
}
unsubscribe() {
this.clearSubscriptions();
super.unsubscribe();
}
}
function isFunction(value) {
return typeof value === 'function';
}
function isObserver(value) {
return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);
}
function isSubscriber(value) {
return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));
}
class EventEmitterExt extends EventEmitter {
subscriptions = [];
temp;
clearSubscriptions() {
this.subscriptions.forEach(sub => !sub.closed && sub.unsubscribe());
this.subscriptions = [];
}
clearClosed() {
this.subscriptions = this.subscriptions.filter(subscription => !subscription.closed);
}
subscribe(observerOrNext, error, complete) {
let subscriber;
if (isSubscriber(observerOrNext)) {
subscriber = super.subscribe(observerOrNext);
}
else {
subscriber = super.subscribe(observerOrNext, error, complete);
}
this.clearClosed();
this.subscriptions.push(subscriber);
return subscriber;
}
unsubscribe() {
this.clearSubscriptions();
super.unsubscribe();
}
next(value) {
this.temp = value;
setTimeout(() => {
if (this.temp) {
super.next(value);
}
this.temp = undefined;
}, 100);
}
}
/**
* Generated bundle index. Do not edit.
*/
export { BehaviorSubjectExt, EventEmitterExt };
//# sourceMappingURL=obliczeniowo-elementary-rx-js-ext.mjs.map