@ngrx/signals 17.0.0-beta.0 → 17.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.
Files changed (48) hide show
  1. package/entities/index.d.ts +1 -0
  2. package/entities/src/helpers.d.ts +25 -0
  3. package/entities/src/index.d.ts +13 -0
  4. package/entities/src/models.d.ts +29 -0
  5. package/entities/src/updaters/add-entities.d.ts +17 -0
  6. package/entities/src/updaters/add-entity.d.ts +17 -0
  7. package/entities/src/updaters/remove-all-entities.d.ts +6 -0
  8. package/entities/src/updaters/remove-entities.d.ts +10 -0
  9. package/entities/src/updaters/remove-entity.d.ts +6 -0
  10. package/entities/src/updaters/set-all-entities.d.ts +17 -0
  11. package/entities/src/updaters/set-entities.d.ts +17 -0
  12. package/entities/src/updaters/set-entity.d.ts +17 -0
  13. package/entities/src/updaters/update-all-entities.d.ts +6 -0
  14. package/entities/src/updaters/update-entities.d.ts +22 -0
  15. package/entities/src/updaters/update-entity.d.ts +12 -0
  16. package/entities/src/with-entities.d.ts +34 -0
  17. package/esm2022/entities/index.mjs +2 -0
  18. package/esm2022/entities/ngrx-signals-entities.mjs +5 -0
  19. package/esm2022/entities/src/helpers.mjs +105 -0
  20. package/esm2022/entities/src/index.mjs +13 -0
  21. package/esm2022/entities/src/models.mjs +7 -0
  22. package/esm2022/entities/src/updaters/add-entities.mjs +11 -0
  23. package/esm2022/entities/src/updaters/add-entity.mjs +11 -0
  24. package/esm2022/entities/src/updaters/remove-all-entities.mjs +9 -0
  25. package/esm2022/entities/src/updaters/remove-entities.mjs +10 -0
  26. package/esm2022/entities/src/updaters/remove-entity.mjs +10 -0
  27. package/esm2022/entities/src/updaters/set-all-entities.mjs +14 -0
  28. package/esm2022/entities/src/updaters/set-entities.mjs +11 -0
  29. package/esm2022/entities/src/updaters/set-entity.mjs +11 -0
  30. package/esm2022/entities/src/updaters/update-all-entities.mjs +10 -0
  31. package/esm2022/entities/src/updaters/update-entities.mjs +11 -0
  32. package/esm2022/entities/src/updaters/update-entity.mjs +10 -0
  33. package/esm2022/entities/src/with-entities.mjs +17 -0
  34. package/esm2022/src/get-state.mjs +5 -0
  35. package/esm2022/src/index.mjs +2 -1
  36. package/esm2022/src/patch-state.mjs +1 -1
  37. package/esm2022/src/signal-store.mjs +4 -4
  38. package/fesm2022/ngrx-signals-entities.mjs +241 -0
  39. package/fesm2022/ngrx-signals-entities.mjs.map +1 -0
  40. package/fesm2022/ngrx-signals-rxjs-interop.mjs +1 -1
  41. package/fesm2022/ngrx-signals.mjs +9 -5
  42. package/fesm2022/ngrx-signals.mjs.map +1 -1
  43. package/package.json +8 -2
  44. package/schematics-core/utility/libs-version.js +1 -1
  45. package/schematics-core/utility/libs-version.js.map +1 -1
  46. package/src/get-state.d.ts +2 -0
  47. package/src/index.d.ts +2 -0
  48. package/src/patch-state.d.ts +1 -1
