@theseam/ui-common 0.2.17 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/breadcrumbs/_breadcrumbs-theme.scss +3 -0
  2. package/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +10 -0
  3. package/breadcrumbs/styles/_utilities.scss +3 -0
  4. package/breadcrumbs/styles/_variables.scss +1 -0
  5. package/breadcrumbs/theseam-ui-common-breadcrumbs.metadata.json +1 -1
  6. package/bundles/theseam-ui-common-breadcrumbs.umd.js +2 -1
  7. package/bundles/theseam-ui-common-breadcrumbs.umd.js.map +1 -1
  8. package/bundles/theseam-ui-common-form-field.umd.js +1 -1
  9. package/bundles/theseam-ui-common-form-field.umd.js.map +1 -1
  10. package/bundles/theseam-ui-common-framework.umd.js +18 -15
  11. package/bundles/theseam-ui-common-framework.umd.js.map +1 -1
  12. package/bundles/theseam-ui-common-google-maps.umd.js +2202 -0
  13. package/bundles/theseam-ui-common-google-maps.umd.js.map +1 -0
  14. package/bundles/theseam-ui-common-menu.umd.js +1 -0
  15. package/bundles/theseam-ui-common-menu.umd.js.map +1 -1
  16. package/bundles/theseam-ui-common-scrollbar.umd.js +1 -1
  17. package/bundles/theseam-ui-common-scrollbar.umd.js.map +1 -1
  18. package/bundles/theseam-ui-common-tel-input.umd.js +59 -7
  19. package/bundles/theseam-ui-common-tel-input.umd.js.map +1 -1
  20. package/bundles/theseam-ui-common-utils.umd.js +610 -136
  21. package/bundles/theseam-ui-common-utils.umd.js.map +1 -1
  22. package/bundles/theseam-ui-common-viewers.umd.js +269 -4
  23. package/bundles/theseam-ui-common-viewers.umd.js.map +1 -1
  24. package/bundles/theseam-ui-common-widget.umd.js +1 -1
  25. package/esm2015/breadcrumbs/breadcrumbs/breadcrumbs.component.js +4 -3
  26. package/esm2015/form-field/input.directive.js +2 -2
  27. package/esm2015/framework/base-layout/base-layout.component.js +3 -3
  28. package/esm2015/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.js +5 -5
  29. package/esm2015/framework/top-bar/top-bar-title/top-bar-title.component.js +4 -3
  30. package/esm2015/framework/top-bar/top-bar.component.js +10 -8
  31. package/esm2015/google-maps/google-maps/google-maps.component.js +261 -0
  32. package/esm2015/google-maps/google-maps-contextmenu.js +113 -0
  33. package/esm2015/google-maps/google-maps-controls.service.js +70 -0
  34. package/esm2015/google-maps/google-maps-feature-helpers.js +177 -0
  35. package/esm2015/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.js +195 -0
  36. package/esm2015/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.js +163 -0
  37. package/esm2015/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.js +57 -0
  38. package/esm2015/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.js +119 -0
  39. package/esm2015/google-maps/google-maps.module.js +45 -0
  40. package/esm2015/google-maps/google-maps.service.js +344 -0
  41. package/esm2015/google-maps/map-control.component.js +65 -0
  42. package/esm2015/google-maps/map-controls-service.js +4 -0
  43. package/esm2015/google-maps/map-file-drop/map-file-drop.component.js +135 -0
  44. package/esm2015/google-maps/map-value-manager.service.js +46 -0
  45. package/esm2015/google-maps/public-api.js +14 -0
  46. package/esm2015/google-maps/theseam-ui-common-google-maps.js +6 -0
  47. package/esm2015/menu/menu-toggle.directive.js +2 -1
  48. package/esm2015/scrollbar/overlay-scrollbar.directive.js +2 -2
  49. package/esm2015/tel-input/tel-input/tel-input.component.js +10 -2
  50. package/esm2015/tel-input/tel-input.directive.js +50 -5
  51. package/esm2015/utils/geo-json/coerce-feature-collection.js +44 -0
  52. package/esm2015/utils/geo-json/geo-json-to-area.js +11 -0
  53. package/esm2015/utils/geo-json/is-feature-collection.validator.js +21 -0
  54. package/esm2015/utils/geo-json/is-only-geometry-types.js +23 -0
  55. package/esm2015/utils/geo-json/is-only-geometry-types.validator.js +32 -0
  56. package/esm2015/utils/geo-json/merge-polygons.js +35 -0
  57. package/esm2015/utils/geo-json/no-inner-rings.validator.js +63 -0
  58. package/esm2015/utils/geo-json/no-kinks.validator.js +39 -0
  59. package/esm2015/utils/geo-json/read-geo-file.js +99 -0
  60. package/esm2015/utils/geo-json/split-multi-polygons.js +29 -0
  61. package/esm2015/utils/is-null-or-undefined.js +1 -1
  62. package/esm2015/utils/public-api.js +11 -1
  63. package/esm2015/viewers/html-template-viewer/html-template-viewer.component.js +219 -0
  64. package/esm2015/viewers/html-template-viewer/html-template-viewer.module.js +23 -0
  65. package/esm2015/viewers/html-template-viewer/index.js +3 -0
  66. package/esm2015/viewers/public-api.js +2 -1
  67. package/esm2015/widget/widget/widget.component.js +1 -1
  68. package/fesm2015/theseam-ui-common-breadcrumbs.js +3 -2
  69. package/fesm2015/theseam-ui-common-breadcrumbs.js.map +1 -1
  70. package/fesm2015/theseam-ui-common-form-field.js +1 -1
  71. package/fesm2015/theseam-ui-common-form-field.js.map +1 -1
  72. package/fesm2015/theseam-ui-common-framework.js +15 -12
  73. package/fesm2015/theseam-ui-common-framework.js.map +1 -1
  74. package/fesm2015/theseam-ui-common-google-maps.js +1729 -0
  75. package/fesm2015/theseam-ui-common-google-maps.js.map +1 -0
  76. package/fesm2015/theseam-ui-common-menu.js +1 -0
  77. package/fesm2015/theseam-ui-common-menu.js.map +1 -1
  78. package/fesm2015/theseam-ui-common-scrollbar.js +1 -1
  79. package/fesm2015/theseam-ui-common-scrollbar.js.map +1 -1
  80. package/fesm2015/theseam-ui-common-tel-input.js +58 -6
  81. package/fesm2015/theseam-ui-common-tel-input.js.map +1 -1
  82. package/fesm2015/theseam-ui-common-utils.js +477 -94
  83. package/fesm2015/theseam-ui-common-utils.js.map +1 -1
  84. package/fesm2015/theseam-ui-common-viewers.js +237 -2
  85. package/fesm2015/theseam-ui-common-viewers.js.map +1 -1
  86. package/fesm2015/theseam-ui-common-widget.js +1 -1
  87. package/form-field/theseam-ui-common-form-field.metadata.json +1 -1
  88. package/framework/base-layout/base-layout.component.scss +14 -0
  89. package/framework/base-layout/styles/_variables.scss +14 -0
  90. package/framework/theseam-ui-common-framework.metadata.json +1 -1
  91. package/framework/top-bar/_top-bar-theme.scss +5 -0
  92. package/framework/top-bar/styles/_utilities.scss +3 -0
  93. package/framework/top-bar/styles/_variables.scss +18 -0
  94. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +3 -1
  95. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.scss +15 -0
  96. package/framework/top-bar/top-bar-title/top-bar-title.component.scss +6 -0
  97. package/framework/top-bar/top-bar.component.d.ts +3 -0
  98. package/framework/top-bar/top-bar.component.scss +39 -0
  99. package/google-maps/google-maps/google-maps.component.d.ts +89 -0
  100. package/google-maps/google-maps-contextmenu.d.ts +15 -0
  101. package/google-maps/google-maps-controls.service.d.ts +23 -0
  102. package/google-maps/google-maps-feature-helpers.d.ts +37 -0
  103. package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.d.ts +104 -0
  104. package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.d.ts +80 -0
  105. package/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.d.ts +21 -0
  106. package/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.d.ts +34 -0
  107. package/google-maps/google-maps.module.d.ts +2 -0
  108. package/google-maps/google-maps.service.d.ts +53 -0
  109. package/google-maps/map-control.component.d.ts +20 -0
  110. package/google-maps/map-controls-service.d.ts +13 -0
  111. package/google-maps/map-file-drop/map-file-drop.component.d.ts +34 -0
  112. package/google-maps/map-value-manager.service.d.ts +18 -0
  113. package/google-maps/package.json +11 -0
  114. package/google-maps/public-api.d.ts +13 -0
  115. package/google-maps/theseam-ui-common-google-maps.d.ts +5 -0
  116. package/google-maps/theseam-ui-common-google-maps.metadata.json +1 -0
  117. package/package.json +17 -10
  118. package/tel-input/tel-input.directive.d.ts +7 -3
  119. package/tel-input/theseam-ui-common-tel-input.metadata.json +1 -1
  120. package/utils/geo-json/coerce-feature-collection.d.ts +2 -0
  121. package/utils/geo-json/geo-json-to-area.d.ts +6 -0
  122. package/utils/geo-json/is-feature-collection.validator.d.ts +3 -0
  123. package/utils/geo-json/is-only-geometry-types.d.ts +5 -0
  124. package/utils/geo-json/is-only-geometry-types.validator.d.ts +4 -0
  125. package/utils/geo-json/merge-polygons.d.ts +9 -0
  126. package/utils/geo-json/no-inner-rings.validator.d.ts +10 -0
  127. package/utils/geo-json/no-kinks.validator.d.ts +3 -0
  128. package/utils/geo-json/read-geo-file.d.ts +7 -0
  129. package/utils/geo-json/split-multi-polygons.d.ts +8 -0
  130. package/utils/is-null-or-undefined.d.ts +1 -1
  131. package/utils/public-api.d.ts +10 -0
  132. package/utils/theseam-ui-common-utils.metadata.json +1 -1
  133. package/viewers/html-template-viewer/html-template-viewer.component.d.ts +67 -0
  134. package/viewers/html-template-viewer/html-template-viewer.module.d.ts +2 -0
  135. package/viewers/html-template-viewer/index.d.ts +2 -0
  136. package/viewers/public-api.d.ts +1 -0
  137. package/viewers/theseam-ui-common-viewers.metadata.json +1 -1
  138. package/widget/styles/_variables.scss +2 -0
  139. package/widget/theseam-ui-common-widget.metadata.json +1 -1
  140. package/widget/widget/widget.component.scss +2 -0
