From e4fa1e69e7ebfb627c7198fd1a9881e9327ec4d4 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Sat, 28 Jun 2025 17:26:46 -0700 Subject: initial commit: scaffolding --- .../dist/esm5/internal/operators/windowToggle.js | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js (limited to 'node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js') diff --git a/node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js b/node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js new file mode 100644 index 0000000..43ad335 --- /dev/null +++ b/node_modules/rxjs/dist/esm5/internal/operators/windowToggle.js @@ -0,0 +1,66 @@ +import { __values } from "tslib"; +import { Subject } from '../Subject'; +import { Subscription } from '../Subscription'; +import { operate } from '../util/lift'; +import { innerFrom } from '../observable/innerFrom'; +import { createOperatorSubscriber } from './OperatorSubscriber'; +import { noop } from '../util/noop'; +import { arrRemove } from '../util/arrRemove'; +export function windowToggle(openings, closingSelector) { + return operate(function (source, subscriber) { + var windows = []; + var handleError = function (err) { + while (0 < windows.length) { + windows.shift().error(err); + } + subscriber.error(err); + }; + innerFrom(openings).subscribe(createOperatorSubscriber(subscriber, function (openValue) { + var window = new Subject(); + windows.push(window); + var closingSubscription = new Subscription(); + var closeWindow = function () { + arrRemove(windows, window); + window.complete(); + closingSubscription.unsubscribe(); + }; + var closingNotifier; + try { + closingNotifier = innerFrom(closingSelector(openValue)); + } + catch (err) { + handleError(err); + return; + } + subscriber.next(window.asObservable()); + closingSubscription.add(closingNotifier.subscribe(createOperatorSubscriber(subscriber, closeWindow, noop, handleError))); + }, noop)); + source.subscribe(createOperatorSubscriber(subscriber, function (value) { + var e_1, _a; + var windowsCopy = windows.slice(); + try { + for (var windowsCopy_1 = __values(windowsCopy), windowsCopy_1_1 = windowsCopy_1.next(); !windowsCopy_1_1.done; windowsCopy_1_1 = windowsCopy_1.next()) { + var window_1 = windowsCopy_1_1.value; + window_1.next(value); + } + } + catch (e_1_1) { e_1 = { error: e_1_1 }; } + finally { + try { + if (windowsCopy_1_1 && !windowsCopy_1_1.done && (_a = windowsCopy_1.return)) _a.call(windowsCopy_1); + } + finally { if (e_1) throw e_1.error; } + } + }, function () { + while (0 < windows.length) { + windows.shift().complete(); + } + subscriber.complete(); + }, handleError, function () { + while (0 < windows.length) { + windows.shift().unsubscribe(); + } + })); + }); +} +//# sourceMappingURL=windowToggle.js.map \ No newline at end of file -- cgit v1.2.3