@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.
Files changed (55) hide show
  1. package/{fesm2015/micropermit-client-angular.js → fesm2022/micropermit-client-angular.mjs} +354 -1513
  2. package/fesm2022/micropermit-client-angular.mjs.map +1 -0
  3. package/{micropermit-client-angular.d.ts → index.d.ts} +1 -0
  4. package/lib/components/errorindicator.component.d.ts +3 -0
  5. package/lib/components/loadingindicator.component.d.ts +3 -0
  6. package/lib/directives/call-link.directive.d.ts +3 -0
  7. package/lib/directives/linkfield.directive.d.ts +7 -4
  8. package/lib/directives/micro-link-validate.directive.d.ts +3 -0
  9. package/lib/link-field-paging-support.d.ts +1 -1
  10. package/lib/microclient.module.d.ts +10 -0
  11. package/lib/microclient.service.d.ts +3 -0
  12. package/lib/pipes/linkfield.pipe.d.ts +3 -0
  13. package/package.json +14 -12
  14. package/bundles/micropermit-client-angular.umd.js +0 -3315
  15. package/bundles/micropermit-client-angular.umd.js.map +0 -1
  16. package/bundles/micropermit-client-angular.umd.min.js +0 -16
  17. package/bundles/micropermit-client-angular.umd.min.js.map +0 -1
  18. package/esm2015/lib/components/errorindicator.component.js +0 -53
  19. package/esm2015/lib/components/loadingindicator.component.js +0 -49
  20. package/esm2015/lib/directives/call-link.directive.js +0 -110
  21. package/esm2015/lib/directives/linkfield.directive.js +0 -363
  22. package/esm2015/lib/directives/micro-link-validate.directive.js +0 -141
  23. package/esm2015/lib/error/microerror.js +0 -27
  24. package/esm2015/lib/link-field-paging-support.js +0 -318
  25. package/esm2015/lib/links/callablelink.js +0 -265
  26. package/esm2015/lib/links/linkfield.js +0 -289
  27. package/esm2015/lib/links/mock-linkfield.js +0 -42
  28. package/esm2015/lib/microclient.module.js +0 -54
  29. package/esm2015/lib/microclient.service.js +0 -515
  30. package/esm2015/lib/microobject.js +0 -222
  31. package/esm2015/lib/paramutils.js +0 -176
  32. package/esm2015/lib/pipes/linkfield.pipe.js +0 -53
  33. package/esm2015/micropermit-client-angular.js +0 -9
  34. package/esm2015/public_api.js +0 -23
  35. package/esm5/lib/components/errorindicator.component.js +0 -36
  36. package/esm5/lib/components/loadingindicator.component.js +0 -19
  37. package/esm5/lib/directives/call-link.directive.js +0 -112
  38. package/esm5/lib/directives/linkfield.directive.js +0 -420
  39. package/esm5/lib/directives/micro-link-validate.directive.js +0 -152
  40. package/esm5/lib/error/microerror.js +0 -31
  41. package/esm5/lib/link-field-paging-support.js +0 -387
  42. package/esm5/lib/links/callablelink.js +0 -336
  43. package/esm5/lib/links/linkfield.js +0 -369
  44. package/esm5/lib/links/mock-linkfield.js +0 -56
  45. package/esm5/lib/microclient.module.js +0 -61
  46. package/esm5/lib/microclient.service.js +0 -616
  47. package/esm5/lib/microobject.js +0 -296
  48. package/esm5/lib/paramutils.js +0 -228
  49. package/esm5/lib/pipes/linkfield.pipe.js +0 -60
  50. package/esm5/micropermit-client-angular.js +0 -9
  51. package/esm5/public_api.js +0 -23
  52. package/fesm2015/micropermit-client-angular.js.map +0 -1
  53. package/fesm5/micropermit-client-angular.js +0 -3116
  54. package/fesm5/micropermit-client-angular.js.map +0 -1
  55. 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