@ng-util/lazy 11.2.0 → 12.1.2

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,8 +1,3 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lazy.service.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
1
  import { __awaiter } from "tslib";
7
2
  import { DOCUMENT } from '@angular/common';
8
3
  import { Inject, Injectable } from '@angular/core';
@@ -10,104 +5,39 @@ import { BehaviorSubject, pipe } from 'rxjs';
10
5
  import { filter, share } from 'rxjs/operators';
11
6
  import * as i0 from "@angular/core";
12
7
  import * as i1 from "@angular/common";
13
- /**
14
- * @record
15
- */
16
- export function NuLazyResources() { }
17
- if (false) {
18
- /** @type {?} */
19
- NuLazyResources.prototype.path;
20
- /** @type {?} */
21
- NuLazyResources.prototype.type;
22
- /**
23
- * 回调名称
24
- * @type {?|undefined}
25
- */
26
- NuLazyResources.prototype.callback;
27
- }
28
- /**
29
- * @record
30
- */
31
- export function NuLazyResult() { }
32
- if (false) {
33
- /** @type {?} */
34
- NuLazyResult.prototype.path;
35
- /** @type {?} */
36
- NuLazyResult.prototype.status;
37
- /** @type {?|undefined} */
38
- NuLazyResult.prototype.type;
39
- /** @type {?|undefined} */
40
- NuLazyResult.prototype.error;
41
- }
42
8
  export class NuLazyService {
43
- /**
44
- * @param {?} doc
45
- */
46
9
  constructor(doc) {
47
10
  this.doc = doc;
48
11
  this.list = {};
49
12
  this.cached = {};
50
13
  this._notify = new BehaviorSubject([]);
51
14
  }
52
- /**
53
- * @private
54
- * @param {?=} paths
55
- * @return {?}
56
- */
57
15
  fixPaths(paths) {
58
16
  paths = paths || [];
59
17
  if (!Array.isArray(paths)) {
60
18
  paths = [paths];
61
19
  }
62
- return paths.map((/**
63
- * @param {?} p
64
- * @return {?}
65
- */
66
- (p) => {
67
- /** @type {?} */
68
- const res = (/** @type {?} */ ((typeof p === 'string' ? { path: p } : p)));
20
+ return paths.map((p) => {
21
+ const res = (typeof p === 'string' ? { path: p } : p);
69
22
  if (!res.type) {
70
23
  res.type = res.path.endsWith('.js') || res.callback ? 'script' : 'style';
71
24
  }
72
25
  return res;
73
- }));
26
+ });
74
27
  }
75
28
  /**
76
29
  * Monitor for the finished of `paths`
77
30
  *
78
31
  * - It's recommended to pass the value in accordance with the `load()` method
79
- * @param {?=} paths
80
- * @return {?}
81
32
  */
82
33
  monitor(paths) {
83
- /** @type {?} */
84
34
  const libs = this.fixPaths(paths);
85
- /** @type {?} */
86
- const pipes = [share(), filter((/**
87
- * @param {?} ls
88
- * @return {?}
89
- */
90
- (ls) => ls.length !== 0))];
35
+ const pipes = [share(), filter((ls) => ls.length !== 0)];
91
36
  if (libs.length > 0) {
92
- pipes.push(filter((/**
93
- * @param {?} ls
94
- * @return {?}
95
- */
96
- (ls) => ls.length === libs.length && ls.every((/**
97
- * @param {?} v
98
- * @return {?}
99
- */
100
- v => v.status === 'ok' && libs.find((/**
101
- * @param {?} lw
102
- * @return {?}
103
- */
104
- lw => lw.path === v.path)))))));
37
+ pipes.push(filter((ls) => ls.length === libs.length && ls.every(v => v.status === 'ok' && libs.find(lw => lw.path === v.path))));
105
38
  }
106
39
  return this._notify.asObservable().pipe(pipe.apply(this, pipes));
107
40
  }
108
- /**
109
- * @return {?}
110
- */
111
41
  clear() {
112
42
  this.list = {};
113
43
  this.cached = {};
@@ -117,74 +47,41 @@ export class NuLazyService {
117
47
  *
118
48
  * - The returned Promise does not mean that it was successfully loaded
119
49
  * - You can monitor load is success via `monitor()`
120
- * @param {?} paths
121
- * @return {?}
122
50
  */
123
51
  load(paths) {
124
52
  return __awaiter(this, void 0, void 0, function* () {
125
53
  paths = this.fixPaths(paths);
126
- return Promise.all(((/** @type {?} */ (paths))).map((/**
127
- * @param {?} p
128
- * @return {?}
129
- */
130
- p => p.type === 'script' ? this.loadScript(p.path, { callback: p.callback }) : this.loadStyle(p.path)))).then((/**
131
- * @param {?} res
132
- * @return {?}
133
- */
134
- res => {
54
+ return Promise.all(paths.map(p => p.type === 'script' ? this.loadScript(p.path, { callback: p.callback }) : this.loadStyle(p.path))).then(res => {
135
55
  this._notify.next(res);
136
56
  return Promise.resolve(res);
137
- }));
57
+ });
138
58
  });
139
59
  }
140
- /**
141
- * @param {?} path
142
- * @param {?=} options
143
- * @return {?}
144
- */
145
60
  loadScript(path, options) {
146
61
  const { innerContent } = Object.assign({}, options);
147
- return new Promise((/**
148
- * @param {?} resolve
149
- * @return {?}
150
- */
151
- resolve => {
62
+ return new Promise(resolve => {
152
63
  if (this.list[path] === true) {
153
64
  resolve(Object.assign(Object.assign({}, this.cached[path]), { status: 'loading' }));
154
65
  return;
155
66
  }
156
67
  this.list[path] = true;
157
- /** @type {?} */
158
- const onSuccess = (/**
159
- * @param {?} item
160
- * @return {?}
161
- */
162
- (item) => {
68
+ const onSuccess = (item) => {
163
69
  if (item.status === 'ok' && (options === null || options === void 0 ? void 0 : options.callback)) {
164
- ((/** @type {?} */ (window)))[options === null || options === void 0 ? void 0 : options.callback] = (/**
165
- * @return {?}
166
- */
167
- () => {
70
+ window[options === null || options === void 0 ? void 0 : options.callback] = () => {
168
71
  onSuccessTruth(item);
169
- });
72
+ };
170
73
  }
171
74
  else {
172
75
  onSuccessTruth(item);
173
76
  }
174
- });
175
- /** @type {?} */
176
- const onSuccessTruth = (/**
177
- * @param {?} item
178
- * @return {?}
179
- */
180
- (item) => {
77
+ };
78
+ const onSuccessTruth = (item) => {
181
79
  item.type = 'script';
182
80
  this.cached[path] = item;
183
81
  resolve(item);
184
82
  this._notify.next([item]);
185
- });
186
- /** @type {?} */
187
- const node = (/** @type {?} */ (this.doc.createElement('script')));
83
+ };
84
+ const node = this.doc.createElement('script');
188
85
  node.type = 'text/javascript';
189
86
  node.src = path;
190
87
  node.charset = 'utf-8';
@@ -193,10 +90,7 @@ export class NuLazyService {
193
90
  }
194
91
  if (node.readyState) {
195
92
  // IE
196
- node.onreadystatechange = (/**
197
- * @return {?}
198
- */
199
- () => {
93
+ node.onreadystatechange = () => {
200
94
  if (node.readyState === 'loaded' || node.readyState === 'complete') {
201
95
  node.onreadystatechange = null;
202
96
  onSuccess({
@@ -204,48 +98,31 @@ export class NuLazyService {
204
98
  status: 'ok',
205
99
  });
206
100
  }
207
- });
101
+ };
208
102
  }
209
103
  else {
210
- node.onload = (/**
211
- * @return {?}
212
- */
213
- () => onSuccess({
104
+ node.onload = () => onSuccess({
214
105
  path,
215
106
  status: 'ok',
216
- }));
107
+ });
217
108
  }
218
- node.onerror = (/**
219
- * @param {?} error
220
- * @return {?}
221
- */
222
- (error) => onSuccess({
109
+ node.onerror = (error) => onSuccess({
223
110
  path,
224
111
  status: 'error',
225
112
  error,
226
- }));
113
+ });
227
114
  this.doc.getElementsByTagName('head')[0].appendChild(node);
228
- }));
115
+ });
229
116
  }
230
- /**
231
- * @param {?} path
232
- * @param {?=} options
233
- * @return {?}
234
- */
235
117
  loadStyle(path, options) {
236
118
  const { rel, innerContent } = Object.assign({ rel: 'stylesheet' }, options);
237
- return new Promise((/**
238
- * @param {?} resolve
239
- * @return {?}
240
- */
241
- resolve => {
119
+ return new Promise(resolve => {
242
120
  if (this.list[path] === true) {
243
121
  resolve(this.cached[path]);
244
122
  return;
245
123
  }
246
124
  this.list[path] = true;
247
- /** @type {?} */
248
- const node = (/** @type {?} */ (this.doc.createElement('link')));
125
+ const node = this.doc.createElement('link');
249
126
  node.rel = rel;
250
127
  node.type = 'text/css';
251
128
  node.href = path;
@@ -253,7 +130,6 @@ export class NuLazyService {
253
130
  node.innerHTML = innerContent;
254
131
  }
255
132
  this.doc.getElementsByTagName('head')[0].appendChild(node);
256
- /** @type {?} */
257
133
  const item = {
258
134
  path,
259
135
  status: 'ok',
@@ -261,37 +137,22 @@ export class NuLazyService {
261
137
  };
262
138
  this.cached[path] = item;
263
139
  resolve(item);
264
- }));
140
+ });
265
141
  }
266
142
  }
143
+ /** @nocollapse */ NuLazyService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NuLazyService_Factory() { return new NuLazyService(i0.ɵɵinject(i1.DOCUMENT)); }, token: NuLazyService, providedIn: "root" });
144
+ /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
267
145
  NuLazyService.decorators = [
268
146
  { type: Injectable, args: [{ providedIn: 'root' },] }
269
147
  ];
270
- /** @nocollapse */
148
+ /**
149
+ * @type {function(): !Array<(null|{
150
+ * type: ?,
151
+ * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
152
+ * })>}
153
+ * @nocollapse
154
+ */
271
155
  NuLazyService.ctorParameters = () => [
272
156
  { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
273
157
  ];
274
- /** @nocollapse */ NuLazyService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NuLazyService_Factory() { return new NuLazyService(i0.ɵɵinject(i1.DOCUMENT)); }, token: NuLazyService, providedIn: "root" });
275
- if (false) {
276
- /**
277
- * @type {?}
278
- * @private
279
- */
280
- NuLazyService.prototype.list;
281
- /**
282
- * @type {?}
283
- * @private
284
- */
285
- NuLazyService.prototype.cached;
286
- /**
287
- * @type {?}
288
- * @private
289
- */
290
- NuLazyService.prototype._notify;
291
- /**
292
- * @type {?}
293
- * @private
294
- */
295
- NuLazyService.prototype.doc;
296
- }
297
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xhenkvIiwic291cmNlcyI6WyJsYXp5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQUkvQyxxQ0FPQzs7O0lBTkMsK0JBQWE7O0lBQ2IsK0JBQTBCOzs7OztJQUkxQixtQ0FBa0I7Ozs7O0FBR3BCLGtDQUtDOzs7SUFKQyw0QkFBYTs7SUFDYiw4QkFBbUM7O0lBQ25DLDRCQUEyQjs7SUFDM0IsNkJBQVc7O0FBSWIsTUFBTSxPQUFPLGFBQWE7Ozs7SUFLeEIsWUFBc0MsR0FBUTtRQUFSLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFKdEMsU0FBSSxHQUErQixFQUFFLENBQUM7UUFDdEMsV0FBTSxHQUFvQyxFQUFFLENBQUM7UUFDN0MsWUFBTyxHQUFvQyxJQUFJLGVBQWUsQ0FBaUIsRUFBRSxDQUFDLENBQUM7SUFFMUMsQ0FBQzs7Ozs7O0lBRTFDLFFBQVEsQ0FBQyxLQUFnRDtRQUMvRCxLQUFLLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QixLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqQjtRQUNELE9BQU8sS0FBSyxDQUFDLEdBQUc7Ozs7UUFBQyxDQUFDLENBQTJCLEVBQUUsRUFBRTs7a0JBQ3pDLEdBQUcsR0FBRyxtQkFBQSxDQUFDLE9BQU8sQ0FBQyxLQUFL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LElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLE9BQU87YUFDUjtZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDOztrQkFFakIsSUFBSSxHQUFHLG1CQUFBLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFtQjtZQUM5RCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLElBQUksWUFBWSxFQUFFO2dCQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQzthQUMvQjtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDOztrQkFDckQsSUFBSSxHQUFpQjtnQkFDekIsSUFBSTtnQkFDSixNQUFNLEVBQUUsSUFBSTtnQkFDWixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7WUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hCLENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBekpGLFVBQVUsU0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7Ozs7NENBTW5CLE1BQU0sU0FBQyxRQUFROzs7Ozs7OztJQUo1Qiw2QkFBOEM7Ozs7O0lBQzlDLCtCQUFxRDs7Ozs7SUFDckQsZ0NBQTJGOzs7OztJQUUvRSw0QkFBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgcGlwZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzaGFyZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IHR5cGUgTnVMYXp5UmVzb3VyY2VzVHlwZSA9ICdzY3JpcHQnIHwgJ3N0eWxlJztcblxuZXhwb3J0IGludGVyZmFjZSBOdUxhenlSZXNvdXJjZXMge1xuICBwYXRoOiBzdHJpbmc7XG4gIHR5cGU6IE51TGF6eVJlc291cmNlc1R5cGU7XG4gIC8qKlxuICAgKiDlm57osIPlkI3np7BcbiAgICovXG4gIGNhbGxiYWNrPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE51TGF6eVJlc3VsdCB7XG4gIHBhdGg6IHN0cmluZztcbiAgc3RhdHVzOiAnb2snIHwgJ2Vycm9yJyB8ICdsb2FkaW5nJztcbiAgdHlwZT86IE51TGF6eVJlc291cmNlc1R5cGU7XG4gIGVycm9yPzoge307XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTnVMYXp5U2VydmljZSB7XG4gIHByaXZhdGUgbGlzdDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgcHJpdmF0ZSBjYWNoZWQ6IHsgW2tleTogc3RyaW5nXTogTnVMYXp5UmVzdWx0IH0gPSB7fTtcbiAgcHJpdmF0ZSBfbm90aWZ5OiBCZWhhdmlvclN1YmplY3Q8TnVMYXp5UmVzdWx0W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOdUxhenlSZXN1bHRbXT4oW10pO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBhbnkpIHt9XG5cbiAgcHJpdmF0ZSBmaXhQYXRocyhwYXRocz86IHN0cmluZyB8IEFycmF5PHN0cmluZyB8IE51TGF6eVJlc291cmNlcz4pOiBOdUxhenlSZXNvdXJjZXNbXSB7XG4gICAgcGF0aHMgPSBwYXRocyB8fCBbXTtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocGF0aHMpKSB7XG4gICAgICBwYXRocyA9IFtwYXRoc107XG4gICAgfVxuICAgIHJldHVybiBwYXRocy5tYXAoKHA6IHN0cmluZyB8IE51TGF6eVJlc291cmNlcykgPT4ge1xuICAgICAgY29uc3QgcmVzID0gKHR5cGVvZiBwID09PSAnc3RyaW5nJyA/IHsgcGF0aDogcCB9IDogcCkgYXMgTnVMYXp5UmVzb3VyY2VzO1xuICAgICAgaWYgKCFyZXMudHlwZSkge1xuICAgICAgICByZXMudHlwZSA9IHJlcy5wYXRoLmVuZHNXaXRoKCcuanMnKSB8fCByZXMuY2FsbGJhY2sgPyAnc2NyaXB0JyA6ICdzdHlsZSc7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vbml0b3IgZm9yIHRoZSBmaW5pc2hlZCBvZiBgcGF0aHNgXG4gICAqXG4gICAqIC0gSXQncyByZWNvbW1lbmRlZCB0byBwYXNzIHRoZSB2YWx1ZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIGBsb2FkKClgIG1ldGhvZFxuICAgKi9cbiAgbW9uaXRvcihwYXRocz86IHN0cmluZyB8IEFycmF5PHN0cmluZyB8IE51TGF6eVJlc291cmNlcz4pOiBPYnNlcnZhYmxlPE51TGF6eVJlc3VsdFtdPiB7XG4gICAgY29uc3QgbGlicyA9IHRoaXMuZml4UGF0aHMocGF0aHMpO1xuXG4gICAgY29uc3QgcGlwZXMgPSBbc2hhcmUoKSwgZmlsdGVyKChsczogTnVMYXp5UmVzdWx0W10pID0+IGxzLmxlbmd0aCAhPT0gMCldO1xuXG4gICAgaWYgKGxpYnMubGVuZ3RoID4gMCkge1xuICAgICAgcGlwZXMucHVzaChcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIChsczogTnVMYXp5UmVzdWx0W10pID0+IGxzLmxlbmd0aCA9PT0gbGlicy5sZW5ndGggJiYgbHMuZXZlcnkodiA9PiB2LnN0YXR1cyA9PT0gJ29rJyAmJiBsaWJzLmZpbmQobHcgPT4gbHcucGF0aCA9PT0gdi5wYXRoKSksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9ub3RpZnkuYXNPYnNlcnZhYmxlKCkucGlwZShwaXBlLmFwcGx5KHRoaXMsIHBpcGVzKSk7XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3QgPSB7fTtcbiAgICB0aGlzLmNhY2hlZCA9IHt9O1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIHNwZWNpZmllZCByZXNvdXJjZXMsIGluY2x1ZGVzIGAuanNgLCBgLmNzc2BcbiAgICpcbiAgICogLSBUaGUgcmV0dXJuZWQgUHJvbWlzZSBkb2VzIG5vdCBtZWFuIHRoYXQgaXQgd2FzIHN1Y2Nlc3NmdWxseSBsb2FkZWRcbiAgICogLSBZb3UgY2FuIG1vbml0b3IgbG9hZCBpcyBzdWNjZXNzIHZpYSBgbW9uaXRvcigpYFxuICAgKi9cbiAgYXN5bmMgbG9hZChwYXRoczogc3RyaW5nIHwgQXJyYXk8c3RyaW5nIHwgTnVMYXp5UmVzb3VyY2VzPik6IFByb21pc2U8TnVMYXp5UmVzdWx0W10+IHtcbiAgICBwYXRocyA9IHRoaXMuZml4UGF0aHMocGF0aHMpO1xuXG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgICAgKHBhdGhzIGFzIE51TGF6eVJlc291cmNlc1tdKS5tYXAocCA9PlxuICAgICAgICBwLnR5cGUgPT09ICdzY3JpcHQnID8gdGhpcy5sb2FkU2NyaXB0KHAucGF0aCwgeyBjYWxsYmFjazogcC5jYWxsYmFjayB9KSA6IHRoaXMubG9hZFN0eWxlKHAucGF0aCksXG4gICAgICApLFxuICAgICkudGhlbihyZXMgPT4ge1xuICAgICAgdGhpcy5fbm90aWZ5Lm5leHQocmVzKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWRTY3JpcHQocGF0aDogc3RyaW5nLCBvcHRpb25zPzogeyBpbm5lckNvbnRlbnQ/OiBzdHJpbmc7IGNhbGxiYWNrPzogc3RyaW5nIH0pOiBQcm9taXNlPE51TGF6eVJlc3VsdD4ge1xuICAgIGNvbnN0IHsgaW5uZXJDb250ZW50IH0gPSB7IC4uLm9wdGlvbnMgfTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBpZiAodGhpcy5saXN0W3BhdGhdID09PSB0cnVlKSB7XG4gICAgICAgIHJlc29sdmUoeyAuLi50aGlzLmNhY2hlZFtwYXRoXSwgc3RhdHVzOiAnbG9hZGluZycgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5saXN0W3BhdGhdID0gdHJ1ZTtcbiAgICAgIGNvbnN0IG9uU3VjY2VzcyA9IChpdGVtOiBOdUxhenlSZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKGl0ZW0uc3RhdHVzID09PSAnb2snICYmIG9wdGlvbnM/LmNhbGxiYWNrKSB7XG4gICAgICAgICAgKHdpbmRvdyBhcyBhbnkpW29wdGlvbnM/LmNhbGxiYWNrXSA9ICgpID0+IHtcbiAgICAgICAgICAgIG9uU3VjY2Vzc1RydXRoKGl0ZW0pO1xuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgb25TdWNjZXNzVHJ1dGgoaXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICBjb25zdCBvblN1Y2Nlc3NUcnV0aCA9IChpdGVtOiBOdUxhenlSZXN1bHQpID0+IHtcbiAgICAgICAgaXRlbS50eXBlID0gJ3NjcmlwdCc7XG4gICAgICAgIHRoaXMuY2FjaGVkW3BhdGhdID0gaXRlbTtcbiAgICAgICAgcmVzb2x2ZShpdGVtKTtcbiAgICAgICAgdGhpcy5fbm90aWZ5Lm5leHQoW2l0ZW1dKTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKSBhcyBhbnk7XG4gICAgICBub2RlLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgIG5vZGUuc3JjID0gcGF0aDtcbiAgICAgIG5vZGUuY2hhcnNldCA9ICd1dGYtOCc7XG4gICAgICBpZiAoaW5uZXJDb250ZW50KSB7XG4gICAgICAgIG5vZGUuaW5uZXJIVE1MID0gaW5uZXJDb250ZW50O1xuICAgICAgfVxuICAgICAgaWYgKG5vZGUucmVhZHlTdGF0ZSkge1xuICAgICAgICAvLyBJRVxuICAgICAgICBub2RlLm9ucmVhZHlzdGF0ZWNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICBpZiAobm9kZS5yZWFkeVN0YXRlID09PSAnbG9hZGVkJyB8fCBub2RlLnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScpIHtcbiAgICAgICAgICAgIG5vZGUub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDtcbiAgICAgICAgICAgIG9uU3VjY2Vzcyh7XG4gICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgIHN0YXR1czogJ29rJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vZGUub25sb2FkID0gKCkgPT5cbiAgICAgICAgICBvblN1Y2Nlc3Moe1xuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHN0YXR1czogJ29rJyxcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIG5vZGUub25lcnJvciA9IChlcnJvcjoge30pID0+XG4gICAgICAgIG9uU3VjY2Vzcyh7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChub2RlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGxvYWRTdHlsZShwYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiB7IHJlbD86IHN0cmluZzsgaW5uZXJDb250ZW50Pzogc3RyaW5nIH0pOiBQcm9taXNlPE51TGF6eVJlc3VsdD4ge1xuICAgIGNvbnN0IHsgcmVsLCBpbm5lckNvbnRlbnQgfSA9IHsgcmVsOiAnc3R5bGVzaGVldCcsIC4uLm9wdGlvbnMgfTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBpZiAodGhpcy5saXN0W3BhdGhdID09PSB0cnVlKSB7XG4gICAgICAgIHJlc29sdmUodGhpcy5jYWNoZWRbcGF0aF0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMubGlzdFtwYXRoXSA9IHRydWU7XG5cbiAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmRvYy5jcmVhdGVFbGVtZW50KCdsaW5rJykgYXMgSFRNTExpbmtFbGVtZW50O1xuICAgICAgbm9kZS5yZWwgPSByZWw7XG4gICAgICBub2RlLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgbm9kZS5ocmVmID0gcGF0aDtcbiAgICAgIGlmIChpbm5lckNvbnRlbnQpIHtcbiAgICAgICAgbm9kZS5pbm5lckhUTUwgPSBpbm5lckNvbnRlbnQ7XG4gICAgICB9XG4gICAgICB0aGlzLmRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKG5vZGUpO1xuICAgICAgY29uc3QgaXRlbTogTnVMYXp5UmVzdWx0ID0ge1xuICAgICAgICBwYXRoLFxuICAgICAgICBzdGF0dXM6ICdvaycsXG4gICAgICAgIHR5cGU6ICdzdHlsZScsXG4gICAgICB9O1xuICAgICAgdGhpcy5jYWNoZWRbcGF0aF0gPSBpdGVtO1xuICAgICAgcmVzb2x2ZShpdGVtKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbGF6eS9sYXp5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFjLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFxQi9DLE1BQU0sT0FBTyxhQUFhO0lBS3hCLFlBQXNDLEdBQVE7UUFBUixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBSnRDLFNBQUksR0FBK0IsRUFBRSxDQUFDO1FBQ3RDLFdBQU0sR0FBb0MsRUFBRSxDQUFDO1FBQzdDLFlBQU8sR0FBb0MsSUFBSSxlQUFlLENBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBRTFDLENBQUM7SUFFMUMsUUFBUSxDQUFDLEtBQWdEO1FBQy9ELEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pCO1FBQ0QsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBMkIsRUFBRSxFQUFFO1lBQy9DLE1BQU0sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFvQixDQUFDO1lBQ3pFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFD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QUcsVUFBVSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLElBQUksWUFBWSxFQUFFO2dCQUNoQixJQUFJLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQzthQUMvQjtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNELE1BQU0sSUFBSSxHQUFpQjtnQkFDekIsSUFBSTtnQkFDSixNQUFNLEVBQUUsSUFBSTtnQkFDWixJQUFJLEVBQUUsT0FBTzthQUNkLENBQUM7WUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztZQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7OztZQXpKRixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7Ozs7Ozs7OzRDQU1uQixNQUFNLFNBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBwaXBlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHNoYXJlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBOdUxhenlSZXNvdXJjZXNUeXBlID0gJ3NjcmlwdCcgfCAnc3R5bGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE51TGF6eVJlc291cmNlcyB7XG4gIHBhdGg6IHN0cmluZztcbiAgdHlwZTogTnVMYXp5UmVzb3VyY2VzVHlwZTtcbiAgLyoqXG4gICAqIOWbnuiwg+WQjeensFxuICAgKi9cbiAgY2FsbGJhY2s/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTnVMYXp5UmVzdWx0IHtcbiAgcGF0aDogc3RyaW5nO1xuICBzdGF0dXM6ICdvaycgfCAnZXJyb3InIHwgJ2xvYWRpbmcnO1xuICB0eXBlPzogTnVMYXp5UmVzb3VyY2VzVHlwZTtcbiAgZXJyb3I/OiB7fTtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBOdUxhenlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBsaXN0OiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICBwcml2YXRlIGNhY2hlZDogeyBba2V5OiBzdHJpbmddOiBOdUxhenlSZXN1bHQgfSA9IHt9O1xuICBwcml2YXRlIF9ub3RpZnk6IEJlaGF2aW9yU3ViamVjdDxOdUxhenlSZXN1bHRbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE51TGF6eVJlc3VsdFtdPihbXSk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2M6IGFueSkge31cblxuICBwcml2YXRlIGZpeFBhdGhzKHBhdGhzPzogc3RyaW5nIHwgQXJyYXk8c3RyaW5nIHwgTnVMYXp5UmVzb3VyY2VzPik6IE51TGF6eVJlc291cmNlc1tdIHtcbiAgICBwYXRocyA9IHBhdGhzIHx8IFtdO1xuICAgIGlmICghQXJyYXkuaXNBcnJheShwYXRocykpIHtcbiAgICAgIHBhdGhzID0gW3BhdGhzXTtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGhzLm1hcCgocDogc3RyaW5nIHwgTnVMYXp5UmVzb3VyY2VzKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSAodHlwZW9mIHAgPT09ICdzdHJpbmcnID8geyBwYXRoOiBwIH0gOiBwKSBhcyBOdUxhenlSZXNvdXJjZXM7XG4gICAgICBpZiAoIXJlcy50eXBlKSB7XG4gICAgICAgIHJlcy50eXBlID0gcmVzLnBhdGguZW5kc1dpdGgoJy5qcycpIHx8IHJlcy5jYWxsYmFjayA/ICdzY3JpcHQnIDogJ3N0eWxlJztcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXM7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTW9uaXRvciBmb3IgdGhlIGZpbmlzaGVkIG9mIGBwYXRoc2BcbiAgICpcbiAgICogLSBJdCdzIHJlY29tbWVuZGVkIHRvIHBhc3MgdGhlIHZhbHVlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgYGxvYWQoKWAgbWV0aG9kXG4gICAqL1xuICBtb25pdG9yKHBhdGhzPzogc3RyaW5nIHwgQXJyYXk8c3RyaW5nIHwgTnVMYXp5UmVzb3VyY2VzPik6IE9ic2VydmFibGU8TnVMYXp5UmVzdWx0W10+IHtcbiAgICBjb25zdCBsaWJzID0gdGhpcy5maXhQYXRocyhwYXRocyk7XG5cbiAgICBjb25zdCBwaXBlcyA9IFtzaGFyZSgpLCBmaWx0ZXIoKGxzOiBOdUxhenlSZXN1bHRbXSkgPT4gbHMubGVuZ3RoICE9PSAwKV07XG5cbiAgICBpZiAobGlicy5sZW5ndGggPiAwKSB7XG4gICAgICBwaXBlcy5wdXNoKFxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgKGxzOiBOdUxhenlSZXN1bHRbXSkgPT4gbHMubGVuZ3RoID09PSBsaWJzLmxlbmd0aCAmJiBscy5ldmVyeSh2ID0+IHYuc3RhdHVzID09PSAnb2snICYmIGxpYnMuZmluZChsdyA9PiBsdy5wYXRoID09PSB2LnBhdGgpKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX25vdGlmeS5hc09ic2VydmFibGUoKS5waXBlKHBpcGUuYXBwbHkodGhpcywgcGlwZXMgYXMgYW55KSBhcyBhbnkpO1xuICB9XG5cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5saXN0ID0ge307XG4gICAgdGhpcy5jYWNoZWQgPSB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIHRoZSBzcGVjaWZpZWQgcmVzb3VyY2VzLCBpbmNsdWRlcyBgLmpzYCwgYC5jc3NgXG4gICAqXG4gICAqIC0gVGhlIHJldHVybmVkIFByb21pc2UgZG9lcyBub3QgbWVhbiB0aGF0IGl0IHdhcyBzdWNjZXNzZnVsbHkgbG9hZGVkXG4gICAqIC0gWW91IGNhbiBtb25pdG9yIGxvYWQgaXMgc3VjY2VzcyB2aWEgYG1vbml0b3IoKWBcbiAgICovXG4gIGFzeW5jIGxvYWQocGF0aHM6IHN0cmluZyB8IEFycmF5PHN0cmluZyB8IE51TGF6eVJlc291cmNlcz4pOiBQcm9taXNlPE51TGF6eVJlc3VsdFtdPiB7XG4gICAgcGF0aHMgPSB0aGlzLmZpeFBhdGhzKHBhdGhzKTtcblxuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIChwYXRocyBhcyBOdUxhenlSZXNvdXJjZXNbXSkubWFwKHAgPT5cbiAgICAgICAgcC50eXBlID09PSAnc2NyaXB0JyA/IHRoaXMubG9hZFNjcmlwdChwLnBhdGgsIHsgY2FsbGJhY2s6IHAuY2FsbGJhY2sgfSkgOiB0aGlzLmxvYWRTdHlsZShwLnBhdGgpLFxuICAgICAgKSxcbiAgICApLnRoZW4ocmVzID0+IHtcbiAgICAgIHRoaXMuX25vdGlmeS5uZXh0KHJlcyk7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlcyk7XG4gICAgfSk7XG4gIH1cblxuICBsb2FkU2NyaXB0KHBhdGg6IHN0cmluZywgb3B0aW9ucz86IHsgaW5uZXJDb250ZW50Pzogc3RyaW5nOyBjYWxsYmFjaz86IHN0cmluZyB9KTogUHJvbWlzZTxOdUxhenlSZXN1bHQ+IHtcbiAgICBjb25zdCB7IGlubmVyQ29udGVudCB9ID0geyAuLi5vcHRpb25zIH07XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgaWYgKHRoaXMubGlzdFtwYXRoXSA9PT0gdHJ1ZSkge1xuICAgICAgICByZXNvbHZlKHsgLi4udGhpcy5jYWNoZWRbcGF0aF0sIHN0YXR1czogJ2xvYWRpbmcnIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMubGlzdFtwYXRoXSA9IHRydWU7XG4gICAgICBjb25zdCBvblN1Y2Nlc3MgPSAoaXRlbTogTnVMYXp5UmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChpdGVtLnN0YXR1cyA9PT0gJ29rJyAmJiBvcHRpb25zPy5jYWxsYmFjaykge1xuICAgICAgICAgICh3aW5kb3cgYXMgYW55KVtvcHRpb25zPy5jYWxsYmFja10gPSAoKSA9PiB7XG4gICAgICAgICAgICBvblN1Y2Nlc3NUcnV0aChpdGVtKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9uU3VjY2Vzc1RydXRoKGl0ZW0pO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3Qgb25TdWNjZXNzVHJ1dGggPSAoaXRlbTogTnVMYXp5UmVzdWx0KSA9PiB7XG4gICAgICAgIGl0ZW0udHlwZSA9ICdzY3JpcHQnO1xuICAgICAgICB0aGlzLmNhY2hlZFtwYXRoXSA9IGl0ZW07XG4gICAgICAgIHJlc29sdmUoaXRlbSk7XG4gICAgICAgIHRoaXMuX25vdGlmeS5uZXh0KFtpdGVtXSk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBub2RlID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgnc2NyaXB0JykgYXMgYW55O1xuICAgICAgbm9kZS50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgICBub2RlLnNyYyA9IHBhdGg7XG4gICAgICBub2RlLmNoYXJzZXQgPSAndXRmLTgnO1xuICAgICAgaWYgKGlubmVyQ29udGVudCkge1xuICAgICAgICBub2RlLmlubmVySFRNTCA9IGlubmVyQ29udGVudDtcbiAgICAgIH1cbiAgICAgIGlmIChub2RlLnJlYWR5U3RhdGUpIHtcbiAgICAgICAgLy8gSUVcbiAgICAgICAgbm9kZS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgaWYgKG5vZGUucmVhZHlTdGF0ZSA9PT0gJ2xvYWRlZCcgfHwgbm9kZS5yZWFkeVN0YXRlID09PSAnY29tcGxldGUnKSB7XG4gICAgICAgICAgICBub2RlLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7XG4gICAgICAgICAgICBvblN1Y2Nlc3Moe1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICBzdGF0dXM6ICdvaycsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBub2RlLm9ubG9hZCA9ICgpID0+XG4gICAgICAgICAgb25TdWNjZXNzKHtcbiAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICBzdGF0dXM6ICdvaycsXG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBub2RlLm9uZXJyb3IgPSAoZXJyb3I6IHt9KSA9PlxuICAgICAgICBvblN1Y2Nlc3Moe1xuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgICAgIGVycm9yLFxuICAgICAgICB9KTtcbiAgICAgIHRoaXMuZG9jLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQobm9kZSk7XG4gICAgfSk7XG4gIH1cblxuICBsb2FkU3R5bGUocGF0aDogc3RyaW5nLCBvcHRpb25zPzogeyByZWw/OiBzdHJpbmc7IGlubmVyQ29udGVudD86IHN0cmluZyB9KTogUHJvbWlzZTxOdUxhenlSZXN1bHQ+IHtcbiAgICBjb25zdCB7IHJlbCwgaW5uZXJDb250ZW50IH0gPSB7IHJlbDogJ3N0eWxlc2hlZXQnLCAuLi5vcHRpb25zIH07XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgaWYgKHRoaXMubGlzdFtwYXRoXSA9PT0gdHJ1ZSkge1xuICAgICAgICByZXNvbHZlKHRoaXMuY2FjaGVkW3BhdGhdKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmxpc3RbcGF0aF0gPSB0cnVlO1xuXG4gICAgICBjb25zdCBub2RlID0gdGhpcy5kb2MuY3JlYXRlRWxlbWVudCgnbGluaycpIGFzIEhUTUxMaW5rRWxlbWVudDtcbiAgICAgIG5vZGUucmVsID0gcmVsO1xuICAgICAgbm9kZS50eXBlID0gJ3RleHQvY3NzJztcbiAgICAgIG5vZGUuaHJlZiA9IHBhdGg7XG4gICAgICBpZiAoaW5uZXJDb250ZW50KSB7XG4gICAgICAgIG5vZGUuaW5uZXJIVE1MID0gaW5uZXJDb250ZW50O1xuICAgICAgfVxuICAgICAgdGhpcy5kb2MuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXS5hcHBlbmRDaGlsZChub2RlKTtcbiAgICAgIGNvbnN0IGl0ZW06IE51TGF6eVJlc3VsdCA9IHtcbiAgICAgICAgcGF0aCxcbiAgICAgICAgc3RhdHVzOiAnb2snLFxuICAgICAgICB0eXBlOiAnc3R5bGUnLFxuICAgICAgfTtcbiAgICAgIHRoaXMuY2FjaGVkW3BhdGhdID0gaXRlbTtcbiAgICAgIHJlc29sdmUoaXRlbSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,10 +1,5 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: ng-util-lazy.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
1
  /**
7
2
  * Generated bundle index. Do not edit.
8
3
  */
9
- export { NuLazyService } from './public-api';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdXRpbC1sYXp5LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xhenkvIiwic291cmNlcyI6WyJuZy11dGlsLWxhenkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFJQSw4QkFBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdXRpbC1sYXp5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbGF6eS9uZy11dGlsLWxhenkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,7 +1,2 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: public-api.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- export { NuLazyService } from './lazy.service';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYXp5LyIsInNvdXJjZXMiOlsicHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhCQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sYXp5LnNlcnZpY2UnO1xuIl19
1
+ export * from './lazy.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2xhenkvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9sYXp5LnNlcnZpY2UnO1xuIl19