@ngrx/signals 17.1.0 → 17.1.1
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/rx-method.mjs +16 -14
- package/esm2022/src/helpers.mjs +7 -2
- package/esm2022/src/index.mjs +1 -1
- package/esm2022/src/signal-store-models.mjs +1 -1
- package/fesm2022/ngrx-signals-rxjs-interop.mjs +15 -13
- package/fesm2022/ngrx-signals-rxjs-interop.mjs.map +1 -1
- package/fesm2022/ngrx-signals.mjs +6 -1
- package/fesm2022/ngrx-signals.mjs.map +1 -1
- package/package.json +1 -1
- package/schematics-core/utility/libs-version.js +1 -1
- package/schematics-core/utility/libs-version.js.map +1 -1
- package/src/index.d.ts +1 -0
- package/src/signal-store-models.d.ts +1 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { assertInInjectionContext, DestroyRef, inject, Injector, isSignal, } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { isObservable, of, Subject } from 'rxjs';
|
|
1
|
+
import { assertInInjectionContext, DestroyRef, effect, inject, Injector, isSignal, untracked, } from '@angular/core';
|
|
2
|
+
import { isObservable, noop, Subject } from 'rxjs';
|
|
4
3
|
export function rxMethod(generator, config) {
|
|
5
4
|
if (!config?.injector) {
|
|
6
5
|
assertInInjectionContext(rxMethod);
|
|
@@ -11,21 +10,24 @@ export function rxMethod(generator, config) {
|
|
|
11
10
|
const sourceSub = generator(source$).subscribe();
|
|
12
11
|
destroyRef.onDestroy(() => sourceSub.unsubscribe());
|
|
13
12
|
const rxMethodFn = (input) => {
|
|
14
|
-
let input$;
|
|
15
13
|
if (isSignal(input)) {
|
|
16
|
-
|
|
14
|
+
const watcher = effect(() => {
|
|
15
|
+
const value = input();
|
|
16
|
+
untracked(() => source$.next(value));
|
|
17
|
+
}, { injector });
|
|
18
|
+
const instanceSub = { unsubscribe: () => watcher.destroy() };
|
|
19
|
+
sourceSub.add(instanceSub);
|
|
20
|
+
return instanceSub;
|
|
17
21
|
}
|
|
18
|
-
|
|
19
|
-
|
|
22
|
+
if (isObservable(input)) {
|
|
23
|
+
const instanceSub = input.subscribe((value) => source$.next(value));
|
|
24
|
+
sourceSub.add(instanceSub);
|
|
25
|
+
return instanceSub;
|
|
20
26
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
const instanceSub = input$.subscribe((value) => source$.next(value));
|
|
25
|
-
sourceSub.add(instanceSub);
|
|
26
|
-
return instanceSub;
|
|
27
|
+
source$.next(input);
|
|
28
|
+
return { unsubscribe: noop };
|
|
27
29
|
};
|
|
28
30
|
rxMethodFn.unsubscribe = sourceSub.unsubscribe.bind(sourceSub);
|
|
29
31
|
return rxMethodFn;
|
|
30
32
|
}
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtbWV0aG9kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3J4anMtaW50ZXJvcC9zcmMvcngtbWV0aG9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLFFBQVEsRUFFUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQWMsT0FBTyxFQUFrQixNQUFNLE1BQU0sQ0FBQztBQU8vRSxNQUFNLFVBQVUsUUFBUSxDQUN0QixTQUE4RCxFQUM5RCxNQUFnQztJQUVoQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTtRQUNyQix3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUNwQztJQUVELE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVMsQ0FBQztJQUVyQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDakQsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUVwRCxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQTJCLEVBQUUsRUFBRTtRQUNqRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQ3BCLEdBQUcsRUFBRTtnQkFDSCxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQztnQkFDdEIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsQ0FDYixDQUFDO1lBQ0YsTUFBTSxXQUFXLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDN0QsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUUzQixPQUFPLFdBQVcsQ0FBQztTQUNwQjtRQUVELElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNwRSxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRTNCLE9BQU8sV0FBVyxDQUFDO1NBQ3BCO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQixPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUMsQ0FBQztJQUNGLFVBQVUsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFL0QsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dCxcbiAgRGVzdHJveVJlZixcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBpc1NpZ25hbCxcbiAgU2lnbmFsLFxuICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBub29wLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBVbnN1YnNjcmliYWJsZSB9IGZyb20gJ3J4anMnO1xuXG50eXBlIFJ4TWV0aG9kSW5wdXQ8SW5wdXQ+ID0gSW5wdXQgfCBPYnNlcnZhYmxlPElucHV0PiB8IFNpZ25hbDxJbnB1dD47XG5cbnR5cGUgUnhNZXRob2Q8SW5wdXQ+ID0gKChpbnB1dDogUnhNZXRob2RJbnB1dDxJbnB1dD4pID0+IFVuc3Vic2NyaWJhYmxlKSAmXG4gIFVuc3Vic2NyaWJhYmxlO1xuXG5leHBvcnQgZnVuY3Rpb24gcnhNZXRob2Q8SW5wdXQ+KFxuICBnZW5lcmF0b3I6IChzb3VyY2UkOiBPYnNlcnZhYmxlPElucHV0PikgPT4gT2JzZXJ2YWJsZTx1bmtub3duPixcbiAgY29uZmlnPzogeyBpbmplY3Rvcj86IEluamVjdG9yIH1cbik6IFJ4TWV0aG9kPElucHV0PiB7XG4gIGlmICghY29uZmlnPy5pbmplY3Rvcikge1xuICAgIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dChyeE1ldGhvZCk7XG4gIH1cblxuICBjb25zdCBpbmplY3RvciA9IGNvbmZpZz8uaW5qZWN0b3IgPz8gaW5qZWN0KEluamVjdG9yKTtcbiAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdG9yLmdldChEZXN0cm95UmVmKTtcbiAgY29uc3Qgc291cmNlJCA9IG5ldyBTdWJqZWN0PElucHV0PigpO1xuXG4gIGNvbnN0IHNvdXJjZVN1YiA9IGdlbmVyYXRvcihzb3VyY2UkKS5zdWJzY3JpYmUoKTtcbiAgZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gc291cmNlU3ViLnVuc3Vic2NyaWJlKCkpO1xuXG4gIGNvbnN0IHJ4TWV0aG9kRm4gPSAoaW5wdXQ6IFJ4TWV0aG9kSW5wdXQ8SW5wdXQ+KSA9PiB7XG4gICAgaWYgKGlzU2lnbmFsKGlucHV0KSkge1xuICAgICAgY29uc3Qgd2F0Y2hlciA9IGVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQoKTtcbiAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4gc291cmNlJC5uZXh0KHZhbHVlKSk7XG4gICAgICAgIH0sXG4gICAgICAgIHsgaW5qZWN0b3IgfVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGluc3RhbmNlU3ViID0geyB1bnN1YnNjcmliZTogKCkgPT4gd2F0Y2hlci5kZXN0cm95KCkgfTtcbiAgICAgIHNvdXJjZVN1Yi5hZGQoaW5zdGFuY2VTdWIpO1xuXG4gICAgICByZXR1cm4gaW5zdGFuY2VTdWI7XG4gICAgfVxuXG4gICAgaWYgKGlzT2JzZXJ2YWJsZShpbnB1dCkpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlU3ViID0gaW5wdXQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gc291cmNlJC5uZXh0KHZhbHVlKSk7XG4gICAgICBzb3VyY2VTdWIuYWRkKGluc3RhbmNlU3ViKTtcblxuICAgICAgcmV0dXJuIGluc3RhbmNlU3ViO1xuICAgIH1cblxuICAgIHNvdXJjZSQubmV4dChpbnB1dCk7XG4gICAgcmV0dXJuIHsgdW5zdWJzY3JpYmU6IG5vb3AgfTtcbiAgfTtcbiAgcnhNZXRob2RGbi51bnN1YnNjcmliZSA9IHNvdXJjZVN1Yi51bnN1YnNjcmliZS5iaW5kKHNvdXJjZVN1Yik7XG5cbiAgcmV0dXJuIHJ4TWV0aG9kRm47XG59XG4iXX0=
|
package/esm2022/src/helpers.mjs
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export function excludeKeys(obj, keys) {
|
|
2
|
-
return Object.keys(obj).reduce((acc, key) =>
|
|
2
|
+
return Object.keys(obj).reduce((acc, key) => {
|
|
3
|
+
if (!keys.includes(key)) {
|
|
4
|
+
acc[key] = obj[key];
|
|
5
|
+
}
|
|
6
|
+
return acc;
|
|
7
|
+
}, {});
|
|
3
8
|
}
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsV0FBVyxDQUd6QixHQUFRLEVBQUUsSUFBVTtJQUNwQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUEwQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNuRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3JCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQUUsRUFBRSxDQUE0QixDQUFDO0FBQ3BDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZXhjbHVkZUtleXM8XG4gIE9iaiBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBLZXlzIGV4dGVuZHMgc3RyaW5nW11cbj4ob2JqOiBPYmosIGtleXM6IEtleXMpOiBPbWl0PE9iaiwgS2V5c1tudW1iZXJdPiB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oKGFjYywga2V5KSA9PiB7XG4gICAgaWYgKCFrZXlzLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgIGFjY1trZXldID0gb2JqW2tleV07XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KSBhcyBPbWl0PE9iaiwgS2V5c1tudW1iZXJdPjtcbn1cbiJdfQ==
|
package/esm2022/src/index.mjs
CHANGED
|
@@ -7,4 +7,4 @@ export { withComputed } from './with-computed';
|
|
|
7
7
|
export { withHooks } from './with-hooks';
|
|
8
8
|
export { withMethods } from './with-methods';
|
|
9
9
|
export { withState } from './with-state';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUF1QixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBnZXRTdGF0ZSB9IGZyb20gJy4vZ2V0LXN0YXRlJztcbmV4cG9ydCB7IFBhcnRpYWxTdGF0ZVVwZGF0ZXIsIHBhdGNoU3RhdGUgfSBmcm9tICcuL3BhdGNoLXN0YXRlJztcbmV4cG9ydCB7IHNpZ25hbFN0YXRlIH0gZnJvbSAnLi9zaWduYWwtc3RhdGUnO1xuZXhwb3J0IHsgc2lnbmFsU3RvcmUgfSBmcm9tICcuL3NpZ25hbC1zdG9yZSc7XG5leHBvcnQgeyBzaWduYWxTdG9yZUZlYXR1cmUsIHR5cGUgfSBmcm9tICcuL3NpZ25hbC1zdG9yZS1mZWF0dXJlJztcbmV4cG9ydCB7IFNpZ25hbFN0b3JlRmVhdHVyZSB9IGZyb20gJy4vc2lnbmFsLXN0b3JlLW1vZGVscyc7XG5leHBvcnQgeyBTdGF0ZVNpZ25hbCB9IGZyb20gJy4vc3RhdGUtc2lnbmFsJztcblxuZXhwb3J0IHsgd2l0aENvbXB1dGVkIH0gZnJvbSAnLi93aXRoLWNvbXB1dGVkJztcbmV4cG9ydCB7IHdpdGhIb29rcyB9IGZyb20gJy4vd2l0aC1ob29rcyc7XG5leHBvcnQgeyB3aXRoTWV0aG9kcyB9IGZyb20gJy4vd2l0aC1tZXRob2RzJztcbmV4cG9ydCB7IHdpdGhTdGF0ZSB9IGZyb20gJy4vd2l0aC1zdGF0ZSc7XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvc2lnbmFsLXN0b3JlLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWVwU2lnbmFsIH0gZnJvbSAnLi9kZWVwLXNpZ25hbCc7XG5pbXBvcnQgeyBTdGF0ZVNpZ25hbCB9IGZyb20gJy4vc3RhdGUtc2lnbmFsJztcbmltcG9ydCB7IElzS25vd25SZWNvcmQsIFByZXR0aWZ5IH0gZnJvbSAnLi90cy1oZWxwZXJzJztcblxuZXhwb3J0IHR5cGUgU2lnbmFsU3RvcmVDb25maWcgPSB7IHByb3ZpZGVkSW46ICdyb290JyB9O1xuXG5leHBvcnQgdHlwZSBTaWduYWxTdG9yZVNsaWNlczxTdGF0ZT4gPSBJc0tub3duUmVjb3JkPFxuICBQcmV0dGlmeTxTdGF0ZT5cbj4gZXh0ZW5kcyB0cnVlXG4gID8ge1xuICAgICAgW0tleSBpbiBrZXlvZiBTdGF0ZV06IElzS25vd25SZWNvcmQ8U3RhdGVbS2V5XT4gZXh0ZW5kcyB0cnVlXG4gICAgICAgID8gRGVlcFNpZ25hbDxTdGF0ZVtLZXldPlxuICAgICAgICA6IFNpZ25hbDxTdGF0ZVtLZXldPjtcbiAgICB9XG4gIDoge307XG5cbmV4cG9ydCB0eXBlIFNpZ25hbFN0b3JlUHJvcHM8RmVhdHVyZVJlc3VsdCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4gPVxuICBQcmV0dGlmeTxcbiAgICBTaWduYWxTdG9yZVNsaWNlczxGZWF0dXJlUmVzdWx0WydzdGF0ZSddPiAmXG4gICAgICBGZWF0dXJlUmVzdWx0WydzaWduYWxzJ10gJlxuICAgICAgRmVhdHVyZVJlc3VsdFsnbWV0aG9kcyddXG4gID47XG5cbmV4cG9ydCB0eXBlIFNpZ25hbHNEaWN0aW9uYXJ5ID0gUmVjb3JkPHN0cmluZywgU2lnbmFsPHVua25vd24+
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9zcmMvc2lnbmFsLXN0b3JlLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWVwU2lnbmFsIH0gZnJvbSAnLi9kZWVwLXNpZ25hbCc7XG5pbXBvcnQgeyBTdGF0ZVNpZ25hbCB9IGZyb20gJy4vc3RhdGUtc2lnbmFsJztcbmltcG9ydCB7IElzS25vd25SZWNvcmQsIFByZXR0aWZ5IH0gZnJvbSAnLi90cy1oZWxwZXJzJztcblxuZXhwb3J0IHR5cGUgU2lnbmFsU3RvcmVDb25maWcgPSB7IHByb3ZpZGVkSW46ICdyb290JyB9O1xuXG5leHBvcnQgdHlwZSBTaWduYWxTdG9yZVNsaWNlczxTdGF0ZT4gPSBJc0tub3duUmVjb3JkPFxuICBQcmV0dGlmeTxTdGF0ZT5cbj4gZXh0ZW5kcyB0cnVlXG4gID8ge1xuICAgICAgW0tleSBpbiBrZXlvZiBTdGF0ZV06IElzS25vd25SZWNvcmQ8U3RhdGVbS2V5XT4gZXh0ZW5kcyB0cnVlXG4gICAgICAgID8gRGVlcFNpZ25hbDxTdGF0ZVtLZXldPlxuICAgICAgICA6IFNpZ25hbDxTdGF0ZVtLZXldPjtcbiAgICB9XG4gIDoge307XG5cbmV4cG9ydCB0eXBlIFNpZ25hbFN0b3JlUHJvcHM8RmVhdHVyZVJlc3VsdCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4gPVxuICBQcmV0dGlmeTxcbiAgICBTaWduYWxTdG9yZVNsaWNlczxGZWF0dXJlUmVzdWx0WydzdGF0ZSddPiAmXG4gICAgICBGZWF0dXJlUmVzdWx0WydzaWduYWxzJ10gJlxuICAgICAgRmVhdHVyZVJlc3VsdFsnbWV0aG9kcyddXG4gID47XG5cbmV4cG9ydCB0eXBlIFNpZ25hbHNEaWN0aW9uYXJ5ID0gUmVjb3JkPHN0cmluZywgU2lnbmFsPHVua25vd24+PjtcblxuZXhwb3J0IHR5cGUgTWV0aG9kc0RpY3Rpb25hcnkgPSBSZWNvcmQ8c3RyaW5nLCBGdW5jdGlvbj47XG5cbmV4cG9ydCB0eXBlIFNpZ25hbFN0b3JlSG9va3MgPSB7XG4gIG9uSW5pdD86ICgpID0+IHZvaWQ7XG4gIG9uRGVzdHJveT86ICgpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBJbm5lclNpZ25hbFN0b3JlPFxuICBTdGF0ZSBleHRlbmRzIG9iamVjdCA9IG9iamVjdCxcbiAgU2lnbmFscyBleHRlbmRzIFNpZ25hbHNEaWN0aW9uYXJ5ID0gU2lnbmFsc0RpY3Rpb25hcnksXG4gIE1ldGhvZHMgZXh0ZW5kcyBNZXRob2RzRGljdGlvbmFyeSA9IE1ldGhvZHNEaWN0aW9uYXJ5XG4+ID0ge1xuICBzbGljZXM6IFNpZ25hbFN0b3JlU2xpY2VzPFN0YXRlPjtcbiAgc2lnbmFsczogU2lnbmFscztcbiAgbWV0aG9kczogTWV0aG9kcztcbiAgaG9va3M6IFNpZ25hbFN0b3JlSG9va3M7XG59ICYgU3RhdGVTaWduYWw8U3RhdGU+O1xuXG5leHBvcnQgdHlwZSBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQgPSB7XG4gIHN0YXRlOiBvYmplY3Q7XG4gIHNpZ25hbHM6IFNpZ25hbHNEaWN0aW9uYXJ5O1xuICBtZXRob2RzOiBNZXRob2RzRGljdGlvbmFyeTtcbn07XG5cbmV4cG9ydCB0eXBlIEVtcHR5RmVhdHVyZVJlc3VsdCA9IHsgc3RhdGU6IHt9OyBzaWduYWxzOiB7fTsgbWV0aG9kczoge30gfTtcblxuZXhwb3J0IHR5cGUgU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBJbnB1dCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCA9IFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgT3V0cHV0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0ID0gU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+ID0gKFxuICBzdG9yZTogSW5uZXJTaWduYWxTdG9yZTxJbnB1dFsnc3RhdGUnXSwgSW5wdXRbJ3NpZ25hbHMnXSwgSW5wdXRbJ21ldGhvZHMnXT5cbikgPT4gSW5uZXJTaWduYWxTdG9yZTxPdXRwdXRbJ3N0YXRlJ10sIE91dHB1dFsnc2lnbmFscyddLCBPdXRwdXRbJ21ldGhvZHMnXT47XG5cbmV4cG9ydCB0eXBlIE1lcmdlRmVhdHVyZVJlc3VsdHM8XG4gIEZlYXR1cmVSZXN1bHRzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0W11cbj4gPSBGZWF0dXJlUmVzdWx0cyBleHRlbmRzIFtdXG4gID8gRW1wdHlGZWF0dXJlUmVzdWx0XG4gIDogRmVhdHVyZVJlc3VsdHMgZXh0ZW5kcyBbaW5mZXIgRmlyc3QgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRdXG4gID8gRmlyc3RcbiAgOiBGZWF0dXJlUmVzdWx0cyBleHRlbmRzIFtcbiAgICAgIGluZmVyIEZpcnN0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICAgICAgaW5mZXIgU2Vjb25kIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4gICAgXVxuICA/IE1lcmdlVHdvRmVhdHVyZVJlc3VsdHM8Rmlyc3QsIFNlY29uZD5cbiAgOiBGZWF0dXJlUmVzdWx0cyBleHRlbmRzIFtcbiAgICAgIGluZmVyIEZpcnN0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICAgICAgaW5mZXIgU2Vjb25kIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICAgICAgLi4uaW5mZXIgUmVzdCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFtdXG4gICAgXVxuICA/IE1lcmdlRmVhdHVyZVJlc3VsdHM8W01lcmdlVHdvRmVhdHVyZVJlc3VsdHM8Rmlyc3QsIFNlY29uZD4sIC4uLlJlc3RdPlxuICA6IG5ldmVyO1xuXG50eXBlIEZlYXR1cmVSZXN1bHRLZXlzPEZlYXR1cmVSZXN1bHQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQ+ID1cbiAgfCBrZXlvZiBGZWF0dXJlUmVzdWx0WydzdGF0ZSddXG4gIHwga2V5b2YgRmVhdHVyZVJlc3VsdFsnc2lnbmFscyddXG4gIHwga2V5b2YgRmVhdHVyZVJlc3VsdFsnbWV0aG9kcyddO1xuXG50eXBlIE1lcmdlVHdvRmVhdHVyZVJlc3VsdHM8XG4gIEZpcnN0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBTZWNvbmQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4gPSB7XG4gIHN0YXRlOiBPbWl0PEZpcnN0WydzdGF0ZSddLCBGZWF0dXJlUmVzdWx0S2V5czxTZWNvbmQ+PjtcbiAgc2lnbmFsczogT21pdDxGaXJzdFsnc2lnbmFscyddLCBGZWF0dXJlUmVzdWx0S2V5czxTZWNvbmQ+PjtcbiAgbWV0aG9kczogT21pdDxGaXJzdFsnbWV0aG9kcyddLCBGZWF0dXJlUmVzdWx0S2V5czxTZWNvbmQ+Pjtcbn0gJiBTZWNvbmQ7XG4iXX0=
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { assertInInjectionContext, Injector, inject, DestroyRef, isSignal } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import { Subject, isObservable, of } from 'rxjs';
|
|
1
|
+
import { assertInInjectionContext, Injector, inject, DestroyRef, isSignal, untracked, effect } from '@angular/core';
|
|
2
|
+
import { Subject, isObservable, noop } from 'rxjs';
|
|
4
3
|
|
|
5
4
|
function rxMethod(generator, config) {
|
|
6
5
|
if (!config?.injector) {
|
|
@@ -12,19 +11,22 @@ function rxMethod(generator, config) {
|
|
|
12
11
|
const sourceSub = generator(source$).subscribe();
|
|
13
12
|
destroyRef.onDestroy(() => sourceSub.unsubscribe());
|
|
14
13
|
const rxMethodFn = (input) => {
|
|
15
|
-
let input$;
|
|
16
14
|
if (isSignal(input)) {
|
|
17
|
-
|
|
15
|
+
const watcher = effect(() => {
|
|
16
|
+
const value = input();
|
|
17
|
+
untracked(() => source$.next(value));
|
|
18
|
+
}, { injector });
|
|
19
|
+
const instanceSub = { unsubscribe: () => watcher.destroy() };
|
|
20
|
+
sourceSub.add(instanceSub);
|
|
21
|
+
return instanceSub;
|
|
18
22
|
}
|
|
19
|
-
|
|
20
|
-
|
|
23
|
+
if (isObservable(input)) {
|
|
24
|
+
const instanceSub = input.subscribe((value) => source$.next(value));
|
|
25
|
+
sourceSub.add(instanceSub);
|
|
26
|
+
return instanceSub;
|
|
21
27
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
const instanceSub = input$.subscribe((value) => source$.next(value));
|
|
26
|
-
sourceSub.add(instanceSub);
|
|
27
|
-
return instanceSub;
|
|
28
|
+
source$.next(input);
|
|
29
|
+
return { unsubscribe: noop };
|
|
28
30
|
};
|
|
29
31
|
rxMethodFn.unsubscribe = sourceSub.unsubscribe.bind(sourceSub);
|
|
30
32
|
return rxMethodFn;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngrx-signals-rxjs-interop.mjs","sources":["../../../../modules/signals/rxjs-interop/src/rx-method.ts","../../../../modules/signals/rxjs-interop/ngrx-signals-rxjs-interop.ts"],"sourcesContent":["import {\n assertInInjectionContext,\n DestroyRef,\n inject,\n Injector,\n isSignal,\n Signal,\n} from '@angular/core';\nimport {
|
|
1
|
+
{"version":3,"file":"ngrx-signals-rxjs-interop.mjs","sources":["../../../../modules/signals/rxjs-interop/src/rx-method.ts","../../../../modules/signals/rxjs-interop/ngrx-signals-rxjs-interop.ts"],"sourcesContent":["import {\n assertInInjectionContext,\n DestroyRef,\n effect,\n inject,\n Injector,\n isSignal,\n Signal,\n untracked,\n} from '@angular/core';\nimport { isObservable, noop, Observable, Subject, Unsubscribable } from 'rxjs';\n\ntype RxMethodInput<Input> = Input | Observable<Input> | Signal<Input>;\n\ntype RxMethod<Input> = ((input: RxMethodInput<Input>) => Unsubscribable) &\n Unsubscribable;\n\nexport function rxMethod<Input>(\n generator: (source$: Observable<Input>) => Observable<unknown>,\n config?: { injector?: Injector }\n): RxMethod<Input> {\n if (!config?.injector) {\n assertInInjectionContext(rxMethod);\n }\n\n const injector = config?.injector ?? inject(Injector);\n const destroyRef = injector.get(DestroyRef);\n const source$ = new Subject<Input>();\n\n const sourceSub = generator(source$).subscribe();\n destroyRef.onDestroy(() => sourceSub.unsubscribe());\n\n const rxMethodFn = (input: RxMethodInput<Input>) => {\n if (isSignal(input)) {\n const watcher = effect(\n () => {\n const value = input();\n untracked(() => source$.next(value));\n },\n { injector }\n );\n const instanceSub = { unsubscribe: () => watcher.destroy() };\n sourceSub.add(instanceSub);\n\n return instanceSub;\n }\n\n if (isObservable(input)) {\n const instanceSub = input.subscribe((value) => source$.next(value));\n sourceSub.add(instanceSub);\n\n return instanceSub;\n }\n\n source$.next(input);\n return { unsubscribe: noop };\n };\n rxMethodFn.unsubscribe = sourceSub.unsubscribe.bind(sourceSub);\n\n return rxMethodFn;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAiBgB,SAAA,QAAQ,CACtB,SAA8D,EAC9D,MAAgC,EAAA;AAEhC,IAAA,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE;QACrB,wBAAwB,CAAC,QAAQ,CAAC,CAAC;AACpC,KAAA;IAED,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC5C,IAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAS,CAAC;IAErC,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC;IACjD,UAAU,CAAC,SAAS,CAAC,MAAM,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;AAEpD,IAAA,MAAM,UAAU,GAAG,CAAC,KAA2B,KAAI;AACjD,QAAA,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;AACnB,YAAA,MAAM,OAAO,GAAG,MAAM,CACpB,MAAK;AACH,gBAAA,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;gBACtB,SAAS,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,aAAC,EACD,EAAE,QAAQ,EAAE,CACb,CAAC;AACF,YAAA,MAAM,WAAW,GAAG,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AAC7D,YAAA,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAE3B,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;AAED,QAAA,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;AACvB,YAAA,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,YAAA,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAE3B,YAAA,OAAO,WAAW,CAAC;AACpB,SAAA;AAED,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpB,QAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/B,KAAC,CAAC;IACF,UAAU,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAE/D,IAAA,OAAO,UAAU,CAAC;AACpB;;AC5DA;;AAEG;;;;"}
|
|
@@ -100,7 +100,12 @@ function type() {
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
function excludeKeys(obj, keys) {
|
|
103
|
-
return Object.keys(obj).reduce((acc, key) =>
|
|
103
|
+
return Object.keys(obj).reduce((acc, key) => {
|
|
104
|
+
if (!keys.includes(key)) {
|
|
105
|
+
acc[key] = obj[key];
|
|
106
|
+
}
|
|
107
|
+
return acc;
|
|
108
|
+
}, {});
|
|
104
109
|
}
|
|
105
110
|
|
|
106
111
|
function withComputed(signalsFactory) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngrx-signals.mjs","sources":["../../../../modules/signals/src/state-signal.ts","../../../../modules/signals/src/get-state.ts","../../../../modules/signals/src/patch-state.ts","../../../../modules/signals/src/deep-signal.ts","../../../../modules/signals/src/signal-state.ts","../../../../modules/signals/src/signal-store.ts","../../../../modules/signals/src/signal-store-feature.ts","../../../../modules/signals/src/helpers.ts","../../../../modules/signals/src/with-computed.ts","../../../../modules/signals/src/with-hooks.ts","../../../../modules/signals/src/with-methods.ts","../../../../modules/signals/src/with-state.ts","../../../../modules/signals/ngrx-signals.ts"],"sourcesContent":["import { WritableSignal } from '@angular/core';\n\nexport const STATE_SIGNAL = Symbol('STATE_SIGNAL');\n\nexport type StateSignal<State extends object> = {\n [STATE_SIGNAL]: WritableSignal<State>;\n};\n","import { STATE_SIGNAL, StateSignal } from './state-signal';\n\nexport function getState<State extends object>(\n stateSignal: StateSignal<State>\n): State {\n return stateSignal[STATE_SIGNAL]();\n}\n","import { STATE_SIGNAL, StateSignal } from './state-signal';\n\nexport type PartialStateUpdater<State extends object> = (\n state: State\n) => Partial<State>;\n\nexport function patchState<State extends object>(\n stateSignal: StateSignal<State>,\n ...updaters: Array<Partial<State & {}> | PartialStateUpdater<State & {}>>\n): void {\n stateSignal[STATE_SIGNAL].update((currentState) =>\n updaters.reduce(\n (nextState: State, updater) => ({\n ...nextState,\n ...(typeof updater === 'function' ? updater(nextState) : updater),\n }),\n currentState\n )\n );\n}\n","import {\n computed,\n isSignal,\n Signal as NgSignal,\n untracked,\n} from '@angular/core';\nimport { IsKnownRecord } from './ts-helpers';\n\n// An extended Signal type that enables the correct typing\n// of nested signals with the `name` or `length` key.\nexport interface Signal<T> extends NgSignal<T> {\n name: unknown;\n length: unknown;\n}\n\nexport type DeepSignal<T> = Signal<T> &\n (IsKnownRecord<T> extends true\n ? Readonly<{\n [K in keyof T]: IsKnownRecord<T[K]> extends true\n ? DeepSignal<T[K]>\n : Signal<T[K]>;\n }>\n : unknown);\n\nexport function toDeepSignal<T>(signal: Signal<T>): DeepSignal<T> {\n const value = untracked(() => signal());\n if (!isRecord(value)) {\n return signal as DeepSignal<T>;\n }\n\n return new Proxy(signal, {\n get(target: any, prop) {\n if (!(prop in value)) {\n return target[prop];\n }\n\n if (!isSignal(target[prop])) {\n Object.defineProperty(target, prop, {\n value: computed(() => target()[prop]),\n configurable: true,\n });\n }\n\n return toDeepSignal(target[prop]);\n },\n });\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value?.constructor === Object;\n}\n","import { signal } from '@angular/core';\nimport { STATE_SIGNAL, StateSignal } from './state-signal';\nimport { DeepSignal, toDeepSignal } from './deep-signal';\n\ntype SignalState<State extends object> = DeepSignal<State> & StateSignal<State>;\n\nexport function signalState<State extends object>(\n initialState: State\n): SignalState<State> {\n const stateSignal = signal(initialState as State);\n const deepSignal = toDeepSignal(stateSignal.asReadonly());\n Object.defineProperty(deepSignal, STATE_SIGNAL, {\n value: stateSignal,\n });\n\n return deepSignal as SignalState<State>;\n}\n","import { DestroyRef, inject, Injectable, signal, Type } from '@angular/core';\nimport { STATE_SIGNAL, StateSignal } from './state-signal';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n MergeFeatureResults,\n SignalStoreConfig,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n SignalStoreProps,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function signalStore<F1 extends SignalStoreFeatureResult>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>\n): Type<SignalStoreProps<F1> & StateSignal<Prettify<F1['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2]>\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2, F3]>\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2, F3, F4]>\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2, F3, F4, F5]>\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6]\n >\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6, F7]\n >\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6, F7, F8]\n >\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult,\n F9 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6, F7, F8, F9]\n >\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>,\n f9: SignalStoreFeature<\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8]>,\n F9\n >\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\n\nexport function signalStore<F1 extends SignalStoreFeatureResult>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>\n): Type<SignalStoreProps<F1> & StateSignal<Prettify<F1['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2]>\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2, F3]>\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2, F3, F4]>\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2, F3, F4, F5]>\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6]\n >\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6, F7]\n >\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6, F7, F8]\n >\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult,\n F9 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6, F7, F8, F9]\n >\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>,\n f9: SignalStoreFeature<\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8]>,\n F9\n >\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\n\nexport function signalStore(\n ...args: [SignalStoreConfig, ...SignalStoreFeature[]] | SignalStoreFeature[]\n): Type<SignalStoreProps<any>> {\n const signalStoreArgs = [...args];\n\n const config: Partial<SignalStoreConfig> =\n 'providedIn' in signalStoreArgs[0]\n ? (signalStoreArgs.shift() as SignalStoreConfig)\n : {};\n const features = signalStoreArgs as SignalStoreFeature[];\n\n @Injectable({ providedIn: config.providedIn || null })\n class SignalStore {\n constructor() {\n const innerStore = features.reduce(\n (store, feature) => feature(store),\n getInitialInnerStore()\n );\n const { slices, signals, methods, hooks } = innerStore;\n const props = { ...slices, ...signals, ...methods };\n\n (this as any)[STATE_SIGNAL] = innerStore[STATE_SIGNAL];\n\n for (const key in props) {\n (this as any)[key] = props[key];\n }\n\n const { onInit, onDestroy } = hooks;\n\n if (onInit) {\n onInit();\n }\n\n if (onDestroy) {\n inject(DestroyRef).onDestroy(onDestroy);\n }\n }\n }\n\n return SignalStore;\n}\n\nexport function getInitialInnerStore(): InnerSignalStore {\n return {\n [STATE_SIGNAL]: signal({}),\n slices: {},\n signals: {},\n methods: {},\n hooks: {},\n };\n}\n","import {\n EmptyFeatureResult,\n MergeFeatureResults,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function signalStoreFeature<F1 extends SignalStoreFeatureResult>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>\n): SignalStoreFeature<EmptyFeatureResult, F1>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>\n): SignalStoreFeature<EmptyFeatureResult, MergeFeatureResults<[F1, F2]>>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>\n): SignalStoreFeature<EmptyFeatureResult, MergeFeatureResults<[F1, F2, F3]>>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>\n): SignalStoreFeature<\n EmptyFeatureResult,\n MergeFeatureResults<[F1, F2, F3, F4]>\n>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>\n): SignalStoreFeature<\n EmptyFeatureResult,\n MergeFeatureResults<[F1, F2, F3, F4, F5]>\n>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>\n): SignalStoreFeature<\n EmptyFeatureResult,\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>\n>;\n\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>\n): SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult\n>(\n Input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >,\n f4: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3]>,\n F4\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3, F4]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >,\n f4: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3]>,\n F4\n >,\n f5: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3, F4]>,\n F5\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3, F4, F5]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >,\n f4: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3]>,\n F4\n >,\n f5: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3, F4]>,\n F5\n >,\n f6: SignalStoreFeature<\n MergeFeatureResults<\n [Prettify<EmptyFeatureResult & Input>, F1, F2, F3, F4, F5]\n >,\n F6\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>\n>;\n\nexport function signalStoreFeature(\n featureOrInput: SignalStoreFeature | Partial<SignalStoreFeatureResult>,\n ...restFeatures: SignalStoreFeature[]\n): SignalStoreFeature {\n const features =\n typeof featureOrInput === 'function'\n ? [featureOrInput, ...restFeatures]\n : restFeatures;\n\n return (inputStore) =>\n features.reduce((store, feature) => feature(store), inputStore);\n}\n\nexport function type<T>(): T {\n return undefined as T;\n}\n","export function excludeKeys<\n Obj extends Record<string, unknown>,\n Keys extends string[]\n>(obj: Obj, keys: Keys): Omit<Obj, Keys[number]> {\n return Object.keys(obj).reduce(\n (acc, key) => (keys.includes(key) ? acc : { ...acc, [key]: obj[key] }),\n {}\n ) as Omit<Obj, Keys[number]>;\n}\n","import { excludeKeys } from './helpers';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n SignalsDictionary,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n SignalStoreSlices,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function withComputed<\n Input extends SignalStoreFeatureResult,\n Signals extends SignalsDictionary\n>(\n signalsFactory: (\n store: Prettify<SignalStoreSlices<Input['state']> & Input['signals']>\n ) => Signals\n): SignalStoreFeature<Input, EmptyFeatureResult & { signals: Signals }> {\n return (store) => {\n const signals = signalsFactory({ ...store.slices, ...store.signals });\n const signalsKeys = Object.keys(signals);\n const slices = excludeKeys(store.slices, signalsKeys);\n const methods = excludeKeys(store.methods, signalsKeys);\n\n return {\n ...store,\n slices,\n signals: { ...store.signals, ...signals },\n methods,\n } as InnerSignalStore<Record<string, unknown>, Signals>;\n };\n}\n","import { STATE_SIGNAL, StateSignal } from './state-signal';\nimport {\n EmptyFeatureResult,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n SignalStoreSlices,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\ntype HookFn<Input extends SignalStoreFeatureResult> = (\n store: Prettify<\n SignalStoreSlices<Input['state']> &\n Input['signals'] &\n Input['methods'] &\n StateSignal<Prettify<Input['state']>>\n >\n) => void;\n\ntype HooksFactory<Input extends SignalStoreFeatureResult> = (\n store: Prettify<\n SignalStoreSlices<Input['state']> &\n Input['signals'] &\n Input['methods'] &\n StateSignal<Prettify<Input['state']>>\n >\n) => {\n onInit?: () => void;\n onDestroy?: () => void;\n};\n\nexport function withHooks<Input extends SignalStoreFeatureResult>(hooks: {\n onInit?: HookFn<Input>;\n onDestroy?: HookFn<Input>;\n}): SignalStoreFeature<Input, EmptyFeatureResult>;\nexport function withHooks<Input extends SignalStoreFeatureResult>(\n hooks: HooksFactory<Input>\n): SignalStoreFeature<Input, EmptyFeatureResult>;\n\nexport function withHooks<Input extends SignalStoreFeatureResult>(\n hooksOrFactory:\n | {\n onInit?: HookFn<Input>;\n onDestroy?: HookFn<Input>;\n }\n | HooksFactory<Input>\n): SignalStoreFeature<Input, EmptyFeatureResult> {\n return (store) => {\n const storeProps = {\n [STATE_SIGNAL]: store[STATE_SIGNAL],\n ...store.slices,\n ...store.signals,\n ...store.methods,\n };\n const hooks =\n typeof hooksOrFactory === 'function'\n ? hooksOrFactory(storeProps)\n : hooksOrFactory;\n const createHook = (name: keyof typeof hooks) => {\n const hook = hooks[name];\n const currentHook = store.hooks[name];\n\n return hook\n ? () => {\n if (currentHook) {\n currentHook();\n }\n\n hook(storeProps);\n }\n : currentHook;\n };\n\n return {\n ...store,\n hooks: {\n onInit: createHook('onInit'),\n onDestroy: createHook('onDestroy'),\n },\n };\n };\n}\n","import { excludeKeys } from './helpers';\nimport { STATE_SIGNAL, StateSignal } from './state-signal';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n MethodsDictionary,\n SignalsDictionary,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n SignalStoreSlices,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function withMethods<\n Input extends SignalStoreFeatureResult,\n Methods extends MethodsDictionary\n>(\n methodsFactory: (\n store: Prettify<\n SignalStoreSlices<Input['state']> &\n Input['signals'] &\n Input['methods'] &\n StateSignal<Prettify<Input['state']>>\n >\n ) => Methods\n): SignalStoreFeature<Input, EmptyFeatureResult & { methods: Methods }> {\n return (store) => {\n const methods = methodsFactory({\n [STATE_SIGNAL]: store[STATE_SIGNAL],\n ...store.slices,\n ...store.signals,\n ...store.methods,\n });\n const methodsKeys = Object.keys(methods);\n const slices = excludeKeys(store.slices, methodsKeys);\n const signals = excludeKeys(store.signals, methodsKeys);\n\n return {\n ...store,\n slices,\n signals,\n methods: { ...store.methods, ...methods },\n } as InnerSignalStore<Record<string, unknown>, SignalsDictionary, Methods>;\n };\n}\n","import { computed } from '@angular/core';\nimport { toDeepSignal } from './deep-signal';\nimport { excludeKeys } from './helpers';\nimport { STATE_SIGNAL } from './state-signal';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n SignalsDictionary,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n} from './signal-store-models';\n\nexport function withState<State extends object>(\n stateFactory: () => State\n): SignalStoreFeature<\n EmptyFeatureResult,\n EmptyFeatureResult & { state: State }\n>;\nexport function withState<State extends object>(\n state: State\n): SignalStoreFeature<\n EmptyFeatureResult,\n EmptyFeatureResult & { state: State }\n>;\nexport function withState<State extends object>(\n stateOrFactory: State | (() => State)\n): SignalStoreFeature<\n SignalStoreFeatureResult,\n EmptyFeatureResult & { state: State }\n> {\n return (store) => {\n const state =\n typeof stateOrFactory === 'function' ? stateOrFactory() : stateOrFactory;\n const stateKeys = Object.keys(state);\n\n store[STATE_SIGNAL].update((currentState) => ({\n ...currentState,\n ...state,\n }));\n\n const slices = stateKeys.reduce((acc, key) => {\n const slice = computed(\n () => (store[STATE_SIGNAL]() as Record<string, unknown>)[key]\n );\n return { ...acc, [key]: toDeepSignal(slice) };\n }, {} as SignalsDictionary);\n const signals = excludeKeys(store.signals, stateKeys);\n const methods = excludeKeys(store.methods, stateKeys);\n\n return {\n ...store,\n slices: { ...store.slices, ...slices },\n signals,\n methods,\n } as InnerSignalStore<State>;\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngrx-signals.mjs","sources":["../../../../modules/signals/src/state-signal.ts","../../../../modules/signals/src/get-state.ts","../../../../modules/signals/src/patch-state.ts","../../../../modules/signals/src/deep-signal.ts","../../../../modules/signals/src/signal-state.ts","../../../../modules/signals/src/signal-store.ts","../../../../modules/signals/src/signal-store-feature.ts","../../../../modules/signals/src/helpers.ts","../../../../modules/signals/src/with-computed.ts","../../../../modules/signals/src/with-hooks.ts","../../../../modules/signals/src/with-methods.ts","../../../../modules/signals/src/with-state.ts","../../../../modules/signals/ngrx-signals.ts"],"sourcesContent":["import { WritableSignal } from '@angular/core';\n\nexport const STATE_SIGNAL = Symbol('STATE_SIGNAL');\n\nexport type StateSignal<State extends object> = {\n [STATE_SIGNAL]: WritableSignal<State>;\n};\n","import { STATE_SIGNAL, StateSignal } from './state-signal';\n\nexport function getState<State extends object>(\n stateSignal: StateSignal<State>\n): State {\n return stateSignal[STATE_SIGNAL]();\n}\n","import { STATE_SIGNAL, StateSignal } from './state-signal';\n\nexport type PartialStateUpdater<State extends object> = (\n state: State\n) => Partial<State>;\n\nexport function patchState<State extends object>(\n stateSignal: StateSignal<State>,\n ...updaters: Array<Partial<State & {}> | PartialStateUpdater<State & {}>>\n): void {\n stateSignal[STATE_SIGNAL].update((currentState) =>\n updaters.reduce(\n (nextState: State, updater) => ({\n ...nextState,\n ...(typeof updater === 'function' ? updater(nextState) : updater),\n }),\n currentState\n )\n );\n}\n","import {\n computed,\n isSignal,\n Signal as NgSignal,\n untracked,\n} from '@angular/core';\nimport { IsKnownRecord } from './ts-helpers';\n\n// An extended Signal type that enables the correct typing\n// of nested signals with the `name` or `length` key.\nexport interface Signal<T> extends NgSignal<T> {\n name: unknown;\n length: unknown;\n}\n\nexport type DeepSignal<T> = Signal<T> &\n (IsKnownRecord<T> extends true\n ? Readonly<{\n [K in keyof T]: IsKnownRecord<T[K]> extends true\n ? DeepSignal<T[K]>\n : Signal<T[K]>;\n }>\n : unknown);\n\nexport function toDeepSignal<T>(signal: Signal<T>): DeepSignal<T> {\n const value = untracked(() => signal());\n if (!isRecord(value)) {\n return signal as DeepSignal<T>;\n }\n\n return new Proxy(signal, {\n get(target: any, prop) {\n if (!(prop in value)) {\n return target[prop];\n }\n\n if (!isSignal(target[prop])) {\n Object.defineProperty(target, prop, {\n value: computed(() => target()[prop]),\n configurable: true,\n });\n }\n\n return toDeepSignal(target[prop]);\n },\n });\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value?.constructor === Object;\n}\n","import { signal } from '@angular/core';\nimport { STATE_SIGNAL, StateSignal } from './state-signal';\nimport { DeepSignal, toDeepSignal } from './deep-signal';\n\ntype SignalState<State extends object> = DeepSignal<State> & StateSignal<State>;\n\nexport function signalState<State extends object>(\n initialState: State\n): SignalState<State> {\n const stateSignal = signal(initialState as State);\n const deepSignal = toDeepSignal(stateSignal.asReadonly());\n Object.defineProperty(deepSignal, STATE_SIGNAL, {\n value: stateSignal,\n });\n\n return deepSignal as SignalState<State>;\n}\n","import { DestroyRef, inject, Injectable, signal, Type } from '@angular/core';\nimport { STATE_SIGNAL, StateSignal } from './state-signal';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n MergeFeatureResults,\n SignalStoreConfig,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n SignalStoreProps,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function signalStore<F1 extends SignalStoreFeatureResult>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>\n): Type<SignalStoreProps<F1> & StateSignal<Prettify<F1['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2]>\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2, F3]>\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2, F3, F4]>\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2, F3, F4, F5]>\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6]\n >\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6, F7]\n >\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6, F7, F8]\n >\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult,\n F9 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6, F7, F8, F9]\n >\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>,\n f9: SignalStoreFeature<\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8]>,\n F9\n >\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\n\nexport function signalStore<F1 extends SignalStoreFeatureResult>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>\n): Type<SignalStoreProps<F1> & StateSignal<Prettify<F1['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2]>\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2, F3]>\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2, F3, F4]>\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<[F1, F2, F3, F4, F5]>\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6]\n >\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6, F7]\n >\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6, F7, F8]\n >\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\nexport function signalStore<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult,\n F7 extends SignalStoreFeatureResult,\n F8 extends SignalStoreFeatureResult,\n F9 extends SignalStoreFeatureResult,\n R extends SignalStoreFeatureResult = MergeFeatureResults<\n [F1, F2, F3, F4, F5, F6, F7, F8, F9]\n >\n>(\n config: SignalStoreConfig,\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>,\n f7: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>, F7>,\n f8: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7]>, F8>,\n f9: SignalStoreFeature<\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6, F7, F8]>,\n F9\n >\n): Type<SignalStoreProps<R> & StateSignal<Prettify<R['state']>>>;\n\nexport function signalStore(\n ...args: [SignalStoreConfig, ...SignalStoreFeature[]] | SignalStoreFeature[]\n): Type<SignalStoreProps<any>> {\n const signalStoreArgs = [...args];\n\n const config: Partial<SignalStoreConfig> =\n 'providedIn' in signalStoreArgs[0]\n ? (signalStoreArgs.shift() as SignalStoreConfig)\n : {};\n const features = signalStoreArgs as SignalStoreFeature[];\n\n @Injectable({ providedIn: config.providedIn || null })\n class SignalStore {\n constructor() {\n const innerStore = features.reduce(\n (store, feature) => feature(store),\n getInitialInnerStore()\n );\n const { slices, signals, methods, hooks } = innerStore;\n const props = { ...slices, ...signals, ...methods };\n\n (this as any)[STATE_SIGNAL] = innerStore[STATE_SIGNAL];\n\n for (const key in props) {\n (this as any)[key] = props[key];\n }\n\n const { onInit, onDestroy } = hooks;\n\n if (onInit) {\n onInit();\n }\n\n if (onDestroy) {\n inject(DestroyRef).onDestroy(onDestroy);\n }\n }\n }\n\n return SignalStore;\n}\n\nexport function getInitialInnerStore(): InnerSignalStore {\n return {\n [STATE_SIGNAL]: signal({}),\n slices: {},\n signals: {},\n methods: {},\n hooks: {},\n };\n}\n","import {\n EmptyFeatureResult,\n MergeFeatureResults,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function signalStoreFeature<F1 extends SignalStoreFeatureResult>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>\n): SignalStoreFeature<EmptyFeatureResult, F1>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>\n): SignalStoreFeature<EmptyFeatureResult, MergeFeatureResults<[F1, F2]>>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>\n): SignalStoreFeature<EmptyFeatureResult, MergeFeatureResults<[F1, F2, F3]>>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>\n): SignalStoreFeature<\n EmptyFeatureResult,\n MergeFeatureResults<[F1, F2, F3, F4]>\n>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>\n): SignalStoreFeature<\n EmptyFeatureResult,\n MergeFeatureResults<[F1, F2, F3, F4, F5]>\n>;\nexport function signalStoreFeature<\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult\n>(\n f1: SignalStoreFeature<EmptyFeatureResult, F1>,\n f2: SignalStoreFeature<{} & F1, F2>,\n f3: SignalStoreFeature<MergeFeatureResults<[F1, F2]>, F3>,\n f4: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3]>, F4>,\n f5: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4]>, F5>,\n f6: SignalStoreFeature<MergeFeatureResults<[F1, F2, F3, F4, F5]>, F6>\n): SignalStoreFeature<\n EmptyFeatureResult,\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>\n>;\n\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>\n): SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult\n>(\n Input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >,\n f4: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3]>,\n F4\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3, F4]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >,\n f4: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3]>,\n F4\n >,\n f5: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3, F4]>,\n F5\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3, F4, F5]>\n>;\nexport function signalStoreFeature<\n Input extends Partial<SignalStoreFeatureResult>,\n F1 extends SignalStoreFeatureResult,\n F2 extends SignalStoreFeatureResult,\n F3 extends SignalStoreFeatureResult,\n F4 extends SignalStoreFeatureResult,\n F5 extends SignalStoreFeatureResult,\n F6 extends SignalStoreFeatureResult\n>(\n input: Input,\n f1: SignalStoreFeature<Prettify<EmptyFeatureResult & Input>, F1>,\n f2: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1]>,\n F2\n >,\n f3: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2]>,\n F3\n >,\n f4: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3]>,\n F4\n >,\n f5: SignalStoreFeature<\n MergeFeatureResults<[Prettify<EmptyFeatureResult & Input>, F1, F2, F3, F4]>,\n F5\n >,\n f6: SignalStoreFeature<\n MergeFeatureResults<\n [Prettify<EmptyFeatureResult & Input>, F1, F2, F3, F4, F5]\n >,\n F6\n >\n): SignalStoreFeature<\n Prettify<EmptyFeatureResult & Input>,\n MergeFeatureResults<[F1, F2, F3, F4, F5, F6]>\n>;\n\nexport function signalStoreFeature(\n featureOrInput: SignalStoreFeature | Partial<SignalStoreFeatureResult>,\n ...restFeatures: SignalStoreFeature[]\n): SignalStoreFeature {\n const features =\n typeof featureOrInput === 'function'\n ? [featureOrInput, ...restFeatures]\n : restFeatures;\n\n return (inputStore) =>\n features.reduce((store, feature) => feature(store), inputStore);\n}\n\nexport function type<T>(): T {\n return undefined as T;\n}\n","export function excludeKeys<\n Obj extends Record<string, unknown>,\n Keys extends string[]\n>(obj: Obj, keys: Keys): Omit<Obj, Keys[number]> {\n return Object.keys(obj).reduce<Record<string, unknown>>((acc, key) => {\n if (!keys.includes(key)) {\n acc[key] = obj[key];\n }\n return acc;\n }, {}) as Omit<Obj, Keys[number]>;\n}\n","import { excludeKeys } from './helpers';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n SignalsDictionary,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n SignalStoreSlices,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function withComputed<\n Input extends SignalStoreFeatureResult,\n Signals extends SignalsDictionary\n>(\n signalsFactory: (\n store: Prettify<SignalStoreSlices<Input['state']> & Input['signals']>\n ) => Signals\n): SignalStoreFeature<Input, EmptyFeatureResult & { signals: Signals }> {\n return (store) => {\n const signals = signalsFactory({ ...store.slices, ...store.signals });\n const signalsKeys = Object.keys(signals);\n const slices = excludeKeys(store.slices, signalsKeys);\n const methods = excludeKeys(store.methods, signalsKeys);\n\n return {\n ...store,\n slices,\n signals: { ...store.signals, ...signals },\n methods,\n } as InnerSignalStore<Record<string, unknown>, Signals>;\n };\n}\n","import { STATE_SIGNAL, StateSignal } from './state-signal';\nimport {\n EmptyFeatureResult,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n SignalStoreSlices,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\ntype HookFn<Input extends SignalStoreFeatureResult> = (\n store: Prettify<\n SignalStoreSlices<Input['state']> &\n Input['signals'] &\n Input['methods'] &\n StateSignal<Prettify<Input['state']>>\n >\n) => void;\n\ntype HooksFactory<Input extends SignalStoreFeatureResult> = (\n store: Prettify<\n SignalStoreSlices<Input['state']> &\n Input['signals'] &\n Input['methods'] &\n StateSignal<Prettify<Input['state']>>\n >\n) => {\n onInit?: () => void;\n onDestroy?: () => void;\n};\n\nexport function withHooks<Input extends SignalStoreFeatureResult>(hooks: {\n onInit?: HookFn<Input>;\n onDestroy?: HookFn<Input>;\n}): SignalStoreFeature<Input, EmptyFeatureResult>;\nexport function withHooks<Input extends SignalStoreFeatureResult>(\n hooks: HooksFactory<Input>\n): SignalStoreFeature<Input, EmptyFeatureResult>;\n\nexport function withHooks<Input extends SignalStoreFeatureResult>(\n hooksOrFactory:\n | {\n onInit?: HookFn<Input>;\n onDestroy?: HookFn<Input>;\n }\n | HooksFactory<Input>\n): SignalStoreFeature<Input, EmptyFeatureResult> {\n return (store) => {\n const storeProps = {\n [STATE_SIGNAL]: store[STATE_SIGNAL],\n ...store.slices,\n ...store.signals,\n ...store.methods,\n };\n const hooks =\n typeof hooksOrFactory === 'function'\n ? hooksOrFactory(storeProps)\n : hooksOrFactory;\n const createHook = (name: keyof typeof hooks) => {\n const hook = hooks[name];\n const currentHook = store.hooks[name];\n\n return hook\n ? () => {\n if (currentHook) {\n currentHook();\n }\n\n hook(storeProps);\n }\n : currentHook;\n };\n\n return {\n ...store,\n hooks: {\n onInit: createHook('onInit'),\n onDestroy: createHook('onDestroy'),\n },\n };\n };\n}\n","import { excludeKeys } from './helpers';\nimport { STATE_SIGNAL, StateSignal } from './state-signal';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n MethodsDictionary,\n SignalsDictionary,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n SignalStoreSlices,\n} from './signal-store-models';\nimport { Prettify } from './ts-helpers';\n\nexport function withMethods<\n Input extends SignalStoreFeatureResult,\n Methods extends MethodsDictionary\n>(\n methodsFactory: (\n store: Prettify<\n SignalStoreSlices<Input['state']> &\n Input['signals'] &\n Input['methods'] &\n StateSignal<Prettify<Input['state']>>\n >\n ) => Methods\n): SignalStoreFeature<Input, EmptyFeatureResult & { methods: Methods }> {\n return (store) => {\n const methods = methodsFactory({\n [STATE_SIGNAL]: store[STATE_SIGNAL],\n ...store.slices,\n ...store.signals,\n ...store.methods,\n });\n const methodsKeys = Object.keys(methods);\n const slices = excludeKeys(store.slices, methodsKeys);\n const signals = excludeKeys(store.signals, methodsKeys);\n\n return {\n ...store,\n slices,\n signals,\n methods: { ...store.methods, ...methods },\n } as InnerSignalStore<Record<string, unknown>, SignalsDictionary, Methods>;\n };\n}\n","import { computed } from '@angular/core';\nimport { toDeepSignal } from './deep-signal';\nimport { excludeKeys } from './helpers';\nimport { STATE_SIGNAL } from './state-signal';\nimport {\n EmptyFeatureResult,\n InnerSignalStore,\n SignalsDictionary,\n SignalStoreFeature,\n SignalStoreFeatureResult,\n} from './signal-store-models';\n\nexport function withState<State extends object>(\n stateFactory: () => State\n): SignalStoreFeature<\n EmptyFeatureResult,\n EmptyFeatureResult & { state: State }\n>;\nexport function withState<State extends object>(\n state: State\n): SignalStoreFeature<\n EmptyFeatureResult,\n EmptyFeatureResult & { state: State }\n>;\nexport function withState<State extends object>(\n stateOrFactory: State | (() => State)\n): SignalStoreFeature<\n SignalStoreFeatureResult,\n EmptyFeatureResult & { state: State }\n> {\n return (store) => {\n const state =\n typeof stateOrFactory === 'function' ? stateOrFactory() : stateOrFactory;\n const stateKeys = Object.keys(state);\n\n store[STATE_SIGNAL].update((currentState) => ({\n ...currentState,\n ...state,\n }));\n\n const slices = stateKeys.reduce((acc, key) => {\n const slice = computed(\n () => (store[STATE_SIGNAL]() as Record<string, unknown>)[key]\n );\n return { ...acc, [key]: toDeepSignal(slice) };\n }, {} as SignalsDictionary);\n const signals = excludeKeys(store.signals, stateKeys);\n const methods = excludeKeys(store.methods, stateKeys);\n\n return {\n ...store,\n slices: { ...store.slices, ...slices },\n signals,\n methods,\n } as InnerSignalStore<State>;\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEO,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;;ACA5C,SAAU,QAAQ,CACtB,WAA+B,EAAA;AAE/B,IAAA,OAAO,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;AACrC;;SCAgB,UAAU,CACxB,WAA+B,EAC/B,GAAG,QAAsE,EAAA;IAEzE,WAAW,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,KAC5C,QAAQ,CAAC,MAAM,CACb,CAAC,SAAgB,EAAE,OAAO,MAAM;AAC9B,QAAA,GAAG,SAAS;AACZ,QAAA,IAAI,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO;AACjE,KAAA,CAAC,EACF,YAAY,CACb,CACF,CAAC;AACJ;;ACKM,SAAU,YAAY,CAAI,MAAiB,EAAA;IAC/C,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;AACxC,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACpB,QAAA,OAAO,MAAuB,CAAC;AAChC,KAAA;AAED,IAAA,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,MAAW,EAAE,IAAI,EAAA;AACnB,YAAA,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,EAAE;AACpB,gBAAA,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACrB,aAAA;YAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;AAC3B,gBAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE;oBAClC,KAAK,EAAE,QAAQ,CAAC,MAAM,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;AACrC,oBAAA,YAAY,EAAE,IAAI;AACnB,iBAAA,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SACnC;AACF,KAAA,CAAC,CAAC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAA;AAC9B,IAAA,OAAO,KAAK,EAAE,WAAW,KAAK,MAAM,CAAC;AACvC;;AC5CM,SAAU,WAAW,CACzB,YAAmB,EAAA;AAEnB,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,YAAqB,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,EAAE;AAC9C,QAAA,KAAK,EAAE,WAAW;AACnB,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,UAAgC,CAAC;AAC1C;;ACoRgB,SAAA,WAAW,CACzB,GAAG,IAAyE,EAAA;AAE5E,IAAA,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;AAElC,IAAA,MAAM,MAAM,GACV,YAAY,IAAI,eAAe,CAAC,CAAC,CAAC;AAChC,UAAG,eAAe,CAAC,KAAK,EAAwB;UAC9C,EAAE,CAAC;IACT,MAAM,QAAQ,GAAG,eAAuC,CAAC;AAEzD,IAAA,MACM,WAAW,CAAA;AACf,QAAA,WAAA,GAAA;YACE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAChC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,EAClC,oBAAoB,EAAE,CACvB,CAAC;YACF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;AACvD,YAAA,MAAM,KAAK,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;YAEnD,IAAY,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAEvD,YAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;gBACtB,IAAY,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AACjC,aAAA;AAED,YAAA,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;AAEpC,YAAA,IAAI,MAAM,EAAE;AACV,gBAAA,MAAM,EAAE,CAAC;AACV,aAAA;AAED,YAAA,IAAI,SAAS,EAAE;gBACb,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACzC,aAAA;SACF;8HAxBG,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,2BAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EADS,UAAA,EAAA,MAAM,CAAC,UAAU,IAAI,IAAI,EAAA,CAAA,CAAA;;+FAC7C,WAAW,EAAA,UAAA,EAAA,CAAA;sBADhB,UAAU;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,CAAA;;AA4BrD,IAAA,OAAO,WAAW,CAAC;AACpB,CAAA;SAEe,oBAAoB,GAAA;IAClC,OAAO;AACL,QAAA,CAAC,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC;AAC1B,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,KAAK,EAAE,EAAE;KACV,CAAC;AACJ;;SCnIgB,kBAAkB,CAChC,cAAsE,EACtE,GAAG,YAAkC,EAAA;AAErC,IAAA,MAAM,QAAQ,GACZ,OAAO,cAAc,KAAK,UAAU;AAClC,UAAE,CAAC,cAAc,EAAE,GAAG,YAAY,CAAC;UACjC,YAAY,CAAC;IAEnB,OAAO,CAAC,UAAU,KAChB,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC;SAEe,IAAI,GAAA;AAClB,IAAA,OAAO,SAAc,CAAC;AACxB;;AClOgB,SAAA,WAAW,CAGzB,GAAQ,EAAE,IAAU,EAAA;AACpB,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAA0B,CAAC,GAAG,EAAE,GAAG,KAAI;AACnE,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACvB,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACrB,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACZ,EAAE,EAAE,CAA4B,CAAC;AACpC;;ACCM,SAAU,YAAY,CAI1B,cAEY,EAAA;IAEZ,OAAO,CAAC,KAAK,KAAI;AACf,QAAA,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAExD,OAAO;AACL,YAAA,GAAG,KAAK;YACR,MAAM;YACN,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE;YACzC,OAAO;SAC8C,CAAC;AAC1D,KAAC,CAAC;AACJ;;ACMM,SAAU,SAAS,CACvB,cAKuB,EAAA;IAEvB,OAAO,CAAC,KAAK,KAAI;AACf,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACnC,GAAG,KAAK,CAAC,MAAM;YACf,GAAG,KAAK,CAAC,OAAO;YAChB,GAAG,KAAK,CAAC,OAAO;SACjB,CAAC;AACF,QAAA,MAAM,KAAK,GACT,OAAO,cAAc,KAAK,UAAU;AAClC,cAAE,cAAc,CAAC,UAAU,CAAC;cAC1B,cAAc,CAAC;AACrB,QAAA,MAAM,UAAU,GAAG,CAAC,IAAwB,KAAI;AAC9C,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAEtC,YAAA,OAAO,IAAI;kBACP,MAAK;AACH,oBAAA,IAAI,WAAW,EAAE;AACf,wBAAA,WAAW,EAAE,CAAC;AACf,qBAAA;oBAED,IAAI,CAAC,UAAU,CAAC,CAAC;iBAClB;kBACD,WAAW,CAAC;AAClB,SAAC,CAAC;QAEF,OAAO;AACL,YAAA,GAAG,KAAK;AACR,YAAA,KAAK,EAAE;AACL,gBAAA,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC;AAC5B,gBAAA,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC;AACnC,aAAA;SACF,CAAC;AACJ,KAAC,CAAC;AACJ;;ACnEM,SAAU,WAAW,CAIzB,cAOY,EAAA;IAEZ,OAAO,CAAC,KAAK,KAAI;QACf,MAAM,OAAO,GAAG,cAAc,CAAC;AAC7B,YAAA,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;YACnC,GAAG,KAAK,CAAC,MAAM;YACf,GAAG,KAAK,CAAC,OAAO;YAChB,GAAG,KAAK,CAAC,OAAO;AACjB,SAAA,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAExD,OAAO;AACL,YAAA,GAAG,KAAK;YACR,MAAM;YACN,OAAO;YACP,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE;SAC+B,CAAC;AAC7E,KAAC,CAAC;AACJ;;ACpBM,SAAU,SAAS,CACvB,cAAqC,EAAA;IAKrC,OAAO,CAAC,KAAK,KAAI;AACf,QAAA,MAAM,KAAK,GACT,OAAO,cAAc,KAAK,UAAU,GAAG,cAAc,EAAE,GAAG,cAAc,CAAC;QAC3E,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErC,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,YAAY,MAAM;AAC5C,YAAA,GAAG,YAAY;AACf,YAAA,GAAG,KAAK;AACT,SAAA,CAAC,CAAC,CAAC;QAEJ,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AAC3C,YAAA,MAAM,KAAK,GAAG,QAAQ,CACpB,MAAO,KAAK,CAAC,YAAY,CAAC,EAA8B,CAAC,GAAG,CAAC,CAC9D,CAAC;AACF,YAAA,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;SAC/C,EAAE,EAAuB,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAEtD,OAAO;AACL,YAAA,GAAG,KAAK;YACR,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE;YACtC,OAAO;YACP,OAAO;SACmB,CAAC;AAC/B,KAAC,CAAC;AACJ;;ACxDA;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libs-version.js","sourceRoot":"","sources":["../../../../../modules/signals/schematics-core/utility/libs-version.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,SAAS,CAAC","sourcesContent":["export const platformVersion = '^17.1.
|
|
1
|
+
{"version":3,"file":"libs-version.js","sourceRoot":"","sources":["../../../../../modules/signals/schematics-core/utility/libs-version.ts"],"names":[],"mappings":";;;AAAa,QAAA,eAAe,GAAG,SAAS,CAAC","sourcesContent":["export const platformVersion = '^17.1.1';\n"]}
|
package/src/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { signalState } from './signal-state';
|
|
|
4
4
|
export { signalStore } from './signal-store';
|
|
5
5
|
export { signalStoreFeature, type } from './signal-store-feature';
|
|
6
6
|
export { SignalStoreFeature } from './signal-store-models';
|
|
7
|
+
export { StateSignal } from './state-signal';
|
|
7
8
|
export { withComputed } from './with-computed';
|
|
8
9
|
export { withHooks } from './with-hooks';
|
|
9
10
|
export { withMethods } from './with-methods';
|
|
@@ -10,7 +10,7 @@ export type SignalStoreSlices<State> = IsKnownRecord<Prettify<State>> extends tr
|
|
|
10
10
|
} : {};
|
|
11
11
|
export type SignalStoreProps<FeatureResult extends SignalStoreFeatureResult> = Prettify<SignalStoreSlices<FeatureResult['state']> & FeatureResult['signals'] & FeatureResult['methods']>;
|
|
12
12
|
export type SignalsDictionary = Record<string, Signal<unknown>>;
|
|
13
|
-
export type MethodsDictionary = Record<string,
|
|
13
|
+
export type MethodsDictionary = Record<string, Function>;
|
|
14
14
|
export type SignalStoreHooks = {
|
|
15
15
|
onInit?: () => void;
|
|
16
16
|
onDestroy?: () => void;
|