@ngxs/store 3.8.2-dev.master-dbed85b → 3.8.2-dev.master-81baa9d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/internals/custom-rxjs-subjects.mjs +92 -0
- package/esm2022/internals/index.mjs +9 -5
- package/esm2022/internals/initial-state.mjs +4 -4
- package/esm2022/internals/memoize.mjs +2 -2
- package/esm2022/internals/metadata.mjs +57 -0
- package/esm2022/internals/ngxs-app-bootstrapped-state.mjs +19 -0
- package/esm2022/internals/state-stream.mjs +32 -0
- package/esm2022/internals/state-token.mjs +17 -0
- package/esm2022/internals/symbols.mjs +1 -1
- package/esm2022/plugins/actions.mjs +16 -0
- package/esm2022/plugins/index.mjs +4 -0
- package/esm2022/plugins/ngxs-store-plugins.mjs +5 -0
- package/esm2022/plugins/symbols.mjs +6 -0
- package/esm2022/plugins/utils.mjs +51 -0
- package/esm2022/src/actions/symbols.mjs +1 -1
- package/esm2022/src/actions-stream.mjs +3 -3
- package/esm2022/src/configs/messages.config.mjs +1 -1
- package/esm2022/src/decorators/action.mjs +3 -3
- package/esm2022/src/decorators/select/symbols.mjs +1 -1
- package/esm2022/src/decorators/selector/symbols.mjs +1 -1
- package/esm2022/src/decorators/selector-options.mjs +1 -1
- package/esm2022/src/decorators/state.mjs +3 -4
- package/esm2022/src/dev-features/ngxs-development.module.mjs +8 -2
- package/esm2022/src/dev-features/ngxs-unhandled-actions-logger.mjs +2 -3
- package/esm2022/src/dev-features/symbols.mjs +3 -2
- package/esm2022/src/execution/dispatch-outside-zone-ngxs-execution-strategy.mjs +1 -1
- package/esm2022/src/internal/dispatcher.mjs +2 -2
- package/esm2022/src/internal/internals.mjs +3 -66
- package/esm2022/src/internal/lifecycle-state-manager.mjs +8 -9
- package/esm2022/src/internal/state-context-factory.mjs +2 -2
- package/esm2022/src/internal/state-factory.mjs +21 -22
- package/esm2022/src/internal/state-stream.mjs +6 -23
- package/esm2022/src/operators/of-action.mjs +2 -2
- package/esm2022/src/plugin-manager.mjs +2 -2
- package/esm2022/src/plugin_api.mjs +2 -5
- package/esm2022/src/public_api.mjs +3 -3
- package/esm2022/src/public_to_deprecate.mjs +18 -6
- package/esm2022/src/selectors/create-pick-selector.mjs +1 -1
- package/esm2022/src/selectors/selector-checks.util.mjs +3 -3
- package/esm2022/src/selectors/selector-metadata.mjs +3 -3
- package/esm2022/src/selectors/selector-models.mjs +1 -1
- package/esm2022/src/selectors/selector-types.util.mjs +1 -1
- package/esm2022/src/selectors/selector-utils.mjs +6 -7
- package/esm2022/src/standalone-features/initializers.mjs +1 -1
- package/esm2022/src/standalone-features/plugin.mjs +2 -2
- package/esm2022/src/standalone-features/root-providers.mjs +4 -4
- package/esm2022/src/store.mjs +4 -4
- package/esm2022/src/symbols.mjs +41 -12
- package/esm2022/src/utils/store-validators.mjs +3 -3
- package/fesm2022/ngxs-store-internals.mjs +222 -40
- package/fesm2022/ngxs-store-internals.mjs.map +1 -1
- package/fesm2022/ngxs-store-plugins.mjs +80 -0
- package/fesm2022/ngxs-store-plugins.mjs.map +1 -0
- package/fesm2022/ngxs-store.mjs +224 -468
- package/fesm2022/ngxs-store.mjs.map +1 -1
- package/{src/internal → internals}/custom-rxjs-subjects.d.ts +2 -2
- package/internals/index.d.ts +8 -4
- package/internals/initial-state.d.ts +5 -5
- package/internals/memoize.d.ts +1 -1
- package/internals/metadata.d.ts +25 -0
- package/internals/ngxs-app-bootstrapped-state.d.ts +8 -0
- package/internals/state-stream.d.ts +15 -0
- package/internals/state-token.d.ts +7 -0
- package/internals/symbols.d.ts +72 -2
- package/package.json +7 -1
- package/{src/actions → plugins}/actions.d.ts +3 -3
- package/plugins/index.d.ts +3 -0
- package/plugins/symbols.d.ts +13 -0
- package/{src/utils → plugins}/utils.d.ts +0 -17
- package/src/actions/symbols.d.ts +0 -14
- package/src/actions-stream.d.ts +2 -2
- package/src/configs/messages.config.d.ts +2 -2
- package/src/decorators/action.d.ts +3 -2
- package/src/decorators/select/symbols.d.ts +2 -3
- package/src/decorators/selector/symbols.d.ts +2 -3
- package/src/decorators/selector-options.d.ts +2 -2
- package/src/decorators/state.d.ts +2 -3
- package/src/dev-features/ngxs-development.module.d.ts +1 -0
- package/src/internal/internals.d.ts +8 -68
- package/src/internal/lifecycle-state-manager.d.ts +4 -4
- package/src/internal/state-factory.d.ts +5 -5
- package/src/internal/state-stream.d.ts +3 -9
- package/src/plugin-manager.d.ts +1 -1
- package/src/plugin_api.d.ts +1 -4
- package/src/public_api.d.ts +4 -3
- package/src/public_to_deprecate.d.ts +33 -21
- package/src/selectors/selector-metadata.d.ts +4 -4
- package/src/selectors/selector-models.d.ts +4 -4
- package/src/selectors/selector-types.util.d.ts +1 -2
- package/src/selectors/selector-utils.d.ts +3 -3
- package/src/standalone-features/plugin.d.ts +1 -1
- package/src/store.d.ts +1 -1
- package/src/symbols.d.ts +3 -35
- package/src/utils/store-validators.d.ts +4 -3
- package/esm2022/internals/ngxs-bootstrapper.mjs +0 -29
- package/esm2022/internals/src/symbols.mjs +0 -11
- package/esm2022/src/actions/actions.mjs +0 -16
- package/esm2022/src/internal/custom-rxjs-subjects.mjs +0 -92
- package/esm2022/src/state-token/state-token.mjs +0 -17
- package/esm2022/src/state-token/symbols.mjs +0 -2
- package/esm2022/src/utils/utils.mjs +0 -92
- package/internals/ngxs-bootstrapper.d.ts +0 -16
- package/internals/src/symbols.d.ts +0 -10
- package/src/state-token/state-token.d.ts +0 -7
- package/src/state-token/symbols.d.ts +0 -5
|
@@ -1,21 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export
|
|
1
|
+
import { ɵActionHandlerMetaData, ɵMetaDataModel, ɵPlainObjectOf, ɵSelectorMetaDataModel, ɵStateClassInternal, ɵSharedSelectorOptions } from '@ngxs/store/internals';
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated will be removed after v4
|
|
4
|
+
*/
|
|
5
|
+
export type StateClassInternal = ɵStateClassInternal;
|
|
6
|
+
/**
|
|
7
|
+
* @deprecated will be removed after v4
|
|
8
|
+
*/
|
|
9
|
+
export type PlainObjectOf<T> = ɵPlainObjectOf<T>;
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated will be removed after v4
|
|
12
|
+
*/
|
|
13
|
+
export type ActionHandlerMetaData = ɵActionHandlerMetaData;
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated will be removed after v4
|
|
16
|
+
*/
|
|
17
|
+
export type SharedSelectorOptions = ɵSharedSelectorOptions;
|
|
18
|
+
/**
|
|
19
|
+
* @deprecated will be removed after v4
|
|
20
|
+
*/
|
|
21
|
+
export declare function ensureStoreMetadata(target: ɵStateClassInternal<any, any>): ɵMetaDataModel;
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated will be removed after v4
|
|
24
|
+
*/
|
|
25
|
+
export declare function getStoreMetadata(target: ɵStateClassInternal<any, any>): ɵMetaDataModel;
|
|
26
|
+
/**
|
|
27
|
+
* @deprecated will be removed after v4
|
|
28
|
+
*/
|
|
29
|
+
export declare function ensureSelectorMetadata(target: Function): ɵSelectorMetaDataModel;
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated will be removed after v4
|
|
32
|
+
*/
|
|
33
|
+
export declare function getSelectorMetadata(target: any): ɵSelectorMetaDataModel;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ɵSelectorMetaDataModel, ɵSharedSelectorOptions } from '@ngxs/store/internals';
|
|
2
2
|
import { CreationMetadata } from './selector-models';
|
|
3
3
|
export declare const selectorOptionsMetaAccessor: {
|
|
4
|
-
getOptions: (target: any) =>
|
|
5
|
-
defineOptions: (target: any, options:
|
|
4
|
+
getOptions: (target: any) => ɵSharedSelectorOptions;
|
|
5
|
+
defineOptions: (target: any, options: ɵSharedSelectorOptions) => void;
|
|
6
6
|
};
|
|
7
|
-
export declare function setupSelectorMetadata<T extends (...args: any[]) => any>(originalFn: T, creationMetadata: Partial<CreationMetadata> | undefined):
|
|
7
|
+
export declare function setupSelectorMetadata<T extends (...args: any[]) => any>(originalFn: T, creationMetadata: Partial<CreationMetadata> | undefined): ɵSelectorMetaDataModel;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ɵSharedSelectorOptions, ɵSelectFromRootState } from '@ngxs/store/internals';
|
|
2
2
|
export interface CreationMetadata {
|
|
3
3
|
containerClass: any;
|
|
4
4
|
selectorName: string;
|
|
5
|
-
getSelectorOptions?: () =>
|
|
5
|
+
getSelectorOptions?: () => ɵSharedSelectorOptions;
|
|
6
6
|
}
|
|
7
7
|
export interface RuntimeSelectorInfo {
|
|
8
|
-
selectorOptions:
|
|
9
|
-
argumentSelectorFunctions:
|
|
8
|
+
selectorOptions: ɵSharedSelectorOptions;
|
|
9
|
+
argumentSelectorFunctions: ɵSelectFromRootState[];
|
|
10
10
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { ɵStateClass } from '@ngxs/store/internals';
|
|
2
|
-
import { StateToken } from '../state-token/state-token';
|
|
1
|
+
import { ɵStateClass, StateToken } from '@ngxs/store/internals';
|
|
3
2
|
export type SelectorFunc<TModel> = (...arg: any[]) => TModel;
|
|
4
3
|
export type TypedSelector<TModel> = StateToken<TModel> | SelectorFunc<TModel>;
|
|
5
4
|
export type StateSelector = ɵStateClass<any>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ɵSelectorFactory, ɵSelectorMetaDataModel } from '@ngxs/store/internals';
|
|
2
2
|
import { CreationMetadata } from './selector-models';
|
|
3
|
-
export declare function createRootSelectorFactory<T extends (...args: any[]) => any>(selectorMetaData:
|
|
3
|
+
export declare function createRootSelectorFactory<T extends (...args: any[]) => any>(selectorMetaData: ɵSelectorMetaDataModel, selectors: any[] | undefined, memoizedSelectorFn: T): ɵSelectorFactory;
|
|
4
4
|
export declare function createMemoizedSelectorFn<T extends (...args: any[]) => any>(originalFn: T, creationMetadata: Partial<CreationMetadata> | undefined): T;
|
|
5
5
|
/**
|
|
6
6
|
* This function gets the factory function to create the selector to get the selected slice from the app state
|
|
7
7
|
* @ignore
|
|
8
8
|
*/
|
|
9
|
-
export declare function getRootSelectorFactory(selector: any):
|
|
9
|
+
export declare function getRootSelectorFactory(selector: any): ɵSelectorFactory;
|
package/src/store.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Signal, Type } from '@angular/core';
|
|
2
2
|
import { Observable, Subscription } from 'rxjs';
|
|
3
|
+
import { StateToken } from '@ngxs/store/internals';
|
|
3
4
|
import { InternalNgxsExecutionStrategy } from './execution/internal-ngxs-execution-strategy';
|
|
4
5
|
import { InternalStateOperations } from './internal/state-operations';
|
|
5
6
|
import { StateStream } from './internal/state-stream';
|
|
6
7
|
import { NgxsConfig } from './symbols';
|
|
7
|
-
import { StateToken } from './state-token/state-token';
|
|
8
8
|
import { StateFactory } from './internal/state-factory';
|
|
9
9
|
import { TypedSelector } from './selectors';
|
|
10
10
|
import * as i0 from "@angular/core";
|
package/src/symbols.d.ts
CHANGED
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
import { InjectionToken, Type } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import { PlainObject, ɵStateClass } from '@ngxs/store/internals';
|
|
4
3
|
import { StateOperator } from '@ngxs/store/operators';
|
|
4
|
+
import { ɵPlainObject, ɵSharedSelectorOptions, ɵStateClass } from '@ngxs/store/internals';
|
|
5
5
|
import { NgxsExecutionStrategy } from './execution/symbols';
|
|
6
|
-
import { SharedSelectorOptions } from './internal/internals';
|
|
7
|
-
import { StateToken } from './state-token/state-token';
|
|
8
6
|
import * as i0 from "@angular/core";
|
|
9
7
|
export declare const ROOT_STATE_TOKEN: InjectionToken<ɵStateClass[]>;
|
|
10
8
|
export declare const FEATURE_STATE_TOKEN: InjectionToken<ɵStateClass[][]>;
|
|
11
|
-
export declare const NGXS_PLUGINS: InjectionToken<unknown>;
|
|
12
9
|
export declare const NGXS_OPTIONS: InjectionToken<Partial<NgxsConfig>>;
|
|
13
10
|
export type NgxsLifeCycle = Partial<NgxsOnChanges> & Partial<NgxsOnInit> & Partial<NgxsAfterBootstrap>;
|
|
14
|
-
export type NgxsPluginFn = (state: any, mutation: any, next: NgxsNextPluginFn) => any;
|
|
15
11
|
/**
|
|
16
12
|
* The NGXS config settings.
|
|
17
13
|
*/
|
|
@@ -52,12 +48,11 @@ export declare class NgxsConfig {
|
|
|
52
48
|
* @deprecated will be removed after v4
|
|
53
49
|
* (default: {})
|
|
54
50
|
*/
|
|
55
|
-
defaultsState:
|
|
51
|
+
defaultsState: ɵPlainObject;
|
|
56
52
|
/**
|
|
57
53
|
* Defining shared selector options
|
|
58
54
|
*/
|
|
59
|
-
selectorOptions:
|
|
60
|
-
constructor();
|
|
55
|
+
selectorOptions: ɵSharedSelectorOptions;
|
|
61
56
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgxsConfig, never>;
|
|
62
57
|
static ɵprov: i0.ɵɵInjectableDeclaration<NgxsConfig>;
|
|
63
58
|
}
|
|
@@ -83,33 +78,6 @@ export interface StateContext<T> {
|
|
|
83
78
|
*/
|
|
84
79
|
dispatch(actions: any | any[]): Observable<void>;
|
|
85
80
|
}
|
|
86
|
-
export type NgxsNextPluginFn = (state: any, mutation: any) => any;
|
|
87
|
-
/**
|
|
88
|
-
* Plugin interface
|
|
89
|
-
*/
|
|
90
|
-
export interface NgxsPlugin {
|
|
91
|
-
/**
|
|
92
|
-
* Handle the state/action before its submitted to the state handlers.
|
|
93
|
-
*/
|
|
94
|
-
handle(state: any, action: any, next: NgxsNextPluginFn): any;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Options that can be provided to the store.
|
|
98
|
-
*/
|
|
99
|
-
export interface StoreOptions<T> {
|
|
100
|
-
/**
|
|
101
|
-
* Name of the state. Required.
|
|
102
|
-
*/
|
|
103
|
-
name: string | StateToken<T>;
|
|
104
|
-
/**
|
|
105
|
-
* Default values for the state. If not provided, uses empty object.
|
|
106
|
-
*/
|
|
107
|
-
defaults?: T;
|
|
108
|
-
/**
|
|
109
|
-
* Sub states for the given state.
|
|
110
|
-
*/
|
|
111
|
-
children?: ɵStateClass[];
|
|
112
|
-
}
|
|
113
81
|
/**
|
|
114
82
|
* Represents a basic change from a previous to a new value for a single state instance.
|
|
115
83
|
* Passed as a value in a NgxsSimpleChanges object to the ngxsOnChanges hook.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ɵStateClassInternal } from '@ngxs/store/internals';
|
|
2
|
+
import { StatesByName } from '../internal/internals';
|
|
2
3
|
export declare function ensureStateNameIsValid(name: string | null): void | never;
|
|
3
|
-
export declare function ensureStateNameIsUnique(stateName: string, state:
|
|
4
|
-
export declare function ensureStatesAreDecorated(stateClasses:
|
|
4
|
+
export declare function ensureStateNameIsUnique(stateName: string, state: ɵStateClassInternal, statesByName: StatesByName): void | never;
|
|
5
|
+
export declare function ensureStatesAreDecorated(stateClasses: ɵStateClassInternal[]): void | never;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { ReplaySubject } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class NgxsBootstrapper {
|
|
5
|
-
constructor() {
|
|
6
|
-
/**
|
|
7
|
-
* Use `ReplaySubject`, thus we can get cached value even if the stream is completed
|
|
8
|
-
*/
|
|
9
|
-
this.bootstrap$ = new ReplaySubject(1);
|
|
10
|
-
}
|
|
11
|
-
get appBootstrapped$() {
|
|
12
|
-
return this.bootstrap$.asObservable();
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* This event will be emitted after attaching `ComponentRef` of the root component
|
|
16
|
-
* to the tree of views, that's a signal that application has been fully rendered
|
|
17
|
-
*/
|
|
18
|
-
bootstrap() {
|
|
19
|
-
this.bootstrap$.next(true);
|
|
20
|
-
this.bootstrap$.complete();
|
|
21
|
-
}
|
|
22
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: NgxsBootstrapper, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
23
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: NgxsBootstrapper, providedIn: 'root' }); }
|
|
24
|
-
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: NgxsBootstrapper, decorators: [{
|
|
26
|
-
type: Injectable,
|
|
27
|
-
args: [{ providedIn: 'root' }]
|
|
28
|
-
}] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1ib290c3RyYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9pbnRlcm5hbHMvc3JjL25neHMtYm9vdHN0cmFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHakQsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVFOztXQUVHO1FBQ0ssZUFBVSxHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQyxDQUFDO0tBY3BEO0lBWkMsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO2lJQWpCVSxnQkFBZ0I7cUlBQWhCLGdCQUFnQixjQURILE1BQU07OzJGQUNuQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neHNCb290c3RyYXBwZXIge1xuICAvKipcbiAgICogVXNlIGBSZXBsYXlTdWJqZWN0YCwgdGh1cyB3ZSBjYW4gZ2V0IGNhY2hlZCB2YWx1ZSBldmVuIGlmIHRoZSBzdHJlYW0gaXMgY29tcGxldGVkXG4gICAqL1xuICBwcml2YXRlIGJvb3RzdHJhcCQgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcblxuICBnZXQgYXBwQm9vdHN0cmFwcGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5ib290c3RyYXAkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZXZlbnQgd2lsbCBiZSBlbWl0dGVkIGFmdGVyIGF0dGFjaGluZyBgQ29tcG9uZW50UmVmYCBvZiB0aGUgcm9vdCBjb21wb25lbnRcbiAgICogdG8gdGhlIHRyZWUgb2Ygdmlld3MsIHRoYXQncyBhIHNpZ25hbCB0aGF0IGFwcGxpY2F0aW9uIGhhcyBiZWVuIGZ1bGx5IHJlbmRlcmVkXG4gICAqL1xuICBib290c3RyYXAoKTogdm9pZCB7XG4gICAgdGhpcy5ib290c3RyYXAkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5ib290c3RyYXAkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
// This key is used to store metadata on state classes,
|
|
2
|
-
// such as actions and other related information.
|
|
3
|
-
export const ɵMETA_KEY = 'NGXS_META';
|
|
4
|
-
// This key is used to store options on state classes
|
|
5
|
-
// provided through the `@State` decorator.
|
|
6
|
-
export const ɵMETA_OPTIONS_KEY = 'NGXS_OPTIONS_META';
|
|
7
|
-
// This key is used to store selector metadata on selector functions,
|
|
8
|
-
// such as decorated with the `@Selector` or provided through the
|
|
9
|
-
// `createSelector` function.
|
|
10
|
-
export const ɵSELECTOR_META_KEY = 'NGXS_SELECTOR_META';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL2ludGVybmFscy9zcmMvc3ltYm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSx1REFBdUQ7QUFDdkQsaURBQWlEO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7QUFDckMscURBQXFEO0FBQ3JELDJDQUEyQztBQUMzQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQztBQUNyRCxxRUFBcUU7QUFDckUsaUVBQWlFO0FBQ2pFLDZCQUE2QjtBQUM3QixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUGxhaW5PYmplY3Qge1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhaW5PYmplY3RPZjxUPiB7XG4gIFtrZXk6IHN0cmluZ106IFQ7XG59XG5cbmV4cG9ydCB0eXBlIMm1U3RhdGVDbGFzczxUID0gYW55PiA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQ7XG5cbi8vIFRoaXMga2V5IGlzIHVzZWQgdG8gc3RvcmUgbWV0YWRhdGEgb24gc3RhdGUgY2xhc3Nlcyxcbi8vIHN1Y2ggYXMgYWN0aW9ucyBhbmQgb3RoZXIgcmVsYXRlZCBpbmZvcm1hdGlvbi5cbmV4cG9ydCBjb25zdCDJtU1FVEFfS0VZID0gJ05HWFNfTUVUQSc7XG4vLyBUaGlzIGtleSBpcyB1c2VkIHRvIHN0b3JlIG9wdGlvbnMgb24gc3RhdGUgY2xhc3Nlc1xuLy8gcHJvdmlkZWQgdGhyb3VnaCB0aGUgYEBTdGF0ZWAgZGVjb3JhdG9yLlxuZXhwb3J0IGNvbnN0IMm1TUVUQV9PUFRJT05TX0tFWSA9ICdOR1hTX09QVElPTlNfTUVUQSc7XG4vLyBUaGlzIGtleSBpcyB1c2VkIHRvIHN0b3JlIHNlbGVjdG9yIG1ldGFkYXRhIG9uIHNlbGVjdG9yIGZ1bmN0aW9ucyxcbi8vIHN1Y2ggYXMgZGVjb3JhdGVkIHdpdGggdGhlIGBAU2VsZWN0b3JgIG9yIHByb3ZpZGVkIHRocm91Z2ggdGhlXG4vLyBgY3JlYXRlU2VsZWN0b3JgIGZ1bmN0aW9uLlxuZXhwb3J0IGNvbnN0IMm1U0VMRUNUT1JfTUVUQV9LRVkgPSAnTkdYU19TRUxFQ1RPUl9NRVRBJztcbiJdfQ==
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Init action
|
|
3
|
-
*/
|
|
4
|
-
export class InitState {
|
|
5
|
-
static { this.type = '@@INIT'; }
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Update action
|
|
9
|
-
*/
|
|
10
|
-
export class UpdateState {
|
|
11
|
-
static { this.type = '@@UPDATE_STATE'; }
|
|
12
|
-
constructor(addedStates) {
|
|
13
|
-
this.addedStates = addedStates;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9hY3Rpb25zL2FjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBUzthQUNKLFNBQUksR0FBRyxRQUFRLENBQUM7O0FBR2xDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7YUFDTixTQUFJLEdBQUcsZ0JBQWdCLENBQUM7SUFFeEMsWUFBbUIsV0FBeUI7UUFBekIsZ0JBQVcsR0FBWCxXQUFXLENBQWM7SUFBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaW5PYmplY3QgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG4vKipcbiAqIEluaXQgYWN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBJbml0U3RhdGUge1xuICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICdAQElOSVQnO1xufVxuXG4vKipcbiAqIFVwZGF0ZSBhY3Rpb25cbiAqL1xuZXhwb3J0IGNsYXNzIFVwZGF0ZVN0YXRlIHtcbiAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAnQEBVUERBVEVfU1RBVEUnO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhZGRlZFN0YXRlcz86IFBsYWluT2JqZWN0KSB7fVxufVxuIl19
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject, Subject } 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._orderedNext = orderedQueueOperation((value) => super.next(value));
|
|
58
|
-
}
|
|
59
|
-
next(value) {
|
|
60
|
-
this._orderedNext(value);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Custom BehaviorSubject that ensures that subscribers are notified of values in the order that they arrived.
|
|
65
|
-
* A standard BehaviorSubject does not have this guarantee.
|
|
66
|
-
* For example, given the following code:
|
|
67
|
-
* ```typescript
|
|
68
|
-
* const subject = new BehaviorSubject<string>();
|
|
69
|
-
subject.subscribe(value => {
|
|
70
|
-
if (value === 'start') subject.next('end');
|
|
71
|
-
});
|
|
72
|
-
subject.subscribe(value => { });
|
|
73
|
-
subject.next('start');
|
|
74
|
-
* ```
|
|
75
|
-
* When `subject` is a standard `BehaviorSubject<T>` the second subscriber would recieve `end` and then `start`.
|
|
76
|
-
* When `subject` is a `OrderedBehaviorSubject<T>` the second subscriber would recieve `start` and then `end`.
|
|
77
|
-
*/
|
|
78
|
-
export class OrderedBehaviorSubject extends BehaviorSubject {
|
|
79
|
-
constructor(value) {
|
|
80
|
-
super(value);
|
|
81
|
-
this._orderedNext = orderedQueueOperation((value) => super.next(value));
|
|
82
|
-
this._currentValue = value;
|
|
83
|
-
}
|
|
84
|
-
getValue() {
|
|
85
|
-
return this._currentValue;
|
|
86
|
-
}
|
|
87
|
-
next(value) {
|
|
88
|
-
this._currentValue = value;
|
|
89
|
-
this._orderedNext(value);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJ4anMtc3ViamVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvaW50ZXJuYWwvY3VzdG9tLXJ4anMtc3ViamVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxTQUFTLHFCQUFxQixDQUFzQixTQUFtQztJQUNyRixNQUFNLFVBQVUsR0FBWSxFQUFFLENBQUM7SUFDL0IsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzVCLE9BQU8sU0FBUyxhQUFhLENBQUMsR0FBRyxJQUFXO1FBQzFDLElBQUksZUFBZSxFQUFFO1lBQ25CLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekIsT0FBTztTQUNSO1FBQ0QsZUFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixTQUFTLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNuQixPQUFPLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzVCLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN0QyxZQUFZLElBQUksU0FBUyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7U0FDNUM7UUFDRCxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzFCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQU0sT0FBTyxjQUFrQixTQUFRLE9BQVU7SUFBakQ7O1FBQ1UsaUJBQVksR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLEtBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBS3BGLENBQUM7SUFIQyxJQUFJLENBQUMsS0FBUztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLE9BQU8sc0JBQTBCLFNBQVEsZUFBa0I7SUFJL0QsWUFBWSxLQUFRO1FBQ2xCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUpQLGlCQUFZLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxLQUFRLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUs1RSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQVE7UUFDWCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFRoaXMgd3JhcHMgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uLCBhbmQgd2lsbCBlbmZvcmNlIHRoZSBmb2xsb3dpbmc6XG4gKiAtIFRoZSBjYWxscyB3aWxsIGV4ZWN1dGUgaW4gdGhlIG9yZGVyIHRoYXQgdGhleSBhcmUgbWFkZVxuICogLSBBIGNhbGwgd2lsbCBvbmx5IGJlIGluaXRpYXRlZCB3aGVuIHRoZSBwcmV2aW91cyBjYWxsIGhhcyBjb21wbGV0ZWRcbiAqIC0gSWYgdGhlcmUgaXMgYSBjYWxsIGN1cnJlbnRseSBleGVjdXRpbmcgdGhlbiB0aGUgbmV3IGNhbGwgd2lsbCBiZSBhZGRlZFxuICogICB0byB0aGUgcXVldWUgYW5kIHRoZSBmdW5jdGlvbiB3aWxsIHJldHVybiBpbW1lZGlhdGVseVxuICpcbiAqIE5PVEU6IFRoZSBmb2xsb3dpbmcgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIG9wZXJhdGlvbiBtdXN0IGhvbGQgdHJ1ZTpcbiAqIC0gVGhlIG9wZXJhdGlvbiBpcyBzeW5jaHJvbm91cyBpbiBuYXR1cmVcbiAqIC0gSWYgYW55IGFzeW5jaHJvbm91cyBzaWRlIGVmZmVjdHMgb2YgdGhlIGNhbGwgZXhpc3QsIGl0IHNob3VsZCBub3RcbiAqICAgaGF2ZSBhbnkgYmVhcmluZyBvbiB0aGUgY29ycmVjdG5lc3Mgb2YgdGhlIG5leHQgY2FsbCBpbiB0aGUgcXVldWVcbiAqIC0gVGhlIG9wZXJhdGlvbiBoYXMgYSB2b2lkIHJldHVyblxuICogLSBUaGUgY2FsbGVyIHNob3VsZCBub3QgYXNzdW1lIHRoYXQgdGhlIGNhbGwgaGFzIGNvbXBsZXRlZCB1cG9uXG4gKiAgIHJldHVybiBvZiB0aGUgZnVuY3Rpb25cbiAqIC0gVGhlIGNhbGxlciBjYW4gYXNzdW1lIHRoYXQgYWxsIHRoZSBxdWV1ZWQgY2FsbHMgd2lsbCBjb21wbGV0ZVxuICogICB3aXRoaW4gdGhlIGN1cnJlbnQgbWljcm90YXNrXG4gKiAtIFRoZSBvbmx5IHdheSB0aGF0IGEgY2FsbCB3aWxsIGVuY291bnRlciBhbm90aGVyIGNhbGwgaW4gdGhlIHF1ZXVlXG4gKiAgIHdvdWxkIGJlIGlmIHRoZSBjYWxsIGF0IHRoZSBmcm9udCBvZiB0aGUgcXVldWUgaW5pdGlhdGVkIHRoaXMgY2FsbFxuICogICBhcyBwYXJ0IG9mIGl0cyBzeW5jaHJvbm91cyBleGVjdXRpb25cbiAqL1xuZnVuY3Rpb24gb3JkZXJlZFF1ZXVlT3BlcmF0aW9uPFRBcmdzIGV4dGVuZHMgYW55W10+KG9wZXJhdGlvbjogKC4uLmFyZ3M6IFRBcmdzKSA9PiB2b2lkKSB7XG4gIGNvbnN0IGNhbGxzUXVldWU6IFRBcmdzW10gPSBbXTtcbiAgbGV0IGJ1c3lQdXNoaW5nTmV4dCA9IGZhbHNlO1xuICByZXR1cm4gZnVuY3Rpb24gY2FsbE9wZXJhdGlvbiguLi5hcmdzOiBUQXJncykge1xuICAgIGlmIChidXN5UHVzaGluZ05leHQpIHtcbiAgICAgIGNhbGxzUXVldWUudW5zaGlmdChhcmdzKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgYnVzeVB1c2hpbmdOZXh0ID0gdHJ1ZTtcbiAgICBvcGVyYXRpb24oLi4uYXJncyk7XG4gICAgd2hpbGUgKGNhbGxzUXVldWUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgbmV4dENhbGxBcmdzID0gY2FsbHNRdWV1ZS5wb3AoKTtcbiAgICAgIG5leHRDYWxsQXJncyAmJiBvcGVyYXRpb24oLi4ubmV4dENhbGxBcmdzKTtcbiAgICB9XG4gICAgYnVzeVB1c2hpbmdOZXh0ID0gZmFsc2U7XG4gIH07XG59XG5cbi8qKlxuICogQ3VzdG9tIFN1YmplY3QgdGhhdCBlbnN1cmVzIHRoYXQgc3Vic2NyaWJlcnMgYXJlIG5vdGlmaWVkIG9mIHZhbHVlcyBpbiB0aGUgb3JkZXIgdGhhdCB0aGV5IGFycml2ZWQuXG4gKiBBIHN0YW5kYXJkIFN1YmplY3QgZG9lcyBub3QgaGF2ZSB0aGlzIGd1YXJhbnRlZS5cbiAqIEZvciBleGFtcGxlLCBnaXZlbiB0aGUgZm9sbG93aW5nIGNvZGU6XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAgIGNvbnN0IHN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gICAgIHN1YmplY3Quc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICBpZiAodmFsdWUgPT09ICdzdGFydCcpIHN1YmplY3QubmV4dCgnZW5kJyk7XG4gICAgIH0pO1xuICAgICBzdWJqZWN0LnN1YnNjcmliZSh2YWx1ZSA9PiB7IH0pO1xuICAgICBzdWJqZWN0Lm5leHQoJ3N0YXJ0Jyk7XG4gKiBgYGBcbiAqIFdoZW4gYHN1YmplY3RgIGlzIGEgc3RhbmRhcmQgYFN1YmplY3Q8VD5gIHRoZSBzZWNvbmQgc3Vic2NyaWJlciB3b3VsZCByZWNpZXZlIGBlbmRgIGFuZCB0aGVuIGBzdGFydGAuXG4gKiBXaGVuIGBzdWJqZWN0YCBpcyBhIGBPcmRlcmVkU3ViamVjdDxUPmAgdGhlIHNlY29uZCBzdWJzY3JpYmVyIHdvdWxkIHJlY2lldmUgYHN0YXJ0YCBhbmQgdGhlbiBgZW5kYC5cbiAqL1xuZXhwb3J0IGNsYXNzIE9yZGVyZWRTdWJqZWN0PFQ+IGV4dGVuZHMgU3ViamVjdDxUPiB7XG4gIHByaXZhdGUgX29yZGVyZWROZXh0ID0gb3JkZXJlZFF1ZXVlT3BlcmF0aW9uKCh2YWx1ZT86IFQpID0+IHN1cGVyLm5leHQoPFQ+dmFsdWUpKTtcblxuICBuZXh0KHZhbHVlPzogVCk6IHZvaWQge1xuICAgIHRoaXMuX29yZGVyZWROZXh0KHZhbHVlKTtcbiAgfVxufVxuXG4vKipcbiAqIEN1c3RvbSBCZWhhdmlvclN1YmplY3QgdGhhdCBlbnN1cmVzIHRoYXQgc3Vic2NyaWJlcnMgYXJlIG5vdGlmaWVkIG9mIHZhbHVlcyBpbiB0aGUgb3JkZXIgdGhhdCB0aGV5IGFycml2ZWQuXG4gKiBBIHN0YW5kYXJkIEJlaGF2aW9yU3ViamVjdCBkb2VzIG5vdCBoYXZlIHRoaXMgZ3VhcmFudGVlLlxuICogRm9yIGV4YW1wbGUsIGdpdmVuIHRoZSBmb2xsb3dpbmcgY29kZTpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqICAgY29uc3Qgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPigpO1xuICAgICBzdWJqZWN0LnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgaWYgKHZhbHVlID09PSAnc3RhcnQnKSBzdWJqZWN0Lm5leHQoJ2VuZCcpO1xuICAgICB9KTtcbiAgICAgc3ViamVjdC5zdWJzY3JpYmUodmFsdWUgPT4geyB9KTtcbiAgICAgc3ViamVjdC5uZXh0KCdzdGFydCcpO1xuICogYGBgXG4gKiBXaGVuIGBzdWJqZWN0YCBpcyBhIHN0YW5kYXJkIGBCZWhhdmlvclN1YmplY3Q8VD5gIHRoZSBzZWNvbmQgc3Vic2NyaWJlciB3b3VsZCByZWNpZXZlIGBlbmRgIGFuZCB0aGVuIGBzdGFydGAuXG4gKiBXaGVuIGBzdWJqZWN0YCBpcyBhIGBPcmRlcmVkQmVoYXZpb3JTdWJqZWN0PFQ+YCB0aGUgc2Vjb25kIHN1YnNjcmliZXIgd291bGQgcmVjaWV2ZSBgc3RhcnRgIGFuZCB0aGVuIGBlbmRgLlxuICovXG5leHBvcnQgY2xhc3MgT3JkZXJlZEJlaGF2aW9yU3ViamVjdDxUPiBleHRlbmRzIEJlaGF2aW9yU3ViamVjdDxUPiB7XG4gIHByaXZhdGUgX29yZGVyZWROZXh0ID0gb3JkZXJlZFF1ZXVlT3BlcmF0aW9uKCh2YWx1ZTogVCkgPT4gc3VwZXIubmV4dCh2YWx1ZSkpO1xuICBwcml2YXRlIF9jdXJyZW50VmFsdWU6IFQ7XG5cbiAgY29uc3RydWN0b3IodmFsdWU6IFQpIHtcbiAgICBzdXBlcih2YWx1ZSk7XG4gICAgdGhpcy5fY3VycmVudFZhbHVlID0gdmFsdWU7XG4gIH1cblxuICBnZXRWYWx1ZSgpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFZhbHVlO1xuICB9XG5cbiAgbmV4dCh2YWx1ZTogVCk6IHZvaWQge1xuICAgIHRoaXMuX2N1cnJlbnRWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuX29yZGVyZWROZXh0KHZhbHVlKTtcbiAgfVxufVxuIl19
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ensureSelectorMetadata } from '../internal/internals';
|
|
2
|
-
export class StateToken {
|
|
3
|
-
constructor(name) {
|
|
4
|
-
this.name = name;
|
|
5
|
-
const selectorMetadata = ensureSelectorMetadata(this);
|
|
6
|
-
selectorMetadata.makeRootSelector = (runtimeContext) => {
|
|
7
|
-
return runtimeContext.getStateGetter(this.name);
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
getName() {
|
|
11
|
-
return this.name;
|
|
12
|
-
}
|
|
13
|
-
toString() {
|
|
14
|
-
return `StateToken[${this.name}]`;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtdG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc3RhdGUtdG9rZW4vc3RhdGUtdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHNCQUFzQixFQUd2QixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFlBQTZCLElBQWtCO1FBQWxCLFNBQUksR0FBSixJQUFJLENBQWM7UUFDN0MsTUFBTSxnQkFBZ0IsR0FBRyxzQkFBc0IsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUMzRCxnQkFBZ0IsQ0FBQyxnQkFBZ0IsR0FBRyxDQUNsQyxjQUFzQyxFQUNqQixFQUFFO1lBQ3ZCLE9BQU8sY0FBYyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLGNBQWMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDO0lBQ3BDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRva2VuTmFtZSB9IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQge1xuICBlbnN1cmVTZWxlY3Rvck1ldGFkYXRhLFxuICBSdW50aW1lU2VsZWN0b3JDb250ZXh0LFxuICBTZWxlY3RGcm9tUm9vdFN0YXRlXG59IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XG5cbmV4cG9ydCBjbGFzcyBTdGF0ZVRva2VuPFQgPSB2b2lkPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbmFtZTogVG9rZW5OYW1lPFQ+KSB7XG4gICAgY29uc3Qgc2VsZWN0b3JNZXRhZGF0YSA9IGVuc3VyZVNlbGVjdG9yTWV0YWRhdGEoPGFueT50aGlzKTtcbiAgICBzZWxlY3Rvck1ldGFkYXRhLm1ha2VSb290U2VsZWN0b3IgPSAoXG4gICAgICBydW50aW1lQ29udGV4dDogUnVudGltZVNlbGVjdG9yQ29udGV4dFxuICAgICk6IFNlbGVjdEZyb21Sb290U3RhdGUgPT4ge1xuICAgICAgcmV0dXJuIHJ1bnRpbWVDb250ZXh0LmdldFN0YXRlR2V0dGVyKHRoaXMubmFtZSk7XG4gICAgfTtcbiAgfVxuXG4gIGdldE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFN0YXRlVG9rZW5bJHt0aGlzLm5hbWV9XWA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9zdGF0ZS10b2tlbi9zeW1ib2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZVRva2VuIH0gZnJvbSAnLi9zdGF0ZS10b2tlbic7XG5cbnR5cGUgUmVxdWlyZUdlbmVyaWM8VCwgVT4gPSBUIGV4dGVuZHMgdm9pZCA/ICdZb3UgbXVzdCBwcm92aWRlIGEgdHlwZSBwYXJhbWV0ZXInIDogVTtcblxuZXhwb3J0IHR5cGUgVG9rZW5OYW1lPFQ+ID0gc3RyaW5nICYgUmVxdWlyZUdlbmVyaWM8VCwgc3RyaW5nPjtcblxuZXhwb3J0IHR5cGUgRXh0cmFjdFRva2VuVHlwZTxQPiA9IFAgZXh0ZW5kcyBTdGF0ZVRva2VuPGluZmVyIFQ+ID8gVCA6IG5ldmVyO1xuIl19
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Returns the type from an action instance/class.
|
|
3
|
-
* @ignore
|
|
4
|
-
*/
|
|
5
|
-
export function getActionTypeFromInstance(action) {
|
|
6
|
-
if (action.constructor && action.constructor.type) {
|
|
7
|
-
return action.constructor.type;
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
return action.type;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Matches a action
|
|
15
|
-
* @ignore
|
|
16
|
-
*/
|
|
17
|
-
export function actionMatcher(action1) {
|
|
18
|
-
const type1 = getActionTypeFromInstance(action1);
|
|
19
|
-
return function (action2) {
|
|
20
|
-
return type1 === getActionTypeFromInstance(action2);
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Set a deeply nested value. Example:
|
|
25
|
-
*
|
|
26
|
-
* setValue({ foo: { bar: { eat: false } } },
|
|
27
|
-
* 'foo.bar.eat', true) //=> { foo: { bar: { eat: true } } }
|
|
28
|
-
*
|
|
29
|
-
* While it traverses it also creates new objects from top down.
|
|
30
|
-
*
|
|
31
|
-
* @ignore
|
|
32
|
-
*/
|
|
33
|
-
export const setValue = (obj, prop, val) => {
|
|
34
|
-
obj = { ...obj };
|
|
35
|
-
const split = prop.split('.');
|
|
36
|
-
const lastIndex = split.length - 1;
|
|
37
|
-
split.reduce((acc, part, index) => {
|
|
38
|
-
if (index === lastIndex) {
|
|
39
|
-
acc[part] = val;
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
acc[part] = Array.isArray(acc[part]) ? acc[part].slice() : { ...acc[part] };
|
|
43
|
-
}
|
|
44
|
-
return acc && acc[part];
|
|
45
|
-
}, obj);
|
|
46
|
-
return obj;
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* Get a deeply nested value. Example:
|
|
50
|
-
*
|
|
51
|
-
* getValue({ foo: bar: [] }, 'foo.bar') //=> []
|
|
52
|
-
*
|
|
53
|
-
* @ignore
|
|
54
|
-
*/
|
|
55
|
-
export const getValue = (obj, prop) => prop.split('.').reduce((acc, part) => acc && acc[part], obj);
|
|
56
|
-
/**
|
|
57
|
-
* Simple object check.
|
|
58
|
-
*
|
|
59
|
-
* isObject({a:1}) //=> true
|
|
60
|
-
* isObject(1) //=> false
|
|
61
|
-
*
|
|
62
|
-
* @ignore
|
|
63
|
-
*/
|
|
64
|
-
export const isObject = (item) => {
|
|
65
|
-
return item && typeof item === 'object' && !Array.isArray(item);
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* Deep merge two objects.
|
|
69
|
-
*
|
|
70
|
-
* mergeDeep({a:1, b:{x: 1, y:2}}, {b:{x: 3}, c:4}) //=> {a:1, b:{x:3, y:2}, c:4}
|
|
71
|
-
*
|
|
72
|
-
* @param base base object onto which `sources` will be applied
|
|
73
|
-
*/
|
|
74
|
-
export const mergeDeep = (base, ...sources) => {
|
|
75
|
-
if (!sources.length)
|
|
76
|
-
return base;
|
|
77
|
-
const source = sources.shift();
|
|
78
|
-
if (isObject(base) && isObject(source)) {
|
|
79
|
-
for (const key in source) {
|
|
80
|
-
if (isObject(source[key])) {
|
|
81
|
-
if (!base[key])
|
|
82
|
-
Object.assign(base, { [key]: {} });
|
|
83
|
-
mergeDeep(base[key], source[key]);
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
Object.assign(base, { [key]: source[key] });
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
return mergeDeep(base, ...sources);
|
|
91
|
-
};
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE1BQVc7SUFDbkQsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO1FBQ2pELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7S0FDaEM7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztLQUNwQjtBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQVk7SUFDeEMsTUFBTSxLQUFLLEdBQUcseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakQsT0FBTyxVQUFVLE9BQVk7UUFDM0IsT0FBTyxLQUFLLEtBQUsseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVEsRUFBRSxJQUFZLEVBQUUsR0FBUSxFQUFFLEVBQUU7SUFDM0QsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQztJQUVqQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRW5DLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2hDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ2pCO2FBQU07WUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7U0FDN0U7UUFFRCxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRVIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFRLEVBQUUsSUFBWSxFQUFPLEVBQUUsQ0FDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRTVFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRTtJQUNwQyxPQUFPLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQVMsRUFBRSxHQUFHLE9BQWMsRUFBTyxFQUFFO0lBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ2pDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUUvQixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7WUFDeEIsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ25DO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzdDO1NBQ0Y7S0FDRjtJQUVELE9BQU8sU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmV0dXJucyB0aGUgdHlwZSBmcm9tIGFuIGFjdGlvbiBpbnN0YW5jZS9jbGFzcy5cbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoYWN0aW9uOiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoYWN0aW9uLmNvbnN0cnVjdG9yICYmIGFjdGlvbi5jb25zdHJ1Y3Rvci50eXBlKSB7XG4gICAgcmV0dXJuIGFjdGlvbi5jb25zdHJ1Y3Rvci50eXBlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBhY3Rpb24udHlwZTtcbiAgfVxufVxuXG4vKipcbiAqIE1hdGNoZXMgYSBhY3Rpb25cbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbk1hdGNoZXIoYWN0aW9uMTogYW55KSB7XG4gIGNvbnN0IHR5cGUxID0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24xKTtcblxuICByZXR1cm4gZnVuY3Rpb24gKGFjdGlvbjI6IGFueSkge1xuICAgIHJldHVybiB0eXBlMSA9PT0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24yKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBTZXQgYSBkZWVwbHkgbmVzdGVkIHZhbHVlLiBFeGFtcGxlOlxuICpcbiAqICAgc2V0VmFsdWUoeyBmb286IHsgYmFyOiB7IGVhdDogZmFsc2UgfSB9IH0sXG4gKiAgICAgICdmb28uYmFyLmVhdCcsIHRydWUpIC8vPT4geyBmb286IHsgYmFyOiB7IGVhdDogdHJ1ZSB9IH0gfVxuICpcbiAqIFdoaWxlIGl0IHRyYXZlcnNlcyBpdCBhbHNvIGNyZWF0ZXMgbmV3IG9iamVjdHMgZnJvbSB0b3AgZG93bi5cbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRWYWx1ZSA9IChvYmo6IGFueSwgcHJvcDogc3RyaW5nLCB2YWw6IGFueSkgPT4ge1xuICBvYmogPSB7IC4uLm9iaiB9O1xuXG4gIGNvbnN0IHNwbGl0ID0gcHJvcC5zcGxpdCgnLicpO1xuICBjb25zdCBsYXN0SW5kZXggPSBzcGxpdC5sZW5ndGggLSAxO1xuXG4gIHNwbGl0LnJlZHVjZSgoYWNjLCBwYXJ0LCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCA9PT0gbGFzdEluZGV4KSB7XG4gICAgICBhY2NbcGFydF0gPSB2YWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjY1twYXJ0XSA9IEFycmF5LmlzQXJyYXkoYWNjW3BhcnRdKSA/IGFjY1twYXJ0XS5zbGljZSgpIDogeyAuLi5hY2NbcGFydF0gfTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjICYmIGFjY1twYXJ0XTtcbiAgfSwgb2JqKTtcblxuICByZXR1cm4gb2JqO1xufTtcblxuLyoqXG4gKiBHZXQgYSBkZWVwbHkgbmVzdGVkIHZhbHVlLiBFeGFtcGxlOlxuICpcbiAqICAgIGdldFZhbHVlKHsgZm9vOiBiYXI6IFtdIH0sICdmb28uYmFyJykgLy89PiBbXVxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFZhbHVlID0gKG9iajogYW55LCBwcm9wOiBzdHJpbmcpOiBhbnkgPT5cbiAgcHJvcC5zcGxpdCgnLicpLnJlZHVjZSgoYWNjOiBhbnksIHBhcnQ6IHN0cmluZykgPT4gYWNjICYmIGFjY1twYXJ0XSwgb2JqKTtcblxuLyoqXG4gKiBTaW1wbGUgb2JqZWN0IGNoZWNrLlxuICpcbiAqICAgIGlzT2JqZWN0KHthOjF9KSAvLz0+IHRydWVcbiAqICAgIGlzT2JqZWN0KDEpIC8vPT4gZmFsc2VcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBjb25zdCBpc09iamVjdCA9IChpdGVtOiBhbnkpID0+IHtcbiAgcmV0dXJuIGl0ZW0gJiYgdHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGl0ZW0pO1xufTtcblxuLyoqXG4gKiBEZWVwIG1lcmdlIHR3byBvYmplY3RzLlxuICpcbiAqICAgIG1lcmdlRGVlcCh7YToxLCBiOnt4OiAxLCB5OjJ9fSwge2I6e3g6IDN9LCBjOjR9KSAvLz0+IHthOjEsIGI6e3g6MywgeToyfSwgYzo0fVxuICpcbiAqIEBwYXJhbSBiYXNlIGJhc2Ugb2JqZWN0IG9udG8gd2hpY2ggYHNvdXJjZXNgIHdpbGwgYmUgYXBwbGllZFxuICovXG5leHBvcnQgY29uc3QgbWVyZ2VEZWVwID0gKGJhc2U6IGFueSwgLi4uc291cmNlczogYW55W10pOiBhbnkgPT4ge1xuICBpZiAoIXNvdXJjZXMubGVuZ3RoKSByZXR1cm4gYmFzZTtcbiAgY29uc3Qgc291cmNlID0gc291cmNlcy5zaGlmdCgpO1xuXG4gIGlmIChpc09iamVjdChiYXNlKSAmJiBpc09iamVjdChzb3VyY2UpKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XG4gICAgICBpZiAoaXNPYmplY3Qoc291cmNlW2tleV0pKSB7XG4gICAgICAgIGlmICghYmFzZVtrZXldKSBPYmplY3QuYXNzaWduKGJhc2UsIHsgW2tleV06IHt9IH0pO1xuICAgICAgICBtZXJnZURlZXAoYmFzZVtrZXldLCBzb3VyY2Vba2V5XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBPYmplY3QuYXNzaWduKGJhc2UsIHsgW2tleV06IHNvdXJjZVtrZXldIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXJnZURlZXAoYmFzZSwgLi4uc291cmNlcyk7XG59O1xuIl19
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class NgxsBootstrapper {
|
|
4
|
-
/**
|
|
5
|
-
* Use `ReplaySubject`, thus we can get cached value even if the stream is completed
|
|
6
|
-
*/
|
|
7
|
-
private bootstrap$;
|
|
8
|
-
get appBootstrapped$(): Observable<boolean>;
|
|
9
|
-
/**
|
|
10
|
-
* This event will be emitted after attaching `ComponentRef` of the root component
|
|
11
|
-
* to the tree of views, that's a signal that application has been fully rendered
|
|
12
|
-
*/
|
|
13
|
-
bootstrap(): void;
|
|
14
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgxsBootstrapper, never>;
|
|
15
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<NgxsBootstrapper>;
|
|
16
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export interface PlainObject {
|
|
2
|
-
[key: string]: any;
|
|
3
|
-
}
|
|
4
|
-
export interface PlainObjectOf<T> {
|
|
5
|
-
[key: string]: T;
|
|
6
|
-
}
|
|
7
|
-
export type ɵStateClass<T = any> = new (...args: any[]) => T;
|
|
8
|
-
export declare const ɵMETA_KEY = "NGXS_META";
|
|
9
|
-
export declare const ɵMETA_OPTIONS_KEY = "NGXS_OPTIONS_META";
|
|
10
|
-
export declare const ɵSELECTOR_META_KEY = "NGXS_SELECTOR_META";
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { StateToken } from './state-token';
|
|
2
|
-
type RequireGeneric<T, U> = T extends void ? 'You must provide a type parameter' : U;
|
|
3
|
-
export type TokenName<T> = string & RequireGeneric<T, string>;
|
|
4
|
-
export type ExtractTokenType<P> = P extends StateToken<infer T> ? T : never;
|
|
5
|
-
export {};
|