@coreui/angular 4.7.7 → 4.7.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,7 +20,8 @@ export class BackdropService {
20
20
  get #scrollbarWidth() {
21
21
  // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
22
22
  const documentWidth = this.#document.documentElement.clientWidth;
23
- const scrollbarWidth = Math.abs((window?.innerWidth ?? documentWidth) - documentWidth);
23
+ // const scrollbarWidth = Math.abs((window?.innerWidth ?? documentWidth) - documentWidth);
24
+ const scrollbarWidth = Math.abs((this.#document.defaultView?.innerWidth ?? documentWidth) - documentWidth);
24
25
  return `${scrollbarWidth}px`;
25
26
  }
26
27
  setBackdrop(type = 'modal') {
@@ -79,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
79
80
  providedIn: 'root'
80
81
  }]
81
82
  }] });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2Ryb3Auc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvYmFja2Ryb3AvYmFja2Ryb3Auc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLL0IsTUFBTSxPQUFPLGVBQWU7SUFINUI7UUFLVyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTdELGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsY0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBWTdELG1CQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQW9DdEMsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO0tBbUIxQjtJQXhFVSxjQUFjLENBQTBCO0lBR2pELFNBQVMsQ0FBb0I7SUFDN0IsZ0JBQWdCLENBQTRCO0lBQzVDLFNBQVMsQ0FBb0Q7SUFDN0QsU0FBUyxDQUFjO0lBSXZCLElBQUksZUFBZTtRQUNqQixpRkFBaUY7UUFDakYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO1FBQ2pFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsVUFB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LENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OEdBekVVLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhY2tkcm9wU2VydmljZSB7XG5cbiAgcmVhZG9ubHkgI2JhY2tkcm9wQ2xpY2sgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICByZWFkb25seSBiYWNrZHJvcENsaWNrJCA9IHRoaXMuI2JhY2tkcm9wQ2xpY2suYXNPYnNlcnZhYmxlKCk7XG5cbiAgI2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgI3JlbmRlcmVyRmFjdG9yeSA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKTtcbiAgI3JlbmRlcmVyID0gdGhpcy4jcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuICAjdW5MaXN0ZW4hOiAoKSA9PiB2b2lkO1xuXG4gIGFjdGl2ZUJhY2tkcm9wOiBhbnk7XG5cbiAgZ2V0ICNzY3JvbGxiYXJXaWR0aCgpIHtcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvV2luZG93L2lubmVyV2lkdGgjdXNhZ2Vfbm90ZXNcbiAgICBjb25zdCBkb2N1bWVudFdpZHRoID0gdGhpcy4jZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IHNjcm9sbGJhcldpZHRoID0gTWF0aC5hYnMoKHdpbmRvdz8uaW5uZXJXaWR0aCA/PyBkb2N1bWVudFdpZHRoKSAtIGRvY3VtZW50V2lkdGgpO1xuICAgIHJldHVybiBgJHtzY3JvbGxiYXJXaWR0aH1weGA7XG4gIH1cblxuICBzY3JvbGxiYXJXaWR0aCA9IHRoaXMuI3Njcm9sbGJhcldpZHRoO1xuXG4gIHNldEJhY2tkcm9wKHR5cGU6IHN0cmluZyA9ICdtb2RhbCcpOiBhbnkge1xuICAgIGNvbnN0IGJhY2tkcm9wRWxlbWVudCA9IHRoaXMuI3JlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIHRoaXMuI3JlbmRlcmVyLmFkZENsYXNzKGJhY2tkcm9wRWxlbWVudCwgYCR7dHlwZX0tYmFja2Ryb3BgKTtcbiAgICB0aGlzLiNyZW5kZXJlci5hZGRDbGFzcyhiYWNrZHJvcEVsZW1lbnQsICdmYWRlJyk7XG4gICAgdGhpcy4jcmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy4jZG9jdW1lbnQuYm9keSwgYmFja2Ryb3BFbGVtZW50KTtcbiAgICB0aGlzLiN1bkxpc3RlbiA9IHRoaXMuI3JlbmRlcmVyLmxpc3RlbihiYWNrZHJvcEVsZW1lbnQsICdjbGljaycsIChlKTogdm9pZCA9PiB7XG4gICAgICB0aGlzLm9uQ2xpY2tIYW5kbGVyKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zY3JvbGxiYXJXaWR0aCA9IHRoaXMuI3Njcm9sbGJhcldpZHRoO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3MoYmFja2Ryb3BFbGVtZW50LCAnc2hvdycpO1xuICAgICAgLy8gdGhpcy5oaWRlU2Nyb2xsYmFyKCk7XG4gICAgfSk7XG4gICAgdGhpcy5hY3RpdmVCYWNrZHJvcCA9IGJhY2tkcm9wRWxlbWVudDtcbiAgICByZXR1cm4gYmFja2Ryb3BFbGVtZW50O1xuICB9XG5cbiAgY2xlYXJCYWNrZHJvcChiYWNrZHJvcEVsZW1lbnQ6IGFueSk6IGFueSB7XG4gICAgaWYgKGJhY2tkcm9wRWxlbWVudCkge1xuICAgICAgdGhpcy4jdW5MaXN0ZW4oKTtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKGJhY2tkcm9wRWxlbWVudCwgJ3Nob3cnKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLiNyZW5kZXJlci5yZW1vdmVDaGlsZCh0aGlzLiNkb2N1bWVudC5ib2R5LCBiYWNrZHJvcEVsZW1lbnQpO1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVCYWNrZHJvcCA9PT0gYmFja2Ryb3BFbGVtZW50KSB7XG4gICAgICAgICAgdGhpcy5yZXNldFNjcm9sbGJhcigpO1xuICAgICAgICB9XG4gICAgICAgIGJhY2tkcm9wRWxlbWVudCA9IHVuZGVmaW5lZDtcbiAgICAgIH0sIDMwMCk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgI2lzUlRMKCkgeyByZXR1cm4gdGhpcy4jZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpciA9PT0gJ3J0bCcgfHwgdGhpcy4jZG9jdW1lbnQuYm9keS5kaXIgPT09ICdydGwnOyB9XG5cbiAgI3Njcm9sbEJhclZpc2libGUgPSB0cnVlO1xuXG4gIGhpZGVTY3JvbGxiYXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI3Njcm9sbEJhclZpc2libGUpIHtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuI2RvY3VtZW50LmJvZHksICdvdmVyZmxvdycsICdoaWRkZW4nKTtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuI2RvY3VtZW50LmJvZHksIGBwYWRkaW5nLSR7dGhpcy4jaXNSVEwgPyAnbGVmdCcgOiAncmlnaHQnfWAsIHRoaXMuc2Nyb2xsYmFyV2lkdGgpO1xuICAgICAgdGhpcy4jc2Nyb2xsQmFyVmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0U2Nyb2xsYmFyKCk6IHZvaWQge1xuICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuI2RvY3VtZW50LmJvZHksICdvdmVyZmxvdycpO1xuICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuI2RvY3VtZW50LmJvZHksIGBwYWRkaW5nLSR7dGhpcy4jaXNSVEwgPyAnbGVmdCcgOiAncmlnaHQnfWApO1xuICAgIHRoaXMuI3Njcm9sbEJhclZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgb25DbGlja0hhbmRsZXIoKTogdm9pZCB7XG4gICAgdGhpcy4jYmFja2Ryb3BDbGljay5uZXh0KHRydWUpO1xuICB9XG59XG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2Ryb3Auc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvYmFja2Ryb3AvYmFja2Ryb3Auc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLL0IsTUFBTSxPQUFPLGVBQWU7SUFINUI7UUFLVyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRTdELGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsY0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBYTdELG1CQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQW9DdEMsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO0tBbUIxQjtJQXpFVSxjQUFjLENBQTBCO0lBR2pELFNBQVMsQ0FBb0I7SUFDN0IsZ0JBQWdCLENBQTRCO0lBQzVDLFNBQVMsQ0FBb0Q7SUFDN0QsU0FBUyxDQUFjO0lBSXZCLElBQUksZUFBZTtRQUNqQixpRkFBaUY7UUFDakYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDO1FBQ2pFLDBGQUEwRjtRQUMxRixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMs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QUM7UUFDNUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztJQUNoQyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OEdBMUVVLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlckZhY3RvcnkyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJhY2tkcm9wU2VydmljZSB7XG5cbiAgcmVhZG9ubHkgI2JhY2tkcm9wQ2xpY2sgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICByZWFkb25seSBiYWNrZHJvcENsaWNrJCA9IHRoaXMuI2JhY2tkcm9wQ2xpY2suYXNPYnNlcnZhYmxlKCk7XG5cbiAgI2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgI3JlbmRlcmVyRmFjdG9yeSA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKTtcbiAgI3JlbmRlcmVyID0gdGhpcy4jcmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuICAjdW5MaXN0ZW4hOiAoKSA9PiB2b2lkO1xuXG4gIGFjdGl2ZUJhY2tkcm9wOiBhbnk7XG5cbiAgZ2V0ICNzY3JvbGxiYXJXaWR0aCgpIHtcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvV2luZG93L2lubmVyV2lkdGgjdXNhZ2Vfbm90ZXNcbiAgICBjb25zdCBkb2N1bWVudFdpZHRoID0gdGhpcy4jZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIC8vIGNvbnN0IHNjcm9sbGJhcldpZHRoID0gTWF0aC5hYnMoKHdpbmRvdz8uaW5uZXJXaWR0aCA/PyBkb2N1bWVudFdpZHRoKSAtIGRvY3VtZW50V2lkdGgpO1xuICAgIGNvbnN0IHNjcm9sbGJhcldpZHRoID0gTWF0aC5hYnMoKHRoaXMuI2RvY3VtZW50LmRlZmF1bHRWaWV3Py5pbm5lcldpZHRoID8/IGRvY3VtZW50V2lkdGgpIC0gZG9jdW1lbnRXaWR0aCk7XG4gICAgcmV0dXJuIGAke3Njcm9sbGJhcldpZHRofXB4YDtcbiAgfVxuXG4gIHNjcm9sbGJhcldpZHRoID0gdGhpcy4jc2Nyb2xsYmFyV2lkdGg7XG5cbiAgc2V0QmFja2Ryb3AodHlwZTogc3RyaW5nID0gJ21vZGFsJyk6IGFueSB7XG4gICAgY29uc3QgYmFja2Ryb3BFbGVtZW50ID0gdGhpcy4jcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3MoYmFja2Ryb3BFbGVtZW50LCBgJHt0eXBlfS1iYWNrZHJvcGApO1xuICAgIHRoaXMuI3JlbmRlcmVyLmFkZENsYXNzKGJhY2tkcm9wRWxlbWVudCwgJ2ZhZGUnKTtcbiAgICB0aGlzLiNyZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLiNkb2N1bWVudC5ib2R5LCBiYWNrZHJvcEVsZW1lbnQpO1xuICAgIHRoaXMuI3VuTGlzdGVuID0gdGhpcy4jcmVuZGVyZXIubGlzdGVuKGJhY2tkcm9wRWxlbWVudCwgJ2NsaWNrJywgKGUpOiB2b2lkID0+IHtcbiAgICAgIHRoaXMub25DbGlja0hhbmRsZXIoKTtcbiAgICB9KTtcbiAgICB0aGlzLnNjcm9sbGJhcldpZHRoID0gdGhpcy4jc2Nyb2xsYmFyV2lkdGg7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLiNyZW5kZXJlci5hZGRDbGFzcyhiYWNrZHJvcEVsZW1lbnQsICdzaG93Jyk7XG4gICAgICAvLyB0aGlzLmhpZGVTY3JvbGxiYXIoKTtcbiAgICB9KTtcbiAgICB0aGlzLmFjdGl2ZUJhY2tkcm9wID0gYmFja2Ryb3BFbGVtZW50O1xuICAgIHJldHVybiBiYWNrZHJvcEVsZW1lbnQ7XG4gIH1cblxuICBjbGVhckJhY2tkcm9wKGJhY2tkcm9wRWxlbWVudDogYW55KTogYW55IHtcbiAgICBpZiAoYmFja2Ryb3BFbGVtZW50KSB7XG4gICAgICB0aGlzLiN1bkxpc3RlbigpO1xuICAgICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlQ2xhc3MoYmFja2Ryb3BFbGVtZW50LCAnc2hvdycpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuI2RvY3VtZW50LmJvZHksIGJhY2tkcm9wRWxlbWVudCk7XG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZUJhY2tkcm9wID09PSBiYWNrZHJvcEVsZW1lbnQpIHtcbiAgICAgICAgICB0aGlzLnJlc2V0U2Nyb2xsYmFyKCk7XG4gICAgICAgIH1cbiAgICAgICAgYmFja2Ryb3BFbGVtZW50ID0gdW5kZWZpbmVkO1xuICAgICAgfSwgMzAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCAjaXNSVEwoKSB7IHJldHVybiB0aGlzLiNkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZGlyID09PSAncnRsJyB8fCB0aGlzLiNkb2N1bWVudC5ib2R5LmRpciA9PT0gJ3J0bCc7IH1cblxuICAjc2Nyb2xsQmFyVmlzaWJsZSA9IHRydWU7XG5cbiAgaGlkZVNjcm9sbGJhcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jc2Nyb2xsQmFyVmlzaWJsZSkge1xuICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0U3R5bGUodGhpcy4jZG9jdW1lbnQuYm9keSwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0U3R5bGUodGhpcy4jZG9jdW1lbnQuYm9keSwgYHBhZGRpbmctJHt0aGlzLiNpc1JUTCA/ICdsZWZ0JyA6ICdyaWdodCd9YCwgdGhpcy5zY3JvbGxiYXJXaWR0aCk7XG4gICAgICB0aGlzLiNzY3JvbGxCYXJWaXNpYmxlID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRTY3JvbGxiYXIoKTogdm9pZCB7XG4gICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy4jZG9jdW1lbnQuYm9keSwgJ292ZXJmbG93Jyk7XG4gICAgdGhpcy4jcmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy4jZG9jdW1lbnQuYm9keSwgYHBhZGRpbmctJHt0aGlzLiNpc1JUTCA/ICdsZWZ0JyA6ICdyaWdodCd9YCk7XG4gICAgdGhpcy4jc2Nyb2xsQmFyVmlzaWJsZSA9IHRydWU7XG4gIH1cblxuICBvbkNsaWNrSGFuZGxlcigpOiB2b2lkIHtcbiAgICB0aGlzLiNiYWNrZHJvcENsaWNrLm5leHQodHJ1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,6 +1,7 @@