@@ -0,0 +1,11 @@
1
+ import { cloneEntityState, getEntityStateKeys, getEntityUpdaterResult, updateEntitiesMutably, } from '../helpers';
2
+ export function updateEntities(update, config) {
3
+ const stateKeys = getEntityStateKeys(config);
4
+ const idsOrPredicate = 'ids' in update ? update.ids : update.predicate;
5
+ return (state) => {
6
+ const clonedState = cloneEntityState(state, stateKeys);
7
+ const didMutate = updateEntitiesMutably(clonedState, idsOrPredicate, update.changes);
8
+ return getEntityUpdaterResult(clonedState, stateKeys, didMutate);
9
+ };
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWVudGl0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL2VudGl0aWVzL3NyYy91cGRhdGVycy91cGRhdGUtZW50aXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLHFCQUFxQixHQUN0QixNQUFNLFlBQVksQ0FBQztBQWdDcEIsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsTUFFQyxFQUNELE1BQWdDO0lBRWhDLE1BQU0sU0FBUyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLE1BQU0sY0FBYyxHQUFHLEtBQUssSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFFdkUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2YsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUNyQyxXQUFXLEVBQ1gsY0FBYyxFQUNkLE1BQU0sQ0FBQyxPQUFPLENBQ2YsQ0FBQztRQUVGLE9BQU8sc0JBQXNCLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuRSxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGFydGlhbFN0YXRlVXBkYXRlciB9IGZyb20gJ0BuZ3J4L3NpZ25hbHMnO1xuaW1wb3J0IHtcbiAgRW50aXR5Q2hhbmdlcyxcbiAgRW50aXR5SWQsXG4gIEVudGl0eVByZWRpY2F0ZSxcbiAgRW50aXR5U3RhdGUsXG4gIE5hbWVkRW50aXR5U3RhdGUsXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBjbG9uZUVudGl0eVN0YXRlLFxuICBnZXRFbnRpdHlTdGF0ZUtleXMsXG4gIGdldEVudGl0eVVwZGF0ZXJSZXN1bHQsXG4gIHVwZGF0ZUVudGl0aWVzTXV0YWJseSxcbn0gZnJvbSAnLi4vaGVscGVycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVFbnRpdGllczxFbnRpdHk+KHVwZGF0ZToge1xuICBpZHM6IEVudGl0eUlkW107XG4gIGNoYW5nZXM6IEVudGl0eUNoYW5nZXM8RW50aXR5ICYge30+O1xufSk6IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8RW50aXR5U3RhdGU8RW50aXR5Pj47XG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlRW50aXRpZXM8RW50aXR5Pih1cGRhdGU6IHtcbiAgcHJlZGljYXRlOiBFbnRpdHlQcmVkaWNhdGU8RW50aXR5PjtcbiAgY2hhbmdlczogRW50aXR5Q2hhbmdlczxFbnRpdHkgJiB7fT47XG59KTogUGFydGlhbFN0YXRlVXBkYXRlcjxFbnRpdHlTdGF0ZTxFbnRpdHk+PjtcbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVFbnRpdGllczxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZyxcbiAgU3RhdGUgZXh0ZW5kcyBOYW1lZEVudGl0eVN0YXRlPGFueSwgQ29sbGVjdGlvbj4sXG4gIEVudGl0eSA9IFN0YXRlIGV4dGVuZHMgTmFtZWRFbnRpdHlTdGF0ZTxpbmZlciBFLCBDb2xsZWN0aW9uPiA/IEUgOiBuZXZlclxuPihcbiAgdXBkYXRlOiB7XG4gICAgaWRzOiBFbnRpdHlJZFtdO1xuICAgIGNoYW5nZXM6IEVudGl0eUNoYW5nZXM8RW50aXR5ICYge30+O1xuICB9LFxuICBjb25maWc6IHsgY29sbGVjdGlvbjogQ29sbGVjdGlvbiB9XG4pOiBQYXJ0aWFsU3RhdGVVcGRhdGVyPFN0YXRlPjtcbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVFbnRpdGllczxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZyxcbiAgU3RhdGUgZXh0ZW5kcyBOYW1lZEVudGl0eVN0YXRlPGFueSwgQ29sbGVjdGlvbj4sXG4gIEVudGl0eSA9IFN0YXRlIGV4dGVuZHMgTmFtZWRFbnRpdHlTdGF0ZTxpbmZlciBFLCBDb2xsZWN0aW9uPiA/IEUgOiBuZXZlclxuPihcbiAgdXBkYXRlOiB7XG4gICAgcHJlZGljYXRlOiBFbnRpdHlQcmVkaWNhdGU8RW50aXR5PjtcbiAgICBjaGFuZ2VzOiBFbnRpdHlDaGFuZ2VzPEVudGl0eSAmIHt9PjtcbiAgfSxcbiAgY29uZmlnOiB7IGNvbGxlY3Rpb246IENvbGxlY3Rpb24gfVxuKTogUGFydGlhbFN0YXRlVXBkYXRlcjxTdGF0ZT47XG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlRW50aXRpZXMoXG4gIHVwZGF0ZTogKHsgaWRzOiBFbnRpdHlJZFtdIH0gfCB7IHByZWRpY2F0ZTogRW50aXR5UHJlZGljYXRlPGFueT4gfSkgJiB7XG4gICAgY2hhbmdlczogRW50aXR5Q2hhbmdlczxhbnk+O1xuICB9LFxuICBjb25maWc/OiB7IGNvbGxlY3Rpb24/OiBzdHJpbmcgfVxuKTogUGFydGlhbFN0YXRlVXBkYXRlcjxFbnRpdHlTdGF0ZTxhbnk+IHwgTmFtZWRFbnRpdHlTdGF0ZTxhbnksIHN0cmluZz4+IHtcbiAgY29uc3Qgc3RhdGVLZXlzID0gZ2V0RW50aXR5U3RhdGVLZXlzKGNvbmZpZyk7XG4gIGNvbnN0IGlkc09yUHJlZGljYXRlID0gJ2lkcycgaW4gdXBkYXRlID8gdXBkYXRlLmlkcyA6IHVwZGF0ZS5wcmVkaWNhdGU7XG5cbiAgcmV0dXJuIChzdGF0ZSkgPT4ge1xuICAgIGNvbnN0IGNsb25lZFN0YXRlID0gY2xvbmVFbnRpdHlTdGF0ZShzdGF0ZSwgc3RhdGVLZXlzKTtcbiAgICBjb25zdCBkaWRNdXRhdGUgPSB1cGRhdGVFbnRpdGllc011dGFibHkoXG4gICAgICBjbG9uZWRTdGF0ZSxcbiAgICAgIGlkc09yUHJlZGljYXRlLFxuICAgICAgdXBkYXRlLmNoYW5nZXNcbiAgICApO1xuXG4gICAgcmV0dXJuIGdldEVudGl0eVVwZGF0ZXJSZXN1bHQoY2xvbmVkU3RhdGUsIHN0YXRlS2V5cywgZGlkTXV0YXRlKTtcbiAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ import { cloneEntityState, getEntityStateKeys, getEntityUpdaterResult, updateEntitiesMutably, } from '../helpers';
2
+ export function updateEntity(update, config) {
3
+ const stateKeys = getEntityStateKeys(config);
4
+ return (state) => {
5
+ const clonedState = cloneEntityState(state, stateKeys);
6
+ const didMutate = updateEntitiesMutably(clonedState, [update.id], update.changes);
7
+ return getEntityUpdaterResult(clonedState, stateKeys, didMutate);
8
+ };
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9lbnRpdGllcy9zcmMvdXBkYXRlcnMvdXBkYXRlLWVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIscUJBQXFCLEdBQ3RCLE1BQU0sWUFBWSxDQUFDO0FBaUJwQixNQUFNLFVBQVUsWUFBWSxDQUMxQixNQUdDLEVBQ0QsTUFBZ0M7SUFFaEMsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFN0MsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2YsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLHFCQUFxQixDQUNyQyxXQUFXLEVBQ1gsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQ1gsTUFBTSxDQUFDLE9BQU8sQ0FDZixDQUFDO1FBRUYsT0FBTyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXJ0aWFsU3RhdGVVcGRhdGVyIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQge1xuICBFbnRpdHlDaGFuZ2VzLFxuICBFbnRpdHlJZCxcbiAgRW50aXR5U3RhdGUsXG4gIE5hbWVkRW50aXR5U3RhdGUsXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBjbG9uZUVudGl0eVN0YXRlLFxuICBnZXRFbnRpdHlTdGF0ZUtleXMsXG4gIGdldEVudGl0eVVwZGF0ZXJSZXN1bHQsXG4gIHVwZGF0ZUVudGl0aWVzTXV0YWJseSxcbn0gZnJvbSAnLi4vaGVscGVycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVFbnRpdHk8RW50aXR5Pih1cGRhdGU6IHtcbiAgaWQ6IEVudGl0eUlkO1xuICBjaGFuZ2VzOiBFbnRpdHlDaGFuZ2VzPEVudGl0eSAmIHt9Pjtcbn0pOiBQYXJ0aWFsU3RhdGVVcGRhdGVyPEVudGl0eVN0YXRlPEVudGl0eT4+O1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUVudGl0eTxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZyxcbiAgU3RhdGUgZXh0ZW5kcyBOYW1lZEVudGl0eVN0YXRlPGFueSwgQ29sbGVjdGlvbj4sXG4gIEVudGl0eSA9IFN0YXRlIGV4dGVuZHMgTmFtZWRFbnRpdHlTdGF0ZTxpbmZlciBFLCBDb2xsZWN0aW9uPiA/IEUgOiBuZXZlclxuPihcbiAgdXBkYXRlOiB7XG4gICAgaWQ6IEVudGl0eUlkO1xuICAgIGNoYW5nZXM6IEVudGl0eUNoYW5nZXM8RW50aXR5ICYge30+O1xuICB9LFxuICBjb25maWc6IHsgY29sbGVjdGlvbjogQ29sbGVjdGlvbiB9XG4pOiBQYXJ0aWFsU3RhdGVVcGRhdGVyPFN0YXRlPjtcbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVFbnRpdHkoXG4gIHVwZGF0ZToge1xuICAgIGlkOiBFbnRpdHlJZDtcbiAgICBjaGFuZ2VzOiBFbnRpdHlDaGFuZ2VzPGFueT47XG4gIH0sXG4gIGNvbmZpZz86IHsgY29sbGVjdGlvbj86IHN0cmluZyB9XG4pOiBQYXJ0aWFsU3RhdGVVcGRhdGVyPEVudGl0eVN0YXRlPGFueT4gfCBOYW1lZEVudGl0eVN0YXRlPGFueSwgc3RyaW5nPj4ge1xuICBjb25zdCBzdGF0ZUtleXMgPSBnZXRFbnRpdHlTdGF0ZUtleXMoY29uZmlnKTtcblxuICByZXR1cm4gKHN0YXRlKSA9PiB7XG4gICAgY29uc3QgY2xvbmVkU3RhdGUgPSBjbG9uZUVudGl0eVN0YXRlKHN0YXRlLCBzdGF0ZUtleXMpO1xuICAgIGNvbnN0IGRpZE11dGF0ZSA9IHVwZGF0ZUVudGl0aWVzTXV0YWJseShcbiAgICAgIGNsb25lZFN0YXRlLFxuICAgICAgW3VwZGF0ZS5pZF0sXG4gICAgICB1cGRhdGUuY2hhbmdlc1xuICAgICk7XG5cbiAgICByZXR1cm4gZ2V0RW50aXR5VXBkYXRlclJlc3VsdChjbG9uZWRTdGF0ZSwgc3RhdGVLZXlzLCBkaWRNdXRhdGUpO1xuICB9O1xufVxuIl19
@@ -0,0 +1,17 @@
1
+ import { computed } from '@angular/core';
2
+ import { signalStoreFeature, withComputed, withState, } from '@ngrx/signals';
3
+ import { getEntityStateKeys } from './helpers';
4
+ export function withEntities(config) {
5
+ const { entityMapKey, idsKey, entitiesKey } = getEntityStateKeys(config);
6
+ return signalStoreFeature(withState({
7
+ [entityMapKey]: {},
8
+ [idsKey]: [],
9
+ }), withComputed((store) => ({
10
+ [entitiesKey]: computed(() => {
11
+ const entityMap = store[entityMapKey]();
12
+ const ids = store[idsKey]();
13
+ return ids.map((id) => entityMap[id]);
14
+ }),
15
+ })));
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1lbnRpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc2lnbmFscy9lbnRpdGllcy9zcmMvd2l0aC1lbnRpdGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFFTCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQVN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUErQi9DLE1BQU0sVUFBVSxZQUFZLENBQVMsTUFHcEM7SUFDQyxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV6RSxPQUFPLGtCQUFrQixDQUN2QixTQUFTLENBQUM7UUFDUixDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUU7UUFDbEIsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFO0tBQ04sQ0FBQyxFQUNULFlBQVksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2QixDQUFDLFdBQVcsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUF1QixDQUFDO1lBQzdELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBZ0IsQ0FBQztZQUUxQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQztLQUNILENBQUMsQ0FBQyxDQUNKLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgc2lnbmFsU3RvcmVGZWF0dXJlLFxuICB3aXRoQ29tcHV0ZWQsXG4gIHdpdGhTdGF0ZSxcbn0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQge1xuICBFbnRpdHlJZCxcbiAgRW50aXR5TWFwLFxuICBFbnRpdHlTaWduYWxzLFxuICBFbnRpdHlTdGF0ZSxcbiAgTmFtZWRFbnRpdHlTaWduYWxzLFxuICBOYW1lZEVudGl0eVN0YXRlLFxufSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBnZXRFbnRpdHlTdGF0ZUtleXMgfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aEVudGl0aWVzPEVudGl0eT4oKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7IHN0YXRlOiB7fTsgc2lnbmFsczoge307IG1ldGhvZHM6IHt9IH0sXG4gIHtcbiAgICBzdGF0ZTogRW50aXR5U3RhdGU8RW50aXR5PjtcbiAgICBzaWduYWxzOiBFbnRpdHlTaWduYWxzPEVudGl0eT47XG4gICAgbWV0aG9kczoge307XG4gIH1cbj47XG5leHBvcnQgZnVuY3Rpb24gd2l0aEVudGl0aWVzPEVudGl0eSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4oY29uZmlnOiB7XG4gIGVudGl0eTogRW50aXR5O1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAgeyBzdGF0ZToge307IHNpZ25hbHM6IHt9OyBtZXRob2RzOiB7fSB9LFxuICB7XG4gICAgc3RhdGU6IE5hbWVkRW50aXR5U3RhdGU8RW50aXR5LCBDb2xsZWN0aW9uPjtcbiAgICBzaWduYWxzOiBOYW1lZEVudGl0eVNpZ25hbHM8RW50aXR5LCBDb2xsZWN0aW9uPjtcbiAgICBtZXRob2RzOiB7fTtcbiAgfVxuPjtcbmV4cG9ydCBmdW5jdGlvbiB3aXRoRW50aXRpZXM8RW50aXR5Pihjb25maWc6IHtcbiAgZW50aXR5OiBFbnRpdHk7XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7IHN0YXRlOiB7fTsgc2lnbmFsczoge307IG1ldGhvZHM6IHt9IH0sXG4gIHtcbiAgICBzdGF0ZTogRW50aXR5U3RhdGU8RW50aXR5PjtcbiAgICBzaWduYWxzOiBFbnRpdHlTaWduYWxzPEVudGl0eT47XG4gICAgbWV0aG9kczoge307XG4gIH1cbj47XG5leHBvcnQgZnVuY3Rpb24gd2l0aEVudGl0aWVzPEVudGl0eT4oY29uZmlnPzoge1xuICBlbnRpdHk6IEVudGl0eTtcbiAgY29sbGVjdGlvbj86IHN0cmluZztcbn0pOiBTaWduYWxTdG9yZUZlYXR1cmUge1xuICBjb25zdCB7IGVudGl0eU1hcEtleSwgaWRzS2V5LCBlbnRpdGllc0tleSB9ID0gZ2V0RW50aXR5U3RhdGVLZXlzKGNvbmZpZyk7XG5cbiAgcmV0dXJuIHNpZ25hbFN0b3JlRmVhdHVyZShcbiAgICB3aXRoU3RhdGUoe1xuICAgICAgW2VudGl0eU1hcEtleV06IHt9LFxuICAgICAgW2lkc0tleV06IFtdLFxuICAgIH0gYXMgYW55KSxcbiAgICB3aXRoQ29tcHV0ZWQoKHN0b3JlKSA9PiAoe1xuICAgICAgW2VudGl0aWVzS2V5XTogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBlbnRpdHlNYXAgPSBzdG9yZVtlbnRpdHlNYXBLZXldKCkgYXMgRW50aXR5TWFwPEVudGl0eT47XG4gICAgICAgIGNvbnN0IGlkcyA9IHN0b3JlW2lkc0tleV0oKSBhcyBFbnRpdHlJZFtdO1xuXG4gICAgICAgIHJldHVybiBpZHMubWFwKChpZCkgPT4gZW50aXR5TWFwW2lkXSk7XG4gICAgICB9KSxcbiAgICB9KSlcbiAgKTtcbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ import { STATE_SIGNAL } from './signal-state';
2
+ export function getState(signalState) {
3
+ return signalState[STATE_SIGNAL]();
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9nZXQtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRCxNQUFNLFVBQVUsUUFBUSxDQUN0QixXQUFtQztJQUVuQyxPQUFPLFdBQVcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTVEFURV9TSUdOQUwsIFNpZ25hbFN0YXRlTWV0YSB9IGZyb20gJy4vc2lnbmFsLXN0YXRlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YXRlPFN0YXRlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBzaWduYWxTdGF0ZTogU2lnbmFsU3RhdGVNZXRhPFN0YXRlPlxuKTogU3RhdGUge1xuICByZXR1cm4gc2lnbmFsU3RhdGVbU1RBVEVfU0lHTkFMXSgpO1xufVxuIl19
@@ -1,3 +1,4 @@
1
+ export { getState } from './get-state';
1
2
  export { patchState } from './patch-state';
2
3
  export { signalState } from './signal-state';
3
4
  export { signalStore } from './signal-store';
@@ -6,4 +7,4 @@ export { withComputed } from './with-computed';
6
7
  export { withHooks } from './with-hooks';
7
8
  export { withMethods } from './with-methods';
8
9
  export { withState } from './with-state';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgUGFydGlhbFN0YXRlVXBkYXRlciwgcGF0Y2hTdGF0ZSB9IGZyb20gJy4vcGF0Y2gtc3RhdGUnO1xuZXhwb3J0IHsgc2lnbmFsU3RhdGUgfSBmcm9tICcuL3NpZ25hbC1zdGF0ZSc7XG5leHBvcnQgeyBzaWduYWxTdG9yZSB9IGZyb20gJy4vc2lnbmFsLXN0b3JlJztcbmV4cG9ydCB7IHNpZ25hbFN0b3JlRmVhdHVyZSwgdHlwZSB9IGZyb20gJy4vc2lnbmFsLXN0b3JlLWZlYXR1cmUnO1xuZXhwb3J0IHsgd2l0aENvbXB1dGVkIH0gZnJvbSAnLi93aXRoLWNvbXB1dGVkJztcbmV4cG9ydCB7IHdpdGhIb29rcyB9IGZyb20gJy4vd2l0aC1ob29rcyc7XG5leHBvcnQgeyB3aXRoTWV0aG9kcyB9IGZyb20gJy4vd2l0aC1tZXRob2RzJztcbmV4cG9ydCB7IHdpdGhTdGF0ZSB9IGZyb20gJy4vd2l0aC1zdGF0ZSc7XG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUF1QixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBnZXRTdGF0ZSB9IGZyb20gJy4vZ2V0LXN0YXRlJztcbmV4cG9ydCB7IFBhcnRpYWxTdGF0ZVVwZGF0ZXIsIHBhdGNoU3RhdGUgfSBmcm9tICcuL3BhdGNoLXN0YXRlJztcbmV4cG9ydCB7IHNpZ25hbFN0YXRlIH0gZnJvbSAnLi9zaWduYWwtc3RhdGUnO1xuZXhwb3J0IHsgc2lnbmFsU3RvcmUgfSBmcm9tICcuL3NpZ25hbC1zdG9yZSc7XG5leHBvcnQgeyBzaWduYWxTdG9yZUZlYXR1cmUsIHR5cGUgfSBmcm9tICcuL3NpZ25hbC1zdG9yZS1mZWF0dXJlJztcbmV4cG9ydCB7IFNpZ25hbFN0b3JlRmVhdHVyZSB9IGZyb20gJy4vc2lnbmFsLXN0b3JlLW1vZGVscyc7XG5cbmV4cG9ydCB7IHdpdGhDb21wdXRlZCB9IGZyb20gJy4vd2l0aC1jb21wdXRlZCc7XG5leHBvcnQgeyB3aXRoSG9va3MgfSBmcm9tICcuL3dpdGgtaG9va3MnO1xuZXhwb3J0IHsgd2l0aE1ldGhvZHMgfSBmcm9tICcuL3dpdGgtbWV0aG9kcyc7XG5leHBvcnQgeyB3aXRoU3RhdGUgfSBmcm9tICcuL3dpdGgtc3RhdGUnO1xuIl19
@@ -5,4 +5,4 @@ export function patchState(signalState, ...updaters) {
5
5
  ...(typeof updater === 'function' ? updater(nextState) : updater),
6
6
  }), currentState));
7
7
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2gtc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL3BhdGNoLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFNL0QsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsV0FBbUMsRUFDbkMsR0FBRyxRQUE0RDtJQUUvRCxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FDaEQsUUFBUSxDQUFDLE1BQU0sQ0FDYixDQUFDLFNBQWdCLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLEdBQUcsU0FBUztRQUNaLEdBQUcsQ0FBQyxPQUFPLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQ2xFLENBQUMsRUFDRixZQUFZLENBQ2IsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNUQVRFX1NJR05BTCwgU2lnbmFsU3RhdGVNZXRhIH0gZnJvbSAnLi9zaWduYWwtc3RhdGUnO1xuXG5leHBvcnQgdHlwZSBQYXJ0aWFsU3RhdGVVcGRhdGVyPFN0YXRlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0gKFxuICBzdGF0ZTogU3RhdGVcbikgPT4gUGFydGlhbDxTdGF0ZT47XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaFN0YXRlPFN0YXRlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBzaWduYWxTdGF0ZTogU2lnbmFsU3RhdGVNZXRhPFN0YXRlPixcbiAgLi4udXBkYXRlcnM6IEFycmF5PFBhcnRpYWw8U3RhdGU+IHwgUGFydGlhbFN0YXRlVXBkYXRlcjxTdGF0ZT4+XG4pOiB2b2lkIHtcbiAgc2lnbmFsU3RhdGVbU1RBVEVfU0lHTkFMXS51cGRhdGUoKGN1cnJlbnRTdGF0ZSkgPT5cbiAgICB1cGRhdGVycy5yZWR1Y2UoXG4gICAgICAobmV4dFN0YXRlOiBTdGF0ZSwgdXBkYXRlcikgPT4gKHtcbiAgICAgICAgLi4ubmV4dFN0YXRlLFxuICAgICAgICAuLi4odHlwZW9mIHVwZGF0ZXIgPT09ICdmdW5jdGlvbicgPyB1cGRhdGVyKG5leHRTdGF0ZSkgOiB1cGRhdGVyKSxcbiAgICAgIH0pLFxuICAgICAgY3VycmVudFN0YXRlXG4gICAgKVxuICApO1xufVxuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2gtc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3NpZ25hbHMvc3JjL3BhdGNoLXN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sZ0JBQWdCLENBQUM7QUFNL0QsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsV0FBbUMsRUFDbkMsR0FBRyxRQUFzRTtJQUV6RSxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FDaEQsUUFBUSxDQUFDLE1BQU0sQ0FDYixDQUFDLFNBQWdCLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLEdBQUcsU0FBUztRQUNaLEdBQUcsQ0FBQyxPQUFPLE9BQU8sS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQ2xFLENBQUMsRUFDRixZQUFZLENBQ2IsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNUQVRFX1NJR05BTCwgU2lnbmFsU3RhdGVNZXRhIH0gZnJvbSAnLi9zaWduYWwtc3RhdGUnO1xuXG5leHBvcnQgdHlwZSBQYXJ0aWFsU3RhdGVVcGRhdGVyPFN0YXRlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0gKFxuICBzdGF0ZTogU3RhdGVcbikgPT4gUGFydGlhbDxTdGF0ZT47XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaFN0YXRlPFN0YXRlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBzaWduYWxTdGF0ZTogU2lnbmFsU3RhdGVNZXRhPFN0YXRlPixcbiAgLi4udXBkYXRlcnM6IEFycmF5PFBhcnRpYWw8U3RhdGUgJiB7fT4gfCBQYXJ0aWFsU3RhdGVVcGRhdGVyPFN0YXRlICYge30+PlxuKTogdm9pZCB7XG4gIHNpZ25hbFN0YXRlW1NUQVRFX1NJR05BTF0udXBkYXRlKChjdXJyZW50U3RhdGUpID0+XG4gICAgdXBkYXRlcnMucmVkdWNlKFxuICAgICAgKG5leHRTdGF0ZTogU3RhdGUsIHVwZGF0ZXIpID0+ICh7XG4gICAgICAgIC4uLm5leHRTdGF0ZSxcbiAgICAgICAgLi4uKHR5cGVvZiB1cGRhdGVyID09PSAnZnVuY3Rpb24nID8gdXBkYXRlcihuZXh0U3RhdGUpIDogdXBkYXRlciksXG4gICAgICB9KSxcbiAgICAgIGN1cnJlbnRTdGF0ZVxuICAgIClcbiAgKTtcbn1cbiJdfQ==
@@ -26,10 +26,10 @@ export function signalStore(...args) {
26
26
  });
