@runopencode/rx-stencil 0.4.1 → 0.4.3
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 +12 -11
- package/dist/cjs/app-globals-V2Kpy_OQ.js +5 -0
- package/dist/cjs/index-CbERigo8.js +1211 -0
- package/dist/cjs/index.cjs.js +166 -447
- package/dist/cjs/loader.cjs.js +4 -6
- package/dist/cjs/rx-async.cjs.entry.js +29 -63
- package/dist/cjs/rx-stencil.cjs.js +14 -14
- package/dist/cjs/set-property-BZHuI0P5.js +9525 -0
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/async/async.css +3 -0
- package/dist/collection/components/async/async.js +62 -61
- package/dist/collection/index.js +0 -1
- package/dist/collection/rx/decorator/index.js +0 -1
- package/dist/collection/rx/decorator/query-selector-all.js +26 -27
- package/dist/collection/rx/decorator/query-selector.js +32 -33
- package/dist/collection/rx/index.js +0 -1
- package/dist/collection/rx/observable/index.js +1 -1
- package/dist/collection/rx/observable/mutation-observable.js +8 -9
- package/dist/collection/rx/observable/properties-observable.js +13 -0
- package/dist/collection/rx/observable/property-observable.js +20 -21
- package/dist/collection/rx/observable/render-observable.js +15 -16
- package/dist/collection/rx/operator/index.js +0 -1
- package/dist/collection/rx/operator/schedule-render.js +9 -10
- package/dist/collection/rx/operator/to-property.js +8 -9
- package/dist/collection/rx/operator/until-disconnected.js +56 -57
- package/dist/collection/rx/subscriber/index.js +0 -1
- package/dist/collection/rx/subscriber/set-property.js +12 -13
- package/dist/collection/utils/get-property-descriptor.js +10 -11
- package/dist/collection/utils/index.js +0 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +1 -562
- package/dist/components/rx-async.d.ts +2 -2
- package/dist/components/rx-async.js +1 -86
- package/dist/components/set-property.js +1 -1150
- package/dist/esm/app-globals-DQuL1Twl.js +3 -0
- package/dist/esm/index-BIBww8qU.js +1202 -0
- package/dist/esm/index.js +167 -447
- package/dist/esm/loader.js +5 -5
- package/dist/esm/rx-async.entry.js +29 -61
- package/dist/esm/rx-stencil.js +14 -13
- package/dist/esm/set-property-CpZKE-Xu.js +9520 -0
- package/dist/rx-stencil/index.esm.js +1 -2
- package/dist/rx-stencil/p-77100dee.entry.js +1 -0
- package/dist/rx-stencil/p-BIBww8qU.js +2 -0
- package/dist/rx-stencil/p-DQuL1Twl.js +1 -0
- package/dist/rx-stencil/p-IbpJ_cRo.js +1 -0
- package/dist/rx-stencil/rx-stencil.esm.js +1 -2
- package/dist/types/components/async/async.d.ts +5 -5
- package/dist/types/components.d.ts +7 -1
- package/dist/types/rx/decorator/query-selector-all.d.ts +9 -9
- package/dist/types/rx/decorator/query-selector.d.ts +9 -9
- package/dist/types/rx/observable/index.d.ts +1 -0
- package/dist/types/rx/observable/properties-observable.d.ts +6 -0
- package/dist/types/rx/subscriber/set-property.d.ts +12 -12
- package/dist/types/stencil-public-runtime.d.ts +225 -17
- package/docs/creation-operators.md +62 -3
- package/loader/cdn.js +1 -3
- package/loader/index.cjs.js +1 -3
- package/loader/index.d.ts +3 -0
- package/loader/index.es2017.js +1 -3
- package/loader/index.js +1 -3
- package/package.json +11 -10
- package/dist/cjs/index-5f6f12ab.js +0 -1265
- package/dist/cjs/index-5f6f12ab.js.map +0 -1
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/rx-async.cjs.entry.js.map +0 -1
- package/dist/cjs/rx-stencil.cjs.js.map +0 -1
- package/dist/cjs/set-property-88176225.js +0 -1167
- package/dist/cjs/set-property-88176225.js.map +0 -1
- package/dist/collection/components/async/async.js.map +0 -1
- package/dist/collection/components/async/async.scss +0 -3
- package/dist/collection/index.js.map +0 -1
- package/dist/collection/rx/decorator/index.js.map +0 -1
- package/dist/collection/rx/decorator/query-selector-all.js.map +0 -1
- package/dist/collection/rx/decorator/query-selector.js.map +0 -1
- package/dist/collection/rx/index.js.map +0 -1
- package/dist/collection/rx/observable/index.js.map +0 -1
- package/dist/collection/rx/observable/mutation-observable.js.map +0 -1
- package/dist/collection/rx/observable/property-observable.js.map +0 -1
- package/dist/collection/rx/observable/render-observable.js.map +0 -1
- package/dist/collection/rx/operator/index.js.map +0 -1
- package/dist/collection/rx/operator/schedule-render.js.map +0 -1
- package/dist/collection/rx/operator/to-property.js.map +0 -1
- package/dist/collection/rx/operator/until-disconnected.js.map +0 -1
- package/dist/collection/rx/subscriber/index.js.map +0 -1
- package/dist/collection/rx/subscriber/set-property.js.map +0 -1
- package/dist/collection/utils/get-property-descriptor.js.map +0 -1
- package/dist/collection/utils/index.js.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/rx-async.js.map +0 -1
- package/dist/components/set-property.js.map +0 -1
- package/dist/esm/index-9102de09.js +0 -1236
- package/dist/esm/index-9102de09.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/polyfills/core-js.js +0 -11
- package/dist/esm/polyfills/dom.js +0 -79
- package/dist/esm/polyfills/es5-html-element.js +0 -1
- package/dist/esm/polyfills/index.js +0 -34
- package/dist/esm/polyfills/system.js +0 -6
- package/dist/esm/rx-async.entry.js.map +0 -1
- package/dist/esm/rx-stencil.js.map +0 -1
- package/dist/esm/set-property-7fa82bef.js +0 -1150
- package/dist/esm/set-property-7fa82bef.js.map +0 -1
- package/dist/rx-stencil/index.esm.js.map +0 -1
- package/dist/rx-stencil/p-01af4414.entry.js +0 -2
- package/dist/rx-stencil/p-01af4414.entry.js.map +0 -1
- package/dist/rx-stencil/p-0cd0b2da.js +0 -2
- package/dist/rx-stencil/p-0cd0b2da.js.map +0 -1
- package/dist/rx-stencil/p-8411601b.js +0 -3
- package/dist/rx-stencil/p-8411601b.js.map +0 -1
- package/dist/rx-stencil/rx-stencil.esm.js.map +0 -1
- package/loader/package.json +0 -11
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -1,310 +1,30 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var index = require('./index-CbERigo8.js');
|
|
4
|
+
var setProperty = require('./set-property-BZHuI0P5.js');
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
class ReplaySubject extends setProperty.Subject {
|
|
16
|
-
constructor(_bufferSize = Infinity, _windowTime = Infinity, _timestampProvider = dateTimestampProvider) {
|
|
17
|
-
super();
|
|
18
|
-
this._bufferSize = _bufferSize;
|
|
19
|
-
this._windowTime = _windowTime;
|
|
20
|
-
this._timestampProvider = _timestampProvider;
|
|
21
|
-
this._buffer = [];
|
|
22
|
-
this._infiniteTimeWindow = true;
|
|
23
|
-
this._infiniteTimeWindow = _windowTime === Infinity;
|
|
24
|
-
this._bufferSize = Math.max(1, _bufferSize);
|
|
25
|
-
this._windowTime = Math.max(1, _windowTime);
|
|
26
|
-
}
|
|
27
|
-
next(value) {
|
|
28
|
-
const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;
|
|
29
|
-
if (!isStopped) {
|
|
30
|
-
_buffer.push(value);
|
|
31
|
-
!_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);
|
|
32
|
-
}
|
|
33
|
-
this._trimBuffer();
|
|
34
|
-
super.next(value);
|
|
35
|
-
}
|
|
36
|
-
_subscribe(subscriber) {
|
|
37
|
-
this._throwIfClosed();
|
|
38
|
-
this._trimBuffer();
|
|
39
|
-
const subscription = this._innerSubscribe(subscriber);
|
|
40
|
-
const { _infiniteTimeWindow, _buffer } = this;
|
|
41
|
-
const copy = _buffer.slice();
|
|
42
|
-
for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {
|
|
43
|
-
subscriber.next(copy[i]);
|
|
44
|
-
}
|
|
45
|
-
this._checkFinalizedStatuses(subscriber);
|
|
46
|
-
return subscription;
|
|
47
|
-
}
|
|
48
|
-
_trimBuffer() {
|
|
49
|
-
const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;
|
|
50
|
-
const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;
|
|
51
|
-
_bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);
|
|
52
|
-
if (!_infiniteTimeWindow) {
|
|
53
|
-
const now = _timestampProvider.now();
|
|
54
|
-
let last = 0;
|
|
55
|
-
for (let i = 1; i < _buffer.length && _buffer[i] <= now; i += 2) {
|
|
56
|
-
last = i;
|
|
57
|
-
}
|
|
58
|
-
last && _buffer.splice(0, last + 1);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function map(project, thisArg) {
|
|
64
|
-
return setProperty.operate((source, subscriber) => {
|
|
65
|
-
let index = 0;
|
|
66
|
-
source.subscribe(setProperty.createOperatorSubscriber(subscriber, (value) => {
|
|
67
|
-
subscriber.next(project.call(thisArg, value, index++));
|
|
68
|
-
}));
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
function mergeInternals(source, subscriber, project, concurrent, onBeforeNext, expand, innerSubScheduler, additionalFinalizer) {
|
|
73
|
-
const buffer = [];
|
|
74
|
-
let active = 0;
|
|
75
|
-
let index = 0;
|
|
76
|
-
let isComplete = false;
|
|
77
|
-
const checkComplete = () => {
|
|
78
|
-
if (isComplete && !buffer.length && !active) {
|
|
79
|
-
subscriber.complete();
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
const outerNext = (value) => (active < concurrent ? doInnerSub(value) : buffer.push(value));
|
|
83
|
-
const doInnerSub = (value) => {
|
|
84
|
-
expand && subscriber.next(value);
|
|
85
|
-
active++;
|
|
86
|
-
let innerComplete = false;
|
|
87
|
-
setProperty.innerFrom(project(value, index++)).subscribe(setProperty.createOperatorSubscriber(subscriber, (innerValue) => {
|
|
88
|
-
onBeforeNext === null || onBeforeNext === void 0 ? void 0 : onBeforeNext(innerValue);
|
|
89
|
-
if (expand) {
|
|
90
|
-
outerNext(innerValue);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
subscriber.next(innerValue);
|
|
94
|
-
}
|
|
95
|
-
}, () => {
|
|
96
|
-
innerComplete = true;
|
|
97
|
-
}, undefined, () => {
|
|
98
|
-
if (innerComplete) {
|
|
99
|
-
try {
|
|
100
|
-
active--;
|
|
101
|
-
while (buffer.length && active < concurrent) {
|
|
102
|
-
const bufferedValue = buffer.shift();
|
|
103
|
-
if (innerSubScheduler) {
|
|
104
|
-
setProperty.executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue));
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
doInnerSub(bufferedValue);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
checkComplete();
|
|
111
|
-
}
|
|
112
|
-
catch (err) {
|
|
113
|
-
subscriber.error(err);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}));
|
|
117
|
-
};
|
|
118
|
-
source.subscribe(setProperty.createOperatorSubscriber(subscriber, outerNext, () => {
|
|
119
|
-
isComplete = true;
|
|
120
|
-
checkComplete();
|
|
121
|
-
}));
|
|
122
|
-
return () => {
|
|
123
|
-
additionalFinalizer === null || additionalFinalizer === void 0 ? void 0 : additionalFinalizer();
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
function mergeMap(project, resultSelector, concurrent = Infinity) {
|
|
128
|
-
if (setProperty.isFunction(resultSelector)) {
|
|
129
|
-
return mergeMap((a, i) => map((b, ii) => resultSelector(a, b, i, ii))(setProperty.innerFrom(project(a, i))), concurrent);
|
|
130
|
-
}
|
|
131
|
-
else if (typeof resultSelector === 'number') {
|
|
132
|
-
concurrent = resultSelector;
|
|
133
|
-
}
|
|
134
|
-
return setProperty.operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent));
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
function mergeAll(concurrent = Infinity) {
|
|
138
|
-
return mergeMap(setProperty.identity, concurrent);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
function concatAll() {
|
|
142
|
-
return mergeAll(1);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
function concat(...args) {
|
|
146
|
-
return concatAll()(setProperty.from(args, setProperty.popScheduler(args)));
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
function filter(predicate, thisArg) {
|
|
150
|
-
return setProperty.operate((source, subscriber) => {
|
|
151
|
-
let index = 0;
|
|
152
|
-
source.subscribe(setProperty.createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)));
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
function share(options = {}) {
|
|
157
|
-
const { connector = () => new setProperty.Subject(), resetOnError = true, resetOnComplete = true, resetOnRefCountZero = true } = options;
|
|
158
|
-
return (wrapperSource) => {
|
|
159
|
-
let connection;
|
|
160
|
-
let resetConnection;
|
|
161
|
-
let subject;
|
|
162
|
-
let refCount = 0;
|
|
163
|
-
let hasCompleted = false;
|
|
164
|
-
let hasErrored = false;
|
|
165
|
-
const cancelReset = () => {
|
|
166
|
-
resetConnection === null || resetConnection === void 0 ? void 0 : resetConnection.unsubscribe();
|
|
167
|
-
resetConnection = undefined;
|
|
168
|
-
};
|
|
169
|
-
const reset = () => {
|
|
170
|
-
cancelReset();
|
|
171
|
-
connection = subject = undefined;
|
|
172
|
-
hasCompleted = hasErrored = false;
|
|
173
|
-
};
|
|
174
|
-
const resetAndUnsubscribe = () => {
|
|
175
|
-
const conn = connection;
|
|
176
|
-
reset();
|
|
177
|
-
conn === null || conn === void 0 ? void 0 : conn.unsubscribe();
|
|
6
|
+
function mutationObservable(target, options) {
|
|
7
|
+
return new setProperty.cjsExports.Observable((observer) => {
|
|
8
|
+
let mutation = new MutationObserver((mutations) => {
|
|
9
|
+
observer.next(mutations);
|
|
10
|
+
});
|
|
11
|
+
mutation.observe(target, options);
|
|
12
|
+
return () => {
|
|
13
|
+
mutation.disconnect();
|
|
178
14
|
};
|
|
179
|
-
return setProperty.operate((source, subscriber) => {
|
|
180
|
-
refCount++;
|
|
181
|
-
if (!hasErrored && !hasCompleted) {
|
|
182
|
-
cancelReset();
|
|
183
|
-
}
|
|
184
|
-
const dest = (subject = subject !== null && subject !== void 0 ? subject : connector());
|
|
185
|
-
subscriber.add(() => {
|
|
186
|
-
refCount--;
|
|
187
|
-
if (refCount === 0 && !hasErrored && !hasCompleted) {
|
|
188
|
-
resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero);
|
|
189
|
-
}
|
|
190
|
-
});
|
|
191
|
-
dest.subscribe(subscriber);
|
|
192
|
-
if (!connection &&
|
|
193
|
-
refCount > 0) {
|
|
194
|
-
connection = new setProperty.SafeSubscriber({
|
|
195
|
-
next: (value) => dest.next(value),
|
|
196
|
-
error: (err) => {
|
|
197
|
-
hasErrored = true;
|
|
198
|
-
cancelReset();
|
|
199
|
-
resetConnection = handleReset(reset, resetOnError, err);
|
|
200
|
-
dest.error(err);
|
|
201
|
-
},
|
|
202
|
-
complete: () => {
|
|
203
|
-
hasCompleted = true;
|
|
204
|
-
cancelReset();
|
|
205
|
-
resetConnection = handleReset(reset, resetOnComplete);
|
|
206
|
-
dest.complete();
|
|
207
|
-
},
|
|
208
|
-
});
|
|
209
|
-
setProperty.innerFrom(source).subscribe(connection);
|
|
210
|
-
}
|
|
211
|
-
})(wrapperSource);
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
function handleReset(reset, on, ...args) {
|
|
215
|
-
if (on === true) {
|
|
216
|
-
reset();
|
|
217
|
-
return;
|
|
218
|
-
}
|
|
219
|
-
if (on === false) {
|
|
220
|
-
return;
|
|
221
|
-
}
|
|
222
|
-
const onSubscriber = new setProperty.SafeSubscriber({
|
|
223
|
-
next: () => {
|
|
224
|
-
onSubscriber.unsubscribe();
|
|
225
|
-
reset();
|
|
226
|
-
},
|
|
227
15
|
});
|
|
228
|
-
return setProperty.innerFrom(on(...args)).subscribe(onSubscriber);
|
|
229
16
|
}
|
|
230
17
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
else {
|
|
238
|
-
bufferSize = (configOrBufferSize !== null && configOrBufferSize !== void 0 ? configOrBufferSize : Infinity);
|
|
18
|
+
/**
|
|
19
|
+
* Returns an observable that emits an array of values from the given properties.
|
|
20
|
+
*/
|
|
21
|
+
function propertiesObservable(cmp, ...properties) {
|
|
22
|
+
if (0 === properties.length) {
|
|
23
|
+
throw new Error('At least one property must be specified.');
|
|
239
24
|
}
|
|
240
|
-
return
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
resetOnComplete: false,
|
|
244
|
-
resetOnRefCountZero: refCount,
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
function startWith(...values) {
|
|
249
|
-
const scheduler = setProperty.popScheduler(values);
|
|
250
|
-
return setProperty.operate((source, subscriber) => {
|
|
251
|
-
(scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber);
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
function takeUntil(notifier) {
|
|
256
|
-
return setProperty.operate((source, subscriber) => {
|
|
257
|
-
setProperty.innerFrom(notifier).subscribe(setProperty.createOperatorSubscriber(subscriber, () => subscriber.complete(), setProperty.noop));
|
|
258
|
-
!subscriber.closed && source.subscribe(subscriber);
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
function tap(observerOrNext, error, complete) {
|
|
263
|
-
const tapObserver = setProperty.isFunction(observerOrNext) || error || complete
|
|
264
|
-
?
|
|
265
|
-
{ next: observerOrNext, error, complete }
|
|
266
|
-
: observerOrNext;
|
|
267
|
-
return tapObserver
|
|
268
|
-
? setProperty.operate((source, subscriber) => {
|
|
269
|
-
var _a;
|
|
270
|
-
(_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
|
|
271
|
-
let isUnsub = true;
|
|
272
|
-
source.subscribe(setProperty.createOperatorSubscriber(subscriber, (value) => {
|
|
273
|
-
var _a;
|
|
274
|
-
(_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);
|
|
275
|
-
subscriber.next(value);
|
|
276
|
-
}, () => {
|
|
277
|
-
var _a;
|
|
278
|
-
isUnsub = false;
|
|
279
|
-
(_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
|
|
280
|
-
subscriber.complete();
|
|
281
|
-
}, (err) => {
|
|
282
|
-
var _a;
|
|
283
|
-
isUnsub = false;
|
|
284
|
-
(_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);
|
|
285
|
-
subscriber.error(err);
|
|
286
|
-
}, () => {
|
|
287
|
-
var _a, _b;
|
|
288
|
-
if (isUnsub) {
|
|
289
|
-
(_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
|
|
290
|
-
}
|
|
291
|
-
(_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);
|
|
292
|
-
}));
|
|
293
|
-
})
|
|
294
|
-
:
|
|
295
|
-
setProperty.identity;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
function mutationObservable(target, options) {
|
|
299
|
-
return new setProperty.Observable((observer) => {
|
|
300
|
-
let mutation = new MutationObserver((mutations) => {
|
|
301
|
-
observer.next(mutations);
|
|
302
|
-
});
|
|
303
|
-
mutation.observe(target, options);
|
|
304
|
-
return () => {
|
|
305
|
-
mutation.disconnect();
|
|
306
|
-
};
|
|
307
|
-
});
|
|
25
|
+
return setProperty.cjsExports.combineLatest(properties.map((property) => {
|
|
26
|
+
return setProperty.propertyObservable(cmp, property);
|
|
27
|
+
}));
|
|
308
28
|
}
|
|
309
29
|
|
|
310
30
|
/**
|
|
@@ -313,21 +33,21 @@ function mutationObservable(target, options) {
|
|
|
313
33
|
* microtask (next tick).
|
|
314
34
|
*/
|
|
315
35
|
function renderObservable(cmp) {
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
36
|
+
if ('function' !== typeof cmp.render) {
|
|
37
|
+
throw new Error('Component does not have a render function.');
|
|
38
|
+
}
|
|
39
|
+
return new setProperty.cjsExports.Observable((subscriber) => {
|
|
40
|
+
let previousRender = cmp.render;
|
|
41
|
+
cmp.render = function () {
|
|
42
|
+
Promise.resolve().then(() => {
|
|
43
|
+
subscriber.next();
|
|
44
|
+
});
|
|
45
|
+
return previousRender.call(this);
|
|
46
|
+
};
|
|
47
|
+
return () => {
|
|
48
|
+
cmp.render = previousRender;
|
|
49
|
+
};
|
|
50
|
+
});
|
|
331
51
|
}
|
|
332
52
|
|
|
333
53
|
/**
|
|
@@ -337,22 +57,22 @@ function renderObservable(cmp) {
|
|
|
337
57
|
* {@internal}
|
|
338
58
|
*/
|
|
339
59
|
function observeSubNodes(target) {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
60
|
+
return mutationObservable(target, {
|
|
61
|
+
subtree: true,
|
|
62
|
+
childList: true,
|
|
63
|
+
}).pipe(setProperty.cjsExports.filter((records) => {
|
|
64
|
+
for (let i = 0; i < records.length; i++) {
|
|
65
|
+
if ('childList' !== records[i].type) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
if (records[i].addedNodes.length || records[i].removedNodes.length) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return false;
|
|
73
|
+
}), setProperty.cjsExports.map(() => {
|
|
74
|
+
/* noop */
|
|
75
|
+
}));
|
|
356
76
|
}
|
|
357
77
|
/**
|
|
358
78
|
* Property decorator inspired by Angular's @ViewChild/@ContentChild.
|
|
@@ -362,23 +82,23 @@ function observeSubNodes(target) {
|
|
|
362
82
|
* set to null.
|
|
363
83
|
*/
|
|
364
84
|
function QuerySelector(selector, options) {
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
85
|
+
return (target, property) => {
|
|
86
|
+
let descriptor = {
|
|
87
|
+
set: function () {
|
|
88
|
+
throw new Error(`Property "${property}" is read-only.`);
|
|
89
|
+
},
|
|
90
|
+
get: function () {
|
|
91
|
+
let observableProperty = `__rx__query_selector__observable__shadow_root__${(options === null || options === void 0 ? void 0 : options.shadowRoot) ? 'yes' : 'no'}__mutation_observer__${(options === null || options === void 0 ? void 0 : options.mutationObserver) ? 'yes' : 'no'}__selector__${selector}__`;
|
|
92
|
+
if (!this[observableProperty]) {
|
|
93
|
+
let root = (options === null || options === void 0 ? void 0 : options.shadowRoot) ? index.getElement(this).shadowRoot : index.getElement(this);
|
|
94
|
+
let observable = (options === null || options === void 0 ? void 0 : options.mutationObserver) ? observeSubNodes(root) : renderObservable(this);
|
|
95
|
+
this[observableProperty] = observable.pipe(setProperty.cjsExports.startWith(), setProperty.cjsExports.map(() => root.querySelector(selector)), setProperty.cjsExports.distinctUntilChanged(), setProperty.cjsExports.shareReplay(1));
|
|
96
|
+
}
|
|
97
|
+
return this[observableProperty];
|
|
98
|
+
},
|
|
99
|
+
};
|
|
100
|
+
Object.defineProperty(target, property, descriptor);
|
|
379
101
|
};
|
|
380
|
-
Object.defineProperty(target, property, descriptor);
|
|
381
|
-
};
|
|
382
102
|
}
|
|
383
103
|
|
|
384
104
|
/**
|
|
@@ -389,33 +109,33 @@ function QuerySelector(selector, options) {
|
|
|
389
109
|
* set to null.
|
|
390
110
|
*/
|
|
391
111
|
function QuerySelectorAll(selector, options) {
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
112
|
+
return (target, property) => {
|
|
113
|
+
let descriptor = {
|
|
114
|
+
set: function () {
|
|
115
|
+
throw new Error(`Property "${property}" is read-only.`);
|
|
116
|
+
},
|
|
117
|
+
get: function () {
|
|
118
|
+
let observableProperty = `__rx__query_selector_all__observable__shadow_root__${(options === null || options === void 0 ? void 0 : options.shadowRoot) ? 'yes' : 'no'}__mutation_observer__${(options === null || options === void 0 ? void 0 : options.mutationObserver) ? 'yes' : 'no'}__selector__${selector}__`;
|
|
119
|
+
if (!this[observableProperty]) {
|
|
120
|
+
let root = (options === null || options === void 0 ? void 0 : options.shadowRoot) ? index.getElement(this).shadowRoot : index.getElement(this);
|
|
121
|
+
let observable = (options === null || options === void 0 ? void 0 : options.mutationObserver) ? observeSubNodes(root) : renderObservable(this);
|
|
122
|
+
this[observableProperty] = observable.pipe(setProperty.cjsExports.startWith(), setProperty.cjsExports.map(() => Array.from(root.querySelectorAll(selector))), setProperty.cjsExports.distinctUntilChanged((previous, current) => {
|
|
123
|
+
if (previous.length !== current.length) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
for (let i = 0; i < previous.length; i++) {
|
|
127
|
+
if (previous[i] !== current[i]) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return true;
|
|
132
|
+
}), setProperty.cjsExports.shareReplay(1));
|
|
133
|
+
}
|
|
134
|
+
return this[observableProperty];
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
Object.defineProperty(target, property, descriptor);
|
|
416
138
|
};
|
|
417
|
-
Object.defineProperty(target, property, descriptor);
|
|
418
|
-
};
|
|
419
139
|
}
|
|
420
140
|
|
|
421
141
|
/**
|
|
@@ -428,15 +148,15 @@ function QuerySelectorAll(selector, options) {
|
|
|
428
148
|
* can disable this behavior by passing `false` as second argument.
|
|
429
149
|
*/
|
|
430
150
|
function scheduleRender(cmp, nextTick = true) {
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
151
|
+
return (source) => {
|
|
152
|
+
return source.pipe(setProperty.cjsExports.tap(() => {
|
|
153
|
+
if (!nextTick) {
|
|
154
|
+
index.forceUpdate(cmp);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
Promise.resolve().then(() => index.forceUpdate(cmp));
|
|
158
|
+
}));
|
|
159
|
+
};
|
|
440
160
|
}
|
|
441
161
|
|
|
442
162
|
/**
|
|
@@ -446,14 +166,14 @@ function scheduleRender(cmp, nextTick = true) {
|
|
|
446
166
|
* observable).
|
|
447
167
|
*/
|
|
448
168
|
function toProperty(cmp, property) {
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
169
|
+
// ensure that the property is defined on the component.
|
|
170
|
+
setProperty.getPropertyDescriptor(cmp, property);
|
|
171
|
+
// @ts-ignore
|
|
172
|
+
return (source) => {
|
|
173
|
+
return source.pipe(setProperty.cjsExports.tap((value) => {
|
|
174
|
+
cmp[property] = value;
|
|
175
|
+
}));
|
|
176
|
+
};
|
|
457
177
|
}
|
|
458
178
|
|
|
459
179
|
/**
|
|
@@ -473,18 +193,18 @@ let disconnectObservables = new WeakMap();
|
|
|
473
193
|
* {@internal}
|
|
474
194
|
*/
|
|
475
195
|
let createUsingDisconnectedCallback = function (cmp) {
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
}
|
|
480
|
-
let disconnectedSubject$ = new setProperty.Subject();
|
|
481
|
-
cmp.disconnectedCallback = function () {
|
|
482
|
-
if (previousDisconnected) {
|
|
483
|
-
previousDisconnected.call(cmp);
|
|
196
|
+
let previousDisconnected = cmp.disconnectedCallback;
|
|
197
|
+
if (!previousDisconnected) {
|
|
198
|
+
throw new Error(`Component "${cmp.constructor.name}" does not have a "disconnectedCallback()" method defined.`);
|
|
484
199
|
}
|
|
485
|
-
disconnectedSubject
|
|
486
|
-
|
|
487
|
-
|
|
200
|
+
let disconnectedSubject$ = new setProperty.cjsExports.Subject();
|
|
201
|
+
cmp.disconnectedCallback = function () {
|
|
202
|
+
if (previousDisconnected) {
|
|
203
|
+
previousDisconnected.call(cmp);
|
|
204
|
+
}
|
|
205
|
+
disconnectedSubject$.next();
|
|
206
|
+
};
|
|
207
|
+
return disconnectedSubject$.asObservable();
|
|
488
208
|
};
|
|
489
209
|
/**
|
|
490
210
|
* Mutation observer is our next heuristic. We will monitor parent
|
|
@@ -496,32 +216,32 @@ let createUsingDisconnectedCallback = function (cmp) {
|
|
|
496
216
|
* {@internal}
|
|
497
217
|
*/
|
|
498
218
|
let createUsingMutationObserver = function (cmp) {
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
219
|
+
let element = index.getElement(cmp);
|
|
220
|
+
if (null === element.parentNode) {
|
|
221
|
+
throw new Error(`Component "${cmp.constructor.name}" is not within DOM.`);
|
|
222
|
+
}
|
|
223
|
+
return new setProperty.cjsExports.Observable((observer) => {
|
|
224
|
+
let mutationObserver = new MutationObserver((mutations) => {
|
|
225
|
+
mutations.forEach((record) => {
|
|
226
|
+
for (let node of Array.from(record.removedNodes)) {
|
|
227
|
+
if (node !== element) {
|
|
228
|
+
continue;
|
|
229
|
+
}
|
|
230
|
+
observer.next();
|
|
231
|
+
observer.complete();
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
mutationObserver.observe(element.parentNode, {
|
|
236
|
+
childList: true,
|
|
237
|
+
subtree: true,
|
|
238
|
+
});
|
|
239
|
+
return () => {
|
|
240
|
+
mutationObserver.disconnect();
|
|
241
|
+
// we can not re-use this observable, so we have to delete it
|
|
242
|
+
disconnectObservables.delete(cmp);
|
|
243
|
+
};
|
|
518
244
|
});
|
|
519
|
-
return () => {
|
|
520
|
-
mutationObserver.disconnect();
|
|
521
|
-
// we can not re-use this observable, so we have to delete it
|
|
522
|
-
disconnectObservables.delete(cmp);
|
|
523
|
-
};
|
|
524
|
-
});
|
|
525
245
|
};
|
|
526
246
|
/**
|
|
527
247
|
* Creates an observable that emits a value when the component
|
|
@@ -530,33 +250,33 @@ let createUsingMutationObserver = function (cmp) {
|
|
|
530
250
|
* {@internal}
|
|
531
251
|
*/
|
|
532
252
|
function createDisconnectObservable(cmp) {
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
253
|
+
let functions = [
|
|
254
|
+
createUsingDisconnectedCallback,
|
|
255
|
+
createUsingMutationObserver,
|
|
256
|
+
];
|
|
257
|
+
for (let fn of functions) {
|
|
258
|
+
try {
|
|
259
|
+
disconnectObservables.set(cmp, fn(cmp));
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
catch (e) {
|
|
263
|
+
// noop
|
|
264
|
+
}
|
|
544
265
|
}
|
|
545
|
-
|
|
546
|
-
throw new Error(`Could not create disconnect observable for component "${cmp.constructor.name}".`);
|
|
266
|
+
throw new Error(`Could not create disconnect observable for component "${cmp.constructor.name}".`);
|
|
547
267
|
}
|
|
548
268
|
/**
|
|
549
269
|
* Operator that unsubscribes from the source observable when
|
|
550
270
|
* the component is disconnected from DOM.
|
|
551
271
|
*/
|
|
552
272
|
function untilDisconnected(cmp) {
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
273
|
+
return (source) => {
|
|
274
|
+
if (!disconnectObservables.has(cmp)) {
|
|
275
|
+
createDisconnectObservable(cmp);
|
|
276
|
+
}
|
|
277
|
+
let disconnectObservable$ = disconnectObservables.get(cmp);
|
|
278
|
+
return source.pipe(setProperty.cjsExports.takeUntil(disconnectObservable$));
|
|
279
|
+
};
|
|
560
280
|
}
|
|
561
281
|
|
|
562
282
|
exports.propertyObservable = setProperty.propertyObservable;
|
|
@@ -564,9 +284,8 @@ exports.setProperty = setProperty.setProperty;
|
|
|
564
284
|
exports.QuerySelector = QuerySelector;
|
|
565
285
|
exports.QuerySelectorAll = QuerySelectorAll;
|
|
566
286
|
exports.mutationObservable = mutationObservable;
|
|
287
|
+
exports.propertiesObservable = propertiesObservable;
|
|
567
288
|
exports.renderObservable = renderObservable;
|
|
568
289
|
exports.scheduleRender = scheduleRender;
|
|
569
290
|
exports.toProperty = toProperty;
|
|
570
291
|
exports.untilDisconnected = untilDisconnected;
|
|
571
|
-
|
|
572
|
-
//# sourceMappingURL=index.cjs.js.map
|