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

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.
@@ -82,7 +82,7 @@ LinkField = /** @class */ (function (_super) {
82
82
  this.stopRefresh();
83
83
  }
84
84
  if (this.isInitialized()) {
85
- this.initWithObs();
85
+ this.initWithObs().subscribe();
86
86
  }
87
87
  if (interval) {
88
88
  this.intervalId = setInterval((/**
@@ -309,4 +309,4 @@ if (false) {
309
309
  */
310
310
  LinkField.prototype.intervalId;
311
311
  }
312
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pY3JvcGVybWl0L2NsaWVudC1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2xpbmtzL2xpbmtmaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxLQUFLLEVBQWMsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXRELE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV6Qzs7OztJQUFrQyxxQ0FBZTtJQVM3QyxtQkFDSSxJQUFZLEVBQ1osV0FBd0IsRUFDeEIsWUFBc0IsRUFDdEIsV0FBNEIsRUFDNUIsVUFBeUIsRUFDekIsY0FBNkI7UUFIN0IsNkJBQUEsRUFBQSxtQkFBc0I7UUFDdEIsNEJBQUEsRUFBQSxtQkFBNEI7UUFDNUIsMkJBQUEsRUFBQSxpQkFBeUI7UUFDekIsK0JBQUEsRUFBQSxxQkFBNkI7UUFOakMsWUFRSSxrQkFBTSxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsU0FJdkQ7UUFuQk8saUJBQVcsR0FBRyxLQUFLLENBQUM7UUFLckIsaUJBQVcsR0FBd0csY0FBYyxDQUFDLHVCQUF1QixDQUFDO1FBbUN6SixnQkFBVSxHQUFHLElBQUksQ0FBQztRQXhCdEIsSUFBSSxXQUFXLEVBQUU7WUFDYixLQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzFCOztJQUNMLENBQUM7Ozs7OztJQUVNLGNBQUk7Ozs7O0lBQVgsVUFBMkMsS0FBUTtRQUMvQyxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7O0lBRUQsdUJBQUc7Ozs7SUFBSCxVQUFJLFFBQXNCO1FBQ3RCLElBQUks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QWE7UUFDZCxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDekIsT0FBTyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3pIO2FBQU07WUFDSCxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzVHO0lBQ0wsQ0FBQzs7OztJQUVELDBCQUFNOzs7SUFBTjtRQUNJLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztTQUM5RzthQUFNO1lBQ0gsT0FBTyxTQUFTLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBQ0wsZ0JBQUM7QUFBRCxDQUFDLEFBbkpELENBQWtDLFlBQVksR0FtSjdDOzs7Ozs7Ozs7O0lBbEpHLDBCQUFpQjs7Ozs7SUFDakIsZ0NBQTRCOzs7OztJQUM1QixnQ0FBZ0M7Ozs7O0lBRWhDLDhCQUFvQzs7SUFFcEMsZ0NBQWlLOzs7OztJQW1DakssK0JBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWZlciwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge01pY3JvQ2xpZW50fSBmcm9tICcuLi9taWNyb2NsaWVudC5zZXJ2aWNlJztcbmltcG9ydCB7Q2FsbGFibGVMaW5rLCBMaW5rU2VyaWFsaXplcn0gZnJvbSAnLi9jYWxsYWJsZWxpbmsnO1xuaW1wb3J0IHttYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIExpbmtGaWVsZDxUPiBleHRlbmRzIENhbGxhYmxlTGluazxUPiB7XG4gICAgcHJpdmF0ZSB2YWx1ZTogVDtcbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZ2V0UHJvbWlzZTogUHJvbWlzZTxUPjtcblxuICAgIHByaXZhdGUgdmFsdWVTdWJqOiBSZXBsYXlTdWJqZWN0PFQ+O1xuXG4gICAgcHVibGljIHNlcmlhbGl6ZVRvOiAobGluazogc3RyaW5nLCBjYWxsUGFyYW1zOiBvYmplY3QsIHJlcXVlc3RPcHRpb25zOiBvYmplY3QsIHZhbHVlOiBULCBpc0luaXRpYWxpemVkOiBib29sZWFuKSA9PiBhbnkgPSBMaW5rU2VyaWFsaXplci5BU19WQUxVRV9JRl9JTklUSUFMSVpFRDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBsaW5rOiBzdHJpbmcsXG4gICAgICAgIG1pY3JvQ2xpZW50OiBNaWNyb0NsaWVudCxcbiAgICAgICAgaW5pdGlhbFZhbHVlOiBUID0gbnVsbCxcbiAgICAgICAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICAgICAgY2FsbFBhcmFtczogb2JqZWN0ID0gbnVsbCxcbiAgICAgICAgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCA9IG51bGxcbiAgICApIHtcbiAgICAgICAgc3VwZXIobGluaywgbWljcm9DbGllbnQsIGNhbGxQYXJhbXMsIHJlcXVlc3RPcHRpb25zKTtcbiAgICAgICAgaWYgKGluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldChpbml0aWFsVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGZyb208VCBleHRlbmRzIChvYmplY3QgfCBvYmplY3RbXSk+KHZhbHVlOiBUKTogTGlua0ZpZWxkPFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQobnVsbCwgbnVsbCwgdmFsdWUsIHRydWUpO1xuICAgIH1cblxuICAgIGdldChjYWxsYmFjaz86IChUKSA9PiB2b2lkKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgdGhpcy5nZXRPYnMoKS5zdWJzY3JpYmUoY2FsbGJhY2spO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJvbWlzZSgpO1xuICAgIH1cblxuICAgIGdldFByb21pc2UoKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGlmICghdGhpcy5fZ2V0UHJvbWlzZSkge1xuICAgICAgICAgICAgdGhpcy5fZ2V0UHJvbWlzZSA9IHRoaXMuZ2V0T2JzKCkudG9Qcm9taXNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFByb21pc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbnRlcnZhbElkID0gbnVsbDtcblxuICAgIHJlZnJlc2goaW50ZXJ2YWw/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGludGVydmFsKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3BSZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRXaXRoT2JzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGludGVydmFsKSB7XG4gICAgICAgICAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFdpdGhPYnMoKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBpbnRlcnZhbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wUmVmcmVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJ2YWxJZCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsSWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGlzdGVuT2JzKCk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICBpZiAodGhpcy52YWx1ZVN1YmopIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlU3ViajtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVTdWJqID0gbmV3IFJlcGxheVN1YmplY3Q8VD4oMSk7XG4gICAgICAgICAgICByZXR1cm4gZGVmZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFdpdGhPYnMobnVsbCwgbnVsbCkuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVTdWJqO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRPYnMoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpc3Rlbk9icygpLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2V0KHZhbHVlOiBUKTogVCB7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlU3Viaikge1xuICAgICAgICAgICAgdGhpcy52YWx1ZVN1YmogPSBuZXcgUmVwbGF5U3ViamVjdDxUPigxKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlU3Viai5uZXh0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5fZ2V0UHJvbWlzZSA9IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIG9sZFZhbHVlO1xuICAgIH1cblxuICAgIGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVkO1xuICAgIH1cblxuICAgIHVuaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52YWx1ZVN1YmogPSBudWxsO1xuICAgICAgICB0aGlzLl9nZXRQcm9taXNlID0gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRJbml0aWFsaXplZFZhbHVlKCk6IFQge1xuICAgICAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhblxcJ3QgZ2V0IHRoZSBpbnRpYWxpemVkIHZhbHVlIGZvciBhIExpbmtGaWVsZCB0aGF0IGhhc25cXCd0IGJlZW4gaW5pdGlhbGl6ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBpbml0V2l0aChwYXJtczogb2JqZWN0ID0gbnVsbCwgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCA9IG51bGwsIGNhbGxiYWNrOiAoVCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLmluaXRXaXRoT2JzKHBhcm1zLCByZXF1ZXN0T3B0aW9ucykuc3Vic2NyaWJlKGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBpbml0V2l0aE9icyhwYXJhbXM6IG9iamVjdCA9IG51bGwsIHJlcXVlc3RPcHRpb25zOiBvYmplY3QgPSBudWxsKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxXaXRoT2JzKHBhcmFtcywgcmVxdWVzdE9wdGlvbnMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXQoPFQ+dmFsdWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgd2l0aENhbGxQYXJhbXMoY2FsbFBhcmFtczogb2JqZWN0LCByZXF1ZXN0T3B0aW9uczogb2JqZWN0ID0gdGhpcy5yZXF1ZXN0T3B0aW9ucyk6IExpbmtGaWVsZDxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgTGlua0ZpZWxkKHRoaXMubGluaywgdGhpcy5taWNyb0NsaWVudCwgdGhpcy52YWx1ZSwgdGhpcy5pbml0aWFsaXplZCwgY2FsbFBhcmFtcywgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNvcHkod2l0aFZhbHVlPzogVCk6IExpbmtGaWVsZDxUPiB7XG4gICAgICAgIGlmICh3aXRoVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQodGhpcy5saW5rLCB0aGlzLm1pY3JvQ2xpZW50LCB0aGlzLnZhbHVlLCB0aGlzLmluaXRpYWxpemVkLCB0aGlzLmNhbGxQYXJhbXMsIHRoaXMucmVxdWVzdE9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQodGhpcy5saW5rLCB0aGlzLm1pY3JvQ2xpZW50LCB3aXRoVmFsdWUsIHRydWUsIHRoaXMuY2FsbFBhcmFtcywgdGhpcy5yZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b0pTT04oKTogYW55IHtcbiAgICAgICAgaWYgKHRoaXMuc2VyaWFsaXplVG8pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZVRvKHRoaXMubGluaywgdGhpcy5jYWxsUGFyYW1zLCB0aGlzLnJlcXVlc3RPcHRpb25zLCB0aGlzLnZhbHVlLCB0aGlzLmlzSW5pdGlhbGl6ZWQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iXX0=
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2ZpZWxkLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pY3JvcGVybWl0L2NsaWVudC1hbmd1bGFyLyIsInNvdXJjZXMiOlsibGliL2xpbmtzL2xpbmtmaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxLQUFLLEVBQWMsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXRELE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV6Qzs7OztJQUFrQyxxQ0FBZTtJQVM3QyxtQkFDSSxJQUFZLEVBQ1osV0FBd0IsRUFDeEIsWUFBc0IsRUFDdEIsV0FBNEIsRUFDNUIsVUFBeUIsRUFDekIsY0FBNkI7UUFIN0IsNkJBQUEsRUFBQSxtQkFBc0I7UUFDdEIsNEJBQUEsRUFBQSxtQkFBNEI7UUFDNUIsMkJBQUEsRUFBQSxpQkFBeUI7UUFDekIsK0JBQUEsRUFBQSxxQkFBNkI7UUFOakMsWUFRSSxrQkFBTSxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxjQUFjLENBQUMsU0FJdkQ7UUFuQk8saUJBQVcsR0FBRyxLQUFLLENBQUM7UUFLckIsaUJBQVcsR0FBd0csY0FBYyxDQUFDLHVCQUF1QixDQUFDO1FBbUN6SixnQkFBVSxHQUFHLElBQUksQ0FBQztRQXhCdEIsSUFBSSxXQUFXLEVBQUU7WUFDYixLQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzFCOztJQUNMLENBQUM7Ozs7OztJQUVNLGNBQUk7Ozs7O0lBQVgsVUFBMkMsS0FBUTtRQUMvQyxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7O0lBRUQsdUJBQUc7Ozs7SUFBSCxVQUFJLFFBQXNCO1FBQ3RCLElBQUks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Ozs7SUFBSixVQUFLLFNBQWE7UUFDZCxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDekIsT0FBTyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3pIO2FBQU07WUFDSCxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzVHO0lBQ0wsQ0FBQzs7OztJQUVELDBCQUFNOzs7SUFBTjtRQUNJLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztTQUM5RzthQUFNO1lBQ0gsT0FBTyxTQUFTLENBQUM7U0FDcEI7SUFDTCxDQUFDO0lBQ0wsZ0JBQUM7QUFBRCxDQUFDLEFBbkpELENBQWtDLFlBQVksR0FtSjdDOzs7Ozs7Ozs7O0lBbEpHLDBCQUFpQjs7Ozs7SUFDakIsZ0NBQTRCOzs7OztJQUM1QixnQ0FBZ0M7Ozs7O0lBRWhDLDhCQUFvQzs7SUFFcEMsZ0NBQWlLOzs7OztJQW1DakssK0JBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkZWZlciwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge01pY3JvQ2xpZW50fSBmcm9tICcuLi9taWNyb2NsaWVudC5zZXJ2aWNlJztcbmltcG9ydCB7Q2FsbGFibGVMaW5rLCBMaW5rU2VyaWFsaXplcn0gZnJvbSAnLi9jYWxsYWJsZWxpbmsnO1xuaW1wb3J0IHttYXAsIHRha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIExpbmtGaWVsZDxUPiBleHRlbmRzIENhbGxhYmxlTGluazxUPiB7XG4gICAgcHJpdmF0ZSB2YWx1ZTogVDtcbiAgICBwcml2YXRlIGluaXRpYWxpemVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfZ2V0UHJvbWlzZTogUHJvbWlzZTxUPjtcblxuICAgIHByaXZhdGUgdmFsdWVTdWJqOiBSZXBsYXlTdWJqZWN0PFQ+O1xuXG4gICAgcHVibGljIHNlcmlhbGl6ZVRvOiAobGluazogc3RyaW5nLCBjYWxsUGFyYW1zOiBvYmplY3QsIHJlcXVlc3RPcHRpb25zOiBvYmplY3QsIHZhbHVlOiBULCBpc0luaXRpYWxpemVkOiBib29sZWFuKSA9PiBhbnkgPSBMaW5rU2VyaWFsaXplci5BU19WQUxVRV9JRl9JTklUSUFMSVpFRDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBsaW5rOiBzdHJpbmcsXG4gICAgICAgIG1pY3JvQ2xpZW50OiBNaWNyb0NsaWVudCxcbiAgICAgICAgaW5pdGlhbFZhbHVlOiBUID0gbnVsbCxcbiAgICAgICAgaW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICAgICAgY2FsbFBhcmFtczogb2JqZWN0ID0gbnVsbCxcbiAgICAgICAgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCA9IG51bGxcbiAgICApIHtcbiAgICAgICAgc3VwZXIobGluaywgbWljcm9DbGllbnQsIGNhbGxQYXJhbXMsIHJlcXVlc3RPcHRpb25zKTtcbiAgICAgICAgaWYgKGluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldChpbml0aWFsVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGZyb208VCBleHRlbmRzIChvYmplY3QgfCBvYmplY3RbXSk+KHZhbHVlOiBUKTogTGlua0ZpZWxkPFQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQobnVsbCwgbnVsbCwgdmFsdWUsIHRydWUpO1xuICAgIH1cblxuICAgIGdldChjYWxsYmFjaz86IChUKSA9PiB2b2lkKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgdGhpcy5nZXRPYnMoKS5zdWJzY3JpYmUoY2FsbGJhY2spO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJvbWlzZSgpO1xuICAgIH1cblxuICAgIGdldFByb21pc2UoKTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGlmICghdGhpcy5fZ2V0UHJvbWlzZSkge1xuICAgICAgICAgICAgdGhpcy5fZ2V0UHJvbWlzZSA9IHRoaXMuZ2V0T2JzKCkudG9Qcm9taXNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldFByb21pc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbnRlcnZhbElkID0gbnVsbDtcblxuICAgIHJlZnJlc2goaW50ZXJ2YWw/OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGludGVydmFsKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3BSZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRXaXRoT2JzKCkuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGludGVydmFsKSB7XG4gICAgICAgICAgICB0aGlzLmludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFdpdGhPYnMoKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBpbnRlcnZhbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdG9wUmVmcmVzaCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJ2YWxJZCkge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsSWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbGlzdGVuT2JzKCk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICBpZiAodGhpcy52YWx1ZVN1YmopIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlU3ViajtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVTdWJqID0gbmV3IFJlcGxheVN1YmplY3Q8VD4oMSk7XG4gICAgICAgICAgICByZXR1cm4gZGVmZXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFdpdGhPYnMobnVsbCwgbnVsbCkuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVTdWJqO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRPYnMoKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxpc3Rlbk9icygpLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2V0KHZhbHVlOiBUKTogVCB7XG4gICAgICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlU3Viaikge1xuICAgICAgICAgICAgdGhpcy52YWx1ZVN1YmogPSBuZXcgUmVwbGF5U3ViamVjdDxUPigxKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbHVlU3Viai5uZXh0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5fZ2V0UHJvbWlzZSA9IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIG9sZFZhbHVlO1xuICAgIH1cblxuICAgIGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVkO1xuICAgIH1cblxuICAgIHVuaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52YWx1ZVN1YmogPSBudWxsO1xuICAgICAgICB0aGlzLl9nZXRQcm9taXNlID0gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRJbml0aWFsaXplZFZhbHVlKCk6IFQge1xuICAgICAgICBpZiAoIXRoaXMuaXNJbml0aWFsaXplZCgpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NhblxcJ3QgZ2V0IHRoZSBpbnRpYWxpemVkIHZhbHVlIGZvciBhIExpbmtGaWVsZCB0aGF0IGhhc25cXCd0IGJlZW4gaW5pdGlhbGl6ZWQnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBpbml0V2l0aChwYXJtczogb2JqZWN0ID0gbnVsbCwgcmVxdWVzdE9wdGlvbnM6IG9iamVjdCA9IG51bGwsIGNhbGxiYWNrOiAoVCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLmluaXRXaXRoT2JzKHBhcm1zLCByZXF1ZXN0T3B0aW9ucykuc3Vic2NyaWJlKGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICBpbml0V2l0aE9icyhwYXJhbXM6IG9iamVjdCA9IG51bGwsIHJlcXVlc3RPcHRpb25zOiBvYmplY3QgPSBudWxsKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxXaXRoT2JzKHBhcmFtcywgcmVxdWVzdE9wdGlvbnMpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXQoPFQ+dmFsdWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgd2l0aENhbGxQYXJhbXMoY2FsbFBhcmFtczogb2JqZWN0LCByZXF1ZXN0T3B0aW9uczogb2JqZWN0ID0gdGhpcy5yZXF1ZXN0T3B0aW9ucyk6IExpbmtGaWVsZDxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgTGlua0ZpZWxkKHRoaXMubGluaywgdGhpcy5taWNyb0NsaWVudCwgdGhpcy52YWx1ZSwgdGhpcy5pbml0aWFsaXplZCwgY2FsbFBhcmFtcywgcmVxdWVzdE9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNvcHkod2l0aFZhbHVlPzogVCk6IExpbmtGaWVsZDxUPiB7XG4gICAgICAgIGlmICh3aXRoVmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQodGhpcy5saW5rLCB0aGlzLm1pY3JvQ2xpZW50LCB0aGlzLnZhbHVlLCB0aGlzLmluaXRpYWxpemVkLCB0aGlzLmNhbGxQYXJhbXMsIHRoaXMucmVxdWVzdE9wdGlvbnMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBMaW5rRmllbGQodGhpcy5saW5rLCB0aGlzLm1pY3JvQ2xpZW50LCB3aXRoVmFsdWUsIHRydWUsIHRoaXMuY2FsbFBhcmFtcywgdGhpcy5yZXF1ZXN0T3B0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b0pTT04oKTogYW55IHtcbiAgICAgICAgaWYgKHRoaXMuc2VyaWFsaXplVG8pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZVRvKHRoaXMubGluaywgdGhpcy5jYWxsUGFyYW1zLCB0aGlzLnJlcXVlc3RPcHRpb25zLCB0aGlzLnZhbHVlLCB0aGlzLmlzSW5pdGlhbGl6ZWQoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4iXX0=
@@ -506,7 +506,7 @@ class LinkField extends CallableLink {
506
506
  this.stopRefresh();
507
507
  }
508
508
  if (this.isInitialized()) {
509
- this.initWithObs();
509
+ this.initWithObs().subscribe();
510
510
  }
511
511
  if (interval) {
512
512
  this.intervalId = setInterval((/**
@@ -1 +1 @@
1
- {"version":3,"file":"micropermit-client-angular.js","sources":["ng://@micropermit/client-angular/lib/paramutils.ts","ng://@micropermit/client-angular/lib/links/callablelink.ts","ng://@micropermit/client-angular/lib/links/linkfield.ts","ng://@micropermit/client-angular/lib/microobject.ts","ng://@micropermit/client-angular/lib/error/microerror.ts","ng://@micropermit/client-angular/lib/microclient.service.ts","ng://@micropermit/client-angular/lib/components/loadingindicator.component.ts","ng://@micropermit/client-angular/lib/pipes/linkfield.pipe.ts","ng://@micropermit/client-angular/lib/components/errorindicator.component.ts","ng://@micropermit/client-angular/lib/directives/linkfield.directive.ts","ng://@micropermit/client-angular/lib/directives/call-link.directive.ts","ng://@micropermit/client-angular/lib/directives/micro-link-validate.directive.ts","ng://@micropermit/client-angular/lib/microclient.module.ts","ng://@micropermit/client-angular/lib/link-field-paging-support.ts","ng://@micropermit/client-angular/lib/links/mock-linkfield.ts"],"sourcesContent":["export class ParamUtils {\n\n private static plusRegex = new RegExp('\\\\+');\n private static slashRegex = new RegExp('/', 'g');\n private static multiEqualRegex = new RegExp('=+$', 'g');\n private static minusRegex = new RegExp('-', 'g');\n private static underscoreRegex = new RegExp('_', 'g');\n\n public static addParam(url: string, key: string, value: string, replaceExisting: boolean = true): string {\n const hasQueryParams = url.indexOf('?') >= 0;\n if (!hasQueryParams) {\n url += '?';\n }\n\n const existingParam: string = ParamUtils.getParam(url, key);\n if (existingParam != null && replaceExisting) {\n url = url.replace(key + '=' + existingParam, key + '=' + value);\n } else {\n if (hasQueryParams) {\n url += '&';\n }\n url += key + '=' + value;\n }\n\n return url;\n }\n\n public static setParams(url: string, params: Object): string {\n const splitted = url.split('?');\n\n let resURL = splitted[0];\n let first = true;\n\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n if (first) {\n resURL += '?';\n first = false;\n }\n\n resURL += key + '=' + params[key];\n }\n }\n return resURL;\n }\n\n public static getParams(url: string): Object {\n const splitted = url.split('?');\n if (splitted.length < 2) {\n return {};\n }\n\n const queryStr = splitted[1];\n const params = {};\n\n const paramsStrs = queryStr.split('&');\n for (const paramStr of paramsStrs) {\n const splittedParamStr = paramStr.split('=', 2);\n const key = splittedParamStr[0];\n\n if (splittedParamStr.length === 2) {\n params[key] = splittedParamStr[1];\n } else {\n params[key] = null;\n }\n }\n return params;\n }\n\n public static base64UrlEncode(toEncode: string): string {\n return btoa(toEncode)\n .replace(ParamUtils.plusRegex, '-')\n .replace(ParamUtils.slashRegex, '_')\n .replace(ParamUtils.multiEqualRegex, '');\n }\n\n public static base64UrlDecode(toDecode: string): string {\n toDecode = (toDecode + '===').slice(0, toDecode.length + (toDecode.length % 4));\n return atob(\n toDecode\n .replace(ParamUtils.minusRegex, '+')\n .replace(ParamUtils.underscoreRegex, '/')\n );\n }\n\n public static needsBase64UrlEncoding(toCheck: any): boolean {\n if (toCheck == null) {\n return false;\n } else {\n return typeof toCheck === 'object';\n }\n }\n\n public static getParam(url: string, name: string, urlDecode: boolean = false): string {\n const paramsQueryIdx = url.indexOf('?');\n url = url.substr(paramsQueryIdx);\n const regExp = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)'));\n const match = regExp.exec(url);\n if (match) {\n if (urlDecode && match[1]) {\n return this.base64UrlDecode(match[1]);\n } else {\n return match[1];\n }\n } else {\n return null;\n }\n }\n}\n","import {MicroClient} from '../microclient.service';\nimport {Observable} from 'rxjs';\nimport {MicroObject} from '../microobject';\nimport {ParamUtils} from '../paramutils';\n\nexport class CallableLink<T> {\n\n constructor(\n protected link: string,\n protected microClient: MicroClient,\n protected callParams: object = null,\n protected requestOptions: object = null\n ) {\n }\n\n public serializeTo: (link: string, callParams: object, requestOptions: object, value: any, isInitialized: boolean) => any = LinkSerializer.DONT_SERIALIZE;\n\n hasLink(): Boolean {\n return this.link != null;\n }\n\n getLink(): string {\n return this.link;\n }\n\n getQueryParam(key: string, urlDecode: boolean = false) {\n return ParamUtils.getParam(this.link, key, urlDecode);\n }\n\n getSignedParams(): MicroObject | MicroObject[] {\n let params = this.getSignedMicroObjectParam('params');\n if (params == null) {\n params = this.getSignedMicroObjectParam('bParams');\n }\n return params;\n }\n\n getOpenParams(copy: boolean = false): MicroObject | MicroObject[] {\n let params: MicroObject | MicroObject[] = this.getMicroObjectParam('oParams');\n if (params == null) {\n params = this.getMicroObjectParam('bOParams');\n } else {\n if (copy) {\n params = MicroObject.fromString(JSON.stringify(params), this.microClient);\n }\n\n if (this.callParams) {\n params = Object.assign(params, this.callParams);\n }\n }\n return params;\n }\n\n getOptions(): MicroObject {\n let options = this.getMicroObjectParam('options');\n\n if (this.requestOptions) {\n if (options == null) {\n options = new MicroObject();\n }\n options = Object.assign(options, this.requestOptions);\n }\n\n return options;\n }\n\n private getSignedMicroObjectParam(key: string): MicroObject {\n const paramsStr = ParamUtils.getParam(this.link, key, false);\n let params = null;\n if (paramsStr) {\n const splitted = paramsStr.split('.');\n if (splitted.length !== 3) {\n throw new Error('Expected a signed query param to have a JWT like structure');\n }\n params = MicroObject.fromString(atob(splitted[1]), this.microClient);\n }\n return params;\n }\n\n getMicroObjectParam(key: string): MicroObject {\n const paramsStr = ParamUtils.getParam(this.link, key, true);\n let params = null;\n if (paramsStr) {\n params = MicroObject.fromString(paramsStr, this.microClient);\n }\n return params;\n }\n\n call(onNext: (T) => void): Promise<T> {\n return this.callWith(null, null, onNext);\n }\n\n callWith(params: object = null, requestOptions: object = null, onNext: (T) => void): Promise<T> {\n return <Promise<T>>this.callWithObs(params, requestOptions).toPromise().then(onNext);\n }\n\n callWithObs(params: object = null, requestOptions: object = null): Observable<T> {\n if (this.link == null) {\n throw Error('Can\\'t use callWithObs without a provided link');\n }\n if (this.microClient == null) {\n throw Error('Can\\'t use callWithObs without a provided microClient');\n }\n\n let paramsToUse = null;\n if (this.callParams != null) {\n paramsToUse = Object.assign(new MicroObject(), this.callParams);\n }\n if (params) {\n if (paramsToUse == null) {\n paramsToUse = new MicroObject();\n }\n paramsToUse = Object.assign(paramsToUse, params);\n }\n\n let optionsToUse = null;\n if (this.requestOptions != null) {\n optionsToUse = Object.assign(new MicroObject(), this.requestOptions);\n }\n if (requestOptions) {\n if (optionsToUse == null) {\n optionsToUse = new MicroObject();\n }\n optionsToUse = Object.assign(optionsToUse, requestOptions);\n }\n\n return <Observable<T>> this.microClient.load(this.link, paramsToUse, optionsToUse);\n }\n\n copy(): CallableLink<T> {\n return new CallableLink(this.link, this.microClient, this.callParams, this.requestOptions);\n }\n\n withCallParams(callParams: object, requestOptions: object = this.requestOptions) {\n return new CallableLink(this.link, this.microClient, callParams, requestOptions);\n }\n\n toJSON(): any {\n if (this.serializeTo) {\n return this.serializeTo(this.link, this.callParams, this.requestOptions, undefined, undefined);\n } else {\n return undefined;\n }\n }\n}\n\n// @dynamic\nexport class LinkSerializer {\n public static DONT_SERIALIZE = function () {\n return undefined;\n };\n\n public static AS_LINK = function (link: string) {\n return link;\n };\n\n public static AS_VALUE_IF_INITIALIZED = function (link: string, callParams: object, requestOptions: object, value: any, isInitialized: boolean) {\n if (isInitialized) {\n return value;\n } else {\n return undefined;\n }\n };\n}\n","import {defer, Observable, ReplaySubject} from 'rxjs';\nimport {MicroClient} from '../microclient.service';\nimport {CallableLink, LinkSerializer} from './callablelink';\nimport {map, take} from 'rxjs/operators';\n\nexport class LinkField<T> extends CallableLink<T> {\n private value: T;\n private initialized = false;\n private _getPromise: Promise<T>;\n\n private valueSubj: ReplaySubject<T>;\n\n public serializeTo: (link: string, callParams: object, requestOptions: object, value: T, isInitialized: boolean) => any = LinkSerializer.AS_VALUE_IF_INITIALIZED;\n\n constructor(\n link: string,\n microClient: MicroClient,\n initialValue: T = null,\n initialized: boolean = false,\n callParams: object = null,\n requestOptions: object = null\n ) {\n super(link, microClient, callParams, requestOptions);\n if (initialized) {\n this.set(initialValue);\n }\n }\n\n static from<T extends (object | object[])>(value: T): LinkField<T> {\n return new LinkField(null, null, value, true);\n }\n\n get(callback?: (T) => void): Promise<T> {\n if (callback) {\n this.getObs().subscribe(callback);\n return null;\n }\n return this.getPromise();\n }\n\n getPromise(): Promise<T> {\n if (!this._getPromise) {\n this._getPromise = this.getObs().toPromise();\n }\n return this._getPromise;\n }\n\n private intervalId = null;\n\n refresh(interval?: number) {\n if (interval) {\n this.stopRefresh();\n }\n if (this.isInitialized()) {\n this.initWithObs();\n }\n if (interval) {\n this.intervalId = setInterval(() => {\n if (this.isInitialized()) {\n this.initWithObs().subscribe();\n }\n }, interval);\n }\n }\n\n stopRefresh() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n\n listenObs(): Observable<T> {\n if (this.valueSubj) {\n return this.valueSubj;\n } else {\n this.valueSubj = new ReplaySubject<T>(1);\n return defer(() => {\n this.initWithObs(null, null).subscribe();\n return this.valueSubj;\n });\n }\n }\n\n getObs(): Observable<T> {\n return this.listenObs().pipe(\n take(1)\n );\n }\n\n set(value: T): T {\n const oldValue = this.value;\n this.value = value;\n this.initialized = true;\n if (!this.valueSubj) {\n this.valueSubj = new ReplaySubject<T>(1);\n }\n this.valueSubj.next(value);\n this._getPromise = null;\n\n return oldValue;\n }\n\n isInitialized(): boolean {\n return this.initialized;\n }\n\n uninitialize() {\n this.value = null;\n this.initialized = false;\n this.valueSubj = null;\n this._getPromise = null;\n }\n\n getInitializedValue(): T {\n if (!this.isInitialized()) {\n throw new Error('Can\\'t get the intialized value for a LinkField that hasn\\'t been initialized');\n }\n return this.value;\n }\n\n initWith(parms: object = null, requestOptions: object = null, callback: (T) => void) {\n this.initWithObs(parms, requestOptions).subscribe(callback);\n }\n\n initWithObs(params: object = null, requestOptions: object = null): Observable<T> {\n return this.callWithObs(params, requestOptions).pipe(\n map((value) => {\n this.set(<T>value);\n return value;\n })\n );\n }\n\n withCallParams(callParams: object, requestOptions: object = this.requestOptions): LinkField<T> {\n return new LinkField(this.link, this.microClient, this.value, this.initialized, callParams, requestOptions);\n }\n\n copy(withValue?: T): LinkField<T> {\n if (withValue === undefined) {\n return new LinkField(this.link, this.microClient, this.value, this.initialized, this.callParams, this.requestOptions);\n } else {\n return new LinkField(this.link, this.microClient, withValue, true, this.callParams, this.requestOptions);\n }\n }\n\n toJSON(): any {\n if (this.serializeTo) {\n return this.serializeTo(this.link, this.callParams, this.requestOptions, this.value, this.isInitialized());\n } else {\n return undefined;\n }\n }\n}\n\n","import {MicroClient} from './microclient.service';\nimport {LinkField} from './links/linkfield';\nimport {CallableLink, LinkSerializer} from './links/callablelink';\nimport {MicroError} from './error/microerror';\n\nexport interface MicroObject {\n __meta: MicroObjectMetadata;\n}\n\nexport class MicroObject implements MicroObject {\n public static META_KEY = '__meta';\n\n __meta: MicroObjectMetadata = undefined;\n\n public static deepCopy<T extends object | object[]>(toCopy: T, client: MicroClient): T {\n return <T>MicroObject.fromString(JSON.stringify(toCopy), client);\n }\n\n public static fromString<T extends object>(str: string, client: MicroClient, prototype: T = null): T | T[] {\n const obj = JSON.parse(str);\n return this.fromObject(obj, client, prototype);\n }\n\n public static fromObject<T extends object>(obj: any, client: MicroClient, prototype: T = null): T | T[] {\n if(obj === null){\n return null;\n }\n\n if (Array.isArray(obj)) {\n const objArr: T[] = obj;\n for (let i = 0; i < objArr.length; i++) {\n const elem = objArr[i];\n if (typeof elem === 'object') {\n objArr[i] = <T>MicroObject.fromObject(elem, client, prototype);\n }\n }\n return objArr;\n } else {\n for (const field in obj) {\n if (field !== MicroObject.META_KEY && obj.hasOwnProperty(field)) {\n const fieldValue = obj[field];\n if (fieldValue) {\n if (fieldValue instanceof Object || Array.isArray(fieldValue)) {\n obj[field] = MicroObject.fromObject(fieldValue, client, prototype);\n }\n }\n }\n }\n\n const src = prototype == null ? MicroObject.prototype : prototype;\n const microObject: MicroObject = Object.assign(Object.create(src), obj);\n\n\n MicroObject.attachMetadataObject(microObject, client);\n\n return <T>microObject;\n }\n\n }\n\n private static attachMetadataObject(microObject: MicroObject, client: MicroClient) {\n const rawMeta: MicroObjectMetadata = microObject != null ? microObject[MicroObject.META_KEY] : null;\n if (rawMeta != null) {\n let clientToUse = client;\n if (rawMeta.permitToken) {\n if (client.getEntryPoint() != null) {\n clientToUse = client.createChildClientForEntryPoint(microObject);\n }\n }\n\n microObject.__meta = MicroObjectMetadata.fromObject(microObject.__meta, clientToUse);\n\n MicroObject.attachLinkFields(microObject.__meta, microObject, clientToUse);\n MicroObject.attachCallableLinks(microObject.__meta, microObject, clientToUse);\n\n } else {\n return null;\n }\n }\n\n private static attachLinkFields(meta: MicroObjectMetadata, microObject: MicroObject, client: MicroClient) {\n meta.forEachLink((linkName, linkUrl) => {\n const value = microObject[linkName];\n microObject[linkName] = new LinkField(linkUrl, client, value, value !== undefined);\n });\n }\n\n private static attachCallableLinks(meta: MicroObjectMetadata, microObject: MicroObject, client: MicroClient) {\n meta.forEachAction((linkName, linkUrl) => {\n microObject[linkName] = new CallableLink(linkUrl, client);\n });\n }\n}\n\nexport class MicroObjectMetadata {\n links: any;\n actions: any;\n permitToken: string;\n nextPage: LinkField<any>;\n error: MicroError;\n\n\n static fromObject(obj: object, client: MicroClient): MicroObjectMetadata {\n const objMetadata = Object.assign(new MicroObjectMetadata(), obj);\n\n if (objMetadata.nextPage != null) {\n objMetadata.nextPage = new LinkField(<any>objMetadata.nextPage, client);\n objMetadata.nextPage.serializeTo = LinkSerializer.AS_LINK;\n }\n\n return objMetadata;\n }\n\n public getLinkUrl(key: string): string {\n return this.links[key];\n }\n\n public hasLink(key: string): boolean {\n return this.links[key] != null;\n }\n\n public forEachLink(op: (linkName: string, link: string) => void) {\n for (const link in this.links) {\n if (this.links.hasOwnProperty(link)) {\n op(link, this.links[link]);\n }\n }\n }\n\n public forEachAction(op: (linkName: string, link: string) => void) {\n for (const link in this.actions) {\n if (this.actions.hasOwnProperty(link)) {\n op(link, this.actions[link]);\n }\n }\n }\n\n\n}\n","export class MicroError {\n timestamp: number;\n errorMessage: string;\n atService: string;\n atEndpoint: string;\n instanceID: string;\n httpEquivCode: number;\n cause: MicroError;\n errorID: string;\n errorType: Array<String>;\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient, HttpErrorResponse, HttpHeaders} from '@angular/common/http';\nimport {MicroObject} from './microobject';\nimport {Observable, ReplaySubject, Subject, throwError} from 'rxjs';\nimport {catchError, finalize, map, take, shareReplay} from 'rxjs/operators';\nimport {ParamUtils} from './paramutils';\nimport {MicroError} from './error/microerror';\n\n@Injectable()\nexport class MicroClient {\n\n private authHeader: string;\n private permitToken: string;\n private entryPoint: MicroObject;\n\n private entryPointSubject: ReplaySubject<MicroObject> = new ReplaySubject<MicroObject>();\n\n private urlRewriter: (string) => string;\n private defaultErrorHandler: (httpError: HttpErrorResponse, microError: MicroObject) => void;\n public usePost = true;\n\n public sendAsPermitTokenHeader = true;\n\n constructor(private httpClient: HttpClient) {\n\n }\n\n public setSendAsPermitTokenHeader(sendAsPermitTokenHeader: boolean) {\n this.sendAsPermitTokenHeader = sendAsPermitTokenHeader;\n }\n\n public setAuthToken(token: string) {\n this.authHeader = 'Bearer ' + token;\n this.permitToken = token;\n }\n\n public setAuthHeader(authHeader: string) {\n this.authHeader = authHeader;\n }\n\n public getEntryPoint(): any {\n return this.entryPoint;\n }\n\n public waitForEntryPoint(cb?: (entryPoint: any) => void): Promise<any> {\n if (cb != null) {\n this.entryPointSubject.subscribe(cb);\n return null;\n }\n return this.entryPointSubject.toPromise();\n }\n\n public copyAuthAndEntrypointOf(other: MicroClient) {\n this.authHeader = other.authHeader;\n this.permitToken = other.permitToken;\n this.entryPoint = other.entryPoint;\n }\n\n public setEntryPoint<T extends MicroObject>(entryPoint: any) {\n if (entryPoint == null) {\n this.authHeader = null;\n this.entryPoint = null;\n this.permitToken = null;\n } else {\n this.entryPoint = entryPoint;\n if (this.entryPoint.__meta && this.entryPoint.__meta.permitToken) {\n this.setAuthToken(this.entryPoint.__meta.permitToken);\n } else {\n throw Error('Expected the entryPoint to contain a \"permitToken\" within the \"__meta\" field');\n }\n this.entryPointSubject.next(entryPoint);\n }\n }\n\n public setDefaultErrorHandler(handler: (httpError: HttpErrorResponse, microError: MicroObject) => void) {\n this.defaultErrorHandler = handler;\n }\n\n public handleError(httpErr: HttpErrorResponse) {\n if (this.defaultErrorHandler) {\n const microError = MicroClient.toMicroError(httpErr);\n if (microError) {\n const microResultObj: MicroObject = <MicroObject>MicroObject.fromObject(httpErr.error, this);\n this.defaultErrorHandler(httpErr, microResultObj);\n } else {\n this.defaultErrorHandler(httpErr, null);\n }\n }\n }\n\n public ignite<T extends (MicroObject | MicroObject[])>(\n url: string,\n username: String = null,\n password: String = null,\n headers: object = {}\n ): Observable<T> {\n if (this.urlRewriter) {\n url = this.urlRewriter(url);\n }\n\n let requestHeaders = new HttpHeaders();\n for (const headerKey in headers) {\n if (headers.hasOwnProperty(headerKey)) {\n requestHeaders = requestHeaders.set(headerKey, headers[headerKey]);\n }\n }\n\n if (username != null || password != null) {\n requestHeaders = requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n return this.httpClient.get(url, {\n headers: requestHeaders\n }).pipe(\n map(val => {\n const entryPoint = MicroObject.fromObject(val, this);\n if (entryPoint instanceof MicroObject) {\n this.setEntryPoint(entryPoint);\n return entryPoint as T;\n } else {\n throw Error('Expected the entryPoint to be a Object');\n }\n }),\n this.catchAndHandleError()\n );\n }\n\n public load<T>(\n url: string,\n params?: object,\n requestOptions?: object\n ): Observable<T> {\n let requestHeaders = new HttpHeaders();\n if (this.authHeader) {\n requestHeaders = requestHeaders.set('Authorization', this.authHeader);\n\n if (this.sendAsPermitTokenHeader) {\n requestHeaders = requestHeaders.set('MicroPermitToken', this.permitToken);\n }\n }\n\n let oParams = params;\n if (params != null || this.usePost) {\n const existingParamsStr = ParamUtils.getParam(url, 'oParams', true);\n let existingParams;\n if (existingParamsStr) {\n existingParams = JSON.parse(existingParamsStr);\n } else {\n existingParams = {};\n }\n oParams = Object.assign(existingParams, params);\n }\n\n let options = requestOptions;\n if (requestOptions != null || this.usePost) {\n const prevOptionsStr = ParamUtils.getParam(url, 'options', true);\n if (prevOptionsStr) {\n options = JSON.parse(prevOptionsStr);\n } else {\n options = {};\n }\n\n options = Object.assign(options, requestOptions);\n }\n\n const queryParams = ParamUtils.getParams(url);\n\n let httpObs = null;\n if (this.usePost) {\n\n let bOParams;\n const encBOParams = queryParams['bOParams'];\n if (encBOParams) {\n bOParams = JSON.parse(ParamUtils.base64UrlDecode(encBOParams));\n }\n const body = {\n params: queryParams['params'],\n oParams: oParams,\n bParams: queryParams['bParams'],\n bOParams: bOParams,\n options: options,\n };\n\n delete queryParams['params'];\n delete queryParams['oParams'];\n delete queryParams['bParams'];\n delete queryParams['bOParams'];\n delete queryParams['options'];\n\n url = ParamUtils.setParams(url, queryParams);\n\n if (this.urlRewriter) {\n url = this.urlRewriter(url);\n }\n\n httpObs = this.httpClient.post(url, body, {\n headers: requestHeaders\n });\n } else {\n if (oParams) {\n queryParams['oParams'] = ParamUtils.base64UrlEncode(JSON.stringify(oParams));\n }\n\n if (options) {\n queryParams['options'] = ParamUtils.base64UrlEncode(JSON.stringify(options));\n }\n url = ParamUtils.setParams(url, queryParams);\n\n if (this.urlRewriter) {\n url = this.urlRewriter(url);\n }\n\n httpObs = this.httpClient.get(url, {\n headers: requestHeaders\n });\n }\n\n httpObs = httpObs.pipe(\n map(val => {\n return MicroObject.fromObject(val, this);\n }),\n this.catchAndHandleError()\n )\n ;\n\n return httpObs;\n }\n\n private catchAndHandleError<T>(): ((source: Observable<T>) => Observable<T>) {\n return (source: Observable<T>) => {\n return source.pipe(\n catchError(err => {\n let loadError = new MicroClientLoadError(err, (errToHandle) => {\n this.handleError(errToHandle);\n });\n return throwError(loadError).pipe(\n finalize(() => {\n if (!loadError.shouldPreventDefault()) {\n loadError.handleDefault();\n }\n })\n );\n })\n );\n };\n }\n\n public createChildClientForEntryPoint(entryPoint: MicroObject): MicroClient {\n if (entryPoint.__meta && entryPoint.__meta.permitToken) {\n const childClient: MicroClient = Object.create(this, {\n entryPoint: {\n configurable: true,\n enumerable: true,\n writable: true\n },\n authHeader: {\n configurable: true,\n enumerable: true,\n writable: true\n },\n permitToken: {\n configurable: true,\n enumerable: true,\n writable: true\n }\n });\n childClient.setEntryPoint(entryPoint);\n return childClient;\n } else {\n throw new Error('The supplied value can\\'t be used to construct a child MicroClient because it doesn\\'t contain metadata with a permitToken ');\n }\n }\n\n public setURLRewriter(rewriter: (string) => string) {\n this.urlRewriter = rewriter;\n }\n\n public static toMicroError(httpResponse: HttpErrorResponse): MicroError {\n const res = httpResponse.error;\n if (res && res.__meta && res.__meta.error) {\n return Object.assign(new MicroError(), res.__meta.error);\n }\n return null;\n }\n\n private static staticContentRegExp = new RegExp('[a-zA-Z0-9]://.*(:[0-9]+)?(/.*)*/static(/.*(\\\\?.*)?(#.*)?)?');\n\n public static guessMicroComponentBaseURL(): string {\n const href = window.location.href;\n\n // Last URL-Segement is static\n if (MicroClient.staticContentRegExp.test(href)) {\n return href.replace(new RegExp('/static/.*'), '')\n .replace(new RegExp('/#/.*'), '');\n } else {\n if (window.location.protocol.startsWith('file')) {\n return 'http://localhost:8080';\n } else {\n return window.location.protocol + '//' + window.location.hostname + ':8080';\n }\n }\n }\n\n public static guessMicroComponentAuthorizeURL(): string {\n return this.guessMicroComponentBaseURL() + '/authorize';\n }\n}\n\nexport class MicroClientLoadError {\n private handled = false;\n private doPreventDefault = false;\n\n constructor(private error: any, private defaultHandler: (err: any) => void) {\n\n }\n\n public handleDefault() {\n if (this.defaultHandler) {\n this.defaultHandler(this.error);\n this.handled = true;\n }\n }\n\n public handleError(handler: (error: any) => void) {\n handler(this.error);\n this.handled = true;\n }\n\n public isHandled(): boolean {\n return this.handled;\n }\n\n public shouldPreventDefault(): boolean {\n return this.doPreventDefault;\n }\n\n public preventDefault(): void {\n this.doPreventDefault = true;\n }\n\n public hasDefaultHandler(): boolean {\n return this.defaultHandler != null;\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'mc-loadingindicator',\n template: `\n <div id=\"container\">\n <div id=\"bar\"></div>\n </div>\n `,\n styles: [`\n #container {\n display: block;\n overflow: hidden;\n width: 100%;\n height: 5px;\n -webkit-transform: translate(0, 0) scale(1, 1);\n transform: translate(0, 0) scale(1, 1);\n background-color: #aad1f9;\n }\n #container #bar {\n transition: all .2s linear;\n -webkit-animation: query 0.8s infinite cubic-bezier(0.39, 0.575, 0.565, 1);\n animation: query 0.8s infinite cubic-bezier(0.39, 0.575, 0.565, 1);\n transition: -webkit-transform .2s linear;\n transition: transform .2s linear;\n background-color: #106cc8;\n width: 100%;\n height: 5px;\n }\n @keyframes query {\n 0% {\n opacity: 1;\n transform: translateX(35%) scale(0.3, 1);\n }\n 100% {\n opacity: 0;\n transform: translateX(-50%) scale(0, 1);\n }\n }\n `]\n})\nexport class MicroClientLoadingIndicatorComponent { }\n","import {LinkField} from '../links/linkfield';\nimport {PipeTransform, Pipe, OnDestroy, ChangeDetectorRef} from '@angular/core';\nimport {MicroObject} from '../microobject';\nimport {AsyncPipe} from '@angular/common';\n\n@Pipe({name: 'linkField', pure: false})\nexport class LinkFieldPipe implements OnDestroy, PipeTransform {\n\n private asyncPipe: AsyncPipe;\n\n constructor(changeDetectorRef: ChangeDetectorRef) {\n this.asyncPipe = new AsyncPipe(changeDetectorRef);\n }\n\n ngOnDestroy(): void {\n this.asyncPipe.ngOnDestroy();\n }\n\n transform<T extends (MicroObject | MicroObject[])>(linkField: LinkField<T>): any {\n if (linkField == null) {\n return null;\n }\n if (linkField instanceof LinkField) {\n return this.asyncPipe.transform(linkField.getObs());\n } else {\n // return linkField;\n throw new Error('Can\\'t use the linkField pipe with a value which isn\\'t an instance of LinkField');\n }\n }\n\n}\n","import {Component, Input} from '@angular/core';\nimport {MicroClientLoadError} from '../microclient.service';\n\n@Component({\n selector: 'mc-errorindicator',\n template: `\n <div class=\"blinking-error\" [class.clickable]=\"error.hasDefaultHandler()\" (click)=\"onClick()\"></div>\n `,\n styles: [`\n .blinking-error {\n background-image: linear-gradient(to right, tomato 0%, darkred 50%, tomato 100%);\n animation: blinkingText 0.5s 1;\n height: 5px;\n }\n\n .blinking-error.clickable {\n cursor: pointer;\n }\n\n @keyframes blinkingText {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n `]\n})\nexport class MicroClientErrorIndicatorComponent {\n @Input()\n error: MicroClientLoadError;\n\n onClick() {\n this.error.handleDefault();\n }\n}\n","import {\n Directive,\n Input,\n TemplateRef,\n ViewContainerRef,\n ComponentFactoryResolver,\n ComponentFactory,\n DoCheck,\n OnDestroy, ChangeDetectorRef, Output, EventEmitter\n} from '@angular/core';\nimport {LinkField} from '../links/linkfield';\nimport {MicroObject} from '../microobject';\nimport {Observable, Subscription} from 'rxjs';\nimport {MicroClientLoadingIndicatorComponent} from '../components/loadingindicator.component';\nimport {MicroClientErrorIndicatorComponent} from '../components/errorindicator.component';\nimport {finalize} from 'rxjs/operators';\nimport {MicroClientLoadError} from '../microclient.service';\n\n@Directive({\n selector: '[linkField][linkFieldFrom]'\n})\nexport class LinkFieldDirective<T> implements DoCheck, OnDestroy {\n\n private _from: LinkField<T> | T;\n private _loadingTemplate: TemplateRef<any>;\n private _errorTemplate: TemplateRef<any>;\n private _defaultLoadingComponent: ComponentFactory<MicroClientLoadingIndicatorComponent>;\n private _defaultErrorComponent: ComponentFactory<MicroClientErrorIndicatorComponent>;\n\n private isDirty = true;\n private isLoading = false;\n private loadedResult: T = null;\n private hasResult = false;\n\n private lastObs: Observable<T>;\n private subscription: Subscription = null;\n\n private currentContext: LinkFieldContext<T>;\n\n constructor(\n private _viewContainer: ViewContainerRef,\n private _template: TemplateRef<LinkFieldContext<T>>,\n private componentResolver: ComponentFactoryResolver,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n this._defaultLoadingComponent = componentResolver.resolveComponentFactory(MicroClientLoadingIndicatorComponent);\n this._defaultErrorComponent = componentResolver.resolveComponentFactory(MicroClientErrorIndicatorComponent);\n }\n\n @Input()\n set linkFieldFrom(from: LinkField<T>) {\n this._from = from;\n this.clear();\n this.load();\n }\n\n @Input()\n set linkFieldLoadingTemplate(loadingTemplate: TemplateRef<any>) {\n if (loadingTemplate) {\n this._loadingTemplate = loadingTemplate;\n }\n this.updateIfDirty(true);\n }\n\n @Input()\n set linkFieldErrorTemplate(errorTemplate: TemplateRef<any>) {\n if (errorTemplate) {\n this._errorTemplate = errorTemplate;\n }\n this.updateIfDirty(true);\n }\n\n @Input()\n set linkFieldTemplate(value: TemplateRef<LinkFieldContext<T>>) {\n if (value) {\n this._template = value;\n }\n }\n\n @Input()\n linkFieldDefaultErrorHandling = false;\n\n @Input()\n linkFieldValueChange: (T) => void;\n\n private load() {\n if (this._from) {\n if (this._from instanceof LinkField) {\n this.setLoading(true);\n this.lastObs = this._from.listenObs();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n this.subscription = this.lastObs.pipe(\n finalize(() => {\n this.setLoading(false);\n })\n ).subscribe((loadedResult: T) => {\n this.setLoadedResult(loadedResult);\n if (this.linkFieldValueChange) {\n this.linkFieldValueChange(loadedResult);\n }\n }, (loadError: MicroClientLoadError) => {\n if (!this.linkFieldDefaultErrorHandling) {\n loadError.preventDefault();\n }\n this.setError(loadError);\n });\n } else {\n this.setLoadedResult(this._from);\n // this.setLoadedResult(this._from);\n // throw new Error('Can\\'t use the linkField directive with a from value which isn\\'t an instance of LinkField');\n }\n }\n }\n\n\n ngDoCheck() {\n this.updateIfDirty();\n if (this._from) {\n if (this._from instanceof LinkField && this.lastObs !== this._from.listenObs()) {\n this.load();\n }\n }\n }\n\n ngOnDestroy() {\n this.clear();\n }\n\n private setError(error: MicroClientLoadError) {\n this._viewContainer.remove();\n if (this._errorTemplate) {\n this._viewContainer.createEmbeddedView(this._errorTemplate, {\n $implicit: error\n });\n } else {\n let errorComponentInstance = this._viewContainer.createComponent(this._defaultErrorComponent);\n errorComponentInstance.instance['error'] = error;\n }\n }\n\n\n private setLoading(loading: boolean) {\n this.isLoading = loading;\n if (this.isLoading) {\n if (this._loadingTemplate) {\n this._viewContainer.remove();\n this._viewContainer.createEmbeddedView(this._loadingTemplate);\n } else {\n this._viewContainer.remove();\n this._viewContainer.createComponent(this._defaultLoadingComponent);\n }\n }\n }\n\n private setLoadedResult(result: T) {\n this.hasResult = true;\n this.loadedResult = result;\n if (this.currentContext == null) {\n this.currentContext = new LinkFieldContext<T>(result);\n this.isDirty = true;\n } else {\n this.currentContext.$implicit = result;\n this.changeDetectorRef.markForCheck();\n }\n if (!this._viewContainer || !this._template) {\n this.isDirty = true;\n } else {\n if (this.isDirty) {\n this._viewContainer.remove();\n this._viewContainer.createEmbeddedView(this._template, this.currentContext);\n }\n }\n }\n\n private updateIfDirty(ignoreDirty: boolean = false) {\n if ((this.isDirty || ignoreDirty) && this._loadingTemplate && this._from && this._template && this._viewContainer) {\n if (this.hasResult) {\n this.setLoadedResult(this.loadedResult);\n }\n this.isDirty = false;\n }\n }\n\n private clear() {\n this.hasResult = false;\n this.loadedResult = null;\n this.isDirty = false;\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = null;\n }\n this.lastObs = null;\n this.currentContext = null;\n }\n}\n\nexport class LinkFieldContext<T> {\n\n constructor(public $implicit: T) {\n }\n}\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive, ElementRef, EmbeddedViewRef,\n EventEmitter, HostListener,\n Input, OnDestroy, OnInit,\n Output, Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport {MicroObject} from '../microobject';\nimport {CallableLink} from '../links/callablelink';\nimport {MicroError} from '../error/microerror';\n\n@Directive({\n selector: '[callLink]'\n})\nexport class CallLinkDirective {\n @Input()\n callLink: CallableLink<MicroObject | MicroObject[]>;\n\n @Output()\n callStatusChange: EventEmitter<CallStatus> = new EventEmitter();\n\n @Output()\n callSucess: EventEmitter<MicroObject | MicroObject[]> = new EventEmitter();\n\n @Output()\n callFinish: EventEmitter<void> = new EventEmitter();\n\n @Output()\n callError: EventEmitter<MicroError> = new EventEmitter();\n\n @Output()\n callStart: EventEmitter<void> = new EventEmitter();\n\n @Input()\n callOptions: object;\n\n @Input()\n callParameters: object;\n\n @HostListener('click')\n onClick() {\n this.callLink.callWithObs(this.callParameters, this.callOptions).subscribe((response) => {\n this.callSucess.emit(response);\n this.callStatusChange.emit(new CallStatus(this.callLink, CallState.SUCCESS, response, null));\n }, (error) => {\n this.callError.emit(error);\n this.callStatusChange.emit(new CallStatus(this.callLink, CallState.ERROR, null, error));\n }, () => {\n this.callFinish.emit();\n });\n this.callStatusChange.emit(new CallStatus(this.callLink, CallState.CALLING, null, null));\n }\n}\n\nexport class CallStatus {\n constructor(\n public link: CallableLink<MicroObject | MicroObject[]>,\n public state: CallState,\n public response: MicroObject | MicroObject[],\n public error: MicroError\n ) {\n }\n}\n\nexport enum CallState {\n CALLING,\n SUCCESS,\n ERROR\n}\n","import {Directive, forwardRef, Input} from '@angular/core';\nimport {\n AbstractControl,\n FormGroup,\n NG_ASYNC_VALIDATORS,\n ValidationErrors,\n Validator\n} from '@angular/forms';\nimport {Observable, timer} from 'rxjs';\nimport {map, switchMap} from 'rxjs/operators';\nimport {CallableLink} from '../links/callablelink';\n\n@Directive({\n selector: '[microLinkValidate]',\n providers: [\n {\n provide: NG_ASYNC_VALIDATORS,\n useExisting: forwardRef(() => MicroLinkValidateDirective),\n multi: true\n }\n ],\n exportAs: 'microValidator'\n})\nexport class MicroLinkValidateDirective implements Validator {\n\n private UNSET = \"\"\n\n @Input()\n microLinkValidate: CallableLink<any>\n\n @Input()\n microLinkValidateField: string = null\n\n @Input()\n microLinkValidateValue: any = this.UNSET\n\n @Input()\n microLinkValidateDebounce = 500;\n\n public result:any;\n\n\n validate(control: AbstractControl): Observable<ValidationErrors | null> {\n return timer(this.microLinkValidateDebounce).pipe(\n switchMap(() => {\n let validateValue = this.microLinkValidateValue\n if (validateValue === this.UNSET) {\n validateValue = control.value\n }\n\n let obj = {}\n if (this.microLinkValidateField) {\n obj[this.microLinkValidateField] = validateValue\n } else {\n obj = validateValue\n }\n\n return this.microLinkValidate.callWithObs(obj, null).pipe(\n map(validationRes => {\n let hasErrors = false\n if (this.microLinkValidateField) {\n if (validationRes[this.microLinkValidateField] != null) {\n hasErrors = true\n }\n } else {\n for (let key in validationRes) {\n if (validationRes[key] != null) {\n hasErrors = true\n }\n }\n }\n if (hasErrors) {\n this.result = validationRes\n return {\n validateMicroLink: this.result\n }\n\n } else {\n this.result = null\n return null\n }\n })\n )\n })\n )\n }\n\n getControlName(control: AbstractControl) {\n let controlName = null;\n let parent = control.parent;\n\n // only such parent, which is FormGroup, has a dictionary\n // with control-names as a key and a form-control as a value\n if (parent instanceof FormGroup) {\n // now we will iterate those keys (i.e. names of controls)\n Object.keys(parent.controls).forEach((name) => {\n // and compare the passed control and\n // a child control of a parent - with provided name (we iterate them all)\n if (control === parent.controls[name]) {\n // both are same: control passed to Validator\n // and this child - are the same references\n controlName = name;\n }\n });\n }\n // we either found a name or simply return null\n return controlName;\n }\n\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {MicroClientLoadingIndicatorComponent} from './components/loadingindicator.component';\nimport {LinkFieldPipe} from './pipes/linkfield.pipe';\nimport {LinkFieldDirective} from './directives/linkfield.directive';\nimport {MicroClient} from './microclient.service';\nimport {HttpClientModule} from '@angular/common/http';\nimport {CallLinkDirective} from './directives/call-link.directive';\nimport {MicroClientErrorIndicatorComponent} from './components/errorindicator.component';\nimport {MicroLinkValidateDirective} from './directives/micro-link-validate.directive';\n\n@NgModule({\n entryComponents: [\n MicroClientLoadingIndicatorComponent,\n MicroClientErrorIndicatorComponent\n ],\n imports: [\n HttpClientModule\n ],\n declarations: [\n LinkFieldPipe,\n LinkFieldDirective,\n CallLinkDirective,\n MicroClientLoadingIndicatorComponent,\n MicroClientErrorIndicatorComponent,\n MicroLinkValidateDirective\n ],\n exports: [\n LinkFieldPipe,\n LinkFieldDirective,\n CallLinkDirective,\n MicroClientErrorIndicatorComponent,\n MicroClientLoadingIndicatorComponent,\n MicroLinkValidateDirective\n ]\n})\nexport class MicroClientModule {\n static forClientRoot(): ModuleWithProviders<MicroClientModule> {\n return {\n ngModule: MicroClientModule,\n providers: [\n MicroClient\n ]\n };\n }\n}\n","import {ChangeDetectorRef} from '@angular/core';\nimport {Observable, Subscription} from 'rxjs';\nimport {LinkField} from './links/linkfield';\nimport {MicroObject} from './microobject';\n\nexport class LinkFieldPagingSupport {\n\n constructor(\n private pageLink: LinkField<MicroObject[]>,\n private changeDetectorRef: ChangeDetectorRef,\n public pageLimit: number = 200\n ) {\n }\n\n private sorts: SortInfo[] = null;\n\n public isLoading = false;\n private loadedCompletely = false;\n private hasLoaded = false;\n private _rows: any[] = null;\n private loadingSubscription: Subscription = null;\n\n public rowsChangeCallback: (rows: any[]) => void;\n public isLoadingCallback: (isLoading: boolean) => void;\n\n get rows(): any[] {\n if (!this.hasLoaded) {\n this.loadNextPage();\n }\n return this._rows;\n }\n\n public static from(\n pageLink: LinkField<MicroObject[]>,\n changeDetectorRef: ChangeDetectorRef,\n pageLimit: number = 200\n ): LinkFieldPagingSupport {\n return new LinkFieldPagingSupport(pageLink, changeDetectorRef, pageLimit);\n }\n\n public applySort(sorts: SortInfo[], externalSorting = true) {\n this.hasLoaded = false;\n this.sorts = null;\n this._rows = null;\n\n if (externalSorting) {\n this.sorts = sorts;\n this.loadNextPage();\n } else {\n if (!this.loadedCompletely) {\n this.loadNextPage(null);\n } else {\n this.changeDetectorRef.detectChanges();\n }\n }\n\n }\n\n private loadingCallback = () => {\n this.setLoading(false);\n };\n\n public loadNextPage(pageSize: number = this.pageLimit, resultCallback: ((page: any[], all: any[]) => void) = null) {\n if (this.pageLink && !this.isLoading) {\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n this.loadingSubscription = null;\n }\n\n this.hasLoaded = true;\n this.loadedCompletely = false;\n if (this._rows == null) {\n this.setLoading(true);\n\n const reqOptions: any = {};\n if (this.sorts != null) {\n reqOptions.sorting = this.sorts;\n }\n if (pageSize != null) {\n reqOptions.pageSize = pageSize;\n }\n\n\n this.loadingSubscription = this.pageLink.initWithObs(null, reqOptions).subscribe((firstPage) => {\n this.setRows(firstPage, resultCallback);\n }, this.loadingCallback, this.loadingCallback);\n } else {\n const lastRow = this.lastRow();\n if (lastRow) {\n if (lastRow.__meta.nextPage) {\n let reqOptions = null;\n if (pageSize != null) {\n reqOptions = {\n pageSize: pageSize\n };\n }\n\n const nextPageObs: Observable<MicroObject[]> = lastRow.__meta.nextPage.initWithObs(null, reqOptions);\n if (nextPageObs) {\n this.setLoading(true);\n this.loadingSubscription = nextPageObs.subscribe((nextPage) => {\n this.setRows(nextPage, resultCallback);\n }, this.loadingCallback, this.loadingCallback);\n }\n }\n }\n }\n } else if (!this.pageLink) {\n this.clearRows();\n }\n }\n\n public loadEverything() {\n this.loadNextPage(null);\n }\n\n private lastRow(): MicroObject {\n return this._rows[this._rows.length - 1];\n }\n\n private setRows(additionalPage: any[], loadCallback: ((page: any[], all: any[]) => void)) {\n if (this._rows) {\n this._rows = [...this.rows, ...additionalPage];\n } else {\n this._rows = additionalPage;\n }\n if (loadCallback) {\n loadCallback(additionalPage, this._rows);\n }\n this.reflectChanges();\n }\n\n private clearRows() {\n if (this._rows != null) {\n this._rows = null;\n this.reflectChanges();\n }\n }\n\n private reflectChanges() {\n const lastRow = this.lastRow();\n if (lastRow && lastRow.__meta) {\n this.loadedCompletely = lastRow.__meta.nextPage == null;\n } else {\n this.loadedCompletely = false;\n }\n\n if (this.rowsChangeCallback) {\n this.rowsChangeCallback(this._rows);\n }\n this.changeDetectorRef.detectChanges();\n }\n\n private setLoading(isLoading: boolean) {\n this.isLoading = isLoading;\n if (this.isLoadingCallback) {\n this.isLoadingCallback(this.isLoading);\n }\n this.changeDetectorRef.detectChanges();\n }\n\n public dispose() {\n this.rowsChangeCallback = null;\n this.isLoadingCallback = null;\n }\n\n public setPageLink(pageLink: LinkField<MicroObject[]>) {\n this.clearState();\n this.pageLink = pageLink;\n this.loadNextPage();\n }\n\n public hasLoadedCompletely(): boolean {\n return this.loadedCompletely;\n }\n\n public init(rowsChangeCallback: (rows: any[]) => void, isLoadingCallback: ((isLoading: boolean) => void) = null) {\n this.rowsChangeCallback = rowsChangeCallback;\n this.isLoadingCallback = isLoadingCallback;\n }\n\n private clearState() {\n this.isLoading = false;\n this.loadedCompletely = false;\n this.hasLoaded = false;\n this._rows = null;\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n this.loadingSubscription = null;\n }\n }\n}\n\nexport class SortInfo {\n constructor(public field: string, public dir: string) {\n this.dir = dir.toUpperCase();\n if (!(this.dir === 'ASC' || this.dir === 'DESC')) {\n throw Error('dir can only be \\'ASC\\' or \\'DESC\\'');\n }\n }\n}\n","import {LinkField} from './linkfield';\nimport {Observable, of} from 'rxjs';\nimport {delay} from 'rxjs/operators';\n\nexport class MockLinkField<T extends (object | object[])> extends LinkField<T> {\n constructor(private valueToLoad: any, private delay: number) {\n super(null, null);\n }\n\n callWithObs(params: object = null, requestOptions: object = null): Observable<T> {\n return of(this.valueToLoad).pipe(\n delay(this.delay)\n );\n }\n}"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"micropermit-client-angular.js","sources":["ng://@micropermit/client-angular/lib/paramutils.ts","ng://@micropermit/client-angular/lib/links/callablelink.ts","ng://@micropermit/client-angular/lib/links/linkfield.ts","ng://@micropermit/client-angular/lib/microobject.ts","ng://@micropermit/client-angular/lib/error/microerror.ts","ng://@micropermit/client-angular/lib/microclient.service.ts","ng://@micropermit/client-angular/lib/components/loadingindicator.component.ts","ng://@micropermit/client-angular/lib/pipes/linkfield.pipe.ts","ng://@micropermit/client-angular/lib/components/errorindicator.component.ts","ng://@micropermit/client-angular/lib/directives/linkfield.directive.ts","ng://@micropermit/client-angular/lib/directives/call-link.directive.ts","ng://@micropermit/client-angular/lib/directives/micro-link-validate.directive.ts","ng://@micropermit/client-angular/lib/microclient.module.ts","ng://@micropermit/client-angular/lib/link-field-paging-support.ts","ng://@micropermit/client-angular/lib/links/mock-linkfield.ts"],"sourcesContent":["export class ParamUtils {\n\n private static plusRegex = new RegExp('\\\\+');\n private static slashRegex = new RegExp('/', 'g');\n private static multiEqualRegex = new RegExp('=+$', 'g');\n private static minusRegex = new RegExp('-', 'g');\n private static underscoreRegex = new RegExp('_', 'g');\n\n public static addParam(url: string, key: string, value: string, replaceExisting: boolean = true): string {\n const hasQueryParams = url.indexOf('?') >= 0;\n if (!hasQueryParams) {\n url += '?';\n }\n\n const existingParam: string = ParamUtils.getParam(url, key);\n if (existingParam != null && replaceExisting) {\n url = url.replace(key + '=' + existingParam, key + '=' + value);\n } else {\n if (hasQueryParams) {\n url += '&';\n }\n url += key + '=' + value;\n }\n\n return url;\n }\n\n public static setParams(url: string, params: Object): string {\n const splitted = url.split('?');\n\n let resURL = splitted[0];\n let first = true;\n\n for (const key in params) {\n if (params.hasOwnProperty(key)) {\n if (first) {\n resURL += '?';\n first = false;\n }\n\n resURL += key + '=' + params[key];\n }\n }\n return resURL;\n }\n\n public static getParams(url: string): Object {\n const splitted = url.split('?');\n if (splitted.length < 2) {\n return {};\n }\n\n const queryStr = splitted[1];\n const params = {};\n\n const paramsStrs = queryStr.split('&');\n for (const paramStr of paramsStrs) {\n const splittedParamStr = paramStr.split('=', 2);\n const key = splittedParamStr[0];\n\n if (splittedParamStr.length === 2) {\n params[key] = splittedParamStr[1];\n } else {\n params[key] = null;\n }\n }\n return params;\n }\n\n public static base64UrlEncode(toEncode: string): string {\n return btoa(toEncode)\n .replace(ParamUtils.plusRegex, '-')\n .replace(ParamUtils.slashRegex, '_')\n .replace(ParamUtils.multiEqualRegex, '');\n }\n\n public static base64UrlDecode(toDecode: string): string {\n toDecode = (toDecode + '===').slice(0, toDecode.length + (toDecode.length % 4));\n return atob(\n toDecode\n .replace(ParamUtils.minusRegex, '+')\n .replace(ParamUtils.underscoreRegex, '/')\n );\n }\n\n public static needsBase64UrlEncoding(toCheck: any): boolean {\n if (toCheck == null) {\n return false;\n } else {\n return typeof toCheck === 'object';\n }\n }\n\n public static getParam(url: string, name: string, urlDecode: boolean = false): string {\n const paramsQueryIdx = url.indexOf('?');\n url = url.substr(paramsQueryIdx);\n const regExp = (new RegExp('[?&]' + encodeURIComponent(name) + '=([^&]*)'));\n const match = regExp.exec(url);\n if (match) {\n if (urlDecode && match[1]) {\n return this.base64UrlDecode(match[1]);\n } else {\n return match[1];\n }\n } else {\n return null;\n }\n }\n}\n","import {MicroClient} from '../microclient.service';\nimport {Observable} from 'rxjs';\nimport {MicroObject} from '../microobject';\nimport {ParamUtils} from '../paramutils';\n\nexport class CallableLink<T> {\n\n constructor(\n protected link: string,\n protected microClient: MicroClient,\n protected callParams: object = null,\n protected requestOptions: object = null\n ) {\n }\n\n public serializeTo: (link: string, callParams: object, requestOptions: object, value: any, isInitialized: boolean) => any = LinkSerializer.DONT_SERIALIZE;\n\n hasLink(): Boolean {\n return this.link != null;\n }\n\n getLink(): string {\n return this.link;\n }\n\n getQueryParam(key: string, urlDecode: boolean = false) {\n return ParamUtils.getParam(this.link, key, urlDecode);\n }\n\n getSignedParams(): MicroObject | MicroObject[] {\n let params = this.getSignedMicroObjectParam('params');\n if (params == null) {\n params = this.getSignedMicroObjectParam('bParams');\n }\n return params;\n }\n\n getOpenParams(copy: boolean = false): MicroObject | MicroObject[] {\n let params: MicroObject | MicroObject[] = this.getMicroObjectParam('oParams');\n if (params == null) {\n params = this.getMicroObjectParam('bOParams');\n } else {\n if (copy) {\n params = MicroObject.fromString(JSON.stringify(params), this.microClient);\n }\n\n if (this.callParams) {\n params = Object.assign(params, this.callParams);\n }\n }\n return params;\n }\n\n getOptions(): MicroObject {\n let options = this.getMicroObjectParam('options');\n\n if (this.requestOptions) {\n if (options == null) {\n options = new MicroObject();\n }\n options = Object.assign(options, this.requestOptions);\n }\n\n return options;\n }\n\n private getSignedMicroObjectParam(key: string): MicroObject {\n const paramsStr = ParamUtils.getParam(this.link, key, false);\n let params = null;\n if (paramsStr) {\n const splitted = paramsStr.split('.');\n if (splitted.length !== 3) {\n throw new Error('Expected a signed query param to have a JWT like structure');\n }\n params = MicroObject.fromString(atob(splitted[1]), this.microClient);\n }\n return params;\n }\n\n getMicroObjectParam(key: string): MicroObject {\n const paramsStr = ParamUtils.getParam(this.link, key, true);\n let params = null;\n if (paramsStr) {\n params = MicroObject.fromString(paramsStr, this.microClient);\n }\n return params;\n }\n\n call(onNext: (T) => void): Promise<T> {\n return this.callWith(null, null, onNext);\n }\n\n callWith(params: object = null, requestOptions: object = null, onNext: (T) => void): Promise<T> {\n return <Promise<T>>this.callWithObs(params, requestOptions).toPromise().then(onNext);\n }\n\n callWithObs(params: object = null, requestOptions: object = null): Observable<T> {\n if (this.link == null) {\n throw Error('Can\\'t use callWithObs without a provided link');\n }\n if (this.microClient == null) {\n throw Error('Can\\'t use callWithObs without a provided microClient');\n }\n\n let paramsToUse = null;\n if (this.callParams != null) {\n paramsToUse = Object.assign(new MicroObject(), this.callParams);\n }\n if (params) {\n if (paramsToUse == null) {\n paramsToUse = new MicroObject();\n }\n paramsToUse = Object.assign(paramsToUse, params);\n }\n\n let optionsToUse = null;\n if (this.requestOptions != null) {\n optionsToUse = Object.assign(new MicroObject(), this.requestOptions);\n }\n if (requestOptions) {\n if (optionsToUse == null) {\n optionsToUse = new MicroObject();\n }\n optionsToUse = Object.assign(optionsToUse, requestOptions);\n }\n\n return <Observable<T>> this.microClient.load(this.link, paramsToUse, optionsToUse);\n }\n\n copy(): CallableLink<T> {\n return new CallableLink(this.link, this.microClient, this.callParams, this.requestOptions);\n }\n\n withCallParams(callParams: object, requestOptions: object = this.requestOptions) {\n return new CallableLink(this.link, this.microClient, callParams, requestOptions);\n }\n\n toJSON(): any {\n if (this.serializeTo) {\n return this.serializeTo(this.link, this.callParams, this.requestOptions, undefined, undefined);\n } else {\n return undefined;\n }\n }\n}\n\n// @dynamic\nexport class LinkSerializer {\n public static DONT_SERIALIZE = function () {\n return undefined;\n };\n\n public static AS_LINK = function (link: string) {\n return link;\n };\n\n public static AS_VALUE_IF_INITIALIZED = function (link: string, callParams: object, requestOptions: object, value: any, isInitialized: boolean) {\n if (isInitialized) {\n return value;\n } else {\n return undefined;\n }\n };\n}\n","import {defer, Observable, ReplaySubject} from 'rxjs';\nimport {MicroClient} from '../microclient.service';\nimport {CallableLink, LinkSerializer} from './callablelink';\nimport {map, take} from 'rxjs/operators';\n\nexport class LinkField<T> extends CallableLink<T> {\n private value: T;\n private initialized = false;\n private _getPromise: Promise<T>;\n\n private valueSubj: ReplaySubject<T>;\n\n public serializeTo: (link: string, callParams: object, requestOptions: object, value: T, isInitialized: boolean) => any = LinkSerializer.AS_VALUE_IF_INITIALIZED;\n\n constructor(\n link: string,\n microClient: MicroClient,\n initialValue: T = null,\n initialized: boolean = false,\n callParams: object = null,\n requestOptions: object = null\n ) {\n super(link, microClient, callParams, requestOptions);\n if (initialized) {\n this.set(initialValue);\n }\n }\n\n static from<T extends (object | object[])>(value: T): LinkField<T> {\n return new LinkField(null, null, value, true);\n }\n\n get(callback?: (T) => void): Promise<T> {\n if (callback) {\n this.getObs().subscribe(callback);\n return null;\n }\n return this.getPromise();\n }\n\n getPromise(): Promise<T> {\n if (!this._getPromise) {\n this._getPromise = this.getObs().toPromise();\n }\n return this._getPromise;\n }\n\n private intervalId = null;\n\n refresh(interval?: number) {\n if (interval) {\n this.stopRefresh();\n }\n if (this.isInitialized()) {\n this.initWithObs().subscribe();\n }\n if (interval) {\n this.intervalId = setInterval(() => {\n if (this.isInitialized()) {\n this.initWithObs().subscribe();\n }\n }, interval);\n }\n }\n\n stopRefresh() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n }\n\n listenObs(): Observable<T> {\n if (this.valueSubj) {\n return this.valueSubj;\n } else {\n this.valueSubj = new ReplaySubject<T>(1);\n return defer(() => {\n this.initWithObs(null, null).subscribe();\n return this.valueSubj;\n });\n }\n }\n\n getObs(): Observable<T> {\n return this.listenObs().pipe(\n take(1)\n );\n }\n\n set(value: T): T {\n const oldValue = this.value;\n this.value = value;\n this.initialized = true;\n if (!this.valueSubj) {\n this.valueSubj = new ReplaySubject<T>(1);\n }\n this.valueSubj.next(value);\n this._getPromise = null;\n\n return oldValue;\n }\n\n isInitialized(): boolean {\n return this.initialized;\n }\n\n uninitialize() {\n this.value = null;\n this.initialized = false;\n this.valueSubj = null;\n this._getPromise = null;\n }\n\n getInitializedValue(): T {\n if (!this.isInitialized()) {\n throw new Error('Can\\'t get the intialized value for a LinkField that hasn\\'t been initialized');\n }\n return this.value;\n }\n\n initWith(parms: object = null, requestOptions: object = null, callback: (T) => void) {\n this.initWithObs(parms, requestOptions).subscribe(callback);\n }\n\n initWithObs(params: object = null, requestOptions: object = null): Observable<T> {\n return this.callWithObs(params, requestOptions).pipe(\n map((value) => {\n this.set(<T>value);\n return value;\n })\n );\n }\n\n withCallParams(callParams: object, requestOptions: object = this.requestOptions): LinkField<T> {\n return new LinkField(this.link, this.microClient, this.value, this.initialized, callParams, requestOptions);\n }\n\n copy(withValue?: T): LinkField<T> {\n if (withValue === undefined) {\n return new LinkField(this.link, this.microClient, this.value, this.initialized, this.callParams, this.requestOptions);\n } else {\n return new LinkField(this.link, this.microClient, withValue, true, this.callParams, this.requestOptions);\n }\n }\n\n toJSON(): any {\n if (this.serializeTo) {\n return this.serializeTo(this.link, this.callParams, this.requestOptions, this.value, this.isInitialized());\n } else {\n return undefined;\n }\n }\n}\n\n","import {MicroClient} from './microclient.service';\nimport {LinkField} from './links/linkfield';\nimport {CallableLink, LinkSerializer} from './links/callablelink';\nimport {MicroError} from './error/microerror';\n\nexport interface MicroObject {\n __meta: MicroObjectMetadata;\n}\n\nexport class MicroObject implements MicroObject {\n public static META_KEY = '__meta';\n\n __meta: MicroObjectMetadata = undefined;\n\n public static deepCopy<T extends object | object[]>(toCopy: T, client: MicroClient): T {\n return <T>MicroObject.fromString(JSON.stringify(toCopy), client);\n }\n\n public static fromString<T extends object>(str: string, client: MicroClient, prototype: T = null): T | T[] {\n const obj = JSON.parse(str);\n return this.fromObject(obj, client, prototype);\n }\n\n public static fromObject<T extends object>(obj: any, client: MicroClient, prototype: T = null): T | T[] {\n if(obj === null){\n return null;\n }\n\n if (Array.isArray(obj)) {\n const objArr: T[] = obj;\n for (let i = 0; i < objArr.length; i++) {\n const elem = objArr[i];\n if (typeof elem === 'object') {\n objArr[i] = <T>MicroObject.fromObject(elem, client, prototype);\n }\n }\n return objArr;\n } else {\n for (const field in obj) {\n if (field !== MicroObject.META_KEY && obj.hasOwnProperty(field)) {\n const fieldValue = obj[field];\n if (fieldValue) {\n if (fieldValue instanceof Object || Array.isArray(fieldValue)) {\n obj[field] = MicroObject.fromObject(fieldValue, client, prototype);\n }\n }\n }\n }\n\n const src = prototype == null ? MicroObject.prototype : prototype;\n const microObject: MicroObject = Object.assign(Object.create(src), obj);\n\n\n MicroObject.attachMetadataObject(microObject, client);\n\n return <T>microObject;\n }\n\n }\n\n private static attachMetadataObject(microObject: MicroObject, client: MicroClient) {\n const rawMeta: MicroObjectMetadata = microObject != null ? microObject[MicroObject.META_KEY] : null;\n if (rawMeta != null) {\n let clientToUse = client;\n if (rawMeta.permitToken) {\n if (client.getEntryPoint() != null) {\n clientToUse = client.createChildClientForEntryPoint(microObject);\n }\n }\n\n microObject.__meta = MicroObjectMetadata.fromObject(microObject.__meta, clientToUse);\n\n MicroObject.attachLinkFields(microObject.__meta, microObject, clientToUse);\n MicroObject.attachCallableLinks(microObject.__meta, microObject, clientToUse);\n\n } else {\n return null;\n }\n }\n\n private static attachLinkFields(meta: MicroObjectMetadata, microObject: MicroObject, client: MicroClient) {\n meta.forEachLink((linkName, linkUrl) => {\n const value = microObject[linkName];\n microObject[linkName] = new LinkField(linkUrl, client, value, value !== undefined);\n });\n }\n\n private static attachCallableLinks(meta: MicroObjectMetadata, microObject: MicroObject, client: MicroClient) {\n meta.forEachAction((linkName, linkUrl) => {\n microObject[linkName] = new CallableLink(linkUrl, client);\n });\n }\n}\n\nexport class MicroObjectMetadata {\n links: any;\n actions: any;\n permitToken: string;\n nextPage: LinkField<any>;\n error: MicroError;\n\n\n static fromObject(obj: object, client: MicroClient): MicroObjectMetadata {\n const objMetadata = Object.assign(new MicroObjectMetadata(), obj);\n\n if (objMetadata.nextPage != null) {\n objMetadata.nextPage = new LinkField(<any>objMetadata.nextPage, client);\n objMetadata.nextPage.serializeTo = LinkSerializer.AS_LINK;\n }\n\n return objMetadata;\n }\n\n public getLinkUrl(key: string): string {\n return this.links[key];\n }\n\n public hasLink(key: string): boolean {\n return this.links[key] != null;\n }\n\n public forEachLink(op: (linkName: string, link: string) => void) {\n for (const link in this.links) {\n if (this.links.hasOwnProperty(link)) {\n op(link, this.links[link]);\n }\n }\n }\n\n public forEachAction(op: (linkName: string, link: string) => void) {\n for (const link in this.actions) {\n if (this.actions.hasOwnProperty(link)) {\n op(link, this.actions[link]);\n }\n }\n }\n\n\n}\n","export class MicroError {\n timestamp: number;\n errorMessage: string;\n atService: string;\n atEndpoint: string;\n instanceID: string;\n httpEquivCode: number;\n cause: MicroError;\n errorID: string;\n errorType: Array<String>;\n}\n","import {Injectable} from '@angular/core';\nimport {HttpClient, HttpErrorResponse, HttpHeaders} from '@angular/common/http';\nimport {MicroObject} from './microobject';\nimport {Observable, ReplaySubject, Subject, throwError} from 'rxjs';\nimport {catchError, finalize, map, take, shareReplay} from 'rxjs/operators';\nimport {ParamUtils} from './paramutils';\nimport {MicroError} from './error/microerror';\n\n@Injectable()\nexport class MicroClient {\n\n private authHeader: string;\n private permitToken: string;\n private entryPoint: MicroObject;\n\n private entryPointSubject: ReplaySubject<MicroObject> = new ReplaySubject<MicroObject>();\n\n private urlRewriter: (string) => string;\n private defaultErrorHandler: (httpError: HttpErrorResponse, microError: MicroObject) => void;\n public usePost = true;\n\n public sendAsPermitTokenHeader = true;\n\n constructor(private httpClient: HttpClient) {\n\n }\n\n public setSendAsPermitTokenHeader(sendAsPermitTokenHeader: boolean) {\n this.sendAsPermitTokenHeader = sendAsPermitTokenHeader;\n }\n\n public setAuthToken(token: string) {\n this.authHeader = 'Bearer ' + token;\n this.permitToken = token;\n }\n\n public setAuthHeader(authHeader: string) {\n this.authHeader = authHeader;\n }\n\n public getEntryPoint(): any {\n return this.entryPoint;\n }\n\n public waitForEntryPoint(cb?: (entryPoint: any) => void): Promise<any> {\n if (cb != null) {\n this.entryPointSubject.subscribe(cb);\n return null;\n }\n return this.entryPointSubject.toPromise();\n }\n\n public copyAuthAndEntrypointOf(other: MicroClient) {\n this.authHeader = other.authHeader;\n this.permitToken = other.permitToken;\n this.entryPoint = other.entryPoint;\n }\n\n public setEntryPoint<T extends MicroObject>(entryPoint: any) {\n if (entryPoint == null) {\n this.authHeader = null;\n this.entryPoint = null;\n this.permitToken = null;\n } else {\n this.entryPoint = entryPoint;\n if (this.entryPoint.__meta && this.entryPoint.__meta.permitToken) {\n this.setAuthToken(this.entryPoint.__meta.permitToken);\n } else {\n throw Error('Expected the entryPoint to contain a \"permitToken\" within the \"__meta\" field');\n }\n this.entryPointSubject.next(entryPoint);\n }\n }\n\n public setDefaultErrorHandler(handler: (httpError: HttpErrorResponse, microError: MicroObject) => void) {\n this.defaultErrorHandler = handler;\n }\n\n public handleError(httpErr: HttpErrorResponse) {\n if (this.defaultErrorHandler) {\n const microError = MicroClient.toMicroError(httpErr);\n if (microError) {\n const microResultObj: MicroObject = <MicroObject>MicroObject.fromObject(httpErr.error, this);\n this.defaultErrorHandler(httpErr, microResultObj);\n } else {\n this.defaultErrorHandler(httpErr, null);\n }\n }\n }\n\n public ignite<T extends (MicroObject | MicroObject[])>(\n url: string,\n username: String = null,\n password: String = null,\n headers: object = {}\n ): Observable<T> {\n if (this.urlRewriter) {\n url = this.urlRewriter(url);\n }\n\n let requestHeaders = new HttpHeaders();\n for (const headerKey in headers) {\n if (headers.hasOwnProperty(headerKey)) {\n requestHeaders = requestHeaders.set(headerKey, headers[headerKey]);\n }\n }\n\n if (username != null || password != null) {\n requestHeaders = requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n return this.httpClient.get(url, {\n headers: requestHeaders\n }).pipe(\n map(val => {\n const entryPoint = MicroObject.fromObject(val, this);\n if (entryPoint instanceof MicroObject) {\n this.setEntryPoint(entryPoint);\n return entryPoint as T;\n } else {\n throw Error('Expected the entryPoint to be a Object');\n }\n }),\n this.catchAndHandleError()\n );\n }\n\n public load<T>(\n url: string,\n params?: object,\n requestOptions?: object\n ): Observable<T> {\n let requestHeaders = new HttpHeaders();\n if (this.authHeader) {\n requestHeaders = requestHeaders.set('Authorization', this.authHeader);\n\n if (this.sendAsPermitTokenHeader) {\n requestHeaders = requestHeaders.set('MicroPermitToken', this.permitToken);\n }\n }\n\n let oParams = params;\n if (params != null || this.usePost) {\n const existingParamsStr = ParamUtils.getParam(url, 'oParams', true);\n let existingParams;\n if (existingParamsStr) {\n existingParams = JSON.parse(existingParamsStr);\n } else {\n existingParams = {};\n }\n oParams = Object.assign(existingParams, params);\n }\n\n let options = requestOptions;\n if (requestOptions != null || this.usePost) {\n const prevOptionsStr = ParamUtils.getParam(url, 'options', true);\n if (prevOptionsStr) {\n options = JSON.parse(prevOptionsStr);\n } else {\n options = {};\n }\n\n options = Object.assign(options, requestOptions);\n }\n\n const queryParams = ParamUtils.getParams(url);\n\n let httpObs = null;\n if (this.usePost) {\n\n let bOParams;\n const encBOParams = queryParams['bOParams'];\n if (encBOParams) {\n bOParams = JSON.parse(ParamUtils.base64UrlDecode(encBOParams));\n }\n const body = {\n params: queryParams['params'],\n oParams: oParams,\n bParams: queryParams['bParams'],\n bOParams: bOParams,\n options: options,\n };\n\n delete queryParams['params'];\n delete queryParams['oParams'];\n delete queryParams['bParams'];\n delete queryParams['bOParams'];\n delete queryParams['options'];\n\n url = ParamUtils.setParams(url, queryParams);\n\n if (this.urlRewriter) {\n url = this.urlRewriter(url);\n }\n\n httpObs = this.httpClient.post(url, body, {\n headers: requestHeaders\n });\n } else {\n if (oParams) {\n queryParams['oParams'] = ParamUtils.base64UrlEncode(JSON.stringify(oParams));\n }\n\n if (options) {\n queryParams['options'] = ParamUtils.base64UrlEncode(JSON.stringify(options));\n }\n url = ParamUtils.setParams(url, queryParams);\n\n if (this.urlRewriter) {\n url = this.urlRewriter(url);\n }\n\n httpObs = this.httpClient.get(url, {\n headers: requestHeaders\n });\n }\n\n httpObs = httpObs.pipe(\n map(val => {\n return MicroObject.fromObject(val, this);\n }),\n this.catchAndHandleError()\n )\n ;\n\n return httpObs;\n }\n\n private catchAndHandleError<T>(): ((source: Observable<T>) => Observable<T>) {\n return (source: Observable<T>) => {\n return source.pipe(\n catchError(err => {\n let loadError = new MicroClientLoadError(err, (errToHandle) => {\n this.handleError(errToHandle);\n });\n return throwError(loadError).pipe(\n finalize(() => {\n if (!loadError.shouldPreventDefault()) {\n loadError.handleDefault();\n }\n })\n );\n })\n );\n };\n }\n\n public createChildClientForEntryPoint(entryPoint: MicroObject): MicroClient {\n if (entryPoint.__meta && entryPoint.__meta.permitToken) {\n const childClient: MicroClient = Object.create(this, {\n entryPoint: {\n configurable: true,\n enumerable: true,\n writable: true\n },\n authHeader: {\n configurable: true,\n enumerable: true,\n writable: true\n },\n permitToken: {\n configurable: true,\n enumerable: true,\n writable: true\n }\n });\n childClient.setEntryPoint(entryPoint);\n return childClient;\n } else {\n throw new Error('The supplied value can\\'t be used to construct a child MicroClient because it doesn\\'t contain metadata with a permitToken ');\n }\n }\n\n public setURLRewriter(rewriter: (string) => string) {\n this.urlRewriter = rewriter;\n }\n\n public static toMicroError(httpResponse: HttpErrorResponse): MicroError {\n const res = httpResponse.error;\n if (res && res.__meta && res.__meta.error) {\n return Object.assign(new MicroError(), res.__meta.error);\n }\n return null;\n }\n\n private static staticContentRegExp = new RegExp('[a-zA-Z0-9]://.*(:[0-9]+)?(/.*)*/static(/.*(\\\\?.*)?(#.*)?)?');\n\n public static guessMicroComponentBaseURL(): string {\n const href = window.location.href;\n\n // Last URL-Segement is static\n if (MicroClient.staticContentRegExp.test(href)) {\n return href.replace(new RegExp('/static/.*'), '')\n .replace(new RegExp('/#/.*'), '');\n } else {\n if (window.location.protocol.startsWith('file')) {\n return 'http://localhost:8080';\n } else {\n return window.location.protocol + '//' + window.location.hostname + ':8080';\n }\n }\n }\n\n public static guessMicroComponentAuthorizeURL(): string {\n return this.guessMicroComponentBaseURL() + '/authorize';\n }\n}\n\nexport class MicroClientLoadError {\n private handled = false;\n private doPreventDefault = false;\n\n constructor(private error: any, private defaultHandler: (err: any) => void) {\n\n }\n\n public handleDefault() {\n if (this.defaultHandler) {\n this.defaultHandler(this.error);\n this.handled = true;\n }\n }\n\n public handleError(handler: (error: any) => void) {\n handler(this.error);\n this.handled = true;\n }\n\n public isHandled(): boolean {\n return this.handled;\n }\n\n public shouldPreventDefault(): boolean {\n return this.doPreventDefault;\n }\n\n public preventDefault(): void {\n this.doPreventDefault = true;\n }\n\n public hasDefaultHandler(): boolean {\n return this.defaultHandler != null;\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'mc-loadingindicator',\n template: `\n <div id=\"container\">\n <div id=\"bar\"></div>\n </div>\n `,\n styles: [`\n #container {\n display: block;\n overflow: hidden;\n width: 100%;\n height: 5px;\n -webkit-transform: translate(0, 0) scale(1, 1);\n transform: translate(0, 0) scale(1, 1);\n background-color: #aad1f9;\n }\n #container #bar {\n transition: all .2s linear;\n -webkit-animation: query 0.8s infinite cubic-bezier(0.39, 0.575, 0.565, 1);\n animation: query 0.8s infinite cubic-bezier(0.39, 0.575, 0.565, 1);\n transition: -webkit-transform .2s linear;\n transition: transform .2s linear;\n background-color: #106cc8;\n width: 100%;\n height: 5px;\n }\n @keyframes query {\n 0% {\n opacity: 1;\n transform: translateX(35%) scale(0.3, 1);\n }\n 100% {\n opacity: 0;\n transform: translateX(-50%) scale(0, 1);\n }\n }\n `]\n})\nexport class MicroClientLoadingIndicatorComponent { }\n","import {LinkField} from '../links/linkfield';\nimport {PipeTransform, Pipe, OnDestroy, ChangeDetectorRef} from '@angular/core';\nimport {MicroObject} from '../microobject';\nimport {AsyncPipe} from '@angular/common';\n\n@Pipe({name: 'linkField', pure: false})\nexport class LinkFieldPipe implements OnDestroy, PipeTransform {\n\n private asyncPipe: AsyncPipe;\n\n constructor(changeDetectorRef: ChangeDetectorRef) {\n this.asyncPipe = new AsyncPipe(changeDetectorRef);\n }\n\n ngOnDestroy(): void {\n this.asyncPipe.ngOnDestroy();\n }\n\n transform<T extends (MicroObject | MicroObject[])>(linkField: LinkField<T>): any {\n if (linkField == null) {\n return null;\n }\n if (linkField instanceof LinkField) {\n return this.asyncPipe.transform(linkField.getObs());\n } else {\n // return linkField;\n throw new Error('Can\\'t use the linkField pipe with a value which isn\\'t an instance of LinkField');\n }\n }\n\n}\n","import {Component, Input} from '@angular/core';\nimport {MicroClientLoadError} from '../microclient.service';\n\n@Component({\n selector: 'mc-errorindicator',\n template: `\n <div class=\"blinking-error\" [class.clickable]=\"error.hasDefaultHandler()\" (click)=\"onClick()\"></div>\n `,\n styles: [`\n .blinking-error {\n background-image: linear-gradient(to right, tomato 0%, darkred 50%, tomato 100%);\n animation: blinkingText 0.5s 1;\n height: 5px;\n }\n\n .blinking-error.clickable {\n cursor: pointer;\n }\n\n @keyframes blinkingText {\n 0% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n }\n `]\n})\nexport class MicroClientErrorIndicatorComponent {\n @Input()\n error: MicroClientLoadError;\n\n onClick() {\n this.error.handleDefault();\n }\n}\n","import {\n Directive,\n Input,\n TemplateRef,\n ViewContainerRef,\n ComponentFactoryResolver,\n ComponentFactory,\n DoCheck,\n OnDestroy, ChangeDetectorRef, Output, EventEmitter\n} from '@angular/core';\nimport {LinkField} from '../links/linkfield';\nimport {MicroObject} from '../microobject';\nimport {Observable, Subscription} from 'rxjs';\nimport {MicroClientLoadingIndicatorComponent} from '../components/loadingindicator.component';\nimport {MicroClientErrorIndicatorComponent} from '../components/errorindicator.component';\nimport {finalize} from 'rxjs/operators';\nimport {MicroClientLoadError} from '../microclient.service';\n\n@Directive({\n selector: '[linkField][linkFieldFrom]'\n})\nexport class LinkFieldDirective<T> implements DoCheck, OnDestroy {\n\n private _from: LinkField<T> | T;\n private _loadingTemplate: TemplateRef<any>;\n private _errorTemplate: TemplateRef<any>;\n private _defaultLoadingComponent: ComponentFactory<MicroClientLoadingIndicatorComponent>;\n private _defaultErrorComponent: ComponentFactory<MicroClientErrorIndicatorComponent>;\n\n private isDirty = true;\n private isLoading = false;\n private loadedResult: T = null;\n private hasResult = false;\n\n private lastObs: Observable<T>;\n private subscription: Subscription = null;\n\n private currentContext: LinkFieldContext<T>;\n\n constructor(\n private _viewContainer: ViewContainerRef,\n private _template: TemplateRef<LinkFieldContext<T>>,\n private componentResolver: ComponentFactoryResolver,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n this._defaultLoadingComponent = componentResolver.resolveComponentFactory(MicroClientLoadingIndicatorComponent);\n this._defaultErrorComponent = componentResolver.resolveComponentFactory(MicroClientErrorIndicatorComponent);\n }\n\n @Input()\n set linkFieldFrom(from: LinkField<T>) {\n this._from = from;\n this.clear();\n this.load();\n }\n\n @Input()\n set linkFieldLoadingTemplate(loadingTemplate: TemplateRef<any>) {\n if (loadingTemplate) {\n this._loadingTemplate = loadingTemplate;\n }\n this.updateIfDirty(true);\n }\n\n @Input()\n set linkFieldErrorTemplate(errorTemplate: TemplateRef<any>) {\n if (errorTemplate) {\n this._errorTemplate = errorTemplate;\n }\n this.updateIfDirty(true);\n }\n\n @Input()\n set linkFieldTemplate(value: TemplateRef<LinkFieldContext<T>>) {\n if (value) {\n this._template = value;\n }\n }\n\n @Input()\n linkFieldDefaultErrorHandling = false;\n\n @Input()\n linkFieldValueChange: (T) => void;\n\n private load() {\n if (this._from) {\n if (this._from instanceof LinkField) {\n this.setLoading(true);\n this.lastObs = this._from.listenObs();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n this.subscription = this.lastObs.pipe(\n finalize(() => {\n this.setLoading(false);\n })\n ).subscribe((loadedResult: T) => {\n this.setLoadedResult(loadedResult);\n if (this.linkFieldValueChange) {\n this.linkFieldValueChange(loadedResult);\n }\n }, (loadError: MicroClientLoadError) => {\n if (!this.linkFieldDefaultErrorHandling) {\n loadError.preventDefault();\n }\n this.setError(loadError);\n });\n } else {\n this.setLoadedResult(this._from);\n // this.setLoadedResult(this._from);\n // throw new Error('Can\\'t use the linkField directive with a from value which isn\\'t an instance of LinkField');\n }\n }\n }\n\n\n ngDoCheck() {\n this.updateIfDirty();\n if (this._from) {\n if (this._from instanceof LinkField && this.lastObs !== this._from.listenObs()) {\n this.load();\n }\n }\n }\n\n ngOnDestroy() {\n this.clear();\n }\n\n private setError(error: MicroClientLoadError) {\n this._viewContainer.remove();\n if (this._errorTemplate) {\n this._viewContainer.createEmbeddedView(this._errorTemplate, {\n $implicit: error\n });\n } else {\n let errorComponentInstance = this._viewContainer.createComponent(this._defaultErrorComponent);\n errorComponentInstance.instance['error'] = error;\n }\n }\n\n\n private setLoading(loading: boolean) {\n this.isLoading = loading;\n if (this.isLoading) {\n if (this._loadingTemplate) {\n this._viewContainer.remove();\n this._viewContainer.createEmbeddedView(this._loadingTemplate);\n } else {\n this._viewContainer.remove();\n this._viewContainer.createComponent(this._defaultLoadingComponent);\n }\n }\n }\n\n private setLoadedResult(result: T) {\n this.hasResult = true;\n this.loadedResult = result;\n if (this.currentContext == null) {\n this.currentContext = new LinkFieldContext<T>(result);\n this.isDirty = true;\n } else {\n this.currentContext.$implicit = result;\n this.changeDetectorRef.markForCheck();\n }\n if (!this._viewContainer || !this._template) {\n this.isDirty = true;\n } else {\n if (this.isDirty) {\n this._viewContainer.remove();\n this._viewContainer.createEmbeddedView(this._template, this.currentContext);\n }\n }\n }\n\n private updateIfDirty(ignoreDirty: boolean = false) {\n if ((this.isDirty || ignoreDirty) && this._loadingTemplate && this._from && this._template && this._viewContainer) {\n if (this.hasResult) {\n this.setLoadedResult(this.loadedResult);\n }\n this.isDirty = false;\n }\n }\n\n private clear() {\n this.hasResult = false;\n this.loadedResult = null;\n this.isDirty = false;\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = null;\n }\n this.lastObs = null;\n this.currentContext = null;\n }\n}\n\nexport class LinkFieldContext<T> {\n\n constructor(public $implicit: T) {\n }\n}\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive, ElementRef, EmbeddedViewRef,\n EventEmitter, HostListener,\n Input, OnDestroy, OnInit,\n Output, Renderer2,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport {MicroObject} from '../microobject';\nimport {CallableLink} from '../links/callablelink';\nimport {MicroError} from '../error/microerror';\n\n@Directive({\n selector: '[callLink]'\n})\nexport class CallLinkDirective {\n @Input()\n callLink: CallableLink<MicroObject | MicroObject[]>;\n\n @Output()\n callStatusChange: EventEmitter<CallStatus> = new EventEmitter();\n\n @Output()\n callSucess: EventEmitter<MicroObject | MicroObject[]> = new EventEmitter();\n\n @Output()\n callFinish: EventEmitter<void> = new EventEmitter();\n\n @Output()\n callError: EventEmitter<MicroError> = new EventEmitter();\n\n @Output()\n callStart: EventEmitter<void> = new EventEmitter();\n\n @Input()\n callOptions: object;\n\n @Input()\n callParameters: object;\n\n @HostListener('click')\n onClick() {\n this.callLink.callWithObs(this.callParameters, this.callOptions).subscribe((response) => {\n this.callSucess.emit(response);\n this.callStatusChange.emit(new CallStatus(this.callLink, CallState.SUCCESS, response, null));\n }, (error) => {\n this.callError.emit(error);\n this.callStatusChange.emit(new CallStatus(this.callLink, CallState.ERROR, null, error));\n }, () => {\n this.callFinish.emit();\n });\n this.callStatusChange.emit(new CallStatus(this.callLink, CallState.CALLING, null, null));\n }\n}\n\nexport class CallStatus {\n constructor(\n public link: CallableLink<MicroObject | MicroObject[]>,\n public state: CallState,\n public response: MicroObject | MicroObject[],\n public error: MicroError\n ) {\n }\n}\n\nexport enum CallState {\n CALLING,\n SUCCESS,\n ERROR\n}\n","import {Directive, forwardRef, Input} from '@angular/core';\nimport {\n AbstractControl,\n FormGroup,\n NG_ASYNC_VALIDATORS,\n ValidationErrors,\n Validator\n} from '@angular/forms';\nimport {Observable, timer} from 'rxjs';\nimport {map, switchMap} from 'rxjs/operators';\nimport {CallableLink} from '../links/callablelink';\n\n@Directive({\n selector: '[microLinkValidate]',\n providers: [\n {\n provide: NG_ASYNC_VALIDATORS,\n useExisting: forwardRef(() => MicroLinkValidateDirective),\n multi: true\n }\n ],\n exportAs: 'microValidator'\n})\nexport class MicroLinkValidateDirective implements Validator {\n\n private UNSET = \"\"\n\n @Input()\n microLinkValidate: CallableLink<any>\n\n @Input()\n microLinkValidateField: string = null\n\n @Input()\n microLinkValidateValue: any = this.UNSET\n\n @Input()\n microLinkValidateDebounce = 500;\n\n public result:any;\n\n\n validate(control: AbstractControl): Observable<ValidationErrors | null> {\n return timer(this.microLinkValidateDebounce).pipe(\n switchMap(() => {\n let validateValue = this.microLinkValidateValue\n if (validateValue === this.UNSET) {\n validateValue = control.value\n }\n\n let obj = {}\n if (this.microLinkValidateField) {\n obj[this.microLinkValidateField] = validateValue\n } else {\n obj = validateValue\n }\n\n return this.microLinkValidate.callWithObs(obj, null).pipe(\n map(validationRes => {\n let hasErrors = false\n if (this.microLinkValidateField) {\n if (validationRes[this.microLinkValidateField] != null) {\n hasErrors = true\n }\n } else {\n for (let key in validationRes) {\n if (validationRes[key] != null) {\n hasErrors = true\n }\n }\n }\n if (hasErrors) {\n this.result = validationRes\n return {\n validateMicroLink: this.result\n }\n\n } else {\n this.result = null\n return null\n }\n })\n )\n })\n )\n }\n\n getControlName(control: AbstractControl) {\n let controlName = null;\n let parent = control.parent;\n\n // only such parent, which is FormGroup, has a dictionary\n // with control-names as a key and a form-control as a value\n if (parent instanceof FormGroup) {\n // now we will iterate those keys (i.e. names of controls)\n Object.keys(parent.controls).forEach((name) => {\n // and compare the passed control and\n // a child control of a parent - with provided name (we iterate them all)\n if (control === parent.controls[name]) {\n // both are same: control passed to Validator\n // and this child - are the same references\n controlName = name;\n }\n });\n }\n // we either found a name or simply return null\n return controlName;\n }\n\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {MicroClientLoadingIndicatorComponent} from './components/loadingindicator.component';\nimport {LinkFieldPipe} from './pipes/linkfield.pipe';\nimport {LinkFieldDirective} from './directives/linkfield.directive';\nimport {MicroClient} from './microclient.service';\nimport {HttpClientModule} from '@angular/common/http';\nimport {CallLinkDirective} from './directives/call-link.directive';\nimport {MicroClientErrorIndicatorComponent} from './components/errorindicator.component';\nimport {MicroLinkValidateDirective} from './directives/micro-link-validate.directive';\n\n@NgModule({\n entryComponents: [\n MicroClientLoadingIndicatorComponent,\n MicroClientErrorIndicatorComponent\n ],\n imports: [\n HttpClientModule\n ],\n declarations: [\n LinkFieldPipe,\n LinkFieldDirective,\n CallLinkDirective,\n MicroClientLoadingIndicatorComponent,\n MicroClientErrorIndicatorComponent,\n MicroLinkValidateDirective\n ],\n exports: [\n LinkFieldPipe,\n LinkFieldDirective,\n CallLinkDirective,\n MicroClientErrorIndicatorComponent,\n MicroClientLoadingIndicatorComponent,\n MicroLinkValidateDirective\n ]\n})\nexport class MicroClientModule {\n static forClientRoot(): ModuleWithProviders<MicroClientModule> {\n return {\n ngModule: MicroClientModule,\n providers: [\n MicroClient\n ]\n };\n }\n}\n","import {ChangeDetectorRef} from '@angular/core';\nimport {Observable, Subscription} from 'rxjs';\nimport {LinkField} from './links/linkfield';\nimport {MicroObject} from './microobject';\n\nexport class LinkFieldPagingSupport {\n\n constructor(\n private pageLink: LinkField<MicroObject[]>,\n private changeDetectorRef: ChangeDetectorRef,\n public pageLimit: number = 200\n ) {\n }\n\n private sorts: SortInfo[] = null;\n\n public isLoading = false;\n private loadedCompletely = false;\n private hasLoaded = false;\n private _rows: any[] = null;\n private loadingSubscription: Subscription = null;\n\n public rowsChangeCallback: (rows: any[]) => void;\n public isLoadingCallback: (isLoading: boolean) => void;\n\n get rows(): any[] {\n if (!this.hasLoaded) {\n this.loadNextPage();\n }\n return this._rows;\n }\n\n public static from(\n pageLink: LinkField<MicroObject[]>,\n changeDetectorRef: ChangeDetectorRef,\n pageLimit: number = 200\n ): LinkFieldPagingSupport {\n return new LinkFieldPagingSupport(pageLink, changeDetectorRef, pageLimit);\n }\n\n public applySort(sorts: SortInfo[], externalSorting = true) {\n this.hasLoaded = false;\n this.sorts = null;\n this._rows = null;\n\n if (externalSorting) {\n this.sorts = sorts;\n this.loadNextPage();\n } else {\n if (!this.loadedCompletely) {\n this.loadNextPage(null);\n } else {\n this.changeDetectorRef.detectChanges();\n }\n }\n\n }\n\n private loadingCallback = () => {\n this.setLoading(false);\n };\n\n public loadNextPage(pageSize: number = this.pageLimit, resultCallback: ((page: any[], all: any[]) => void) = null) {\n if (this.pageLink && !this.isLoading) {\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n this.loadingSubscription = null;\n }\n\n this.hasLoaded = true;\n this.loadedCompletely = false;\n if (this._rows == null) {\n this.setLoading(true);\n\n const reqOptions: any = {};\n if (this.sorts != null) {\n reqOptions.sorting = this.sorts;\n }\n if (pageSize != null) {\n reqOptions.pageSize = pageSize;\n }\n\n\n this.loadingSubscription = this.pageLink.initWithObs(null, reqOptions).subscribe((firstPage) => {\n this.setRows(firstPage, resultCallback);\n }, this.loadingCallback, this.loadingCallback);\n } else {\n const lastRow = this.lastRow();\n if (lastRow) {\n if (lastRow.__meta.nextPage) {\n let reqOptions = null;\n if (pageSize != null) {\n reqOptions = {\n pageSize: pageSize\n };\n }\n\n const nextPageObs: Observable<MicroObject[]> = lastRow.__meta.nextPage.initWithObs(null, reqOptions);\n if (nextPageObs) {\n this.setLoading(true);\n this.loadingSubscription = nextPageObs.subscribe((nextPage) => {\n this.setRows(nextPage, resultCallback);\n }, this.loadingCallback, this.loadingCallback);\n }\n }\n }\n }\n } else if (!this.pageLink) {\n this.clearRows();\n }\n }\n\n public loadEverything() {\n this.loadNextPage(null);\n }\n\n private lastRow(): MicroObject {\n return this._rows[this._rows.length - 1];\n }\n\n private setRows(additionalPage: any[], loadCallback: ((page: any[], all: any[]) => void)) {\n if (this._rows) {\n this._rows = [...this.rows, ...additionalPage];\n } else {\n this._rows = additionalPage;\n }\n if (loadCallback) {\n loadCallback(additionalPage, this._rows);\n }\n this.reflectChanges();\n }\n\n private clearRows() {\n if (this._rows != null) {\n this._rows = null;\n this.reflectChanges();\n }\n }\n\n private reflectChanges() {\n const lastRow = this.lastRow();\n if (lastRow && lastRow.__meta) {\n this.loadedCompletely = lastRow.__meta.nextPage == null;\n } else {\n this.loadedCompletely = false;\n }\n\n if (this.rowsChangeCallback) {\n this.rowsChangeCallback(this._rows);\n }\n this.changeDetectorRef.detectChanges();\n }\n\n private setLoading(isLoading: boolean) {\n this.isLoading = isLoading;\n if (this.isLoadingCallback) {\n this.isLoadingCallback(this.isLoading);\n }\n this.changeDetectorRef.detectChanges();\n }\n\n public dispose() {\n this.rowsChangeCallback = null;\n this.isLoadingCallback = null;\n }\n\n public setPageLink(pageLink: LinkField<MicroObject[]>) {\n this.clearState();\n this.pageLink = pageLink;\n this.loadNextPage();\n }\n\n public hasLoadedCompletely(): boolean {\n return this.loadedCompletely;\n }\n\n public init(rowsChangeCallback: (rows: any[]) => void, isLoadingCallback: ((isLoading: boolean) => void) = null) {\n this.rowsChangeCallback = rowsChangeCallback;\n this.isLoadingCallback = isLoadingCallback;\n }\n\n private clearState() {\n this.isLoading = false;\n this.loadedCompletely = false;\n this.hasLoaded = false;\n this._rows = null;\n if (this.loadingSubscription) {\n this.loadingSubscription.unsubscribe();\n this.loadingSubscription = null;\n }\n }\n}\n\nexport class SortInfo {\n constructor(public field: string, public dir: string) {\n this.dir = dir.toUpperCase();\n if (!(this.dir === 'ASC' || this.dir === 'DESC')) {\n throw Error('dir can only be \\'ASC\\' or \\'DESC\\'');\n }\n }\n}\n","import {LinkField} from './linkfield';\nimport {Observable, of} from 'rxjs';\nimport {delay} from 'rxjs/operators';\n\nexport class MockLinkField<T extends (object | object[])> extends LinkField<T> {\n constructor(private valueToLoad: any, private delay: number) {\n super(null, null);\n }\n\n callWithObs(params: object = null, requestOptions: object = null): Observable<T> {\n return of(this.valueToLoad).pipe(\n delay(this.delay)\n );\n }\n}"],"names":[],"mappings":";;;;;;;;;;;AAAA,MAAa,UAAU;;;;;;;;IAQZ,OAAO,QAAQ,CAAC,GAAW,EAAE,GAAW,EAAE,KAAa,EAAE,kBAA2B,IAAI;;cACrF,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5C,IAAI,CAAC,cAAc,EAAE;YACjB,GAAG,IAAI,GAAG,CAAC;SACd;;cAEK,aAAa,GAAW,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;QAC3D,IAAI,aAAa,IAAI,IAAI,IAAI,eAAe,EAAE;YAC1C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,GAAG,aAAa,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;SACnE;aAAM;YACH,IAAI,cAAc,EAAE;gBAChB,GAAG,IAAI,GAAG,CAAC;aACd;YACD,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,CAAC;SAC5B;QAED,OAAO,GAAG,CAAC;KACd;;;;;;IAEM,OAAO,SAAS,CAAC,GAAW,EAAE,MAAc;;cACzC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;;YAE3B,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC;;YACpB,KAAK,GAAG,IAAI;QAEhB,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;YACtB,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBAC5B,IAAI,KAAK,EAAE;oBACP,MAAM,IAAI,GAAG,CAAC;oBACd,KAAK,GAAG,KAAK,CAAC;iBACjB;gBAED,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;aACrC;SACJ;QACD,OAAO,MAAM,CAAC;KACjB;;;;;IAEM,OAAO,SAAS,CAAC,GAAW;;cACzB,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;QAC/B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,OAAO,EAAE,CAAC;SACb;;cAEK,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC;;cACtB,MAAM,GAAG,EAAE;;cAEX,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;QACtC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;;kBACzB,gBAAgB,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;;kBACzC,GAAG,GAAG,gBAAgB,CAAC,CAAC,CAAC;YAE/B,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;aACrC;iBAAM;gBACH,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;aACtB;SACJ;QACD,OAAO,MAAM,CAAC;KACjB;;;;;IAEM,OAAO,eAAe,CAAC,QAAgB;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC;aAChB,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC;aAClC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC;aACnC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;KAChD;;;;;IAEM,OAAO,eAAe,CAAC,QAAgB;QAC1C,QAAQ,GAAG,CAAC,QAAQ,GAAG,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAChF,OAAO,IAAI,CACP,QAAQ;aACH,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC;aACnC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,GAAG,CAAC,CAChD,CAAC;KACL;;;;;IAEM,OAAO,sBAAsB,CAAC,OAAY;QAC7C,IAAI,OAAO,IAAI,IAAI,EAAE;YACjB,OAAO,KAAK,CAAC;SAChB;aAAM;YACH,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC;SACtC;KACJ;;;;;;;IAEM,OAAO,QAAQ,CAAC,GAAW,EAAE,IAAY,EAAE,YAAqB,KAAK;;cAClE,cAAc,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;QACvC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;;cAC3B,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;;cACrE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9B,IAAI,KAAK,EAAE;YACP,IAAI,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;gBACvB,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACzC;iBAAM;gBACH,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;aACnB;SACJ;aAAM;YACH,OAAO,IAAI,CAAC;SACf;KACJ;;AAzGc,oBAAS,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,qBAAU,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClC,0BAAe,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACzC,qBAAU,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClC,0BAAe,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;;;;;;IAJtD,qBAA6C;;;;;IAC7C,sBAAiD;;;;;IACjD,2BAAwD;;;;;IACxD,sBAAiD;;;;;IACjD,2BAAsD;;;;;;;ACJ1D;;;AAGA,MAAa,YAAY;;;;;;;IAErB,YACc,IAAY,EACZ,WAAwB,EACxB,aAAqB,IAAI,EACzB,iBAAyB,IAAI;QAH7B,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAa;QACxB,eAAU,GAAV,UAAU,CAAe;QACzB,mBAAc,GAAd,cAAc,CAAe;QAIpC,gBAAW,GAA0G,cAAc,CAAC,cAAc,CAAC;KAFzJ;;;;IAID,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;KAC5B;;;;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;;;;;;IAED,aAAa,CAAC,GAAW,EAAE,YAAqB,KAAK;QACjD,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;KACzD;;;;IAED,eAAe;;YACP,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC;QACrD,IAAI,MAAM,IAAI,IAAI,EAAE;YAChB,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;SACtD;QACD,OAAO,MAAM,CAAC;KACjB;;;;;IAED,aAAa,CAAC,OAAgB,KAAK;;YAC3B,MAAM,GAAgC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;QAC7E,IAAI,MAAM,IAAI,IAAI,EAAE;YAChB,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;SACjD;aAAM;YACH,IAAI,IAAI,EAAE;gBACN,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aAC7E;YAED,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;aACnD;SACJ;QACD,OAAO,MAAM,CAAC;KACjB;;;;IAED,UAAU;;YACF,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC;QAEjD,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,OAAO,IAAI,IAAI,EAAE;gBACjB,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;aAC/B;YACD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACzD;QAED,OAAO,OAAO,CAAC;KAClB;;;;;;IAEO,yBAAyB,CAAC,GAAW;;cACnC,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;;YACxD,MAAM,GAAG,IAAI;QACjB,IAAI,SAAS,EAAE;;kBACL,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;aACjF;YACD,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACxE;QACD,OAAO,MAAM,CAAC;KACjB;;;;;IAED,mBAAmB,CAAC,GAAW;;cACrB,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC;;YACvD,MAAM,GAAG,IAAI;QACjB,IAAI,SAAS,EAAE;YACX,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAChE;QACD,OAAO,MAAM,CAAC;KACjB;;;;;IAED,IAAI,CAAC,MAAmB;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KAC5C;;;;;;;IAED,QAAQ,CAAC,SAAiB,IAAI,EAAE,iBAAyB,IAAI,EAAE,MAAmB;QAC9E,0BAAmB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAC;KACxF;;;;;;IAED,WAAW,CAAC,SAAiB,IAAI,EAAE,iBAAyB,IAAI;QAC5D,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACnB,MAAM,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACjE;QACD,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;YAC1B,MAAM,KAAK,CAAC,uDAAuD,CAAC,CAAC;SACxE;;YAEG,WAAW,GAAG,IAAI;QACtB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE;YACzB,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;SACnE;QACD,IAAI,MAAM,EAAE;YACR,IAAI,WAAW,IAAI,IAAI,EAAE;gBACrB,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;aACnC;YACD,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;SACpD;;YAEG,YAAY,GAAG,IAAI;QACvB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YAC7B,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,WAAW,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACxE;QACD,IAAI,cAAc,EAAE;YAChB,IAAI,YAAY,IAAI,IAAI,EAAE;gBACtB,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;aACpC;YACD,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;SAC9D;QAED,0BAAuB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,GAAC;KACtF;;;;IAED,IAAI;QACA,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;KAC9F;;;;;;IAED,cAAc,CAAC,UAAkB,EAAE,iBAAyB,IAAI,CAAC,cAAc;QAC3E,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;KACpF;;;;IAED,MAAM;QACF,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;SAClG;aAAM;YACH,OAAO,SAAS,CAAC;SACpB;KACJ;CACJ;;;IAjIG,mCAA0J;;;;;IAPtJ,4BAAsB;;;;;IACtB,mCAAkC;;;;;IAClC,kCAAmC;;;;;IACnC,sCAAuC;;;AAwI/C,MAAa,cAAc;;AACT,6BAAc;;;AAAG;IAC3B,OAAO,SAAS,CAAC;CACpB,EAAC;AAEY,sBAAO;;;;AAAG,UAAU,IAAY;IAC1C,OAAO,IAAI,CAAC;CACf,EAAC;AAEY,sCAAuB;;;;;;;;AAAG,UAAU,IAAY,EAAE,UAAkB,EAAE,cAAsB,EAAE,KAAU,EAAE,aAAsB;IAC1I,IAAI,aAAa,EAAE;QACf,OAAO,KAAK,CAAC;KAChB;SAAM;QACH,OAAO,SAAS,CAAC;KACpB;CACJ,EAAC;;;IAdF,8BAEE;;IAEF,uBAEE;;IAEF,uCAME;;;;;;;AClKN;;;AAKA,MAAa,SAAa,SAAQ,YAAe;;;;;;;;;IAS7C,YACI,IAAY,EACZ,WAAwB,EACxB,eAAkB,IAAI,EACtB,cAAuB,KAAK,EAC5B,aAAqB,IAAI,EACzB,iBAAyB,IAAI;QAE7B,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QAfjD,gBAAW,GAAG,KAAK,CAAC;QAKrB,gBAAW,GAAwG,cAAc,CAAC,uBAAuB,CAAC;QAmCzJ,eAAU,GAAG,IAAI,CAAC;QAxBtB,IAAI,WAAW,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;SAC1B;KACJ;;;;;;IAED,OAAO,IAAI,CAAgC,KAAQ;QAC/C,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;KACjD;;;;;IAED,GAAG,CAAC,QAAsB;QACtB,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC;SACf;QACD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;KAC5B;;;;IAED,UAAU;QACN,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC;SAChD;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;;;;IAID,OAAO,CAAC,QAAiB;QACrB,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACtB,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC;SAClC;QACD,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,UAAU,GAAG,WAAW;;;YAAC;gBAC1B,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;oBACtB,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC;iBAClC;aACJ,GAAE,QAAQ,CAAC,CAAC;SAChB;KACJ;;;;IAED,WAAW;QACP,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAClC;KACJ;;;;IAED,SAAS;QACL,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO,IAAI,CAAC,SAAS,CAAC;SACzB;aAAM;YACH,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAAI,CAAC,CAAC,CAAC;YACzC,OAAO,KAAK;;;YAAC;gBACT,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC,SAAS,CAAC;aACzB,EAAC,CAAC;SACN;KACJ;;;;IAED,MAAM;QACF,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CACxB,IAAI,CAAC,CAAC,CAAC,CACV,CAAC;KACL;;;;;IAED,GAAG,CAAC,KAAQ;;cACF,QAAQ,GAAG,IAAI,CAAC,KAAK;QAC3B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,aAAa,CAAI,CAAC,CAAC,CAAC;SAC5C;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,OAAO,QAAQ,CAAC;KACnB;;;;IAED,aAAa;QACT,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;;;IAED,YAAY;QACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KAC3B;;;;IAED,mBAAmB;QACf,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE;YACvB,MAAM,IAAI,KAAK,CAAC,+EAA+E,CAAC,CAAC;SACpG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;;;;;;;IAED,QAAQ,CAAC,QAAgB,IAAI,EAAE,iBAAyB,IAAI,EAAE,QAAqB;QAC/E,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KAC/D;;;;;;IAED,WAAW,CAAC,SAAiB,IAAI,EAAE,iBAAyB,IAAI;QAC5D,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,IAAI,CAChD,GAAG;;;;QAAC,CAAC,KAAK;YACN,IAAI,CAAC,GAAG,oBAAI,KAAK,GAAC,CAAC;YACnB,OAAO,KAAK,CAAC;SAChB,EAAC,CACL,CAAC;KACL;;;;;;IAED,cAAc,CAAC,UAAkB,EAAE,iBAAyB,IAAI,CAAC,cAAc;QAC3E,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;KAC/G;;;;;IAED,IAAI,CAAC,SAAa;QACd,IAAI,SAAS,KAAK,SAAS,EAAE;YACzB,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACzH;aAAM;YACH,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SAC5G;KACJ;;;;IAED,MAAM;QACF,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SAC9G;aAAM;YACH,OAAO,SAAS,CAAC;SACpB;KACJ;CACJ;;;;;;IAlJG,0BAAiB;;;;;IACjB,gCAA4B;;;;;IAC5B,gCAAgC;;;;;IAEhC,8BAAoC;;IAEpC,gCAAiK;;;;;IAmCjK,+BAA0B;;;;;;;AC9C9B;AAQA,MAAa,WAAW;IAAxB;QAGI,WAAM,GAAwB,SAAS,CAAC;KAgF3C;;;;;;;IA9EU,OAAO,QAAQ,CAA8B,MAAS,EAAE,MAAmB;QAC9E,0BAAU,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAC;KACpE;;;;;;;;IAEM,OAAO,UAAU,CAAmB,GAAW,EAAE,MAAmB,EAAE,YAAe,IAAI;;cACtF,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;KAClD;;;;;;;;IAEM,OAAO,UAAU,CAAmB,GAAQ,EAAE,MAAmB,EAAE,YAAe,IAAI;QACzF,IAAG,GAAG,KAAK,IAAI,EAAC;YACZ,OAAO,IAAI,CAAC;SACf;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;;kBACd,MAAM,GAAQ,GAAG;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;sBAC9B,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC;gBACtB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;oBAC1B,MAAM,CAAC,CAAC,CAAC,sBAAM,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAA,CAAC;iBAClE;aACJ;YACD,OAAO,MAAM,CAAC;SACjB;aAAM;YACH,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE;gBACrB,IAAI,KAAK,KAAK,WAAW,CAAC,QAAQ,IAAI,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;;0BACvD,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC;oBAC7B,IAAI,UAAU,EAAE;wBACZ,IAAI,UAAU,YAAY,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;4BAC3D,GAAG,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;yBACtE;qBACJ;iBACJ;aACJ;;kBAEK,GAAG,GAAG,SAAS,IAAI,IAAI,GAAG,WAAW,CAAC,SAAS,GAAG,SAAS;;kBAC3D,WAAW,GAAgB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;YAGvE,WAAW,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAEtD,0BAAU,WAAW,GAAC;SACzB;KAEJ;;;;;;;IAEO,OAAO,oBAAoB,CAAC,WAAwB,EAAE,MAAmB;;cACvE,OAAO,GAAwB,WAAW,IAAI,IAAI,GAAG,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI;QACnG,IAAI,OAAO,IAAI,IAAI,EAAE;;gBACb,WAAW,GAAG,MAAM;YACxB,IAAI,OAAO,CAAC,WAAW,EAAE;gBACrB,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,IAAI,EAAE;oBAChC,WAAW,GAAG,MAAM,CAAC,8BAA8B,CAAC,WAAW,CAAC,CAAC;iBACpE;aACJ;YAED,WAAW,CAAC,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAErF,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YAC3E,WAAW,CAAC,mBAAmB,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;SAEjF;aAAM;YACH,OAAO,IAAI,CAAC;SACf;KACJ;;;;;;;;IAEO,OAAO,gBAAgB,CAAC,IAAyB,EAAE,WAAwB,EAAE,MAAmB;QACpG,IAAI,CAAC,WAAW;;;;;QAAC,CAAC,QAAQ,EAAE,OAAO;;kBACzB,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAC;YACnC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC;SACtF,EAAC,CAAC;KACN;;;;;;;;IAEO,OAAO,mBAAmB,CAAC,IAAyB,EAAE,WAAwB,EAAE,MAAmB;QACvG,IAAI,CAAC,aAAa;;;;;QAAC,CAAC,QAAQ,EAAE,OAAO;YACjC,WAAW,CAAC,QAAQ,CAAC,GAAG,IAAI,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAC7D,EAAC,CAAC;KACN;;AAjFa,oBAAQ,GAAG,QAAQ,CAAC;;;IAAlC,qBAAkC;;IAElC,6BAAwC;;AAkF5C,MAAa,mBAAmB;;;;;;IAQ5B,OAAO,UAAU,CAAC,GAAW,EAAE,MAAmB;;cACxC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,mBAAmB,EAAE,EAAE,GAAG,CAAC;QAEjE,IAAI,WAAW,CAAC,QAAQ,IAAI,IAAI,EAAE;YAC9B,WAAW,CAAC,QAAQ,GAAG,IAAI,SAAS,oBAAM,WAAW,CAAC,QAAQ,IAAE,MAAM,CAAC,CAAC;YACxE,WAAW,CAAC,QAAQ,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC;SAC7D;QAED,OAAO,WAAW,CAAC;KACtB;;;;;IAEM,UAAU,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC1B;;;;;IAEM,OAAO,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;KAClC;;;;;IAEM,WAAW,CAAC,EAA4C;QAC3D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBACjC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;aAC9B;SACJ;KACJ;;;;;IAEM,aAAa,CAAC,EAA4C;QAC7D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;gBACnC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;aAChC;SACJ;KACJ;CAGJ;;;IA3CG,oCAAW;;IACX,sCAAa;;IACb,0CAAoB;;IACpB,uCAAyB;;IACzB,oCAAkB;;;;;;;ACnGtB,MAAa,UAAU;CAUtB;;;IATG,+BAAkB;;IAClB,kCAAqB;;IACrB,+BAAkB;;IAClB,gCAAmB;;IACnB,gCAAmB;;IACnB,mCAAsB;;IACtB,2BAAkB;;IAClB,6BAAgB;;IAChB,+BAAyB;;;;;;;ACT7B,MASa,WAAW;;;;IAcpB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QARlC,sBAAiB,GAA+B,IAAI,aAAa,EAAe,CAAC;QAIlF,YAAO,GAAG,IAAI,CAAC;QAEf,4BAAuB,GAAG,IAAI,CAAC;KAIrC;;;;;IAEM,0BAA0B,CAAC,uBAAgC;QAC9D,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;KAC1D;;;;;IAEM,YAAY,CAAC,KAAa;QAC7B,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC5B;;;;;IAEM,aAAa,CAAC,UAAkB;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;KAChC;;;;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;;;;;IAEM,iBAAiB,CAAC,EAA8B;QACnD,IAAI,EAAE,IAAI,IAAI,EAAE;YACZ,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC;SACf;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;KAC7C;;;;;IAEM,uBAAuB,CAAC,KAAkB;QAC7C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;KACtC;;;;;;IAEM,aAAa,CAAwB,UAAe;QACvD,IAAI,UAAU,IAAI,IAAI,EAAE;YACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SAC3B;aAAM;YACH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE;gBAC9D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;aACzD;iBAAM;gBACH,MAAM,KAAK,CAAC,8EAA8E,CAAC,CAAC;aAC/F;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC3C;KACJ;;;;;IAEM,sBAAsB,CAAC,OAAwE;QAClG,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;KACtC;;;;;IAEM,WAAW,CAAC,OAA0B;QACzC,IAAI,IAAI,CAAC,mBAAmB,EAAE;;kBACpB,UAAU,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC;YACpD,IAAI,UAAU,EAAE;;sBACN,cAAc,sBAA6B,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAA;gBAC5F,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;aACrD;iBAAM;gBACH,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aAC3C;SACJ;KACJ;;;;;;;;;IAEM,MAAM,CACT,GAAW,EACX,WAAmB,IAAI,EACvB,WAAmB,IAAI,EACvB,UAAkB,EAAE;QAEpB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;SAC/B;;YAEG,cAAc,GAAG,IAAI,WAAW,EAAE;QACtC,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE;YAC7B,IAAI,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;gBACnC,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;aACtE;SACJ;QAED,IAAI,QAAQ,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;YACtC,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC;SACpG;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;YAC5B,OAAO,EAAE,cAAc;SAC1B,CAAC,CAAC,IAAI,CACH,GAAG;;;;QAAC,GAAG;;kBACG,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC;YACpD,IAAI,UAAU,YAAY,WAAW,EAAE;gBACnC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC/B,0BAAO,UAAU,GAAM;aAC1B;iBAAM;gBACH,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;aACzD;SACJ,EAAC,EACF,IAAI,CAAC,mBAAmB,EAAE,CAC7B,CAAC;KACL;;;;;;;;IAEM,IAAI,CACP,GAAW,EACX,MAAe,EACf,cAAuB;;YAEnB,cAAc,GAAG,IAAI,WAAW,EAAE;QACtC,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAEtE,IAAI,IAAI,CAAC,uBAAuB,EAAE;gBAC9B,cAAc,GAAG,cAAc,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;aAC7E;SACJ;;YAEG,OAAO,GAAG,MAAM;QACpB,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;;kBAC1B,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC;;gBAC/D,cAAc;YAClB,IAAI,iBAAiB,EAAE;gBACnB,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;aAClD;iBAAM;gBACH,cAAc,GAAG,EAAE,CAAC;aACvB;YACD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;SACnD;;YAEG,OAAO,GAAG,cAAc;QAC5B,IAAI,cAAc,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;;kBAClC,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC;YAChE,IAAI,cAAc,EAAE;gBAChB,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;aACxC;iBAAM;gBACH,OAAO,GAAG,EAAE,CAAC;aAChB;YAED,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;SACpD;;cAEK,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;;YAEzC,OAAO,GAAG,IAAI;QAClB,IAAI,IAAI,CAAC,OAAO,EAAE;;gBAEV,QAAQ;;kBACN,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC;YAC3C,IAAI,WAAW,EAAE;gBACb,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;aAClE;;kBACK,IAAI,GAAG;gBACT,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;gBAC7B,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC;gBAC/B,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,OAAO;aACnB;YAED,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;YAC9B,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;YAC/B,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;YAE9B,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAE7C,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;aAC/B;YAED,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;gBACtC,OAAO,EAAE,cAAc;aAC1B,CAAC,CAAC;SACN;aAAM;YACH,IAAI,OAAO,EAAE;gBACT,WAAW,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;aAChF;YAED,IAAI,OAAO,EAAE;gBACT,WAAW,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;aAChF;YACD,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAE7C,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;aAC/B;YAED,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC/B,OAAO,EAAE,cAAc;aAC1B,CAAC,CAAC;SACN;QAED,OAAO,GAAG,OAAO,CAAC,IAAI,CAClB,GAAG;;;;QAAC,GAAG;YACH,OAAO,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAC5C,EAAC,EACF,IAAI,CAAC,mBAAmB,EAAE,CAC7B,CACA;QAED,OAAO,OAAO,CAAC;KAClB;;;;;;IAEO,mBAAmB;QACvB;;;;QAAO,CAAC,MAAqB;YACzB,OAAO,MAAM,CAAC,IAAI,CACd,UAAU;;;;YAAC,GAAG;;oBACN,SAAS,GAAG,IAAI,oBAAoB,CAAC,GAAG;;;;gBAAE,CAAC,WAAW;oBACtD,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;iBACjC,EAAC;gBACF,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAC7B,QAAQ;;;gBAAC;oBACL,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE;wBACnC,SAAS,CAAC,aAAa,EAAE,CAAC;qBAC7B;iBACJ,EAAC,CACL,CAAC;aACL,EAAC,CACL,CAAC;SACL,EAAC;KACL;;;;;IAEM,8BAA8B,CAAC,UAAuB;QACzD,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE;;kBAC9C,WAAW,GAAgB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;gBACjD,UAAU,EAAE;oBACR,YAAY,EAAE,IAAI;oBAClB,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,IAAI;iBACjB;gBACD,UAAU,EAAE;oBACR,YAAY,EAAE,IAAI;oBAClB,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,IAAI;iBACjB;gBACD,WAAW,EAAE;oBACT,YAAY,EAAE,IAAI;oBAClB,UAAU,EAAE,IAAI;oBAChB,QAAQ,EAAE,IAAI;iBACjB;aACJ,CAAC;YACF,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACtC,OAAO,WAAW,CAAC;SACtB;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,6HAA6H,CAAC,CAAC;SAClJ;KACJ;;;;;IAEM,cAAc,CAAC,QAA4B;QAC9C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;KAC/B;;;;;IAEM,OAAO,YAAY,CAAC,YAA+B;;cAChD,GAAG,GAAG,YAAY,CAAC,KAAK;QAC9B,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;YACvC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC5D;QACD,OAAO,IAAI,CAAC;KACf;;;;IAIM,OAAO,0BAA0B;;cAC9B,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI;;QAGjC,IAAI,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;iBAC5C,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;SACzC;aAAM;YACH,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;gBAC7C,OAAO,uBAAuB,CAAC;aAClC;iBAAM;gBACH,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC;aAC/E;SACJ;KACJ;;;;IAEM,OAAO,+BAA+B;QACzC,OAAO,IAAI,CAAC,0BAA0B,EAAE,GAAG,YAAY,CAAC;KAC3D;;AApBc,+BAAmB,GAAG,IAAI,MAAM,CAAC,6DAA6D,CAAC,CAAC;;YArRlH,UAAU;;;;YAPH,UAAU;;;;;;;IA4Rd,gCAA+G;;;;;IAlR/G,iCAA2B;;;;;IAC3B,kCAA4B;;;;;IAC5B,iCAAgC;;;;;IAEhC,wCAAyF;;;;;IAEzF,kCAAwC;;;;;IACxC,0CAA6F;;IAC7F,8BAAsB;;IAEtB,8CAAsC;;;;;IAE1B,iCAA8B;;AA6R9C,MAAa,oBAAoB;;;;;IAI7B,YAAoB,KAAU,EAAU,cAAkC;QAAtD,UAAK,GAAL,KAAK,CAAK;QAAU,mBAAc,GAAd,cAAc,CAAoB;QAHlE,YAAO,GAAG,KAAK,CAAC;QAChB,qBAAgB,GAAG,KAAK,CAAC;KAIhC;;;;IAEM,aAAa;QAChB,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;KACJ;;;;;IAEM,WAAW,CAAC,OAA6B;QAC5C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACvB;;;;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;;;;IAEM,oBAAoB;QACvB,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAChC;;;;IAEM,cAAc;QACjB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAChC;;;;IAEM,iBAAiB;QACpB,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;KACtC;CACJ;;;;;;IAlCG,uCAAwB;;;;;IACxB,gDAAiC;;;;;IAErB,qCAAkB;;;;;IAAE,8CAA0C;;;;;;;ACxT9E,MAyCa,oCAAoC;;;YAvChD,SAAS,SAAC;gBACP,QAAQ,EAAE,qBAAqB;gBAC/B,QAAQ,EAAE;;;;KAIT;yBACQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BR;aACJ;;;;;;;ACxCD,MAMa,aAAa;;;;IAItB,YAAY,iBAAoC;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC;KACrD;;;;IAED,WAAW;QACP,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;KAChC;;;;;;IAED,SAAS,CAA0C,SAAuB;QACtE,IAAI,SAAS,IAAI,IAAI,EAAE;YACnB,OAAO,IAAI,CAAC;SACf;QACD,IAAI,SAAS,YAAY,SAAS,EAAE;YAChC,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;SACvD;aAAM;;YAEH,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;SACvG;KACJ;;;YAvBJ,IAAI,SAAC,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAC;;;;YAJE,iBAAiB;;;;;;;IAOrD,kCAA6B;;;;;;;ACRjC,MAgCa,kCAAkC;;;;IAI3C,OAAO;QACH,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;KAC9B;;;YAnCJ,SAAS,SAAC;gBACP,QAAQ,EAAE,mBAAmB;gBAC7B,QAAQ,EAAE;;KAET;yBACQ;;;;;;;;;;;;;;;;;;;;;;KAsBR;aACJ;;;oBAEI,KAAK;;;;IAAN,mDAC4B;;;;;;;AClChC;;;AAqBA,MAAa,kBAAkB;;;;;;;IAkB3B,YACY,cAAgC,EAChC,SAA2C,EAC3C,iBAA2C,EAC3C,iBAAoC;QAHpC,mBAAc,GAAd,cAAc,CAAkB;QAChC,cAAS,GAAT,SAAS,CAAkC;QAC3C,sBAAiB,GAAjB,iBAAiB,CAA0B;QAC3C,sBAAiB,GAAjB,iBAAiB,CAAmB;QAdxC,YAAO,GAAG,IAAI,CAAC;QACf,cAAS,GAAG,KAAK,CAAC;QAClB,iBAAY,GAAM,IAAI,CAAC;QACvB,cAAS,GAAG,KAAK,CAAC;QAGlB,iBAAY,GAAiB,IAAI,CAAC;QA6C1C,kCAA6B,GAAG,KAAK,CAAC;QAnClC,IAAI,CAAC,wBAAwB,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,oCAAoC,CAAC,CAAC;QAChH,IAAI,CAAC,sBAAsB,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,kCAAkC,CAAC,CAAC;KAC/G;;;;;IAED,IACI,aAAa,CAAC,IAAkB;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;;;;;IAED,IACI,wBAAwB,CAAC,eAAiC;QAC1D,IAAI,eAAe,EAAE;YACjB,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;SAC3C;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC5B;;;;;IAED,IACI,sBAAsB,CAAC,aAA+B;QACtD,IAAI,aAAa,EAAE;YACf,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;SACvC;QACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KAC5B;;;;;IAED,IACI,iBAAiB,CAAC,KAAuC;QACzD,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SAC1B;KACJ;;;;;IAQO,IAAI;QACR,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,IAAI,CAAC,KAAK,YAAY,SAAS,EAAE;gBACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;iBACnC;gBACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CACjC,QAAQ;;;gBAAC;oBACL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;iBAC1B,EAAC,CACL,CAAC,SAAS;;;;gBAAC,CAAC,YAAe;oBACxB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;oBACnC,IAAI,IAAI,CAAC,oBAAoB,EAAE;wBAC3B,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;qBAC3C;iBACJ;;;;gBAAE,CAAC,SAA+B;oBAC/B,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE;wBACrC,SAAS,CAAC,cAAc,EAAE,CAAC;qBAC9B;oBACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;iBAC5B,EAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;;aAGpC;SACJ;KACJ;;;;IAGD,SAAS;QACL,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,IAAI,CAAC,KAAK,YAAY,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE;gBAC5E,IAAI,CAAC,IAAI,EAAE,CAAC;aACf;SACJ;KACJ;;;;IAED,WAAW;QACP,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;;;;;;IAEO,QAAQ,CAAC,KAA2B;QACxC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE;gBACxD,SAAS,EAAE,KAAK;aACnB,CAAC,CAAC;SACN;aAAM;;gBACC,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,sBAAsB,CAAC;YAC7F,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;SACpD;KACJ;;;;;;IAGO,UAAU,CAAC,OAAgB;QAC/B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACvB,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC7B,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACjE;iBAAM;gBACH,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC7B,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;aACtE;SACJ;KACJ;;;;;;IAEO,eAAe,CAAC,MAAS;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;YAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,gBAAgB,CAAI,MAAM,CAAC,CAAC;YACtD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;aAAM;YACH,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,MAAM,CAAC;YACvC,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;SACzC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACzC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACvB;aAAM;YACH,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC7B,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;aAC/E;SACJ;KACJ;;;;;;IAEO,aAAa,CAAC,cAAuB,KAAK;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,WAAW,KAAK,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE;YAC/G,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAC3C;YACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACxB;KACJ;;;;;IAEO,KAAK;QACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC5B;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC9B;;;YAjLJ,SAAS,SAAC;gBACP,QAAQ,EAAE,4BAA4B;aACzC;;;;YAhBG,gBAAgB;YADhB,WAAW;YAEX,wBAAwB;YAGb,iBAAiB;;;4BAyC3B,KAAK;uCAOL,KAAK;qCAQL,KAAK;gCAQL,KAAK;4CAOL,KAAK;mCAGL,KAAK;;;;;;;IA3DN,mCAAgC;;;;;IAChC,8CAA2C;;;;;IAC3C,4CAAyC;;;;;IACzC,sDAAyF;;;;;IACzF,oDAAqF;;;;;IAErF,qCAAuB;;;;;IACvB,uCAA0B;;;;;IAC1B,0CAA+B;;;;;IAC/B,uCAA0B;;;;;IAE1B,qCAA+B;;;;;IAC/B,0CAA0C;;;;;IAE1C,4CAA4C;;IA0C5C,2DACsC;;IAEtC,kDACkC;;;;;IA3C9B,4CAAwC;;;;;IACxC,uCAAmD;;;;;IACnD,+CAAmD;;;;;IACnD,+CAA4C;;;;;AA2JpD,MAAa,gBAAgB;;;;IAEzB,YAAmB,SAAY;QAAZ,cAAS,GAAT,SAAS,CAAG;KAC9B;CACJ;;;IAFe,qCAAmB;;;;;;;ACxMnC,MAiBa,iBAAiB;IAH9B;QAQI,qBAAgB,GAA6B,IAAI,YAAY,EAAE,CAAC;QAGhE,eAAU,GAA8C,IAAI,YAAY,EAAE,CAAC;QAG3E,eAAU,GAAuB,IAAI,YAAY,EAAE,CAAC;QAGpD,cAAS,GAA6B,IAAI,YAAY,EAAE,CAAC;QAGzD,cAAS,GAAuB,IAAI,YAAY,EAAE,CAAC;KAqBtD;;;;IAZG,OAAO;QACH,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS;;;;QAAC,CAAC,QAAQ;YAChF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;SAChG;;;;QAAE,CAAC,KAAK;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SAC3F;;;QAAE;YACC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;SAC1B,EAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;KAC5F;;;YAxCJ,SAAS,SAAC;gBACP,QAAQ,EAAE,YAAY;aACzB;;;uBAEI,KAAK;+BAGL,MAAM;yBAGN,MAAM;yBAGN,MAAM;wBAGN,MAAM;wBAGN,MAAM;0BAGN,KAAK;6BAGL,KAAK;sBAGL,YAAY,SAAC,OAAO;;;;IAxBrB,qCACoD;;IAEpD,6CACgE;;IAEhE,uCAC2E;;IAE3E,uCACoD;;IAEpD,sCACyD;;IAEzD,sCACmD;;IAEnD,wCACoB;;IAEpB,2CACuB;;AAiB3B,MAAa,UAAU;;;;;;;IACnB,YACW,IAA+C,EAC/C,KAAgB,EAChB,QAAqC,EACrC,KAAiB;QAHjB,SAAI,GAAJ,IAAI,CAA2C;QAC/C,UAAK,GAAL,KAAK,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAA6B;QACrC,UAAK,GAAL,KAAK,CAAY;KAE3B;CACJ;;;IANO,0BAAsD;;IACtD,2BAAuB;;IACvB,8BAA4C;;IAC5C,2BAAwB;;;;IAM5B,UAAO;IACP,UAAO;IACP,QAAK;;;;;;;;;;ACtET,MAuBa,0BAA0B;IAXvC;QAaY,UAAK,GAAG,EAAE,CAAA;QAMlB,2BAAsB,GAAW,IAAI,CAAA;QAGrC,2BAAsB,GAAQ,IAAI,CAAC,KAAK,CAAA;QAGxC,8BAAyB,GAAG,GAAG,CAAC;KAwEnC;;;;;IAnEG,QAAQ,CAAC,OAAwB;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAC7C,SAAS;;;QAAC;;gBACF,aAAa,GAAG,IAAI,CAAC,sBAAsB;YAC/C,IAAI,aAAa,KAAK,IAAI,CAAC,KAAK,EAAE;gBAC9B,aAAa,GAAG,OAAO,CAAC,KAAK,CAAA;aAChC;;gBAEG,GAAG,GAAG,EAAE;YACZ,IAAI,IAAI,CAAC,sBAAsB,EAAE;gBAC7B,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,aAAa,CAAA;aACnD;iBAAM;gBACH,GAAG,GAAG,aAAa,CAAA;aACtB;YAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CACrD,GAAG;;;;YAAC,aAAa;;oBACT,SAAS,GAAG,KAAK;gBACrB,IAAI,IAAI,CAAC,sBAAsB,EAAE;oBAC7B,IAAI,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,IAAI,EAAE;wBACpD,SAAS,GAAG,IAAI,CAAA;qBACnB;iBACJ;qBAAM;oBACH,KAAK,IAAI,GAAG,IAAI,aAAa,EAAE;wBAC3B,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;4BAC5B,SAAS,GAAG,IAAI,CAAA;yBACnB;qBACJ;iBACJ;gBACD,IAAI,SAAS,EAAE;oBACX,IAAI,CAAC,MAAM,GAAG,aAAa,CAAA;oBAC3B,OAAO;wBACH,iBAAiB,EAAE,IAAI,CAAC,MAAM;qBACjC,CAAA;iBAEJ;qBAAM;oBACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;oBAClB,OAAO,IAAI,CAAA;iBACd;aACJ,EAAC,CACL,CAAA;SACJ,EAAC,CACL,CAAA;KACJ;;;;;IAED,cAAc,CAAC,OAAwB;;YAC/B,WAAW,GAAG,IAAI;;YAClB,MAAM,GAAG,OAAO,CAAC,MAAM;;;QAI3B,IAAI,MAAM,YAAY,SAAS,EAAE;;YAE7B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO;;;;YAAC,CAAC,IAAI;;;gBAGtC,IAAI,OAAO,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;;;oBAGnC,WAAW,GAAG,IAAI,CAAC;iBACtB;aACJ,EAAC,CAAC;SACN;;QAED,OAAO,WAAW,CAAC;KACtB;;;YA/FJ,SAAS,SAAC;gBACP,QAAQ,EAAE,qBAAqB;gBAC/B,SAAS,EAAE;oBACP;wBACI,OAAO,EAAE,mBAAmB;wBAC5B,WAAW,EAAE,UAAU;;;wBAAC,MAAM,0BAA0B,EAAC;wBACzD,KAAK,EAAE,IAAI;qBACd;iBACJ;gBACD,QAAQ,EAAE,gBAAgB;aAC7B;;;gCAKI,KAAK;qCAGL,KAAK;qCAGL,KAAK;wCAGL,KAAK;;;;;;;IAXN,2CAAkB;;IAElB,uDACoC;;IAEpC,4DACqC;;IAErC,4DACwC;;IAExC,+DACgC;;IAEhC,4CAAkB;;;;;;;ACvCtB,MAmCa,iBAAiB;;;;IAC1B,OAAO,aAAa;QAChB,OAAO;YACH,QAAQ,EAAE,iBAAiB;YAC3B,SAAS,EAAE;gBACP,WAAW;aACd;SACJ,CAAC;KACL;;;YAjCJ,QAAQ,SAAC;gBACN,eAAe,EAAE;oBACb,oCAAoC;oBACpC,kCAAkC;iBACrC;gBACD,OAAO,EAAE;oBACL,gBAAgB;iBACnB;gBACD,YAAY,EAAE;oBACV,aAAa;oBACb,kBAAkB;oBAClB,iBAAiB;oBACjB,oCAAoC;oBACpC,kCAAkC;oBAClC,0BAA0B;iBAC7B;gBACD,OAAO,EAAE;oBACL,aAAa;oBACb,kBAAkB;oBAClB,iBAAiB;oBACjB,kCAAkC;oBAClC,oCAAoC;oBACpC,0BAA0B;iBAC7B;aACJ;;;;;;;AC7BD,MAAa,sBAAsB;;;;;;IAE/B,YACY,QAAkC,EAClC,iBAAoC,EACrC,YAAoB,GAAG;QAFtB,aAAQ,GAAR,QAAQ,CAA0B;QAClC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACrC,cAAS,GAAT,SAAS,CAAc;QAI1B,UAAK,GAAe,IAAI,CAAC;QAE1B,cAAS,GAAG,KAAK,CAAC;QACjB,qBAAgB,GAAG,KAAK,CAAC;QACzB,cAAS,GAAG,KAAK,CAAC;QAClB,UAAK,GAAU,IAAI,CAAC;QACpB,wBAAmB,GAAiB,IAAI,CAAC;QAsCzC,oBAAe;;;QAAG;YACtB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC1B,EAAC;KAhDD;;;;IAaD,IAAI,IAAI;QACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;;;;;;;IAEM,OAAO,IAAI,CACd,QAAkC,EAClC,iBAAoC,EACpC,YAAoB,GAAG;QAEvB,OAAO,IAAI,sBAAsB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;KAC7E;;;;;;IAEM,SAAS,CAAC,KAAiB,EAAE,eAAe,GAAG,IAAI;QACtD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,eAAe,EAAE;YACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;aAAM;YACH,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aAC3B;iBAAM;gBACH,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;aAC1C;SACJ;KAEJ;;;;;;IAMM,YAAY,CAAC,WAAmB,IAAI,CAAC,SAAS,EAAE,iBAAsD,IAAI;QAC7G,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAClC,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC1B,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;gBACvC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;aACnC;YAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;gBACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;;sBAEhB,UAAU,GAAQ,EAAE;gBAC1B,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;oBACpB,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;iBACnC;gBACD,IAAI,QAAQ,IAAI,IAAI,EAAE;oBAClB,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;iBAClC;gBAGD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,SAAS;;;;gBAAC,CAAC,SAAS;oBACvF,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;iBAC3C,GAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;aAClD;iBAAM;;sBACG,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;gBAC9B,IAAI,OAAO,EAAE;oBACT,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;;4BACrB,UAAU,GAAG,IAAI;wBACrB,IAAI,QAAQ,IAAI,IAAI,EAAE;4BAClB,UAAU,GAAG;gCACT,QAAQ,EAAE,QAAQ;6BACrB,CAAC;yBACL;;8BAEK,WAAW,GAA8B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC;wBACpG,IAAI,WAAW,EAAE;4BACb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;4BACtB,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,SAAS;;;;4BAAC,CAAC,QAAQ;gCACtD,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;6BAC1C,GAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;yBAClD;qBACJ;iBACJ;aACJ;SACJ;aAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;KACJ;;;;IAEM,cAAc;QACjB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KAC3B;;;;;IAEO,OAAO;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC5C;;;;;;;IAEO,OAAO,CAAC,cAAqB,EAAE,YAAiD;QACpF,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,cAAc,CAAC,CAAC;SAClD;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;SAC/B;QACD,IAAI,YAAY,EAAE;YACd,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC5C;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;;;;;IAEO,SAAS;QACb,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;YACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;KACJ;;;;;IAEO,cAAc;;cACZ,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;YAC3B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;SAC3D;aAAM;YACH,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SACjC;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACvC;QACD,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;;;;;;IAEO,UAAU,CAAC,SAAkB;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC1C;QACD,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;KAC1C;;;;IAEM,OAAO;QACV,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KACjC;;;;;IAEM,WAAW,CAAC,QAAkC;QACjD,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;;;;IAEM,mBAAmB;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAChC;;;;;;IAEM,IAAI,CAAC,kBAAyC,EAAE,oBAAoD,IAAI;QAC3G,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;KAC9C;;;;;IAEO,UAAU;QACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;SACnC;KACJ;CACJ;;;;;;IAjLG,uCAAiC;;IAEjC,2CAAyB;;;;;IACzB,kDAAiC;;;;;IACjC,2CAA0B;;;;;IAC1B,uCAA4B;;;;;IAC5B,qDAAiD;;IAEjD,oDAAiD;;IACjD,mDAAuD;;;;;IAmCvD,iDAEE;;;;;IApDE,0CAA0C;;;;;IAC1C,mDAA4C;;IAC5C,2CAA8B;;AAuLtC,MAAa,QAAQ;;;;;IACjB,YAAmB,KAAa,EAAS,GAAW;QAAjC,UAAK,GAAL,KAAK,CAAQ;QAAS,QAAG,GAAH,GAAG,CAAQ;QAChD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,KAAK,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,EAAE;YAC9C,MAAM,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACtD;KACJ;CACJ;;;IANe,yBAAoB;;IAAE,uBAAkB;;;;;;;AClMxD;;;AAIA,MAAa,aAA6C,SAAQ,SAAY;;;;;IAC1E,YAAoB,WAAgB,EAAU,KAAa;QACvD,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QADF,gBAAW,GAAX,WAAW,CAAK;QAAU,UAAK,GAAL,KAAK,CAAQ;KAE1D;;;;;;IAED,WAAW,CAAC,SAAiB,IAAI,EAAE,iBAAyB,IAAI;QAC5D,OAAO,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CACpB,CAAC;KACL;CACJ;;;;;;IATe,oCAAwB;;;;;IAAE,8BAAqB;;;;;;;;;;;;;;;"}
@@ -641,7 +641,7 @@ LinkField = /** @class */ (function (_super) {
641
641
  this.stopRefresh();
642
642
  }
643
643
  if (this.isInitialized()) {
644
- this.initWithObs();
644
+ this.initWithObs().subscribe();
645
645
  }
646
646
  if (interval) {
647
647
  this.intervalId = setInterval((/**