@clr/angular 15.5.0 → 15.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -68,6 +68,7 @@ export class ClrPopoverContent {
68
68
  this.shouldRealign = false;
69
69
  if (this.view) {
70
70
  this.renderer.setStyle(this.view.rootNodes[0], 'opacity', '1');
71
+ this.smartOpenService.popoverVisibleEmit(true);
71
72
  }
72
73
  }));
73
74
  }
@@ -115,6 +116,7 @@ export class ClrPopoverContent {
115
116
  this.view.rootNodes.forEach(node => this.renderer.removeChild(this.document.body, node));
116
117
  this.container.clear();
117
118
  delete this.view;
119
+ this.smartOpenService.popoverVisibleEmit(false);
118
120
  }
119
121
  alignContent() {
120
122
  if (!this.view) {
@@ -149,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
149
151
  type: Input,
150
152
  args: ['clrPopoverContentScrollToClose']
151
153
  }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvcG9wb3Zlci9wb3BvdmVyLWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxHQUtOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPOUMseUVBQXlFO0FBQ3pFLGVBQWU7QUFJZixNQUFNLE9BQU8saUJBQWlCO0lBZTVCLFlBQzRCLFFBQWtCLEVBQ3BDLFNBQTJCLEVBQzNCLFFBQTBCLEVBQzFCLFFBQW1CLEVBQ25CLG9CQUErQyxFQUMvQyxrQkFBMkMsRUFDM0MsZ0JBQXlDO1FBTnZCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQTJCO1FBQy9DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBeUI7UUFDM0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQXBCM0Msa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLDBCQUFxQixHQUF3QixJQUFJLENBQUM7UUFFbEQsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFOUIsMkJBQTJCO1FBQzNCLG9HQUFvRztRQUNwRyw4Q0FBOEM7UUFDOUMsaUdBQWlHO1FBQ2pHLHdHQUF3RztRQUN4RywyRUFBMkU7UUFDbkUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBVS9DLENBQUM7SUFFSixJQUNJLElB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RU8sWUFBWTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLE9BQU87U0FDUjtRQUNELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxjQUFjLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztRQUNyRixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxjQUFjLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDOzs4R0FwSVUsaUJBQWlCLGtCQWdCbEIsUUFBUTtrR0FoQlAsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSDdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtpQkFDaEM7OzBCQWlCSSxNQUFNOzJCQUFDLFFBQVE7aVBBVWQsSUFBSTtzQkFEUCxLQUFLO3VCQUFDLG1CQUFtQjtnQkFNdEIsU0FBUztzQkFEWixLQUFLO3VCQUFDLHFCQUFxQjtnQkFNeEIsaUJBQWlCO3NCQURwQixLQUFLO3VCQUFDLHNDQUFzQztnQkFNekMsYUFBYTtzQkFEaEIsS0FBSzt1QkFBQyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIERpcmVjdGl2ZSxcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ2xyUG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvcG92ZXItcG9zaXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvcG9wb3Zlci1ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvcG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvcG9wb3Zlci10b2dnbGUuc2VydmljZSc7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzIwMzUxI2lzc3VlY29tbWVudC0zNDQwMDk4ODdcbi8qKiBAZHluYW1pYyAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NsclBvcG92ZXJDb250ZW50XScsXG59KVxuZXhwb3J0IGNsYXNzIENsclBvcG92ZXJDb250ZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSB2aWV3OiBFbWJlZGRlZFZpZXdSZWY8dm9pZD47XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSByZW1vdmVDbGlja0xpc3RlbmVyRm46IFZvaWRGdW5jdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgc2hvdWxkUmVhbGlnbiA9IGZhbHNlO1xuXG4gIC8vIENoZWNrLWNvbGxlY3RvciBwYXR0ZXJuOlxuICAvLyBJbiBvcmRlciB0byBnZXQgYWNjdXJhdGUgY29udGVudCBoZWlnaHQvd2lkdGggdmFsdWVzLCB3ZSBjYW5ub3QgY2FsY3VsYXRlIGFsaWdubWVudCBvZmZzZXRzIHVudGlsXG4gIC8vIGFmdGVyIHRoZSBwcm9qZWN0ZWQgY29udGVudCBoYXMgc3RhYmlsaXplZC5cbiAgLy8gQXMgbXVsdGlwbGUgY2hlY2sgZXZlbnRzIG1heSBoYXBwZW4gaW4gdGhlIHNhbWUgcmVuZGVyaW5nIGN5Y2xlLCB3ZSBuZWVkIHRvIGNvbGxlY3QgYWxsIGV2ZW50c1xuICAvLyBhbmQgb25seSBhY3QgYWZ0ZXIgdGhlIGNvbnRlbnQgaXMgcmVhbGx5IHN0YWJsZS4gT3Igd2UgbWF5IGdldCB3cm9uZyBpbnRlcm1lZGlhdGUgcG9zaXRpb25pbmcgdmFsdWVzLlxuICAvLyBXZSB3aWxsIGNoYW5uZWwgc3Vic2VxdWVudCBjb250ZW50IGNoZWNrIGV2ZW50cyB0aHJvdWdoIHRoaXMgb2JzZXJ2YWJsZS5cbiAgcHJpdmF0ZSBjaGVja0NvbGxlY3RvciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHNtYXJ0UG9zaXRpb25TZXJ2aWNlOiBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgc21hcnRFdmVudHNTZXJ2aWNlOiBDbHJQb3BvdmVyRXZlbnRzU2VydmljZSxcbiAgICBwcml2YXRlIHNtYXJ0T3BlblNlcnZpY2U6IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlXG4gICkge31cblxuICBASW5wdXQoJ2NsclBvcG92ZXJDb250ZW50JylcbiAgc2V0IG9wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3BlbiA9ICEhdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ2NsclBvcG92ZXJDb250ZW50QXQnKVxuICBzZXQgY29udGVudEF0KHBvc2l0aW9uOiBDbHJQb3BvdmVyUG9zaXRpb24pIHtcbiAgICB0aGlzLnNtYXJ0UG9zaXRpb25TZXJ2aWNlLnBvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cblxuICBASW5wdXQoJ2NsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZScpXG4gIHNldCBvdXRzaWRlQ2xpY2tDbG9zZShjbGlja1RvQ2xvc2U6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5vdXRzaWRlQ2xpY2tDbG9zZSA9ICEhY2xpY2tUb0Nsb3NlO1xuICB9XG5cbiAgQElucHV0KCdjbHJQb3BvdmVyQ29udGVudFNjcm9sbFRvQ2xvc2UnKVxuICBzZXQgc2Nyb2xsVG9DbG9zZShzY3JvbGxUb0Nsb3NlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zbWFydEV2ZW50c1NlcnZpY2Uuc2Nyb2xsVG9DbG9zZSA9ICEhc2Nyb2xsVG9DbG9zZTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW4gJiYgdGhpcy52aWV3ICYmIHRoaXMuc2hvdWxkUmVhbGlnbikge1xuICAgICAgLy8gQ2hhbm5lbCBjb250ZW50LWNoZWNrIGV2ZW50IHRocm91Z2ggdGhlIGNoZWNrLWNvbGxlY3RvclxuICAgICAgdGhpcy5jaGVja0NvbGxlY3Rvci5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGNoYW5nZSA9PiB7XG4gICAgICAgIGlmIChjaGFuZ2UpIHtcbiAgICAgICAgICB0aGlzLmFkZENvbnRlbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUNvbnRlbnQoKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0aGlzLnNtYXJ0UG9zaXRpb25TZXJ2aWNlLnNob3VsZFJlYWxpZ24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG91bGRSZWFsaWduID0gdHJ1ZTtcbiAgICAgIH0pLFxuICAgICAgLy8gSGVyZSB3ZSBjb2xsZWN0IHN1YnNlcXVlbnQgc3luY2hyb25vdXNseSByZWNlaXZlZCBjb250ZW50LWNoZWNrIGV2ZW50cyBhbmQgb25seSB0YWtlIGFjdGlvblxuICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgY3ljbGUuIFNlZSBiZWxvdyBmb3IgZGV0YWlscyBvbiB0aGUgY2hlY2stY29sbGVjdG9yIHBhdHRlcm4uXG4gICAgICB0aGlzLmNoZWNrQ29sbGVjdG9yLnBpcGUoZGVib3VuY2VUaW1lKDApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmFsaWduQ29udGVudCgpO1xuICAgICAgICB0aGlzLnNob3VsZFJlYWxpZ24gPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMudmlldykge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSwgJ29wYWNpdHknLCAnMScpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnJlbW92ZUNvbnRlbnQoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRPRE8obWF0dCk6IGludmVzdGlnYXRlIHdoeSBEZWJ1Z0VsZW1lbnQgcmV0YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgbm9kZXMgYW5kIGNhdXNlcyBhIG1lbW9yeSBsZWFrLlxuICAgKiBBIG5vdGUgYWJvdXQgdGhlIHVzZSBvZiBhcHBlbmRDaGlsZC9yZW1vdmVDaGlsZFxuICAgKiBUaGUgRGVidWdFbGVtZW50IGlzIGtlZXBpbmcgYSByZWZlcmVuY2UgdG8gdGhlIGRldGFjaGVkIG5vZGUgYW5kIGl0cyB1bmNsZWFyIHdoeS5cbiAgICogVGhpcyBkb2VzIHdhcnJhbnQgZnVydGhlciBpbnZlc3RpZ2F0aW9uLiBCdXQsIHNpbmNlIGl0IGRvZXNuJ3QgaGFwcGVuIGluIHByb2R1Y3Rpb24gbW9kZVxuICAgKiBpdCBpcyBhIGxvdyBwcmlvcml0eSBpc3N1ZSBmb3Igbm93LlxuICAgKi9cbiAgcHJpdmF0ZSBhZGRDb250ZW50KCkge1xuICAgIC8vIENyZWF0ZSB0aGUgdmlldyBjb250YWluZXJcbiAgICB0aGlzLnZpZXcgPSB0aGlzLmNvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSk7XG4gICAgY29uc3QgW3Jvb3ROb2RlXSA9IHRoaXMudmlldy5yb290Tm9kZXM7XG4gICAgdGhpcy5zbWFydEV2ZW50c1NlcnZpY2UuY29udGVudFJlZiA9IHJvb3ROb2RlOyAvLyBTbyB3ZSBrbm93IHdoZXJlL3doYXQgdG8gc2V0IGNsb3NlIGZvY3VzIG9uXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhyb290Tm9kZSwgJ2Nsci1wb3BvdmVyLWNvbnRlbnQnKTtcbiAgICAvLyBSZXNldCB0byB0aGUgYmVnaW5pbmcgb2YgdGhlIGRvY3VtZW50IHRvIGJlIGF2YWlsYWJsZSBmb3Igc2l6aW5nL3Bvc2l0aW9uaW5nIGNhbGN1bGF0aW9ucy5cbiAgICAvLyBJZiB3ZSBhZGQgbmV3IGNvbnRlbnQgdG8gdGhlIGJvdHRvbSBpdCB0cmlnZ2VycyBjaGFuZ2VzIGluIHRoZSBsYXlvdXQgdGhhdCBtYXkgbGVhZCB0byBmYWxzZSBhbmNob3JcbiAgICAvLyBjb29yZGluYXRlcyB2YWx1ZXMuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShyb290Tm9kZSwgJ3RvcCcsICcwcHgnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHJvb3ROb2RlLCAnbGVmdCcsICcwcHgnKTtcbiAgICAvLyBXZSBuZWVkIHRvIGhpZGUgaXQgZHVyaW5nIHRoZSBjYWxjdWxhdGlvbiBwaGFzZSwgd2hpbGUgaXQncyBub3QgeWV0IGZpbmFsbHkgcG9zaXRpb25lZC5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHJvb3ROb2RlLCAnb3BhY2l0eScsICcwJyk7XG4gICAgdGhpcy5yZW1vdmVDbGlja0xpc3RlbmVyRm4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbihyb290Tm9kZSwgJ2NsaWNrJywgZXZlbnQgPT4ge1xuICAgICAgdGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW5FdmVudCA9IGV2ZW50O1xuICAgIH0pO1xuICAgIHRoaXMudmlldy5yb290Tm9kZXMuZm9yRWFjaChub2RlID0+IHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LCBub2RlKTtcbiAgICB9KTtcbiAgICAvLyBNYXJrIGZvciByZWFsaW5nbWVudCBvbiB0aGUgbmV4dCBjb250ZW50LWNoZWNrIGN5Y2xlLlxuICAgIHRoaXMuc2hvdWxkUmVhbGlnbiA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUNvbnRlbnQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZpZXcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVtb3ZlQ2xpY2tMaXN0ZW5lckZuKSB7XG4gICAgICB0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXJGbigpO1xuICAgICAgdGhpcy5yZW1vdmVDbGlja0xpc3RlbmVyRm4gPSBudWxsO1xuICAgIH1cbiAgICB0aGlzLnZpZXcucm9vdE5vZGVzLmZvckVhY2gobm9kZSA9PiB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZG9jdW1lbnQuYm9keSwgbm9kZSkpO1xuICAgIHRoaXMuY29udGFpbmVyLmNsZWFyKCk7XG4gICAgZGVsZXRlIHRoaXMudmlldztcbiAgfVxuXG4gIHByaXZhdGUgYWxpZ25Db250ZW50KCkge1xuICAgIGlmICghdGhpcy52aWV3KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBvc2l0aW9uQ29vcmRzID0gdGhpcy5zbWFydFBvc2l0aW9uU2VydmljZS5hbGlnbkNvbnRlbnQodGhpcy52aWV3LnJvb3ROb2Rlc1swXSk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnZpZXcucm9vdE5vZGVzWzBdLCAndG9wJywgYCR7cG9zaXRpb25Db29yZHMueU9mZnNldH1weGApO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSwgJ2xlZnQnLCBgJHtwb3NpdGlvbkNvb3Jkcy54T2Zmc2V0fXB4YCk7XG4gICAgdGhpcy5zbWFydE9wZW5TZXJ2aWNlLnBvcG92ZXJBbGlnbmVkRW1pdCh0aGlzLnZpZXcucm9vdE5vZGVzWzBdKTtcbiAgfVxufVxuIl19
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvcG9wb3Zlci9wb3BvdmVyLWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxHQUtOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFPOUMseUVBQXlFO0FBQ3pFLGVBQWU7QUFJZixNQUFNLE9BQU8saUJBQWlCO0lBZTVCLFlBQzRCLFFBQWtCLEVBQ3BDLFNBQTJCLEVBQzNCLFFBQTBCLEVBQzFCLFFBQW1CLEVBQ25CLG9CQUErQyxFQUMvQyxrQkFBMkMsRUFDM0MsZ0JBQXlDO1FBTnZCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQTJCO1FBQy9DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBeUI7UUFDM0MscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQXBCM0Msa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBQ25DLDBCQUFxQixHQUF3QixJQUFJLENBQUM7UUFFbEQsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFOUIsMkJBQTJCO1FBQzNCLG9HQUFvRztRQUNwRyw4Q0FBOEM7UUFDOUMsaUdBQWlHO1FBQ2pHLHdHQUF3RztRQUN4RywyRUFBMkU7UUFDbkUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBVS9DLENBQUM7SUFFSixJQUNJLElB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LCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIERpcmVjdGl2ZSxcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ2xyUG9wb3ZlclBvc2l0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvcG92ZXItcG9zaXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvcG9wb3Zlci1ldmVudHMuc2VydmljZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvcG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvcG9wb3Zlci10b2dnbGUuc2VydmljZSc7XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzIwMzUxI2lzc3VlY29tbWVudC0zNDQwMDk4ODdcbi8qKiBAZHluYW1pYyAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2NsclBvcG92ZXJDb250ZW50XScsXG59KVxuZXhwb3J0IGNsYXNzIENsclBvcG92ZXJDb250ZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSB2aWV3OiBFbWJlZGRlZFZpZXdSZWY8dm9pZD47XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSByZW1vdmVDbGlja0xpc3RlbmVyRm46IFZvaWRGdW5jdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgc2hvdWxkUmVhbGlnbiA9IGZhbHNlO1xuXG4gIC8vIENoZWNrLWNvbGxlY3RvciBwYXR0ZXJuOlxuICAvLyBJbiBvcmRlciB0byBnZXQgYWNjdXJhdGUgY29udGVudCBoZWlnaHQvd2lkdGggdmFsdWVzLCB3ZSBjYW5ub3QgY2FsY3VsYXRlIGFsaWdubWVudCBvZmZzZXRzIHVudGlsXG4gIC8vIGFmdGVyIHRoZSBwcm9qZWN0ZWQgY29udGVudCBoYXMgc3RhYmlsaXplZC5cbiAgLy8gQXMgbXVsdGlwbGUgY2hlY2sgZXZlbnRzIG1heSBoYXBwZW4gaW4gdGhlIHNhbWUgcmVuZGVyaW5nIGN5Y2xlLCB3ZSBuZWVkIHRvIGNvbGxlY3QgYWxsIGV2ZW50c1xuICAvLyBhbmQgb25seSBhY3QgYWZ0ZXIgdGhlIGNvbnRlbnQgaXMgcmVhbGx5IHN0YWJsZS4gT3Igd2UgbWF5IGdldCB3cm9uZyBpbnRlcm1lZGlhdGUgcG9zaXRpb25pbmcgdmFsdWVzLlxuICAvLyBXZSB3aWxsIGNoYW5uZWwgc3Vic2VxdWVudCBjb250ZW50IGNoZWNrIGV2ZW50cyB0aHJvdWdoIHRoaXMgb2JzZXJ2YWJsZS5cbiAgcHJpdmF0ZSBjaGVja0NvbGxlY3RvciA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwcml2YXRlIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHNtYXJ0UG9zaXRpb25TZXJ2aWNlOiBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgc21hcnRFdmVudHNTZXJ2aWNlOiBDbHJQb3BvdmVyRXZlbnRzU2VydmljZSxcbiAgICBwcml2YXRlIHNtYXJ0T3BlblNlcnZpY2U6IENsclBvcG92ZXJUb2dnbGVTZXJ2aWNlXG4gICkge31cblxuICBASW5wdXQoJ2NsclBvcG92ZXJDb250ZW50JylcbiAgc2V0IG9wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3BlbiA9ICEhdmFsdWU7XG4gIH1cblxuICBASW5wdXQoJ2NsclBvcG92ZXJDb250ZW50QXQnKVxuICBzZXQgY29udGVudEF0KHBvc2l0aW9uOiBDbHJQb3BvdmVyUG9zaXRpb24pIHtcbiAgICB0aGlzLnNtYXJ0UG9zaXRpb25TZXJ2aWNlLnBvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cblxuICBASW5wdXQoJ2NsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZScpXG4gIHNldCBvdXRzaWRlQ2xpY2tDbG9zZShjbGlja1RvQ2xvc2U6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5vdXRzaWRlQ2xpY2tDbG9zZSA9ICEhY2xpY2tUb0Nsb3NlO1xuICB9XG5cbiAgQElucHV0KCdjbHJQb3BvdmVyQ29udGVudFNjcm9sbFRvQ2xvc2UnKVxuICBzZXQgc2Nyb2xsVG9DbG9zZShzY3JvbGxUb0Nsb3NlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zbWFydEV2ZW50c1NlcnZpY2Uuc2Nyb2xsVG9DbG9zZSA9ICEhc2Nyb2xsVG9DbG9zZTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW4gJiYgdGhpcy52aWV3ICYmIHRoaXMuc2hvdWxkUmVhbGlnbikge1xuICAgICAgLy8gQ2hhbm5lbCBjb250ZW50LWNoZWNrIGV2ZW50IHRocm91Z2ggdGhlIGNoZWNrLWNvbGxlY3RvclxuICAgICAgdGhpcy5jaGVja0NvbGxlY3Rvci5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGNoYW5nZSA9PiB7XG4gICAgICAgIGlmIChjaGFuZ2UpIHtcbiAgICAgICAgICB0aGlzLmFkZENvbnRlbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbW92ZUNvbnRlbnQoKTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICB0aGlzLnNtYXJ0UG9zaXRpb25TZXJ2aWNlLnNob3VsZFJlYWxpZ24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zaG91bGRSZWFsaWduID0gdHJ1ZTtcbiAgICAgIH0pLFxuICAgICAgLy8gSGVyZSB3ZSBjb2xsZWN0IHN1YnNlcXVlbnQgc3luY2hyb25vdXNseSByZWNlaXZlZCBjb250ZW50LWNoZWNrIGV2ZW50cyBhbmQgb25seSB0YWtlIGFjdGlvblxuICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgY3ljbGUuIFNlZSBiZWxvdyBmb3IgZGV0YWlscyBvbiB0aGUgY2hlY2stY29sbGVjdG9yIHBhdHRlcm4uXG4gICAgICB0aGlzLmNoZWNrQ29sbGVjdG9yLnBpcGUoZGVib3VuY2VUaW1lKDApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmFsaWduQ29udGVudCgpO1xuICAgICAgICB0aGlzLnNob3VsZFJlYWxpZ24gPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMudmlldykge1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSwgJ29wYWNpdHknLCAnMScpO1xuICAgICAgICAgIHRoaXMuc21hcnRPcGVuU2VydmljZS5wb3BvdmVyVmlzaWJsZUVtaXQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucmVtb3ZlQ29udGVudCgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YiA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICAvKipcbiAgICogVE9ETyhtYXR0KTogaW52ZXN0aWdhdGUgd2h5IERlYnVnRWxlbWVudCByZXRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSBub2RlcyBhbmQgY2F1c2VzIGEgbWVtb3J5IGxlYWsuXG4gICAqIEEgbm90ZSBhYm91dCB0aGUgdXNlIG9mIGFwcGVuZENoaWxkL3JlbW92ZUNoaWxkXG4gICAqIFRoZSBEZWJ1Z0VsZW1lbnQgaXMga2VlcGluZyBhIHJlZmVyZW5jZSB0byB0aGUgZGV0YWNoZWQgbm9kZSBhbmQgaXRzIHVuY2xlYXIgd2h5LlxuICAgKiBUaGlzIGRvZXMgd2FycmFudCBmdXJ0aGVyIGludmVzdGlnYXRpb24uIEJ1dCwgc2luY2UgaXQgZG9lc24ndCBoYXBwZW4gaW4gcHJvZHVjdGlvbiBtb2RlXG4gICAqIGl0IGlzIGEgbG93IHByaW9yaXR5IGlzc3VlIGZvciBub3cuXG4gICAqL1xuICBwcml2YXRlIGFkZENvbnRlbnQoKSB7XG4gICAgLy8gQ3JlYXRlIHRoZSB2aWV3IGNvbnRhaW5lclxuICAgIHRoaXMudmlldyA9IHRoaXMuY29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlKTtcbiAgICBjb25zdCBbcm9vdE5vZGVdID0gdGhpcy52aWV3LnJvb3ROb2RlcztcbiAgICB0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5jb250ZW50UmVmID0gcm9vdE5vZGU7IC8vIFNvIHdlIGtub3cgd2hlcmUvd2hhdCB0byBzZXQgY2xvc2UgZm9jdXMgb25cbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHJvb3ROb2RlLCAnY2xyLXBvcG92ZXItY29udGVudCcpO1xuICAgIC8vIFJlc2V0IHRvIHRoZSBiZWdpbmluZyBvZiB0aGUgZG9jdW1lbnQgdG8gYmUgYXZhaWxhYmxlIGZvciBzaXppbmcvcG9zaXRpb25pbmcgY2FsY3VsYXRpb25zLlxuICAgIC8vIElmIHdlIGFkZCBuZXcgY29udGVudCB0byB0aGUgYm90dG9tIGl0IHRyaWdnZXJzIGNoYW5nZXMgaW4gdGhlIGxheW91dCB0aGF0IG1heSBsZWFkIHRvIGZhbHNlIGFuY2hvclxuICAgIC8vIGNvb3JkaW5hdGVzIHZhbHVlcy5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHJvb3ROb2RlLCAndG9wJywgJzBweCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocm9vdE5vZGUsICdsZWZ0JywgJzBweCcpO1xuICAgIC8vIFdlIG5lZWQgdG8gaGlkZSBpdCBkdXJpbmcgdGhlIGNhbGN1bGF0aW9uIHBoYXNlLCB3aGlsZSBpdCdzIG5vdCB5ZXQgZmluYWxseSBwb3NpdGlvbmVkLlxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocm9vdE5vZGUsICdvcGFjaXR5JywgJzAnKTtcbiAgICB0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXJGbiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHJvb3ROb2RlLCAnY2xpY2snLCBldmVudCA9PiB7XG4gICAgICB0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3BlbkV2ZW50ID0gZXZlbnQ7XG4gICAgfSk7XG4gICAgdGhpcy52aWV3LnJvb3ROb2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmJvZHksIG5vZGUpO1xuICAgIH0pO1xuICAgIC8vIE1hcmsgZm9yIHJlYWxpbmdtZW50IG9uIHRoZSBuZXh0IGNvbnRlbnQtY2hlY2sgY3ljbGUuXG4gICAgdGhpcy5zaG91bGRSZWFsaWduID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQ29udGVudCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmlldykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZW1vdmVDbGlja0xpc3RlbmVyRm4pIHtcbiAgICAgIHRoaXMucmVtb3ZlQ2xpY2tMaXN0ZW5lckZuKCk7XG4gICAgICB0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXJGbiA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMudmlldy5yb290Tm9kZXMuZm9yRWFjaChub2RlID0+IHRoaXMucmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5kb2N1bWVudC5ib2R5LCBub2RlKSk7XG4gICAgdGhpcy5jb250YWluZXIuY2xlYXIoKTtcbiAgICBkZWxldGUgdGhpcy52aWV3O1xuICAgIHRoaXMuc21hcnRPcGVuU2VydmljZS5wb3BvdmVyVmlzaWJsZUVtaXQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBhbGlnbkNvbnRlbnQoKSB7XG4gICAgaWYgKCF0aGlzLnZpZXcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwb3NpdGlvbkNvb3JkcyA9IHRoaXMuc21hcnRQb3NpdGlvblNlcnZpY2UuYWxpZ25Db250ZW50KHRoaXMudmlldy5yb290Tm9kZXNbMF0pO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSwgJ3RvcCcsIGAke3Bvc2l0aW9uQ29vcmRzLnlPZmZzZXR9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudmlldy5yb290Tm9kZXNbMF0sICdsZWZ0JywgYCR7cG9zaXRpb25Db29yZHMueE9mZnNldH1weGApO1xuICAgIHRoaXMuc21hcnRPcGVuU2VydmljZS5wb3BvdmVyQWxpZ25lZEVtaXQodGhpcy52aWV3LnJvb3ROb2Rlc1swXSk7XG4gIH1cbn1cbiJdfQ==
@@ -80,6 +80,13 @@ export class ClrPopoverPositionService {
80
80
  // When primary axis is HORIZONTAL and there are two viewport violations
81
81
  this.handleHorizontalAxisTwoViolations(errorSum);
82
82
  }
83
+ /**
84
+ * Adjusts popover position based on scroll value by adding the negative 'top' value of currentContentCoords to yOffset for proper alignment.
85
+ * - The negative value means that the 'top' of the content is scrolled out of view at the top of the viewport.
86
+ */
87
+ if (this.currentContentCoords.top < 0) {
88
+ this.contentOffsets.yOffset += Math.abs(this.currentContentCoords.top);
89
+ }
83
90
  return this.contentOffsets;
84
91
  }
