@angular/core 16.0.0-next.7 → 16.0.0-rc.0
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/esm2022/rxjs-interop/src/index.mjs +3 -3
- package/esm2022/rxjs-interop/src/to_observable.mjs +39 -0
- package/esm2022/rxjs-interop/src/to_signal.mjs +52 -0
- package/esm2022/src/application_ref.mjs +3 -3
- package/esm2022/src/application_tokens.mjs +11 -1
- package/esm2022/src/core_private_export.mjs +2 -1
- package/esm2022/src/errors.mjs +1 -1
- package/esm2022/src/hydration/annotate.mjs +42 -33
- package/esm2022/src/hydration/api.mjs +47 -19
- package/esm2022/src/hydration/error_handling.mjs +1 -17
- package/esm2022/src/initial_render_pending_tasks.mjs +10 -10
- package/esm2022/src/render3/component_ref.mjs +3 -3
- package/esm2022/src/render3/di.mjs +3 -3
- package/esm2022/src/render3/hooks.mjs +3 -3
- package/esm2022/src/render3/instructions/i18n.mjs +14 -2
- package/esm2022/src/render3/instructions/mark_view_dirty.mjs +1 -1
- package/esm2022/src/render3/instructions/shared.mjs +14 -14
- package/esm2022/src/render3/interfaces/type_checks.mjs +1 -1
- package/esm2022/src/render3/interfaces/view.mjs +1 -1
- package/esm2022/src/render3/node_manipulation.mjs +9 -9
- package/esm2022/src/render3/reactivity/effect.mjs +1 -1
- package/esm2022/src/render3/util/discovery_utils.mjs +1 -1
- package/esm2022/src/render3/util/view_traversal_utils.mjs +1 -1
- package/esm2022/src/render3/util/view_utils.mjs +2 -2
- package/esm2022/src/render3/view_ref.mjs +4 -4
- package/esm2022/src/signals/src/watch.mjs +6 -2
- package/esm2022/src/version.mjs +1 -1
- package/esm2022/testing/src/logger.mjs +3 -3
- package/esm2022/testing/src/ng_zone_mock.mjs +3 -3
- package/fesm2022/core.mjs +156 -113
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/rxjs-interop.mjs +704 -56
- package/fesm2022/rxjs-interop.mjs.map +1 -1
- package/fesm2022/testing.mjs +67 -57
- package/fesm2022/testing.mjs.map +1 -1
- package/index.d.ts +32 -15
- package/package.json +2 -2
- package/rxjs-interop/index.d.ts +53 -46
- package/schematics/migrations/guard-and-resolve-interfaces/bundle.js +13 -13
- package/schematics/migrations/remove-module-id/bundle.js +14 -14
- package/schematics/ng-generate/standalone-migration/bundle.js +2938 -1229
- package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
- package/testing/index.d.ts +1 -1
- package/esm2022/rxjs-interop/src/from_observable.mjs +0 -46
- package/esm2022/rxjs-interop/src/from_signal.mjs +0 -36
package/testing/index.d.ts
CHANGED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { assertInInjectionContext, computed, DestroyRef, inject, signal } from '@angular/core';
|
|
9
|
-
export function fromObservable(source, initialValue) {
|
|
10
|
-
assertInInjectionContext(fromObservable);
|
|
11
|
-
// Note: T is the Observable value type, and U is the initial value type. They don't have to be
|
|
12
|
-
// the same - the returned signal gives values of type `T`.
|
|
13
|
-
let state;
|
|
14
|
-
if (initialValue === undefined && arguments.length !== 2) {
|
|
15
|
-
// No initial value was passed, so initially the signal is in a `NoValue` state and will throw
|
|
16
|
-
// if accessed.
|
|
17
|
-
state = signal({ kind: 0 /* StateKind.NoValue */ });
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
// An initial value was passed, so use it.
|
|
21
|
-
state = signal({ kind: 1 /* StateKind.Value */, value: initialValue });
|
|
22
|
-
}
|
|
23
|
-
const sub = source.subscribe({
|
|
24
|
-
next: value => state.set({ kind: 1 /* StateKind.Value */, value }),
|
|
25
|
-
error: error => state.set({ kind: 2 /* StateKind.Error */, error }),
|
|
26
|
-
// Completion of the Observable is meaningless to the signal. Signals don't have a concept of
|
|
27
|
-
// "complete".
|
|
28
|
-
});
|
|
29
|
-
// Unsubscribe when the current context is destroyed.
|
|
30
|
-
inject(DestroyRef).onDestroy(sub.unsubscribe.bind(sub));
|
|
31
|
-
// The actual returned signal is a `computed` of the `State` signal, which maps the various states
|
|
32
|
-
// to either values or errors.
|
|
33
|
-
return computed(() => {
|
|
34
|
-
const current = state();
|
|
35
|
-
switch (current.kind) {
|
|
36
|
-
case 1 /* StateKind.Value */:
|
|
37
|
-
return current.value;
|
|
38
|
-
case 2 /* StateKind.Error */:
|
|
39
|
-
throw current.error;
|
|
40
|
-
case 0 /* StateKind.NoValue */:
|
|
41
|
-
// TODO(alxhub): use a RuntimeError when we finalize the error semantics
|
|
42
|
-
throw new Error(`fromObservable() signal read before the Observable emitted`);
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbV9vYnNlcnZhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9yeGpzLWludGVyb3Avc3JjL2Zyb21fb2JzZXJ2YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUF5QixNQUFNLGVBQWUsQ0FBQztBQWdEckgsTUFBTSxVQUFVLGNBQWMsQ0FBZSxNQUFxQixFQUFFLFlBQWdCO0lBQ2xGLHdCQUF3QixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRXpDLCtGQUErRjtJQUMvRiwyREFBMkQ7SUFDM0QsSUFBSSxLQUFpQyxDQUFDO0lBQ3RDLElBQUksWUFBWSxLQUFLLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN4RCw4RkFBOEY7UUFDOUYsZUFBZTtRQUNmLEtBQUssR0FBRyxNQUFNLENBQUMsRUFBQyxJQUFJLDJCQUFtQixFQUFDLENBQUMsQ0FBQztLQUMzQztTQUFNO1FBQ0wsMENBQTBDO1FBQzFDLEtBQUssR0FBRyxNQUFNLENBQWEsRUFBQyxJQUFJLHlCQUFpQixFQUFFLEtBQUssRUFBRSxZQUFhLEVBQUMsQ0FBQyxDQUFDO0tBQzNFO0lBRUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUMzQixJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUMsSUFBSSx5QkFBaUIsRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUN4RCxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUMsSUFBSSx5QkFBaUIsRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUN6RCw2RkFBNkY7UUFDN0YsY0FBYztLQUNmLENBQUMsQ0FBQztJQUVILHFEQUFxRDtJQUNyRCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFeEQsa0dBQWtHO0lBQ2xHLDhCQUE4QjtJQUM5QixPQUFPLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDbkIsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDeEIsUUFBUSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ3BCO2dCQUNFLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztZQUN2QjtnQkFDRSxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDdEI7Z0JBQ0Usd0VBQXdFO2dCQUN4RSxNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUM7U0FDakY7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHthc3NlcnRJbkluamVjdGlvbkNvbnRleHQsIGNvbXB1dGVkLCBEZXN0cm95UmVmLCBpbmplY3QsIHNpZ25hbCwgU2lnbmFsLCBXcml0YWJsZVNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEdldCB0aGUgY3VycmVudCB2YWx1ZSBvZiBhbiBgT2JzZXJ2YWJsZWAgYXMgYSByZWFjdGl2ZSBgU2lnbmFsYC5cbiAqXG4gKiBgZnJvbU9ic2VydmFibGVgIHJldHVybnMgYSBgU2lnbmFsYCB3aGljaCBwcm92aWRlcyBzeW5jaHJvbm91cyByZWFjdGl2ZSBhY2Nlc3MgdG8gdmFsdWVzIHByb2R1Y2VkXG4gKiBieSB0aGUgZ2l2ZW4gYE9ic2VydmFibGVgLCBieSBzdWJzY3JpYmluZyB0byB0aGF0IGBPYnNlcnZhYmxlYC4gVGhlIHJldHVybmVkIGBTaWduYWxgIHdpbGwgYWx3YXlzXG4gKiBoYXZlIHRoZSBtb3N0IHJlY2VudCB2YWx1ZSBlbWl0dGVkIGJ5IHRoZSBzdWJzY3JpcHRpb24sIGFuZCB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZVxuICogYE9ic2VydmFibGVgIGVycm9ycy5cbiAqXG4gKiBUaGUgc3Vic2NyaXB0aW9uIHdpbGwgbGFzdCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBjdXJyZW50IGluamVjdGlvbiBjb250ZXh0LiBUaGF0IGlzLCBpZlxuICogYGZyb21PYnNlcnZhYmxlYCBpcyBjYWxsZWQgZnJvbSBhIGNvbXBvbmVudCBjb250ZXh0LCB0aGUgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2xlYW5lZCB1cCB3aGVuIHRoZVxuICogY29tcG9uZW50IGlzIGRlc3Ryb3llZC4gV2hlbiBjYWxsZWQgb3V0c2lkZSBvZiBhIGNvbXBvbmVudCwgdGhlIGN1cnJlbnQgYEVudmlyb25tZW50SW5qZWN0b3JgJ3NcbiAqIGxpZmV0aW1lIHdpbGwgYmUgdXNlZCAod2hpY2ggaXMgdHlwaWNhbGx5IHRoZSBsaWZldGltZSBvZiB0aGUgYXBwbGljYXRpb24gaXRzZWxmKS5cbiAqXG4gKiBJZiB0aGUgYE9ic2VydmFibGVgIGRvZXMgbm90IHByb2R1Y2UgYSB2YWx1ZSBiZWZvcmUgdGhlIGBTaWduYWxgIGlzIHJlYWQsIHRoZSBgU2lnbmFsYCB3aWxsIHRocm93XG4gKiBhbiBlcnJvci4gVG8gYXZvaWQgdGhpcywgdXNlIGEgc3luY2hyb25vdXMgYE9ic2VydmFibGVgIChwb3RlbnRpYWxseSBjcmVhdGVkIHdpdGggdGhlIGBzdGFydFdpdGhgXG4gKiBvcGVyYXRvcikgb3IgcGFzcyBhbiBpbml0aWFsIHZhbHVlIHRvIGBmcm9tT2JzZXJ2YWJsZWAgYXMgdGhlIHNlY29uZCBhcmd1bWVudC5cbiAqXG4gKiBgZnJvbU9ic2VydmFibGVgIG11c3QgYmUgY2FsbGVkIGluIGFuIGluamVjdGlvbiBjb250ZXh0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbU9ic2VydmFibGU8VD4oc291cmNlOiBPYnNlcnZhYmxlPFQ+KTogU2lnbmFsPFQ+O1xuXG4vKipcbiAqIEdldCB0aGUgY3VycmVudCB2YWx1ZSBvZiBhbiBgT2JzZXJ2YWJsZWAgYXMgYSByZWFjdGl2ZSBgU2lnbmFsYC5cbiAqXG4gKiBgZnJvbU9ic2VydmFibGVgIHJldHVybnMgYSBgU2lnbmFsYCB3aGljaCBwcm92aWRlcyBzeW5jaHJvbm91cyByZWFjdGl2ZSBhY2Nlc3MgdG8gdmFsdWVzIHByb2R1Y2VkXG4gKiBieSB0aGUgZ2l2ZW4gYE9ic2VydmFibGVgLCBieSBzdWJzY3JpYmluZyB0byB0aGF0IGBPYnNlcnZhYmxlYC4gVGhlIHJldHVybmVkIGBTaWduYWxgIHdpbGwgYWx3YXlzXG4gKiBoYXZlIHRoZSBtb3N0IHJlY2VudCB2YWx1ZSBlbWl0dGVkIGJ5IHRoZSBzdWJzY3JpcHRpb24sIGFuZCB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZVxuICogYE9ic2VydmFibGVgIGVycm9ycy5cbiAqXG4gKiBUaGUgc3Vic2NyaXB0aW9uIHdpbGwgbGFzdCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBjdXJyZW50IGluamVjdGlvbiBjb250ZXh0LiBUaGF0IGlzLCBpZlxuICogYGZyb21PYnNlcnZhYmxlYCBpcyBjYWxsZWQgZnJvbSBhIGNvbXBvbmVudCBjb250ZXh0LCB0aGUgc3Vic2NyaXB0aW9uIHdpbGwgYmUgY2xlYW5lZCB1cCB3aGVuIHRoZVxuICogY29tcG9uZW50IGlzIGRlc3Ryb3llZC4gV2hlbiBjYWxsZWQgb3V0c2lkZSBvZiBhIGNvbXBvbmVudCwgdGhlIGN1cnJlbnQgYEVudmlyb25tZW50SW5qZWN0b3JgJ3NcbiAqIGxpZmV0aW1lIHdpbGwgYmUgdXNlZCAod2hpY2ggaXMgdHlwaWNhbGx5IHRoZSBsaWZldGltZSBvZiB0aGUgYXBwbGljYXRpb24gaXRzZWxmKS5cbiAqXG4gKiBCZWZvcmUgdGhlIGBPYnNlcnZhYmxlYCBlbWl0cyBpdHMgZmlyc3QgdmFsdWUsIHRoZSBgU2lnbmFsYCB3aWxsIHJldHVybiB0aGUgY29uZmlndXJlZFxuICogYGluaXRpYWxWYWx1ZWAuIElmIHRoZSBgT2JzZXJ2YWJsZWAgaXMga25vd24gdG8gcHJvZHVjZSBhIHZhbHVlIGJlZm9yZSB0aGUgYFNpZ25hbGAgd2lsbCBiZSByZWFkLFxuICogYGluaXRpYWxWYWx1ZWAgZG9lcyBub3QgbmVlZCB0byBiZSBwYXNzZWQuXG4gKlxuICogYGZyb21PYnNlcnZhYmxlYCBtdXN0IGJlIGNhbGxlZCBpbiBhbiBpbmplY3Rpb24gY29udGV4dC5cbiAqXG4gKiBAZGV2ZWxvcGVyUHJldmlld1xuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbU9ic2VydmFibGU8VCwgVSBleHRlbmRzIFR8bnVsbHx1bmRlZmluZWQ+KFxuICAgIC8vIGZyb21PYnNlcnZhYmxlKE9ic2VydmFibGU8QW5pbWFsPikgLT4gU2lnbmFsPENhdD5cbiAgICBzb3VyY2U6IE9ic2VydmFibGU8VD4sIGluaXRpYWxWYWx1ZTogVSk6IFNpZ25hbDxUfFU+O1xuZXhwb3J0IGZ1bmN0aW9uIGZyb21PYnNlcnZhYmxlPFQsIFUgPSBuZXZlcj4oc291cmNlOiBPYnNlcnZhYmxlPFQ+LCBpbml0aWFsVmFsdWU/OiBVKTogU2lnbmFsPFR8VT4ge1xuICBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoZnJvbU9ic2VydmFibGUpO1xuXG4gIC8vIE5vdGU6IFQgaXMgdGhlIE9ic2VydmFibGUgdmFsdWUgdHlwZSwgYW5kIFUgaXMgdGhlIGluaXRpYWwgdmFsdWUgdHlwZS4gVGhleSBkb24ndCBoYXZlIHRvIGJlXG4gIC8vIHRoZSBzYW1lIC0gdGhlIHJldHVybmVkIHNpZ25hbCBnaXZlcyB2YWx1ZXMgb2YgdHlwZSBgVGAuXG4gIGxldCBzdGF0ZTogV3JpdGFibGVTaWduYWw8U3RhdGU8VHxVPj47XG4gIGlmIChpbml0aWFsVmFsdWUgPT09IHVuZGVmaW5lZCAmJiBhcmd1bWVudHMubGVuZ3RoICE9PSAyKSB7XG4gICAgLy8gTm8gaW5pdGlhbCB2YWx1ZSB3YXMgcGFzc2VkLCBzbyBpbml0aWFsbHkgdGhlIHNpZ25hbCBpcyBpbiBhIGBOb1ZhbHVlYCBzdGF0ZSBhbmQgd2lsbCB0aHJvd1xuICAgIC8vIGlmIGFjY2Vzc2VkLlxuICAgIHN0YXRlID0gc2lnbmFsKHtraW5kOiBTdGF0ZUtpbmQuTm9WYWx1ZX0pO1xuICB9IGVsc2Uge1xuICAgIC8vIEFuIGluaXRpYWwgdmFsdWUgd2FzIHBhc3NlZCwgc28gdXNlIGl0LlxuICAgIHN0YXRlID0gc2lnbmFsPFN0YXRlPFR8VT4+KHtraW5kOiBTdGF0ZUtpbmQuVmFsdWUsIHZhbHVlOiBpbml0aWFsVmFsdWUhfSk7XG4gIH1cblxuICBjb25zdCBzdWIgPSBzb3VyY2Uuc3Vic2NyaWJlKHtcbiAgICBuZXh0OiB2YWx1ZSA9PiBzdGF0ZS5zZXQoe2tpbmQ6IFN0YXRlS2luZC5WYWx1ZSwgdmFsdWV9KSxcbiAgICBlcnJvcjogZXJyb3IgPT4gc3RhdGUuc2V0KHtraW5kOiBTdGF0ZUtpbmQuRXJyb3IsIGVycm9yfSksXG4gICAgLy8gQ29tcGxldGlvbiBvZiB0aGUgT2JzZXJ2YWJsZSBpcyBtZWFuaW5nbGVzcyB0byB0aGUgc2lnbmFsLiBTaWduYWxzIGRvbid0IGhhdmUgYSBjb25jZXB0IG9mXG4gICAgLy8gXCJjb21wbGV0ZVwiLlxuICB9KTtcblxuICAvLyBVbnN1YnNjcmliZSB3aGVuIHRoZSBjdXJyZW50IGNvbnRleHQgaXMgZGVzdHJveWVkLlxuICBpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KHN1Yi51bnN1YnNjcmliZS5iaW5kKHN1YikpO1xuXG4gIC8vIFRoZSBhY3R1YWwgcmV0dXJuZWQgc2lnbmFsIGlzIGEgYGNvbXB1dGVkYCBvZiB0aGUgYFN0YXRlYCBzaWduYWwsIHdoaWNoIG1hcHMgdGhlIHZhcmlvdXMgc3RhdGVzXG4gIC8vIHRvIGVpdGhlciB2YWx1ZXMgb3IgZXJyb3JzLlxuICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBzdGF0ZSgpO1xuICAgIHN3aXRjaCAoY3VycmVudC5raW5kKSB7XG4gICAgICBjYXNlIFN0YXRlS2luZC5WYWx1ZTpcbiAgICAgICAgcmV0dXJuIGN1cnJlbnQudmFsdWU7XG4gICAgICBjYXNlIFN0YXRlS2luZC5FcnJvcjpcbiAgICAgICAgdGhyb3cgY3VycmVudC5lcnJvcjtcbiAgICAgIGNhc2UgU3RhdGVLaW5kLk5vVmFsdWU6XG4gICAgICAgIC8vIFRPRE8oYWx4aHViKTogdXNlIGEgUnVudGltZUVycm9yIHdoZW4gd2UgZmluYWxpemUgdGhlIGVycm9yIHNlbWFudGljc1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGZyb21PYnNlcnZhYmxlKCkgc2lnbmFsIHJlYWQgYmVmb3JlIHRoZSBPYnNlcnZhYmxlIGVtaXR0ZWRgKTtcbiAgICB9XG4gIH0pO1xufVxuXG5jb25zdCBlbnVtIFN0YXRlS2luZCB7XG4gIE5vVmFsdWUsXG4gIFZhbHVlLFxuICBFcnJvcixcbn1cblxuaW50ZXJmYWNlIE5vVmFsdWVTdGF0ZSB7XG4gIGtpbmQ6IFN0YXRlS2luZC5Ob1ZhbHVlO1xufVxuXG5pbnRlcmZhY2UgVmFsdWVTdGF0ZTxUPiB7XG4gIGtpbmQ6IFN0YXRlS2luZC5WYWx1ZTtcbiAgdmFsdWU6IFQ7XG59XG5cbmludGVyZmFjZSBFcnJvclN0YXRlIHtcbiAga2luZDogU3RhdGVLaW5kLkVycm9yO1xuICBlcnJvcjogdW5rbm93bjtcbn1cblxudHlwZSBTdGF0ZTxUPiA9IE5vVmFsdWVTdGF0ZXxWYWx1ZVN0YXRlPFQ+fEVycm9yU3RhdGU7XG4iXX0=
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
import { assertInInjectionContext, effect, inject, Injector } from '@angular/core';
|
|
9
|
-
import { Observable } from 'rxjs';
|
|
10
|
-
/**
|
|
11
|
-
* Exposes the value of an Angular `Signal` as an RxJS `Observable`.
|
|
12
|
-
*
|
|
13
|
-
* The signal's value will be propagated into the `Observable`'s subscribers using an `effect`.
|
|
14
|
-
*
|
|
15
|
-
* `fromSignal` must be called in an injection context.
|
|
16
|
-
*
|
|
17
|
-
* @developerPreview
|
|
18
|
-
*/
|
|
19
|
-
export function fromSignal(source, options) {
|
|
20
|
-
!options?.injector && assertInInjectionContext(fromSignal);
|
|
21
|
-
const injector = options?.injector ?? inject(Injector);
|
|
22
|
-
// Creating a new `Observable` allows the creation of the effect to be lazy. This allows for all
|
|
23
|
-
// references to `source` to be dropped if the `Observable` is fully unsubscribed and thrown away.
|
|
24
|
-
return new Observable(observer => {
|
|
25
|
-
const watcher = effect(() => {
|
|
26
|
-
try {
|
|
27
|
-
observer.next(source());
|
|
28
|
-
}
|
|
29
|
-
catch (err) {
|
|
30
|
-
observer.error(err);
|
|
31
|
-
}
|
|
32
|
-
}, { injector, manualCleanup: true });
|
|
33
|
-
return () => watcher.destroy();
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbV9zaWduYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3J4anMtaW50ZXJvcC9zcmMvZnJvbV9zaWduYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFnQmhDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FDdEIsTUFBaUIsRUFDakIsT0FBMkI7SUFFN0IsQ0FBQyxPQUFPLEVBQUUsUUFBUSxJQUFJLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNELE1BQU0sUUFBUSxHQUFHLE9BQU8sRUFBRSxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXZELGdHQUFnRztJQUNoRyxrR0FBa0c7SUFDbEcsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUMvQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQzFCLElBQUk7Z0JBQ0YsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2FBQ3pCO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNyQjtRQUNILENBQUMsRUFBRSxFQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUNwQyxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHthc3NlcnRJbkluamVjdGlvbkNvbnRleHQsIGVmZmVjdCwgaW5qZWN0LCBJbmplY3RvciwgU2lnbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYGZyb21TaWduYWxgLlxuICpcbiAqIEBkZXZlbG9wZXJQcmV2aWV3XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnJvbVNpZ25hbE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGBJbmplY3RvcmAgdG8gdXNlIHdoZW4gY3JlYXRpbmcgdGhlIGVmZmVjdC5cbiAgICpcbiAgICogSWYgdGhpcyBpc24ndCBzcGVjaWZpZWQsIHRoZSBjdXJyZW50IGluamVjdGlvbiBjb250ZXh0IHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIGluamVjdG9yPzogSW5qZWN0b3I7XG59XG5cbi8qKlxuICogRXhwb3NlcyB0aGUgdmFsdWUgb2YgYW4gQW5ndWxhciBgU2lnbmFsYCBhcyBhbiBSeEpTIGBPYnNlcnZhYmxlYC5cbiAqXG4gKiBUaGUgc2lnbmFsJ3MgdmFsdWUgd2lsbCBiZSBwcm9wYWdhdGVkIGludG8gdGhlIGBPYnNlcnZhYmxlYCdzIHN1YnNjcmliZXJzIHVzaW5nIGFuIGBlZmZlY3RgLlxuICpcbiAqIGBmcm9tU2lnbmFsYCBtdXN0IGJlIGNhbGxlZCBpbiBhbiBpbmplY3Rpb24gY29udGV4dC5cbiAqXG4gKiBAZGV2ZWxvcGVyUHJldmlld1xuICovXG5leHBvcnQgZnVuY3Rpb24gZnJvbVNpZ25hbDxUPihcbiAgICBzb3VyY2U6IFNpZ25hbDxUPixcbiAgICBvcHRpb25zPzogRnJvbVNpZ25hbE9wdGlvbnMsXG4gICAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICFvcHRpb25zPy5pbmplY3RvciAmJiBhc3NlcnRJbkluamVjdGlvbkNvbnRleHQoZnJvbVNpZ25hbCk7XG4gIGNvbnN0IGluamVjdG9yID0gb3B0aW9ucz8uaW5qZWN0b3IgPz8gaW5qZWN0KEluamVjdG9yKTtcblxuICAvLyBDcmVhdGluZyBhIG5ldyBgT2JzZXJ2YWJsZWAgYWxsb3dzIHRoZSBjcmVhdGlvbiBvZiB0aGUgZWZmZWN0IHRvIGJlIGxhenkuIFRoaXMgYWxsb3dzIGZvciBhbGxcbiAgLy8gcmVmZXJlbmNlcyB0byBgc291cmNlYCB0byBiZSBkcm9wcGVkIGlmIHRoZSBgT2JzZXJ2YWJsZWAgaXMgZnVsbHkgdW5zdWJzY3JpYmVkIGFuZCB0aHJvd24gYXdheS5cbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICBjb25zdCB3YXRjaGVyID0gZWZmZWN0KCgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIG9ic2VydmVyLm5leHQoc291cmNlKCkpO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIG9ic2VydmVyLmVycm9yKGVycik7XG4gICAgICB9XG4gICAgfSwge2luamVjdG9yLCBtYW51YWxDbGVhbnVwOiB0cnVlfSk7XG4gICAgcmV0dXJuICgpID0+IHdhdGNoZXIuZGVzdHJveSgpO1xuICB9KTtcbn1cbiJdfQ==
|