@ngxs/devtools-plugin 3.7.4 → 3.7.5

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.
@@ -1,262 +1,271 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import * as tslib_1 from "tslib";
6
- import { Inject, Injectable, Injector, NgZone, ɵglobal } from '@angular/core';
7
- import { getActionTypeFromInstance, Store } from '@ngxs/store';
8
- import { tap, catchError } from 'rxjs/operators';
9
- import { NGXS_DEVTOOLS_OPTIONS } from './symbols';
10
- /** @enum {string} */
11
- var ReduxDevtoolsActionType = {
12
- Dispatch: 'DISPATCH',
13
- Action: 'ACTION',
14
- };
15
- /** @enum {string} */
16
- var ReduxDevtoolsPayloadType = {
17
- JumpToAction: 'JUMP_TO_ACTION',
18
- JumpToState: 'JUMP_TO_STATE',
19
- ToggleAction: 'TOGGLE_ACTION',
20
- ImportState: 'IMPORT_STATE',
21
- };
22
- /**
23
- * Adds support for the Redux Devtools extension:
24
- * http://extension.remotedev.io/
25
- */
26
- var NgxsReduxDevtoolsPlugin = /** @class */ (function () {
27
- function NgxsReduxDevtoolsPlugin(_options, _injector, _ngZone) {
28
- this._options = _options;
29
- this._injector = _injector;
30
- this._ngZone = _ngZone;
31
- this.devtoolsExtension = null;
32
- this.globalDevtools = ɵglobal['__REDUX_DEVTOOLS_EXTENSION__'] || ɵglobal['devToolsExtension'];
33
- this.unsubscribe = null;
34
- this.connect();
35
- }
36
- /**
37
- * @return {?}
38
- */
39
- NgxsReduxDevtoolsPlugin.prototype.ngOnDestroy = /**
40
- * @return {?}
41
- */
42
- function () {
43
- if (this.unsubscribe !== null) {
44
- this.unsubscribe();
45
- }
46
- if (this.globalDevtools) {
47
- this.globalDevtools.disconnect();
48
- }
49
- };
50
- Object.defineProperty(NgxsReduxDevtoolsPlugin.prototype, "store", {
51
- /**
52
- * Lazy get the store for circular dependency issues
53
- */
54
- get: /**
55
- * Lazy get the store for circular dependency issues
56
- * @private
57
- * @return {?}
58
- */
59
- function () {
60
- return this._injector.get(Store);
61
- },
62
- enumerable: true,
63
- configurable: true
64
- });
65
- /**
66
- * Middleware handle function
67
- */
68
- /**
69
- * Middleware handle function
70
- * @param {?} state
71
- * @param {?} action
72
- * @param {?} next
73
- * @return {?}
74
- */
75
- NgxsReduxDevtoolsPlugin.prototype.handle = /**
76
- * Middleware handle function
77
- * @param {?} state
78
- * @param {?} action
79
- * @param {?} next
80
- * @return {?}
81
- */
82
- function (state, action, next) {
83
- var _this = this;
84
- if (!this.devtoolsExtension || this._options.disabled) {
85
- return next(state, action);
86
- }
87
- return next(state, action).pipe(catchError((/**
88
- * @param {?} error
89
- * @return {?}
90
- */
91
- function (error) {
92
- /** @type {?} */
93
- var newState = _this.store.snapshot();
94
- _this.sendToDevTools(state, action, newState);
95
- throw error;
96
- })), tap((/**
97
- * @param {?} newState
98
- * @return {?}
99
- */
100
- function (newState) {
101
- _this.sendToDevTools(state, action, newState);
102
- })));
103
- };
104
- /**
105
- * @private
106
- * @param {?} state
107
- * @param {?} action
108
- * @param {?} newState
109
- * @return {?}
110
- */
111
- NgxsReduxDevtoolsPlugin.prototype.sendToDevTools = /**
112
- * @private
113
- * @param {?} state
114
- * @param {?} action
115
- * @param {?} newState
116
- * @return {?}
117
- */
118
- function (state, action, newState) {
119
- /** @type {?} */
120
- var type = getActionTypeFromInstance(action);
121
- // if init action, send initial state to dev tools
122
- /** @type {?} */
123
- var isInitAction = type === '@@INIT';
124
- if (isInitAction) {
125
- (/** @type {?} */ (this.devtoolsExtension)).init(state);
126
- }
127
- else {
128
- (/** @type {?} */ (this.devtoolsExtension)).send(tslib_1.__assign({}, action, { action: null, type: type }), newState);
129
- }
130
- };
131
- /**
132
- * Handle the action from the dev tools subscription
133
- */
134
- /**
135
- * Handle the action from the dev tools subscription
136
- * @param {?} action
137
- * @return {?}
138
- */
139
- NgxsReduxDevtoolsPlugin.prototype.dispatched = /**
140
- * Handle the action from the dev tools subscription
141
- * @param {?} action
142
- * @return {?}
143
- */
144
- function (action) {
145
- var _this = this;
146
- if (action.type === "DISPATCH" /* Dispatch */) {
147
- if (action.payload.type === "JUMP_TO_ACTION" /* JumpToAction */ ||
148
- action.payload.type === "JUMP_TO_STATE" /* JumpToState */) {
149
- /** @type {?} */
150
- var prevState = JSON.parse(action.state);
151
- this.store.reset(prevState);
152
- }
153
- else if (action.payload.type === "TOGGLE_ACTION" /* ToggleAction */) {
154
- console.warn('Skip is not supported at this time.');
155
- }
156
- else if (action.payload.type === "IMPORT_STATE" /* ImportState */) {
157
- var _a = action.payload.nextLiftedState, actionsById_1 = _a.actionsById, computedStates_1 = _a.computedStates, currentStateIndex = _a.currentStateIndex;
158
- (/** @type {?} */ (this.devtoolsExtension)).init(computedStates_1[0].state);
159
- Object.keys(actionsById_1)
160
- .filter((/**
161
- * @param {?} actionId
162
- * @return {?}
163
- */
164
- function (actionId) { return actionId !== '0'; }))
165
- .forEach((/**
166
- * @param {?} actionId
167
- * @return {?}
168
- */
169
- function (actionId) {
170
- return (/** @type {?} */ (_this.devtoolsExtension)).send(actionsById_1[actionId], computedStates_1[actionId].state);
171
- }));
172
- this.store.reset(computedStates_1[currentStateIndex].state);
173
- }
174
- }
175
- else if (action.type === "ACTION" /* Action */) {
176
- /** @type {?} */
177
- var actionPayload = JSON.parse(action.payload);
178
- this.store.dispatch(actionPayload);
179
- }
180
- };
181
- /**
182
- * @private
183
- * @return {?}
184
- */
185
- NgxsReduxDevtoolsPlugin.prototype.connect = /**
186
- * @private
187
- * @return {?}
188
- */
189
- function () {
190
- var _this = this;
191
- if (!this.globalDevtools || this._options.disabled) {
192
- return;
193
- }
194
- // The `connect` method adds `message` event listener since it communicates
195
- // with an extension through `window.postMessage` and message events.
196
- // We handle only 2 events; thus, we don't want to run many change detections
197
- // because the extension sends events that we don't have to handle.
198
- this.devtoolsExtension = this._ngZone.runOutsideAngular((/**
199
- * @return {?}
200
- */
201
- function () { return (/** @type {?} */ (_this.globalDevtools.connect(_this._options))); }));
202
- this.unsubscribe = this.devtoolsExtension.subscribe((/**
203
- * @param {?} action
204
- * @return {?}
205
- */
206
- function (action) {
207
- if (action.type === "DISPATCH" /* Dispatch */ ||
208
- action.type === "ACTION" /* Action */) {
209
- _this._ngZone.run((/**
210
- * @return {?}
211
- */
212
- function () {
213
- _this.dispatched(action);
214
- }));
215
- }
216
- }));
217
- };
218
- NgxsReduxDevtoolsPlugin.decorators = [
219
- { type: Injectable }
220
- ];
221
- /** @nocollapse */
222
- NgxsReduxDevtoolsPlugin.ctorParameters = function () { return [
223
- { type: undefined, decorators: [{ type: Inject, args: [NGXS_DEVTOOLS_OPTIONS,] }] },
224
- { type: Injector },
225
- { type: NgZone }
226
- ]; };
227
- return NgxsReduxDevtoolsPlugin;
228
- }());
229
- export { NgxsReduxDevtoolsPlugin };
230
- if (false) {
231
- /**
232
- * @type {?}
233
- * @private
234
- */
235
- NgxsReduxDevtoolsPlugin.prototype.devtoolsExtension;
236
- /**
237
- * @type {?}
238
- * @private
239
- */
240
- NgxsReduxDevtoolsPlugin.prototype.globalDevtools;
241
- /**
242
- * @type {?}
243
- * @private
244
- */
245
- NgxsReduxDevtoolsPlugin.prototype.unsubscribe;
246
- /**
247
- * @type {?}
248
- * @private
249
- */
250
- NgxsReduxDevtoolsPlugin.prototype._options;
251
- /**
252
- * @type {?}
253
- * @private
254
- */
255
- NgxsReduxDevtoolsPlugin.prototype._injector;
256
- /**
257
- * @type {?}
258
- * @private
259
- */
260
- NgxsReduxDevtoolsPlugin.prototype._ngZone;
261
- }
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2dG9vbHMucGx1Z2luLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvZGV2dG9vbHMtcGx1Z2luLyIsInNvdXJjZXMiOlsic3JjL2RldnRvb2xzLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWEsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx5QkFBeUIsRUFBZ0MsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUNMLHFCQUFxQixFQUl0QixNQUFNLFdBQVcsQ0FBQzs7O0lBR2pCLFVBQVcsVUFBVTtJQUNyQixRQUFTLFFBQVE7Ozs7SUFJakIsY0FBZSxnQkFBZ0I7SUFDL0IsYUFBYyxlQUFlO0lBQzdCLGNBQWUsZUFBZTtJQUM5QixhQUFjLGNBQWM7Ozs7OztBQU85QjtJQVFFLGlDQUN5QyxRQUE2QixFQUM1RCxTQUFtQixFQUNuQixPQUFlO1FBRmdCLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBQzVELGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQVRqQixzQkFBaUIsR0FBaUMsSUFBSSxDQUFDO1FBQzlDLG1CQUFjLEdBQzdCLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWxFLGdCQUFXLEdBQXdCLElBQUksQ0FBQztRQU85QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7OztJQUVELDZDQUFXOzs7SUFBWDtRQUNFLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxJQUFJLENB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O29CQUNmLEtBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFCLENBQUMsRUFBQyxDQUFDO2FBQ0o7UUFDSCxDQUFDLEVBQUMsQ0FBQztJQUNMLENBQUM7O2dCQXZIRixVQUFVOzs7O2dEQVNOLE1BQU0sU0FBQyxxQkFBcUI7Z0JBcENKLFFBQVE7Z0JBQUUsTUFBTTs7SUFtSjdDLDhCQUFDO0NBQUEsQUF4SEQsSUF3SEM7U0F2SFksdUJBQXVCOzs7Ozs7SUFDbEMsb0RBQStEOzs7OztJQUMvRCxpREFDMEU7Ozs7O0lBRTFFLDhDQUFnRDs7Ozs7SUFHOUMsMkNBQW9FOzs7OztJQUNwRSw0Q0FBMkI7Ozs7O0lBQzNCLDBDQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nWm9uZSwgT25EZXN0cm95LCDJtWdsb2JhbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlLCBOZ3hzTmV4dFBsdWdpbkZuLCBOZ3hzUGx1Z2luLCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcclxuaW1wb3J0IHsgdGFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBOR1hTX0RFVlRPT0xTX09QVElPTlMsXHJcbiAgTmd4c0RldnRvb2xzQWN0aW9uLFxyXG4gIE5neHNEZXZ0b29sc0V4dGVuc2lvbixcclxuICBOZ3hzRGV2dG9vbHNPcHRpb25zXHJcbn0gZnJvbSAnLi9zeW1ib2xzJztcclxuXHJcbmNvbnN0IGVudW0gUmVkdXhEZXZ0b29sc0FjdGlvblR5cGUge1xyXG4gIERpc3BhdGNoID0gJ0RJU1BBVENIJyxcclxuICBBY3Rpb24gPSAnQUNUSU9OJ1xyXG59XHJcblxyXG5jb25zdCBlbnVtIFJlZHV4RGV2dG9vbHNQYXlsb2FkVHlwZSB7XHJcbiAgSnVtcFRvQWN0aW9uID0gJ0pVTVBfVE9fQUNUSU9OJyxcclxuICBKdW1wVG9TdGF0ZSA9ICdKVU1QX1RPX1NUQVRFJyxcclxuICBUb2dnbGVBY3Rpb24gPSAnVE9HR0xFX0FDVElPTicsXHJcbiAgSW1wb3J0U3RhdGUgPSAnSU1QT1JUX1NUQVRFJ1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcyBzdXBwb3J0IGZvciB0aGUgUmVkdXggRGV2dG9vbHMgZXh0ZW5zaW9uOlxyXG4gKiBodHRwOi8vZXh0ZW5zaW9uLnJlbW90ZWRldi5pby9cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5neHNSZWR1eERldnRvb2xzUGx1Z2luIGltcGxlbWVudHMgT25EZXN0cm95LCBOZ3hzUGx1Z2luIHtcclxuICBwcml2YXRlIGRldnRvb2xzRXh0ZW5zaW9uOiBOZ3hzRGV2dG9vbHNFeHRlbnNpb24gfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHJlYWRvbmx5IGdsb2JhbERldnRvb2xzID1cclxuICAgIMm1Z2xvYmFsWydfX1JFRFVYX0RFVlRPT0xTX0VYVEVOU0lPTl9fJ10gfHwgybVnbG9iYWxbJ2RldlRvb2xzRXh0ZW5zaW9uJ107XHJcblxyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFZvaWRGdW5jdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTkdYU19ERVZUT09MU19PUFRJT05TKSBwcml2YXRlIF9vcHRpb25zOiBOZ3hzRGV2dG9vbHNPcHRpb25zLFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmVcclxuICApIHtcclxuICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy51bnN1YnNjcmliZSAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5nbG9iYWxEZXZ0b29scykge1xyXG4gICAgICB0aGlzLmdsb2JhbERldnRvb2xzLmRpc2Nvbm5lY3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExhenkgZ2V0IHRoZSBzdG9yZSBmb3IgY2lyY3VsYXIgZGVwZW5kZW5jeSBpc3N1ZXNcclxuICAgKi9cclxuICBwcml2YXRlIGdldCBzdG9yZSgpOiBTdG9yZSB7XHJcbiAgICByZXR1cm4gdGhpcy5faW5qZWN0b3IuZ2V0PFN0b3JlPihTdG9yZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNaWRkbGV3YXJlIGhhbmRsZSBmdW5jdGlvblxyXG4gICAqL1xyXG4gIGhhbmRsZShzdGF0ZTogYW55LCBhY3Rpb246IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5Gbikge1xyXG4gICAgaWYgKCF0aGlzLmRldnRvb2xzRXh0ZW5zaW9uIHx8IHRoaXMuX29wdGlvbnMuZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuIG5leHQoc3RhdGUsIGFjdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5leHQoc3RhdGUsIGFjdGlvbikucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XHJcbiAgICAgICAgY29uc3QgbmV3U3RhdGUgPSB0aGlzLnN0b3JlLnNuYXBzaG90KCk7XHJcbiAgICAgICAgdGhpcy5zZW5kVG9EZXZUb29scyhzdGF0ZSwgYWN0aW9uLCBuZXdTdGF0ZSk7XHJcbiAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0YXAobmV3U3RhdGUgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VuZFRvRGV2VG9vbHMoc3RhdGUsIGFjdGlvbiwgbmV3U3RhdGUpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2VuZFRvRGV2VG9vbHMoc3RhdGU6IGFueSwgYWN0aW9uOiBhbnksIG5ld1N0YXRlOiBhbnkpIHtcclxuICAgIGNvbnN0IHR5cGUgPSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvbik7XHJcbiAgICAvLyBpZiBpbml0IGFjdGlvbiwgc2VuZCBpbml0aWFsIHN0YXRlIHRvIGRldiB0b29sc1xyXG4gICAgY29uc3QgaXNJbml0QWN0aW9uID0gdHlwZSA9PT0gJ0BASU5JVCc7XHJcbiAgICBpZiAoaXNJbml0QWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuZGV2dG9vbHNFeHRlbnNpb24hLmluaXQoc3RhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kZXZ0b29sc0V4dGVuc2lvbiEuc2VuZCh7IC4uLmFjdGlvbiwgYWN0aW9uOiBudWxsLCB0eXBlIH0sIG5ld1N0YXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZSB0aGUgYWN0aW9uIGZyb20gdGhlIGRldiB0b29scyBzdWJzY3JpcHRpb25cclxuICAgKi9cclxuICBkaXNwYXRjaGVkKGFjdGlvbjogTmd4c0RldnRvb2xzQWN0aW9uKSB7XHJcbiAgICBpZiAoYWN0aW9uLnR5cGUgPT09IFJlZHV4RGV2dG9vbHNBY3Rpb25UeXBlLkRpc3BhdGNoKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBhY3Rpb24ucGF5bG9hZC50eXBlID09PSBSZWR1eERldnRvb2xzUGF5bG9hZFR5cGUuSnVtcFRvQWN0aW9uIHx8XHJcbiAgICAgICAgYWN0aW9uLnBheWxvYWQudHlwZSA9PT0gUmVkdXhEZXZ0b29sc1BheWxvYWRUeXBlLkp1bXBUb1N0YXRlXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IHByZXZTdGF0ZSA9IEpTT04ucGFyc2UoYWN0aW9uLnN0YXRlKTtcclxuICAgICAgICB0aGlzLnN0b3JlLnJlc2V0KHByZXZTdGF0ZSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLnBheWxvYWQudHlwZSA9PT0gUmVkdXhEZXZ0b29sc1BheWxvYWRUeXBlLlRvZ2dsZUFjdGlvbikge1xyXG4gICAgICAgIGNvbnNvbGUud2FybignU2tpcCBpcyBub3Qgc3VwcG9ydGVkIGF0IHRoaXMgdGltZS4nKTtcclxuICAgICAgfSBlbHNlIGlmIChhY3Rpb24ucGF5bG9hZC50eXBlID09PSBSZWR1eERldnRvb2xzUGF5bG9hZFR5cGUuSW1wb3J0U3RhdGUpIHtcclxuICAgICAgICBjb25zdCB7XHJcbiAgICAgICAgICBhY3Rpb25zQnlJZCxcclxuICAgICAgICAgIGNvbXB1dGVkU3RhdGVzLFxyXG4gICAgICAgICAgY3VycmVudFN0YXRlSW5kZXhcclxuICAgICAgICB9ID0gYWN0aW9uLnBheWxvYWQubmV4dExpZnRlZFN0YXRlO1xyXG4gICAgICAgIHRoaXMuZGV2dG9vbHNFeHRlbnNpb24hLmluaXQoY29tcHV0ZWRTdGF0ZXNbMF0uc3RhdGUpO1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGFjdGlvbnNCeUlkKVxyXG4gICAgICAgICAgLmZpbHRlcihhY3Rpb25JZCA9PiBhY3Rpb25JZCAhPT0gJzAnKVxyXG4gICAgICAgICAgLmZvckVhY2goYWN0aW9uSWQgPT5cclxuICAgICAgICAgICAgdGhpcy5kZXZ0b29sc0V4dGVuc2lvbiEuc2VuZChhY3Rpb25zQnlJZFthY3Rpb25JZF0sIGNvbXB1dGVkU3RhdGVzW2FjdGlvbklkXS5zdGF0ZSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5zdG9yZS5yZXNldChjb21wdXRlZFN0YXRlc1tjdXJyZW50U3RhdGVJbmRleF0uc3RhdGUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGFjdGlvbi50eXBlID09PSBSZWR1eERldnRvb2xzQWN0aW9uVHlwZS5BY3Rpb24pIHtcclxuICAgICAgY29uc3QgYWN0aW9uUGF5bG9hZCA9IEpTT04ucGFyc2UoYWN0aW9uLnBheWxvYWQpO1xyXG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKGFjdGlvblBheWxvYWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb25uZWN0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmdsb2JhbERldnRvb2xzIHx8IHRoaXMuX29wdGlvbnMuZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoZSBgY29ubmVjdGAgbWV0aG9kIGFkZHMgYG1lc3NhZ2VgIGV2ZW50IGxpc3RlbmVyIHNpbmNlIGl0IGNvbW11bmljYXRlc1xyXG4gICAgLy8gd2l0aCBhbiBleHRlbnNpb24gdGhyb3VnaCBgd2luZG93LnBvc3RNZXNzYWdlYCBhbmQgbWVzc2FnZSBldmVudHMuXHJcbiAgICAvLyBXZSBoYW5kbGUgb25seSAyIGV2ZW50czsgdGh1cywgd2UgZG9uJ3Qgd2FudCB0byBydW4gbWFueSBjaGFuZ2UgZGV0ZWN0aW9uc1xyXG4gICAgLy8gYmVjYXVzZSB0aGUgZXh0ZW5zaW9uIHNlbmRzIGV2ZW50cyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gaGFuZGxlLlxyXG4gICAgdGhpcy5kZXZ0b29sc0V4dGVuc2lvbiA9IHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcihcclxuICAgICAgKCkgPT4gPE5neHNEZXZ0b29sc0V4dGVuc2lvbj50aGlzLmdsb2JhbERldnRvb2xzLmNvbm5lY3QodGhpcy5fb3B0aW9ucylcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy51bnN1YnNjcmliZSA9IHRoaXMuZGV2dG9vbHNFeHRlbnNpb24uc3Vic2NyaWJlKGFjdGlvbiA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBhY3Rpb24udHlwZSA9PT0gUmVkdXhEZXZ0b29sc0FjdGlvblR5cGUuRGlzcGF0Y2ggfHxcclxuICAgICAgICBhY3Rpb24udHlwZSA9PT0gUmVkdXhEZXZ0b29sc0FjdGlvblR5cGUuQWN0aW9uXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kaXNwYXRjaGVkKGFjdGlvbik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import * as tslib_1 from "tslib";
6
+ import { Inject, Injectable, Injector, NgZone, ɵglobal } from '@angular/core';
7
+ import { getActionTypeFromInstance, Store } from '@ngxs/store';
8
+ import { tap, catchError } from 'rxjs/operators';
9
+ import { NGXS_DEVTOOLS_OPTIONS } from './symbols';
10
+ /** @enum {string} */
11
+ var ReduxDevtoolsActionType = {
12
+ Dispatch: 'DISPATCH',
13
+ Action: 'ACTION',
14
+ };
15
+ /** @enum {string} */
16
+ var ReduxDevtoolsPayloadType = {
17
+ JumpToAction: 'JUMP_TO_ACTION',
18
+ JumpToState: 'JUMP_TO_STATE',
19
+ ToggleAction: 'TOGGLE_ACTION',
20
+ ImportState: 'IMPORT_STATE',
21
+ };
22
+ /**
23
+ * Adds support for the Redux Devtools extension:
24
+ * http://extension.remotedev.io/
25
+ */
26
+ var NgxsReduxDevtoolsPlugin = /** @class */ (function () {
27
+ function NgxsReduxDevtoolsPlugin(_options, _injector, _ngZone) {
28
+ this._options = _options;
29
+ this._injector = _injector;
30
+ this._ngZone = _ngZone;
31
+ this.devtoolsExtension = null;
32
+ this.globalDevtools = ɵglobal['__REDUX_DEVTOOLS_EXTENSION__'] || ɵglobal['devToolsExtension'];
33
+ this.unsubscribe = null;
34
+ this.connect();
35
+ }
36
+ /**
37
+ * @return {?}
38
+ */
39
+ NgxsReduxDevtoolsPlugin.prototype.ngOnDestroy = /**
40
+ * @return {?}
41
+ */
42
+ function () {
43
+ if (this.unsubscribe !== null) {
44
+ this.unsubscribe();
45
+ }
46
+ if (this.globalDevtools) {
47
+ this.globalDevtools.disconnect();
48
+ }
49
+ };
50
+ Object.defineProperty(NgxsReduxDevtoolsPlugin.prototype, "store", {
51
+ /**
52
+ * Lazy get the store for circular dependency issues
53
+ */
54
+ get: /**
55
+ * Lazy get the store for circular dependency issues
56
+ * @private
57
+ * @return {?}
58
+ */
59
+ function () {
60
+ return this._injector.get(Store);
61
+ },
62
+ enumerable: true,
63
+ configurable: true
64
+ });
65
+ /**
66
+ * Middleware handle function
67
+ */
68
+ /**
69
+ * Middleware handle function
70
+ * @param {?} state
71
+ * @param {?} action
72
+ * @param {?} next
73
+ * @return {?}
74
+ */
75
+ NgxsReduxDevtoolsPlugin.prototype.handle = /**
76
+ * Middleware handle function
77
+ * @param {?} state
78
+ * @param {?} action
79
+ * @param {?} next
80
+ * @return {?}
81
+ */
82
+ function (state, action, next) {
83
+ var _this = this;
84
+ if (!this.devtoolsExtension || this._options.disabled) {
85
+ return next(state, action);
86
+ }
87
+ return next(state, action).pipe(catchError((/**
88
+ * @param {?} error
89
+ * @return {?}
90
+ */
91
+ function (error) {
92
+ /** @type {?} */
93
+ var newState = _this.store.snapshot();
94
+ _this.sendToDevTools(state, action, newState);
95
+ throw error;
96
+ })), tap((/**
97
+ * @param {?} newState
98
+ * @return {?}
99
+ */
100
+ function (newState) {
101
+ _this.sendToDevTools(state, action, newState);
102
+ })));
103
+ };
104
+ /**
105
+ * @private
106
+ * @param {?} state
107
+ * @param {?} action
108
+ * @param {?} newState
109
+ * @return {?}
110
+ */
111
+ NgxsReduxDevtoolsPlugin.prototype.sendToDevTools = /**
112
+ * @private
113
+ * @param {?} state
114
+ * @param {?} action
115
+ * @param {?} newState
116
+ * @return {?}
117
+ */
118
+ function (state, action, newState) {
119
+ /** @type {?} */
120
+ var type = getActionTypeFromInstance(action);
121
+ // if init action, send initial state to dev tools
122
+ /** @type {?} */
123
+ var isInitAction = type === '@@INIT';
124
+ if (isInitAction) {
125
+ (/** @type {?} */ (this.devtoolsExtension)).init(state);
126
+ }
127
+ else {
128
+ (/** @type {?} */ (this.devtoolsExtension)).send(tslib_1.__assign({}, action, { action: null, type: type }), newState);
129
+ }
130
+ };
131
+ /**
132
+ * Handle the action from the dev tools subscription
133
+ */
134
+ /**
135
+ * Handle the action from the dev tools subscription
136
+ * @param {?} action
137
+ * @return {?}
138
+ */
139
+ NgxsReduxDevtoolsPlugin.prototype.dispatched = /**
140
+ * Handle the action from the dev tools subscription
141
+ * @param {?} action
142
+ * @return {?}
143
+ */
144
+ function (action) {
145
+ var _this = this;
146
+ if (action.type === "DISPATCH" /* Dispatch */) {
147
+ if (action.payload.type === "JUMP_TO_ACTION" /* JumpToAction */ ||
148
+ action.payload.type === "JUMP_TO_STATE" /* JumpToState */) {
149
+ /** @type {?} */
150
+ var prevState = JSON.parse(action.state);
151
+ // This makes the DevTools and Router plugins friends with each other.
152
+ // We're checking for the `router` state to exist, and it also should
153
+ // have the `trigger` property, so we're sure that this is our router
154
+ // state (coming from `@ngxs/router-plugin`). This enables a time-traveling
155
+ // feature since it doesn't only restore the state but also allows the `RouterState`
156
+ // to navigate back when the action is jumped.
157
+ if (prevState.router && prevState.router.trigger) {
158
+ prevState.router.trigger = 'devtools';
159
+ }
160
+ this.store.reset(prevState);
161
+ }
162
+ else if (action.payload.type === "TOGGLE_ACTION" /* ToggleAction */) {
163
+ console.warn('Skip is not supported at this time.');
164
+ }
165
+ else if (action.payload.type === "IMPORT_STATE" /* ImportState */) {
166
+ var _a = action.payload.nextLiftedState, actionsById_1 = _a.actionsById, computedStates_1 = _a.computedStates, currentStateIndex = _a.currentStateIndex;
167
+ (/** @type {?} */ (this.devtoolsExtension)).init(computedStates_1[0].state);
168
+ Object.keys(actionsById_1)
169
+ .filter((/**
170
+ * @param {?} actionId
171
+ * @return {?}
172
+ */
173
+ function (actionId) { return actionId !== '0'; }))
174
+ .forEach((/**
175
+ * @param {?} actionId
176
+ * @return {?}
177
+ */
178
+ function (actionId) {
179
+ return (/** @type {?} */ (_this.devtoolsExtension)).send(actionsById_1[actionId], computedStates_1[actionId].state);
180
+ }));
181
+ this.store.reset(computedStates_1[currentStateIndex].state);
182
+ }
183
+ }
184
+ else if (action.type === "ACTION" /* Action */) {
185
+ /** @type {?} */
186
+ var actionPayload = JSON.parse(action.payload);
187
+ this.store.dispatch(actionPayload);
188
+ }
189
+ };
190
+ /**
191
+ * @private
192
+ * @return {?}
193
+ */
194
+ NgxsReduxDevtoolsPlugin.prototype.connect = /**
195
+ * @private
196
+ * @return {?}
197
+ */
198
+ function () {
199
+ var _this = this;
200
+ if (!this.globalDevtools || this._options.disabled) {
201
+ return;
202
+ }
203
+ // The `connect` method adds `message` event listener since it communicates
204
+ // with an extension through `window.postMessage` and message events.
205
+ // We handle only 2 events; thus, we don't want to run many change detections
206
+ // because the extension sends events that we don't have to handle.
207
+ this.devtoolsExtension = this._ngZone.runOutsideAngular((/**
208
+ * @return {?}
209
+ */
210
+ function () { return (/** @type {?} */ (_this.globalDevtools.connect(_this._options))); }));
211
+ this.unsubscribe = this.devtoolsExtension.subscribe((/**
212
+ * @param {?} action
213
+ * @return {?}
214
+ */
215
+ function (action) {
216
+ if (action.type === "DISPATCH" /* Dispatch */ ||
217
+ action.type === "ACTION" /* Action */) {
218
+ _this._ngZone.run((/**
219
+ * @return {?}
220
+ */
221
+ function () {
222
+ _this.dispatched(action);
223
+ }));
224
+ }
225
+ }));
226
+ };
227
+ NgxsReduxDevtoolsPlugin.decorators = [
228
+ { type: Injectable }
229
+ ];
230
+ /** @nocollapse */
231
+ NgxsReduxDevtoolsPlugin.ctorParameters = function () { return [
232
+ { type: undefined, decorators: [{ type: Inject, args: [NGXS_DEVTOOLS_OPTIONS,] }] },
233
+ { type: Injector },
234
+ { type: NgZone }
235
+ ]; };
236
+ return NgxsReduxDevtoolsPlugin;
237
+ }());
238
+ export { NgxsReduxDevtoolsPlugin };
239
+ if (false) {
240
+ /**
241
+ * @type {?}
242
+ * @private
243
+ */
244
+ NgxsReduxDevtoolsPlugin.prototype.devtoolsExtension;
245
+ /**
246
+ * @type {?}
247
+ * @private
248
+ */
249
+ NgxsReduxDevtoolsPlugin.prototype.globalDevtools;
250
+ /**
251
+ * @type {?}
252
+ * @private
253
+ */
254
+ NgxsReduxDevtoolsPlugin.prototype.unsubscribe;
255
+ /**
256
+ * @type {?}
257
+ * @private
258
+ */
259
+ NgxsReduxDevtoolsPlugin.prototype._options;
260
+ /**
261
+ * @type {?}
262
+ * @private
263
+ */
264
+ NgxsReduxDevtoolsPlugin.prototype._injector;
265
+ /**
266
+ * @type {?}
267
+ * @private
268
+ */
269
+ NgxsReduxDevtoolsPlugin.prototype._ngZone;
270
+ }
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2dG9vbHMucGx1Z2luLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvZGV2dG9vbHMtcGx1Z2luLyIsInNvdXJjZXMiOlsic3JjL2RldnRvb2xzLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWEsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx5QkFBeUIsRUFBZ0MsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUNMLHFCQUFxQixFQUl0QixNQUFNLFdBQVcsQ0FBQzs7O0lBR2pCLFVBQVcsVUFBVTtJQUNyQixRQUFTLFFBQVE7Ozs7SUFJakIsY0FBZSxnQkFBZ0I7SUFDL0IsYUFBYyxlQUFlO0lBQzdCLGNBQWUsZUFBZTtJQUM5QixhQUFjLGNBQWM7Ozs7OztBQU85QjtJQVFFLGlDQUN5QyxRQUE2QixFQUM1RCxTQUFtQixFQUNuQixPQUFlO1FBRmdCLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBQzVELGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQVRqQixzQkFBaUIsR0FBaUMsSUFBSSxDQUFDO1FBQzlDLG1CQUFjLEdBQzdCLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWxFLGdCQUFXLEdBQXdCLElBQUksQ0FBQztRQU85QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7OztJQUVELDZDQUFXOzs7SUFBWDtRQUNFLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxJQUFJLENB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QyxFQUFBLEdBQUEsRUFDeEUsQ0FBQztRQUVGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLE1BQU07WUFDeEQsSUFDRSxNQUFNLENBQUMsSUFBSSw4QkFBcUM7Z0JBQ2hELE1BQU0sQ0FBQyxJQUFJLDBCQUFtQyxFQUM5QztnQkFDQSxLQUFJLENBQUMsT0FBTyxDQUFDLEdBQUc7OztnQkFBQztvQkFDZixLQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMxQixDQUFDLEVBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOztnQkFoSUYsVUFBVTs7OztnREFTTixNQUFNLFNBQUMscUJBQXFCO2dCQXBDSixRQUFRO2dCQUFFLE1BQU07O0lBNEo3Qyw4QkFBQztDQUFBLEFBaklELElBaUlDO1NBaElZLHVCQUF1Qjs7Ozs7O0lBQ2xDLG9EQUErRDs7Ozs7SUFDL0QsaURBQzBFOzs7OztJQUUxRSw4Q0FBZ0Q7Ozs7O0lBRzlDLDJDQUFvRTs7Ozs7SUFDcEUsNENBQTJCOzs7OztJQUMzQiwwQ0FBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBOZ1pvbmUsIE9uRGVzdHJveSwgybVnbG9iYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UsIE5neHNOZXh0UGx1Z2luRm4sIE5neHNQbHVnaW4sIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgdGFwLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBOR1hTX0RFVlRPT0xTX09QVElPTlMsXG4gIE5neHNEZXZ0b29sc0FjdGlvbixcbiAgTmd4c0RldnRvb2xzRXh0ZW5zaW9uLFxuICBOZ3hzRGV2dG9vbHNPcHRpb25zXG59IGZyb20gJy4vc3ltYm9scyc7XG5cbmNvbnN0IGVudW0gUmVkdXhEZXZ0b29sc0FjdGlvblR5cGUge1xuICBEaXNwYXRjaCA9ICdESVNQQVRDSCcsXG4gIEFjdGlvbiA9ICdBQ1RJT04nXG59XG5cbmNvbnN0IGVudW0gUmVkdXhEZXZ0b29sc1BheWxvYWRUeXBlIHtcbiAgSnVtcFRvQWN0aW9uID0gJ0pVTVBfVE9fQUNUSU9OJyxcbiAgSnVtcFRvU3RhdGUgPSAnSlVNUF9UT19TVEFURScsXG4gIFRvZ2dsZUFjdGlvbiA9ICdUT0dHTEVfQUNUSU9OJyxcbiAgSW1wb3J0U3RhdGUgPSAnSU1QT1JUX1NUQVRFJ1xufVxuXG4vKipcbiAqIEFkZHMgc3VwcG9ydCBmb3IgdGhlIFJlZHV4IERldnRvb2xzIGV4dGVuc2lvbjpcbiAqIGh0dHA6Ly9leHRlbnNpb24ucmVtb3RlZGV2LmlvL1xuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmd4c1JlZHV4RGV2dG9vbHNQbHVnaW4gaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE5neHNQbHVnaW4ge1xuICBwcml2YXRlIGRldnRvb2xzRXh0ZW5zaW9uOiBOZ3hzRGV2dG9vbHNFeHRlbnNpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBnbG9iYWxEZXZ0b29scyA9XG4gICAgybVnbG9iYWxbJ19fUkVEVVhfREVWVE9PTFNfRVhURU5TSU9OX18nXSB8fCDJtWdsb2JhbFsnZGV2VG9vbHNFeHRlbnNpb24nXTtcblxuICBwcml2YXRlIHVuc3Vic2NyaWJlOiBWb2lkRnVuY3Rpb24gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE5HWFNfREVWVE9PTFNfT1BUSU9OUykgcHJpdmF0ZSBfb3B0aW9uczogTmd4c0RldnRvb2xzT3B0aW9ucyxcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgdGhpcy5jb25uZWN0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51bnN1YnNjcmliZSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5nbG9iYWxEZXZ0b29scykge1xuICAgICAgdGhpcy5nbG9iYWxEZXZ0b29scy5kaXNjb25uZWN0KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExhenkgZ2V0IHRoZSBzdG9yZSBmb3IgY2lyY3VsYXIgZGVwZW5kZW5jeSBpc3N1ZXNcbiAgICovXG4gIHByaXZhdGUgZ2V0IHN0b3JlKCk6IFN0b3JlIHtcbiAgICByZXR1cm4gdGhpcy5faW5qZWN0b3IuZ2V0PFN0b3JlPihTdG9yZSk7XG4gIH1cblxuICAvKipcbiAgICogTWlkZGxld2FyZSBoYW5kbGUgZnVuY3Rpb25cbiAgICovXG4gIGhhbmRsZShzdGF0ZTogYW55LCBhY3Rpb246IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5Gbikge1xuICAgIGlmICghdGhpcy5kZXZ0b29sc0V4dGVuc2lvbiB8fCB0aGlzLl9vcHRpb25zLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbmV4dChzdGF0ZSwgYWN0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dChzdGF0ZSwgYWN0aW9uKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID0gdGhpcy5zdG9yZS5zbmFwc2hvdCgpO1xuICAgICAgICB0aGlzLnNlbmRUb0RldlRvb2xzKHN0YXRlLCBhY3Rpb24sIG5ld1N0YXRlKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KSxcbiAgICAgIHRhcChuZXdTdGF0ZSA9PiB7XG4gICAgICAgIHRoaXMuc2VuZFRvRGV2VG9vbHMoc3RhdGUsIGFjdGlvbiwgbmV3U3RhdGUpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZW5kVG9EZXZUb29scyhzdGF0ZTogYW55LCBhY3Rpb246IGFueSwgbmV3U3RhdGU6IGFueSkge1xuICAgIGNvbnN0IHR5cGUgPSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvbik7XG4gICAgLy8gaWYgaW5pdCBhY3Rpb24sIHNlbmQgaW5pdGlhbCBzdGF0ZSB0byBkZXYgdG9vbHNcbiAgICBjb25zdCBpc0luaXRBY3Rpb24gPSB0eXBlID09PSAnQEBJTklUJztcbiAgICBpZiAoaXNJbml0QWN0aW9uKSB7XG4gICAgICB0aGlzLmRldnRvb2xzRXh0ZW5zaW9uIS5pbml0KHN0YXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kZXZ0b29sc0V4dGVuc2lvbiEuc2VuZCh7IC4uLmFjdGlvbiwgYWN0aW9uOiBudWxsLCB0eXBlIH0sIG5ld1N0YXRlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIHRoZSBhY3Rpb24gZnJvbSB0aGUgZGV2IHRvb2xzIHN1YnNjcmlwdGlvblxuICAgKi9cbiAgZGlzcGF0Y2hlZChhY3Rpb246IE5neHNEZXZ0b29sc0FjdGlvbikge1xuICAgIGlmIChhY3Rpb24udHlwZSA9PT0gUmVkdXhEZXZ0b29sc0FjdGlvblR5cGUuRGlzcGF0Y2gpIHtcbiAgICAgIGlmIChcbiAgICAgICAgYWN0aW9uLnBheWxvYWQudHlwZSA9PT0gUmVkdXhEZXZ0b29sc1BheWxvYWRUeXBlLkp1bXBUb0FjdGlvbiB8fFxuICAgICAgICBhY3Rpb24ucGF5bG9hZC50eXBlID09PSBSZWR1eERldnRvb2xzUGF5bG9hZFR5cGUuSnVtcFRvU3RhdGVcbiAgICAgICkge1xuICAgICAgICBjb25zdCBwcmV2U3RhdGUgPSBKU09OLnBhcnNlKGFjdGlvbi5zdGF0ZSk7XG4gICAgICAgIC8vIFRoaXMgbWFrZXMgdGhlIERldlRvb2xzIGFuZCBSb3V0ZXIgcGx1Z2lucyBmcmllbmRzIHdpdGggZWFjaCBvdGhlci5cbiAgICAgICAgLy8gV2UncmUgY2hlY2tpbmcgZm9yIHRoZSBgcm91dGVyYCBzdGF0ZSB0byBleGlzdCwgYW5kIGl0IGFsc28gc2hvdWxkXG4gICAgICAgIC8vIGhhdmUgdGhlIGB0cmlnZ2VyYCBwcm9wZXJ0eSwgc28gd2UncmUgc3VyZSB0aGF0IHRoaXMgaXMgb3VyIHJvdXRlclxuICAgICAgICAvLyBzdGF0ZSAoY29taW5nIGZyb20gYEBuZ3hzL3JvdXRlci1wbHVnaW5gKS4gVGhpcyBlbmFibGVzIGEgdGltZS10cmF2ZWxpbmdcbiAgICAgICAgLy8gZmVhdHVyZSBzaW5jZSBpdCBkb2Vzbid0IG9ubHkgcmVzdG9yZSB0aGUgc3RhdGUgYnV0IGFsc28gYWxsb3dzIHRoZSBgUm91dGVyU3RhdGVgXG4gICAgICAgIC8vIHRvIG5hdmlnYXRlIGJhY2sgd2hlbiB0aGUgYWN0aW9uIGlzIGp1bXBlZC5cbiAgICAgICAgaWYgKHByZXZTdGF0ZS5yb3V0ZXIgJiYgcHJldlN0YXRlLnJvdXRlci50cmlnZ2VyKSB7XG4gICAgICAgICAgcHJldlN0YXRlLnJvdXRlci50cmlnZ2VyID0gJ2RldnRvb2xzJztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0b3JlLnJlc2V0KHByZXZTdGF0ZSk7XG4gICAgICB9IGVsc2UgaWYgKGFjdGlvbi5wYXlsb2FkLnR5cGUgPT09IFJlZHV4RGV2dG9vbHNQYXlsb2FkVHlwZS5Ub2dnbGVBY3Rpb24pIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdTa2lwIGlzIG5vdCBzdXBwb3J0ZWQgYXQgdGhpcyB0aW1lLicpO1xuICAgICAgfSBlbHNlIGlmIChhY3Rpb24ucGF5bG9hZC50eXBlID09PSBSZWR1eERldnRvb2xzUGF5bG9hZFR5cGUuSW1wb3J0U3RhdGUpIHtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgIGFjdGlvbnNCeUlkLFxuICAgICAgICAgIGNvbXB1dGVkU3RhdGVzLFxuICAgICAgICAgIGN1cnJlbnRTdGF0ZUluZGV4XG4gICAgICAgIH0gPSBhY3Rpb24ucGF5bG9hZC5uZXh0TGlmdGVkU3RhdGU7XG4gICAgICAgIHRoaXMuZGV2dG9vbHNFeHRlbnNpb24hLmluaXQoY29tcHV0ZWRTdGF0ZXNbMF0uc3RhdGUpO1xuICAgICAgICBPYmplY3Qua2V5cyhhY3Rpb25zQnlJZClcbiAgICAgICAgICAuZmlsdGVyKGFjdGlvbklkID0+IGFjdGlvbklkICE9PSAnMCcpXG4gICAgICAgICAgLmZvckVhY2goYWN0aW9uSWQgPT5cbiAgICAgICAgICAgIHRoaXMuZGV2dG9vbHNFeHRlbnNpb24hLnNlbmQoYWN0aW9uc0J5SWRbYWN0aW9uSWRdLCBjb21wdXRlZFN0YXRlc1thY3Rpb25JZF0uc3RhdGUpXG4gICAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zdG9yZS5yZXNldChjb21wdXRlZFN0YXRlc1tjdXJyZW50U3RhdGVJbmRleF0uc3RhdGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoYWN0aW9uLnR5cGUgPT09IFJlZHV4RGV2dG9vbHNBY3Rpb25UeXBlLkFjdGlvbikge1xuICAgICAgY29uc3QgYWN0aW9uUGF5bG9hZCA9IEpTT04ucGFyc2UoYWN0aW9uLnBheWxvYWQpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChhY3Rpb25QYXlsb2FkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbm5lY3QoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmdsb2JhbERldnRvb2xzIHx8IHRoaXMuX29wdGlvbnMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBUaGUgYGNvbm5lY3RgIG1ldGhvZCBhZGRzIGBtZXNzYWdlYCBldmVudCBsaXN0ZW5lciBzaW5jZSBpdCBjb21tdW5pY2F0ZXNcbiAgICAvLyB3aXRoIGFuIGV4dGVuc2lvbiB0aHJvdWdoIGB3aW5kb3cucG9zdE1lc3NhZ2VgIGFuZCBtZXNzYWdlIGV2ZW50cy5cbiAgICAvLyBXZSBoYW5kbGUgb25seSAyIGV2ZW50czsgdGh1cywgd2UgZG9uJ3Qgd2FudCB0byBydW4gbWFueSBjaGFuZ2UgZGV0ZWN0aW9uc1xuICAgIC8vIGJlY2F1c2UgdGhlIGV4dGVuc2lvbiBzZW5kcyBldmVudHMgdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGhhbmRsZS5cbiAgICB0aGlzLmRldnRvb2xzRXh0ZW5zaW9uID0gdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKFxuICAgICAgKCkgPT4gPE5neHNEZXZ0b29sc0V4dGVuc2lvbj50aGlzLmdsb2JhbERldnRvb2xzLmNvbm5lY3QodGhpcy5fb3B0aW9ucylcbiAgICApO1xuXG4gICAgdGhpcy51bnN1YnNjcmliZSA9IHRoaXMuZGV2dG9vbHNFeHRlbnNpb24uc3Vic2NyaWJlKGFjdGlvbiA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGFjdGlvbi50eXBlID09PSBSZWR1eERldnRvb2xzQWN0aW9uVHlwZS5EaXNwYXRjaCB8fFxuICAgICAgICBhY3Rpb24udHlwZSA9PT0gUmVkdXhEZXZ0b29sc0FjdGlvblR5cGUuQWN0aW9uXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNwYXRjaGVkKGFjdGlvbik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,8 +1,8 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- export { NgxsReduxDevtoolsPluginModule } from './devtools.module';
6
- export { NgxsReduxDevtoolsPlugin } from './devtools.plugin';
7
- export { NGXS_DEVTOOLS_OPTIONS } from './symbols';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL2RldnRvb2xzLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxzQ0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBOZ3hzUmVkdXhEZXZ0b29sc1BsdWdpbk1vZHVsZSB9IGZyb20gJy4vZGV2dG9vbHMubW9kdWxlJztcclxuZXhwb3J0IHsgTmd4c1JlZHV4RGV2dG9vbHNQbHVnaW4gfSBmcm9tICcuL2RldnRvb2xzLnBsdWdpbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3ltYm9scyc7XHJcbiJdfQ==
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ export { NgxsReduxDevtoolsPluginModule } from './devtools.module';
6
+ export { NgxsReduxDevtoolsPlugin } from './devtools.plugin';
7
+ export { NGXS_DEVTOOLS_OPTIONS } from './symbols';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL2RldnRvb2xzLXBsdWdpbi8iLCJzb3VyY2VzIjpbInNyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxzQ0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBOZ3hzUmVkdXhEZXZ0b29sc1BsdWdpbk1vZHVsZSB9IGZyb20gJy4vZGV2dG9vbHMubW9kdWxlJztcbmV4cG9ydCB7IE5neHNSZWR1eERldnRvb2xzUGx1Z2luIH0gZnJvbSAnLi9kZXZ0b29scy5wbHVnaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9zeW1ib2xzJztcbiJdfQ==