@micropermit/client-angular 0.2.9-beta.2 → 0.2.9-beta.3

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.
@@ -2,7 +2,7 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
- import { Directive, Input, TemplateRef, ViewContainerRef, ComponentFactoryResolver, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';
5
+ import { Directive, Input, TemplateRef, ViewContainerRef, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';
6
6
  import { LinkField } from '../links/linkfield';
7
7
  import { MicroClientLoadingIndicatorComponent } from '../components/loadingindicator.component';
8
8
  import { MicroClientErrorIndicatorComponent } from '../components/errorindicator.component';
@@ -28,7 +28,6 @@ export class LinkFieldDirective {
28
28
  this.hasResult = false;
29
29
  this.subscription = null;
30
30
  this.linkFieldDefaultErrorHandling = false;
31
- this.linkLoaded = new EventEmitter();
32
31
  this._defaultLoadingComponent = componentResolver.resolveComponentFactory(MicroClientLoadingIndicatorComponent);
33
32
  this._defaultErrorComponent = componentResolver.resolveComponentFactory(MicroClientErrorIndicatorComponent);
34
33
  }
@@ -78,7 +77,7 @@ export class LinkFieldDirective {
78
77
  if (this._from) {
79
78
  if (this._from instanceof LinkField) {
80
79
  this.setLoading(true);
81
- this.lastObs = this._from.getObs();
80
+ this.lastObs = this._from.listenObs();
82
81
  this.subscription = this.lastObs.pipe(finalize((/**
83
82
  * @return {?}
84
83
  */
@@ -90,7 +89,9 @@ export class LinkFieldDirective {
90
89
  */
91
90
  (loadedResult) => {
92
91
  this.setLoadedResult(loadedResult);
93
- this.linkLoaded.emit(loadedResult);
92
+ if (this.linkFieldValueChange) {
93
+ this.linkFieldValueChange(loadedResult);
94
+ }
94
95
  }), (/**
95
96
  * @param {?} loadError
96
97
  * @return {?}
@@ -170,15 +171,22 @@ export class LinkFieldDirective {
170
171
  setLoadedResult(result) {
171
172
  this.hasResult = true;
172
173
  this.loadedResult = result;
173
- if (this._viewContainer && this._template) {
174
- /** @type {?} */
175
- const currentContext = new LinkFieldContext(result);
176
- this._viewContainer.remove();
177
- this._viewContainer.createEmbeddedView(this._template, currentContext);
174
+ if (this.currentContext == null) {
175
+ this.currentContext = new LinkFieldContext(result);
176
+ this.isDirty = true;
178
177
  }
179
178
  else {
179
+ this.currentContext.$implicit = result;
180
+ }
181
+ if (!this._viewContainer || !this._template) {
180
182
  this.isDirty = true;
181
183
  }
184
+ else {
185
+ if (this.isDirty) {
186
+ this._viewContainer.remove();
187
+ this._viewContainer.createEmbeddedView(this._template, this.currentContext);
188
+ }
189
+ }
182
190
  }
183
191
  /**
184
192
  * @private
@@ -226,7 +234,7 @@ LinkFieldDirective.propDecorators = {
226
234
  linkFieldErrorTemplate: [{ type: Input }],
227
235
  linkFieldTemplate: [{ type: Input }],
228
236
  linkFieldDefaultErrorHandling: [{ type: Input }],
229
- linkLoaded: [{ type: Output }]
237
+ linkFieldValueChange: [{ type: Input }]
230
238
  };
231
239
  if (false) {
232
240
  /**
@@ -284,10 +292,15 @@ if (false) {
284
292
  * @private
285
293
  */
286
294
  LinkFieldDirective.prototype.subscription;
295
+ /**
296
+ * @type {?}
297
+ * @private
298
+ */
299
+ LinkFieldDirective.prototype.currentContext;
287
300
  /** @type {?} */
288
301
  LinkFieldDirective.prototype.linkFieldDefaultErrorHandling;
289
302
  /** @type {?} */
290
- LinkFieldDirective.prototype.linkLoaded;
303
+ LinkFieldDirective.prototype.linkFieldValueChange;
291
304
  /**
292
305
  * @type {?}
293
306
  * @private
@@ -324,4 +337,4 @@ if (false) {
324
337
  /** @type {?} */
325
338
  LinkFieldContext.prototype.$implicit;
326
339
  }
327
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2xpbmtmaWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBR2IsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFDckQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRzdDLE9BQU8sRUFBQyxvQ0FBb0MsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzlGLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzFGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQU14QyxNQUFNLE9BQU8sa0JBQWtCOzs7Ozs7O0lBZ0IzQixZQUNZLGNBQWdDLEVBQ2hDLFNBQTJDLEVBQzNDLGlCQUEyQyxFQUMzQyxpQkFBb0M7UUFIcEMsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWtDO1FBQzNDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFDM0Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQVp4QyxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixpQkFBWSxHQUFNLElBQUksQ0FBQztRQUN2QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBR2xCLGlCQUFZLEdBQWlCLElBQUksQ0FBQztRQTJDMUMsa0NBQTZCLEdBQUcsS0FBSyxDQUFDO1FBR3RDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO1FBdEMvQixJQUFJLENBQUMsd0JBQXdCLEdBQUcsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUNoSCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsa0NBQWtDLENBQUMsQ0FBQztJQUNoSCxDQUFDOzs7OztJQUVELElBQ0ksYUFBYSxDQUFDLElBQWtCO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDOzs7OztJQUVELElBQ0ksd0JBQXdCLENBQUMsZUFBaUM7UUFDMUQsSUFBSSxlQUFlLEVBQUU7WUFDakIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztTQUMzQztRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7Ozs7SUFFRCxJQUNJLHNCQUFzQixDQUFDLGFBQStCO1FBQ3RELElBQUksYUFBYSxFQUFFO1lBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7U0FDdkM7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7Ozs7O0lBRUQsSUFDSSxpQkFBaUIsQ0FBQyxLQUF1QztRQUN6RCxJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1NBQzFCO0lBQ0wsQ0FBQzs7Ozs7SUFRTyxJQUFJO1FBQ1IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsS0FBSyxZQUFZLFNBQVMsRUFBRTtnQkFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNqQyxRQUFROzs7Z0JBQUMsR0FBRyxFQUFFO29CQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLENBQUMsRUFBQyxDQUNMLENBQUMsU0FBUzs7OztnQkFBQyxDQUFDLFlBQWUsRUFBRSxFQUFFO29CQUM1QixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDdkMsQ0FBQzs7OztnQkFBRSxDQUFDLFNBQStCLEVBQUUsRUFBRTtvQkFDbkMsSUFBRyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBQzt3QkFDbkMsU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO3FCQUM5QjtvQkFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM3QixDQUFDLEVBQUMsQ0FBQzthQUNOO2lCQUFNO2dCQUNILElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNqQyxvQ0FBb0M7Z0JBQ3BDLGlIQUFpSDthQUNwSDtTQUNKO0lBQ0wsQ0FBQzs7OztJQUdELFNBQVM7UUFDTCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1osSUFBSSxJQUFJLENBQUMsS0FBSyxZQUFZLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3pFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNmO1NBQ0o7SUFDTCxDQUFDOzs7O0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDOzs7Ozs7SUFFTyxRQUFRLENBQUMsS0FBMkI7UUFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUN4RCxTQUFTLEVBQUUsS0FBSzthQUNuQixDQUFDLENBQUM7U0FDTjthQUFNOztnQkFDQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUM7WUFDN0Ysc0JBQXNCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUNwRDtJQUNMLENBQUM7Ozs7OztJQUdPLFVBQVUsQ0FBQyxPQUFnQjtRQUMvQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDakU7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7YUFDdEU7U0FDSjtJQUNMLENBQUM7Ozs7OztJQUVPLGVBQWUsQ0FBQyxNQUFTO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBQzNCLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFOztrQkFDakMsY0FBYyxHQUFHLElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDO1lBQ25ELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1NBQzFFO2FBQU07WUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUN2QjtJQUVMLENBQUM7Ozs7OztJQUVPLGFBQWEsQ0FBQyxjQUF1QixLQUFLO1FBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUMvRyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQzNDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7U0FDeEI7SUFDTCxDQUFDOzs7OztJQUVPLEtBQUs7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7OztZQWxLSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjthQUN6Qzs7OztZQWhCRyxnQkFBZ0I7WUFEaEIsV0FBVztZQUVYLHdCQUF3QjtZQUdiLGlCQUFpQjs7OzRCQXVDM0IsS0FBSzt1Q0FPTCxLQUFLO3FDQVFMLEtBQUs7Z0NBUUwsS0FBSzs0Q0FPTCxLQUFLO3lCQUdMLE1BQU07Ozs7Ozs7SUF6RFAsbUNBQWdDOzs7OztJQUNoQyw4Q0FBMkM7Ozs7O0lBQzNDLDRDQUF5Qzs7Ozs7SUFDekMsc0RBQXlGOzs7OztJQUN6RixvREFBcUY7Ozs7O0lBRXJGLHFDQUF1Qjs7Ozs7SUFDdkIsdUNBQTBCOzs7OztJQUMxQiwwQ0FBK0I7Ozs7O0lBQy9CLHVDQUEwQjs7Ozs7SUFFMUIscUNBQStCOzs7OztJQUMvQiwwQ0FBMEM7O0lBMEMxQywyREFDc0M7O0lBRXRDLHdDQUNtQzs7Ozs7SUEzQy9CLDRDQUF3Qzs7Ozs7SUFDeEMsdUNBQW1EOzs7OztJQUNuRCwrQ0FBbUQ7Ozs7O0lBQ25ELCtDQUE0Qzs7Ozs7QUE4SXBELE1BQU0sT0FBTyxnQkFBZ0I7Ozs7SUFFekIsWUFBbUIsU0FBWTtRQUFaLGNBQVMsR0FBVCxTQUFTLENBQUc7SUFDL0IsQ0FBQztDQUNKOzs7SUFGZSxxQ0FBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBJbnB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBDb21wb25lbnRGYWN0b3J5LFxuICAgIERvQ2hlY2ssXG4gICAgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xpbmtGaWVsZH0gZnJvbSAnLi4vbGlua3MvbGlua2ZpZWxkJztcbmltcG9ydCB7TWljcm9PYmplY3R9IGZyb20gJy4uL21pY3Jvb2JqZWN0JztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7TWljcm9DbGllbnRMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL2xvYWRpbmdpbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7TWljcm9DbGllbnRFcnJvckluZGljYXRvckNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9lcnJvcmluZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHtmaW5hbGl6ZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtNaWNyb0NsaWVudExvYWRFcnJvcn0gZnJvbSAnLi4vbWljcm9jbGllbnQuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2xpbmtGaWVsZF1bbGlua0ZpZWxkRnJvbV0nXG59KVxuZXhwb3J0IGNsYXNzIExpbmtGaWVsZERpcmVjdGl2ZTxUIGV4dGVuZHMgKG9iamVjdCB8IG9iamVjdFtdKT4gaW1wbGVtZW50cyBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuXG4gICAgcHJpdmF0ZSBfZnJvbTogTGlua0ZpZWxkPFQ+IHwgVDtcbiAgICBwcml2YXRlIF9sb2FkaW5nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHJpdmF0ZSBfZXJyb3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwcml2YXRlIF9kZWZhdWx0TG9hZGluZ0NvbXBvbmVudDogQ29tcG9uZW50RmFjdG9yeTxNaWNyb0NsaWVudExvYWRpbmdJbmRpY2F0b3JDb21wb25lbnQ+O1xuICAgIHByaXZhdGUgX2RlZmF1bHRFcnJvckNvbXBvbmVudDogQ29tcG9uZW50RmFjdG9yeTxNaWNyb0NsaWVudEVycm9ySW5kaWNhdG9yQ29tcG9uZW50PjtcblxuICAgIHByaXZhdGUgaXNEaXJ0eSA9IHRydWU7XG4gICAgcHJpdmF0ZSBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgICBwcml2YXRlIGxvYWRlZFJlc3VsdDogVCA9IG51bGw7XG4gICAgcHJpdmF0ZSBoYXNSZXN1bHQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgbGFzdE9iczogT2JzZXJ2YWJsZTxUPjtcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIF90ZW1wbGF0ZTogVGVtcGxhdGVSZWY8TGlua0ZpZWxkQ29udGV4dDxUPj4sXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdExvYWRpbmdDb21wb25lbnQgPSBjb21wb25lbnRSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShNaWNyb0NsaWVudExvYWRpbmdJbmRpY2F0b3JDb21wb25lbnQpO1xuICAgICAgICB0aGlzLl9kZWZhdWx0RXJyb3JDb21wb25lbnQgPSBjb21wb25lbnRSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShNaWNyb0NsaWVudEVycm9ySW5kaWNhdG9yQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaW5rRmllbGRGcm9tKGZyb206IExpbmtGaWVsZDxUPikge1xuICAgICAgICB0aGlzLl9mcm9tID0gZnJvbTtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaW5rRmllbGRMb2FkaW5nVGVtcGxhdGUobG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIGlmIChsb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdUZW1wbGF0ZSA9IGxvYWRpbmdUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUlmRGlydHkodHJ1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGlua0ZpZWxkRXJyb3JUZW1wbGF0ZShlcnJvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIGlmIChlcnJvclRlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnJvclRlbXBsYXRlID0gZXJyb3JUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUlmRGlydHkodHJ1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGlua0ZpZWxkVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmPExpbmtGaWVsZENvbnRleHQ8VD4+KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgbGlua0ZpZWxkRGVmYXVsdEVycm9ySGFuZGxpbmcgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGxpbmtMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgICBwcml2YXRlIGxvYWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9mcm9tKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fZnJvbSBpbnN0YW5jZW9mIExpbmtGaWVsZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RPYnMgPSB0aGlzLl9mcm9tLmdldE9icygpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5sYXN0T2JzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKS5zdWJzY3JpYmUoKGxvYWRlZFJlc3VsdDogVCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRlZFJlc3VsdChsb2FkZWRSZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpbmtMb2FkZWQuZW1pdChsb2FkZWRSZXN1bHQpO1xuICAgICAgICAgICAgICAgIH0sIChsb2FkRXJyb3I6IE1pY3JvQ2xpZW50TG9hZEVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLmxpbmtGaWVsZERlZmF1bHRFcnJvckhhbmRsaW5nKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRFcnJvci5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RXJyb3IobG9hZEVycm9yKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMb2FkZWRSZXN1bHQodGhpcy5fZnJvbSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5zZXRMb2FkZWRSZXN1bHQodGhpcy5fZnJvbSk7XG4gICAgICAgICAgICAgICAgLy8gdGhyb3cgbmV3IEVycm9yKCdDYW5cXCd0IHVzZSB0aGUgbGlua0ZpZWxkIGRpcmVjdGl2ZSB3aXRoIGEgZnJvbSB2YWx1ZSB3aGljaCBpc25cXCd0IGFuIGluc3RhbmNlIG9mIExpbmtGaWVsZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBuZ0RvQ2hlY2soKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSWZEaXJ0eSgpO1xuICAgICAgICBpZiAodGhpcy5fZnJvbSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2Zyb20gaW5zdGFuY2VvZiBMaW5rRmllbGQgJiYgdGhpcy5sYXN0T2JzICE9PSB0aGlzLl9mcm9tLmdldE9icygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RXJyb3IoZXJyb3I6IE1pY3JvQ2xpZW50TG9hZEVycm9yKSB7XG4gICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIucmVtb3ZlKCk7XG4gICAgICAgIGlmICh0aGlzLl9lcnJvclRlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl9lcnJvclRlbXBsYXRlLCB7XG4gICAgICAgICAgICAgICAgJGltcGxpY2l0OiBlcnJvclxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgZXJyb3JDb21wb25lbnRJbnN0YW5jZSA9IHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KHRoaXMuX2RlZmF1bHRFcnJvckNvbXBvbmVudCk7XG4gICAgICAgICAgICBlcnJvckNvbXBvbmVudEluc3RhbmNlLmluc3RhbmNlWydlcnJvciddID0gZXJyb3I7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIHByaXZhdGUgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gbG9hZGluZztcbiAgICAgICAgaWYgKHRoaXMuaXNMb2FkaW5nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fbG9hZGluZ1RlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl9sb2FkaW5nVGVtcGxhdGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KHRoaXMuX2RlZmF1bHRMb2FkaW5nQ29tcG9uZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TG9hZGVkUmVzdWx0KHJlc3VsdDogVCkge1xuICAgICAgICB0aGlzLmhhc1Jlc3VsdCA9IHRydWU7XG4gICAgICAgIHRoaXMubG9hZGVkUmVzdWx0ID0gcmVzdWx0O1xuICAgICAgICBpZiAodGhpcy5fdmlld0NvbnRhaW5lciAmJiB0aGlzLl90ZW1wbGF0ZSkge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudENvbnRleHQgPSBuZXcgTGlua0ZpZWxkQ29udGV4dChyZXN1bHQpO1xuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5yZW1vdmUoKTtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlLCBjdXJyZW50Q29udGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlzRGlydHkgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUlmRGlydHkoaWdub3JlRGlydHk6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAoKHRoaXMuaXNEaXJ0eSB8fCBpZ25vcmVEaXJ0eSkgJiYgdGhpcy5fbG9hZGluZ1RlbXBsYXRlICYmIHRoaXMuX2Zyb20gJiYgdGhpcy5fdGVtcGxhdGUgJiYgdGhpcy5fdmlld0NvbnRhaW5lcikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMb2FkZWRSZXN1bHQodGhpcy5sb2FkZWRSZXN1bHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyKCkge1xuICAgICAgICB0aGlzLmhhc1Jlc3VsdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvYWRlZFJlc3VsdCA9IG51bGw7XG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXN0T2JzID0gbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaW5rRmllbGRDb250ZXh0PFQgZXh0ZW5kcyAob2JqZWN0IHwgb2JqZWN0W10pPiB7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgJGltcGxpY2l0OiBUKSB7XG4gICAgfVxufVxuIl19
340
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2xpbmtmaWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBR2IsaUJBQWlCLEVBQy9CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUc3QyxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFNeEMsTUFBTSxPQUFPLGtCQUFrQjs7Ozs7OztJQWtCM0IsWUFDWSxjQUFnQyxFQUNoQyxTQUEyQyxFQUMzQyxpQkFBMkMsRUFDM0MsaUJBQW9DO1FBSHBDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFrQztRQUMzQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQzNDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFkeEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsaUJBQVksR0FBTSxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdsQixpQkFBWSxHQUFpQixJQUFJLENBQUM7UUE2QzFDLGtDQUE2QixHQUFHLEtBQUssQ0FBQztRQW5DbEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDaEgsSUFBSSxDQUFD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Z0JBQWdCO1lBRGhCLFdBQVc7WUFFWCx3QkFBd0I7WUFHYixpQkFBaUI7Ozs0QkF5QzNCLEtBQUs7dUNBT0wsS0FBSztxQ0FRTCxLQUFLO2dDQVFMLEtBQUs7NENBT0wsS0FBSzttQ0FHTCxLQUFLOzs7Ozs7O0lBM0ROLG1DQUFnQzs7Ozs7SUFDaEMsOENBQTJDOzs7OztJQUMzQyw0Q0FBeUM7Ozs7O0lBQ3pDLHNEQUF5Rjs7Ozs7SUFDekYsb0RBQXFGOzs7OztJQUVyRixxQ0FBdUI7Ozs7O0lBQ3ZCLHVDQUEwQjs7Ozs7SUFDMUIsMENBQStCOzs7OztJQUMvQix1Q0FBMEI7Ozs7O0lBRTFCLHFDQUErQjs7Ozs7SUFDL0IsMENBQTBDOzs7OztJQUUxQyw0Q0FBNEM7O0lBMEM1QywyREFDc0M7O0lBRXRDLGtEQUNrQzs7Ozs7SUEzQzlCLDRDQUF3Qzs7Ozs7SUFDeEMsdUNBQW1EOzs7OztJQUNuRCwrQ0FBbUQ7Ozs7O0lBQ25ELCtDQUE0Qzs7Ozs7QUFzSnBELE1BQU0sT0FBTyxnQkFBZ0I7Ozs7SUFFekIsWUFBbUIsU0FBWTtRQUFaLGNBQVMsR0FBVCxTQUFTLENBQUc7SUFDL0IsQ0FBQztDQUNKOzs7SUFGZSxxQ0FBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBJbnB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBDb21wb25lbnRGYWN0b3J5LFxuICAgIERvQ2hlY2ssXG4gICAgT25EZXN0cm95LCBDaGFuZ2VEZXRlY3RvclJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xpbmtGaWVsZH0gZnJvbSAnLi4vbGlua3MvbGlua2ZpZWxkJztcbmltcG9ydCB7TWljcm9PYmplY3R9IGZyb20gJy4uL21pY3Jvb2JqZWN0JztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7TWljcm9DbGllbnRMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL2xvYWRpbmdpbmRpY2F0b3IuY29tcG9uZW50JztcbmltcG9ydCB7TWljcm9DbGllbnRFcnJvckluZGljYXRvckNvbXBvbmVudH0gZnJvbSAnLi4vY29tcG9uZW50cy9lcnJvcmluZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHtmaW5hbGl6ZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtNaWNyb0NsaWVudExvYWRFcnJvcn0gZnJvbSAnLi4vbWljcm9jbGllbnQuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2xpbmtGaWVsZF1bbGlua0ZpZWxkRnJvbV0nXG59KVxuZXhwb3J0IGNsYXNzIExpbmtGaWVsZERpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIERvQ2hlY2ssIE9uRGVzdHJveSB7XG5cbiAgICBwcml2YXRlIF9mcm9tOiBMaW5rRmllbGQ8VD4gfCBUO1xuICAgIHByaXZhdGUgX2xvYWRpbmdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwcml2YXRlIF9lcnJvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHByaXZhdGUgX2RlZmF1bHRMb2FkaW5nQ29tcG9uZW50OiBDb21wb25lbnRGYWN0b3J5PE1pY3JvQ2xpZW50TG9hZGluZ0luZGljYXRvckNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBfZGVmYXVsdEVycm9yQ29tcG9uZW50OiBDb21wb25lbnRGYWN0b3J5PE1pY3JvQ2xpZW50RXJyb3JJbmRpY2F0b3JDb21wb25lbnQ+O1xuXG4gICAgcHJpdmF0ZSBpc0RpcnR5ID0gdHJ1ZTtcbiAgICBwcml2YXRlIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHByaXZhdGUgbG9hZGVkUmVzdWx0OiBUID0gbnVsbDtcbiAgICBwcml2YXRlIGhhc1Jlc3VsdCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBsYXN0T2JzOiBPYnNlcnZhYmxlPFQ+O1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBjdXJyZW50Q29udGV4dDogTGlua0ZpZWxkQ29udGV4dDxUPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIF90ZW1wbGF0ZTogVGVtcGxhdGVSZWY8TGlua0ZpZWxkQ29udGV4dDxUPj4sXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdExvYWRpbmdDb21wb25lbnQgPSBjb21wb25lbnRSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShNaWNyb0NsaWVudExvYWRpbmdJbmRpY2F0b3JDb21wb25lbnQpO1xuICAgICAgICB0aGlzLl9kZWZhdWx0RXJyb3JDb21wb25lbnQgPSBjb21wb25lbnRSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShNaWNyb0NsaWVudEVycm9ySW5kaWNhdG9yQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaW5rRmllbGRGcm9tKGZyb206IExpbmtGaWVsZDxUPikge1xuICAgICAgICB0aGlzLl9mcm9tID0gZnJvbTtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaW5rRmllbGRMb2FkaW5nVGVtcGxhdGUobG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIGlmIChsb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvYWRpbmdUZW1wbGF0ZSA9IGxvYWRpbmdUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUlmRGlydHkodHJ1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGlua0ZpZWxkRXJyb3JUZW1wbGF0ZShlcnJvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIGlmIChlcnJvclRlbXBsYXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnJvclRlbXBsYXRlID0gZXJyb3JUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZUlmRGlydHkodHJ1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGlua0ZpZWxkVGVtcGxhdGUodmFsdWU6IFRlbXBsYXRlUmVmPExpbmtGaWVsZENvbnRleHQ8VD4+KSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgbGlua0ZpZWxkRGVmYXVsdEVycm9ySGFuZGxpbmcgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgbGlua0ZpZWxkVmFsdWVDaGFuZ2U6IChUKSA9PiB2b2lkO1xuXG4gICAgcHJpdmF0ZSBsb2FkKCkge1xuICAgICAgICBpZiAodGhpcy5fZnJvbSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2Zyb20gaW5zdGFuY2VvZiBMaW5rRmllbGQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0T2JzID0gdGhpcy5fZnJvbS5saXN0ZW5PYnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubGFzdE9icy5waXBlKFxuICAgICAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICkuc3Vic2NyaWJlKChsb2FkZWRSZXN1bHQ6IFQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRMb2FkZWRSZXN1bHQobG9hZGVkUmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubGlua0ZpZWxkVmFsdWVDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGlua0ZpZWxkVmFsdWVDaGFuZ2UobG9hZGVkUmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIChsb2FkRXJyb3I6IE1pY3JvQ2xpZW50TG9hZEVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5saW5rRmllbGREZWZhdWx0RXJyb3JIYW5kbGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZEVycm9yLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRFcnJvcihsb2FkRXJyb3IpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRlZFJlc3VsdCh0aGlzLl9mcm9tKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnNldExvYWRlZFJlc3VsdCh0aGlzLl9mcm9tKTtcbiAgICAgICAgICAgICAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ0NhblxcJ3QgdXNlIHRoZSBsaW5rRmllbGQgZGlyZWN0aXZlIHdpdGggYSBmcm9tIHZhbHVlIHdoaWNoIGlzblxcJ3QgYW4gaW5zdGFuY2Ugb2YgTGlua0ZpZWxkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgdGhpcy51cGRhdGVJZkRpcnR5KCk7XG4gICAgICAgIGlmICh0aGlzLl9mcm9tKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fZnJvbSBpbnN0YW5jZW9mIExpbmtGaWVsZCAmJiB0aGlzLmxhc3RPYnMgIT09IHRoaXMuX2Zyb20uZ2V0T2JzKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRFcnJvcihlcnJvcjogTWljcm9DbGllbnRMb2FkRXJyb3IpIHtcbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5yZW1vdmUoKTtcbiAgICAgICAgaWYgKHRoaXMuX2Vycm9yVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX2Vycm9yVGVtcGxhdGUsIHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGVycm9yXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBlcnJvckNvbXBvbmVudEluc3RhbmNlID0gdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodGhpcy5fZGVmYXVsdEVycm9yQ29tcG9uZW50KTtcbiAgICAgICAgICAgIGVycm9yQ29tcG9uZW50SW5zdGFuY2UuaW5zdGFuY2VbJ2Vycm9yJ10gPSBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBsb2FkaW5nO1xuICAgICAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9sb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX2xvYWRpbmdUZW1wbGF0ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodGhpcy5fZGVmYXVsdExvYWRpbmdDb21wb25lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRMb2FkZWRSZXN1bHQocmVzdWx0OiBUKSB7XG4gICAgICAgIHRoaXMuaGFzUmVzdWx0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sb2FkZWRSZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRDb250ZXh0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudENvbnRleHQgPSBuZXcgTGlua0ZpZWxkQ29udGV4dDxUPihyZXN1bHQpO1xuICAgICAgICAgICAgdGhpcy5pc0RpcnR5ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudENvbnRleHQuJGltcGxpY2l0ID0gcmVzdWx0O1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fdmlld0NvbnRhaW5lciB8fCAhdGhpcy5fdGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuaXNEaXJ0eSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5pc0RpcnR5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZSwgdGhpcy5jdXJyZW50Q29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUlmRGlydHkoaWdub3JlRGlydHk6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAoKHRoaXMuaXNEaXJ0eSB8fCBpZ25vcmVEaXJ0eSkgJiYgdGhpcy5fbG9hZGluZ1RlbXBsYXRlICYmIHRoaXMuX2Zyb20gJiYgdGhpcy5fdGVtcGxhdGUgJiYgdGhpcy5fdmlld0NvbnRhaW5lcikge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzUmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMb2FkZWRSZXN1bHQodGhpcy5sb2FkZWRSZXN1bHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyKCkge1xuICAgICAgICB0aGlzLmhhc1Jlc3VsdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmxvYWRlZFJlc3VsdCA9IG51bGw7XG4gICAgICAgIHRoaXMuaXNEaXJ0eSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYXN0T2JzID0gbnVsbDtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaW5rRmllbGRDb250ZXh0PFQ+IHtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyAkaW1wbGljaXQ6IFQpIHtcbiAgICB9XG59XG4iXX0=
@@ -2,7 +2,7 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
- import { Directive, Input, TemplateRef, ViewContainerRef, ComponentFactoryResolver, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';
5
+ import { Directive, Input, TemplateRef, ViewContainerRef, ComponentFactoryResolver, ChangeDetectorRef } from '@angular/core';
6
6
  import { LinkField } from '../links/linkfield';
7
7
  import { MicroClientLoadingIndicatorComponent } from '../components/loadingindicator.component';
8
8
  import { MicroClientErrorIndicatorComponent } from '../components/errorindicator.component';
@@ -22,7 +22,6 @@ var LinkFieldDirective = /** @class */ (function () {
22
22
  this.hasResult = false;
23
23
  this.subscription = null;
24
24
  this.linkFieldDefaultErrorHandling = false;
25
- this.linkLoaded = new EventEmitter();
26
25
  this._defaultLoadingComponent = componentResolver.resolveComponentFactory(MicroClientLoadingIndicatorComponent);
27
26
  this._defaultErrorComponent = componentResolver.resolveComponentFactory(MicroClientErrorIndicatorComponent);
28
27
  }
@@ -93,7 +92,7 @@ var LinkFieldDirective = /** @class */ (function () {
93
92
  if (this._from) {
94
93
  if (this._from instanceof LinkField) {
95
94
  this.setLoading(true);
96
- this.lastObs = this._from.getObs();
95
+ this.lastObs = this._from.listenObs();
97
96
  this.subscription = this.lastObs.pipe(finalize((/**
98
97
  * @return {?}
99
98
  */
@@ -105,7 +104,9 @@ var LinkFieldDirective = /** @class */ (function () {
105
104
  */
106
105
  function (loadedResult) {
107
106
  _this.setLoadedResult(loadedResult);
108
- _this.linkLoaded.emit(loadedResult);
107
+ if (_this.linkFieldValueChange) {
108
+ _this.linkFieldValueChange(loadedResult);
109
+ }
109
110
  }), (/**
110
111
  * @param {?} loadError
111
112
  * @return {?}
@@ -206,15 +207,22 @@ var LinkFieldDirective = /** @class */ (function () {
206
207
  function (result) {
207
208
  this.hasResult = true;
208
209
  this.loadedResult = result;
209
- if (this._viewContainer && this._template) {
210
- /** @type {?} */
211
- var currentContext = new LinkFieldContext(result);
212
- this._viewContainer.remove();
213
- this._viewContainer.createEmbeddedView(this._template, currentContext);
210
+ if (this.currentContext == null) {
211
+ this.currentContext = new LinkFieldContext(result);
212
+ this.isDirty = true;
214
213
  }
215
214
  else {
215
+ this.currentContext.$implicit = result;
216
+ }
217
+ if (!this._viewContainer || !this._template) {
216
218
  this.isDirty = true;
217
219
  }
220
+ else {
221
+ if (this.isDirty) {
222
+ this._viewContainer.remove();
223
+ this._viewContainer.createEmbeddedView(this._template, this.currentContext);
224
+ }
225
+ }
218
226
  };
219
227
  /**
220
228
  * @private
@@ -271,7 +279,7 @@ var LinkFieldDirective = /** @class */ (function () {
271
279
  linkFieldErrorTemplate: [{ type: Input }],
272
280
  linkFieldTemplate: [{ type: Input }],
273
281
  linkFieldDefaultErrorHandling: [{ type: Input }],
274
- linkLoaded: [{ type: Output }]
282
+ linkFieldValueChange: [{ type: Input }]
275
283
  };
276
284
  return LinkFieldDirective;
277
285
  }());
@@ -332,10 +340,15 @@ if (false) {
332
340
  * @private
333
341
  */
334
342
  LinkFieldDirective.prototype.subscription;
343
+ /**
344
+ * @type {?}
345
+ * @private
346
+ */
347
+ LinkFieldDirective.prototype.currentContext;
335
348
  /** @type {?} */
336
349
  LinkFieldDirective.prototype.linkFieldDefaultErrorHandling;
337
350
  /** @type {?} */
338
- LinkFieldDirective.prototype.linkLoaded;
351
+ LinkFieldDirective.prototype.linkFieldValueChange;
339
352
  /**
340
353
  * @type {?}
341
354
  * @private
@@ -377,4 +390,4 @@ if (false) {
377
390
  /** @type {?} */
378
391
  LinkFieldContext.prototype.$implicit;
379
392
  }
380
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2xpbmtmaWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBR2IsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFDckQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRzdDLE9BQU8sRUFBQyxvQ0FBb0MsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQzlGLE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQzFGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUd4QztJQW1CSSw0QkFDWSxjQUFnQyxFQUNoQyxTQUEyQyxFQUMzQyxpQkFBMkMsRUFDM0MsaUJBQW9DO1FBSHBDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxjQUFTLEdBQVQsU0FBUyxDQUFrQztRQUMzQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQzNDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFaeEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsaUJBQVksR0FBTSxJQUFJLENBQUM7UUFDdkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdsQixpQkFBWSxHQUFpQixJQUFJLENBQUM7UUEyQzFDLGtDQUE2QixHQUFHLEtBQUssQ0FBQztRQUd0QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztRQXRDL0IsSUFBSSxDQUFDLHdCQUF3QixHQUFHLGlCQUFpQixDQUFDLHVCQUF1QixDQUFD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QUs7MkNBT0wsS0FBSzt5Q0FRTCxLQUFLO29DQVFMLEtBQUs7Z0RBT0wsS0FBSzs2QkFHTCxNQUFNOztJQXFHWCx5QkFBQztDQUFBLEFBbktELElBbUtDO1NBaEtZLGtCQUFrQjs7Ozs7O0lBRTNCLG1DQUFnQzs7Ozs7SUFDaEMsOENBQTJDOzs7OztJQUMzQyw0Q0FBeUM7Ozs7O0lBQ3pDLHNEQUF5Rjs7Ozs7SUFDekYsb0RBQXFGOzs7OztJQUVyRixxQ0FBdUI7Ozs7O0lBQ3ZCLHVDQUEwQjs7Ozs7SUFDMUIsMENBQStCOzs7OztJQUMvQix1Q0FBMEI7Ozs7O0lBRTFCLHFDQUErQjs7Ozs7SUFDL0IsMENBQTBDOztJQTBDMUMsMkRBQ3NDOztJQUV0Qyx3Q0FDbUM7Ozs7O0lBM0MvQiw0Q0FBd0M7Ozs7O0lBQ3hDLHVDQUFtRDs7Ozs7SUFDbkQsK0NBQW1EOzs7OztJQUNuRCwrQ0FBNEM7Ozs7O0FBOElwRDs7OztJQUVJLDBCQUFtQixTQUFZO1FBQVosY0FBUyxHQUFULFNBQVMsQ0FBRztJQUMvQixDQUFDO0lBQ0wsdUJBQUM7QUFBRCxDQUFDLEFBSkQsSUFJQzs7Ozs7OztJQUZlLHFDQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgRG9DaGVjayxcbiAgICBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TGlua0ZpZWxkfSBmcm9tICcuLi9saW5rcy9saW5rZmllbGQnO1xuaW1wb3J0IHtNaWNyb09iamVjdH0gZnJvbSAnLi4vbWljcm9vYmplY3QnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtNaWNyb0NsaWVudExvYWRpbmdJbmRpY2F0b3JDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMvbG9hZGluZ2luZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHtNaWNyb0NsaWVudEVycm9ySW5kaWNhdG9yQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL2Vycm9yaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQge2ZpbmFsaXplfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge01pY3JvQ2xpZW50TG9hZEVycm9yfSBmcm9tICcuLi9taWNyb2NsaWVudC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbGlua0ZpZWxkXVtsaW5rRmllbGRGcm9tXSdcbn0pXG5leHBvcnQgY2xhc3MgTGlua0ZpZWxkRGlyZWN0aXZlPFQgZXh0ZW5kcyAob2JqZWN0IHwgb2JqZWN0W10pPiBpbXBsZW1lbnRzIERvQ2hlY2ssIE9uRGVzdHJveSB7XG5cbiAgICBwcml2YXRlIF9mcm9tOiBMaW5rRmllbGQ8VD4gfCBUO1xuICAgIHByaXZhdGUgX2xvYWRpbmdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwcml2YXRlIF9lcnJvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHByaXZhdGUgX2RlZmF1bHRMb2FkaW5nQ29tcG9uZW50OiBDb21wb25lbnRGYWN0b3J5PE1pY3JvQ2xpZW50TG9hZGluZ0luZGljYXRvckNvbXBvbmVudD47XG4gICAgcHJpdmF0ZSBfZGVmYXVsdEVycm9yQ29tcG9uZW50OiBDb21wb25lbnRGYWN0b3J5PE1pY3JvQ2xpZW50RXJyb3JJbmRpY2F0b3JDb21wb25lbnQ+O1xuXG4gICAgcHJpdmF0ZSBpc0RpcnR5ID0gdHJ1ZTtcbiAgICBwcml2YXRlIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHByaXZhdGUgbG9hZGVkUmVzdWx0OiBUID0gbnVsbDtcbiAgICBwcml2YXRlIGhhc1Jlc3VsdCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBsYXN0T2JzOiBPYnNlcnZhYmxlPFQ+O1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxMaW5rRmllbGRDb250ZXh0PFQ+PixcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0TG9hZGluZ0NvbXBvbmVudCA9IGNvbXBvbmVudFJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE1pY3JvQ2xpZW50TG9hZGluZ0luZGljYXRvckNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRFcnJvckNvbXBvbmVudCA9IGNvbXBvbmVudFJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE1pY3JvQ2xpZW50RXJyb3JJbmRpY2F0b3JDb21wb25lbnQpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxpbmtGaWVsZEZyb20oZnJvbTogTGlua0ZpZWxkPFQ+KSB7XG4gICAgICAgIHRoaXMuX2Zyb20gPSBmcm9tO1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMubG9hZCgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxpbmtGaWVsZExvYWRpbmdUZW1wbGF0ZShsb2FkaW5nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgaWYgKGxvYWRpbmdUZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5fbG9hZGluZ1RlbXBsYXRlID0gbG9hZGluZ1RlbXBsYXRlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlSWZEaXJ0eSh0cnVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaW5rRmllbGRFcnJvclRlbXBsYXRlKGVycm9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgaWYgKGVycm9yVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yVGVtcGxhdGUgPSBlcnJvclRlbXBsYXRlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlSWZEaXJ0eSh0cnVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaW5rRmllbGRUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWY8TGlua0ZpZWxkQ29udGV4dDxUPj4pIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl90ZW1wbGF0ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBsaW5rRmllbGREZWZhdWx0RXJyb3JIYW5kbGluZyA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgbGlua0xvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIHByaXZhdGUgbG9hZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2Zyb20pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9mcm9tIGluc3RhbmNlb2YgTGlua0ZpZWxkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMubGFzdE9icyA9IHRoaXMuX2Zyb20uZ2V0T2JzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmxhc3RPYnMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApLnN1YnNjcmliZSgobG9hZGVkUmVzdWx0OiBUKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGVkUmVzdWx0KGxvYWRlZFJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlua0xvYWRlZC5lbWl0KGxvYWRlZFJlc3VsdCk7XG4gICAgICAgICAgICAgICAgfSwgKGxvYWRFcnJvcjogTWljcm9DbGllbnRMb2FkRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYoIXRoaXMubGlua0ZpZWxkRGVmYXVsdEVycm9ySGFuZGxpbmcpe1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9hZEVycm9yLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRFcnJvcihsb2FkRXJyb3IpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRlZFJlc3VsdCh0aGlzLl9mcm9tKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnNldExvYWRlZFJlc3VsdCh0aGlzLl9mcm9tKTtcbiAgICAgICAgICAgICAgICAvLyB0aHJvdyBuZXcgRXJyb3IoJ0NhblxcJ3QgdXNlIHRoZSBsaW5rRmllbGQgZGlyZWN0aXZlIHdpdGggYSBmcm9tIHZhbHVlIHdoaWNoIGlzblxcJ3QgYW4gaW5zdGFuY2Ugb2YgTGlua0ZpZWxkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIG5nRG9DaGVjaygpIHtcbiAgICAgICAgdGhpcy51cGRhdGVJZkRpcnR5KCk7XG4gICAgICAgIGlmICh0aGlzLl9mcm9tKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fZnJvbSBpbnN0YW5jZW9mIExpbmtGaWVsZCAmJiB0aGlzLmxhc3RPYnMgIT09IHRoaXMuX2Zyb20uZ2V0T2JzKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRFcnJvcihlcnJvcjogTWljcm9DbGllbnRMb2FkRXJyb3IpIHtcbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5yZW1vdmUoKTtcbiAgICAgICAgaWYgKHRoaXMuX2Vycm9yVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX2Vycm9yVGVtcGxhdGUsIHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGVycm9yXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBlcnJvckNvbXBvbmVudEluc3RhbmNlID0gdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodGhpcy5fZGVmYXVsdEVycm9yQ29tcG9uZW50KTtcbiAgICAgICAgICAgIGVycm9yQ29tcG9uZW50SW5zdGFuY2UuaW5zdGFuY2VbJ2Vycm9yJ10gPSBlcnJvcjtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBsb2FkaW5nO1xuICAgICAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9sb2FkaW5nVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX2xvYWRpbmdUZW1wbGF0ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQodGhpcy5fZGVmYXVsdExvYWRpbmdDb21wb25lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRMb2FkZWRSZXN1bHQocmVzdWx0OiBUKSB7XG4gICAgICAgIHRoaXMuaGFzUmVzdWx0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5sb2FkZWRSZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIGlmICh0aGlzLl92aWV3Q29udGFpbmVyICYmIHRoaXMuX3RlbXBsYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Q29udGV4dCA9IG5ldyBMaW5rRmllbGRDb250ZXh0KHJlc3VsdCk7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fdGVtcGxhdGUsIGN1cnJlbnRDb250ZXh0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNEaXJ0eSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSWZEaXJ0eShpZ25vcmVEaXJ0eTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICgodGhpcy5pc0RpcnR5IHx8IGlnbm9yZURpcnR5KSAmJiB0aGlzLl9sb2FkaW5nVGVtcGxhdGUgJiYgdGhpcy5fZnJvbSAmJiB0aGlzLl90ZW1wbGF0ZSAmJiB0aGlzLl92aWV3Q29udGFpbmVyKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRlZFJlc3VsdCh0aGlzLmxvYWRlZFJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmlzRGlydHkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuaGFzUmVzdWx0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubG9hZGVkUmVzdWx0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5pc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxhc3RPYnMgPSBudWxsO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpbmtGaWVsZENvbnRleHQ8VCBleHRlbmRzIChvYmplY3QgfCBvYmplY3RbXSk+IHtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyAkaW1wbGljaXQ6IFQpIHtcbiAgICB9XG59XG4iXX0=
393
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BtaWNyb3Blcm1pdC9jbGllbnQtYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kaXJlY3RpdmVzL2xpbmtmaWVsZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFdBQVcsRUFDWCxnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBR2IsaUJBQWlCLEVBQy9CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUc3QyxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFHeEM7SUFxQkksNEJBQ1ksY0FBZ0MsRUFDaEMsU0FBMkMsRUFDM0MsaUJBQTJDLEVBQzNDLGlCQUFvQztRQUhwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDaEMsY0FBUyxHQUFULFNBQVMsQ0FBa0M7UUFDM0Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQUMzQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBZHhDLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQU0sSUFBSSxDQUFDO1FBQ3ZCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsaUJBQVksR0FBaUIsSUFBSSxDQUFDO1FBNkMxQyxrQ0FBNkIsR0FBRyxLQUFLLENBQUM7UUFuQ2xDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ2hILElBQUksQ0FBQyxzQkFBc0IsR0FBRyxpQkFBaUIsQ0FB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WSxHQUFHLElBQUksQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7O2dCQTVLSixTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtpQkFDekM7Ozs7Z0JBaEJHLGdCQUFnQjtnQkFEaEIsV0FBVztnQkFFWCx3QkFBd0I7Z0JBR2IsaUJBQWlCOzs7Z0NBeUMzQixLQUFLOzJDQU9MLEtBQUs7eUNBUUwsS0FBSztvQ0FRTCxLQUFLO2dEQU9MLEtBQUs7dUNBR0wsS0FBSzs7SUE2R1YseUJBQUM7Q0FBQSxBQTdLRCxJQTZLQztTQTFLWSxrQkFBa0I7Ozs7OztJQUUzQixtQ0FBZ0M7Ozs7O0lBQ2hDLDhDQUEyQzs7Ozs7SUFDM0MsNENBQXlDOzs7OztJQUN6QyxzREFBeUY7Ozs7O0lBQ3pGLG9EQUFxRjs7Ozs7SUFFckYscUNBQXVCOzs7OztJQUN2Qix1Q0FBMEI7Ozs7O0lBQzFCLDBDQUErQjs7Ozs7SUFDL0IsdUNBQTBCOzs7OztJQUUxQixxQ0FBK0I7Ozs7O0lBQy9CLDBDQUEwQzs7Ozs7SUFFMUMsNENBQTRDOztJQTBDNUMsMkRBQ3NDOztJQUV0QyxrREFDa0M7Ozs7O0lBM0M5Qiw0Q0FBd0M7Ozs7O0lBQ3hDLHVDQUFtRDs7Ozs7SUFDbkQsK0NBQW1EOzs7OztJQUNuRCwrQ0FBNEM7Ozs7O0FBc0pwRDs7OztJQUVJLDBCQUFtQixTQUFZO1FBQVosY0FBUyxHQUFULFNBQVMsQ0FBRztJQUMvQixDQUFDO0lBQ0wsdUJBQUM7QUFBRCxDQUFDLEFBSkQsSUFJQzs7Ozs7OztJQUZlLHFDQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgRG9DaGVjayxcbiAgICBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmLCBPdXRwdXQsIEV2ZW50RW1pdHRlclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TGlua0ZpZWxkfSBmcm9tICcuLi9saW5rcy9saW5rZmllbGQnO1xuaW1wb3J0IHtNaWNyb09iamVjdH0gZnJvbSAnLi4vbWljcm9vYmplY3QnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtNaWNyb0NsaWVudExvYWRpbmdJbmRpY2F0b3JDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMvbG9hZGluZ2luZGljYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHtNaWNyb0NsaWVudEVycm9ySW5kaWNhdG9yQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL2Vycm9yaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQge2ZpbmFsaXplfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge01pY3JvQ2xpZW50TG9hZEVycm9yfSBmcm9tICcuLi9taWNyb2NsaWVudC5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbGlua0ZpZWxkXVtsaW5rRmllbGRGcm9tXSdcbn0pXG5leHBvcnQgY2xhc3MgTGlua0ZpZWxkRGlyZWN0aXZlPFQ+IGltcGxlbWVudHMgRG9DaGVjaywgT25EZXN0cm95IHtcblxuICAgIHByaXZhdGUgX2Zyb206IExpbmtGaWVsZDxUPiB8IFQ7XG4gICAgcHJpdmF0ZSBfbG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHByaXZhdGUgX2Vycm9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcHJpdmF0ZSBfZGVmYXVsdExvYWRpbmdDb21wb25lbnQ6IENvbXBvbmVudEZhY3Rvcnk8TWljcm9DbGllbnRMb2FkaW5nSW5kaWNhdG9yQ29tcG9uZW50PjtcbiAgICBwcml2YXRlIF9kZWZhdWx0RXJyb3JDb21wb25lbnQ6IENvbXBvbmVudEZhY3Rvcnk8TWljcm9DbGllbnRFcnJvckluZGljYXRvckNvbXBvbmVudD47XG5cbiAgICBwcml2YXRlIGlzRGlydHkgPSB0cnVlO1xuICAgIHByaXZhdGUgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBsb2FkZWRSZXN1bHQ6IFQgPSBudWxsO1xuICAgIHByaXZhdGUgaGFzUmVzdWx0ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGxhc3RPYnM6IE9ic2VydmFibGU8VD47XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGw7XG5cbiAgICBwcml2YXRlIGN1cnJlbnRDb250ZXh0OiBMaW5rRmllbGRDb250ZXh0PFQ+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxMaW5rRmllbGRDb250ZXh0PFQ+PixcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICB0aGlzLl9kZWZhdWx0TG9hZGluZ0NvbXBvbmVudCA9IGNvbXBvbmVudFJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE1pY3JvQ2xpZW50TG9hZGluZ0luZGljYXRvckNvbXBvbmVudCk7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRFcnJvckNvbXBvbmVudCA9IGNvbXBvbmVudFJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KE1pY3JvQ2xpZW50RXJyb3JJbmRpY2F0b3JDb21wb25lbnQpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxpbmtGaWVsZEZyb20oZnJvbTogTGlua0ZpZWxkPFQ+KSB7XG4gICAgICAgIHRoaXMuX2Zyb20gPSBmcm9tO1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMubG9hZCgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxpbmtGaWVsZExvYWRpbmdUZW1wbGF0ZShsb2FkaW5nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgaWYgKGxvYWRpbmdUZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5fbG9hZGluZ1RlbXBsYXRlID0gbG9hZGluZ1RlbXBsYXRlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlSWZEaXJ0eSh0cnVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaW5rRmllbGRFcnJvclRlbXBsYXRlKGVycm9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgaWYgKGVycm9yVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yVGVtcGxhdGUgPSBlcnJvclRlbXBsYXRlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlSWZEaXJ0eSh0cnVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsaW5rRmllbGRUZW1wbGF0ZSh2YWx1ZTogVGVtcGxhdGVSZWY8TGlua0ZpZWxkQ29udGV4dDxUPj4pIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl90ZW1wbGF0ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBsaW5rRmllbGREZWZhdWx0RXJyb3JIYW5kbGluZyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBsaW5rRmllbGRWYWx1ZUNoYW5nZTogKFQpID0+IHZvaWQ7XG5cbiAgICBwcml2YXRlIGxvYWQoKSB7XG4gICAgICAgIGlmICh0aGlzLl9mcm9tKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fZnJvbSBpbnN0YW5jZW9mIExpbmtGaWVsZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RPYnMgPSB0aGlzLl9mcm9tLmxpc3Rlbk9icygpO1xuICAgICAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5sYXN0T2JzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKS5zdWJzY3JpYmUoKGxvYWRlZFJlc3VsdDogVCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRlZFJlc3VsdChsb2FkZWRSZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5saW5rRmllbGRWYWx1ZUNoYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5saW5rRmllbGRWYWx1ZUNoYW5nZShsb2FkZWRSZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgKGxvYWRFcnJvcjogTWljcm9DbGllbnRMb2FkRXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmxpbmtGaWVsZERlZmF1bHRFcnJvckhhbmRsaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2FkRXJyb3IucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEVycm9yKGxvYWRFcnJvcik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TG9hZGVkUmVzdWx0KHRoaXMuX2Zyb20pO1xuICAgICAgICAgICAgICAgIC8vIHRoaXMuc2V0TG9hZGVkUmVzdWx0KHRoaXMuX2Zyb20pO1xuICAgICAgICAgICAgICAgIC8vIHRocm93IG5ldyBFcnJvcignQ2FuXFwndCB1c2UgdGhlIGxpbmtGaWVsZCBkaXJlY3RpdmUgd2l0aCBhIGZyb20gdmFsdWUgd2hpY2ggaXNuXFwndCBhbiBpbnN0YW5jZSBvZiBMaW5rRmllbGQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgbmdEb0NoZWNrKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUlmRGlydHkoKTtcbiAgICAgICAgaWYgKHRoaXMuX2Zyb20pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9mcm9tIGluc3RhbmNlb2YgTGlua0ZpZWxkICYmIHRoaXMubGFzdE9icyAhPT0gdGhpcy5fZnJvbS5nZXRPYnMoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEVycm9yKGVycm9yOiBNaWNyb0NsaWVudExvYWRFcnJvcikge1xuICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgICBpZiAodGhpcy5fZXJyb3JUZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fZXJyb3JUZW1wbGF0ZSwge1xuICAgICAgICAgICAgICAgICRpbXBsaWNpdDogZXJyb3JcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IGVycm9yQ29tcG9uZW50SW5zdGFuY2UgPSB0aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudCh0aGlzLl9kZWZhdWx0RXJyb3JDb21wb25lbnQpO1xuICAgICAgICAgICAgZXJyb3JDb21wb25lbnRJbnN0YW5jZS5pbnN0YW5jZVsnZXJyb3InXSA9IGVycm9yO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGxvYWRpbmc7XG4gICAgICAgIGlmICh0aGlzLmlzTG9hZGluZykge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2xvYWRpbmdUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fbG9hZGluZ1RlbXBsYXRlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lci5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudCh0aGlzLl9kZWZhdWx0TG9hZGluZ0NvbXBvbmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldExvYWRlZFJlc3VsdChyZXN1bHQ6IFQpIHtcbiAgICAgICAgdGhpcy5oYXNSZXN1bHQgPSB0cnVlO1xuICAgICAgICB0aGlzLmxvYWRlZFJlc3VsdCA9IHJlc3VsdDtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudENvbnRleHQgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50Q29udGV4dCA9IG5ldyBMaW5rRmllbGRDb250ZXh0PFQ+KHJlc3VsdCk7XG4gICAgICAgICAgICB0aGlzLmlzRGlydHkgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50Q29udGV4dC4kaW1wbGljaXQgPSByZXN1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLl92aWV3Q29udGFpbmVyIHx8ICF0aGlzLl90ZW1wbGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5pc0RpcnR5ID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRGlydHkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlLCB0aGlzLmN1cnJlbnRDb250ZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSWZEaXJ0eShpZ25vcmVEaXJ0eTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmICgodGhpcy5pc0RpcnR5IHx8IGlnbm9yZURpcnR5KSAmJiB0aGlzLl9sb2FkaW5nVGVtcGxhdGUgJiYgdGhpcy5fZnJvbSAmJiB0aGlzLl90ZW1wbGF0ZSAmJiB0aGlzLl92aWV3Q29udGFpbmVyKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldExvYWRlZFJlc3VsdCh0aGlzLmxvYWRlZFJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmlzRGlydHkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuaGFzUmVzdWx0ID0gZmFsc2U7XG4gICAgICAgIHRoaXMubG9hZGVkUmVzdWx0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5pc0RpcnR5ID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxhc3RPYnMgPSBudWxsO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpbmtGaWVsZENvbnRleHQ8VD4ge1xuXG4gICAgY29uc3RydWN0b3IocHVibGljICRpbXBsaWNpdDogVCkge1xuICAgIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Injectable, Component, Pipe, ChangeDetectorRef, Input, EventEmitter, Directive, ViewContainerRef, TemplateRef, ComponentFactoryResolver, Output, HostListener, forwardRef, NgModule } from '@angular/core';
1
+ import { Injectable, Component, Pipe, ChangeDetectorRef, Input, Directive, ViewContainerRef, TemplateRef, ComponentFactoryResolver, EventEmitter, Output, HostListener, forwardRef, NgModule } from '@angular/core';
2
2
  import { HttpHeaders, HttpClient, HttpClientModule } from '@angular/common/http';
3
3
  import { ReplaySubject, defer, throwError, timer, of } from 'rxjs';
4
4
  import { take, map, catchError, finalize, switchMap, delay } from 'rxjs/operators';
@@ -1577,7 +1577,6 @@ class LinkFieldDirective {
1577
1577
  this.hasResult = false;
1578
1578
  this.subscription = null;
1579
1579
  this.linkFieldDefaultErrorHandling = false;
1580
- this.linkLoaded = new EventEmitter();
1581
1580
  this._defaultLoadingComponent = componentResolver.resolveComponentFactory(MicroClientLoadingIndicatorComponent);
1582
1581
  this._defaultErrorComponent = componentResolver.resolveComponentFactory(MicroClientErrorIndicatorComponent);
1583
1582
  }
@@ -1627,7 +1626,7 @@ class LinkFieldDirective {
1627
1626
  if (this._from) {
1628
1627
  if (this._from instanceof LinkField) {
1629
1628
  this.setLoading(true);
1630
- this.lastObs = this._from.getObs();
1629
+ this.lastObs = this._from.listenObs();
1631
1630
  this.subscription = this.lastObs.pipe(finalize((/**
1632
1631
  * @return {?}
1633
1632
  */
@@ -1639,7 +1638,9 @@ class LinkFieldDirective {
1639
1638
  */
1640
1639
  (loadedResult) => {
1641
1640
  this.setLoadedResult(loadedResult);
1642
- this.linkLoaded.emit(loadedResult);
1641
+ if (this.linkFieldValueChange) {
1642
+ this.linkFieldValueChange(loadedResult);
1643
+ }
1643
1644
  }), (/**
1644
1645
  * @param {?} loadError
1645
1646
  * @return {?}
@@ -1719,15 +1720,22 @@ class LinkFieldDirective {
1719
1720
  setLoadedResult(result) {
1720
1721
  this.hasResult = true;
1721
1722
  this.loadedResult = result;
1722
- if (this._viewContainer && this._template) {
1723
- /** @type {?} */
1724
- const currentContext = new LinkFieldContext(result);
1725
- this._viewContainer.remove();
1726
- this._viewContainer.createEmbeddedView(this._template, currentContext);
1723
+ if (this.currentContext == null) {
1724
+ this.currentContext = new LinkFieldContext(result);
1725
+ this.isDirty = true;
1727
1726
  }
1728
1727
  else {
1728
+ this.currentContext.$implicit = result;
1729
+ }
1730
+ if (!this._viewContainer || !this._template) {
1729
1731
  this.isDirty = true;
1730
1732
  }
1733
+ else {
1734
+ if (this.isDirty) {
1735
+ this._viewContainer.remove();
1736
+ this._viewContainer.createEmbeddedView(this._template, this.currentContext);
1737
+ }
1738
+ }
1731
1739
  }
1732
1740
  /**
1733
1741
  * @private
@@ -1775,7 +1783,7 @@ LinkFieldDirective.propDecorators = {
1775
1783
  linkFieldErrorTemplate: [{ type: Input }],
1776
1784
  linkFieldTemplate: [{ type: Input }],
1777
1785
  linkFieldDefaultErrorHandling: [{ type: Input }],
1778
- linkLoaded: [{ type: Output }]
1786
+ linkFieldValueChange: [{ type: Input }]
1779
1787
  };
1780
1788
  if (false) {
1781
1789
  /**
@@ -1833,10 +1841,15 @@ if (false) {
1833
1841
  * @private
1834
1842
  */
1835
1843
  LinkFieldDirective.prototype.subscription;
1844
+ /**
1845
+ * @type {?}
1846
+ * @private
1847
+ */
1848
+ LinkFieldDirective.prototype.currentContext;
1836
1849
  /** @type {?} */
1837
1850
  LinkFieldDirective.prototype.linkFieldDefaultErrorHandling;
1838
1851
  /** @type {?} */
1839
- LinkFieldDirective.prototype.linkLoaded;
1852
+ LinkFieldDirective.prototype.linkFieldValueChange;
1840
1853
  /**
1841
1854
  * @type {?}
1842
1855
  * @private