1
- import { Component, EventEmitter, HostBinding, Inject, Input, Output } from '@angular/core';
2
- import { fromEvent, withLatestFrom, zipWith } from 'rxjs';
3
- import { IntersectionService } from '../../services/intersection.service';
1
+ import { Component, DestroyRef, EventEmitter, HostBinding, inject, Inject, Input, Output } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { fromEvent } from 'rxjs';
4
+ import { filter, finalize, withLatestFrom, zipWith } from 'rxjs/operators';
4
5
  import { ListenersService } from '../../services/listeners.service';
5
6
  import { CarouselState } from '../carousel-state';
6
7
  import { CarouselService } from '../carousel.service';
@@ -20,6 +21,7 @@ export class CarouselComponent {
20
21
  'carousel-fade': this.transition === 'crossfade'
21
22
  };
22
23
  }
24
+ #destroyRef;
23
25
  constructor(config, hostElement, carouselService, carouselState, intersectionService, listenersService) {
24
26
  this.config = config;
25
27
  this.hostElement = hostElement;
@@ -76,7 +78,9 @@ export class CarouselComponent {
76
78
  * @type number
77
79
  */
78
80
  this.itemChange = new EventEmitter();
81
+ this.timerId = undefined;
79
82
  this.activeItemInterval = 0;
83
+ this.#destroyRef = inject(DestroyRef);
80
84
  this._visible = true;
81
85
  Object.assign(this, config);
82
86
  }
@@ -84,13 +88,11 @@ export class CarouselComponent {
84
88
  this.carouselStateSubscribe();
85
89
  }
86
90
  ngOnDestroy() {
91
+ this.resetTimer();
87
92
  this.clearListeners();
88
- this.carouselStateSubscribe(false);
89
- this.intersectionServiceSubscribe(false);
90
93
  this.swipeSubscribe(false);
91
94
  }
92
95
  ngAfterContentInit() {
93
- this.intersectionService.createIntersectionObserver(this.hostElement);
94
96
  this.intersectionServiceSubscribe();
95
97
  this.carouselState.state = { activeItemIndex: this.activeIndex, animate: this.animate };
96
98
  this.setListeners();
@@ -130,32 +132,30 @@ export class CarouselComponent {
130
132
  }
131
133
  resetTimer() {
132
134
  clearTimeout(this.timerId);
135
+ this.timerId = undefined;
133
136
  }
134
- carouselStateSubscribe(subscribe = true) {
135
- if (subscribe) {
136
- this.carouselIndexSubscription = this.carouselService.carouselIndex$.subscribe((nextItem) => {
137
- if ('active' in nextItem) {
138
- this.itemChange.emit(nextItem.active);
139
- }
140
- this.activeItemInterval = typeof nextItem.interval === 'number' && nextItem.interval > -1 ? nextItem.interval : this.interval;
141
- const isLastItem = ((nextItem.active === nextItem.lastItemIndex) && this.direction === 'next') || ((nextItem.active === 0) && this.direction === 'prev');
142
- !this.wrap && isLastItem ? this.resetTimer() : this.setTimer();
143
- });
144
- }
145
- else {
146
- this.carouselIndexSubscription?.unsubscribe();
147
- }
137
+ carouselStateSubscribe() {
138
+ this.carouselService.carouselIndex$
139
+ .pipe(takeUntilDestroyed(this.#destroyRef))
140
+ .subscribe((nextItem) => {
141
+ if ('active' in nextItem) {
142
+ this.itemChange.emit(nextItem.active);
143
+ }
144
+ this.activeItemInterval = typeof nextItem.interval === 'number' && nextItem.interval > -1 ? nextItem.interval : this.interval;
145
+ const isLastItem = ((nextItem.active === nextItem.lastItemIndex) && this.direction === 'next') || ((nextItem.active === 0) && this.direction === 'prev');
146
+ !this.wrap && isLastItem ? this.resetTimer() : this.setTimer();
147
+ });
148
148
  }
149
- intersectionServiceSubscribe(subscribe = true) {
150
- if (subscribe) {
151
- this.intersectingSubscription = this.intersectionService.intersecting$.subscribe(isIntersecting => {
152
- this.visible = isIntersecting;
153
- isIntersecting ? this.setTimer() : this.resetTimer();
154
- });
155
- }
156
- else {
157
- this.intersectingSubscription?.unsubscribe();
158
- }
149
+ intersectionServiceSubscribe() {
150
+ this.intersectionService.intersecting$
151
+ .pipe(filter(next => next.hostElement === this.hostElement), finalize(() => {
152
+ this.intersectionService.unobserve(this.hostElement);
153
+ }), takeUntilDestroyed(this.#destroyRef))
154
+ .subscribe(next => {
155
+ this.visible = next.isIntersecting;
156
+ next.isIntersecting ? this.setTimer() : this.resetTimer();
157
+ });
158
+ this.intersectionService.createIntersectionObserver(this.hostElement);
159
159
  }
160
160
  swipeSubscribe(subscribe = true) {
161
161
  if (this.touch && subscribe) {
@@ -163,7 +163,7 @@ export class CarouselComponent {
163
163
  const touchStart$ = fromEvent(carouselElement, 'touchstart');
164
164
  const touchEnd$ = fromEvent(carouselElement, 'touchend');
165
165
  const touchMove$ = fromEvent(carouselElement, 'touchmove');
166
- this.swipeSubscription = touchStart$.pipe(zipWith(touchEnd$.pipe(withLatestFrom(touchMove$))))
166
+ this.swipeSubscription = touchStart$.pipe(zipWith(touchEnd$.pipe(withLatestFrom(touchMove$))), takeUntilDestroyed(this.#destroyRef))
167
167
  .subscribe(([touchstart, [touchend, touchmove]]) => {
168
168
  touchstart.stopPropagation();
169
169
  touchmove.stopPropagation();
@@ -179,11 +179,11 @@ export class CarouselComponent {
179
179
  }
180
180
  }
181
181
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CarouselComponent, deps: [{ token: CarouselConfig }, { token: i0.ElementRef }, { token: i1.CarouselService }, { token: i2.CarouselState }, { token: i3.IntersectionService }, { token: i4.ListenersService }], target: i0.ɵɵFactoryTarget.Component }); }
182
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: CarouselComponent, isStandalone: true, selector: "c-carousel", inputs: { activeIndex: "activeIndex", animate: "animate", dark: "dark", direction: "direction", interval: "interval", pause: "pause", touch: "touch", transition: "transition", wrap: "wrap" }, outputs: { itemChange: "itemChange" }, host: { properties: { "class": "this.hostClasses" } }, providers: [CarouselService, CarouselState, CarouselConfig, IntersectionService, ListenersService], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block}\n"] }); }
182
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: CarouselComponent, isStandalone: true, selector: "c-carousel", inputs: { activeIndex: "activeIndex", animate: "animate", dark: "dark", direction: "direction", interval: "interval", pause: "pause", touch: "touch", transition: "transition", wrap: "wrap" }, outputs: { itemChange: "itemChange" }, host: { properties: { "class": "this.hostClasses" } }, providers: [CarouselService, CarouselState, CarouselConfig, ListenersService], ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block}\n"] }); }
183
183
  }
184
184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: CarouselComponent, decorators: [{
185
185
  type: Component,
186
- args: [{ selector: 'c-carousel', template: '<ng-content></ng-content>', providers: [CarouselService, CarouselState, CarouselConfig, IntersectionService, ListenersService], standalone: true, styles: [":host{display:block}\n"] }]
186
+ args: [{ selector: 'c-carousel', template: '<ng-content></ng-content>', providers: [CarouselService, CarouselState, CarouselConfig, ListenersService], standalone: true, styles: [":host{display:block}\n"] }]
187
187
  }], ctorParameters: () => [{ type: i5.CarouselConfig, decorators: [{
188
188
  type: Inject,
189
189
  args: [CarouselConfig]
@@ -211,4 +211,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
211
211
  type: HostBinding,
212
212
  args: ['class']
213
213
  }] } });
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYXJvdXNlbC9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQWdCLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFvQixnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7O0FBVXBELE1BQU0sT0FBTyxpQkFBaUI7SUF3RDVCLElBQ0ksV0FBVztRQUNiLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRSxJQUFJO1lBQ1gsZUFBZSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUM1QixlQUFlLEVBQUUsSUFBSSxDQUFDLFVBQVUsS0FBSyxXQUFXO1NBQ2pELENBQUM7SUFDSixDQUFDO0lBUUQsWUFDa0MsTUFBc0IsRUFDOUMsV0FBdUIsRUFDdkIsZUFBZ0MsRUFDaEMsYUFBNEIsRUFDNUIsbUJBQXdDLEVBQ3hDLGdCQUFrQztRQUxWLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQzlDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLG9CQUFl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QW5CLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQU1HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1HLElBQUk7c0JBQVosS0FBSztnQkFLSSxVQUFVO3NCQUFuQixNQUFNO2dCQUdILFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24sIHdpdGhMYXRlc3RGcm9tLCB6aXBXaXRoIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEludGVyc2VjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbnRlcnNlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBJTGlzdGVuZXJzQ29uZmlnLCBMaXN0ZW5lcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGlzdGVuZXJzLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBDYXJvdXNlbFN0YXRlIH0gZnJvbSAnLi4vY2Fyb3VzZWwtc3RhdGUnO1xuaW1wb3J0IHsgQ2Fyb3VzZWxTZXJ2aWNlIH0gZnJvbSAnLi4vY2Fyb3VzZWwuc2VydmljZSc7XG5pbXBvcnQgeyBDYXJvdXNlbENvbmZpZyB9IGZyb20gJy4uL2Nhcm91c2VsLmNvbmZpZyc7XG5pbXBvcnQgeyBUcmlnZ2VycyB9IGZyb20gJy4uLy4uL2NvcmV1aS50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtY2Fyb3VzZWwnLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICBzdHlsZVVybHM6IFsnLi9jYXJvdXNlbC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDYXJvdXNlbFNlcnZpY2UsIENhcm91c2VsU3RhdGUsIENhcm91c2VsQ29uZmlnLCBJbnRlcnNlY3Rpb25TZXJ2aWNlLCBMaXN0ZW5lcnNTZXJ2aWNlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBDYXJvdXNlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlckNvbnRlbnRJbml0IHtcbiAgLyoqXG4gICAqIEluZGV4IG9mIHRoZSBhY3RpdmUgaXRlbS5cbiAgICogQHR5cGUgbnVtYmVyXG4gICAqL1xuICBASW5wdXQoKSBhY3RpdmVJbmRleCA9IDA7XG4gIC8qKlxuICAgKiBDYXJvdXNlbCBhdXRvbWF0aWNhbGx5IHN0YXJ0cyBjeWNsZSBpdGVtcy5cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKi9cbiAgQElucHV0KCkgYW5pbWF0ZSA9IHRydWU7XG4gIC8qKlxuICAgKiBBZGQgZGFya2VyIGNvbnRyb2xzLCBpbmRpY2F0b3JzLCBhbmQgY2FwdGlvbnMuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIEBJbnB1dCgpIGRhcms/OiBib29sZWFuO1xuICAvKipcbiAgICogQ2Fyb3VzZWwgZGlyZWN0aW9uLiBbZG9jc11cbiAgICogQHR5cGUgeyduZXh0JyB8ICdwcmV2J31cbiAgICovXG4gIEBJbnB1dCgpIGRpcmVjdGlvbjogJ25leHQnIHwgJ3ByZXYnID0gJ25leHQnO1xuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiB0aW1lIHRvIGRlbGF5IGJldHdlZW4gYXV0b21hdGljYWxseSBjeWNsaW5nIGFuIGl0ZW0uIElmIGZhbHNlLCBjYXJvdXNlbCB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IGN5Y2xlLlxuICAgKiBAdHlwZSBudW1iZXJcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgQElucHV0KCkgaW50ZXJ2YWwgPSAwO1xuICAvKipcbiAgICogU2V0cyB3aGljaCBldmVudCBoYW5kbGVycyB5b3XigJlkIGxpa2UgcHJvdmlkZWQgdG8geW91ciBwYXVzZSBwcm9wLiBZb3UgY2FuIHNwZWNpZnkgb25lIHRyaWdnZXIgb3IgYW4gYXJyYXkgb2YgdGhlbS5cbiAgICogQHR5cGUgeydob3ZlcicgfCAnZm9jdXMnIHwgJ2NsaWNrJ31cbiAgICovXG4gIEBJbnB1dCgpIHBhdXNlOiBUcmlnZ2VycyB8IFRyaWdnZXJzW10gfCBmYWxzZSA9ICdob3Zlcic7XG4gIC8qKlxuICAgKiBTdXBwb3J0IGxlZnQvcmlnaHQgc3dpcGUgaW50ZXJhY3Rpb25zIG9uIHRvdWNoc2NyZWVuIGRldmljZXMuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KCkgdG91Y2g6IGJvb2xlYW4gPSB0cnVlO1xuICAvKipcbiAgICogU2V0IHR5cGUgb2YgdGhlIHRyYW5zaXRpb24uXG4gICAqIEB0eXBlIHsnc2xpZGUnIHwgJ2Nyb3NzZmFkZSd9XG4gICAqIEBkZWZhdWx0ICdzbGlkZSdcbiAgICovXG4gIEBJbnB1dCgpIHRyYW5zaXRpb246ICdzbGlkZScgfCAnY3Jvc3NmYWRlJyA9ICdzbGlkZSc7XG4gIC8qKlxuICAgKiBTZXQgd2hldGhlciB0aGUgY2Fyb3VzZWwgc2hvdWxkIGN5Y2xlIGNvbnRpbnVvdXNseSBvciBoYXZlIGhhcmQgc3RvcHMuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KCkgd3JhcCA9IHRydWU7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIG9uIGNhcm91c2VsIGl0ZW0gY2hhbmdlLiBbZG9jc11cbiAgICogQHR5cGUgbnVtYmVyXG4gICAqL1xuICBAT3V0cHV0KCkgaXRlbUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgY2Fyb3VzZWw6IHRydWUsXG4gICAgICBzbGlkZTogdHJ1ZSxcbiAgICAgICdjYXJvdXNlbC1kYXJrJzogISF0aGlzLmRhcmssXG4gICAgICAnY2Fyb3VzZWwtZmFkZSc6IHRoaXMudHJhbnNpdGlvbiA9PT0gJ2Nyb3NzZmFkZSdcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjYXJvdXNlbEluZGV4U3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHRpbWVySWQhOiBhbnk7XG4gIHByaXZhdGUgaW50ZXJzZWN0aW5nU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGFjdGl2ZUl0ZW1JbnRlcnZhbCA9IDA7XG4gIHByaXZhdGUgc3dpcGVTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDYXJvdXNlbENvbmZpZykgcHJpdmF0ZSBjb25maWc6IENhcm91c2VsQ29uZmlnLFxuICAgIHByaXZhdGUgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjYXJvdXNlbFNlcnZpY2U6IENhcm91c2VsU2VydmljZSxcbiAgICBwcml2YXRlIGNhcm91c2VsU3RhdGU6IENhcm91c2VsU3RhdGUsXG4gICAgcHJpdmF0ZSBpbnRlcnNlY3Rpb25TZXJ2aWNlOiBJbnRlcnNlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgbGlzdGVuZXJzU2VydmljZTogTGlzdGVuZXJzU2VydmljZVxuICApIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGNvbmZpZyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhcm91c2VsU3RhdGVTdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLmNhcm91c2VsU3RhdGVTdWJzY3JpYmUoZmFsc2UpO1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uU2VydmljZVN1YnNjcmliZShmYWxzZSk7XG4gICAgdGhpcy5zd2lwZVN1YnNjcmliZShmYWxzZSk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcnNlY3Rpb25TZXJ2aWNlLmNyZWF0ZUludGVyc2VjdGlvbk9ic2VydmVyKHRoaXMuaG9zdEVsZW1lbnQpO1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uU2VydmljZVN1YnNjcmliZSgpO1xuICAgIHRoaXMuY2Fyb3VzZWxTdGF0ZS5zdGF0ZSA9IHsgYWN0aXZlSXRlbUluZGV4OiB0aGlzLmFjdGl2ZUluZGV4LCBhbmltYXRlOiB0aGlzLmFuaW1hdGUgfTtcbiAgICB0aGlzLnNldExpc3RlbmVycygpO1xuICAgIHRoaXMuc3dpcGVTdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZzogSUxpc3RlbmVyc0NvbmZpZyA9IHtcbiAgICAgIGhvc3RFbGVtZW50OiB0aGlzLmhvc3RFbGVtZW50LFxuICAgICAgdHJpZ2dlcjogdGhpcy5wYXVzZSB8fCBbXSxcbiAgICAgIGNhbGxiYWNrT2ZmOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2V0VGltZXIoKTtcbiAgICAgIH0sXG4gICAgICBjYWxsYmFja09uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVzZXRUaW1lcigpO1xuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5saXN0ZW5lcnNTZXJ2aWNlLnNldExpc3RlbmVycyhjb25maWcpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckxpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RlbmVyc1NlcnZpY2UuY2xlYXJMaXN0ZW5lcnMoKTtcbiAgfVxuXG4gIHNldCB2aXNpYmxlKHZhbHVlKSB7XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHZpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gIH1cblxuICBwcml2YXRlIF92aXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcblxuICBzZXRUaW1lcigpOiB2b2lkIHtcbiAgICBjb25zdCBpbnRlcnZhbCA9IHRoaXMuYWN0aXZlSXRlbUludGVydmFsIHx8IDA7XG4gICAgdGhpcy5yZXNldFRpbWVyKCk7XG4gICAgaWYgKGludGVydmFsID4gMCkge1xuICAgICAgdGhpcy50aW1lcklkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5leHRJbmRleCA9IHRoaXMuY2Fyb3VzZWxTdGF0ZS5kaXJlY3Rpb24odGhpcy5kaXJlY3Rpb24pO1xuICAgICAgICB0aGlzLmNhcm91c2VsU3RhdGUuc3RhdGUgPSB7IGFjdGl2ZUl0ZW1JbmRleDogbmV4dEluZGV4IH07XG4gICAgICB9LCBpbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgcmVzZXRUaW1lcigpOiB2b2lkIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcklkKTtcbiAgfVxuXG4gIHByaXZhdGUgY2Fyb3VzZWxTdGF0ZVN1YnNjcmliZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgdGhpcy5jYXJvdXNlbEluZGV4U3Vic2NyaXB0aW9uID0gdGhpcy5jYXJvdXNlbFNlcnZpY2UuY2Fyb3VzZWxJbmRleCQuc3Vic2NyaWJlKChuZXh0SXRlbSkgPT4ge1xuICAgICAgICBpZiAoJ2FjdGl2ZScgaW4gbmV4dEl0ZW0pIHtcbiAgICAgICAgICB0aGlzLml0ZW1DaGFuZ2UuZW1pdChuZXh0SXRlbS5hY3RpdmUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWN0aXZlSXRlbUludGVydmFsID0gdHlwZW9mIG5leHRJdGVtLmludGVydmFsID09PSAnbnVtYmVyJyAmJiBuZXh0SXRlbS5pbnRlcnZhbCA+IC0xID8gbmV4dEl0ZW0uaW50ZXJ2YWwgOiB0aGlzLmludGVydmFsO1xuICAgICAgICBjb25zdCBpc0xhc3RJdGVtID0gKChuZXh0SXRlbS5hY3RpdmUgPT09IG5leHRJdGVtLmxhc3RJdGVtSW5kZXgpICYmIHRoaXMuZGlyZWN0aW9uID09PSAnbmV4dCcpIHx8ICgobmV4dEl0ZW0uYWN0aXZlID09PSAwKSAmJiB0aGlzLmRpcmVjdGlvbiA9PT0gJ3ByZXYnKTtcbiAgICAgICAgIXRoaXMud3JhcCAmJiBpc0xhc3RJdGVtID8gdGhpcy5yZXNldFRpbWVyKCkgOiB0aGlzLnNldFRpbWVyKCk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYXJvdXNlbEluZGV4U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW50ZXJzZWN0aW9uU2VydmljZVN1YnNjcmliZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgaWYgKHN1YnNjcmliZSkge1xuICAgICAgdGhpcy5pbnRlcnNlY3RpbmdTdWJzY3JpcHRpb24gPSB0aGlzLmludGVyc2VjdGlvblNlcnZpY2UuaW50ZXJzZWN0aW5nJC5zdWJzY3JpYmUoaXNJbnRlcnNlY3RpbmcgPT4ge1xuICAgICAgICB0aGlzLnZpc2libGUgPSBpc0ludGVyc2VjdGluZztcbiAgICAgICAgaXNJbnRlcnNlY3RpbmcgPyB0aGlzLnNldFRpbWVyKCkgOiB0aGlzLnJlc2V0VGltZXIoKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmludGVyc2VjdGluZ1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN3aXBlU3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50b3VjaCAmJiBzdWJzY3JpYmUpIHtcbiAgICAgIGNvbnN0IGNhcm91c2VsRWxlbWVudCA9IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgIGNvbnN0IHRvdWNoU3RhcnQkID0gZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KGNhcm91c2VsRWxlbWVudCwgJ3RvdWNoc3RhcnQnKTtcbiAgICAgIGNvbnN0IHRvdWNoRW5kJCA9IGZyb21FdmVudDxUb3VjaEV2ZW50PihjYXJvdXNlbEVsZW1lbnQsICd0b3VjaGVuZCcpO1xuICAgICAgY29uc3QgdG91Y2hNb3ZlJCA9IGZyb21FdmVudDxUb3VjaEV2ZW50PihjYXJvdXNlbEVsZW1lbnQsICd0b3VjaG1vdmUnKTtcbiAgICAgIHRoaXMuc3dpcGVTdWJzY3JpcHRpb24gPSB0b3VjaFN0YXJ0JC5waXBlKHppcFdpdGgodG91Y2hFbmQkLnBpcGUod2l0aExhdGVzdEZyb20odG91Y2hNb3ZlJCkpKSlcbiAgICAgICAgLnN1YnNjcmliZSgoW3RvdWNoc3RhcnQsIFt0b3VjaGVuZCwgdG91Y2htb3ZlXV0pID0+IHtcbiAgICAgICAgICB0b3VjaHN0YXJ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgIHRvdWNobW92ZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBjb25zdCBkaXN0YW5jZVggPSB0b3VjaHN0YXJ0LnRvdWNoZXNbMF0uY2xpZW50WCAtIHRvdWNobW92ZS50b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgICAgaWYgKE1hdGguYWJzKGRpc3RhbmNlWCkgPiAwLjMgKiBjYXJvdXNlbEVsZW1lbnQuY2xpZW50V2lkdGggJiYgdG91Y2hzdGFydC50aW1lU3RhbXAgPD0gdG91Y2htb3ZlLnRpbWVTdGFtcCkge1xuICAgICAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gdGhpcy5jYXJvdXNlbFN0YXRlLmRpcmVjdGlvbihkaXN0YW5jZVggPiAwID8gJ25leHQnIDogJ3ByZXYnKTtcbiAgICAgICAgICAgIHRoaXMuY2Fyb3VzZWxTdGF0ZS5zdGF0ZSA9IHsgYWN0aXZlSXRlbUluZGV4OiBuZXh0SW5kZXggfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN3aXBlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYXJvdXNlbC9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBRVYsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNFLE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV0RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7OztBQVVwRCxNQUFNLE9BQU8saUJBQWlCO0lBd0Q1QixJQUNJLFdBQVc7UUFDYixPQUFPO1lBQ0wsUUFBUSxFQUFFLElBQUk7WUFDZCxLQUFLLEVBQUUsSUFBSTtZQUNYLGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUk7WUFDNUIsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLEtBQUssV0FBVztTQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUtRLFdBQVcsQ0FBc0I7SUFFMUMsWUFDa0MsTUFBc0IsRUFDOUMsV0FBdUIsRUFDdkIsZUFBZ0MsRUFDaEMsYUFBNEIs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Qix1VkFIakIsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQywwQkFGbkUsMkJBQTJCOzsyRkFLMUIsaUJBQWlCO2tCQVA3QixTQUFTOytCQUNFLFlBQVksWUFDWiwyQkFBMkIsYUFFMUIsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxjQUNqRSxJQUFJOzswQkEwRWIsTUFBTTsyQkFBQyxjQUFjOzZMQW5FZixXQUFXO3NCQUFuQixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFNRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFNRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFHSCxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgZmluYWxpemUsIHdpdGhMYXRlc3RGcm9tLCB6aXBXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBJbnRlcnNlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaW50ZXJzZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSUxpc3RlbmVyc0NvbmZpZywgTGlzdGVuZXJzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpc3RlbmVycy5zZXJ2aWNlJztcblxuaW1wb3J0IHsgQ2Fyb3VzZWxTdGF0ZSB9IGZyb20gJy4uL2Nhcm91c2VsLXN0YXRlJztcbmltcG9ydCB7IENhcm91c2VsU2VydmljZSB9IGZyb20gJy4uL2Nhcm91c2VsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2Fyb3VzZWxDb25maWcgfSBmcm9tICcuLi9jYXJvdXNlbC5jb25maWcnO1xuaW1wb3J0IHsgVHJpZ2dlcnMgfSBmcm9tICcuLi8uLi9jb3JldWkudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLWNhcm91c2VsJyxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgc3R5bGVVcmxzOiBbJy4vY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbQ2Fyb3VzZWxTZXJ2aWNlLCBDYXJvdXNlbFN0YXRlLCBDYXJvdXNlbENvbmZpZywgTGlzdGVuZXJzU2VydmljZV0sXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgQ2Fyb3VzZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIC8qKlxuICAgKiBJbmRleCBvZiB0aGUgYWN0aXZlIGl0ZW0uXG4gICAqIEB0eXBlIG51bWJlclxuICAgKi9cbiAgQElucHV0KCkgYWN0aXZlSW5kZXggPSAwO1xuICAvKipcbiAgICogQ2Fyb3VzZWwgYXV0b21hdGljYWxseSBzdGFydHMgY3ljbGUgaXRlbXMuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICovXG4gIEBJbnB1dCgpIGFuaW1hdGUgPSB0cnVlO1xuICAvKipcbiAgICogQWRkIGRhcmtlciBjb250cm9scywgaW5kaWNhdG9ycywgYW5kIGNhcHRpb25zLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKSBkYXJrPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIENhcm91c2VsIGRpcmVjdGlvbi4gW2RvY3NdXG4gICAqIEB0eXBlIHsnbmV4dCcgfCAncHJldid9XG4gICAqL1xuICBASW5wdXQoKSBkaXJlY3Rpb246ICduZXh0JyB8ICdwcmV2JyA9ICduZXh0JztcbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgdGltZSB0byBkZWxheSBiZXR3ZWVuIGF1dG9tYXRpY2FsbHkgY3ljbGluZyBhbiBpdGVtLiBJZiBmYWxzZSwgY2Fyb3VzZWwgd2lsbCBub3QgYXV0b21hdGljYWxseSBjeWNsZS5cbiAgICogQHR5cGUgbnVtYmVyXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIEBJbnB1dCgpIGludGVydmFsID0gMDtcbiAgLyoqXG4gICAqIFNldHMgd2hpY2ggZXZlbnQgaGFuZGxlcnMgeW914oCZZCBsaWtlIHByb3ZpZGVkIHRvIHlvdXIgcGF1c2UgcHJvcC4gWW91IGNhbiBzcGVjaWZ5IG9uZSB0cmlnZ2VyIG9yIGFuIGFycmF5IG9mIHRoZW0uXG4gICAqIEB0eXBlIHsnaG92ZXInIHwgJ2ZvY3VzJyB8ICdjbGljayd9XG4gICAqL1xuICBASW5wdXQoKSBwYXVzZTogVHJpZ2dlcnMgfCBUcmlnZ2Vyc1tdIHwgZmFsc2UgPSAnaG92ZXInO1xuICAvKipcbiAgICogU3VwcG9ydCBsZWZ0L3JpZ2h0IHN3aXBlIGludGVyYWN0aW9ucyBvbiB0b3VjaHNjcmVlbiBkZXZpY2VzLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpIHRvdWNoOiBib29sZWFuID0gdHJ1ZTtcbiAgLyoqXG4gICAqIFNldCB0eXBlIG9mIHRoZSB0cmFuc2l0aW9uLlxuICAgKiBAdHlwZSB7J3NsaWRlJyB8ICdjcm9zc2ZhZGUnfVxuICAgKiBAZGVmYXVsdCAnc2xpZGUnXG4gICAqL1xuICBASW5wdXQoKSB0cmFuc2l0aW9uOiAnc2xpZGUnIHwgJ2Nyb3NzZmFkZScgPSAnc2xpZGUnO1xuICAvKipcbiAgICogU2V0IHdoZXRoZXIgdGhlIGNhcm91c2VsIHNob3VsZCBjeWNsZSBjb250aW51b3VzbHkgb3IgaGF2ZSBoYXJkIHN0b3BzLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCgpIHdyYXAgPSB0cnVlO1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCBvbiBjYXJvdXNlbCBpdGVtIGNoYW5nZS4gW2RvY3NdXG4gICAqIEB0eXBlIG51bWJlclxuICAgKi9cbiAgQE91dHB1dCgpIGl0ZW1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNhcm91c2VsOiB0cnVlLFxuICAgICAgc2xpZGU6IHRydWUsXG4gICAgICAnY2Fyb3VzZWwtZGFyayc6ICEhdGhpcy5kYXJrLFxuICAgICAgJ2Nhcm91c2VsLWZhZGUnOiB0aGlzLnRyYW5zaXRpb24gPT09ICdjcm9zc2ZhZGUnXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgdGltZXJJZDogbnVtYmVyIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBwcml2YXRlIGFjdGl2ZUl0ZW1JbnRlcnZhbCA9IDA7XG4gIHByaXZhdGUgc3dpcGVTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHJlYWRvbmx5ICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ2Fyb3VzZWxDb25maWcpIHByaXZhdGUgY29uZmlnOiBDYXJvdXNlbENvbmZpZyxcbiAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2Fyb3VzZWxTZXJ2aWNlOiBDYXJvdXNlbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXJvdXNlbFN0YXRlOiBDYXJvdXNlbFN0YXRlLFxuICAgIHByaXZhdGUgaW50ZXJzZWN0aW9uU2VydmljZTogSW50ZXJzZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGxpc3RlbmVyc1NlcnZpY2U6IExpc3RlbmVyc1NlcnZpY2VcbiAgKSB7XG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLCBjb25maWcpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXJvdXNlbFN0YXRlU3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0VGltZXIoKTtcbiAgICB0aGlzLmNsZWFyTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5zd2lwZVN1YnNjcmliZShmYWxzZSk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcnNlY3Rpb25TZXJ2aWNlU3Vic2NyaWJlKCk7XG4gICAgdGhpcy5jYXJvdXNlbFN0YXRlLnN0YXRlID0geyBhY3RpdmVJdGVtSW5kZXg6IHRoaXMuYWN0aXZlSW5kZXgsIGFuaW1hdGU6IHRoaXMuYW5pbWF0ZSB9O1xuICAgIHRoaXMuc2V0TGlzdGVuZXJzKCk7XG4gICAgdGhpcy5zd2lwZVN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnOiBJTGlzdGVuZXJzQ29uZmlnID0ge1xuICAgICAgaG9zdEVsZW1lbnQ6IHRoaXMuaG9zdEVsZW1lbnQsXG4gICAgICB0cmlnZ2VyOiB0aGlzLnBhdXNlIHx8IFtdLFxuICAgICAgY2FsbGJhY2tPZmY6ICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRUaW1lcigpO1xuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrT246ICgpID0+IHtcbiAgICAgICAgdGhpcy5yZXNldFRpbWVyKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmxpc3RlbmVyc1NlcnZpY2Uuc2V0TGlzdGVuZXJzKGNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgIHRoaXMubGlzdGVuZXJzU2VydmljZS5jbGVhckxpc3RlbmVycygpO1xuICB9XG5cbiAgc2V0IHZpc2libGUodmFsdWUpIHtcbiAgICB0aGlzLl92aXNpYmxlID0gdmFsdWU7XG4gIH1cblxuICBnZXQgdmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuXG4gIHByaXZhdGUgX3Zpc2libGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHNldFRpbWVyKCk6IHZvaWQge1xuICAgIGNvbnN0IGludGVydmFsID0gdGhpcy5hY3RpdmVJdGVtSW50ZXJ2YWwgfHwgMDtcbiAgICB0aGlzLnJlc2V0VGltZXIoKTtcbiAgICBpZiAoaW50ZXJ2YWwgPiAwKSB7XG4gICAgICB0aGlzLnRpbWVySWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gdGhpcy5jYXJvdXNlbFN0YXRlLmRpcmVjdGlvbih0aGlzLmRpcmVjdGlvbik7XG4gICAgICAgIHRoaXMuY2Fyb3VzZWxTdGF0ZS5zdGF0ZSA9IHsgYWN0aXZlSXRlbUluZGV4OiBuZXh0SW5kZXggfTtcbiAgICAgIH0sIGludGVydmFsKTtcbiAgICB9XG4gIH1cblxuICByZXNldFRpbWVyKCk6IHZvaWQge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVySWQpO1xuICAgIHRoaXMudGltZXJJZCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgY2Fyb3VzZWxTdGF0ZVN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhcm91c2VsU2VydmljZS5jYXJvdXNlbEluZGV4JFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgobmV4dEl0ZW0pID0+IHtcbiAgICAgICAgaWYgKCdhY3RpdmUnIGluIG5leHRJdGVtKSB7XG4gICAgICAgICAgdGhpcy5pdGVtQ2hhbmdlLmVtaXQobmV4dEl0ZW0uYWN0aXZlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGl2ZUl0ZW1JbnRlcnZhbCA9IHR5cGVvZiBuZXh0SXRlbS5pbnRlcnZhbCA9PT0gJ251bWJlcicgJiYgbmV4dEl0ZW0uaW50ZXJ2YWwgPiAtMSA/IG5leHRJdGVtLmludGVydmFsIDogdGhpcy5pbnRlcnZhbDtcbiAgICAgICAgY29uc3QgaXNMYXN0SXRlbSA9ICgobmV4dEl0ZW0uYWN0aXZlID09PSBuZXh0SXRlbS5sYXN0SXRlbUluZGV4KSAmJiB0aGlzLmRpcmVjdGlvbiA9PT0gJ25leHQnKSB8fCAoKG5leHRJdGVtLmFjdGl2ZSA9PT0gMCkgJiYgdGhpcy5kaXJlY3Rpb24gPT09ICdwcmV2Jyk7XG4gICAgICAgICF0aGlzLndyYXAgJiYgaXNMYXN0SXRlbSA/IHRoaXMucmVzZXRUaW1lcigpIDogdGhpcy5zZXRUaW1lcigpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGludGVyc2VjdGlvblNlcnZpY2VTdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcnNlY3Rpb25TZXJ2aWNlLmludGVyc2VjdGluZyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIobmV4dCA9PiBuZXh0Lmhvc3RFbGVtZW50ID09PSB0aGlzLmhvc3RFbGVtZW50KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaW50ZXJzZWN0aW9uU2VydmljZS51bm9ic2VydmUodGhpcy5ob3N0RWxlbWVudCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUobmV4dCA9PiB7XG4gICAgICAgIHRoaXMudmlzaWJsZSA9IG5leHQuaXNJbnRlcnNlY3Rpbmc7XG4gICAgICAgIG5leHQuaXNJbnRlcnNlY3RpbmcgPyB0aGlzLnNldFRpbWVyKCkgOiB0aGlzLnJlc2V0VGltZXIoKTtcbiAgICAgIH0pO1xuICAgIHRoaXMuaW50ZXJzZWN0aW9uU2VydmljZS5jcmVhdGVJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLmhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgc3dpcGVTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnRvdWNoICYmIHN1YnNjcmliZSkge1xuICAgICAgY29uc3QgY2Fyb3VzZWxFbGVtZW50ID0gdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3QgdG91Y2hTdGFydCQgPSBmcm9tRXZlbnQ8VG91Y2hFdmVudD4oY2Fyb3VzZWxFbGVtZW50LCAndG91Y2hzdGFydCcpO1xuICAgICAgY29uc3QgdG91Y2hFbmQkID0gZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KGNhcm91c2VsRWxlbWVudCwgJ3RvdWNoZW5kJyk7XG4gICAgICBjb25zdCB0b3VjaE1vdmUkID0gZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KGNhcm91c2VsRWxlbWVudCwgJ3RvdWNobW92ZScpO1xuICAgICAgdGhpcy5zd2lwZVN1YnNjcmlwdGlvbiA9IHRvdWNoU3RhcnQkLnBpcGUoXG4gICAgICAgIHppcFdpdGgodG91Y2hFbmQkLnBpcGUod2l0aExhdGVzdEZyb20odG91Y2hNb3ZlJCkpKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKFt0b3VjaHN0YXJ0LCBbdG91Y2hlbmQsIHRvdWNobW92ZV1dKSA9PiB7XG4gICAgICAgICAgdG91Y2hzdGFydC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB0b3VjaG1vdmUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgY29uc3QgZGlzdGFuY2VYID0gdG91Y2hzdGFydC50b3VjaGVzWzBdLmNsaWVudFggLSB0b3VjaG1vdmUudG91Y2hlc1swXS5jbGllbnRYO1xuICAgICAgICAgIGlmIChNYXRoLmFicyhkaXN0YW5jZVgpID4gMC4zICogY2Fyb3VzZWxFbGVtZW50LmNsaWVudFdpZHRoICYmIHRvdWNoc3RhcnQudGltZVN0YW1wIDw9IHRvdWNobW92ZS50aW1lU3RhbXApIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRJbmRleCA9IHRoaXMuY2Fyb3VzZWxTdGF0ZS5kaXJlY3Rpb24oZGlzdGFuY2VYID4gMCA/ICduZXh0JyA6ICdwcmV2Jyk7XG4gICAgICAgICAgICB0aGlzLmNhcm91c2VsU3RhdGUuc3RhdGUgPSB7IGFjdGl2ZUl0ZW1JbmRleDogbmV4dEluZGV4IH07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zd2lwZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -31,7 +31,7 @@ export class NavbarComponent {
31
31
  }
32
32
  get breakpoint() {
33
33
  if (typeof this.expand === 'string') {
34
- return getComputedStyle(this.hostElement.nativeElement).getPropertyValue(`--cui-breakpoint-${this.expand}`);
34
+ return getComputedStyle(this.hostElement.nativeElement)?.getPropertyValue(`--cui-breakpoint-${this.expand}`) ?? false;
35
35
  }
36
36
  return false;
37
37
  }
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
81
81
  type: HostBinding,
82
82
  args: ['class']
83
83
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbmF2YmFyL25hdmJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL25hdmJhci9uYXZiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsWUFBWSxFQUFjLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBR2hELHdEQUF3RDtBQUN4RCx1RUFBdUU7QUFRdkUsTUFBTSxPQUFPLGVBQWU7SUE0QjFCLFlBQ1UsV0FBdUIsRUFDdkIsa0JBQXNDO1FBRHRDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUF4QmhEOztXQUVHO1FBQ00sZ0JBQVcsR0FBc0IsT0FBTyxDQUFDO1FBaUJ6QyxTQUFJLEdBQUcsWUFBWSxDQUFDO0lBSzFCLENBQUM7SUFFSixJQUNJLFdBQVc7UUFDYixNQUFNLGlCQUFpQixHQUFXLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hGLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSTtZQUNaLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxLQUFLLE9BQU87WUFDNUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLEtBQUssTUFBTTtZQUMxQyxDQUFDLGdCQUFnQixpQkFBaUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQ3BELENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDbEMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUztTQUN4QyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLFlBQVksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ25DLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDN0c7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLE1BQU0sWUFBWSxHQUFHLGVBQWUsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDakUsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO29CQUNqQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztvQkFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDOUIsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQ3JDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7NEJBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO3dCQUNsQyxDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDLENBQUMsQ0FBQztpQkFDSjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzhHQTFFVSxlQUFlO2tHQUFmLGVBQWUsbVVBdUJaLGlCQUFpQixnREN2Q2pDLHlVQVdBLDRDREdZLE9BQU8sb0ZBQUUsZ0JBQWdCOzsyRkFFeEIsZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxVQUFVLGNBRVIsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDO2dIQU8zQixLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLO2dCQUUyQixRQUFRO3NCQUF4QyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFHdEIsSUFBSTtzQkFEWixXQUFXO3VCQUFDLFdBQVc7O3NCQUN2QixLQUFLO2dCQVFGLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcblxuaW1wb3J0IHsgQ29sbGFwc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9jb2xsYXBzZSc7XG5pbXBvcnQgeyBDb2xvcnMgfSBmcm9tICcuLi9jb3JldWkudHlwZXMnO1xuXG4vLyB0b2RvOiBmaXggY29udGFpbmVyIHByb3AgaXNzdWUgbm90IHJlbmRlcmluZyBjaGlsZHJlblxuLy8gdG9kbzogd29ya2Fyb3VuZCAtICB1c2UgPGMtY29udGFpbmVyPiBjb21wb25lbnQgZGlyZWN0bHkgaW4gdGVtcGxhdGVcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1uYXZiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2YmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIE5hdmJhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAvKipcbiAgICogU2V0cyB0aGUgY29sb3IgY29udGV4dCBvZiB0aGUgY29tcG9uZW50IHRvIG9uZSBvZiBDb3JlVUnigJlzIHRoZW1lZCBjb2xvcnMuXG4gICAqIEB0eXBlIENvbG9yc1xuICAgKi9cbiAgQElucHV0KCkgY29sb3I/OiBDb2xvcnM7XG4gIC8qKlxuICAgKiBTZXRzIGlmIHRoZSBjb2xvciBvZiB0ZXh0IHNob3VsZCBiZSBjb2xvcmVkIGZvciBhIGxpZ2h0IG9yIGRhcmsgZGFyayBiYWNrZ3JvdW5kLlxuICAgKi9cbiAgQElucHV0KCkgY29sb3JTY2hlbWU/OiAnZGFyaycgfCAnbGlnaHQnID0gJ2xpZ2h0JztcbiAgLyoqXG4gICAqIERlZmluZXMgb3B0aW9uYWwgY29udGFpbmVyIHdyYXBwaW5nIGNoaWxkcmVuIGVsZW1lbnRzLlxuICAgKi9cbiAgQElucHV0KCkgY29udGFpbmVyPzogYm9vbGVhbiB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCAneHhsJyB8ICdmbHVpZCc7XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSByZXNwb25zaXZlIGJyZWFrcG9pbnQgdG8gZGV0ZXJtaW5lIHdoZW4gY29udGVudCBjb2xsYXBzZXMuXG4gICAqL1xuICBASW5wdXQoKSBleHBhbmQ/OiBib29sZWFuIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyB8ICd4eGwnO1xuICAvKipcbiAgICogUGxhY2UgY29tcG9uZW50IGluIG5vbi1zdGF0aWMgcG9zaXRpb25zLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2VtZW50PzogJ2ZpeGVkLXRvcCcgfCAnZml4ZWQtYm90dG9tJyB8ICdzdGlja3ktdG9wJztcblxuICBAQ29udGVudENoaWxkKENvbGxhcHNlRGlyZWN0aXZlKSBjb2xsYXBzZSE6IENvbGxhcHNlRGlyZWN0aXZlO1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgQElucHV0KCkgcm9sZSA9ICduYXZpZ2F0aW9uJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXJcbiAgKSB7fVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcbiAgICBjb25zdCBleHBhbmRDbGFzc1N1ZmZpeDogc3RyaW5nID0gdGhpcy5leHBhbmQgPT09IHRydWUgPyAnJyA6IGAtJHt0aGlzLmV4cGFuZH1gO1xuICAgIHJldHVybiB7XG4gICAgICBuYXZiYXI6IHRydWUsXG4gICAgICAnbmF2YmFyLWxpZ2h0JzogdGhpcy5jb2xvclNjaGVtZSA9PT0gJ2xpZ2h0JyxcbiAgICAgICduYXZiYXItZGFyayc6IHRoaXMuY29sb3JTY2hlbWUgPT09ICdkYXJrJyxcbiAgICAgIFtgbmF2YmFyLWV4cGFuZCR7ZXhwYW5kQ2xhc3NTdWZmaXh9YF06ICEhdGhpcy5leHBhbmQsXG4gICAgICBbYGJnLSR7dGhpcy5jb2xvcn1gXTogISF0aGlzLmNvbG9yLFxuICAgICAgW2Ake3RoaXMucGxhY2VtZW50fWBdOiAhIXRoaXMucGxhY2VtZW50XG4gICAgfTtcbiAgfVxuXG4gIGdldCBjb250YWluZXJDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY29udGFpbmVyJHt0aGlzLmNvbnRhaW5lciAhPT0gdHJ1ZSA/ICctJyArIHRoaXMuY29udGFpbmVyIDogJyd9YDtcbiAgfVxuXG4gIGdldCBicmVha3BvaW50KCk6IHN0cmluZyB8IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgdGhpcy5leHBhbmQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoYC0tY3VpLWJyZWFrcG9pbnQtJHt0aGlzLmV4cGFuZH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmJyZWFrcG9pbnQpIHtcbiAgICAgIGNvbnN0IG9uQnJlYWtwb2ludCA9IGAobWluLXdpZHRoOiAke3RoaXMuYnJlYWtwb2ludH0pYDtcbiAgICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoW29uQnJlYWtwb2ludF0pLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICBpZiAodGhpcy5jb2xsYXBzZSkge1xuICAgICAgICAgIGNvbnN0IGFuaW1hdGUgPSB0aGlzLmNvbGxhcHNlLmFuaW1hdGU7XG4gICAgICAgICAgdGhpcy5jb2xsYXBzZS50b2dnbGUoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuY29sbGFwc2UuYW5pbWF0ZSA9IGZhbHNlO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZS50b2dnbGUocmVzdWx0Lm1hdGNoZXMpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UuYW5pbWF0ZSA9IGFuaW1hdGU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGFpbmVyID8gd2l0aENvbnRhaW5lclRlbXBsYXRlIDogbm9Db250YWluZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3dpdGhDb250YWluZXJUZW1wbGF0ZT5cbiAgPGRpdiBbbmdDbGFzc109XCJjb250YWluZXJDbGFzc1wiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI25vQ29udGFpbmVyVGVtcGxhdGU+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvbmF2YmFyL25hdmJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL25hdmJhci9uYXZiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsWUFBWSxFQUFjLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBR2hELHdEQUF3RDtBQUN4RCx1RUFBdUU7QUFRdkUsTUFBTSxPQUFPLGVBQWU7SUE0QjFCLFlBQ1UsV0FBdUIsRUFDdkIsa0JBQXNDO1FBRHRDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUF4QmhEOztXQUVHO1FBQ00sZ0JBQVcsR0FBc0IsT0FBTyxDQUFDO1FBaUJ6QyxTQUFJLEdBQUcsWUFBWSxDQUFDO0lBSzFCLENBQUM7SUFFSixJQUNJLFdBQVc7UUFDYixNQUFNLGlCQUFpQixHQUFXLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hGLE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSTtZQUNaLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxLQUFLLE9BQU87WUFDNUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLEtBQUssTUFBTTtZQUMxQyxDQUFDLGdCQUFnQixpQkFBaUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQ3BELENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDbEMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUztTQUN4QyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLFlBQVksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ25DLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDO1NBQ3ZIO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixNQUFNLFlBQVksR0FBRyxlQUFlLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQztZQUN2RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2pFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtvQkFDakIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQzlCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7d0JBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUNyQyxVQUFVLENBQUMsR0FBRyxFQUFFOzRCQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQzt3QkFDbEMsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs4R0ExRVUsZUFBZTtrR0FBZixlQUFlLG1VQXVCWixpQkFBaUIsZ0RDdkNqQyx5VUFXQSw0Q0RHWSxPQUFPLG9GQUFFLGdCQUFnQjs7MkZBRXhCLGVBQWU7a0JBTjNCLFNBQVM7K0JBQ0UsVUFBVSxjQUVSLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQztnSEFPM0IsS0FBSztzQkFBYixLQUFLO2dCQUlHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFFMkIsUUFBUTtzQkFBeEMsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBR3RCLElBQUk7c0JBRFosV0FBVzt1QkFBQyxXQUFXOztzQkFDdkIsS0FBSztnQkFRRixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5cbmltcG9ydCB7IENvbGxhcHNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vY29sbGFwc2UnO1xuaW1wb3J0IHsgQ29sb3JzIH0gZnJvbSAnLi4vY29yZXVpLnR5cGVzJztcblxuLy8gdG9kbzogZml4IGNvbnRhaW5lciBwcm9wIGlzc3VlIG5vdCByZW5kZXJpbmcgY2hpbGRyZW5cbi8vIHRvZG86IHdvcmthcm91bmQgLSAgdXNlIDxjLWNvbnRhaW5lcj4gY29tcG9uZW50IGRpcmVjdGx5IGluIHRlbXBsYXRlXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtbmF2YmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25hdmJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0XVxufSlcbmV4cG9ydCBjbGFzcyBOYXZiYXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbG9yIGNvbnRleHQgb2YgdGhlIGNvbXBvbmVudCB0byBvbmUgb2YgQ29yZVVJ4oCZcyB0aGVtZWQgY29sb3JzLlxuICAgKiBAdHlwZSBDb2xvcnNcbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yPzogQ29sb3JzO1xuICAvKipcbiAgICogU2V0cyBpZiB0aGUgY29sb3Igb2YgdGV4dCBzaG91bGQgYmUgY29sb3JlZCBmb3IgYSBsaWdodCBvciBkYXJrIGRhcmsgYmFja2dyb3VuZC5cbiAgICovXG4gIEBJbnB1dCgpIGNvbG9yU2NoZW1lPzogJ2RhcmsnIHwgJ2xpZ2h0JyA9ICdsaWdodCc7XG4gIC8qKlxuICAgKiBEZWZpbmVzIG9wdGlvbmFsIGNvbnRhaW5lciB3cmFwcGluZyBjaGlsZHJlbiBlbGVtZW50cy5cbiAgICovXG4gIEBJbnB1dCgpIGNvbnRhaW5lcj86IGJvb2xlYW4gfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnIHwgJ3h4bCcgfCAnZmx1aWQnO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgcmVzcG9uc2l2ZSBicmVha3BvaW50IHRvIGRldGVybWluZSB3aGVuIGNvbnRlbnQgY29sbGFwc2VzLlxuICAgKi9cbiAgQElucHV0KCkgZXhwYW5kPzogYm9vbGVhbiB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCAneHhsJztcbiAgLyoqXG4gICAqIFBsYWNlIGNvbXBvbmVudCBpbiBub24tc3RhdGljIHBvc2l0aW9ucy5cbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlbWVudD86ICdmaXhlZC10b3AnIHwgJ2ZpeGVkLWJvdHRvbScgfCAnc3RpY2t5LXRvcCc7XG5cbiAgQENvbnRlbnRDaGlsZChDb2xsYXBzZURpcmVjdGl2ZSkgY29sbGFwc2UhOiBDb2xsYXBzZURpcmVjdGl2ZTtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gIEBJbnB1dCgpIHJvbGUgPSAnbmF2aWdhdGlvbic7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyXG4gICkge31cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XG4gICAgY29uc3QgZXhwYW5kQ2xhc3NTdWZmaXg6IHN0cmluZyA9IHRoaXMuZXhwYW5kID09PSB0cnVlID8gJycgOiBgLSR7dGhpcy5leHBhbmR9YDtcbiAgICByZXR1cm4ge1xuICAgICAgbmF2YmFyOiB0cnVlLFxuICAgICAgJ25hdmJhci1saWdodCc6IHRoaXMuY29sb3JTY2hlbWUgPT09ICdsaWdodCcsXG4gICAgICAnbmF2YmFyLWRhcmsnOiB0aGlzLmNvbG9yU2NoZW1lID09PSAnZGFyaycsXG4gICAgICBbYG5hdmJhci1leHBhbmQke2V4cGFuZENsYXNzU3VmZml4fWBdOiAhIXRoaXMuZXhwYW5kLFxuICAgICAgW2BiZy0ke3RoaXMuY29sb3J9YF06ICEhdGhpcy5jb2xvcixcbiAgICAgIFtgJHt0aGlzLnBsYWNlbWVudH1gXTogISF0aGlzLnBsYWNlbWVudFxuICAgIH07XG4gIH1cblxuICBnZXQgY29udGFpbmVyQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGNvbnRhaW5lciR7dGhpcy5jb250YWluZXIgIT09IHRydWUgPyAnLScgKyB0aGlzLmNvbnRhaW5lciA6ICcnfWA7XG4gIH1cblxuICBnZXQgYnJlYWtwb2ludCgpOiBzdHJpbmcgfCBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuZXhwYW5kID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGdldENvbXB1dGVkU3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50KT8uZ2V0UHJvcGVydHlWYWx1ZShgLS1jdWktYnJlYWtwb2ludC0ke3RoaXMuZXhwYW5kfWApID8/IGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYnJlYWtwb2ludCkge1xuICAgICAgY29uc3Qgb25CcmVha3BvaW50ID0gYChtaW4td2lkdGg6ICR7dGhpcy5icmVha3BvaW50fSlgO1xuICAgICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShbb25CcmVha3BvaW50XSkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbGxhcHNlKSB7XG4gICAgICAgICAgY29uc3QgYW5pbWF0ZSA9IHRoaXMuY29sbGFwc2UuYW5pbWF0ZTtcbiAgICAgICAgICB0aGlzLmNvbGxhcHNlLnRvZ2dsZShmYWxzZSk7XG4gICAgICAgICAgdGhpcy5jb2xsYXBzZS5hbmltYXRlID0gZmFsc2U7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbGxhcHNlLnRvZ2dsZShyZXN1bHQubWF0Y2hlcyk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5jb2xsYXBzZS5hbmltYXRlID0gYW5pbWF0ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250YWluZXIgPyB3aXRoQ29udGFpbmVyVGVtcGxhdGUgOiBub0NvbnRhaW5lclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjd2l0aENvbnRhaW5lclRlbXBsYXRlPlxuICA8ZGl2IFtuZ0NsYXNzXT1cImNvbnRhaW5lckNsYXNzXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbm9Db250YWluZXJUZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -127,7 +127,7 @@ export class OffcanvasComponent {
127
127
  }
128
128
  const element = this.document.documentElement;
129
129
  const responsiveBreakpoint = this.responsive;
130
- const breakpointValue = getComputedStyle(element).getPropertyValue(`--cui-breakpoint-${responsiveBreakpoint.trim()}`) || false;
130
+ const breakpointValue = getComputedStyle(element)?.getPropertyValue(`--cui-breakpoint-${responsiveBreakpoint.trim()}`) ?? false;
131
131
  return breakpointValue ? `${parseFloat(breakpointValue.trim()) - 0.02}px` : false;
132
132
  }
133
133
  animateStart(event) {
@@ -226,7 +226,7 @@ export class OffcanvasComponent {
226
226
  }
227
227
  }
228
228
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: OffcanvasComponent, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.OffcanvasService }, { token: i2.BackdropService }, { token: i3.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
229
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.8", type: OffcanvasComponent, isStandalone: true, selector: "c-offcanvas", inputs: { backdrop: "backdrop", keyboard: ["keyboard", "keyboard", booleanAttribute], placement: "placement", responsive: "responsive", id: "id", role: "role", ariaModal: ["ariaModal", "ariaModal", booleanAttribute], scroll: ["scroll", "scroll", booleanAttribute], visible: ["visible", "visible", booleanAttribute] }, outputs: { visibleChange: "visibleChange" }, host: { listeners: { "@showHide.start": "animateStart($event)", "@showHide.done": "animateDone($event)", "document:keydown": "onKeyDownHandler($event)" }, properties: { "attr.role": "this.role", "attr.aria-modal": "this.ariaModal", "class": "this.hostClasses", "attr.aria-hidden": "this.ariaHidden", "attr.tabindex": "this.tabIndex", "@showHide": "this.animateTrigger" } }, exportAs: ["cOffcanvas"], ngImport: i0, template: "<div cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-content></ng-content>\n</div>\n\n", styles: [":host{display:none}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [
229
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0.8", type: OffcanvasComponent, isStandalone: true, selector: "c-offcanvas", inputs: { backdrop: "backdrop", keyboard: ["keyboard", "keyboard", booleanAttribute], placement: "placement", responsive: "responsive", id: "id", role: "role", ariaModal: ["ariaModal", "ariaModal", booleanAttribute], scroll: ["scroll", "scroll", booleanAttribute], visible: ["visible", "visible", booleanAttribute] }, outputs: { visibleChange: "visibleChange" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "@showHide.start": "animateStart($event)", "@showHide.done": "animateDone($event)", "document:keydown": "onKeyDownHandler($event)" }, properties: { "attr.role": "this.role", "attr.aria-modal": "this.ariaModal", "class": "this.hostClasses", "attr.aria-hidden": "this.ariaHidden", "attr.tabindex": "this.tabIndex", "@showHide": "this.animateTrigger" } }, exportAs: ["cOffcanvas"], ngImport: i0, template: "<div cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-content></ng-content>\n</div>\n\n", styles: [":host{display:none}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }], animations: [
230
230
  trigger('showHide', [
231
231
  state('visible', style({
232
232
  // visibility: 'visible'
@@ -250,7 +250,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
250
250
  })),
251
251
  transition('visible <=> *', [animate('300ms')])
252
252
  ])
253
- ], exportAs: 'cOffcanvas', standalone: true, imports: [A11yModule], template: "<div cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-content></ng-content>\n</div>\n\n", styles: [":host{display:none}\n"] }]
253
+ ], exportAs: 'cOffcanvas', standalone: true, imports: [A11yModule], host: { ngSkipHydration: 'true' }, template: "<div cdkTrapFocus cdkTrapFocusAutoCapture>\n <ng-content></ng-content>\n</div>\n\n", styles: [":host{display:none}\n"] }]
254
254
  }], ctorParameters: () => [{ type: Document, decorators: [{
255
255
  type: Inject,
256
256
  args: [DOCUMENT]
@@ -309,4 +309,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
309
309
  type: HostListener,
310
310
  args: ['document:keydown', ['$event']]
311
311
  }] } });
