@ngxs/store 3.7.6-dev.master-5f9405c → 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.
@@ -5,31 +5,31 @@ import { createSelector } from '../../utils/selector-utils';
5
5
  */
6
6
  export function Selector(selectors) {
7
7
  return (target, key, descriptor) => {
8
+ descriptor || (descriptor = Object.getOwnPropertyDescriptor(target, key));
9
+ const originalFn = descriptor === null || descriptor === void 0 ? void 0 : descriptor.value;
8
10
  // Caretaker note: we have still left the `typeof` condition in order to avoid
9
11
  // creating a breaking change for projects that still use the View Engine.
10
12
  if (typeof ngDevMode === 'undefined' || ngDevMode) {
11
- const isNotMethod = !(descriptor && descriptor.value !== null);
12
- if (isNotMethod) {
13
+ if (originalFn && typeof originalFn !== 'function') {
13
14
  throwSelectorDecoratorError();
14
15
  }
15
16
  }
16
- const originalFn = descriptor.value;
17
17
  const memoizedFn = createSelector(selectors, originalFn, {
18
18
  containerClass: target,
19
19
  selectorName: key.toString(),
20
20
  getSelectorOptions() {
21
21
  return {};
22
- }
22
+ },
23
23
  });
24
24
  const newDescriptor = {
25
25
  configurable: true,
26
26
  get() {
27
27
  return memoizedFn;
28
- }
28
+ },
29
29
  };
30
30
  // Add hidden property to descriptor
31
31
  newDescriptor['originalFn'] = originalFn;
32
32
  return newDescriptor;
33
33
  };
