@theseam/ui-common 0.3.8 → 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.
@@ -9,6 +9,7 @@ import { BaseLayoutContentFooterDirective } from './directives/base-layout-conte
9
9
  import { BaseLayoutContentHeaderDirective } from './directives/base-layout-content-header.directive';
10
10
  import { BaseLayoutContentDirective } from './directives/base-layout-content.directive';
11
11
  import { BaseLayoutNavToggleDirective } from './directives/base-layout-nav-toggle.directive';
12
+ import { BaseLayoutSideBarFooterDirective } from './directives/base-layout-side-bar-footer.directive';
12
13
  import { BaseLayoutSideBarDirective } from './directives/base-layout-side-bar.directive';
13
14
  import { BaseLayoutTopBarDirective } from './directives/base-layout-top-bar.directive';
14
15
  export class TheSeamBaseLayoutModule {
@@ -19,6 +20,7 @@ TheSeamBaseLayoutModule.decorators = [
19
20
  TheSeamBaseLayoutComponent,
20
21
  BaseLayoutContentDirective,
21
22
  BaseLayoutSideBarDirective,
23
+ BaseLayoutSideBarFooterDirective,
22
24
  BaseLayoutTopBarDirective,
23
25
  BaseLayoutNavToggleDirective,
24
26
  BaseLayoutContentHeaderDirective,
@@ -35,6 +37,7 @@ TheSeamBaseLayoutModule.decorators = [
35
37
  TheSeamBaseLayoutComponent,
36
38
  BaseLayoutContentDirective,
37
39
  BaseLayoutSideBarDirective,
40
+ BaseLayoutSideBarFooterDirective,
38
41
  BaseLayoutTopBarDirective,
39
42
  BaseLayoutNavToggleDirective,
40
43
  BaseLayoutContentHeaderDirective,
@@ -42,4 +45,4 @@ TheSeamBaseLayoutModule.decorators = [
42
45
  ]
43
46
  },] }
44
47
  ];
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXlvdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9iYXNlLWxheW91dC9iYXNlLWxheW91dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXhDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBRXJFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFBO0FBQ3BHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFBO0FBQ3BHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQ3ZGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQzVGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFBO0FBQ3hGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBK0J0RixNQUFNLE9BQU8sdUJBQXVCOzs7WUEzQm5DLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osMEJBQTBCO29CQUMxQiwwQkFBMEI7b0JBQzFCLDBCQUEwQjtvQkFDMUIseUJBQXlCO29CQUN6Qiw0QkFBNEI7b0JBQzVCLGdDQUFnQztvQkFDaEMsZ0NBQWdDO2lCQUNqQztnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixZQUFZO29CQUNaLHNCQUFzQjtvQkFDdEIsaUJBQWlCO29CQUNqQixvQkFBb0I7aUJBQ3JCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCwwQkFBMEI7b0JBQzFCLDBCQUEwQjtvQkFDMUIsMEJBQTBCO29CQUMxQix5QkFBeUI7b0JBQ3pCLDRCQUE0QjtvQkFDNUIsZ0NBQWdDO29CQUNoQyxnQ0FBZ0M7aUJBQ2pDO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBUaGVTZWFtQnV0dG9uc01vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9idXR0b25zJ1xuaW1wb3J0IHsgVGhlU2VhbUljb25Nb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vaWNvbidcbmltcG9ydCB7IFRoZVNlYW1TY3JvbGxiYXJNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vc2Nyb2xsYmFyJ1xuXG5pbXBvcnQgeyBUaGVTZWFtQmFzZUxheW91dENvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1sYXlvdXQuY29tcG9uZW50J1xuaW1wb3J0IHsgQmFzZUxheW91dENvbnRlbnRGb290ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYmFzZS1sYXlvdXQtY29udGVudC1mb290ZXIuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgQmFzZUxheW91dENvbnRlbnRIZWFkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYmFzZS1sYXlvdXQtY29udGVudC1oZWFkZXIuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgQmFzZUxheW91dENvbnRlbnREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYmFzZS1sYXlvdXQtY29udGVudC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBCYXNlTGF5b3V0TmF2VG9nZ2xlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Jhc2UtbGF5b3V0LW5hdi10b2dnbGUuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgQmFzZUxheW91dFNpZGVCYXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYmFzZS1sYXlvdXQtc2lkZS1iYXIuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgQmFzZUxheW91dFRvcEJhckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9iYXNlLWxheW91dC10b3AtYmFyLmRpcmVjdGl2ZSdcblxuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFRoZVNlYW1CYXNlTGF5b3V0Q29tcG9uZW50LFxuICAgIEJhc2VMYXlvdXRDb250ZW50RGlyZWN0aXZlLFxuICAgIEJhc2VMYXlvdXRTaWRlQmFyRGlyZWN0aXZlLFxuICAgIEJhc2VMYXlvdXRUb3BCYXJEaXJlY3RpdmUsXG4gICAgQmFzZUxheW91dE5hdlRvZ2dsZURpcmVjdGl2ZSxcbiAgICBCYXNlTGF5b3V0Q29udGVudEhlYWRlckRpcmVjdGl2ZSxcbiAgICBCYXNlTGF5b3V0Q29udGVudEZvb3RlckRpcmVjdGl2ZVxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFBvcnRhbE1vZHVsZSxcbiAgICBUaGVTZWFtU2Nyb2xsYmFyTW9kdWxlLFxuICAgIFRoZVNlYW1JY29uTW9kdWxlLFxuICAgIFRoZVNlYW1CdXR0b25zTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUaGVTZWFtQmFzZUxheW91dENvbXBvbmVudCxcbiAgICBCYXNlTGF5b3V0Q29udGVudERpcmVjdGl2ZSxcbiAgICBCYXNlTGF5b3V0U2lkZUJhckRpcmVjdGl2ZSxcbiAgICBCYXNlTGF5b3V0VG9wQmFyRGlyZWN0aXZlLFxuICAgIEJhc2VMYXlvdXROYXZUb2dnbGVEaXJlY3RpdmUsXG4gICAgQmFzZUxheW91dENvbnRlbnRIZWFkZXJEaXJlY3RpdmUsXG4gICAgQmFzZUxheW91dENvbnRlbnRGb290ZXJEaXJlY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVTZWFtQmFzZUxheW91dE1vZHVsZSB7IH1cbiJdfQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXlvdXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9iYXNlLWxheW91dC9iYXNlLWxheW91dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXhDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFBO0FBRXJFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFBO0FBQ3BHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG1EQUFtRCxDQUFBO0FBQ3BHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQ3ZGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtDQUErQyxDQUFBO0FBQzVGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9EQUFvRCxDQUFBO0FBQ3JHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFBO0FBQ3hGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBaUN0RixNQUFNLE9BQU8sdUJBQXVCOzs7WUE3Qm5DLFFBQVEsU0FBQztnQkFDUixZQUFZLEVBQUU7b0JBQ1osMEJBQTBCO29CQUMxQiwwQkFBMEI7b0JBQzFCLDBCQUEwQjtvQkFDMUIsZ0NBQWdDO29CQUNoQyx5QkFBeUI7b0JBQ3pCLDRCQUE0QjtvQkFDNUIsZ0NBQWdDO29CQUNoQyxnQ0FBZ0M7aUJBQ2pDO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFlBQVk7b0JBQ1osc0JBQXNCO29CQUN0QixpQkFBaUI7b0JBQ2pCLG9CQUFvQjtpQkFDckI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDBCQUEwQjtvQkFDMUIsMEJBQTBCO29CQUMxQiwwQkFBMEI7b0JBQzFCLGdDQUFnQztvQkFDaEMseUJBQXlCO29CQUN6Qiw0QkFBNEI7b0JBQzVCLGdDQUFnQztvQkFDaEMsZ0NBQWdDO2lCQUNqQzthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgVGhlU2VhbUJ1dHRvbnNNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vYnV0dG9ucydcbmltcG9ydCB7IFRoZVNlYW1JY29uTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2ljb24nXG5pbXBvcnQgeyBUaGVTZWFtU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3Njcm9sbGJhcidcblxuaW1wb3J0IHsgVGhlU2VhbUJhc2VMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtbGF5b3V0LmNvbXBvbmVudCdcbmltcG9ydCB7IEJhc2VMYXlvdXRDb250ZW50Rm9vdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Jhc2UtbGF5b3V0LWNvbnRlbnQtZm9vdGVyLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEJhc2VMYXlvdXRDb250ZW50SGVhZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Jhc2UtbGF5b3V0LWNvbnRlbnQtaGVhZGVyLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEJhc2VMYXlvdXRDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Jhc2UtbGF5b3V0LWNvbnRlbnQuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgQmFzZUxheW91dE5hdlRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9iYXNlLWxheW91dC1uYXYtdG9nZ2xlLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEJhc2VMYXlvdXRTaWRlQmFyRm9vdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Jhc2UtbGF5b3V0LXNpZGUtYmFyLWZvb3Rlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBCYXNlTGF5b3V0U2lkZUJhckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9iYXNlLWxheW91dC1zaWRlLWJhci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBCYXNlTGF5b3V0VG9wQmFyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Jhc2UtbGF5b3V0LXRvcC1iYXIuZGlyZWN0aXZlJ1xuXG5cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVGhlU2VhbUJhc2VMYXlvdXRDb21wb25lbnQsXG4gICAgQmFzZUxheW91dENvbnRlbnREaXJlY3RpdmUsXG4gICAgQmFzZUxheW91dFNpZGVCYXJEaXJlY3RpdmUsXG4gICAgQmFzZUxheW91dFNpZGVCYXJGb290ZXJEaXJlY3RpdmUsXG4gICAgQmFzZUxheW91dFRvcEJhckRpcmVjdGl2ZSxcbiAgICBCYXNlTGF5b3V0TmF2VG9nZ2xlRGlyZWN0aXZlLFxuICAgIEJhc2VMYXlvdXRDb250ZW50SGVhZGVyRGlyZWN0aXZlLFxuICAgIEJhc2VMYXlvdXRDb250ZW50Rm9vdGVyRGlyZWN0aXZlXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUG9ydGFsTW9kdWxlLFxuICAgIFRoZVNlYW1TY3JvbGxiYXJNb2R1bGUsXG4gICAgVGhlU2VhbUljb25Nb2R1bGUsXG4gICAgVGhlU2VhbUJ1dHRvbnNNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRoZVNlYW1CYXNlTGF5b3V0Q29tcG9uZW50LFxuICAgIEJhc2VMYXlvdXRDb250ZW50RGlyZWN0aXZlLFxuICAgIEJhc2VMYXlvdXRTaWRlQmFyRGlyZWN0aXZlLFxuICAgIEJhc2VMYXlvdXRTaWRlQmFyRm9vdGVyRGlyZWN0aXZlLFxuICAgIEJhc2VMYXlvdXRUb3BCYXJEaXJlY3RpdmUsXG4gICAgQmFzZUxheW91dE5hdlRvZ2dsZURpcmVjdGl2ZSxcbiAgICBCYXNlTGF5b3V0Q29udGVudEhlYWRlckRpcmVjdGl2ZSxcbiAgICBCYXNlTGF5b3V0Q29udGVudEZvb3RlckRpcmVjdGl2ZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1CYXNlTGF5b3V0TW9kdWxlIHsgfVxuIl19
@@ -0,0 +1,15 @@
1
+ import { Directive, ElementRef } from '@angular/core';
2
+ export class BaseLayoutSideBarFooterDirective {
3
+ constructor(_elementRef) {
4
+ this._elementRef = _elementRef;
5
+ }
6
+ }
7
+ BaseLayoutSideBarFooterDirective.decorators = [
8
+ { type: Directive, args: [{
9
+ selector: '[seamBaseLayoutSideBarFooter]'
10
+ },] }
11
+ ];
12
+ BaseLayoutSideBarFooterDirective.ctorParameters = () => [
13
+ { type: ElementRef }
14
+ ];
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXlvdXQtc2lkZS1iYXItZm9vdGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvYmFzZS1sYXlvdXQvZGlyZWN0aXZlcy9iYXNlLWxheW91dC1zaWRlLWJhci1mb290ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBT3JELE1BQU0sT0FBTyxnQ0FBZ0M7SUFFM0MsWUFDUyxXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtJQUM1QixDQUFDOzs7WUFQTixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLCtCQUErQjthQUMxQzs7O1lBTm1CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBIYXNFbGVtZW50UmVmIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzZWFtQmFzZUxheW91dFNpZGVCYXJGb290ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYXNlTGF5b3V0U2lkZUJhckZvb3RlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIEhhc0VsZW1lbnRSZWYge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBfZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHsgfVxuXG59XG4iXX0=
@@ -1,13 +1,15 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';
3
3
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
- import { ChangeDetectionStrategy, Component, HostBinding, Inject, Input, Optional, ViewEncapsulation } from '@angular/core';
4
+ import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostBinding, Inject, Input, Optional, Output, TemplateRef, ViewContainerRef, ViewEncapsulation } from '@angular/core';
5
5
  import { BehaviorSubject, combineLatest, Subject } from 'rxjs';
