@coolon/angular-ui-powerups 16.1.0-alpha.295 → 16.1.0-alpha.297

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.
@@ -49,6 +49,10 @@ export class ButtonRendererComponent extends PopupAwareComponent {
49
49
  this.iconOnly$ = chain(this.faces$).select(face => {
50
50
  return isEmpty(CommandFaceUtils.getTextOf(face)) && !isEmpty(CommandFaceUtils.getIconOf(face));
51
51
  }).count().equals(chain(this.faces$).count());
52
+ // A command that finishes while nothing else re-renders its host (a dialog's command finishing
53
+ // after the host already re-rendered for what it changed) must still re-enable the button, and an
54
+ // OnPush host is never checked for it otherwise.
55
+ this.viewStateDependsOn(this.faces$, this.enabled$, this.busy$);
52
56
  }
53
57
  get renderAsMenuItem() {
54
58
  return this.inPopup && !this.forceRenderAsButton;
@@ -112,4 +116,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
112
116
  type: HostBinding,
113
117
  args: ["class.in-popup"]
114
118
  }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvY29tbWFuZHMvYnV0dG9uLXJlbmRlcmVyL2J1dHRvbi1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2NvbW1hbmRzL2J1dHRvbi1yZW5kZXJlci9idXR0b24tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJdkUsT0FBTyxFQUdMLEdBQUcsRUFDSCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sRUFDUCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFFWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFdBQVcsSUFBSSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7O0FBT25FLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFHckQsMkJBQWlDLE9BQU8sQ0FBQyxDQUFBLFNBQXNCLENBQUEsQ0FBQyxDQUFDO0lBQWpFLElBQUEsTUFBTSw0Q0FBMkQ7SUFBakUsSUFBQSxNQUFNLGtEQUEyRDtJQUdqRSx3QkFBcUI7SUFBckIsSUFBQSxLQUFLLDJDQUFnQjtJQUFyQixJQUFB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QUFpQixFQUFFOzttREFDTjsyRkFsQlosdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjswRUFPdEIsTUFBTTtzQkFEZCxLQUFLO2dCQUlHLEtBQUs7c0JBRGIsS0FBSztnQkFJRyxRQUFRO3NCQURoQixLQUFLO2dCQUlHLE9BQU87c0JBRGYsS0FBSztnQkFJRyxLQUFLO3NCQURiLEtBQUs7Z0JBSUcsSUFBSTtzQkFEWixLQUFLO2dCQUtOLFNBQVM7c0JBRlIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxPQUFPO2dCQUlwQixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFFBQVE7Z0JBNkJmLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcbmltcG9ydCB7VGhlbWVQYWxldHRlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xuaW1wb3J0IHtNYXRNZW51SXRlbX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcbmltcG9ydCB7XG4gIEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW4sXG4gIENvbW1hbmRGYWNlLFxuICBEc2wsXG4gIExpc3RNb2RlbCxcbiAgUHJveGlmeSxcbiAgcHJveGlmeSxcbiAgU3RvcmVJbkxpc3RNb2RlbCxcbiAgU3RvcmVJblZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxDaGFpblxufSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7aXNFbXB0eX0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHtIb3Jpem9udGFsQWxpZ25tZW50fSBmcm9tIFwiLi4vLi4vYWxpZ25tZW50XCI7XG5pbXBvcnQge0NvbW1hbmRGYWNlIGFzIENvbW1hbmRGYWNlVXRpbHN9IGZyb20gJy4uL2NvbW1hbmQtZmFjZSc7XG5pbXBvcnQge1BvcHVwQXdhcmVDb21wb25lbnR9IGZyb20gXCIuLi9ncm91cC9wb3B1cC1hd2FyZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLWJ1dHRvbi1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24tcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uUmVuZGVyZXJDb21wb25lbnQgZXh0ZW5kcyBQb3B1cEF3YXJlQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGZhY2VzJDogTGlzdE1vZGVsPENvbW1hbmRGYWNlPiA9IHByb3hpZnkoTGlzdE1vZGVsPENvbW1hbmRGYWNlPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5MaXN0TW9kZWwoKVxuICBhY2Nlc3NvciBmYWNlczogQ29tbWFuZEZhY2VbXTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGVuYWJsZWQkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+ID0gcHJveGlmeShWYWx1ZU1vZGVsPGJvb2xlYW4+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBlbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGJ1c3kkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+ID0gcHJveGlmeShWYWx1ZU1vZGVsPGJvb2xlYW4+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBidXN5OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZyhcImNsYXNzXCIpXG4gIGFsaWduRmFjZTogSG9yaXpvbnRhbEFsaWdubWVudCA9IEhvcml6b250YWxBbGlnbm1lbnQuQ0VOVEVSO1xuXG4gIEBJbnB1dCgpXG4gIGZvcmNlUmVuZGVyQXNCdXR0b24gPSBmYWxzZVxuXG4gIEBWaWV3Q2hpbGQoXCJidXR0b25cIilcbiAgbWF0Q29udHJvbDogTWF0TWVudUl0ZW0gfCBNYXRCdXR0b247XG5cblxuICByZWFkb25seSBidXR0b25TdHlsZSQ6IFZhbHVlTW9kZWxDaGFpbjxzdHJpbmc+O1xuICByZWFkb25seSBjb2xvciQ6IFZhbHVlTW9kZWxDaGFpbjxUaGVtZVBhbGV0dGU+XG4gIHByaXZhdGUgYWN0aXZlRmFjZSQ6IFZhbHVlTW9kZWxDaGFpbjxDb21tYW5kRmFjZT47XG5cbiAgcmVhZG9ubHkgaWNvbk9ubHkkOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICByZWFkb25seSB0b29sdGlwJDogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG5cbiAgQ29tbWFuZEZhY2VVdGlscyA9IENvbW1hbmRGYWNlVXRpbHNcblxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWluLCB3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcblxuICAgIHRoaXMuYWN0aXZlRmFjZSQgPSBjaGFpbih0aGlzLmZhY2VzJCkuZmlyc3QoKTtcbiAgICB0aGlzLmJ1dHRvblN0eWxlJCA9IGNoYWluKHRoaXMuYWN0aXZlRmFjZSQpLm1hcChmID0+IENvbW1hbmRGYWNlVXRpbHMuZ2V0U3R5bGVPZihmKSk7XG4gICAgdGhpcy5jb2xvciQgPSBjaGFpbih0aGlzLmFjdGl2ZUZhY2UkKS5tYXAoZiA9PiBDb21tYW5kRmFjZVV0aWxzLmdldENvbG9yT2YoZikpO1xuICAgIHRoaXMudG9vbHRpcCQgPSBjaGFpbih0aGlzLmFjdGl2ZUZhY2UkKS5tYXAoZiA9PiBDb21tYW5kRmFjZVV0aWxzLmdldFRvb2x0aXBPZihmKSk7XG4gICAgdGhpcy5pY29uT25seSQgPSBjaGFpbih0aGlzLmZhY2VzJCkuc2VsZWN0KGZhY2UgPT4ge1xuICAgICAgcmV0dXJuIGlzRW1wdHkoQ29tbWFuZEZhY2VVdGlscy5nZXRUZXh0T2YoZmFjZSkpICYmICFpc0VtcHR5KENvbW1hbmRGYWNlVXRpbHMuZ2V0SWNvbk9mKGZhY2UpKTtcbiAgICB9KS5jb3VudCgpLmVxdWFscyhjaGFpbih0aGlzLmZhY2VzJCkuY291bnQoKSk7XG5cbiAgfVxuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmluLXBvcHVwXCIpXG4gIGdldCByZW5kZXJBc01lbnVJdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmluUG9wdXAgJiYgIXRoaXMuZm9yY2VSZW5kZXJBc0J1dHRvbjtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMubWF0Q29udHJvbC5mb2N1cygpO1xuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhcmVuZGVyQXNNZW51SXRlbVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWNvbk9ubHkkLnZhbHVlXCI+XG4gICAgPGJ1dHRvbiAjYnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbY29sb3JdPVwiY29sb3IkLnZhbHVlXCIgW2Rpc2FibGVkXT1cIiFlbmFibGVkXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgIDxhdXAtY29tbWFuZC1mYWNlIFtjbGFzc109XCJhbGlnbkZhY2VcIiBbZmFjZXNdPVwiZmFjZXMkLnZhbHVlXCI+PC9hdXAtY29tbWFuZC1mYWNlPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpY29uT25seSQudmFsdWVcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJidXR0b25TdHlsZSQudmFsdWVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbW1hbmRGYWNlVXRpbHMuU3R5bGUuU1RST0tFRFwiPlxuICAgICAgICA8YnV0dG9uICNidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIFtjb2xvcl09XCJjb2xvciQudmFsdWVcIiBbZGlzYWJsZWRdPVwiIWVuYWJsZWRcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAkLnZhbHVlXCI+XG4gICAgICAgICAgPGF1cC1jb21tYW5kLWZhY2UgW2NsYXNzXT1cImFsaWduRmFjZVwiIFtmYWNlc109XCJmYWNlcyQudmFsdWVcIj48L2F1cC1jb21tYW5kLWZhY2U+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb21tYW5kRmFjZVV0aWxzLlN0eWxlLlJBSVNFRFwiPlxuICAgICAgICA8YnV0dG9uICNidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW2NvbG9yXT1cImNvbG9yJC52YWx1ZVwiIFtkaXNhYmxlZF09XCIhZW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgICAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgPGJ1dHRvbiAjYnV0dG9uIG1hdC1idXR0b24gW2NvbG9yXT1cImNvbG9yJC52YWx1ZVwiIFtkaXNhYmxlZF09XCIhZW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgICAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbmRlckFzTWVudUl0ZW1cIj5cbiAgPGJ1dHRvbiAjYnV0dG9uIG1hdC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cIiFlbmFibGVkXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgPC9idXR0b24+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXJlbmRlcmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvY29tbWFuZHMvYnV0dG9uLXJlbmRlcmVyL2J1dHRvbi1yZW5kZXJlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2NvbW1hbmRzL2J1dHRvbi1yZW5kZXJlci9idXR0b24tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJdkUsT0FBTyxFQUdMLEdBQUcsRUFDSCxTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sRUFDUCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFFWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFdBQVcsSUFBSSxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7O0FBT25FLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxtQkFBbUI7SUFHckQsMkJBQWlDLE9BQU8sQ0FBQyxDQUFBLFNBQXNCLENBQUEsQ0FBQyxDQUFDO0lBQWpFLElBQUEsTUFBTSw0Q0FBMkQ7SUFBakUsSUFBQSxNQUFNLGtEQUEyRDtJQUdqRSx3QkFBcUI7SUFBckIsSUFBQSxLQUFLLDJDQUFnQjtJQUFyQixJQUFB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QUFFOztvREFDRTtBQUdyQjtJQURDLE9BQU8sRUFBRTs4QkFDQSxVQUFVO3VEQUF5QztBQUc3RDtJQURDLGlCQUFpQixFQUFFOztzREFDSTtBQUd4QjtJQURDLE9BQU8sRUFBRTs4QkFDSCxVQUFVO29EQUF5QztBQUcxRDtJQURDLGlCQUFpQixFQUFFOzttREFDTjsyRkFsQlosdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHFCQUFxQjswRUFPdEIsTUFBTTtzQkFEZCxLQUFLO2dCQUlHLEtBQUs7c0JBRGIsS0FBSztnQkFJRyxRQUFRO3NCQURoQixLQUFLO2dCQUlHLE9BQU87c0JBRGYsS0FBSztnQkFJRyxLQUFLO3NCQURiLEtBQUs7Z0JBSUcsSUFBSTtzQkFEWixLQUFLO2dCQUtOLFNBQVM7c0JBRlIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxPQUFPO2dCQUlwQixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFFBQVE7Z0JBaUNmLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcbmltcG9ydCB7VGhlbWVQYWxldHRlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xuaW1wb3J0IHtNYXRNZW51SXRlbX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcbmltcG9ydCB7XG4gIEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW4sXG4gIENvbW1hbmRGYWNlLFxuICBEc2wsXG4gIExpc3RNb2RlbCxcbiAgUHJveGlmeSxcbiAgcHJveGlmeSxcbiAgU3RvcmVJbkxpc3RNb2RlbCxcbiAgU3RvcmVJblZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxDaGFpblxufSBmcm9tIFwiQGNvb2xvbi9wZWN0aW5cIjtcbmltcG9ydCB7aXNFbXB0eX0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHtIb3Jpem9udGFsQWxpZ25tZW50fSBmcm9tIFwiLi4vLi4vYWxpZ25tZW50XCI7XG5pbXBvcnQge0NvbW1hbmRGYWNlIGFzIENvbW1hbmRGYWNlVXRpbHN9IGZyb20gJy4uL2NvbW1hbmQtZmFjZSc7XG5pbXBvcnQge1BvcHVwQXdhcmVDb21wb25lbnR9IGZyb20gXCIuLi9ncm91cC9wb3B1cC1hd2FyZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLWJ1dHRvbi1yZW5kZXJlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24tcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24tcmVuZGVyZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uUmVuZGVyZXJDb21wb25lbnQgZXh0ZW5kcyBQb3B1cEF3YXJlQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGZhY2VzJDogTGlzdE1vZGVsPENvbW1hbmRGYWNlPiA9IHByb3hpZnkoTGlzdE1vZGVsPENvbW1hbmRGYWNlPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5MaXN0TW9kZWwoKVxuICBhY2Nlc3NvciBmYWNlczogQ29tbWFuZEZhY2VbXTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGVuYWJsZWQkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+ID0gcHJveGlmeShWYWx1ZU1vZGVsPGJvb2xlYW4+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBlbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGJ1c3kkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+ID0gcHJveGlmeShWYWx1ZU1vZGVsPGJvb2xlYW4+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBidXN5OiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZyhcImNsYXNzXCIpXG4gIGFsaWduRmFjZTogSG9yaXpvbnRhbEFsaWdubWVudCA9IEhvcml6b250YWxBbGlnbm1lbnQuQ0VOVEVSO1xuXG4gIEBJbnB1dCgpXG4gIGZvcmNlUmVuZGVyQXNCdXR0b24gPSBmYWxzZVxuXG4gIEBWaWV3Q2hpbGQoXCJidXR0b25cIilcbiAgbWF0Q29udHJvbDogTWF0TWVudUl0ZW0gfCBNYXRCdXR0b247XG5cblxuICByZWFkb25seSBidXR0b25TdHlsZSQ6IFZhbHVlTW9kZWxDaGFpbjxzdHJpbmc+O1xuICByZWFkb25seSBjb2xvciQ6IFZhbHVlTW9kZWxDaGFpbjxUaGVtZVBhbGV0dGU+XG4gIHByaXZhdGUgYWN0aXZlRmFjZSQ6IFZhbHVlTW9kZWxDaGFpbjxDb21tYW5kRmFjZT47XG5cbiAgcmVhZG9ubHkgaWNvbk9ubHkkOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICByZWFkb25seSB0b29sdGlwJDogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG5cbiAgQ29tbWFuZEZhY2VVdGlscyA9IENvbW1hbmRGYWNlVXRpbHNcblxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWluLCB3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcblxuICAgIHRoaXMuYWN0aXZlRmFjZSQgPSBjaGFpbih0aGlzLmZhY2VzJCkuZmlyc3QoKTtcbiAgICB0aGlzLmJ1dHRvblN0eWxlJCA9IGNoYWluKHRoaXMuYWN0aXZlRmFjZSQpLm1hcChmID0+IENvbW1hbmRGYWNlVXRpbHMuZ2V0U3R5bGVPZihmKSk7XG4gICAgdGhpcy5jb2xvciQgPSBjaGFpbih0aGlzLmFjdGl2ZUZhY2UkKS5tYXAoZiA9PiBDb21tYW5kRmFjZVV0aWxzLmdldENvbG9yT2YoZikpO1xuICAgIHRoaXMudG9vbHRpcCQgPSBjaGFpbih0aGlzLmFjdGl2ZUZhY2UkKS5tYXAoZiA9PiBDb21tYW5kRmFjZVV0aWxzLmdldFRvb2x0aXBPZihmKSk7XG4gICAgdGhpcy5pY29uT25seSQgPSBjaGFpbih0aGlzLmZhY2VzJCkuc2VsZWN0KGZhY2UgPT4ge1xuICAgICAgcmV0dXJuIGlzRW1wdHkoQ29tbWFuZEZhY2VVdGlscy5nZXRUZXh0T2YoZmFjZSkpICYmICFpc0VtcHR5KENvbW1hbmRGYWNlVXRpbHMuZ2V0SWNvbk9mKGZhY2UpKTtcbiAgICB9KS5jb3VudCgpLmVxdWFscyhjaGFpbih0aGlzLmZhY2VzJCkuY291bnQoKSk7XG5cbiAgICAvLyBBIGNvbW1hbmQgdGhhdCBmaW5pc2hlcyB3aGlsZSBub3RoaW5nIGVsc2UgcmUtcmVuZGVycyBpdHMgaG9zdCAoYSBkaWFsb2cncyBjb21tYW5kIGZpbmlzaGluZ1xuICAgIC8vIGFmdGVyIHRoZSBob3N0IGFscmVhZHkgcmUtcmVuZGVyZWQgZm9yIHdoYXQgaXQgY2hhbmdlZCkgbXVzdCBzdGlsbCByZS1lbmFibGUgdGhlIGJ1dHRvbiwgYW5kIGFuXG4gICAgLy8gT25QdXNoIGhvc3QgaXMgbmV2ZXIgY2hlY2tlZCBmb3IgaXQgb3RoZXJ3aXNlLlxuICAgIHRoaXMudmlld1N0YXRlRGVwZW5kc09uKHRoaXMuZmFjZXMkLCB0aGlzLmVuYWJsZWQkLCB0aGlzLmJ1c3kkKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmluLXBvcHVwXCIpXG4gIGdldCByZW5kZXJBc01lbnVJdGVtKCkge1xuICAgIHJldHVybiB0aGlzLmluUG9wdXAgJiYgIXRoaXMuZm9yY2VSZW5kZXJBc0J1dHRvbjtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMubWF0Q29udHJvbC5mb2N1cygpO1xuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhcmVuZGVyQXNNZW51SXRlbVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWNvbk9ubHkkLnZhbHVlXCI+XG4gICAgPGJ1dHRvbiAjYnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbY29sb3JdPVwiY29sb3IkLnZhbHVlXCIgW2Rpc2FibGVkXT1cIiFlbmFibGVkXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgIDxhdXAtY29tbWFuZC1mYWNlIFtjbGFzc109XCJhbGlnbkZhY2VcIiBbZmFjZXNdPVwiZmFjZXMkLnZhbHVlXCI+PC9hdXAtY29tbWFuZC1mYWNlPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpY29uT25seSQudmFsdWVcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJidXR0b25TdHlsZSQudmFsdWVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIkNvbW1hbmRGYWNlVXRpbHMuU3R5bGUuU1RST0tFRFwiPlxuICAgICAgICA8YnV0dG9uICNidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIFtjb2xvcl09XCJjb2xvciQudmFsdWVcIiBbZGlzYWJsZWRdPVwiIWVuYWJsZWRcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAkLnZhbHVlXCI+XG4gICAgICAgICAgPGF1cC1jb21tYW5kLWZhY2UgW2NsYXNzXT1cImFsaWduRmFjZVwiIFtmYWNlc109XCJmYWNlcyQudmFsdWVcIj48L2F1cC1jb21tYW5kLWZhY2U+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb21tYW5kRmFjZVV0aWxzLlN0eWxlLlJBSVNFRFwiPlxuICAgICAgICA8YnV0dG9uICNidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW2NvbG9yXT1cImNvbG9yJC52YWx1ZVwiIFtkaXNhYmxlZF09XCIhZW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgICAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgPGJ1dHRvbiAjYnV0dG9uIG1hdC1idXR0b24gW2NvbG9yXT1cImNvbG9yJC52YWx1ZVwiIFtkaXNhYmxlZF09XCIhZW5hYmxlZFwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgICAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbmRlckFzTWVudUl0ZW1cIj5cbiAgPGJ1dHRvbiAjYnV0dG9uIG1hdC1tZW51LWl0ZW0gW2Rpc2FibGVkXT1cIiFlbmFibGVkXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgPC9idXR0b24+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -64,6 +64,8 @@ export class CommandComponent extends PopupAwareComponent {
64
64
  return isEmpty(CommandFace.getTextOf(face)) && !isEmpty(CommandFace.getIconOf(face));
65
65
  }).count().equals(this.faces$.count());