85
92
  handleVerticalAxisOneViolation(errorSum) {
@@ -211,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
211
218
  type: Inject,
212
219
  args: [PLATFORM_ID]
213
220
  }] }]; } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJN0MsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFJakgsTUFBTSxPQUFPLHlCQUF5QjtJQVNwQyxZQUFvQixZQUFxQyxFQUE4QixVQUFlO1FBQWxGLGlCQUFZLEdBQVosWUFBWSxDQUF5QjtRQUE4QixlQUFVLEdBQVYsVUFBVSxDQUFLO1FBRjlGLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUczQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBb0I7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN2QyxtQ0FBbUM7WUFDbkMsZ0ZBQWdGO1lBQ2hGLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsT0FB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QUNQO1lBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ1AsTUFBTTthQUNQO1NBQ0Y7SUFDSCxDQUFDOztzSEExT1UseUJBQXlCLHlEQVMrQixXQUFXOzBIQVRuRSx5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVTs7MEJBVW1ELE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDbHJBeGlzIH0gZnJvbSAnLi4vZW51bXMvYXhpcy5lbnVtJztcbmltcG9ydCB7IENsclZpZXdwb3J0VmlvbGF0aW9uIH0gZnJvbSAnLi4vZW51bXMvdmlld3BvcnQtdmlvbGF0aW9uLmVudW0nO1xuaW1wb3J0IHsgQ2xyUG9wb3ZlckNvbnRlbnRPZmZzZXQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvcG92ZXItY29udGVudC1vZmZzZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENsclBvcG92ZXJQb3NpdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvcG9wb3Zlci1wb3NpdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgYWxpZ24sIGZsaXBTaWRlcywgZmxpcFNpZGVzQW5kTnVkZ2VDb250ZW50LCBudWRnZUNvbnRlbnQsIHRlc3RWaXNpYmlsaXR5IH0gZnJvbSAnLi4vcG9zaXRpb24tb3BlcmF0b3JzJztcbmltcG9ydCB7IENsclBvcG92ZXJFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi9wb3BvdmVyLWV2ZW50cy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENsclBvcG92ZXJQb3NpdGlvblNlcnZpY2Uge1xuICBwb3NpdGlvbjogQ2xyUG9wb3ZlclBvc2l0aW9uO1xuICBzaG91bGRSZWFsaWduOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gIHByaXZhdGUgY3VycmVudEFuY2hvckNvb3JkczogQ2xpZW50UmVjdDtcbiAgcHJpdmF0ZSBjdXJyZW50Q29udGVudENvb3JkczogQ2xpZW50UmVjdDtcbiAgcHJpdmF0ZSBjb250ZW50T2Zmc2V0czogQ2xyUG9wb3ZlckNvbnRlbnRPZmZzZXQ7XG4gIHByaXZhdGUgX3Nob3VsZFJlYWxpZ24gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBDbHJQb3BvdmVyRXZlbnRzU2VydmljZSwgQEluamVjdChQTEFURk9STV9JRCkgcHVibGljIHBsYXRmb3JtSWQ6IGFueSkge1xuICAgIHRoaXMuc2hvdWxkUmVhbGlnbiA9IHRoaXMuX3Nob3VsZFJlYWxpZ24uYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICByZWFsaWduKCkge1xuICAgIHRoaXMuX3Nob3VsZFJlYWxpZ24ubmV4dCgpO1xuICB9XG5cbiAgYWxpZ25Db250ZW50KGNvbnRlbnQ6IEhUTUxFbGVtZW50KTogQ2xyUG9wb3ZlckNvbnRlbnRPZmZzZXQge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgLy8gT25seSBwb3NpdGlvbiB3aGVuIGluIGEgYnJvd3Nlci5cbiAgICAgIC8vIERlZmF1bHQgdG8gdGhlIGJyb3dzZXIgb3JpZ2luIGFuZCBwcmV2ZW50IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBmcm9tIHJ1bm5pbmcuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB4T2Zmc2V0OiAwLFxuICAgICAgICB5T2Zmc2V0OiAwLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMgPSB0aGlzLmV2ZW50U2VydmljZS5hbmNob3JCdXR0b25SZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzID0gY29udGVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24odGhpcy5wb3NpdGlvbiwgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLCB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTtcblxuICAgIGNvbnN0IHZpc2liaWxpdHlWaW9sYXRpb25zOiBDbHJWaWV3cG9ydFZpb2xhdGlvbltdID0gdGVzdFZpc2liaWxpdHkodGhpcy5jb250ZW50T2Zmc2V0cywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlIHRoZSBzdW0gb2Ygdmlld3BvcnQgZXJyb3JzLiBUaGlzIGNhbGN1bGF0aW9uIGlzIHVzZWQgYmVsb3cgd2l0aCB0aGUgcHJvdmlkZWQgQXhpcyBpbiB0aGUgZ2l2ZW5cbiAgICAgKiBDbHJQb3BvdmVyUG9zaXRpb24uIEl0cyB3b3J0aCBwdXR0aW5nIHRoZSBDbHJWaWV3cG9ydFZpb2xhdGlvbiBlbnVtIHZhbHVlcyBoZXJlOlxuICAgICAqXG4gICAgICogICBCT1RUT00gPSAwLFxuICAgICAqICAgTEVGVCA9IDEsXG4gICAgICogICBSSUdIVCA9IDIsXG4gICAgICogICBUT1AgPSAzLFxuICAgICAqXG4gICAgICogICBTbywgdGhpcy52aXNpYmlsaXR5VmlvbGF0aW9ucy5sZW5ndGggdGVsbHMgdXMgaG93IG1hbnkgc2lkZXMgb2YgdGhlIHZpZXdwb3J0IHRoYXQgdGhlIHBvcG92ZXIgY29udGVudCB3YXNcbiAgICAgKiAgIGNsaXBwZWQgb24uIFdlIGNhbiBvbmx5IGhlbHAgd2hlbiB0aGUgY29udGVudCBoYXMgYW4gaXNzdWUgb24gb25lIG9yIHR3byBzaWRlcy5cbiAgICAgKiAgIGVycm9yU3VtIGlzIGNhbGN1bGF0ZWQgdG8gZGV0ZXJtaW5lIF9ob3dfIHRvIGNoYW5nZSB0aGUgcG9zaXRpb24uIExvb2tpbmcgYXQgYm90aCB0aGUgYXhpcyBhbmQgdGhlIG51bWJlclxuICAgICAqICAgb2YgdmlvbGF0aW9ucyBJIGNhbiB1c2UgdGhlIGVycm9yU3VtIHRvIGRldGVybWluZSBob3cgdG8gdHJhbnNmb3JtIHRoZSBwb3NpdGlvbiAob24gdGhlIGZseSkgYW5kIGFkanVzdFxuICAgICAqICAgd2hlcmUgaXQgY2FuIGJlIGltcHJvdmVkLlxuICAgICAqXG4gICAgICogICBOb3RlLCBtb3JlIHRoYW4gMyB2aWV3cG9ydCB2aW9sYXRpb25zIGFuZCB0aGVyZSBpc24ndCBhbnl0aGluZyB3ZSBjYW4gZG8gdG8gaGVscC4gQWxzbyB3aGVuIHRoZXJlIGFyZSB0d29cbiAgICAgKiAgIHZpb2xhdGlvbnMsIHdlIGNhbid0IGhlbHAgaWYgdGhlIHZpb2xhdGlvbnMgYXJlIFRPUCtCT1RUT00gfHwgTEVGVCtSSUdIVCA9PiBUaGVyZSBpcyBubyB0cmFuc2Zvcm1hdGlvbiB3ZVxuICAgICAqICAgY2FuIG1ha2UgdG8gdGhlIHBvc3Rpb24gdGhhdCB3aWxsIGhlbHAuXG4gICAgICpcbiAgICAgKiAgIFNvbWUgZXhhbXBsZXM6XG4gICAgICogICBUaGVyZSBpcyBvbmx5IG9uZSBlcnJvciBhbmQgUHJpbWFyeSBheGlzIGlzIFZFUlRJQ0FMXG4gICAgICogICAtIHRoaXMuaGFuZGxlVmVydGljYWxBeGlzT25lVmlvbGF0aW9uIGhhcyBhIHN3aXRjaCB0aGF0IHdpbGwgdXNlIHRoZSBlcnJvciBzdW0gdG8gYXBwbHkgdGhlIGNvcnJlY3RcbiAgICAgKiAgIHRyYW5zZm9ybSB0byB0aGUgcG9zdGlvbiBiYXNlZCBvbiB0aGUgcmVkdWN0aW9uIG9mIHZpc2liaWxpdHlWaW9sYXRpb25zLlxuICAgICAqXG4gICAgICogICBUaGVyZSBhcmUgdHdvIGVycm9ycyBhbmQgUHJpbWFyeSBheGlzIGlzIEhPUklaT05UQUxcbiAgICAgKiAgIC0gaGFuZGxlSG9yaXpvbnRhbEF4aXNUd29WaW9sYXRpb25zIGhhcyBhIHN3aXRjaCB0aGF0IHVzZXMgdGhlIGVycm9yIHN1bSB0byBhcHBseSBib3RoIHRyYW5zZm9ybXMgbmVlZGVkIHRvXG4gICAgICogICBpbXByb3ZlIHRoZSBjb250ZW50IHBvc2l0aW9uIGJhc2VkIG9uIHRoZSByZWR1Y3Rpb24gb2YgdmlzaWJpbGl0eVZpb2xhdGlvbnMuXG4gICAgICovXG5cbiAgICBjb25zdCBlcnJvclN1bSA9IHZpc2liaWxpdHlWaW9sYXRpb25zLnJlZHVjZSgoY291bnQsIGN1cnJlbnQpID0+IHtcbiAgICAgIHJldHVybiBjb3VudCArIGN1cnJlbnQ7XG4gICAgfSwgMCk7XG5cbiAgICBpZiAodmlzaWJpbGl0eVZpb2xhdGlvbnMubGVuZ3RoID09PSAxICYmIHRoaXMucG9zaXRpb24uYXhpcyA9PT0gQ2xyQXhpcy5WRVJUSUNBTCkge1xuICAgICAgLy8gV2hlbiBwcmltYXJ5IGF4aXMgaXMgVkVSVElDQUwgYW5kIHRoZXJlIGlzIG9uZSB2aWV3cG9ydCB2aW9sYXRpb25cbiAgICAgIHRoaXMuaGFuZGxlVmVydGljYWxBeGlzT25lVmlvbGF0aW9uKGVycm9yU3VtKTtcbiAgICB9IGVsc2UgaWYgKHZpc2liaWxpdHlWaW9sYXRpb25zLmxlbmd0aCA9PT0gMSAmJiB0aGlzLnBvc2l0aW9uLmF4aXMgPT09IENsckF4aXMuSE9SSVpPTlRBTCkge1xuICAgICAgLy8gV2hlbiBwcmltYXJ5IGF4aXMgaXMgSE9SSVpPTlRBTCBhbmQgdGhlcmUgaXMgb25lIHZpZXdwb3J0IHZpb2xhdGlvblxuICAgICAgdGhpcy5oYW5kbGVIb3Jpem9udGFsQXhpc09uZVZpb2xhdGlvbihlcnJvclN1bSk7XG4gICAgfSBlbHNlIGlmICh2aXNpYmlsaXR5VmlvbGF0aW9ucy5sZW5ndGggPT09IDIgJiYgdGhpcy5wb3NpdGlvbi5heGlzID09PSBDbHJBeGlzLlZFUlRJQ0FMKSB7XG4gICAgICAvLyBXaGVuIHByaW1hcnkgYXhpcyBpcyBWRVJUSUNBTCBhbmQgdGhlcmUgYXJlIHR3byB2aWV3cG9ydCB2aW9sYXRpb25zXG4gICAgICB0aGlzLmhhbmRsZVZlcnRpY2FsQXhpc1R3b1Zpb2xhdGlvbnMoZXJyb3JTdW0pO1xuICAgIH0gZWxzZSBpZiAodmlzaWJpbGl0eVZpb2xhdGlvbnMubGVuZ3RoID09PSAyICYmIHRoaXMucG9zaXRpb24uYXhpcyA9PT0gQ2xyQXhpcy5IT1JJWk9OVEFMKSB7XG4gICAgICAvLyBXaGVuIHByaW1hcnkgYXhpcyBpcyBIT1JJWk9OVEFMIGFuZCB0aGVyZSBhcmUgdHdvIHZpZXdwb3J0IHZpb2xhdGlvbnNcbiAgICAgIHRoaXMuaGFuZGxlSG9yaXpvbnRhbEF4aXNUd29WaW9sYXRpb25zKGVycm9yU3VtKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb250ZW50T2Zmc2V0cztcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVmVydGljYWxBeGlzT25lVmlvbGF0aW9uKGVycm9yU3VtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGVycm9yU3VtKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gQk9UVE9NKDApIG9yIFRPUCgzKSBhcmUgcHJpbWFyeSB2aW9sYXRpb25zIGFuZCB3ZSBjYW4ganVzdCBmbGlwIHNpZGVzXG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihmbGlwU2lkZXModGhpcy5wb3NpdGlvbiksIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAxOiB7XG4gICAgICAgIC8vIExFRlQoMSkgaXMgc2Vjb25kYXJ5IGFuZCBuZWVkcyB0byBudWRnZSBjb250ZW50IHJpZ2h0XG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbih0aGlzLnBvc2l0aW9uLCB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBFdmVuIHdpdGggdGhlIG51ZGdlIHdlIHN0aWxsIGhhdmUgYSBwcm9ibGVtLiBXZSBuZWVkIHRvIGNoZWNrIGlmIHRoZSBjb250ZW50IGlzIGdvaW5nIHRvIGJlIGNsaXBwZWRcbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRPZmZzZXRzLnhPZmZzZXQgPCAwKSB7XG4gICAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cy54T2Zmc2V0ID0gMTA7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgMjoge1xuICAgICAgICAvLyBSSUdIVCgyKSBpcyBzZWNvbmRhcnkgYW5kICBuZWVkcyB0byBudWRnZSBjb250ZW50IGxlZnRcbiAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cyA9IGFsaWduKFxuICAgICAgICAgIG51ZGdlQ29udGVudCh0aGlzLnBvc2l0aW9uLCB0cnVlKSxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsXG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVWZXJ0aWNhbEF4aXNUd29WaW9sYXRpb25zKGVycm9yU3VtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGVycm9yU3VtKSB7XG4gICAgICAvLyBXZSBrbm93IHRoZXJlIGFyZSB0d28gdmlvbGF0aW9ucy4gV2UgY2FuIHVzZSB0aGUgZXJyb3JTdW0gdG8gZGV0ZXJtaW5lIHdoaWNoIGNvbWJpbmF0aW9uIG9mIHNpZGVzIHdlcmVcbiAgICAgIC8vIHZpb2xhdGVkIGFuZCBoYW5kbGUgYXBwcm9wcmlhdGVseS5cbiAgICAgIGNhc2UgNToge1xuICAgICAgICAvLyBUT1AoMykrUklHSFQoMikgaXMgY2FzZSA1LiBXZSBuZWVkIHRvIGZsaXAgc2lkZXMgYW5kIG51ZGdlIHRoZSBjb250ZW50IHRvIHRoZSBsZWZ0XG4gICAgICAgIGNvbnN0IGZsaXBBbmROdWRnZUxlZnQgPSBmbGlwU2lkZXNBbmROdWRnZUNvbnRlbnQoZmxpcFNpZGVzLCBudWRnZUNvbnRlbnQsIHRydWUpO1xuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oXG4gICAgICAgICAgZmxpcEFuZE51ZGdlTGVmdCh0aGlzLnBvc2l0aW9uKSxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsXG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgNDoge1xuICAgICAgICAvL1RPUCgzKStMRUZUKDEpIGlzIGNhc2UgNCwgd2UgbmVlZCB0byBmbGlwIHNpZGVzIGFuZCBudWRnZSBjb250ZW50IHRvIHRoZSByaWdodFxuICAgICAgICBjb25zdCBmbGlwQW5kTnVkZ2VSaWdodCA9IGZsaXBTaWRlc0FuZE51ZGdlQ29udGVudChmbGlwU2lkZXMsIG51ZGdlQ29udGVudCwgZmFsc2UpO1xuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oXG4gICAgICAgICAgZmxpcEFuZE51ZGdlUmlnaHQodGhpcy5wb3NpdGlvbiksXG4gICAgICAgICAgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLFxuICAgICAgICAgIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gVE9QKDMpK0JPVFRPTSgwKSB8fCBsZWZ0KDEpK1JJR0hUKDIpIGlzIGNhc2UgMy4gVGhlcmUgaXMgbm90aGluZyB3ZSBjYW4gZG8gcG9zaXRpb24gd2lzZSB0byBpbXByb3ZlIHRoZVxuICAgICAgICAvLyBwbGFjZW1lbnQgZm9yIHRoaXMgY29udGVudC5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDI6IHtcbiAgICAgICAgLy8gQk9UVE9NKDApK1JJR0hUKDIpIGlzIGNhc2UgMi4gV2UgbmVlZCB0byBmbGlwIHNpZGVzIGFuZCBudWRnZSB0aGUgY29udGVudCB0byB0aGUgbGVmdFxuICAgICAgICBjb25zdCBmbGlwQW5kTnVkZ2VMZWZ0ID0gZmxpcFNpZGVzQW5kTnVkZ2VDb250ZW50KGZsaXBTaWRlcywgbnVkZ2VDb250ZW50LCB0cnVlKTtcbiAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cyA9IGFsaWduKFxuICAgICAgICAgIGZsaXBBbmROdWRnZUxlZnQodGhpcy5wb3NpdGlvbiksXG4gICAgICAgICAgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLFxuICAgICAgICAgIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDE6IHtcbiAgICAgICAgLy8gQk9UVE9NKDApK0xFRlQoMSkgaXMgY2FzZSAxLiBXZSBuZWVkIHRvIGZsaXAgc2lkZXMgYW5kIG51ZGdlIHRvIHRoZSByaWdodFxuICAgICAgICBjb25zdCBmbGlwQW5kTnVkZ2VSaWdodCA9IGZsaXBTaWRlc0FuZE51ZGdlQ29udGVudChmbGlwU2lkZXMsIG51ZGdlQ29udGVudCwgZmFsc2UpO1xuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oXG4gICAgICAgICAgZmxpcEFuZE51ZGdlUmlnaHQodGhpcy5wb3NpdGlvbiksXG4gICAgICAgICAgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLFxuICAgICAgICAgIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSG9yaXpvbnRhbEF4aXNPbmVWaW9sYXRpb24oZXJyb3JTdW06IG51bWJlcik6IHZvaWQge1xuICAgIHN3aXRjaCAoZXJyb3JTdW0pIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgIGNhc2UgMjoge1xuICAgICAgICAvLyBMRUZUKDEpIGFuZCBSSUdIVCgyKSBhcmUgcHJpbWFyeSB2aW9sYXRpb25zIHNvIHdlIGNhbiBmbGlwIHNpZGVzXG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihmbGlwU2lkZXModGhpcy5wb3NpdGlvbiksIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAwOiB7XG4gICAgICAgIC8vIEJPVFRPTSgwKSBpcyBhIHNlY29uZGFyeSB2aW9sYXRpb24gYW5kIHdlIG5lZWQgdG8gbnVkZ2UgY29udGVudCB1cFxuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oXG4gICAgICAgICAgbnVkZ2VDb250ZW50KHRoaXMucG9zaXRpb24sIHRydWUpLFxuICAgICAgICAgIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcyxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAzOiB7XG4gICAgICAgIC8vIFRPUCgzKSBpcyBhIHNlY29uZGFyeSB2aW9sYXRpb24gYW5kIHdlIG5lZWQgdG8gbnVkZ2UgY29udGVudCBkb3duXG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihudWRnZUNvbnRlbnQodGhpcy5wb3NpdGlvbiksIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUhvcml6b250YWxBeGlzVHdvVmlvbGF0aW9ucyhlcnJvclN1bTogbnVtYmVyKTogdm9pZCB7XG4gICAgc3dpdGNoIChlcnJvclN1bSkge1xuICAgICAgY2FzZSA1OlxuICAgICAgY2FzZSA0OiB7XG4gICAgICAgIC8vIFRPUCgzKStMRUZUKDEpIGlzIGNhc2UgNC5cbiAgICAgICAgLy8gVE9QKDMpK1JJR0hUKDIpIGlzIGNhc2UgNS5cbiAgICAgICAgLy8gSW4gYm90aCBvZiB0aGVzZSBjYXNlcyB3ZSBuZWVkIHRvIGZsaXAgc2lkZXMgYW5kIG51ZGdlIGNvbnRlbnQgZG93blxuICAgICAgICBjb25zdCBmbGlwQW5kTnVkZ2VEb3duID0gZmxpcFNpZGVzQW5kTnVkZ2VDb250ZW50KGZsaXBTaWRlcywgbnVkZ2VDb250ZW50LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihcbiAgICAgICAgICBmbGlwQW5kTnVkZ2VEb3duKHRoaXMucG9zaXRpb24pLFxuICAgICAgICAgIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcyxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAzOiB7XG4gICAgICAgIC8vIFRPUCgzKStCT1RUT00oMCkgfHwgbGVmdCgxKStSSUdIVCgyKSBpcyBjYXNlIDMuIFRoZXJlIGlzIG5vdGhpbmcgd2UgY2FuIGRvIHBvc2l0aW9uIHdpc2UgdG8gaW1wcm92ZSB0aGVcbiAgICAgICAgLy8gcGxhY2VtZW50IGZvciB0aGlzIGNvbnRlbnQuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAyOlxuICAgICAgY2FzZSAxOiB7XG4gICAgICAgIC8vIEJPVFRPTSgwKStSSUdIVCgyKSBpcyBjYXNlIDIuXG4gICAgICAgIC8vIEJPVFRPTSgwKStMRUZUKDEpIGlzIGNhc2UgMS5cbiAgICAgICAgLy8gSW4gYm90aCBjYXNlcyB3ZSAgbmVlZCB0byBmbGlwIHNpZGVzIGFuZCBudWRnZSBjb250ZW50IHVwXG4gICAgICAgIGNvbnN0IGZsaXBBbmROdWRnZVVwID0gZmxpcFNpZGVzQW5kTnVkZ2VDb250ZW50KGZsaXBTaWRlcywgbnVkZ2VDb250ZW50LCB0cnVlKTtcbiAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cyA9IGFsaWduKGZsaXBBbmROdWRnZVVwKHRoaXMucG9zaXRpb24pLCB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvcG9wb3Zlci9wcm92aWRlcnMvcG9wb3Zlci1wb3NpdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJN0MsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFJakgsTUFBTSxPQUFPLHlCQUF5QjtJQVNwQyxZQUFvQixZQUFxQyxFQUE4QixVQUFlO1FBQWxGLGlCQUFZLEdBQVosWUFBWSxDQUF5QjtRQUE4QixlQUFVLEdBQVYsVUFBVSxDQUFLO1FBRjlGLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUczQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUQsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBb0I7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN2QyxtQ0FBbUM7WUFDbkMsZ0ZBQWdGO1lBQ2hGLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsT0FB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QUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDL0UsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ2hILE1BQU07YUFDUDtZQUNELE9BQU8sQ0FBQyxDQUFDO2dCQUNQLE1BQU07YUFDUDtTQUNGO0lBQ0gsQ0FBQzs7c0hBbFBVLHlCQUF5Qix5REFTK0IsV0FBVzswSEFUbkUseUJBQXlCOzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVU7OzBCQVVtRCxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ2xyQXhpcyB9IGZyb20gJy4uL2VudW1zL2F4aXMuZW51bSc7XG5pbXBvcnQgeyBDbHJWaWV3cG9ydFZpb2xhdGlvbiB9IGZyb20gJy4uL2VudW1zL3ZpZXdwb3J0LXZpb2xhdGlvbi5lbnVtJztcbmltcG9ydCB7IENsclBvcG92ZXJDb250ZW50T2Zmc2V0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb3BvdmVyLWNvbnRlbnQtb2Zmc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyUG9zaXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvcG92ZXItcG9zaXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IGFsaWduLCBmbGlwU2lkZXMsIGZsaXBTaWRlc0FuZE51ZGdlQ29udGVudCwgbnVkZ2VDb250ZW50LCB0ZXN0VmlzaWJpbGl0eSB9IGZyb20gJy4uL3Bvc2l0aW9uLW9wZXJhdG9ycyc7XG5pbXBvcnQgeyBDbHJQb3BvdmVyRXZlbnRzU2VydmljZSB9IGZyb20gJy4vcG9wb3Zlci1ldmVudHMuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDbHJQb3BvdmVyUG9zaXRpb25TZXJ2aWNlIHtcbiAgcG9zaXRpb246IENsclBvcG92ZXJQb3NpdGlvbjtcbiAgc2hvdWxkUmVhbGlnbjogT2JzZXJ2YWJsZTx2b2lkPjtcblxuICBwcml2YXRlIGN1cnJlbnRBbmNob3JDb29yZHM6IENsaWVudFJlY3Q7XG4gIHByaXZhdGUgY3VycmVudENvbnRlbnRDb29yZHM6IENsaWVudFJlY3Q7XG4gIHByaXZhdGUgY29udGVudE9mZnNldHM6IENsclBvcG92ZXJDb250ZW50T2Zmc2V0O1xuICBwcml2YXRlIF9zaG91bGRSZWFsaWduID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGV2ZW50U2VydmljZTogQ2xyUG9wb3ZlckV2ZW50c1NlcnZpY2UsIEBJbmplY3QoUExBVEZPUk1fSUQpIHB1YmxpYyBwbGF0Zm9ybUlkOiBhbnkpIHtcbiAgICB0aGlzLnNob3VsZFJlYWxpZ24gPSB0aGlzLl9zaG91bGRSZWFsaWduLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcmVhbGlnbigpIHtcbiAgICB0aGlzLl9zaG91bGRSZWFsaWduLm5leHQoKTtcbiAgfVxuXG4gIGFsaWduQ29udGVudChjb250ZW50OiBIVE1MRWxlbWVudCk6IENsclBvcG92ZXJDb250ZW50T2Zmc2V0IHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIC8vIE9ubHkgcG9zaXRpb24gd2hlbiBpbiBhIGJyb3dzZXIuXG4gICAgICAvLyBEZWZhdWx0IHRvIHRoZSBicm93c2VyIG9yaWdpbiBhbmQgcHJldmVudCBnZXRCb3VuZGluZ0NsaWVudFJlY3QgZnJvbSBydW5uaW5nLlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgeE9mZnNldDogMCxcbiAgICAgICAgeU9mZnNldDogMCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzID0gdGhpcy5ldmVudFNlcnZpY2UuYW5jaG9yQnV0dG9uUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5jdXJyZW50Q29udGVudENvb3JkcyA9IGNvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5jb250ZW50T2Zmc2V0cyA9IGFsaWduKHRoaXMucG9zaXRpb24sIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG5cbiAgICBjb25zdCB2aXNpYmlsaXR5VmlvbGF0aW9uczogQ2xyVmlld3BvcnRWaW9sYXRpb25bXSA9IHRlc3RWaXNpYmlsaXR5KHRoaXMuY29udGVudE9mZnNldHMsIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO1xuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZSB0aGUgc3VtIG9mIHZpZXdwb3J0IGVycm9ycy4gVGhpcyBjYWxjdWxhdGlvbiBpcyB1c2VkIGJlbG93IHdpdGggdGhlIHByb3ZpZGVkIEF4aXMgaW4gdGhlIGdpdmVuXG4gICAgICogQ2xyUG9wb3ZlclBvc2l0aW9uLiBJdHMgd29ydGggcHV0dGluZyB0aGUgQ2xyVmlld3BvcnRWaW9sYXRpb24gZW51bSB2YWx1ZXMgaGVyZTpcbiAgICAgKlxuICAgICAqICAgQk9UVE9NID0gMCxcbiAgICAgKiAgIExFRlQgPSAxLFxuICAgICAqICAgUklHSFQgPSAyLFxuICAgICAqICAgVE9QID0gMyxcbiAgICAgKlxuICAgICAqICAgU28sIHRoaXMudmlzaWJpbGl0eVZpb2xhdGlvbnMubGVuZ3RoIHRlbGxzIHVzIGhvdyBtYW55IHNpZGVzIG9mIHRoZSB2aWV3cG9ydCB0aGF0IHRoZSBwb3BvdmVyIGNvbnRlbnQgd2FzXG4gICAgICogICBjbGlwcGVkIG9uLiBXZSBjYW4gb25seSBoZWxwIHdoZW4gdGhlIGNvbnRlbnQgaGFzIGFuIGlzc3VlIG9uIG9uZSBvciB0d28gc2lkZXMuXG4gICAgICogICBlcnJvclN1bSBpcyBjYWxjdWxhdGVkIHRvIGRldGVybWluZSBfaG93XyB0byBjaGFuZ2UgdGhlIHBvc2l0aW9uLiBMb29raW5nIGF0IGJvdGggdGhlIGF4aXMgYW5kIHRoZSBudW1iZXJcbiAgICAgKiAgIG9mIHZpb2xhdGlvbnMgSSBjYW4gdXNlIHRoZSBlcnJvclN1bSB0byBkZXRlcm1pbmUgaG93IHRvIHRyYW5zZm9ybSB0aGUgcG9zaXRpb24gKG9uIHRoZSBmbHkpIGFuZCBhZGp1c3RcbiAgICAgKiAgIHdoZXJlIGl0IGNhbiBiZSBpbXByb3ZlZC5cbiAgICAgKlxuICAgICAqICAgTm90ZSwgbW9yZSB0aGFuIDMgdmlld3BvcnQgdmlvbGF0aW9ucyBhbmQgdGhlcmUgaXNuJ3QgYW55dGhpbmcgd2UgY2FuIGRvIHRvIGhlbHAuIEFsc28gd2hlbiB0aGVyZSBhcmUgdHdvXG4gICAgICogICB2aW9sYXRpb25zLCB3ZSBjYW4ndCBoZWxwIGlmIHRoZSB2aW9sYXRpb25zIGFyZSBUT1ArQk9UVE9NIHx8IExFRlQrUklHSFQgPT4gVGhlcmUgaXMgbm8gdHJhbnNmb3JtYXRpb24gd2VcbiAgICAgKiAgIGNhbiBtYWtlIHRvIHRoZSBwb3N0aW9uIHRoYXQgd2lsbCBoZWxwLlxuICAgICAqXG4gICAgICogICBTb21lIGV4YW1wbGVzOlxuICAgICAqICAgVGhlcmUgaXMgb25seSBvbmUgZXJyb3IgYW5kIFByaW1hcnkgYXhpcyBpcyBWRVJUSUNBTFxuICAgICAqICAgLSB0aGlzLmhhbmRsZVZlcnRpY2FsQXhpc09uZVZpb2xhdGlvbiBoYXMgYSBzd2l0Y2ggdGhhdCB3aWxsIHVzZSB0aGUgZXJyb3Igc3VtIHRvIGFwcGx5IHRoZSBjb3JyZWN0XG4gICAgICogICB0cmFuc2Zvcm0gdG8gdGhlIHBvc3Rpb24gYmFzZWQgb24gdGhlIHJlZHVjdGlvbiBvZiB2aXNpYmlsaXR5VmlvbGF0aW9ucy5cbiAgICAgKlxuICAgICAqICAgVGhlcmUgYXJlIHR3byBlcnJvcnMgYW5kIFByaW1hcnkgYXhpcyBpcyBIT1JJWk9OVEFMXG4gICAgICogICAtIGhhbmRsZUhvcml6b250YWxBeGlzVHdvVmlvbGF0aW9ucyBoYXMgYSBzd2l0Y2ggdGhhdCB1c2VzIHRoZSBlcnJvciBzdW0gdG8gYXBwbHkgYm90aCB0cmFuc2Zvcm1zIG5lZWRlZCB0b1xuICAgICAqICAgaW1wcm92ZSB0aGUgY29udGVudCBwb3NpdGlvbiBiYXNlZCBvbiB0aGUgcmVkdWN0aW9uIG9mIHZpc2liaWxpdHlWaW9sYXRpb25zLlxuICAgICAqL1xuXG4gICAgY29uc3QgZXJyb3JTdW0gPSB2aXNpYmlsaXR5VmlvbGF0aW9ucy5yZWR1Y2UoKGNvdW50LCBjdXJyZW50KSA9PiB7XG4gICAgICByZXR1cm4gY291bnQgKyBjdXJyZW50O1xuICAgIH0sIDApO1xuXG4gICAgaWYgKHZpc2liaWxpdHlWaW9sYXRpb25zLmxlbmd0aCA9PT0gMSAmJiB0aGlzLnBvc2l0aW9uLmF4aXMgPT09IENsckF4aXMuVkVSVElDQUwpIHtcbiAgICAgIC8vIFdoZW4gcHJpbWFyeSBheGlzIGlzIFZFUlRJQ0FMIGFuZCB0aGVyZSBpcyBvbmUgdmlld3BvcnQgdmlvbGF0aW9uXG4gICAgICB0aGlzLmhhbmRsZVZlcnRpY2FsQXhpc09uZVZpb2xhdGlvbihlcnJvclN1bSk7XG4gICAgfSBlbHNlIGlmICh2aXNpYmlsaXR5VmlvbGF0aW9ucy5sZW5ndGggPT09IDEgJiYgdGhpcy5wb3NpdGlvbi5heGlzID09PSBDbHJBeGlzLkhPUklaT05UQUwpIHtcbiAgICAgIC8vIFdoZW4gcHJpbWFyeSBheGlzIGlzIEhPUklaT05UQUwgYW5kIHRoZXJlIGlzIG9uZSB2aWV3cG9ydCB2aW9sYXRpb25cbiAgICAgIHRoaXMuaGFuZGxlSG9yaXpvbnRhbEF4aXNPbmVWaW9sYXRpb24oZXJyb3JTdW0pO1xuICAgIH0gZWxzZSBpZiAodmlzaWJpbGl0eVZpb2xhdGlvbnMubGVuZ3RoID09PSAyICYmIHRoaXMucG9zaXRpb24uYXhpcyA9PT0gQ2xyQXhpcy5WRVJUSUNBTCkge1xuICAgICAgLy8gV2hlbiBwcmltYXJ5IGF4aXMgaXMgVkVSVElDQUwgYW5kIHRoZXJlIGFyZSB0d28gdmlld3BvcnQgdmlvbGF0aW9uc1xuICAgICAgdGhpcy5oYW5kbGVWZXJ0aWNhbEF4aXNUd29WaW9sYXRpb25zKGVycm9yU3VtKTtcbiAgICB9IGVsc2UgaWYgKHZpc2liaWxpdHlWaW9sYXRpb25zLmxlbmd0aCA9PT0gMiAmJiB0aGlzLnBvc2l0aW9uLmF4aXMgPT09IENsckF4aXMuSE9SSVpPTlRBTCkge1xuICAgICAgLy8gV2hlbiBwcmltYXJ5IGF4aXMgaXMgSE9SSVpPTlRBTCBhbmQgdGhlcmUgYXJlIHR3byB2aWV3cG9ydCB2aW9sYXRpb25zXG4gICAgICB0aGlzLmhhbmRsZUhvcml6b250YWxBeGlzVHdvVmlvbGF0aW9ucyhlcnJvclN1bSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRqdXN0cyBwb3BvdmVyIHBvc2l0aW9uIGJhc2VkIG9uIHNjcm9sbCB2YWx1ZSBieSBhZGRpbmcgdGhlIG5lZ2F0aXZlICd0b3AnIHZhbHVlIG9mIGN1cnJlbnRDb250ZW50Q29vcmRzIHRvIHlPZmZzZXQgZm9yIHByb3BlciBhbGlnbm1lbnQuXG4gICAgICogLSBUaGUgbmVnYXRpdmUgdmFsdWUgbWVhbnMgdGhhdCB0aGUgJ3RvcCcgb2YgdGhlIGNvbnRlbnQgaXMgc2Nyb2xsZWQgb3V0IG9mIHZpZXcgYXQgdGhlIHRvcCBvZiB0aGUgdmlld3BvcnQuXG4gICAgICovXG4gICAgaWYgKHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMudG9wIDwgMCkge1xuICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cy55T2Zmc2V0ICs9IE1hdGguYWJzKHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMudG9wKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb250ZW50T2Zmc2V0cztcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVmVydGljYWxBeGlzT25lVmlvbGF0aW9uKGVycm9yU3VtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGVycm9yU3VtKSB7XG4gICAgICBjYXNlIDA6XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gQk9UVE9NKDApIG9yIFRPUCgzKSBhcmUgcHJpbWFyeSB2aW9sYXRpb25zIGFuZCB3ZSBjYW4ganVzdCBmbGlwIHNpZGVzXG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihmbGlwU2lkZXModGhpcy5wb3NpdGlvbiksIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAxOiB7XG4gICAgICAgIC8vIExFRlQoMSkgaXMgc2Vjb25kYXJ5IGFuZCBuZWVkcyB0byBudWRnZSBjb250ZW50IHJpZ2h0XG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbih0aGlzLnBvc2l0aW9uLCB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBFdmVuIHdpdGggdGhlIG51ZGdlIHdlIHN0aWxsIGhhdmUgYSBwcm9ibGVtLiBXZSBuZWVkIHRvIGNoZWNrIGlmIHRoZSBjb250ZW50IGlzIGdvaW5nIHRvIGJlIGNsaXBwZWRcbiAgICAgICAgICovXG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRPZmZzZXRzLnhPZmZzZXQgPCAwKSB7XG4gICAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cy54T2Zmc2V0ID0gMTA7XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgMjoge1xuICAgICAgICAvLyBSSUdIVCgyKSBpcyBzZWNvbmRhcnkgYW5kICBuZWVkcyB0byBudWRnZSBjb250ZW50IGxlZnRcbiAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cyA9IGFsaWduKFxuICAgICAgICAgIG51ZGdlQ29udGVudCh0aGlzLnBvc2l0aW9uLCB0cnVlKSxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsXG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVWZXJ0aWNhbEF4aXNUd29WaW9sYXRpb25zKGVycm9yU3VtOiBudW1iZXIpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGVycm9yU3VtKSB7XG4gICAgICAvLyBXZSBrbm93IHRoZXJlIGFyZSB0d28gdmlvbGF0aW9ucy4gV2UgY2FuIHVzZSB0aGUgZXJyb3JTdW0gdG8gZGV0ZXJtaW5lIHdoaWNoIGNvbWJpbmF0aW9uIG9mIHNpZGVzIHdlcmVcbiAgICAgIC8vIHZpb2xhdGVkIGFuZCBoYW5kbGUgYXBwcm9wcmlhdGVseS5cbiAgICAgIGNhc2UgNToge1xuICAgICAgICAvLyBUT1AoMykrUklHSFQoMikgaXMgY2FzZSA1LiBXZSBuZWVkIHRvIGZsaXAgc2lkZXMgYW5kIG51ZGdlIHRoZSBjb250ZW50IHRvIHRoZSBsZWZ0XG4gICAgICAgIGNvbnN0IGZsaXBBbmROdWRnZUxlZnQgPSBmbGlwU2lkZXNBbmROdWRnZUNvbnRlbnQoZmxpcFNpZGVzLCBudWRnZUNvbnRlbnQsIHRydWUpO1xuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oXG4gICAgICAgICAgZmxpcEFuZE51ZGdlTGVmdCh0aGlzLnBvc2l0aW9uKSxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsXG4gICAgICAgICAgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgNDoge1xuICAgICAgICAvL1RPUCgzKStMRUZUKDEpIGlzIGNhc2UgNCwgd2UgbmVlZCB0byBmbGlwIHNpZGVzIGFuZCBudWRnZSBjb250ZW50IHRvIHRoZSByaWdodFxuICAgICAgICBjb25zdCBmbGlwQW5kTnVkZ2VSaWdodCA9IGZsaXBTaWRlc0FuZE51ZGdlQ29udGVudChmbGlwU2lkZXMsIG51ZGdlQ29udGVudCwgZmFsc2UpO1xuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oXG4gICAgICAgICAgZmxpcEFuZE51ZGdlUmlnaHQodGhpcy5wb3NpdGlvbiksXG4gICAgICAgICAgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLFxuICAgICAgICAgIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDM6IHtcbiAgICAgICAgLy8gVE9QKDMpK0JPVFRPTSgwKSB8fCBsZWZ0KDEpK1JJR0hUKDIpIGlzIGNhc2UgMy4gVGhlcmUgaXMgbm90aGluZyB3ZSBjYW4gZG8gcG9zaXRpb24gd2lzZSB0byBpbXByb3ZlIHRoZVxuICAgICAgICAvLyBwbGFjZW1lbnQgZm9yIHRoaXMgY29udGVudC5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDI6IHtcbiAgICAgICAgLy8gQk9UVE9NKDApK1JJR0hUKDIpIGlzIGNhc2UgMi4gV2UgbmVlZCB0byBmbGlwIHNpZGVzIGFuZCBudWRnZSB0aGUgY29udGVudCB0byB0aGUgbGVmdFxuICAgICAgICBjb25zdCBmbGlwQW5kTnVkZ2VMZWZ0ID0gZmxpcFNpZGVzQW5kTnVkZ2VDb250ZW50KGZsaXBTaWRlcywgbnVkZ2VDb250ZW50LCB0cnVlKTtcbiAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cyA9IGFsaWduKFxuICAgICAgICAgIGZsaXBBbmROdWRnZUxlZnQodGhpcy5wb3NpdGlvbiksXG4gICAgICAgICAgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLFxuICAgICAgICAgIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIDE6IHtcbiAgICAgICAgLy8gQk9UVE9NKDApK0xFRlQoMSkgaXMgY2FzZSAxLiBXZSBuZWVkIHRvIGZsaXAgc2lkZXMgYW5kIG51ZGdlIHRvIHRoZSByaWdodFxuICAgICAgICBjb25zdCBmbGlwQW5kTnVkZ2VSaWdodCA9IGZsaXBTaWRlc0FuZE51ZGdlQ29udGVudChmbGlwU2lkZXMsIG51ZGdlQ29udGVudCwgZmFsc2UpO1xuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oXG4gICAgICAgICAgZmxpcEFuZE51ZGdlUmlnaHQodGhpcy5wb3NpdGlvbiksXG4gICAgICAgICAgdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLFxuICAgICAgICAgIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSG9yaXpvbnRhbEF4aXNPbmVWaW9sYXRpb24oZXJyb3JTdW06IG51bWJlcik6IHZvaWQge1xuICAgIHN3aXRjaCAoZXJyb3JTdW0pIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgIGNhc2UgMjoge1xuICAgICAgICAvLyBMRUZUKDEpIGFuZCBSSUdIVCgyKSBhcmUgcHJpbWFyeSB2aW9sYXRpb25zIHNvIHdlIGNhbiBmbGlwIHNpZGVzXG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihmbGlwU2lkZXModGhpcy5wb3NpdGlvbiksIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAwOiB7XG4gICAgICAgIC8vIEJPVFRPTSgwKSBpcyBhIHNlY29uZGFyeSB2aW9sYXRpb24gYW5kIHdlIG5lZWQgdG8gbnVkZ2UgY29udGVudCB1cFxuICAgICAgICB0aGlzLmNvbnRlbnRPZmZzZXRzID0gYWxpZ24oXG4gICAgICAgICAgbnVkZ2VDb250ZW50KHRoaXMucG9zaXRpb24sIHRydWUpLFxuICAgICAgICAgIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcyxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAzOiB7XG4gICAgICAgIC8vIFRPUCgzKSBpcyBhIHNlY29uZGFyeSB2aW9sYXRpb24gYW5kIHdlIG5lZWQgdG8gbnVkZ2UgY29udGVudCBkb3duXG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihudWRnZUNvbnRlbnQodGhpcy5wb3NpdGlvbiksIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcywgdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUhvcml6b250YWxBeGlzVHdvVmlvbGF0aW9ucyhlcnJvclN1bTogbnVtYmVyKTogdm9pZCB7XG4gICAgc3dpdGNoIChlcnJvclN1bSkge1xuICAgICAgY2FzZSA1OlxuICAgICAgY2FzZSA0OiB7XG4gICAgICAgIC8vIFRPUCgzKStMRUZUKDEpIGlzIGNhc2UgNC5cbiAgICAgICAgLy8gVE9QKDMpK1JJR0hUKDIpIGlzIGNhc2UgNS5cbiAgICAgICAgLy8gSW4gYm90aCBvZiB0aGVzZSBjYXNlcyB3ZSBuZWVkIHRvIGZsaXAgc2lkZXMgYW5kIG51ZGdlIGNvbnRlbnQgZG93blxuICAgICAgICBjb25zdCBmbGlwQW5kTnVkZ2VEb3duID0gZmxpcFNpZGVzQW5kTnVkZ2VDb250ZW50KGZsaXBTaWRlcywgbnVkZ2VDb250ZW50LCBmYWxzZSk7XG4gICAgICAgIHRoaXMuY29udGVudE9mZnNldHMgPSBhbGlnbihcbiAgICAgICAgICBmbGlwQW5kTnVkZ2VEb3duKHRoaXMucG9zaXRpb24pLFxuICAgICAgICAgIHRoaXMuY3VycmVudEFuY2hvckNvb3JkcyxcbiAgICAgICAgICB0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAzOiB7XG4gICAgICAgIC8vIFRPUCgzKStCT1RUT00oMCkgfHwgbGVmdCgxKStSSUdIVCgyKSBpcyBjYXNlIDMuIFRoZXJlIGlzIG5vdGhpbmcgd2UgY2FuIGRvIHBvc2l0aW9uIHdpc2UgdG8gaW1wcm92ZSB0aGVcbiAgICAgICAgLy8gcGxhY2VtZW50IGZvciB0aGlzIGNvbnRlbnQuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAyOlxuICAgICAgY2FzZSAxOiB7XG4gICAgICAgIC8vIEJPVFRPTSgwKStSSUdIVCgyKSBpcyBjYXNlIDIuXG4gICAgICAgIC8vIEJPVFRPTSgwKStMRUZUKDEpIGlzIGNhc2UgMS5cbiAgICAgICAgLy8gSW4gYm90aCBjYXNlcyB3ZSAgbmVlZCB0byBmbGlwIHNpZGVzIGFuZCBudWRnZSBjb250ZW50IHVwXG4gICAgICAgIGNvbnN0IGZsaXBBbmROdWRnZVVwID0gZmxpcFNpZGVzQW5kTnVkZ2VDb250ZW50KGZsaXBTaWRlcywgbnVkZ2VDb250ZW50LCB0cnVlKTtcbiAgICAgICAgdGhpcy5jb250ZW50T2Zmc2V0cyA9IGFsaWduKGZsaXBBbmROdWRnZVVwKHRoaXMucG9zaXRpb24pLCB0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsIHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -15,10 +15,14 @@ export class ClrPopoverToggleService {
15
15
  this._openChange = new Subject();
16
16
  this._openEventChange = new Subject();
17
17
  this._popoverAligned = new Subject();
18
+ this._popoverVisible = new Subject();
18
19
  }
