@dereekb/dbx-web 9.24.20 → 9.24.22

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.
Files changed (32) hide show
  1. package/calendar/esm2020/lib/calendar.store.mjs +2 -2
  2. package/calendar/fesm2015/dereekb-dbx-web-calendar.mjs +1 -1
  3. package/calendar/fesm2015/dereekb-dbx-web-calendar.mjs.map +1 -1
  4. package/calendar/fesm2020/dereekb-dbx-web-calendar.mjs +1 -1
  5. package/calendar/fesm2020/dereekb-dbx-web-calendar.mjs.map +1 -1
  6. package/calendar/package.json +2 -2
  7. package/esm2020/calendar/lib/calendar.store.mjs +2 -2
  8. package/esm2020/mapbox/lib/mapbox.layout.component.mjs +31 -15
  9. package/esm2020/mapbox/lib/mapbox.layout.drawer.component.mjs +2 -2
  10. package/esm2020/mapbox/lib/mapbox.store.mjs +7 -7
  11. package/fesm2015/dereekb-dbx-web-calendar.mjs +1 -1
  12. package/fesm2015/dereekb-dbx-web-calendar.mjs.map +1 -1
  13. package/fesm2015/dereekb-dbx-web-mapbox.mjs +37 -21
  14. package/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
  15. package/fesm2020/dereekb-dbx-web-calendar.mjs +1 -1
  16. package/fesm2020/dereekb-dbx-web-calendar.mjs.map +1 -1
  17. package/fesm2020/dereekb-dbx-web-mapbox.mjs +37 -21
  18. package/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
  19. package/lib/layout/style/_style.scss +13 -10
  20. package/lib/layout/text/_text.scss +3 -2
  21. package/mapbox/esm2020/lib/mapbox.layout.component.mjs +31 -15
  22. package/mapbox/esm2020/lib/mapbox.layout.drawer.component.mjs +2 -2
  23. package/mapbox/esm2020/lib/mapbox.store.mjs +7 -7
  24. package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs +37 -21
  25. package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
  26. package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs +37 -21
  27. package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
  28. package/mapbox/lib/mapbox.layout.component.d.ts +11 -4
  29. package/mapbox/lib/mapbox.layout.drawer.component.d.ts +1 -1
  30. package/mapbox/package.json +3 -3
  31. package/package.json +3 -3
  32. package/table/package.json +3 -3
@@ -86,7 +86,7 @@ export class DbxCalendarStore extends ComponentStore {
86
86
  }))));
87
87
  });
88
88
  // MARK: Accessors
89
- this.showTodayButton$ = this.state$.pipe(map((x) => x.showTodayButton), distinctUntilChanged(), shareReplay());
89
+ this.showTodayButton$ = this.state$.pipe(map((x) => x.showTodayButton), distinctUntilChanged(), shareReplay(1));
90
90
  this.date$ = this.state$.pipe(map((x) => x.date));
91
91
  this.dateTappedTwice$ = this.state$.pipe(map((x) => x.dateTappedTwice));
92
92
  this.events$ = this.state$.pipe(map((x) => x.events));
@@ -171,4 +171,4 @@ export function updateCalendarStateWithNavigationRangeLimit(state, navigationRan
171
171
  return { ...state, navigationRangeLimit };
172
172
  }