312
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmY2FudmFzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvb2ZmY2FudmFzL29mZmNhbnZhcy9vZmZjYW52YXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9vZmZjYW52YXMvb2ZmY2FudmFzL29mZmNhbnZhcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFrQixLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixXQUFXLEVBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBS3hDLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQTJCZixNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLFdBQVcsQ0FBc0I7SUFFakMsWUFDNEIsUUFBa0IsRUFDZixVQUFlLEVBQ3BDLFFBQW1CLEVBQ25CLFdBQXVCLEVBQ3ZCLGdCQUFrQyxFQUNsQyxlQUFnQyxFQUNoQyxrQkFBc0M7UUFOcEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNmLGVB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QS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTzdCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBUUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBTTZCLElBQUk7c0JBQXRDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsV0FBVztnQkFNdUMsU0FBUztzQkFBaEYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTs7c0JBQUcsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBWTlCLE1BQU07c0JBQTdDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBUWxDLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkF1Qm5CLGFBQWE7c0JBQS9CLE1BQU07Z0JBR0gsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU87Z0JBV2hCLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBTTNCLFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxlQUFlO2dCQU14QixjQUFjO3NCQURqQixXQUFXO3VCQUFDLFdBQVc7Z0JBd0J4QixZQUFZO3NCQURYLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBYTNDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFnQjFDLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgQW5pbWF0aW9uRXZlbnQsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFBMQVRGT1JNX0lELFxuICBSZW5kZXJlcjJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50U3RhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCYWNrZHJvcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9iYWNrZHJvcC9iYWNrZHJvcC5zZXJ2aWNlJztcbmltcG9ydCB7IE9mZmNhbnZhc1NlcnZpY2UgfSBmcm9tICcuLi9vZmZjYW52YXMuc2VydmljZSc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLW9mZmNhbnZhcycsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdzaG93SGlkZScsIFtcbiAgICAgIHN0YXRlKFxuICAgICAgICAndmlzaWJsZScsXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAvLyB2aXNpYmlsaXR5OiAndmlzaWJsZSdcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ2hpZGRlbicsXG4gICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAvLyB2aXNpYmlsaXR5OiAnaGlkZGVuJ1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIHRyYW5zaXRpb24oJ3Zpc2libGUgPD0+IConLCBbYW5pbWF0ZSgnMzAwbXMnKV0pXG4gICAgXSlcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL29mZmNhbnZhcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29mZmNhbnZhcy5jb21wb25lbnQuc2NzcyddLFxuICBleHBvcnRBczogJ2NPZmZjYW52YXMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQTExeU1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgT2ZmY2FudmFzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogYW55LFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgb2ZmY2FudmFzU2VydmljZTogT2ZmY2FudmFzU2VydmljZSxcbiAgICBwcml2YXRlIGJhY2tkcm9wU2VydmljZTogQmFja2Ryb3BTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXJcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBBcHBseSBhIGJhY2tkcm9wIG9uIGJvZHkgd2hpbGUgb2ZmY2FudmFzIGlzIG9wZW4uXG4gICAqIEB0eXBlIGJvb2xlYW4gfCAnc3RhdGljJ1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoKSBiYWNrZHJvcDogYm9vbGVhbiB8ICdzdGF0aWMnID0gdHJ1ZTtcblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBvZmZjYW52YXMgd2hlbiBlc2NhcGUga2V5IGlzIHByZXNzZWQgW2RvY3NdXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGtleWJvYXJkID0gdHJ1ZTtcblxuICAvKipcbiAgICogQ29tcG9uZW50cyBwbGFjZW1lbnQsIHRoZXJl4oCZcyBubyBkZWZhdWx0IHBsYWNlbWVudC5cbiAgICogQHR5cGUgeydzdGFydCcgfCAnZW5kJyB8ICd0b3AnIHwgJ2JvdHRvbSd9XG4gICAqIEBkZWZhdWx0ICdzdGFydCdcbiAgICovXG4gIEBJbnB1dCgpIHBsYWNlbWVudDogc3RyaW5nIHwgJ3N0YXJ0JyB8ICdlbmQnIHwgJ3RvcCcgfCAnYm90dG9tJyA9ICdzdGFydCc7XG5cbiAgLyoqXG4gICAqIFJlc3BvbnNpdmUgb2ZmY2FudmFzIHByb3BlcnR5IGhpZGVzIGNvbnRlbnQgb3V0c2lkZSB0aGUgdmlld3BvcnQgZnJvbSBhIHNwZWNpZmllZCBicmVha3BvaW50IGFuZCBkb3duLlxuICAgKiBAdHlwZSBib29sZWFuIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyB8ICd4eGwnO1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqIEBzaW5jZSA0LjMuMTBcbiAgICovXG4gIEBJbnB1dCgpIHJlc3BvbnNpdmU/OiBib29sZWFuIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyB8ICd4eGwnID0gdHJ1ZTtcbiAgQElucHV0KCkgaWQgPSBgb2ZmY2FudmFzLSR7dGhpcy5wbGFjZW1lbnR9LSR7bmV4dElkKyt9YDtcbiAgLyoqXG4gICAqIERlZmF1bHQgcm9sZSBmb3Igb2ZmY2FudmFzLiBbZG9jc11cbiAgICogQHR5cGUgc3RyaW5nXG4gICAqIEBkZWZhdWx0ICdkaWFsb2cnXG4gICAqL1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAnZGlhbG9nJztcbiAgLyoqXG4gICAqIFNldCBhcmlhLW1vZGFsIGh0bWwgYXR0ciBmb3Igb2ZmY2FudmFzLiBbZG9jc11cbiAgICogQHR5cGUgYm9vbGVhblxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbW9kYWwnKSBhcmlhTW9kYWwgPSB0cnVlO1xuXG4gICNhY3RpdmVCYWNrZHJvcCE6IEhUTUxEaXZFbGVtZW50O1xuICAjYmFja2Ryb3BDbGlja1N1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgI2xheW91dENoYW5nZVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgI3Nob3cgPSBmYWxzZTtcblxuICAvKipcbiAgICogQWxsb3cgYm9keSBzY3JvbGxpbmcgd2hpbGUgb2ZmY2FudmFzIGlzIHZpc2libGUuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzY3JvbGw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSB2aXNpYmlsaXR5IG9mIG9mZmNhbnZhcyBjb21wb25lbnQuXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI3Zpc2libGUgPSB2YWx1ZTtcbiAgICBpZiAodGhpcy4jdmlzaWJsZSkge1xuICAgICAgdGhpcy5zZXRCYWNrZHJvcCh0aGlzLmJhY2tkcm9wKTtcbiAgICAgIHRoaXMuc2V0Rm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRCYWNrZHJvcChmYWxzZSk7XG4gICAgfVxuICAgIHRoaXMubGF5b3V0Q2hhbmdlU3Vic2NyaWJlKHRoaXMuI3Zpc2libGUpO1xuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiN2aXNpYmxlO1xuICB9XG5cbiAgI3Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogRXZlbnQgdHJpZ2dlcmVkIG9uIHZpc2libGUgY2hhbmdlLlxuICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8Ym9vbGVhbj5cbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBvZmZjYW52YXM6IHR5cGVvZiB0aGlzLnJlc3BvbnNpdmUgPT09ICdib29sZWFuJyxcbiAgICAgIFtgb2ZmY2FudmFzLSR7dGhpcy5yZXNwb25zaXZlfWBdOiB0eXBlb2YgdGhpcy5yZXNwb25zaXZlICE9PSAnYm9vbGVhbicsXG4gICAgICBbYG9mZmNhbnZhcy0ke3RoaXMucGxhY2VtZW50fWBdOiAhIXRoaXMucGxhY2VtZW50LFxuICAgICAgc2hvdzogdGhpcy5zaG93XG4gICAgfTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWhpZGRlbicpXG4gIGdldCBhcmlhSGlkZGVuKCk6IGJvb2xlYW4gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlID8gbnVsbCA6IHRydWU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICBnZXQgdGFiSW5kZXgoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuICctMSc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ0BzaG93SGlkZScpXG4gIGdldCBhbmltYXRlVHJpZ2dlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZpc2libGUgPyAndmlzaWJsZScgOiAnaGlkZGVuJztcbiAgfVxuXG4gIGdldCBzaG93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZpc2libGUgJiYgdGhpcy4jc2hvdztcbiAgfVxuXG4gIHNldCBzaG93KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy4jc2hvdyA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHJlc3BvbnNpdmVCcmVha3BvaW50KCk6IHN0cmluZyB8IGZhbHNlIHtcbiAgICBpZiAodHlwZW9mIHRoaXMucmVzcG9uc2l2ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgZWxlbWVudDogRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIGNvbnN0IHJlc3BvbnNpdmVCcmVha3BvaW50ID0gdGhpcy5yZXNwb25zaXZlO1xuICAgIGNvbnN0IGJyZWFrcG9pbnRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZShgLS1jdWktYnJlYWtwb2ludC0ke3Jlc3BvbnNpdmVCcmVha3BvaW50LnRyaW0oKX1gKSB8fCBmYWxzZTtcbiAgICByZXR1cm4gYnJlYWtwb2ludFZhbHVlID8gYCR7cGFyc2VGbG9hdChicmVha3BvaW50VmFsdWUudHJpbSgpKSAtIDAuMDJ9cHhgIDogZmFsc2U7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdAc2hvd0hpZGUuc3RhcnQnLCBbJyRldmVudCddKVxuICBhbmltYXRlU3RhcnQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd2aXNpYmxlJykge1xuICAgICAgaWYgKCF0aGlzLnNjcm9sbCkge1xuICAgICAgICB0aGlzLmJhY2tkcm9wU2VydmljZS5oaWRlU2Nyb2xsYmFyKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3Nob3dpbmcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdoaWRpbmcnKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdAc2hvd0hpZGUuZG9uZScsIFsnJGV2ZW50J10pXG4gIGFuaW1hdGVEb25lKGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd2aXNpYmxlJykge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3Nob3dpbmcnKTtcbiAgICAgIH1cbiAgICAgIGlmIChldmVudC50b1N0YXRlID09PSAnaGlkZGVuJykge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2hpZGluZycpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuZG9jdW1lbnQuYm9keSwgJ292ZXJmbG93Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5kb2N1bWVudC5ib2R5LCAncGFkZGluZ1JpZ2h0Jyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5zaG93ID0gdGhpcy52aXNpYmxlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bkhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5rZXkgPT09ICdFc2NhcGUnICYmXG4gICAgICB0aGlzLmtleWJvYXJkICYmXG4gICAgICB0aGlzLnZpc2libGUgJiZcbiAgICAgIHRoaXMuYmFja2Ryb3AgIT09ICdzdGF0aWMnXG4gICAgKSB7XG4gICAgICB0aGlzLm9mZmNhbnZhc1NlcnZpY2UudG9nZ2xlKHsgc2hvdzogZmFsc2UsIGlkOiB0aGlzLmlkIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVUb2dnbGVTdWJzY3JpYmUoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vIGhvdGZpeCB0byBhdm9pZCBvZmZjYW52YXMgZmxpY2tlciBvbiB0aGUgZmlyc3QgcmVuZGVyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2Rpc3BsYXknLCAnZmxleCcpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vZmZjYW52YXNTZXJ2aWNlLnRvZ2dsZSh7IHNob3c6IGZhbHNlLCBpZDogdGhpcy5pZCB9KTtcbiAgfVxuXG4gIHNldEZvY3VzKCk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRlVG9nZ2xlU3Vic2NyaWJlKCk6IHZvaWQge1xuICAgIHRoaXMub2ZmY2FudmFzU2VydmljZS5vZmZjYW52YXNTdGF0ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGFjdGlvbikgPT4ge1xuICAgICAgICBpZiAodGhpcyA9PT0gYWN0aW9uLm9mZmNhbnZhcyB8fCB0aGlzLmlkID09PSBhY3Rpb24uaWQpIHtcbiAgICAgICAgICBpZiAoJ3Nob3cnIGluIGFjdGlvbikge1xuICAgICAgICAgICAgdGhpcy52aXNpYmxlID1cbiAgICAgICAgICAgICAgYWN0aW9uPy5zaG93ID09PSAndG9nZ2xlJyA/ICF0aGlzLnZpc2libGUgOiBhY3Rpb24uc2hvdztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBiYWNrZHJvcENsaWNrU3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICBpZiAoc3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLiNiYWNrZHJvcENsaWNrU3Vic2NyaXB0aW9uID1cbiAgICAgICAgdGhpcy5iYWNrZHJvcFNlcnZpY2UuYmFja2Ryb3BDbGljayRcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKChjbGlja2VkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9mZmNhbnZhc1NlcnZpY2UudG9nZ2xlKHsgc2hvdzogIWNsaWNrZWQsIGlkOiB0aGlzLmlkIH0pO1xuICAgICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNiYWNrZHJvcENsaWNrU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0QmFja2Ryb3Aoc2V0QmFja2Ryb3A6IGJvb2xlYW4gfCAnc3RhdGljJyk6IHZvaWQge1xuICAgIHRoaXMuI2FjdGl2ZUJhY2tkcm9wID0gISFzZXRCYWNrZHJvcCA/IHRoaXMuYmFja2Ryb3BTZXJ2aWNlLnNldEJhY2tkcm9wKCdvZmZjYW52YXMnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuYmFja2Ryb3BTZXJ2aWNlLmNsZWFyQmFja2Ryb3AodGhpcy4jYWN0aXZlQmFja2Ryb3ApO1xuICAgIHNldEJhY2tkcm9wID09PSB0cnVlID8gdGhpcy5iYWNrZHJvcENsaWNrU3Vic2NyaWJlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuYmFja2Ryb3BDbGlja1N1YnNjcmliZShmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGxheW91dENoYW5nZVN1YnNjcmliZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG5cbiAgICBpZiAoc3Vic2NyaWJlKSB7XG5cbiAgICAgIGlmICghdGhpcy5yZXNwb25zaXZlQnJlYWtwb2ludCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3BvbnNpdmVCcmVha3BvaW50ID0gYChtYXgtd2lkdGg6ICR7dGhpcy5yZXNwb25zaXZlQnJlYWtwb2ludH0pYDtcblxuICAgICAgY29uc3QgbGF5b3V0Q2hhbmdlcyA9IHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoW3Jlc3BvbnNpdmVCcmVha3BvaW50XSk7XG5cbiAgICAgIHRoaXMuI2xheW91dENoYW5nZVN1YnNjcmlwdGlvbiA9IGxheW91dENoYW5nZXNcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgZmlsdGVyKGJyZWFrcG9pbnRTdGF0ZSA9PiAhYnJlYWtwb2ludFN0YXRlLm1hdGNoZXMpLFxuICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgKGJyZWFrcG9pbnRTdGF0ZTogQnJlYWtwb2ludFN0YXRlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZpc2libGUgPSBicmVha3BvaW50U3RhdGUubWF0Y2hlcztcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2xheW91dENoYW5nZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2RrVHJhcEZvY3VzIGNka1RyYXBGb2N1c0F1dG9DYXB0dXJlPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuIl19
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2ZmY2FudmFzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvb2ZmY2FudmFzL29mZmNhbnZhcy9vZmZjYW52YXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9vZmZjYW52YXMvb2ZmY2FudmFzL29mZmNhbnZhcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFrQixLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsVUFBVSxFQUVWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixXQUFXLEVBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBS3hDLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQTZCZixNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLFdBQVcsQ0FBc0I7SUFFakMsWUFDNEIsUUFBa0IsRUFDZixVQUFlLEVBQ3BDLFFBQW1CLEVBQ25CLFdBQXVCLEVBQ3ZCLGdCQUFrQyxFQUNsQyxlQUFnQyxFQUNoQyxrQkFBc0M7UUFOcEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNmLGVB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QUFRO3NCQUFoQixLQUFLO2dCQU9rQyxRQUFRO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU83QixTQUFTO3NCQUFqQixLQUFLO2dCQVFHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQU02QixJQUFJO3NCQUF0QyxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLFdBQVc7Z0JBTXVDLFNBQVM7c0JBQWhGLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7O3NCQUFHLFdBQVc7dUJBQUMsaUJBQWlCO2dCQVk5QixNQUFNO3NCQUE3QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQVFsQyxPQUFPO3NCQURWLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBdUJuQixhQUFhO3NCQUEvQixNQUFNO2dCQUdILFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPO2dCQVdoQixVQUFVO3NCQURiLFdBQVc7dUJBQUMsa0JBQWtCO2dCQU0zQixRQUFRO3NCQURYLFdBQVc7dUJBQUMsZUFBZTtnQkFNeEIsY0FBYztzQkFEakIsV0FBVzt1QkFBQyxXQUFXO2dCQXdCeEIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWEzQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZ0IxQyxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIEFuaW1hdGlvbkV2ZW50LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBQTEFURk9STV9JRCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludFN0YXRlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQmFja2Ryb3BTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYmFja2Ryb3AvYmFja2Ryb3Auc2VydmljZSc7XG5pbXBvcnQgeyBPZmZjYW52YXNTZXJ2aWNlIH0gZnJvbSAnLi4vb2ZmY2FudmFzLnNlcnZpY2UnO1xuXG5sZXQgbmV4dElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1vZmZjYW52YXMnLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignc2hvd0hpZGUnLCBbXG4gICAgICBzdGF0ZShcbiAgICAgICAgJ3Zpc2libGUnLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgLy8gdmlzaWJpbGl0eTogJ3Zpc2libGUnXG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgc3RhdGUoXG4gICAgICAgICdoaWRkZW4nLFxuICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgLy8gdmlzaWJpbGl0eTogJ2hpZGRlbidcbiAgICAgICAgfSlcbiAgICAgICksXG4gICAgICB0cmFuc2l0aW9uKCd2aXNpYmxlIDw9PiAqJywgW2FuaW1hdGUoJzMwMG1zJyldKVxuICAgIF0pXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vZmZjYW52YXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vZmZjYW52YXMuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjT2ZmY2FudmFzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0ExMXlNb2R1bGVdLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWhvc3QtbWV0YWRhdGEtcHJvcGVydHlcbiAgaG9zdDogeyBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyB9XG59KVxuZXhwb3J0IGNsYXNzIE9mZmNhbnZhc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAjZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBob3N0RWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIG9mZmNhbnZhc1NlcnZpY2U6IE9mZmNhbnZhc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYWNrZHJvcFNlcnZpY2U6IEJhY2tkcm9wU2VydmljZSxcbiAgICBwcml2YXRlIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyXG4gICkge31cblxuICAvKipcbiAgICogQXBwbHkgYSBiYWNrZHJvcCBvbiBib2R5IHdoaWxlIG9mZmNhbnZhcyBpcyBvcGVuLlxuICAgKiBAdHlwZSBib29sZWFuIHwgJ3N0YXRpYydcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KCkgYmFja2Ryb3A6IGJvb2xlYW4gfCAnc3RhdGljJyA9IHRydWU7XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgb2ZmY2FudmFzIHdoZW4gZXNjYXBlIGtleSBpcyBwcmVzc2VkIFtkb2NzXVxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBrZXlib2FyZCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIENvbXBvbmVudHMgcGxhY2VtZW50LCB0aGVyZeKAmXMgbm8gZGVmYXVsdCBwbGFjZW1lbnQuXG4gICAqIEB0eXBlIHsnc3RhcnQnIHwgJ2VuZCcgfCAndG9wJyB8ICdib3R0b20nfVxuICAgKiBAZGVmYXVsdCAnc3RhcnQnXG4gICAqL1xuICBASW5wdXQoKSBwbGFjZW1lbnQ6IHN0cmluZyB8ICdzdGFydCcgfCAnZW5kJyB8ICd0b3AnIHwgJ2JvdHRvbScgPSAnc3RhcnQnO1xuXG4gIC8qKlxuICAgKiBSZXNwb25zaXZlIG9mZmNhbnZhcyBwcm9wZXJ0eSBoaWRlcyBjb250ZW50IG91dHNpZGUgdGhlIHZpZXdwb3J0IGZyb20gYSBzcGVjaWZpZWQgYnJlYWtwb2ludCBhbmQgZG93bi5cbiAgICogQHR5cGUgYm9vbGVhbiB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCAneHhsJztcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKiBAc2luY2UgNC4zLjEwXG4gICAqL1xuICBASW5wdXQoKSByZXNwb25zaXZlPzogYm9vbGVhbiB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCAneHhsJyA9IHRydWU7XG4gIEBJbnB1dCgpIGlkID0gYG9mZmNhbnZhcy0ke3RoaXMucGxhY2VtZW50fS0ke25leHRJZCsrfWA7XG4gIC8qKlxuICAgKiBEZWZhdWx0IHJvbGUgZm9yIG9mZmNhbnZhcy4gW2RvY3NdXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKiBAZGVmYXVsdCAnZGlhbG9nJ1xuICAgKi9cbiAgQElucHV0KCkgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2RpYWxvZyc7XG4gIC8qKlxuICAgKiBTZXQgYXJpYS1tb2RhbCBodG1sIGF0dHIgZm9yIG9mZmNhbnZhcy4gW2RvY3NdXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLW1vZGFsJykgYXJpYU1vZGFsID0gdHJ1ZTtcblxuICAjYWN0aXZlQmFja2Ryb3AhOiBIVE1MRGl2RWxlbWVudDtcbiAgI2JhY2tkcm9wQ2xpY2tTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gICNsYXlvdXRDaGFuZ2VTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gICNzaG93ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEFsbG93IGJvZHkgc2Nyb2xsaW5nIHdoaWxlIG9mZmNhbnZhcyBpcyB2aXNpYmxlLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2Nyb2xsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgdmlzaWJpbGl0eSBvZiBvZmZjYW52YXMgY29tcG9uZW50LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiN2aXNpYmxlID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuI3Zpc2libGUpIHtcbiAgICAgIHRoaXMuc2V0QmFja2Ryb3AodGhpcy5iYWNrZHJvcCk7XG4gICAgICB0aGlzLnNldEZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0QmFja2Ryb3AoZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLmxheW91dENoYW5nZVN1YnNjcmliZSh0aGlzLiN2aXNpYmxlKTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jdmlzaWJsZTtcbiAgfVxuXG4gICN2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEV2ZW50IHRyaWdnZXJlZCBvbiB2aXNpYmxlIGNoYW5nZS5cbiAgICogQHR5cGUgRXZlbnRFbWl0dGVyPGJvb2xlYW4+XG4gICAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgb2ZmY2FudmFzOiB0eXBlb2YgdGhpcy5yZXNwb25zaXZlID09PSAnYm9vbGVhbicsXG4gICAgICBbYG9mZmNhbnZhcy0ke3RoaXMucmVzcG9uc2l2ZX1gXTogdHlwZW9mIHRoaXMucmVzcG9uc2l2ZSAhPT0gJ2Jvb2xlYW4nLFxuICAgICAgW2BvZmZjYW52YXMtJHt0aGlzLnBsYWNlbWVudH1gXTogISF0aGlzLnBsYWNlbWVudCxcbiAgICAgIHNob3c6IHRoaXMuc2hvd1xuICAgIH07XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1oaWRkZW4nKVxuICBnZXQgYXJpYUhpZGRlbigpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZSA/IG51bGwgOiB0cnVlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JylcbiAgZ2V0IHRhYkluZGV4KCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiAnLTEnO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdAc2hvd0hpZGUnKVxuICBnZXQgYW5pbWF0ZVRyaWdnZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlID8gJ3Zpc2libGUnIDogJ2hpZGRlbic7XG4gIH1cblxuICBnZXQgc2hvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlICYmIHRoaXMuI3Nob3c7XG4gIH1cblxuICBzZXQgc2hvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuI3Nob3cgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCByZXNwb25zaXZlQnJlYWtwb2ludCgpOiBzdHJpbmcgfCBmYWxzZSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLnJlc3BvbnNpdmUgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGVsZW1lbnQ6IEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICBjb25zdCByZXNwb25zaXZlQnJlYWtwb2ludCA9IHRoaXMucmVzcG9uc2l2ZTtcbiAgICBjb25zdCBicmVha3BvaW50VmFsdWUgPSBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpPy5nZXRQcm9wZXJ0eVZhbHVlKGAtLWN1aS1icmVha3BvaW50LSR7cmVzcG9uc2l2ZUJyZWFrcG9pbnQudHJpbSgpfWApID8/IGZhbHNlO1xuICAgIHJldHVybiBicmVha3BvaW50VmFsdWUgPyBgJHtwYXJzZUZsb2F0KGJyZWFrcG9pbnRWYWx1ZS50cmltKCkpIC0gMC4wMn1weGAgOiBmYWxzZTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ0BzaG93SGlkZS5zdGFydCcsIFsnJGV2ZW50J10pXG4gIGFuaW1hdGVTdGFydChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3Zpc2libGUnKSB7XG4gICAgICBpZiAoIXRoaXMuc2Nyb2xsKSB7XG4gICAgICAgIHRoaXMuYmFja2Ryb3BTZXJ2aWNlLmhpZGVTY3JvbGxiYXIoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnc2hvd2luZycpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2hpZGluZycpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ0BzaG93SGlkZS5kb25lJywgWyckZXZlbnQnXSlcbiAgYW5pbWF0ZURvbmUoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3Zpc2libGUnKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnc2hvd2luZycpO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICdoaWRkZW4nKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnaGlkaW5nJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5kb2N1bWVudC5ib2R5LCAnb3ZlcmZsb3cnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmRvY3VtZW50LmJvZHksICdwYWRkaW5nUmlnaHQnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNob3cgPSB0aGlzLnZpc2libGU7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlEb3duSGFuZGxlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgJiZcbiAgICAgIHRoaXMua2V5Ym9hcmQgJiZcbiAgICAgIHRoaXMudmlzaWJsZSAmJlxuICAgICAgdGhpcy5iYWNrZHJvcCAhPT0gJ3N0YXRpYydcbiAgICApIHtcbiAgICAgIHRoaXMub2ZmY2FudmFzU2VydmljZS50b2dnbGUoeyBzaG93OiBmYWxzZSwgaWQ6IHRoaXMuaWQgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdGF0ZVRvZ2dsZVN1YnNjcmliZSgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gaG90Zml4IHRvIGF2b2lkIG9mZmNhbnZhcyBmbGlja2VyIG9uIHRoZSBmaXJzdCByZW5kZXJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsICdmbGV4Jyk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9mZmNhbnZhc1NlcnZpY2UudG9nZ2xlKHsgc2hvdzogZmFsc2UsIGlkOiB0aGlzLmlkIH0pO1xuICB9XG5cbiAgc2V0Rm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGVUb2dnbGVTdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5vZmZjYW52YXNTZXJ2aWNlLm9mZmNhbnZhc1N0YXRlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoYWN0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0aGlzID09PSBhY3Rpb24ub2ZmY2FudmFzIHx8IHRoaXMuaWQgPT09IGFjdGlvbi5pZCkge1xuICAgICAgICAgIGlmICgnc2hvdycgaW4gYWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnZpc2libGUgPVxuICAgICAgICAgICAgICBhY3Rpb24/LnNob3cgPT09ICd0b2dnbGUnID8gIXRoaXMudmlzaWJsZSA6IGFjdGlvbi5zaG93O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGJhY2tkcm9wQ2xpY2tTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmIChzdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuI2JhY2tkcm9wQ2xpY2tTdWJzY3JpcHRpb24gPVxuICAgICAgICB0aGlzLmJhY2tkcm9wU2VydmljZS5iYWNrZHJvcENsaWNrJFxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGNsaWNrZWQpID0+IHtcbiAgICAgICAgICAgIHRoaXMub2ZmY2FudmFzU2VydmljZS50b2dnbGUoeyBzaG93OiAhY2xpY2tlZCwgaWQ6IHRoaXMuaWQgfSk7XG4gICAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2JhY2tkcm9wQ2xpY2tTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRCYWNrZHJvcChzZXRCYWNrZHJvcDogYm9vbGVhbiB8ICdzdGF0aWMnKTogdm9pZCB7XG4gICAgdGhpcy4jYWN0aXZlQmFja2Ryb3AgPSAhIXNldEJhY2tkcm9wID8gdGhpcy5iYWNrZHJvcFNlcnZpY2Uuc2V0QmFja2Ryb3AoJ29mZmNhbnZhcycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5iYWNrZHJvcFNlcnZpY2UuY2xlYXJCYWNrZHJvcCh0aGlzLiNhY3RpdmVCYWNrZHJvcCk7XG4gICAgc2V0QmFja2Ryb3AgPT09IHRydWUgPyB0aGlzLmJhY2tkcm9wQ2xpY2tTdWJzY3JpYmUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5iYWNrZHJvcENsaWNrU3Vic2NyaWJlKGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgbGF5b3V0Q2hhbmdlU3Vic2NyaWJlKHN1YnNjcmliZTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcblxuICAgIGlmIChzdWJzY3JpYmUpIHtcblxuICAgICAgaWYgKCF0aGlzLnJlc3BvbnNpdmVCcmVha3BvaW50KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzcG9uc2l2ZUJyZWFrcG9pbnQgPSBgKG1heC13aWR0aDogJHt0aGlzLnJlc3BvbnNpdmVCcmVha3BvaW50fSlgO1xuXG4gICAgICBjb25zdCBsYXlvdXRDaGFuZ2VzID0gdGhpcy5icmVha3BvaW50T2JzZXJ2ZXIub2JzZXJ2ZShbcmVzcG9uc2l2ZUJyZWFrcG9pbnRdKTtcblxuICAgICAgdGhpcy4jbGF5b3V0Q2hhbmdlU3Vic2NyaXB0aW9uID0gbGF5b3V0Q2hhbmdlc1xuICAgICAgICAucGlwZShcbiAgICAgICAgICBmaWx0ZXIoYnJlYWtwb2ludFN0YXRlID0+ICFicmVha3BvaW50U3RhdGUubWF0Y2hlcyksXG4gICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAoYnJlYWtwb2ludFN0YXRlOiBCcmVha3BvaW50U3RhdGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGJyZWFrcG9pbnRTdGF0ZS5tYXRjaGVzO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jbGF5b3V0Q2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjZGtUcmFwRm9jdXMgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmU+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuXG4iXX0=