19
20
  get openChange() {
20
21
  return this._openChange.asObservable();
21
22
  }
23
+ get popoverVisible() {
24
+ return this._popoverVisible.asObservable();
25
+ }
22
26
  get openEvent() {
23
27
  return this._openEvent;
24
28
  }
@@ -55,6 +59,9 @@ export class ClrPopoverToggleService {
55
59
  this.openEvent = event;
56
60
  this.open = !this.open;
57
61
  }
62
+ popoverVisibleEmit(visible) {
63
+ this._popoverVisible.next(visible);
64
+ }
58
65
  popoverAlignedEmit(popoverNode) {
59
66
  this._popoverAligned.next(popoverNode);
60
67
  }
@@ -64,4 +71,4 @@ ClrPopoverToggleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.
64
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrPopoverToggleService, decorators: [{
65
72
  type: Injectable
66
73
  }] });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10b2dnbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItdG9nZ2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFbkUsMkRBQTJEO0FBQzNELHdGQUF3RjtBQUd4RixNQUFNLE9BQU8sdUJBQXVCO0lBRHBDO1FBRVUsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUVyQyxxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBUyxDQUFDO1FBQ3hDLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQWUsQ0FBQztLQW9EdEQ7SUFsREMsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLEtBQVk7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxLQUFjO1FBQ3JCLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQsb0VBQW9FO0lBQ3BFLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlLENBQUMsS0FBVTtRQUN4QixxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsV0FBd0I7UUFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQzs7b0hBeERVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjMgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgcHJldmVudEFycm93S2V5U2Nyb2xsIH0gZnJvbSAnLi4vLi4vZm9jdXMva2V5LWZvY3VzL3V0aWwnO1xuXG4vLyBQb3BvdmVycyBtaWdodCBuZWVkIHRvIGlnbm9yZSBjbGljayBldmVudHMgb24gYW4gZWxlbWVudFxuLy8gKGVnOiBwb3BvdmVyIG9wZW5zIG9uIGZvY3VzIG9uIGFuIGlucHV0IGZpZWxkLiBDbGlja3Mgc2hvdWxkIGJlIGlnbm9yZWQgaW4gdGhpcyBjYXNlKVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2xyUG9wb3ZlclRvZ2dsZVNlcnZpY2Uge1xuICBwcml2YXRlIF9vcGVuID0gZmFsc2U7XG4gIHByaXZhdGUgX29wZW5DaGFuZ2UgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwcml2YXRlIF9vcGVuRXZlbnQ6IEV2ZW50O1xuICBwcml2YXRlIF9vcGVuRXZlbnRDaGFuZ2UgPSBuZXcgU3ViamVjdDxFdmVudD4oKTtcbiAgcHJpdmF0ZSBfcG9wb3ZlckFsaWduZWQgPSBuZXcgU3ViamVjdDxIVE1MRWxlbWVudD4oKTtcblxuICBnZXQgb3BlbkNoYW5nZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbkNoYW5nZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBvcGVuRXZlbnQoKTogRXZlbnQge1xuICAgIHJldHVybiB0aGlzLl9vcGVuRXZlbnQ7XG4gIH1cbiAgc2V0IG9wZW5FdmVudChldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLl9vcGVuRXZlbnQgPSBldmVudDtcbiAgICB0aGlzLl9vcGVuRXZlbnRDaGFuZ2UubmV4dChldmVudCk7XG4gIH1cblxuICBnZXQgb3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbjtcbiAgfVxuICBzZXQgb3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHZhbHVlID0gISF2YWx1ZTtcbiAgICBpZiAodGhpcy5fb3BlbiAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX29wZW4gPSB2YWx1ZTtcbiAgICAgIHRoaXMuX29wZW5DaGFuZ2UubmV4dCh2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBsZWdhY3kgSWZPcGVuU2VydmljZSBiYXNlZCBpbXBsZW1lbnRhdGlvbnNcbiAgZ2V0IG9yaWdpbmFsRXZlbnQoKTogRXZlbnQge1xuICAgIHJldHVybiB0aGlzLl9vcGVuRXZlbnQ7XG4gIH1cblxuICBnZXQgcG9wb3ZlckFsaWduZWQoKTogT2JzZXJ2YWJsZTxIVE1MRWxlbWVudD4ge1xuICAgIHJldHVybiB0aGlzLl9wb3BvdmVyQWxpZ25lZC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldEV2ZW50Q2hhbmdlKCk6IE9ic2VydmFibGU8RXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbkV2ZW50Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNvbWV0aW1lcywgd2UgbmVlZCB0byByZW1lbWJlciB0aGUgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIHRvZ2dsaW5nIHRvIGF2b2lkIGxvb3BzLlxuICAgKiBUaGlzIGlzIGZvciBpbnN0YW5jZSB0aGUgY2FzZSBvZiBjb21wb25lbnRzIHRoYXQgb3BlbiBvbiBhIGNsaWNrLCBidXQgY2xvc2Ugb24gYSBjbGljayBvdXRzaWRlLlxuICAgKi9cbiAgdG9nZ2xlV2l0aEV2ZW50KGV2ZW50OiBhbnkpIHtcbiAgICBwcmV2ZW50QXJyb3dLZXlTY3JvbGwoZXZlbnQpO1xuXG4gICAgdGhpcy5vcGVuRXZlbnQgPSBldmVudDtcbiAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICB9XG5cbiAgcG9wb3ZlckFsaWduZWRFbWl0KHBvcG92ZXJOb2RlOiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMuX3BvcG92ZXJBbGlnbmVkLm5leHQocG9wb3Zlck5vZGUpO1xuICB9XG59XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci10b2dnbGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL3BvcG92ZXIvcHJvdmlkZXJzL3BvcG92ZXItdG9nZ2xlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFbkUsMkRBQTJEO0FBQzNELHdGQUF3RjtBQUd4RixNQUFNLE9BQU8sdUJBQXVCO0lBRHBDO1FBRVUsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUVyQyxxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBUyxDQUFDO1FBQ3hDLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQWUsQ0FBQztRQUM3QyxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7S0E0RGxEO0lBMURDLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFNBQVMsQ0FBQyxLQUFZO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUMsS0FBYztRQUNyQixLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLEtBQVU7UUFDeEIscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQWdCO1FBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxXQUF3QjtRQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDOztvSEFqRVUsdUJBQXVCO3dIQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMyBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBwcmV2ZW50QXJyb3dLZXlTY3JvbGwgfSBmcm9tICcuLi8uLi9mb2N1cy9rZXktZm9jdXMvdXRpbCc7XG5cbi8vIFBvcG92ZXJzIG1pZ2h0IG5lZWQgdG8gaWdub3JlIGNsaWNrIGV2ZW50cyBvbiBhbiBlbGVtZW50XG4vLyAoZWc6IHBvcG92ZXIgb3BlbnMgb24gZm9jdXMgb24gYW4gaW5wdXQgZmllbGQuIENsaWNrcyBzaG91bGQgYmUgaWdub3JlZCBpbiB0aGlzIGNhc2UpXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDbHJQb3BvdmVyVG9nZ2xlU2VydmljZSB7XG4gIHByaXZhdGUgX29wZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3BlbkNoYW5nZSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHByaXZhdGUgX29wZW5FdmVudDogRXZlbnQ7XG4gIHByaXZhdGUgX29wZW5FdmVudENoYW5nZSA9IG5ldyBTdWJqZWN0PEV2ZW50PigpO1xuICBwcml2YXRlIF9wb3BvdmVyQWxpZ25lZCA9IG5ldyBTdWJqZWN0PEhUTUxFbGVtZW50PigpO1xuICBwcml2YXRlIF9wb3BvdmVyVmlzaWJsZSA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgZ2V0IG9wZW5DaGFuZ2UoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX29wZW5DaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgcG9wb3ZlclZpc2libGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BvcG92ZXJWaXNpYmxlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IG9wZW5FdmVudCgpOiBFdmVudCB7XG4gICAgcmV0dXJuIHRoaXMuX29wZW5FdmVudDtcbiAgfVxuICBzZXQgb3BlbkV2ZW50KGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuX29wZW5FdmVudCA9IGV2ZW50O1xuICAgIHRoaXMuX29wZW5FdmVudENoYW5nZS5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIGdldCBvcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vcGVuO1xuICB9XG4gIHNldCBvcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdmFsdWUgPSAhIXZhbHVlO1xuICAgIGlmICh0aGlzLl9vcGVuICE9PSB2YWx1ZSkge1xuICAgICAgdGhpcy5fb3BlbiA9IHZhbHVlO1xuICAgICAgdGhpcy5fb3BlbkNoYW5nZS5uZXh0KHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvLyBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIGxlZ2FjeSBJZk9wZW5TZXJ2aWNlIGJhc2VkIGltcGxlbWVudGF0aW9uc1xuICBnZXQgb3JpZ2luYWxFdmVudCgpOiBFdmVudCB7XG4gICAgcmV0dXJuIHRoaXMuX29wZW5FdmVudDtcbiAgfVxuXG4gIGdldCBwb3BvdmVyQWxpZ25lZCgpOiBPYnNlcnZhYmxlPEhUTUxFbGVtZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX3BvcG92ZXJBbGlnbmVkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0RXZlbnRDaGFuZ2UoKTogT2JzZXJ2YWJsZTxFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLl9vcGVuRXZlbnRDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogU29tZXRpbWVzLCB3ZSBuZWVkIHRvIHJlbWVtYmVyIHRoZSBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgdG9nZ2xpbmcgdG8gYXZvaWQgbG9vcHMuXG4gICAqIFRoaXMgaXMgZm9yIGluc3RhbmNlIHRoZSBjYXNlIG9mIGNvbXBvbmVudHMgdGhhdCBvcGVuIG9uIGEgY2xpY2ssIGJ1dCBjbG9zZSBvbiBhIGNsaWNrIG91dHNpZGUuXG4gICAqL1xuICB0b2dnbGVXaXRoRXZlbnQoZXZlbnQ6IGFueSkge1xuICAgIHByZXZlbnRBcnJvd0tleVNjcm9sbChldmVudCk7XG5cbiAgICB0aGlzLm9wZW5FdmVudCA9IGV2ZW50O1xuICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gIH1cblxuICBwb3BvdmVyVmlzaWJsZUVtaXQodmlzaWJsZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3BvcG92ZXJWaXNpYmxlLm5leHQodmlzaWJsZSk7XG4gIH1cblxuICBwb3BvdmVyQWxpZ25lZEVtaXQocG9wb3Zlck5vZGU6IEhUTUxFbGVtZW50KSB7XG4gICAgdGhpcy5fcG9wb3ZlckFsaWduZWQubmV4dChwb3BvdmVyTm9kZSk7XG4gIH1cbn1cbiJdfQ==