66
66
  this.visible$ = chain(this.command.visible$);
67
+ // The host binding below reads visible$; the button renderer watches the rest.
68
+ this.viewStateDependsOn(this.visible$);
67
69
  }
68
70
  get cssDisplayProperty() {
69
71
  return this.visible$.value ? undefined : 'none';
@@ -125,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
125
127
  type: HostBinding,
126
128
  args: ["style.display"]
127
129
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2NvbW1hbmRzL2NvbW1hbmQvY29tbWFuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2NvbW1hbmRzL2NvbW1hbmQvY29tbWFuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBNEIsV0FBVyxFQUFVLEtBQUssRUFBWSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFNbkgsT0FBTyxFQUVMLE9BQU8sRUFDUCxHQUFHLEVBRUgsT0FBTyxFQUNQLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsVUFBVSxFQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFHbkU7O0dBRUc7QUFNSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsbUJBQW1CO0lBRzlDLDRCQUFVLE9BQU8sQ0FBQyxDQUFBLE9BQWdCLENBQUEsQ0FBQyxDQUFDO0lBQXBDLElBQUEsT0FBTyw2Q0FBNkI7SUFBcEMsSUFBQSxPQUFPLG1EQUE2QjtJQUdwQywwQkFBUSxPQUFPLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztJQUF6QyxJQUFB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dUJBQUMsT0FBTztnQkFJVixNQUFNO3NCQURmLFNBQVM7dUJBQUMsdUJBQXVCO2dCQTZDOUIsa0JBQWtCO3NCQURyQixXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcbmltcG9ydCB7VGhlbWVQYWxldHRlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xuaW1wb3J0IHtNYXRNZW51fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuXG5pbXBvcnQge1xuICBCb29sZWFuVmFsdWVNb2RlbENoYWluLFxuICBDb21tYW5kLFxuICBEc2wsXG4gIExpc3RNb2RlbENoYWluLFxuICBQcm94aWZ5LFxuICBwcm94aWZ5LFxuICBTdG9yZUluVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuXG5pbXBvcnQge2lzRW1wdHl9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge0hvcml6b250YWxBbGlnbm1lbnR9IGZyb20gJy4uLy4uL2FsaWdubWVudCc7XG5pbXBvcnQge0J1dHRvblJlbmRlcmVyQ29tcG9uZW50fSBmcm9tIFwiLi4vYnV0dG9uLXJlbmRlcmVyL2J1dHRvbi1yZW5kZXJlci5jb21wb25lbnRcIjtcbmltcG9ydCB7Q29tbWFuZEZhY2V9IGZyb20gJy4uL2NvbW1hbmQtZmFjZSc7XG5pbXBvcnQge1BvcHVwQXdhcmVDb21wb25lbnR9IGZyb20gJy4uL2dyb3VwL3BvcHVwLWF3YXJlLmNvbXBvbmVudCc7XG5pbXBvcnQgdHlwZSB7UE9QVVBfQ09OVEFJTkVSLCBQb3B1cENvbnRhaW5lcn0gZnJvbSAnLi4vZ3JvdXAvcG9wdXAtY29udGFpbmVyJztcblxuLyoqXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtY29tbWFuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21tYW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tbWFuZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbW1hbmRDb21wb25lbnQgZXh0ZW5kcyBQb3B1cEF3YXJlQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGNvbW1hbmQgPSBwcm94aWZ5KENvbW1hbmQ8dW5rbm93bj4pO1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgZmFjZSQgPSBwcm94aWZ5KFZhbHVlTW9kZWw8Q29tbWFuZEZhY2U+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBmYWNlOiBDb21tYW5kRmFjZTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGJ1c3lGYWNlJCA9IHByb3hpZnkoVmFsdWVNb2RlbDxDb21tYW5kRmFjZT4pO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIGJ1c3lGYWNlOiBDb21tYW5kRmFjZTtcblxuICBDb21tYW5kRmFjZSA9IENvbW1hbmRGYWNlO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZyhcImNsYXNzXCIpXG4gIGFsaWduRmFjZTogSG9yaXpvbnRhbEFsaWdubWVudCA9IEhvcml6b250YWxBbGlnbm1lbnQuQ0VOVEVSO1xuXG4gIEBWaWV3Q2hpbGQoQnV0dG9uUmVuZGVyZXJDb21wb25lbnQpXG4gIHByb3RlY3RlZCBidXR0b246IEJ1dHRvblJlbmRlcmVyQ29tcG9uZW50O1xuXG4gIHJlYWRvbmx5IGZhY2VzJDogTGlzdE1vZGVsQ2hhaW48Q29tbWFuZEZhY2U+O1xuICByZWFkb25seSBidXR0b25TdHlsZSQ6IFZhbHVlTW9kZWxDaGFpbjxzdHJpbmc+O1xuICByZWFkb25seSBjb2xvciQ6IFZhbHVlTW9kZWxDaGFpbjxUaGVtZVBhbGV0dGU+XG4gIHByaXZhdGUgYWN0aXZlRmFjZSQ6IFZhbHVlTW9kZWxDaGFpbjxDb21tYW5kRmFjZT47XG5cbiAgcmVhZG9ubHkgaWNvbk9ubHkkOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICByZWFkb25seSB0b29sdGlwJDogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG4gIHJlYWRvbmx5IHZpc2libGUkOiBWYWx1ZU1vZGVsQ2hhaW48Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7Y2hhaW4sIHN3aXRjaE9ufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcblxuICAgIHRoaXMuZmFjZXMkID0gY2hhaW4odGhpcy5jb21tYW5kLmJ1c3kkKVxuICAgICAgLm1hcFRvTGlzdChidXN5ID0+IHtcbiAgICAgICAgcmV0dXJuIGJ1c3kgP1xuICAgICAgICAgIFt0aGlzLmJ1c3lGYWNlJC52YWx1ZSA/PyB0aGlzLmNvbW1hbmQuYnVzeUZhY2UkLnZhbHVlLCB0aGlzLmZhY2UkLnZhbHVlID8/IHRoaXMuY29tbWFuZC5kZWZhdWx0RmFjZSQudmFsdWVdIDpcbiAgICAgICAgICBbdGhpcy5mYWNlJC52YWx1ZSA/PyB0aGlzLmNvbW1hbmQuZGVmYXVsdEZhY2UkLnZhbHVlLCB0aGlzLmJ1c3lGYWNlJC52YWx1ZSA/PyB0aGlzLmNvbW1hbmQuYnVzeUZhY2UkLnZhbHVlXTtcbiAgICAgIH0sIHtcbiAgICAgICAgYWxsb3dOaWw6IHRydWUsXG4gICAgICAgIGRlcGVuZHNPbjogW1xuICAgICAgICAgIHRoaXMuZmFjZSQsXG4gICAgICAgICAgdGhpcy5idXN5RmFjZSQsXG4gICAgICAgICAgdGhpcy5jb21tYW5kLmRlZmF1bHRGYWNlJCxcbiAgICAgICAgICB0aGlzLmNvbW1hbmQuYnVzeUZhY2UkXG4gICAgICAgIF1cbiAgICAgIH0pXG4gICAgICAucmVqZWN0TmlsKClcblxuICAgIHRoaXMuYWN0aXZlRmFjZSQgPSB0aGlzLmZhY2VzJC5maXJzdCgpO1xuICAgIHRoaXMuYnV0dG9uU3R5bGUkID0gY2hhaW4odGhpcy5hY3RpdmVGYWNlJCkubWFwKGYgPT4gQ29tbWFuZEZhY2UuZ2V0U3R5bGVPZihmKSk7XG4gICAgdGhpcy5jb2xvciQgPSBjaGFpbih0aGlzLmFjdGl2ZUZhY2UkKS5tYXAoZiA9PiBDb21tYW5kRmFjZS5nZXRDb2xvck9mKGYpKTtcbiAgICB0aGlzLnRvb2x0aXAkID0gY2hhaW4odGhpcy5hY3RpdmVGYWNlJCkubWFwKGYgPT4gQ29tbWFuZEZhY2UuZ2V0VG9vbHRpcE9mKGYpKTtcbiAgICB0aGlzLmljb25Pbmx5JCA9IHRoaXMuZmFjZXMkLnNlbGVjdChmYWNlID0+IHtcbiAgICAgIHJldHVybiBpc0VtcHR5KENvbW1hbmRGYWNlLmdldFRleHRPZihmYWNlKSkgJiYgIWlzRW1wdHkoQ29tbWFuZEZhY2UuZ2V0SWNvbk9mKGZhY2UpKTtcbiAgICB9KS5jb3VudCgpLmVxdWFscyh0aGlzLmZhY2VzJC5jb3VudCgpKTtcblxuXG4gICAgdGhpcy52aXNpYmxlJCA9IGNoYWluKHRoaXMuY29tbWFuZC52aXNpYmxlJCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJzdHlsZS5kaXNwbGF5XCIpXG4gIGdldCBjc3NEaXNwbGF5UHJvcGVydHkoKSB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZSQudmFsdWUgPyB1bmRlZmluZWQgOiAnbm9uZSdcbiAgfVxuXG4gIG92ZXJyaWRlIGdldFZpc2liaWxpdHkoKTogVmFsdWVNb2RlbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZSQ7XG4gIH1cblxuICBpc0FjdGl2ZShmYWNlOiBDb21tYW5kRmFjZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZhY2UkLnF1ZXJ5KCkuZXF1YWxzKGZhY2UpO1xuICB9XG5cbiAgcmVxdWVzdEZvY3VzKCkge1xuICAgIHRoaXMuYnV0dG9uLmZvY3VzKCk7XG4gIH1cblxuXG59XG5cbiIsIjxhdXAtYnV0dG9uLXJlbmRlcmVyIFtmYWNlcyRdPVwiZmFjZXMkXCIgW2VuYWJsZWQkXT1cImNvbW1hbmQuZW5hYmxlZCRcIiBbYWxpZ25GYWNlXT1cImFsaWduRmFjZVwiIFtwZWN0aW5Db21tYW5kXT1cImNvbW1hbmRcIj48L2F1cC1idXR0b24tcmVuZGVyZXI+XG4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2NvbW1hbmRzL2NvbW1hbmQvY29tbWFuZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2NvbW1hbmRzL2NvbW1hbmQvY29tbWFuZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBNEIsV0FBVyxFQUFVLEtBQUssRUFBWSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFNbkgsT0FBTyxFQUVMLE9BQU8sRUFDUCxHQUFHLEVBRUgsT0FBTyxFQUNQLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsVUFBVSxFQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFHbkU7O0dBRUc7QUFNSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsbUJBQW1CO0lBRzlDLDRCQUFVLE9BQU8sQ0FBQyxDQUFBLE9BQWdCLENBQUEsQ0FBQyxDQUFDO0lBQXBDLElBQUEsT0FBTyw2Q0FBNkI7SUFBcEMsSUFBQSxPQUFPLG1EQUE2QjtJQUdwQywwQkFBUSxPQUFPLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztJQUF6QyxJQUFB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RGpCLEtBQUs7Z0JBSUcsUUFBUTtzQkFEaEIsS0FBSztnQkFPTixTQUFTO3NCQUZSLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsT0FBTztnQkFJVixNQUFNO3NCQURmLFNBQVM7dUJBQUMsdUJBQXVCO2dCQWdEOUIsa0JBQWtCO3NCQURyQixXQUFXO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWwsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcbmltcG9ydCB7VGhlbWVQYWxldHRlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xuaW1wb3J0IHtNYXRNZW51fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuXG5pbXBvcnQge1xuICBCb29sZWFuVmFsdWVNb2RlbENoYWluLFxuICBDb21tYW5kLFxuICBEc2wsXG4gIExpc3RNb2RlbENoYWluLFxuICBQcm94aWZ5LFxuICBwcm94aWZ5LFxuICBTdG9yZUluVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuXG5pbXBvcnQge2lzRW1wdHl9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge0hvcml6b250YWxBbGlnbm1lbnR9IGZyb20gJy4uLy4uL2FsaWdubWVudCc7XG5pbXBvcnQge0J1dHRvblJlbmRlcmVyQ29tcG9uZW50fSBmcm9tIFwiLi4vYnV0dG9uLXJlbmRlcmVyL2J1dHRvbi1yZW5kZXJlci5jb21wb25lbnRcIjtcbmltcG9ydCB7Q29tbWFuZEZhY2V9IGZyb20gJy4uL2NvbW1hbmQtZmFjZSc7XG5pbXBvcnQge1BvcHVwQXdhcmVDb21wb25lbnR9IGZyb20gJy4uL2dyb3VwL3BvcHVwLWF3YXJlLmNvbXBvbmVudCc7XG5pbXBvcnQgdHlwZSB7UE9QVVBfQ09OVEFJTkVSLCBQb3B1cENvbnRhaW5lcn0gZnJvbSAnLi4vZ3JvdXAvcG9wdXAtY29udGFpbmVyJztcblxuLyoqXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtY29tbWFuZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21tYW5kLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tbWFuZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENvbW1hbmRDb21wb25lbnQgZXh0ZW5kcyBQb3B1cEF3YXJlQ29tcG9uZW50IHtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGNvbW1hbmQgPSBwcm94aWZ5KENvbW1hbmQ8dW5rbm93bj4pO1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgZmFjZSQgPSBwcm94aWZ5KFZhbHVlTW9kZWw8Q29tbWFuZEZhY2U+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBmYWNlOiBDb21tYW5kRmFjZTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGJ1c3lGYWNlJCA9IHByb3hpZnkoVmFsdWVNb2RlbDxDb21tYW5kRmFjZT4pO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIGJ1c3lGYWNlOiBDb21tYW5kRmFjZTtcblxuICBDb21tYW5kRmFjZSA9IENvbW1hbmRGYWNlO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZyhcImNsYXNzXCIpXG4gIGFsaWduRmFjZTogSG9yaXpvbnRhbEFsaWdubWVudCA9IEhvcml6b250YWxBbGlnbm1lbnQuQ0VOVEVSO1xuXG4gIEBWaWV3Q2hpbGQoQnV0dG9uUmVuZGVyZXJDb21wb25lbnQpXG4gIHByb3RlY3RlZCBidXR0b246IEJ1dHRvblJlbmRlcmVyQ29tcG9uZW50O1xuXG4gIHJlYWRvbmx5IGZhY2VzJDogTGlzdE1vZGVsQ2hhaW48Q29tbWFuZEZhY2U+O1xuICByZWFkb25seSBidXR0b25TdHlsZSQ6IFZhbHVlTW9kZWxDaGFpbjxzdHJpbmc+O1xuICByZWFkb25seSBjb2xvciQ6IFZhbHVlTW9kZWxDaGFpbjxUaGVtZVBhbGV0dGU+XG4gIHByaXZhdGUgYWN0aXZlRmFjZSQ6IFZhbHVlTW9kZWxDaGFpbjxDb21tYW5kRmFjZT47XG5cbiAgcmVhZG9ubHkgaWNvbk9ubHkkOiBCb29sZWFuVmFsdWVNb2RlbENoYWluO1xuICByZWFkb25seSB0b29sdGlwJDogVmFsdWVNb2RlbENoYWluPHN0cmluZz47XG4gIHJlYWRvbmx5IHZpc2libGUkOiBWYWx1ZU1vZGVsQ2hhaW48Ym9vbGVhbj47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7Y2hhaW4sIHN3aXRjaE9ufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcblxuICAgIHRoaXMuZmFjZXMkID0gY2hhaW4odGhpcy5jb21tYW5kLmJ1c3kkKVxuICAgICAgLm1hcFRvTGlzdChidXN5ID0+IHtcbiAgICAgICAgcmV0dXJuIGJ1c3kgP1xuICAgICAgICAgIFt0aGlzLmJ1c3lGYWNlJC52YWx1ZSA/PyB0aGlzLmNvbW1hbmQuYnVzeUZhY2UkLnZhbHVlLCB0aGlzLmZhY2UkLnZhbHVlID8/IHRoaXMuY29tbWFuZC5kZWZhdWx0RmFjZSQudmFsdWVdIDpcbiAgICAgICAgICBbdGhpcy5mYWNlJC52YWx1ZSA/PyB0aGlzLmNvbW1hbmQuZGVmYXVsdEZhY2UkLnZhbHVlLCB0aGlzLmJ1c3lGYWNlJC52YWx1ZSA/PyB0aGlzLmNvbW1hbmQuYnVzeUZhY2UkLnZhbHVlXTtcbiAgICAgIH0sIHtcbiAgICAgICAgYWxsb3dOaWw6IHRydWUsXG4gICAgICAgIGRlcGVuZHNPbjogW1xuICAgICAgICAgIHRoaXMuZmFjZSQsXG4gICAgICAgICAgdGhpcy5idXN5RmFjZSQsXG4gICAgICAgICAgdGhpcy5jb21tYW5kLmRlZmF1bHRGYWNlJCxcbiAgICAgICAgICB0aGlzLmNvbW1hbmQuYnVzeUZhY2UkXG4gICAgICAgIF1cbiAgICAgIH0pXG4gICAgICAucmVqZWN0TmlsKClcblxuICAgIHRoaXMuYWN0aXZlRmFjZSQgPSB0aGlzLmZhY2VzJC5maXJzdCgpO1xuICAgIHRoaXMuYnV0dG9uU3R5bGUkID0gY2hhaW4odGhpcy5hY3RpdmVGYWNlJCkubWFwKGYgPT4gQ29tbWFuZEZhY2UuZ2V0U3R5bGVPZihmKSk7XG4gICAgdGhpcy5jb2xvciQgPSBjaGFpbih0aGlzLmFjdGl2ZUZhY2UkKS5tYXAoZiA9PiBDb21tYW5kRmFjZS5nZXRDb2xvck9mKGYpKTtcbiAgICB0aGlzLnRvb2x0aXAkID0gY2hhaW4odGhpcy5hY3RpdmVGYWNlJCkubWFwKGYgPT4gQ29tbWFuZEZhY2UuZ2V0VG9vbHRpcE9mKGYpKTtcbiAgICB0aGlzLmljb25Pbmx5JCA9IHRoaXMuZmFjZXMkLnNlbGVjdChmYWNlID0+IHtcbiAgICAgIHJldHVybiBpc0VtcHR5KENvbW1hbmRGYWNlLmdldFRleHRPZihmYWNlKSkgJiYgIWlzRW1wdHkoQ29tbWFuZEZhY2UuZ2V0SWNvbk9mKGZhY2UpKTtcbiAgICB9KS5jb3VudCgpLmVxdWFscyh0aGlzLmZhY2VzJC5jb3VudCgpKTtcblxuXG4gICAgdGhpcy52aXNpYmxlJCA9IGNoYWluKHRoaXMuY29tbWFuZC52aXNpYmxlJCk7XG5cbiAgICAvLyBUaGUgaG9zdCBiaW5kaW5nIGJlbG93IHJlYWRzIHZpc2libGUkOyB0aGUgYnV0dG9uIHJlbmRlcmVyIHdhdGNoZXMgdGhlIHJlc3QuXG4gICAgdGhpcy52aWV3U3RhdGVEZXBlbmRzT24odGhpcy52aXNpYmxlJCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJzdHlsZS5kaXNwbGF5XCIpXG4gIGdldCBjc3NEaXNwbGF5UHJvcGVydHkoKSB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZSQudmFsdWUgPyB1bmRlZmluZWQgOiAnbm9uZSdcbiAgfVxuXG4gIG92ZXJyaWRlIGdldFZpc2liaWxpdHkoKTogVmFsdWVNb2RlbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZSQ7XG4gIH1cblxuICBpc0FjdGl2ZShmYWNlOiBDb21tYW5kRmFjZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZhY2UkLnF1ZXJ5KCkuZXF1YWxzKGZhY2UpO1xuICB9XG5cbiAgcmVxdWVzdEZvY3VzKCkge1xuICAgIHRoaXMuYnV0dG9uLmZvY3VzKCk7XG4gIH1cblxuXG59XG5cbiIsIjxhdXAtYnV0dG9uLXJlbmRlcmVyIFtmYWNlcyRdPVwiZmFjZXMkXCIgW2VuYWJsZWQkXT1cImNvbW1hbmQuZW5hYmxlZCRcIiBbYWxpZ25GYWNlXT1cImFsaWduRmFjZVwiIFtwZWN0aW5Db21tYW5kXT1cImNvbW1hbmRcIj48L2F1cC1idXR0b24tcmVuZGVyZXI+XG4iXX0=
@@ -21,12 +21,14 @@ export { DEFINITION_META_DATA_KEY, ROUTE_PARAMETER_LIST_KEY } from './place-meta
21
21
  // }
22
22
  // }
23
23
  export class PlaceComponent extends LoadableComponent {
24
- // Metadata flagging the construction-time auto-select propagation as an automatic correction, so
25
- // the router replaces rather than pushing a history entry (mirrors a SelectionMonitor correction).
24
+ // Metadata flagging a binding's correction of the visit (the construction-time auto-select, or a
25
+ // reselection while a visit is applied) as automatic, so the router replaces rather than pushing a
26
+ // history entry (mirrors a SelectionMonitor correction).
26
27
  static AUTO_CORRECTION_METADATA = new Map([[SingleSelectionModel.AUTO_CORRECTION, true]]);
27
28
  _placeReadyCallbacks = [];
28
29
  visit$ = new MutableValueModel();
29
30
  _inVisitUpdate = new Guard();
31
+ _notifyVisitChanged;
30
32
  _active = new MutableValueModel(false);
31
33
  interactionContext;
32
34
  childPlaces$;
@@ -48,6 +50,7 @@ export class PlaceComponent extends LoadableComponent {
48
50
  assert.isNil(this.visit$.value);
49
51
  const { when } = Dsl.disposeWith(this);
50
52
  this.visit$.value = visit;
53
+ this._notifyVisitChanged = notifyVisitChanged;
51
54
  DebugContext.getOrCreate(this.visit$).tag(`${this.placeDefinition.component.name}.visit$`);
52
55
  // we track if any of the bindings updated the route (e.g. a selection model that auto-selected
53
56
  // the first item during construction while the route had no value). If so we update the route
@@ -78,6 +81,14 @@ export class PlaceComponent extends LoadableComponent {
78
81
  this._inVisitUpdate.whileTrue(() => {
79
82
  this.visit$.value = visit;
80
83
  });
84
+ // A binding can correct the visit as it's applied, as at initialisation: a route to this place
85
+ // without a parameter (a link, or the address bar, while the place is open) sets a selection
86
+ // model's id to nil, and the model reselects. The change listener ignores updates made while the
87
+ // visit is applied, so tell the router here; otherwise its URL keeps the stale visit, and its next
88
+ // navigation writes that back to the place, the selection bouncing through it.
89
+ if (this.visit$.value.hasRoutingChangedFrom(visit)) {
90
+ this._notifyVisitChanged?.(this.visit$.value, visit, PlaceComponent.AUTO_CORRECTION_METADATA);
91
+ }
81
92
  }
82
93
  isInitialised() {
83
94
  return !!this.visit$.value;
@@ -218,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
218
229
  // initialValue: 'evaluationUnlessNil' | 'evaluate'
219
230
  // }
220
231
  })(PlaceComponent || (PlaceComponent = {}));
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxtSEFBbUg7QUFDbkgsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBQyxjQUFjLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFFUCxZQUFZLEVBQ1osR0FBRyxFQUNILEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxFQUNULGlCQUFpQixFQUNqQixvQkFBb0IsRUFFckIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsS0FBSyxFQUFFLFVBQVUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFbkUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xHLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNM0MsT0FBTyxFQUFDLHdCQUF3QixFQUFFLHdCQUF3QixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHcEYsd0NBQXdDO0FBQ3hDLHVLQUF1SztBQUN2SyxNQUFNO0FBQ04sRUFBRTtBQUNGLHdGQUF3RjtBQUN4RixtQkFBbUI7QUFDbkIsTUFBTTtBQUNO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Q2dCLGNBQWMsS0FBZCxjQUFjLFFBaUM5QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gcGxhY2UgY29tcG9uZW50IGJhc2Ug4oCUIGdlbmVyaWMgb3ZlciBhcmJpdHJhcnkgcGxhY2UgZGF0YSAqL1xuaW1wb3J0IHtEaXJlY3RpdmUsIEhvc3RCaW5kaW5nLCBpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgQWN0aXZhdGVkUm91dGVTbmFwc2hvdH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIGFzc2VydCxcbiAgQmluZGluZyxcbiAgQ29uc3RydWN0YWJsZSxcbiAgRGVidWdDb250ZXh0LFxuICBEc2wsXG4gIEd1YXJkLFxuICBJTXV0YWJsZUhhc1ZhbHVlLFxuICBsYW5nLFxuICBMaXN0TW9kZWwsXG4gIE11dGFibGVWYWx1ZU1vZGVsLFxuICBTaW5nbGVTZWxlY3Rpb25Nb2RlbCxcbiAgVHJhbnNhY3Rpb25cbn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtLbGFzcywgTWVtb2l6ZUdldH0gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQge2lzRW1wdHksIGlzTmlsfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcbmltcG9ydCB7TG9hZGFibGVDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnRzL2xvYWRhYmxlLWNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7Z2V0UGxhY2VEZWZpbml0aW9uLCBST1VURV9QQVJBTUVURVJfTElTVF9LRVksIHNldFBsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi9wbGFjZS1tZXRhZGF0YSc7XG5pbXBvcnQge1BsYWNlUm91dGVyfSBmcm9tIFwiLi9wbGFjZS1yb3V0ZXJcIjtcbmltcG9ydCB0eXBlIHtQYXJhbWV0ZXJEZWZpbml0aW9ufSBmcm9tICcuL3JvdXRlL3BhcmFtZXRlci1kZWZpbml0aW9uJztcbmltcG9ydCB0eXBlIHtVcmxTbmFwc2hvdH0gZnJvbSAnLi91cmwtc25hcHNob3QnO1xuaW1wb3J0IHR5cGUge1Zpc2l0U2VnbWVudH0gZnJvbSAnLi92aXNpdC1zZWdtZW50JztcblxuXG5leHBvcnQge0RFRklOSVRJT05fTUVUQV9EQVRBX0tFWSwgUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZfSBmcm9tICcuL3BsYWNlLW1ldGFkYXRhJztcblxuXG4vLyBjbGFzcyBQYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcjxUPiB7XG4vLyAgIGNvbnN0cnVjdG9yKHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxUPiwgbW9kZWw6IFZhbHVlTW9kZWw8VD4sIGNhbGxiYWNrOiBQbGFjZUNvbXBvbmVudC5JbnRlcmNlcHRDYWxsYmFjazxUPiwgb3B0aW9uczogUGxhY2VDb21wb25lbnQuSW50ZXJjZXB0T3B0aW9ucykge1xuLy8gICB9XG4vL1xuLy8gICBhc3luYyBjYW5Qcm9jZWVkKG5leHRTdGF0ZTogVmlzaXRTZWdtZW50LCBpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuLy8gICAgIHJldHVybiB0cnVlO1xuLy8gICB9XG4vLyB9XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFBsYWNlQ29tcG9uZW50IGV4dGVuZHMgTG9hZGFibGVDb21wb25lbnQge1xuXG4gIC8vIE1ldGFkYXRhIGZsYWdnaW5nIHRoZSBjb25zdHJ1Y3Rpb24tdGltZSBhdXRvLXNlbGVjdCBwcm9wYWdhdGlvbiBhcyBhbiBhdXRvbWF0aWMgY29ycmVjdGlvbiwgc29cbiAgLy8gdGhlIHJvdXRlciByZXBsYWNlcyByYXRoZXIgdGhhbiBwdXNoaW5nIGEgaGlzdG9yeSBlbnRyeSAobWlycm9ycyBhIFNlbGVjdGlvbk1vbml0b3IgY29ycmVjdGlvbikuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEFVVE9fQ09SUkVDVElPTl9NRVRBREFUQTogVHJhbnNhY3Rpb24uTWV0YURhdGEgPVxuICAgIG5ldyBNYXA8c3RyaW5nIHwgc3ltYm9sLCB1bmtub3duPihbW1NpbmdsZVNlbGVjdGlvbk1vZGVsLkFVVE9fQ09SUkVDVElPTiwgdHJ1ZV1dKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9wbGFjZVJlYWR5Q2FsbGJhY2tzOiAoKCk9PnZvaWQpW10gPSBbXTtcbiAgcHJpdmF0ZSB2aXNpdCQgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8VmlzaXRTZWdtZW50PigpO1xuICBwcml2YXRlIF9pblZpc2l0VXBkYXRlID0gbmV3IEd1YXJkKCk7XG4gIHByaXZhdGUgX2FjdGl2ZSA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG5cbiAgaW50ZXJhY3Rpb25Db250ZXh0PzogSW50ZXJhY3Rpb25Db250ZXh0O1xuICByZWFkb25seSBjaGlsZFBsYWNlcyQ6IExpc3RNb2RlbDxDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pj47XG4gIC8vIHByaXZhdGUgcmVhZG9ubHkgX3BhcmFtZXRlckNoYW5nZUludGVyY2VwdG9yczogUGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3I8YW55PltdID0gW107XG5cbiAgQEhvc3RCaW5kaW5nKFwiYXR0ci5wbGFjZS1pZFwiKVxuICByZWFkb25seSBwbGFjZUlkOiBzdHJpbmc7XG5cblxuICBjYW5EZWFjdGl2YXRlPyhpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+O1xuXG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHBsYWNlUm91dGVyID0gaW5qZWN0KFBsYWNlUm91dGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7Y2hhaW4sIHZhbHVlT2YsIGJlZm9yZSwgd2hlbiwgYWZ0ZXIsIG9ic2VydmUsIHN3aXRjaE9ufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB3aGVuKHRoaXMuX2FjdGl2ZSkuYmVjb21lc1RydXRoeSgoKSA9PiB0aGlzLl9ub3RpZnlQbGFjZVJlYWR5KCkpO1xuICAgIHRoaXMuY2hpbGRQbGFjZXMkID0gTGlzdE1vZGVsLmNvbnN0YW50KHRoaXMucGxhY2VEZWZpbml0aW9uLmNoaWxkcmVuLm1hcChkID0+IGQuY29tcG9uZW50KSk7XG4gICAgdGhpcy5wbGFjZUlkID0gdGhpcy5wbGFjZURlZmluaXRpb24ucGxhY2VJZDtcbiAgICBpZiAoaXNFbXB0eSh0aGlzLnBsYWNlSWQpKSB7XG4gICAgICBsYW5nLmlsbGVnYWxTdGF0ZShcInBsYWNlSWQgcHJvcGVydHkgaXMgbWlzc2luZyBmcm9tIHRoZSByb3V0ZSBkYXRhIHBhcmFtZXRlcnNcIilcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGlzZVZpc2l0KHZpc2l0OiBWaXNpdFNlZ21lbnQsIG5vdGlmeVZpc2l0Q2hhbmdlZDogKGN1cnJlbnQ6IFZpc2l0U2VnbWVudCwgcHJldmlvdXM6IFZpc2l0U2VnbWVudCwgbWV0YWRhdGE/OiBUcmFuc2FjdGlvbi5NZXRhRGF0YSkgPT4gdm9pZCkge1xuICAgIGFzc2VydC5pc05pbCh0aGlzLnZpc2l0JC52YWx1ZSk7XG5cbiAgICBjb25zdCB7d2hlbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG5cbiAgICB0aGlzLnZpc2l0JC52YWx1ZSA9IHZpc2l0O1xuICAgIERlYnVnQ29udGV4dC5nZXRPckNyZWF0ZSh0aGlzLnZpc2l0JCkudGFnKGAke3RoaXMucGxhY2VEZWZpbml0aW9uLmNvbXBvbmVudC5uYW1lfS52aXNpdCRgKTtcblxuICAgIC8vIHdlIHRyYWNrIGlmIGFueSBvZiB0aGUgYmluZGluZ3MgdXBkYXRlZCB0aGUgcm91dGUgKGUuZy4gYSBzZWxlY3Rpb24gbW9kZWwgdGhhdCBhdXRvLXNlbGVjdGVkXG4gICAgLy8gdGhlIGZpcnN0IGl0ZW0gZHVyaW5nIGNvbnN0cnVjdGlvbiB3aGlsZSB0aGUgcm91dGUgaGFkIG5vIHZhbHVlKS4gSWYgc28gd2UgdXBkYXRlIHRoZSByb3V0ZVxuICAgIC8vIG9uY2UsIGFmdGVyIHdpcmluZyB1cCB0aGUgY2hhbmdlIGxpc3RlbmVyIGJlbG93LlxuICAgIGNvbnN0IHJvdXRlVXBkYXRlZEJ5QmluZGluZyA9IHRoaXMucGxhY2VEZWZpbml0aW9uXG4gICAgICAuZ2V0VmlzaXRQYXJhbWV0ZXJEZWZzKClcbiAgICAgIC5tYXAocGFyYW1ldGVyRGVmID0+IHRoaXMuaW5zdGFsbEFuZEluaXRpYWxpc2VCaW5kaW5nKHZpc2l0LCBwYXJhbWV0ZXJEZWYpKVxuICAgICAgLnNvbWUoQm9vbGVhbik7XG5cbiAgICAvLyBUaGUgY2hhbmdlIGNhbGxiYWNrIGNhcnJpZXMgdGhlIG9yaWdpbmF0aW5nIHRyYW5zYWN0aW9uJ3Mgcm9vdCBtZXRhZGF0YSAoc2VlIHBlY3RpblxuICAgIC8vIHdoZW4oKS5jaGFuZ2VzKSwgc28gdGhlIHJvdXRlciBjYW4gdGVsbCBhIGRlbGliZXJhdGUgc2VsZWN0aW9uIGZyb20gYW4gYXV0b21hdGljIGNvcnJlY3Rpb24uXG4gICAgd2hlbih0aGlzLnZpc2l0JCkuY2hhbmdlcygoY3VycmVudCwgcHJldmlvdXMsIG1ldGFkYXRhKSA9PiB7XG4gICAgICBub3RpZnlWaXNpdENoYW5nZWQoY3VycmVudCwgcHJldmlvdXMsIG1ldGFkYXRhKTtcbiAgICB9LCB7dW5sZXNzOiB0aGlzLl9pblZpc2l0VXBkYXRlfSk7XG5cbiAgICAvLyBUaGUgYmluZGluZyBwcm9jZXNzIGNhbiB1cGRhdGUgdGhlIHZpc2l0IHdoZW4gdGhlIHJvdXRlIGhhZCBubyB2YWx1ZSAoZS5nLiBhIHNlbGVjdGlvbiBtb2RlbFxuICAgIC8vIHdpdGggYXV0b1NlbGVjdEZpcnN0SXRlbU9uTG9hZCB0aGF0IGFscmVhZHkgc2VsZWN0ZWQgZHVyaW5nIGNvbXBvbmVudCBjb25zdHJ1Y3Rpb24pLiBQcm9wYWdhdGVcbiAgICAvLyB0aGF0IHRvIHRoZSByb3V0ZXIgbm93IHNvIHRoZSBVUkwgcmVmbGVjdHMgdGhlIHNlbGVjdGlvbiAtIGZsYWdnZWQgYXMgYW4gYXV0by1jb3JyZWN0aW9uIHNvIGl0XG4gICAgLy8gcmVwbGFjZXMgcmF0aGVyIHRoYW4gcHVzaGluZyBhIHNwdXJpb3VzIGhpc3RvcnkgZW50cnkuXG4gICAgaWYgKHJvdXRlVXBkYXRlZEJ5QmluZGluZyAmJiB0aGlzLnZpc2l0JC52YWx1ZS5oYXNSb3V0aW5nQ2hhbmdlZEZyb20odmlzaXQpKSB7XG4gICAgICBub3RpZnlWaXNpdENoYW5nZWQodGhpcy52aXNpdCQudmFsdWUsIHZpc2l0LCBQbGFjZUNvbXBvbmVudC5BVVRPX0NPUlJFQ1RJT05fTUVUQURBVEEpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjaGlsZFBsYWNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZFBsYWNlcyQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmlzaXQodmlzaXQ6IFZpc2l0U2VnbWVudCkge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLmlzSW5pdGlhbGlzZWQoKSk7XG4gICAgYXNzZXJ0Lm5vdE5pbCh2aXNpdCk7XG4gICAgdGhpcy5faW5WaXNpdFVwZGF0ZS53aGlsZVRydWUoKCkgPT4ge1xuICAgICAgdGhpcy52aXNpdCQudmFsdWUgPSB2aXNpdDtcbiAgICB9KTtcbiAgfVxuXG4gIGlzSW5pdGlhbGlzZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy52aXNpdCQudmFsdWU7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICAvKipcbiAgICogSW5pdGlhbGlzZWQgdGhlIGNvbXBvbmVudCBiaW5kaW5ncy4gIElmIGFueSBiaW5kaW5nIGhhcyBhbiBpbml0aWFsIG1vZGVsIHZhbHVlIChlLmcuIGEgc2VsZWN0aW9uIG1vZGVsXG4gICAqIGluaXRpYWxpc2VkIGR1cmluZyB0aGUgY29uc3RydWN0b3IpIGFuZCB0aGUgcm91dGUgaGFzIG5vdGhpbmcsIHRoZW4gdGhlIHZpc2l0IHdpbGwgYmUgdWRwYXRlZCBhbmQgdGhpc1xuICAgKiBtZXRob2Qgd2lsbCByZXR1cm4gdHVyZSB0byBub2ZpeSB0aGUgdGhlIHZpc2l0IGhhcyBjaGFuZ2VkLlxuICAgKi9cbiAgcHJpdmF0ZSBpbnN0YWxsQW5kSW5pdGlhbGlzZUJpbmRpbmc8VCwgUz4oaW5pdGlhbFZpc2l0OiBWaXNpdFNlZ21lbnQsIHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxULCBTPik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1vZGVsID0gdGhpc1twYXJhbWV0ZXJEZWYucHJvcGVydHlOYW1lXSBhcyBJTXV0YWJsZUhhc1ZhbHVlPFQ+O1xuICAgIGFzc2VydC5ub3ROaWwobW9kZWwpO1xuICAgIERlYnVnQ29udGV4dC50YWcobW9kZWwsIGAke3RoaXMucGxhY2VEZWZpbml0aW9uLmNvbXBvbmVudC5uYW1lfS4ke3BhcmFtZXRlckRlZi5wcm9wZXJ0eU5hbWV9YCk7XG4gICAgY29uc3QgYmluZGluZyA9IHRoaXMucmVnaXN0ZXJEaXNwb3NhYmxlKG5ldyBCaW5kaW5nKHRoaXMudmlzaXQkLCBtb2RlbCwge1xuICAgICAgdG9SaWdodCh2aXNpdDogVmlzaXRTZWdtZW50KTogVCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmlzaXQuZ2V0UGFyYW1ldGVyVmFsdWUocGFyYW1ldGVyRGVmKTtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3B1c2ggdG8gY29tcG9uZW50JywgeyBuYW1lOiBwYXJhbWV0ZXJEZWYubmFtZSwgdmFsdWUsIHZpc2l0IH0pO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9LFxuICAgICAgdG9MZWZ0KHZhbHVlOiBULCBjdXJyZW50VmlzaXQ/OiBWaXNpdFNlZ21lbnQpOiBWaXNpdFNlZ21lbnQge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygncHVzaCB0byByb3V0ZScsIHsgbmFtZTogcGFyYW1ldGVyRGVmLm5hbWUsIHZhbHVlLCBjdXJyZW50VmlzaXQgfSk7XG4gICAgICAgIHJldHVybiBjdXJyZW50VmlzaXQucmVwbGFjZShwYXJhbWV0ZXJEZWYsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KSk7XG5cbiAgICAvLyBOb3cgd2UgbmVlZCB0byBpbml0aWFsaXNlIHRoZSBiaW5kaW5nIGRpcmVjdGlvbi4gIElmIHdlIGhhdmUgYSB2YWx1ZSBpbiB0aGUgVXJsIHRoZW4gd2Ugc2hvdWxkIGFsd2F5cyBwdXNoXG4gICAgLy8gdGhhdCB0byB0aGUgdmlldy4gIElmIHdlIGRvbid0IGFuZCB0aGUgdmlldyBhbHJlYWR5IGhhcyBhIHZhbHVlIChlLmcuIGEgc2VsZWN0aW9uIG1vZGVsIGhhcyBhbHJlYWR5IGluaXRpYWxpc2VkIGluIHRoZVxuICAgIC8vIGNvbXBvbmVudCBjb25zdHJ1Y3RvcikgdGhlbiB3ZSBzaG91bGQgcHVzaCB0aGF0IHRvIHRoZSByb3V0ZS5cbiAgICBjb25zdCBpc0luVmlzaXQgPSAhaXNOaWwoaW5pdGlhbFZpc2l0LmdldFBhcmFtZXRlclZhbHVlKHBhcmFtZXRlckRlZikpO1xuICAgIGNvbnN0IGlzSW5Nb2RlbCA9ICFpc05pbChtb2RlbC52YWx1ZSk7XG4gICAgaWYgKCFpc0luVmlzaXQgJiYgaXNJbk1vZGVsKSB7XG4gICAgICBiaW5kaW5nLndyaXRlTGVmdCgpOyAvLyBwdXNoIGl0IHRvIHRoZSByb3V0ZVxuICAgICAgcmV0dXJuIHRydWU7IC8vIHRoZSBtb2RlbCAoZS5nLiBhbiBhdXRvLXNlbGVjdGVkIHNlbGVjdGlvbikgdXBkYXRlZCB0aGUgcm91dGVcbiAgICB9IGVsc2Uge1xuICAgICAgYmluZGluZy53cml0ZVJpZ2h0KCk7IC8vIHB1c2ggaXQgdG8gdGhlIG1vZGVsXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQE1lbW9pemVHZXQoKVxuICBnZXQgcGxhY2VEZWZpbml0aW9uKCk6IFBsYWNlRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IFBsYWNlQ29tcG9uZW50LmdldERlZmluaXRpb24odGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkgYXMgQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pO1xuICAgIGlmICghZGVmaW5pdGlvbikge1xuICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSBleHRlbmRzIFBsYWNlQ29tcG9uZW50IGJ1dCBkb2Vzbid0IGhhdmUgQFBsYWNlKHsuLn0pIGRlY29yYXRvci5gKVxuICAgIH1cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIGdldCBhY3RpdmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZS5yZWFkb25seSQ7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IHRoZSByb3V0ZXIgdG8gc2VlIGlmIHRoaXMgY29tcG9uZW50IGNhbiBkZWFjdGl2YXRlLiAgVGhpcyBpc24ndCBjYWxsZWQgZm9yIHJvdXRlIHBhcmFtZXRlciBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gaW50ZXJhY3Rpb25Db250ZXh0XG4gICAqL1xuICBhc3luYyBfY2FuTGVhdmVQbGFjZShpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmNhbkRlYWN0aXZhdGUgPyB0aGlzLmNhbkRlYWN0aXZhdGUoaW50ZXJhY3Rpb25Db250ZXh0KSA6IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IHRoZSByb3V0ZXIgdG8gc2VlIGlmIHRoaXMgY29tcG9uZW50IGNhbiBkZWFjdGl2YXRlLiAgVGhpcyBpc24ndCBjYWxsZWQgZm9yIHJvdXRlIHBhcmFtZXRlciBjaGFuZ2VzLlxuICAgKiBAcGFyYW0gaW50ZXJhY3Rpb25Db250ZXh0XG4gICAqIEBwYXJhbSBuZXh0U3RhdGVcbiAgICovXG4gIGFzeW5jIF9jYW5DaGFuZ2VSb3V0ZVBhcmFtZXRlcnMoaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQsIG5leHRTdGF0ZTogVXJsU25hcHNob3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBpZiAodGhpcy5fcGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3JzLmxlbmd0aCA+IDApIHtcbiAgICAvLyAgIGNvbnN0IHZpc2l0ID0gbmV4dFN0YXRlLmNyZWF0ZVZpc2l0U2VnbWVudEZvcih0aGlzLnBsYWNlRGVmaW5pdGlvbik7XG4gICAgLy8gICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX3BhcmFtZXRlckNoYW5nZUludGVyY2VwdG9ycy5sZW5ndGg7IGkrKykge1xuICAgIC8vICAgICBjb25zdCBpbnRlcmNlcHRvciA9IHRoaXMuX3BhcmFtZXRlckNoYW5nZUludGVyY2VwdG9yc1tpXTtcbiAgICAvLyAgICAgY29uc3Qga2VlcEdvaW5nID0gYXdhaXQgaW50ZXJjZXB0b3IuY2FuUHJvY2VlZCh2aXNpdCwgaW50ZXJhY3Rpb25Db250ZXh0KTtcbiAgICAvLyAgICAgaWYgKCFrZWVwR29pbmcpIHtcbiAgICAvLyAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgIH1cbiAgICAvLyB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIHJvdXRlciB3aGVuIHRoZSBwbGFjZSBpcyByZWFkeSB0byBpbnRlcmFjdCBhZnRlciBhbnkgYW5pbWF0aW9ucyBoYXZlIHJ1bi5cbiAgICovXG4gIF9ub3RpZnlBY3RpdmUoYWN0aXZlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fYWN0aXZlLnZhbHVlID0gYWN0aXZlO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgcm91dGVyIHdoZW4gdGhlIHBsYWNlIGlzIHJlYWR5IHRvIGludGVyYWN0IGFmdGVyIGFueSBhbmltYXRpb25zIGhhdmUgcnVuLlxuICAgKi9cbiAgX25vdGlmeVBsYWNlUmVhZHkoKSB7XG4gICAgaWYgKHRoaXMub25QbGFjZVJlYWR5Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy5fcGxhY2VSZWFkeUNhbGxiYWNrcy5mb3JFYWNoKGNhbGxiYWNrID0+IGNhbGxiYWNrKCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJ092ZXJyaWRpbmcgUGxhY2VDb21wb25lbnQub25QbGFjZVJlYWR5IGhhcyBiZWVuIGRlcHJlY2F0ZWQuICBVc2UgUGxhY2VDb21wb25lbnQub25QbGFjZVJlYWR5KCgpID0+IHsuLi4gZG8gc3R1ZmYuLi59KSBpbnN0ZWFkLicpO1xuICAgICAgdGhpcy5vblBsYWNlUmVhZHkodW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cblxuICBvblBsYWNlUmVhZHkoY2FsbGJhY2s6ICgpID0+IHZvaWQpIHtcbiAgICB0aGlzLl9wbGFjZVJlYWR5Q2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuICB9XG5cbiAgLy8gaW50ZXJjZXB0VmlzaXRQYXJhbWV0ZXJDaGFuZ2U8VD4obW9kZWw6IFZhbHVlTW9kZWw8VD4sIGNhbGxiYWNrOiBQbGFjZUNvbXBvbmVudC5JbnRlcmNlcHRDYWxsYmFjazxUPiwgb3B0aW9ucz86IFBsYWNlQ29tcG9uZW50LkludGVyY2VwdE9wdGlvbnMpIHtcbiAgLy8gICBjb25zdCBwYXJhbWV0ZXJEZWYgPSBQYXJhbWV0ZXJEZWZpbml0aW9uLmdldChtb2RlbCk7XG4gIC8vICAgdGhpcy5fcGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3JzLnB1c2gobmV3IFBhcmFtZXRlckNoYW5nZUludGVyY2VwdG9yKHBhcmFtZXRlckRlZiwgbW9kZWwsIGNhbGxiYWNrLCBvcHRpb25zKSk7XG4gIC8vIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlQ29tcG9uZW50IHtcblxuICBleHBvcnQgZnVuY3Rpb24gaXNQbGFjZUNvbXBvbmVudENvbnN0cnVjdG9yKHRhcmdldDogYW55KTogdGFyZ2V0IGlzIENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+IHtcbiAgICByZXR1cm4gbGFuZy5jb25zdHJ1Y3RvckNoYWluKHRhcmdldCBhcyBDb25zdHJ1Y3RhYmxlPGFueT4pLmluY2x1ZGVzKFBsYWNlQ29tcG9uZW50KTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRSb3V0ZVBhcmFtZXRlcnMoa2xhc3M6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10ge1xuICAgIHJldHVybiBLbGFzcy5nZXQoa2xhc3MpLmdldE1ldGFkYXRhTGlzdChST1VURV9QQVJBTUVURVJfTElTVF9LRVkpIGFzIFBhcmFtZXRlckRlZmluaXRpb248YW55PltdO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERlZmluaXRpb24oc25hcHNob3RPckNvbnN0cnVjdG9yOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pOiBQbGFjZURlZmluaXRpb24ge1xuICAgIGlmIChzbmFwc2hvdE9yQ29uc3RydWN0b3IgaW5zdGFuY2VvZiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XG4gICAgICBjb25zdCBjb21wb25lbnQgPSBzbmFwc2hvdE9yQ29uc3RydWN0b3IuY29tcG9uZW50O1xuICAgICAgaWYgKCFpc1BsYWNlQ29tcG9uZW50Q29uc3RydWN0b3IoY29tcG9uZW50KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFjdGl2YXRlZFJvdXRlU25hcHNob3QgY29tcG9uZW50IGlzIG5vdCBhIFBsYWNlQ29tcG9uZW50LCBnb3QgJHtjb21wb25lbnR9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZ2V0UGxhY2VEZWZpbml0aW9uKGNvbXBvbmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBnZXRQbGFjZURlZmluaXRpb24oc25hcHNob3RPckNvbnN0cnVjdG9yKTtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaW5qZWN0RGVmaW5pdGlvbihrbGFzczogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4sIGRlZmluaXRpb246IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIHNldFBsYWNlRGVmaW5pdGlvbihrbGFzcywgZGVmaW5pdGlvbik7XG4gIH1cblxuICAvLyBleHBvcnQgdHlwZSBJbnRlcmNlcHRDYWxsYmFjazxUPiA9IChpczogVCwgd2FzOiBULCBpbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkgPT4gYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgLy8gZXhwb3J0IGludGVyZmFjZSBJbnRlcmNlcHRPcHRpb25zIHtcbiAgLy8gICBpbml0aWFsVmFsdWU6ICdldmFsdWF0aW9uVW5sZXNzTmlsJyB8ICdldmFsdWF0ZSdcbiAgLy8gfVxuXG5cbn1cbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxtSEFBbUg7QUFDbkgsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBQyxjQUFjLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RSxPQUFPLEVBQ0wsTUFBTSxFQUNOLE9BQU8sRUFFUCxZQUFZLEVBQ1osR0FBRyxFQUNILEtBQUssRUFFTCxJQUFJLEVBQ0osU0FBUyxFQUNULGlCQUFpQixFQUNqQixvQkFBb0IsRUFFckIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUMsS0FBSyxFQUFFLFVBQVUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFFbkUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xHLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFNM0MsT0FBTyxFQUFDLHdCQUF3QixFQUFFLHdCQUF3QixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHcEYsd0NBQXdDO0FBQ3hDLHVLQUF1SztBQUN2SyxNQUFNO0FBQ04sRUFBRTtBQUNGLHdGQUF3RjtBQUN4RixtQkFBbUI7QUFDbkIsTUFBTTtBQUNO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Qy9GO1lBQ0QsT0FBTyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN0QzthQUFNO1lBQ0wsT0FBTyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0gsQ0FBQztJQVZlLDRCQUFhLGdCQVU1QixDQUFBO0lBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBb0MsRUFBRSxVQUEyQjtRQUNoRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUZlLCtCQUFnQixtQkFFL0IsQ0FBQTtJQUVELDRIQUE0SDtJQUU1SCxzQ0FBc0M7SUFDdEMscURBQXFEO0lBQ3JELElBQUk7QUFHTixDQUFDLEVBakNnQixjQUFjLEtBQWQsY0FBYyxRQWlDOUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIHBsYWNlIGNvbXBvbmVudCBiYXNlIOKAlCBnZW5lcmljIG92ZXIgYXJiaXRyYXJ5IHBsYWNlIGRhdGEgKi9cbmltcG9ydCB7RGlyZWN0aXZlLCBIb3N0QmluZGluZywgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIEFjdGl2YXRlZFJvdXRlU25hcHNob3R9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBhc3NlcnQsXG4gIEJpbmRpbmcsXG4gIENvbnN0cnVjdGFibGUsXG4gIERlYnVnQ29udGV4dCxcbiAgRHNsLFxuICBHdWFyZCxcbiAgSU11dGFibGVIYXNWYWx1ZSxcbiAgbGFuZyxcbiAgTGlzdE1vZGVsLFxuICBNdXRhYmxlVmFsdWVNb2RlbCxcbiAgU2luZ2xlU2VsZWN0aW9uTW9kZWwsXG4gIFRyYW5zYWN0aW9uXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7S2xhc3MsIE1lbW9pemVHZXR9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHtpc0VtcHR5LCBpc05pbH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5pbXBvcnQge0xvYWRhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50cy9sb2FkYWJsZS1jb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHtJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gJy4uL2ludGVyYWN0aW9uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHtQbGFjZURlZmluaXRpb259IGZyb20gJy4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQge2dldFBsYWNlRGVmaW5pdGlvbiwgUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZLCBzZXRQbGFjZURlZmluaXRpb259IGZyb20gJy4vcGxhY2UtbWV0YWRhdGEnO1xuaW1wb3J0IHtQbGFjZVJvdXRlcn0gZnJvbSBcIi4vcGxhY2Utcm91dGVyXCI7XG5pbXBvcnQgdHlwZSB7UGFyYW1ldGVyRGVmaW5pdGlvbn0gZnJvbSAnLi9yb3V0ZS9wYXJhbWV0ZXItZGVmaW5pdGlvbic7XG5pbXBvcnQgdHlwZSB7VXJsU25hcHNob3R9IGZyb20gJy4vdXJsLXNuYXBzaG90JztcbmltcG9ydCB0eXBlIHtWaXNpdFNlZ21lbnR9IGZyb20gJy4vdmlzaXQtc2VnbWVudCc7XG5cblxuZXhwb3J0IHtERUZJTklUSU9OX01FVEFfREFUQV9LRVksIFJPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWX0gZnJvbSAnLi9wbGFjZS1tZXRhZGF0YSc7XG5cblxuLy8gY2xhc3MgUGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3I8VD4ge1xuLy8gICBjb25zdHJ1Y3RvcihwYXJhbWV0ZXJEZWY6IFBhcmFtZXRlckRlZmluaXRpb248VD4sIG1vZGVsOiBWYWx1ZU1vZGVsPFQ+LCBjYWxsYmFjazogUGxhY2VDb21wb25lbnQuSW50ZXJjZXB0Q2FsbGJhY2s8VD4sIG9wdGlvbnM6IFBsYWNlQ29tcG9uZW50LkludGVyY2VwdE9wdGlvbnMpIHtcbi8vICAgfVxuLy9cbi8vICAgYXN5bmMgY2FuUHJvY2VlZChuZXh0U3RhdGU6IFZpc2l0U2VnbWVudCwgaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpIHtcbi8vICAgICByZXR1cm4gdHJ1ZTtcbi8vICAgfVxuLy8gfVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBQbGFjZUNvbXBvbmVudCBleHRlbmRzIExvYWRhYmxlQ29tcG9uZW50IHtcblxuICAvLyBNZXRhZGF0YSBmbGFnZ2luZyBhIGJpbmRpbmcncyBjb3JyZWN0aW9uIG9mIHRoZSB2aXNpdCAodGhlIGNvbnN0cnVjdGlvbi10aW1lIGF1dG8tc2VsZWN0LCBvciBhXG4gIC8vIHJlc2VsZWN0aW9uIHdoaWxlIGEgdmlzaXQgaXMgYXBwbGllZCkgYXMgYXV0b21hdGljLCBzbyB0aGUgcm91dGVyIHJlcGxhY2VzIHJhdGhlciB0aGFuIHB1c2hpbmcgYVxuICAvLyBoaXN0b3J5IGVudHJ5IChtaXJyb3JzIGEgU2VsZWN0aW9uTW9uaXRvciBjb3JyZWN0aW9uKS5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQVVUT19DT1JSRUNUSU9OX01FVEFEQVRBOiBUcmFuc2FjdGlvbi5NZXRhRGF0YSA9XG4gICAgbmV3IE1hcDxzdHJpbmcgfCBzeW1ib2wsIHVua25vd24+KFtbU2luZ2xlU2VsZWN0aW9uTW9kZWwuQVVUT19DT1JSRUNUSU9OLCB0cnVlXV0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BsYWNlUmVhZHlDYWxsYmFja3M6ICgoKT0+dm9pZClbXSA9IFtdO1xuICBwcml2YXRlIHZpc2l0JCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxWaXNpdFNlZ21lbnQ+KCk7XG4gIHByaXZhdGUgX2luVmlzaXRVcGRhdGUgPSBuZXcgR3VhcmQoKTtcbiAgcHJpdmF0ZSBfbm90aWZ5VmlzaXRDaGFuZ2VkPzogKGN1cnJlbnQ6IFZpc2l0U2VnbWVudCwgcHJldmlvdXM6IFZpc2l0U2VnbWVudCwgbWV0YWRhdGE/OiBUcmFuc2FjdGlvbi5NZXRhRGF0YSkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBfYWN0aXZlID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBpbnRlcmFjdGlvbkNvbnRleHQ/OiBJbnRlcmFjdGlvbkNvbnRleHQ7XG4gIHJlYWRvbmx5IGNoaWxkUGxhY2VzJDogTGlzdE1vZGVsPENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+PjtcbiAgLy8gcHJpdmF0ZSByZWFkb25seSBfcGFyYW1ldGVyQ2hhbmdlSW50ZXJjZXB0b3JzOiBQYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcjxhbnk+W10gPSBbXTtcblxuICBASG9zdEJpbmRpbmcoXCJhdHRyLnBsYWNlLWlkXCIpXG4gIHJlYWRvbmx5IHBsYWNlSWQ6IHN0cmluZztcblxuXG4gIGNhbkRlYWN0aXZhdGU/KGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KTogYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj47XG5cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGxhY2VSb3V0ZXIgPSBpbmplY3QoUGxhY2VSb3V0ZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2YXRlZFJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHtjaGFpbiwgdmFsdWVPZiwgYmVmb3JlLCB3aGVuLCBhZnRlciwgb2JzZXJ2ZSwgc3dpdGNoT259ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuICAgIHdoZW4odGhpcy5fYWN0aXZlKS5iZWNvbWVzVHJ1dGh5KCgpID0+IHRoaXMuX25vdGlmeVBsYWNlUmVhZHkoKSk7XG4gICAgdGhpcy5jaGlsZFBsYWNlcyQgPSBMaXN0TW9kZWwuY29uc3RhbnQodGhpcy5wbGFjZURlZmluaXRpb24uY2hpbGRyZW4ubWFwKGQgPT4gZC5jb21wb25lbnQpKTtcbiAgICB0aGlzLnBsYWNlSWQgPSB0aGlzLnBsYWNlRGVmaW5pdGlvbi5wbGFjZUlkO1xuICAgIGlmIChpc0VtcHR5KHRoaXMucGxhY2VJZCkpIHtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKFwicGxhY2VJZCBwcm9wZXJ0eSBpcyBtaXNzaW5nIGZyb20gdGhlIHJvdXRlIGRhdGEgcGFyYW1ldGVyc1wiKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXNlVmlzaXQodmlzaXQ6IFZpc2l0U2VnbWVudCwgbm90aWZ5VmlzaXRDaGFuZ2VkOiAoY3VycmVudDogVmlzaXRTZWdtZW50LCBwcmV2aW91czogVmlzaXRTZWdtZW50LCBtZXRhZGF0YT86IFRyYW5zYWN0aW9uLk1ldGFEYXRhKSA9PiB2b2lkKSB7XG4gICAgYXNzZXJ0LmlzTmlsKHRoaXMudmlzaXQkLnZhbHVlKTtcblxuICAgIGNvbnN0IHt3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcblxuICAgIHRoaXMudmlzaXQkLnZhbHVlID0gdmlzaXQ7XG4gICAgdGhpcy5fbm90aWZ5VmlzaXRDaGFuZ2VkID0gbm90aWZ5VmlzaXRDaGFuZ2VkO1xuICAgIERlYnVnQ29udGV4dC5nZXRPckNyZWF0ZSh0aGlzLnZpc2l0JCkudGFnKGAke3RoaXMucGxhY2VEZWZpbml0aW9uLmNvbXBvbmVudC5uYW1lfS52aXNpdCRgKTtcblxuICAgIC8vIHdlIHRyYWNrIGlmIGFueSBvZiB0aGUgYmluZGluZ3MgdXBkYXRlZCB0aGUgcm91dGUgKGUuZy4gYSBzZWxlY3Rpb24gbW9kZWwgdGhhdCBhdXRvLXNlbGVjdGVkXG4gICAgLy8gdGhlIGZpcnN0IGl0ZW0gZHVyaW5nIGNvbnN0cnVjdGlvbiB3aGlsZSB0aGUgcm91dGUgaGFkIG5vIHZhbHVlKS4gSWYgc28gd2UgdXBkYXRlIHRoZSByb3V0ZVxuICAgIC8vIG9uY2UsIGFmdGVyIHdpcmluZyB1cCB0aGUgY2hhbmdlIGxpc3RlbmVyIGJlbG93LlxuICAgIGNvbnN0IHJvdXRlVXBkYXRlZEJ5QmluZGluZyA9IHRoaXMucGxhY2VEZWZpbml0aW9uXG4gICAgICAuZ2V0VmlzaXRQYXJhbWV0ZXJEZWZzKClcbiAgICAgIC5tYXAocGFyYW1ldGVyRGVmID0+IHRoaXMuaW5zdGFsbEFuZEluaXRpYWxpc2VCaW5kaW5nKHZpc2l0LCBwYXJhbWV0ZXJEZWYpKVxuICAgICAgLnNvbWUoQm9vbGVhbik7XG5cbiAgICAvLyBUaGUgY2hhbmdlIGNhbGxiYWNrIGNhcnJpZXMgdGhlIG9yaWdpbmF0aW5nIHRyYW5zYWN0aW9uJ3Mgcm9vdCBtZXRhZGF0YSAoc2VlIHBlY3RpblxuICAgIC8vIHdoZW4oKS5jaGFuZ2VzKSwgc28gdGhlIHJvdXRlciBjYW4gdGVsbCBhIGRlbGliZXJhdGUgc2VsZWN0aW9uIGZyb20gYW4gYXV0b21hdGljIGNvcnJlY3Rpb24uXG4gICAgd2hlbih0aGlzLnZpc2l0JCkuY2hhbmdlcygoY3VycmVudCwgcHJldmlvdXMsIG1ldGFkYXRhKSA9PiB7XG4gICAgICBub3RpZnlWaXNpdENoYW5nZWQoY3VycmVudCwgcHJldmlvdXMsIG1ldGFkYXRhKTtcbiAgICB9LCB7dW5sZXNzOiB0aGlzLl9pblZpc2l0VXBkYXRlfSk7XG5cbiAgICAvLyBUaGUgYmluZGluZyBwcm9jZXNzIGNhbiB1cGRhdGUgdGhlIHZpc2l0IHdoZW4gdGhlIHJvdXRlIGhhZCBubyB2YWx1ZSAoZS5nLiBhIHNlbGVjdGlvbiBtb2RlbFxuICAgIC8vIHdpdGggYXV0b1NlbGVjdEZpcnN0SXRlbU9uTG9hZCB0aGF0IGFscmVhZHkgc2VsZWN0ZWQgZHVyaW5nIGNvbXBvbmVudCBjb25zdHJ1Y3Rpb24pLiBQcm9wYWdhdGVcbiAgICAvLyB0aGF0IHRvIHRoZSByb3V0ZXIgbm93IHNvIHRoZSBVUkwgcmVmbGVjdHMgdGhlIHNlbGVjdGlvbiAtIGZsYWdnZWQgYXMgYW4gYXV0by1jb3JyZWN0aW9uIHNvIGl0XG4gICAgLy8gcmVwbGFjZXMgcmF0aGVyIHRoYW4gcHVzaGluZyBhIHNwdXJpb3VzIGhpc3RvcnkgZW50cnkuXG4gICAgaWYgKHJvdXRlVXBkYXRlZEJ5QmluZGluZyAmJiB0aGlzLnZpc2l0JC52YWx1ZS5oYXNSb3V0aW5nQ2hhbmdlZEZyb20odmlzaXQpKSB7XG4gICAgICBub3RpZnlWaXNpdENoYW5nZWQodGhpcy52aXNpdCQudmFsdWUsIHZpc2l0LCBQbGFjZUNvbXBvbmVudC5BVVRPX0NPUlJFQ1RJT05fTUVUQURBVEEpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjaGlsZFBsYWNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5jaGlsZFBsYWNlcyQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmlzaXQodmlzaXQ6IFZpc2l0U2VnbWVudCkge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLmlzSW5pdGlhbGlzZWQoKSk7XG4gICAgYXNzZXJ0Lm5vdE5pbCh2aXNpdCk7XG4gICAgdGhpcy5faW5WaXNpdFVwZGF0ZS53aGlsZVRydWUoKCkgPT4ge1xuICAgICAgdGhpcy52aXNpdCQudmFsdWUgPSB2aXNpdDtcbiAgICB9KTtcbiAgICAvLyBBIGJpbmRpbmcgY2FuIGNvcnJlY3QgdGhlIHZpc2l0IGFzIGl0J3MgYXBwbGllZCwgYXMgYXQgaW5pdGlhbGlzYXRpb246IGEgcm91dGUgdG8gdGhpcyBwbGFjZVxuICAgIC8vIHdpdGhvdXQgYSBwYXJhbWV0ZXIgKGEgbGluaywgb3IgdGhlIGFkZHJlc3MgYmFyLCB3aGlsZSB0aGUgcGxhY2UgaXMgb3Blbikgc2V0cyBhIHNlbGVjdGlvblxuICAgIC8vIG1vZGVsJ3MgaWQgdG8gbmlsLCBhbmQgdGhlIG1vZGVsIHJlc2VsZWN0cy4gVGhlIGNoYW5nZSBsaXN0ZW5lciBpZ25vcmVzIHVwZGF0ZXMgbWFkZSB3aGlsZSB0aGVcbiAgICAvLyB2aXNpdCBpcyBhcHBsaWVkLCBzbyB0ZWxsIHRoZSByb3V0ZXIgaGVyZTsgb3RoZXJ3aXNlIGl0cyBVUkwga2VlcHMgdGhlIHN0YWxlIHZpc2l0LCBhbmQgaXRzIG5leHRcbiAgICAvLyBuYXZpZ2F0aW9uIHdyaXRlcyB0aGF0IGJhY2sgdG8gdGhlIHBsYWNlLCB0aGUgc2VsZWN0aW9uIGJvdW5jaW5nIHRocm91Z2ggaXQuXG4gICAgaWYgKHRoaXMudmlzaXQkLnZhbHVlLmhhc1JvdXRpbmdDaGFuZ2VkRnJvbSh2aXNpdCkpIHtcbiAgICAgIHRoaXMuX25vdGlmeVZpc2l0Q2hhbmdlZD8uKHRoaXMudmlzaXQkLnZhbHVlLCB2aXNpdCwgUGxhY2VDb21wb25lbnQuQVVUT19DT1JSRUNUSU9OX01FVEFEQVRBKTtcbiAgICB9XG4gIH1cblxuICBpc0luaXRpYWxpc2VkKCkge1xuICAgIHJldHVybiAhIXRoaXMudmlzaXQkLnZhbHVlO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgLyoqXG4gICAqIEluaXRpYWxpc2VkIHRoZSBjb21wb25lbnQgYmluZGluZ3MuICBJZiBhbnkgYmluZGluZyBoYXMgYW4gaW5pdGlhbCBtb2RlbCB2YWx1ZSAoZS5nLiBhIHNlbGVjdGlvbiBtb2RlbFxuICAgKiBpbml0aWFsaXNlZCBkdXJpbmcgdGhlIGNvbnN0cnVjdG9yKSBhbmQgdGhlIHJvdXRlIGhhcyBub3RoaW5nLCB0aGVuIHRoZSB2aXNpdCB3aWxsIGJlIHVkcGF0ZWQgYW5kIHRoaXNcbiAgICogbWV0aG9kIHdpbGwgcmV0dXJuIHR1cmUgdG8gbm9maXkgdGhlIHRoZSB2aXNpdCBoYXMgY2hhbmdlZC5cbiAgICovXG4gIHByaXZhdGUgaW5zdGFsbEFuZEluaXRpYWxpc2VCaW5kaW5nPFQsIFM+KGluaXRpYWxWaXNpdDogVmlzaXRTZWdtZW50LCBwYXJhbWV0ZXJEZWY6IFBhcmFtZXRlckRlZmluaXRpb248VCwgUz4pOiBib29sZWFuIHtcbiAgICBjb25zdCBtb2RlbCA9IHRoaXNbcGFyYW1ldGVyRGVmLnByb3BlcnR5TmFtZV0gYXMgSU11dGFibGVIYXNWYWx1ZTxUPjtcbiAgICBhc3NlcnQubm90TmlsKG1vZGVsKTtcbiAgICBEZWJ1Z0NvbnRleHQudGFnKG1vZGVsLCBgJHt0aGlzLnBsYWNlRGVmaW5pdGlvbi5jb21wb25lbnQubmFtZX0uJHtwYXJhbWV0ZXJEZWYucHJvcGVydHlOYW1lfWApO1xuICAgIGNvbnN0IGJpbmRpbmcgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgQmluZGluZyh0aGlzLnZpc2l0JCwgbW9kZWwsIHtcbiAgICAgIHRvUmlnaHQodmlzaXQ6IFZpc2l0U2VnbWVudCk6IFQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHZpc2l0LmdldFBhcmFtZXRlclZhbHVlKHBhcmFtZXRlckRlZik7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdwdXNoIHRvIGNvbXBvbmVudCcsIHsgbmFtZTogcGFyYW1ldGVyRGVmLm5hbWUsIHZhbHVlLCB2aXNpdCB9KTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSxcbiAgICAgIHRvTGVmdCh2YWx1ZTogVCwgY3VycmVudFZpc2l0PzogVmlzaXRTZWdtZW50KTogVmlzaXRTZWdtZW50IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3B1c2ggdG8gcm91dGUnLCB7IG5hbWU6IHBhcmFtZXRlckRlZi5uYW1lLCB2YWx1ZSwgY3VycmVudFZpc2l0IH0pO1xuICAgICAgICByZXR1cm4gY3VycmVudFZpc2l0LnJlcGxhY2UocGFyYW1ldGVyRGVmLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSkpO1xuXG4gICAgLy8gTm93IHdlIG5lZWQgdG8gaW5pdGlhbGlzZSB0aGUgYmluZGluZyBkaXJlY3Rpb24uICBJZiB3ZSBoYXZlIGEgdmFsdWUgaW4gdGhlIFVybCB0aGVuIHdlIHNob3VsZCBhbHdheXMgcHVzaFxuICAgIC8vIHRoYXQgdG8gdGhlIHZpZXcuICBJZiB3ZSBkb24ndCBhbmQgdGhlIHZpZXcgYWxyZWFkeSBoYXMgYSB2YWx1ZSAoZS5nLiBhIHNlbGVjdGlvbiBtb2RlbCBoYXMgYWxyZWFkeSBpbml0aWFsaXNlZCBpbiB0aGVcbiAgICAvLyBjb21wb25lbnQgY29uc3RydWN0b3IpIHRoZW4gd2Ugc2hvdWxkIHB1c2ggdGhhdCB0byB0aGUgcm91dGUuXG4gICAgY29uc3QgaXNJblZpc2l0ID0gIWlzTmlsKGluaXRpYWxWaXNpdC5nZXRQYXJhbWV0ZXJWYWx1ZShwYXJhbWV0ZXJEZWYpKTtcbiAgICBjb25zdCBpc0luTW9kZWwgPSAhaXNOaWwobW9kZWwudmFsdWUpO1xuICAgIGlmICghaXNJblZpc2l0ICYmIGlzSW5Nb2RlbCkge1xuICAgICAgYmluZGluZy53cml0ZUxlZnQoKTsgLy8gcHVzaCBpdCB0byB0aGUgcm91dGVcbiAgICAgIHJldHVybiB0cnVlOyAvLyB0aGUgbW9kZWwgKGUuZy4gYW4gYXV0by1zZWxlY3RlZCBzZWxlY3Rpb24pIHVwZGF0ZWQgdGhlIHJvdXRlXG4gICAgfSBlbHNlIHtcbiAgICAgIGJpbmRpbmcud3JpdGVSaWdodCgpOyAvLyBwdXNoIGl0IHRvIHRoZSBtb2RlbFxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEBNZW1vaXplR2V0KClcbiAgZ2V0IHBsYWNlRGVmaW5pdGlvbigpOiBQbGFjZURlZmluaXRpb24ge1xuICAgIGNvbnN0IGRlZmluaXRpb24gPSBQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKHRoaXMuY29uc3RydWN0b3IgYXMgYW55IGFzIENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTtcbiAgICBpZiAoIWRlZmluaXRpb24pIHtcbiAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gZXh0ZW5kcyBQbGFjZUNvbXBvbmVudCBidXQgZG9lc24ndCBoYXZlIEBQbGFjZSh7Li59KSBkZWNvcmF0b3IuYClcbiAgICB9XG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBnZXQgYWN0aXZlKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmUucmVhZG9ubHkkO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgcm91dGVyIHRvIHNlZSBpZiB0aGlzIGNvbXBvbmVudCBjYW4gZGVhY3RpdmF0ZS4gIFRoaXMgaXNuJ3QgY2FsbGVkIGZvciByb3V0ZSBwYXJhbWV0ZXIgY2hhbmdlcy5cbiAgICogQHBhcmFtIGludGVyYWN0aW9uQ29udGV4dFxuICAgKi9cbiAgYXN5bmMgX2NhbkxlYXZlUGxhY2UoaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5jYW5EZWFjdGl2YXRlID8gdGhpcy5jYW5EZWFjdGl2YXRlKGludGVyYWN0aW9uQ29udGV4dCkgOiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgcm91dGVyIHRvIHNlZSBpZiB0aGlzIGNvbXBvbmVudCBjYW4gZGVhY3RpdmF0ZS4gIFRoaXMgaXNuJ3QgY2FsbGVkIGZvciByb3V0ZSBwYXJhbWV0ZXIgY2hhbmdlcy5cbiAgICogQHBhcmFtIGludGVyYWN0aW9uQ29udGV4dFxuICAgKiBAcGFyYW0gbmV4dFN0YXRlXG4gICAqL1xuICBhc3luYyBfY2FuQ2hhbmdlUm91dGVQYXJhbWV0ZXJzKGludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0LCBuZXh0U3RhdGU6IFVybFNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgLy8gaWYgKHRoaXMuX3BhcmFtZXRlckNoYW5nZUludGVyY2VwdG9ycy5sZW5ndGggPiAwKSB7XG4gICAgLy8gICBjb25zdCB2aXNpdCA9IG5leHRTdGF0ZS5jcmVhdGVWaXNpdFNlZ21lbnRGb3IodGhpcy5wbGFjZURlZmluaXRpb24pO1xuICAgIC8vICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9wYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcnMubGVuZ3RoOyBpKyspIHtcbiAgICAvLyAgICAgY29uc3QgaW50ZXJjZXB0b3IgPSB0aGlzLl9wYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcnNbaV07XG4gICAgLy8gICAgIGNvbnN0IGtlZXBHb2luZyA9IGF3YWl0IGludGVyY2VwdG9yLmNhblByb2NlZWQodmlzaXQsIGludGVyYWN0aW9uQ29udGV4dCk7XG4gICAgLy8gICAgIGlmICgha2VlcEdvaW5nKSB7XG4gICAgLy8gICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIC8vICAgICB9XG4gICAgLy8gICB9XG4gICAgLy8gfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IHRoZSByb3V0ZXIgd2hlbiB0aGUgcGxhY2UgaXMgcmVhZHkgdG8gaW50ZXJhY3QgYWZ0ZXIgYW55IGFuaW1hdGlvbnMgaGF2ZSBydW4uXG4gICAqL1xuICBfbm90aWZ5QWN0aXZlKGFjdGl2ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2FjdGl2ZS52YWx1ZSA9IGFjdGl2ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIHJvdXRlciB3aGVuIHRoZSBwbGFjZSBpcyByZWFkeSB0byBpbnRlcmFjdCBhZnRlciBhbnkgYW5pbWF0aW9ucyBoYXZlIHJ1bi5cbiAgICovXG4gIF9ub3RpZnlQbGFjZVJlYWR5KCkge1xuICAgIGlmICh0aGlzLm9uUGxhY2VSZWFkeS5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMuX3BsYWNlUmVhZHlDYWxsYmFja3MuZm9yRWFjaChjYWxsYmFjayA9PiBjYWxsYmFjaygpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKCdPdmVycmlkaW5nIFBsYWNlQ29tcG9uZW50Lm9uUGxhY2VSZWFkeSBoYXMgYmVlbiBkZXByZWNhdGVkLiAgVXNlIFBsYWNlQ29tcG9uZW50Lm9uUGxhY2VSZWFkeSgoKSA9PiB7Li4uIGRvIHN0dWZmLi4ufSkgaW5zdGVhZC4nKTtcbiAgICAgIHRoaXMub25QbGFjZVJlYWR5KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgb25QbGFjZVJlYWR5KGNhbGxiYWNrOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5fcGxhY2VSZWFkeUNhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTtcbiAgfVxuXG4gIC8vIGludGVyY2VwdFZpc2l0UGFyYW1ldGVyQ2hhbmdlPFQ+KG1vZGVsOiBWYWx1ZU1vZGVsPFQ+LCBjYWxsYmFjazogUGxhY2VDb21wb25lbnQuSW50ZXJjZXB0Q2FsbGJhY2s8VD4sIG9wdGlvbnM/OiBQbGFjZUNvbXBvbmVudC5JbnRlcmNlcHRPcHRpb25zKSB7XG4gIC8vICAgY29uc3QgcGFyYW1ldGVyRGVmID0gUGFyYW1ldGVyRGVmaW5pdGlvbi5nZXQobW9kZWwpO1xuICAvLyAgIHRoaXMuX3BhcmFtZXRlckNoYW5nZUludGVyY2VwdG9ycy5wdXNoKG5ldyBQYXJhbWV0ZXJDaGFuZ2VJbnRlcmNlcHRvcihwYXJhbWV0ZXJEZWYsIG1vZGVsLCBjYWxsYmFjaywgb3B0aW9ucykpO1xuICAvLyB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQbGFjZUNvbXBvbmVudCB7XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGlzUGxhY2VDb21wb25lbnRDb25zdHJ1Y3Rvcih0YXJnZXQ6IGFueSk6IHRhcmdldCBpcyBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50PiB7XG4gICAgcmV0dXJuIGxhbmcuY29uc3RydWN0b3JDaGFpbih0YXJnZXQgYXMgQ29uc3RydWN0YWJsZTxhbnk+KS5pbmNsdWRlcyhQbGFjZUNvbXBvbmVudCk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0Um91dGVQYXJhbWV0ZXJzKGtsYXNzOiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pik6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdIHtcbiAgICByZXR1cm4gS2xhc3MuZ2V0KGtsYXNzKS5nZXRNZXRhZGF0YUxpc3QoUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZKSBhcyBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT5bXTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXREZWZpbml0aW9uKHNuYXBzaG90T3JDb25zdHJ1Y3RvcjogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTogUGxhY2VEZWZpbml0aW9uIHtcbiAgICBpZiAoc25hcHNob3RPckNvbnN0cnVjdG9yIGluc3RhbmNlb2YgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkge1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gc25hcHNob3RPckNvbnN0cnVjdG9yLmNvbXBvbmVudDtcbiAgICAgIGlmICghaXNQbGFjZUNvbXBvbmVudENvbnN0cnVjdG9yKGNvbXBvbmVudCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IGNvbXBvbmVudCBpcyBub3QgYSBQbGFjZUNvbXBvbmVudCwgZ290ICR7Y29tcG9uZW50fWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGdldFBsYWNlRGVmaW5pdGlvbihjb21wb25lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZ2V0UGxhY2VEZWZpbml0aW9uKHNuYXBzaG90T3JDb25zdHJ1Y3Rvcik7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGluamVjdERlZmluaXRpb24oa2xhc3M6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+LCBkZWZpbml0aW9uOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICBzZXRQbGFjZURlZmluaXRpb24oa2xhc3MsIGRlZmluaXRpb24pO1xuICB9XG5cbiAgLy8gZXhwb3J0IHR5cGUgSW50ZXJjZXB0Q2FsbGJhY2s8VD4gPSAoaXM6IFQsIHdhczogVCwgaW50ZXJhY3Rpb25Db250ZXh0OiBJbnRlcmFjdGlvbkNvbnRleHQpID0+IGJvb2xlYW4gfCBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIC8vIGV4cG9ydCBpbnRlcmZhY2UgSW50ZXJjZXB0T3B0aW9ucyB7XG4gIC8vICAgaW5pdGlhbFZhbHVlOiAnZXZhbHVhdGlvblVubGVzc05pbCcgfCAnZXZhbHVhdGUnXG4gIC8vIH1cblxuXG59XG4iXX0=
@@ -1403,6 +1403,10 @@ class ButtonRendererComponent extends PopupAwareComponent {
1403
1403
  this.iconOnly$ = chain(this.faces$).select(face => {
1404
1404
  return isEmpty(CommandFace.getTextOf(face)) && !isEmpty(CommandFace.getIconOf(face));
1405
1405
  }).count().equals(chain(this.faces$).count());
1406
+ // A command that finishes while nothing else re-renders its host (a dialog's command finishing
1407
+ // after the host already re-rendered for what it changed) must still re-enable the button, and an
1408
+ // OnPush host is never checked for it otherwise.
1409
+ this.viewStateDependsOn(this.faces$, this.enabled$, this.busy$);
1406
1410
  }
1407
1411
  get renderAsMenuItem() {
1408
1412
  return this.inPopup && !this.forceRenderAsButton;
@@ -1522,6 +1526,8 @@ class CommandComponent extends PopupAwareComponent {
1522
1526
  return isEmpty(CommandFace.getTextOf(face)) && !isEmpty(CommandFace.getIconOf(face));
1523
1527
  }).count().equals(this.faces$.count());
1524
1528
  this.visible$ = chain(this.command.visible$);
1529
+ // The host binding below reads visible$; the button renderer watches the rest.
1530
+ this.viewStateDependsOn(this.visible$);
1525
1531
  }
1526
1532
  get cssDisplayProperty() {
1527
1533
  return this.visible$.value ? undefined : 'none';
@@ -13894,12 +13900,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
13894
13900
  // }
13895
13901
  // }
13896
13902
  class PlaceComponent extends LoadableComponent {
13897
- // Metadata flagging the construction-time auto-select propagation as an automatic correction, so
13898
- // the router replaces rather than pushing a history entry (mirrors a SelectionMonitor correction).
13903
+ // Metadata flagging a binding's correction of the visit (the construction-time auto-select, or a
13904
+ // reselection while a visit is applied) as automatic, so the router replaces rather than pushing a
13905
+ // history entry (mirrors a SelectionMonitor correction).
13899
13906
  static AUTO_CORRECTION_METADATA = new Map([[SingleSelectionModel.AUTO_CORRECTION, true]]);
13900
13907
  _placeReadyCallbacks = [];
13901
13908
  visit$ = new MutableValueModel();
13902
13909
  _inVisitUpdate = new Guard();
13910
+ _notifyVisitChanged;
13903
13911
  _active = new MutableValueModel(false);
13904
13912
  interactionContext;
13905
13913
  childPlaces$;
@@ -13921,6 +13929,7 @@ class PlaceComponent extends LoadableComponent {
13921
13929
  assert.isNil(this.visit$.value);
13922
13930
  const { when } = Dsl.disposeWith(this);
13923
13931
  this.visit$.value = visit;
13932
+ this._notifyVisitChanged = notifyVisitChanged;
13924
13933
  DebugContext.getOrCreate(this.visit$).tag(`${this.placeDefinition.component.name}.visit$`);
13925
13934
  // we track if any of the bindings updated the route (e.g. a selection model that auto-selected
13926
13935
  // the first item during construction while the route had no value). If so we update the route
@@ -13951,6 +13960,14 @@ class PlaceComponent extends LoadableComponent {
13951
13960
  this._inVisitUpdate.whileTrue(() => {
13952
13961
  this.visit$.value = visit;
13953
13962
  });
13963
+ // A binding can correct the visit as it's applied, as at initialisation: a route to this place
13964
+ // without a parameter (a link, or the address bar, while the place is open) sets a selection
13965
+ // model's id to nil, and the model reselects. The change listener ignores updates made while the
13966
+ // visit is applied, so tell the router here; otherwise its URL keeps the stale visit, and its next
13967
+ // navigation writes that back to the place, the selection bouncing through it.
13968
+ if (this.visit$.value.hasRoutingChangedFrom(visit)) {
13969
+ this._notifyVisitChanged?.(this.visit$.value, visit, PlaceComponent.AUTO_CORRECTION_METADATA);
13970
+ }
13954
13971
  }
13955
13972
  isInitialised() {
13956
13973
  return !!this.visit$.value;