@theseam/ui-common 0.3.9 → 0.3.10

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.
@@ -51,13 +51,13 @@ export class SideNavComponent {
51
51
  this.hasHeaderToggle = true;
52
52
  this._items = new BehaviorSubject([]);
53
53
  this._expanded = new BehaviorSubject(true);
54
- this.expanded$ = this._expanded.asObservable().pipe(tap(expanded => this.toggleExpand.emit(expanded)));
54
+ this.expanded$ = this._expanded.asObservable();
55
55
  this._overlay = new BehaviorSubject(false);
56
56
  this.overlay$ = this._overlay.asObservable();
57
57
  this.toggleExpand = new EventEmitter();
58
58
  this._backdropHidden = new BehaviorSubject(true);
59
59
  this.items$ = this._items.asObservable().pipe(switchMap(items => this._sideNav.createItemsObservable(items)), shareReplay({ bufferSize: 1, refCount: true }));
60
- this.isMobile$ = this._layout.isMobile$.pipe(tap(isMobile => isMobile && this.collapse()));
60
+ this.isMobile$ = this._layout.isMobile$.pipe(tap(isMobile => isMobile ? this.collapse() : this.expand()));
61
61
  this.sideNavExpandedState$ = combineLatest([this.expanded$, this.overlay$]).pipe(map(([expanded, overlay]) => expanded
62
62
  ? overlay ? EXPANDED_OVERLAY_STATE : EXPANDED_STATE
63
63
  : overlay ? COLLAPSED_OVERLAY_STATE : COLLAPSED_STATE), distinctUntilChanged());
@@ -65,7 +65,14 @@ export class SideNavComponent {
65
65
  get items() { return this._items.value; }
66
66
  set items(value) { this._items.next(value); }
67
67
  get expanded() { return this._expanded.value; }
68
- set expanded(value) { this._expanded.next(coerceBooleanProperty(value)); }
68
+ set expanded(value) {
69
+ const expanded = coerceBooleanProperty(value);
70
+ let emit = expanded !== this.expanded;
71
+ this._expanded.next(expanded);
72
+ if (emit) {
73
+ this.toggleExpand.emit(coerceBooleanProperty(value));
74
+ }
75
+ }
69
76
  get overlay() { return this._overlay.value; }
70
77
  set overlay(value) { this._overlay.next(coerceBooleanProperty(value)); }
71
78
  ngOnInit() {
@@ -202,4 +209,4 @@ SideNavComponent.propDecorators = {
202
209
  __decorate([
203
210
  InputBoolean()
204
211
  ], SideNavComponent.prototype, "hasHeaderToggle", void 0);
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zaWRlLW5hdi9zaWRlLW5hdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUE7QUFDNUIsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFak4sT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBVSxHQUFHLEVBQW1CLFdBQVcsRUFBYSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXRJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUVoRSxPQUFPLEVBQWdELHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFHNUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUVBQWlFLENBQUE7QUFDbEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFN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RCxZQUFZO3dCQUNaLDJEQUEyRDt3QkFDM0QsMkRBQTJEO3dCQUMzRCxpRUFBaUU7d0JBQ2pFLGtDQUFrQzt3QkFDbEMsT0FBTzt3QkFDUCxNQUFNO3FCQUNQLENBQUM7aUJBQ0g7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07Z0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzthQUN0Qzs7O1lBbklzSixnQkFBZ0I7WUFNOUosb0JBQW9CO1lBS3BCLHFCQUFxQjs0Q0F1S3pCLFFBQVEsWUFBSSxNQUFNLFNBQUMsdUJBQXVCOzs7NkJBckM1QyxXQUFXLFNBQUMsY0FBYzs4QkFFMUIsS0FBSztvQkFFTCxLQUFLO3VCQU1MLEtBQUs7c0JBUUwsS0FBSzsyQkFNTCxNQUFNO2dDQU1OLFlBQVksU0FBQyxnQ0FBZ0MsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTs7QUE1QjFEO0lBQWYsWUFBWSxFQUFFO3lEQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFuaW1hdGUsXG4gIGFuaW1hdGVDaGlsZCxcbiAgZ3JvdXAsXG4gIHF1ZXJ5LFxuICBzdGF0ZSxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXJcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucydcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBtYXBUbywgcGFpcndpc2UsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5pbXBvcnQgeyBUaGVTZWFtTGF5b3V0U2VydmljZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9sYXlvdXQnXG5cbmltcG9ydCB7IElUaGVTZWFtQmFzZUxheW91dE5hdiwgSVRoZVNlYW1CYXNlTGF5b3V0UmVmLCBUSEVTRUFNX0JBU0VfTEFZT1VUX1JFRiB9IGZyb20gJy4uL2Jhc2UtbGF5b3V0L2luZGV4J1xuXG5pbXBvcnQgeyBJU2lkZU5hdkl0ZW0gfSBmcm9tICcuL3NpZGUtbmF2Lm1vZGVscydcbmltcG9ydCB7IFRoZVNlYW1TaWRlTmF2U2VydmljZSB9IGZyb20gJy4vc2lkZS1uYXYuc2VydmljZSdcbmltcG9ydCB7IEJhc2VMYXlvdXRTaWRlQmFyRm9vdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vYmFzZS1sYXlvdXQvZGlyZWN0aXZlcy9iYXNlLWxheW91dC1zaWRlLWJhci1mb290ZXIuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJ1xuXG5jb25zdCBFWFBBTkRFRF9TVEFURSA9ICdleHBhbmRlZCdcbmNvbnN0IENPTExBUFNFRF9TVEFURSA9ICdjb2xsYXBzZWQnXG5cbmNvbnN0IEVYUEFOREVEX09WRVJMQVlfU1RBVEUgPSAnZXhwYW5kZWQtb3ZlcmxheSdcbmNvbnN0IENPTExBUFNFRF9PVkVSTEFZX1NUQVRFID0gJ2NvbGxhcHNlZC1vdmVybGF5J1xuXG5jb25zdCBFWFBBTkRFRF9TVEFURVMgPSBbIEVYUEFOREVEX1NUQVRFLCBFWFBBTkRFRF9PVkVSTEFZX1NUQVRFIF1cbmNvbnN0IENPTExBUFNFRF9TVEFURVMgPSBbIENPTExBUFNFRF9TVEFURSwgQ09MTEFQU0VEX09WRVJMQVlfU1RBVEUgXVxuY29uc3QgRVhQQU5EX1NUQVRFUyA9IFsgLi4uRVhQQU5ERURfU1RBVEVTLCAuLi5DT0xMQVBTRURfU1RBVEVTIF1cblxuZXhwb3J0IGZ1bmN0aW9uIHNpZGVOYXZFeHBhbmRTdGF0ZUNoYW5nZUZuKGZyb21TdGF0ZTogc3RyaW5nLCB0b1N0YXRlOiBzdHJpbmcpIHtcbiAgLy8gY29uc29sZS5sb2coeyBmcm9tU3RhdGUsIHRvU3RhdGUgfSlcbiAgcmV0dXJuIGZyb21TdGF0ZSAhPT0gdG9TdGF0ZSAmJlxuICAgIChcbiAgICAgIC8vIE5PVEU6IFRoZSBjdXJyZW50IHdheSB0aGUgc2lkZSBuYXYgaXMgYmVpbmcgdXNlZCBpdCBjYXVzZXMgdGhlXG4gICAgICAvLyBjb21wb25lbnQgdG8gc29tZXRpbWVzIGdldCBwbGFjZWQgaW4gdGhlIHdyb25nIGxvY2F0aW9uIGluaXRpYWxseS4gSXRcbiAgICAgIC8vIGlzIGZhc3QgZW5vdWdoIHRvIG5vdCBiZSBub3RpY2VkIHdpdGhvdXQgYW4gaW5pdGlhbCBhbmltYXRpb24gdXN1YWxseSxcbiAgICAgIC8vIHNvIGl0IGlzIGNvbW1lbnRlZCBvdXQgYmVsb3cgdW50aWwgdGhlIGluaXRpYWwgcGxhY2VtZW50IGlzc3VlIGl0XG4gICAgICAvLyBmaXhlZC5cbiAgICAgIC8vXG4gICAgICAvLyAoXG4gICAgICAvLyAgIGZyb21TdGF0ZSA9PT0gJ3ZvaWQnICYmIEVYUEFORF9TVEFURVMuaW5kZXhPZih0b1N0YXRlKSAhPT0gLTFcbiAgICAgIC8vICAgfHxcbiAgICAgIC8vICAgdG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIEVYUEFORF9TVEFURVMuaW5kZXhPZihmcm9tU3RhdGUpICE9PSAtMVxuICAgICAgLy8gKVxuICAgICAgLy8gfHxcbiAgICAgIChcbiAgICAgICAgKEVYUEFOREVEX1NUQVRFUy5pbmRleE9mKGZyb21TdGF0ZSkgIT09IC0xICYmIENPTExBUFNFRF9TVEFURVMuaW5kZXhPZih0b1N0YXRlKSAhPT0gLTEpXG4gICAgICAgIHx8XG4gICAgICAgIChFWFBBTkRFRF9TVEFURVMuaW5kZXhPZih0b1N0YXRlKSAhPT0gLTEgJiYgQ09MTEFQU0VEX1NUQVRFUy5pbmRleE9mKGZyb21TdGF0ZSkgIT09IC0xKVxuICAgICAgKVxuICAgIClcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1zaWRlLW5hdicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLW5hdi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NpZGUtbmF2LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIFRoZVNlYW1TaWRlTmF2U2VydmljZVxuICBdLFxuICBhbmltYXRpb25zOiBbXG5cbiAgICAvL1xuICAgIC8vIFRPRE86IFRoaXMgYW5pbWF0aW9uIGNvZGUgdHVybmVkIGludG8gYSBtZXNzLiBDbGVhbiBpdCB1cCBhbmQgbWFrZSBpdFxuICAgIC8vIG1vcmUgc21vb3RoLlxuICAgIC8vXG5cbiAgICB0cmlnZ2VyKCdzaWRlTmF2QW5pbScsIFtcbiAgICAgIHRyYW5zaXRpb24oc2lkZU5hdkV4cGFuZFN0YXRlQ2hhbmdlRm4sIFtcbiAgICAgICAgZ3JvdXAoW1xuICAgICAgICAgIHF1ZXJ5KCdAc2lkZU5hdkJhY2tkcm9wJywgYW5pbWF0ZUNoaWxkKCksIHsgb3B0aW9uYWw6IHRydWUgfSksXG4gICAgICAgICAgcXVlcnkoJ0BzaWRlTmF2RXhwYW5kJywgYW5pbWF0ZUNoaWxkKCksIHsgb3B0aW9uYWw6IHRydWUgfSksXG4gICAgICAgIF0pLFxuICAgICAgXSksXG4gICAgXSksXG5cbiAgICB0cmlnZ2VyKCdzaWRlTmF2QmFja2Ryb3AnLCBbXG4gICAgICBzdGF0ZShFWFBBTkRFRF9PVkVSTEFZX1NUQVRFLCBzdHlsZSh7IG9wYWNpdHk6ICcxJyB9KSksXG4gICAgICBzdGF0ZShDT0xMQVBTRURfT1ZFUkxBWV9TVEFURSwgc3R5bGUoeyBvcGFjaXR5OiAnMCcgfSkpLFxuXG4gICAgICAvLyB0cmFuc2l0aW9uKChmcm9tU3RhdGUsIHRvU3RhdGUsIGVsZW1lbnQsIHBhcmFtcykgPT4ge1xuICAgICAgLy8gICBjb25zb2xlLmxvZygnc2lkZU5hdkJhY2tkcm9wIHYnLCBmcm9tU3RhdGUsIHRvU3RhdGUsIGVsZW1lbnQsIHBhcmFtcylcbiAgICAgIC8vICAgcmV0dXJuIGZhbHNlXG4gICAgICAvLyB9LCBbXSksXG5cbiAgICAgIHRyYW5zaXRpb24oc2lkZU5hdkV4cGFuZFN0YXRlQ2hhbmdlRm4sIGFuaW1hdGUoJzAuMnMgZWFzZS1pbi1vdXQnKSksXG4gICAgXSksXG5cbiAgICB0cmlnZ2VyKCdzaWRlTmF2RXhwYW5kJywgW1xuICAgICAgLy8gVE9ETzogTWFrZSB3aWR0aCBjb25maWd1cmFibGUuXG4gICAgICBzdGF0ZShFWFBBTkRFRF9TVEFURSwgc3R5bGUoeyB3aWR0aDogJzI2MHB4JyB9KSksXG4gICAgICBzdGF0ZShDT0xMQVBTRURfU1RBVEUsIHN0eWxlKHsgd2lkdGg6ICc1MHB4JywgJ292ZXJmbG93LXgnOiAnaGlkZGVuJyB9KSksXG5cbiAgICAgIHN0YXRlKEVYUEFOREVEX09WRVJMQVlfU1RBVEUsIHN0eWxlKHtcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgZmxvYXQ6ICdsZWZ0JyxcbiAgICAgICAgekluZGV4OiAnOTk5OScsXG4gICAgICAgIHdpZHRoOiAnY2FsYygxMDB2dyAtIDUwcHgpJyxcbiAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKSdcbiAgICAgIH0pKSxcbiAgICAgIHN0YXRlKENPTExBUFNFRF9PVkVSTEFZX1NUQVRFLCBzdHlsZSh7XG4gICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICB0b3A6IDAsXG4gICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICBib3R0b206IDAsXG4gICAgICAgIGxlZnQ6IDAsXG4gICAgICAgIGZsb2F0OiAnbGVmdCcsXG4gICAgICAgIHpJbmRleDogJzk5OTknLFxuICAgICAgICB3aWR0aDogJ2NhbGMoMTAwdncgLSA1MHB4KScsXG4gICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoY2FsYygtMTAwdncgKyA1MHB4KSknLFxuICAgICAgICAnb3ZlcmZsb3cteCc6ICdoaWRkZW4nXG4gICAgICB9KSksXG5cbiAgICAgIC8vIHRyYW5zaXRpb24oYCR7RVhQQU5ERURfU1RBVEV9IDw9PiAke0NPTExBUFNFRF9TVEFURX1gLCBhbmltYXRlKCcwLjJzIGVhc2UtaW4tb3V0JykpLFxuXG4gICAgICB0cmFuc2l0aW9uKHNpZGVOYXZFeHBhbmRTdGF0ZUNoYW5nZUZuLCBhbmltYXRlKCcwLjJzIGVhc2UtaW4tb3V0JykpLFxuXG4gICAgICAvLyB0cmFuc2l0aW9uKGAke0VYUEFOREVEX1NUQVRFfSA8PT4gJHtDT0xMQVBTRURfU1RBVEV9YCwgW1xuICAgICAgLy8gICAvLyBxdWVyeSgnOmxlYXZlJywgYW5pbWF0ZUNoaWxkKCksIHsgb3B0aW9uYWw6IHRydWUgfSksXG4gICAgICAvLyAgIC8vIHF1ZXJ5KCc6ZW50ZXInLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgIC8vICAgZ3JvdXAoW1xuICAgICAgLy8gICAgIHF1ZXJ5KCc6bGVhdmUnLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgIC8vICAgICBxdWVyeSgnOmVudGVyJywgYW5pbWF0ZUNoaWxkKCksIHsgb3B0aW9uYWw6IHRydWUgfSksXG4gICAgICAvLyAgICAgcXVlcnkoJ0Bjb21wYWN0QW5pbScsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICAgICAgLy8gICAgIGFuaW1hdGUoJzUuMnMgZWFzZS1pbi1vdXQnKVxuICAgICAgLy8gICBdKVxuICAgICAgLy8gXSksXG4gICAgXSlcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2lkZU5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBJVGhlU2VhbUJhc2VMYXlvdXROYXYge1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaGFzSGVhZGVyVG9nZ2xlOiBCb29sZWFuSW5wdXRcblxuICBwcml2YXRlIHJlYWRvbmx5IF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKVxuXG4gIC8vIEBIb3N0QmluZGluZygnQHNpZGVOYXZFeHBhbmQnKSBfc2lkZU5hdkV4cGFuZCA9IEVYUEFOREVEX1NUQVRFXG4gIC8vIF9zaWRlTmF2RXhwYW5kID0gRVhQQU5ERURfU1RBVEVcblxuICAvLyBASG9zdEJpbmRpbmcoJ0BzaWRlTmF2QW5pbScpIF9zaWRlTmF2RXhwYW5kID0gRVhQQU5ERURfU1RBVEVcbiAgQEhvc3RCaW5kaW5nKCdAc2lkZU5hdkFuaW0nKSBfc2lkZU5hdkV4cGFuZCA9ICdpbml0aWFsJ1xuXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBoYXNIZWFkZXJUb2dnbGUgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgZ2V0IGl0ZW1zKCk6IElTaWRlTmF2SXRlbVtdIHsgcmV0dXJuIHRoaXMuX2l0ZW1zLnZhbHVlIH1cbiAgc2V0IGl0ZW1zKHZhbHVlOiBJU2lkZU5hdkl0ZW1bXSkgeyB0aGlzLl9pdGVtcy5uZXh0KHZhbHVlKSB9XG4gIHByaXZhdGUgX2l0ZW1zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJU2lkZU5hdkl0ZW1bXT4oW10pXG4gIHB1YmxpYyByZWFkb25seSBpdGVtcyQ6IE9ic2VydmFibGU8SVNpZGVOYXZJdGVtW10+XG5cbiAgQElucHV0KClcbiAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZXhwYW5kZWQudmFsdWUgfVxuICBzZXQgZXhwYW5kZWQodmFsdWU6IGJvb2xlYW4pIHsgdGhpcy5fZXhwYW5kZWQubmV4dChjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpKSB9XG4gIHByaXZhdGUgX2V4cGFuZGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKVxuICBwdWJsaWMgcmVhZG9ubHkgZXhwYW5kZWQkID0gdGhpcy5fZXhwYW5kZWQuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICB0YXAoZXhwYW5kZWQgPT4gdGhpcy50b2dnbGVFeHBhbmQuZW1pdChleHBhbmRlZCkpXG4gIClcblxuICBASW5wdXQoKVxuICBnZXQgb3ZlcmxheSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX292ZXJsYXkudmFsdWUgfVxuICBzZXQgb3ZlcmxheSh2YWx1ZTogYm9vbGVhbikgeyB0aGlzLl9vdmVybGF5Lm5leHQoY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSkgfVxuICBwcml2YXRlIF9vdmVybGF5ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcbiAgcHVibGljIHJlYWRvbmx5IG92ZXJsYXkkID0gdGhpcy5fb3ZlcmxheS5hc09ic2VydmFibGUoKVxuXG4gIEBPdXRwdXQoKSB0b2dnbGVFeHBhbmQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcblxuICBwdWJsaWMgcmVhZG9ubHkgaXNNb2JpbGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG4gIHB1YmxpYyByZWFkb25seSBzaWRlTmF2RXhwYW5kZWRTdGF0ZSQ6IE9ic2VydmFibGU8c3RyaW5nPlxuICBwdWJsaWMgX2JhY2tkcm9wSGlkZGVuID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKVxuXG4gIEBDb250ZW50Q2hpbGQoQmFzZUxheW91dFNpZGVCYXJGb290ZXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KSBfc2lkZUJhckZvb3RlclRwbD86IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsXG4gIF9zaWRlQmFyRm9vdGVyUG9ydGFsPzogVGVtcGxhdGVQb3J0YWxcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xheW91dDogVGhlU2VhbUxheW91dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc2lkZU5hdjogVGhlU2VhbVNpZGVOYXZTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVEhFU0VBTV9CQVNFX0xBWU9VVF9SRUYpIHByaXZhdGUgcmVhZG9ubHkgX2Jhc2VMYXlvdXRSZWY6IElUaGVTZWFtQmFzZUxheW91dFJlZlxuICApIHtcbiAgICB0aGlzLml0ZW1zJCA9IHRoaXMuX2l0ZW1zLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoaXRlbXMgPT4gdGhpcy5fc2lkZU5hdi5jcmVhdGVJdGVtc09ic2VydmFibGUoaXRlbXMpKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSksXG4gICAgKVxuXG4gICAgdGhpcy5pc01vYmlsZSQgPSB0aGlzLl9sYXlvdXQuaXNNb2JpbGUkLnBpcGUoXG4gICAgICB0YXAoaXNNb2JpbGUgPT4gaXNNb2JpbGUgJiYgdGhpcy5jb2xsYXBzZSgpKVxuICAgIClcblxuICAgIHRoaXMuc2lkZU5hdkV4cGFuZGVkU3RhdGUkID0gY29tYmluZUxhdGVzdChbIHRoaXMuZXhwYW5kZWQkLCB0aGlzLm92ZXJsYXkkIF0pLnBpcGUoXG4gICAgICBtYXAoKFsgZXhwYW5kZWQsIG92ZXJsYXkgXSkgPT4gZXhwYW5kZWRcbiAgICAgICAgPyBvdmVybGF5ID8gRVhQQU5ERURfT1ZFUkxBWV9TVEFURSA6IEVYUEFOREVEX1NUQVRFXG4gICAgICAgIDogb3ZlcmxheSA/IENPTExBUFNFRF9PVkVSTEFZX1NUQVRFIDogQ09MTEFQU0VEX1NUQVRFXG4gICAgICApLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgIClcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLl9iYXNlTGF5b3V0UmVmKSB7IHRoaXMuX2Jhc2VMYXlvdXRSZWYucmVnaXN0ZXJOYXYodGhpcykgfVxuXG4gICAgdGhpcy5pc01vYmlsZSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoYiA9PiB0aGlzLm92ZXJsYXkgPSBiKVxuXG4gICAgdGhpcy5zaWRlTmF2RXhwYW5kZWRTdGF0ZSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUodiA9PiB0aGlzLl9zaWRlTmF2RXhwYW5kID0gdilcblxuICAgIGlmICh0aGlzLl9zaWRlQmFyRm9vdGVyVHBsKSB7XG4gICAgICB0aGlzLl9zaWRlQmFyRm9vdGVyUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX3NpZGVCYXJGb290ZXJUcGwsIHRoaXMuX3ZpZXdDb250YWluZXJSZWYpXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KClcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcbiAgICBpZiAodGhpcy5fYmFzZUxheW91dFJlZikgeyB0aGlzLl9iYXNlTGF5b3V0UmVmLnVucmVnaXN0ZXJOYXYodGhpcykgfVxuICB9XG5cbiAgcHVibGljIGV4cGFuZCgpIHtcbiAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZVxuICB9XG5cbiAgcHVibGljIGNvbGxhcHNlKCkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSBmYWxzZVxuICB9XG5cbiAgcHVibGljIHRvZ2dsZSgpIHtcbiAgICB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWRcbiAgfVxuXG4gIHB1YmxpYyBhbmltYXRlU3RhcnQoKSB7XG4gICAgaWYgKHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuX2JhY2tkcm9wSGlkZGVuLm5leHQoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFuaW1hdGVFbmQoKSB7XG4gICAgaWYgKCF0aGlzLmV4cGFuZGVkKSB7XG4gICAgICB0aGlzLl9iYWNrZHJvcEhpZGRlbi5uZXh0KHRydWUpXG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zaWRlLW5hdi9zaWRlLW5hdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUE7QUFDNUIsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFak4sT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBVSxHQUFHLEVBQW1CLFdBQVcsRUFBYSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXRJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUVoRSxPQUFPLEVBQWdELHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFHNUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUVBQWlFLENBQUE7QUFDbEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFN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QUFDLENBQUM7d0JBRUgsdUZBQXVGO3dCQUV2RixVQUFVLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7d0JBRW5FLDJEQUEyRDt3QkFDM0QsNERBQTREO3dCQUM1RCw0REFBNEQ7d0JBQzVELFlBQVk7d0JBQ1osMkRBQTJEO3dCQUMzRCwyREFBMkQ7d0JBQzNELGlFQUFpRTt3QkFDakUsa0NBQWtDO3dCQUNsQyxPQUFPO3dCQUNQLE1BQU07cUJBQ1AsQ0FBQztpQkFDSDtnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUFuSXNKLGdCQUFnQjtZQU05SixvQkFBb0I7WUFLcEIscUJBQXFCOzRDQTZLekIsUUFBUSxZQUFJLE1BQU0sU0FBQyx1QkFBdUI7Ozs2QkEzQzVDLFdBQVcsU0FBQyxjQUFjOzhCQUUxQixLQUFLO29CQUVMLEtBQUs7dUJBTUwsS0FBSztzQkFjTCxLQUFLOzJCQU1MLE1BQU07Z0NBTU4sWUFBWSxTQUFDLGdDQUFnQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFOztBQWxDMUQ7SUFBZixZQUFZLEVBQUU7eURBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgYW5pbWF0ZUNoaWxkLFxuICBncm91cCxcbiAgcXVlcnksXG4gIHN0YXRlLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJ1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIG1hcFRvLCBwYWlyd2lzZSwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vY29yZSdcbmltcG9ydCB7IFRoZVNlYW1MYXlvdXRTZXJ2aWNlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2xheW91dCdcblxuaW1wb3J0IHsgSVRoZVNlYW1CYXNlTGF5b3V0TmF2LCBJVGhlU2VhbUJhc2VMYXlvdXRSZWYsIFRIRVNFQU1fQkFTRV9MQVlPVVRfUkVGIH0gZnJvbSAnLi4vYmFzZS1sYXlvdXQvaW5kZXgnXG5cbmltcG9ydCB7IElTaWRlTmF2SXRlbSB9IGZyb20gJy4vc2lkZS1uYXYubW9kZWxzJ1xuaW1wb3J0IHsgVGhlU2VhbVNpZGVOYXZTZXJ2aWNlIH0gZnJvbSAnLi9zaWRlLW5hdi5zZXJ2aWNlJ1xuaW1wb3J0IHsgQmFzZUxheW91dFNpZGVCYXJGb290ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9iYXNlLWxheW91dC9kaXJlY3RpdmVzL2Jhc2UtbGF5b3V0LXNpZGUtYmFyLWZvb3Rlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXG5cbmNvbnN0IEVYUEFOREVEX1NUQVRFID0gJ2V4cGFuZGVkJ1xuY29uc3QgQ09MTEFQU0VEX1NUQVRFID0gJ2NvbGxhcHNlZCdcblxuY29uc3QgRVhQQU5ERURfT1ZFUkxBWV9TVEFURSA9ICdleHBhbmRlZC1vdmVybGF5J1xuY29uc3QgQ09MTEFQU0VEX09WRVJMQVlfU1RBVEUgPSAnY29sbGFwc2VkLW92ZXJsYXknXG5cbmNvbnN0IEVYUEFOREVEX1NUQVRFUyA9IFsgRVhQQU5ERURfU1RBVEUsIEVYUEFOREVEX09WRVJMQVlfU1RBVEUgXVxuY29uc3QgQ09MTEFQU0VEX1NUQVRFUyA9IFsgQ09MTEFQU0VEX1NUQVRFLCBDT0xMQVBTRURfT1ZFUkxBWV9TVEFURSBdXG5jb25zdCBFWFBBTkRfU1RBVEVTID0gWyAuLi5FWFBBTkRFRF9TVEFURVMsIC4uLkNPTExBUFNFRF9TVEFURVMgXVxuXG5leHBvcnQgZnVuY3Rpb24gc2lkZU5hdkV4cGFuZFN0YXRlQ2hhbmdlRm4oZnJvbVN0YXRlOiBzdHJpbmcsIHRvU3RhdGU6IHN0cmluZykge1xuICAvLyBjb25zb2xlLmxvZyh7IGZyb21TdGF0ZSwgdG9TdGF0ZSB9KVxuICByZXR1cm4gZnJvbVN0YXRlICE9PSB0b1N0YXRlICYmXG4gICAgKFxuICAgICAgLy8gTk9URTogVGhlIGN1cnJlbnQgd2F5IHRoZSBzaWRlIG5hdiBpcyBiZWluZyB1c2VkIGl0IGNhdXNlcyB0aGVcbiAgICAgIC8vIGNvbXBvbmVudCB0byBzb21ldGltZXMgZ2V0IHBsYWNlZCBpbiB0aGUgd3JvbmcgbG9jYXRpb24gaW5pdGlhbGx5LiBJdFxuICAgICAgLy8gaXMgZmFzdCBlbm91Z2ggdG8gbm90IGJlIG5vdGljZWQgd2l0aG91dCBhbiBpbml0aWFsIGFuaW1hdGlvbiB1c3VhbGx5LFxuICAgICAgLy8gc28gaXQgaXMgY29tbWVudGVkIG91dCBiZWxvdyB1bnRpbCB0aGUgaW5pdGlhbCBwbGFjZW1lbnQgaXNzdWUgaXRcbiAgICAgIC8vIGZpeGVkLlxuICAgICAgLy9cbiAgICAgIC8vIChcbiAgICAgIC8vICAgZnJvbVN0YXRlID09PSAndm9pZCcgJiYgRVhQQU5EX1NUQVRFUy5pbmRleE9mKHRvU3RhdGUpICE9PSAtMVxuICAgICAgLy8gICB8fFxuICAgICAgLy8gICB0b1N0YXRlID09PSAndm9pZCcgJiYgRVhQQU5EX1NUQVRFUy5pbmRleE9mKGZyb21TdGF0ZSkgIT09IC0xXG4gICAgICAvLyApXG4gICAgICAvLyB8fFxuICAgICAgKFxuICAgICAgICAoRVhQQU5ERURfU1RBVEVTLmluZGV4T2YoZnJvbVN0YXRlKSAhPT0gLTEgJiYgQ09MTEFQU0VEX1NUQVRFUy5pbmRleE9mKHRvU3RhdGUpICE9PSAtMSlcbiAgICAgICAgfHxcbiAgICAgICAgKEVYUEFOREVEX1NUQVRFUy5pbmRleE9mKHRvU3RhdGUpICE9PSAtMSAmJiBDT0xMQVBTRURfU1RBVEVTLmluZGV4T2YoZnJvbVN0YXRlKSAhPT0gLTEpXG4gICAgICApXG4gICAgKVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLXNpZGUtbmF2JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtbmF2LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2lkZS1uYXYuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgVGhlU2VhbVNpZGVOYXZTZXJ2aWNlXG4gIF0sXG4gIGFuaW1hdGlvbnM6IFtcblxuICAgIC8vXG4gICAgLy8gVE9ETzogVGhpcyBhbmltYXRpb24gY29kZSB0dXJuZWQgaW50byBhIG1lc3MuIENsZWFuIGl0IHVwIGFuZCBtYWtlIGl0XG4gICAgLy8gbW9yZSBzbW9vdGguXG4gICAgLy9cblxuICAgIHRyaWdnZXIoJ3NpZGVOYXZBbmltJywgW1xuICAgICAgdHJhbnNpdGlvbihzaWRlTmF2RXhwYW5kU3RhdGVDaGFuZ2VGbiwgW1xuICAgICAgICBncm91cChbXG4gICAgICAgICAgcXVlcnkoJ0BzaWRlTmF2QmFja2Ryb3AnLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgICAgICBxdWVyeSgnQHNpZGVOYXZFeHBhbmQnLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgICAgXSksXG4gICAgICBdKSxcbiAgICBdKSxcblxuICAgIHRyaWdnZXIoJ3NpZGVOYXZCYWNrZHJvcCcsIFtcbiAgICAgIHN0YXRlKEVYUEFOREVEX09WRVJMQVlfU1RBVEUsIHN0eWxlKHsgb3BhY2l0eTogJzEnIH0pKSxcbiAgICAgIHN0YXRlKENPTExBUFNFRF9PVkVSTEFZX1NUQVRFLCBzdHlsZSh7IG9wYWNpdHk6ICcwJyB9KSksXG5cbiAgICAgIC8vIHRyYW5zaXRpb24oKGZyb21TdGF0ZSwgdG9TdGF0ZSwgZWxlbWVudCwgcGFyYW1zKSA9PiB7XG4gICAgICAvLyAgIGNvbnNvbGUubG9nKCdzaWRlTmF2QmFja2Ryb3AgdicsIGZyb21TdGF0ZSwgdG9TdGF0ZSwgZWxlbWVudCwgcGFyYW1zKVxuICAgICAgLy8gICByZXR1cm4gZmFsc2VcbiAgICAgIC8vIH0sIFtdKSxcblxuICAgICAgdHJhbnNpdGlvbihzaWRlTmF2RXhwYW5kU3RhdGVDaGFuZ2VGbiwgYW5pbWF0ZSgnMC4ycyBlYXNlLWluLW91dCcpKSxcbiAgICBdKSxcblxuICAgIHRyaWdnZXIoJ3NpZGVOYXZFeHBhbmQnLCBbXG4gICAgICAvLyBUT0RPOiBNYWtlIHdpZHRoIGNvbmZpZ3VyYWJsZS5cbiAgICAgIHN0YXRlKEVYUEFOREVEX1NUQVRFLCBzdHlsZSh7IHdpZHRoOiAnMjYwcHgnIH0pKSxcbiAgICAgIHN0YXRlKENPTExBUFNFRF9TVEFURSwgc3R5bGUoeyB3aWR0aDogJzUwcHgnLCAnb3ZlcmZsb3cteCc6ICdoaWRkZW4nIH0pKSxcblxuICAgICAgc3RhdGUoRVhQQU5ERURfT1ZFUkxBWV9TVEFURSwgc3R5bGUoe1xuICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgdG9wOiAwLFxuICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICBsZWZ0OiAwLFxuICAgICAgICBmbG9hdDogJ2xlZnQnLFxuICAgICAgICB6SW5kZXg6ICc5OTk5JyxcbiAgICAgICAgd2lkdGg6ICdjYWxjKDEwMHZ3IC0gNTBweCknLFxuICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJ1xuICAgICAgfSkpLFxuICAgICAgc3RhdGUoQ09MTEFQU0VEX09WRVJMQVlfU1RBVEUsIHN0eWxlKHtcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgZmxvYXQ6ICdsZWZ0JyxcbiAgICAgICAgekluZGV4OiAnOTk5OScsXG4gICAgICAgIHdpZHRoOiAnY2FsYygxMDB2dyAtIDUwcHgpJyxcbiAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWChjYWxjKC0xMDB2dyArIDUwcHgpKScsXG4gICAgICAgICdvdmVyZmxvdy14JzogJ2hpZGRlbidcbiAgICAgIH0pKSxcblxuICAgICAgLy8gdHJhbnNpdGlvbihgJHtFWFBBTkRFRF9TVEFURX0gPD0+ICR7Q09MTEFQU0VEX1NUQVRFfWAsIGFuaW1hdGUoJzAuMnMgZWFzZS1pbi1vdXQnKSksXG5cbiAgICAgIHRyYW5zaXRpb24oc2lkZU5hdkV4cGFuZFN0YXRlQ2hhbmdlRm4sIGFuaW1hdGUoJzAuMnMgZWFzZS1pbi1vdXQnKSksXG5cbiAgICAgIC8vIHRyYW5zaXRpb24oYCR7RVhQQU5ERURfU1RBVEV9IDw9PiAke0NPTExBUFNFRF9TVEFURX1gLCBbXG4gICAgICAvLyAgIC8vIHF1ZXJ5KCc6bGVhdmUnLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgIC8vICAgLy8gcXVlcnkoJzplbnRlcicsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICAgICAgLy8gICBncm91cChbXG4gICAgICAvLyAgICAgcXVlcnkoJzpsZWF2ZScsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICAgICAgLy8gICAgIHF1ZXJ5KCc6ZW50ZXInLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgIC8vICAgICBxdWVyeSgnQGNvbXBhY3RBbmltJywgYW5pbWF0ZUNoaWxkKCksIHsgb3B0aW9uYWw6IHRydWUgfSksXG4gICAgICAvLyAgICAgYW5pbWF0ZSgnNS4ycyBlYXNlLWluLW91dCcpXG4gICAgICAvLyAgIF0pXG4gICAgICAvLyBdKSxcbiAgICBdKVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTaWRlTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIElUaGVTZWFtQmFzZUxheW91dE5hdiB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9oYXNIZWFkZXJUb2dnbGU6IEJvb2xlYW5JbnB1dFxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpXG5cbiAgLy8gQEhvc3RCaW5kaW5nKCdAc2lkZU5hdkV4cGFuZCcpIF9zaWRlTmF2RXhwYW5kID0gRVhQQU5ERURfU1RBVEVcbiAgLy8gX3NpZGVOYXZFeHBhbmQgPSBFWFBBTkRFRF9TVEFURVxuXG4gIC8vIEBIb3N0QmluZGluZygnQHNpZGVOYXZBbmltJykgX3NpZGVOYXZFeHBhbmQgPSBFWFBBTkRFRF9TVEFURVxuICBASG9zdEJpbmRpbmcoJ0BzaWRlTmF2QW5pbScpIF9zaWRlTmF2RXhwYW5kID0gJ2luaXRpYWwnXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGhhc0hlYWRlclRvZ2dsZSA9IHRydWVcblxuICBASW5wdXQoKVxuICBnZXQgaXRlbXMoKTogSVNpZGVOYXZJdGVtW10geyByZXR1cm4gdGhpcy5faXRlbXMudmFsdWUgfVxuICBzZXQgaXRlbXModmFsdWU6IElTaWRlTmF2SXRlbVtdKSB7IHRoaXMuX2l0ZW1zLm5leHQodmFsdWUpIH1cbiAgcHJpdmF0ZSBfaXRlbXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElTaWRlTmF2SXRlbVtdPihbXSlcbiAgcHVibGljIHJlYWRvbmx5IGl0ZW1zJDogT2JzZXJ2YWJsZTxJU2lkZU5hdkl0ZW1bXT5cblxuICBASW5wdXQoKVxuICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9leHBhbmRlZC52YWx1ZSB9XG4gIHNldCBleHBhbmRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IGV4cGFuZGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKVxuICAgIGxldCBlbWl0ID0gZXhwYW5kZWQgIT09IHRoaXMuZXhwYW5kZWRcbiAgICB0aGlzLl9leHBhbmRlZC5uZXh0KGV4cGFuZGVkKVxuXG4gICAgaWYgKGVtaXQpIHtcbiAgICAgIHRoaXMudG9nZ2xlRXhwYW5kLmVtaXQoY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSlcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfZXhwYW5kZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpXG4gIHB1YmxpYyByZWFkb25seSBleHBhbmRlZCQgPSB0aGlzLl9leHBhbmRlZC5hc09ic2VydmFibGUoKVxuXG4gIEBJbnB1dCgpXG4gIGdldCBvdmVybGF5KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fb3ZlcmxheS52YWx1ZSB9XG4gIHNldCBvdmVybGF5KHZhbHVlOiBib29sZWFuKSB7IHRoaXMuX292ZXJsYXkubmV4dChjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpKSB9XG4gIHByaXZhdGUgX292ZXJsYXkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKVxuICBwdWJsaWMgcmVhZG9ubHkgb3ZlcmxheSQgPSB0aGlzLl9vdmVybGF5LmFzT2JzZXJ2YWJsZSgpXG5cbiAgQE91dHB1dCgpIHRvZ2dsZUV4cGFuZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKVxuXG4gIHB1YmxpYyByZWFkb25seSBpc01vYmlsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgcHVibGljIHJlYWRvbmx5IHNpZGVOYXZFeHBhbmRlZFN0YXRlJDogT2JzZXJ2YWJsZTxzdHJpbmc+XG4gIHB1YmxpYyBfYmFja2Ryb3BIaWRkZW4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpXG5cbiAgQENvbnRlbnRDaGlsZChCYXNlTGF5b3V0U2lkZUJhckZvb3RlckRpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIF9zaWRlQmFyRm9vdGVyVHBsPzogVGVtcGxhdGVSZWY8YW55PiB8IG51bGxcbiAgX3NpZGVCYXJGb290ZXJQb3J0YWw/OiBUZW1wbGF0ZVBvcnRhbFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGF5b3V0OiBUaGVTZWFtTGF5b3V0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zaWRlTmF2OiBUaGVTZWFtU2lkZU5hdlNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUSEVTRUFNX0JBU0VfTEFZT1VUX1JFRikgcHJpdmF0ZSByZWFkb25seSBfYmFzZUxheW91dFJlZjogSVRoZVNlYW1CYXNlTGF5b3V0UmVmXG4gICkge1xuICAgIHRoaXMuaXRlbXMkID0gdGhpcy5faXRlbXMuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChpdGVtcyA9PiB0aGlzLl9zaWRlTmF2LmNyZWF0ZUl0ZW1zT2JzZXJ2YWJsZShpdGVtcykpLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAgICApXG5cbiAgICB0aGlzLmlzTW9iaWxlJCA9IHRoaXMuX2xheW91dC5pc01vYmlsZSQucGlwZShcbiAgICAgIHRhcChpc01vYmlsZSA9PiBpc01vYmlsZSA/IHRoaXMuY29sbGFwc2UoKSA6IHRoaXMuZXhwYW5kKCkpXG4gICAgKVxuXG4gICAgdGhpcy5zaWRlTmF2RXhwYW5kZWRTdGF0ZSQgPSBjb21iaW5lTGF0ZXN0KFsgdGhpcy5leHBhbmRlZCQsIHRoaXMub3ZlcmxheSQgXSkucGlwZShcbiAgICAgIG1hcCgoWyBleHBhbmRlZCwgb3ZlcmxheSBdKSA9PiBleHBhbmRlZFxuICAgICAgICA/IG92ZXJsYXkgPyBFWFBBTkRFRF9PVkVSTEFZX1NUQVRFIDogRVhQQU5ERURfU1RBVEVcbiAgICAgICAgOiBvdmVybGF5ID8gQ09MTEFQU0VEX09WRVJMQVlfU1RBVEUgOiBDT0xMQVBTRURfU1RBVEVcbiAgICAgICksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuX2Jhc2VMYXlvdXRSZWYpIHsgdGhpcy5fYmFzZUxheW91dFJlZi5yZWdpc3Rlck5hdih0aGlzKSB9XG5cbiAgICB0aGlzLmlzTW9iaWxlJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZShiID0+IHRoaXMub3ZlcmxheSA9IGIpXG5cbiAgICB0aGlzLnNpZGVOYXZFeHBhbmRlZFN0YXRlJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSh2ID0+IHRoaXMuX3NpZGVOYXZFeHBhbmQgPSB2KVxuXG4gICAgaWYgKHRoaXMuX3NpZGVCYXJGb290ZXJUcGwpIHtcbiAgICAgIHRoaXMuX3NpZGVCYXJGb290ZXJQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fc2lkZUJhckZvb3RlclRwbCwgdGhpcy5fdmlld0NvbnRhaW5lclJlZilcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQoKVxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKVxuICAgIGlmICh0aGlzLl9iYXNlTGF5b3V0UmVmKSB7IHRoaXMuX2Jhc2VMYXlvdXRSZWYudW5yZWdpc3Rlck5hdih0aGlzKSB9XG4gIH1cblxuICBwdWJsaWMgZXhwYW5kKCkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlXG4gIH1cblxuICBwdWJsaWMgY29sbGFwc2UoKSB7XG4gICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlXG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlKCkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZFxuICB9XG5cbiAgcHVibGljIGFuaW1hdGVTdGFydCgpIHtcbiAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgdGhpcy5fYmFja2Ryb3BIaWRkZW4ubmV4dChmYWxzZSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYW5pbWF0ZUVuZCgpIHtcbiAgICBpZiAoIXRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuX2JhY2tkcm9wSGlkZGVuLm5leHQodHJ1ZSlcbiAgICB9XG4gIH1cblxufVxuIl19
@@ -1275,13 +1275,13 @@ class SideNavComponent {
1275
1275
  this.hasHeaderToggle = true;
1276
1276
  this._items = new BehaviorSubject([]);
1277
1277
  this._expanded = new BehaviorSubject(true);
1278
- this.expanded$ = this._expanded.asObservable().pipe(tap(expanded => this.toggleExpand.emit(expanded)));
1278
+ this.expanded$ = this._expanded.asObservable();
1279
1279
  this._overlay = new BehaviorSubject(false);
1280
1280
  this.overlay$ = this._overlay.asObservable();
1281
1281
  this.toggleExpand = new EventEmitter();
1282
1282
  this._backdropHidden = new BehaviorSubject(true);
1283
1283
  this.items$ = this._items.asObservable().pipe(switchMap(items => this._sideNav.createItemsObservable(items)), shareReplay({ bufferSize: 1, refCount: true }));
1284
- this.isMobile$ = this._layout.isMobile$.pipe(tap(isMobile => isMobile && this.collapse()));
1284
+ this.isMobile$ = this._layout.isMobile$.pipe(tap(isMobile => isMobile ? this.collapse() : this.expand()));
1285
1285
  this.sideNavExpandedState$ = combineLatest([this.expanded$, this.overlay$]).pipe(map(([expanded, overlay]) => expanded
1286
1286
  ? overlay ? EXPANDED_OVERLAY_STATE : EXPANDED_STATE$1
1287
1287
  : overlay ? COLLAPSED_OVERLAY_STATE : COLLAPSED_STATE$1), distinctUntilChanged());
@@ -1289,7 +1289,14 @@ class SideNavComponent {
1289
1289
  get items() { return this._items.value; }
1290
1290
  set items(value) { this._items.next(value); }
1291
1291
  get expanded() { return this._expanded.value; }
1292
- set expanded(value) { this._expanded.next(coerceBooleanProperty(value)); }
1292
+ set expanded(value) {
1293
+ const expanded = coerceBooleanProperty(value);
1294
+ let emit = expanded !== this.expanded;
1295
+ this._expanded.next(expanded);
1296
+ if (emit) {
1297
+ this.toggleExpand.emit(coerceBooleanProperty(value));
1298
+ }
1299
+ }
1293
1300
  get overlay() { return this._overlay.value; }
1294
1301
  set overlay(value) { this._overlay.next(coerceBooleanProperty(value)); }
1295
1302
  ngOnInit() {