@@ -3,7 +3,7 @@ import { Directive, NgModule, Optional, Input, Injectable, Component, ChangeDete
3
3
  import * as i5 from '@angular/common';
4
4
  import { CommonModule, isPlatformBrowser, DOCUMENT, NgForOf, getLocaleDayNames, FormStyle, TranslationWidth, getLocaleMonthNames, getLocaleFirstDayOfWeek, getLocaleDateFormat, FormatWidth } from '@angular/common';
5
5
  import { ClarityIcons, angleIcon, exclamationCircleIcon, checkCircleIcon, ellipsisHorizontalIcon, windowCloseIcon, eventIcon, calendarIcon, eyeHideIcon, eyeIcon, ellipsisVerticalIcon, viewColumnsIcon, arrowIcon, timesIcon, stepForward2Icon, angleDoubleIcon, filterGridCircleIcon, filterGridIcon, infoCircleIcon, exclamationTriangleIcon, circleIcon, dotCircleIcon, errorStandardIcon, successStandardIcon } from '@cds/core/icon';
6
- import { map, tap, startWith, distinctUntilChanged, pairwise, filter, debounceTime, takeUntil, delay, take, first, switchMap } from 'rxjs/operators';
6
+ import { map, tap, startWith, distinctUntilChanged, pairwise, filter, debounceTime, takeUntil, take, first, switchMap } from 'rxjs/operators';
7
7
  import * as i3 from 'rxjs';
8
8
  import { Subject, BehaviorSubject, Observable, fromEvent, isObservable, of, ReplaySubject, combineLatest, merge } from 'rxjs';
9
9
  import { trigger, transition, style, animate, state, keyframes } from '@angular/animations';
@@ -611,10 +611,10 @@ class ClrAccordionPanel {
611
611
  }
612
612
  }
