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