1 | import { InjectionToken, NgModule } from '@angular/core';
|
2 | import { ReducerManagerDispatcher, StateObservable } from '@ngrx/store';
|
3 | import { INITIAL_OPTIONS, STORE_DEVTOOLS_CONFIG, noMonitor, createConfig, } from './config';
|
4 | import { StoreDevtools } from './devtools';
|
5 | import { DevtoolsExtension, REDUX_DEVTOOLS_EXTENSION, } from './extension';
|
6 | import { DevtoolsDispatcher } from './devtools-dispatcher';
|
7 | export const IS_EXTENSION_OR_MONITOR_PRESENT = new InjectionToken('@ngrx/store-devtools Is Devtools Extension or Monitor Present');
|
8 | export function createIsExtensionOrMonitorPresent(extension, config) {
|
9 | return Boolean(extension) || config.monitor !== noMonitor;
|
10 | }
|
11 | export function createReduxDevtoolsExtension() {
|
12 | const extensionKey = '__REDUX_DEVTOOLS_EXTENSION__';
|
13 | if (typeof window === 'object' &&
|
14 | typeof window[extensionKey] !== 'undefined') {
|
15 | return window[extensionKey];
|
16 | }
|
17 | else {
|
18 | return null;
|
19 | }
|
20 | }
|
21 | export function createStateObservable(devtools) {
|
22 | return devtools.state;
|
23 | }
|
24 | export class StoreDevtoolsModule {
|
25 | static instrument(options = {}) {
|
26 | return {
|
27 | ngModule: StoreDevtoolsModule,
|
28 | providers: [
|
29 | DevtoolsExtension,
|
30 | DevtoolsDispatcher,
|
31 | StoreDevtools,
|
32 | {
|
33 | provide: INITIAL_OPTIONS,
|
34 | useValue: options,
|
35 | },
|
36 | {
|
37 | provide: IS_EXTENSION_OR_MONITOR_PRESENT,
|
38 | deps: [REDUX_DEVTOOLS_EXTENSION, STORE_DEVTOOLS_CONFIG],
|
39 | useFactory: createIsExtensionOrMonitorPresent,
|
40 | },
|
41 | {
|
42 | provide: REDUX_DEVTOOLS_EXTENSION,
|
43 | useFactory: createReduxDevtoolsExtension,
|
44 | },
|
45 | {
|
46 | provide: STORE_DEVTOOLS_CONFIG,
|
47 | deps: [INITIAL_OPTIONS],
|
48 | useFactory: createConfig,
|
49 | },
|
50 | {
|
51 | provide: StateObservable,
|
52 | deps: [StoreDevtools],
|
53 | useFactory: createStateObservable,
|
54 | },
|
55 | {
|
56 | provide: ReducerManagerDispatcher,
|
57 | useExisting: DevtoolsDispatcher,
|
58 | },
|
59 | ],
|
60 | };
|
61 | }
|
62 | }
|
63 | StoreDevtoolsModule.decorators = [
|
64 | { type: NgModule, args: [{},] }
|
65 | ];
|
66 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL21vZHVsZXMvc3RvcmUtZGV2dG9vbHMvc3JjL2luc3RydW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHeEUsT0FBTyxFQUNMLGVBQWUsRUFDZixxQkFBcUIsRUFHckIsU0FBUyxFQUNULFlBQVksR0FDYixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsd0JBQXdCLEdBRXpCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTNELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLElBQUksY0FBYyxDQUMvRCwrREFBK0QsQ0FDaEUsQ0FBQztBQUVGLE1BQU0sVUFBVSxpQ0FBaUMsQ0FDL0MsU0FBd0MsRUFDeEMsTUFBMkI7SUFFM0IsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUM7QUFDNUQsQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsTUFBTSxZQUFZLEdBQUcsOEJBQThCLENBQUM7SUFFcEQsSUFDRSxPQUFPLE1BQU0sS0FBSyxRQUFRO1FBQzFCLE9BQVEsTUFBYyxDQUFDLFlBQVksQ0FBQyxLQUFLLFdBQVcsRUFDcEQ7UUFDQSxPQUFRLE1BQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUN0QztTQUFNO1FBQ0wsT0FBTyxJQUFJLENBQUM7S0FDYjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLFFBQXVCO0lBRXZCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQztBQUN4QixDQUFDO0FBR0QsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixNQUFNLENBQUMsVUFBVSxDQUNmLFVBQWdDLEVBQUU7UUFFbEMsT0FBTztZQUNMLFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsU0FBUyxFQUFFO2dCQUNULGlCQUFpQjtnQkFDakIsa0JBQWtCO2dCQUNsQixhQUFhO2dCQUNiO29CQUNFLE9BQU8sRUFBRSxlQUFlO29CQUN4QixRQUFRLEVBQUUsT0FBTztpQkFDbEI7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLCtCQUErQjtvQkFDeEMsSUFBSSxFQUFFLENBQUMsd0JBQXdCLEVBQUUscUJBQXFCLENBQUM7b0JBQ3ZELFVBQVUsRUFBRSxpQ0FBaUM7aUJBQzlDO2dCQUNEO29CQUNFLE9BQU8sRUFBRSx3QkFBd0I7b0JBQ2pDLFVBQVUsRUFBRSw0QkFBNEI7aUJBQ3pDO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxxQkFBcUI7b0JBQzlCLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDdkIsVUFBVSxFQUFFLFlBQVk7aUJBQ3pCO2dCQUNEO29CQUNFLE9BQU8sRUFBRSxlQUFlO29CQUN4QixJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3JCLFVBQVUsRUFBRSxxQkFBcUI7aUJBQ2xDO2dCQUNEO29CQUNFLE9BQU8sRUFBRSx3QkFBd0I7b0JBQ2pDLFdBQVcsRUFBRSxrQkFBa0I7aUJBQ2hDO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBeENGLFFBQVEsU0FBQyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWR1Y2VyTWFuYWdlckRpc3BhdGNoZXIsIFN0YXRlT2JzZXJ2YWJsZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgSU5JVElBTF9PUFRJT05TLFxuICBTVE9SRV9ERVZUT09MU19DT05GSUcsXG4gIFN0b3JlRGV2dG9vbHNDb25maWcsXG4gIFN0b3JlRGV2dG9vbHNPcHRpb25zLFxuICBub01vbml0b3IsXG4gIGNyZWF0ZUNvbmZpZyxcbn0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgU3RvcmVEZXZ0b29scyB9IGZyb20gJy4vZGV2dG9vbHMnO1xuaW1wb3J0IHtcbiAgRGV2dG9vbHNFeHRlbnNpb24sXG4gIFJFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTixcbiAgUmVkdXhEZXZ0b29sc0V4dGVuc2lvbixcbn0gZnJvbSAnLi9leHRlbnNpb24nO1xuaW1wb3J0IHsgRGV2dG9vbHNEaXNwYXRjaGVyIH0gZnJvbSAnLi9kZXZ0b29scy1kaXNwYXRjaGVyJztcblxuZXhwb3J0IGNvbnN0IElTX0VYVEVOU0lPTl9PUl9NT05JVE9SX1BSRVNFTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oXG4gICdAbmdyeC9zdG9yZS1kZXZ0b29scyBJcyBEZXZ0b29scyBFeHRlbnNpb24gb3IgTW9uaXRvciBQcmVzZW50J1xuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUlzRXh0ZW5zaW9uT3JNb25pdG9yUHJlc2VudChcbiAgZXh0ZW5zaW9uOiBSZWR1eERldnRvb2xzRXh0ZW5zaW9uIHwgbnVsbCxcbiAgY29uZmlnOiBTdG9yZURldnRvb2xzQ29uZmlnXG4pIHtcbiAgcmV0dXJuIEJvb2xlYW4oZXh0ZW5zaW9uKSB8fCBjb25maWcubW9uaXRvciAhPT0gbm9Nb25pdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVkdXhEZXZ0b29sc0V4dGVuc2lvbigpIHtcbiAgY29uc3QgZXh0ZW5zaW9uS2V5ID0gJ19fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18nO1xuXG4gIGlmIChcbiAgICB0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JyAmJlxuICAgIHR5cGVvZiAod2luZG93IGFzIGFueSlbZXh0ZW5zaW9uS2V5XSAhPT0gJ3VuZGVmaW5lZCdcbiAgKSB7XG4gICAgcmV0dXJuICh3aW5kb3cgYXMgYW55KVtleHRlbnNpb25LZXldO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdGF0ZU9ic2VydmFibGUoXG4gIGRldnRvb2xzOiBTdG9yZURldnRvb2xzXG4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICByZXR1cm4gZGV2dG9vbHMuc3RhdGU7XG59XG5cbkBOZ01vZHVsZSh7fSlcbmV4cG9ydCBjbGFzcyBTdG9yZURldnRvb2xzTW9kdWxlIHtcbiAgc3RhdGljIGluc3RydW1lbnQoXG4gICAgb3B0aW9uczogU3RvcmVEZXZ0b29sc09wdGlvbnMgPSB7fVxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFN0b3JlRGV2dG9vbHNNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFN0b3JlRGV2dG9vbHNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgRGV2dG9vbHNFeHRlbnNpb24sXG4gICAgICAgIERldnRvb2xzRGlzcGF0Y2hlcixcbiAgICAgICAgU3RvcmVEZXZ0b29scyxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IElOSVRJQUxfT1BUSU9OUyxcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IElTX0VYVEVOU0lPTl9PUl9NT05JVE9SX1BSRVNFTlQsXG4gICAgICAgICAgZGVwczogW1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTiwgU1RPUkVfREVWVE9PTFNfQ09ORklHXSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBjcmVhdGVJc0V4dGVuc2lvbk9yTW9uaXRvclByZXNlbnQsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBSRURVWF9ERVZUT09MU19FWFRFTlNJT04sXG4gICAgICAgICAgdXNlRmFjdG9yeTogY3JlYXRlUmVkdXhEZXZ0b29sc0V4dGVuc2lvbixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFNUT1JFX0RFVlRPT0xTX0NPTkZJRyxcbiAgICAgICAgICBkZXBzOiBbSU5JVElBTF9PUFRJT05TXSxcbiAgICAgICAgICB1c2VGYWN0b3J5OiBjcmVhdGVDb25maWcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBTdGF0ZU9ic2VydmFibGUsXG4gICAgICAgICAgZGVwczogW1N0b3JlRGV2dG9vbHNdLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNyZWF0ZVN0YXRlT2JzZXJ2YWJsZSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFJlZHVjZXJNYW5hZ2VyRGlzcGF0Y2hlcixcbiAgICAgICAgICB1c2VFeGlzdGluZzogRGV2dG9vbHNEaXNwYXRjaGVyLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0= |
\ | No newline at end of file |