613
613
  ClrAccordionPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAccordionPanel, deps: [{ token: ClrCommonStringsService }, { token: AccordionService }, { token: IfExpandService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
614
- ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAccordionPanel, selector: "clr-accordion-panel", inputs: { disabled: ["clrAccordionPanelDisabled", "disabled"], panelOpen: ["clrAccordionPanelOpen", "panelOpen"] }, outputs: { panelOpenChange: "clrAccordionPanelOpenChange" }, host: { properties: { "class.clr-accordion-panel": "true" } }, providers: [IfExpandService], queries: [{ propertyName: "accordionDescription", predicate: ClrAccordionDescription }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\">{{panelNumber}}.</span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], animations: panelAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
614
+ ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAccordionPanel, selector: "clr-accordion-panel", inputs: { disabled: ["clrAccordionPanelDisabled", "disabled"], panelOpen: ["clrAccordionPanelOpen", "panelOpen"] }, outputs: { panelOpenChange: "clrAccordionPanelOpenChange" }, host: { properties: { "class.clr-accordion-panel": "true" } }, providers: [IfExpandService], queries: [{ propertyName: "accordionDescription", predicate: ClrAccordionDescription }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\">{{panelNumber}}.</span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n class=\"clr-accordion-content-region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], animations: panelAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
615
615
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAccordionPanel, decorators: [{
616
616
  type: Component,
617
- args: [{ selector: 'clr-accordion-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: panelAnimation, providers: [IfExpandService], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\">{{panelNumber}}.</span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
617
+ args: [{ selector: 'clr-accordion-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: panelAnimation, providers: [IfExpandService], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\">{{panelNumber}}.</span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n class=\"clr-accordion-content-region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
618
618
  }], ctorParameters: function () { return [{ type: ClrCommonStringsService }, { type: AccordionService }, { type: IfExpandService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
619
619
  type: Input,
620
620
  args: ['clrAccordionPanelDisabled']
@@ -1108,10 +1108,10 @@ class ClrStepperPanel extends ClrAccordionPanel {
1108
1108
  }
1109
1109
  }
1110
1110
  ClrStepperPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrStepperPanel, deps: [{ token: PLATFORM_ID }, { token: ClrCommonStringsService }, { token: i1.FormGroupName, optional: true }, { token: i1.NgModelGroup, optional: true }, { token: StepperService }, { token: IfExpandService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1111
- ClrStepperPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrStepperPanel, selector: "clr-stepper-panel", host: { properties: { "class.clr-accordion-panel": "true" } }, providers: [IfExpandService], viewQueries: [{ propertyName: "headerButton", first: true, predicate: ["headerButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\">{{panelNumber}}.</span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], animations: stepAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1111
+ ClrStepperPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrStepperPanel, selector: "clr-stepper-panel", host: { properties: { "class.clr-accordion-panel": "true" } }, providers: [IfExpandService], viewQueries: [{ propertyName: "headerButton", first: true, predicate: ["headerButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\">{{panelNumber}}.</span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n class=\"clr-accordion-content-region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], animations: stepAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
1112
1112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrStepperPanel, decorators: [{
1113
1113
  type: Component,
1114
- args: [{ selector: 'clr-stepper-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: stepAnimation, providers: [IfExpandService], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\">{{panelNumber}}.</span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
1114
+ args: [{ selector: 'clr-stepper-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: stepAnimation, providers: [IfExpandService], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\">{{panelNumber}}.</span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n class=\"clr-accordion-content-region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
1115
1115
  }], ctorParameters: function () {
1116
1116
  return [{ type: undefined, decorators: [{
1117
1117
  type: Inject,
@@ -1422,10 +1422,14 @@ class ClrPopoverToggleService {
1422
1422
  this._openChange = new Subject();
1423
1423
  this._openEventChange = new Subject();
1424
1424
  this._popoverAligned = new Subject();
1425
+ this._popoverVisible = new Subject();
1425
1426
  }
1426
1427
  get openChange() {
1427
1428
  return this._openChange.asObservable();
1428
1429
  }
1430
+ get popoverVisible() {
1431
+ return this._popoverVisible.asObservable();
1432
+ }
1429
1433
  get openEvent() {
1430
1434
  return this._openEvent;
1431
1435
  }
@@ -1462,6 +1466,9 @@ class ClrPopoverToggleService {
1462
1466
  this.openEvent = event;
1463
1467
  this.open = !this.open;
1464
1468
  }
1469
+ popoverVisibleEmit(visible) {
1470
+ this._popoverVisible.next(visible);
1471
+ }
1465
1472
  popoverAlignedEmit(popoverNode) {
1466
1473
  this._popoverAligned.next(popoverNode);
1467
1474
  }
@@ -1956,6 +1963,13 @@ class ClrPopoverPositionService {
1956
1963
  // When primary axis is HORIZONTAL and there are two viewport violations
1957
1964
  this.handleHorizontalAxisTwoViolations(errorSum);
1958
1965
  }
1966
+ /**
1967
+ * Adjusts popover position based on scroll value by adding the negative 'top' value of currentContentCoords to yOffset for proper alignment.
1968
+ * - The negative value means that the 'top' of the content is scrolled out of view at the top of the viewport.
1969
+ */
1970
+ if (this.currentContentCoords.top < 0) {
1971
+ this.contentOffsets.yOffset += Math.abs(this.currentContentCoords.top);
1972
+ }
1959
1973
  return this.contentOffsets;
1960
1974
  }
1961
1975
  handleVerticalAxisOneViolation(errorSum) {
@@ -2153,6 +2167,7 @@ class ClrPopoverContent {
2153
2167
  this.shouldRealign = false;
2154
2168
  if (this.view) {
2155
2169
  this.renderer.setStyle(this.view.rootNodes[0], 'opacity', '1');
2170
+ this.smartOpenService.popoverVisibleEmit(true);
2156
2171
  }
2157
2172
  }));
2158
2173
  }
@@ -2200,6 +2215,7 @@ class ClrPopoverContent {
2200
2215
  this.view.rootNodes.forEach(node => this.renderer.removeChild(this.document.body, node));
2201
2216
  this.container.clear();
2202
2217
  delete this.view;
2218
+ this.smartOpenService.popoverVisibleEmit(false);
2203
2219
  }
2204
2220
  alignContent() {
2205
2221
  if (!this.view) {
@@ -3781,8 +3797,8 @@ class ClrButtonGroup {
3781
3797
  }
3782
3798
  handleFocusOnMenuOpen() {
3783
3799
  if (this.menuButtons.length) {
3784
- this.toggleService.openChange.pipe(delay(0), takeUntil(this.destroy$)).subscribe(isOpened => {
3785
- if (isOpened) {
3800
+ this.toggleService.popoverVisible.pipe(takeUntil(this.destroy$)).subscribe(visible => {
3801
+ if (visible) {
3786
3802
  this.focusHandler.initialize({
3787
3803
  menu: this.menu.nativeElement,
3788
3804
  menuToggle: this.menuToggle.nativeElement,
@@ -15323,7 +15339,8 @@ class ClrDatagridActionOverflow {
15323
15339
  this.rowActionService.register();
15324
15340
  this.subscriptions.push(this.smartToggleService.openChange.subscribe(openState => {
15325
15341
  this.open = openState;
15326
- if (openState) {
15342
+ }), this.smartToggleService.popoverVisible.subscribe(visible => {
15343
+ if (visible) {
15327
15344
  this.initializeFocus();
15328
15345
  }
15329
15346
  }));
@@ -15350,16 +15367,12 @@ class ClrDatagridActionOverflow {
15350
15367
  }
15351
15368
  initializeFocus() {
15352
15369
  if (isPlatformBrowser(this.platformId)) {
15353
- this.zone.runOutsideAngular(() => {
15354
- setTimeout(() => {
15355
- const buttons = Array.from(document.querySelectorAll('button.action-item'));
15356
- if (buttons.length) {
15357
- this.keyFocus.current = 0;
15358
- this.keyFocus.focusableItems = buttons;
15359
- this.keyFocus.focusCurrent();
15360
- }
15361
- });
15362
- });
15370
+ const buttons = Array.from(document.querySelectorAll('button.action-item'));
15371
+ if (buttons.length) {
15372
+ this.keyFocus.current = 0;
15373
+ this.keyFocus.focusableItems = buttons;
15374
+ this.keyFocus.focusCurrent();
15375
+ }
15363
15376
  }
15364
15377
  }
15365
15378
  }
@@ -20547,6 +20560,7 @@ class ClrHeader {
20547
20560
  constructor(responsiveNavService, commonStrings) {
20548
20561
  this.responsiveNavService = responsiveNavService;
20549
20562
  this.commonStrings = commonStrings;
20563
+ this.role = 'banner';
20550
20564
  this.isNavLevel1OnPage = false;
20551
20565
  this.isNavLevel2OnPage = false;
20552
20566
  this.openNavLevel = null;
@@ -20626,7 +20640,7 @@ class ClrHeader {
20626
20640
  }
20627
20641
  }
20628
20642
  ClrHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrHeader, deps: [{ token: ResponsiveNavigationService }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
20629
- ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrHeader, selector: "clr-header", host: { properties: { "class.header": "true" } }, ngImport: i0, template: `
20643
+ ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrHeader, selector: "clr-header", inputs: { role: "role" }, host: { properties: { "class.header": "true", "attr.role": "this.role" } }, ngImport: i0, template: `
20630
20644
  <button
20631
20645
  type="button"
20632
20646
  *ngIf="isNavLevel1OnPage"
@@ -20680,7 +20694,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
20680
20694
  `,
20681
20695
  host: { '[class.header]': 'true' },
20682
20696
  }]
20683
- }], ctorParameters: function () { return [{ type: ResponsiveNavigationService }, { type: ClrCommonStringsService }]; } });
20697
+ }], ctorParameters: function () { return [{ type: ResponsiveNavigationService }, { type: ClrCommonStringsService }]; }, propDecorators: { role: [{
20698
+ type: Input
20699
+ }, {
20700
+ type: HostBinding,
20701
+ args: ['attr.role']
20702
+ }] } });
20684
20703
 
20685
20704
  /*
20686
20705
  * Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
@@ -21791,7 +21810,7 @@ class ClrVerticalNav {
21791
21810
  }
21792
21811
  }
21793
21812
  ClrVerticalNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrVerticalNav, deps: [{ token: VerticalNavService }, { token: VerticalNavIconService }, { token: VerticalNavGroupRegistrationService }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
21794
- ClrVerticalNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrVerticalNav, selector: "clr-vertical-nav", inputs: { collapsible: ["clrVerticalNavCollapsible", "collapsible"], collapsed: ["clrVerticalNavCollapsed", "collapsed"] }, outputs: { _collapsedChanged: "clrVerticalNavCollapsedChange" }, host: { properties: { "class.is-collapsed": "collapsed", "class.has-nav-groups": "hasNavGroups", "class.has-icons": "hasIcons" }, classAttribute: "clr-vertical-nav" }, providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<button\n type=\"button\"\n class=\"nav-trigger\"\n [class.on-collapse]=\"collapsed\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-label]=\"commonStrings.keys.verticalNavToggle\"\n (click)=\"toggleByButton()\"\n *ngIf=\"collapsible\"\n>\n <cds-icon\n shape=\"angle-double\"\n class=\"nav-trigger-icon\"\n [attr.direction]=\"(this.collapsed) ? 'right' : 'left'\"\n [attr.title]=\"(this.collapsed) ? commonStrings.keys.expand : commonStrings.keys.collapse\"\n ></cds-icon>\n</button>\n<div class=\"nav-content\">\n <ng-content></ng-content>\n <button\n (click)=\"collapsed = false\"\n class=\"nav-btn\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n [attr.aria-label]=\"commonStrings.keys.verticalNavToggle\"\n *ngIf=\"collapsible && collapsed\"\n ></button>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }] });
21813
+ ClrVerticalNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrVerticalNav, selector: "clr-vertical-nav", inputs: { collapsible: ["clrVerticalNavCollapsible", "collapsible"], collapsed: ["clrVerticalNavCollapsed", "collapsed"] }, outputs: { _collapsedChanged: "clrVerticalNavCollapsedChange" }, host: { properties: { "class.is-collapsed": "collapsed", "class.has-nav-groups": "hasNavGroups", "class.has-icons": "hasIcons" }, classAttribute: "clr-vertical-nav" }, providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<button\n type=\"button\"\n class=\"nav-trigger\"\n [class.on-collapse]=\"collapsed\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-label]=\"commonStrings.keys.verticalNavToggle\"\n (click)=\"toggleByButton()\"\n *ngIf=\"collapsible\"\n>\n <cds-icon\n shape=\"angle-double\"\n class=\"nav-trigger-icon\"\n [attr.direction]=\"(this.collapsed) ? 'right' : 'left'\"\n [attr.title]=\"(this.collapsed) ? commonStrings.keys.expand : commonStrings.keys.collapse\"\n ></cds-icon>\n</button>\n<div class=\"nav-content\">\n <ng-content></ng-content>\n <button\n type=\"button\"\n (click)=\"collapsed = false\"\n class=\"nav-btn\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n [attr.aria-label]=\"commonStrings.keys.verticalNavToggle\"\n *ngIf=\"collapsible && collapsed\"\n ></button>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }] });
21795
21814
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrVerticalNav, decorators: [{
21796
21815
  type: Component,
21797
21816
  args: [{ selector: 'clr-vertical-nav', providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService], host: {
@@ -21799,7 +21818,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
21799
21818
  '[class.is-collapsed]': 'collapsed',
21800
21819
  '[class.has-nav-groups]': 'hasNavGroups',
21801
21820
  '[class.has-icons]': 'hasIcons',
21802
- }, template: "<!--\n ~ Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<button\n type=\"button\"\n class=\"nav-trigger\"\n [class.on-collapse]=\"collapsed\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-label]=\"commonStrings.keys.verticalNavToggle\"\n (click)=\"toggleByButton()\"\n *ngIf=\"collapsible\"\n>\n <cds-icon\n shape=\"angle-double\"\n class=\"nav-trigger-icon\"\n [attr.direction]=\"(this.collapsed) ? 'right' : 'left'\"\n [attr.title]=\"(this.collapsed) ? commonStrings.keys.expand : commonStrings.keys.collapse\"\n ></cds-icon>\n</button>\n<div class=\"nav-content\">\n <ng-content></ng-content>\n <button\n (click)=\"collapsed = false\"\n class=\"nav-btn\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n [attr.aria-label]=\"commonStrings.keys.verticalNavToggle\"\n *ngIf=\"collapsible && collapsed\"\n ></button>\n</div>\n" }]
21821
+ }, template: "<!--\n ~ Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<button\n type=\"button\"\n class=\"nav-trigger\"\n [class.on-collapse]=\"collapsed\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-label]=\"commonStrings.keys.verticalNavToggle\"\n (click)=\"toggleByButton()\"\n *ngIf=\"collapsible\"\n>\n <cds-icon\n shape=\"angle-double\"\n class=\"nav-trigger-icon\"\n [attr.direction]=\"(this.collapsed) ? 'right' : 'left'\"\n [attr.title]=\"(this.collapsed) ? commonStrings.keys.expand : commonStrings.keys.collapse\"\n ></cds-icon>\n</button>\n<div class=\"nav-content\">\n <ng-content></ng-content>\n <button\n type=\"button\"\n (click)=\"collapsed = false\"\n class=\"nav-btn\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n [attr.aria-label]=\"commonStrings.keys.verticalNavToggle\"\n *ngIf=\"collapsible && collapsed\"\n ></button>\n</div>\n" }]
21803
21822
  }], ctorParameters: function () { return [{ type: VerticalNavService }, { type: VerticalNavIconService }, { type: VerticalNavGroupRegistrationService }, { type: ClrCommonStringsService }]; }, propDecorators: { _collapsedChanged: [{
21804
21823
  type: Output,
21805
21824
  args: ['clrVerticalNavCollapsedChange']