@micropermit/client-angular 0.4.5-alpha1 → 0.5.0-alpha.0
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/{fesm2015/micropermit-client-angular.js → fesm2022/micropermit-client-angular.mjs} +354 -1513
- package/fesm2022/micropermit-client-angular.mjs.map +1 -0
- package/{micropermit-client-angular.d.ts → index.d.ts} +1 -0
- package/lib/components/errorindicator.component.d.ts +3 -0
- package/lib/components/loadingindicator.component.d.ts +3 -0
- package/lib/directives/call-link.directive.d.ts +3 -0
- package/lib/directives/linkfield.directive.d.ts +7 -4
- package/lib/directives/micro-link-validate.directive.d.ts +3 -0
- package/lib/link-field-paging-support.d.ts +1 -1
- package/lib/microclient.module.d.ts +10 -0
- package/lib/microclient.service.d.ts +3 -0
- package/lib/pipes/linkfield.pipe.d.ts +3 -0
- package/package.json +14 -12
- package/bundles/micropermit-client-angular.umd.js +0 -3315
- package/bundles/micropermit-client-angular.umd.js.map +0 -1
- package/bundles/micropermit-client-angular.umd.min.js +0 -16
- package/bundles/micropermit-client-angular.umd.min.js.map +0 -1
- package/esm2015/lib/components/errorindicator.component.js +0 -53
- package/esm2015/lib/components/loadingindicator.component.js +0 -49
- package/esm2015/lib/directives/call-link.directive.js +0 -110
- package/esm2015/lib/directives/linkfield.directive.js +0 -363
- package/esm2015/lib/directives/micro-link-validate.directive.js +0 -141
- package/esm2015/lib/error/microerror.js +0 -27
- package/esm2015/lib/link-field-paging-support.js +0 -318
- package/esm2015/lib/links/callablelink.js +0 -265
- package/esm2015/lib/links/linkfield.js +0 -289
- package/esm2015/lib/links/mock-linkfield.js +0 -42
- package/esm2015/lib/microclient.module.js +0 -54
- package/esm2015/lib/microclient.service.js +0 -515
- package/esm2015/lib/microobject.js +0 -222
- package/esm2015/lib/paramutils.js +0 -176
- package/esm2015/lib/pipes/linkfield.pipe.js +0 -53
- package/esm2015/micropermit-client-angular.js +0 -9
- package/esm2015/public_api.js +0 -23
- package/esm5/lib/components/errorindicator.component.js +0 -36
- package/esm5/lib/components/loadingindicator.component.js +0 -19
- package/esm5/lib/directives/call-link.directive.js +0 -112
- package/esm5/lib/directives/linkfield.directive.js +0 -420
- package/esm5/lib/directives/micro-link-validate.directive.js +0 -152
- package/esm5/lib/error/microerror.js +0 -31
- package/esm5/lib/link-field-paging-support.js +0 -387
- package/esm5/lib/links/callablelink.js +0 -336
- package/esm5/lib/links/linkfield.js +0 -369
- package/esm5/lib/links/mock-linkfield.js +0 -56
- package/esm5/lib/microclient.module.js +0 -61
- package/esm5/lib/microclient.service.js +0 -616
- package/esm5/lib/microobject.js +0 -296
- package/esm5/lib/paramutils.js +0 -228
- package/esm5/lib/pipes/linkfield.pipe.js +0 -60
- package/esm5/micropermit-client-angular.js +0 -9
- package/esm5/public_api.js +0 -23
- package/fesm2015/micropermit-client-angular.js.map +0 -1
- package/fesm5/micropermit-client-angular.js +0 -3116
- package/fesm5/micropermit-client-angular.js.map +0 -1
- package/micropermit-client-angular.metadata.json +0 -1
|
@@ -1,363 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import { Directive, Input, TemplateRef, ViewContainerRef, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';
|
|
6
|
-
import { LinkField } from '../links/linkfield';
|
|
7
|
-
import { MicroClientLoadingIndicatorComponent } from '../components/loadingindicator.component';
|
|
8
|
-
import { MicroClientErrorIndicatorComponent } from '../components/errorindicator.component';
|
|
9
|
-
import { finalize } from 'rxjs/operators';
|
|
10
|
-
/**
|
|
11
|
-
* @template T
|
|
12
|
-
*/
|
|
13
|
-
export class LinkFieldDirective {
|
|
14
|
-
/**
|
|
15
|
-
* @param {?} _viewContainer
|
|
16
|
-
* @param {?} _template
|
|
17
|
-
* @param {?} componentResolver
|
|
18
|
-
* @param {?} changeDetectorRef
|
|
19
|
-
*/
|
|
20
|
-
constructor(_viewContainer, _template, componentResolver, changeDetectorRef) {
|
|
21
|
-
this._viewContainer = _viewContainer;
|
|
22
|
-
this._template = _template;
|
|
23
|
-
this.componentResolver = componentResolver;
|
|
24
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
25
|
-
this.isDirty = true;
|
|
26
|
-
this.isLoading = false;
|
|
27
|
-
this.loadedResult = null;
|
|
28
|
-
this.hasResult = false;
|
|
29
|
-
this.subscription = null;
|
|
30
|
-
this.linkFieldDefaultErrorHandling = false;
|
|
31
|
-
this.linkFieldParams = null;
|
|
32
|
-
this._defaultLoadingComponent = componentResolver.resolveComponentFactory(MicroClientLoadingIndicatorComponent);
|
|
33
|
-
this._defaultErrorComponent = componentResolver.resolveComponentFactory(MicroClientErrorIndicatorComponent);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* @param {?} from
|
|
37
|
-
* @return {?}
|
|
38
|
-
*/
|
|
39
|
-
set linkFieldFrom(from) {
|
|
40
|
-
this._from = from;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* @param {?} loadingTemplate
|
|
44
|
-
* @return {?}
|
|
45
|
-
*/
|
|
46
|
-
set linkFieldLoadingTemplate(loadingTemplate) {
|
|
47
|
-
if (loadingTemplate) {
|
|
48
|
-
this._loadingTemplate = loadingTemplate;
|
|
49
|
-
}
|
|
50
|
-
this.updateIfDirty(true);
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* @param {?} errorTemplate
|
|
54
|
-
* @return {?}
|
|
55
|
-
*/
|
|
56
|
-
set linkFieldErrorTemplate(errorTemplate) {
|
|
57
|
-
if (errorTemplate) {
|
|
58
|
-
this._errorTemplate = errorTemplate;
|
|
59
|
-
}
|
|
60
|
-
this.updateIfDirty(true);
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* @param {?} value
|
|
64
|
-
* @return {?}
|
|
65
|
-
*/
|
|
66
|
-
set linkFieldTemplate(value) {
|
|
67
|
-
if (value) {
|
|
68
|
-
this._template = value;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* @private
|
|
73
|
-
* @return {?}
|
|
74
|
-
*/
|
|
75
|
-
load() {
|
|
76
|
-
if (this._from) {
|
|
77
|
-
if (this._from instanceof LinkField) {
|
|
78
|
-
this.setLoading(true);
|
|
79
|
-
this.lastObs = this._from.listenObs();
|
|
80
|
-
if (this.subscription) {
|
|
81
|
-
this.subscription.unsubscribe();
|
|
82
|
-
}
|
|
83
|
-
this.subscription = this.lastObs.pipe(finalize((/**
|
|
84
|
-
* @return {?}
|
|
85
|
-
*/
|
|
86
|
-
() => {
|
|
87
|
-
this.setLoading(false);
|
|
88
|
-
}))).subscribe((/**
|
|
89
|
-
* @param {?} loadedResult
|
|
90
|
-
* @return {?}
|
|
91
|
-
*/
|
|
92
|
-
(loadedResult) => {
|
|
93
|
-
this.setLoadedResult(loadedResult);
|
|
94
|
-
if (this.linkFieldValueChange) {
|
|
95
|
-
this.linkFieldValueChange(loadedResult);
|
|
96
|
-
}
|
|
97
|
-
}), (/**
|
|
98
|
-
* @param {?} loadError
|
|
99
|
-
* @return {?}
|
|
100
|
-
*/
|
|
101
|
-
(loadError) => {
|
|
102
|
-
if (!this.linkFieldDefaultErrorHandling) {
|
|
103
|
-
loadError.preventDefault();
|
|
104
|
-
}
|
|
105
|
-
this.setError(loadError);
|
|
106
|
-
}));
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
this.setLoadedResult(this._from);
|
|
110
|
-
// this.setLoadedResult(this._from);
|
|
111
|
-
// throw new Error('Can\'t use the linkField directive with a from value which isn\'t an instance of LinkField');
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* @return {?}
|
|
117
|
-
*/
|
|
118
|
-
ngDoCheck() {
|
|
119
|
-
this.updateIfDirty();
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* @return {?}
|
|
123
|
-
*/
|
|
124
|
-
ngOnDestroy() {
|
|
125
|
-
this.clear();
|
|
126
|
-
}
|
|
127
|
-
/**
|
|
128
|
-
* @param {?} changes
|
|
129
|
-
* @return {?}
|
|
130
|
-
*/
|
|
131
|
-
ngOnChanges(changes) {
|
|
132
|
-
if (changes.linkFieldFrom) {
|
|
133
|
-
if (!(this._from instanceof LinkField)) {
|
|
134
|
-
this._from = LinkField.from((/** @type {?} */ (this._from)));
|
|
135
|
-
}
|
|
136
|
-
if (changes.linkFieldFrom.previousValue !== changes.linkFieldFrom.currentValue) {
|
|
137
|
-
this.clear();
|
|
138
|
-
this.load();
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
if (changes.linkFieldParams && this.linkFieldParams) {
|
|
142
|
-
/** @type {?} */
|
|
143
|
-
let link = (/** @type {?} */ (this._from));
|
|
144
|
-
this._from = link.withCallParams(this.linkFieldParams);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* @private
|
|
149
|
-
* @param {?} error
|
|
150
|
-
* @return {?}
|
|
151
|
-
*/
|
|
152
|
-
setError(error) {
|
|
153
|
-
this._viewContainer.remove();
|
|
154
|
-
if (this._errorTemplate) {
|
|
155
|
-
this._viewContainer.createEmbeddedView(this._errorTemplate, {
|
|
156
|
-
$implicit: error
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
/** @type {?} */
|
|
161
|
-
let errorComponentInstance = this._viewContainer.createComponent(this._defaultErrorComponent);
|
|
162
|
-
errorComponentInstance.instance['error'] = error;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* @private
|
|
167
|
-
* @param {?} loading
|
|
168
|
-
* @return {?}
|
|
169
|
-
*/
|
|
170
|
-
setLoading(loading) {
|
|
171
|
-
this.isLoading = loading;
|
|
172
|
-
if (this.isLoading) {
|
|
173
|
-
if (this._loadingTemplate) {
|
|
174
|
-
this._viewContainer.remove();
|
|
175
|
-
this._viewContainer.createEmbeddedView(this._loadingTemplate);
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
this._viewContainer.remove();
|
|
179
|
-
this._viewContainer.createComponent(this._defaultLoadingComponent);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* @private
|
|
185
|
-
* @param {?} result
|
|
186
|
-
* @return {?}
|
|
187
|
-
*/
|
|
188
|
-
setLoadedResult(result) {
|
|
189
|
-
this.hasResult = true;
|
|
190
|
-
this.loadedResult = result;
|
|
191
|
-
if (this.currentContext == null) {
|
|
192
|
-
this.currentContext = new LinkFieldContext(result);
|
|
193
|
-
this.isDirty = true;
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
this.currentContext.$implicit = result;
|
|
197
|
-
this.changeDetectorRef.markForCheck();
|
|
198
|
-
}
|
|
199
|
-
if (!this._viewContainer || !this._template) {
|
|
200
|
-
this.isDirty = true;
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
if (this.isDirty) {
|
|
204
|
-
this._viewContainer.remove();
|
|
205
|
-
this._viewContainer.createEmbeddedView(this._template, this.currentContext);
|
|
206
|
-
this.isDirty = false;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* @private
|
|
212
|
-
* @param {?=} ignoreDirty
|
|
213
|
-
* @return {?}
|
|
214
|
-
*/
|
|
215
|
-
updateIfDirty(ignoreDirty = false) {
|
|
216
|
-
if ((this.isDirty || ignoreDirty) && this._loadingTemplate && this._from && this._template && this._viewContainer) {
|
|
217
|
-
if (this.hasResult) {
|
|
218
|
-
this.setLoadedResult(this.loadedResult);
|
|
219
|
-
}
|
|
220
|
-
this.isDirty = false;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* @private
|
|
225
|
-
* @return {?}
|
|
226
|
-
*/
|
|
227
|
-
clear() {
|
|
228
|
-
this.hasResult = false;
|
|
229
|
-
this.loadedResult = null;
|
|
230
|
-
this.isDirty = false;
|
|
231
|
-
if (this.subscription) {
|
|
232
|
-
this.subscription.unsubscribe();
|
|
233
|
-
this.subscription = null;
|
|
234
|
-
}
|
|
235
|
-
this.lastObs = null;
|
|
236
|
-
this.currentContext = null;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
LinkFieldDirective.decorators = [
|
|
240
|
-
{ type: Directive, args: [{
|
|
241
|
-
selector: '[linkField][linkFieldFrom]'
|
|
242
|
-
},] }
|
|
243
|
-
];
|
|
244
|
-
/** @nocollapse */
|
|
245
|
-
LinkFieldDirective.ctorParameters = () => [
|
|
246
|
-
{ type: ViewContainerRef },
|
|
247
|
-
{ type: TemplateRef },
|
|
248
|
-
{ type: ComponentFactoryResolver },
|
|
249
|
-
{ type: ChangeDetectorRef }
|
|
250
|
-
];
|
|
251
|
-
LinkFieldDirective.propDecorators = {
|
|
252
|
-
linkFieldFrom: [{ type: Input }],
|
|
253
|
-
linkFieldLoadingTemplate: [{ type: Input }],
|
|
254
|
-
linkFieldErrorTemplate: [{ type: Input }],
|
|
255
|
-
linkFieldTemplate: [{ type: Input }],
|
|
256
|
-
linkFieldDefaultErrorHandling: [{ type: Input }],
|
|
257
|
-
linkFieldValueChange: [{ type: Input }],
|
|
258
|
-
linkFieldParams: [{ type: Input }]
|
|
259
|
-
};
|
|
260
|
-
if (false) {
|
|
261
|
-
/**
|
|
262
|
-
* @type {?}
|
|
263
|
-
* @private
|
|
264
|
-
*/
|
|
265
|
-
LinkFieldDirective.prototype._from;
|
|
266
|
-
/**
|
|
267
|
-
* @type {?}
|
|
268
|
-
* @private
|
|
269
|
-
*/
|
|
270
|
-
LinkFieldDirective.prototype._loadingTemplate;
|
|
271
|
-
/**
|
|
272
|
-
* @type {?}
|
|
273
|
-
* @private
|
|
274
|
-
*/
|
|
275
|
-
LinkFieldDirective.prototype._errorTemplate;
|
|
276
|
-
/**
|
|
277
|
-
* @type {?}
|
|
278
|
-
* @private
|
|
279
|
-
*/
|
|
280
|
-
LinkFieldDirective.prototype._defaultLoadingComponent;
|
|
281
|
-
/**
|
|
282
|
-
* @type {?}
|
|
283
|
-
* @private
|
|
284
|
-
*/
|
|
285
|
-
LinkFieldDirective.prototype._defaultErrorComponent;
|
|
286
|
-
/**
|
|
287
|
-
* @type {?}
|
|
288
|
-
* @private
|
|
289
|
-
*/
|
|
290
|
-
LinkFieldDirective.prototype.isDirty;
|
|
291
|
-
/**
|
|
292
|
-
* @type {?}
|
|
293
|
-
* @private
|
|
294
|
-
*/
|
|
295
|
-
LinkFieldDirective.prototype.isLoading;
|
|
296
|
-
/**
|
|
297
|
-
* @type {?}
|
|
298
|
-
* @private
|
|
299
|
-
*/
|
|
300
|
-
LinkFieldDirective.prototype.loadedResult;
|
|
301
|
-
/**
|
|
302
|
-
* @type {?}
|
|
303
|
-
* @private
|
|
304
|
-
*/
|
|
305
|
-
LinkFieldDirective.prototype.hasResult;
|
|
306
|
-
/**
|
|
307
|
-
* @type {?}
|
|
308
|
-
* @private
|
|
309
|
-
*/
|
|
310
|
-
LinkFieldDirective.prototype.lastObs;
|
|
311
|
-
/**
|
|
312
|
-
* @type {?}
|
|
313
|
-
* @private
|
|
314
|
-
*/
|
|
315
|
-
LinkFieldDirective.prototype.subscription;
|
|
316
|
-
/**
|
|
317
|
-
* @type {?}
|
|
318
|
-
* @private
|
|
319
|
-
*/
|
|
320
|
-
LinkFieldDirective.prototype.currentContext;
|
|
321
|
-
/** @type {?} */
|
|
322
|
-
LinkFieldDirective.prototype.linkFieldDefaultErrorHandling;
|
|
323
|
-
/** @type {?} */
|
|
324
|
-
LinkFieldDirective.prototype.linkFieldValueChange;
|
|
325
|
-
/** @type {?} */
|
|
326
|
-
LinkFieldDirective.prototype.linkFieldParams;
|
|
327
|
-
/**
|
|
328
|
-
* @type {?}
|
|
329
|
-
* @private
|
|
330
|
-
*/
|
|
331
|
-
LinkFieldDirective.prototype._viewContainer;
|
|
332
|
-
/**
|
|
333
|
-
* @type {?}
|
|
334
|
-
* @private
|
|
335
|
-
*/
|
|
336
|
-
LinkFieldDirective.prototype._template;
|
|
337
|
-
/**
|
|
338
|
-
* @type {?}
|
|
339
|
-
* @private
|
|
340
|
-
*/
|
|
341
|
-
LinkFieldDirective.prototype.componentResolver;
|
|
342
|
-
/**
|
|
343
|
-
* @type {?}
|
|
344
|
-
* @private
|
|
345
|
-
*/
|
|
346
|
-
LinkFieldDirective.prototype.changeDetectorRef;
|
|
347
|
-
}
|
|
348
|
-
/**
|
|
349
|
-
* @template T
|
|
350
|
-
*/
|
|
351
|
-
export class LinkFieldContext {
|
|
352
|
-
/**
|
|
353
|
-
* @param {?} $implicit
|
|
354
|
-
*/
|
|
355
|
-
constructor($implicit) {
|
|
356
|
-
this.$implicit = $implicit;
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
if (false) {
|
|
360
|
-
/** @type {?} */
|
|
361
|
-
LinkFieldContext.prototype.$implicit;
|
|
362
|
-
}
|
|
363
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2xpbmtmaWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBR2IsaUJBQWlCLEVBQy9CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUc3QyxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNeEMsTUFBTSxPQUFPLGtCQUFrQjs7Ozs7OztJQWlCM0IsWUFDWSxjQUFnQyxFQUNoQyxTQUEyQyxFQUMzQyxpQkFBMkMsRUFDM0MsaUJBQW9DO1FBSHBDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFrQztRQUMzQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQzNDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFkeEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsaUJBQVksR0FBTSxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdsQixpQkFBWSxHQUFpQixJQUFJLENBQUM7UUEyQzFDLGtDQUE2QixHQUFHLEtBQUssQ0FBQztRQU10QyxvQkFBZSxHQUFXLElBQUksQ0FBQztRQXZDM0IsSUFBSSxDQUFDLHdCQUF3QixHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLG9DQUFv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QzNCLDRDQUF3Qzs7Ozs7SUFDeEMsdUNBQW1EOzs7OztJQUNuRCwrQ0FBbUQ7Ozs7O0lBQ25ELCtDQUE0Qzs7Ozs7QUF5S3BELE1BQU0sT0FBTyxnQkFBZ0I7Ozs7SUFFekIsWUFBbUIsU0FBWTtRQUFaLGNBQVMsR0FBVCxTQUFTLENBQUc7SUFDL0IsQ0FBQztDQUNKOzs7SUFGZSxxQ0FBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBJbnB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBDb21wb25lbnRGYWN0b3J5LFxuICAgIERvQ2hlY2ssXG4gICAgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TGlua0ZpZWxkfSBmcm9tICcuLi9saW5rcy9saW5rZmllbGQnO1xuaW1wb3J0IHtNaWNyb09iamVjdH0gZnJvbSAnLi4vbWljcm9vYmplY3QnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtNaWNyb0NsaWVudExvYWRpbmdJbmRpY2F0b3JDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMvbG9hZGluZ2luZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHtNaWNyb0NsaWVudEVycm9ySW5kaWNhdG9yQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL2Vycm9yaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQge2ZpbmFsaXplfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge01pY3JvQ2xpZW50TG9hZEVycm9yfSBmcm9tICcuLi9taWNyb2NsaWVudC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbGlua0ZpZWxkXVtsaW5rRmllbGRGcm9tXSdcbn0pXG5leHBvcnQgY2xhc3MgTGlua0ZpZWxkRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgRG9DaGVjaywgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgX2Zyb206IExpbmtGaWVsZDxUPiB8IFQ7XG4gICAgcHJpdmF0ZSBfbG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHByaXZhdGUgX2Vycm9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHJpdmF0ZSBfZGVmYXVsdExvYWRpbmdDb21wb25lbnQ6IENvbXBvbmVudEZhY3Rvcnk8TWljcm9DbGllbnRMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIF9kZWZhdWx0RXJyb3JDb21wb25lbnQ6IENvbXBvbmVudEZhY3Rvcnk8TWljcm9DbGllbnRFcnJvckluZGljYXRvckNvbXBvbmVudD47XG5cbiAgICBwcml2YXRlIGlzRGlydHkgPSB0cnVlO1xuICAgIHByaXZhdGUgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBsb2FkZWRSZXN1bHQ6IFQgPSBudWxsO1xuICAgIHByaXZhdGUgaGFzUmVzdWx0ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGxhc3RPYnM6IE9ic2VydmFibGU8VD47XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XG5cbiAgICBwcml2YXRlIGN1cnJlbnRDb250ZXh0OiBMaW5rRmllbGRDb250ZXh0PFQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxMaW5rRmllbGRDb250ZXh0PFQ+PixcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0TG9hZGluZ0NvbXBvbmVudCA9IGNvbXBvbmVudFJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE1pY3JvQ2xpZW50TG9hZGluZ0luZGljYXRvckNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRFcnJvckNvbXBvbmVudCA9IGNvbXBvbmVudFJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE1pY3JvQ2xpZW50RXJyb3JJbmRpY2F0b3JDb21wb25lbnQpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxpbmtGaWVsZEZyb20oZnJvbTogTGlua0ZpZWxkPFQ+IHwgVCkge1xuICAgICAgICB0aGlzLl9mcm9tID0gZnJvbTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaW5rRmllbGRMb2FkaW5nVGVtcGxhdGUobG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIGlmIChsb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdUZW1wbGF0ZSA9IGxvYWRpbmdUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUlmRGlydHkodHJ1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGlua0ZpZWxkRXJyb3JUZW1wbGF0ZShlcnJvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIGlmIChlcnJvclRlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnJvclRlbXBsYXRlID0gZXJyb3JUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUlmRGlydHkodHJ1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGlua0ZpZWxkVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmPExpbmtGaWVsZENvbnRleHQ8VD4+KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgbGlua0ZpZWxkRGVmYXVsdEVycm9ySGFuZGxpbmcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgbGlua0ZpZWxkVmFsdWVDaGFuZ2U6IChUKSA9PiB2b2lkO1xuXG4gICAgQElucHV0KClcbiAgICBsaW5rRmllbGRQYXJhbXM6IG9iamVjdCA9IG51bGw7XG5cbiAgICBwcml2YXRlIGxvYWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9mcm9tKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fZnJvbSBpbnN0YW5jZW9mIExpbmtGaWVsZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RPYnMgPSB0aGlzLl9mcm9tLmxpc3Rlbk9icygpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubGFzdE9icy5waXBlKFxuICAgICAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICkuc3Vic2NyaWJlKChsb2FkZWRSZXN1bHQ6IFQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRMb2FkZWRSZXN1bHQobG9hZGVkUmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubGlua0ZpZWxkVmFsdWVDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlua0ZpZWxkVmFsdWVDaGFuZ2UobG9hZGVkUmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIChsb2FkRXJyb3I6IE1pY3JvQ2xpZW50TG9hZEVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5saW5rRmllbGREZWZhdWx0RXJyb3JIYW5kbGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZEVycm9yLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRFcnJvcihsb2FkRXJyb3IpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRlZFJlc3VsdCh0aGlzLl9mcm9tKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnNldExvYWRlZFJlc3VsdCh0aGlzLl9mcm9tKTtcbiAgICAgICAgICAgICAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ0NhblxcJ3QgdXNlIHRoZSBsaW5rRmllbGQgZGlyZWN0aXZlIHdpdGggYSBmcm9tIHZhbHVlIHdoaWNoIGlzblxcJ3QgYW4gaW5zdGFuY2Ugb2YgTGlua0ZpZWxkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgdGhpcy51cGRhdGVJZkRpcnR5KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmxpbmtGaWVsZEZyb20pIHtcbiAgICAgICAgICAgIGlmICghKHRoaXMuX2Zyb20gaW5zdGFuY2VvZiBMaW5rRmllbGQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZnJvbSA9IExpbmtGaWVsZC5mcm9tKHRoaXMuX2Zyb20gYXMgYW55KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjaGFuZ2VzLmxpbmtGaWVsZEZyb20ucHJldmlvdXNWYWx1ZSAhPT0gY2hhbmdlcy5saW5rRmllbGRGcm9tLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGFuZ2VzLmxpbmtGaWVsZFBhcmFtcyAmJiB0aGlzLmxpbmtGaWVsZFBhcmFtcykge1xuICAgICAgICAgICAgbGV0IGxpbmsgPSB0aGlzLl9mcm9tIGFzIExpbmtGaWVsZDxUPjtcbiAgICAgICAgICAgIHRoaXMuX2Zyb20gPSBsaW5rLndpdGhDYWxsUGFyYW1zKHRoaXMubGlua0ZpZWxkUGFyYW1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RXJyb3IoZXJyb3I6IE1pY3JvQ2xpZW50TG9hZEVycm9yKSB7XG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIucmVtb3ZlKCk7XG4gICAgICAgIGlmICh0aGlzLl9lcnJvclRlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl9lcnJvclRlbXBsYXRlLCB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBlcnJvclxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgZXJyb3JDb21wb25lbnRJbnN0YW5jZSA9IHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KHRoaXMuX2RlZmF1bHRFcnJvckNvbXBvbmVudCk7XG4gICAgICAgICAgICBlcnJvckNvbXBvbmVudEluc3RhbmNlLmluc3RhbmNlWydlcnJvciddID0gZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHByaXZhdGUgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gbG9hZGluZztcbiAgICAgICAgaWYgKHRoaXMuaXNMb2FkaW5nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fbG9hZGluZ1RlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl9sb2FkaW5nVGVtcGxhdGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KHRoaXMuX2RlZmF1bHRMb2FkaW5nQ29tcG9uZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TG9hZGVkUmVzdWx0KHJlc3VsdDogVCkge1xuICAgICAgICB0aGlzLmhhc1Jlc3VsdCA9IHRydWU7XG4gICAgICAgIHRoaXMubG9hZGVkUmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50Q29udGV4dCA9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDb250ZXh0ID0gbmV3IExpbmtGaWVsZENvbnRleHQ8VD4ocmVzdWx0KTtcbiAgICAgICAgICAgIHRoaXMuaXNEaXJ0eSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDb250ZXh0LiRpbXBsaWNpdCA9IHJlc3VsdDtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl92aWV3Q29udGFpbmVyIHx8ICF0aGlzLl90ZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5pc0RpcnR5ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRGlydHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlLCB0aGlzLmN1cnJlbnRDb250ZXh0KTtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRGlydHkgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSWZEaXJ0eShpZ25vcmVEaXJ0eTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICgodGhpcy5pc0RpcnR5IHx8IGlnbm9yZURpcnR5KSAmJiB0aGlzLl9sb2FkaW5nVGVtcGxhdGUgJiYgdGhpcy5fZnJvbSAmJiB0aGlzLl90ZW1wbGF0ZSAmJiB0aGlzLl92aWV3Q29udGFpbmVyKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRlZFJlc3VsdCh0aGlzLmxvYWRlZFJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmlzRGlydHkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuaGFzUmVzdWx0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubG9hZGVkUmVzdWx0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5pc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxhc3RPYnMgPSBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRDb250ZXh0ID0gbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaW5rRmllbGRDb250ZXh0PFQ+IHtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyAkaW1wbGljaXQ6IFQpIHtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import { Directive, forwardRef, Input } from '@angular/core';
|
|
6
|
-
import { FormGroup, NG_ASYNC_VALIDATORS } from '@angular/forms';
|
|
7
|
-
import { timer } from 'rxjs';
|
|
8
|
-
import { map, switchMap } from 'rxjs/operators';
|
|
9
|
-
import { CallableLink } from '../links/callablelink';
|
|
10
|
-
export class MicroLinkValidateDirective {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.UNSET = "";
|
|
13
|
-
this.microLinkValidateField = null;
|
|
14
|
-
this.microLinkValidateValue = this.UNSET;
|
|
15
|
-
this.microLinkValidateDebounce = 500;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* @param {?} control
|
|
19
|
-
* @return {?}
|
|
20
|
-
*/
|
|
21
|
-
validate(control) {
|
|
22
|
-
return timer(this.microLinkValidateDebounce).pipe(switchMap((/**
|
|
23
|
-
* @return {?}
|
|
24
|
-
*/
|
|
25
|
-
() => {
|
|
26
|
-
/** @type {?} */
|
|
27
|
-
let validateValue = this.microLinkValidateValue;
|
|
28
|
-
if (validateValue === this.UNSET) {
|
|
29
|
-
validateValue = control.value;
|
|
30
|
-
}
|
|
31
|
-
/** @type {?} */
|
|
32
|
-
let obj = {};
|
|
33
|
-
if (this.microLinkValidateField) {
|
|
34
|
-
obj[this.microLinkValidateField] = validateValue;
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
obj = validateValue;
|
|
38
|
-
}
|
|
39
|
-
return this.microLinkValidate.callWithObs(obj, null).pipe(map((/**
|
|
40
|
-
* @param {?} validationRes
|
|
41
|
-
* @return {?}
|
|
42
|
-
*/
|
|
43
|
-
validationRes => {
|
|
44
|
-
/** @type {?} */
|
|
45
|
-
let hasErrors = false;
|
|
46
|
-
if (this.microLinkValidateField) {
|
|
47
|
-
if (validationRes[this.microLinkValidateField] != null) {
|
|
48
|
-
hasErrors = true;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
for (let key in validationRes) {
|
|
53
|
-
if (validationRes[key] != null) {
|
|
54
|
-
hasErrors = true;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
if (hasErrors) {
|
|
59
|
-
this.result = validationRes;
|
|
60
|
-
return {
|
|
61
|
-
validateMicroLink: this.result
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
this.result = null;
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
})));
|
|
69
|
-
})));
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* @param {?} control
|
|
73
|
-
* @return {?}
|
|
74
|
-
*/
|
|
75
|
-
getControlName(control) {
|
|
76
|
-
/** @type {?} */
|
|
77
|
-
let controlName = null;
|
|
78
|
-
/** @type {?} */
|
|
79
|
-
let parent = control.parent;
|
|
80
|
-
// only such parent, which is FormGroup, has a dictionary
|
|
81
|
-
// with control-names as a key and a form-control as a value
|
|
82
|
-
if (parent instanceof FormGroup) {
|
|
83
|
-
// now we will iterate those keys (i.e. names of controls)
|
|
84
|
-
Object.keys(parent.controls).forEach((/**
|
|
85
|
-
* @param {?} name
|
|
86
|
-
* @return {?}
|
|
87
|
-
*/
|
|
88
|
-
(name) => {
|
|
89
|
-
// and compare the passed control and
|
|
90
|
-
// a child control of a parent - with provided name (we iterate them all)
|
|
91
|
-
if (control === parent.controls[name]) {
|
|
92
|
-
// both are same: control passed to Validator
|
|
93
|
-
// and this child - are the same references
|
|
94
|
-
controlName = name;
|
|
95
|
-
}
|
|
96
|
-
}));
|
|
97
|
-
}
|
|
98
|
-
// we either found a name or simply return null
|
|
99
|
-
return controlName;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
MicroLinkValidateDirective.decorators = [
|
|
103
|
-
{ type: Directive, args: [{
|
|
104
|
-
selector: '[microLinkValidate]',
|
|
105
|
-
providers: [
|
|
106
|
-
{
|
|
107
|
-
provide: NG_ASYNC_VALIDATORS,
|
|
108
|
-
useExisting: forwardRef((/**
|
|
109
|
-
* @return {?}
|
|
110
|
-
*/
|
|
111
|
-
() => MicroLinkValidateDirective)),
|
|
112
|
-
multi: true
|
|
113
|
-
}
|
|
114
|
-
],
|
|
115
|
-
exportAs: 'microValidator'
|
|
116
|
-
},] }
|
|
117
|
-
];
|
|
118
|
-
MicroLinkValidateDirective.propDecorators = {
|
|
119
|
-
microLinkValidate: [{ type: Input }],
|
|
120
|
-
microLinkValidateField: [{ type: Input }],
|
|
121
|
-
microLinkValidateValue: [{ type: Input }],
|
|
122
|
-
microLinkValidateDebounce: [{ type: Input }]
|
|
123
|
-
};
|
|
124
|
-
if (false) {
|
|
125
|
-
/**
|
|
126
|
-
* @type {?}
|
|
127
|
-
* @private
|
|
128
|
-
*/
|
|
129
|
-
MicroLinkValidateDirective.prototype.UNSET;
|
|
130
|
-
/** @type {?} */
|
|
131
|
-
MicroLinkValidateDirective.prototype.microLinkValidate;
|
|
132
|
-
/** @type {?} */
|
|
133
|
-
MicroLinkValidateDirective.prototype.microLinkValidateField;
|
|
134
|
-
/** @type {?} */
|
|
135
|
-
MicroLinkValidateDirective.prototype.microLinkValidateValue;
|
|
136
|
-
/** @type {?} */
|
|
137
|
-
MicroLinkValidateDirective.prototype.microLinkValidateDebounce;
|
|
138
|
-
/** @type {?} */
|
|
139
|
-
MicroLinkValidateDirective.prototype.result;
|
|
140
|
-
}
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm8tbGluay12YWxpZGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWljcm9wZXJtaXQvY2xpZW50LWFuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvZGlyZWN0aXZlcy9taWNyby1saW5rLXZhbGlkYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFFSCxTQUFTLEVBQ1QsbUJBQW1CLEVBR3RCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFhLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUMsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQWFuRCxNQUFNLE9BQU8sMEJBQTBCO0lBWHZDO1FBYVksVUFBSyxHQUFHLEVBQUUsQ0FBQTtRQU1sQiwyQkFBc0IsR0FBVyxJQUFJLENBQUE7UUFHckMsMkJBQXNCLEdBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQTtRQUd4Qyw4QkFBeUIsR0FBRyxHQUFHLENBQUM7SUF3RXBDLENBQUM7Ozs7O0lBbkVHLFFBQVEsQ0FBQyxPQUF3QjtRQUM3QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxJQUFJLENBQzdDLFNBQVM7OztRQUFDLEdBQUcsRUFBRTs7Z0JBQ1AsYUFBYSxHQUFHLElBQUksQ0FBQyxzQkFBc0I7WUFDL0MsSUFBSSxhQUFhLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDOUIsYUFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUE7YUFDaEM7O2dCQUVHLEdBQUcsR0FBRyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7Z0JBQzdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxhQUFhLENBQUE7YUFDbkQ7aUJBQU07Z0JBQ0gsR0FBRyxHQUFHLGFBQWEsQ0FBQTthQUN0QjtZQUVELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNyRCxHQUFHOzs7O1lBQUMsYUFBYSxDQUFDLEVBQUU7O29CQUNaLFNBQVMsR0FBRyxLQUFLO2dCQUNyQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtvQkFDN0IsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksSUFBSSxFQUFFO3dCQUNwRCxTQUFTLEdBQUcsSUFBSSxDQUFBO3FCQUNuQjtpQkFDSjtxQkFBTTtvQkFDSCxLQUFLLElBQUksR0FBRyxJQUFJLGFBQWEsRUFBRTt3QkFDM0IsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFOzRCQUM1QixTQUFTLEdBQUcsSUFBSSxDQUFBO3lCQUNuQjtxQkFDSjtpQkFDSjtnQkFDRCxJQUFJLFNBQVMsRUFBRTtvQkFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQTtvQkFDM0IsT0FBTzt3QkFDSCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTTtxQkFDakMsQ0FBQTtpQkFFSjtxQkFBTTtvQkFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQTtvQkFDbEIsT0FBTyxJQUFJLENBQUE7aUJBQ2Q7WUFDTCxDQUFDLEVBQUMsQ0FDTCxDQUFBO1FBQ0wsQ0FBQyxFQUFDLENBQ0wsQ0FBQTtJQUNMLENBQUM7Ozs7O0lBRUQsY0FBYyxDQUFDLE9BQXdCOztZQUMvQixXQUFXLEdBQUcsSUFBSTs7WUFDbEIsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNO1FBRTNCLHlEQUF5RDtRQUN6RCw0REFBNEQ7UUFDNUQsSUFBSSxNQUFNLFlBQVksU0FBUyxFQUFFO1lBQzdCLDBEQUEwRDtZQUMxRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPOzs7O1lBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDMUMscUNBQXFDO2dCQUNyQyx5RUFBeUU7Z0JBQ3pFLElBQUksT0FBTyxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ25DLDZDQUE2QztvQkFDN0MsNENBQTRDO29CQUM1QyxXQUFXLEdBQUcsSUFBSSxDQUFDO2lCQUN0QjtZQUNMLENBQUMsRUFBQyxDQUFDO1NBQ047UUFDRCwrQ0FBK0M7UUFDL0MsT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQzs7O1lBL0ZKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixTQUFTLEVBQUU7b0JBQ1A7d0JBQ0ksT0FBTyxFQUFFLG1CQUFtQjt3QkFDNUIsV0FBVyxFQUFFLFVBQVU7Ozt3QkFBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsRUFBQzt3QkFDekQsS0FBSyxFQUFFLElBQUk7cUJBQ2Q7aUJBQ0o7Z0JBQ0QsUUFBUSxFQUFFLGdCQUFnQjthQUM3Qjs7O2dDQUtJLEtBQUs7cUNBR0wsS0FBSztxQ0FHTCxLQUFLO3dDQUdMLEtBQUs7Ozs7Ozs7SUFYTiwyQ0FBa0I7O0lBRWxCLHVEQUNvQzs7SUFFcEMsNERBQ3FDOztJQUVyQyw0REFDd0M7O0lBRXhDLCtEQUNnQzs7SUFFaEMsNENBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGZvcndhcmRSZWYsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIEZvcm1Hcm91cCxcbiAgICBOR19BU1lOQ19WQUxJREFUT1JTLFxuICAgIFZhbGlkYXRpb25FcnJvcnMsXG4gICAgVmFsaWRhdG9yXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDYWxsYWJsZUxpbmt9IGZyb20gJy4uL2xpbmtzL2NhbGxhYmxlbGluayc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW21pY3JvTGlua1ZhbGlkYXRlXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX0FTWU5DX1ZBTElEQVRPUlMsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNaWNyb0xpbmtWYWxpZGF0ZURpcmVjdGl2ZSksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBleHBvcnRBczogJ21pY3JvVmFsaWRhdG9yJ1xufSlcbmV4cG9ydCBjbGFzcyBNaWNyb0xpbmtWYWxpZGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG5cbiAgICBwcml2YXRlIFVOU0VUID0gXCJcIlxuXG4gICAgQElucHV0KClcbiAgICBtaWNyb0xpbmtWYWxpZGF0ZTogQ2FsbGFibGVMaW5rPGFueT5cblxuICAgIEBJbnB1dCgpXG4gICAgbWljcm9MaW5rVmFsaWRhdGVGaWVsZDogc3RyaW5nID0gbnVsbFxuXG4gICAgQElucHV0KClcbiAgICBtaWNyb0xpbmtWYWxpZGF0ZVZhbHVlOiBhbnkgPSB0aGlzLlVOU0VUXG5cbiAgICBASW5wdXQoKVxuICAgIG1pY3JvTGlua1ZhbGlkYXRlRGVib3VuY2UgPSA1MDA7XG5cbiAgICBwdWJsaWMgcmVzdWx0OmFueTtcblxuXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xuICAgICAgICByZXR1cm4gdGltZXIodGhpcy5taWNyb0xpbmtWYWxpZGF0ZURlYm91bmNlKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsaWRhdGVWYWx1ZSA9IHRoaXMubWljcm9MaW5rVmFsaWRhdGVWYWx1ZVxuICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0ZVZhbHVlID09PSB0aGlzLlVOU0VUKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlVmFsdWUgPSBjb250cm9sLnZhbHVlXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IG9iaiA9IHt9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWljcm9MaW5rVmFsaWRhdGVGaWVsZCkge1xuICAgICAgICAgICAgICAgICAgICBvYmpbdGhpcy5taWNyb0xpbmtWYWxpZGF0ZUZpZWxkXSA9IHZhbGlkYXRlVmFsdWVcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvYmogPSB2YWxpZGF0ZVZhbHVlXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWljcm9MaW5rVmFsaWRhdGUuY2FsbFdpdGhPYnMob2JqLCBudWxsKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAodmFsaWRhdGlvblJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgaGFzRXJyb3JzID0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pY3JvTGlua1ZhbGlkYXRlRmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWRhdGlvblJlc1t0aGlzLm1pY3JvTGlua1ZhbGlkYXRlRmllbGRdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIHZhbGlkYXRpb25SZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRpb25SZXNba2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNFcnJvcnMgPSB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGFzRXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXN1bHQgPSB2YWxpZGF0aW9uUmVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVNaWNyb0xpbms6IHRoaXMucmVzdWx0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzdWx0ID0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIGdldENvbnRyb2xOYW1lKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgICAgICBsZXQgY29udHJvbE5hbWUgPSBudWxsO1xuICAgICAgICBsZXQgcGFyZW50ID0gY29udHJvbC5wYXJlbnQ7XG5cbiAgICAgICAgLy8gb25seSBzdWNoIHBhcmVudCwgd2hpY2ggaXMgRm9ybUdyb3VwLCBoYXMgYSBkaWN0aW9uYXJ5XG4gICAgICAgIC8vIHdpdGggY29udHJvbC1uYW1lcyBhcyBhIGtleSBhbmQgYSBmb3JtLWNvbnRyb2wgYXMgYSB2YWx1ZVxuICAgICAgICBpZiAocGFyZW50IGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgICAgICAvLyBub3cgd2Ugd2lsbCBpdGVyYXRlIHRob3NlIGtleXMgKGkuZS4gbmFtZXMgb2YgY29udHJvbHMpXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhwYXJlbnQuY29udHJvbHMpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBhbmQgY29tcGFyZSB0aGUgcGFzc2VkIGNvbnRyb2wgYW5kXG4gICAgICAgICAgICAgICAgLy8gYSBjaGlsZCBjb250cm9sIG9mIGEgcGFyZW50IC0gd2l0aCBwcm92aWRlZCBuYW1lICh3ZSBpdGVyYXRlIHRoZW0gYWxsKVxuICAgICAgICAgICAgICAgIGlmIChjb250cm9sID09PSBwYXJlbnQuY29udHJvbHNbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYm90aCBhcmUgc2FtZTogY29udHJvbCBwYXNzZWQgdG8gVmFsaWRhdG9yXG4gICAgICAgICAgICAgICAgICAgIC8vICBhbmQgdGhpcyBjaGlsZCAtIGFyZSB0aGUgc2FtZSByZWZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lID0gbmFtZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAvLyB3ZSBlaXRoZXIgZm91bmQgYSBuYW1lIG9yIHNpbXBseSByZXR1cm4gbnVsbFxuICAgICAgICByZXR1cm4gY29udHJvbE5hbWU7XG4gICAgfVxuXG59XG4iXX0=
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
export class MicroError {
|
|
6
|
-
}
|
|
7
|
-
if (false) {
|
|
8
|
-
/** @type {?} */
|
|
9
|
-
MicroError.prototype.timestamp;
|
|
10
|
-
/** @type {?} */
|
|
11
|
-
MicroError.prototype.errorMessage;
|
|
12
|
-
/** @type {?} */
|
|
13
|
-
MicroError.prototype.atService;
|
|
14
|
-
/** @type {?} */
|
|
15
|
-
MicroError.prototype.atEndpoint;
|
|
16
|
-
/** @type {?} */
|
|
17
|
-
MicroError.prototype.instanceID;
|
|
18
|
-
/** @type {?} */
|
|
19
|
-
MicroError.prototype.httpEquivCode;
|
|
20
|
-
/** @type {?} */
|
|
21
|
-
MicroError.prototype.cause;
|
|
22
|
-
/** @type {?} */
|
|
23
|
-
MicroError.prototype.errorID;
|
|
24
|
-
/** @type {?} */
|
|
25
|
-
MicroError.prototype.errorType;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm9lcnJvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9lcnJvci9taWNyb2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxNQUFNLE9BQU8sVUFBVTtDQVV0Qjs7O0lBVEcsK0JBQWtCOztJQUNsQixrQ0FBcUI7O0lBQ3JCLCtCQUFrQjs7SUFDbEIsZ0NBQW1COztJQUNuQixnQ0FBbUI7O0lBQ25CLG1DQUFzQjs7SUFDdEIsMkJBQWtCOztJQUNsQiw2QkFBZ0I7O0lBQ2hCLCtCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBNaWNyb0Vycm9yIHtcbiAgICB0aW1lc3RhbXA6IG51bWJlcjtcbiAgICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgICBhdFNlcnZpY2U6IHN0cmluZztcbiAgICBhdEVuZHBvaW50OiBzdHJpbmc7XG4gICAgaW5zdGFuY2VJRDogc3RyaW5nO1xuICAgIGh0dHBFcXVpdkNvZGU6IG51bWJlcjtcbiAgICBjYXVzZTogTWljcm9FcnJvcjtcbiAgICBlcnJvcklEOiBzdHJpbmc7XG4gICAgZXJyb3JUeXBlOiBBcnJheTxTdHJpbmc+O1xufVxuIl19
|