34
34
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvZGVjb3JhdG9ycy9zZWxlY3Rvci9zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHNUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFJLFNBQWU7SUFDekMsT0FBTyxDQUNMLE1BQVcsRUFDWCxHQUFvQixFQUNwQixVQUF1RCxFQUNILEVBQUU7UUFDdEQsOEVBQThFO1FBQzlFLDBFQUEwRTtRQUMxRSxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7WUFDakQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLFVBQVUsSUFBSSxVQUFVLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO1lBRS9ELElBQUksV0FBVyxFQUFFO2dCQUNmLDJCQUEyQixFQUFFLENBQUM7YUFDL0I7U0FDRjtRQUVELE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxVQUFpQixFQUFFO1lBQzlELGNBQWMsRUFBRSxNQUFNO1lBQ3RCLFlBQVksRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQzVCLGtCQUFrQjtnQkFDaEIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxhQUFhLEdBQUc7WUFDcEIsWUFBWSxFQUFFLElBQUk7WUFDbEIsR0FBRztnQkFDRCxPQUFPLFVBQVUsQ0FBQztZQUNwQixDQUFDO1NBQ0YsQ0FBQztRQUNGLG9DQUFvQztRQUM5QixhQUFjLENBQUMsWUFBWSxDQUFDLEdBQUcsVUFBVSxDQUFDO1FBQ2hELE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0aHJvd1NlbGVjdG9yRGVjb3JhdG9yRXJyb3IgfSBmcm9tICcuLi8uLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XG5pbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJy4uLy4uL3V0aWxzL3NlbGVjdG9yLXV0aWxzJztcbmltcG9ydCB7IFNlbGVjdG9yU3BlYywgU2VsZWN0b3JUeXBlIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuLyoqXG4gKiBEZWNvcmF0b3IgZm9yIG1lbW9pemluZyBhIHN0YXRlIHNlbGVjdG9yLlxuICovXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0b3I8VD4oc2VsZWN0b3JzPzogVFtdKTogU2VsZWN0b3JUeXBlPFQ+IHtcbiAgcmV0dXJuIDxVPihcbiAgICB0YXJnZXQ6IGFueSxcbiAgICBrZXk6IHN0cmluZyB8IHN5bWJvbCxcbiAgICBkZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxTZWxlY3RvclNwZWM8VCwgVT4+XG4gICk6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFNlbGVjdG9yU3BlYzxULCBVPj4gfCB2b2lkID0+IHtcbiAgICAvLyBDYXJldGFrZXIgbm90ZTogd2UgaGF2ZSBzdGlsbCBsZWZ0IHRoZSBgdHlwZW9mYCBjb25kaXRpb24gaW4gb3JkZXIgdG8gYXZvaWRcbiAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgIGNvbnN0IGlzTm90TWV0aG9kID0gIShkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IudmFsdWUgIT09IG51bGwpO1xuXG4gICAgICBpZiAoaXNOb3RNZXRob2QpIHtcbiAgICAgICAgdGhyb3dTZWxlY3RvckRlY29yYXRvckVycm9yKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3JpZ2luYWxGbiA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgY29uc3QgbWVtb2l6ZWRGbiA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdG9ycywgb3JpZ2luYWxGbiBhcyBhbnksIHtcbiAgICAgIGNvbnRhaW5lckNsYXNzOiB0YXJnZXQsXG4gICAgICBzZWxlY3Rvck5hbWU6IGtleS50b1N0cmluZygpLFxuICAgICAgZ2V0U2VsZWN0b3JPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgbmV3RGVzY3JpcHRvciA9IHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGdldCgpIHtcbiAgICAgICAgcmV0dXJuIG1lbW9pemVkRm47XG4gICAgICB9XG4gICAgfTtcbiAgICAvLyBBZGQgaGlkZGVuIHByb3BlcnR5IHRvIGRlc2NyaXB0b3JcbiAgICAoPGFueT5uZXdEZXNjcmlwdG9yKVsnb3JpZ2luYWxGbiddID0gb3JpZ2luYWxGbjtcbiAgICByZXR1cm4gbmV3RGVzY3JpcHRvcjtcbiAgfTtcbn1cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvZGVjb3JhdG9ycy9zZWxlY3Rvci9zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHNUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFJLFNBQWU7SUFDekMsT0FBTyxDQUNMLE1BQVcsRUFDWCxHQUFvQixFQUNwQixVQUF1RCxFQUNILEVBQUU7UUFDdEQsVUFBVSxLQUFWLFVBQVUsR0FBSyxNQUFNLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBRSxFQUFDO1FBRTdELE1BQU0sVUFBVSxHQUFHLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxLQUFLLENBQUM7UUFFckMsOEVBQThFO1FBQzlFLDBFQUEwRTtRQUMxRSxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7WUFDakQsSUFBSSxVQUFVLElBQUksT0FBTyxVQUFVLEtBQUssVUFBVSxFQUFFO2dCQUNsRCwyQkFBMkIsRUFBRSxDQUFDO2FBQy9CO1NBQ0Y7UUFFRCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLFVBQWlCLEVBQUU7WUFDOUQsY0FBYyxFQUFFLE1BQU07WUFDdEIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUU7WUFDNUIsa0JBQWtCO2dCQUNoQixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7U0FDRixDQUFDLENBQUM7UUFDSCxNQUFNLGFBQWEsR0FBRztZQUNwQixZQUFZLEVBQUUsSUFBSTtZQUNsQixHQUFHO2dCQUNELE9BQU8sVUFBVSxDQUFDO1lBQ3BCLENBQUM7U0FDRixDQUFDO1FBQ0Ysb0NBQW9DO1FBQzlCLGFBQWMsQ0FBQyxZQUFZLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDaEQsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRocm93U2VsZWN0b3JEZWNvcmF0b3JFcnJvciB9IGZyb20gJy4uLy4uL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnJztcbmltcG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnLi4vLi4vdXRpbHMvc2VsZWN0b3ItdXRpbHMnO1xuaW1wb3J0IHsgU2VsZWN0b3JTcGVjLCBTZWxlY3RvclR5cGUgfSBmcm9tICcuL3N5bWJvbHMnO1xuXG4vKipcbiAqIERlY29yYXRvciBmb3IgbWVtb2l6aW5nIGEgc3RhdGUgc2VsZWN0b3IuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZWxlY3RvcjxUPihzZWxlY3RvcnM/OiBUW10pOiBTZWxlY3RvclR5cGU8VD4ge1xuICByZXR1cm4gPFU+KFxuICAgIHRhcmdldDogYW55LFxuICAgIGtleTogc3RyaW5nIHwgc3ltYm9sLFxuICAgIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFNlbGVjdG9yU3BlYzxULCBVPj5cbiAgKTogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8U2VsZWN0b3JTcGVjPFQsIFU+PiB8IHZvaWQgPT4ge1xuICAgIGRlc2NyaXB0b3IgfHw9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpITtcblxuICAgIGNvbnN0IG9yaWdpbmFsRm4gPSBkZXNjcmlwdG9yPy52YWx1ZTtcblxuICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgaWYgKG9yaWdpbmFsRm4gJiYgdHlwZW9mIG9yaWdpbmFsRm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3dTZWxlY3RvckRlY29yYXRvckVycm9yKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbWVtb2l6ZWRGbiA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdG9ycywgb3JpZ2luYWxGbiBhcyBhbnksIHtcbiAgICAgIGNvbnRhaW5lckNsYXNzOiB0YXJnZXQsXG4gICAgICBzZWxlY3Rvck5hbWU6IGtleS50b1N0cmluZygpLFxuICAgICAgZ2V0U2VsZWN0b3JPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IG5ld0Rlc2NyaXB0b3IgPSB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQoKSB7XG4gICAgICAgIHJldHVybiBtZW1vaXplZEZuO1xuICAgICAgfSxcbiAgICB9O1xuICAgIC8vIEFkZCBoaWRkZW4gcHJvcGVydHkgdG8gZGVzY3JpcHRvclxuICAgICg8YW55Pm5ld0Rlc2NyaXB0b3IpWydvcmlnaW5hbEZuJ10gPSBvcmlnaW5hbEZuO1xuICAgIHJldHVybiBuZXdEZXNjcmlwdG9yO1xuICB9O1xufVxuIl19
@@ -5,6 +5,7 @@ import { selectorOptionsMetaAccessor } from '../utils/selector-utils';
5
5
  export function SelectorOptions(options) {
6
6
  return (function decorate(target, methodName, descriptor) {
7
7
  if (methodName) {
8
+ descriptor || (descriptor = Object.getOwnPropertyDescriptor(target, methodName));
8
9
  // Method Decorator
9
10
  const originalFn = descriptor.value || descriptor.originalFn;
10
11
  if (originalFn) {
@@ -17,4 +18,4 @@ export function SelectorOptions(options) {
17
18
  }
18
19
  });
19
20
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3Itb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9kZWNvcmF0b3JzL3NlbGVjdG9yLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQThCO0lBQzVELE9BQXlDLENBQ3ZDLFNBQVMsUUFBUSxDQUNmLE1BQVcsRUFDWCxVQUFrQixFQUNsQixVQUFzQztRQUV0QyxJQUFJLFVBQVUsRUFBRTtZQUNkLG1CQUFtQjtZQUNuQixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxJQUFVLFVBQVcsQ0FBQyxVQUFVLENBQUM7WUFDcEUsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsMkJBQTJCLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUNoRTtTQUNGO2FBQU07WUFDTCxrQkFBa0I7WUFDbEIsMkJBQTJCLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUMsQ0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XG5pbXBvcnQgeyBzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IgfSBmcm9tICcuLi91dGlscy9zZWxlY3Rvci11dGlscyc7XG5cbi8qKlxuICogRGVjb3JhdG9yIGZvciBzZXR0aW5nIHNlbGVjdG9yIG9wdGlvbnMgYXQgYSBtZXRob2Qgb3IgY2xhc3MgbGV2ZWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZWxlY3Rvck9wdGlvbnMob3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zKSB7XG4gIHJldHVybiA8Q2xhc3NEZWNvcmF0b3IgJiBNZXRob2REZWNvcmF0b3I+KFxuICAgIGZ1bmN0aW9uIGRlY29yYXRlPFQ+KFxuICAgICAgdGFyZ2V0OiBhbnksXG4gICAgICBtZXRob2ROYW1lOiBzdHJpbmcsXG4gICAgICBkZXNjcmlwdG9yOiBUeXBlZFByb3BlcnR5RGVzY3JpcHRvcjxUPlxuICAgICkge1xuICAgICAgaWYgKG1ldGhvZE5hbWUpIHtcbiAgICAgICAgLy8gTWV0aG9kIERlY29yYXRvclxuICAgICAgICBjb25zdCBvcmlnaW5hbEZuID0gZGVzY3JpcHRvci52YWx1ZSB8fCAoPGFueT5kZXNjcmlwdG9yKS5vcmlnaW5hbEZuO1xuICAgICAgICBpZiAob3JpZ2luYWxGbikge1xuICAgICAgICAgIHNlbGVjdG9yT3B0aW9uc01ldGFBY2Nlc3Nvci5kZWZpbmVPcHRpb25zKG9yaWdpbmFsRm4sIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBDbGFzcyBEZWNvcmF0b3JcbiAgICAgICAgc2VsZWN0b3JPcHRpb25zTWV0YUFjY2Vzc29yLmRlZmluZU9wdGlvbnModGFyZ2V0LCBvcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gICk7XG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3Itb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9kZWNvcmF0b3JzL3NlbGVjdG9yLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQThCO0lBQzVELE9BQXlDLENBQ3ZDLFNBQVMsUUFBUSxDQUNmLE1BQVcsRUFDWCxVQUFrQixFQUNsQixVQUFzQztRQUV0QyxJQUFJLFVBQVUsRUFBRTtZQUNkLFVBQVUsS0FBVixVQUFVLEdBQUssTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUUsRUFBQztZQUNwRSxtQkFBbUI7WUFDbkIsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssSUFBVSxVQUFXLENBQUMsVUFBVSxDQUFDO1lBQ3BFLElBQUksVUFBVSxFQUFFO2dCQUNkLDJCQUEyQixDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDaEU7U0FDRjthQUFNO1lBQ0wsa0JBQWtCO1lBQ2xCLDJCQUEyQixDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDLENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaGFyZWRTZWxlY3Rvck9wdGlvbnMgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgc2VsZWN0b3JPcHRpb25zTWV0YUFjY2Vzc29yIH0gZnJvbSAnLi4vdXRpbHMvc2VsZWN0b3ItdXRpbHMnO1xuXG4vKipcbiAqIERlY29yYXRvciBmb3Igc2V0dGluZyBzZWxlY3RvciBvcHRpb25zIGF0IGEgbWV0aG9kIG9yIGNsYXNzIGxldmVsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0b3JPcHRpb25zKG9wdGlvbnM6IFNoYXJlZFNlbGVjdG9yT3B0aW9ucykge1xuICByZXR1cm4gPENsYXNzRGVjb3JhdG9yICYgTWV0aG9kRGVjb3JhdG9yPihcbiAgICBmdW5jdGlvbiBkZWNvcmF0ZTxUPihcbiAgICAgIHRhcmdldDogYW55LFxuICAgICAgbWV0aG9kTmFtZTogc3RyaW5nLFxuICAgICAgZGVzY3JpcHRvcjogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8VD5cbiAgICApIHtcbiAgICAgIGlmIChtZXRob2ROYW1lKSB7XG4gICAgICAgIGRlc2NyaXB0b3IgfHw9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBtZXRob2ROYW1lKSE7XG4gICAgICAgIC8vIE1ldGhvZCBEZWNvcmF0b3JcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxGbiA9IGRlc2NyaXB0b3IudmFsdWUgfHwgKDxhbnk+ZGVzY3JpcHRvcikub3JpZ2luYWxGbjtcbiAgICAgICAgaWYgKG9yaWdpbmFsRm4pIHtcbiAgICAgICAgICBzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IuZGVmaW5lT3B0aW9ucyhvcmlnaW5hbEZuLCBvcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQ2xhc3MgRGVjb3JhdG9yXG4gICAgICAgIHNlbGVjdG9yT3B0aW9uc01ldGFBY2Nlc3Nvci5kZWZpbmVPcHRpb25zKHRhcmdldCwgb3B0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuICApO1xufVxuIl19
@@ -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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBK0IsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RSxrRkFBa0Y7QUFDbEYsMkVBQTJFO0FBQzNFLHVJQUF1STtBQUN2SSxzSUFBc0k7QUFDdEksNkhBQTZIO0FBQzdILGtDQUFrQztBQUNsQyxnSkFBZ0o7QUFDaEosMEpBQTBKO0FBQzFKLGlDQUFpQztBQUNqQyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUNMLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsaUJBQWlCLEVBRWxCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQU9MLGdCQUFnQixFQUNqQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHeEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3ZELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJy4vbW9kdWxlJztcbmV4cG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vZGVjb3JhdG9ycy9hY3Rpb24nO1xuZXhwb3J0IHsgU3RvcmUgfSBmcm9tICcuL3N0b3JlJztcbmV4cG9ydCB7IFN0YXRlIH0gZnJvbSAnLi9kZWNvcmF0b3JzL3N0YXRlJztcbmV4cG9ydCB7IFNlbGVjdCB9IGZyb20gJy4vZGVjb3JhdG9ycy9zZWxlY3Qvc2VsZWN0JztcbmV4cG9ydCB7IFNlbGVjdG9yT3B0aW9ucyB9IGZyb20gJy4vZGVjb3JhdG9ycy9zZWxlY3Rvci1vcHRpb25zJztcbmV4cG9ydCB7IEFjdGlvbnMsIEFjdGlvbkNvbnRleHQsIEFjdGlvblN0YXR1cyB9IGZyb20gJy4vYWN0aW9ucy1zdHJlYW0nO1xuXG4vLyBUT0RPOiB2NCAtIFdlIG5lZWQgdG8gY29tZSB1cCB3aXRoIGFuIGFsdGVybmF0aXZlIGFwaSB0byBleHBvc2luZyB0aGlzIG1ldGFkYXRhXG4vLyAgIGJlY2F1c2UgaXQgaXMgY3VycmVudGx5IHVzZWQgYnkgdGhlIGZvbGxvd2luZyAoYWZ0ZXIgYSBnaXRodWIgc2VhcmNoKTpcbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL25neHMtbGFicy9lbWl0dGVyL2Jsb2IvODFkMjFkMTM1NDAwZDdlMzc2NWZjNTc5ZTA5YWVhMjliMWI5MmJmNy9lbWl0dGVyL3NyYy9saWIvY29yZS9kZWNvcmF0b3JzL3JlY2VpdmVyLnRzI0w5MVxuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy1sYWJzL2RhdGEvYmxvYi83M2EzMjAwNTlmMjE5MjRlYjk3NWE4NmFkYWU1MTY5YTQwNDA3MWZkL3NyYy9saWIvZGVjb3JhdG9ycy9wZXJzaXN0ZW5jZS9wZXJzaXN0ZW5jZS50cyNMMTNcbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL25nLXR1cmtleS9uZ3hzLXJlc2V0LXBsdWdpbi9ibG9iLzBmMjJmMjJlMjc3YzdkZTViMzQwZDE5MTdhYWUzMDNkMDEwMjBjZWUvc3JjL2xpYi9yZXNldC5wbHVnaW4udHMjTDE5XG4vLyB0c2xpbnQ6ZGlzYWJsZTogbWF4LWxpbmUtbGVuZ3RoXG4vLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzLWxhYnMvZmlyZWJhc2UtcGx1Z2luL2Jsb2IvNzI1MWQ4NzdhZWFkZWZlYThjM2M4OTFiN2I1NWU3NjUzYTlmMjg5Yy9zcmMvbGliL2RlY29yYXRvcnMvbmd4cy1maXJlc3RvcmUtY29ubmVjdC50cyNMMjNcbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL3N0ZWZhbi1zY2h1YmVydC9uZ3hzLWV4dGVuc2lvbnMvYmxvYi85MjJlZTJmODdlYmExNzgyM2I1ZWZhYjE0MmI2NTZiMGQyOWY4MjdkL3NyYy9saWIvY29yZS9kZWNvcmF0b3JzL3Jlc2V0LXN0YXRlLmRlY29yYXRvci50cyNMMThcbi8vIHRzbGludDplbmFibGU6IG1heC1saW5lLWxlbmd0aFxuZXhwb3J0IHtcbiAgZ2V0U2VsZWN0b3JNZXRhZGF0YSxcbiAgZ2V0U3RvcmVNZXRhZGF0YSxcbiAgZW5zdXJlU3RvcmVNZXRhZGF0YSxcbiAgZW5zdXJlU2VsZWN0b3JNZXRhZGF0YVxufSBmcm9tICcuL3B1YmxpY190b19kZXByZWNhdGUnO1xuZXhwb3J0IHtcbiAgb2ZBY3Rpb24sXG4gIG9mQWN0aW9uRGlzcGF0Y2hlZCxcbiAgb2ZBY3Rpb25TdWNjZXNzZnVsLFxuICBvZkFjdGlvbkNhbmNlbGVkLFxuICBvZkFjdGlvbkVycm9yZWQsXG4gIG9mQWN0aW9uQ29tcGxldGVkLFxuICBBY3Rpb25Db21wbGV0aW9uXG59IGZyb20gJy4vb3BlcmF0b3JzL29mLWFjdGlvbic7XG5leHBvcnQge1xuICBTdGF0ZUNvbnRleHQsXG4gIFN0YXRlT3BlcmF0b3IsXG4gIE5neHNPbkluaXQsXG4gIE5neHNBZnRlckJvb3RzdHJhcCxcbiAgTmd4c09uQ2hhbmdlcyxcbiAgTmd4c01vZHVsZU9wdGlvbnMsXG4gIE5neHNTaW1wbGVDaGFuZ2Vcbn0gZnJvbSAnLi9zeW1ib2xzJztcbmV4cG9ydCB7IFNlbGVjdG9yIH0gZnJvbSAnLi9kZWNvcmF0b3JzL3NlbGVjdG9yL3NlbGVjdG9yJztcbmV4cG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UsIGFjdGlvbk1hdGNoZXIgfSBmcm9tICcuL3V0aWxzL3V0aWxzJztcbmV4cG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnLi91dGlscy9zZWxlY3Rvci11dGlscyc7XG5leHBvcnQgeyBOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2V4ZWN1dGlvbi9zeW1ib2xzJztcbmV4cG9ydCB7IEFjdGlvblR5cGUsIEFjdGlvbk9wdGlvbnMgfSBmcm9tICcuL2FjdGlvbnMvc3ltYm9scyc7XG5leHBvcnQgeyBOb29wTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9leGVjdXRpb24vbm9vcC1uZ3hzLWV4ZWN1dGlvbi1zdHJhdGVneSc7XG5leHBvcnQgeyBTdGF0ZVRva2VuIH0gZnJvbSAnLi9zdGF0ZS10b2tlbi9zdGF0ZS10b2tlbic7XG5cbmV4cG9ydCB7IE5neHNEZXZlbG9wbWVudE9wdGlvbnMgfSBmcm9tICcuL2Rldi1mZWF0dXJlcy9zeW1ib2xzJztcbmV4cG9ydCB7IE5neHNEZXZlbG9wbWVudE1vZHVsZSB9IGZyb20gJy4vZGV2LWZlYXR1cmVzL25neHMtZGV2ZWxvcG1lbnQubW9kdWxlJztcbmV4cG9ydCB7IE5neHNVbmhhbmRsZWRBY3Rpb25zTG9nZ2VyIH0gZnJvbSAnLi9kZXYtZmVhdHVyZXMvbmd4cy11bmhhbmRsZWQtYWN0aW9ucy1sb2dnZXInO1xuIl19
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=
@@ -2067,6 +2067,7 @@ function Select(rawSelector, ...paths) {
2067
2067
  function SelectorOptions(options) {
2068
2068
  return (function decorate(target, methodName, descriptor) {
2069
2069
  if (methodName) {
2070
+ descriptor || (descriptor = Object.getOwnPropertyDescriptor(target, methodName));
2070
2071
  // Method Decorator
2071
2072
  const originalFn = descriptor.value || descriptor.originalFn;
2072
2073
  if (originalFn) {
@@ -2098,27 +2099,27 @@ function getSelectorMetadata(target) {
2098
2099
  */
2099
2100
  function Selector(selectors) {
2100
2101
  return (target, key, descriptor) => {
2102
+ descriptor || (descriptor = Object.getOwnPropertyDescriptor(target, key));
2103
+ const originalFn = descriptor === null || descriptor === void 0 ? void 0 : descriptor.value;
2101
2104
  // Caretaker note: we have still left the `typeof` condition in order to avoid
2102
2105
  // creating a breaking change for projects that still use the View Engine.
2103
2106
  if (typeof ngDevMode === 'undefined' || ngDevMode) {
2104
- const isNotMethod = !(descriptor && descriptor.value !== null);
2105
- if (isNotMethod) {
2107
+ if (originalFn && typeof originalFn !== 'function') {
2106
2108
  throwSelectorDecoratorError();
2107
2109
  }
2108
2110
  }
2109
- const originalFn = descriptor.value;
2110
2111
  const memoizedFn = createSelector(selectors, originalFn, {
2111
2112
  containerClass: target,
2112
2113
  selectorName: key.toString(),
2113
2114
  getSelectorOptions() {
2114
2115
  return {};
2115
- }
2116
+ },
2116
2117
  });
2117
2118
  const newDescriptor = {
2118
2119
  configurable: true,
2119
2120
  get() {
2120
2121
  return memoizedFn;
2121
- }
2122
+ },
2122
2123
  };
2123
2124
  // Add hidden property to descriptor
2124
2125
  newDescriptor['originalFn'] = originalFn;
@@ -2160,6 +2161,77 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2160
2161
  type: NgModule
2161
2162
  }] });
2162
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
+
2163
2235
  /**
2164
2236
  * The public api for consumers of @ngxs/store
2165
2237
  */
@@ -2168,5 +2240,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
2168
2240
  * Generated bundle index. Do not edit.
2169
2241
  */
2170
2242
 
2171
- 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 };
2172
2244
  //# sourceMappingURL=ngxs-store.js.map