@ngxs/store 3.7.6-dev.master-4d7e301 → 3.7.6-dev.master-5bdcd2a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/ngxs-store.umd.js +85 -0
- package/bundles/ngxs-store.umd.js.map +1 -1
- package/esm2015/src/public_api.js +5 -4
- package/esm2015/src/selectors/create-model-selector.js +28 -0
- package/esm2015/src/selectors/create-pick-selector.js +14 -0
- package/esm2015/src/selectors/create-property-selectors.js +18 -0
- package/esm2015/src/selectors/index.js +5 -0
- package/esm2015/src/selectors/selector-checks.util.js +18 -0
- package/esm2015/src/selectors/selector-types.util.js +2 -0
- package/fesm2015/ngxs-store.js +72 -1
- package/fesm2015/ngxs-store.js.map +1 -1
- package/package.json +1 -1
- package/src/public_api.d.ts +4 -3
- package/src/selectors/create-model-selector.d.ts +10 -0
- package/src/selectors/create-pick-selector.d.ts +6 -0
- package/src/selectors/create-property-selectors.d.ts +5 -0
- package/src/selectors/index.d.ts +4 -0
- package/src/selectors/selector-checks.util.d.ts +9 -0
- package/src/selectors/selector-types.util.d.ts +7 -0
|
@@ -14,9 +14,9 @@ export { Actions } from './actions-stream';
|
|
|
14
14
|
// - https://github.com/ngxs-labs/firebase-plugin/blob/7251d877aeadefea8c3c891b7b55e7653a9f289c/src/lib/decorators/ngxs-firestore-connect.ts#L23
|
|
15
15
|
// - https://github.com/stefan-schubert/ngxs-extensions/blob/922ee2f87eba17823b5efab142b656b0d29f827d/src/lib/core/decorators/reset-state.decorator.ts#L18
|
|
16
16
|
// tslint:enable: max-line-length
|
|
17
|
-
export { getSelectorMetadata, getStoreMetadata, ensureStoreMetadata, ensureSelectorMetadata } from './public_to_deprecate';
|
|
18
|
-
export { ofAction, ofActionDispatched, ofActionSuccessful, ofActionCanceled, ofActionErrored, ofActionCompleted } from './operators/of-action';
|
|
19
|
-
export { NgxsSimpleChange } from './symbols';
|
|
17
|
+
export { getSelectorMetadata, getStoreMetadata, ensureStoreMetadata, ensureSelectorMetadata, } from './public_to_deprecate';
|
|
18
|
+
export { ofAction, ofActionDispatched, ofActionSuccessful, ofActionCanceled, ofActionErrored, ofActionCompleted, } from './operators/of-action';
|
|
19
|
+
export { NgxsSimpleChange, } from './symbols';
|
|
20
20
|
export { Selector } from './decorators/selector/selector';
|
|
21
21
|
export { getActionTypeFromInstance, actionMatcher } from './utils/utils';
|
|
22
22
|
export { createSelector } from './utils/selector-utils';
|
|
@@ -24,4 +24,5 @@ export { NoopNgxsExecutionStrategy } from './execution/noop-ngxs-execution-strat
|
|
|
24
24
|
export { StateToken } from './state-token/state-token';
|
|
25
25
|
export { NgxsDevelopmentModule } from './dev-features/ngxs-development.module';
|
|
26
26
|
export { NgxsUnhandledActionsLogger } from './dev-features/ngxs-unhandled-actions-logger';
|
|
27
|
-
|
|
27
|
+
export { createModelSelector, createPickSelector, createPropertySelectors, } from './selectors';
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBK0IsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RSxrRkFBa0Y7QUFDbEYsMkVBQTJFO0FBQzNFLHVJQUF1STtBQUN2SSxzSUFBc0k7QUFDdEksNkhBQTZIO0FBQzdILGtDQUFrQztBQUNsQyxnSkFBZ0o7QUFDaEosMEpBQTBKO0FBQzFKLGlDQUFpQztBQUNqQyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUNMLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsaUJBQWlCLEdBRWxCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQU9MLGdCQUFnQixHQUNqQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHeEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRTFGLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLHVCQUF1QixHQUd4QixNQUFNLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE5neHNNb2R1bGUgfSBmcm9tICcuL21vZHVsZSc7XG5leHBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2RlY29yYXRvcnMvYWN0aW9uJztcbmV4cG9ydCB7IFN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5leHBvcnQgeyBTdGF0ZSB9IGZyb20gJy4vZGVjb3JhdG9ycy9zdGF0ZSc7XG5leHBvcnQgeyBTZWxlY3QgfSBmcm9tICcuL2RlY29yYXRvcnMvc2VsZWN0L3NlbGVjdCc7XG5leHBvcnQgeyBTZWxlY3Rvck9wdGlvbnMgfSBmcm9tICcuL2RlY29yYXRvcnMvc2VsZWN0b3Itb3B0aW9ucyc7XG5leHBvcnQgeyBBY3Rpb25zLCBBY3Rpb25Db250ZXh0LCBBY3Rpb25TdGF0dXMgfSBmcm9tICcuL2FjdGlvbnMtc3RyZWFtJztcblxuLy8gVE9ETzogdjQgLSBXZSBuZWVkIHRvIGNvbWUgdXAgd2l0aCBhbiBhbHRlcm5hdGl2ZSBhcGkgdG8gZXhwb3NpbmcgdGhpcyBtZXRhZGF0YVxuLy8gICBiZWNhdXNlIGl0IGlzIGN1cnJlbnRseSB1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgKGFmdGVyIGEgZ2l0aHViIHNlYXJjaCk6XG4vLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzLWxhYnMvZW1pdHRlci9ibG9iLzgxZDIxZDEzNTQwMGQ3ZTM3NjVmYzU3OWUwOWFlYTI5YjFiOTJiZjcvZW1pdHRlci9zcmMvbGliL2NvcmUvZGVjb3JhdG9ycy9yZWNlaXZlci50cyNMOTFcbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL25neHMtbGFicy9kYXRhL2Jsb2IvNzNhMzIwMDU5ZjIxOTI0ZWI5NzVhODZhZGFlNTE2OWE0MDQwNzFmZC9zcmMvbGliL2RlY29yYXRvcnMvcGVyc2lzdGVuY2UvcGVyc2lzdGVuY2UudHMjTDEzXG4vLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy10dXJrZXkvbmd4cy1yZXNldC1wbHVnaW4vYmxvYi8wZjIyZjIyZTI3N2M3ZGU1YjM0MGQxOTE3YWFlMzAzZDAxMDIwY2VlL3NyYy9saWIvcmVzZXQucGx1Z2luLnRzI0wxOVxuLy8gdHNsaW50OmRpc2FibGU6IG1heC1saW5lLWxlbmd0aFxuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy1sYWJzL2ZpcmViYXNlLXBsdWdpbi9ibG9iLzcyNTFkODc3YWVhZGVmZWE4YzNjODkxYjdiNTVlNzY1M2E5ZjI4OWMvc3JjL2xpYi9kZWNvcmF0b3JzL25neHMtZmlyZXN0b3JlLWNvbm5lY3QudHMjTDIzXG4vLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVmYW4tc2NodWJlcnQvbmd4cy1leHRlbnNpb25zL2Jsb2IvOTIyZWUyZjg3ZWJhMTc4MjNiNWVmYWIxNDJiNjU2YjBkMjlmODI3ZC9zcmMvbGliL2NvcmUvZGVjb3JhdG9ycy9yZXNldC1zdGF0ZS5kZWNvcmF0b3IudHMjTDE4XG4vLyB0c2xpbnQ6ZW5hYmxlOiBtYXgtbGluZS1sZW5ndGhcbmV4cG9ydCB7XG4gIGdldFNlbGVjdG9yTWV0YWRhdGEsXG4gIGdldFN0b3JlTWV0YWRhdGEsXG4gIGVuc3VyZVN0b3JlTWV0YWRhdGEsXG4gIGVuc3VyZVNlbGVjdG9yTWV0YWRhdGEsXG59IGZyb20gJy4vcHVibGljX3RvX2RlcHJlY2F0ZSc7XG5leHBvcnQge1xuICBvZkFjdGlvbixcbiAgb2ZBY3Rpb25EaXNwYXRjaGVkLFxuICBvZkFjdGlvblN1Y2Nlc3NmdWwsXG4gIG9mQWN0aW9uQ2FuY2VsZWQsXG4gIG9mQWN0aW9uRXJyb3JlZCxcbiAgb2ZBY3Rpb25Db21wbGV0ZWQsXG4gIEFjdGlvbkNvbXBsZXRpb24sXG59IGZyb20gJy4vb3BlcmF0b3JzL29mLWFjdGlvbic7XG5leHBvcnQge1xuICBTdGF0ZUNvbnRleHQsXG4gIFN0YXRlT3BlcmF0b3IsXG4gIE5neHNPbkluaXQsXG4gIE5neHNBZnRlckJvb3RzdHJhcCxcbiAgTmd4c09uQ2hhbmdlcyxcbiAgTmd4c01vZHVsZU9wdGlvbnMsXG4gIE5neHNTaW1wbGVDaGFuZ2UsXG59IGZyb20gJy4vc3ltYm9scyc7XG5leHBvcnQgeyBTZWxlY3RvciB9IGZyb20gJy4vZGVjb3JhdG9ycy9zZWxlY3Rvci9zZWxlY3Rvcic7XG5leHBvcnQgeyBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlLCBhY3Rpb25NYXRjaGVyIH0gZnJvbSAnLi91dGlscy91dGlscyc7XG5leHBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJy4vdXRpbHMvc2VsZWN0b3ItdXRpbHMnO1xuZXhwb3J0IHsgTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9leGVjdXRpb24vc3ltYm9scyc7XG5leHBvcnQgeyBBY3Rpb25UeXBlLCBBY3Rpb25PcHRpb25zIH0gZnJvbSAnLi9hY3Rpb25zL3N5bWJvbHMnO1xuZXhwb3J0IHsgTm9vcE5neHNFeGVjdXRpb25TdHJhdGVneSB9IGZyb20gJy4vZXhlY3V0aW9uL25vb3Atbmd4cy1leGVjdXRpb24tc3RyYXRlZ3knO1xuZXhwb3J0IHsgU3RhdGVUb2tlbiB9IGZyb20gJy4vc3RhdGUtdG9rZW4vc3RhdGUtdG9rZW4nO1xuXG5leHBvcnQgeyBOZ3hzRGV2ZWxvcG1lbnRPcHRpb25zIH0gZnJvbSAnLi9kZXYtZmVhdHVyZXMvc3ltYm9scyc7XG5leHBvcnQgeyBOZ3hzRGV2ZWxvcG1lbnRNb2R1bGUgfSBmcm9tICcuL2Rldi1mZWF0dXJlcy9uZ3hzLWRldmVsb3BtZW50Lm1vZHVsZSc7XG5leHBvcnQgeyBOZ3hzVW5oYW5kbGVkQWN0aW9uc0xvZ2dlciB9IGZyb20gJy4vZGV2LWZlYXR1cmVzL25neHMtdW5oYW5kbGVkLWFjdGlvbnMtbG9nZ2VyJztcblxuZXhwb3J0IHtcbiAgY3JlYXRlTW9kZWxTZWxlY3RvcixcbiAgY3JlYXRlUGlja1NlbGVjdG9yLFxuICBjcmVhdGVQcm9wZXJ0eVNlbGVjdG9ycyxcbiAgUHJvcGVydHlTZWxlY3RvcnMsXG4gIFR5cGVkU2VsZWN0b3IsXG59IGZyb20gJy4vc2VsZWN0b3JzJztcbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { createSelector } from '../utils/selector-utils';
|
|
2
|
+
import { ensureValidSelector, ensureValueProvided } from './selector-checks.util';
|
|
3
|
+
export function createModelSelector(selectorMap) {
|
|
4
|
+
const selectorKeys = Object.keys(selectorMap);
|
|
5
|
+
const selectors = Object.values(selectorMap);
|
|
6
|
+
ensureValidSelectorMap({
|
|
7
|
+
prefix: '[createModelSelector]',
|
|
8
|
+
selectorMap,
|
|
9
|
+
selectorKeys,
|
|
10
|
+
selectors,
|
|
11
|
+
});
|
|
12
|
+
return createSelector(selectors, (...args) => {
|
|
13
|
+
return selectorKeys.reduce((obj, key, index) => {
|
|
14
|
+
obj[key] = args[index];
|
|
15
|
+
return obj;
|
|
16
|
+
}, {});
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function ensureValidSelectorMap({ prefix, selectorMap, selectorKeys, selectors, }) {
|
|
20
|
+
ensureValueProvided(selectorMap, { prefix, noun: 'selector map' });
|
|
21
|
+
ensureValueProvided(typeof selectorMap === 'object', { prefix, noun: 'valid selector map' });
|
|
22
|
+
ensureValueProvided(selectorKeys.length, { prefix, noun: 'non-empty selector map' });
|
|
23
|
+
selectors.forEach((selector, index) => ensureValidSelector(selector, {
|
|
24
|
+
prefix,
|
|
25
|
+
noun: `selector for the '${selectorKeys[index]}' property`,
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1vZGVsLXNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL3NlbGVjdG9ycy9jcmVhdGUtbW9kZWwtc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBYWxGLE1BQU0sVUFBVSxtQkFBbUIsQ0FBd0IsV0FBYztJQUN2RSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0Msc0JBQXNCLENBQUk7UUFDeEIsTUFBTSxFQUFFLHVCQUF1QjtRQUMvQixXQUFXO1FBQ1gsWUFBWTtRQUNaLFNBQVM7S0FDVixDQUFDLENBQUM7SUFFSCxPQUFPLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFO1FBQzNDLE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDNUMsR0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFxQixDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFxQixDQUFDO0FBQ3pCLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUF3QixFQUNyRCxNQUFNLEVBQ04sV0FBVyxFQUNYLFlBQVksRUFDWixTQUFTLEdBTVY7SUFDQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDbkUsbUJBQW1CLENBQUMsT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDN0YsbUJBQW1CLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDcEMsbUJBQW1CLENBQUMsUUFBUSxFQUFFO1FBQzVCLE1BQU07UUFDTixJQUFJLEVBQUUscUJBQXFCLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWTtLQUMzRCxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJy4uL3V0aWxzL3NlbGVjdG9yLXV0aWxzJztcbmltcG9ydCB7IGVuc3VyZVZhbGlkU2VsZWN0b3IsIGVuc3VyZVZhbHVlUHJvdmlkZWQgfSBmcm9tICcuL3NlbGVjdG9yLWNoZWNrcy51dGlsJztcbmltcG9ydCB7IFR5cGVkU2VsZWN0b3IgfSBmcm9tICcuL3NlbGVjdG9yLXR5cGVzLnV0aWwnO1xuXG5pbnRlcmZhY2UgU2VsZWN0b3JNYXAge1xuICBba2V5OiBzdHJpbmddOiBUeXBlZFNlbGVjdG9yPGFueT47XG59XG5cbnR5cGUgTW9kZWxTZWxlY3RvcjxUIGV4dGVuZHMgU2VsZWN0b3JNYXA+ID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBNYXBwZWRSZXN1bHQ8VD47XG5cbnR5cGUgTWFwcGVkUmVzdWx0PFRTZWxlY3Rvck1hcD4gPSB7XG4gIFtQIGluIGtleW9mIFRTZWxlY3Rvck1hcF06IFRTZWxlY3Rvck1hcFtQXSBleHRlbmRzIFR5cGVkU2VsZWN0b3I8aW5mZXIgUj4gPyBSIDogbmV2ZXI7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTW9kZWxTZWxlY3RvcjxUIGV4dGVuZHMgU2VsZWN0b3JNYXA+KHNlbGVjdG9yTWFwOiBUKTogTW9kZWxTZWxlY3RvcjxUPiB7XG4gIGNvbnN0IHNlbGVjdG9yS2V5cyA9IE9iamVjdC5rZXlzKHNlbGVjdG9yTWFwKTtcbiAgY29uc3Qgc2VsZWN0b3JzID0gT2JqZWN0LnZhbHVlcyhzZWxlY3Rvck1hcCk7XG4gIGVuc3VyZVZhbGlkU2VsZWN0b3JNYXA8VD4oe1xuICAgIHByZWZpeDogJ1tjcmVhdGVNb2RlbFNlbGVjdG9yXScsXG4gICAgc2VsZWN0b3JNYXAsXG4gICAgc2VsZWN0b3JLZXlzLFxuICAgIHNlbGVjdG9ycyxcbiAgfSk7XG5cbiAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKHNlbGVjdG9ycywgKC4uLmFyZ3MpID0+IHtcbiAgICByZXR1cm4gc2VsZWN0b3JLZXlzLnJlZHVjZSgob2JqLCBrZXksIGluZGV4KSA9PiB7XG4gICAgICAob2JqIGFzIGFueSlba2V5XSA9IGFyZ3NbaW5kZXhdO1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9LCB7fSBhcyBNYXBwZWRSZXN1bHQ8VD4pO1xuICB9KSBhcyBNb2RlbFNlbGVjdG9yPFQ+O1xufVxuXG5mdW5jdGlvbiBlbnN1cmVWYWxpZFNlbGVjdG9yTWFwPFQgZXh0ZW5kcyBTZWxlY3Rvck1hcD4oe1xuICBwcmVmaXgsXG4gIHNlbGVjdG9yTWFwLFxuICBzZWxlY3RvcktleXMsXG4gIHNlbGVjdG9ycyxcbn06IHtcbiAgcHJlZml4OiBzdHJpbmc7XG4gIHNlbGVjdG9yTWFwOiBUO1xuICBzZWxlY3RvcktleXM6IHN0cmluZ1tdO1xuICBzZWxlY3RvcnM6IFR5cGVkU2VsZWN0b3I8YW55PltdO1xufSkge1xuICBlbnN1cmVWYWx1ZVByb3ZpZGVkKHNlbGVjdG9yTWFwLCB7IHByZWZpeCwgbm91bjogJ3NlbGVjdG9yIG1hcCcgfSk7XG4gIGVuc3VyZVZhbHVlUHJvdmlkZWQodHlwZW9mIHNlbGVjdG9yTWFwID09PSAnb2JqZWN0JywgeyBwcmVmaXgsIG5vdW46ICd2YWxpZCBzZWxlY3RvciBtYXAnIH0pO1xuICBlbnN1cmVWYWx1ZVByb3ZpZGVkKHNlbGVjdG9yS2V5cy5sZW5ndGgsIHsgcHJlZml4LCBub3VuOiAnbm9uLWVtcHR5IHNlbGVjdG9yIG1hcCcgfSk7XG4gIHNlbGVjdG9ycy5mb3JFYWNoKChzZWxlY3RvciwgaW5kZXgpID0+XG4gICAgZW5zdXJlVmFsaWRTZWxlY3RvcihzZWxlY3Rvciwge1xuICAgICAgcHJlZml4LFxuICAgICAgbm91bjogYHNlbGVjdG9yIGZvciB0aGUgJyR7c2VsZWN0b3JLZXlzW2luZGV4XX0nIHByb3BlcnR5YCxcbiAgICB9KVxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createSelector } from '../utils/selector-utils';
|
|
2
|
+
import { ensureValidSelector } from './selector-checks.util';
|
|
3
|
+
export function createPickSelector(selector, keys) {
|
|
4
|
+
ensureValidSelector(selector, { prefix: '[createPickSelector]' });
|
|
5
|
+
const validKeys = keys.filter(Boolean);
|
|
6
|
+
const selectors = validKeys.map((key) => createSelector([selector], (s) => s[key]));
|
|
7
|
+
return createSelector([...selectors], (...props) => {
|
|
8
|
+
return validKeys.reduce((acc, key, index) => {
|
|
9
|
+
acc[key] = props[index];
|
|
10
|
+
return acc;
|
|
11
|
+
}, {});
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXBpY2stc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc2VsZWN0b3JzL2NyZWF0ZS1waWNrLXNlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU83RCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFFBQStCLEVBQy9CLElBQWU7SUFFZixtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUYsT0FBTyxjQUFjLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFpQyxFQUFFLEVBQUU7UUFDN0UsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMxQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQWdDLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJy4uL3V0aWxzL3NlbGVjdG9yLXV0aWxzJztcbmltcG9ydCB7IGVuc3VyZVZhbGlkU2VsZWN0b3IgfSBmcm9tICcuL3NlbGVjdG9yLWNoZWNrcy51dGlsJztcbmltcG9ydCB7IFR5cGVkU2VsZWN0b3IgfSBmcm9tICcuL3NlbGVjdG9yLXR5cGVzLnV0aWwnO1xuXG50eXBlIEtleXNUb1ZhbHVlczxULCBLZXlzIGV4dGVuZHMgKGtleW9mIFQpW10+ID0ge1xuICBbSW5kZXggaW4ga2V5b2YgS2V5c106IEtleXNbSW5kZXhdIGV4dGVuZHMga2V5b2YgVCA/IFRbS2V5c1tJbmRleF1dIDogbmV2ZXI7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGlja1NlbGVjdG9yPFRNb2RlbCwgS2V5cyBleHRlbmRzIChrZXlvZiBUTW9kZWwpW10+KFxuICBzZWxlY3RvcjogVHlwZWRTZWxlY3RvcjxUTW9kZWw+LFxuICBrZXlzOiBbLi4uS2V5c11cbikge1xuICBlbnN1cmVWYWxpZFNlbGVjdG9yKHNlbGVjdG9yLCB7IHByZWZpeDogJ1tjcmVhdGVQaWNrU2VsZWN0b3JdJyB9KTtcbiAgY29uc3QgdmFsaWRLZXlzID0ga2V5cy5maWx0ZXIoQm9vbGVhbik7XG4gIGNvbnN0IHNlbGVjdG9ycyA9IHZhbGlkS2V5cy5tYXAoKGtleSkgPT4gY3JlYXRlU2VsZWN0b3IoW3NlbGVjdG9yXSwgKHM6IFRNb2RlbCkgPT4gc1trZXldKSk7XG4gIHJldHVybiBjcmVhdGVTZWxlY3RvcihbLi4uc2VsZWN0b3JzXSwgKC4uLnByb3BzOiBLZXlzVG9WYWx1ZXM8VE1vZGVsLCBLZXlzPikgPT4ge1xuICAgIHJldHVybiB2YWxpZEtleXMucmVkdWNlKChhY2MsIGtleSwgaW5kZXgpID0+IHtcbiAgICAgIGFjY1trZXldID0gcHJvcHNbaW5kZXhdO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBQaWNrPFRNb2RlbCwgS2V5c1tudW1iZXJdPik7XG4gIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { createSelector } from '../utils/selector-utils';
|
|
2
|
+
import { ensureValidSelector } from './selector-checks.util';
|
|
3
|
+
export function createPropertySelectors(parentSelector) {
|
|
4
|
+
ensureValidSelector(parentSelector, {
|
|
5
|
+
prefix: '[createPropertySelectors]',
|
|
6
|
+
noun: 'parent selector',
|
|
7
|
+
});
|
|
8
|
+
const cache = {};
|
|
9
|
+
return new Proxy({}, {
|
|
10
|
+
get(_target, prop) {
|
|
11
|
+
const selector = cache[prop] ||
|
|
12
|
+
createSelector([parentSelector], (s) => s === null || s === void 0 ? void 0 : s[prop]);
|
|
13
|
+
cache[prop] = selector;
|
|
14
|
+
return selector;
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXByb3BlcnR5LXNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9zZWxlY3RvcnMvY3JlYXRlLXByb3BlcnR5LXNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFTN0QsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxjQUFtQztJQUVuQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUU7UUFDbEMsTUFBTSxFQUFFLDJCQUEyQjtRQUNuQyxJQUFJLEVBQUUsaUJBQWlCO0tBQ3hCLENBQUMsQ0FBQztJQUNILE1BQU0sS0FBSyxHQUF1QyxFQUFFLENBQUM7SUFDckQsT0FBTyxJQUFJLEtBQUssQ0FDZCxFQUEwQyxFQUMxQztRQUNFLEdBQUcsQ0FBQyxPQUFZLEVBQUUsSUFBa0I7WUFDbEMsTUFBTSxRQUFRLEdBQ1osS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDVixjQUFjLENBQ2IsQ0FBQyxjQUFjLENBQUMsRUFDaEIsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBRCxDQUFDLHVCQUFELENBQUMsQ0FBRyxJQUFJLENBQUMsQ0FDa0IsQ0FBQztZQUMvQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO1lBQ3ZCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7S0FDeUMsQ0FDN0MsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJy4uL3V0aWxzL3NlbGVjdG9yLXV0aWxzJztcbmltcG9ydCB7IGVuc3VyZVZhbGlkU2VsZWN0b3IgfSBmcm9tICcuL3NlbGVjdG9yLWNoZWNrcy51dGlsJztcbmltcG9ydCB7IFNlbGVjdG9yRGVmIH0gZnJvbSAnLi9zZWxlY3Rvci10eXBlcy51dGlsJztcblxuZXhwb3J0IHR5cGUgUHJvcGVydHlTZWxlY3RvcnM8VE1vZGVsPiA9IHtcbiAgW1AgaW4ga2V5b2YgTm9uTnVsbGFibGU8VE1vZGVsPl0tPzogKFxuICAgIG1vZGVsOiBUTW9kZWxcbiAgKSA9PiBUTW9kZWwgZXh0ZW5kcyBudWxsIHwgdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogTm9uTnVsbGFibGU8VE1vZGVsPltQXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm9wZXJ0eVNlbGVjdG9yczxUTW9kZWw+KFxuICBwYXJlbnRTZWxlY3RvcjogU2VsZWN0b3JEZWY8VE1vZGVsPlxuKTogUHJvcGVydHlTZWxlY3RvcnM8VE1vZGVsPiB7XG4gIGVuc3VyZVZhbGlkU2VsZWN0b3IocGFyZW50U2VsZWN0b3IsIHtcbiAgICBwcmVmaXg6ICdbY3JlYXRlUHJvcGVydHlTZWxlY3RvcnNdJyxcbiAgICBub3VuOiAncGFyZW50IHNlbGVjdG9yJyxcbiAgfSk7XG4gIGNvbnN0IGNhY2hlOiBQYXJ0aWFsPFByb3BlcnR5U2VsZWN0b3JzPFRNb2RlbD4+ID0ge307XG4gIHJldHVybiBuZXcgUHJveHk8UHJvcGVydHlTZWxlY3RvcnM8VE1vZGVsPj4oXG4gICAge30gYXMgdW5rbm93biBhcyBQcm9wZXJ0eVNlbGVjdG9yczxUTW9kZWw+LFxuICAgIHtcbiAgICAgIGdldChfdGFyZ2V0OiBhbnksIHByb3A6IGtleW9mIFRNb2RlbCkge1xuICAgICAgICBjb25zdCBzZWxlY3RvciA9XG4gICAgICAgICAgY2FjaGVbcHJvcF0gfHxcbiAgICAgICAgICAoY3JlYXRlU2VsZWN0b3IoXG4gICAgICAgICAgICBbcGFyZW50U2VsZWN0b3JdLFxuICAgICAgICAgICAgKHM6IFRNb2RlbCkgPT4gcz8uW3Byb3BdXG4gICAgICAgICAgKSBhcyBQcm9wZXJ0eVNlbGVjdG9yczxUTW9kZWw+W3R5cGVvZiBwcm9wXSk7XG4gICAgICAgIGNhY2hlW3Byb3BdID0gc2VsZWN0b3I7XG4gICAgICAgIHJldHVybiBzZWxlY3RvcjtcbiAgICAgIH0sXG4gICAgfSBhcyBQcm94eUhhbmRsZXI8UHJvcGVydHlTZWxlY3RvcnM8VE1vZGVsPj5cbiAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './create-model-selector';
|
|
2
|
+
export * from './create-pick-selector';
|
|
3
|
+
export * from './create-property-selectors';
|
|
4
|
+
export * from './selector-types.util';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc2VsZWN0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1tb2RlbC1zZWxlY3Rvcic7XG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1waWNrLXNlbGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLXByb3BlcnR5LXNlbGVjdG9ycyc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdG9yLXR5cGVzLnV0aWwnO1xuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { getSelectorMetadata, getStoreMetadata } from '../internal/internals';
|
|
2
|
+
export function ensureValidSelector(selector, context = {}) {
|
|
3
|
+
const noun = context.noun || 'selector';
|
|
4
|
+
const prefix = context.prefix ? context.prefix + ': ' : '';
|
|
5
|
+
ensureValueProvided(selector, { noun, prefix: context.prefix });
|
|
6
|
+
const metadata = getSelectorMetadata(selector) || getStoreMetadata(selector);
|
|
7
|
+
if (!metadata) {
|
|
8
|
+
throw new Error(`${prefix}The value provided as the ${noun} is not a valid selector.`);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function ensureValueProvided(value, context = {}) {
|
|
12
|
+
const noun = context.noun || 'value';
|
|
13
|
+
const prefix = context.prefix ? context.prefix + ': ' : '';
|
|
14
|
+
if (!value) {
|
|
15
|
+
throw new Error(`${prefix}A ${noun} must be provided.`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItY2hlY2tzLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc2VsZWN0b3JzL3NlbGVjdG9yLWNoZWNrcy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRzlFLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsUUFBMEIsRUFDMUIsVUFBOEMsRUFBRTtJQUVoRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQztJQUN4QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzNELG1CQUFtQixDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDaEUsTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksZ0JBQWdCLENBQUMsUUFBZSxDQUFDLENBQUM7SUFDcEYsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxNQUFNLDZCQUE2QixJQUFJLDJCQUEyQixDQUFDLENBQUM7S0FDeEY7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxLQUFVLEVBQ1YsVUFBOEMsRUFBRTtJQUVoRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQztJQUNyQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzNELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsTUFBTSxLQUFLLElBQUksb0JBQW9CLENBQUMsQ0FBQztLQUN6RDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRTZWxlY3Rvck1ldGFkYXRhLCBnZXRTdG9yZU1ldGFkYXRhIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcbmltcG9ydCB7IFNlbGVjdG9yRGVmIH0gZnJvbSAnLi9zZWxlY3Rvci10eXBlcy51dGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVZhbGlkU2VsZWN0b3IoXG4gIHNlbGVjdG9yOiBTZWxlY3RvckRlZjxhbnk+LFxuICBjb250ZXh0OiB7IHByZWZpeD86IHN0cmluZzsgbm91bj86IHN0cmluZyB9ID0ge31cbikge1xuICBjb25zdCBub3VuID0gY29udGV4dC5ub3VuIHx8ICdzZWxlY3Rvcic7XG4gIGNvbnN0IHByZWZpeCA9IGNvbnRleHQucHJlZml4ID8gY29udGV4dC5wcmVmaXggKyAnOiAnIDogJyc7XG4gIGVuc3VyZVZhbHVlUHJvdmlkZWQoc2VsZWN0b3IsIHsgbm91biwgcHJlZml4OiBjb250ZXh0LnByZWZpeCB9KTtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRTZWxlY3Rvck1ldGFkYXRhKHNlbGVjdG9yKSB8fCBnZXRTdG9yZU1ldGFkYXRhKHNlbGVjdG9yIGFzIGFueSk7XG4gIGlmICghbWV0YWRhdGEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCR7cHJlZml4fVRoZSB2YWx1ZSBwcm92aWRlZCBhcyB0aGUgJHtub3VufSBpcyBub3QgYSB2YWxpZCBzZWxlY3Rvci5gKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlVmFsdWVQcm92aWRlZChcbiAgdmFsdWU6IGFueSxcbiAgY29udGV4dDogeyBwcmVmaXg/OiBzdHJpbmc7IG5vdW4/OiBzdHJpbmcgfSA9IHt9XG4pIHtcbiAgY29uc3Qgbm91biA9IGNvbnRleHQubm91biB8fCAndmFsdWUnO1xuICBjb25zdCBwcmVmaXggPSBjb250ZXh0LnByZWZpeCA/IGNvbnRleHQucHJlZml4ICsgJzogJyA6ICcnO1xuICBpZiAoIXZhbHVlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke3ByZWZpeH1BICR7bm91bn0gbXVzdCBiZSBwcm92aWRlZC5gKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItdHlwZXMudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9zZWxlY3RvcnMvc2VsZWN0b3ItdHlwZXMudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVDbGFzcyB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7IFN0YXRlVG9rZW4gfSBmcm9tICcuLi9zdGF0ZS10b2tlbi9zdGF0ZS10b2tlbic7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdG9yRnVuYzxUTW9kZWw+ID0gKC4uLmFyZzogYW55W10pID0+IFRNb2RlbDtcblxuZXhwb3J0IHR5cGUgVHlwZWRTZWxlY3RvcjxUTW9kZWw+ID0gU3RhdGVUb2tlbjxUTW9kZWw+IHwgU2VsZWN0b3JGdW5jPFRNb2RlbD47XG5cbmV4cG9ydCB0eXBlIFN0YXRlU2VsZWN0b3IgPSBTdGF0ZUNsYXNzPGFueT47XG5cbmV4cG9ydCB0eXBlIFNlbGVjdG9yRGVmPFRNb2RlbD4gPSBTdGF0ZVNlbGVjdG9yIHwgVHlwZWRTZWxlY3RvcjxUTW9kZWw+O1xuXG5leHBvcnQgdHlwZSBTZWxlY3RvclJldHVyblR5cGU8VCBleHRlbmRzIFNlbGVjdG9yRGVmPGFueT4+ID0gVCBleHRlbmRzIFN0YXRlVG9rZW48aW5mZXIgUjE+XG4gID8gUjFcbiAgOiBUIGV4dGVuZHMgU2VsZWN0b3JGdW5jPGluZmVyIFIyPlxuICA/IFIyXG4gIDogVCBleHRlbmRzIFN0YXRlQ2xhc3M8YW55PlxuICA/IGFueSAvKiAoQmxvY2sgY29tbWVudCB0byBzdG9wIHByZXR0aWVyIGJyZWFraW5nIHRoZSBjb21tZW50IGJlbG93KVxuICAvLyBJZiB0aGUgc3RhdGUgc2VsZWN0b3IgaXMgYSBjbGFzcyB0aGVuIHdlIHNob3VsZCBpbmZlciBpdHMgcmV0dXJuIHR5cGUgdG8gYGFueWAsIGFuZCBub3QgdG8gYHVua25vd25gLlxuICAvLyBTaW5jZSB3ZSdsbCBnZXQgYW4gZXJyb3IgdGhhdCBgVHlwZSAndW5rbm93bicgaXMgbm90IGFzc2lnbmFibGUgdG8gdHlwZSAnQXV0aFN0YXRlTW9kZWwnLmBcbiAgLy8gVGhlIGB1bmtub3duYCB0eXBlIGlzIG5vdCBvdmVycmlkYWJsZSB3aGVuIHRoZSBzdHJpY3QgbW9kZSBpcyBlbmFibGVkOlxuICAvLyBmdW5jdGlvbiBkb1NvbWV0aGluZ1dpdGhBcnJheShhcnJheTogbnVtYmVyW10sIGZhY3Rvcnk6ICh4OiB1bmtub3duKSA9PiB2b2lkKSB7XG4gIC8vICAgYXJyYXkuZm9yRWFjaChmYWN0b3J5KTtcbiAgLy8gfVxuICAvLyBkb1NvbWV0aGluZ1dpdGhBcnJheShbMSwgMl0sICh4OiBudW1iZXIpID0+IGNvbnNvbGUubG9nKHgpKTtcbiAgLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+flxuICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgJ3Vua25vd24nIGlzIG5vdCBhc3NpZ25hYmxlIHRvIHR5cGUgJ251bWJlcicuXG4gICovXG4gIDogbmV2ZXI7XG4iXX0=
|
package/fesm2015/ngxs-store.js
CHANGED
|
@@ -2161,6 +2161,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
2161
2161
|
type: NgModule
|
|
2162
2162
|
}] });
|
|
2163
2163
|
|
|
2164
|
+
function ensureValidSelector(selector, context = {}) {
|
|
2165
|
+
const noun = context.noun || 'selector';
|
|
2166
|
+
const prefix = context.prefix ? context.prefix + ': ' : '';
|
|
2167
|
+
ensureValueProvided(selector, { noun, prefix: context.prefix });
|
|
2168
|
+
const metadata = getSelectorMetadata$1(selector) || getStoreMetadata$1(selector);
|
|
2169
|
+
if (!metadata) {
|
|
2170
|
+
throw new Error(`${prefix}The value provided as the ${noun} is not a valid selector.`);
|
|
2171
|
+
}
|
|
2172
|
+
}
|
|
2173
|
+
function ensureValueProvided(value, context = {}) {
|
|
2174
|
+
const noun = context.noun || 'value';
|
|
2175
|
+
const prefix = context.prefix ? context.prefix + ': ' : '';
|
|
2176
|
+
if (!value) {
|
|
2177
|
+
throw new Error(`${prefix}A ${noun} must be provided.`);
|
|
2178
|
+
}
|
|
2179
|
+
}
|
|
2180
|
+
|
|
2181
|
+
function createModelSelector(selectorMap) {
|
|
2182
|
+
const selectorKeys = Object.keys(selectorMap);
|
|
2183
|
+
const selectors = Object.values(selectorMap);
|
|
2184
|
+
ensureValidSelectorMap({
|
|
2185
|
+
prefix: '[createModelSelector]',
|
|
2186
|
+
selectorMap,
|
|
2187
|
+
selectorKeys,
|
|
2188
|
+
selectors,
|
|
2189
|
+
});
|
|
2190
|
+
return createSelector(selectors, (...args) => {
|
|
2191
|
+
return selectorKeys.reduce((obj, key, index) => {
|
|
2192
|
+
obj[key] = args[index];
|
|
2193
|
+
return obj;
|
|
2194
|
+
}, {});
|
|
2195
|
+
});
|
|
2196
|
+
}
|
|
2197
|
+
function ensureValidSelectorMap({ prefix, selectorMap, selectorKeys, selectors, }) {
|
|
2198
|
+
ensureValueProvided(selectorMap, { prefix, noun: 'selector map' });
|
|
2199
|
+
ensureValueProvided(typeof selectorMap === 'object', { prefix, noun: 'valid selector map' });
|
|
2200
|
+
ensureValueProvided(selectorKeys.length, { prefix, noun: 'non-empty selector map' });
|
|
2201
|
+
selectors.forEach((selector, index) => ensureValidSelector(selector, {
|
|
2202
|
+
prefix,
|
|
2203
|
+
noun: `selector for the '${selectorKeys[index]}' property`,
|
|
2204
|
+
}));
|
|
2205
|
+
}
|
|
2206
|
+
|
|
2207
|
+
function createPickSelector(selector, keys) {
|
|
2208
|
+
ensureValidSelector(selector, { prefix: '[createPickSelector]' });
|
|
2209
|
+
const validKeys = keys.filter(Boolean);
|
|
2210
|
+
const selectors = validKeys.map((key) => createSelector([selector], (s) => s[key]));
|
|
2211
|
+
return createSelector([...selectors], (...props) => {
|
|
2212
|
+
return validKeys.reduce((acc, key, index) => {
|
|
2213
|
+
acc[key] = props[index];
|
|
2214
|
+
return acc;
|
|
2215
|
+
}, {});
|
|
2216
|
+
});
|
|
2217
|
+
}
|
|
2218
|
+
|
|
2219
|
+
function createPropertySelectors(parentSelector) {
|
|
2220
|
+
ensureValidSelector(parentSelector, {
|
|
2221
|
+
prefix: '[createPropertySelectors]',
|
|
2222
|
+
noun: 'parent selector',
|
|
2223
|
+
});
|
|
2224
|
+
const cache = {};
|
|
2225
|
+
return new Proxy({}, {
|
|
2226
|
+
get(_target, prop) {
|
|
2227
|
+
const selector = cache[prop] ||
|
|
2228
|
+
createSelector([parentSelector], (s) => s === null || s === void 0 ? void 0 : s[prop]);
|
|
2229
|
+
cache[prop] = selector;
|
|
2230
|
+
return selector;
|
|
2231
|
+
},
|
|
2232
|
+
});
|
|
2233
|
+
}
|
|
2234
|
+
|
|
2164
2235
|
/**
|
|
2165
2236
|
* The public api for consumers of @ngxs/store
|
|
2166
2237
|
*/
|
|
@@ -2169,5 +2240,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
2169
2240
|
* Generated bundle index. Do not edit.
|
|
2170
2241
|
*/
|
|
2171
2242
|
|
|
2172
|
-
export { Action, Actions, InitState, NGXS_PLUGINS, NgxsDevelopmentModule, NgxsModule, NgxsSimpleChange, NgxsUnhandledActionsLogger, NoopNgxsExecutionStrategy, Select, Selector, SelectorOptions, State, StateStream, StateToken, Store, UpdateState, actionMatcher, createSelector, ensureSelectorMetadata, ensureStoreMetadata, getActionTypeFromInstance, getSelectorMetadata, getStoreMetadata, getValue, ofAction, ofActionCanceled, ofActionCompleted, ofActionDispatched, ofActionErrored, ofActionSuccessful, setValue, NgxsFeatureModule as ɵNgxsFeatureModule, NgxsRootModule as ɵNgxsRootModule };
|
|
2243
|
+
export { Action, Actions, InitState, NGXS_PLUGINS, NgxsDevelopmentModule, NgxsModule, NgxsSimpleChange, NgxsUnhandledActionsLogger, NoopNgxsExecutionStrategy, Select, Selector, SelectorOptions, State, StateStream, StateToken, Store, UpdateState, actionMatcher, createModelSelector, createPickSelector, createPropertySelectors, createSelector, ensureSelectorMetadata, ensureStoreMetadata, getActionTypeFromInstance, getSelectorMetadata, getStoreMetadata, getValue, ofAction, ofActionCanceled, ofActionCompleted, ofActionDispatched, ofActionErrored, ofActionSuccessful, setValue, NgxsFeatureModule as ɵNgxsFeatureModule, NgxsRootModule as ɵNgxsRootModule };
|
|
2173
2244
|
//# sourceMappingURL=ngxs-store.js.map
|