@micropermit/client-angular 0.2.9-beta.8 → 0.2.10

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.
@@ -23,6 +23,7 @@ LinkField = /** @class */ (function (_super) {
23
23
  _this.initialized = false;
24
24
  _this.serializeTo = LinkSerializer.AS_VALUE_IF_INITIALIZED;
25
25
  _this.intervalId = null;
26
+ _this.isRefreshing = false;
26
27
  if (initialized) {
27
28
  _this.set(initialValue);
28
29
  }
@@ -70,27 +71,54 @@ LinkField = /** @class */ (function (_super) {
70
71
  };
71
72
  /**
72
73
  * @param {?=} interval
74
+ * @param {?=} errorHandler
73
75
  * @return {?}
74
76
  */
75
77
  LinkField.prototype.refresh = /**
76
78
  * @param {?=} interval
79
+ * @param {?=} errorHandler
77
80
  * @return {?}
78
81
  */
79
- function (interval) {
82
+ function (interval, errorHandler) {
80
83
  var _this = this;
81
84
  if (interval) {
82
85
  this.stopRefresh();
83
86
  }
84
- if (this.isInitialized()) {
85
- this.initWithObs().subscribe();
86
- }
87
+ /** @type {?} */
88
+ var resCb = (/**
89
+ * @return {?}
90
+ */
91
+ function () {
92
+ _this.isRefreshing = false;
93
+ });
94
+ this.isRefreshing = true;
95
+ this.initWithObs().subscribe(resCb, (/**
96
+ * @param {?} error
97
+ * @return {?}
98
+ */
99
+ function (error) {
100
+ resCb();
101
+ if (errorHandler) {
102
+ errorHandler(error);
103
+ }
104
+ }), resCb);
87
105
  if (interval) {
88
106
  this.intervalId = setInterval((/**
89
107
  * @return {?}
90
108
  */
91
109
  function () {
92
- if (_this.isInitialized()) {
93
- _this.initWithObs().subscribe();
110
+ if (!_this.isRefreshing) {
111
+ _this.isRefreshing = true;
112
+ _this.initWithObs().subscribe(resCb, (/**
113
+ * @param {?} error
114
+ * @return {?}
115
+ */
116
+ function (error) {
117
+ resCb();
118
+ if (errorHandler) {
119
+ errorHandler(error);
120
+ }
121
+ }), resCb);
94
122
  }
95
123
  }), interval);
96
124
  }
@@ -308,5 +336,10 @@ if (false) {
308
336
  * @private
309
337
  */
310
338
  LinkField.prototype.intervalId;
339
+ /**
340
+ * @type {?}
341
+ * @private
342
+ */
343
+ LinkField.prototype.isRefreshing;
311
344
  }
312
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pY3JvcGVybWl0L2NsaWVudC1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2xpbmtzL2xpbmtmaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxLQUFLLEVBQWMsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXRELE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV6Qzs7OztJQUFrQyxxQ0FBZTtJQVM3QyxtQkFDSSxJQUFZLEVBQ1osV0FBd0IsRUFDeEIsWUFBc0IsRUFDdEIsV0FBNEIsRUFDNUIsVUFBeUIsRUFDekIsY0FBNkI7UUFIN0IsNkJBQUEsRUFBQSxtQkFBc0I7UUFDdEIsNEJBQUEsRUFBQSxtQkFBNEI7UUFDNUIsMkJBQUEsRUFBQSxpQkFBeUI7UUFDekIsK0JBQUEsRUFBQSxxQkFBNkI7UUFOakMsWUFRSSxrQkFBTSxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsU0FJdkQ7UUFuQk8saUJBQVcsR0FBRyxLQUFLLENBQUM7UUFLckIsaUJBQVcsR0FBd0csY0FBYyxDQUFDLHVCQUF1QixDQUFDO1FBbUN6SixnQkFBVSxHQUFHLElBQUksQ0FBQztRQXhCdEIsSUFBSSxXQUFXLEVBQUU7WUFDYixLQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzFCOztJQUNMLENBQUM7Ozs7OztJQUVNLGNBQUk7Ozs7O0lBQVgsVUFBMkMsS0FBUTtRQUMvQyxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7O0lBRUQsdUJBQUc7Ozs7SUFBSCxVQUFJLFFBQXNCO1FBQ3RCLElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNsQyxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7OztJQUVELDhCQUFVOzs7SUFBVjtRQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2hEO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7Ozs7O0lBSUQsMkJBQU87Ozs7SUFBUCxVQUFRLFFBQWlCO1FBQXpCLGlCQWNDO1FBYkcsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEI7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDbEM7UUFDRCxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVzs7O1lBQUM7Z0JBQzFCLElBQUksS0FBSSxDQUFDLGFBQWEsRUFBRSxFQUFFO29CQUN0QixLQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7aUJBQ2xDO1lBQ0wsQ0FBQyxHQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2hCO0lBQ0wsQ0FBQzs7OztJQUVELCtCQUFXOzs7SUFBWDtRQUNJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQzs7OztJQUVELDZCQUFTOzs7SUFBVDtRQUFBLGlCQVVDO1FBVEcsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN6QjthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGFBQWEsQ0FBSSxDQUFDLENBQUMsQ0FBQztZQUN6QyxPQUFPLEtBQUs7OztZQUFDO2dCQUNULEtBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN6QyxPQUFPLEtBQUksQ0FBQyxTQUFTLENBQUM7WUFDMUIsQ0FBQyxFQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7Ozs7SUFFRCwwQkFBTTs7O0lBQU47UUFDSSxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQ3hCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDVixDQUFDO0lBQ04sQ0FBQzs7Ozs7SUFFRCx1QkFBRzs7OztJQUFILFVBQUksS0FBUTs7WUFDRixRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUs7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGFBQWEsQ0FBSSxDQUFDLENBQUMsQ0FBQztTQUM1QztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBRXhCLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Ozs7SUFFRCxpQ0FBYTs7O0lBQWI7UUFDSSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVELGdDQUFZOzs7SUFBWjtRQUNJLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7Ozs7SUFFRCx1Q0FBbUI7OztJQUFuQjtRQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQywrRUFBK0UsQ0FBQyxDQUFDO1NBQ3BHO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7Ozs7Ozs7SUFFRCw0QkFBUTs7Ozs7O0lBQVIsVUFBUyxLQUFvQixFQUFFLGNBQTZCLEVBQUUsUUFBcUI7UUFBMUUsc0JBQUEsRUFBQSxZQUFvQjtRQUFFLCtCQUFBLEVBQUEscUJBQTZCO1FBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRSxDQUFDOzs7Ozs7SUFFRCwrQkFBVzs7Ozs7SUFBWCxVQUFZLE1BQXFCLEVBQUUsY0FBNkI7UUFBaEUsaUJBT0M7UUFQVyx1QkFBQSxFQUFBLGFBQXFCO1FBQUUsK0JBQUEsRUFBQSxxQkFBNkI7UUFDNUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQ2hELEdBQUc7Ozs7UUFBQyxVQUFDLEtBQUs7WUFDTixLQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFHLEtBQUssRUFBQSxDQUFDLENBQUM7WUFDbkIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxFQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7Ozs7OztJQUVELGtDQUFjOzs7OztJQUFkLFVBQWUsVUFBa0IsRUFBRSxjQUE0QztRQUE1QywrQkFBQSxFQUFBLGlCQUF5QixJQUFJLENBQUMsY0FBYztRQUMzRSxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7Ozs7O0lBRUQsd0JBQUk7Ozs7SUFBSixVQUFLLFNBQWE7UUFDZCxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDekIsT0FBTyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3pIO2FBQU07WUFDSCxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzVHO0lBQ0wsQ0FBQzs7OztJQUVELDBCQUFNOzs7SUFBTjtRQUNJLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztTQUM5RzthQUFNO1lBQ0gsT0FBTyxTQUFTLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBQ0wsZ0JBQUM7QUFBRCxDQUFDLEFBbkpELENBQWtDLFlBQVksR0FtSjdDOzs7Ozs7Ozs7O0lBbEpHLDBCQUFpQjs7Ozs7SUFDakIsZ0NBQTRCOzs7OztJQUM1QixnQ0FBZ0M7Ozs7O0lBRWhDLDhCQUFvQzs7SUFFcEMsZ0NBQWlLOzs7OztJQW1DakssK0JBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWZlciwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge01pY3JvQ2xpZW50fSBmcm9tICcuLi9taWNyb2NsaWVudC5zZXJ2aWNlJztcbmltcG9ydCB7Q2FsbGFibGVMaW5rLCBMaW5rU2VyaWFsaXplcn0gZnJvbSAnLi9jYWxsYWJsZWxpbmsnO1xuaW1wb3J0IHttYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIExpbmtGaWVsZDxUPiBleHRlbmRzIENhbGxhYmxlTGluazxUPiB7XG4gICAgcHJpdmF0ZSB2YWx1ZTogVDtcbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZ2V0UHJvbWlzZTogUHJvbWlzZTxUPjtcblxuICAgIHByaXZhdGUgdmFsdWVTdWJqOiBSZXBsYXlTdWJqZWN0PFQ+O1xuXG4gICAgcHVibGljIHNlcmlhbGl6ZVRvOiAobGluazogc3RyaW5nLCBjYWxsUGFyYW1zOiBvYmplY3QsIHJlcXVlc3RPcHRpb25zOiBvYmplY3QsIHZhbHVlOiBULCBpc0luaXRpYWxpemVkOiBib29sZWFuKSA9PiBhbnkgPSBMaW5rU2VyaWFsaXplci5BU19WQUxVRV9JRl9JTklUSUFMSVpFRDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBsaW5rOiBzdHJpbmcsXG4gICAgICAgIG1pY3JvQ2xpZW50OiBNaWNyb0NsaWVudCxcbiAgICAgICAgaW5pdGlhbFZhbHVlOiBUID0gbnVsbCxcbiAgICAgICAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICAgICAgY2FsbFBhcmFtczogb2JqZWN0ID0gbnVsbCxcbiAgICAgICAgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCA9IG51bGxcbiAgICApIHtcbiAgICAgICAgc3VwZXIobGluaywgbWljcm9DbGllbnQsIGNhbGxQYXJhbXMsIHJlcXVlc3RPcHRpb25zKTtcbiAgICAgICAgaWYgKGluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldChpbml0aWFsVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGZyb208VCBleHRlbmRzIChvYmplY3QgfCBvYmplY3RbXSk+KHZhbHVlOiBUKTogTGlua0ZpZWxkPFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQobnVsbCwgbnVsbCwgdmFsdWUsIHRydWUpO1xuICAgIH1cblxuICAgIGdldChjYWxsYmFjaz86IChUKSA9PiB2b2lkKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgdGhpcy5nZXRPYnMoKS5zdWJzY3JpYmUoY2FsbGJhY2spO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJvbWlzZSgpO1xuICAgIH1cblxuICAgIGdldFByb21pc2UoKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGlmICghdGhpcy5fZ2V0UHJvbWlzZSkge1xuICAgICAgICAgICAgdGhpcy5fZ2V0UHJvbWlzZSA9IHRoaXMuZ2V0T2JzKCkudG9Qcm9taXNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFByb21pc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbnRlcnZhbElkID0gbnVsbDtcblxuICAgIHJlZnJlc2goaW50ZXJ2YWw/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGludGVydmFsKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3BSZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRXaXRoT2JzKCkuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGludGVydmFsKSB7XG4gICAgICAgICAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFdpdGhPYnMoKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBpbnRlcnZhbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wUmVmcmVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJ2YWxJZCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsSWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGlzdGVuT2JzKCk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICBpZiAodGhpcy52YWx1ZVN1YmopIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlU3ViajtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVTdWJqID0gbmV3IFJlcGxheVN1YmplY3Q8VD4oMSk7XG4gICAgICAgICAgICByZXR1cm4gZGVmZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFdpdGhPYnMobnVsbCwgbnVsbCkuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVTdWJqO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRPYnMoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpc3Rlbk9icygpLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2V0KHZhbHVlOiBUKTogVCB7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlU3Viaikge1xuICAgICAgICAgICAgdGhpcy52YWx1ZVN1YmogPSBuZXcgUmVwbGF5U3ViamVjdDxUPigxKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlU3Viai5uZXh0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5fZ2V0UHJvbWlzZSA9IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIG9sZFZhbHVlO1xuICAgIH1cblxuICAgIGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVkO1xuICAgIH1cblxuICAgIHVuaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52YWx1ZVN1YmogPSBudWxsO1xuICAgICAgICB0aGlzLl9nZXRQcm9taXNlID0gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRJbml0aWFsaXplZFZhbHVlKCk6IFQge1xuICAgICAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhblxcJ3QgZ2V0IHRoZSBpbnRpYWxpemVkIHZhbHVlIGZvciBhIExpbmtGaWVsZCB0aGF0IGhhc25cXCd0IGJlZW4gaW5pdGlhbGl6ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBpbml0V2l0aChwYXJtczogb2JqZWN0ID0gbnVsbCwgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCA9IG51bGwsIGNhbGxiYWNrOiAoVCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLmluaXRXaXRoT2JzKHBhcm1zLCByZXF1ZXN0T3B0aW9ucykuc3Vic2NyaWJlKGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBpbml0V2l0aE9icyhwYXJhbXM6IG9iamVjdCA9IG51bGwsIHJlcXVlc3RPcHRpb25zOiBvYmplY3QgPSBudWxsKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxXaXRoT2JzKHBhcmFtcywgcmVxdWVzdE9wdGlvbnMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXQoPFQ+dmFsdWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgd2l0aENhbGxQYXJhbXMoY2FsbFBhcmFtczogb2JqZWN0LCByZXF1ZXN0T3B0aW9uczogb2JqZWN0ID0gdGhpcy5yZXF1ZXN0T3B0aW9ucyk6IExpbmtGaWVsZDxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgTGlua0ZpZWxkKHRoaXMubGluaywgdGhpcy5taWNyb0NsaWVudCwgdGhpcy52YWx1ZSwgdGhpcy5pbml0aWFsaXplZCwgY2FsbFBhcmFtcywgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNvcHkod2l0aFZhbHVlPzogVCk6IExpbmtGaWVsZDxUPiB7XG4gICAgICAgIGlmICh3aXRoVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQodGhpcy5saW5rLCB0aGlzLm1pY3JvQ2xpZW50LCB0aGlzLnZhbHVlLCB0aGlzLmluaXRpYWxpemVkLCB0aGlzLmNhbGxQYXJhbXMsIHRoaXMucmVxdWVzdE9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQodGhpcy5saW5rLCB0aGlzLm1pY3JvQ2xpZW50LCB3aXRoVmFsdWUsIHRydWUsIHRoaXMuY2FsbFBhcmFtcywgdGhpcy5yZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b0pTT04oKTogYW55IHtcbiAgICAgICAgaWYgKHRoaXMuc2VyaWFsaXplVG8pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZVRvKHRoaXMubGluaywgdGhpcy5jYWxsUGFyYW1zLCB0aGlzLnJlcXVlc3RPcHRpb25zLCB0aGlzLnZhbHVlLCB0aGlzLmlzSW5pdGlhbGl6ZWQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iXX0=
345
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pY3JvcGVybWl0L2NsaWVudC1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2xpbmtzL2xpbmtmaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxLQUFLLEVBQWMsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXRELE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV6Qzs7OztJQUFrQyxxQ0FBZTtJQVM3QyxtQkFDSSxJQUFZLEVBQ1osV0FBd0IsRUFDeEIsWUFBc0IsRUFDdEIsV0FBNEIsRUFDNUIsVUFBeUIsRUFDekIsY0FBNkI7UUFIN0IsNkJBQUEsRUFBQSxtQkFBc0I7UUFDdEIsNEJBQUEsRUFBQSxtQkFBNEI7UUFDNUIsMkJBQUEsRUFBQSxpQkFBeUI7UUFDekIsK0JBQUEsRUFBQSxxQkFBNkI7UUFOakMsWUFRSSxrQkFBTSxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsU0FJdkQ7UUFuQk8saUJBQVcsR0FBRyxLQUFLLENBQUM7UUFLckIsaUJBQVcsR0FBd0csY0FBYyxDQUFDLHVCQUF1QixDQUFDO1FBbUN6SixnQkFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixrQkFBWSxHQUFHLEtBQUssQ0FBQztRQXpCekIsSUFBSSxXQUFXLEVBQUU7WUFDYixLQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzFCOztJQUNMLENBQUM7Ozs7OztJQUVNLGNBQUk7Ozs7O0lBQVgsVUFBMkMsS0FBUTtRQUMvQyxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7O0lBRUQsdUJBQUc7Ozs7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QUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7U0FDOUc7YUFBTTtZQUNILE9BQU8sU0FBUyxDQUFDO1NBQ3BCO0lBQ0wsQ0FBQztJQUNMLGdCQUFDO0FBQUQsQ0FBQyxBQWxLRCxDQUFrQyxZQUFZLEdBa0s3Qzs7Ozs7Ozs7OztJQWpLRywwQkFBaUI7Ozs7O0lBQ2pCLGdDQUE0Qjs7Ozs7SUFDNUIsZ0NBQWdDOzs7OztJQUVoQyw4QkFBb0M7O0lBRXBDLGdDQUFpSzs7Ozs7SUFtQ2pLLCtCQUEwQjs7Ozs7SUFDMUIsaUNBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWZlciwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge01pY3JvQ2xpZW50LCBNaWNyb0NsaWVudExvYWRFcnJvcn0gZnJvbSAnLi4vbWljcm9jbGllbnQuc2VydmljZSc7XG5pbXBvcnQge0NhbGxhYmxlTGluaywgTGlua1NlcmlhbGl6ZXJ9IGZyb20gJy4vY2FsbGFibGVsaW5rJztcbmltcG9ydCB7bWFwLCB0YWtlfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjbGFzcyBMaW5rRmllbGQ8VD4gZXh0ZW5kcyBDYWxsYWJsZUxpbms8VD4ge1xuICAgIHByaXZhdGUgdmFsdWU6IFQ7XG4gICAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2dldFByb21pc2U6IFByb21pc2U8VD47XG5cbiAgICBwcml2YXRlIHZhbHVlU3ViajogUmVwbGF5U3ViamVjdDxUPjtcblxuICAgIHB1YmxpYyBzZXJpYWxpemVUbzogKGxpbms6IHN0cmluZywgY2FsbFBhcmFtczogb2JqZWN0LCByZXF1ZXN0T3B0aW9uczogb2JqZWN0LCB2YWx1ZTogVCwgaXNJbml0aWFsaXplZDogYm9vbGVhbikgPT4gYW55ID0gTGlua1NlcmlhbGl6ZXIuQVNfVkFMVUVfSUZfSU5JVElBTElaRUQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgbGluazogc3RyaW5nLFxuICAgICAgICBtaWNyb0NsaWVudDogTWljcm9DbGllbnQsXG4gICAgICAgIGluaXRpYWxWYWx1ZTogVCA9IG51bGwsXG4gICAgICAgIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2UsXG4gICAgICAgIGNhbGxQYXJhbXM6IG9iamVjdCA9IG51bGwsXG4gICAgICAgIHJlcXVlc3RPcHRpb25zOiBvYmplY3QgPSBudWxsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGxpbmssIG1pY3JvQ2xpZW50LCBjYWxsUGFyYW1zLCByZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIGlmIChpbml0aWFsaXplZCkge1xuICAgICAgICAgICAgdGhpcy5zZXQoaW5pdGlhbFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBmcm9tPFQgZXh0ZW5kcyAob2JqZWN0IHwgb2JqZWN0W10pPih2YWx1ZTogVCk6IExpbmtGaWVsZDxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgTGlua0ZpZWxkKG51bGwsIG51bGwsIHZhbHVlLCB0cnVlKTtcbiAgICB9XG5cbiAgICBnZXQoY2FsbGJhY2s/OiAoVCkgPT4gdm9pZCk6IFByb21pc2U8VD4ge1xuICAgICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0T2JzKCkuc3Vic2NyaWJlKGNhbGxiYWNrKTtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdldFByb21pc2UoKTtcbiAgICB9XG5cbiAgICBnZXRQcm9taXNlKCk6IFByb21pc2U8VD4ge1xuICAgICAgICBpZiAoIXRoaXMuX2dldFByb21pc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2dldFByb21pc2UgPSB0aGlzLmdldE9icygpLnRvUHJvbWlzZSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRQcm9taXNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW50ZXJ2YWxJZCA9IG51bGw7XG4gICAgcHJpdmF0ZSBpc1JlZnJlc2hpbmcgPSBmYWxzZTtcblxuICAgIHJlZnJlc2goaW50ZXJ2YWw/OiBudW1iZXIsIGVycm9ySGFuZGxlcj86IChlcnJvcjogTWljcm9DbGllbnRMb2FkRXJyb3IpID0+IHZvaWQpIHtcbiAgICAgICAgaWYgKGludGVydmFsKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3BSZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlc0NiID0gKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmcgPSBmYWxzZTtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5pc1JlZnJlc2hpbmcgPSB0cnVlO1xuICAgICAgICB0aGlzLmluaXRXaXRoT2JzKCkuc3Vic2NyaWJlKHJlc0NiLCAoZXJyb3I6IE1pY3JvQ2xpZW50TG9hZEVycm9yKSA9PiB7XG4gICAgICAgICAgICByZXNDYigpO1xuICAgICAgICAgICAgaWYgKGVycm9ySGFuZGxlcikge1xuICAgICAgICAgICAgICAgIGVycm9ySGFuZGxlcihlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHJlc0NiKTtcblxuICAgICAgICBpZiAoaW50ZXJ2YWwpIHtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNSZWZyZXNoaW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZWZyZXNoaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0V2l0aE9icygpLnN1YnNjcmliZShyZXNDYiwgKGVycm9yOiBNaWNyb0NsaWVudExvYWRFcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzQ2IoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvckhhbmRsZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckhhbmRsZXIoZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LCByZXNDYik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgaW50ZXJ2YWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RvcFJlZnJlc2goKSB7XG4gICAgICAgIGlmICh0aGlzLmludGVydmFsSWQpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbElkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxpc3Rlbk9icygpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWVTdWJqKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVN1Ymo7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlU3ViaiA9IG5ldyBSZXBsYXlTdWJqZWN0PFQ+KDEpO1xuICAgICAgICAgICAgcmV0dXJuIGRlZmVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRXaXRoT2JzKG51bGwsIG51bGwpLnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlU3ViajtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0T2JzKCk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5saXN0ZW5PYnMoKS5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNldCh2YWx1ZTogVCk6IFQge1xuICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIGlmICghdGhpcy52YWx1ZVN1YmopIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVTdWJqID0gbmV3IFJlcGxheVN1YmplY3Q8VD4oMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZVN1YmoubmV4dCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuX2dldFByb21pc2UgPSBudWxsO1xuXG4gICAgICAgIHJldHVybiBvbGRWYWx1ZTtcbiAgICB9XG5cbiAgICBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplZDtcbiAgICB9XG5cbiAgICB1bmluaXRpYWxpemUoKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudmFsdWVTdWJqID0gbnVsbDtcbiAgICAgICAgdGhpcy5fZ2V0UHJvbWlzZSA9IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0SW5pdGlhbGl6ZWRWYWx1ZSgpOiBUIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzSW5pdGlhbGl6ZWQoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5cXCd0IGdldCB0aGUgaW50aWFsaXplZCB2YWx1ZSBmb3IgYSBMaW5rRmllbGQgdGhhdCBoYXNuXFwndCBiZWVuIGluaXRpYWxpemVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgaW5pdFdpdGgocGFybXM6IG9iamVjdCA9IG51bGwsIHJlcXVlc3RPcHRpb25zOiBvYmplY3QgPSBudWxsLCBjYWxsYmFjazogKFQpID0+IHZvaWQpIHtcbiAgICAgICAgdGhpcy5pbml0V2l0aE9icyhwYXJtcywgcmVxdWVzdE9wdGlvbnMpLnN1YnNjcmliZShjYWxsYmFjayk7XG4gICAgfVxuXG4gICAgaW5pdFdpdGhPYnMocGFyYW1zOiBvYmplY3QgPSBudWxsLCByZXF1ZXN0T3B0aW9uczogb2JqZWN0ID0gbnVsbCk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxsV2l0aE9icyhwYXJhbXMsIHJlcXVlc3RPcHRpb25zKS5waXBlKFxuICAgICAgICAgICAgbWFwKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0KDxUPnZhbHVlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHdpdGhDYWxsUGFyYW1zKGNhbGxQYXJhbXM6IG9iamVjdCwgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCA9IHRoaXMucmVxdWVzdE9wdGlvbnMpOiBMaW5rRmllbGQ8VD4ge1xuICAgICAgICByZXR1cm4gbmV3IExpbmtGaWVsZCh0aGlzLmxpbmssIHRoaXMubWljcm9DbGllbnQsIHRoaXMudmFsdWUsIHRoaXMuaW5pdGlhbGl6ZWQsIGNhbGxQYXJhbXMsIHJlcXVlc3RPcHRpb25zKTtcbiAgICB9XG5cbiAgICBjb3B5KHdpdGhWYWx1ZT86IFQpOiBMaW5rRmllbGQ8VD4ge1xuICAgICAgICBpZiAod2l0aFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTGlua0ZpZWxkKHRoaXMubGluaywgdGhpcy5taWNyb0NsaWVudCwgdGhpcy52YWx1ZSwgdGhpcy5pbml0aWFsaXplZCwgdGhpcy5jYWxsUGFyYW1zLCB0aGlzLnJlcXVlc3RPcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTGlua0ZpZWxkKHRoaXMubGluaywgdGhpcy5taWNyb0NsaWVudCwgd2l0aFZhbHVlLCB0cnVlLCB0aGlzLmNhbGxQYXJhbXMsIHRoaXMucmVxdWVzdE9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdG9KU09OKCk6IGFueSB7XG4gICAgICAgIGlmICh0aGlzLnNlcmlhbGl6ZVRvKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJpYWxpemVUbyh0aGlzLmxpbmssIHRoaXMuY2FsbFBhcmFtcywgdGhpcy5yZXF1ZXN0T3B0aW9ucywgdGhpcy52YWx1ZSwgdGhpcy5pc0luaXRpYWxpemVkKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIl19
@@ -465,6 +465,7 @@ class LinkField extends CallableLink {
465
465
  this.initialized = false;
466
466
  this.serializeTo = LinkSerializer.AS_VALUE_IF_INITIALIZED;
467
467
  this.intervalId = null;
468
+ this.isRefreshing = false;
468
469
  if (initialized) {
469
470
  this.set(initialValue);
470
471
  }
@@ -499,22 +500,48 @@ class LinkField extends CallableLink {
499
500
  }
500
501
  /**
501
502
  * @param {?=} interval
503
+ * @param {?=} errorHandler
502
504
  * @return {?}
503
505
  */
504
- refresh(interval) {
506
+ refresh(interval, errorHandler) {
505
507
  if (interval) {
506
508
  this.stopRefresh();
507
509
  }
508
- if (this.isInitialized()) {
509
- this.initWithObs().subscribe();
510
- }
510
+ /** @type {?} */
511
+ let resCb = (/**
512
+ * @return {?}
513
+ */
514
+ () => {
515
+ this.isRefreshing = false;
516
+ });
517
+ this.isRefreshing = true;
518
+ this.initWithObs().subscribe(resCb, (/**
519
+ * @param {?} error
520
+ * @return {?}
521
+ */
522
+ (error) => {
523
+ resCb();
524
+ if (errorHandler) {
525
+ errorHandler(error);
526
+ }
527
+ }), resCb);
511
528
  if (interval) {
512
529
  this.intervalId = setInterval((/**
513
530
  * @return {?}
514
531
  */
515
532
  () => {
516
- if (this.isInitialized()) {
517
- this.initWithObs().subscribe();
533
+ if (!this.isRefreshing) {
534
+ this.isRefreshing = true;
535
+ this.initWithObs().subscribe(resCb, (/**
536
+ * @param {?} error
537
+ * @return {?}
538
+ */
539
+ (error) => {
540
+ resCb();
541
+ if (errorHandler) {
542
+ errorHandler(error);
543
+ }
544
+ }), resCb);
518
545
  }
519
546
  }), interval);
520
547
  }
@@ -675,6 +702,11 @@ if (false) {
675
702
  * @private
676
703
  */
677
704
  LinkField.prototype.intervalId;
705
+ /**
706
+ * @type {?}
707
+ * @private
708
+ */
709
+ LinkField.prototype.isRefreshing;
678
710
  }
679
711
 
680
712
  /**