@runopencode/rx-stencil 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -11
- package/dist/cjs/index.cjs.js +101 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/rx-async.cjs.entry.js +1 -1
- package/dist/cjs/{set-property-88176225.js → set-property-c1def9c5.js} +5 -1
- package/dist/cjs/set-property-c1def9c5.js.map +1 -0
- package/dist/collection/rx/observable/index.js +1 -0
- package/dist/collection/rx/observable/index.js.map +1 -1
- package/dist/collection/rx/observable/mutation-observable.js.map +1 -1
- package/dist/collection/rx/observable/properties-observable.js +14 -0
- package/dist/collection/rx/observable/properties-observable.js.map +1 -0
- package/dist/components/index.js +102 -3
- package/dist/components/index.js.map +1 -1
- package/dist/components/rx-async.js +1 -1
- package/dist/components/set-property.js +4 -1
- package/dist/components/set-property.js.map +1 -1
- package/dist/esm/index.js +102 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/rx-async.entry.js +1 -1
- package/dist/esm/{set-property-7fa82bef.js → set-property-9befeb72.js} +5 -2
- package/dist/esm/set-property-9befeb72.js.map +1 -0
- package/dist/rx-stencil/index.esm.js +1 -1
- package/dist/rx-stencil/index.esm.js.map +1 -1
- package/dist/rx-stencil/{p-0cd0b2da.js → p-2fc78e52.js} +2 -2
- package/dist/rx-stencil/p-2fc78e52.js.map +1 -0
- package/dist/rx-stencil/p-c823932c.entry.js +2 -0
- package/dist/rx-stencil/{p-01af4414.entry.js.map → p-c823932c.entry.js.map} +1 -1
- package/dist/rx-stencil/rx-stencil.esm.js +1 -1
- package/dist/types/rx/observable/index.d.ts +1 -0
- package/dist/types/rx/observable/properties-observable.d.ts +6 -0
- package/docs/components.md +69 -0
- package/docs/creation-operators.md +138 -0
- package/docs/pipeable-operators.md +36 -0
- package/docs/query-selector-all-decorator.md +154 -0
- package/docs/query-selector-decorator.md +116 -0
- package/docs/subscribers.md +49 -0
- package/package.json +11 -3
- package/dist/cjs/set-property-88176225.js.map +0 -1
- package/dist/esm/set-property-7fa82bef.js.map +0 -1
- package/dist/rx-stencil/p-01af4414.entry.js +0 -2
- package/dist/rx-stencil/p-0cd0b2da.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# @runopencode/rx-stencil
|
|
2
2
|
|
|
3
|
+
[](https://badge.fury.io/js/@runopencode%2Frx-stencil)
|
|
4
|
+
|
|
3
5
|
This is a small utility library which provides a set of useful functions for working
|
|
4
6
|
with [Stencil](https://stenciljs.com) components in conjunction with [RxJS](https://rxjs.dev). RxJS is not, in general,
|
|
5
7
|
well integrated with Stencil, nor core concepts of Stencil in regard to reactivity. However, certain problems can be
|
|
@@ -17,21 +19,22 @@ with requirements such as debouncing, throttling, retrying, etc.
|
|
|
17
19
|
## Table of contents
|
|
18
20
|
|
|
19
21
|
- [Components](docs/components.md)
|
|
20
|
-
- [rx-async](docs/components.md#rx-async)
|
|
21
|
-
-
|
|
22
|
-
- [@QuerySelector()](docs/query-selector-decorator.md)
|
|
23
|
-
- [@QuerySelectorAll()](docs/query-selector-all-decorator.md)
|
|
22
|
+
- [rx-async](docs/components.md#rx-async) - render observable/resolved promise value.
|
|
23
|
+
- Property decorators
|
|
24
|
+
- [@QuerySelector()](docs/query-selector-decorator.md) - select single element from DOM within component subtree.
|
|
25
|
+
- [@QuerySelectorAll()](docs/query-selector-all-decorator.md) - select multiple elements from DOM within component subtree.
|
|
24
26
|
- Operators
|
|
25
27
|
- [Creation operators](docs/creation-operators.md)
|
|
26
|
-
- [mutationObservable()](docs/creation-operators.md#mutationobservable)
|
|
27
|
-
- [propertyObservable()](docs/creation-operators.md#propertyobservable)
|
|
28
|
-
- [
|
|
28
|
+
- [mutationObservable()](docs/creation-operators.md#mutationobservable) - observe changes in DOM subtree.
|
|
29
|
+
- [propertyObservable()](docs/creation-operators.md#propertyobservable) - observe changes of component properties.
|
|
30
|
+
- [propertiesObservable()](docs/creation-operators.md#propertiesobservable) - observe changes of multiple component properties.
|
|
31
|
+
- [renderObservable()](docs/creation-operators.md#renderobservable) - observe invocation of `render()` method of component.
|
|
29
32
|
- [Pipeable operators](docs/pipeable-operators.md)
|
|
30
|
-
- [scheduleRender()](docs/pipeable-operators.md#schedulerender)
|
|
31
|
-
- [toProperty()](docs/pipeable-operators.md#toproperty)
|
|
32
|
-
- [untilDisconnected()](docs/pipeable-operators.md#untildisconnected)
|
|
33
|
+
- [scheduleRender()](docs/pipeable-operators.md#schedulerender) - schedule rendering of component after observable emits in next micro task.
|
|
34
|
+
- [toProperty()](docs/pipeable-operators.md#toproperty) - stream value of observable to component property.
|
|
35
|
+
- [untilDisconnected()](docs/pipeable-operators.md#untildisconnected) - unsubscribe from observable when component is disconnected from the DOM.
|
|
33
36
|
- [Subscribers](docs/subscribers.md)
|
|
34
|
-
- [setProperty()](docs/subscribers.md#setproperty)
|
|
37
|
+
- [setProperty()](docs/subscribers.md#setproperty) - set component property value.
|
|
35
38
|
|
|
36
39
|
## TODO
|
|
37
40
|
|
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-5f6f12ab.js');
|
|
6
|
-
const setProperty = require('./set-property-
|
|
6
|
+
const setProperty = require('./set-property-c1def9c5.js');
|
|
7
7
|
|
|
8
8
|
const dateTimestampProvider = {
|
|
9
9
|
now() {
|
|
@@ -69,6 +69,93 @@ function map(project, thisArg) {
|
|
|
69
69
|
});
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
+
const { isArray: isArray$1 } = Array;
|
|
73
|
+
function callOrApply(fn, args) {
|
|
74
|
+
return isArray$1(args) ? fn(...args) : fn(args);
|
|
75
|
+
}
|
|
76
|
+
function mapOneOrManyArgs(fn) {
|
|
77
|
+
return map(args => callOrApply(fn, args));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const { isArray } = Array;
|
|
81
|
+
const { getPrototypeOf, prototype: objectProto, keys: getKeys } = Object;
|
|
82
|
+
function argsArgArrayOrObject(args) {
|
|
83
|
+
if (args.length === 1) {
|
|
84
|
+
const first = args[0];
|
|
85
|
+
if (isArray(first)) {
|
|
86
|
+
return { args: first, keys: null };
|
|
87
|
+
}
|
|
88
|
+
if (isPOJO(first)) {
|
|
89
|
+
const keys = getKeys(first);
|
|
90
|
+
return {
|
|
91
|
+
args: keys.map((key) => first[key]),
|
|
92
|
+
keys,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return { args: args, keys: null };
|
|
97
|
+
}
|
|
98
|
+
function isPOJO(obj) {
|
|
99
|
+
return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function createObject(keys, values) {
|
|
103
|
+
return keys.reduce((result, key, i) => ((result[key] = values[i]), result), {});
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
function combineLatest(...args) {
|
|
107
|
+
const scheduler = setProperty.popScheduler(args);
|
|
108
|
+
const resultSelector = setProperty.popResultSelector(args);
|
|
109
|
+
const { args: observables, keys } = argsArgArrayOrObject(args);
|
|
110
|
+
if (observables.length === 0) {
|
|
111
|
+
return setProperty.from([], scheduler);
|
|
112
|
+
}
|
|
113
|
+
const result = new setProperty.Observable(combineLatestInit(observables, scheduler, keys
|
|
114
|
+
?
|
|
115
|
+
(values) => createObject(keys, values)
|
|
116
|
+
:
|
|
117
|
+
setProperty.identity));
|
|
118
|
+
return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;
|
|
119
|
+
}
|
|
120
|
+
function combineLatestInit(observables, scheduler, valueTransform = setProperty.identity) {
|
|
121
|
+
return (subscriber) => {
|
|
122
|
+
maybeSchedule(scheduler, () => {
|
|
123
|
+
const { length } = observables;
|
|
124
|
+
const values = new Array(length);
|
|
125
|
+
let active = length;
|
|
126
|
+
let remainingFirstValues = length;
|
|
127
|
+
for (let i = 0; i < length; i++) {
|
|
128
|
+
maybeSchedule(scheduler, () => {
|
|
129
|
+
const source = setProperty.from(observables[i], scheduler);
|
|
130
|
+
let hasFirstValue = false;
|
|
131
|
+
source.subscribe(setProperty.createOperatorSubscriber(subscriber, (value) => {
|
|
132
|
+
values[i] = value;
|
|
133
|
+
if (!hasFirstValue) {
|
|
134
|
+
hasFirstValue = true;
|
|
135
|
+
remainingFirstValues--;
|
|
136
|
+
}
|
|
137
|
+
if (!remainingFirstValues) {
|
|
138
|
+
subscriber.next(valueTransform(values.slice()));
|
|
139
|
+
}
|
|
140
|
+
}, () => {
|
|
141
|
+
if (!--active) {
|
|
142
|
+
subscriber.complete();
|
|
143
|
+
}
|
|
144
|
+
}));
|
|
145
|
+
}, subscriber);
|
|
146
|
+
}
|
|
147
|
+
}, subscriber);
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
function maybeSchedule(scheduler, execute, subscription) {
|
|
151
|
+
if (scheduler) {
|
|
152
|
+
setProperty.executeSchedule(subscription, scheduler, execute);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
execute();
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
72
159
|
function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {
|
|
73
160
|
const buffer = [];
|
|
74
161
|
let active = 0;
|
|
@@ -307,6 +394,18 @@ function mutationObservable(target, options) {
|
|
|
307
394
|
});
|
|
308
395
|
}
|
|
309
396
|
|
|
397
|
+
/**
|
|
398
|
+
* Returns an observable that emits an array of values from the given properties.
|
|
399
|
+
*/
|
|
400
|
+
function propertiesObservable(cmp, ...properties) {
|
|
401
|
+
if (0 === properties.length) {
|
|
402
|
+
throw new Error('At least one property must be specified.');
|
|
403
|
+
}
|
|
404
|
+
return combineLatest(properties.map((property) => {
|
|
405
|
+
return setProperty.propertyObservable(cmp, property);
|
|
406
|
+
}));
|
|
407
|
+
}
|
|
408
|
+
|
|
310
409
|
/**
|
|
311
410
|
* Returns an observable that emits when the component render()
|
|
312
411
|
* function is called. Value will be emitted after the next
|
|
@@ -564,6 +663,7 @@ exports.setProperty = setProperty.setProperty;
|
|
|
564
663
|
exports.QuerySelector = QuerySelector;
|
|
565
664
|
exports.QuerySelectorAll = QuerySelectorAll;
|
|
566
665
|
exports.mutationObservable = mutationObservable;
|
|
666
|
+
exports.propertiesObservable = propertiesObservable;
|
|
567
667
|
exports.renderObservable = renderObservable;
|
|
568
668
|
exports.scheduleRender = scheduleRender;
|
|
569
669
|
exports.toProperty = toProperty;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"index.cjs.js","mappings":"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","names":["Subject","operate","createOperatorSubscriber","innerFrom","executeSchedule","isFunction","identity","from","popScheduler","SafeSubscriber","noop","Observable","getElement","distinctUntilChanged","forceUpdate","getPropertyDescriptor"],"sources":["node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","node_modules/rxjs/dist/esm/internal/ReplaySubject.js","node_modules/rxjs/dist/esm/internal/operators/map.js","node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","node_modules/rxjs/dist/esm/internal/operators/concatAll.js","node_modules/rxjs/dist/esm/internal/observable/concat.js","node_modules/rxjs/dist/esm/internal/operators/filter.js","node_modules/rxjs/dist/esm/internal/operators/share.js","node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","node_modules/rxjs/dist/esm/internal/operators/startWith.js","node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","node_modules/rxjs/dist/esm/internal/operators/tap.js","src/rx/observable/mutation-observable.ts","src/rx/observable/render-observable.ts","src/rx/decorator/query-selector.ts","src/rx/decorator/query-selector-all.ts","src/rx/operator/schedule-render.ts","src/rx/operator/to-property.ts","src/rx/operator/until-disconnected.ts"],"sourcesContent":["export const dateTimestampProvider = {\n now() {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class ReplaySubject extends Subject {\n constructor(_bufferSize = Infinity, _windowTime = Infinity, _timestampProvider = dateTimestampProvider) {\n super();\n this._bufferSize = _bufferSize;\n this._windowTime = _windowTime;\n this._timestampProvider = _timestampProvider;\n this._buffer = [];\n this._infiniteTimeWindow = true;\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n next(value) {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n const subscription = this._innerSubscribe(subscriber);\n const { _infiniteTimeWindow, _buffer } = this;\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n }\n _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n for (let i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n//# sourceMappingURL=ReplaySubject.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n const buffer = [];\n let active = 0;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n const outerNext = (value) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n const doInnerSub = (value) => {\n expand && subscriber.next(value);\n active++;\n let innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, (innerValue) => {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, () => {\n innerComplete = true;\n }, undefined, () => {\n if (innerComplete) {\n try {\n active--;\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n }\n else {\n doInnerSub(bufferedValue);\n }\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, () => {\n isComplete = true;\n checkComplete();\n }));\n return () => {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent = Infinity) {\n if (isFunction(resultSelector)) {\n return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Infinity) {\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat(...args) {\n return concatAll()(from(args, popScheduler(args)));\n}\n//# sourceMappingURL=concat.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));\n });\n}\n//# sourceMappingURL=filter.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { Subject } from '../Subject';\nimport { SafeSubscriber } from '../Subscriber';\nimport { operate } from '../util/lift';\nexport function share(options = {}) {\n const { connector = () => new Subject(), resetOnError = true, resetOnComplete = true, resetOnRefCountZero = true } = options;\n return (wrapperSource) => {\n let connection;\n let resetConnection;\n let subject;\n let refCount = 0;\n let hasCompleted = false;\n let hasErrored = false;\n const cancelReset = () => {\n resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();\n resetConnection = undefined;\n };\n const reset = () => {\n cancelReset();\n connection = subject = undefined;\n hasCompleted = hasErrored = false;\n };\n const resetAndUnsubscribe = () => {\n const conn = connection;\n reset();\n conn === null || conn === void 0 ? void 0 : conn.unsubscribe();\n };\n return operate((source, subscriber) => {\n refCount++;\n if (!hasErrored && !hasCompleted) {\n cancelReset();\n }\n const dest = (subject = subject !== null && subject !== void 0 ? subject : connector());\n subscriber.add(() => {\n refCount--;\n if (refCount === 0 && !hasErrored && !hasCompleted) {\n resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);\n }\n });\n dest.subscribe(subscriber);\n if (!connection &&\n refCount > 0) {\n connection = new SafeSubscriber({\n next: (value) => dest.next(value),\n error: (err) => {\n hasErrored = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnError, err);\n dest.error(err);\n },\n complete: () => {\n hasCompleted = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnComplete);\n dest.complete();\n },\n });\n innerFrom(source).subscribe(connection);\n }\n })(wrapperSource);\n };\n}\nfunction handleReset(reset, on, ...args) {\n if (on === true) {\n reset();\n return;\n }\n if (on === false) {\n return;\n }\n const onSubscriber = new SafeSubscriber({\n next: () => {\n onSubscriber.unsubscribe();\n reset();\n },\n });\n return innerFrom(on(...args)).subscribe(onSubscriber);\n}\n//# sourceMappingURL=share.js.map","import { ReplaySubject } from '../ReplaySubject';\nimport { share } from './share';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n let bufferSize;\n let refCount = false;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n ({ bufferSize = Infinity, windowTime = Infinity, refCount = false, scheduler } = configOrBufferSize);\n }\n else {\n bufferSize = (configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity);\n }\n return share({\n connector: () => new ReplaySubject(bufferSize, windowTime, scheduler),\n resetOnError: true,\n resetOnComplete: false,\n resetOnRefCountZero: refCount,\n });\n}\n//# sourceMappingURL=shareReplay.js.map","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith(...values) {\n const scheduler = popScheduler(values);\n return operate((source, subscriber) => {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=startWith.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function takeUntil(notifier) {\n return operate((source, subscriber) => {\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, () => subscriber.complete(), noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=takeUntil.js.map","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n const tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error, complete }\n : observerOrNext;\n return tapObserver\n ? operate((source, subscriber) => {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n let isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, () => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, (err) => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, () => {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n//# sourceMappingURL=tap.js.map","import {\n Observable,\n Subscriber,\n} from 'rxjs';\n\nexport function mutationObservable(target: Node, options?: MutationObserverInit): Observable<MutationRecord[]> {\n return new Observable((observer: Subscriber<MutationRecord[]>) => {\n let mutation: MutationObserver = new MutationObserver((mutations: MutationRecord[]): void => {\n observer.next(mutations);\n });\n\n mutation.observe(target, options);\n\n return (): void => {\n mutation.disconnect();\n };\n });\n}\n","import { ComponentInterface } from '@stencil/core';\nimport {\n Observable,\n Subscriber,\n TeardownLogic,\n} from 'rxjs';\n\n/**\n * Returns an observable that emits when the component render()\n * function is called. Value will be emitted after the next\n * microtask (next tick).\n */\nexport function renderObservable(cmp: ComponentInterface): Observable<void> {\n if ('function' !== typeof cmp.render) {\n throw new Error('Component does not have a render function.');\n }\n\n return new Observable<void>((subscriber: Subscriber<void>): TeardownLogic => {\n let previousRender: () => any = cmp.render;\n\n cmp.render = function (): any {\n Promise.resolve().then((): void => {\n subscriber.next();\n });\n\n return previousRender.call(this);\n }\n\n return (): void => {\n cmp.render = previousRender;\n }\n });\n}\n","import {\n ComponentInterface,\n getElement,\n} from '@stencil/core';\nimport {\n distinctUntilChanged,\n filter,\n map,\n Observable,\n shareReplay,\n startWith,\n} from 'rxjs';\nimport {\n mutationObservable,\n renderObservable,\n} from '../observable';\n\n/**\n * Options for QuerySelector decorator.\n */\nexport type QuerySelectorOptions = {\n /**\n * If `true`, the element will be searched in the shadow root. Default is `false`.\n */\n shadowRoot?: boolean;\n /**\n * If `true`, mutation observer instead of `renderObservable` from this package will\n * be used to detect changes. Default is `false`.\n */\n mutationObserver?: boolean;\n};\n\n/**\n * Observe all sub nodes of the given node and notify\n * when any of them is removed and/or added.\n *\n * {@internal}\n */\nexport function observeSubNodes(target: Node): Observable<void> {\n return mutationObservable(target, {\n subtree: true,\n childList: true,\n }).pipe(\n filter((records: MutationRecord[]): boolean => {\n for (let i: number = 0; i < records.length; i++) {\n if ('childList' !== records[i].type) {\n continue;\n }\n\n if (records[i].addedNodes.length || records[i].removedNodes.length) {\n return true;\n }\n }\n\n return false;\n }),\n map((): void => {\n /* noop */\n }),\n );\n}\n\n/**\n * Property decorator inspired by Angular's @ViewChild/@ContentChild.\n *\n * After each render, the decorated property will be set to the first element\n * matching the given selector. If no element is found, the property will be\n * set to null.\n */\nexport function QuerySelector<T extends HTMLElement = HTMLElement>(selector: string, options?: QuerySelectorOptions): any {\n return (target: Function, property: string): void => {\n let descriptor: PropertyDescriptor = {\n set: function (): void {\n throw new Error(`Property \"${property}\" is read-only.`);\n },\n get: function (this: ComponentInterface): Observable<T | null> {\n let observableProperty: string = `__rx__query_selector__observable__shadow_root__${options?.shadowRoot ? 'yes' : 'no'}__mutation_observer__${options?.mutationObserver ? 'yes' : 'no'}__selector__${selector}__`;\n\n if (!this[observableProperty]) {\n let root: HTMLElement | ShadowRoot = options?.shadowRoot ? getElement(this).shadowRoot : getElement(this);\n let observable: Observable<void> = options?.mutationObserver ? observeSubNodes(root) : renderObservable(this);\n\n this[observableProperty] = observable.pipe(\n startWith(),\n map((): T => root.querySelector(selector)),\n distinctUntilChanged(),\n shareReplay(1),\n );\n }\n\n return this[observableProperty];\n },\n }\n\n Object.defineProperty(target, property, descriptor);\n };\n}\n","import {\n ComponentInterface,\n getElement,\n} from '@stencil/core';\nimport {\n distinctUntilChanged,\n map,\n Observable,\n shareReplay,\n startWith,\n} from 'rxjs';\nimport { renderObservable } from '../observable';\nimport { observeSubNodes } from './query-selector';\n\n/**\n * Options for QuerySelectorAll decorator.\n */\nexport type QuerySelectorAllOptions = {\n /**\n * If `true`, the elements will be searched in the shadow root. Default is `false`.\n */\n shadowRoot?: boolean;\n /**\n * If `true`, mutation observer instead of `renderObservable` from this package will\n * be used to detect changes. Default is `false`.\n */\n mutationObserver?: boolean;\n};\n\n/**\n * Property decorator inspired by Angular's @ViewChild/@ContentChild.\n *\n * After each render, the decorated property will be set to the first element\n * matching the given selector. If no element is found, the property will be\n * set to null.\n */\nexport function QuerySelectorAll<T extends HTMLElement = HTMLElement>(selector: string, options?: QuerySelectorAllOptions): any {\n return (target: Function, property: string): void => {\n let descriptor: PropertyDescriptor = {\n set: function (): void {\n throw new Error(`Property \"${property}\" is read-only.`);\n },\n get: function (this: ComponentInterface): Observable<T | null> {\n let observableProperty: string = `__rx__query_selector_all__observable__shadow_root__${options?.shadowRoot ? 'yes' : 'no'}__mutation_observer__${options?.mutationObserver ? 'yes' : 'no'}__selector__${selector}__`;\n\n if (!this[observableProperty]) {\n let root: HTMLElement | ShadowRoot = options?.shadowRoot ? getElement(this).shadowRoot : getElement(this);\n let observable: Observable<void> = options?.mutationObserver ? observeSubNodes(root) : renderObservable(this);\n\n this[observableProperty] = observable.pipe(\n startWith(),\n map((): T[] => Array.from(root.querySelectorAll(selector))),\n distinctUntilChanged((previous: T[], current: T[]): boolean => {\n if (previous.length !== current.length) {\n return false;\n }\n\n for (let i: number = 0; i < previous.length; i++) {\n if (previous[i] !== current[i]) {\n return false;\n }\n }\n\n return true;\n }),\n shareReplay(1),\n );\n }\n\n return this[observableProperty];\n },\n }\n\n Object.defineProperty(target, property, descriptor);\n };\n}\n","import {\n ComponentInterface,\n forceUpdate,\n} from '@stencil/core';\nimport {\n MonoTypeOperatorFunction,\n Observable,\n tap,\n} from 'rxjs';\n\n/**\n * Schedule a render of the component. This is useful when you\n * want to force a render of the component as result of changing\n * the values of the component which are not tracked by Stencil,\n * observables, for example.\n *\n * By default, the render is scheduled on the next tick, but you\n * can disable this behavior by passing `false` as second argument.\n */\nexport function scheduleRender<T = unknown>(cmp: ComponentInterface, nextTick: boolean = true): MonoTypeOperatorFunction<T> {\n return (source: Observable<T>): Observable<T> => {\n return source.pipe(tap((): void => {\n if (!nextTick) {\n forceUpdate(cmp);\n return;\n }\n\n Promise.resolve().then((): void => forceUpdate(cmp));\n }));\n };\n}\n","import { ComponentInterface } from '@stencil/core';\nimport {\n MonoTypeOperatorFunction,\n tap,\n} from 'rxjs';\nimport { getPropertyDescriptor } from '../../utils';\n\n/**\n * Use this function to tap into a value stream and flush value to\n * component property. You may also use this function as subscription\n * function (function will detect that value is passed instead of\n * observable).\n */\nexport function toProperty<T = any>(cmp: ComponentInterface, property: string): MonoTypeOperatorFunction<T> {\n // ensure that the property is defined on the component.\n getPropertyDescriptor(cmp, property);\n\n // @ts-ignore\n return (source: Observable<T>): Observable<T> | void => {\n return source.pipe(\n tap((value: T): void => {\n cmp[property] = value;\n }),\n );\n };\n}\n","import {\n ComponentInterface,\n getElement,\n} from '@stencil/core';\nimport {\n MonoTypeOperatorFunction,\n Observable,\n Subject,\n Subscriber,\n takeUntil,\n TeardownLogic,\n} from 'rxjs';\n\n/**\n * A map of component observables that are being watched for\n * disconnect callback invocation. A weak map is being used\n * so that the component instance can be garbage collected.\n *\n * {@internal}\n */\nlet disconnectObservables: WeakMap<ComponentInterface, Observable<void>> = new WeakMap();\n\n/**\n * A function that creates an observable which emits an event\n * when the component is disconnected from DOM.\n *\n * {@internal}\n */\ntype CreateDisconnectObservableFn = (cmp: ComponentInterface) => Observable<void>;\n\n/**\n * Creates an observable that emits a value when the component\n * is disconnected from DOM and method `disconnectedCallback()`\n * is invoked. StencilJS will supress the invocation of this\n * method if it is not defined on the component.\n *\n * {@internal}\n */\nlet createUsingDisconnectedCallback: CreateDisconnectObservableFn = function (cmp: ComponentInterface): Observable<void> {\n let previousDisconnected: Function | undefined = cmp.disconnectedCallback;\n\n if (!previousDisconnected) {\n throw new Error(`Component \"${cmp.constructor.name}\" does not have a \"disconnectedCallback()\" method defined.`);\n }\n\n let disconnectedSubject$: Subject<void> = new Subject<void>();\n\n cmp.disconnectedCallback = function (): void {\n if (previousDisconnected) {\n previousDisconnected.call(cmp);\n }\n\n disconnectedSubject$.next();\n };\n\n return disconnectedSubject$.asObservable();\n}\n\n/**\n * Mutation observer is our next heuristic. We will monitor parent\n * node of the component and emit a value when the component is\n * disconnected from DOM. This will only work, of course, if the\n * component is not the root node of the application and component\n * is already within DOM.\n *\n * {@internal}\n */\nlet createUsingMutationObserver: CreateDisconnectObservableFn = function (cmp: ComponentInterface): Observable<void> {\n let element: HTMLElement = getElement(cmp);\n\n if (null === element.parentNode) {\n throw new Error(`Component \"${cmp.constructor.name}\" is not within DOM.`);\n }\n\n return new Observable<void>((observer: Subscriber<void>): TeardownLogic => {\n\n let mutationObserver: MutationObserver = new MutationObserver((mutations: MutationRecord[]): void => {\n mutations.forEach((record: MutationRecord): void => {\n for (let node of Array.from(record.removedNodes)) {\n if (node !== element) {\n continue;\n }\n\n observer.next();\n observer.complete();\n }\n });\n });\n\n mutationObserver.observe(element.parentNode, {\n childList: true,\n subtree: true,\n });\n\n return (): void => {\n mutationObserver.disconnect();\n // we can not re-use this observable, so we have to delete it\n disconnectObservables.delete(cmp);\n };\n });\n\n\n}\n\n/**\n * Creates an observable that emits a value when the component\n * is disconnected from DOM.\n *\n * {@internal}\n */\nfunction createDisconnectObservable(cmp: ComponentInterface): void {\n let functions: CreateDisconnectObservableFn[] = [\n createUsingDisconnectedCallback,\n createUsingMutationObserver,\n ];\n\n for (let fn of functions) {\n try {\n disconnectObservables.set(cmp, fn(cmp));\n return;\n } catch (e) {\n // noop\n }\n }\n\n throw new Error(`Could not create disconnect observable for component \"${cmp.constructor.name}\".`);\n}\n\n/**\n * Operator that unsubscribes from the source observable when\n * the component is disconnected from DOM.\n */\nexport function untilDisconnected<T = unknown>(cmp: ComponentInterface): MonoTypeOperatorFunction<T> {\n return (source: Observable<T>): Observable<T> => {\n if (!disconnectObservables.has(cmp)) {\n createDisconnectObservable(cmp);\n }\n\n let disconnectObservable$: Observable<void> = disconnectObservables.get(cmp);\n\n return source.pipe(\n takeUntil<T>(disconnectObservable$),\n );\n };\n}\n"],"version":3}
|
|
1
|
+
{"file":"index.cjs.js","mappings":";;;;;;;AAAO,MAAM,qBAAqB,GAAG;AACrC,IAAI,GAAG,GAAG;AACV,QAAQ,OAAO,CAAC,qBAAqB,CAAC,QAAQ,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC;AAC9D,KAAK;AACL,IAAI,QAAQ,EAAE,SAAS;AACvB,CAAC;;ACHM,MAAM,aAAa,SAASA,mBAAO,CAAC;AAC3C,IAAI,WAAW,CAAC,WAAW,GAAG,QAAQ,EAAE,WAAW,GAAG,QAAQ,EAAE,kBAAkB,GAAG,qBAAqB,EAAE;AAC5G,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;AACrD,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AAC1B,QAAQ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;AACxC,QAAQ,IAAI,CAAC,mBAAmB,GAAG,WAAW,KAAK,QAAQ,CAAC;AAC5D,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AACpD,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AACpD,KAAK;AACL,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,QAAQ,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;AAClG,QAAQ,IAAI,CAAC,SAAS,EAAE;AACxB,YAAY,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,YAAY,CAAC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,CAAC;AACzF,SAAS;AACT,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,UAAU,CAAC,UAAU,EAAE;AAC3B,QAAQ,IAAI,CAAC,cAAc,EAAE,CAAC;AAC9B,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3B,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAC9D,QAAQ,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;AACtD,QAAQ,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;AACrC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,mBAAmB,GAAG,CAAC,GAAG,CAAC,EAAE;AACjG,YAAY,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,SAAS;AACT,QAAQ,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;AACjD,QAAQ,OAAO,YAAY,CAAC;AAC5B,KAAK;AACL,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAAC;AACvF,QAAQ,MAAM,kBAAkB,GAAG,CAAC,mBAAmB,GAAG,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC;AAC/E,QAAQ,WAAW,GAAG,QAAQ,IAAI,kBAAkB,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,kBAAkB,CAAC,CAAC;AAChI,QAAQ,IAAI,CAAC,mBAAmB,EAAE;AAClC,YAAY,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC;AACjD,YAAY,IAAI,IAAI,GAAG,CAAC,CAAC;AACzB,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;AAC7E,gBAAgB,IAAI,GAAG,CAAC,CAAC;AACzB,aAAa;AACb,YAAY,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAChD,SAAS;AACT,KAAK;AACL;;AC9CO,SAAS,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE;AACtC,IAAI,OAAOC,mBAAO,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK;AAC3C,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AACtB,QAAQ,MAAM,CAAC,SAAS,CAACC,oCAAwB,CAAC,UAAU,EAAE,CAAC,KAAK,KAAK;AACzE,YAAY,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACnE,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK,CAAC,CAAC;AACP;;ACRA,MAAM,WAAEC,SAAO,EAAE,GAAG,KAAK,CAAC;AAC1B,SAAS,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE;AAC/B,IAAI,OAAOA,SAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAClD,CAAC;AACM,SAAS,gBAAgB,CAAC,EAAE,EAAE;AACrC,IAAI,OAAO,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9C;;ACPA,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;AAC1B,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;AAClE,SAAS,oBAAoB,CAAC,IAAI,EAAE;AAC3C,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAY,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC/C,SAAS;AACT,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AAC3B,YAAY,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AACxC,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC;AACnD,gBAAgB,IAAI;AACpB,aAAa,CAAC;AACd,SAAS;AACT,KAAK;AACL,IAAI,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AACD,SAAS,MAAM,CAAC,GAAG,EAAE;AACrB,IAAI,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC;AACjF;;ACpBO,SAAS,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE;AAC3C,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;AACpF;;ACOO,SAAS,aAAa,CAAC,GAAG,IAAI,EAAE;AACvC,IAAI,MAAM,SAAS,GAAGC,wBAAY,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI,MAAM,cAAc,GAAGC,6BAAiB,CAAC,IAAI,CAAC,CAAC;AACnD,IAAI,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACnE,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,QAAQ,OAAOC,gBAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AACnC,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,IAAIC,sBAAU,CAAC,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI;AAChF;AACA,YAAY,CAAC,MAAM,KAAK,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;AAClD;AACA,YAAYC,oBAAQ,CAAC,CAAC,CAAC;AACvB,IAAI,OAAO,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,GAAG,MAAM,CAAC;AACnF,CAAC;AACM,SAAS,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,GAAGA,oBAAQ,EAAE;AACrF,IAAI,OAAO,CAAC,UAAU,KAAK;AAC3B,QAAQ,aAAa,CAAC,SAAS,EAAE,MAAM;AACvC,YAAY,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;AAC3C,YAAY,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAC7C,YAAY,IAAI,MAAM,GAAG,MAAM,CAAC;AAChC,YAAY,IAAI,oBAAoB,GAAG,MAAM,CAAC;AAC9C,YAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC7C,gBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM;AAC/C,oBAAoB,MAAM,MAAM,GAAGF,gBAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACnE,oBAAoB,IAAI,aAAa,GAAG,KAAK,CAAC;AAC9C,oBAAoB,MAAM,CAAC,SAAS,CAACJ,oCAAwB,CAAC,UAAU,EAAE,CAAC,KAAK,KAAK;AACrF,wBAAwB,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC1C,wBAAwB,IAAI,CAAC,aAAa,EAAE;AAC5C,4BAA4B,aAAa,GAAG,IAAI,CAAC;AACjD,4BAA4B,oBAAoB,EAAE,CAAC;AACnD,yBAAyB;AACzB,wBAAwB,IAAI,CAAC,oBAAoB,EAAE;AACnD,4BAA4B,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC5E,yBAAyB;AACzB,qBAAqB,EAAE,MAAM;AAC7B,wBAAwB,IAAI,CAAC,EAAE,MAAM,EAAE;AACvC,4BAA4B,UAAU,CAAC,QAAQ,EAAE,CAAC;AAClD,yBAAyB;AACzB,qBAAqB,CAAC,CAAC,CAAC;AACxB,iBAAiB,EAAE,UAAU,CAAC,CAAC;AAC/B,aAAa;AACb,SAAS,EAAE,UAAU,CAAC,CAAC;AACvB,KAAK,CAAC;AACN,CAAC;AACD,SAAS,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE;AACzD,IAAI,IAAI,SAAS,EAAE;AACnB,QAAQO,2BAAe,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC1D,KAAK;AACL,SAAS;AACT,QAAQ,OAAO,EAAE,CAAC;AAClB,KAAK;AACL;;ACzDO,SAAS,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,EAAE,mBAAmB,EAAE;AACtI,IAAI,MAAM,MAAM,GAAG,EAAE,CAAC;AACtB,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;AACnB,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;AAClB,IAAI,IAAI,UAAU,GAAG,KAAK,CAAC;AAC3B,IAAI,MAAM,aAAa,GAAG,MAAM;AAChC,QAAQ,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE;AACrD,YAAY,UAAU,CAAC,QAAQ,EAAE,CAAC;AAClC,SAAS;AACT,KAAK,CAAC;AACN,IAAI,MAAM,SAAS,GAAG,CAAC,KAAK,MAAM,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAChG,IAAI,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK;AAClC,QAAQ,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,QAAQ,MAAM,EAAE,CAAC;AACjB,QAAQ,IAAI,aAAa,GAAG,KAAK,CAAC;AAClC,QAAQC,qBAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAACR,oCAAwB,CAAC,UAAU,EAAE,CAAC,UAAU,KAAK;AAC1G,YAAY,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AACjG,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAgB,SAAS,CAAC,UAAU,CAAC,CAAC;AACtC,aAAa;AACb,iBAAiB;AACjB,gBAAgB,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5C,aAAa;AACb,SAAS,EAAE,MAAM;AACjB,YAAY,aAAa,GAAG,IAAI,CAAC;AACjC,SAAS,EAAE,SAAS,EAAE,MAAM;AAC5B,YAAY,IAAI,aAAa,EAAE;AAC/B,gBAAgB,IAAI;AACpB,oBAAoB,MAAM,EAAE,CAAC;AAC7B,oBAAoB,OAAO,MAAM,CAAC,MAAM,IAAI,MAAM,GAAG,UAAU,EAAE;AACjE,wBAAwB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AAC7D,wBAAwB,IAAI,iBAAiB,EAAE;AAC/C,4BAA4BO,2BAAe,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;AAC5G,yBAAyB;AACzB,6BAA6B;AAC7B,4BAA4B,UAAU,CAAC,aAAa,CAAC,CAAC;AACtD,yBAAyB;AACzB,qBAAqB;AACrB,oBAAoB,aAAa,EAAE,CAAC;AACpC,iBAAiB;AACjB,gBAAgB,OAAO,GAAG,EAAE;AAC5B,oBAAoB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1C,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK,CAAC;AACN,IAAI,MAAM,CAAC,SAAS,CAACP,oCAAwB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM;AAC3E,QAAQ,UAAU,GAAG,IAAI,CAAC;AAC1B,QAAQ,aAAa,EAAE,CAAC;AACxB,KAAK,CAAC,CAAC,CAAC;AACR,IAAI,OAAO,MAAM;AACjB,QAAQ,mBAAmB,KAAK,IAAI,IAAI,mBAAmB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,mBAAmB,EAAE,CAAC;AACxG,KAAK,CAAC;AACN;;ACnDO,SAAS,QAAQ,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,GAAG,QAAQ,EAAE;AACzE,IAAI,IAAIS,sBAAU,CAAC,cAAc,CAAC,EAAE;AACpC,QAAQ,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAACD,qBAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AACrH,KAAK;AACL,SAAS,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;AACjD,QAAQ,UAAU,GAAG,cAAc,CAAC;AACpC,KAAK;AACL,IAAI,OAAOT,mBAAO,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACpG;;ACXO,SAAS,QAAQ,CAAC,UAAU,GAAG,QAAQ,EAAE;AAChD,IAAI,OAAO,QAAQ,CAACO,oBAAQ,EAAE,UAAU,CAAC,CAAC;AAC1C;;ACHO,SAAS,SAAS,GAAG;AAC5B,IAAI,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACvB;;ACAO,SAAS,MAAM,CAAC,GAAG,IAAI,EAAE;AAChC,IAAI,OAAO,SAAS,EAAE,CAACF,gBAAI,CAAC,IAAI,EAAEF,wBAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD;;ACHO,SAAS,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE;AAC3C,IAAI,OAAOH,mBAAO,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK;AAC3C,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AACtB,QAAQ,MAAM,CAAC,SAAS,CAACC,oCAAwB,CAAC,UAAU,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7I,KAAK,CAAC,CAAC;AACP;;ACHO,SAAS,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE;AACpC,IAAI,MAAM,EAAE,SAAS,GAAG,MAAM,IAAIF,mBAAO,EAAE,EAAE,YAAY,GAAG,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,mBAAmB,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;AACjI,IAAI,OAAO,CAAC,aAAa,KAAK;AAC9B,QAAQ,IAAI,UAAU,CAAC;AACvB,QAAQ,IAAI,eAAe,CAAC;AAC5B,QAAQ,IAAI,OAAO,CAAC;AACpB,QAAQ,IAAI,QAAQ,GAAG,CAAC,CAAC;AACzB,QAAQ,IAAI,YAAY,GAAG,KAAK,CAAC;AACjC,QAAQ,IAAI,UAAU,GAAG,KAAK,CAAC;AAC/B,QAAQ,MAAM,WAAW,GAAG,MAAM;AAClC,YAAY,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;AAC5G,YAAY,eAAe,GAAG,SAAS,CAAC;AACxC,SAAS,CAAC;AACV,QAAQ,MAAM,KAAK,GAAG,MAAM;AAC5B,YAAY,WAAW,EAAE,CAAC;AAC1B,YAAY,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;AAC7C,YAAY,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;AAC9C,SAAS,CAAC;AACV,QAAQ,MAAM,mBAAmB,GAAG,MAAM;AAC1C,YAAY,MAAM,IAAI,GAAG,UAAU,CAAC;AACpC,YAAY,KAAK,EAAE,CAAC;AACpB,YAAY,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAC3E,SAAS,CAAC;AACV,QAAQ,OAAOC,mBAAO,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK;AAC/C,YAAY,QAAQ,EAAE,CAAC;AACvB,YAAY,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE;AAC9C,gBAAgB,WAAW,EAAE,CAAC;AAC9B,aAAa;AACb,YAAY,MAAM,IAAI,IAAI,OAAO,GAAG,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,GAAG,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC;AACpG,YAAY,UAAU,CAAC,GAAG,CAAC,MAAM;AACjC,gBAAgB,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,QAAQ,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,EAAE;AACpE,oBAAoB,eAAe,GAAG,WAAW,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;AAC5F,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACvC,YAAY,IAAI,CAAC,UAAU;AAC3B,gBAAgB,QAAQ,GAAG,CAAC,EAAE;AAC9B,gBAAgB,UAAU,GAAG,IAAIW,0BAAc,CAAC;AAChD,oBAAoB,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACrD,oBAAoB,KAAK,EAAE,CAAC,GAAG,KAAK;AACpC,wBAAwB,UAAU,GAAG,IAAI,CAAC;AAC1C,wBAAwB,WAAW,EAAE,CAAC;AACtC,wBAAwB,eAAe,GAAG,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;AAChF,wBAAwB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,qBAAqB;AACrB,oBAAoB,QAAQ,EAAE,MAAM;AACpC,wBAAwB,YAAY,GAAG,IAAI,CAAC;AAC5C,wBAAwB,WAAW,EAAE,CAAC;AACtC,wBAAwB,eAAe,GAAG,WAAW,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;AAC9E,wBAAwB,IAAI,CAAC,QAAQ,EAAE,CAAC;AACxC,qBAAqB;AACrB,iBAAiB,CAAC,CAAC;AACnB,gBAAgBF,qBAAS,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AACxD,aAAa;AACb,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;AAC1B,KAAK,CAAC;AACN,CAAC;AACD,SAAS,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE;AACzC,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE;AACrB,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,IAAI,EAAE,KAAK,KAAK,EAAE;AACtB,QAAQ,OAAO;AACf,KAAK;AACL,IAAI,MAAM,YAAY,GAAG,IAAIE,0BAAc,CAAC;AAC5C,QAAQ,IAAI,EAAE,MAAM;AACpB,YAAY,YAAY,CAAC,WAAW,EAAE,CAAC;AACvC,YAAY,KAAK,EAAE,CAAC;AACpB,SAAS;AACT,KAAK,CAAC,CAAC;AACP,IAAI,OAAOF,qBAAS,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAC1D;;AC3EO,SAAS,WAAW,CAAC,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE;AACvE,IAAI,IAAI,UAAU,CAAC;AACnB,IAAI,IAAI,QAAQ,GAAG,KAAK,CAAC;AACzB,IAAI,IAAI,kBAAkB,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;AACtE,QAAQ,CAAC,EAAE,UAAU,GAAG,QAAQ,EAAE,UAAU,GAAG,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAE,SAAS,EAAE,GAAG,kBAAkB,EAAE;AAC7G,KAAK;AACL,SAAS;AACT,QAAQ,UAAU,IAAI,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,KAAK,KAAK,CAAC,GAAG,kBAAkB,GAAG,QAAQ,CAAC,CAAC;AACpH,KAAK;AACL,IAAI,OAAO,KAAK,CAAC;AACjB,QAAQ,SAAS,EAAE,MAAM,IAAI,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;AAC7E,QAAQ,YAAY,EAAE,IAAI;AAC1B,QAAQ,eAAe,EAAE,KAAK;AAC9B,QAAQ,mBAAmB,EAAE,QAAQ;AACrC,KAAK,CAAC,CAAC;AACP;;ACdO,SAAS,SAAS,CAAC,GAAG,MAAM,EAAE;AACrC,IAAI,MAAM,SAAS,GAAGN,wBAAY,CAAC,MAAM,CAAC,CAAC;AAC3C,IAAI,OAAOH,mBAAO,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK;AAC3C,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;AACvG,KAAK,CAAC,CAAC;AACP;;ACJO,SAAS,SAAS,CAAC,QAAQ,EAAE;AACpC,IAAI,OAAOA,mBAAO,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK;AAC3C,QAAQS,qBAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,CAACR,oCAAwB,CAAC,UAAU,EAAE,MAAM,UAAU,CAAC,QAAQ,EAAE,EAAEW,gBAAI,CAAC,CAAC,CAAC;AAC/G,QAAQ,CAAC,UAAU,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAC3D,KAAK,CAAC,CAAC;AACP;;ACLO,SAAS,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE;AACrD,IAAI,MAAM,WAAW,GAAGF,sBAAU,CAAC,cAAc,CAAC,IAAI,KAAK,IAAI,QAAQ;AACvE;AACA,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE;AACrD,UAAU,cAAc,CAAC;AACzB,IAAI,OAAO,WAAW;AACtB,UAAUV,mBAAO,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK;AAC1C,YAAY,IAAI,EAAE,CAAC;AACnB,YAAY,CAAC,EAAE,GAAG,WAAW,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACnG,YAAY,IAAI,OAAO,GAAG,IAAI,CAAC;AAC/B,YAAY,MAAM,CAAC,SAAS,CAACC,oCAAwB,CAAC,UAAU,EAAE,CAAC,KAAK,KAAK;AAC7E,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,CAAC,EAAE,GAAG,WAAW,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACzG,gBAAgB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,aAAa,EAAE,MAAM;AACrB,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,OAAO,GAAG,KAAK,CAAC;AAChC,gBAAgB,CAAC,EAAE,GAAG,WAAW,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACtG,gBAAgB,UAAU,CAAC,QAAQ,EAAE,CAAC;AACtC,aAAa,EAAE,CAAC,GAAG,KAAK;AACxB,gBAAgB,IAAI,EAAE,CAAC;AACvB,gBAAgB,OAAO,GAAG,KAAK,CAAC;AAChC,gBAAgB,CAAC,EAAE,GAAG,WAAW,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACxG,gBAAgB,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtC,aAAa,EAAE,MAAM;AACrB,gBAAgB,IAAI,EAAE,EAAE,EAAE,CAAC;AAC3B,gBAAgB,IAAI,OAAO,EAAE;AAC7B,oBAAoB,CAAC,EAAE,GAAG,WAAW,CAAC,WAAW,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7G,iBAAiB;AACjB,gBAAgB,CAAC,EAAE,GAAG,WAAW,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACtG,aAAa,CAAC,CAAC,CAAC;AAChB,SAAS,CAAC;AACV;AACA,YAAYM,oBAAQ,CAAC;AACrB;;SChCgB,kBAAkB,CAAC,MAAY,EAAE,OAA8B;EAC3E,OAAO,IAAID,sBAAU,CAAC,CAAC,QAAsC;IACzD,IAAI,QAAQ,GAAqB,IAAI,gBAAgB,CAAC,CAAC,SAA2B;MAC9E,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC5B,CAAC,CAAC;IAEH,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC,OAAO;MACH,QAAQ,CAAC,UAAU,EAAE,CAAC;KACzB,CAAC;GACL,CAAC,CAAC;AACP;;ACXA;;;SAGgB,oBAAoB,CAAkB,GAAuB,EAAE,GAAG,UAAoB;EAClG,IAAI,CAAC,KAAK,UAAU,CAAC,MAAM,EAAE;IACzB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;GAC/D;EAED,OAAO,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAgB;IACjD,OAAOO,8BAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;GAC5C,CAAC,CAAoB,CAAC;AAC3B;;ACXA;;;;;SAKgB,gBAAgB,CAAC,GAAuB;EACpD,IAAI,UAAU,KAAK,OAAO,GAAG,CAAC,MAAM,EAAE;IAClC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;GACjE;EAED,OAAO,IAAIP,sBAAU,CAAO,CAAC,UAA4B;IACrD,IAAI,cAAc,GAAc,GAAG,CAAC,MAAM,CAAC;IAE3C,GAAG,CAAC,MAAM,GAAG;MACT,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;QACnB,UAAU,CAAC,IAAI,EAAE,CAAC;OACrB,CAAC,CAAC;MAEH,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpC,CAAA;IAED,OAAO;MACH,GAAG,CAAC,MAAM,GAAG,cAAc,CAAC;KAC/B,CAAA;GACJ,CAAC,CAAC;AACP;;ACAA;;;;;;SAMgB,eAAe,CAAC,MAAY;EACxC,OAAO,kBAAkB,CAAC,MAAM,EAAE;IAC9B,OAAO,EAAI,IAAI;IACf,SAAS,EAAE,IAAI;GAClB,CAAC,CAAC,IAAI,CACH,MAAM,CAAC,CAAC,OAAyB;IAC7B,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MAC7C,IAAI,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QACjC,SAAS;OACZ;MAED,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE;QAChE,OAAO,IAAI,CAAC;OACf;KACJ;IAED,OAAO,KAAK,CAAC;GAChB,CAAC,EACF,GAAG,CAAC;;GAEH,CAAC,CACL,CAAC;AACN,CAAC;AAED;;;;;;;SAOgB,aAAa,CAAsC,QAAgB,EAAE,OAA8B;EAC/G,OAAO,CAAC,MAAgB,EAAE,QAAgB;IACtC,IAAI,UAAU,GAAuB;MACjC,GAAG,EAAE;QACD,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,iBAAiB,CAAC,CAAC;OAC3D;MACD,GAAG,EAAE;QACD,IAAI,kBAAkB,GAAW,kDAAkD,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,IAAG,KAAK,GAAG,IAAI,wBAAwB,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,IAAG,KAAK,GAAG,IAAI,eAAe,QAAQ,IAAI,CAAC;QAEjN,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;UAC3B,IAAI,IAAI,GAA6B,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,IAAGQ,gBAAU,CAAC,IAAI,CAAC,CAAC,UAAU,GAAGA,gBAAU,CAAC,IAAI,CAAC,CAAC;UAC1G,IAAI,UAAU,GAAuB,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,IAAG,eAAe,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;UAEhH,IAAI,CAAC,kBAAkB,CAAC,GAAG,UAAU,CAAC,IAAI,CACtC,SAAS,EAAE,EACX,GAAG,CAAC,MAAS,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAC1CC,gCAAoB,EAAE,EACtB,WAAW,CAAC,CAAC,CAAC,CACjB,CAAC;SACL;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC;OACnC;KACJ,CAAA;IAED,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;GACvD,CAAC;AACN;;ACnEA;;;;;;;SAOgB,gBAAgB,CAAsC,QAAgB,EAAE,OAAiC;EACrH,OAAO,CAAC,MAAgB,EAAE,QAAgB;IACtC,IAAI,UAAU,GAAuB;MACjC,GAAG,EAAE;QACD,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,iBAAiB,CAAC,CAAC;OAC3D;MACD,GAAG,EAAE;QACD,IAAI,kBAAkB,GAAW,sDAAsD,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,IAAG,KAAK,GAAG,IAAI,wBAAwB,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,IAAG,KAAK,GAAG,IAAI,eAAe,QAAQ,IAAI,CAAC;QAErN,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;UAC3B,IAAI,IAAI,GAA6B,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,IAAGD,gBAAU,CAAC,IAAI,CAAC,CAAC,UAAU,GAAGA,gBAAU,CAAC,IAAI,CAAC,CAAC;UAC1G,IAAI,UAAU,GAAuB,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,IAAG,eAAe,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;UAEhH,IAAI,CAAC,kBAAkB,CAAC,GAAG,UAAU,CAAC,IAAI,CACtC,SAAS,EAAE,EACX,GAAG,CAAC,MAAW,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC3DC,gCAAoB,CAAC,CAAC,QAAa,EAAE,OAAY;YAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE;cACpC,OAAO,KAAK,CAAC;aAChB;YAED,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;cAC9C,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE;gBAC5B,OAAO,KAAK,CAAC;eAChB;aACJ;YAED,OAAO,IAAI,CAAC;WACf,CAAC,EACF,WAAW,CAAC,CAAC,CAAC,CACjB,CAAC;SACL;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC;OACnC;KACJ,CAAA;IAED,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;GACvD,CAAC;AACN;;ACjEA;;;;;;;;;SASgB,cAAc,CAAc,GAAuB,EAAE,WAAoB,IAAI;EACzF,OAAO,CAAC,MAAqB;IACzB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;MACnB,IAAI,CAAC,QAAQ,EAAE;QACXC,iBAAW,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO;OACV;MAED,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAYA,iBAAW,CAAC,GAAG,CAAC,CAAC,CAAC;KACxD,CAAC,CAAC,CAAC;GACP,CAAC;AACN;;ACvBA;;;;;;SAMgB,UAAU,CAAU,GAAuB,EAAE,QAAgB;;EAEzEC,iCAAqB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;;EAGrC,OAAO,CAAC,MAAqB;IACzB,OAAO,MAAM,CAAC,IAAI,CACd,GAAG,CAAC,CAAC,KAAQ;MACT,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;KACzB,CAAC,CACL,CAAC;GACL,CAAC;AACN;;ACZA;;;;;;;AAOA,IAAI,qBAAqB,GAAkD,IAAI,OAAO,EAAE,CAAC;AAUzF;;;;;;;;AAQA,IAAI,+BAA+B,GAAiC,UAAU,GAAuB;EACjG,IAAI,oBAAoB,GAAyB,GAAG,CAAC,oBAAoB,CAAC;EAE1E,IAAI,CAAC,oBAAoB,EAAE;IACvB,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,WAAW,CAAC,IAAI,4DAA4D,CAAC,CAAC;GACnH;EAED,IAAI,oBAAoB,GAAkB,IAAIlB,mBAAO,EAAQ,CAAC;EAE9D,GAAG,CAAC,oBAAoB,GAAG;IACvB,IAAI,oBAAoB,EAAE;MACtB,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClC;IAED,oBAAoB,CAAC,IAAI,EAAE,CAAC;GAC/B,CAAC;EAEF,OAAO,oBAAoB,CAAC,YAAY,EAAE,CAAC;AAC/C,CAAC,CAAA;AAED;;;;;;;;;AASA,IAAI,2BAA2B,GAAiC,UAAU,GAAuB;EAC7F,IAAI,OAAO,GAAgBe,gBAAU,CAAC,GAAG,CAAC,CAAC;EAE3C,IAAI,IAAI,KAAK,OAAO,CAAC,UAAU,EAAE;IAC7B,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,WAAW,CAAC,IAAI,sBAAsB,CAAC,CAAC;GAC7E;EAED,OAAO,IAAIR,sBAAU,CAAO,CAAC,QAA0B;IAEnD,IAAI,gBAAgB,GAAqB,IAAI,gBAAgB,CAAC,CAAC,SAA2B;MACtF,SAAS,CAAC,OAAO,CAAC,CAAC,MAAsB;QACrC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE;UAC9C,IAAI,IAAI,KAAK,OAAO,EAAE;YAClB,SAAS;WACZ;UAED,QAAQ,CAAC,IAAI,EAAE,CAAC;UAChB,QAAQ,CAAC,QAAQ,EAAE,CAAC;SACvB;OACJ,CAAC,CAAC;KACN,CAAC,CAAC;IAEH,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE;MACzC,SAAS,EAAE,IAAI;MACf,OAAO,EAAI,IAAI;KAClB,CAAC,CAAC;IAEH,OAAO;MACH,gBAAgB,CAAC,UAAU,EAAE,CAAC;;MAE9B,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KACrC,CAAC;GACL,CAAC,CAAC;AAGP,CAAC,CAAA;AAED;;;;;;AAMA,SAAS,0BAA0B,CAAC,GAAuB;EACvD,IAAI,SAAS,GAAmC;IAC5C,+BAA+B;IAC/B,2BAA2B;GAC9B,CAAC;EAEF,KAAK,IAAI,EAAE,IAAI,SAAS,EAAE;IACtB,IAAI;MACA,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;MACxC,OAAO;KACV;IAAC,OAAO,CAAC,EAAE;;KAEX;GACJ;EAED,MAAM,IAAI,KAAK,CAAC,yDAAyD,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC;AACvG,CAAC;AAED;;;;SAIgB,iBAAiB,CAAc,GAAuB;EAClE,OAAO,CAAC,MAAqB;IACzB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;MACjC,0BAA0B,CAAC,GAAG,CAAC,CAAC;KACnC;IAED,IAAI,qBAAqB,GAAqB,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAE7E,OAAO,MAAM,CAAC,IAAI,CACd,SAAS,CAAI,qBAAqB,CAAC,CACtC,CAAC;GACL,CAAC;AACN;;;;;;;;;;;;;","names":["Subject","operate","createOperatorSubscriber","isArray","popScheduler","popResultSelector","from","Observable","identity","executeSchedule","innerFrom","isFunction","SafeSubscriber","noop","propertyObservable","getElement","distinctUntilChanged","forceUpdate","getPropertyDescriptor"],"sources":["node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","node_modules/rxjs/dist/esm/internal/ReplaySubject.js","node_modules/rxjs/dist/esm/internal/operators/map.js","node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","node_modules/rxjs/dist/esm/internal/util/createObject.js","node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","node_modules/rxjs/dist/esm/internal/operators/concatAll.js","node_modules/rxjs/dist/esm/internal/observable/concat.js","node_modules/rxjs/dist/esm/internal/operators/filter.js","node_modules/rxjs/dist/esm/internal/operators/share.js","node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","node_modules/rxjs/dist/esm/internal/operators/startWith.js","node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","node_modules/rxjs/dist/esm/internal/operators/tap.js","src/rx/observable/mutation-observable.ts","src/rx/observable/properties-observable.ts","src/rx/observable/render-observable.ts","src/rx/decorator/query-selector.ts","src/rx/decorator/query-selector-all.ts","src/rx/operator/schedule-render.ts","src/rx/operator/to-property.ts","src/rx/operator/until-disconnected.ts"],"sourcesContent":["export const dateTimestampProvider = {\n now() {\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n//# sourceMappingURL=dateTimestampProvider.js.map","import { Subject } from './Subject';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\nexport class ReplaySubject extends Subject {\n constructor(_bufferSize = Infinity, _windowTime = Infinity, _timestampProvider = dateTimestampProvider) {\n super();\n this._bufferSize = _bufferSize;\n this._windowTime = _windowTime;\n this._timestampProvider = _timestampProvider;\n this._buffer = [];\n this._infiniteTimeWindow = true;\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n next(value) {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n _subscribe(subscriber) {\n this._throwIfClosed();\n this._trimBuffer();\n const subscription = this._innerSubscribe(subscriber);\n const { _infiniteTimeWindow, _buffer } = this;\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i]);\n }\n this._checkFinalizedStatuses(subscriber);\n return subscription;\n }\n _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n for (let i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n//# sourceMappingURL=ReplaySubject.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function map(project, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n subscriber.next(project.call(thisArg, value, index++));\n }));\n });\n}\n//# sourceMappingURL=map.js.map","import { map } from \"../operators/map\";\nconst { isArray } = Array;\nfunction callOrApply(fn, args) {\n return isArray(args) ? fn(...args) : fn(args);\n}\nexport function mapOneOrManyArgs(fn) {\n return map(args => callOrApply(fn, args));\n}\n//# sourceMappingURL=mapOneOrManyArgs.js.map","const { isArray } = Array;\nconst { getPrototypeOf, prototype: objectProto, keys: getKeys } = Object;\nexport function argsArgArrayOrObject(args) {\n if (args.length === 1) {\n const first = args[0];\n if (isArray(first)) {\n return { args: first, keys: null };\n }\n if (isPOJO(first)) {\n const keys = getKeys(first);\n return {\n args: keys.map((key) => first[key]),\n keys,\n };\n }\n }\n return { args: args, keys: null };\n}\nfunction isPOJO(obj) {\n return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;\n}\n//# sourceMappingURL=argsArgArrayOrObject.js.map","export function createObject(keys, values) {\n return keys.reduce((result, key, i) => ((result[key] = values[i]), result), {});\n}\n//# sourceMappingURL=createObject.js.map","import { Observable } from '../Observable';\nimport { argsArgArrayOrObject } from '../util/argsArgArrayOrObject';\nimport { from } from './from';\nimport { identity } from '../util/identity';\nimport { mapOneOrManyArgs } from '../util/mapOneOrManyArgs';\nimport { popResultSelector, popScheduler } from '../util/args';\nimport { createObject } from '../util/createObject';\nimport { createOperatorSubscriber } from '../operators/OperatorSubscriber';\nimport { executeSchedule } from '../util/executeSchedule';\nexport function combineLatest(...args) {\n const scheduler = popScheduler(args);\n const resultSelector = popResultSelector(args);\n const { args: observables, keys } = argsArgArrayOrObject(args);\n if (observables.length === 0) {\n return from([], scheduler);\n }\n const result = new Observable(combineLatestInit(observables, scheduler, keys\n ?\n (values) => createObject(keys, values)\n :\n identity));\n return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;\n}\nexport function combineLatestInit(observables, scheduler, valueTransform = identity) {\n return (subscriber) => {\n maybeSchedule(scheduler, () => {\n const { length } = observables;\n const values = new Array(length);\n let active = length;\n let remainingFirstValues = length;\n for (let i = 0; i < length; i++) {\n maybeSchedule(scheduler, () => {\n const source = from(observables[i], scheduler);\n let hasFirstValue = false;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n values[i] = value;\n if (!hasFirstValue) {\n hasFirstValue = true;\n remainingFirstValues--;\n }\n if (!remainingFirstValues) {\n subscriber.next(valueTransform(values.slice()));\n }\n }, () => {\n if (!--active) {\n subscriber.complete();\n }\n }));\n }, subscriber);\n }\n }, subscriber);\n };\n}\nfunction maybeSchedule(scheduler, execute, subscription) {\n if (scheduler) {\n executeSchedule(subscription, scheduler, execute);\n }\n else {\n execute();\n }\n}\n//# sourceMappingURL=combineLatest.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { executeSchedule } from '../util/executeSchedule';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {\n const buffer = [];\n let active = 0;\n let index = 0;\n let isComplete = false;\n const checkComplete = () => {\n if (isComplete && !buffer.length && !active) {\n subscriber.complete();\n }\n };\n const outerNext = (value) => (active < concurrent ? doInnerSub(value) : buffer.push(value));\n const doInnerSub = (value) => {\n expand && subscriber.next(value);\n active++;\n let innerComplete = false;\n innerFrom(project(value, index++)).subscribe(createOperatorSubscriber(subscriber, (innerValue) => {\n onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);\n if (expand) {\n outerNext(innerValue);\n }\n else {\n subscriber.next(innerValue);\n }\n }, () => {\n innerComplete = true;\n }, undefined, () => {\n if (innerComplete) {\n try {\n active--;\n while (buffer.length && active < concurrent) {\n const bufferedValue = buffer.shift();\n if (innerSubScheduler) {\n executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));\n }\n else {\n doInnerSub(bufferedValue);\n }\n }\n checkComplete();\n }\n catch (err) {\n subscriber.error(err);\n }\n }\n }));\n };\n source.subscribe(createOperatorSubscriber(subscriber, outerNext, () => {\n isComplete = true;\n checkComplete();\n }));\n return () => {\n additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();\n };\n}\n//# sourceMappingURL=mergeInternals.js.map","import { map } from './map';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { mergeInternals } from './mergeInternals';\nimport { isFunction } from '../util/isFunction';\nexport function mergeMap(project, resultSelector, concurrent = Infinity) {\n if (isFunction(resultSelector)) {\n return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent);\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));\n}\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Infinity) {\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { concatAll } from '../operators/concatAll';\nimport { popScheduler } from '../util/args';\nimport { from } from './from';\nexport function concat(...args) {\n return concatAll()(from(args, popScheduler(args)));\n}\n//# sourceMappingURL=concat.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function filter(predicate, thisArg) {\n return operate((source, subscriber) => {\n let index = 0;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));\n });\n}\n//# sourceMappingURL=filter.js.map","import { innerFrom } from '../observable/innerFrom';\nimport { Subject } from '../Subject';\nimport { SafeSubscriber } from '../Subscriber';\nimport { operate } from '../util/lift';\nexport function share(options = {}) {\n const { connector = () => new Subject(), resetOnError = true, resetOnComplete = true, resetOnRefCountZero = true } = options;\n return (wrapperSource) => {\n let connection;\n let resetConnection;\n let subject;\n let refCount = 0;\n let hasCompleted = false;\n let hasErrored = false;\n const cancelReset = () => {\n resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();\n resetConnection = undefined;\n };\n const reset = () => {\n cancelReset();\n connection = subject = undefined;\n hasCompleted = hasErrored = false;\n };\n const resetAndUnsubscribe = () => {\n const conn = connection;\n reset();\n conn === null || conn === void 0 ? void 0 : conn.unsubscribe();\n };\n return operate((source, subscriber) => {\n refCount++;\n if (!hasErrored && !hasCompleted) {\n cancelReset();\n }\n const dest = (subject = subject !== null && subject !== void 0 ? subject : connector());\n subscriber.add(() => {\n refCount--;\n if (refCount === 0 && !hasErrored && !hasCompleted) {\n resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);\n }\n });\n dest.subscribe(subscriber);\n if (!connection &&\n refCount > 0) {\n connection = new SafeSubscriber({\n next: (value) => dest.next(value),\n error: (err) => {\n hasErrored = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnError, err);\n dest.error(err);\n },\n complete: () => {\n hasCompleted = true;\n cancelReset();\n resetConnection = handleReset(reset, resetOnComplete);\n dest.complete();\n },\n });\n innerFrom(source).subscribe(connection);\n }\n })(wrapperSource);\n };\n}\nfunction handleReset(reset, on, ...args) {\n if (on === true) {\n reset();\n return;\n }\n if (on === false) {\n return;\n }\n const onSubscriber = new SafeSubscriber({\n next: () => {\n onSubscriber.unsubscribe();\n reset();\n },\n });\n return innerFrom(on(...args)).subscribe(onSubscriber);\n}\n//# sourceMappingURL=share.js.map","import { ReplaySubject } from '../ReplaySubject';\nimport { share } from './share';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n let bufferSize;\n let refCount = false;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n ({ bufferSize = Infinity, windowTime = Infinity, refCount = false, scheduler } = configOrBufferSize);\n }\n else {\n bufferSize = (configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity);\n }\n return share({\n connector: () => new ReplaySubject(bufferSize, windowTime, scheduler),\n resetOnError: true,\n resetOnComplete: false,\n resetOnRefCountZero: refCount,\n });\n}\n//# sourceMappingURL=shareReplay.js.map","import { concat } from '../observable/concat';\nimport { popScheduler } from '../util/args';\nimport { operate } from '../util/lift';\nexport function startWith(...values) {\n const scheduler = popScheduler(values);\n return operate((source, subscriber) => {\n (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);\n });\n}\n//# sourceMappingURL=startWith.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function takeUntil(notifier) {\n return operate((source, subscriber) => {\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, () => subscriber.complete(), noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=takeUntil.js.map","import { isFunction } from '../util/isFunction';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { identity } from '../util/identity';\nexport function tap(observerOrNext, error, complete) {\n const tapObserver = isFunction(observerOrNext) || error || complete\n ?\n { next: observerOrNext, error, complete }\n : observerOrNext;\n return tapObserver\n ? operate((source, subscriber) => {\n var _a;\n (_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n let isUnsub = true;\n source.subscribe(createOperatorSubscriber(subscriber, (value) => {\n var _a;\n (_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);\n subscriber.next(value);\n }, () => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n subscriber.complete();\n }, (err) => {\n var _a;\n isUnsub = false;\n (_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);\n subscriber.error(err);\n }, () => {\n var _a, _b;\n if (isUnsub) {\n (_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);\n }\n (_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);\n }));\n })\n :\n identity;\n}\n//# sourceMappingURL=tap.js.map","import {\n Observable,\n Subscriber,\n TeardownLogic,\n} from 'rxjs';\n\nexport function mutationObservable(target: Node, options?: MutationObserverInit): Observable<MutationRecord[]> {\n return new Observable((observer: Subscriber<MutationRecord[]>): TeardownLogic => {\n let mutation: MutationObserver = new MutationObserver((mutations: MutationRecord[]): void => {\n observer.next(mutations);\n });\n\n mutation.observe(target, options);\n\n return (): void => {\n mutation.disconnect();\n };\n });\n}\n","import { ComponentInterface } from '@stencil/core';\nimport {\n combineLatest,\n Observable,\n} from 'rxjs';\nimport { propertyObservable } from './property-observable';\n\n/**\n * Returns an observable that emits an array of values from the given properties.\n */\nexport function propertiesObservable<T extends any[]>(cmp: ComponentInterface, ...properties: string[]): Observable<T> {\n if (0 === properties.length) {\n throw new Error('At least one property must be specified.');\n }\n\n return combineLatest(properties.map((property: string): Observable<any> => {\n return propertyObservable(cmp, property);\n })) as Observable<any>;\n}\n","import { ComponentInterface } from '@stencil/core';\nimport {\n Observable,\n Subscriber,\n TeardownLogic,\n} from 'rxjs';\n\n/**\n * Returns an observable that emits when the component render()\n * function is called. Value will be emitted after the next\n * microtask (next tick).\n */\nexport function renderObservable(cmp: ComponentInterface): Observable<void> {\n if ('function' !== typeof cmp.render) {\n throw new Error('Component does not have a render function.');\n }\n\n return new Observable<void>((subscriber: Subscriber<void>): TeardownLogic => {\n let previousRender: () => any = cmp.render;\n\n cmp.render = function (): any {\n Promise.resolve().then((): void => {\n subscriber.next();\n });\n\n return previousRender.call(this);\n }\n\n return (): void => {\n cmp.render = previousRender;\n }\n });\n}\n","import {\n ComponentInterface,\n getElement,\n} from '@stencil/core';\nimport {\n distinctUntilChanged,\n filter,\n map,\n Observable,\n shareReplay,\n startWith,\n} from 'rxjs';\nimport {\n mutationObservable,\n renderObservable,\n} from '../observable';\n\n/**\n * Options for QuerySelector decorator.\n */\nexport type QuerySelectorOptions = {\n /**\n * If `true`, the element will be searched in the shadow root. Default is `false`.\n */\n shadowRoot?: boolean;\n /**\n * If `true`, mutation observer instead of `renderObservable` from this package will\n * be used to detect changes. Default is `false`.\n */\n mutationObserver?: boolean;\n};\n\n/**\n * Observe all sub nodes of the given node and notify\n * when any of them is removed and/or added.\n *\n * {@internal}\n */\nexport function observeSubNodes(target: Node): Observable<void> {\n return mutationObservable(target, {\n subtree: true,\n childList: true,\n }).pipe(\n filter((records: MutationRecord[]): boolean => {\n for (let i: number = 0; i < records.length; i++) {\n if ('childList' !== records[i].type) {\n continue;\n }\n\n if (records[i].addedNodes.length || records[i].removedNodes.length) {\n return true;\n }\n }\n\n return false;\n }),\n map((): void => {\n /* noop */\n }),\n );\n}\n\n/**\n * Property decorator inspired by Angular's @ViewChild/@ContentChild.\n *\n * After each render, the decorated property will be set to the first element\n * matching the given selector. If no element is found, the property will be\n * set to null.\n */\nexport function QuerySelector<T extends HTMLElement = HTMLElement>(selector: string, options?: QuerySelectorOptions): any {\n return (target: Function, property: string): void => {\n let descriptor: PropertyDescriptor = {\n set: function (): void {\n throw new Error(`Property \"${property}\" is read-only.`);\n },\n get: function (this: ComponentInterface): Observable<T | null> {\n let observableProperty: string = `__rx__query_selector__observable__shadow_root__${options?.shadowRoot ? 'yes' : 'no'}__mutation_observer__${options?.mutationObserver ? 'yes' : 'no'}__selector__${selector}__`;\n\n if (!this[observableProperty]) {\n let root: HTMLElement | ShadowRoot = options?.shadowRoot ? getElement(this).shadowRoot : getElement(this);\n let observable: Observable<void> = options?.mutationObserver ? observeSubNodes(root) : renderObservable(this);\n\n this[observableProperty] = observable.pipe(\n startWith(),\n map((): T => root.querySelector(selector)),\n distinctUntilChanged(),\n shareReplay(1),\n );\n }\n\n return this[observableProperty];\n },\n }\n\n Object.defineProperty(target, property, descriptor);\n };\n}\n","import {\n ComponentInterface,\n getElement,\n} from '@stencil/core';\nimport {\n distinctUntilChanged,\n map,\n Observable,\n shareReplay,\n startWith,\n} from 'rxjs';\nimport { renderObservable } from '../observable';\nimport { observeSubNodes } from './query-selector';\n\n/**\n * Options for QuerySelectorAll decorator.\n */\nexport type QuerySelectorAllOptions = {\n /**\n * If `true`, the elements will be searched in the shadow root. Default is `false`.\n */\n shadowRoot?: boolean;\n /**\n * If `true`, mutation observer instead of `renderObservable` from this package will\n * be used to detect changes. Default is `false`.\n */\n mutationObserver?: boolean;\n};\n\n/**\n * Property decorator inspired by Angular's @ViewChild/@ContentChild.\n *\n * After each render, the decorated property will be set to the first element\n * matching the given selector. If no element is found, the property will be\n * set to null.\n */\nexport function QuerySelectorAll<T extends HTMLElement = HTMLElement>(selector: string, options?: QuerySelectorAllOptions): any {\n return (target: Function, property: string): void => {\n let descriptor: PropertyDescriptor = {\n set: function (): void {\n throw new Error(`Property \"${property}\" is read-only.`);\n },\n get: function (this: ComponentInterface): Observable<T | null> {\n let observableProperty: string = `__rx__query_selector_all__observable__shadow_root__${options?.shadowRoot ? 'yes' : 'no'}__mutation_observer__${options?.mutationObserver ? 'yes' : 'no'}__selector__${selector}__`;\n\n if (!this[observableProperty]) {\n let root: HTMLElement | ShadowRoot = options?.shadowRoot ? getElement(this).shadowRoot : getElement(this);\n let observable: Observable<void> = options?.mutationObserver ? observeSubNodes(root) : renderObservable(this);\n\n this[observableProperty] = observable.pipe(\n startWith(),\n map((): T[] => Array.from(root.querySelectorAll(selector))),\n distinctUntilChanged((previous: T[], current: T[]): boolean => {\n if (previous.length !== current.length) {\n return false;\n }\n\n for (let i: number = 0; i < previous.length; i++) {\n if (previous[i] !== current[i]) {\n return false;\n }\n }\n\n return true;\n }),\n shareReplay(1),\n );\n }\n\n return this[observableProperty];\n },\n }\n\n Object.defineProperty(target, property, descriptor);\n };\n}\n","import {\n ComponentInterface,\n forceUpdate,\n} from '@stencil/core';\nimport {\n MonoTypeOperatorFunction,\n Observable,\n tap,\n} from 'rxjs';\n\n/**\n * Schedule a render of the component. This is useful when you\n * want to force a render of the component as result of changing\n * the values of the component which are not tracked by Stencil,\n * observables, for example.\n *\n * By default, the render is scheduled on the next tick, but you\n * can disable this behavior by passing `false` as second argument.\n */\nexport function scheduleRender<T = unknown>(cmp: ComponentInterface, nextTick: boolean = true): MonoTypeOperatorFunction<T> {\n return (source: Observable<T>): Observable<T> => {\n return source.pipe(tap((): void => {\n if (!nextTick) {\n forceUpdate(cmp);\n return;\n }\n\n Promise.resolve().then((): void => forceUpdate(cmp));\n }));\n };\n}\n","import { ComponentInterface } from '@stencil/core';\nimport {\n MonoTypeOperatorFunction,\n tap,\n} from 'rxjs';\nimport { getPropertyDescriptor } from '../../utils';\n\n/**\n * Use this function to tap into a value stream and flush value to\n * component property. You may also use this function as subscription\n * function (function will detect that value is passed instead of\n * observable).\n */\nexport function toProperty<T = any>(cmp: ComponentInterface, property: string): MonoTypeOperatorFunction<T> {\n // ensure that the property is defined on the component.\n getPropertyDescriptor(cmp, property);\n\n // @ts-ignore\n return (source: Observable<T>): Observable<T> | void => {\n return source.pipe(\n tap((value: T): void => {\n cmp[property] = value;\n }),\n );\n };\n}\n","import {\n ComponentInterface,\n getElement,\n} from '@stencil/core';\nimport {\n MonoTypeOperatorFunction,\n Observable,\n Subject,\n Subscriber,\n takeUntil,\n TeardownLogic,\n} from 'rxjs';\n\n/**\n * A map of component observables that are being watched for\n * disconnect callback invocation. A weak map is being used\n * so that the component instance can be garbage collected.\n *\n * {@internal}\n */\nlet disconnectObservables: WeakMap<ComponentInterface, Observable<void>> = new WeakMap();\n\n/**\n * A function that creates an observable which emits an event\n * when the component is disconnected from DOM.\n *\n * {@internal}\n */\ntype CreateDisconnectObservableFn = (cmp: ComponentInterface) => Observable<void>;\n\n/**\n * Creates an observable that emits a value when the component\n * is disconnected from DOM and method `disconnectedCallback()`\n * is invoked. StencilJS will supress the invocation of this\n * method if it is not defined on the component.\n *\n * {@internal}\n */\nlet createUsingDisconnectedCallback: CreateDisconnectObservableFn = function (cmp: ComponentInterface): Observable<void> {\n let previousDisconnected: Function | undefined = cmp.disconnectedCallback;\n\n if (!previousDisconnected) {\n throw new Error(`Component \"${cmp.constructor.name}\" does not have a \"disconnectedCallback()\" method defined.`);\n }\n\n let disconnectedSubject$: Subject<void> = new Subject<void>();\n\n cmp.disconnectedCallback = function (): void {\n if (previousDisconnected) {\n previousDisconnected.call(cmp);\n }\n\n disconnectedSubject$.next();\n };\n\n return disconnectedSubject$.asObservable();\n}\n\n/**\n * Mutation observer is our next heuristic. We will monitor parent\n * node of the component and emit a value when the component is\n * disconnected from DOM. This will only work, of course, if the\n * component is not the root node of the application and component\n * is already within DOM.\n *\n * {@internal}\n */\nlet createUsingMutationObserver: CreateDisconnectObservableFn = function (cmp: ComponentInterface): Observable<void> {\n let element: HTMLElement = getElement(cmp);\n\n if (null === element.parentNode) {\n throw new Error(`Component \"${cmp.constructor.name}\" is not within DOM.`);\n }\n\n return new Observable<void>((observer: Subscriber<void>): TeardownLogic => {\n\n let mutationObserver: MutationObserver = new MutationObserver((mutations: MutationRecord[]): void => {\n mutations.forEach((record: MutationRecord): void => {\n for (let node of Array.from(record.removedNodes)) {\n if (node !== element) {\n continue;\n }\n\n observer.next();\n observer.complete();\n }\n });\n });\n\n mutationObserver.observe(element.parentNode, {\n childList: true,\n subtree: true,\n });\n\n return (): void => {\n mutationObserver.disconnect();\n // we can not re-use this observable, so we have to delete it\n disconnectObservables.delete(cmp);\n };\n });\n\n\n}\n\n/**\n * Creates an observable that emits a value when the component\n * is disconnected from DOM.\n *\n * {@internal}\n */\nfunction createDisconnectObservable(cmp: ComponentInterface): void {\n let functions: CreateDisconnectObservableFn[] = [\n createUsingDisconnectedCallback,\n createUsingMutationObserver,\n ];\n\n for (let fn of functions) {\n try {\n disconnectObservables.set(cmp, fn(cmp));\n return;\n } catch (e) {\n // noop\n }\n }\n\n throw new Error(`Could not create disconnect observable for component \"${cmp.constructor.name}\".`);\n}\n\n/**\n * Operator that unsubscribes from the source observable when\n * the component is disconnected from DOM.\n */\nexport function untilDisconnected<T = unknown>(cmp: ComponentInterface): MonoTypeOperatorFunction<T> {\n return (source: Observable<T>): Observable<T> => {\n if (!disconnectObservables.has(cmp)) {\n createDisconnectObservable(cmp);\n }\n\n let disconnectObservable$: Observable<void> = disconnectObservables.get(cmp);\n\n return source.pipe(\n takeUntil<T>(disconnectObservable$),\n );\n };\n}\n"],"version":3}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-5f6f12ab.js');
|
|
6
|
-
const setProperty = require('./set-property-
|
|
6
|
+
const setProperty = require('./set-property-c1def9c5.js');
|
|
7
7
|
|
|
8
8
|
function of(...args) {
|
|
9
9
|
const scheduler = setProperty.popScheduler(args);
|
|
@@ -717,6 +717,9 @@ function isScheduler(value) {
|
|
|
717
717
|
function last(arr) {
|
|
718
718
|
return arr[arr.length - 1];
|
|
719
719
|
}
|
|
720
|
+
function popResultSelector(args) {
|
|
721
|
+
return isFunction(last(args)) ? args.pop() : undefined;
|
|
722
|
+
}
|
|
720
723
|
function popScheduler(args) {
|
|
721
724
|
return isScheduler(last(args)) ? args.pop() : undefined;
|
|
722
725
|
}
|
|
@@ -1160,8 +1163,9 @@ exports.innerFrom = innerFrom;
|
|
|
1160
1163
|
exports.isFunction = isFunction;
|
|
1161
1164
|
exports.noop = noop;
|
|
1162
1165
|
exports.operate = operate;
|
|
1166
|
+
exports.popResultSelector = popResultSelector;
|
|
1163
1167
|
exports.popScheduler = popScheduler;
|
|
1164
1168
|
exports.propertyObservable = propertyObservable;
|
|
1165
1169
|
exports.setProperty = setProperty;
|
|
1166
1170
|
|
|
1167
|
-
//# sourceMappingURL=set-property-
|
|
1171
|
+
//# sourceMappingURL=set-property-c1def9c5.js.map
|