173
173
  }
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQWEsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxFQUFFLGNBQWMsRUFBUyx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzSixPQUFPLEVBQWMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRWhILE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0Isc0NBQWUsQ0FBQTtJQUNmLG9DQUFhLENBQUE7SUFDYixrQ0FBVyxDQUFBO0FBQ2IsQ0FBQyxFQUpXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFJOUI7QUFnREQsTUFBTSxVQUFVLGdDQUFnQyxDQUFDLGFBQTRCO0lBQzNFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDO0lBQzNELElBQUksS0FBVyxDQUFDO0lBQ2hCLElBQUksR0FBUyxD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QUssR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDM0c7S0FDRjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSwyQ0FBMkMsQ0FBQyxLQUFvQixFQUFFLG9CQUErQztJQUMvSCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRXZCLG9EQUFvRDtJQUNwRCxJQUFJLG9CQUFvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLEVBQUU7UUFDMUUsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDckUsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztLQUM5RDtTQUFNO1FBQ0wsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLG9CQUFvQixFQUFFLENBQUM7S0FDM0M7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xhbXBEYXRlVG9EYXRlUmFuZ2UsIERhdGVSYW5nZSwgaXNEYXRlSW5EYXRlUmFuZ2UsIGlzRnVsbERhdGVSYW5nZSwgaXNTYW1lRGF0ZURheSwgaXNTYW1lRGF0ZVJhbmdlIH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5pbXBvcnQgeyBpbnZlcnREZWNpc2lvbiwgTWF5YmUsIHJlZHVjZUJvb2xlYW5zV2l0aEFuZEZuIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBDYWxlbmRhckV2ZW50IH0gZnJvbSAnYW5ndWxhci1jYWxlbmRhcic7XG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5EYXlzLCBhZGREYXlzLCBlbmRPZkRheSwgZW5kT2ZNb250aCwgZW5kT2ZXZWVrLCBpc1NhbWVEYXksIHN0YXJ0T2ZEYXksIHN0YXJ0T2ZNb250aCwgc3RhcnRPZldlZWssIGlzQmVmb3JlLCBpc0FmdGVyIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0LCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZW51bSBDYWxlbmRhckRpc3BsYXlUeXBlIHtcbiAgTU9OVEggPSAnbW9udGgnLFxuICBXRUVLID0gJ3dlZWsnLFxuICBEQVkgPSAnZGF5J1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyVmlld0RhdGVSYW5nZSB7XG4gIHR5cGU6IENhbGVuZGFyRGlzcGxheVR5cGU7XG4gIHN0YXJ0OiBEYXRlO1xuICBlbmQ6IERhdGU7XG4gIGRpc3RhbmNlOiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgbWluIG5hdmlnYXRpb24gZGF0ZSBpcyBjdXJyZW50bHkgdmlzaWJsZS4gVGhpcyBpbXBsaWVzIHRoYXQgd2UncmUgYXQgdGhlIG1pbmltdW0gZGF0ZS5cbiAgICovXG4gIGlzTWluRGF0ZVZpc2libGU6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgbWF4aW11bSBuYXZpZ2F0aW9uIGRhdGUgaXMgdmlzaWJsZS4gVGhpcyBpbXBsaWVzIHRoYXQgd2UncmUgYXQgdGhlIG1heGltdW0gZGF0ZS5cbiAgICovXG4gIGlzTWF4RGF0ZVZpc2libGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJTdGF0ZTxUID0gYW55PiB7XG4gIC8qKlxuICAgKiBDYWxlbmRhciBkaXNwbGF5IG1vZGVcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IENhbGVuZGFyRGlzcGxheVR5cGU7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzaG93IHRoZSB0b2RheSBidXR0b24uIERlZmF1bHRzIHRvIHRydWUuXG4gICAqL1xuICByZWFkb25seSBzaG93VG9kYXlCdXR0b24/OiBib29sZWFuO1xuICAvKipcbiAgICogRGF0ZSB0aGF0IGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0ZTogRGF0ZTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBkYXkgd2FzIHRhcHBlZC9zZXQgdHdpY2UuXG4gICAqL1xuICByZWFkb25seSBkYXRlVGFwcGVkVHdpY2U6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTZXQgb2YgY2FsZW5kYXIgZXZlbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRzOiBDYWxlbmRhckV2ZW50PFQ+W107XG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYXZpZ2F0aW9uIHJhbmdlIGxpbWl0YXRpb24gdGhhdCBsaW1pdHMgd2hpY2ggZGF0ZXMgY2FuIGJlIG5hdmlnYXRlZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IG5hdmlnYXRpb25SYW5nZUxpbWl0PzogTWF5YmU8UGFydGlhbDxEYXRlUmFuZ2U+PjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc3BsYXkgdGhlIHBhZ2UgYnV0dG9ucyB3aGVuIGFwcGxpY2FibGUuIENhbiBvbmx5IGJlIGRpc3BsYXllZCB3aGVuIGEgbmF2aWdhdGlvblJhbmdlTGltaXQgaXMgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd1BhZ2VCdXR0b25zPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZpc2libGVEYXRlUmFuZ2VGb3JDYWxlbmRhclN0YXRlKGNhbGVuZGFyU3RhdGU6IENhbGVuZGFyU3RhdGUpOiBDYWxlbmRhclZpZXdEYXRlUmFuZ2Uge1xuICBjb25zdCB7IG5hdmlnYXRpb25SYW5nZUxpbWl0LCB0eXBlLCBkYXRlIH0gPSBjYWxlbmRhclN0YXRlO1xuICBsZXQgc3RhcnQ6IERhdGU7XG4gIGxldCBlbmQ6IERhdGU7XG4gIGxldCBkaXN0YW5jZTogbnVtYmVyO1xuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgQ2FsZW5kYXJEaXNwbGF5VHlwZS5NT05USDpcbiAgICAgIHN0YXJ0ID0gc3RhcnRPZkRheShzdGFydE9mV2VlayhzdGFydE9mTW9udGgoZGF0ZSksIHsgd2Vla1N0YXJ0c09uOiAwIH0pKTtcbiAgICAgIGVuZCA9IGVuZE9mV2VlayhlbmRPZk1vbnRoKGRhdGUpKTtcbiAgICAgIGRpc3RhbmNlID0gZGlmZmVyZW5jZUluRGF5cyhlbmQsIHN0YXJ0KSArIDE7XG4gICAgICBicmVhaztcbiAgICBjYXNlIENhbGVuZGFyRGlzcGxheVR5cGUuV0VFSzpcbiAgICAgIHN0YXJ0ID0gc3RhcnRPZldlZWsoZGF0ZSk7XG4gICAgICBlbmQgPSBlbmRPZldlZWsoc3RhcnQpO1xuICAgICAgZGlzdGFuY2UgPSA3OyAvLyA3IGRheXMgaW4gYSB3ZWVrLlxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBDYWxlbmRhckRpc3BsYXlUeXBlLkRBWTpcbiAgICAgIHN0YXJ0ID0gc3RhcnRPZkRheShkYXRlKTtcbiAgICAgIGVuZCA9IGVuZE9mRGF5KGRhdGUpO1xuICAgICAgZGlzdGFuY2UgPSAxO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBjb25zdCBpc01pbkRhdGVWaXNpYmxlOiBib29sZWFuID0gbmF2aWdhdGlvblJhbmdlTGltaXQ/LnN0YXJ0ICE9IG51bGwgPyAhaXNBZnRlcihzdGFydCwgbmF2aWdhdGlvblJhbmdlTGltaXQuc3RhcnQpIDogZmFsc2U7XG4gIGNvbnN0IGlzTWF4RGF0ZVZpc2libGU6IGJvb2xlYW4gPSBuYXZpZ2F0aW9uUmFuZ2VMaW1pdD8uZW5kICE9IG51bGwgPyAhaXNCZWZvcmUoZW5kLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdC5lbmQpIDogZmFsc2U7XG5cbiAgLy8gVE9ETzogQ29uc2lkZXIgY2hhbmdpbmcgbWluL21heCBkYXRlIHZpc2libGUgbG9naWNhbCB1dGlsaXR5IHRvIGJlIGZ1bGx5IHdpdGhpbiB0aGUgY3VycmVudCBtb250aCBvciBub3QsXG4gIC8vIG5vdCBqdXN0IHZpc2libGUsIHNpbmNlIGl0IGNhbiBjaGFuZ2UgdG8gYSBsb2NrZWQgb3V0IGNhbGVuZGFyIGFuZCBkb2Vzbid0IGZlZWwgYXMgVUkgZnJpZW5kbHkuXG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlLFxuICAgIHN0YXJ0LFxuICAgIGVuZCxcbiAgICBkaXN0YW5jZSxcbiAgICBpc01pbkRhdGVWaXNpYmxlLFxuICAgIGlzTWF4RGF0ZVZpc2libGVcbiAgfTtcbn1cblxuY29uc3QgZGlzdGluY3RVbnRpbERhdGVPclR5cGVPckV2ZW50c0NoYW5nZWQgPSBkaXN0aW5jdFVudGlsQ2hhbmdlZDxDYWxlbmRhclN0YXRlPigoYSwgYikgPT4gYT8uZGF0ZSA9PT0gYj8uZGF0ZSAmJiBhPy50eXBlID09PSBiPy50eXBlICYmIGE/LmV2ZW50cyA9PT0gYj8uZXZlbnRzKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERieENhbGVuZGFyU3RvcmU8VCA9IGFueT4gZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxDYWxlbmRhclN0YXRlPFQ+PiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKHtcbiAgICAgIHR5cGU6IENhbGVuZGFyRGlzcGxheVR5cGUuTU9OVEgsXG4gICAgICBzaG93VG9kYXlCdXR0b246IHRydWUsXG4gICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgZGF0ZVRhcHBlZFR3aWNlOiBmYWxzZSxcbiAgICAgIGV2ZW50czogW11cbiAgICB9KTtcbiAgfVxuXG4gIC8vIE1BUks6IEVmZmVjdHNcbiAgcmVhZG9ubHkgdGFwRmlyc3RQYWdlID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPHZvaWQ+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgdGhpcy5taW5OYXZpZ2F0aW9uRGF0ZSQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIHRhcCgoeCkgPT4ge1xuICAgICAgICAgICAgaWYgKHgpIHtcbiAgICAgICAgICAgICAgdGhpcy50YXBEYXkoeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHRhcE5leHQgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLnZpc2libGVEYXRlUmFuZ2UkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHsgZW5kLCBpc01heERhdGVWaXNpYmxlIH0pID0+IHtcbiAgICAgICAgICAgIGlmICghaXNNYXhEYXRlVmlzaWJsZSkge1xuICAgICAgICAgICAgICB0aGlzLnRhcERheShhZGREYXlzKGVuZCwgMSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9KTtcblxuICByZWFkb25seSB0YXBQcmV2aW91cyA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTx2b2lkPikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgIHRoaXMudmlzaWJsZURhdGVSYW5nZSQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIHRhcCgoeyBzdGFydCwgaXNNaW5EYXRlVmlzaWJsZSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTWluRGF0ZVZpc2libGUpIHtcbiAgICAgICAgICAgICAgdGhpcy50YXBEYXkoYWRkRGF5cyhzdGFydCwgLTEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgdGFwTGFzdFBhZ2UgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLm1heE5hdmlnYXRpb25EYXRlJC5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKCh4KSA9PiB7XG4gICAgICAgICAgICBpZiAoeCkge1xuICAgICAgICAgICAgICB0aGlzLnRhcERheSh4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG5cbiAgcmVhZG9ubHkgc2hvd1RvZGF5QnV0dG9uJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnNob3dUb2RheUJ1dHRvbiksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgpXG4gICk7XG5cbiAgcmVhZG9ubHkgZGF0ZSQgPSB0aGlzLnN0YXRlJC5waXBlKG1hcCgoeCkgPT4geC5kYXRlKSk7XG4gIHJlYWRvbmx5IGRhdGVUYXBwZWRUd2ljZSQgPSB0aGlzLnN0YXRlJC5waXBlKG1hcCgoeCkgPT4geC5kYXRlVGFwcGVkVHdpY2UpKTtcblxuICByZWFkb25seSBldmVudHMkID0gdGhpcy5zdGF0ZSQucGlwZShtYXAoKHgpID0+IHguZXZlbnRzKSk7XG5cbiAgLy8gVE9ETzogRmlsdGVyIHRvIGJlIGV2ZW50cyB0aGF0IHdpbGwgb25seSBiZSBkaXNwbGF5ZWQgYmFzZWQgb24gdGhlIGN1cnJlbnQgY2FsZW5kYXIuXG4gIHJlYWRvbmx5IHZpc2libGVFdmVudHMkID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguZXZlbnRzKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGV2ZW50c0ZvckRhdGVTdGF0ZSQgPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxEYXRlT3JUeXBlT3JFdmVudHNDaGFuZ2VkLFxuICAgIG1hcCgoc3RhdGUpID0+ICh7XG4gICAgICBkYXRlOiBzdGF0ZS5kYXRlLFxuICAgICAgZXZlbnRzOiBzdGF0ZS5ldmVudHMuZmlsdGVyKCh4KSA9PiBpc1NhbWVEYXkoeC5zdGFydCwgc3RhdGUuZGF0ZSkgfHwgKHguZW5kICYmIGlzQmVmb3JlKHguc3RhcnQsIHN0YXRlLmRhdGUpICYmIGlzQWZ0ZXIoeC5lbmQsIHN0YXRlLmRhdGUpKSksXG4gICAgICBkYXRlVGFwcGVkVHdpY2U6IHN0YXRlLmRhdGVUYXBwZWRUd2ljZVxuICAgIH0pKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGV2ZW50c0ZvckRhdGUkID0gdGhpcy5ldmVudHNGb3JEYXRlU3RhdGUkLnBpcGUobWFwKChzdGF0ZSkgPT4gc3RhdGUuZXZlbnRzKSk7XG5cbiAgcmVhZG9ubHkgdmlzaWJsZURhdGVSYW5nZSQ6IE9ic2VydmFibGU8Q2FsZW5kYXJWaWV3RGF0ZVJhbmdlPiA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgLy8gSWYgdGhlIGRhdGUgb3IgdHlwZSBjaGFuZ2VzLCBjaGVjayBhZ2Fpbi5cbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gYT8uZGF0ZSA9PT0gYj8uZGF0ZSAmJiBhPy50eXBlID09PSBiPy50eXBlKSxcbiAgICBtYXAodmlzaWJsZURhdGVSYW5nZUZvckNhbGVuZGFyU3RhdGUpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiB7XG4gICAgICBpZiAoYS50eXBlID09PSBiLnR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGlzU2FtZURheShhLnN0YXJ0LCBiLnN0YXJ0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTsgLy8gVHlwZSBjaGFuZ2VkLCBkYXRlIHJhbmdlIGNoYW5nZWQuXG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpc0xvb2tpbmdBdFRvZGF5JCA9IHRoaXMudmlzaWJsZURhdGVSYW5nZSQucGlwZShcbiAgICBtYXAoKHgpID0+IGlzRGF0ZUluRGF0ZVJhbmdlKG5ldyBEYXRlKCksIHgpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaXNMb29raW5nQXRNaW5pbXVtRGF0ZSQgPSB0aGlzLnZpc2libGVEYXRlUmFuZ2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmlzTWluRGF0ZVZpc2libGUpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpc0xvb2tpbmdBdE1heGltdW1EYXRlJCA9IHRoaXMudmlzaWJsZURhdGVSYW5nZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguaXNNYXhEYXRlVmlzaWJsZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGhhc011bHRpcGxlUGFnZXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5pc0xvb2tpbmdBdE1pbmltdW1EYXRlJCwgdGhpcy5pc0xvb2tpbmdBdE1heGltdW1EYXRlJF0pLnBpcGUobWFwKGludmVydERlY2lzaW9uKHJlZHVjZUJvb2xlYW5zV2l0aEFuZEZuKHRydWUpKSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBkaXNwbGF5VHlwZSQgPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC50eXBlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gYSA9PT0gYiksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCQgPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5uYXZpZ2F0aW9uUmFuZ2VMaW1pdCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoaXNTYW1lRGF0ZVJhbmdlKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG1pbk5hdmlnYXRpb25EYXRlJDogT2JzZXJ2YWJsZTxNYXliZTxEYXRlPj4gPSB0aGlzLm5hdmlnYXRpb25SYW5nZUxpbWl0JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geD8uc3RhcnQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGlzU2FtZURhdGVEYXkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbWF4TmF2aWdhdGlvbkRhdGUkOiBPYnNlcnZhYmxlPE1heWJlPERhdGU+PiA9IHRoaXMubmF2aWdhdGlvblJhbmdlTGltaXQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Py5lbmQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGlzU2FtZURhdGVEYXkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaXNUb2RheUluTmF2aWdhdGlvblJhbmdlTGltaXQkID0gdGhpcy5uYXZpZ2F0aW9uUmFuZ2VMaW1pdCQucGlwZShcbiAgICBtYXAoKHgpID0+IGlzRGF0ZUluRGF0ZVJhbmdlKG5ldyBEYXRlKCksIHggPz8ge30pKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY2FuSnVtcFRvVG9kYXkkID0gY29tYmluZUxhdGVzdChbdGhpcy5pc0xvb2tpbmdBdFRvZGF5JCwgdGhpcy5pc1RvZGF5SW5OYXZpZ2F0aW9uUmFuZ2VMaW1pdCRdKS5waXBlKFxuICAgIG1hcCgoW2lzTG9va2luZ0F0VG9kYXksIGlzVG9kYXlJbk5hdmlnYXRpb25SYW5nZUxpbWl0XSkgPT4gIWlzTG9va2luZ0F0VG9kYXkgJiYgaXNUb2RheUluTmF2aWdhdGlvblJhbmdlTGltaXQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjYW5TaG93UGFnZUJ1dHRvbnMkID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguc2hvd1BhZ2VCdXR0b25zICYmIHgubmF2aWdhdGlvblJhbmdlTGltaXQgJiYgaXNGdWxsRGF0ZVJhbmdlKHgubmF2aWdhdGlvblJhbmdlTGltaXQpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc2hvd1BhZ2VCdXR0b25zJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuY2FuU2hvd1BhZ2VCdXR0b25zJCwgdGhpcy5pc0xvb2tpbmdBdE1pbmltdW1EYXRlJCwgdGhpcy5pc0xvb2tpbmdBdE1heGltdW1EYXRlJF0pLnBpcGUoXG4gICAgbWFwKChbY2FuU2hvd1BhZ2VCdXR0b25zLCBpc0xvb2tpbmdBdE1pbmltdW1EYXRlLCBpc0xvb2tpbmdBdE1heGltdW1EYXRlXSkgPT4ge1xuICAgICAgcmV0dXJuIGNhblNob3dQYWdlQnV0dG9ucyAmJiAhKGlzTG9va2luZ0F0TWluaW11bURhdGUgJiYgaXNMb29raW5nQXRNYXhpbXVtRGF0ZSk7XG4gICAgfSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIC8vIE1BUks6IFN0YXRlIENoYW5nZXNcbiAgLyoqXG4gICAqIFRhcCBhIGRheS5cbiAgICpcbiAgICogLSBJZiB0aGUgc2FtZSBkYXkgaXMgcHJlc2VudGVkLCBkYXRlVGFwcGVkVHdpY2UgaXMgZmxpcHBlZC5cbiAgICovXG4gIHJlYWRvbmx5IHRhcERheSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGRhdGU6IERhdGUpID0+IHVwZGF0ZUNhbGVuZGFyU3RhdGVXaXRoVGFwcGVkRGF0ZShzdGF0ZSwgZGF0ZSkpO1xuXG4gIC8qKlxuICAgKiBTZXQgYWxsIGV2ZW50cyBvbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICByZWFkb25seSBzZXRFdmVudHMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBldmVudHM6IENhbGVuZGFyRXZlbnQ8VD5bXSkgPT4gKHsgLi4uc3RhdGUsIGV2ZW50cyB9KSk7XG5cbiAgLyoqXG4gICAqIFNldCBhbGwgZXZlbnRzIG9uIHRoZSBjYWxlbmRhci5cbiAgICovXG4gIHJlYWRvbmx5IHNldERpc3BsYXlUeXBlID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgdHlwZTogQ2FsZW5kYXJEaXNwbGF5VHlwZSkgPT4gKHsgLi4uc3RhdGUsIHR5cGUgfSkpO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBuYXZpZ2F0aW9uIGxpbWl0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0TmF2aWdhdGlvblJhbmdlTGltaXQgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdDogTWF5YmU8UGFydGlhbDxEYXRlUmFuZ2U+PikgPT4gdXBkYXRlQ2FsZW5kYXJTdGF0ZVdpdGhOYXZpZ2F0aW9uUmFuZ2VMaW1pdChzdGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQpKTtcblxuICByZWFkb25seSBzZXRTaG93VG9kYXlCdXR0b24gPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBzaG93VG9kYXlCdXR0b246IE1heWJlPGJvb2xlYW4+KSA9PiAoeyAuLi5zdGF0ZSwgc2hvd1RvZGF5QnV0dG9uOiBzaG93VG9kYXlCdXR0b24gIT0gbnVsbCA/IHNob3dUb2RheUJ1dHRvbiA6IHRydWUgfSkpO1xuICByZWFkb25seSBzZXRTaG93UGFnZUJ1dHRvbnMgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBzaG93UGFnZUJ1dHRvbnM6IE1heWJlPGJvb2xlYW4+KSA9PiAoeyAuLi5zdGF0ZSwgc2hvd1BhZ2VCdXR0b25zOiBzaG93UGFnZUJ1dHRvbnMgIT0gbnVsbCA/IHNob3dQYWdlQnV0dG9ucyA6IGZhbHNlIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUNhbGVuZGFyU3RhdGVXaXRoVGFwcGVkRGF0ZShzdGF0ZTogQ2FsZW5kYXJTdGF0ZSwgZGF0ZTogRGF0ZSkge1xuICAvLyBvbmx5IHVwZGF0ZSB0aGUgZGF0ZSBpZiBpdCBpcyBkaWZmZXJlbnRcbiAgaWYgKCFpc1NhbWVEYXRlRGF5KHN0YXRlLmRhdGUsIGRhdGUpKSB7XG4gICAgLy8gT25seSB1cGRhdGUgdGhlIGRhdGUgaWYgaXQgaXMgd2l0aGluIHRoZSBkYXRlIHJhbmdlXG4gICAgaWYgKCFzdGF0ZS5uYXZpZ2F0aW9uUmFuZ2VMaW1pdCB8fCBpc0RhdGVJbkRhdGVSYW5nZShkYXRlLCBzdGF0ZS5uYXZpZ2F0aW9uUmFuZ2VMaW1pdCkpIHtcbiAgICAgIHN0YXRlID0geyAuLi5zdGF0ZSwgZGF0ZSwgZGF0ZVRhcHBlZFR3aWNlOiBpc1NhbWVEYXkoZGF0ZSwgc3RhdGUuZGF0ZSkgPyAhc3RhdGUuZGF0ZVRhcHBlZFR3aWNlIDogZmFsc2UgfTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVDYWxlbmRhclN0YXRlV2l0aE5hdmlnYXRpb25SYW5nZUxpbWl0KHN0YXRlOiBDYWxlbmRhclN0YXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdDogTWF5YmU8UGFydGlhbDxEYXRlUmFuZ2U+Pikge1xuICBjb25zdCB7IGRhdGUgfSA9IHN0YXRlO1xuXG4gIC8vIGNhcCB0aGUgZGF0ZSBpZiBpdCBkb2Vzbid0IGZhbGwgd2l0aGluIHRoZSByYW5nZS5cbiAgaWYgKG5hdmlnYXRpb25SYW5nZUxpbWl0ICYmICFpc0RhdGVJbkRhdGVSYW5nZShkYXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCkpIHtcbiAgICBjb25zdCBjbGFtcGVkRGF0ZSA9IGNsYW1wRGF0ZVRvRGF0ZVJhbmdlKGRhdGUsIG5hdmlnYXRpb25SYW5nZUxpbWl0KTtcbiAgICByZXR1cm4geyAuLi5zdGF0ZSwgZGF0ZTogY2xhbXBlZERhdGUsIG5hdmlnYXRpb25SYW5nZUxpbWl0IH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgLi4uc3RhdGUsIG5hdmlnYXRpb25SYW5nZUxpbWl0IH07XG4gIH1cbn1cbiJdfQ==
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQWEsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxFQUFFLGNBQWMsRUFBUyx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzSixPQUFPLEVBQWMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRWhILE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0Isc0NBQWUsQ0FBQTtJQUNmLG9DQUFhLENBQUE7SUFDYixrQ0FBVyxDQUFBO0FBQ2IsQ0FBQyxFQUpXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFJOUI7QUFnREQsTUFBTSxVQUFVLGdDQUFnQyxDQUFDLGFBQTRCO0lBQzNFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDO0lBQzNELElBQUksS0FBVyxDQUFDO0lBQ2hCLElBQUksR0FBUyxD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RTtZQUN0RixLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzNHO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsMkNBQTJDLENBQUMsS0FBb0IsRUFBRSxvQkFBK0M7SUFDL0gsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztJQUV2QixvREFBb0Q7SUFDcEQsSUFBSSxvQkFBb0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO1FBQzFFLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLENBQUM7S0FDOUQ7U0FBTTtRQUNMLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0tBQzNDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsYW1wRGF0ZVRvRGF0ZVJhbmdlLCBEYXRlUmFuZ2UsIGlzRGF0ZUluRGF0ZVJhbmdlLCBpc0Z1bGxEYXRlUmFuZ2UsIGlzU2FtZURhdGVEYXksIGlzU2FtZURhdGVSYW5nZSB9IGZyb20gJ0BkZXJlZWtiL2RhdGUnO1xuaW1wb3J0IHsgaW52ZXJ0RGVjaXNpb24sIE1heWJlLCByZWR1Y2VCb29sZWFuc1dpdGhBbmRGbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJFdmVudCB9IGZyb20gJ2FuZ3VsYXItY2FsZW5kYXInO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluRGF5cywgYWRkRGF5cywgZW5kT2ZEYXksIGVuZE9mTW9udGgsIGVuZE9mV2VlaywgaXNTYW1lRGF5LCBzdGFydE9mRGF5LCBzdGFydE9mTW9udGgsIHN0YXJ0T2ZXZWVrLCBpc0JlZm9yZSwgaXNBZnRlciB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaXJzdCwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGVudW0gQ2FsZW5kYXJEaXNwbGF5VHlwZSB7XG4gIE1PTlRIID0gJ21vbnRoJyxcbiAgV0VFSyA9ICd3ZWVrJyxcbiAgREFZID0gJ2RheSdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYWxlbmRhclZpZXdEYXRlUmFuZ2Uge1xuICB0eXBlOiBDYWxlbmRhckRpc3BsYXlUeXBlO1xuICBzdGFydDogRGF0ZTtcbiAgZW5kOiBEYXRlO1xuICBkaXN0YW5jZTogbnVtYmVyO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIG1pbiBuYXZpZ2F0aW9uIGRhdGUgaXMgY3VycmVudGx5IHZpc2libGUuIFRoaXMgaW1wbGllcyB0aGF0IHdlJ3JlIGF0IHRoZSBtaW5pbXVtIGRhdGUuXG4gICAqL1xuICBpc01pbkRhdGVWaXNpYmxlOiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIG1heGltdW0gbmF2aWdhdGlvbiBkYXRlIGlzIHZpc2libGUuIFRoaXMgaW1wbGllcyB0aGF0IHdlJ3JlIGF0IHRoZSBtYXhpbXVtIGRhdGUuXG4gICAqL1xuICBpc01heERhdGVWaXNpYmxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyU3RhdGU8VCA9IGFueT4ge1xuICAvKipcbiAgICogQ2FsZW5kYXIgZGlzcGxheSBtb2RlXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBDYWxlbmRhckRpc3BsYXlUeXBlO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2hvdyB0aGUgdG9kYXkgYnV0dG9uLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd1RvZGF5QnV0dG9uPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERhdGUgdGhhdCBpcyBzZWxlY3RlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGU6IERhdGU7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgZGF5IHdhcyB0YXBwZWQvc2V0IHR3aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0ZVRhcHBlZFR3aWNlOiBib29sZWFuO1xuICAvKipcbiAgICogU2V0IG9mIGNhbGVuZGFyIGV2ZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50czogQ2FsZW5kYXJFdmVudDxUPltdO1xuICAvKipcbiAgICogT3B0aW9uYWwgbmF2aWdhdGlvbiByYW5nZSBsaW1pdGF0aW9uIHRoYXQgbGltaXRzIHdoaWNoIGRhdGVzIGNhbiBiZSBuYXZpZ2F0ZWQgdG8uXG4gICAqL1xuICByZWFkb25seSBuYXZpZ2F0aW9uUmFuZ2VMaW1pdD86IE1heWJlPFBhcnRpYWw8RGF0ZVJhbmdlPj47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBkaXNwbGF5IHRoZSBwYWdlIGJ1dHRvbnMgd2hlbiBhcHBsaWNhYmxlLiBDYW4gb25seSBiZSBkaXNwbGF5ZWQgd2hlbiBhIG5hdmlnYXRpb25SYW5nZUxpbWl0IGlzIHNldC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3dQYWdlQnV0dG9ucz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2aXNpYmxlRGF0ZVJhbmdlRm9yQ2FsZW5kYXJTdGF0ZShjYWxlbmRhclN0YXRlOiBDYWxlbmRhclN0YXRlKTogQ2FsZW5kYXJWaWV3RGF0ZVJhbmdlIHtcbiAgY29uc3QgeyBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCwgdHlwZSwgZGF0ZSB9ID0gY2FsZW5kYXJTdGF0ZTtcbiAgbGV0IHN0YXJ0OiBEYXRlO1xuICBsZXQgZW5kOiBEYXRlO1xuICBsZXQgZGlzdGFuY2U6IG51bWJlcjtcblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIENhbGVuZGFyRGlzcGxheVR5cGUuTU9OVEg6XG4gICAgICBzdGFydCA9IHN0YXJ0T2ZEYXkoc3RhcnRPZldlZWsoc3RhcnRPZk1vbnRoKGRhdGUpLCB7IHdlZWtTdGFydHNPbjogMCB9KSk7XG4gICAgICBlbmQgPSBlbmRPZldlZWsoZW5kT2ZNb250aChkYXRlKSk7XG4gICAgICBkaXN0YW5jZSA9IGRpZmZlcmVuY2VJbkRheXMoZW5kLCBzdGFydCkgKyAxO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBDYWxlbmRhckRpc3BsYXlUeXBlLldFRUs6XG4gICAgICBzdGFydCA9IHN0YXJ0T2ZXZWVrKGRhdGUpO1xuICAgICAgZW5kID0gZW5kT2ZXZWVrKHN0YXJ0KTtcbiAgICAgIGRpc3RhbmNlID0gNzsgLy8gNyBkYXlzIGluIGEgd2Vlay5cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQ2FsZW5kYXJEaXNwbGF5VHlwZS5EQVk6XG4gICAgICBzdGFydCA9IHN0YXJ0T2ZEYXkoZGF0ZSk7XG4gICAgICBlbmQgPSBlbmRPZkRheShkYXRlKTtcbiAgICAgIGRpc3RhbmNlID0gMTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgY29uc3QgaXNNaW5EYXRlVmlzaWJsZTogYm9vbGVhbiA9IG5hdmlnYXRpb25SYW5nZUxpbWl0Py5zdGFydCAhPSBudWxsID8gIWlzQWZ0ZXIoc3RhcnQsIG5hdmlnYXRpb25SYW5nZUxpbWl0LnN0YXJ0KSA6IGZhbHNlO1xuICBjb25zdCBpc01heERhdGVWaXNpYmxlOiBib29sZWFuID0gbmF2aWdhdGlvblJhbmdlTGltaXQ/LmVuZCAhPSBudWxsID8gIWlzQmVmb3JlKGVuZCwgbmF2aWdhdGlvblJhbmdlTGltaXQuZW5kKSA6IGZhbHNlO1xuXG4gIC8vIFRPRE86IENvbnNpZGVyIGNoYW5naW5nIG1pbi9tYXggZGF0ZSB2aXNpYmxlIGxvZ2ljYWwgdXRpbGl0eSB0byBiZSBmdWxseSB3aXRoaW4gdGhlIGN1cnJlbnQgbW9udGggb3Igbm90LFxuICAvLyBub3QganVzdCB2aXNpYmxlLCBzaW5jZSBpdCBjYW4gY2hhbmdlIHRvIGEgbG9ja2VkIG91dCBjYWxlbmRhciBhbmQgZG9lc24ndCBmZWVsIGFzIFVJIGZyaWVuZGx5LlxuXG4gIHJldHVybiB7XG4gICAgdHlwZSxcbiAgICBzdGFydCxcbiAgICBlbmQsXG4gICAgZGlzdGFuY2UsXG4gICAgaXNNaW5EYXRlVmlzaWJsZSxcbiAgICBpc01heERhdGVWaXNpYmxlXG4gIH07XG59XG5cbmNvbnN0IGRpc3RpbmN0VW50aWxEYXRlT3JUeXBlT3JFdmVudHNDaGFuZ2VkID0gZGlzdGluY3RVbnRpbENoYW5nZWQ8Q2FsZW5kYXJTdGF0ZT4oKGEsIGIpID0+IGE/LmRhdGUgPT09IGI/LmRhdGUgJiYgYT8udHlwZSA9PT0gYj8udHlwZSAmJiBhPy5ldmVudHMgPT09IGI/LmV2ZW50cyk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYnhDYWxlbmRhclN0b3JlPFQgPSBhbnk+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8Q2FsZW5kYXJTdGF0ZTxUPj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcih7XG4gICAgICB0eXBlOiBDYWxlbmRhckRpc3BsYXlUeXBlLk1PTlRILFxuICAgICAgc2hvd1RvZGF5QnV0dG9uOiB0cnVlLFxuICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgIGRhdGVUYXBwZWRUd2ljZTogZmFsc2UsXG4gICAgICBldmVudHM6IFtdXG4gICAgfSk7XG4gIH1cblxuICAvLyBNQVJLOiBFZmZlY3RzXG4gIHJlYWRvbmx5IHRhcEZpcnN0UGFnZSA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTx2b2lkPikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgIHRoaXMubWluTmF2aWdhdGlvbkRhdGUkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHgpID0+IHtcbiAgICAgICAgICAgIGlmICh4KSB7XG4gICAgICAgICAgICAgIHRoaXMudGFwRGF5KHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9KTtcblxuICByZWFkb25seSB0YXBOZXh0ID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPHZvaWQ+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgdGhpcy52aXNpYmxlRGF0ZVJhbmdlJC5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKCh7IGVuZCwgaXNNYXhEYXRlVmlzaWJsZSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTWF4RGF0ZVZpc2libGUpIHtcbiAgICAgICAgICAgICAgdGhpcy50YXBEYXkoYWRkRGF5cyhlbmQsIDEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgdGFwUHJldmlvdXMgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLnZpc2libGVEYXRlUmFuZ2UkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHsgc3RhcnQsIGlzTWluRGF0ZVZpc2libGUgfSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc01pbkRhdGVWaXNpYmxlKSB7XG4gICAgICAgICAgICAgIHRoaXMudGFwRGF5KGFkZERheXMoc3RhcnQsIC0xKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHRhcExhc3RQYWdlID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPHZvaWQ+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgdGhpcy5tYXhOYXZpZ2F0aW9uRGF0ZSQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIHRhcCgoeCkgPT4ge1xuICAgICAgICAgICAgaWYgKHgpIHtcbiAgICAgICAgICAgICAgdGhpcy50YXBEYXkoeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xuXG4gIC8vIE1BUks6IEFjY2Vzc29yc1xuXG4gIHJlYWRvbmx5IHNob3dUb2RheUJ1dHRvbiQgPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5zaG93VG9kYXlCdXR0b24pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkYXRlJCA9IHRoaXMuc3RhdGUkLnBpcGUobWFwKCh4KSA9PiB4LmRhdGUpKTtcbiAgcmVhZG9ubHkgZGF0ZVRhcHBlZFR3aWNlJCA9IHRoaXMuc3RhdGUkLnBpcGUobWFwKCh4KSA9PiB4LmRhdGVUYXBwZWRUd2ljZSkpO1xuXG4gIHJlYWRvbmx5IGV2ZW50cyQgPSB0aGlzLnN0YXRlJC5waXBlKG1hcCgoeCkgPT4geC5ldmVudHMpKTtcblxuICAvLyBUT0RPOiBGaWx0ZXIgdG8gYmUgZXZlbnRzIHRoYXQgd2lsbCBvbmx5IGJlIGRpc3BsYXllZCBiYXNlZCBvbiB0aGUgY3VycmVudCBjYWxlbmRhci5cbiAgcmVhZG9ubHkgdmlzaWJsZUV2ZW50cyQgPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5ldmVudHMpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZXZlbnRzRm9yRGF0ZVN0YXRlJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbERhdGVPclR5cGVPckV2ZW50c0NoYW5nZWQsXG4gICAgbWFwKChzdGF0ZSkgPT4gKHtcbiAgICAgIGRhdGU6IHN0YXRlLmRhdGUsXG4gICAgICBldmVudHM6IHN0YXRlLmV2ZW50cy5maWx0ZXIoKHgpID0+IGlzU2FtZURheSh4LnN0YXJ0LCBzdGF0ZS5kYXRlKSB8fCAoeC5lbmQgJiYgaXNCZWZvcmUoeC5zdGFydCwgc3RhdGUuZGF0ZSkgJiYgaXNBZnRlcih4LmVuZCwgc3RhdGUuZGF0ZSkpKSxcbiAgICAgIGRhdGVUYXBwZWRUd2ljZTogc3RhdGUuZGF0ZVRhcHBlZFR3aWNlXG4gICAgfSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZXZlbnRzRm9yRGF0ZSQgPSB0aGlzLmV2ZW50c0ZvckRhdGVTdGF0ZSQucGlwZShtYXAoKHN0YXRlKSA9PiBzdGF0ZS5ldmVudHMpKTtcblxuICByZWFkb25seSB2aXNpYmxlRGF0ZVJhbmdlJDogT2JzZXJ2YWJsZTxDYWxlbmRhclZpZXdEYXRlUmFuZ2U+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICAvLyBJZiB0aGUgZGF0ZSBvciB0eXBlIGNoYW5nZXMsIGNoZWNrIGFnYWluLlxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhPy5kYXRlID09PSBiPy5kYXRlICYmIGE/LnR5cGUgPT09IGI/LnR5cGUpLFxuICAgIG1hcCh2aXNpYmxlRGF0ZVJhbmdlRm9yQ2FsZW5kYXJTdGF0ZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IHtcbiAgICAgIGlmIChhLnR5cGUgPT09IGIudHlwZSkge1xuICAgICAgICByZXR1cm4gaXNTYW1lRGF5KGEuc3RhcnQsIGIuc3RhcnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBUeXBlIGNoYW5nZWQsIGRhdGUgcmFuZ2UgY2hhbmdlZC5cbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlzTG9va2luZ0F0VG9kYXkkID0gdGhpcy52aXNpYmxlRGF0ZVJhbmdlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gaXNEYXRlSW5EYXRlUmFuZ2UobmV3IERhdGUoKSwgeCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpc0xvb2tpbmdBdE1pbmltdW1EYXRlJCA9IHRoaXMudmlzaWJsZURhdGVSYW5nZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguaXNNaW5EYXRlVmlzaWJsZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlzTG9va2luZ0F0TWF4aW11bURhdGUkID0gdGhpcy52aXNpYmxlRGF0ZVJhbmdlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5pc01heERhdGVWaXNpYmxlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaGFzTXVsdGlwbGVQYWdlcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlzTG9va2luZ0F0TWluaW11bURhdGUkLCB0aGlzLmlzTG9va2luZ0F0TWF4aW11bURhdGUkXSkucGlwZShtYXAoaW52ZXJ0RGVjaXNpb24ocmVkdWNlQm9vbGVhbnNXaXRoQW5kRm4odHJ1ZSkpKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXlUeXBlJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnR5cGUpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhID09PSBiKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG5hdmlnYXRpb25SYW5nZUxpbWl0JCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Lm5hdmlnYXRpb25SYW5nZUxpbWl0KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChpc1NhbWVEYXRlUmFuZ2UpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbWluTmF2aWdhdGlvbkRhdGUkOiBPYnNlcnZhYmxlPE1heWJlPERhdGU+PiA9IHRoaXMubmF2aWdhdGlvblJhbmdlTGltaXQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Py5zdGFydCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoaXNTYW1lRGF0ZURheSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBtYXhOYXZpZ2F0aW9uRGF0ZSQ6IE9ic2VydmFibGU8TWF5YmU8RGF0ZT4+ID0gdGhpcy5uYXZpZ2F0aW9uUmFuZ2VMaW1pdCQucGlwZShcbiAgICBtYXAoKHgpID0+IHg/LmVuZCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoaXNTYW1lRGF0ZURheSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpc1RvZGF5SW5OYXZpZ2F0aW9uUmFuZ2VMaW1pdCQgPSB0aGlzLm5hdmlnYXRpb25SYW5nZUxpbWl0JC5waXBlKFxuICAgIG1hcCgoeCkgPT4gaXNEYXRlSW5EYXRlUmFuZ2UobmV3IERhdGUoKSwgeCA/PyB7fSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjYW5KdW1wVG9Ub2RheSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlzTG9va2luZ0F0VG9kYXkkLCB0aGlzLmlzVG9kYXlJbk5hdmlnYXRpb25SYW5nZUxpbWl0JF0pLnBpcGUoXG4gICAgbWFwKChbaXNMb29raW5nQXRUb2RheSwgaXNUb2RheUluTmF2aWdhdGlvblJhbmdlTGltaXRdKSA9PiAhaXNMb29raW5nQXRUb2RheSAmJiBpc1RvZGF5SW5OYXZpZ2F0aW9uUmFuZ2VMaW1pdCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGNhblNob3dQYWdlQnV0dG9ucyQgPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5zaG93UGFnZUJ1dHRvbnMgJiYgeC5uYXZpZ2F0aW9uUmFuZ2VMaW1pdCAmJiBpc0Z1bGxEYXRlUmFuZ2UoeC5uYXZpZ2F0aW9uUmFuZ2VMaW1pdCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzaG93UGFnZUJ1dHRvbnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5jYW5TaG93UGFnZUJ1dHRvbnMkLCB0aGlzLmlzTG9va2luZ0F0TWluaW11bURhdGUkLCB0aGlzLmlzTG9va2luZ0F0TWF4aW11bURhdGUkXSkucGlwZShcbiAgICBtYXAoKFtjYW5TaG93UGFnZUJ1dHRvbnMsIGlzTG9va2luZ0F0TWluaW11bURhdGUsIGlzTG9va2luZ0F0TWF4aW11bURhdGVdKSA9PiB7XG4gICAgICByZXR1cm4gY2FuU2hvd1BhZ2VCdXR0b25zICYmICEoaXNMb29raW5nQXRNaW5pbXVtRGF0ZSAmJiBpc0xvb2tpbmdBdE1heGltdW1EYXRlKTtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLy8gTUFSSzogU3RhdGUgQ2hhbmdlc1xuICAvKipcbiAgICogVGFwIGEgZGF5LlxuICAgKlxuICAgKiAtIElmIHRoZSBzYW1lIGRheSBpcyBwcmVzZW50ZWQsIGRhdGVUYXBwZWRUd2ljZSBpcyBmbGlwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFwRGF5ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZGF0ZTogRGF0ZSkgPT4gdXBkYXRlQ2FsZW5kYXJTdGF0ZVdpdGhUYXBwZWREYXRlKHN0YXRlLCBkYXRlKSk7XG5cbiAgLyoqXG4gICAqIFNldCBhbGwgZXZlbnRzIG9uIHRoZSBjYWxlbmRhci5cbiAgICovXG4gIHJlYWRvbmx5IHNldEV2ZW50cyA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGV2ZW50czogQ2FsZW5kYXJFdmVudDxUPltdKSA9PiAoeyAuLi5zdGF0ZSwgZXZlbnRzIH0pKTtcblxuICAvKipcbiAgICogU2V0IGFsbCBldmVudHMgb24gdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0RGlzcGxheVR5cGUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCB0eXBlOiBDYWxlbmRhckRpc3BsYXlUeXBlKSA9PiAoeyAuLi5zdGF0ZSwgdHlwZSB9KSk7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG5hdmlnYXRpb24gbGltaXQuXG4gICAqL1xuICByZWFkb25seSBzZXROYXZpZ2F0aW9uUmFuZ2VMaW1pdCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIG5hdmlnYXRpb25SYW5nZUxpbWl0OiBNYXliZTxQYXJ0aWFsPERhdGVSYW5nZT4+KSA9PiB1cGRhdGVDYWxlbmRhclN0YXRlV2l0aE5hdmlnYXRpb25SYW5nZUxpbWl0KHN0YXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCkpO1xuXG4gIHJlYWRvbmx5IHNldFNob3dUb2RheUJ1dHRvbiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHNob3dUb2RheUJ1dHRvbjogTWF5YmU8Ym9vbGVhbj4pID0+ICh7IC4uLnN0YXRlLCBzaG93VG9kYXlCdXR0b246IHNob3dUb2RheUJ1dHRvbiAhPSBudWxsID8gc2hvd1RvZGF5QnV0dG9uIDogdHJ1ZSB9KSk7XG4gIHJlYWRvbmx5IHNldFNob3dQYWdlQnV0dG9ucyA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHNob3dQYWdlQnV0dG9uczogTWF5YmU8Ym9vbGVhbj4pID0+ICh7IC4uLnN0YXRlLCBzaG93UGFnZUJ1dHRvbnM6IHNob3dQYWdlQnV0dG9ucyAhPSBudWxsID8gc2hvd1BhZ2VCdXR0b25zIDogZmFsc2UgfSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FsZW5kYXJTdGF0ZVdpdGhUYXBwZWREYXRlKHN0YXRlOiBDYWxlbmRhclN0YXRlLCBkYXRlOiBEYXRlKSB7XG4gIC8vIG9ubHkgdXBkYXRlIHRoZSBkYXRlIGlmIGl0IGlzIGRpZmZlcmVudFxuICBpZiAoIWlzU2FtZURhdGVEYXkoc3RhdGUuZGF0ZSwgZGF0ZSkpIHtcbiAgICAvLyBPbmx5IHVwZGF0ZSB0aGUgZGF0ZSBpZiBpdCBpcyB3aXRoaW4gdGhlIGRhdGUgcmFuZ2VcbiAgICBpZiAoIXN0YXRlLm5hdmlnYXRpb25SYW5nZUxpbWl0IHx8IGlzRGF0ZUluRGF0ZVJhbmdlKGRhdGUsIHN0YXRlLm5hdmlnYXRpb25SYW5nZUxpbWl0KSkge1xuICAgICAgc3RhdGUgPSB7IC4uLnN0YXRlLCBkYXRlLCBkYXRlVGFwcGVkVHdpY2U6IGlzU2FtZURheShkYXRlLCBzdGF0ZS5kYXRlKSA/ICFzdGF0ZS5kYXRlVGFwcGVkVHdpY2UgOiBmYWxzZSB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUNhbGVuZGFyU3RhdGVXaXRoTmF2aWdhdGlvblJhbmdlTGltaXQoc3RhdGU6IENhbGVuZGFyU3RhdGUsIG5hdmlnYXRpb25SYW5nZUxpbWl0OiBNYXliZTxQYXJ0aWFsPERhdGVSYW5nZT4+KSB7XG4gIGNvbnN0IHsgZGF0ZSB9ID0gc3RhdGU7XG5cbiAgLy8gY2FwIHRoZSBkYXRlIGlmIGl0IGRvZXNuJ3QgZmFsbCB3aXRoaW4gdGhlIHJhbmdlLlxuICBpZiAobmF2aWdhdGlvblJhbmdlTGltaXQgJiYgIWlzRGF0ZUluRGF0ZVJhbmdlKGRhdGUsIG5hdmlnYXRpb25SYW5nZUxpbWl0KSkge1xuICAgIGNvbnN0IGNsYW1wZWREYXRlID0gY2xhbXBEYXRlVG9EYXRlUmFuZ2UoZGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQpO1xuICAgIHJldHVybiB7IC4uLnN0YXRlLCBkYXRlOiBjbGFtcGVkRGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyAuLi5zdGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQgfTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { tap, switchMap, first, startWith, shareReplay, throttleTime, map, distinctUntilChanged, BehaviorSubject, combineLatest, Subject } from 'rxjs';
2
- import { Component, ElementRef, Input, ViewChild } from '@angular/core';
2
+ import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
3
3
  import { DbxMapboxMapStore } from './mapbox.store';