6
6
  import { distinctUntilChanged, map, shareReplay, switchMap, takeUntil, tap } from 'rxjs/operators';
7
7
  import { InputBoolean } from '@theseam/ui-common/core';
8
8
  import { TheSeamLayoutService } from '@theseam/ui-common/layout';
9
9
  import { THESEAM_BASE_LAYOUT_REF } from '../base-layout/index';
10
10
  import { TheSeamSideNavService } from './side-nav.service';
11
+ import { BaseLayoutSideBarFooterDirective } from '../base-layout/directives/base-layout-side-bar-footer.directive';
12
+ import { TemplatePortal } from '@angular/cdk/portal';
11
13
  const EXPANDED_STATE = 'expanded';
12
14
  const COLLAPSED_STATE = 'collapsed';
13
15
  const EXPANDED_OVERLAY_STATE = 'expanded-overlay';
@@ -36,7 +38,8 @@ export function sideNavExpandStateChangeFn(fromState, toState) {
36
38
  (EXPANDED_STATES.indexOf(toState) !== -1 && COLLAPSED_STATES.indexOf(fromState) !== -1)));
37
39
  }
38
40
  export class SideNavComponent {
39
- constructor(_layout, _sideNav, _baseLayoutRef) {
41
+ constructor(_viewContainerRef, _layout, _sideNav, _baseLayoutRef) {
42
+ this._viewContainerRef = _viewContainerRef;
40
43
  this._layout = _layout;
41
44
  this._sideNav = _sideNav;
42
45
  this._baseLayoutRef = _baseLayoutRef;
@@ -51,9 +54,10 @@ export class SideNavComponent {
51
54
  this.expanded$ = this._expanded.asObservable();
52
55
  this._overlay = new BehaviorSubject(false);
53
56
  this.overlay$ = this._overlay.asObservable();
57
+ this.toggleExpand = new EventEmitter();
54
58
  this._backdropHidden = new BehaviorSubject(true);
55
59
  this.items$ = this._items.asObservable().pipe(switchMap(items => this._sideNav.createItemsObservable(items)), shareReplay({ bufferSize: 1, refCount: true }));
56
- 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()));
57
61
  this.sideNavExpandedState$ = combineLatest([this.expanded$, this.overlay$]).pipe(map(([expanded, overlay]) => expanded
58
62
  ? overlay ? EXPANDED_OVERLAY_STATE : EXPANDED_STATE
59
63
  : overlay ? COLLAPSED_OVERLAY_STATE : COLLAPSED_STATE), distinctUntilChanged());
@@ -61,7 +65,14 @@ export class SideNavComponent {
61
65
  get items() { return this._items.value; }
62
66
  set items(value) { this._items.next(value); }
63
67
  get expanded() { return this._expanded.value; }
64
- 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
+ }
65
76
  get overlay() { return this._overlay.value; }
66
77
  set overlay(value) { this._overlay.next(coerceBooleanProperty(value)); }
67
78
  ngOnInit() {
@@ -74,6 +85,9 @@ export class SideNavComponent {
74
85
  this.sideNavExpandedState$
75
86
  .pipe(takeUntil(this._ngUnsubscribe))
76
87
  .subscribe(v => this._sideNavExpand = v);
88
+ if (this._sideBarFooterTpl) {
89
+ this._sideBarFooterPortal = new TemplatePortal(this._sideBarFooterTpl, this._viewContainerRef);
90
+ }
77
91
  }
78
92
  ngOnDestroy() {
79
93
  this._ngUnsubscribe.next();
@@ -105,7 +119,7 @@ export class SideNavComponent {
105
119
  SideNavComponent.decorators = [
106
120
  { type: Component, args: [{
107
121
  selector: 'seam-side-nav',
108
- template: "<div class=\"side-nav-backdrop\" *ngIf=\"isMobile$ | async\"\n [@sideNavBackdrop]=\"_sideNavExpand\"\n [class.side-nav-backdrop-hidden]=\"_backdropHidden | async\"></div>\n\n<div class=\"side-nav-inner-wrapper\" [@sideNavExpand]=\"_sideNavExpand\"\n (@sideNavExpand.start)=\"animateStart()\"\n (@sideNavExpand.done)=\"animateEnd()\">\n <nav class=\"nav side-nav-content\">\n <seam-side-nav-toggle *ngIf=\"hasHeaderToggle\"\n [expanded]=\"expanded$ | async\"\n (toggleExpand)=\"toggle()\">\n </seam-side-nav-toggle>\n <div class=\"side-nav-items-container\" seamOverlayScrollbar>\n <seam-side-nav-item *ngFor=\"let item of items$ | async\"\n [compact]=\"!(expanded$ | async)\"\n [itemType]=\"$any(item)?.itemType\"\n [icon]=\"$any(item)?.icon\"\n [label]=\"$any(item)?.label\"\n [link]=\"$any(item)?.link\"\n [badgeText]=\"$any(item)?.badge?.text\"\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\n [queryParams]=\"$any(item)?.queryParams\"\n [children]=\"$any(item)?.children\"\n [active]=\"$any(item).__state.active\"\n [expanded]=\"$any(item).__state.expanded\">\n </seam-side-nav-item>\n </div>\n </nav>\n</div>\n",
122
+ template: "<div class=\"side-nav-backdrop\" *ngIf=\"isMobile$ | async\"\n [@sideNavBackdrop]=\"_sideNavExpand\"\n [class.side-nav-backdrop-hidden]=\"_backdropHidden | async\"></div>\n\n<div class=\"side-nav-inner-wrapper\" [@sideNavExpand]=\"_sideNavExpand\"\n (@sideNavExpand.start)=\"animateStart()\"\n (@sideNavExpand.done)=\"animateEnd()\">\n <nav class=\"nav side-nav-content\">\n <seam-side-nav-toggle *ngIf=\"hasHeaderToggle\"\n [expanded]=\"expanded$ | async\"\n (toggleExpand)=\"toggle()\">\n </seam-side-nav-toggle>\n <div class=\"side-nav-items-container\" seamOverlayScrollbar>\n <seam-side-nav-item *ngFor=\"let item of items$ | async\"\n [compact]=\"!(expanded$ | async)\"\n [itemType]=\"$any(item)?.itemType\"\n [icon]=\"$any(item)?.icon\"\n [label]=\"$any(item)?.label\"\n [link]=\"$any(item)?.link\"\n [badgeText]=\"$any(item)?.badge?.text\"\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\n [queryParams]=\"$any(item)?.queryParams\"\n [children]=\"$any(item)?.children\"\n [active]=\"$any(item).__state.active\"\n [expanded]=\"$any(item).__state.expanded\">\n </seam-side-nav-item>\n </div>\n <ng-template [cdkPortalOutlet]=\"_sideBarFooterPortal\"></ng-template>\n </nav>\n</div>\n",
109
123
  providers: [
110
124
  TheSeamSideNavService
111
125
  ],
@@ -178,6 +192,7 @@ SideNavComponent.decorators = [
178
192
  },] }
179
193
  ];
180
194
  SideNavComponent.ctorParameters = () => [
195
+ { type: ViewContainerRef },
181
196
  { type: TheSeamLayoutService },
182
197
  { type: TheSeamSideNavService },
183
198
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [THESEAM_BASE_LAYOUT_REF,] }] }
@@ -187,9 +202,11 @@ SideNavComponent.propDecorators = {
187
202
  hasHeaderToggle: [{ type: Input }],
188
203
  items: [{ type: Input }],
189
204
  expanded: [{ type: Input }],
190
- overlay: [{ type: Input }]
205
+ overlay: [{ type: Input }],
206
+ toggleExpand: [{ type: Output }],
207
+ _sideBarFooterTpl: [{ type: ContentChild, args: [BaseLayoutSideBarFooterDirective, { static: true, read: TemplateRef },] }]
191
208
  };
192
209
  __decorate([
193
210
  InputBoolean()
194
211
  ], SideNavComponent.prototype, "hasHeaderToggle", void 0);
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zaWRlLW5hdi9zaWRlLW5hdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUE7QUFDNUIsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUU5SSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFVLEdBQUcsRUFBbUIsV0FBVyxFQUFhLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFdEksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBRWhFLE9BQU8sRUFBZ0QsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUc1RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUUxRCxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUE7QUFDakMsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFBO0FBRW5DLE1BQU0sc0JBQXNCLEdBQUcsa0JBQWtCLENBQUE7QUFDakQsTUFBTSx1QkFBdUIsR0FBRyxtQkFBbUIs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OzRCQUNkLEtBQUssRUFBRSxvQkFBb0I7NEJBQzNCLFNBQVMsRUFBRSxlQUFlO3lCQUMzQixDQUFDLENBQUM7d0JBQ0gsS0FBSyxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQzs0QkFDbkMsUUFBUSxFQUFFLFVBQVU7NEJBQ3BCLEdBQUcsRUFBRSxDQUFDOzRCQUNOLE1BQU0sRUFBRSxNQUFNOzRCQUNkLE1BQU0sRUFBRSxDQUFDOzRCQUNULElBQUksRUFBRSxDQUFDOzRCQUNQLEtBQUssRUFBRSxNQUFNOzRCQUNiLE1BQU0sRUFBRSxNQUFNOzRCQUNkLEtBQUssRUFBRSxvQkFBb0I7NEJBQzNCLFNBQVMsRUFBRSxpQ0FBaUM7NEJBQzVDLFlBQVksRUFBRSxRQUFRO3lCQUN2QixDQUFDLENBQUM7d0JBRUgsdUZBQXVGO3dCQUV2RixVQUFVLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7d0JBRW5FLDJEQUEyRDt3QkFDM0QsNERBQTREO3dCQUM1RCw0REFBNEQ7d0JBQzVELFlBQVk7d0JBQ1osMkRBQTJEO3dCQUMzRCwyREFBMkQ7d0JBQzNELGlFQUFpRTt3QkFDakUsa0NBQWtDO3dCQUNsQyxPQUFPO3dCQUNQLE1BQU07cUJBQ1AsQ0FBQztpQkFDSDtnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUEzSFEsb0JBQW9CO1lBS3BCLHFCQUFxQjs0Q0E2SnpCLFFBQVEsWUFBSSxNQUFNLFNBQUMsdUJBQXVCOzs7NkJBN0I1QyxXQUFXLFNBQUMsY0FBYzs4QkFFMUIsS0FBSztvQkFFTCxLQUFLO3VCQU1MLEtBQUs7c0JBTUwsS0FBSzs7QUFkbUI7SUFBZixZQUFZLEVBQUU7eURBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgYW5pbWF0ZUNoaWxkLFxuICBncm91cCxcbiAgcXVlcnksXG4gIHN0YXRlLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJ1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgbWFwVG8sIHBhaXJ3aXNlLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IElucHV0Qm9vbGVhbiB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb3JlJ1xuaW1wb3J0IHsgVGhlU2VhbUxheW91dFNlcnZpY2UgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vbGF5b3V0J1xuXG5pbXBvcnQgeyBJVGhlU2VhbUJhc2VMYXlvdXROYXYsIElUaGVTZWFtQmFzZUxheW91dFJlZiwgVEhFU0VBTV9CQVNFX0xBWU9VVF9SRUYgfSBmcm9tICcuLi9iYXNlLWxheW91dC9pbmRleCdcblxuaW1wb3J0IHsgSVNpZGVOYXZJdGVtIH0gZnJvbSAnLi9zaWRlLW5hdi5tb2RlbHMnXG5pbXBvcnQgeyBUaGVTZWFtU2lkZU5hdlNlcnZpY2UgfSBmcm9tICcuL3NpZGUtbmF2LnNlcnZpY2UnXG5cbmNvbnN0IEVYUEFOREVEX1NUQVRFID0gJ2V4cGFuZGVkJ1xuY29uc3QgQ09MTEFQU0VEX1NUQVRFID0gJ2NvbGxhcHNlZCdcblxuY29uc3QgRVhQQU5ERURfT1ZFUkxBWV9TVEFURSA9ICdleHBhbmRlZC1vdmVybGF5J1xuY29uc3QgQ09MTEFQU0VEX09WRVJMQVlfU1RBVEUgPSAnY29sbGFwc2VkLW92ZXJsYXknXG5cbmNvbnN0IEVYUEFOREVEX1NUQVRFUyA9IFsgRVhQQU5ERURfU1RBVEUsIEVYUEFOREVEX09WRVJMQVlfU1RBVEUgXVxuY29uc3QgQ09MTEFQU0VEX1NUQVRFUyA9IFsgQ09MTEFQU0VEX1NUQVRFLCBDT0xMQVBTRURfT1ZFUkxBWV9TVEFURSBdXG5jb25zdCBFWFBBTkRfU1RBVEVTID0gWyAuLi5FWFBBTkRFRF9TVEFURVMsIC4uLkNPTExBUFNFRF9TVEFURVMgXVxuXG5leHBvcnQgZnVuY3Rpb24gc2lkZU5hdkV4cGFuZFN0YXRlQ2hhbmdlRm4oZnJvbVN0YXRlOiBzdHJpbmcsIHRvU3RhdGU6IHN0cmluZykge1xuICAvLyBjb25zb2xlLmxvZyh7IGZyb21TdGF0ZSwgdG9TdGF0ZSB9KVxuICByZXR1cm4gZnJvbVN0YXRlICE9PSB0b1N0YXRlICYmXG4gICAgKFxuICAgICAgLy8gTk9URTogVGhlIGN1cnJlbnQgd2F5IHRoZSBzaWRlIG5hdiBpcyBiZWluZyB1c2VkIGl0IGNhdXNlcyB0aGVcbiAgICAgIC8vIGNvbXBvbmVudCB0byBzb21ldGltZXMgZ2V0IHBsYWNlZCBpbiB0aGUgd3JvbmcgbG9jYXRpb24gaW5pdGlhbGx5LiBJdFxuICAgICAgLy8gaXMgZmFzdCBlbm91Z2ggdG8gbm90IGJlIG5vdGljZWQgd2l0aG91dCBhbiBpbml0aWFsIGFuaW1hdGlvbiB1c3VhbGx5LFxuICAgICAgLy8gc28gaXQgaXMgY29tbWVudGVkIG91dCBiZWxvdyB1bnRpbCB0aGUgaW5pdGlhbCBwbGFjZW1lbnQgaXNzdWUgaXRcbiAgICAgIC8vIGZpeGVkLlxuICAgICAgLy9cbiAgICAgIC8vIChcbiAgICAgIC8vICAgZnJvbVN0YXRlID09PSAndm9pZCcgJiYgRVhQQU5EX1NUQVRFUy5pbmRleE9mKHRvU3RhdGUpICE9PSAtMVxuICAgICAgLy8gICB8fFxuICAgICAgLy8gICB0b1N0YXRlID09PSAndm9pZCcgJiYgRVhQQU5EX1NUQVRFUy5pbmRleE9mKGZyb21TdGF0ZSkgIT09IC0xXG4gICAgICAvLyApXG4gICAgICAvLyB8fFxuICAgICAgKFxuICAgICAgICAoRVhQQU5ERURfU1RBVEVTLmluZGV4T2YoZnJvbVN0YXRlKSAhPT0gLTEgJiYgQ09MTEFQU0VEX1NUQVRFUy5pbmRleE9mKHRvU3RhdGUpICE9PSAtMSlcbiAgICAgICAgfHxcbiAgICAgICAgKEVYUEFOREVEX1NUQVRFUy5pbmRleE9mKHRvU3RhdGUpICE9PSAtMSAmJiBDT0xMQVBTRURfU1RBVEVTLmluZGV4T2YoZnJvbVN0YXRlKSAhPT0gLTEpXG4gICAgICApXG4gICAgKVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLXNpZGUtbmF2JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtbmF2LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2lkZS1uYXYuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgVGhlU2VhbVNpZGVOYXZTZXJ2aWNlXG4gIF0sXG4gIGFuaW1hdGlvbnM6IFtcblxuICAgIC8vXG4gICAgLy8gVE9ETzogVGhpcyBhbmltYXRpb24gY29kZSB0dXJuZWQgaW50byBhIG1lc3MuIENsZWFuIGl0IHVwIGFuZCBtYWtlIGl0XG4gICAgLy8gbW9yZSBzbW9vdGguXG4gICAgLy9cblxuICAgIHRyaWdnZXIoJ3NpZGVOYXZBbmltJywgW1xuICAgICAgdHJhbnNpdGlvbihzaWRlTmF2RXhwYW5kU3RhdGVDaGFuZ2VGbiwgW1xuICAgICAgICBncm91cChbXG4gICAgICAgICAgcXVlcnkoJ0BzaWRlTmF2QmFja2Ryb3AnLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgICAgICBxdWVyeSgnQHNpZGVOYXZFeHBhbmQnLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgICAgXSksXG4gICAgICBdKSxcbiAgICBdKSxcblxuICAgIHRyaWdnZXIoJ3NpZGVOYXZCYWNrZHJvcCcsIFtcbiAgICAgIHN0YXRlKEVYUEFOREVEX09WRVJMQVlfU1RBVEUsIHN0eWxlKHsgb3BhY2l0eTogJzEnIH0pKSxcbiAgICAgIHN0YXRlKENPTExBUFNFRF9PVkVSTEFZX1NUQVRFLCBzdHlsZSh7IG9wYWNpdHk6ICcwJyB9KSksXG5cbiAgICAgIC8vIHRyYW5zaXRpb24oKGZyb21TdGF0ZSwgdG9TdGF0ZSwgZWxlbWVudCwgcGFyYW1zKSA9PiB7XG4gICAgICAvLyAgIGNvbnNvbGUubG9nKCdzaWRlTmF2QmFja2Ryb3AgdicsIGZyb21TdGF0ZSwgdG9TdGF0ZSwgZWxlbWVudCwgcGFyYW1zKVxuICAgICAgLy8gICByZXR1cm4gZmFsc2VcbiAgICAgIC8vIH0sIFtdKSxcblxuICAgICAgdHJhbnNpdGlvbihzaWRlTmF2RXhwYW5kU3RhdGVDaGFuZ2VGbiwgYW5pbWF0ZSgnMC4ycyBlYXNlLWluLW91dCcpKSxcbiAgICBdKSxcblxuICAgIHRyaWdnZXIoJ3NpZGVOYXZFeHBhbmQnLCBbXG4gICAgICAvLyBUT0RPOiBNYWtlIHdpZHRoIGNvbmZpZ3VyYWJsZS5cbiAgICAgIHN0YXRlKEVYUEFOREVEX1NUQVRFLCBzdHlsZSh7IHdpZHRoOiAnMjYwcHgnIH0pKSxcbiAgICAgIHN0YXRlKENPTExBUFNFRF9TVEFURSwgc3R5bGUoeyB3aWR0aDogJzUwcHgnLCAnb3ZlcmZsb3cteCc6ICdoaWRkZW4nIH0pKSxcblxuICAgICAgc3RhdGUoRVhQQU5ERURfT1ZFUkxBWV9TVEFURSwgc3R5bGUoe1xuICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgdG9wOiAwLFxuICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICBsZWZ0OiAwLFxuICAgICAgICBmbG9hdDogJ2xlZnQnLFxuICAgICAgICB6SW5kZXg6ICc5OTk5JyxcbiAgICAgICAgd2lkdGg6ICdjYWxjKDEwMHZ3IC0gNTBweCknLFxuICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJ1xuICAgICAgfSkpLFxuICAgICAgc3RhdGUoQ09MTEFQU0VEX09WRVJMQVlfU1RBVEUsIHN0eWxlKHtcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgZmxvYXQ6ICdsZWZ0JyxcbiAgICAgICAgekluZGV4OiAnOTk5OScsXG4gICAgICAgIHdpZHRoOiAnY2FsYygxMDB2dyAtIDUwcHgpJyxcbiAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWChjYWxjKC0xMDB2dyArIDUwcHgpKScsXG4gICAgICAgICdvdmVyZmxvdy14JzogJ2hpZGRlbidcbiAgICAgIH0pKSxcblxuICAgICAgLy8gdHJhbnNpdGlvbihgJHtFWFBBTkRFRF9TVEFURX0gPD0+ICR7Q09MTEFQU0VEX1NUQVRFfWAsIGFuaW1hdGUoJzAuMnMgZWFzZS1pbi1vdXQnKSksXG5cbiAgICAgIHRyYW5zaXRpb24oc2lkZU5hdkV4cGFuZFN0YXRlQ2hhbmdlRm4sIGFuaW1hdGUoJzAuMnMgZWFzZS1pbi1vdXQnKSksXG5cbiAgICAgIC8vIHRyYW5zaXRpb24oYCR7RVhQQU5ERURfU1RBVEV9IDw9PiAke0NPTExBUFNFRF9TVEFURX1gLCBbXG4gICAgICAvLyAgIC8vIHF1ZXJ5KCc6bGVhdmUnLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgIC8vICAgLy8gcXVlcnkoJzplbnRlcicsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICAgICAgLy8gICBncm91cChbXG4gICAgICAvLyAgICAgcXVlcnkoJzpsZWF2ZScsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICAgICAgLy8gICAgIHF1ZXJ5KCc6ZW50ZXInLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgIC8vICAgICBxdWVyeSgnQGNvbXBhY3RBbmltJywgYW5pbWF0ZUNoaWxkKCksIHsgb3B0aW9uYWw6IHRydWUgfSksXG4gICAgICAvLyAgICAgYW5pbWF0ZSgnNS4ycyBlYXNlLWluLW91dCcpXG4gICAgICAvLyAgIF0pXG4gICAgICAvLyBdKSxcbiAgICBdKVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTaWRlTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIElUaGVTZWFtQmFzZUxheW91dE5hdiB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9oYXNIZWFkZXJUb2dnbGU6IEJvb2xlYW5JbnB1dFxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpXG5cbiAgLy8gQEhvc3RCaW5kaW5nKCdAc2lkZU5hdkV4cGFuZCcpIF9zaWRlTmF2RXhwYW5kID0gRVhQQU5ERURfU1RBVEVcbiAgLy8gX3NpZGVOYXZFeHBhbmQgPSBFWFBBTkRFRF9TVEFURVxuXG4gIC8vIEBIb3N0QmluZGluZygnQHNpZGVOYXZBbmltJykgX3NpZGVOYXZFeHBhbmQgPSBFWFBBTkRFRF9TVEFURVxuICBASG9zdEJpbmRpbmcoJ0BzaWRlTmF2QW5pbScpIF9zaWRlTmF2RXhwYW5kID0gJ2luaXRpYWwnXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGhhc0hlYWRlclRvZ2dsZSA9IHRydWVcblxuICBASW5wdXQoKVxuICBnZXQgaXRlbXMoKTogSVNpZGVOYXZJdGVtW10geyByZXR1cm4gdGhpcy5faXRlbXMudmFsdWUgfVxuICBzZXQgaXRlbXModmFsdWU6IElTaWRlTmF2SXRlbVtdKSB7IHRoaXMuX2l0ZW1zLm5leHQodmFsdWUpIH1cbiAgcHJpdmF0ZSBfaXRlbXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElTaWRlTmF2SXRlbVtdPihbXSlcbiAgcHVibGljIHJlYWRvbmx5IGl0ZW1zJDogT2JzZXJ2YWJsZTxJU2lkZU5hdkl0ZW1bXT5cblxuICBASW5wdXQoKVxuICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9leHBhbmRlZC52YWx1ZSB9XG4gIHNldCBleHBhbmRlZCh2YWx1ZTogYm9vbGVhbikgeyB0aGlzLl9leHBhbmRlZC5uZXh0KGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSkpIH1cbiAgcHJpdmF0ZSBfZXhwYW5kZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpXG4gIHB1YmxpYyByZWFkb25seSBleHBhbmRlZCQgPSB0aGlzLl9leHBhbmRlZC5hc09ic2VydmFibGUoKVxuXG4gIEBJbnB1dCgpXG4gIGdldCBvdmVybGF5KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fb3ZlcmxheS52YWx1ZSB9XG4gIHNldCBvdmVybGF5KHZhbHVlOiBib29sZWFuKSB7IHRoaXMuX292ZXJsYXkubmV4dChjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpKSB9XG4gIHByaXZhdGUgX292ZXJsYXkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKVxuICBwdWJsaWMgcmVhZG9ubHkgb3ZlcmxheSQgPSB0aGlzLl9vdmVybGF5LmFzT2JzZXJ2YWJsZSgpXG5cbiAgcHVibGljIHJlYWRvbmx5IGlzTW9iaWxlJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuICBwdWJsaWMgcmVhZG9ubHkgc2lkZU5hdkV4cGFuZGVkU3RhdGUkOiBPYnNlcnZhYmxlPHN0cmluZz5cbiAgcHVibGljIF9iYWNrZHJvcEhpZGRlbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSlcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9sYXlvdXQ6IFRoZVNlYW1MYXlvdXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3NpZGVOYXY6IFRoZVNlYW1TaWRlTmF2U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRIRVNFQU1fQkFTRV9MQVlPVVRfUkVGKSBwcml2YXRlIHJlYWRvbmx5IF9iYXNlTGF5b3V0UmVmOiBJVGhlU2VhbUJhc2VMYXlvdXRSZWZcbiAgKSB7XG4gICAgdGhpcy5pdGVtcyQgPSB0aGlzLl9pdGVtcy5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGl0ZW1zID0+IHRoaXMuX3NpZGVOYXYuY3JlYXRlSXRlbXNPYnNlcnZhYmxlKGl0ZW1zKSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pLFxuICAgIClcblxuICAgIHRoaXMuaXNNb2JpbGUkID0gdGhpcy5fbGF5b3V0LmlzTW9iaWxlJC5waXBlKFxuICAgICAgdGFwKGlzTW9iaWxlID0+IGlzTW9iaWxlICYmIHRoaXMuY29sbGFwc2UoKSlcbiAgICApXG5cbiAgICB0aGlzLnNpZGVOYXZFeHBhbmRlZFN0YXRlJCA9IGNvbWJpbmVMYXRlc3QoWyB0aGlzLmV4cGFuZGVkJCwgdGhpcy5vdmVybGF5JCBdKS5waXBlKFxuICAgICAgbWFwKChbIGV4cGFuZGVkLCBvdmVybGF5IF0pID0+IGV4cGFuZGVkXG4gICAgICAgID8gb3ZlcmxheSA/IEVYUEFOREVEX09WRVJMQVlfU1RBVEUgOiBFWFBBTkRFRF9TVEFURVxuICAgICAgICA6IG92ZXJsYXkgPyBDT0xMQVBTRURfT1ZFUkxBWV9TVEFURSA6IENPTExBUFNFRF9TVEFURVxuICAgICAgKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICApXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5fYmFzZUxheW91dFJlZikgeyB0aGlzLl9iYXNlTGF5b3V0UmVmLnJlZ2lzdGVyTmF2KHRoaXMpIH1cblxuICAgIHRoaXMuaXNNb2JpbGUkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKGIgPT4gdGhpcy5vdmVybGF5ID0gYilcblxuICAgIHRoaXMuc2lkZU5hdkV4cGFuZGVkU3RhdGUkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKHYgPT4gdGhpcy5fc2lkZU5hdkV4cGFuZCA9IHYpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQoKVxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKVxuICAgIGlmICh0aGlzLl9iYXNlTGF5b3V0UmVmKSB7IHRoaXMuX2Jhc2VMYXlvdXRSZWYudW5yZWdpc3Rlck5hdih0aGlzKSB9XG4gIH1cblxuICBwdWJsaWMgZXhwYW5kKCkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlXG4gIH1cblxuICBwdWJsaWMgY29sbGFwc2UoKSB7XG4gICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlXG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlKCkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZFxuICB9XG5cbiAgcHVibGljIGFuaW1hdGVTdGFydCgpIHtcbiAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgdGhpcy5fYmFja2Ryb3BIaWRkZW4ubmV4dChmYWxzZSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYW5pbWF0ZUVuZCgpIHtcbiAgICBpZiAoIXRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuX2JhY2tkcm9wSGlkZGVuLm5leHQodHJ1ZSlcbiAgICB9XG4gIH1cblxufVxuIl19
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zaWRlLW5hdi9zaWRlLW5hdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBQ0wsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNSLE1BQU0scUJBQXFCLENBQUE7QUFDNUIsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFak4sT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBVSxHQUFHLEVBQW1CLFdBQVcsRUFBYSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXRJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUVoRSxPQUFPLEVBQWdELHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFHNUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0saUVBQWlFLENBQUE7QUFDbEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFN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QUFDLENBQUM7d0JBRUgsdUZBQXVGO3dCQUV2RixVQUFVLENBQUMsMEJBQTBCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7d0JBRW5FLDJEQUEyRDt3QkFDM0QsNERBQTREO3dCQUM1RCw0REFBNEQ7d0JBQzVELFlBQVk7d0JBQ1osMkRBQTJEO3dCQUMzRCwyREFBMkQ7d0JBQzNELGlFQUFpRTt3QkFDakUsa0NBQWtDO3dCQUNsQyxPQUFPO3dCQUNQLE1BQU07cUJBQ1AsQ0FBQztpQkFDSDtnQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtnQkFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUFuSXNKLGdCQUFnQjtZQU05SixvQkFBb0I7WUFLcEIscUJBQXFCOzRDQTZLekIsUUFBUSxZQUFJLE1BQU0sU0FBQyx1QkFBdUI7Ozs2QkEzQzVDLFdBQVcsU0FBQyxjQUFjOzhCQUUxQixLQUFLO29CQUVMLEtBQUs7dUJBTUwsS0FBSztzQkFjTCxLQUFLOzJCQU1MLE1BQU07Z0NBTU4sWUFBWSxTQUFDLGdDQUFnQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFOztBQWxDMUQ7SUFBZixZQUFZLEVBQUU7eURBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgYW5pbWF0ZUNoaWxkLFxuICBncm91cCxcbiAgcXVlcnksXG4gIHN0YXRlLFxuICBzdHlsZSxcbiAgdHJhbnNpdGlvbixcbiAgdHJpZ2dlclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJ1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIG1hcFRvLCBwYWlyd2lzZSwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vY29yZSdcbmltcG9ydCB7IFRoZVNlYW1MYXlvdXRTZXJ2aWNlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2xheW91dCdcblxuaW1wb3J0IHsgSVRoZVNlYW1CYXNlTGF5b3V0TmF2LCBJVGhlU2VhbUJhc2VMYXlvdXRSZWYsIFRIRVNFQU1fQkFTRV9MQVlPVVRfUkVGIH0gZnJvbSAnLi4vYmFzZS1sYXlvdXQvaW5kZXgnXG5cbmltcG9ydCB7IElTaWRlTmF2SXRlbSB9IGZyb20gJy4vc2lkZS1uYXYubW9kZWxzJ1xuaW1wb3J0IHsgVGhlU2VhbVNpZGVOYXZTZXJ2aWNlIH0gZnJvbSAnLi9zaWRlLW5hdi5zZXJ2aWNlJ1xuaW1wb3J0IHsgQmFzZUxheW91dFNpZGVCYXJGb290ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9iYXNlLWxheW91dC9kaXJlY3RpdmVzL2Jhc2UtbGF5b3V0LXNpZGUtYmFyLWZvb3Rlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXG5cbmNvbnN0IEVYUEFOREVEX1NUQVRFID0gJ2V4cGFuZGVkJ1xuY29uc3QgQ09MTEFQU0VEX1NUQVRFID0gJ2NvbGxhcHNlZCdcblxuY29uc3QgRVhQQU5ERURfT1ZFUkxBWV9TVEFURSA9ICdleHBhbmRlZC1vdmVybGF5J1xuY29uc3QgQ09MTEFQU0VEX09WRVJMQVlfU1RBVEUgPSAnY29sbGFwc2VkLW92ZXJsYXknXG5cbmNvbnN0IEVYUEFOREVEX1NUQVRFUyA9IFsgRVhQQU5ERURfU1RBVEUsIEVYUEFOREVEX09WRVJMQVlfU1RBVEUgXVxuY29uc3QgQ09MTEFQU0VEX1NUQVRFUyA9IFsgQ09MTEFQU0VEX1NUQVRFLCBDT0xMQVBTRURfT1ZFUkxBWV9TVEFURSBdXG5jb25zdCBFWFBBTkRfU1RBVEVTID0gWyAuLi5FWFBBTkRFRF9TVEFURVMsIC4uLkNPTExBUFNFRF9TVEFURVMgXVxuXG5leHBvcnQgZnVuY3Rpb24gc2lkZU5hdkV4cGFuZFN0YXRlQ2hhbmdlRm4oZnJvbVN0YXRlOiBzdHJpbmcsIHRvU3RhdGU6IHN0cmluZykge1xuICAvLyBjb25zb2xlLmxvZyh7IGZyb21TdGF0ZSwgdG9TdGF0ZSB9KVxuICByZXR1cm4gZnJvbVN0YXRlICE9PSB0b1N0YXRlICYmXG4gICAgKFxuICAgICAgLy8gTk9URTogVGhlIGN1cnJlbnQgd2F5IHRoZSBzaWRlIG5hdiBpcyBiZWluZyB1c2VkIGl0IGNhdXNlcyB0aGVcbiAgICAgIC8vIGNvbXBvbmVudCB0byBzb21ldGltZXMgZ2V0IHBsYWNlZCBpbiB0aGUgd3JvbmcgbG9jYXRpb24gaW5pdGlhbGx5LiBJdFxuICAgICAgLy8gaXMgZmFzdCBlbm91Z2ggdG8gbm90IGJlIG5vdGljZWQgd2l0aG91dCBhbiBpbml0aWFsIGFuaW1hdGlvbiB1c3VhbGx5LFxuICAgICAgLy8gc28gaXQgaXMgY29tbWVudGVkIG91dCBiZWxvdyB1bnRpbCB0aGUgaW5pdGlhbCBwbGFjZW1lbnQgaXNzdWUgaXRcbiAgICAgIC8vIGZpeGVkLlxuICAgICAgLy9cbiAgICAgIC8vIChcbiAgICAgIC8vICAgZnJvbVN0YXRlID09PSAndm9pZCcgJiYgRVhQQU5EX1NUQVRFUy5pbmRleE9mKHRvU3RhdGUpICE9PSAtMVxuICAgICAgLy8gICB8fFxuICAgICAgLy8gICB0b1N0YXRlID09PSAndm9pZCcgJiYgRVhQQU5EX1NUQVRFUy5pbmRleE9mKGZyb21TdGF0ZSkgIT09IC0xXG4gICAgICAvLyApXG4gICAgICAvLyB8fFxuICAgICAgKFxuICAgICAgICAoRVhQQU5ERURfU1RBVEVTLmluZGV4T2YoZnJvbVN0YXRlKSAhPT0gLTEgJiYgQ09MTEFQU0VEX1NUQVRFUy5pbmRleE9mKHRvU3RhdGUpICE9PSAtMSlcbiAgICAgICAgfHxcbiAgICAgICAgKEVYUEFOREVEX1NUQVRFUy5pbmRleE9mKHRvU3RhdGUpICE9PSAtMSAmJiBDT0xMQVBTRURfU1RBVEVTLmluZGV4T2YoZnJvbVN0YXRlKSAhPT0gLTEpXG4gICAgICApXG4gICAgKVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLXNpZGUtbmF2JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NpZGUtbmF2LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2lkZS1uYXYuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgVGhlU2VhbVNpZGVOYXZTZXJ2aWNlXG4gIF0sXG4gIGFuaW1hdGlvbnM6IFtcblxuICAgIC8vXG4gICAgLy8gVE9ETzogVGhpcyBhbmltYXRpb24gY29kZSB0dXJuZWQgaW50byBhIG1lc3MuIENsZWFuIGl0IHVwIGFuZCBtYWtlIGl0XG4gICAgLy8gbW9yZSBzbW9vdGguXG4gICAgLy9cblxuICAgIHRyaWdnZXIoJ3NpZGVOYXZBbmltJywgW1xuICAgICAgdHJhbnNpdGlvbihzaWRlTmF2RXhwYW5kU3RhdGVDaGFuZ2VGbiwgW1xuICAgICAgICBncm91cChbXG4gICAgICAgICAgcXVlcnkoJ0BzaWRlTmF2QmFja2Ryb3AnLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgICAgICBxdWVyeSgnQHNpZGVOYXZFeHBhbmQnLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgICAgXSksXG4gICAgICBdKSxcbiAgICBdKSxcblxuICAgIHRyaWdnZXIoJ3NpZGVOYXZCYWNrZHJvcCcsIFtcbiAgICAgIHN0YXRlKEVYUEFOREVEX09WRVJMQVlfU1RBVEUsIHN0eWxlKHsgb3BhY2l0eTogJzEnIH0pKSxcbiAgICAgIHN0YXRlKENPTExBUFNFRF9PVkVSTEFZX1NUQVRFLCBzdHlsZSh7IG9wYWNpdHk6ICcwJyB9KSksXG5cbiAgICAgIC8vIHRyYW5zaXRpb24oKGZyb21TdGF0ZSwgdG9TdGF0ZSwgZWxlbWVudCwgcGFyYW1zKSA9PiB7XG4gICAgICAvLyAgIGNvbnNvbGUubG9nKCdzaWRlTmF2QmFja2Ryb3AgdicsIGZyb21TdGF0ZSwgdG9TdGF0ZSwgZWxlbWVudCwgcGFyYW1zKVxuICAgICAgLy8gICByZXR1cm4gZmFsc2VcbiAgICAgIC8vIH0sIFtdKSxcblxuICAgICAgdHJhbnNpdGlvbihzaWRlTmF2RXhwYW5kU3RhdGVDaGFuZ2VGbiwgYW5pbWF0ZSgnMC4ycyBlYXNlLWluLW91dCcpKSxcbiAgICBdKSxcblxuICAgIHRyaWdnZXIoJ3NpZGVOYXZFeHBhbmQnLCBbXG4gICAgICAvLyBUT0RPOiBNYWtlIHdpZHRoIGNvbmZpZ3VyYWJsZS5cbiAgICAgIHN0YXRlKEVYUEFOREVEX1NUQVRFLCBzdHlsZSh7IHdpZHRoOiAnMjYwcHgnIH0pKSxcbiAgICAgIHN0YXRlKENPTExBUFNFRF9TVEFURSwgc3R5bGUoeyB3aWR0aDogJzUwcHgnLCAnb3ZlcmZsb3cteCc6ICdoaWRkZW4nIH0pKSxcblxuICAgICAgc3RhdGUoRVhQQU5ERURfT1ZFUkxBWV9TVEFURSwgc3R5bGUoe1xuICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgdG9wOiAwLFxuICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgYm90dG9tOiAwLFxuICAgICAgICBsZWZ0OiAwLFxuICAgICAgICBmbG9hdDogJ2xlZnQnLFxuICAgICAgICB6SW5kZXg6ICc5OTk5JyxcbiAgICAgICAgd2lkdGg6ICdjYWxjKDEwMHZ3IC0gNTBweCknLFxuICAgICAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJ1xuICAgICAgfSkpLFxuICAgICAgc3RhdGUoQ09MTEFQU0VEX09WRVJMQVlfU1RBVEUsIHN0eWxlKHtcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHRvcDogMCxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgbGVmdDogMCxcbiAgICAgICAgZmxvYXQ6ICdsZWZ0JyxcbiAgICAgICAgekluZGV4OiAnOTk5OScsXG4gICAgICAgIHdpZHRoOiAnY2FsYygxMDB2dyAtIDUwcHgpJyxcbiAgICAgICAgdHJhbnNmb3JtOiAndHJhbnNsYXRlWChjYWxjKC0xMDB2dyArIDUwcHgpKScsXG4gICAgICAgICdvdmVyZmxvdy14JzogJ2hpZGRlbidcbiAgICAgIH0pKSxcblxuICAgICAgLy8gdHJhbnNpdGlvbihgJHtFWFBBTkRFRF9TVEFURX0gPD0+ICR7Q09MTEFQU0VEX1NUQVRFfWAsIGFuaW1hdGUoJzAuMnMgZWFzZS1pbi1vdXQnKSksXG5cbiAgICAgIHRyYW5zaXRpb24oc2lkZU5hdkV4cGFuZFN0YXRlQ2hhbmdlRm4sIGFuaW1hdGUoJzAuMnMgZWFzZS1pbi1vdXQnKSksXG5cbiAgICAgIC8vIHRyYW5zaXRpb24oYCR7RVhQQU5ERURfU1RBVEV9IDw9PiAke0NPTExBUFNFRF9TVEFURX1gLCBbXG4gICAgICAvLyAgIC8vIHF1ZXJ5KCc6bGVhdmUnLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgIC8vICAgLy8gcXVlcnkoJzplbnRlcicsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICAgICAgLy8gICBncm91cChbXG4gICAgICAvLyAgICAgcXVlcnkoJzpsZWF2ZScsIGFuaW1hdGVDaGlsZCgpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICAgICAgLy8gICAgIHF1ZXJ5KCc6ZW50ZXInLCBhbmltYXRlQ2hpbGQoKSwgeyBvcHRpb25hbDogdHJ1ZSB9KSxcbiAgICAgIC8vICAgICBxdWVyeSgnQGNvbXBhY3RBbmltJywgYW5pbWF0ZUNoaWxkKCksIHsgb3B0aW9uYWw6IHRydWUgfSksXG4gICAgICAvLyAgICAgYW5pbWF0ZSgnNS4ycyBlYXNlLWluLW91dCcpXG4gICAgICAvLyAgIF0pXG4gICAgICAvLyBdKSxcbiAgICBdKVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTaWRlTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIElUaGVTZWFtQmFzZUxheW91dE5hdiB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9oYXNIZWFkZXJUb2dnbGU6IEJvb2xlYW5JbnB1dFxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpXG5cbiAgLy8gQEhvc3RCaW5kaW5nKCdAc2lkZU5hdkV4cGFuZCcpIF9zaWRlTmF2RXhwYW5kID0gRVhQQU5ERURfU1RBVEVcbiAgLy8gX3NpZGVOYXZFeHBhbmQgPSBFWFBBTkRFRF9TVEFURVxuXG4gIC8vIEBIb3N0QmluZGluZygnQHNpZGVOYXZBbmltJykgX3NpZGVOYXZFeHBhbmQgPSBFWFBBTkRFRF9TVEFURVxuICBASG9zdEJpbmRpbmcoJ0BzaWRlTmF2QW5pbScpIF9zaWRlTmF2RXhwYW5kID0gJ2luaXRpYWwnXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGhhc0hlYWRlclRvZ2dsZSA9IHRydWVcblxuICBASW5wdXQoKVxuICBnZXQgaXRlbXMoKTogSVNpZGVOYXZJdGVtW10geyByZXR1cm4gdGhpcy5faXRlbXMudmFsdWUgfVxuICBzZXQgaXRlbXModmFsdWU6IElTaWRlTmF2SXRlbVtdKSB7IHRoaXMuX2l0ZW1zLm5leHQodmFsdWUpIH1cbiAgcHJpdmF0ZSBfaXRlbXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElTaWRlTmF2SXRlbVtdPihbXSlcbiAgcHVibGljIHJlYWRvbmx5IGl0ZW1zJDogT2JzZXJ2YWJsZTxJU2lkZU5hdkl0ZW1bXT5cblxuICBASW5wdXQoKVxuICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9leHBhbmRlZC52YWx1ZSB9XG4gIHNldCBleHBhbmRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IGV4cGFuZGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKVxuICAgIGxldCBlbWl0ID0gZXhwYW5kZWQgIT09IHRoaXMuZXhwYW5kZWRcbiAgICB0aGlzLl9leHBhbmRlZC5uZXh0KGV4cGFuZGVkKVxuXG4gICAgaWYgKGVtaXQpIHtcbiAgICAgIHRoaXMudG9nZ2xlRXhwYW5kLmVtaXQoY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSlcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfZXhwYW5kZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpXG4gIHB1YmxpYyByZWFkb25seSBleHBhbmRlZCQgPSB0aGlzLl9leHBhbmRlZC5hc09ic2VydmFibGUoKVxuXG4gIEBJbnB1dCgpXG4gIGdldCBvdmVybGF5KCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fb3ZlcmxheS52YWx1ZSB9XG4gIHNldCBvdmVybGF5KHZhbHVlOiBib29sZWFuKSB7IHRoaXMuX292ZXJsYXkubmV4dChjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpKSB9XG4gIHByaXZhdGUgX292ZXJsYXkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKVxuICBwdWJsaWMgcmVhZG9ubHkgb3ZlcmxheSQgPSB0aGlzLl9vdmVybGF5LmFzT2JzZXJ2YWJsZSgpXG5cbiAgQE91dHB1dCgpIHRvZ2dsZUV4cGFuZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKVxuXG4gIHB1YmxpYyByZWFkb25seSBpc01vYmlsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgcHVibGljIHJlYWRvbmx5IHNpZGVOYXZFeHBhbmRlZFN0YXRlJDogT2JzZXJ2YWJsZTxzdHJpbmc+XG4gIHB1YmxpYyBfYmFja2Ryb3BIaWRkZW4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpXG5cbiAgQENvbnRlbnRDaGlsZChCYXNlTGF5b3V0U2lkZUJhckZvb3RlckRpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIF9zaWRlQmFyRm9vdGVyVHBsPzogVGVtcGxhdGVSZWY8YW55PiB8IG51bGxcbiAgX3NpZGVCYXJGb290ZXJQb3J0YWw/OiBUZW1wbGF0ZVBvcnRhbFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGF5b3V0OiBUaGVTZWFtTGF5b3V0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zaWRlTmF2OiBUaGVTZWFtU2lkZU5hdlNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUSEVTRUFNX0JBU0VfTEFZT1VUX1JFRikgcHJpdmF0ZSByZWFkb25seSBfYmFzZUxheW91dFJlZjogSVRoZVNlYW1CYXNlTGF5b3V0UmVmXG4gICkge1xuICAgIHRoaXMuaXRlbXMkID0gdGhpcy5faXRlbXMuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChpdGVtcyA9PiB0aGlzLl9zaWRlTmF2LmNyZWF0ZUl0ZW1zT2JzZXJ2YWJsZShpdGVtcykpLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KSxcbiAgICApXG5cbiAgICB0aGlzLmlzTW9iaWxlJCA9IHRoaXMuX2xheW91dC5pc01vYmlsZSQucGlwZShcbiAgICAgIHRhcChpc01vYmlsZSA9PiBpc01vYmlsZSA/IHRoaXMuY29sbGFwc2UoKSA6IHRoaXMuZXhwYW5kKCkpXG4gICAgKVxuXG4gICAgdGhpcy5zaWRlTmF2RXhwYW5kZWRTdGF0ZSQgPSBjb21iaW5lTGF0ZXN0KFsgdGhpcy5leHBhbmRlZCQsIHRoaXMub3ZlcmxheSQgXSkucGlwZShcbiAgICAgIG1hcCgoWyBleHBhbmRlZCwgb3ZlcmxheSBdKSA9PiBleHBhbmRlZFxuICAgICAgICA/IG92ZXJsYXkgPyBFWFBBTkRFRF9PVkVSTEFZX1NUQVRFIDogRVhQQU5ERURfU1RBVEVcbiAgICAgICAgOiBvdmVybGF5ID8gQ09MTEFQU0VEX09WRVJMQVlfU1RBVEUgOiBDT0xMQVBTRURfU1RBVEVcbiAgICAgICksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgKVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuX2Jhc2VMYXlvdXRSZWYpIHsgdGhpcy5fYmFzZUxheW91dFJlZi5yZWdpc3Rlck5hdih0aGlzKSB9XG5cbiAgICB0aGlzLmlzTW9iaWxlJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZShiID0+IHRoaXMub3ZlcmxheSA9IGIpXG5cbiAgICB0aGlzLnNpZGVOYXZFeHBhbmRlZFN0YXRlJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSh2ID0+IHRoaXMuX3NpZGVOYXZFeHBhbmQgPSB2KVxuXG4gICAgaWYgKHRoaXMuX3NpZGVCYXJGb290ZXJUcGwpIHtcbiAgICAgIHRoaXMuX3NpZGVCYXJGb290ZXJQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fc2lkZUJhckZvb3RlclRwbCwgdGhpcy5fdmlld0NvbnRhaW5lclJlZilcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQoKVxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKVxuICAgIGlmICh0aGlzLl9iYXNlTGF5b3V0UmVmKSB7IHRoaXMuX2Jhc2VMYXlvdXRSZWYudW5yZWdpc3Rlck5hdih0aGlzKSB9XG4gIH1cblxuICBwdWJsaWMgZXhwYW5kKCkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlXG4gIH1cblxuICBwdWJsaWMgY29sbGFwc2UoKSB7XG4gICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlXG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlKCkge1xuICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZFxuICB9XG5cbiAgcHVibGljIGFuaW1hdGVTdGFydCgpIHtcbiAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgdGhpcy5fYmFja2Ryb3BIaWRkZW4ubmV4dChmYWxzZSlcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYW5pbWF0ZUVuZCgpIHtcbiAgICBpZiAoIXRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuX2JhY2tkcm9wSGlkZGVuLm5leHQodHJ1ZSlcbiAgICB9XG4gIH1cblxufVxuIl19
@@ -1,3 +1,4 @@
1
+ import { PortalModule } from '@angular/cdk/portal';
1
2
  import { A11yModule } from '@angular/cdk/a11y';
2
3
  import { CommonModule } from '@angular/common';
3
4
  import { NgModule } from '@angular/core';
@@ -25,7 +26,8 @@ TheSeamSideNavModule.decorators = [
25
26
  A11yModule,
26
27
  TheSeamScrollbarModule,
27
28
  TheSeamLayoutModule,
28
- NgbTooltipModule
29
+ NgbTooltipModule,
30
+ PortalModule
29
31
  ],
30
32
  exports: [
31
33
  SideNavItemComponent,
@@ -34,4 +36,4 @@ TheSeamSideNavModule.decorators = [
34
36
  ]
35
37
  },] }
36
38
  ];
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zaWRlLW5hdi9zaWRlLW5hdi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUU3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUVyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTtBQUNwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQXVCdkQsTUFBTSxPQUFPLG9CQUFvQjs7O1lBckJoQyxRQUFRLFNBQUM7Z0JBQ1IsWUFBWSxFQUFFO29CQUNaLG9CQUFvQjtvQkFDcEIsZ0JBQWdCO29CQUNoQixzQkFBc0I7aUJBQ3ZCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLFlBQVk7b0JBQ1osaUJBQWlCO29CQUNqQixVQUFVO29CQUNWLHNCQUFzQjtvQkFDdEIsbUJBQW1CO29CQUNuQixnQkFBZ0I7aUJBQ2pCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxvQkFBb0I7b0JBQ3BCLGdCQUFnQjtvQkFDaEIsc0JBQXNCO2lCQUN2QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5J1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuXG5pbXBvcnQgeyBOZ2JUb29sdGlwTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnXG5cbmltcG9ydCB7IFRoZVNlYW1JY29uTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2ljb24nXG5pbXBvcnQgeyBUaGVTZWFtTGF5b3V0TW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2xheW91dCdcbmltcG9ydCB7IFRoZVNlYW1TY3JvbGxiYXJNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vc2Nyb2xsYmFyJ1xuXG5pbXBvcnQgeyBTaWRlTmF2SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vc2lkZS1uYXYtaXRlbS9zaWRlLW5hdi1pdGVtLmNvbXBvbmVudCdcbmltcG9ydCB7IFNpZGVOYXZUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL3NpZGUtbmF2LXRvZ2dsZS9zaWRlLW5hdi10b2dnbGUuY29tcG9uZW50J1xuaW1wb3J0IHsgU2lkZU5hdkNvbXBvbmVudCB9IGZyb20gJy4vc2lkZS1uYXYuY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBTaWRlTmF2SXRlbUNvbXBvbmVudCxcbiAgICBTaWRlTmF2Q29tcG9uZW50LFxuICAgIFNpZGVOYXZUb2dnbGVDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgVGhlU2VhbUljb25Nb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcbiAgICBUaGVTZWFtU2Nyb2xsYmFyTW9kdWxlLFxuICAgIFRoZVNlYW1MYXlvdXRNb2R1bGUsXG4gICAgTmdiVG9vbHRpcE1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2lkZU5hdkl0ZW1Db21wb25lbnQsXG4gICAgU2lkZU5hdkNvbXBvbmVudCxcbiAgICBTaWRlTmF2VG9nZ2xlQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbVNpZGVOYXZNb2R1bGUgeyB9XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zaWRlLW5hdi9zaWRlLW5hdi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUE7QUFFckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDOUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUE7QUFDcEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUF3QnZELE1BQU0sT0FBTyxvQkFBb0I7OztZQXRCaEMsUUFBUSxTQUFDO2dCQUNSLFlBQVksRUFBRTtvQkFDWixvQkFBb0I7b0JBQ3BCLGdCQUFnQjtvQkFDaEIsc0JBQXNCO2lCQUN2QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixZQUFZO29CQUNaLGlCQUFpQjtvQkFDakIsVUFBVTtvQkFDVixzQkFBc0I7b0JBQ3RCLG1CQUFtQjtvQkFDbkIsZ0JBQWdCO29CQUNoQixZQUFZO2lCQUNiO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxvQkFBb0I7b0JBQ3BCLGdCQUFnQjtvQkFDaEIsc0JBQXNCO2lCQUN2QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcblxuaW1wb3J0IHsgTmdiVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJ1xuXG5pbXBvcnQgeyBUaGVTZWFtSWNvbk1vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9pY29uJ1xuaW1wb3J0IHsgVGhlU2VhbUxheW91dE1vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9sYXlvdXQnXG5pbXBvcnQgeyBUaGVTZWFtU2Nyb2xsYmFyTW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3Njcm9sbGJhcidcblxuaW1wb3J0IHsgU2lkZU5hdkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3NpZGUtbmF2LWl0ZW0vc2lkZS1uYXYtaXRlbS5jb21wb25lbnQnXG5pbXBvcnQgeyBTaWRlTmF2VG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9zaWRlLW5hdi10b2dnbGUvc2lkZS1uYXYtdG9nZ2xlLmNvbXBvbmVudCdcbmltcG9ydCB7IFNpZGVOYXZDb21wb25lbnQgfSBmcm9tICcuL3NpZGUtbmF2LmNvbXBvbmVudCdcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2lkZU5hdkl0ZW1Db21wb25lbnQsXG4gICAgU2lkZU5hdkNvbXBvbmVudCxcbiAgICBTaWRlTmF2VG9nZ2xlQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFRoZVNlYW1JY29uTW9kdWxlLFxuICAgIEExMXlNb2R1bGUsXG4gICAgVGhlU2VhbVNjcm9sbGJhck1vZHVsZSxcbiAgICBUaGVTZWFtTGF5b3V0TW9kdWxlLFxuICAgIE5nYlRvb2x0aXBNb2R1bGUsXG4gICAgUG9ydGFsTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBTaWRlTmF2SXRlbUNvbXBvbmVudCxcbiAgICBTaWRlTmF2Q29tcG9uZW50LFxuICAgIFNpZGVOYXZUb2dnbGVDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUaGVTZWFtU2lkZU5hdk1vZHVsZSB7IH1cbiJdfQ==
@@ -2,12 +2,13 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  export * from './public-api';
5
- export { TheSeamSchemaFormCheckboxComponent as ɵc } from './schema-form-controls/schema-form-checkbox/schema-form-checkbox.component';
6
- export { TheSeamSchemaFormControlsModule as ɵb } from './schema-form-controls/schema-form-controls.module';
7
- export { TheSeamSchemaFormInputComponent as ɵf } from './schema-form-controls/schema-form-input/schema-form-input.component';
8
- export { TheSeamSchemaFormNumberComponent as ɵg } from './schema-form-controls/schema-form-number/schema-form-number.component';
9
- export { TheSeamSchemaFormSelectComponent as ɵe } from './schema-form-controls/schema-form-select/schema-form-select.component';
10
- export { TheSeamSchemaFormSubmitSplitComponent as ɵh } from './schema-form-controls/schema-form-submit-split/schema-form-submit-split.component';
11
- export { TheSeamSchemaFormSubmitComponent as ɵd } from './schema-form-controls/schema-form-submit/schema-form-submit.component';
12
- export { TheSeamSideNavService as ɵa } from './side-nav/side-nav.service';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlc2VhbS11aS1jb21tb24tZnJhbWV3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay90aGVzZWFtLXVpLWNvbW1vbi1mcmFtZXdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsa0NBQWtDLElBQUksRUFBRSxFQUFDLE1BQU0sNEVBQTRFLENBQUM7QUFDcEksT0FBTyxFQUFDLCtCQUErQixJQUFJLEVBQUUsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQ3pHLE9BQU8sRUFBQywrQkFBK0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUMzSCxPQUFPLEVBQUMsZ0NBQWdDLElBQUksRUFBRSxFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDOUgsT0FBTyxFQUFDLGdDQUFnQyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQzlILE9BQU8sRUFBQyxxQ0FBcUMsSUFBSSxFQUFFLEVBQUMsTUFBTSxvRkFBb0YsQ0FBQztBQUMvSSxPQUFPLEVBQUMsZ0NBQWdDLElBQUksRUFBRSxFQUFDLE1BQU0sd0VBQXdFLENBQUM7QUFDOUgsT0FBTyxFQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBQyxNQUFNLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuXG5leHBvcnQge1RoZVNlYW1TY2hlbWFGb3JtQ2hlY2tib3hDb21wb25lbnQgYXMgybVjfSBmcm9tICcuL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLWNoZWNrYm94L3NjaGVtYS1mb3JtLWNoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQge1RoZVNlYW1TY2hlbWFGb3JtQ29udHJvbHNNb2R1bGUgYXMgybVifSBmcm9tICcuL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLWNvbnRyb2xzLm1vZHVsZSc7XG5leHBvcnQge1RoZVNlYW1TY2hlbWFGb3JtSW5wdXRDb21wb25lbnQgYXMgybVmfSBmcm9tICcuL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLWlucHV0L3NjaGVtYS1mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQge1RoZVNlYW1TY2hlbWFGb3JtTnVtYmVyQ29tcG9uZW50IGFzIMm1Z30gZnJvbSAnLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1udW1iZXIvc2NoZW1hLWZvcm0tbnVtYmVyLmNvbXBvbmVudCc7XG5leHBvcnQge1RoZVNlYW1TY2hlbWFGb3JtU2VsZWN0Q29tcG9uZW50IGFzIMm1ZX0gZnJvbSAnLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1zZWxlY3Qvc2NoZW1hLWZvcm0tc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQge1RoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRDb21wb25lbnQgYXMgybVofSBmcm9tICcuL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLXN1Ym1pdC1zcGxpdC9zY2hlbWEtZm9ybS1zdWJtaXQtc3BsaXQuY29tcG9uZW50JztcbmV4cG9ydCB7VGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRDb21wb25lbnQgYXMgybVkfSBmcm9tICcuL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLXN1Ym1pdC9zY2hlbWEtZm9ybS1zdWJtaXQuY29tcG9uZW50JztcbmV4cG9ydCB7VGhlU2VhbVNpZGVOYXZTZXJ2aWNlIGFzIMm1YX0gZnJvbSAnLi9zaWRlLW5hdi9zaWRlLW5hdi5zZXJ2aWNlJzsiXX0=
5
+ export { BaseLayoutSideBarFooterDirective as ɵa } from './base-layout/directives/base-layout-side-bar-footer.directive';
6
+ export { TheSeamSchemaFormCheckboxComponent as ɵd } from './schema-form-controls/schema-form-checkbox/schema-form-checkbox.component';
7
+ export { TheSeamSchemaFormControlsModule as ɵc } from './schema-form-controls/schema-form-controls.module';
8
+ export { TheSeamSchemaFormInputComponent as ɵg } from './schema-form-controls/schema-form-input/schema-form-input.component';
9
+ export { TheSeamSchemaFormNumberComponent as ɵh } from './schema-form-controls/schema-form-number/schema-form-number.component';
10
+ export { TheSeamSchemaFormSelectComponent as ɵf } from './schema-form-controls/schema-form-select/schema-form-select.component';
11
+ export { TheSeamSchemaFormSubmitSplitComponent as ɵi } from './schema-form-controls/schema-form-submit-split/schema-form-submit-split.component';
12
+ export { TheSeamSchemaFormSubmitComponent as ɵe } from './schema-form-controls/schema-form-submit/schema-form-submit.component';
13
+ export { TheSeamSideNavService as ɵb } from './side-nav/side-nav.service';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlc2VhbS11aS1jb21tb24tZnJhbWV3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay90aGVzZWFtLXVpLWNvbW1vbi1mcmFtZXdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQztBQUU3QixPQUFPLEVBQUMsZ0NBQWdDLElBQUksRUFBRSxFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDdEgsT0FBTyxFQUFDLGtDQUFrQyxJQUFJLEVBQUUsRUFBQyxNQUFNLDRFQUE0RSxDQUFDO0FBQ3BJLE9BQU8sRUFBQywrQkFBK0IsSUFBSSxFQUFFLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUN6RyxPQUFPLEVBQUMsK0JBQStCLElBQUksRUFBRSxFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFDM0gsT0FBTyxFQUFDLGdDQUFnQyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQzlILE9BQU8sRUFBQyxnQ0FBZ0MsSUFBSSxFQUFFLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUM5SCxPQUFPLEVBQUMscUNBQXFDLElBQUksRUFBRSxFQUFDLE1BQU0sb0ZBQW9GLENBQUM7QUFDL0ksT0FBTyxFQUFDLGdDQUFnQyxJQUFJLEVBQUUsRUFBQyxNQUFNLHdFQUF3RSxDQUFDO0FBQzlILE9BQU8sRUFBQyxxQkFBcUIsSUFBSSxFQUFFLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcblxuZXhwb3J0IHtCYXNlTGF5b3V0U2lkZUJhckZvb3RlckRpcmVjdGl2ZSBhcyDJtWF9IGZyb20gJy4vYmFzZS1sYXlvdXQvZGlyZWN0aXZlcy9iYXNlLWxheW91dC1zaWRlLWJhci1mb290ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7VGhlU2VhbVNjaGVtYUZvcm1DaGVja2JveENvbXBvbmVudCBhcyDJtWR9IGZyb20gJy4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tY2hlY2tib3gvc2NoZW1hLWZvcm0tY2hlY2tib3guY29tcG9uZW50JztcbmV4cG9ydCB7VGhlU2VhbVNjaGVtYUZvcm1Db250cm9sc01vZHVsZSBhcyDJtWN9IGZyb20gJy4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tY29udHJvbHMubW9kdWxlJztcbmV4cG9ydCB7VGhlU2VhbVNjaGVtYUZvcm1JbnB1dENvbXBvbmVudCBhcyDJtWd9IGZyb20gJy4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0taW5wdXQvc2NoZW1hLWZvcm0taW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCB7VGhlU2VhbVNjaGVtYUZvcm1OdW1iZXJDb21wb25lbnQgYXMgybVofSBmcm9tICcuL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLW51bWJlci9zY2hlbWEtZm9ybS1udW1iZXIuY29tcG9uZW50JztcbmV4cG9ydCB7VGhlU2VhbVNjaGVtYUZvcm1TZWxlY3RDb21wb25lbnQgYXMgybVmfSBmcm9tICcuL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLXNlbGVjdC9zY2hlbWEtZm9ybS1zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCB7VGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdENvbXBvbmVudCBhcyDJtWl9IGZyb20gJy4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0L3NjaGVtYS1mb3JtLXN1Ym1pdC1zcGxpdC5jb21wb25lbnQnO1xuZXhwb3J0IHtUaGVTZWFtU2NoZW1hRm9ybVN1Ym1pdENvbXBvbmVudCBhcyDJtWV9IGZyb20gJy4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tc3VibWl0L3NjaGVtYS1mb3JtLXN1Ym1pdC5jb21wb25lbnQnO1xuZXhwb3J0IHtUaGVTZWFtU2lkZU5hdlNlcnZpY2UgYXMgybVifSBmcm9tICcuL3NpZGUtbmF2L3NpZGUtbmF2LnNlcnZpY2UnOyJdfQ==
@@ -243,6 +243,20 @@ TheSeamBaseLayoutComponent.propDecorators = {
243
243
  _contentFooterTpl: [{ type: ContentChild, args: [BaseLayoutContentFooterDirective, { static: true, read: TemplateRef },] }]
244
244
  };
245
245
 
246
+ class BaseLayoutSideBarFooterDirective {
247
+ constructor(_elementRef) {
248
+ this._elementRef = _elementRef;
249
+ }
250
+ }
251
+ BaseLayoutSideBarFooterDirective.decorators = [
252
+ { type: Directive, args: [{
253
+ selector: '[seamBaseLayoutSideBarFooter]'
254
+ },] }
255
+ ];
256
+ BaseLayoutSideBarFooterDirective.ctorParameters = () => [
257
+ { type: ElementRef }
258
+ ];
259
+
246
260
  class TheSeamBaseLayoutModule {
247
261
  }
248
262
  TheSeamBaseLayoutModule.decorators = [
@@ -251,6 +265,7 @@ TheSeamBaseLayoutModule.decorators = [
251
265
  TheSeamBaseLayoutComponent,
252
266
  BaseLayoutContentDirective,
253
267
  BaseLayoutSideBarDirective,
268
+ BaseLayoutSideBarFooterDirective,
254
269
  BaseLayoutTopBarDirective,
255
270
  BaseLayoutNavToggleDirective,
256
271
  BaseLayoutContentHeaderDirective,
@@ -267,6 +282,7 @@ TheSeamBaseLayoutModule.decorators = [
267
282
  TheSeamBaseLayoutComponent,
268
283
  BaseLayoutContentDirective,
269
284
  BaseLayoutSideBarDirective,
285
+ BaseLayoutSideBarFooterDirective,
270
286
  BaseLayoutTopBarDirective,
271
287
  BaseLayoutNavToggleDirective,
272
288
  BaseLayoutContentHeaderDirective,
@@ -1246,7 +1262,8 @@ function sideNavExpandStateChangeFn(fromState, toState) {
1246
1262
  (EXPANDED_STATES.indexOf(toState) !== -1 && COLLAPSED_STATES.indexOf(fromState) !== -1)));
1247
1263
  }
1248
1264
  class SideNavComponent {
1249
- constructor(_layout, _sideNav, _baseLayoutRef) {
1265
+ constructor(_viewContainerRef, _layout, _sideNav, _baseLayoutRef) {
1266
+ this._viewContainerRef = _viewContainerRef;
1250
1267
  this._layout = _layout;
1251
1268
  this._sideNav = _sideNav;
1252
1269
  this._baseLayoutRef = _baseLayoutRef;
@@ -1261,9 +1278,10 @@ class SideNavComponent {
1261
1278
  this.expanded$ = this._expanded.asObservable();
1262
1279
  this._overlay = new BehaviorSubject(false);
1263
1280
  this.overlay$ = this._overlay.asObservable();
1281
+ this.toggleExpand = new EventEmitter();
1264
1282
  this._backdropHidden = new BehaviorSubject(true);
1265
1283
  this.items$ = this._items.asObservable().pipe(switchMap(items => this._sideNav.createItemsObservable(items)), shareReplay({ bufferSize: 1, refCount: true }));
1266
- 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()));
1267
1285
  this.sideNavExpandedState$ = combineLatest([this.expanded$, this.overlay$]).pipe(map(([expanded, overlay]) => expanded
1268
1286
  ? overlay ? EXPANDED_OVERLAY_STATE : EXPANDED_STATE$1
1269
1287
  : overlay ? COLLAPSED_OVERLAY_STATE : COLLAPSED_STATE$1), distinctUntilChanged());
@@ -1271,7 +1289,14 @@ class SideNavComponent {
1271
1289
  get items() { return this._items.value; }
1272
1290
  set items(value) { this._items.next(value); }
1273
1291
  get expanded() { return this._expanded.value; }
1274
- 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
+ }
1275
1300
  get overlay() { return this._overlay.value; }
1276
1301
  set overlay(value) { this._overlay.next(coerceBooleanProperty(value)); }
1277
1302
  ngOnInit() {
@@ -1284,6 +1309,9 @@ class SideNavComponent {
1284
1309
  this.sideNavExpandedState$
1285
1310
  .pipe(takeUntil(this._ngUnsubscribe))
1286
1311
  .subscribe(v => this._sideNavExpand = v);
1312
+ if (this._sideBarFooterTpl) {
1313
+ this._sideBarFooterPortal = new TemplatePortal(this._sideBarFooterTpl, this._viewContainerRef);
1314
+ }
1287
1315
  }
1288
1316
  ngOnDestroy() {
1289
1317
  this._ngUnsubscribe.next();
@@ -1315,7 +1343,7 @@ class SideNavComponent {
1315
1343
  SideNavComponent.decorators = [
1316
1344
  { type: Component, args: [{
1317
1345
  selector: 'seam-side-nav',
1318
- template: "<div class=\"side-nav-backdrop\" *ngIf=\"isMobile$ | async\"\n [@sideNavBackdrop]=\"_sideNavExpand\"\n [class.side-nav-backdrop-hidden]=\"_backdropHidden | async\"></div>\n\n<div class=\"side-nav-inner-wrapper\" [@sideNavExpand]=\"_sideNavExpand\"\n (@sideNavExpand.start)=\"animateStart()\"\n (@sideNavExpand.done)=\"animateEnd()\">\n <nav class=\"nav side-nav-content\">\n <seam-side-nav-toggle *ngIf=\"hasHeaderToggle\"\n [expanded]=\"expanded$ | async\"\n (toggleExpand)=\"toggle()\">\n </seam-side-nav-toggle>\n <div class=\"side-nav-items-container\" seamOverlayScrollbar>\n <seam-side-nav-item *ngFor=\"let item of items$ | async\"\n [compact]=\"!(expanded$ | async)\"\n [itemType]=\"$any(item)?.itemType\"\n [icon]=\"$any(item)?.icon\"\n [label]=\"$any(item)?.label\"\n [link]=\"$any(item)?.link\"\n [badgeText]=\"$any(item)?.badge?.text\"\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\n [queryParams]=\"$any(item)?.queryParams\"\n [children]=\"$any(item)?.children\"\n [active]=\"$any(item).__state.active\"\n [expanded]=\"$any(item).__state.expanded\">\n </seam-side-nav-item>\n </div>\n </nav>\n</div>\n",
1346
+ template: "<div class=\"side-nav-backdrop\" *ngIf=\"isMobile$ | async\"\n [@sideNavBackdrop]=\"_sideNavExpand\"\n [class.side-nav-backdrop-hidden]=\"_backdropHidden | async\"></div>\n\n<div class=\"side-nav-inner-wrapper\" [@sideNavExpand]=\"_sideNavExpand\"\n (@sideNavExpand.start)=\"animateStart()\"\n (@sideNavExpand.done)=\"animateEnd()\">\n <nav class=\"nav side-nav-content\">\n <seam-side-nav-toggle *ngIf=\"hasHeaderToggle\"\n [expanded]=\"expanded$ | async\"\n (toggleExpand)=\"toggle()\">\n </seam-side-nav-toggle>\n <div class=\"side-nav-items-container\" seamOverlayScrollbar>\n <seam-side-nav-item *ngFor=\"let item of items$ | async\"\n [compact]=\"!(expanded$ | async)\"\n [itemType]=\"$any(item)?.itemType\"\n [icon]=\"$any(item)?.icon\"\n [label]=\"$any(item)?.label\"\n [link]=\"$any(item)?.link\"\n [badgeText]=\"$any(item)?.badge?.text\"\n [badgeTheme]=\"$any(item)?.badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(item)?.badge?.srContent\"\n [badgeTooltip]=\"$any(item)?.badge?.tooltip\"\n [queryParams]=\"$any(item)?.queryParams\"\n [children]=\"$any(item)?.children\"\n [active]=\"$any(item).__state.active\"\n [expanded]=\"$any(item).__state.expanded\">\n </seam-side-nav-item>\n </div>\n <ng-template [cdkPortalOutlet]=\"_sideBarFooterPortal\"></ng-template>\n </nav>\n</div>\n",
1319
1347
  providers: [
1320
1348
  TheSeamSideNavService
1321
1349
  ],
@@ -1388,6 +1416,7 @@ SideNavComponent.decorators = [
1388
1416
  },] }
1389
1417
  ];
1390
1418
  SideNavComponent.ctorParameters = () => [
1419
+ { type: ViewContainerRef },
1391
1420
  { type: TheSeamLayoutService },
1392
1421
  { type: TheSeamSideNavService },
1393
1422
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [THESEAM_BASE_LAYOUT_REF,] }] }
@@ -1397,7 +1426,9 @@ SideNavComponent.propDecorators = {
1397
1426
  hasHeaderToggle: [{ type: Input }],
1398
1427
  items: [{ type: Input }],
1399
1428
  expanded: [{ type: Input }],
1400
- overlay: [{ type: Input }]
1429
+ overlay: [{ type: Input }],
1430
+ toggleExpand: [{ type: Output }],
1431
+ _sideBarFooterTpl: [{ type: ContentChild, args: [BaseLayoutSideBarFooterDirective, { static: true, read: TemplateRef },] }]
1401
1432
  };
1402
1433
  __decorate([
1403
1434
  InputBoolean()
@@ -1593,7 +1624,8 @@ TheSeamSideNavModule.decorators = [
1593
1624
  A11yModule,
1594
1625
  TheSeamScrollbarModule,
1595
1626
  TheSeamLayoutModule,
1596
- NgbTooltipModule
1627
+ NgbTooltipModule,
1628
+ PortalModule
1597
1629
  ],
1598
1630
  exports: [
1599
1631
  SideNavItemComponent,
@@ -2649,5 +2681,5 @@ TheSeamSchemaFormModule.decorators = [
2649
2681
  * Generated bundle index. Do not edit.
2650
2682
  */
2651
2683
 
2652
- export { BaseLayoutContentDirective, BaseLayoutContentFooterDirective, BaseLayoutContentHeaderDirective, BaseLayoutNavToggleDirective, BaseLayoutSideBarDirective, BaseLayoutTopBarDirective, DashboardComponent, DashboardWidgetContainerComponent, DashboardWidgetPortalOutletDirective, DashboardWidgetTemplateContainerComponent, DashboardWidgetsComponent, DashboardWidgetsPreferencesService, DashboardWidgetsService, HierarchyLevelResolver, HierarchyRouterOutletComponent, SideNavComponent, SideNavItemComponent, SideNavToggleComponent, THESEAM_BASE_LAYOUT_REF, THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR, THE_SEAM_BASE_LAYOUT, TheSeamBaseLayoutComponent, TheSeamBaseLayoutModule, TheSeamDashboardModule, TheSeamDynamicRouterModule, TheSeamFramework, TheSeamSchemaFormFrameworkComponent, TheSeamSchemaFormModule, TheSeamSideNavModule, TheSeamTopBarComponent, TheSeamTopBarModule, TopBarItemDirective, TopBarMenuBtnDetailDirective, TopBarMenuButtonComponent, TopBarMenuDirective, TopBarTitleComponent, canBeActive, canExpand, canHaveChildren, fader, findLinkItems, getItemStateProp, hasActiveChild, hasChildren, hasExpandedChild, isExpanded, isNavItemActive, isNavItemType, routeChanges, setDefaultState, setItemStateProp, sideNavExpandStateChangeFn, sideToSide, slider, stepper, transformer, TheSeamSideNavService as ɵa, TheSeamSchemaFormControlsModule as ɵb, TheSeamSchemaFormCheckboxComponent as ɵc, TheSeamSchemaFormSubmitComponent as ɵd, TheSeamSchemaFormSelectComponent as ɵe, TheSeamSchemaFormInputComponent as ɵf, TheSeamSchemaFormNumberComponent as ɵg, TheSeamSchemaFormSubmitSplitComponent as ɵh };
2684
+ export { BaseLayoutContentDirective, BaseLayoutContentFooterDirective, BaseLayoutContentHeaderDirective, BaseLayoutNavToggleDirective, BaseLayoutSideBarDirective, BaseLayoutTopBarDirective, DashboardComponent, DashboardWidgetContainerComponent, DashboardWidgetPortalOutletDirective, DashboardWidgetTemplateContainerComponent, DashboardWidgetsComponent, DashboardWidgetsPreferencesService, DashboardWidgetsService, HierarchyLevelResolver, HierarchyRouterOutletComponent, SideNavComponent, SideNavItemComponent, SideNavToggleComponent, THESEAM_BASE_LAYOUT_REF, THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR, THE_SEAM_BASE_LAYOUT, TheSeamBaseLayoutComponent, TheSeamBaseLayoutModule, TheSeamDashboardModule, TheSeamDynamicRouterModule, TheSeamFramework, TheSeamSchemaFormFrameworkComponent, TheSeamSchemaFormModule, TheSeamSideNavModule, TheSeamTopBarComponent, TheSeamTopBarModule, TopBarItemDirective, TopBarMenuBtnDetailDirective, TopBarMenuButtonComponent, TopBarMenuDirective, TopBarTitleComponent, canBeActive, canExpand, canHaveChildren, fader, findLinkItems, getItemStateProp, hasActiveChild, hasChildren, hasExpandedChild, isExpanded, isNavItemActive, isNavItemType, routeChanges, setDefaultState, setItemStateProp, sideNavExpandStateChangeFn, sideToSide, slider, stepper, transformer, BaseLayoutSideBarFooterDirective as ɵa, TheSeamSideNavService as ɵb, TheSeamSchemaFormControlsModule as ɵc, TheSeamSchemaFormCheckboxComponent as ɵd, TheSeamSchemaFormSubmitComponent as ɵe, TheSeamSchemaFormSelectComponent as ɵf, TheSeamSchemaFormInputComponent as ɵg, TheSeamSchemaFormNumberComponent as ɵh, TheSeamSchemaFormSubmitSplitComponent as ɵi };
2653
2685
  //# sourceMappingURL=theseam-ui-common-framework.js.map