@ngxs/store 3.7.6-dev.master-f2e2560 → 3.7.6-dev.master-daef739
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 +148 -97
- package/bundles/ngxs-store.umd.js.map +1 -1
- package/esm2015/src/actions-stream.js +3 -37
- package/esm2015/src/decorators/selector/selector.js +2 -5
- package/esm2015/src/decorators/selector-options.js +2 -2
- package/esm2015/src/internal/custom-rxjs-subjects.js +81 -0
- package/esm2015/src/internal/state-stream.js +3 -3
- package/esm2015/src/public_api.js +2 -3
- package/esm2015/src/selectors/create-model-selector.js +2 -2
- package/esm2015/src/selectors/create-pick-selector.js +2 -2
- package/esm2015/src/selectors/create-property-selectors.js +2 -2
- package/esm2015/src/selectors/create-selector.js +9 -0
- package/esm2015/src/selectors/index.js +2 -1
- package/esm2015/src/selectors/selector-metadata.js +30 -0
- package/esm2015/src/selectors/selector-models.js +2 -0
- package/esm2015/src/selectors/selector-utils.js +74 -0
- package/esm2015/src/store.js +5 -5
- package/fesm2015/ngxs-store.js +118 -74
- package/fesm2015/ngxs-store.js.map +1 -1
- package/package.json +1 -1
- package/src/actions-stream.d.ts +2 -21
- package/src/decorators/selector/selector.d.ts +7 -2
- package/src/internal/custom-rxjs-subjects.d.ts +37 -0
- package/src/internal/state-stream.d.ts +2 -2
- package/src/public_api.d.ts +1 -2
- package/src/selectors/create-selector.d.ts +19 -0
- package/src/selectors/index.d.ts +1 -0
- package/src/selectors/selector-metadata.d.ts +7 -0
- package/src/selectors/selector-models.d.ts +10 -0
- package/src/selectors/selector-utils.d.ts +9 -0
- package/esm2015/src/utils/selector-utils.js +0 -108
- package/src/utils/selector-utils.d.ts +0 -23
|
@@ -1,45 +1,11 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
3
|
import { share } from 'rxjs/operators';
|
|
4
4
|
import { leaveNgxs } from './operators/leave-ngxs';
|
|
5
5
|
import { InternalNgxsExecutionStrategy } from './execution/internal-ngxs-execution-strategy';
|
|
6
|
+
import { OrderedSubject } from './internal/custom-rxjs-subjects';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "./execution/internal-ngxs-execution-strategy";
|
|
8
|
-
/**
|
|
9
|
-
* Custom Subject that ensures that subscribers are notified of values in the order that they arrived.
|
|
10
|
-
* A standard Subject does not have this guarantee.
|
|
11
|
-
* For example, given the following code:
|
|
12
|
-
* ```typescript
|
|
13
|
-
* const subject = new Subject<string>();
|
|
14
|
-
subject.subscribe(value => {
|
|
15
|
-
if (value === 'start') subject.next('end');
|
|
16
|
-
});
|
|
17
|
-
subject.subscribe(value => { });
|
|
18
|
-
subject.next('start');
|
|
19
|
-
* ```
|
|
20
|
-
* When `subject` is a standard `Subject<T>` the second subscriber would recieve `end` and then `start`.
|
|
21
|
-
* When `subject` is a `OrderedSubject<T>` the second subscriber would recieve `start` and then `end`.
|
|
22
|
-
*/
|
|
23
|
-
export class OrderedSubject extends Subject {
|
|
24
|
-
constructor() {
|
|
25
|
-
super(...arguments);
|
|
26
|
-
this._itemQueue = [];
|
|
27
|
-
this._busyPushingNext = false;
|
|
28
|
-
}
|
|
29
|
-
next(value) {
|
|
30
|
-
if (this._busyPushingNext) {
|
|
31
|
-
this._itemQueue.unshift(value);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
this._busyPushingNext = true;
|
|
35
|
-
super.next(value);
|
|
36
|
-
while (this._itemQueue.length > 0) {
|
|
37
|
-
const nextValue = this._itemQueue.pop();
|
|
38
|
-
super.next(nextValue);
|
|
39
|
-
}
|
|
40
|
-
this._busyPushingNext = false;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
9
|
/**
|
|
44
10
|
* Internal Action stream that is emitted anytime an action is dispatched.
|
|
45
11
|
*/
|
|
@@ -81,4 +47,4 @@ export class Actions extends Observable {
|
|
|
81
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: Actions, decorators: [{
|
|
82
48
|
type: Injectable
|
|
83
49
|
}], ctorParameters: function () { return [{ type: InternalActions }, { type: i1.InternalNgxsExecutionStrategy }]; } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvYWN0aW9ucy1zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7QUFrQmpFOztHQUVHO0FBRUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBNkI7SUFDaEUsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDOztnSUFIVSxlQUFlO29JQUFmLGVBQWU7NEZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7QUFPWDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLE9BQVEsU0FBUSxVQUF5QjtJQUNwRCxZQUNFLGdCQUFpQyxFQUNqQyx5QkFBd0Q7UUFFeEQsTUFBTSxzQkFBc0IsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ2xELFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQztRQUNwQyxtRUFBbUU7UUFDbkUsa0VBQWtFO1FBQ2xFLGtFQUFrRTtRQUNsRSx5RkFBeUY7UUFDekYsS0FBSyxFQUFFLENBQ1IsQ0FBQztRQUVGLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNmLE1BQU0saUJBQWlCLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDO2dCQUN6RCxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztnQkFDL0IsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7Z0JBQ3JDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO2FBQ3BDLENBQUMsQ0FBQztZQUVILFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O3dIQXZCVSxPQUFPLGtCQUVFLGVBQWU7NEhBRnhCLE9BQU87NEZBQVAsT0FBTztrQkFEbkIsVUFBVTswREFHVyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzaGFyZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgbGVhdmVOZ3hzIH0gZnJvbSAnLi9vcGVyYXRvcnMvbGVhdmUtbmd4cyc7XG5pbXBvcnQgeyBJbnRlcm5hbE5neHNFeGVjdXRpb25TdHJhdGVneSB9IGZyb20gJy4vZXhlY3V0aW9uL2ludGVybmFsLW5neHMtZXhlY3V0aW9uLXN0cmF0ZWd5JztcbmltcG9ydCB7IE9yZGVyZWRTdWJqZWN0IH0gZnJvbSAnLi9pbnRlcm5hbC9jdXN0b20tcnhqcy1zdWJqZWN0cyc7XG5cbi8qKlxuICogU3RhdHVzIG9mIGEgZGlzcGF0Y2hlZCBhY3Rpb25cbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gQWN0aW9uU3RhdHVzIHtcbiAgRGlzcGF0Y2hlZCA9ICdESVNQQVRDSEVEJyxcbiAgU3VjY2Vzc2Z1bCA9ICdTVUNDRVNTRlVMJyxcbiAgQ2FuY2VsZWQgPSAnQ0FOQ0VMRUQnLFxuICBFcnJvcmVkID0gJ0VSUk9SRUQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uQ29udGV4dDxUID0gYW55PiB7XG4gIHN0YXR1czogQWN0aW9uU3RhdHVzO1xuICBhY3Rpb246IFQ7XG4gIGVycm9yPzogRXJyb3I7XG59XG5cbi8qKlxuICogSW50ZXJuYWwgQWN0aW9uIHN0cmVhbSB0aGF0IGlzIGVtaXR0ZWQgYW55dGltZSBhbiBhY3Rpb24gaXMgZGlzcGF0Y2hlZC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEludGVybmFsQWN0aW9ucyBleHRlbmRzIE9yZGVyZWRTdWJqZWN0PEFjdGlvbkNvbnRleHQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb21wbGV0ZSgpO1xuICB9XG59XG5cbi8qKlxuICogQWN0aW9uIHN0cmVhbSB0aGF0IGlzIGVtaXR0ZWQgYW55dGltZSBhbiBhY3Rpb24gaXMgZGlzcGF0Y2hlZC5cbiAqXG4gKiBZb3UgY2FuIGxpc3RlbiB0byB0aGlzIGluIHNlcnZpY2VzIHRvIHJlYWN0IHdpdGhvdXQgc3RvcmVzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQWN0aW9ucyBleHRlbmRzIE9ic2VydmFibGU8QWN0aW9uQ29udGV4dD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBpbnRlcm5hbEFjdGlvbnMkOiBJbnRlcm5hbEFjdGlvbnMsXG4gICAgaW50ZXJuYWxFeGVjdXRpb25TdHJhdGVneTogSW50ZXJuYWxOZ3hzRXhlY3V0aW9uU3RyYXRlZ3lcbiAgKSB7XG4gICAgY29uc3Qgc2hhcmVkSW50ZXJuYWxBY3Rpb25zJCA9IGludGVybmFsQWN0aW9ucyQucGlwZShcbiAgICAgIGxlYXZlTmd4cyhpbnRlcm5hbEV4ZWN1dGlvblN0cmF0ZWd5KSxcbiAgICAgIC8vIFRoZSBgSW50ZXJuYWxBY3Rpb25zYCBzdWJqZWN0IGVtaXRzIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgem9uZS5cbiAgICAgIC8vIFdlIGhhdmUgdG8gcmUtZW50ZXIgdGhlIEFuZ3VsYXIgem9uZSBmb3IgYW55IGluY29taW5nIGNvbnN1bWVyLlxuICAgICAgLy8gVGhlIGBzaGFyZSgpYCBvcGVyYXRvciByZWR1Y2VzIHRoZSBudW1iZXIgb2YgY2hhbmdlIGRldGVjdGlvbnMuXG4gICAgICAvLyBUaGlzIHdvdWxkIGNhbGwgbGVhdmUgb25seSBvbmNlIGZvciBhbnkgc3RyZWFtIGVtaXNzaW9uIGFjcm9zcyBhbGwgYWN0aXZlIHN1YnNjcmliZXJzLlxuICAgICAgc2hhcmUoKVxuICAgICk7XG5cbiAgICBzdXBlcihvYnNlcnZlciA9PiB7XG4gICAgICBjb25zdCBjaGlsZFN1YnNjcmlwdGlvbiA9IHNoYXJlZEludGVybmFsQWN0aW9ucyQuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogY3R4ID0+IG9ic2VydmVyLm5leHQoY3R4KSxcbiAgICAgICAgZXJyb3I6IGVycm9yID0+IG9ic2VydmVyLmVycm9yKGVycm9yKSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IG9ic2VydmVyLmNvbXBsZXRlKClcbiAgICAgIH0pO1xuXG4gICAgICBvYnNlcnZlci5hZGQoY2hpbGRTdWJzY3JpcHRpb24pO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { throwSelectorDecoratorError } from '../../configs/messages.config';
|
|
2
|
-
import { createSelector } from '../../
|
|
3
|
-
/**
|
|
4
|
-
* Decorator for memoizing a state selector.
|
|
5
|
-
*/
|
|
2
|
+
import { createSelector } from '../../selectors/create-selector';
|
|
6
3
|
export function Selector(selectors) {
|
|
7
4
|
return (target, key, descriptor) => {
|
|
8
5
|
descriptor || (descriptor = Object.getOwnPropertyDescriptor(target, key));
|
|
@@ -32,4 +29,4 @@ export function Selector(selectors) {
|
|
|
32
29
|
return newDescriptor;
|
|
33
30
|
};
|
|
34
31
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvZGVjb3JhdG9ycy9zZWxlY3Rvci9zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFhakUsTUFBTSxVQUFVLFFBQVEsQ0FBNkIsU0FBZTtJQUNsRSxPQUFPLENBQ0wsTUFBVyxFQUNYLEdBQW9CLEVBQ3BCLFVBQXVELEVBQ0gsRUFBRTtRQUN0RCxVQUFVLEtBQVYsVUFBVSxHQUFLLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFFLEVBQUM7UUFFN0QsTUFBTSxVQUFVLEdBQUcsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLEtBQUssQ0FBQztRQUVyQyw4RUFBOEU7UUFDOUUsMEVBQTBFO1FBQzFFLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTtZQUNqRCxJQUFJLFVBQVUsSUFBSSxPQUFPLFVBQVUsS0FBSyxVQUFVLEVBQUU7Z0JBQ2xELDJCQUEyQixFQUFFLENBQUM7YUFDL0I7U0FDRjtRQUVELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsVUFBaUIsRUFBRTtZQUM5RCxjQUFjLEVBQUUsTUFBTTtZQUN0QixZQUFZLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUM1QixrQkFBa0I7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sYUFBYSxHQUFHO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLEdBQUc7Z0JBQ0QsT0FBTyxVQUFVLENBQUM7WUFDcEIsQ0FBQztTQUNGLENBQUM7UUFDRixvQ0FBb0M7UUFDOUIsYUFBYyxDQUFDLFlBQVksQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUNoRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhyb3dTZWxlY3RvckRlY29yYXRvckVycm9yIH0gZnJvbSAnLi4vLi4vY29uZmlncy9tZXNzYWdlcy5jb25maWcnO1xuaW1wb3J0IHsgU2VsZWN0b3JEZWYgfSBmcm9tICcuLi8uLi9zZWxlY3RvcnMnO1xuaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICcuLi8uLi9zZWxlY3RvcnMvY3JlYXRlLXNlbGVjdG9yJztcbmltcG9ydCB7IFNlbGVjdG9yU3BlYywgU2VsZWN0b3JUeXBlIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuLyoqXG4gKiBEZWNvcmF0b3IgZm9yIGNyZWF0aW5nIGEgc3RhdGUgc2VsZWN0b3IgZm9yIHRoZSBjdXJyZW50IHN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0b3IoKTogU2VsZWN0b3JUeXBlPHVua25vd24+O1xuXG4vKipcbiAqIERlY29yYXRvciBmb3IgY3JlYXRpbmcgYSBzdGF0ZSBzZWxlY3RvciBmcm9tIHRoZSBwcm92aWRlZCBzZWxlY3RvcnMgKGFuZCBvcHRpb25hbGx5IHRoZSBjb250YWluZXIgU3RhdGUsIGRlcGVuZGluZyBvbiB0aGUgYXBwbGljYWJsZSBTZWxlY3RvciBPcHRpb25zKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdG9yPFQgZXh0ZW5kcyBTZWxlY3RvckRlZjxhbnk+PihzZWxlY3RvcnM6IFRbXSk6IFNlbGVjdG9yVHlwZTxUPjtcblxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdG9yPFQgZXh0ZW5kcyBTZWxlY3RvckRlZjxhbnk+PihzZWxlY3RvcnM/OiBUW10pOiBTZWxlY3RvclR5cGU8VD4ge1xuICByZXR1cm4gPFU+KFxuICAgIHRhcmdldDogYW55LFxuICAgIGtleTogc3RyaW5nIHwgc3ltYm9sLFxuICAgIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFNlbGVjdG9yU3BlYzxULCBVPj5cbiAgKTogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8U2VsZWN0b3JTcGVjPFQsIFU+PiB8IHZvaWQgPT4ge1xuICAgIGRlc2NyaXB0b3IgfHw9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpITtcblxuICAgIGNvbnN0IG9yaWdpbmFsRm4gPSBkZXNjcmlwdG9yPy52YWx1ZTtcblxuICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgaWYgKG9yaWdpbmFsRm4gJiYgdHlwZW9mIG9yaWdpbmFsRm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3dTZWxlY3RvckRlY29yYXRvckVycm9yKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbWVtb2l6ZWRGbiA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdG9ycywgb3JpZ2luYWxGbiBhcyBhbnksIHtcbiAgICAgIGNvbnRhaW5lckNsYXNzOiB0YXJnZXQsXG4gICAgICBzZWxlY3Rvck5hbWU6IGtleS50b1N0cmluZygpLFxuICAgICAgZ2V0U2VsZWN0b3JPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IG5ld0Rlc2NyaXB0b3IgPSB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQoKSB7XG4gICAgICAgIHJldHVybiBtZW1vaXplZEZuO1xuICAgICAgfSxcbiAgICB9O1xuICAgIC8vIEFkZCBoaWRkZW4gcHJvcGVydHkgdG8gZGVzY3JpcHRvclxuICAgICg8YW55Pm5ld0Rlc2NyaXB0b3IpWydvcmlnaW5hbEZuJ10gPSBvcmlnaW5hbEZuO1xuICAgIHJldHVybiBuZXdEZXNjcmlwdG9yO1xuICB9O1xufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { selectorOptionsMetaAccessor } from '../
|
|
1
|
+
import { selectorOptionsMetaAccessor } from '../selectors/selector-metadata';
|
|
2
2
|
/**
|
|
3
3
|
* Decorator for setting selector options at a method or class level.
|
|
4
4
|
*/
|
|
@@ -18,4 +18,4 @@ export function SelectorOptions(options) {
|
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3Itb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9kZWNvcmF0b3JzL3NlbGVjdG9yLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFN0U7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLE9BQThCO0lBQzVELE9BQXlDLENBQ3ZDLFNBQVMsUUFBUSxDQUNmLE1BQVcsRUFDWCxVQUFrQixFQUNsQixVQUFzQztRQUV0QyxJQUFJLFVBQVUsRUFBRTtZQUNkLFVBQVUsS0FBVixVQUFVLEdBQUssTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUUsRUFBQztZQUNwRSxtQkFBbUI7WUFDbkIsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLEtBQUssSUFBVSxVQUFXLENBQUMsVUFBVSxDQUFDO1lBQ3BFLElBQUksVUFBVSxFQUFFO2dCQUNkLDJCQUEyQixDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDaEU7U0FDRjthQUFNO1lBQ0wsa0JBQWtCO1lBQ2xCLDJCQUEyQixDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDNUQ7SUFDSCxDQUFDLENBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaGFyZWRTZWxlY3Rvck9wdGlvbnMgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgc2VsZWN0b3JPcHRpb25zTWV0YUFjY2Vzc29yIH0gZnJvbSAnLi4vc2VsZWN0b3JzL3NlbGVjdG9yLW1ldGFkYXRhJztcblxuLyoqXG4gKiBEZWNvcmF0b3IgZm9yIHNldHRpbmcgc2VsZWN0b3Igb3B0aW9ucyBhdCBhIG1ldGhvZCBvciBjbGFzcyBsZXZlbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdG9yT3B0aW9ucyhvcHRpb25zOiBTaGFyZWRTZWxlY3Rvck9wdGlvbnMpIHtcbiAgcmV0dXJuIDxDbGFzc0RlY29yYXRvciAmIE1ldGhvZERlY29yYXRvcj4oXG4gICAgZnVuY3Rpb24gZGVjb3JhdGU8VD4oXG4gICAgICB0YXJnZXQ6IGFueSxcbiAgICAgIG1ldGhvZE5hbWU6IHN0cmluZyxcbiAgICAgIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFQ+XG4gICAgKSB7XG4gICAgICBpZiAobWV0aG9kTmFtZSkge1xuICAgICAgICBkZXNjcmlwdG9yIHx8PSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgbWV0aG9kTmFtZSkhO1xuICAgICAgICAvLyBNZXRob2QgRGVjb3JhdG9yXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRm4gPSBkZXNjcmlwdG9yLnZhbHVlIHx8ICg8YW55PmRlc2NyaXB0b3IpLm9yaWdpbmFsRm47XG4gICAgICAgIGlmIChvcmlnaW5hbEZuKSB7XG4gICAgICAgICAgc2VsZWN0b3JPcHRpb25zTWV0YUFjY2Vzc29yLmRlZmluZU9wdGlvbnMob3JpZ2luYWxGbiwgb3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIENsYXNzIERlY29yYXRvclxuICAgICAgICBzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IuZGVmaW5lT3B0aW9ucyh0YXJnZXQsIG9wdGlvbnMpO1xuICAgICAgfVxuICAgIH1cbiAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Subject, BehaviorSubject } from 'rxjs';
|
|
2
|
+
/**
|
|
3
|
+
* This wraps the provided function, and will enforce the following:
|
|
4
|
+
* - The calls will execute in the order that they are made
|
|
5
|
+
* - A call will only be initiated when the previous call has completed
|
|
6
|
+
* - If there is a call currently executing then the new call will be added
|
|
7
|
+
* to the queue and the function will return immediately
|
|
8
|
+
*
|
|
9
|
+
* NOTE: The following assumptions about the operation must hold true:
|
|
10
|
+
* - The operation is synchronous in nature
|
|
11
|
+
* - If any asynchronous side effects of the call exist, it should not
|
|
12
|
+
* have any bearing on the correctness of the next call in the queue
|
|
13
|
+
* - The operation has a void return
|
|
14
|
+
* - The caller should not assume that the call has completed upon
|
|
15
|
+
* return of the function
|
|
16
|
+
* - The caller can assume that all the queued calls will complete
|
|
17
|
+
* within the current microtask
|
|
18
|
+
* - The only way that a call will encounter another call in the queue
|
|
19
|
+
* would be if the call at the front of the queue initiated this call
|
|
20
|
+
* as part of its synchronous execution
|
|
21
|
+
*/
|
|
22
|
+
function orderedQueueOperation(operation) {
|
|
23
|
+
const callsQueue = [];
|
|
24
|
+
let busyPushingNext = false;
|
|
25
|
+
return function callOperation(...args) {
|
|
26
|
+
if (busyPushingNext) {
|
|
27
|
+
callsQueue.unshift(args);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
busyPushingNext = true;
|
|
31
|
+
operation(...args);
|
|
32
|
+
while (callsQueue.length > 0) {
|
|
33
|
+
const nextCallArgs = callsQueue.pop();
|
|
34
|
+
nextCallArgs && operation(...nextCallArgs);
|
|
35
|
+
}
|
|
36
|
+
busyPushingNext = false;
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Custom Subject that ensures that subscribers are notified of values in the order that they arrived.
|
|
41
|
+
* A standard Subject does not have this guarantee.
|
|
42
|
+
* For example, given the following code:
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const subject = new Subject<string>();
|
|
45
|
+
subject.subscribe(value => {
|
|
46
|
+
if (value === 'start') subject.next('end');
|
|
47
|
+
});
|
|
48
|
+
subject.subscribe(value => { });
|
|
49
|
+
subject.next('start');
|
|
50
|
+
* ```
|
|
51
|
+
* When `subject` is a standard `Subject<T>` the second subscriber would recieve `end` and then `start`.
|
|
52
|
+
* When `subject` is a `OrderedSubject<T>` the second subscriber would recieve `start` and then `end`.
|
|
53
|
+
*/
|
|
54
|
+
export class OrderedSubject extends Subject {
|
|
55
|
+
constructor() {
|
|
56
|
+
super(...arguments);
|
|
57
|
+
this.next = orderedQueueOperation((value) => super.next(value));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Custom BehaviorSubject that ensures that subscribers are notified of values in the order that they arrived.
|
|
62
|
+
* A standard BehaviorSubject does not have this guarantee.
|
|
63
|
+
* For example, given the following code:
|
|
64
|
+
* ```typescript
|
|
65
|
+
* const subject = new BehaviorSubject<string>();
|
|
66
|
+
subject.subscribe(value => {
|
|
67
|
+
if (value === 'start') subject.next('end');
|
|
68
|
+
});
|
|
69
|
+
subject.subscribe(value => { });
|
|
70
|
+
subject.next('start');
|
|
71
|
+
* ```
|
|
72
|
+
* When `subject` is a standard `BehaviorSubject<T>` the second subscriber would recieve `end` and then `start`.
|
|
73
|
+
* When `subject` is a `OrderedBehaviorSubject<T>` the second subscriber would recieve `start` and then `end`.
|
|
74
|
+
*/
|
|
75
|
+
export class OrderedBehaviorSubject extends BehaviorSubject {
|
|
76
|
+
constructor() {
|
|
77
|
+
super(...arguments);
|
|
78
|
+
this.next = orderedQueueOperation((value) => super.next(value));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJ4anMtc3ViamVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvaW50ZXJuYWwvY3VzdG9tLXJ4anMtc3ViamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxTQUFTLHFCQUFxQixDQUFzQixTQUFtQztJQUNyRixNQUFNLFVBQVUsR0FBWSxFQUFFLENBQUM7SUFDL0IsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzVCLE9BQU8sU0FBUyxhQUFhLENBQUMsR0FBRyxJQUFXO1FBQzFDLElBQUksZUFBZSxFQUFFO1lBQ25CLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsT0FBTztTQUNSO1FBQ0QsZUFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNuQixPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN0QyxZQUFZLElBQUksU0FBUyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7U0FDNUM7UUFDRCxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sT0FBTyxjQUFrQixTQUFRLE9BQVU7SUFBakQ7O1FBQ0UsU0FBSSxHQUFHLHFCQUFxQixDQUFDLENBQUMsS0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztDQUFBO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLE9BQU8sc0JBQTBCLFNBQVEsZUFBa0I7SUFBakU7O1FBQ0UsU0FBSSxHQUFHLHFCQUFxQixDQUFDLENBQUMsS0FBUSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbi8qKlxuICogVGhpcyB3cmFwcyB0aGUgcHJvdmlkZWQgZnVuY3Rpb24sIGFuZCB3aWxsIGVuZm9yY2UgdGhlIGZvbGxvd2luZzpcbiAqIC0gVGhlIGNhbGxzIHdpbGwgZXhlY3V0ZSBpbiB0aGUgb3JkZXIgdGhhdCB0aGV5IGFyZSBtYWRlXG4gKiAtIEEgY2FsbCB3aWxsIG9ubHkgYmUgaW5pdGlhdGVkIHdoZW4gdGhlIHByZXZpb3VzIGNhbGwgaGFzIGNvbXBsZXRlZFxuICogLSBJZiB0aGVyZSBpcyBhIGNhbGwgY3VycmVudGx5IGV4ZWN1dGluZyB0aGVuIHRoZSBuZXcgY2FsbCB3aWxsIGJlIGFkZGVkXG4gKiAgIHRvIHRoZSBxdWV1ZSBhbmQgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGltbWVkaWF0ZWx5XG4gKlxuICogTk9URTogVGhlIGZvbGxvd2luZyBhc3N1bXB0aW9ucyBhYm91dCB0aGUgb3BlcmF0aW9uIG11c3QgaG9sZCB0cnVlOlxuICogLSBUaGUgb3BlcmF0aW9uIGlzIHN5bmNocm9ub3VzIGluIG5hdHVyZVxuICogLSBJZiBhbnkgYXN5bmNocm9ub3VzIHNpZGUgZWZmZWN0cyBvZiB0aGUgY2FsbCBleGlzdCwgaXQgc2hvdWxkIG5vdFxuICogICBoYXZlIGFueSBiZWFyaW5nIG9uIHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgbmV4dCBjYWxsIGluIHRoZSBxdWV1ZVxuICogLSBUaGUgb3BlcmF0aW9uIGhhcyBhIHZvaWQgcmV0dXJuXG4gKiAtIFRoZSBjYWxsZXIgc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCB0aGUgY2FsbCBoYXMgY29tcGxldGVkIHVwb25cbiAqICAgcmV0dXJuIG9mIHRoZSBmdW5jdGlvblxuICogLSBUaGUgY2FsbGVyIGNhbiBhc3N1bWUgdGhhdCBhbGwgdGhlIHF1ZXVlZCBjYWxscyB3aWxsIGNvbXBsZXRlXG4gKiAgIHdpdGhpbiB0aGUgY3VycmVudCBtaWNyb3Rhc2tcbiAqIC0gVGhlIG9ubHkgd2F5IHRoYXQgYSBjYWxsIHdpbGwgZW5jb3VudGVyIGFub3RoZXIgY2FsbCBpbiB0aGUgcXVldWVcbiAqICAgd291bGQgYmUgaWYgdGhlIGNhbGwgYXQgdGhlIGZyb250IG9mIHRoZSBxdWV1ZSBpbml0aWF0ZWQgdGhpcyBjYWxsXG4gKiAgIGFzIHBhcnQgb2YgaXRzIHN5bmNocm9ub3VzIGV4ZWN1dGlvblxuICovXG5mdW5jdGlvbiBvcmRlcmVkUXVldWVPcGVyYXRpb248VEFyZ3MgZXh0ZW5kcyBhbnlbXT4ob3BlcmF0aW9uOiAoLi4uYXJnczogVEFyZ3MpID0+IHZvaWQpIHtcbiAgY29uc3QgY2FsbHNRdWV1ZTogVEFyZ3NbXSA9IFtdO1xuICBsZXQgYnVzeVB1c2hpbmdOZXh0ID0gZmFsc2U7XG4gIHJldHVybiBmdW5jdGlvbiBjYWxsT3BlcmF0aW9uKC4uLmFyZ3M6IFRBcmdzKSB7XG4gICAgaWYgKGJ1c3lQdXNoaW5nTmV4dCkge1xuICAgICAgY2FsbHNRdWV1ZS51bnNoaWZ0KGFyZ3MpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBidXN5UHVzaGluZ05leHQgPSB0cnVlO1xuICAgIG9wZXJhdGlvbiguLi5hcmdzKTtcbiAgICB3aGlsZSAoY2FsbHNRdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBuZXh0Q2FsbEFyZ3MgPSBjYWxsc1F1ZXVlLnBvcCgpO1xuICAgICAgbmV4dENhbGxBcmdzICYmIG9wZXJhdGlvbiguLi5uZXh0Q2FsbEFyZ3MpO1xuICAgIH1cbiAgICBidXN5UHVzaGluZ05leHQgPSBmYWxzZTtcbiAgfTtcbn1cblxuLyoqXG4gKiBDdXN0b20gU3ViamVjdCB0aGF0IGVuc3VyZXMgdGhhdCBzdWJzY3JpYmVycyBhcmUgbm90aWZpZWQgb2YgdmFsdWVzIGluIHRoZSBvcmRlciB0aGF0IHRoZXkgYXJyaXZlZC5cbiAqIEEgc3RhbmRhcmQgU3ViamVjdCBkb2VzIG5vdCBoYXZlIHRoaXMgZ3VhcmFudGVlLlxuICogRm9yIGV4YW1wbGUsIGdpdmVuIHRoZSBmb2xsb3dpbmcgY29kZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICAgY29uc3Qgc3ViamVjdCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgICAgc3ViamVjdC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgIGlmICh2YWx1ZSA9PT0gJ3N0YXJ0Jykgc3ViamVjdC5uZXh0KCdlbmQnKTtcbiAgICAgfSk7XG4gICAgIHN1YmplY3Quc3Vic2NyaWJlKHZhbHVlID0+IHsgfSk7XG4gICAgIHN1YmplY3QubmV4dCgnc3RhcnQnKTtcbiAqIGBgYFxuICogV2hlbiBgc3ViamVjdGAgaXMgYSBzdGFuZGFyZCBgU3ViamVjdDxUPmAgdGhlIHNlY29uZCBzdWJzY3JpYmVyIHdvdWxkIHJlY2lldmUgYGVuZGAgYW5kIHRoZW4gYHN0YXJ0YC5cbiAqIFdoZW4gYHN1YmplY3RgIGlzIGEgYE9yZGVyZWRTdWJqZWN0PFQ+YCB0aGUgc2Vjb25kIHN1YnNjcmliZXIgd291bGQgcmVjaWV2ZSBgc3RhcnRgIGFuZCB0aGVuIGBlbmRgLlxuICovXG5leHBvcnQgY2xhc3MgT3JkZXJlZFN1YmplY3Q8VD4gZXh0ZW5kcyBTdWJqZWN0PFQ+IHtcbiAgbmV4dCA9IG9yZGVyZWRRdWV1ZU9wZXJhdGlvbigodmFsdWU/OiBUKSA9PiBzdXBlci5uZXh0KHZhbHVlKSk7XG59XG5cbi8qKlxuICogQ3VzdG9tIEJlaGF2aW9yU3ViamVjdCB0aGF0IGVuc3VyZXMgdGhhdCBzdWJzY3JpYmVycyBhcmUgbm90aWZpZWQgb2YgdmFsdWVzIGluIHRoZSBvcmRlciB0aGF0IHRoZXkgYXJyaXZlZC5cbiAqIEEgc3RhbmRhcmQgQmVoYXZpb3JTdWJqZWN0IGRvZXMgbm90IGhhdmUgdGhpcyBndWFyYW50ZWUuXG4gKiBGb3IgZXhhbXBsZSwgZ2l2ZW4gdGhlIGZvbGxvd2luZyBjb2RlOlxuICogYGBgdHlwZXNjcmlwdFxuICogICBjb25zdCBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCk7XG4gICAgIHN1YmplY3Quc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICBpZiAodmFsdWUgPT09ICdzdGFydCcpIHN1YmplY3QubmV4dCgnZW5kJyk7XG4gICAgIH0pO1xuICAgICBzdWJqZWN0LnN1YnNjcmliZSh2YWx1ZSA9PiB7IH0pO1xuICAgICBzdWJqZWN0Lm5leHQoJ3N0YXJ0Jyk7XG4gKiBgYGBcbiAqIFdoZW4gYHN1YmplY3RgIGlzIGEgc3RhbmRhcmQgYEJlaGF2aW9yU3ViamVjdDxUPmAgdGhlIHNlY29uZCBzdWJzY3JpYmVyIHdvdWxkIHJlY2lldmUgYGVuZGAgYW5kIHRoZW4gYHN0YXJ0YC5cbiAqIFdoZW4gYHN1YmplY3RgIGlzIGEgYE9yZGVyZWRCZWhhdmlvclN1YmplY3Q8VD5gIHRoZSBzZWNvbmQgc3Vic2NyaWJlciB3b3VsZCByZWNpZXZlIGBzdGFydGAgYW5kIHRoZW4gYGVuZGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBPcmRlcmVkQmVoYXZpb3JTdWJqZWN0PFQ+IGV4dGVuZHMgQmVoYXZpb3JTdWJqZWN0PFQ+IHtcbiAgbmV4dCA9IG9yZGVyZWRRdWV1ZU9wZXJhdGlvbigodmFsdWU6IFQpID0+IHN1cGVyLm5leHQodmFsdWUpKTtcbn1cbiJdfQ==
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { OrderedBehaviorSubject } from './custom-rxjs-subjects';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
/**
|
|
5
5
|
* BehaviorSubject of the entire state.
|
|
6
6
|
* @ignore
|
|
7
7
|
*/
|
|
8
|
-
export class StateStream extends
|
|
8
|
+
export class StateStream extends OrderedBehaviorSubject {
|
|
9
9
|
constructor() {
|
|
10
10
|
super({});
|
|
11
11
|
}
|
|
@@ -21,4 +21,4 @@ export class StateStream extends BehaviorSubject {
|
|
|
21
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: StateStream, decorators: [{
|
|
22
22
|
type: Injectable
|
|
23
23
|
}], ctorParameters: function () { return []; } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtc3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2ludGVybmFsL3N0YXRlLXN0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBSXRELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUVoRTs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sV0FBWSxTQUFRLHNCQUFtQztJQUNsRTtRQUNFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFRCxXQUFXO1FBQ1QsNkhBQTZIO1FBQzdILGdJQUFnSTtRQUNoSSw4SEFBOEg7UUFDOUgsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7OzRIQVZVLFdBQVc7Z0lBQVgsV0FBVzs0RkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBsYWluT2JqZWN0IH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgT3JkZXJlZEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJy4vY3VzdG9tLXJ4anMtc3ViamVjdHMnO1xuXG4vKipcbiAqIEJlaGF2aW9yU3ViamVjdCBvZiB0aGUgZW50aXJlIHN0YXRlLlxuICogQGlnbm9yZVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3RhdGVTdHJlYW0gZXh0ZW5kcyBPcmRlcmVkQmVoYXZpb3JTdWJqZWN0PFBsYWluT2JqZWN0PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKHt9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIFRoZSBgU3RhdGVTdHJlYW1gIHNob3VsZCBuZXZlciBlbWl0IHZhbHVlcyBvbmNlIHRoZSByb290IHZpZXcgaXMgcmVtb3ZlZCwgZS5nLiB3aGVuIHRoZSBgTmdNb2R1bGVSZWYuZGVzdHJveSgpYCBpcyBjYWxsZWQuXG4gICAgLy8gVGhpcyB3aWxsIGVsaW1pbmF0ZSBtZW1vcnkgbGVha3MgaW4gc2VydmVyLXNpZGUgcmVuZGVyZWQgYXBwcyB3aGVyZSB0aGUgYFN0YXRlU3RyZWFtYCBpcyBjcmVhdGVkIHBlciBlYWNoIEhUVFAgcmVxdWVzdCwgdXNlcnNcbiAgICAvLyBtaWdodCBmb3JnZXQgdG8gdW5zdWJzY3JpYmUgZnJvbSBgc3RvcmUuc2VsZWN0YCBvciBgc3RvcmUuc3Vic2NyaWJlYCwgdGh1cyB0aGlzIHdpbGwgbGVhZCB0byBodWdlIG1lbW9yeSBsZWFrcyBpbiBTU1IgYXBwcy5cbiAgICB0aGlzLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -19,10 +19,9 @@ export { ofAction, ofActionDispatched, ofActionSuccessful, ofActionCanceled, ofA
|
|
|
19
19
|
export { NgxsSimpleChange, } from './symbols';
|
|
20
20
|
export { Selector } from './decorators/selector/selector';
|
|
21
21
|
export { getActionTypeFromInstance, actionMatcher } from './utils/utils';
|
|
22
|
-
export { createSelector } from './utils/selector-utils';
|
|
23
22
|
export { NoopNgxsExecutionStrategy } from './execution/noop-ngxs-execution-strategy';
|
|
24
23
|
export { StateToken } from './state-token/state-token';
|
|
25
24
|
export { NgxsDevelopmentModule } from './dev-features/ngxs-development.module';
|
|
26
25
|
export { NgxsUnhandledActionsLogger } from './dev-features/ngxs-unhandled-actions-logger';
|
|
27
|
-
export { createModelSelector, createPickSelector, createPropertySelectors, } from './selectors';
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
export { createModelSelector, createPickSelector, createPropertySelectors, createSelector, } from './selectors';
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBK0IsTUFBTSxrQkFBa0IsQ0FBQztBQUV4RSxrRkFBa0Y7QUFDbEYsMkVBQTJFO0FBQzNFLHVJQUF1STtBQUN2SSxzSUFBc0k7QUFDdEksNkhBQTZIO0FBQzdILGtDQUFrQztBQUNsQyxnSkFBZ0o7QUFDaEosMEpBQTBKO0FBQzFKLGlDQUFpQztBQUNqQyxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsc0JBQXNCLEdBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUNMLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsaUJBQWlCLEdBRWxCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQU9MLGdCQUFnQixHQUNqQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFMUYsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLGNBQWMsR0FHZixNQUFNLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE5neHNNb2R1bGUgfSBmcm9tICcuL21vZHVsZSc7XG5leHBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2RlY29yYXRvcnMvYWN0aW9uJztcbmV4cG9ydCB7IFN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5leHBvcnQgeyBTdGF0ZSB9IGZyb20gJy4vZGVjb3JhdG9ycy9zdGF0ZSc7XG5leHBvcnQgeyBTZWxlY3QgfSBmcm9tICcuL2RlY29yYXRvcnMvc2VsZWN0L3NlbGVjdCc7XG5leHBvcnQgeyBTZWxlY3Rvck9wdGlvbnMgfSBmcm9tICcuL2RlY29yYXRvcnMvc2VsZWN0b3Itb3B0aW9ucyc7XG5leHBvcnQgeyBBY3Rpb25zLCBBY3Rpb25Db250ZXh0LCBBY3Rpb25TdGF0dXMgfSBmcm9tICcuL2FjdGlvbnMtc3RyZWFtJztcblxuLy8gVE9ETzogdjQgLSBXZSBuZWVkIHRvIGNvbWUgdXAgd2l0aCBhbiBhbHRlcm5hdGl2ZSBhcGkgdG8gZXhwb3NpbmcgdGhpcyBtZXRhZGF0YVxuLy8gICBiZWNhdXNlIGl0IGlzIGN1cnJlbnRseSB1c2VkIGJ5IHRoZSBmb2xsb3dpbmcgKGFmdGVyIGEgZ2l0aHViIHNlYXJjaCk6XG4vLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzLWxhYnMvZW1pdHRlci9ibG9iLzgxZDIxZDEzNTQwMGQ3ZTM3NjVmYzU3OWUwOWFlYTI5YjFiOTJiZjcvZW1pdHRlci9zcmMvbGliL2NvcmUvZGVjb3JhdG9ycy9yZWNlaXZlci50cyNMOTFcbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL25neHMtbGFicy9kYXRhL2Jsb2IvNzNhMzIwMDU5ZjIxOTI0ZWI5NzVhODZhZGFlNTE2OWE0MDQwNzFmZC9zcmMvbGliL2RlY29yYXRvcnMvcGVyc2lzdGVuY2UvcGVyc2lzdGVuY2UudHMjTDEzXG4vLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy10dXJrZXkvbmd4cy1yZXNldC1wbHVnaW4vYmxvYi8wZjIyZjIyZTI3N2M3ZGU1YjM0MGQxOTE3YWFlMzAzZDAxMDIwY2VlL3NyYy9saWIvcmVzZXQucGx1Z2luLnRzI0wxOVxuLy8gdHNsaW50OmRpc2FibGU6IG1heC1saW5lLWxlbmd0aFxuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy1sYWJzL2ZpcmViYXNlLXBsdWdpbi9ibG9iLzcyNTFkODc3YWVhZGVmZWE4YzNjODkxYjdiNTVlNzY1M2E5ZjI4OWMvc3JjL2xpYi9kZWNvcmF0b3JzL25neHMtZmlyZXN0b3JlLWNvbm5lY3QudHMjTDIzXG4vLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVmYW4tc2NodWJlcnQvbmd4cy1leHRlbnNpb25zL2Jsb2IvOTIyZWUyZjg3ZWJhMTc4MjNiNWVmYWIxNDJiNjU2YjBkMjlmODI3ZC9zcmMvbGliL2NvcmUvZGVjb3JhdG9ycy9yZXNldC1zdGF0ZS5kZWNvcmF0b3IudHMjTDE4XG4vLyB0c2xpbnQ6ZW5hYmxlOiBtYXgtbGluZS1sZW5ndGhcbmV4cG9ydCB7XG4gIGdldFNlbGVjdG9yTWV0YWRhdGEsXG4gIGdldFN0b3JlTWV0YWRhdGEsXG4gIGVuc3VyZVN0b3JlTWV0YWRhdGEsXG4gIGVuc3VyZVNlbGVjdG9yTWV0YWRhdGEsXG59IGZyb20gJy4vcHVibGljX3RvX2RlcHJlY2F0ZSc7XG5leHBvcnQge1xuICBvZkFjdGlvbixcbiAgb2ZBY3Rpb25EaXNwYXRjaGVkLFxuICBvZkFjdGlvblN1Y2Nlc3NmdWwsXG4gIG9mQWN0aW9uQ2FuY2VsZWQsXG4gIG9mQWN0aW9uRXJyb3JlZCxcbiAgb2ZBY3Rpb25Db21wbGV0ZWQsXG4gIEFjdGlvbkNvbXBsZXRpb24sXG59IGZyb20gJy4vb3BlcmF0b3JzL29mLWFjdGlvbic7XG5leHBvcnQge1xuICBTdGF0ZUNvbnRleHQsXG4gIFN0YXRlT3BlcmF0b3IsXG4gIE5neHNPbkluaXQsXG4gIE5neHNBZnRlckJvb3RzdHJhcCxcbiAgTmd4c09uQ2hhbmdlcyxcbiAgTmd4c01vZHVsZU9wdGlvbnMsXG4gIE5neHNTaW1wbGVDaGFuZ2UsXG59IGZyb20gJy4vc3ltYm9scyc7XG5leHBvcnQgeyBTZWxlY3RvciB9IGZyb20gJy4vZGVjb3JhdG9ycy9zZWxlY3Rvci9zZWxlY3Rvcic7XG5leHBvcnQgeyBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlLCBhY3Rpb25NYXRjaGVyIH0gZnJvbSAnLi91dGlscy91dGlscyc7XG5leHBvcnQgeyBOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2V4ZWN1dGlvbi9zeW1ib2xzJztcbmV4cG9ydCB7IEFjdGlvblR5cGUsIEFjdGlvbk9wdGlvbnMgfSBmcm9tICcuL2FjdGlvbnMvc3ltYm9scyc7XG5leHBvcnQgeyBOb29wTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9leGVjdXRpb24vbm9vcC1uZ3hzLWV4ZWN1dGlvbi1zdHJhdGVneSc7XG5leHBvcnQgeyBTdGF0ZVRva2VuIH0gZnJvbSAnLi9zdGF0ZS10b2tlbi9zdGF0ZS10b2tlbic7XG5cbmV4cG9ydCB7IE5neHNEZXZlbG9wbWVudE9wdGlvbnMgfSBmcm9tICcuL2Rldi1mZWF0dXJlcy9zeW1ib2xzJztcbmV4cG9ydCB7IE5neHNEZXZlbG9wbWVudE1vZHVsZSB9IGZyb20gJy4vZGV2LWZlYXR1cmVzL25neHMtZGV2ZWxvcG1lbnQubW9kdWxlJztcbmV4cG9ydCB7IE5neHNVbmhhbmRsZWRBY3Rpb25zTG9nZ2VyIH0gZnJvbSAnLi9kZXYtZmVhdHVyZXMvbmd4cy11bmhhbmRsZWQtYWN0aW9ucy1sb2dnZXInO1xuXG5leHBvcnQge1xuICBjcmVhdGVNb2RlbFNlbGVjdG9yLFxuICBjcmVhdGVQaWNrU2VsZWN0b3IsXG4gIGNyZWF0ZVByb3BlcnR5U2VsZWN0b3JzLFxuICBjcmVhdGVTZWxlY3RvcixcbiAgUHJvcGVydHlTZWxlY3RvcnMsXG4gIFR5cGVkU2VsZWN0b3IsXG59IGZyb20gJy4vc2VsZWN0b3JzJztcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createSelector } from '
|
|
1
|
+
import { createSelector } from './create-selector';
|
|
2
2
|
import { ensureValidSelector, ensureValueProvided } from './selector-checks.util';
|
|
3
3
|
export function createModelSelector(selectorMap) {
|
|
4
4
|
const selectorKeys = Object.keys(selectorMap);
|
|
@@ -25,4 +25,4 @@ function ensureValidSelectorMap({ prefix, selectorMap, selectorKeys, selectors,
|
|
|
25
25
|
noun: `selector for the '${selectorKeys[index]}' property`,
|
|
26
26
|
}));
|
|
27
27
|
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1vZGVsLXNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL3NlbGVjdG9ycy9jcmVhdGUtbW9kZWwtc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBYWxGLE1BQU0sVUFBVSxtQkFBbUIsQ0FBd0IsV0FBYztJQUN2RSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0Msc0JBQXNCLENBQUk7UUFDeEIsTUFBTSxFQUFFLHVCQUF1QjtRQUMvQixXQUFXO1FBQ1gsWUFBWTtRQUNaLFNBQVM7S0FDVixDQUFDLENBQUM7SUFFSCxPQUFPLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFO1FBQzNDLE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDNUMsR0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFxQixDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFxQixDQUFDO0FBQ3pCLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUF3QixFQUNyRCxNQUFNLEVBQ04sV0FBVyxFQUNYLFlBQVksRUFDWixTQUFTLEdBTVY7SUFDQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDbkUsbUJBQW1CLENBQUMsT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7SUFDN0YsbUJBQW1CLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDcEMsbUJBQW1CLENBQUMsUUFBUSxFQUFFO1FBQzVCLE1BQU07UUFDTixJQUFJLEVBQUUscUJBQXFCLFlBQVksQ0FBQyxLQUFLLENBQUMsWUFBWTtLQUMzRCxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJy4vY3JlYXRlLXNlbGVjdG9yJztcbmltcG9ydCB7IGVuc3VyZVZhbGlkU2VsZWN0b3IsIGVuc3VyZVZhbHVlUHJvdmlkZWQgfSBmcm9tICcuL3NlbGVjdG9yLWNoZWNrcy51dGlsJztcbmltcG9ydCB7IFR5cGVkU2VsZWN0b3IgfSBmcm9tICcuL3NlbGVjdG9yLXR5cGVzLnV0aWwnO1xuXG5pbnRlcmZhY2UgU2VsZWN0b3JNYXAge1xuICBba2V5OiBzdHJpbmddOiBUeXBlZFNlbGVjdG9yPGFueT47XG59XG5cbnR5cGUgTW9kZWxTZWxlY3RvcjxUIGV4dGVuZHMgU2VsZWN0b3JNYXA+ID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBNYXBwZWRSZXN1bHQ8VD47XG5cbnR5cGUgTWFwcGVkUmVzdWx0PFRTZWxlY3Rvck1hcD4gPSB7XG4gIFtQIGluIGtleW9mIFRTZWxlY3Rvck1hcF06IFRTZWxlY3Rvck1hcFtQXSBleHRlbmRzIFR5cGVkU2VsZWN0b3I8aW5mZXIgUj4gPyBSIDogbmV2ZXI7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTW9kZWxTZWxlY3RvcjxUIGV4dGVuZHMgU2VsZWN0b3JNYXA+KHNlbGVjdG9yTWFwOiBUKTogTW9kZWxTZWxlY3RvcjxUPiB7XG4gIGNvbnN0IHNlbGVjdG9yS2V5cyA9IE9iamVjdC5rZXlzKHNlbGVjdG9yTWFwKTtcbiAgY29uc3Qgc2VsZWN0b3JzID0gT2JqZWN0LnZhbHVlcyhzZWxlY3Rvck1hcCk7XG4gIGVuc3VyZVZhbGlkU2VsZWN0b3JNYXA8VD4oe1xuICAgIHByZWZpeDogJ1tjcmVhdGVNb2RlbFNlbGVjdG9yXScsXG4gICAgc2VsZWN0b3JNYXAsXG4gICAgc2VsZWN0b3JLZXlzLFxuICAgIHNlbGVjdG9ycyxcbiAgfSk7XG5cbiAgcmV0dXJuIGNyZWF0ZVNlbGVjdG9yKHNlbGVjdG9ycywgKC4uLmFyZ3MpID0+IHtcbiAgICByZXR1cm4gc2VsZWN0b3JLZXlzLnJlZHVjZSgob2JqLCBrZXksIGluZGV4KSA9PiB7XG4gICAgICAob2JqIGFzIGFueSlba2V5XSA9IGFyZ3NbaW5kZXhdO1xuICAgICAgcmV0dXJuIG9iajtcbiAgICB9LCB7fSBhcyBNYXBwZWRSZXN1bHQ8VD4pO1xuICB9KSBhcyBNb2RlbFNlbGVjdG9yPFQ+O1xufVxuXG5mdW5jdGlvbiBlbnN1cmVWYWxpZFNlbGVjdG9yTWFwPFQgZXh0ZW5kcyBTZWxlY3Rvck1hcD4oe1xuICBwcmVmaXgsXG4gIHNlbGVjdG9yTWFwLFxuICBzZWxlY3RvcktleXMsXG4gIHNlbGVjdG9ycyxcbn06IHtcbiAgcHJlZml4OiBzdHJpbmc7XG4gIHNlbGVjdG9yTWFwOiBUO1xuICBzZWxlY3RvcktleXM6IHN0cmluZ1tdO1xuICBzZWxlY3RvcnM6IFR5cGVkU2VsZWN0b3I8YW55PltdO1xufSkge1xuICBlbnN1cmVWYWx1ZVByb3ZpZGVkKHNlbGVjdG9yTWFwLCB7IHByZWZpeCwgbm91bjogJ3NlbGVjdG9yIG1hcCcgfSk7XG4gIGVuc3VyZVZhbHVlUHJvdmlkZWQodHlwZW9mIHNlbGVjdG9yTWFwID09PSAnb2JqZWN0JywgeyBwcmVmaXgsIG5vdW46ICd2YWxpZCBzZWxlY3RvciBtYXAnIH0pO1xuICBlbnN1cmVWYWx1ZVByb3ZpZGVkKHNlbGVjdG9yS2V5cy5sZW5ndGgsIHsgcHJlZml4LCBub3VuOiAnbm9uLWVtcHR5IHNlbGVjdG9yIG1hcCcgfSk7XG4gIHNlbGVjdG9ycy5mb3JFYWNoKChzZWxlY3RvciwgaW5kZXgpID0+XG4gICAgZW5zdXJlVmFsaWRTZWxlY3RvcihzZWxlY3Rvciwge1xuICAgICAgcHJlZml4LFxuICAgICAgbm91bjogYHNlbGVjdG9yIGZvciB0aGUgJyR7c2VsZWN0b3JLZXlzW2luZGV4XX0nIHByb3BlcnR5YCxcbiAgICB9KVxuICApO1xufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createSelector } from '
|
|
1
|
+
import { createSelector } from './create-selector';
|
|
2
2
|
import { ensureValidSelector } from './selector-checks.util';
|
|
3
3
|
export function createPickSelector(selector, keys) {
|
|
4
4
|
ensureValidSelector(selector, { prefix: '[createPickSelector]' });
|
|
@@ -11,4 +11,4 @@ export function createPickSelector(selector, keys) {
|
|
|
11
11
|
}, {});
|
|
12
12
|
});
|
|
13
13
|
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXBpY2stc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc2VsZWN0b3JzL2NyZWF0ZS1waWNrLXNlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU83RCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFFBQStCLEVBQy9CLElBQWU7SUFFZixtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUYsT0FBTyxjQUFjLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFpQyxFQUFFLEVBQUU7UUFDN0UsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMxQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQWdDLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJy4vY3JlYXRlLXNlbGVjdG9yJztcbmltcG9ydCB7IGVuc3VyZVZhbGlkU2VsZWN0b3IgfSBmcm9tICcuL3NlbGVjdG9yLWNoZWNrcy51dGlsJztcbmltcG9ydCB7IFR5cGVkU2VsZWN0b3IgfSBmcm9tICcuL3NlbGVjdG9yLXR5cGVzLnV0aWwnO1xuXG50eXBlIEtleXNUb1ZhbHVlczxULCBLZXlzIGV4dGVuZHMgKGtleW9mIFQpW10+ID0ge1xuICBbSW5kZXggaW4ga2V5b2YgS2V5c106IEtleXNbSW5kZXhdIGV4dGVuZHMga2V5b2YgVCA/IFRbS2V5c1tJbmRleF1dIDogbmV2ZXI7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGlja1NlbGVjdG9yPFRNb2RlbCwgS2V5cyBleHRlbmRzIChrZXlvZiBUTW9kZWwpW10+KFxuICBzZWxlY3RvcjogVHlwZWRTZWxlY3RvcjxUTW9kZWw+LFxuICBrZXlzOiBbLi4uS2V5c11cbikge1xuICBlbnN1cmVWYWxpZFNlbGVjdG9yKHNlbGVjdG9yLCB7IHByZWZpeDogJ1tjcmVhdGVQaWNrU2VsZWN0b3JdJyB9KTtcbiAgY29uc3QgdmFsaWRLZXlzID0ga2V5cy5maWx0ZXIoQm9vbGVhbik7XG4gIGNvbnN0IHNlbGVjdG9ycyA9IHZhbGlkS2V5cy5tYXAoKGtleSkgPT4gY3JlYXRlU2VsZWN0b3IoW3NlbGVjdG9yXSwgKHM6IFRNb2RlbCkgPT4gc1trZXldKSk7XG4gIHJldHVybiBjcmVhdGVTZWxlY3RvcihbLi4uc2VsZWN0b3JzXSwgKC4uLnByb3BzOiBLZXlzVG9WYWx1ZXM8VE1vZGVsLCBLZXlzPikgPT4ge1xuICAgIHJldHVybiB2YWxpZEtleXMucmVkdWNlKChhY2MsIGtleSwgaW5kZXgpID0+IHtcbiAgICAgIGFjY1trZXldID0gcHJvcHNbaW5kZXhdO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBQaWNrPFRNb2RlbCwgS2V5c1tudW1iZXJdPik7XG4gIH0pO1xufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createSelector } from '
|
|
1
|
+
import { createSelector } from './create-selector';
|
|
2
2
|
import { ensureValidSelector } from './selector-checks.util';
|
|
3
3
|
export function createPropertySelectors(parentSelector) {
|
|
4
4
|
ensureValidSelector(parentSelector, {
|
|
@@ -15,4 +15,4 @@ export function createPropertySelectors(parentSelector) {
|
|
|
15
15
|
},
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXByb3BlcnR5LXNlbGVjdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9zZWxlY3RvcnMvY3JlYXRlLXByb3BlcnR5LXNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFTN0QsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxjQUFtQztJQUVuQyxtQkFBbUIsQ0FBQyxjQUFjLEVBQUU7UUFDbEMsTUFBTSxFQUFFLDJCQUEyQjtRQUNuQyxJQUFJLEVBQUUsaUJBQWlCO0tBQ3hCLENBQUMsQ0FBQztJQUNILE1BQU0sS0FBSyxHQUF1QyxFQUFFLENBQUM7SUFDckQsT0FBTyxJQUFJLEtBQUssQ0FDZCxFQUEwQyxFQUMxQztRQUNFLEdBQUcsQ0FBQyxPQUFZLEVBQUUsSUFBa0I7WUFDbEMsTUFBTSxRQUFRLEdBQ1osS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDVixjQUFjLENBQ2IsQ0FBQyxjQUFjLENBQUMsRUFDaEIsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsYUFBRCxDQUFDLHVCQUFELENBQUMsQ0FBRyxJQUFJLENBQUMsQ0FDa0IsQ0FBQztZQUMvQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO1lBQ3ZCLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7S0FDeUMsQ0FDN0MsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJy4vY3JlYXRlLXNlbGVjdG9yJztcbmltcG9ydCB7IGVuc3VyZVZhbGlkU2VsZWN0b3IgfSBmcm9tICcuL3NlbGVjdG9yLWNoZWNrcy51dGlsJztcbmltcG9ydCB7IFNlbGVjdG9yRGVmIH0gZnJvbSAnLi9zZWxlY3Rvci10eXBlcy51dGlsJztcblxuZXhwb3J0IHR5cGUgUHJvcGVydHlTZWxlY3RvcnM8VE1vZGVsPiA9IHtcbiAgW1AgaW4ga2V5b2YgTm9uTnVsbGFibGU8VE1vZGVsPl0tPzogKFxuICAgIG1vZGVsOiBUTW9kZWxcbiAgKSA9PiBUTW9kZWwgZXh0ZW5kcyBudWxsIHwgdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogTm9uTnVsbGFibGU8VE1vZGVsPltQXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm9wZXJ0eVNlbGVjdG9yczxUTW9kZWw+KFxuICBwYXJlbnRTZWxlY3RvcjogU2VsZWN0b3JEZWY8VE1vZGVsPlxuKTogUHJvcGVydHlTZWxlY3RvcnM8VE1vZGVsPiB7XG4gIGVuc3VyZVZhbGlkU2VsZWN0b3IocGFyZW50U2VsZWN0b3IsIHtcbiAgICBwcmVmaXg6ICdbY3JlYXRlUHJvcGVydHlTZWxlY3RvcnNdJyxcbiAgICBub3VuOiAncGFyZW50IHNlbGVjdG9yJyxcbiAgfSk7XG4gIGNvbnN0IGNhY2hlOiBQYXJ0aWFsPFByb3BlcnR5U2VsZWN0b3JzPFRNb2RlbD4+ID0ge307XG4gIHJldHVybiBuZXcgUHJveHk8UHJvcGVydHlTZWxlY3RvcnM8VE1vZGVsPj4oXG4gICAge30gYXMgdW5rbm93biBhcyBQcm9wZXJ0eVNlbGVjdG9yczxUTW9kZWw+LFxuICAgIHtcbiAgICAgIGdldChfdGFyZ2V0OiBhbnksIHByb3A6IGtleW9mIFRNb2RlbCkge1xuICAgICAgICBjb25zdCBzZWxlY3RvciA9XG4gICAgICAgICAgY2FjaGVbcHJvcF0gfHxcbiAgICAgICAgICAoY3JlYXRlU2VsZWN0b3IoXG4gICAgICAgICAgICBbcGFyZW50U2VsZWN0b3JdLFxuICAgICAgICAgICAgKHM6IFRNb2RlbCkgPT4gcz8uW3Byb3BdXG4gICAgICAgICAgKSBhcyBQcm9wZXJ0eVNlbGVjdG9yczxUTW9kZWw+W3R5cGVvZiBwcm9wXSk7XG4gICAgICAgIGNhY2hlW3Byb3BdID0gc2VsZWN0b3I7XG4gICAgICAgIHJldHVybiBzZWxlY3RvcjtcbiAgICAgIH0sXG4gICAgfSBhcyBQcm94eUhhbmRsZXI8UHJvcGVydHlTZWxlY3RvcnM8VE1vZGVsPj5cbiAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { setupSelectorMetadata } from './selector-metadata';
|
|
2
|
+
import { createMemoizedSelectorFn, createRootSelectorFactory } from './selector-utils';
|
|
3
|
+
export function createSelector(selectors, projector, creationMetadata) {
|
|
4
|
+
const memoizedFn = createMemoizedSelectorFn(projector, creationMetadata);
|
|
5
|
+
const selectorMetaData = setupSelectorMetadata(projector, creationMetadata);
|
|
6
|
+
selectorMetaData.makeRootSelector = createRootSelectorFactory(selectorMetaData, selectors, memoizedFn);
|
|
7
|
+
return memoizedFn;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL3NlbGVjdG9ycy9jcmVhdGUtc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUE2SnZGLE1BQU0sVUFBVSxjQUFjLENBQzVCLFNBQW9DLEVBQ3BDLFNBQVksRUFDWixnQkFBNEM7SUFFNUMsTUFBTSxVQUFVLEdBQUcsd0JBQXdCLENBQUksU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFFNUUsTUFBTSxnQkFBZ0IsR0FBRyxxQkFBcUIsQ0FBSSxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUUvRSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsR0FBRyx5QkFBeUIsQ0FDM0QsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxVQUFVLENBQ1gsQ0FBQztJQUVGLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcmVhdGlvbk1ldGFkYXRhIH0gZnJvbSAnLi9zZWxlY3Rvci1tb2RlbHMnO1xuaW1wb3J0IHsgc2V0dXBTZWxlY3Rvck1ldGFkYXRhIH0gZnJvbSAnLi9zZWxlY3Rvci1tZXRhZGF0YSc7XG5pbXBvcnQgeyBjcmVhdGVNZW1vaXplZFNlbGVjdG9yRm4sIGNyZWF0ZVJvb3RTZWxlY3RvckZhY3RvcnkgfSBmcm9tICcuL3NlbGVjdG9yLXV0aWxzJztcblxuaW1wb3J0IHsgU2VsZWN0b3JEZWYsIFNlbGVjdG9yUmV0dXJuVHlwZSB9IGZyb20gJy4vc2VsZWN0b3ItdHlwZXMudXRpbCc7XG5cbnR5cGUgU2VsZWN0b3JBcmcgPSBTZWxlY3RvckRlZjxhbnk+O1xuXG4vKipcbiAqIEZ1bmN0aW9uIGZvciBjcmVhdGluZyBhIHNlbGVjdG9yXG4gKiBAcGFyYW0gc2VsZWN0b3JzIFRoZSBzZWxlY3RvcnMgdG8gdXNlIHRvIGNyZWF0ZSB0aGUgYXJndW1lbnRzIG9mIHRoaXMgZnVuY3Rpb25cbiAqIEBwYXJhbSBvcmlnaW5hbEZuIFRoZSBvcmlnaW5hbCBmdW5jdGlvbiBiZWluZyBtYWRlIGludG8gYSBzZWxlY3RvclxuICogQHBhcmFtIGNyZWF0aW9uTWV0YWRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdG9yPFxuICBTMSBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBUUHJvamVjdG9yIGV4dGVuZHMgKHMxOiBTZWxlY3RvclJldHVyblR5cGU8UzE+KSA9PiBhbnlcbj4oXG4gIHNlbGVjdG9yczogW1MxXSxcbiAgcHJvamVjdG9yOiBUUHJvamVjdG9yLFxuICBjcmVhdGlvbk1ldGFkYXRhPzogUGFydGlhbDxDcmVhdGlvbk1ldGFkYXRhPlxuKTogVFByb2plY3RvcjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdG9yPFxuICBTMSBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBTMiBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBUUHJvamVjdG9yIGV4dGVuZHMgKHMxOiBTZWxlY3RvclJldHVyblR5cGU8UzE+LCBzMjogU2VsZWN0b3JSZXR1cm5UeXBlPFMyPikgPT4gYW55XG4+KFxuICBzZWxlY3RvcnM6IFtTMSwgUzJdLFxuICBwcm9qZWN0b3I6IFRQcm9qZWN0b3IsXG4gIGNyZWF0aW9uTWV0YWRhdGE/OiBQYXJ0aWFsPENyZWF0aW9uTWV0YWRhdGE+XG4pOiBUUHJvamVjdG9yO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3I8XG4gIFMxIGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFMyIGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFMzIGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFRQcm9qZWN0b3IgZXh0ZW5kcyAoXG4gICAgczE6IFNlbGVjdG9yUmV0dXJuVHlwZTxTMT4sXG4gICAgczI6IFNlbGVjdG9yUmV0dXJuVHlwZTxTMj4sXG4gICAgczM6IFNlbGVjdG9yUmV0dXJuVHlwZTxTMz5cbiAgKSA9PiBhbnlcbj4oXG4gIHNlbGVjdG9yczogW1MxLCBTMiwgUzNdLFxuICBwcm9qZWN0b3I6IFRQcm9qZWN0b3IsXG4gIGNyZWF0aW9uTWV0YWRhdGE/OiBQYXJ0aWFsPENyZWF0aW9uTWV0YWRhdGE+XG4pOiBUUHJvamVjdG9yO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3I8XG4gIFMxIGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFMyIGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFMzIGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFM0IGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFRQcm9qZWN0b3IgZXh0ZW5kcyAoXG4gICAgczE6IFNlbGVjdG9yUmV0dXJuVHlwZTxTMT4sXG4gICAgczI6IFNlbGVjdG9yUmV0dXJuVHlwZTxTMj4sXG4gICAgczM6IFNlbGVjdG9yUmV0dXJuVHlwZTxTMz4sXG4gICAgczQ6IFNlbGVjdG9yUmV0dXJuVHlwZTxTND5cbiAgKSA9PiBhbnlcbj4oXG4gIHNlbGVjdG9yczogW1MxLCBTMiwgUzMsIFM0XSxcbiAgcHJvamVjdG9yOiBUUHJvamVjdG9yLFxuICBjcmVhdGlvbk1ldGFkYXRhPzogUGFydGlhbDxDcmVhdGlvbk1ldGFkYXRhPlxuKTogVFByb2plY3RvcjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdG9yPFxuICBTMSBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBTMiBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBTMyBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBTNCBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBTNSBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBUUHJvamVjdG9yIGV4dGVuZHMgKFxuICAgIHMxOiBTZWxlY3RvclJldHVyblR5cGU8UzE+LFxuICAgIHMyOiBTZWxlY3RvclJldHVyblR5cGU8UzI+LFxuICAgIHMzOiBTZWxlY3RvclJldHVyblR5cGU8UzM+LFxuICAgIHM0OiBTZWxlY3RvclJldHVyblR5cGU8UzQ+LFxuICAgIHM1OiBTZWxlY3RvclJldHVyblR5cGU8UzU+XG4gICkgPT4gYW55XG4+KFxuICBzZWxlY3RvcnM6IFtTMSwgUzIsIFMzLCBTNCwgUzVdLFxuICBwcm9qZWN0b3I6IFRQcm9qZWN0b3IsXG4gIGNyZWF0aW9uTWV0YWRhdGE/OiBQYXJ0aWFsPENyZWF0aW9uTWV0YWRhdGE+XG4pOiBUUHJvamVjdG9yO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3I8XG4gIFMxIGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFMyIGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFMzIGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFM0IGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFM1IGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFM2IGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFRQcm9qZWN0b3IgZXh0ZW5kcyAoXG4gICAgczE6IFNlbGVjdG9yUmV0dXJuVHlwZTxTMT4sXG4gICAgczI6IFNlbGVjdG9yUmV0dXJuVHlwZTxTMj4sXG4gICAgczM6IFNlbGVjdG9yUmV0dXJuVHlwZTxTMz4sXG4gICAgczQ6IFNlbGVjdG9yUmV0dXJuVHlwZTxTND4sXG4gICAgczU6IFNlbGVjdG9yUmV0dXJuVHlwZTxTNT4sXG4gICAgczY6IFNlbGVjdG9yUmV0dXJuVHlwZTxTNj5cbiAgKSA9PiBhbnlcbj4oXG4gIHNlbGVjdG9yczogW1MxLCBTMiwgUzMsIFM0LCBTNSwgUzZdLFxuICBwcm9qZWN0b3I6IFRQcm9qZWN0b3IsXG4gIGNyZWF0aW9uTWV0YWRhdGE/OiBQYXJ0aWFsPENyZWF0aW9uTWV0YWRhdGE+XG4pOiBUUHJvamVjdG9yO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3I8XG4gIFMxIGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFMyIGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFMzIGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFM0IGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFM1IGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFM2IGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFM3IGV4dGVuZHMgU2VsZWN0b3JBcmcsXG4gIFRQcm9qZWN0b3IgZXh0ZW5kcyAoXG4gICAgczE6IFNlbGVjdG9yUmV0dXJuVHlwZTxTMT4sXG4gICAgczI6IFNlbGVjdG9yUmV0dXJuVHlwZTxTMj4sXG4gICAgczM6IFNlbGVjdG9yUmV0dXJuVHlwZTxTMz4sXG4gICAgczQ6IFNlbGVjdG9yUmV0dXJuVHlwZTxTND4sXG4gICAgczU6IFNlbGVjdG9yUmV0dXJuVHlwZTxTNT4sXG4gICAgczY6IFNlbGVjdG9yUmV0dXJuVHlwZTxTNj4sXG4gICAgczc6IFNlbGVjdG9yUmV0dXJuVHlwZTxTNz5cbiAgKSA9PiBhbnlcbj4oXG4gIHNlbGVjdG9yczogW1MxLCBTMiwgUzMsIFM0LCBTNSwgUzYsIFM3XSxcbiAgcHJvamVjdG9yOiBUUHJvamVjdG9yLFxuICBjcmVhdGlvbk1ldGFkYXRhPzogUGFydGlhbDxDcmVhdGlvbk1ldGFkYXRhPlxuKTogVFByb2plY3RvcjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdG9yPFxuICBTMSBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBTMiBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBTMyBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBTNCBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBTNSBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBTNiBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBTNyBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBTOCBleHRlbmRzIFNlbGVjdG9yQXJnLFxuICBUUHJvamVjdG9yIGV4dGVuZHMgKFxuICAgIHMxOiBTZWxlY3RvclJldHVyblR5cGU8UzE+LFxuICAgIHMyOiBTZWxlY3RvclJldHVyblR5cGU8UzI+LFxuICAgIHMzOiBTZWxlY3RvclJldHVyblR5cGU8UzM+LFxuICAgIHM0OiBTZWxlY3RvclJldHVyblR5cGU8UzQ+LFxuICAgIHM1OiBTZWxlY3RvclJldHVyblR5cGU8UzU+LFxuICAgIHM2OiBTZWxlY3RvclJldHVyblR5cGU8UzY+LFxuICAgIHM3OiBTZWxlY3RvclJldHVyblR5cGU8Uzc+LFxuICAgIHM4OiBTZWxlY3RvclJldHVyblR5cGU8Uzg+XG4gICkgPT4gYW55XG4+KFxuICBzZWxlY3RvcnM6IFtTMSwgUzIsIFMzLCBTNCwgUzUsIFM2LCBTNywgUzhdLFxuICBwcm9qZWN0b3I6IFRQcm9qZWN0b3IsXG4gIGNyZWF0aW9uTWV0YWRhdGE/OiBQYXJ0aWFsPENyZWF0aW9uTWV0YWRhdGE+XG4pOiBUUHJvamVjdG9yO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3I8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgc2VsZWN0b3JzOiBTZWxlY3RvckFyZ1tdIHwgdW5kZWZpbmVkLFxuICBwcm9qZWN0b3I6IFQsXG4gIGNyZWF0aW9uTWV0YWRhdGE/OiBQYXJ0aWFsPENyZWF0aW9uTWV0YWRhdGE+XG4pOiBUO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3I8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgc2VsZWN0b3JzOiBTZWxlY3RvckFyZ1tdIHwgdW5kZWZpbmVkLFxuICBwcm9qZWN0b3I6IFQsXG4gIGNyZWF0aW9uTWV0YWRhdGE/OiBQYXJ0aWFsPENyZWF0aW9uTWV0YWRhdGE+XG4pIHtcbiAgY29uc3QgbWVtb2l6ZWRGbiA9IGNyZWF0ZU1lbW9pemVkU2VsZWN0b3JGbjxUPihwcm9qZWN0b3IsIGNyZWF0aW9uTWV0YWRhdGEpO1xuXG4gIGNvbnN0IHNlbGVjdG9yTWV0YURhdGEgPSBzZXR1cFNlbGVjdG9yTWV0YWRhdGE8VD4ocHJvamVjdG9yLCBjcmVhdGlvbk1ldGFkYXRhKTtcblxuICBzZWxlY3Rvck1ldGFEYXRhLm1ha2VSb290U2VsZWN0b3IgPSBjcmVhdGVSb290U2VsZWN0b3JGYWN0b3J5PFQ+KFxuICAgIHNlbGVjdG9yTWV0YURhdGEsXG4gICAgc2VsZWN0b3JzLFxuICAgIG1lbW9pemVkRm5cbiAgKTtcblxuICByZXR1cm4gbWVtb2l6ZWRGbjtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './create-model-selector';
|
|
2
2
|
export * from './create-pick-selector';
|
|
3
3
|
export * from './create-property-selectors';
|
|
4
|
+
export * from './create-selector';
|
|
4
5
|
export * from './selector-types.util';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc2VsZWN0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLW1vZGVsLXNlbGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLXBpY2stc2VsZWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtcHJvcGVydHktc2VsZWN0b3JzJztcbmV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLXNlbGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0b3ItdHlwZXMudXRpbCc7XG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ensureSelectorMetadata, } from '../internal/internals';
|
|
2
|
+
const SELECTOR_OPTIONS_META_KEY = 'NGXS_SELECTOR_OPTIONS_META';
|
|
3
|
+
export const selectorOptionsMetaAccessor = {
|
|
4
|
+
getOptions: (target) => {
|
|
5
|
+
return (target && target[SELECTOR_OPTIONS_META_KEY]) || {};
|
|
6
|
+
},
|
|
7
|
+
defineOptions: (target, options) => {
|
|
8
|
+
if (!target)
|
|
9
|
+
return;
|
|
10
|
+
target[SELECTOR_OPTIONS_META_KEY] = options;
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
export function setupSelectorMetadata(originalFn, creationMetadata) {
|
|
14
|
+
const selectorMetaData = ensureSelectorMetadata(originalFn);
|
|
15
|
+
selectorMetaData.originalFn = originalFn;
|
|
16
|
+
let getExplicitSelectorOptions = () => ({});
|
|
17
|
+
if (creationMetadata) {
|
|
18
|
+
selectorMetaData.containerClass = creationMetadata.containerClass;
|
|
19
|
+
selectorMetaData.selectorName = creationMetadata.selectorName || null;
|
|
20
|
+
getExplicitSelectorOptions =
|
|
21
|
+
creationMetadata.getSelectorOptions || getExplicitSelectorOptions;
|
|
22
|
+
}
|
|
23
|
+
const selectorMetaDataClone = Object.assign({}, selectorMetaData);
|
|
24
|
+
selectorMetaData.getSelectorOptions = () => getLocalSelectorOptions(selectorMetaDataClone, getExplicitSelectorOptions());
|
|
25
|
+
return selectorMetaData;
|
|
26
|
+
}
|
|
27
|
+
function getLocalSelectorOptions(selectorMetaData, explicitOptions) {
|
|
28
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({}, (selectorOptionsMetaAccessor.getOptions(selectorMetaData.containerClass) || {})), (selectorOptionsMetaAccessor.getOptions(selectorMetaData.originalFn) || {})), (selectorMetaData.getSelectorOptions() || {})), explicitOptions);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItbWV0YWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc2VsZWN0b3JzL3NlbGVjdG9yLW1ldGFkYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxzQkFBc0IsR0FHdkIsTUFBTSx1QkFBdUIsQ0FBQztBQUcvQixNQUFNLHlCQUF5QixHQUFHLDRCQUE0QixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHO0lBQ3pDLFVBQVUsRUFBRSxDQUFDLE1BQVcsRUFBeUIsRUFBRTtRQUNqRCxPQUFPLENBQUMsTUFBTSxJQUFVLE1BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BFLENBQUM7SUFDRCxhQUFhLEVBQUUsQ0FBQyxNQUFXLEVBQUUsT0FBOEIsRUFBRSxFQUFFO1FBQzdELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUNkLE1BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUNyRCxDQUFDO0NBQ0YsQ0FBQztBQUVGLE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsVUFBYSxFQUNiLGdCQUF1RDtJQUV2RCxNQUFNLGdCQUFnQixHQUFHLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVELGdCQUFnQixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7SUFDekMsSUFBSSwwQkFBMEIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLElBQUksZ0JBQWdCLEVBQUU7UUFDcEIsZ0JBQWdCLENBQUMsY0FBYyxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztRQUNsRSxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztRQUN0RSwwQkFBMEI7WUFDeEIsZ0JBQWdCLENBQUMsa0JBQWtCLElBQUksMEJBQTBCLENBQUM7S0FDckU7SUFDRCxNQUFNLHFCQUFxQixxQkFBUSxnQkFBZ0IsQ0FBRSxDQUFDO0lBQ3RELGdCQUFnQixDQUFDLGtCQUFrQixHQUFHLEdBQUcsRUFBRSxDQUN6Qyx1QkFBdUIsQ0FBQyxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBRSxDQUFDLENBQUM7SUFDL0UsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDO0FBRUQsU0FBUyx1QkFBdUIsQ0FDOUIsZ0JBQXVDLEVBQ3ZDLGVBQXNDO0lBRXRDLG1FQUNLLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUMvRSxDQUFDLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsR0FDM0UsQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUM3QyxlQUFlLEVBQ2xCO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGVuc3VyZVNlbGVjdG9yTWV0YWRhdGEsXG4gIFNlbGVjdG9yTWV0YURhdGFNb2RlbCxcbiAgU2hhcmVkU2VsZWN0b3JPcHRpb25zLFxufSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgQ3JlYXRpb25NZXRhZGF0YSB9IGZyb20gJy4vc2VsZWN0b3ItbW9kZWxzJztcblxuY29uc3QgU0VMRUNUT1JfT1BUSU9OU19NRVRBX0tFWSA9ICdOR1hTX1NFTEVDVE9SX09QVElPTlNfTUVUQSc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IgPSB7XG4gIGdldE9wdGlvbnM6ICh0YXJnZXQ6IGFueSk6IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyA9PiB7XG4gICAgcmV0dXJuICh0YXJnZXQgJiYgKDxhbnk+dGFyZ2V0KVtTRUxFQ1RPUl9PUFRJT05TX01FVEFfS0VZXSkgfHwge307XG4gIH0sXG4gIGRlZmluZU9wdGlvbnM6ICh0YXJnZXQ6IGFueSwgb3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zKSA9PiB7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcbiAgICAoPGFueT50YXJnZXQpW1NFTEVDVE9SX09QVElPTlNfTUVUQV9LRVldID0gb3B0aW9ucztcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cFNlbGVjdG9yTWV0YWRhdGE8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgb3JpZ2luYWxGbjogVCxcbiAgY3JlYXRpb25NZXRhZGF0YTogUGFydGlhbDxDcmVhdGlvbk1ldGFkYXRhPiB8IHVuZGVmaW5lZFxuKSB7XG4gIGNvbnN0IHNlbGVjdG9yTWV0YURhdGEgPSBlbnN1cmVTZWxlY3Rvck1ldGFkYXRhKG9yaWdpbmFsRm4pO1xuICBzZWxlY3Rvck1ldGFEYXRhLm9yaWdpbmFsRm4gPSBvcmlnaW5hbEZuO1xuICBsZXQgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnMgPSAoKSA9PiAoe30pO1xuICBpZiAoY3JlYXRpb25NZXRhZGF0YSkge1xuICAgIHNlbGVjdG9yTWV0YURhdGEuY29udGFpbmVyQ2xhc3MgPSBjcmVhdGlvbk1ldGFkYXRhLmNvbnRhaW5lckNsYXNzO1xuICAgIHNlbGVjdG9yTWV0YURhdGEuc2VsZWN0b3JOYW1lID0gY3JlYXRpb25NZXRhZGF0YS5zZWxlY3Rvck5hbWUgfHwgbnVsbDtcbiAgICBnZXRFeHBsaWNpdFNlbGVjdG9yT3B0aW9ucyA9XG4gICAgICBjcmVhdGlvbk1ldGFkYXRhLmdldFNlbGVjdG9yT3B0aW9ucyB8fCBnZXRFeHBsaWNpdFNlbGVjdG9yT3B0aW9ucztcbiAgfVxuICBjb25zdCBzZWxlY3Rvck1ldGFEYXRhQ2xvbmUgPSB7IC4uLnNlbGVjdG9yTWV0YURhdGEgfTtcbiAgc2VsZWN0b3JNZXRhRGF0YS5nZXRTZWxlY3Rvck9wdGlvbnMgPSAoKSA9PlxuICAgIGdldExvY2FsU2VsZWN0b3JPcHRpb25zKHNlbGVjdG9yTWV0YURhdGFDbG9uZSwgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnMoKSk7XG4gIHJldHVybiBzZWxlY3Rvck1ldGFEYXRhO1xufVxuXG5mdW5jdGlvbiBnZXRMb2NhbFNlbGVjdG9yT3B0aW9ucyhcbiAgc2VsZWN0b3JNZXRhRGF0YTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsLFxuICBleHBsaWNpdE9wdGlvbnM6IFNoYXJlZFNlbGVjdG9yT3B0aW9uc1xuKTogU2hhcmVkU2VsZWN0b3JPcHRpb25zIHtcbiAgcmV0dXJuIHtcbiAgICAuLi4oc2VsZWN0b3JPcHRpb25zTWV0YUFjY2Vzc29yLmdldE9wdGlvbnMoc2VsZWN0b3JNZXRhRGF0YS5jb250YWluZXJDbGFzcykgfHwge30pLFxuICAgIC4uLihzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IuZ2V0T3B0aW9ucyhzZWxlY3Rvck1ldGFEYXRhLm9yaWdpbmFsRm4pIHx8IHt9KSxcbiAgICAuLi4oc2VsZWN0b3JNZXRhRGF0YS5nZXRTZWxlY3Rvck9wdGlvbnMoKSB8fCB7fSksXG4gICAgLi4uZXhwbGljaXRPcHRpb25zLFxuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItbW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL3NlbGVjdG9ycy9zZWxlY3Rvci1tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNoYXJlZFNlbGVjdG9yT3B0aW9ucywgU2VsZWN0RnJvbVJvb3RTdGF0ZSB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRpb25NZXRhZGF0YSB7XG4gIGNvbnRhaW5lckNsYXNzOiBhbnk7XG4gIHNlbGVjdG9yTmFtZTogc3RyaW5nO1xuICBnZXRTZWxlY3Rvck9wdGlvbnM/OiAoKSA9PiBTaGFyZWRTZWxlY3Rvck9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZVNlbGVjdG9ySW5mbyB7XG4gIHNlbGVjdG9yT3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xuICBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zOiBTZWxlY3RGcm9tUm9vdFN0YXRlW107XG59XG4iXX0=
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { memoize } from '@ngxs/store/internals';
|
|
2
|
+
import { getSelectorMetadata, getStoreMetadata, } from '../internal/internals';
|
|
3
|
+
export function createRootSelectorFactory(selectorMetaData, selectors, memoizedSelectorFn) {
|
|
4
|
+
return (context) => {
|
|
5
|
+
const { argumentSelectorFunctions, selectorOptions } = getRuntimeSelectorInfo(context, selectorMetaData, selectors);
|
|
6
|
+
return function selectFromRoot(rootState) {
|
|
7
|
+
// Determine arguments from the app state using the selectors
|
|
8
|
+
const results = argumentSelectorFunctions.map((argFn) => argFn(rootState));
|
|
9
|
+
// if the lambda tries to access a something on the
|
|
10
|
+
// state that doesn't exist, it will throw a TypeError.
|
|
11
|
+
// since this is quite usual behaviour, we simply return undefined if so.
|
|
12
|
+
try {
|
|
13
|
+
return memoizedSelectorFn(...results);
|
|
14
|
+
}
|
|
15
|
+
catch (ex) {
|
|
16
|
+
if (ex instanceof TypeError && selectorOptions.suppressErrors) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
throw ex;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function createMemoizedSelectorFn(originalFn, creationMetadata) {
|
|
25
|
+
const containerClass = creationMetadata && creationMetadata.containerClass;
|
|
26
|
+
const wrappedFn = function wrappedSelectorFn(...args) {
|
|
27
|
+
const returnValue = originalFn.apply(containerClass, args);
|
|
28
|
+
if (returnValue instanceof Function) {
|
|
29
|
+
const innerMemoizedFn = memoize.apply(null, [returnValue]);
|
|
30
|
+
return innerMemoizedFn;
|
|
31
|
+
}
|
|
32
|
+
return returnValue;
|
|
33
|
+
};
|
|
34
|
+
const memoizedFn = memoize(wrappedFn);
|
|
35
|
+
Object.setPrototypeOf(memoizedFn, originalFn);
|
|
36
|
+
return memoizedFn;
|
|
37
|
+
}
|
|
38
|
+
function getRuntimeSelectorInfo(context, selectorMetaData, selectors = []) {
|
|
39
|
+
const localSelectorOptions = selectorMetaData.getSelectorOptions();
|
|
40
|
+
const selectorOptions = context.getSelectorOptions(localSelectorOptions);
|
|
41
|
+
const selectorsToApply = getSelectorsToApply(selectors, selectorOptions, selectorMetaData.containerClass);
|
|
42
|
+
const argumentSelectorFunctions = selectorsToApply.map((selector) => {
|
|
43
|
+
const factory = getRootSelectorFactory(selector);
|
|
44
|
+
return factory(context);
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
selectorOptions,
|
|
48
|
+
argumentSelectorFunctions,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function getSelectorsToApply(selectors = [], selectorOptions, containerClass) {
|
|
52
|
+
const selectorsToApply = [];
|
|
53
|
+
const canInjectContainerState = selectors.length === 0 || selectorOptions.injectContainerState;
|
|
54
|
+
if (containerClass && canInjectContainerState) {
|
|
55
|
+
// If we are on a state class, add it as the first selector parameter
|
|
56
|
+
const metadata = getStoreMetadata(containerClass);
|
|
57
|
+
if (metadata) {
|
|
58
|
+
selectorsToApply.push(containerClass);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (selectors) {
|
|
62
|
+
selectorsToApply.push(...selectors);
|
|
63
|
+
}
|
|
64
|
+
return selectorsToApply;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* This function gets the factory function to create the selector to get the selected slice from the app state
|
|
68
|
+
* @ignore
|
|
69
|
+
*/
|
|
70
|
+
export function getRootSelectorFactory(selector) {
|
|
71
|
+
const metadata = getSelectorMetadata(selector) || getStoreMetadata(selector);
|
|
72
|
+
return (metadata && metadata.makeRootSelector) || (() => selector);
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc2VsZWN0b3JzL3NlbGVjdG9yLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGdCQUFnQixHQUtqQixNQUFNLHVCQUF1QixDQUFDO0FBRy9CLE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsZ0JBQXVDLEVBQ3ZDLFNBQTRCLEVBQzVCLGtCQUFxQjtJQUVyQixPQUFPLENBQUMsT0FBK0IsRUFBRSxFQUFFO1FBQ3pDLE1BQU0sRUFBRSx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsR0FBRyxzQkFBc0IsQ0FDM0UsT0FBTyxFQUNQLGdCQUFnQixFQUNoQixTQUFTLENBQ1YsQ0FBQztRQUVGLE9BQU8sU0FBUyxjQUFjLENBQUMsU0FBYztZQUMzQyw2REFBNkQ7WUFDN0QsTUFBTSxPQUFPLEdBQUcseUJBQXlCLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUUzRSxtREFBbUQ7WUFDbkQsdURBQXVEO1lBQ3ZELHlFQUF5RTtZQUN6RSxJQUFJO2dCQUNGLE9BQU8sa0JBQWtCLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQzthQUN2QztZQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUNYLElBQUksRUFBRSxZQUFZLFNBQVMsSUFBSSxlQUFlLENBQUMsY0FBYyxFQUFFO29CQUM3RCxPQUFPLFNBQVMsQ0FBQztpQkFDbEI7Z0JBRUQsTUFBTSxFQUFFLENBQUM7YUFDVjtRQUNILENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLFVBQWEsRUFDYixnQkFBdUQ7SUFFdkQsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsY0FBYyxDQUFDO0lBQzNFLE1BQU0sU0FBUyxHQUFHLFNBQVMsaUJBQWlCLENBQUMsR0FBRyxJQUFXO1FBQ3pELE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNELElBQUksV0FBVyxZQUFZLFFBQVEsRUFBRTtZQUNuQyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDM0QsT0FBTyxlQUFlLENBQUM7U0FDeEI7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFNLENBQUM7SUFDUCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUMsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQzdCLE9BQStCLEVBQy9CLGdCQUF1QyxFQUN2QyxZQUErQixFQUFFO0lBRWpDLE1BQU0sb0JBQW9CLEdBQUcsZ0JBQWdCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNuRSxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN6RSxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUMxQyxTQUFTLEVBQ1QsZUFBZSxFQUNmLGdCQUFnQixDQUFDLGNBQWMsQ0FDaEMsQ0FBQztJQUVGLE1BQU0seUJBQXlCLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDbEUsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPO1FBQ0wsZUFBZTtRQUNmLHlCQUF5QjtLQUMxQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsbUJBQW1CLENBQzFCLFlBQStCLEVBQUUsRUFDakMsZUFBc0MsRUFDdEMsY0FBbUI7SUFFbkIsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDNUIsTUFBTSx1QkFBdUIsR0FDM0IsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksZUFBZSxDQUFDLG9CQUFvQixDQUFDO0lBQ2pFLElBQUksY0FBYyxJQUFJLHVCQUF1QixFQUFFO1FBQzdDLHFFQUFxRTtRQUNyRSxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNsRCxJQUFJLFFBQVEsRUFBRTtZQUNaLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN2QztLQUNGO0lBQ0QsSUFBSSxTQUFTLEVBQUU7UUFDYixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztLQUNyQztJQUNELE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUFhO0lBQ2xELE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdFLE9BQU8sQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtb2l6ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7XG4gIGdldFNlbGVjdG9yTWV0YWRhdGEsXG4gIGdldFN0b3JlTWV0YWRhdGEsXG4gIFNlbGVjdG9yTWV0YURhdGFNb2RlbCxcbiAgU2hhcmVkU2VsZWN0b3JPcHRpb25zLFxuICBSdW50aW1lU2VsZWN0b3JDb250ZXh0LFxuICBTZWxlY3RvckZhY3RvcnksXG59IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XG5pbXBvcnQgeyBDcmVhdGlvbk1ldGFkYXRhLCBSdW50aW1lU2VsZWN0b3JJbmZvIH0gZnJvbSAnLi9zZWxlY3Rvci1tb2RlbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUm9vdFNlbGVjdG9yRmFjdG9yeTxUIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+KFxuICBzZWxlY3Rvck1ldGFEYXRhOiBTZWxlY3Rvck1ldGFEYXRhTW9kZWwsXG4gIHNlbGVjdG9yczogYW55W10gfCB1bmRlZmluZWQsXG4gIG1lbW9pemVkU2VsZWN0b3JGbjogVFxuKTogU2VsZWN0b3JGYWN0b3J5IHtcbiAgcmV0dXJuIChjb250ZXh0OiBSdW50aW1lU2VsZWN0b3JDb250ZXh0KSA9PiB7XG4gICAgY29uc3QgeyBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zLCBzZWxlY3Rvck9wdGlvbnMgfSA9IGdldFJ1bnRpbWVTZWxlY3RvckluZm8oXG4gICAgICBjb250ZXh0LFxuICAgICAgc2VsZWN0b3JNZXRhRGF0YSxcbiAgICAgIHNlbGVjdG9yc1xuICAgICk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gc2VsZWN0RnJvbVJvb3Qocm9vdFN0YXRlOiBhbnkpIHtcbiAgICAgIC8vIERldGVybWluZSBhcmd1bWVudHMgZnJvbSB0aGUgYXBwIHN0YXRlIHVzaW5nIHRoZSBzZWxlY3RvcnNcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zLm1hcCgoYXJnRm4pID0+IGFyZ0ZuKHJvb3RTdGF0ZSkpO1xuXG4gICAgICAvLyBpZiB0aGUgbGFtYmRhIHRyaWVzIHRvIGFjY2VzcyBhIHNvbWV0aGluZyBvbiB0aGVcbiAgICAgIC8vIHN0YXRlIHRoYXQgZG9lc24ndCBleGlzdCwgaXQgd2lsbCB0aHJvdyBhIFR5cGVFcnJvci5cbiAgICAgIC8vIHNpbmNlIHRoaXMgaXMgcXVpdGUgdXN1YWwgYmVoYXZpb3VyLCB3ZSBzaW1wbHkgcmV0dXJuIHVuZGVmaW5lZCBpZiBzby5cbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBtZW1vaXplZFNlbGVjdG9yRm4oLi4ucmVzdWx0cyk7XG4gICAgICB9IGNhdGNoIChleCkge1xuICAgICAgICBpZiAoZXggaW5zdGFuY2VvZiBUeXBlRXJyb3IgJiYgc2VsZWN0b3JPcHRpb25zLnN1cHByZXNzRXJyb3JzKSB7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRocm93IGV4O1xuICAgICAgfVxuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNZW1vaXplZFNlbGVjdG9yRm48VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgb3JpZ2luYWxGbjogVCxcbiAgY3JlYXRpb25NZXRhZGF0YTogUGFydGlhbDxDcmVhdGlvbk1ldGFkYXRhPiB8IHVuZGVmaW5lZFxuKSB7XG4gIGNvbnN0IGNvbnRhaW5lckNsYXNzID0gY3JlYXRpb25NZXRhZGF0YSAmJiBjcmVhdGlvbk1ldGFkYXRhLmNvbnRhaW5lckNsYXNzO1xuICBjb25zdCB3cmFwcGVkRm4gPSBmdW5jdGlvbiB3cmFwcGVkU2VsZWN0b3JGbiguLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IHJldHVyblZhbHVlID0gb3JpZ2luYWxGbi5hcHBseShjb250YWluZXJDbGFzcywgYXJncyk7XG4gICAgaWYgKHJldHVyblZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgIGNvbnN0IGlubmVyTWVtb2l6ZWRGbiA9IG1lbW9pemUuYXBwbHkobnVsbCwgW3JldHVyblZhbHVlXSk7XG4gICAgICByZXR1cm4gaW5uZXJNZW1vaXplZEZuO1xuICAgIH1cbiAgICByZXR1cm4gcmV0dXJuVmFsdWU7XG4gIH0gYXMgVDtcbiAgY29uc3QgbWVtb2l6ZWRGbiA9IG1lbW9pemUod3JhcHBlZEZuKTtcbiAgT2JqZWN0LnNldFByb3RvdHlwZU9mKG1lbW9pemVkRm4sIG9yaWdpbmFsRm4pO1xuICByZXR1cm4gbWVtb2l6ZWRGbjtcbn1cblxuZnVuY3Rpb24gZ2V0UnVudGltZVNlbGVjdG9ySW5mbyhcbiAgY29udGV4dDogUnVudGltZVNlbGVjdG9yQ29udGV4dCxcbiAgc2VsZWN0b3JNZXRhRGF0YTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsLFxuICBzZWxlY3RvcnM6IGFueVtdIHwgdW5kZWZpbmVkID0gW11cbik6IFJ1bnRpbWVTZWxlY3RvckluZm8ge1xuICBjb25zdCBsb2NhbFNlbGVjdG9yT3B0aW9ucyA9IHNlbGVjdG9yTWV0YURhdGEuZ2V0U2VsZWN0b3JPcHRpb25zKCk7XG4gIGNvbnN0IHNlbGVjdG9yT3B0aW9ucyA9IGNvbnRleHQuZ2V0U2VsZWN0b3JPcHRpb25zKGxvY2FsU2VsZWN0b3JPcHRpb25zKTtcbiAgY29uc3Qgc2VsZWN0b3JzVG9BcHBseSA9IGdldFNlbGVjdG9yc1RvQXBwbHkoXG4gICAgc2VsZWN0b3JzLFxuICAgIHNlbGVjdG9yT3B0aW9ucyxcbiAgICBzZWxlY3Rvck1ldGFEYXRhLmNvbnRhaW5lckNsYXNzXG4gICk7XG5cbiAgY29uc3QgYXJndW1lbnRTZWxlY3RvckZ1bmN0aW9ucyA9IHNlbGVjdG9yc1RvQXBwbHkubWFwKChzZWxlY3RvcikgPT4ge1xuICAgIGNvbnN0IGZhY3RvcnkgPSBnZXRSb290U2VsZWN0b3JGYWN0b3J5KHNlbGVjdG9yKTtcbiAgICByZXR1cm4gZmFjdG9yeShjb250ZXh0KTtcbiAgfSk7XG4gIHJldHVybiB7XG4gICAgc2VsZWN0b3JPcHRpb25zLFxuICAgIGFyZ3VtZW50U2VsZWN0b3JGdW5jdGlvbnMsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldFNlbGVjdG9yc1RvQXBwbHkoXG4gIHNlbGVjdG9yczogYW55W10gfCB1bmRlZmluZWQgPSBbXSxcbiAgc2VsZWN0b3JPcHRpb25zOiBTaGFyZWRTZWxlY3Rvck9wdGlvbnMsXG4gIGNvbnRhaW5lckNsYXNzOiBhbnlcbikge1xuICBjb25zdCBzZWxlY3RvcnNUb0FwcGx5ID0gW107XG4gIGNvbnN0IGNhbkluamVjdENvbnRhaW5lclN0YXRlID1cbiAgICBzZWxlY3RvcnMubGVuZ3RoID09PSAwIHx8IHNlbGVjdG9yT3B0aW9ucy5pbmplY3RDb250YWluZXJTdGF0ZTtcbiAgaWYgKGNvbnRhaW5lckNsYXNzICYmIGNhbkluamVjdENvbnRhaW5lclN0YXRlKSB7XG4gICAgLy8gSWYgd2UgYXJlIG9uIGEgc3RhdGUgY2xhc3MsIGFkZCBpdCBhcyB0aGUgZmlyc3Qgc2VsZWN0b3IgcGFyYW1ldGVyXG4gICAgY29uc3QgbWV0YWRhdGEgPSBnZXRTdG9yZU1ldGFkYXRhKGNvbnRhaW5lckNsYXNzKTtcbiAgICBpZiAobWV0YWRhdGEpIHtcbiAgICAgIHNlbGVjdG9yc1RvQXBwbHkucHVzaChjb250YWluZXJDbGFzcyk7XG4gICAgfVxuICB9XG4gIGlmIChzZWxlY3RvcnMpIHtcbiAgICBzZWxlY3RvcnNUb0FwcGx5LnB1c2goLi4uc2VsZWN0b3JzKTtcbiAgfVxuICByZXR1cm4gc2VsZWN0b3JzVG9BcHBseTtcbn1cblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIGdldHMgdGhlIGZhY3RvcnkgZnVuY3Rpb24gdG8gY3JlYXRlIHRoZSBzZWxlY3RvciB0byBnZXQgdGhlIHNlbGVjdGVkIHNsaWNlIGZyb20gdGhlIGFwcCBzdGF0ZVxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um9vdFNlbGVjdG9yRmFjdG9yeShzZWxlY3RvcjogYW55KTogU2VsZWN0b3JGYWN0b3J5IHtcbiAgY29uc3QgbWV0YWRhdGEgPSBnZXRTZWxlY3Rvck1ldGFkYXRhKHNlbGVjdG9yKSB8fCBnZXRTdG9yZU1ldGFkYXRhKHNlbGVjdG9yKTtcbiAgcmV0dXJuIChtZXRhZGF0YSAmJiBtZXRhZGF0YS5tYWtlUm9vdFNlbGVjdG9yKSB8fCAoKCkgPT4gc2VsZWN0b3IpO1xufVxuIl19
|