4
4
  import { dbxColorBackground } from '@dereekb/dbx-web';
5
5
  import { SubscriptionObject } from '@dereekb/rxjs';
@@ -23,33 +23,40 @@ export class DbxMapboxLayoutComponent extends SubscriptionObject {
23
23
  constructor(dbxMapboxMapStore) {
24
24
  super();
25
25
  this.dbxMapboxMapStore = dbxMapboxMapStore;
26
+ this.openedChange = new EventEmitter();
26
27
  this._resized = new Subject();
27
28
  this._updateMargins = new Subject();
28
29
  this._forceHasContent = new BehaviorSubject(false);
29
30
  this._mode = new BehaviorSubject('side');
30
31
  this._side = new BehaviorSubject('right');
31
- this._openToggle = new BehaviorSubject(true);
32
+ this._isOpen = new BehaviorSubject(true);
32
33
  this._color = new BehaviorSubject(undefined);
33
34
  this._toggleSub = new SubscriptionObject();
34
35
  this.resized$ = this._resized.asObservable();
35
36
  this.side$ = this._side.pipe(distinctUntilChanged(), shareReplay(1));
36
37
  this.mode$ = this._mode.pipe(distinctUntilChanged(), shareReplay(1));
37
38
  this.hasContent$ = combineLatest([this._forceHasContent, this.dbxMapboxMapStore.hasContent$]).pipe(map(([hasContent, forceHasContent]) => hasContent || forceHasContent), distinctUntilChanged(), shareReplay(1));
38
- this.opened$ = combineLatest([this.hasContent$, this._openToggle]).pipe(map(([hasContent, open]) => hasContent && open), distinctUntilChanged(), shareReplay(1));
39
+ this.isOpen$ = this._isOpen.asObservable();
40
+ this.isOpenAndHasContent$ = combineLatest([this.hasContent$, this._isOpen]).pipe(map(([hasContent, open]) => hasContent && open), distinctUntilChanged(), shareReplay(1));
39
41
  this.position$ = this.side$.pipe(map((x) => (x === 'right' ? 'end' : 'start')), distinctUntilChanged(), shareReplay(1));
40
- this.drawerClasses$ = combineLatest([this.side$, this.dbxMapboxMapStore.hasContent$, this.opened$]).pipe(
42
+ this.drawerClasses$ = combineLatest([this.side$, this.dbxMapboxMapStore.hasContent$, this.isOpenAndHasContent$]).pipe(
41
43
  //
42
44
  map(([side, hasContent, open]) => (hasContent ? 'has-drawer-content' : 'no-drawer-content') + ` ${side}-drawer ` + (open ? 'open-drawer' : '')), distinctUntilChanged(), shareReplay(1));
43
45
  this.drawerButtonClasses$ = combineLatest([this.dbxMapboxMapStore.hasContent$, this._color]).pipe(
44
46
  //
45
47
  map(([hasContent, color]) => dbxColorBackground(color)), distinctUntilChanged(), shareReplay(1));
46
- this.buttonIcon$ = combineLatest([this.side$, this.opened$]).pipe(map(([side, opened]) => {
48
+ this.buttonIcon$ = combineLatest([this.side$, this.isOpenAndHasContent$]).pipe(map(([side, opened]) => {
47
49
  let icons = ['chevron_right', 'chevron_left'];
48
50
  if (side === 'left') {
49
51
  icons = icons.reverse();
50
52
  }
51
53
  return opened ? icons[0] : icons[1];
52
54
  }));
55
+ // MARK: Compat
56
+ /**
57
+ * @deprecated use isOpenAndHasContent$ instead.
58
+ */
59
+ this.opened$ = this.isOpenAndHasContent$;
53
60
  }
54
61
  ngOnInit() {
55
62
  this.subscription = this.side$.pipe(switchMap(() => this._resized.pipe(throttleTime(100, undefined, { leading: true, trailing: true }), map(() => 'r'), startWith('s')))).subscribe((reason) => {
@@ -68,7 +75,7 @@ export class DbxMapboxLayoutComponent extends SubscriptionObject {
68
75
  .pipe(switchMap((mode) => {
69
76
  let obs;
70
77
  if (mode === 'push') {
71
- obs = combineLatest([this.opened$.pipe(distinctUntilChanged()), this._updateMargins]).pipe(tap(([opened]) => {
78
+ obs = combineLatest([this.isOpenAndHasContent$.pipe(distinctUntilChanged()), this._updateMargins]).pipe(tap(([opened]) => {
72
79
  let { right } = this.drawerContainer._contentMargins;
73
80
  this.drawerContainer.updateContentMargins();
74
81
  setTimeout(() => {
@@ -96,7 +103,7 @@ export class DbxMapboxLayoutComponent extends SubscriptionObject {
96
103
  }));
97
104
  }
98
105
  else {
99
- obs = combineLatest([this.opened$.pipe(distinctUntilChanged()), this._updateMargins]).pipe(switchMap((_) => this.dbxMapboxMapStore.mapInstance$), tap((x) => {
106
+ obs = combineLatest([this.isOpenAndHasContent$.pipe(distinctUntilChanged()), this._updateMargins]).pipe(switchMap((_) => this.dbxMapboxMapStore.mapInstance$), tap((x) => {
100
107
  this.drawerContainer.updateContentMargins();
101
108
  x.triggerRepaint();
102
109
  }));
@@ -106,19 +113,20 @@ export class DbxMapboxLayoutComponent extends SubscriptionObject {
106
113
  .subscribe();
107
114
  }
108
115
  ngOnDestroy() {
116
+ this.openedChange.complete();
109
117
  this._resized.complete();
110
118
  this._updateMargins.complete();
111
119
  this._side.complete();
112
- this._openToggle.complete();
120
+ this._isOpen.complete();
113
121
  this._color.complete();
114
122
  this._toggleSub.destroy();
115
123
  this._forceHasContent.complete();
116
124
  }
117
125
  toggleDrawer(open) {
118
126
  if (open == null) {
119
- open = !this._openToggle.value;
127
+ open = !this._isOpen.value;
120
128
  }
121
- this._openToggle.next(open);
129
+ this._isOpen.next(open);
122
130
  }
123
131
  set side(side) {
124
132
  if (side != null) {
@@ -132,7 +140,7 @@ export class DbxMapboxLayoutComponent extends SubscriptionObject {
132
140
  }
133
141
  set opened(opened) {
134
142
  if (opened != null) {
135
- this._openToggle.next(opened);
143
+ this._isOpen.next(opened);
136
144
  }
137
145
  }
138
146
  set hasContent(hasContent) {
@@ -146,13 +154,21 @@ export class DbxMapboxLayoutComponent extends SubscriptionObject {
146
154
  onResized(event) {
147
155
  this._resized.next(event);
148
156
  }
157
+ onOpened(opened) {
158
+ this.openedChange.next(opened);
159
+ if (this._isOpen.value !== opened) {
160
+ this.openedChange.next(opened);
161
+ }
162
+ }
149
163
  }
150
164
  DbxMapboxLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxLayoutComponent, deps: [{ token: i1.DbxMapboxMapStore }], target: i0.ɵɵFactoryTarget.Component });
151
- DbxMapboxLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxMapboxLayoutComponent, selector: "dbx-mapbox-layout", inputs: { side: "side", mode: "mode", opened: "opened", hasContent: "hasContent", drawerColor: "drawerColor" }, viewQueries: [{ propertyName: "containerElement", first: true, predicate: MatDrawerContainer, descendants: true, read: ElementRef }, { propertyName: "drawerContainer", first: true, predicate: MatDrawerContainer, descendants: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer [opened]=\"opened$ | async\" [mode]=\"(mode$ | async) || 'side'\" [position]=\"(position$ | async) || 'end'\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (resized)=\"onResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <mat-icon>{{ buttonIcon$ | async }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n", styles: [".dbx-mapbox-layout-container{height:100%;max-width:100%}.dbx-mapbox-layout-container .mat-drawer-container{height:100%}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer{max-width:calc(100% - var(--dbx-mapbox-min-width-var, 60px))}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer-content{height:100%;width:100%;overflow:hidden}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{position:absolute;z-index:2;top:40%;border:none;display:flex;overflow:hidden}.left-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{left:0;border-radius:0 20px 20px 0}.right-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{right:0;border-radius:20px 0 0 20px}.has-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.has-drawer-content.open-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.no-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:0px}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button mat-icon{padding-left:8px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i3.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i3.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.ResizedDirective, selector: "[resized]", outputs: ["resized"] }, { kind: "component", type: i7.DbxMapboxLayoutDrawerComponent, selector: "dbx-mapbox-layout-drawer" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
165
+ DbxMapboxLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxMapboxLayoutComponent, selector: "dbx-mapbox-layout", inputs: { side: "side", mode: "mode", opened: "opened", hasContent: "hasContent", drawerColor: "drawerColor" }, outputs: { openedChange: "openedChange" }, viewQueries: [{ propertyName: "containerElement", first: true, predicate: MatDrawerContainer, descendants: true, read: ElementRef }, { propertyName: "drawerContainer", first: true, predicate: MatDrawerContainer, descendants: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer (openedChange)=\"onOpened($event)\" [opened]=\"isOpenAndHasContent$ | async\" [mode]=\"(mode$ | async) || 'side'\" [position]=\"(position$ | async) || 'end'\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (resized)=\"onResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <mat-icon>{{ buttonIcon$ | async }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n", styles: [".dbx-mapbox-layout-container{height:100%;max-width:100%}.dbx-mapbox-layout-container .mat-drawer-container{height:100%}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer{max-width:calc(100% - var(--dbx-mapbox-min-width-var, 60px))}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer-content{height:100%;width:100%;overflow:hidden}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{position:absolute;z-index:2;top:40%;border:none;display:flex;overflow:hidden}.left-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{left:0;border-radius:0 20px 20px 0}.right-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{right:0;border-radius:20px 0 0 20px}.has-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.has-drawer-content.open-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.no-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:0px}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button mat-icon{padding-left:8px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i3.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i3.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.ResizedDirective, selector: "[resized]", outputs: ["resized"] }, { kind: "component", type: i7.DbxMapboxLayoutDrawerComponent, selector: "dbx-mapbox-layout-drawer" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
152
166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxLayoutComponent, decorators: [{
153
167
  type: Component,
154
- args: [{ selector: 'dbx-mapbox-layout', template: "<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer [opened]=\"opened$ | async\" [mode]=\"(mode$ | async) || 'side'\" [position]=\"(position$ | async) || 'end'\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (resized)=\"onResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <mat-icon>{{ buttonIcon$ | async }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n", styles: [".dbx-mapbox-layout-container{height:100%;max-width:100%}.dbx-mapbox-layout-container .mat-drawer-container{height:100%}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer{max-width:calc(100% - var(--dbx-mapbox-min-width-var, 60px))}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer-content{height:100%;width:100%;overflow:hidden}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{position:absolute;z-index:2;top:40%;border:none;display:flex;overflow:hidden}.left-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{left:0;border-radius:0 20px 20px 0}.right-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{right:0;border-radius:20px 0 0 20px}.has-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.has-drawer-content.open-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.no-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:0px}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button mat-icon{padding-left:8px}\n"] }]
155
- }], ctorParameters: function () { return [{ type: i1.DbxMapboxMapStore }]; }, propDecorators: { containerElement: [{
168
+ args: [{ selector: 'dbx-mapbox-layout', template: "<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer (openedChange)=\"onOpened($event)\" [opened]=\"isOpenAndHasContent$ | async\" [mode]=\"(mode$ | async) || 'side'\" [position]=\"(position$ | async) || 'end'\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (resized)=\"onResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <mat-icon>{{ buttonIcon$ | async }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n", styles: [".dbx-mapbox-layout-container{height:100%;max-width:100%}.dbx-mapbox-layout-container .mat-drawer-container{height:100%}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer{max-width:calc(100% - var(--dbx-mapbox-min-width-var, 60px))}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer-content{height:100%;width:100%;overflow:hidden}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{position:absolute;z-index:2;top:40%;border:none;display:flex;overflow:hidden}.left-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{left:0;border-radius:0 20px 20px 0}.right-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{right:0;border-radius:20px 0 0 20px}.has-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.has-drawer-content.open-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.no-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:0px}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button mat-icon{padding-left:8px}\n"] }]
169
+ }], ctorParameters: function () { return [{ type: i1.DbxMapboxMapStore }]; }, propDecorators: { openedChange: [{
170
+ type: Output
171
+ }], containerElement: [{
156
172
  type: ViewChild,
157
173
  args: [MatDrawerContainer, { read: ElementRef }]
158
174
  }], drawerContainer: [{
@@ -172,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
172
188
  }], drawerColor: [{
173
189
  type: Input
174
190
  }] } });
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3gubGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkssT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFpQixNQUFNLGtCQUFrQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0FBTy9EOzs7Ozs7R0FNRztBQU1ILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxrQkFBa0I7SUFtRTlELFlBQXFCLGlCQUFvQztRQUN2RCxLQUFLLEVBQUUsQ0FBQztRQURXLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUF6RGpELGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUN2QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDckMscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFD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Q0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELElBQ0ksVUFBVSxDQUFDLFVBQTBCO1FBQ3ZDLElBQUksVUFBVSxJQUFJLElBQUksRUFBRTtZQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVELElBQ0ksV0FBVyxDQUFDLEtBQTJCO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBbUI7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7c0hBbk5VLHdCQUF3QjswR0FBeEIsd0JBQXdCLDJOQUN4QixrQkFBa0IsMkJBQVUsVUFBVSwrREFHdEMsa0JBQWtCLGdIQUdDLFVBQVUsa0VDakMxQyx5OEJBY0E7NEZEWWEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLG1CQUFtQjt3R0FNcEIsZ0JBQWdCO3NCQUR4QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJMUMsZUFBZTtzQkFEdkIsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBSXBCLE9BQU87c0JBRGYsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBMEtwRCxJQUFJO3NCQURQLEtBQUs7Z0JBUUYsSUFBSTtzQkFEUCxLQUFLO2dCQVFGLE1BQU07c0JBRFQsS0FBSztnQkFRRixVQUFVO3NCQURiLEtBQUs7Z0JBUUYsV0FBVztzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGFwLCBzd2l0Y2hNYXAsIGZpcnN0LCBzdGFydFdpdGgsIHNoYXJlUmVwbGF5LCB0aHJvdHRsZVRpbWUsIG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWFwU3RvcmUgfSBmcm9tICcuL21hcGJveC5zdG9yZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgZGJ4Q29sb3JCYWNrZ3JvdW5kLCBEYnhUaGVtZUNvbG9yIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBSZXNpemVkRXZlbnQgfSBmcm9tICdhbmd1bGFyLXJlc2l6ZS1ldmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IE1hdERyYXdlckNvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWFwYm94RWFzZVRvIH0gZnJvbSAnLi9tYXBib3gnO1xuXG5leHBvcnQgdHlwZSBEYnhNYXBib3hMYXlvdXRTaWRlID0gJ2xlZnQnIHwgJ3JpZ2h0JztcblxuZXhwb3J0IHR5cGUgRGJ4TWFwYm94TGF5b3V0TW9kZSA9ICdzaWRlJyB8ICdwdXNoJztcblxuLyoqXG4gKiBSZXNwb25zaXZlIGNvbXBvbmVudCBtZWFudCB0byBzcGxpdCBhIGxlZnQgYW5kIHJpZ2h0IGNvbHVtbi5cbiAqXG4gKiBUaGUgbGVmdCBjb2x1bW4gaXMgc21hbGxlciB0aGFuIHRoZSByaWdodCBjb2x1bW4sIHdoaWNoIGNvbnRhaW5zIHRoZSBwcmltYXJ5IGNvbnRlbnQuXG4gKlxuICogUmVxdWlyZXMgYSBUd29Db2x1bW5zQ29udGV4dFN0b3JlIHRvIGJlIHByb3ZpZGVkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtbWFwYm94LWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXBib3gubGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFwYm94LmxheW91dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveExheW91dENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbk9iamVjdCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZChNYXREcmF3ZXJDb250YWluZXIsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICByZWFkb25seSBjb250YWluZXJFbGVtZW50ITogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKE1hdERyYXdlckNvbnRhaW5lcilcbiAgcmVhZG9ubHkgZHJhd2VyQ29udGFpbmVyITogTWF0RHJhd2VyQ29udGFpbmVyO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICByZWFkb25seSBjb250ZW50ITogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIF9yZXNpemVkID0gbmV3IFN1YmplY3Q8UmVzaXplZEV2ZW50PigpO1xuICBwcml2YXRlIF91cGRhdGVNYXJnaW5zID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfZm9yY2VIYXNDb250ZW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgX21vZGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERieE1hcGJveExheW91dE1vZGU+KCdzaWRlJyk7XG4gIHByaXZhdGUgX3NpZGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERieE1hcGJveExheW91dFNpZGU+KCdyaWdodCcpO1xuICBwcml2YXRlIF9vcGVuVG9nZ2xlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSBfY29sb3IgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPERieFRoZW1lQ29sb3I+Pih1bmRlZmluZWQpO1xuICBwcml2YXRlIF90b2dnbGVTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgcmVhZG9ubHkgcmVzaXplZCQgPSB0aGlzLl9yZXNpemVkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBzaWRlJCA9IHRoaXMuX3NpZGUucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPERieE1hcGJveExheW91dE1vZGU+ID0gdGhpcy5fbW9kZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBoYXNDb250ZW50JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2ZvcmNlSGFzQ29udGVudCwgdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5oYXNDb250ZW50JF0pLnBpcGUoXG4gICAgbWFwKChbaGFzQ29udGVudCwgZm9yY2VIYXNDb250ZW50XSkgPT4gaGFzQ29udGVudCB8fCBmb3JjZUhhc0NvbnRlbnQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBvcGVuZWQkID0gY29tYmluZUxhdGVzdChbdGhpcy5oYXNDb250ZW50JCwgdGhpcy5fb3BlblRvZ2dsZV0pLnBpcGUoXG4gICAgbWFwKChbaGFzQ29udGVudCwgb3Blbl0pID0+IGhhc0NvbnRlbnQgJiYgb3BlbiksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHBvc2l0aW9uJDogT2JzZXJ2YWJsZTwnc3RhcnQnIHwgJ2VuZCc+ID0gdGhpcy5zaWRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gKHggPT09ICdyaWdodCcgPyAnZW5kJyA6ICdzdGFydCcpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZHJhd2VyQ2xhc3NlcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNpZGUkLCB0aGlzLmRieE1hcGJveE1hcFN0b3JlLmhhc0NvbnRlbnQkLCB0aGlzLm9wZW5lZCRdKS5waXBlKFxuICAgIC8vXG4gICAgbWFwKChbc2lkZSwgaGFzQ29udGVudCwgb3Blbl0pID0+IChoYXNDb250ZW50ID8gJ2hhcy1kcmF3ZXItY29udGVudCcgOiAnbm8tZHJhd2VyLWNvbnRlbnQnKSArIGAgJHtzaWRlfS1kcmF3ZXIgYCArIChvcGVuID8gJ29wZW4tZHJhd2VyJyA6ICcnKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRyYXdlckJ1dHRvbkNsYXNzZXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5oYXNDb250ZW50JCwgdGhpcy5fY29sb3JdKS5waXBlKFxuICAgIC8vXG4gICAgbWFwKChbaGFzQ29udGVudCwgY29sb3JdKSA9PiBkYnhDb2xvckJhY2tncm91bmQoY29sb3IpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYnV0dG9uSWNvbiQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc2lkZSQsIHRoaXMub3BlbmVkJF0pLnBpcGUoXG4gICAgbWFwKChbc2lkZSwgb3BlbmVkXSkgPT4ge1xuICAgICAgbGV0IGljb25zID0gWydjaGV2cm9uX3JpZ2h0JywgJ2NoZXZyb25fbGVmdCddO1xuXG4gICAgICBpZiAoc2lkZSA9PT0gJ2xlZnQnKSB7XG4gICAgICAgIGljb25zID0gaWNvbnMucmV2ZXJzZSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb3BlbmVkID8gaWNvbnNbMF0gOiBpY29uc1sxXTtcbiAgICB9KVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGRieE1hcGJveE1hcFN0b3JlOiBEYnhNYXBib3hNYXBTdG9yZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IChcbiAgICAgIHRoaXMuc2lkZSQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5fcmVzaXplZC5waXBlKFxuICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDEwMCwgdW5kZWZpbmVkLCB7IGxlYWRpbmc6IHRydWUsIHRyYWlsaW5nOiB0cnVlIH0pLFxuICAgICAgICAgICAgbWFwKCgpID0+ICdyJyksXG4gICAgICAgICAgICBzdGFydFdpdGgoJ3MnKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKSBhcyBPYnNlcnZhYmxlPCdzJyB8ICdyJz5cbiAgICApLnN1YnNjcmliZSgocmVhc29uKSA9PiB7XG4gICAgICB0aGlzLmRieE1hcGJveE1hcFN0b3JlLm1hcEluc3RhbmNlJC5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgICAgeC5yZXNpemUoKTtcblxuICAgICAgICAvLyBzaWRlIGNoYW5nZWRcbiAgICAgICAgaWYgKHJlYXNvbiA9PT0gJ3MnKSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVNYXJnaW5zLm5leHQoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBsZXQgaW5pdCA9IGZhbHNlO1xuXG4gICAgdGhpcy5fdG9nZ2xlU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMubW9kZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKG1vZGUpID0+IHtcbiAgICAgICAgICBsZXQgb2JzOiBPYnNlcnZhYmxlPHVua25vd24+O1xuXG4gICAgICAgICAgaWYgKG1vZGUgPT09ICdwdXNoJykge1xuICAgICAgICAgICAgb2JzID0gY29tYmluZUxhdGVzdChbdGhpcy5vcGVuZWQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksIHRoaXMuX3VwZGF0ZU1hcmdpbnNdKS5waXBlKFxuICAgICAgICAgICAgICB0YXAoKFtvcGVuZWRdKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHsgcmlnaHQgfSA9IHRoaXMuZHJhd2VyQ29udGFpbmVyLl9jb250ZW50TWFyZ2lucztcblxuICAgICAgICAgICAgICAgIHRoaXMuZHJhd2VyQ29udGFpbmVyLnVwZGF0ZUNvbnRlbnRNYXJnaW5zKCk7XG5cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZsaXAgPSBvcGVuZWQgPyAxIDogLTE7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChvcGVuZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQgPSB0aGlzLmRyYXdlckNvbnRhaW5lci5fY29udGVudE1hcmdpbnMucmlnaHQ7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gKHJpZ2h0IHx8IDApICogZmxpcDtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgbWFyZ2luID0ge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0TWFyZ2luOiAwLFxuICAgICAgICAgICAgICAgICAgICByaWdodE1hcmdpbjogcmlnaHQsXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aDogd2lkdGhcbiAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGVhc2VUbzogT2JzZXJ2YWJsZTxNYXBib3hFYXNlVG8+ID0gdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5jYWxjdWxhdGVOZXh0Q2VudGVyT2Zmc2V0V2l0aFNjcmVlbk1hcmdpbkNoYW5nZShtYXJnaW4pLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoY2VudGVyKSA9PiAoeyB0bzogeyBjZW50ZXIsIGR1cmF0aW9uOiAzMjAwLCBlc3NlbnRpYWw6IGZhbHNlIH0gfSBhcyBNYXBib3hFYXNlVG8pKVxuICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5zZXRNYXJnaW4ob3BlbmVkID8gbWFyZ2luIDogdW5kZWZpbmVkKTtcblxuICAgICAgICAgICAgICAgICAgaWYgKCFpbml0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUuZWFzZVRvKGVhc2VUbyk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9icyA9IGNvbWJpbmVMYXRlc3QoW3RoaXMub3BlbmVkJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLCB0aGlzLl91cGRhdGVNYXJnaW5zXSkucGlwZShcbiAgICAgICAgICAgICAgc3dpdGNoTWFwKChfKSA9PiB0aGlzLmRieE1hcGJveE1hcFN0b3JlLm1hcEluc3RhbmNlJCksXG4gICAgICAgICAgICAgIHRhcCgoeCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhd2VyQ29udGFpbmVyLnVwZGF0ZUNvbnRlbnRNYXJnaW5zKCk7XG4gICAgICAgICAgICAgICAgeC50cmlnZ2VyUmVwYWludCgpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gb2JzO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzaXplZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3VwZGF0ZU1hcmdpbnMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zaWRlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fb3BlblRvZ2dsZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2NvbG9yLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fdG9nZ2xlU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9mb3JjZUhhc0NvbnRlbnQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHRvZ2dsZURyYXdlcihvcGVuPzogYm9vbGVhbikge1xuICAgIGlmIChvcGVuID09IG51bGwpIHtcbiAgICAgIG9wZW4gPSAhdGhpcy5fb3BlblRvZ2dsZS52YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLl9vcGVuVG9nZ2xlLm5leHQob3Blbik7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgc2lkZShzaWRlOiBNYXliZTxEYnhNYXBib3hMYXlvdXRTaWRlPikge1xuICAgIGlmIChzaWRlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX3NpZGUubmV4dChzaWRlKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgbW9kZShtb2RlOiBNYXliZTxEYnhNYXBib3hMYXlvdXRNb2RlPikge1xuICAgIGlmIChtb2RlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX21vZGUubmV4dChtb2RlKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgb3BlbmVkKG9wZW5lZDogTWF5YmU8Ym9vbGVhbj4pIHtcbiAgICBpZiAob3BlbmVkICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX29wZW5Ub2dnbGUubmV4dChvcGVuZWQpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBoYXNDb250ZW50KGhhc0NvbnRlbnQ6IE1heWJlPGJvb2xlYW4+KSB7XG4gICAgaWYgKGhhc0NvbnRlbnQgIT0gbnVsbCkge1xuICAgICAgdGhpcy5fZm9yY2VIYXNDb250ZW50Lm5leHQoaGFzQ29udGVudCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRyYXdlckNvbG9yKGNvbG9yOiBNYXliZTxEYnhUaGVtZUNvbG9yPikge1xuICAgIHRoaXMuX2NvbG9yLm5leHQoY29sb3IpO1xuICB9XG5cbiAgb25SZXNpemVkKGV2ZW50OiBSZXNpemVkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNpemVkLm5leHQoZXZlbnQpO1xuICB9XG59XG4iLCI8bWF0LWRyYXdlci1jb250YWluZXIgI2NvbnRhaW5lckVsZW1lbnQgY2xhc3M9XCJkYngtbWFwYm94LWxheW91dC1jb250YWluZXJcIiBbbmdDbGFzc109XCIoZHJhd2VyQ2xhc3NlcyQgfCBhc3luYykgfHwgJydcIiBbaGFzQmFja2Ryb3BdPVwiZmFsc2VcIj5cbiAgPG1hdC1kcmF3ZXIgY2xhc3M9XCJkYngtbWFwYm94LWxheW91dC1kcmF3ZXJcIiAjZHJhd2VyIFtvcGVuZWRdPVwib3BlbmVkJCB8IGFzeW5jXCIgW21vZGVdPVwiKG1vZGUkIHwgYXN5bmMpIHx8ICdzaWRlJ1wiIFtwb3NpdGlvbl09XCIocG9zaXRpb24kIHwgYXN5bmMpIHx8ICdlbmQnXCI+XG4gICAgPGRpdiBjbGFzcz1cImRieC1tYXBib3gtbGF5b3V0LWRyYXdlci1jb250ZW50XCIgW25nQ2xhc3NdPVwiKGRyYXdlckJ1dHRvbkNsYXNzZXMkIHwgYXN5bmMpIHx8ICcnXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZHJhd2VyXVwiPjwvbmctY29udGVudD5cbiAgICAgIDxkYngtbWFwYm94LWxheW91dC1kcmF3ZXI+PC9kYngtbWFwYm94LWxheW91dC1kcmF3ZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LWRyYXdlcj5cbiAgPG1hdC1kcmF3ZXItY29udGVudCAjY29udGVudCBjbGFzcz1cImRieC1tYXBib3gtbGF5b3V0LWNvbnRlbnRcIiAocmVzaXplZCk9XCJvblJlc2l6ZWQoJGV2ZW50KVwiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGVEcmF3ZXIoKVwiIGNsYXNzPVwiZGJ4LW1hcGJveC1sYXlvdXQtZHJhd2VyLWJ1dHRvblwiIFtuZ0NsYXNzXT1cIihkcmF3ZXJCdXR0b25DbGFzc2VzJCB8IGFzeW5jKSB8fCAnJ1wiPlxuICAgICAgPG1hdC1pY29uPnt7IGJ1dHRvbkljb24kIHwgYXN5bmMgfX08L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9tYXQtZHJhd2VyLWNvbnRlbnQ+XG48L21hdC1kcmF3ZXItY29udGFpbmVyPlxuIl19
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3gubGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkssT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWlCLE1BQU0sa0JBQWtCLENBQUM7QUFFckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7QUFPL0Q7Ozs7OztHQU1HO0FBTUgsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGtCQUFrQjtJQXdFOUQsWUFBcUIsaUJBQW9DO1FBQ3ZELEtBQUssRUFBRSxDQUFDO1FBRFcsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXRFaEQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBVzVDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUN2QyxtQkFBYyxHQUFHLElBQUks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c0JBRHhCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUkxQyxlQUFlO3NCQUR2QixTQUFTO3VCQUFDLGtCQUFrQjtnQkFJcEIsT0FBTztzQkFEZixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkE2S3BELElBQUk7c0JBRFAsS0FBSztnQkFRRixJQUFJO3NCQURQLEtBQUs7Z0JBUUYsTUFBTTtzQkFEVCxLQUFLO2dCQVFGLFVBQVU7c0JBRGIsS0FBSztnQkFRRixXQUFXO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0YXAsIHN3aXRjaE1hcCwgZmlyc3QsIHN0YXJ0V2l0aCwgc2hhcmVSZXBsYXksIHRocm90dGxlVGltZSwgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWFwU3RvcmUgfSBmcm9tICcuL21hcGJveC5zdG9yZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgZGJ4Q29sb3JCYWNrZ3JvdW5kLCBEYnhUaGVtZUNvbG9yIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBSZXNpemVkRXZlbnQgfSBmcm9tICdhbmd1bGFyLXJlc2l6ZS1ldmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IE1hdERyYXdlckNvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWFwYm94RWFzZVRvIH0gZnJvbSAnLi9tYXBib3gnO1xuXG5leHBvcnQgdHlwZSBEYnhNYXBib3hMYXlvdXRTaWRlID0gJ2xlZnQnIHwgJ3JpZ2h0JztcblxuZXhwb3J0IHR5cGUgRGJ4TWFwYm94TGF5b3V0TW9kZSA9ICdzaWRlJyB8ICdwdXNoJztcblxuLyoqXG4gKiBSZXNwb25zaXZlIGNvbXBvbmVudCBtZWFudCB0byBzcGxpdCBhIGxlZnQgYW5kIHJpZ2h0IGNvbHVtbi5cbiAqXG4gKiBUaGUgbGVmdCBjb2x1bW4gaXMgc21hbGxlciB0aGFuIHRoZSByaWdodCBjb2x1bW4sIHdoaWNoIGNvbnRhaW5zIHRoZSBwcmltYXJ5IGNvbnRlbnQuXG4gKlxuICogUmVxdWlyZXMgYSBUd29Db2x1bW5zQ29udGV4dFN0b3JlIHRvIGJlIHByb3ZpZGVkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtbWFwYm94LWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXBib3gubGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFwYm94LmxheW91dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveExheW91dENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbk9iamVjdCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IG9wZW5lZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKE1hdERyYXdlckNvbnRhaW5lciwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHJlYWRvbmx5IGNvbnRhaW5lckVsZW1lbnQhOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoTWF0RHJhd2VyQ29udGFpbmVyKVxuICByZWFkb25seSBkcmF3ZXJDb250YWluZXIhOiBNYXREcmF3ZXJDb250YWluZXI7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHJlYWRvbmx5IGNvbnRlbnQhOiBFbGVtZW50UmVmO1xuXG4gIHByaXZhdGUgX3Jlc2l6ZWQgPSBuZXcgU3ViamVjdDxSZXNpemVkRXZlbnQ+KCk7XG4gIHByaXZhdGUgX3VwZGF0ZU1hcmdpbnMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9mb3JjZUhhc0NvbnRlbnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBfbW9kZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGJ4TWFwYm94TGF5b3V0TW9kZT4oJ3NpZGUnKTtcbiAgcHJpdmF0ZSBfc2lkZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGJ4TWFwYm94TGF5b3V0U2lkZT4oJ3JpZ2h0Jyk7XG4gIHByaXZhdGUgX2lzT3BlbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgX2NvbG9yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxEYnhUaGVtZUNvbG9yPj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBfdG9nZ2xlU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IHJlc2l6ZWQkID0gdGhpcy5fcmVzaXplZC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgc2lkZSQgPSB0aGlzLl9zaWRlLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSBtb2RlJDogT2JzZXJ2YWJsZTxEYnhNYXBib3hMYXlvdXRNb2RlPiA9IHRoaXMuX21vZGUucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgaGFzQ29udGVudCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9mb3JjZUhhc0NvbnRlbnQsIHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUuaGFzQ29udGVudCRdKS5waXBlKFxuICAgIG1hcCgoW2hhc0NvbnRlbnQsIGZvcmNlSGFzQ29udGVudF0pID0+IGhhc0NvbnRlbnQgfHwgZm9yY2VIYXNDb250ZW50KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaXNPcGVuJCA9IHRoaXMuX2lzT3Blbi5hc09ic2VydmFibGUoKTtcblxuICByZWFkb25seSBpc09wZW5BbmRIYXNDb250ZW50JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuaGFzQ29udGVudCQsIHRoaXMuX2lzT3Blbl0pLnBpcGUoXG4gICAgbWFwKChbaGFzQ29udGVudCwgb3Blbl0pID0+IGhhc0NvbnRlbnQgJiYgb3BlbiksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHBvc2l0aW9uJDogT2JzZXJ2YWJsZTwnc3RhcnQnIHwgJ2VuZCc+ID0gdGhpcy5zaWRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gKHggPT09ICdyaWdodCcgPyAnZW5kJyA6ICdzdGFydCcpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZHJhd2VyQ2xhc3NlcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNpZGUkLCB0aGlzLmRieE1hcGJveE1hcFN0b3JlLmhhc0NvbnRlbnQkLCB0aGlzLmlzT3BlbkFuZEhhc0NvbnRlbnQkXSkucGlwZShcbiAgICAvL1xuICAgIG1hcCgoW3NpZGUsIGhhc0NvbnRlbnQsIG9wZW5dKSA9PiAoaGFzQ29udGVudCA/ICdoYXMtZHJhd2VyLWNvbnRlbnQnIDogJ25vLWRyYXdlci1jb250ZW50JykgKyBgICR7c2lkZX0tZHJhd2VyIGAgKyAob3BlbiA/ICdvcGVuLWRyYXdlcicgOiAnJykpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkcmF3ZXJCdXR0b25DbGFzc2VzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZGJ4TWFwYm94TWFwU3RvcmUuaGFzQ29udGVudCQsIHRoaXMuX2NvbG9yXSkucGlwZShcbiAgICAvL1xuICAgIG1hcCgoW2hhc0NvbnRlbnQsIGNvbG9yXSkgPT4gZGJ4Q29sb3JCYWNrZ3JvdW5kKGNvbG9yKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGJ1dHRvbkljb24kOiBPYnNlcnZhYmxlPHN0cmluZz4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNpZGUkLCB0aGlzLmlzT3BlbkFuZEhhc0NvbnRlbnQkXSkucGlwZShcbiAgICBtYXAoKFtzaWRlLCBvcGVuZWRdKSA9PiB7XG4gICAgICBsZXQgaWNvbnMgPSBbJ2NoZXZyb25fcmlnaHQnLCAnY2hldnJvbl9sZWZ0J107XG5cbiAgICAgIGlmIChzaWRlID09PSAnbGVmdCcpIHtcbiAgICAgICAgaWNvbnMgPSBpY29ucy5yZXZlcnNlKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvcGVuZWQgPyBpY29uc1swXSA6IGljb25zWzFdO1xuICAgIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZGJ4TWFwYm94TWFwU3RvcmU6IERieE1hcGJveE1hcFN0b3JlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gKFxuICAgICAgdGhpcy5zaWRlJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICB0aGlzLl9yZXNpemVkLnBpcGUoXG4gICAgICAgICAgICB0aHJvdHRsZVRpbWUoMTAwLCB1bmRlZmluZWQsIHsgbGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IHRydWUgfSksXG4gICAgICAgICAgICBtYXAoKCkgPT4gJ3InKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCgncycpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApIGFzIE9ic2VydmFibGU8J3MnIHwgJ3InPlxuICAgICkuc3Vic2NyaWJlKChyZWFzb24pID0+IHtcbiAgICAgIHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUubWFwSW5zdGFuY2UkLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgICB4LnJlc2l6ZSgpO1xuXG4gICAgICAgIC8vIHNpZGUgY2hhbmdlZFxuICAgICAgICBpZiAocmVhc29uID09PSAncycpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZU1hcmdpbnMubmV4dCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGxldCBpbml0ID0gZmFsc2U7XG5cbiAgICB0aGlzLl90b2dnbGVTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5tb2RlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgobW9kZSkgPT4ge1xuICAgICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8dW5rbm93bj47XG5cbiAgICAgICAgICBpZiAobW9kZSA9PT0gJ3B1c2gnKSB7XG4gICAgICAgICAgICBvYnMgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlzT3BlbkFuZEhhc0NvbnRlbnQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksIHRoaXMuX3VwZGF0ZU1hcmdpbnNdKS5waXBlKFxuICAgICAgICAgICAgICB0YXAoKFtvcGVuZWRdKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHsgcmlnaHQgfSA9IHRoaXMuZHJhd2VyQ29udGFpbmVyLl9jb250ZW50TWFyZ2lucztcblxuICAgICAgICAgICAgICAgIHRoaXMuZHJhd2VyQ29udGFpbmVyLnVwZGF0ZUNvbnRlbnRNYXJnaW5zKCk7XG5cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZsaXAgPSBvcGVuZWQgPyAxIDogLTE7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChvcGVuZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQgPSB0aGlzLmRyYXdlckNvbnRhaW5lci5fY29udGVudE1hcmdpbnMucmlnaHQ7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gKHJpZ2h0IHx8IDApICogZmxpcDtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgbWFyZ2luID0ge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0TWFyZ2luOiAwLFxuICAgICAgICAgICAgICAgICAgICByaWdodE1hcmdpbjogcmlnaHQsXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aDogd2lkdGhcbiAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGVhc2VUbzogT2JzZXJ2YWJsZTxNYXBib3hFYXNlVG8+ID0gdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5jYWxjdWxhdGVOZXh0Q2VudGVyT2Zmc2V0V2l0aFNjcmVlbk1hcmdpbkNoYW5nZShtYXJnaW4pLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoY2VudGVyKSA9PiAoeyB0bzogeyBjZW50ZXIsIGR1cmF0aW9uOiAzMjAwLCBlc3NlbnRpYWw6IGZhbHNlIH0gfSBhcyBNYXBib3hFYXNlVG8pKVxuICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5zZXRNYXJnaW4ob3BlbmVkID8gbWFyZ2luIDogdW5kZWZpbmVkKTtcblxuICAgICAgICAgICAgICAgICAgaWYgKCFpbml0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUuZWFzZVRvKGVhc2VUbyk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9icyA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuaXNPcGVuQW5kSGFzQ29udGVudCQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSwgdGhpcy5fdXBkYXRlTWFyZ2luc10pLnBpcGUoXG4gICAgICAgICAgICAgIHN3aXRjaE1hcCgoXykgPT4gdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5tYXBJbnN0YW5jZSQpLFxuICAgICAgICAgICAgICB0YXAoKHgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYXdlckNvbnRhaW5lci51cGRhdGVDb250ZW50TWFyZ2lucygpO1xuICAgICAgICAgICAgICAgIHgudHJpZ2dlclJlcGFpbnQoKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG9icztcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub3BlbmVkQ2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fcmVzaXplZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3VwZGF0ZU1hcmdpbnMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zaWRlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5faXNPcGVuLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY29sb3IuY29tcGxldGUoKTtcbiAgICB0aGlzLl90b2dnbGVTdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX2ZvcmNlSGFzQ29udGVudC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgdG9nZ2xlRHJhd2VyKG9wZW4/OiBib29sZWFuKSB7XG4gICAgaWYgKG9wZW4gPT0gbnVsbCkge1xuICAgICAgb3BlbiA9ICF0aGlzLl9pc09wZW4udmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5faXNPcGVuLm5leHQob3Blbik7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgc2lkZShzaWRlOiBNYXliZTxEYnhNYXBib3hMYXlvdXRTaWRlPikge1xuICAgIGlmIChzaWRlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX3NpZGUubmV4dChzaWRlKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgbW9kZShtb2RlOiBNYXliZTxEYnhNYXBib3hMYXlvdXRNb2RlPikge1xuICAgIGlmIChtb2RlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX21vZGUubmV4dChtb2RlKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgb3BlbmVkKG9wZW5lZDogTWF5YmU8Ym9vbGVhbj4pIHtcbiAgICBpZiAob3BlbmVkICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX2lzT3Blbi5uZXh0KG9wZW5lZCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGhhc0NvbnRlbnQoaGFzQ29udGVudDogTWF5YmU8Ym9vbGVhbj4pIHtcbiAgICBpZiAoaGFzQ29udGVudCAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9mb3JjZUhhc0NvbnRlbnQubmV4dChoYXNDb250ZW50KTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZHJhd2VyQ29sb3IoY29sb3I6IE1heWJlPERieFRoZW1lQ29sb3I+KSB7XG4gICAgdGhpcy5fY29sb3IubmV4dChjb2xvcik7XG4gIH1cblxuICBvblJlc2l6ZWQoZXZlbnQ6IFJlc2l6ZWRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2l6ZWQubmV4dChldmVudCk7XG4gIH1cblxuICBvbk9wZW5lZChvcGVuZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm9wZW5lZENoYW5nZS5uZXh0KG9wZW5lZCk7XG5cbiAgICBpZiAodGhpcy5faXNPcGVuLnZhbHVlICE9PSBvcGVuZWQpIHtcbiAgICAgIHRoaXMub3BlbmVkQ2hhbmdlLm5leHQob3BlbmVkKTtcbiAgICB9XG4gIH1cblxuICAvLyBNQVJLOiBDb21wYXRcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBpc09wZW5BbmRIYXNDb250ZW50JCBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlbmVkJCA9IHRoaXMuaXNPcGVuQW5kSGFzQ29udGVudCQ7XG59XG4iLCI8bWF0LWRyYXdlci1jb250YWluZXIgI2NvbnRhaW5lckVsZW1lbnQgY2xhc3M9XCJkYngtbWFwYm94LWxheW91dC1jb250YWluZXJcIiBbbmdDbGFzc109XCIoZHJhd2VyQ2xhc3NlcyQgfCBhc3luYykgfHwgJydcIiBbaGFzQmFja2Ryb3BdPVwiZmFsc2VcIj5cbiAgPG1hdC1kcmF3ZXIgY2xhc3M9XCJkYngtbWFwYm94LWxheW91dC1kcmF3ZXJcIiAjZHJhd2VyIChvcGVuZWRDaGFuZ2UpPVwib25PcGVuZWQoJGV2ZW50KVwiIFtvcGVuZWRdPVwiaXNPcGVuQW5kSGFzQ29udGVudCQgfCBhc3luY1wiIFttb2RlXT1cIihtb2RlJCB8IGFzeW5jKSB8fCAnc2lkZSdcIiBbcG9zaXRpb25dPVwiKHBvc2l0aW9uJCB8IGFzeW5jKSB8fCAnZW5kJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJkYngtbWFwYm94LWxheW91dC1kcmF3ZXItY29udGVudFwiIFtuZ0NsYXNzXT1cIihkcmF3ZXJCdXR0b25DbGFzc2VzJCB8IGFzeW5jKSB8fCAnJ1wiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RyYXdlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGJ4LW1hcGJveC1sYXlvdXQtZHJhd2VyPjwvZGJ4LW1hcGJveC1sYXlvdXQtZHJhd2VyPlxuICAgIDwvZGl2PlxuICA8L21hdC1kcmF3ZXI+XG4gIDxtYXQtZHJhd2VyLWNvbnRlbnQgI2NvbnRlbnQgY2xhc3M9XCJkYngtbWFwYm94LWxheW91dC1jb250ZW50XCIgKHJlc2l6ZWQpPVwib25SZXNpemVkKCRldmVudClcIj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlRHJhd2VyKClcIiBjbGFzcz1cImRieC1tYXBib3gtbGF5b3V0LWRyYXdlci1idXR0b25cIiBbbmdDbGFzc109XCIoZHJhd2VyQnV0dG9uQ2xhc3NlcyQgfCBhc3luYykgfHwgJydcIj5cbiAgICAgIDxtYXQtaWNvbj57eyBidXR0b25JY29uJCB8IGFzeW5jIH19PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvbWF0LWRyYXdlci1jb250ZW50PlxuPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cbiJdfQ==
@@ -5,7 +5,7 @@ import * as i1 from "./mapbox.store";
5
5
  import * as i2 from "@dereekb/dbx-core";
6
6
  import * as i3 from "@angular/common";
7
7
  /**
8
- * Content drawer that connects with DbxMapboxMapStore to
8
+ * Content drawer that connects with DbxMapboxMapStore to show the content.
9
9
  */
10
10
  export class DbxMapboxLayoutDrawerComponent {
11
11
  constructor(dbxMapboxMapStore) {
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
21
21
  class: 'dbx-mapbox-layout-drawer'
22
22
  }, template: "<div>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n</div>\n" }]
23
23
  }], ctorParameters: function () { return [{ type: i1.DbxMapboxMapStore }]; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LmxheW91dC5kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3gubGF5b3V0LmRyYXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5sYXlvdXQuZHJhd2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRW5EOztHQUVHO0FBUUgsTUFBTSxPQUFPLDhCQUE4QjtJQUd6QyxZQUFxQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUZoRCxZQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztJQUVTLENBQUM7OzRIQUhsRCw4QkFBOEI7Z0hBQTlCLDhCQUE4QixzSENiM0MsaUZBR0E7NEZEVWEsOEJBQThCO2tCQVAxQyxTQUFTOytCQUNFLDBCQUEwQixRQUU5Qjt3QkFDSixLQUFLLEVBQUUsMEJBQTBCO3FCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWFwU3RvcmUgfSBmcm9tICcuL21hcGJveC5zdG9yZSc7XG5cbi8qKlxuICogQ29udGVudCBkcmF3ZXIgdGhhdCBjb25uZWN0cyB3aXRoIERieE1hcGJveE1hcFN0b3JlIHRvXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1tYXBib3gtbGF5b3V0LWRyYXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXBib3gubGF5b3V0LmRyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2RieC1tYXBib3gtbGF5b3V0LWRyYXdlcidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYnhNYXBib3hMYXlvdXREcmF3ZXJDb21wb25lbnQge1xuICByZWFkb25seSBjb25maWckID0gdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5jb250ZW50JDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkYnhNYXBib3hNYXBTdG9yZTogRGJ4TWFwYm94TWFwU3RvcmUpIHt9XG59XG4iLCI8ZGl2PlxuICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImNvbmZpZyQgfCBhc3luY1wiPjwvZGJ4LWluamVjdGlvbj5cbjwvZGl2PlxuIl19
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LmxheW91dC5kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3gubGF5b3V0LmRyYXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5sYXlvdXQuZHJhd2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRW5EOztHQUVHO0FBUUgsTUFBTSxPQUFPLDhCQUE4QjtJQUd6QyxZQUFxQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUZoRCxZQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztJQUVTLENBQUM7OzRIQUhsRCw4QkFBOEI7Z0hBQTlCLDhCQUE4QixzSENiM0MsaUZBR0E7NEZEVWEsOEJBQThCO2tCQVAxQyxTQUFTOytCQUNFLDBCQUEwQixRQUU5Qjt3QkFDSixLQUFLLEVBQUUsMEJBQTBCO3FCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWFwU3RvcmUgfSBmcm9tICcuL21hcGJveC5zdG9yZSc7XG5cbi8qKlxuICogQ29udGVudCBkcmF3ZXIgdGhhdCBjb25uZWN0cyB3aXRoIERieE1hcGJveE1hcFN0b3JlIHRvIHNob3cgdGhlIGNvbnRlbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1tYXBib3gtbGF5b3V0LWRyYXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXBib3gubGF5b3V0LmRyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2RieC1tYXBib3gtbGF5b3V0LWRyYXdlcidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYnhNYXBib3hMYXlvdXREcmF3ZXJDb21wb25lbnQge1xuICByZWFkb25seSBjb25maWckID0gdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5jb250ZW50JDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkYnhNYXBib3hNYXBTdG9yZTogRGJ4TWFwYm94TWFwU3RvcmUpIHt9XG59XG4iLCI8ZGl2PlxuICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImNvbmZpZyQgfCBhc3luY1wiPjwvZGJ4LWluamVjdGlvbj5cbjwvZGl2PlxuIl19