@@ -22,8 +22,8 @@ import { trigger, transition, group, query, animateChild, state, style, animate,
22
22
  import { NavigationEnd, Router, RouterModule, NavigationStart, ActivatedRoute } from '@angular/router';
23
23
  import { A11yModule } from '@angular/cdk/a11y';
24
24
  import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
25
- import { faUserCircle } from '@fortawesome/free-regular-svg-icons';
26
25
  import { MenuComponent, TheSeamMenuModule } from '@theseam/ui-common/menu';
26
+ import { faUserCircle } from '@fortawesome/free-regular-svg-icons';
27
27
  import { JsonSchemaFormService, isArray, buildTitleMap, hasOwn, Framework, JsonSchemaFormModule, WidgetLibraryModule, FrameworkLibraryService, WidgetLibraryService } from '@ajsf/core';
28
28
  import { ReactiveFormsModule } from '@angular/forms';
29
29
  import { NgSelectModule } from '@ng-select/ng-select';
@@ -223,11 +223,11 @@ class TheSeamBaseLayoutComponent {
223
223
  TheSeamBaseLayoutComponent.decorators = [
224
224
  { type: Component, args: [{
225
225
  selector: 'seam-base-layout',
226
- template: "<div class=\"base-layout-side-bar-nav-content-mobile\" *ngIf=\"isMobile$ | async\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n</div>\n\n<div class=\"base-layout-top-bar-container border-bottom bordered\">\n <ng-template [cdkPortalOutlet]=\"_topBarPortal\"></ng-template>\n</div>\n<div class=\"base-layout-main-container\">\n <div *ngIf=\"hasSideBar$ | async\"\n class=\"base-layout-side-bar-container border-right bordered\">\n <div class=\"base-layout-side-bar-nav-content\" *ngIf=\"!(isMobile$ | async)\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n </div>\n </div>\n <div class=\"base-layout-content-container\">\n <div class=\"base-layout-content-container-header\">\n <!-- <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template> -->\n\n <div class=\"d-flex d-flex-row\">\n <div class=\"flex-grow-1\">\n <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template>\n </div>\n <div class=\"d-flex\">\n <ng-container *ngFor=\"let action of registeredActions$ | async; first as isFirst\">\n <div>\n <ng-container [ngTemplateOutlet]=\"$any(action)?.template\"></ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n\n\n </div>\n <div class=\"base-layout-content-container-inner\" seamOverlayScrollbar>\n <ng-template [cdkPortalOutlet]=\"_contentPortal\"></ng-template>\n </div>\n <div class=\"base-layout-content-container-footer\">\n <ng-template [cdkPortalOutlet]=\"_contentFooterPortal\"></ng-template>\n </div>\n </div>\n</div>\n",
226
+ template: "<div class=\"base-layout-side-bar-nav-content-mobile\" *ngIf=\"isMobile$ | async\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n</div>\n\n<div class=\"base-layout-top-bar-container\">\n <ng-template [cdkPortalOutlet]=\"_topBarPortal\"></ng-template>\n</div>\n<div class=\"base-layout-main-container\">\n <div *ngIf=\"hasSideBar$ | async\"\n class=\"base-layout-side-bar-container\">\n <div class=\"base-layout-side-bar-nav-content\" *ngIf=\"!(isMobile$ | async)\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n </div>\n </div>\n <div class=\"base-layout-content-container\">\n <div class=\"base-layout-content-container-header\">\n <!-- <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template> -->\n\n <div class=\"d-flex d-flex-row\">\n <div class=\"flex-grow-1\">\n <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template>\n </div>\n <div class=\"d-flex\">\n <ng-container *ngFor=\"let action of registeredActions$ | async; first as isFirst\">\n <div>\n <ng-container [ngTemplateOutlet]=\"$any(action)?.template\"></ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n\n\n </div>\n <div class=\"base-layout-content-container-inner\" seamOverlayScrollbar>\n <ng-template [cdkPortalOutlet]=\"_contentPortal\"></ng-template>\n </div>\n <div class=\"base-layout-content-container-footer\">\n <ng-template [cdkPortalOutlet]=\"_contentFooterPortal\"></ng-template>\n </div>\n </div>\n</div>\n",
227
227
  providers: [THE_SEAM_BASE_LAYOUT],
228
228
  changeDetection: ChangeDetectionStrategy.OnPush,
229
229
  encapsulation: ViewEncapsulation.None,
230
- styles: ["seam-base-layout{display:flex;flex-direction:column;height:100%;width:100%}seam-base-layout .base-layout-side-bar-nav-content-mobile{position:absolute;top:0;bottom:0;left:0;float:left;z-index:9999}seam-base-layout .base-layout-side-bar-container{flex:0 0 auto;display:flex;flex-direction:column}seam-base-layout .base-layout-side-bar-container .base-layout-side-bar-nav-content{flex:1 1 0}seam-base-layout .base-layout-main-container{flex:1 1 100%;display:flex;flex-direction:row;transform:translateZ(0)}seam-base-layout .base-layout-top-bar-container{flex:0 0 auto}seam-base-layout .base-layout-content-container{flex:1 1 auto;display:flex;flex-direction:column}seam-base-layout .base-layout-content-container .base-layout-content-container-header{flex:0 0 auto}seam-base-layout .base-layout-content-container .base-layout-content-container-inner{flex:1 1 auto}seam-base-layout .base-layout-content-container .base-layout-content-container-footer{flex:0 0 auto}seam-base-layout .base-layout-content-container-header{margin:.25rem}seam-base-layout .btn-baselayout-action{margin:0 0 0 .25rem;color:#212529;background-color:#e9ecef;border-color:#e9ecef;padding:.5rem 1rem;font-size:1rem;line-height:1.5;border-radius:.25rem;border:none;color:#6c757d}seam-base-layout .btn-baselayout-action:hover{color:#212529;background-color:#d3d9df;border-color:#cbd3da}seam-base-layout .btn-baselayout-action:focus,seam-base-layout .btn-baselayout-action.focus{color:#212529;background-color:#d3d9df;border-color:#cbd3da;box-shadow:0 0 0 .2rem #cbced180}seam-base-layout .btn-baselayout-action.disabled,seam-base-layout .btn-baselayout-action:disabled{color:#212529;background-color:#e9ecef;border-color:#e9ecef}seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled):active,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled).active,.show>seam-base-layout .btn-baselayout-action.dropdown-toggle{color:#212529;background-color:#d3d9df;border-color:#c4ccd4}seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled):active:focus,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled).active:focus,.show>seam-base-layout .btn-baselayout-action.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #cbced180}seam-base-layout .btn-baselayout-action:hover{color:#6c757d}seam-base-layout .btn-baselayout-action:focus,seam-base-layout .btn-baselayout-action.focus{color:#6c757d}\n"]
230
+ styles: ["seam-base-layout{display:flex;flex-direction:column;height:100%;width:100%}seam-base-layout .base-layout-side-bar-nav-content-mobile{position:absolute;top:0;bottom:0;left:0;float:left;z-index:9999}seam-base-layout .base-layout-side-bar-container{flex:0 0 auto;display:flex;flex-direction:column;border-top:none;border-right:1px solid #dee2e6;border-bottom:none;border-left:none}seam-base-layout .base-layout-side-bar-container .base-layout-side-bar-nav-content{flex:1 1 0}seam-base-layout .base-layout-main-container{flex:1 1 100%;display:flex;flex-direction:row;transform:translateZ(0)}seam-base-layout .base-layout-top-bar-container{flex:0 0 auto;border-top:none;border-right:none;border-bottom:1px solid #dee2e6;border-left:none}seam-base-layout .base-layout-content-container{flex:1 1 auto;display:flex;flex-direction:column}seam-base-layout .base-layout-content-container .base-layout-content-container-header{flex:0 0 auto}seam-base-layout .base-layout-content-container .base-layout-content-container-inner{flex:1 1 auto}seam-base-layout .base-layout-content-container .base-layout-content-container-footer{flex:0 0 auto}seam-base-layout .base-layout-content-container-header{margin:.25rem;padding:0;background:none;border-radius:0;overflow:hidden}seam-base-layout .btn-baselayout-action{margin:0 0 0 .25rem;color:#212529;background-color:#e9ecef;border-color:#e9ecef;padding:.5rem 1rem;font-size:1rem;line-height:1.5;border-radius:.25rem;border:none;color:#6c757d}seam-base-layout .btn-baselayout-action:hover{color:#212529;background-color:#d3d9df;border-color:#cbd3da}seam-base-layout .btn-baselayout-action:focus,seam-base-layout .btn-baselayout-action.focus{color:#212529;background-color:#d3d9df;border-color:#cbd3da;box-shadow:0 0 0 .2rem #cbced180}seam-base-layout .btn-baselayout-action.disabled,seam-base-layout .btn-baselayout-action:disabled{color:#212529;background-color:#e9ecef;border-color:#e9ecef}seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled):active,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled).active,.show>seam-base-layout .btn-baselayout-action.dropdown-toggle{color:#212529;background-color:#d3d9df;border-color:#c4ccd4}seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled):active:focus,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled).active:focus,.show>seam-base-layout .btn-baselayout-action.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #cbced180}seam-base-layout .btn-baselayout-action:hover{color:#6c757d}seam-base-layout .btn-baselayout-action:focus,seam-base-layout .btn-baselayout-action.focus{color:#6c757d}\n"]
231
231
  },] }
232
232
  ];
233
233
  TheSeamBaseLayoutComponent.ctorParameters = () => [
@@ -1610,7 +1610,6 @@ class TopBarMenuButtonComponent extends _TopBarMenuButtonMixinBase {
1610
1610
  constructor() {
1611
1611
  super(...arguments);
1612
1612
  this.faAngleDown = faAngleDown;
1613
- this.profileIcon = faUserCircle;
1614
1613
  this.compact = false;
1615
1614
  }
1616
1615
  get _hasCompactClass() { return this.compact; }
@@ -1625,6 +1624,7 @@ TopBarMenuButtonComponent.decorators = [
1625
1624
  // tslint:disable-next-line:component-selector
1626
1625
  selector: 'button[seamTopBarMenuButton]',
1627
1626
  template: "<div class=\"d-flex flex-row\" *ngIf=\"!compact; else compactTpl\">\n <div class=\"text-left flex-grow-1 text-truncate\">\n <ng-template [ngTemplateOutlet]=\"$any(detailTpl)\"></ng-template>\n </div>\n <!-- Arrow Button -->\n <div class=\"pl-2 d-flex flex-column\">\n <div class=\"flex-grow-1\"></div>\n <seam-icon class=\"d-block\" [icon]=\"faAngleDown\"></seam-icon>\n <div class=\"flex-grow-1\"></div>\n </div>\n</div>\n<ng-template #compactTpl>\n <seam-icon [icon]=\"profileIcon\" iconType=\"borderless-styled-square\"></seam-icon>\n</ng-template>\n",
1627
+ encapsulation: ViewEncapsulation.None,
1628
1628
  exportAs: 'seamButton',
1629
1629
  // tslint:disable-next-line:use-input-property-decorator
1630
1630
  inputs: ['disabled'],
@@ -1636,12 +1636,13 @@ TopBarMenuButtonComponent.decorators = [
1636
1636
  '[attr.disabled]': 'disabled || null',
1637
1637
  },
1638
1638
  changeDetection: ChangeDetectionStrategy.OnPush,
1639
- styles: [":host{min-width:200px;border-radius:0;border-top:0!important;border-bottom:0!important;border-right:0!important}:host.top-bar-menu-button--compact{min-width:40px;border-left:0!important}\n"]
1639
+ styles: ["button[seamTopBarMenuButton]{min-width:200px;border-radius:0;border-top:0!important;border-bottom:0!important;border-right:0!important}button[seamTopBarMenuButton].top-bar-menu-button--compact{min-width:40px;border-left:0!important}\n"]
1640
1640
  },] }
1641
1641
  ];
1642
1642
  TopBarMenuButtonComponent.propDecorators = {
1643
1643
  detailTpl: [{ type: Input }],
1644
1644
  compact: [{ type: Input }],
1645
+ profileIcon: [{ type: Input }],
1645
1646
  _hasCompactClass: [{ type: HostBinding, args: ['class.top-bar-menu-button--compact',] }],
1646
1647
  _hasPadding0Class: [{ type: HostBinding, args: ['class.p-0',] }],
1647
1648
  _hasRoundedClass: [{ type: HostBinding, args: ['class.rounded',] }],
@@ -1659,8 +1660,9 @@ TopBarTitleComponent.decorators = [
1659
1660
  { type: Component, args: [{
1660
1661
  selector: 'seam-top-bar-title',
1661
1662
  template: "<h2 class=\"mb-0\" [ngStyle]=\"{ 'font-size.px': 32 }\" [ngStyle.lt-md]=\"{ 'font-size.px': 26 }\" [ngStyle.lt-sm]=\"{ 'font-size.px': 20, 'line-height': 1 }\">\n {{ titleText }}\n <br fxHide.gt-sm>\n <small *ngIf=\"subTitleText\" class=\"text-muted\">{{ subTitleText }}</small>\n</h2>\n",
1663
+ encapsulation: ViewEncapsulation.None,
1662
1664
  changeDetection: ChangeDetectionStrategy.OnPush,
1663
- styles: [":host{flex:1 1 auto;display:flex;flex-direction:row;align-items:center}\n"]
1665
+ styles: ["seam-top-bar-title{flex:1 1 auto;display:flex;flex-direction:row;align-items:center}\n"]
1664
1666
  },] }
1665
1667
  ];
1666
1668
  TopBarTitleComponent.ctorParameters = () => [];
@@ -1735,6 +1737,8 @@ class TheSeamTopBarComponent {
1735
1737
  this.logoRoute = '/';
1736
1738
  /** Determines if the title should be displayed. */
1737
1739
  this.hasTitle = false;
1740
+ /** Icon to display on mobile to activate profile dropdown. Defaults to faUserCircle. */
1741
+ this.profileIcon = faUserCircle;
1738
1742
  this.isMobile$ = this._layout.isMobile$;
1739
1743
  }
1740
1744
  /** @ignore */
@@ -1754,13 +1758,11 @@ class TheSeamTopBarComponent {
1754
1758
  TheSeamTopBarComponent.decorators = [
1755
1759
  { type: Component, args: [{
1756
1760
  selector: 'seam-top-bar',
1757
- template: "<!-- Nav Toggle -->\n<div class=\"d-flex flex-column justify-content-center pr-2\" *ngIf=\"isMobile$ | async\">\n <button seamBaseLayoutNavToggle seamIconBtn [icon]=\"faBars\" iconType=\"borderless-styled-square\"></button>\n</div>\n\n<!-- Logo -->\n<div class=\"top-bar--logo d-flex flex-column justify-content-center\" *ngIf=\"logoHref; else useLogoRoute\"\n [class.top-bar--logo-mobile]=\"isMobile$ | async\">\n <a [href]=\"logoHref\" [target]=\"logoHrefTarget\">\n <div>\n <img [src]=\"logo\" [src.lt-md]=\"hasTitle ? logoSm : logo\" alt=\"Logo\">\n </div>\n </a>\n</div>\n\n<ng-template #useLogoRoute>\n <div class=\"top-bar--logo d-flex flex-column justify-content-center\" [routerLink]=\"logoRoute\"\n [class.top-bar--logo-mobile]=\"isMobile$ | async\">\n <div>\n <img [src]=\"logo\" [src.lt-md]=\"hasTitle ? logoSm : logo\" alt=\"Logo\">\n </div>\n </div>\n</ng-template>\n\n<!-- Title -->\n<div class=\"d-flex flex-column flex-grow-1\">\n <seam-top-bar-title *ngIf=\"hasTitle\"\n [titleText]=\"titleText\"\n [subTitleText]=\"subTitleText\"\n [class.ml-2]=\"isMobile$ | async\">\n </seam-top-bar-title>\n</div>\n\n<!-- Items -->\n<div class=\"top-bar-icon-container mr-2\">\n <ng-container *ngFor=\"let item of _items$ | async\">\n <ng-template [ngTemplateOutlet]=\"item.template\"></ng-template>\n </ng-container>\n</div>\n\n<!-- Menu -->\n<button seamTopBarMenuButton\n [seamMenuToggle]=\"_topBarMenu?.menu\"\n [detailTpl]=\"_topBarMenuBtnDetailTpl?.template\"\n [compact]=\"isMobile$ | async\">\n</button>\n",
1761
+ template: "<!-- Nav Toggle -->\n<div class=\"d-flex flex-column justify-content-center pr-2\" *ngIf=\"isMobile$ | async\">\n <button seamBaseLayoutNavToggle seamIconBtn [icon]=\"faBars\" iconType=\"borderless-styled-square\"></button>\n</div>\n\n<!-- Logo -->\n<div class=\"top-bar--logo d-flex flex-column justify-content-center\" *ngIf=\"logoHref; else useLogoRoute\"\n [class.top-bar--logo-mobile]=\"isMobile$ | async\">\n <a [href]=\"logoHref\" [target]=\"logoHrefTarget\">\n <div>\n <img *ngIf=\"logo\" [src]=\"logo\" [src.lt-md]=\"hasTitle ? logoSm : logo\" alt=\"Logo\">\n </div>\n </a>\n</div>\n\n<ng-template #useLogoRoute>\n <div class=\"top-bar--logo d-flex flex-column justify-content-center\" [routerLink]=\"logoRoute\"\n [class.top-bar--logo-mobile]=\"isMobile$ | async\">\n <div>\n <img *ngIf=\"logo\" [src]=\"logo\" [src.lt-md]=\"hasTitle ? logoSm : logo\" alt=\"Logo\">\n </div>\n </div>\n</ng-template>\n\n<!-- Title -->\n<div class=\"d-flex flex-column flex-grow-1\">\n <seam-top-bar-title *ngIf=\"hasTitle\"\n [titleText]=\"titleText\"\n [subTitleText]=\"subTitleText\"\n [class.ml-2]=\"isMobile$ | async\">\n </seam-top-bar-title>\n</div>\n\n<!-- Items -->\n<div class=\"top-bar-icon-container mr-2\">\n <ng-container *ngFor=\"let item of _items$ | async\">\n <ng-template [ngTemplateOutlet]=\"item.template\"></ng-template>\n </ng-container>\n</div>\n\n<!-- Menu -->\n<button seamTopBarMenuButton\n [seamMenuToggle]=\"_topBarMenu?.menu\"\n [detailTpl]=\"_topBarMenuBtnDetailTpl?.template\"\n [compact]=\"isMobile$ | async\"\n [profileIcon]=\"profileIcon\">\n</button>\n",
1762
+ encapsulation: ViewEncapsulation.None,
1758
1763
  exportAs: 'seamTopBar',
1759
- host: {
1760
- 'class': 'bg-white'
1761
- },
1762
1764
  changeDetection: ChangeDetectionStrategy.OnPush,
1763
- styles: [":host{flex:1 1 100%;display:flex;flex-direction:row;padding:8px}.top-bar--logo{flex:0 0 auto;overflow:hidden;cursor:pointer}.top-bar--logo img{max-height:60px;max-width:200px}.top-bar--logo.top-bar--logo-mobile{max-height:40px;max-width:150px}.top-bar--logo.top-bar--logo-mobile>div{max-height:100%;max-width:100%}.top-bar--logo.top-bar--logo-mobile>div img{max-height:40px;max-width:100%}.top-bar-icon-container{margin:auto 0}\n"]
1765
+ styles: ["seam-top-bar{display:flex;flex:1 1 100%;flex-direction:row;background:white;margin:0;padding:8px;border-radius:0;box-shadow:none}.top-bar--logo{flex:0 0 auto;overflow:hidden;cursor:pointer}.top-bar--logo img{height:auto;max-height:60px;width:auto;max-width:200px}.top-bar--logo.top-bar--logo-mobile img{height:auto;max-height:40px;width:auto;max-width:150px}.top-bar-icon-container{margin:auto 0}\n"]
1764
1766
  },] }
1765
1767
  ];
1766
1768
  TheSeamTopBarComponent.ctorParameters = () => [
@@ -1777,7 +1779,8 @@ TheSeamTopBarComponent.propDecorators = {
1777
1779
  logoRoute: [{ type: Input }],
1778
1780
  hasTitle: [{ type: Input }],
1779
1781
  titleText: [{ type: Input }],
1780
- subTitleText: [{ type: Input }]
1782
+ subTitleText: [{ type: Input }],
1783
+ profileIcon: [{ type: Input }]
1781
1784
  };
1782
1785
  __decorate([
1783
1786
  InputBoolean()