27
27
  }
28
28
  }
29
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: SignalStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
30
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: SignalStore, providedIn: config.providedIn || null });
29
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: SignalStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
30
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: SignalStore, providedIn: config.providedIn || null });
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: SignalStore, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: SignalStore, decorators: [{
33
33
  type: Injectable,
34
34
  args: [{ providedIn: config.providedIn || null }]
35
35
  }], ctorParameters: () => [] });
@@ -44,4 +44,4 @@ export function getInitialInnerStore() {
44
44
  hooks: {},
45
45
  };
46
46
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9zaWduYWwtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsRUFDUixxQkFBcUIsRUFDckIsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFrUTlDLE1BQU0sVUFBVSxXQUFXLENBQ3pCLEdBQUcsSUFBeUU7SUFFNUUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBRWxDLE1BQU0sTUFBTSxHQUNWLFlBQVksSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBRSxlQUFlLENBQUMsS0FBSyxFQUF3QjtRQUNoRCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1QsTUFBTSxRQUFRLEdBQUcsZUFBdUMsQ0FBQztJQUV6RCxNQUNNLFdBQVc7UUFDZjtZQUNFLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQ2hDLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUNsQyxvQkFBb0IsRUFBRSxDQUN2QixDQUFDO1lBQ0YsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVUsQ0FBQztZQUN2RCxNQUFNLEtBQUssR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFFbkQsSUFBWSxDQUFDLFlBQVksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUV2RCxLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRTtnQkFDdEIsSUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNqQztZQUVELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDaEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ2hCO1lBRUQsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO2dCQUNuQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRWxDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNoQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFNBQVUsQ0FBQyxDQUFDO2dCQUNwRCxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQztxSUExQkcsV0FBVzt5SUFBWCxXQUFXLGNBRFMsTUFBTSxDQUFDLFVBQVUsSUFBSSxJQUFJOztzR0FDN0MsV0FBVztzQkFEaEIsVUFBVTt1QkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRTs7SUE4QnJELE9BQU8sV0FBVyxDQUFDO0NBQ3BCO0FBRUQsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxPQUFPO1FBQ0wsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFCLE1BQU0sRUFBRSxFQUFFO1FBQ1YsT0FBTyxFQUFFLEVBQUU7UUFDWCxPQUFPLEVBQUUsRUFBRTtRQUNYLEtBQUssRUFBRSxFQUFFO0tBQ1YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXN0cm95UmVmLFxuICBpbmplY3QsXG4gIEluamVjdGFibGUsXG4gIEluamVjdG9yLFxuICBydW5JbkluamVjdGlvbkNvbnRleHQsXG4gIHNpZ25hbCxcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTVEFURV9TSUdOQUwgfSBmcm9tICcuL3NpZ25hbC1zdGF0ZSc7XG5pbXBvcnQge1xuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIElubmVyU2lnbmFsU3RvcmUsXG4gIE1lcmdlRmVhdHVyZVJlc3VsdHMsXG4gIFNpZ25hbFN0b3JlLFxuICBTaWduYWxTdG9yZUNvbmZpZyxcbiAgU2lnbmFsU3RvcmVGZWF0dXJlLFxuICBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG59IGZyb20gJy4vc2lnbmFsLXN0b3JlLW1vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT5cbik6IFR5cGU8U2lnbmFsU3RvcmU8RjE+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPlxuKTogVHlwZTxTaWduYWxTdG9yZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjJdPj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjJdPiwgRjM+XG4pOiBUeXBlPFNpZ25hbFN0b3JlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjNdPj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyXT4sIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzXT4sIEY0PlxuKTogVHlwZTxTaWduYWxTdG9yZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNF0+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyXT4sIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzXT4sIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNF0+LCBGNT5cbik6IFR5cGU8U2lnbmFsU3RvcmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1XT4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyXT4sIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzXT4sIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNF0+LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1XT4sIEY2PlxuKTogVHlwZTxTaWduYWxTdG9yZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNCwgRjUsIEY2XT4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMl0+LCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGM10+LCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjRdPiwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNV0+LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNl0+LCBGNz5cbik6IFR5cGU8U2lnbmFsU3RvcmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjddPj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMl0+LCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGM10+LCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjRdPiwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNV0+LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNl0+LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjddPiwgRjg+XG4pOiBUeXBlPFNpZ25hbFN0b3JlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNSwgRjYsIEY3LCBGOF0+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMl0+LCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGM10+LCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjRdPiwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNV0+LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNl0+LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjddPiwgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNSwgRjYsIEY3LCBGOF0+LFxuICAgIEY5XG4gID5cbik6IFR5cGU8U2lnbmFsU3RvcmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjcsIEY4LCBGOV0+Pj47XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4oXG4gIGNvbmZpZzogU2lnbmFsU3RvcmVDb25maWcsXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT5cbik6IFR5cGU8U2lnbmFsU3RvcmU8RjE+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBjb25maWc6IFNpZ25hbFN0b3JlQ29uZmlnLFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPlxuKTogVHlwZTxTaWduYWxTdG9yZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjJdPj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBjb25maWc6IFNpZ25hbFN0b3JlQ29uZmlnLFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjJdPiwgRjM+XG4pOiBUeXBlPFNpZ25hbFN0b3JlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjNdPj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgY29uZmlnOiBTaWduYWxTdG9yZUNvbmZpZyxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyXT4sIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzXT4sIEY0PlxuKTogVHlwZTxTaWduYWxTdG9yZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNF0+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgY29uZmlnOiBTaWduYWxTdG9yZUNvbmZpZyxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyXT4sIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzXT4sIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNF0+LCBGNT5cbik6IFR5cGU8U2lnbmFsU3RvcmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1XT4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgY29uZmlnOiBTaWduYWxTdG9yZUNvbmZpZyxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyXT4sIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzXT4sIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNF0+LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1XT4sIEY2PlxuKTogVHlwZTxTaWduYWxTdG9yZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNCwgRjUsIEY2XT4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGNvbmZpZzogU2lnbmFsU3RvcmVDb25maWcsXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMl0+LCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGM10+LCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjRdPiwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNV0+LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNl0+LCBGNz5cbik6IFR5cGU8U2lnbmFsU3RvcmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjddPj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGNvbmZpZzogU2lnbmFsU3RvcmVDb25maWcsXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMl0+LCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGM10+LCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjRdPiwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNV0+LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNl0+LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjddPiwgRjg+XG4pOiBUeXBlPFNpZ25hbFN0b3JlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNSwgRjYsIEY3LCBGOF0+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGNvbmZpZzogU2lnbmFsU3RvcmVDb25maWcsXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMl0+LCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGM10+LCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjRdPiwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNV0+LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNl0+LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjddPiwgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNSwgRjYsIEY3LCBGOF0+LFxuICAgIEY5XG4gID5cbik6IFR5cGU8U2lnbmFsU3RvcmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjcsIEY4LCBGOV0+Pj47XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZShcbiAgLi4uYXJnczogW1NpZ25hbFN0b3JlQ29uZmlnLCAuLi5TaWduYWxTdG9yZUZlYXR1cmVbXV0gfCBTaWduYWxTdG9yZUZlYXR1cmVbXVxuKTogVHlwZTxTaWduYWxTdG9yZTxhbnk+PiB7XG4gIGNvbnN0IHNpZ25hbFN0b3JlQXJncyA9IFsuLi5hcmdzXTtcblxuICBjb25zdCBjb25maWc6IFBhcnRpYWw8U2lnbmFsU3RvcmVDb25maWc+ID1cbiAgICAncHJvdmlkZWRJbicgaW4gc2lnbmFsU3RvcmVBcmdzWzBdXG4gICAgICA/IChzaWduYWxTdG9yZUFyZ3Muc2hpZnQoKSBhcyBTaWduYWxTdG9yZUNvbmZpZylcbiAgICAgIDoge307XG4gIGNvbnN0IGZlYXR1cmVzID0gc2lnbmFsU3RvcmVBcmdzIGFzIFNpZ25hbFN0b3JlRmVhdHVyZVtdO1xuXG4gIEBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogY29uZmlnLnByb3ZpZGVkSW4gfHwgbnVsbCB9KVxuICBjbGFzcyBTaWduYWxTdG9yZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICBjb25zdCBpbm5lclN0b3JlID0gZmVhdHVyZXMucmVkdWNlKFxuICAgICAgICAoc3RvcmUsIGZlYXR1cmUpID0+IGZlYXR1cmUoc3RvcmUpLFxuICAgICAgICBnZXRJbml0aWFsSW5uZXJTdG9yZSgpXG4gICAgICApO1xuICAgICAgY29uc3QgeyBzbGljZXMsIHNpZ25hbHMsIG1ldGhvZHMsIGhvb2tzIH0gPSBpbm5lclN0b3JlO1xuICAgICAgY29uc3QgcHJvcHMgPSB7IC4uLnNsaWNlcywgLi4uc2lnbmFscywgLi4ubWV0aG9kcyB9O1xuXG4gICAgICAodGhpcyBhcyBhbnkpW1NUQVRFX1NJR05BTF0gPSBpbm5lclN0b3JlW1NUQVRFX1NJR05BTF07XG5cbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHByb3BzKSB7XG4gICAgICAgICh0aGlzIGFzIGFueSlba2V5XSA9IHByb3BzW2tleV07XG4gICAgICB9XG5cbiAgICAgIGlmIChob29rcy5vbkluaXQpIHtcbiAgICAgICAgaG9va3Mub25Jbml0KCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChob29rcy5vbkRlc3Ryb3kpIHtcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gICAgICAgIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dChpbmplY3RvciwgaG9va3Mub25EZXN0cm95ISk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTaWduYWxTdG9yZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEluaXRpYWxJbm5lclN0b3JlKCk6IElubmVyU2lnbmFsU3RvcmUge1xuICByZXR1cm4ge1xuICAgIFtTVEFURV9TSUdOQUxdOiBzaWduYWwoe30pLFxuICAgIHNsaWNlczoge30sXG4gICAgc2lnbmFsczoge30sXG4gICAgbWV0aG9kczoge30sXG4gICAgaG9va3M6IHt9LFxuICB9O1xufVxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9zaWduYWxzL3NyYy9zaWduYWwtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixNQUFNLEVBQ04sVUFBVSxFQUNWLFFBQVEsRUFDUixxQkFBcUIsRUFDckIsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFrUTlDLE1BQU0sVUFBVSxXQUFXLENBQ3pCLEdBQUcsSUFBeUU7SUFFNUUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO0lBRWxDLE1BQU0sTUFBTSxHQUNWLFlBQVksSUFBSSxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBRSxlQUFlLENBQUMsS0FBSyxFQUF3QjtRQUNoRCxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ1QsTUFBTSxRQUFRLEdBQUcsZUFBdUMsQ0FBQztJQUV6RCxNQUNNLFdBQVc7UUFDZjtZQUNFLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQ2hDLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUNsQyxvQkFBb0IsRUFBRSxDQUN2QixDQUFDO1lBQ0YsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVUsQ0FBQztZQUN2RCxNQUFNLEtBQUssR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFFbkQsSUFBWSxDQUFDLFlBQVksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUV2RCxLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRTtnQkFDdEIsSUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNqQztZQUVELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDaEIsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ2hCO1lBRUQsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO2dCQUNuQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBRWxDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUNoQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFNBQVUsQ0FBQyxDQUFDO2dCQUNwRCxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQzs4SEExQkcsV0FBVztrSUFBWCxXQUFXLGNBRFMsTUFBTSxDQUFDLFVBQVUsSUFBSSxJQUFJOzsrRkFDN0MsV0FBVztzQkFEaEIsVUFBVTt1QkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRTs7SUE4QnJELE9BQU8sV0FBVyxDQUFDO0NBQ3BCO0FBRUQsTUFBTSxVQUFVLG9CQUFvQjtJQUNsQyxPQUFPO1FBQ0wsQ0FBQyxZQUFZLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFCLE1BQU0sRUFBRSxFQUFFO1FBQ1YsT0FBTyxFQUFFLEVBQUU7UUFDWCxPQUFPLEVBQUUsRUFBRTtRQUNYLEtBQUssRUFBRSxFQUFFO0tBQ1YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXN0cm95UmVmLFxuICBpbmplY3QsXG4gIEluamVjdGFibGUsXG4gIEluamVjdG9yLFxuICBydW5JbkluamVjdGlvbkNvbnRleHQsXG4gIHNpZ25hbCxcbiAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTVEFURV9TSUdOQUwgfSBmcm9tICcuL3NpZ25hbC1zdGF0ZSc7XG5pbXBvcnQge1xuICBFbXB0eUZlYXR1cmVSZXN1bHQsXG4gIElubmVyU2lnbmFsU3RvcmUsXG4gIE1lcmdlRmVhdHVyZVJlc3VsdHMsXG4gIFNpZ25hbFN0b3JlLFxuICBTaWduYWxTdG9yZUNvbmZpZyxcbiAgU2lnbmFsU3RvcmVGZWF0dXJlLFxuICBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG59IGZyb20gJy4vc2lnbmFsLXN0b3JlLW1vZGVscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT5cbik6IFR5cGU8U2lnbmFsU3RvcmU8RjE+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPlxuKTogVHlwZTxTaWduYWxTdG9yZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjJdPj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjJdPiwgRjM+XG4pOiBUeXBlPFNpZ25hbFN0b3JlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjNdPj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyXT4sIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzXT4sIEY0PlxuKTogVHlwZTxTaWduYWxTdG9yZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNF0+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyXT4sIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzXT4sIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNF0+LCBGNT5cbik6IFR5cGU8U2lnbmFsU3RvcmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1XT4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyXT4sIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzXT4sIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNF0+LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1XT4sIEY2PlxuKTogVHlwZTxTaWduYWxTdG9yZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNCwgRjUsIEY2XT4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMl0+LCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGM10+LCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjRdPiwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNV0+LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNl0+LCBGNz5cbik6IFR5cGU8U2lnbmFsU3RvcmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjddPj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMl0+LCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGM10+LCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjRdPiwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNV0+LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNl0+LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjddPiwgRjg+XG4pOiBUeXBlPFNpZ25hbFN0b3JlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNSwgRjYsIEY3LCBGOF0+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMl0+LCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGM10+LCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjRdPiwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNV0+LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNl0+LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjddPiwgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNSwgRjYsIEY3LCBGOF0+LFxuICAgIEY5XG4gID5cbik6IFR5cGU8U2lnbmFsU3RvcmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjcsIEY4LCBGOV0+Pj47XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdD4oXG4gIGNvbmZpZzogU2lnbmFsU3RvcmVDb25maWcsXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT5cbik6IFR5cGU8U2lnbmFsU3RvcmU8RjE+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBjb25maWc6IFNpZ25hbFN0b3JlQ29uZmlnLFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPlxuKTogVHlwZTxTaWduYWxTdG9yZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjJdPj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBjb25maWc6IFNpZ25hbFN0b3JlQ29uZmlnLFxuICBmMTogU2lnbmFsU3RvcmVGZWF0dXJlPEVtcHR5RmVhdHVyZVJlc3VsdCwgRjE+LFxuICBmMjogU2lnbmFsU3RvcmVGZWF0dXJlPHt9ICYgRjEsIEYyPixcbiAgZjM6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjJdPiwgRjM+XG4pOiBUeXBlPFNpZ25hbFN0b3JlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjNdPj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgY29uZmlnOiBTaWduYWxTdG9yZUNvbmZpZyxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyXT4sIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzXT4sIEY0PlxuKTogVHlwZTxTaWduYWxTdG9yZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNF0+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgY29uZmlnOiBTaWduYWxTdG9yZUNvbmZpZyxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyXT4sIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzXT4sIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNF0+LCBGNT5cbik6IFR5cGU8U2lnbmFsU3RvcmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1XT4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdFxuPihcbiAgY29uZmlnOiBTaWduYWxTdG9yZUNvbmZpZyxcbiAgZjE6IFNpZ25hbFN0b3JlRmVhdHVyZTxFbXB0eUZlYXR1cmVSZXN1bHQsIEYxPixcbiAgZjI6IFNpZ25hbFN0b3JlRmVhdHVyZTx7fSAmIEYxLCBGMj4sXG4gIGYzOiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyXT4sIEYzPixcbiAgZjQ6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzXT4sIEY0PixcbiAgZjU6IFNpZ25hbFN0b3JlRmVhdHVyZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNF0+LCBGNT4sXG4gIGY2OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1XT4sIEY2PlxuKTogVHlwZTxTaWduYWxTdG9yZTxNZXJnZUZlYXR1cmVSZXN1bHRzPFtGMSwgRjIsIEYzLCBGNCwgRjUsIEY2XT4+PjtcbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZTxcbiAgRjEgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYyIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY1IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjcgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGNvbmZpZzogU2lnbmFsU3RvcmVDb25maWcsXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMl0+LCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGM10+LCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjRdPiwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNV0+LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNl0+LCBGNz5cbik6IFR5cGU8U2lnbmFsU3RvcmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjddPj4+O1xuZXhwb3J0IGZ1bmN0aW9uIHNpZ25hbFN0b3JlPFxuICBGMSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjIgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEYzIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjUgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY2IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNyBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjggZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGNvbmZpZzogU2lnbmFsU3RvcmVDb25maWcsXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMl0+LCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGM10+LCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjRdPiwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNV0+LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNl0+LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjddPiwgRjg+XG4pOiBUeXBlPFNpZ25hbFN0b3JlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNSwgRjYsIEY3LCBGOF0+Pj47XG5leHBvcnQgZnVuY3Rpb24gc2lnbmFsU3RvcmU8XG4gIEYxIGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGMiBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjMgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGNSBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjYgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIEY3IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxuICBGOCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgRjkgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oXG4gIGNvbmZpZzogU2lnbmFsU3RvcmVDb25maWcsXG4gIGYxOiBTaWduYWxTdG9yZUZlYXR1cmU8RW1wdHlGZWF0dXJlUmVzdWx0LCBGMT4sXG4gIGYyOiBTaWduYWxTdG9yZUZlYXR1cmU8e30gJiBGMSwgRjI+LFxuICBmMzogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMl0+LCBGMz4sXG4gIGY0OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGM10+LCBGND4sXG4gIGY1OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjRdPiwgRjU+LFxuICBmNjogU2lnbmFsU3RvcmVGZWF0dXJlPE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNV0+LCBGNj4sXG4gIGY3OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNl0+LCBGNz4sXG4gIGY4OiBTaWduYWxTdG9yZUZlYXR1cmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjddPiwgRjg+LFxuICBmOTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICAgIE1lcmdlRmVhdHVyZVJlc3VsdHM8W0YxLCBGMiwgRjMsIEY0LCBGNSwgRjYsIEY3LCBGOF0+LFxuICAgIEY5XG4gID5cbik6IFR5cGU8U2lnbmFsU3RvcmU8TWVyZ2VGZWF0dXJlUmVzdWx0czxbRjEsIEYyLCBGMywgRjQsIEY1LCBGNiwgRjcsIEY4LCBGOV0+Pj47XG5cbmV4cG9ydCBmdW5jdGlvbiBzaWduYWxTdG9yZShcbiAgLi4uYXJnczogW1NpZ25hbFN0b3JlQ29uZmlnLCAuLi5TaWduYWxTdG9yZUZlYXR1cmVbXV0gfCBTaWduYWxTdG9yZUZlYXR1cmVbXVxuKTogVHlwZTxTaWduYWxTdG9yZTxhbnk+PiB7XG4gIGNvbnN0IHNpZ25hbFN0b3JlQXJncyA9IFsuLi5hcmdzXTtcblxuICBjb25zdCBjb25maWc6IFBhcnRpYWw8U2lnbmFsU3RvcmVDb25maWc+ID1cbiAgICAncHJvdmlkZWRJbicgaW4gc2lnbmFsU3RvcmVBcmdzWzBdXG4gICAgICA/IChzaWduYWxTdG9yZUFyZ3Muc2hpZnQoKSBhcyBTaWduYWxTdG9yZUNvbmZpZylcbiAgICAgIDoge307XG4gIGNvbnN0IGZlYXR1cmVzID0gc2lnbmFsU3RvcmVBcmdzIGFzIFNpZ25hbFN0b3JlRmVhdHVyZVtdO1xuXG4gIEBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogY29uZmlnLnByb3ZpZGVkSW4gfHwgbnVsbCB9KVxuICBjbGFzcyBTaWduYWxTdG9yZSB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICBjb25zdCBpbm5lclN0b3JlID0gZmVhdHVyZXMucmVkdWNlKFxuICAgICAgICAoc3RvcmUsIGZlYXR1cmUpID0+IGZlYXR1cmUoc3RvcmUpLFxuICAgICAgICBnZXRJbml0aWFsSW5uZXJTdG9yZSgpXG4gICAgICApO1xuICAgICAgY29uc3QgeyBzbGljZXMsIHNpZ25hbHMsIG1ldGhvZHMsIGhvb2tzIH0gPSBpbm5lclN0b3JlO1xuICAgICAgY29uc3QgcHJvcHMgPSB7IC4uLnNsaWNlcywgLi4uc2lnbmFscywgLi4ubWV0aG9kcyB9O1xuXG4gICAgICAodGhpcyBhcyBhbnkpW1NUQVRFX1NJR05BTF0gPSBpbm5lclN0b3JlW1NUQVRFX1NJR05BTF07XG5cbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHByb3BzKSB7XG4gICAgICAgICh0aGlzIGFzIGFueSlba2V5XSA9IHByb3BzW2tleV07XG4gICAgICB9XG5cbiAgICAgIGlmIChob29rcy5vbkluaXQpIHtcbiAgICAgICAgaG9va3Mub25Jbml0KCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChob29rcy5vbkRlc3Ryb3kpIHtcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gICAgICAgIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dChpbmplY3RvciwgaG9va3Mub25EZXN0cm95ISk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTaWduYWxTdG9yZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEluaXRpYWxJbm5lclN0b3JlKCk6IElubmVyU2lnbmFsU3RvcmUge1xuICByZXR1cm4ge1xuICAgIFtTVEFURV9TSUdOQUxdOiBzaWduYWwoe30pLFxuICAgIHNsaWNlczoge30sXG4gICAgc2lnbmFsczoge30sXG4gICAgbWV0aG9kczoge30sXG4gICAgaG9va3M6IHt9LFxuICB9O1xufVxuIl19
@@ -0,0 +1,241 @@
1
+ import { computed } from '@angular/core';
2
+ import { withState, withComputed, signalStoreFeature } from '@ngrx/signals';
3
+
4
+ var DidMutate;
5
+ (function (DidMutate) {
6
+ DidMutate[DidMutate["None"] = 0] = "None";
7
+ DidMutate[DidMutate["Entities"] = 1] = "Entities";
8
+ DidMutate[DidMutate["Both"] = 2] = "Both";
9
+ })(DidMutate || (DidMutate = {}));
10
+
11
+ function getEntityIdKey(config) {
12
+ return config?.idKey ?? 'id';
13
+ }
14
+ function getEntityStateKeys(config) {
15
+ const collection = config?.collection;
16
+ const entityMapKey = collection === undefined ? 'entityMap' : `${collection}EntityMap`;
17
+ const idsKey = collection === undefined ? 'ids' : `${collection}Ids`;
18
+ const entitiesKey = collection === undefined ? 'entities' : `${collection}Entities`;
19
+ return { entityMapKey, idsKey, entitiesKey };
20
+ }
21
+ function cloneEntityState(state, stateKeys) {
22
+ return {
23
+ entityMap: { ...state[stateKeys.entityMapKey] },
24
+ ids: [...state[stateKeys.idsKey]],
25
+ };
26
+ }
27
+ function getEntityUpdaterResult(state, stateKeys, didMutate) {
28
+ switch (didMutate) {
29
+ case DidMutate.Both: {
30
+ return {
31
+ [stateKeys.entityMapKey]: state.entityMap,
32
+ [stateKeys.idsKey]: state.ids,
33
+ };
34
+ }
35
+ case DidMutate.Entities: {
36
+ return { [stateKeys.entityMapKey]: state.entityMap };
37
+ }
38
+ default: {
39
+ return {};
40
+ }
41
+ }
42
+ }
43
+ function addEntityMutably(state, entity, idKey) {
44
+ const id = entity[idKey];
45
+ if (state.entityMap[id]) {
46
+ return DidMutate.None;
47
+ }
48
+ state.entityMap[id] = entity;
49
+ state.ids.push(id);
50
+ return DidMutate.Both;
51
+ }
52
+ function addEntitiesMutably(state, entities, idKey) {
53
+ let didMutate = DidMutate.None;
54
+ for (const entity of entities) {
55
+ const result = addEntityMutably(state, entity, idKey);
56
+ if (result === DidMutate.Both) {
57
+ didMutate = result;
58
+ }
59
+ }
60
+ return didMutate;
61
+ }
62
+ function setEntityMutably(state, entity, idKey) {
63
+ const id = entity[idKey];
64
+ if (state.entityMap[id]) {
65
+ state.entityMap[id] = entity;
66
+ return DidMutate.Entities;
67
+ }
68
+ state.entityMap[id] = entity;
69
+ state.ids.push(id);
70
+ return DidMutate.Both;
71
+ }
72
+ function setEntitiesMutably(state, entities, idKey) {
73
+ let didMutate = DidMutate.None;
74
+ for (const entity of entities) {
75
+ const result = setEntityMutably(state, entity, idKey);
76
+ if (didMutate === DidMutate.Both) {
77
+ continue;
78
+ }
79
+ didMutate = result;
80
+ }
81
+ return didMutate;
82
+ }
83
+ function removeEntitiesMutably(state, idsOrPredicate) {
84
+ const ids = Array.isArray(idsOrPredicate)
85
+ ? idsOrPredicate
86
+ : state.ids.filter((id) => idsOrPredicate(state.entityMap[id]));
87
+ let didMutate = DidMutate.None;
88
+ for (const id of ids) {
89
+ if (state.entityMap[id]) {
90
+ delete state.entityMap[id];
91
+ didMutate = DidMutate.Both;
92
+ }
93
+ }
94
+ if (didMutate === DidMutate.Both) {
95
+ state.ids = state.ids.filter((id) => id in state.entityMap);
96
+ }
97
+ return didMutate;
98
+ }
99
+ function updateEntitiesMutably(state, idsOrPredicate, changes) {
100
+ const ids = Array.isArray(idsOrPredicate)
101
+ ? idsOrPredicate
102
+ : state.ids.filter((id) => idsOrPredicate(state.entityMap[id]));
103
+ let didMutate = DidMutate.None;
104
+ for (const id of ids) {
105
+ const entity = state.entityMap[id];
106
+ if (entity) {
107
+ const changesRecord = typeof changes === 'function' ? changes(entity) : changes;
108
+ state.entityMap[id] = { ...entity, ...changesRecord };
109
+ didMutate = DidMutate.Entities;
110
+ }
111
+ }
112
+ return didMutate;
113
+ }
114
+
115
+ function addEntity(entity, config) {
116
+ const idKey = getEntityIdKey(config);
117
+ const stateKeys = getEntityStateKeys(config);
118
+ return (state) => {
119
+ const clonedState = cloneEntityState(state, stateKeys);
120
+ const didMutate = addEntityMutably(clonedState, entity, idKey);
121
+ return getEntityUpdaterResult(clonedState, stateKeys, didMutate);
122
+ };
123
+ }
124
+
125
+ function addEntities(entities, config) {
126
+ const idKey = getEntityIdKey(config);
127
+ const stateKeys = getEntityStateKeys(config);
128
+ return (state) => {
129
+ const clonedState = cloneEntityState(state, stateKeys);
130
+ const didMutate = addEntitiesMutably(clonedState, entities, idKey);
131
+ return getEntityUpdaterResult(clonedState, stateKeys, didMutate);
132
+ };
133
+ }
134
+
135
+ function removeEntity(id, config) {
136
+ const stateKeys = getEntityStateKeys(config);
137
+ return (state) => {
138
+ const clonedState = cloneEntityState(state, stateKeys);
139
+ const didMutate = removeEntitiesMutably(clonedState, [id]);
140
+ return getEntityUpdaterResult(clonedState, stateKeys, didMutate);
141
+ };
142
+ }
143
+
144
+ function removeEntities(idsOrPredicate, config) {
145
+ const stateKeys = getEntityStateKeys(config);
146
+ return (state) => {
147
+ const clonedState = cloneEntityState(state, stateKeys);
148
+ const didMutate = removeEntitiesMutably(clonedState, idsOrPredicate);
149
+ return getEntityUpdaterResult(clonedState, stateKeys, didMutate);
150
+ };
151
+ }
152
+
153
+ function removeAllEntities(config) {
154
+ const stateKeys = getEntityStateKeys(config);
155
+ return () => ({
156
+ [stateKeys.entityMapKey]: {},
157
+ [stateKeys.idsKey]: [],
158
+ });
159
+ }
160
+
161
+ function setEntity(entity, config) {
162
+ const idKey = getEntityIdKey(config);
163
+ const stateKeys = getEntityStateKeys(config);
164
+ return (state) => {
165
+ const clonedState = cloneEntityState(state, stateKeys);
166
+ const didMutate = setEntityMutably(clonedState, entity, idKey);
167
+ return getEntityUpdaterResult(clonedState, stateKeys, didMutate);
168
+ };
169
+ }
170
+
171
+ function setEntities(entities, config) {
172
+ const idKey = getEntityIdKey(config);
173
+ const stateKeys = getEntityStateKeys(config);
174
+ return (state) => {
175
+ const clonedState = cloneEntityState(state, stateKeys);
176
+ const didMutate = setEntitiesMutably(clonedState, entities, idKey);
177
+ return getEntityUpdaterResult(clonedState, stateKeys, didMutate);
178
+ };
179
+ }
180
+
181
+ function setAllEntities(entities, config) {
182
+ const idKey = getEntityIdKey(config);
183
+ const stateKeys = getEntityStateKeys(config);
184
+ return () => {
185
+ const state = { entityMap: {}, ids: [] };
186
+ setEntitiesMutably(state, entities, idKey);
187
+ return {
188
+ [stateKeys.entityMapKey]: state.entityMap,
189
+ [stateKeys.idsKey]: state.ids,
190
+ };
191
+ };
192
+ }
193
+
194
+ function updateEntity(update, config) {
195
+ const stateKeys = getEntityStateKeys(config);
196
+ return (state) => {
197
+ const clonedState = cloneEntityState(state, stateKeys);
198
+ const didMutate = updateEntitiesMutably(clonedState, [update.id], update.changes);
199
+ return getEntityUpdaterResult(clonedState, stateKeys, didMutate);
200
+ };
201
+ }
202
+
203
+ function updateEntities(update, config) {
204
+ const stateKeys = getEntityStateKeys(config);
205
+ const idsOrPredicate = 'ids' in update ? update.ids : update.predicate;
206
+ return (state) => {
207
+ const clonedState = cloneEntityState(state, stateKeys);
208
+ const didMutate = updateEntitiesMutably(clonedState, idsOrPredicate, update.changes);
209
+ return getEntityUpdaterResult(clonedState, stateKeys, didMutate);
210
+ };
211
+ }
212
+
213
+ function updateAllEntities(changes, config) {
214
+ const stateKeys = getEntityStateKeys(config);
215
+ return (state) => {
216
+ const clonedState = cloneEntityState(state, stateKeys);
217
+ const didMutate = updateEntitiesMutably(clonedState, state[stateKeys.idsKey], changes);
218
+ return getEntityUpdaterResult(clonedState, stateKeys, didMutate);
219
+ };
220
+ }
221
+
222
+ function withEntities(config) {
223
+ const { entityMapKey, idsKey, entitiesKey } = getEntityStateKeys(config);
224
+ return signalStoreFeature(withState({
225
+ [entityMapKey]: {},
226
+ [idsKey]: [],
227
+ }), withComputed((store) => ({
228
+ [entitiesKey]: computed(() => {
229
+ const entityMap = store[entityMapKey]();
230
+ const ids = store[idsKey]();
231
+ return ids.map((id) => entityMap[id]);
232
+ }),
233
+ })));
234
+ }
235
+
236
+ /**
237
+ * Generated bundle index. Do not edit.
238
+ */
239
+
240
+ export { addEntities, addEntity, removeAllEntities, removeEntities, removeEntity, setAllEntities, setEntities, setEntity, updateAllEntities, updateEntities, updateEntity, withEntities };
241
+ //# sourceMappingURL=ngrx-signals-entities.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngrx-signals-entities.mjs","sources":["../../../../modules/signals/entities/src/models.ts","../../../../modules/signals/entities/src/helpers.ts","../../../../modules/signals/entities/src/updaters/add-entity.ts","../../../../modules/signals/entities/src/updaters/add-entities.ts","../../../../modules/signals/entities/src/updaters/remove-entity.ts","../../../../modules/signals/entities/src/updaters/remove-entities.ts","../../../../modules/signals/entities/src/updaters/remove-all-entities.ts","../../../../modules/signals/entities/src/updaters/set-entity.ts","../../../../modules/signals/entities/src/updaters/set-entities.ts","../../../../modules/signals/entities/src/updaters/set-all-entities.ts","../../../../modules/signals/entities/src/updaters/update-entity.ts","../../../../modules/signals/entities/src/updaters/update-entities.ts","../../../../modules/signals/entities/src/updaters/update-all-entities.ts","../../../../modules/signals/entities/src/with-entities.ts","../../../../modules/signals/entities/ngrx-signals-entities.ts"],"sourcesContent":["import { Signal } from '@angular/core';\n\nexport type EntityId = string | number;\n\nexport type EntityMap<Entity> = Record<EntityId, Entity>;\n\nexport type EntityState<Entity> = {\n entityMap: EntityMap<Entity>;\n ids: EntityId[];\n};\n\nexport type NamedEntityState<Entity, Collection extends string> = {\n [K in Collection as `${K}EntityMap`]: EntityMap<Entity>;\n} & { [K in Collection as `${K}Ids`]: EntityId[] };\n\nexport type EntitySignals<Entity> = {\n entities: Signal<Entity[]>;\n};\n\nexport type NamedEntitySignals<Entity, Collection extends string> = {\n [K in Collection as `${K}Entities`]: Signal<Entity[]>;\n};\n\nexport type EntityIdProps<Entity> = {\n [K in keyof Entity as Entity[K] extends EntityId ? K : never]: Entity[K];\n};\n\nexport type EntityIdKey<Entity> = keyof EntityIdProps<Entity> & string;\n\nexport type EntityPredicate<Entity> = (entity: Entity) => boolean;\n\nexport type EntityChanges<Entity> =\n | Partial<Entity>\n | ((entity: Entity) => Partial<Entity>);\n\nexport enum DidMutate {\n None,\n Entities,\n Both,\n}\n","import {\n DidMutate,\n EntityChanges,\n EntityId,\n EntityPredicate,\n EntityState,\n} from './models';\n\nexport function getEntityIdKey(config?: { idKey?: string }): string {\n return config?.idKey ?? 'id';\n}\n\nexport function getEntityStateKeys(config?: { collection?: string }): {\n entityMapKey: string;\n idsKey: string;\n entitiesKey: string;\n} {\n const collection = config?.collection;\n const entityMapKey =\n collection === undefined ? 'entityMap' : `${collection}EntityMap`;\n const idsKey = collection === undefined ? 'ids' : `${collection}Ids`;\n const entitiesKey =\n collection === undefined ? 'entities' : `${collection}Entities`;\n\n return { entityMapKey, idsKey, entitiesKey };\n}\n\nexport function cloneEntityState(\n state: Record<string, any>,\n stateKeys: {\n entityMapKey: string;\n idsKey: string;\n }\n): EntityState<any> {\n return {\n entityMap: { ...state[stateKeys.entityMapKey] },\n ids: [...state[stateKeys.idsKey]],\n };\n}\n\nexport function getEntityUpdaterResult(\n state: EntityState<any>,\n stateKeys: {\n entityMapKey: string;\n idsKey: string;\n },\n didMutate: DidMutate\n): Record<string, any> {\n switch (didMutate) {\n case DidMutate.Both: {\n return {\n [stateKeys.entityMapKey]: state.entityMap,\n [stateKeys.idsKey]: state.ids,\n };\n }\n case DidMutate.Entities: {\n return { [stateKeys.entityMapKey]: state.entityMap };\n }\n default: {\n return {};\n }\n }\n}\n\nexport function addEntityMutably(\n state: EntityState<any>,\n entity: any,\n idKey: string\n): DidMutate {\n const id = entity[idKey];\n\n if (state.entityMap[id]) {\n return DidMutate.None;\n }\n\n state.entityMap[id] = entity;\n state.ids.push(id);\n\n return DidMutate.Both;\n}\n\nexport function addEntitiesMutably(\n state: EntityState<any>,\n entities: any[],\n idKey: string\n): DidMutate {\n let didMutate = DidMutate.None;\n\n for (const entity of entities) {\n const result = addEntityMutably(state, entity, idKey);\n\n if (result === DidMutate.Both) {\n didMutate = result;\n }\n }\n\n return didMutate;\n}\n\nexport function setEntityMutably(\n state: EntityState<any>,\n entity: any,\n idKey: string\n): DidMutate {\n const id = entity[idKey];\n\n if (state.entityMap[id]) {\n state.entityMap[id] = entity;\n return DidMutate.Entities;\n }\n\n state.entityMap[id] = entity;\n state.ids.push(id);\n\n return DidMutate.Both;\n}\n\nexport function setEntitiesMutably(\n state: EntityState<any>,\n entities: any[],\n idKey: string\n): DidMutate {\n let didMutate = DidMutate.None;\n\n for (const entity of entities) {\n const result = setEntityMutably(state, entity, idKey);\n\n if (didMutate === DidMutate.Both) {\n continue;\n }\n\n didMutate = result;\n }\n\n return didMutate;\n}\n\nexport function removeEntitiesMutably(\n state: EntityState<any>,\n idsOrPredicate: EntityId[] | EntityPredicate<any>\n): DidMutate {\n const ids = Array.isArray(idsOrPredicate)\n ? idsOrPredicate\n : state.ids.filter((id) => idsOrPredicate(state.entityMap[id]));\n let didMutate = DidMutate.None;\n\n for (const id of ids) {\n if (state.entityMap[id]) {\n delete state.entityMap[id];\n didMutate = DidMutate.Both;\n }\n }\n\n if (didMutate === DidMutate.Both) {\n state.ids = state.ids.filter((id) => id in state.entityMap);\n }\n\n return didMutate;\n}\n\nexport function updateEntitiesMutably(\n state: EntityState<any>,\n idsOrPredicate: EntityId[] | EntityPredicate<any>,\n changes: EntityChanges<any>\n): DidMutate {\n const ids = Array.isArray(idsOrPredicate)\n ? idsOrPredicate\n : state.ids.filter((id) => idsOrPredicate(state.entityMap[id]));\n let didMutate = DidMutate.None;\n\n for (const id of ids) {\n const entity = state.entityMap[id];\n\n if (entity) {\n const changesRecord =\n typeof changes === 'function' ? changes(entity) : changes;\n state.entityMap[id] = { ...entity, ...changesRecord };\n didMutate = DidMutate.Entities;\n }\n }\n\n return didMutate;\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n addEntityMutably,\n cloneEntityState,\n getEntityIdKey,\n getEntityStateKeys,\n getEntityUpdaterResult,\n} from '../helpers';\n\nexport function addEntity<Entity extends { id: EntityId }>(\n entity: Entity\n): PartialStateUpdater<EntityState<Entity>>;\nexport function addEntity<Entity, Collection extends string>(\n entity: Entity,\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function addEntity<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entity: Entity,\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function addEntity<Entity>(\n entity: Entity,\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function addEntity(\n entity: any,\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = addEntityMutably(clonedState, entity, idKey);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n addEntitiesMutably,\n cloneEntityState,\n getEntityIdKey,\n getEntityStateKeys,\n getEntityUpdaterResult,\n} from '../helpers';\n\nexport function addEntities<Entity extends { id: EntityId }>(\n entities: Entity[]\n): PartialStateUpdater<EntityState<Entity>>;\nexport function addEntities<Entity, Collection extends string>(\n entities: Entity[],\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function addEntities<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entities: Entity[],\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function addEntities<Entity>(\n entities: Entity[],\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function addEntities(\n entities: any[],\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = addEntitiesMutably(clonedState, entities, idKey);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport { EntityId, EntityState, NamedEntityState } from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n removeEntitiesMutably,\n} from '../helpers';\n\nexport function removeEntity(\n id: EntityId\n): PartialStateUpdater<EntityState<any>>;\nexport function removeEntity<Collection extends string>(\n id: EntityId,\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<any, Collection>>;\nexport function removeEntity(\n id: EntityId,\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = removeEntitiesMutably(clonedState, [id]);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityPredicate,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n removeEntitiesMutably,\n} from '../helpers';\n\nexport function removeEntities(\n ids: EntityId[]\n): PartialStateUpdater<EntityState<any>>;\nexport function removeEntities<Entity>(\n predicate: EntityPredicate<Entity>\n): PartialStateUpdater<EntityState<Entity>>;\nexport function removeEntities<Collection extends string>(\n ids: EntityId[],\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<any, Collection>>;\nexport function removeEntities<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n predicate: EntityPredicate<Entity>,\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function removeEntities(\n idsOrPredicate: EntityId[] | EntityPredicate<any>,\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = removeEntitiesMutably(clonedState, idsOrPredicate);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport { EntityState, NamedEntityState } from '../models';\nimport { getEntityStateKeys } from '../helpers';\n\nexport function removeAllEntities(): PartialStateUpdater<EntityState<any>>;\nexport function removeAllEntities<Collection extends string>(config: {\n collection: Collection;\n}): PartialStateUpdater<NamedEntityState<any, Collection>>;\nexport function removeAllEntities(config?: {\n collection?: string;\n}): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return () => ({\n [stateKeys.entityMapKey]: {},\n [stateKeys.idsKey]: [],\n });\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityIdKey,\n getEntityStateKeys,\n getEntityUpdaterResult,\n setEntityMutably,\n} from '../helpers';\n\nexport function setEntity<Entity extends { id: EntityId }>(\n entity: Entity\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setEntity<Entity, Collection extends string>(\n entity: Entity,\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setEntity<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entity: Entity,\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setEntity<Entity>(\n entity: Entity,\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setEntity(\n entity: any,\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = setEntityMutably(clonedState, entity, idKey);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityIdKey,\n getEntityStateKeys,\n getEntityUpdaterResult,\n setEntitiesMutably,\n} from '../helpers';\n\nexport function setEntities<Entity extends { id: EntityId }>(\n entities: Entity[]\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setEntities<Entity, Collection extends string>(\n entities: Entity[],\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setEntities<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entities: Entity[],\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setEntities<Entity>(\n entities: Entity[],\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setEntities(\n entities: any[],\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = setEntitiesMutably(clonedState, entities, idKey);\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityId,\n EntityIdKey,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n getEntityIdKey,\n getEntityStateKeys,\n setEntitiesMutably,\n} from '../helpers';\n\nexport function setAllEntities<Entity extends { id: EntityId }>(\n entities: Entity[]\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setAllEntities<Entity, Collection extends string>(\n entities: Entity[],\n config: { collection: Collection; idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setAllEntities<\n Entity extends { id: EntityId },\n Collection extends string\n>(\n entities: Entity[],\n config: { collection: Collection }\n): PartialStateUpdater<NamedEntityState<Entity, Collection>>;\nexport function setAllEntities<Entity>(\n entities: Entity[],\n config: { idKey: EntityIdKey<Entity> }\n): PartialStateUpdater<EntityState<Entity>>;\nexport function setAllEntities(\n entities: any[],\n config?: { collection?: string; idKey?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const idKey = getEntityIdKey(config);\n const stateKeys = getEntityStateKeys(config);\n\n return () => {\n const state: EntityState<any> = { entityMap: {}, ids: [] };\n setEntitiesMutably(state, entities, idKey);\n\n return {\n [stateKeys.entityMapKey]: state.entityMap,\n [stateKeys.idsKey]: state.ids,\n };\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityChanges,\n EntityId,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n updateEntitiesMutably,\n} from '../helpers';\n\nexport function updateEntity<Entity>(update: {\n id: EntityId;\n changes: EntityChanges<Entity & {}>;\n}): PartialStateUpdater<EntityState<Entity>>;\nexport function updateEntity<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n update: {\n id: EntityId;\n changes: EntityChanges<Entity & {}>;\n },\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function updateEntity(\n update: {\n id: EntityId;\n changes: EntityChanges<any>;\n },\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = updateEntitiesMutably(\n clonedState,\n [update.id],\n update.changes\n );\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport {\n EntityChanges,\n EntityId,\n EntityPredicate,\n EntityState,\n NamedEntityState,\n} from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n updateEntitiesMutably,\n} from '../helpers';\n\nexport function updateEntities<Entity>(update: {\n ids: EntityId[];\n changes: EntityChanges<Entity & {}>;\n}): PartialStateUpdater<EntityState<Entity>>;\nexport function updateEntities<Entity>(update: {\n predicate: EntityPredicate<Entity>;\n changes: EntityChanges<Entity & {}>;\n}): PartialStateUpdater<EntityState<Entity>>;\nexport function updateEntities<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n update: {\n ids: EntityId[];\n changes: EntityChanges<Entity & {}>;\n },\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function updateEntities<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n update: {\n predicate: EntityPredicate<Entity>;\n changes: EntityChanges<Entity & {}>;\n },\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function updateEntities(\n update: ({ ids: EntityId[] } | { predicate: EntityPredicate<any> }) & {\n changes: EntityChanges<any>;\n },\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n const idsOrPredicate = 'ids' in update ? update.ids : update.predicate;\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = updateEntitiesMutably(\n clonedState,\n idsOrPredicate,\n update.changes\n );\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { PartialStateUpdater } from '@ngrx/signals';\nimport { EntityChanges, EntityState, NamedEntityState } from '../models';\nimport {\n cloneEntityState,\n getEntityStateKeys,\n getEntityUpdaterResult,\n updateEntitiesMutably,\n} from '../helpers';\n\nexport function updateAllEntities<Entity>(\n changes: EntityChanges<Entity & {}>\n): PartialStateUpdater<EntityState<Entity>>;\nexport function updateAllEntities<\n Collection extends string,\n State extends NamedEntityState<any, Collection>,\n Entity = State extends NamedEntityState<infer E, Collection> ? E : never\n>(\n changes: EntityChanges<Entity & {}>,\n config: { collection: Collection }\n): PartialStateUpdater<State>;\nexport function updateAllEntities(\n changes: EntityChanges<any>,\n config?: { collection?: string }\n): PartialStateUpdater<EntityState<any> | NamedEntityState<any, string>> {\n const stateKeys = getEntityStateKeys(config);\n\n return (state) => {\n const clonedState = cloneEntityState(state, stateKeys);\n const didMutate = updateEntitiesMutably(\n clonedState,\n (state as Record<string, any>)[stateKeys.idsKey],\n changes\n );\n\n return getEntityUpdaterResult(clonedState, stateKeys, didMutate);\n };\n}\n","import { computed } from '@angular/core';\nimport {\n SignalStoreFeature,\n signalStoreFeature,\n withComputed,\n withState,\n} from '@ngrx/signals';\nimport {\n EntityId,\n EntityMap,\n EntitySignals,\n EntityState,\n NamedEntitySignals,\n NamedEntityState,\n} from './models';\nimport { getEntityStateKeys } from './helpers';\n\nexport function withEntities<Entity>(): SignalStoreFeature<\n { state: {}; signals: {}; methods: {} },\n {\n state: EntityState<Entity>;\n signals: EntitySignals<Entity>;\n methods: {};\n }\n>;\nexport function withEntities<Entity, Collection extends string>(config: {\n entity: Entity;\n collection: Collection;\n}): SignalStoreFeature<\n { state: {}; signals: {}; methods: {} },\n {\n state: NamedEntityState<Entity, Collection>;\n signals: NamedEntitySignals<Entity, Collection>;\n methods: {};\n }\n>;\nexport function withEntities<Entity>(config: {\n entity: Entity;\n}): SignalStoreFeature<\n { state: {}; signals: {}; methods: {} },\n {\n state: EntityState<Entity>;\n signals: EntitySignals<Entity>;\n methods: {};\n }\n>;\nexport function withEntities<Entity>(config?: {\n entity: Entity;\n collection?: string;\n}): SignalStoreFeature {\n const { entityMapKey, idsKey, entitiesKey } = getEntityStateKeys(config);\n\n return signalStoreFeature(\n withState({\n [entityMapKey]: {},\n [idsKey]: [],\n } as any),\n withComputed((store) => ({\n [entitiesKey]: computed(() => {\n const entityMap = store[entityMapKey]() as EntityMap<Entity>;\n const ids = store[idsKey]() as EntityId[];\n\n return ids.map((id) => entityMap[id]);\n }),\n }))\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { assertInInjectionContext, inject, Injector, DestroyRef, isSignal } from '@angular/core';
1
+ import { assertInInjectionContext, Injector, inject, DestroyRef, isSignal } from '@angular/core';
2
2
  import { toObservable } from '@angular/core/rxjs-interop';
3
3
  import { Subject, isObservable, of } from 'rxjs';
4
4
 
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { untracked, computed, signal, inject, Injector, DestroyRef, runInInjectionContext, Injectable } from '@angular/core';
2
+ import { untracked, computed, signal, Injector, inject, runInInjectionContext, DestroyRef, Injectable } from '@angular/core';
3
3
 
4
4
  function toDeepSignal(signal) {
5
5
  const value = untracked(() => signal());
@@ -32,6 +32,10 @@ function signalState(initialState) {
32
32
  return deepSignal;
33
33
  }
34
34
 
35
+ function getState(signalState) {
36
+ return signalState[STATE_SIGNAL]();
37
+ }
38
+
35
39
  function patchState(signalState, ...updaters) {
36
40
  signalState[STATE_SIGNAL].update((currentState) => updaters.reduce((nextState, updater) => ({
37
41
  ...nextState,
@@ -64,10 +68,10 @@ function signalStore(...args) {
64
68
  });
65
69
  }
66
70
  }
67
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: SignalStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
68
- /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: SignalStore, providedIn: config.providedIn || null });
71
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: SignalStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
72
+ /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: SignalStore, providedIn: config.providedIn || null });
69
73
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0-next.8", ngImport: i0, type: SignalStore, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.0", ngImport: i0, type: SignalStore, decorators: [{
71
75
  type: Injectable,
72
76
  args: [{ providedIn: config.providedIn || null }]
73
77
  }], ctorParameters: () => [] });
@@ -188,5 +192,5 @@ function withState(stateOrFactory) {
188
192
  * Generated bundle index. Do not edit.
189
193
  */
190
194
 
191
- export { patchState, signalState, signalStore, signalStoreFeature, type, withComputed, withHooks, withMethods, withState };
195
+ export { getState, patchState, signalState, signalStore, signalStoreFeature, type, withComputed, withHooks, withMethods, withState };
192
196
  //# sourceMappingURL=ngrx-signals.mjs.map