@softheon/armature 10.34.3 → 10.36.0

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 (200) hide show
  1. package/README.md +72 -0
  2. package/assets/styles/sof-styles.scss +9 -13
  3. package/bundles/softheon-armature.umd.js +153 -8
  4. package/bundles/softheon-armature.umd.js.map +1 -1
  5. package/bundles/softheon-armature.umd.min.js +2 -2
  6. package/bundles/softheon-armature.umd.min.js.map +1 -1
  7. package/esm2015/lib/alert-banner/alert-banner-api.js +1 -1
  8. package/esm2015/lib/alert-banner/alert-banner.module.js +1 -1
  9. package/esm2015/lib/alert-banner/components/alert-banner/alert-banner.component.js +1 -1
  10. package/esm2015/lib/alert-banner/models/alert-banner-config.js +1 -1
  11. package/esm2015/lib/alert-banner/models/alert-banner-context.js +1 -1
  12. package/esm2015/lib/alert-banner/models/constants.js +1 -1
  13. package/esm2015/lib/alert-banner/services/alert-banner.service.js +1 -1
  14. package/esm2015/lib/armature.module.js +1 -1
  15. package/esm2015/lib/base-components/base-component-api.js +1 -1
  16. package/esm2015/lib/base-components/base-component.module.js +1 -1
  17. package/esm2015/lib/base-components/sof-alert/sof-alert.component.js +1 -1
  18. package/esm2015/lib/base-components/sof-banner/sof-banner.component.js +1 -1
  19. package/esm2015/lib/base-components/sof-modal/sof-modal.component.js +1 -1
  20. package/esm2015/lib/base-components/sof-progress-bar/sof-progress-bar.component.js +1 -1
  21. package/esm2015/lib/component-save-print/components/component-save-print/component-save-print.component.js +97 -0
  22. package/esm2015/lib/component-save-print/services/component-save-print.service.js +29 -0
  23. package/esm2015/lib/component-save-print/sof-ar-component-save-print.module.js +25 -0
  24. package/esm2015/lib/core/client-generated/api/session.service.js +1 -1
  25. package/esm2015/lib/core/client-generated/configuration.js +1 -1
  26. package/esm2015/lib/core/client-generated/encoder.js +1 -1
  27. package/esm2015/lib/core/client-generated/model/applicationUserModel.js +1 -1
  28. package/esm2015/lib/core/client-generated/model/assertedUserModel.js +1 -1
  29. package/esm2015/lib/core/client-generated/model/brandingModel.js +1 -1
  30. package/esm2015/lib/core/client-generated/model/errorModel.js +1 -1
  31. package/esm2015/lib/core/client-generated/model/folderLink.js +1 -1
  32. package/esm2015/lib/core/client-generated/model/identityProfile.js +1 -1
  33. package/esm2015/lib/core/client-generated/model/models.js +1 -1
  34. package/esm2015/lib/core/client-generated/model/oAuthModel.js +1 -1
  35. package/esm2015/lib/core/client-generated/model/preferencesRow.js +1 -1
  36. package/esm2015/lib/core/client-generated/model/rolesRow.js +1 -1
  37. package/esm2015/lib/core/client-generated/model/sessionGetResponseModel.js +1 -1
  38. package/esm2015/lib/core/client-generated/model/sessionPostRequestModel.js +1 -1
  39. package/esm2015/lib/core/client-generated/model/sessionPostResponseModel.js +1 -1
  40. package/esm2015/lib/core/client-generated/model/sessionPutRequestModel.js +1 -1
  41. package/esm2015/lib/core/client-generated/model/sessionPutResponseModel.js +1 -1
  42. package/esm2015/lib/core/client-generated/model/sessionResponseModel.js +1 -1
  43. package/esm2015/lib/core/client-generated/model/settingsProfile.js +1 -1
  44. package/esm2015/lib/core/client-generated/model/themePaletteColorsModel.js +1 -1
  45. package/esm2015/lib/core/client-generated/model/themePaletteModel.js +1 -1
  46. package/esm2015/lib/core/client-generated/model/trackingModel.js +1 -1
  47. package/esm2015/lib/core/client-generated/model/validationRecordsRow.js +1 -1
  48. package/esm2015/lib/core/client-generated/variables.js +1 -1
  49. package/esm2015/lib/core/components/app-template/app-template.component.js +1 -2
  50. package/esm2015/lib/core/functions/guid.js +1 -1
  51. package/esm2015/lib/core/functions/naming-convention.js +1 -1
  52. package/esm2015/lib/core/initializer/abstract-startup-service.js +1 -1
  53. package/esm2015/lib/core/initializer/initializer.service.js +1 -1
  54. package/esm2015/lib/core/interceptors/armature-auth-token-append.interceptor.js +1 -1
  55. package/esm2015/lib/core/models/base-config.js +1 -1
  56. package/esm2015/lib/core/models/constants.js +1 -1
  57. package/esm2015/lib/core/models/data-store-config.js +1 -1
  58. package/esm2015/lib/core/models/header-config.js +1 -1
  59. package/esm2015/lib/core/models/http-verbs.js +1 -1
  60. package/esm2015/lib/core/models/navigation-config.js +1 -1
  61. package/esm2015/lib/core/models/oidc-auth-settings.js +1 -1
  62. package/esm2015/lib/core/models/route-path.js +1 -1
  63. package/esm2015/lib/core/models/session-config.js +1 -1
  64. package/esm2015/lib/core/models/styles.js +1 -1
  65. package/esm2015/lib/core/models/typed-session.js +1 -1
  66. package/esm2015/lib/core/models/user-entity-service-config.js +1 -1
  67. package/esm2015/lib/core/services/authorization.service.js +1 -1
  68. package/esm2015/lib/core/services/banner.service.js +1 -1
  69. package/esm2015/lib/core/services/base-config.service.js +1 -1
  70. package/esm2015/lib/core/services/custom-auth-config.service.js +1 -1
  71. package/esm2015/lib/core/services/default-config.service.js +1 -1
  72. package/esm2015/lib/core/services/session.service.js +1 -1
  73. package/esm2015/lib/core/services/user-entity.service.js +1 -1
  74. package/esm2015/lib/distributed-cache/client-generated/api/api.js +1 -1
  75. package/esm2015/lib/distributed-cache/client-generated/api/cache.service.js +1 -1
  76. package/esm2015/lib/distributed-cache/client-generated/configuration.js +1 -1
  77. package/esm2015/lib/distributed-cache/client-generated/encoder.js +1 -1
  78. package/esm2015/lib/distributed-cache/client-generated/model/cacheExpirationType.js +1 -1
  79. package/esm2015/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.js +1 -1
  80. package/esm2015/lib/distributed-cache/client-generated/model/models.js +1 -1
  81. package/esm2015/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.js +1 -1
  82. package/esm2015/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.js +1 -1
  83. package/esm2015/lib/distributed-cache/client-generated/variables.js +1 -1
  84. package/esm2015/lib/distributed-cache/distributed-cache-api.js +1 -1
  85. package/esm2015/lib/distributed-cache/distributed-cache.module.js +1 -1
  86. package/esm2015/lib/distributed-cache/models/constants.js +1 -1
  87. package/esm2015/lib/distributed-cache/models/policy-person.js +1 -1
  88. package/esm2015/lib/distributed-cache/services/server-cache.service.js +1 -1
  89. package/esm2015/lib/error/components/error-common/error-common.component.js +1 -1
  90. package/esm2015/lib/error/error-api.js +1 -1
  91. package/esm2015/lib/error/error.module.js +1 -1
  92. package/esm2015/lib/error/models/error-common-config.js +1 -1
  93. package/esm2015/lib/faq/components/faq/faq.component.js +1 -1
  94. package/esm2015/lib/faq/faq-api.js +1 -1
  95. package/esm2015/lib/faq/faq.module.js +1 -1
  96. package/esm2015/lib/faq/models/faq-config.js +1 -1
  97. package/esm2015/lib/faq/models/faq.js +1 -1
  98. package/esm2015/lib/footer/components/footer/footer.component.js +2 -2
  99. package/esm2015/lib/footer/components/site-map/site-map.component.js +1 -1
  100. package/esm2015/lib/footer/footer-api.js +1 -1
  101. package/esm2015/lib/footer/footer.module.js +1 -1
  102. package/esm2015/lib/footer/models/enum/site-map-direction.js +1 -1
  103. package/esm2015/lib/footer/models/footer-config.js +1 -1
  104. package/esm2015/lib/footer/models/site-map-models.js +1 -1
  105. package/esm2015/lib/forms/components/sof-address/sof-address.component.js +1 -1
  106. package/esm2015/lib/forms/directives/alphanumeric/alphanumeric.directive.js +1 -1
  107. package/esm2015/lib/forms/directives/letters-only/letters-only.directive.js +1 -1
  108. package/esm2015/lib/forms/directives/numbers-only/numbers-only.directive.js +1 -1
  109. package/esm2015/lib/forms/forms-api.js +1 -1
  110. package/esm2015/lib/forms/forms.module.js +1 -1
  111. package/esm2015/lib/forms/models/address.js +1 -1
  112. package/esm2015/lib/forms/models/constants.js +1 -1
  113. package/esm2015/lib/forms/models/county.js +1 -1
  114. package/esm2015/lib/forms/models/enums/states.js +1 -1
  115. package/esm2015/lib/forms/pipes/phone-format.pipe.js +1 -1
  116. package/esm2015/lib/forms/services/alert.service.js +1 -1
  117. package/esm2015/lib/header/components/header/header.component.js +3 -3
  118. package/esm2015/lib/header/components/mobile-header-menu/mobile-header-menu.component.js +1 -1
  119. package/esm2015/lib/header/header-api.js +1 -1
  120. package/esm2015/lib/header/header.module.js +1 -1
  121. package/esm2015/lib/header/models/header-auth.settings.js +2 -4
  122. package/esm2015/lib/header/models/header-language.settings.js +1 -1
  123. package/esm2015/lib/header/models/header-theme.settings.js +1 -1
  124. package/esm2015/lib/header/models/header.settings.js +1 -1
  125. package/esm2015/lib/header/models/mobile-header-nav.settings.js +1 -1
  126. package/esm2015/lib/navigation/components/navigation/navigation.component.js +1 -1
  127. package/esm2015/lib/navigation/models/nav-theme.settings.js +1 -1
  128. package/esm2015/lib/navigation/models/nav.settings.js +1 -1
  129. package/esm2015/lib/navigation/models/navigation.js +1 -1
  130. package/esm2015/lib/navigation/navigation-api.js +1 -1
  131. package/esm2015/lib/navigation/navigation.module.js +1 -1
  132. package/esm2015/lib/oauth/models/constants.js +1 -1
  133. package/esm2015/lib/oauth/models/generated/accountManagementAssertionModel.js +1 -1
  134. package/esm2015/lib/oauth/models/generated/accountManagementRefreshRequestModel.js +1 -1
  135. package/esm2015/lib/oauth/models/generated/accountManagementResponseModel.js +1 -1
  136. package/esm2015/lib/oauth/models/generated/coverageDetail.js +1 -1
  137. package/esm2015/lib/oauth/models/generated/finance.js +1 -1
  138. package/esm2015/lib/oauth/models/generated/iSsoResponseModel.js +1 -1
  139. package/esm2015/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.js +1 -1
  140. package/esm2015/lib/oauth/models/generated/person.js +1 -1
  141. package/esm2015/lib/oauth/models/generated/policy.js +1 -1
  142. package/esm2015/lib/oauth/models/generated/refreshResponseModel.js +1 -1
  143. package/esm2015/lib/oauth/models/hybrid-saml-oauth-config.js +1 -1
  144. package/esm2015/lib/oauth/oauth-api.js +1 -1
  145. package/esm2015/lib/oauth/oauth.module.js +1 -1
  146. package/esm2015/lib/oauth/services/hybrid-saml-oauth.service.js +1 -1
  147. package/esm2015/lib/rbac/directives/rbac-action.directive.js +1 -1
  148. package/esm2015/lib/rbac/models/access-token-claims.js +1 -1
  149. package/esm2015/lib/rbac/models/constants.js +1 -1
  150. package/esm2015/lib/rbac/models/decoded-access-token.js +1 -1
  151. package/esm2015/lib/rbac/models/rbac-config.js +1 -1
  152. package/esm2015/lib/rbac/models/role-access.js +1 -1
  153. package/esm2015/lib/rbac/rbac-api.js +1 -1
  154. package/esm2015/lib/rbac/rbac.module.js +1 -1
  155. package/esm2015/lib/rbac/services/ar-role-nav.service.js +1 -1
  156. package/esm2015/lib/rbac/services/oauth2-role.service.js +1 -1
  157. package/esm2015/lib/rbac/services/role-nav.service.js +1 -1
  158. package/esm2015/lib/rum/models/arm-error.js +1 -1
  159. package/esm2015/lib/rum/models/rum-config.js +1 -1
  160. package/esm2015/lib/rum/rum-api.js +1 -1
  161. package/esm2015/lib/rum/rum.module.js +1 -1
  162. package/esm2015/lib/rum/services/rum.service.js +1 -1
  163. package/esm2015/lib/rum/services/shared-error.service.js +1 -1
  164. package/esm2015/lib/rum/services/softheon-error-handler.service.js +1 -1
  165. package/esm2015/lib/saml/components/redirect-saml/redirect-saml.component.js +1 -1
  166. package/esm2015/lib/saml/models/i-saml-request.js +1 -1
  167. package/esm2015/lib/saml/models/i-saml-response.js +1 -1
  168. package/esm2015/lib/saml/models/redirect-saml-request.js +1 -1
  169. package/esm2015/lib/saml/models/sso-gateway-model.js +1 -1
  170. package/esm2015/lib/saml/saml-api.js +1 -1
  171. package/esm2015/lib/saml/saml.module.js +1 -1
  172. package/esm2015/lib/saml/services/entry/abstract-saml-entry.service.js +1 -1
  173. package/esm2015/lib/saml/services/entry/sso-gateway-entry.service.js +1 -1
  174. package/esm2015/lib/saml/services/send-off/abstract-saml.service.js +1 -1
  175. package/esm2015/lib/saml/services/send-off/saml.service.js +1 -1
  176. package/esm2015/lib/sof-pipe/constants/constants.js +1 -1
  177. package/esm2015/lib/sof-pipe/models/sof-date-pipe-format.js +1 -1
  178. package/esm2015/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.js +1 -1
  179. package/esm2015/lib/sof-pipe/pipes/sof-date/sof-date.pipe.js +1 -1
  180. package/esm2015/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.js +1 -1
  181. package/esm2015/lib/sof-pipe/sof-pipe.api.js +1 -1
  182. package/esm2015/lib/sof-pipe/sof-pipe.module.js +1 -1
  183. package/esm2015/lib/theming/directives/css-override.directive.js +1 -1
  184. package/esm2015/lib/theming/models/css-override.js +1 -1
  185. package/esm2015/lib/theming/services/theme.service.js +1 -1
  186. package/esm2015/lib/theming/theme-api.js +1 -1
  187. package/esm2015/lib/theming/theme.module.js +1 -1
  188. package/esm2015/public-api.js +4 -1
  189. package/esm2015/softheon-armature.js +1 -1
  190. package/fesm2015/softheon-armature.js +146 -9
  191. package/fesm2015/softheon-armature.js.map +1 -1
  192. package/lib/component-save-print/components/component-save-print/component-save-print.component.d.ts +43 -0
  193. package/lib/component-save-print/services/component-save-print.service.d.ts +15 -0
  194. package/lib/component-save-print/sof-ar-component-save-print.module.d.ts +3 -0
  195. package/lib/core/models/oidc-auth-settings.d.ts +0 -1
  196. package/lib/header/components/header/header.component.d.ts +0 -2
  197. package/lib/header/models/header-auth.settings.d.ts +1 -3
  198. package/package.json +1 -1
  199. package/public-api.d.ts +3 -0
  200. package/softheon-armature.metadata.json +1 -1
package/README.md CHANGED
@@ -1775,3 +1775,75 @@ The selector indicates how the dom will be searched for html elements
1775
1775
  | -------- | -------- | ----------------- | ------------------------------------------------------------------- |
1776
1776
  | name | `string` | any css attribute | The name of the css attribute to modify on returned elements styles |
1777
1777
  | value | `string` | any string | The value to set for the css attribute |
1778
+
1779
+ ## Saving/Printing a specified component
1780
+
1781
+ This section will describe how any component for an application can be saved/printed
1782
+
1783
+ ### Setup
1784
+
1785
+ There are few steps that must be done in order to use this functionality
1786
+
1787
+ __First__: In the module that will be using this functionality include the following import
1788
+
1789
+ ```javascript
1790
+ import { SofArComponentSavePrintModule } from '@softheon/armature';
1791
+
1792
+ @ngModule({
1793
+ declarations: [...],
1794
+ imports: [
1795
+ ...
1796
+ SofArComponentSavePrintModule
1797
+ ...
1798
+ ]
1799
+ })
1800
+
1801
+ ```
1802
+
1803
+ __Last__: Include the following component in a component that will be on the page at the time the user will select to save/print. This can be done in the app.component.ts or in a specific route in the application.
1804
+
1805
+ ```html
1806
+ <sof-ar-component-save-print></sof-ar-component-save-print>
1807
+ ```
1808
+
1809
+ ### Usage
1810
+
1811
+ In this example, the print command will be executed by an application defined button in a component. The save/print functionality is not limited to a component, it can be executed from a service/directive/pipe etc.
1812
+
1813
+ ```javascript
1814
+ import { Component, OnInit } from '@angular/core';
1815
+ import { ComponentSavePrintService } from '@softheon/armature';
1816
+ import { SomeOtherComponent } from './some/local/component/location';
1817
+
1818
+ /** The save print component */
1819
+ @Component({
1820
+ selector: 'app-save-print',
1821
+ templateUrl: './save-print.component.html',
1822
+ styleUrls: ['./save-print.component.scss']
1823
+ })
1824
+ export class SavePrintComponent implements OnInit {
1825
+
1826
+ /**
1827
+ * The constructor
1828
+ * @param componentSavePrintService The save/print component service
1829
+ */
1830
+ constructor(
1831
+ private readonly componentSavePrintService: ComponentSavePrintService
1832
+ ) { }
1833
+
1834
+ /** Angular life cycle hook for component initialization */
1835
+ public ngOnInit(): void {
1836
+ }
1837
+
1838
+ /** Downloads the pdf of the page */
1839
+ public downloadPdf(): void {
1840
+ this.componentSavePrintService.savePrintComponent(SomeOtherComponent);
1841
+ }
1842
+ }
1843
+ ```
1844
+
1845
+ The `savePrintComponent` function takes the type of component that will be saved/printed as the only argument. This component does not have to be the same as the component executing the save/print function, it can be any component in the application including routes.
1846
+
1847
+ ### Limitations
1848
+
1849
+ There is currently no way to pass in custom inputs to the component being save/printed. This can be prevented by having a component host the component in question with the correct default inputs and providing the host component to the function rather the desired component.
@@ -16,21 +16,17 @@ body {
16
16
  margin: 0 !important;
17
17
  }
18
18
 
19
- h1.merriweather {
20
- font-family: "Merriweather", serif;
21
- font-style: normal;
22
- font-weight: normal;
23
- font-size: 34px;
24
- line-height: 48px;
25
- letter-spacing: normal;
26
- margin: 0px;
27
- padding: 0px;
28
- @media only screen and (max-width: $screen-sm-end) {
29
- font-size: 28px;
30
- }
19
+ .merriweather {
20
+ font-family: "Merriweather", serif !important;
21
+ }
22
+
23
+ .poppins {
24
+ font-family: "Poppins", sans-serif !important;
31
25
  }
32
26
 
33
- h1.poppins {
27
+ .h1,
28
+ [h1],
29
+ h1 {
34
30
  font-family: "Poppins", sans-serif;
35
31
  font-style: normal;
36
32
  font-weight: normal;
@@ -983,7 +983,6 @@
983
983
  logOutText: 'SIGN OUT',
984
984
  redirectUri: 'http://localhost:4200/',
985
985
  skipIssuerCheck: true,
986
- authBtnAriaText: 'aria button text',
987
986
  postLogOutUrl: 'http://localhost:4200/',
988
987
  loginUrl: '',
989
988
  returnRoute: '',
@@ -2229,7 +2228,7 @@
2229
2228
  ArmatureFooterComponent.decorators = [
2230
2229
  { type: i0.Component, args: [{
2231
2230
  selector: 'sof-ar-footer',
2232
- template: "<footer role=\"contentinfo\" class=\"sof-ar-footer-container\">\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" style=\"width: 100%\" fxLayoutGap=\"10px\">\r\n <div fxFlex=\"100%\" style=\"width: 100%\" fxLayoutAlign=\"center center\" *ngIf=\"footerConfig.showPreContent1\">\r\n <ng-content select=\"[sof-ar-footer-pre-content-1]\"></ng-content>\r\n </div>\r\n <div fxFlex=\"100%\" style=\"width: 100%\" *ngIf=\"footerConfig.showPreContent1\">\r\n <hr />\r\n </div>\r\n <div fxFlex=\"100%\" style=\"width: 100%\" fxLayoutAlign=\"center center\" *ngIf=\"footerConfig.showPreContent2\">\r\n <ng-content select=\"[sof-ar-footer-pre-content-2]\"></ng-content>\r\n </div>\r\n <div fxFlex=\"100%\" style=\"width: 100%\" *ngIf=\"footerConfig.showPreContent2\">\r\n <hr />\r\n </div>\r\n </div>\r\n <ng-content select=\"[sof-ar-footer-content]\"></ng-content>\r\n</footer>\r\n",
2231
+ template: "<footer role=\"contentinfo\" class=\"sof-ar-footer-container\">\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\" style=\"width: 100%\" fxLayoutGap=\"10px\">\r\n <div fxFlex=\"100%\" style=\"width: 100%\" fxLayoutAlign=\"center center\" fxLayoutAlign.lt-md=\"start start\" *ngIf=\"footerConfig.showPreContent1\">\r\n <ng-content select=\"[sof-ar-footer-pre-content-1]\"></ng-content>\r\n </div>\r\n <div fxFlex=\"100%\" style=\"width: 100%\" *ngIf=\"footerConfig.showPreContent1\">\r\n <hr />\r\n </div>\r\n <div fxFlex=\"100%\" style=\"width: 100%\" fxLayoutAlign=\"center center\" *ngIf=\"footerConfig.showPreContent2\">\r\n <ng-content select=\"[sof-ar-footer-pre-content-2]\"></ng-content>\r\n </div>\r\n <div fxFlex=\"100%\" style=\"width: 100%\" *ngIf=\"footerConfig.showPreContent2\">\r\n <hr />\r\n </div>\r\n </div>\r\n <ng-content select=\"[sof-ar-footer-content]\"></ng-content>\r\n</footer>\r\n",
2233
2232
  styles: [".sof-ar-footer-container{align-items:center;background:#f5f5f5;box-sizing:border-box;display:inline-flex;flex-wrap:wrap;justify-content:center;padding:30px 0;width:100%}::ng-deep .sof-ar-footer-container button:not(:last-child),sof-ar-footer{position:relative}::ng-deep .sof-ar-footer-container button:not(:last-child):after{background:rgba(0,0,0,.3);content:\"\";height:100%;position:absolute;right:0;top:0;width:1px}::ng-deep .flex-full-width{flex:0 0 100%;text-align:center}hr{border:1px solid #e4e4e4}"]
2234
2233
  },] }
2235
2234
  ];
@@ -3483,6 +3482,7 @@
3483
3482
  this.setLanguage$ = new i0.EventEmitter();
3484
3483
  /** Event Emitter for if user is logged in. */
3485
3484
  this.isLoggedInEE = new i0.EventEmitter();
3485
+ /** AUTH SETTINGS */
3486
3486
  /** Flag if user is logged in. */
3487
3487
  this.isLoggedIn = false;
3488
3488
  /** The header language settings */
@@ -3549,7 +3549,6 @@
3549
3549
  // set up oauth only when configs and issuer are provided
3550
3550
  if (this.authSettings && this.authSettings.issuer) {
3551
3551
  this.authorizationService.initializeAuthSettings(this.authSettings);
3552
- this.authBtnAriaText = this.authSettings.authBtnAriaText;
3553
3552
  this.authorizationService.isLoggedIn$.subscribe(function (value) {
3554
3553
  _this.isLoggedIn = value;
3555
3554
  if (value) {
@@ -3600,7 +3599,7 @@
3600
3599
  ArmatureHeaderComponent.decorators = [
3601
3600
  { type: i0.Component, args: [{
3602
3601
  selector: 'sof-ar-header',
3603
- template: "<ng-container *ngIf=\"displaySuperHeader\">\r\n <div class=\"sof-super-header\" [ngStyle]=\"{'background-color' : superHeaderColor}\">\r\n <ng-content select=\"[sof-ar-super-header]\"></ng-content>\r\n </div>\r\n</ng-container>\r\n<mat-toolbar class=\"sof-ar-header\" [class.sof-ar-header-shadow]=\"headerDropShadow\"\r\n [ngStyle]=\"{'height.px': settings?.headerStyles?.height, background: headerColor, 'border-bottom': themeSettings.borderBottomSize + ' solid ' + themeSettings.borderBottomColor }\"\r\n [ngStyle.lt-sm]=\"{'height.px': settings?.headerStyles?.heightMobile || 64, background: headerColor, 'border-bottom': themeSettings.borderBottomSize + ' solid ' + themeSettings.borderBottomColor }\">\r\n <div class=\"sof-ar-header--left\" [class.sof-ar-toggle-navigation]=\"(mobileQuery.matches && (armatureNavigation || armatureHeaderOverlay)) || settings?.createSpaceForNavToggle\">\r\n <!-- Logo Image -->\r\n <ng-container *ngIf=\"displayLogo\">\r\n <ng-container *ngIf=\"settings?.logoRouterLinkPath === 'internal'; else external\">\r\n <a [routerLink]=\"settings?.logoRouterLink\">\r\n <img class=\"sof-ar-header-logo\" [src]=\"logoUrl\" alt=\"{{logoAltText | translate}}\"\r\n [ngStyle]=\"{'height.px': settings?.logoStyles?.height, 'width.px': settings?.logoStyles?.width, 'max-width': settings?.logoStyles?.width + 'px' || '100%'}\"\r\n [ngStyle.lt-sm]=\"{'height.px': settings?.logoStyles?.heightMobile, 'width.px': settings?.logoStyles?.widthMobile, 'max-width': settings?.logoStyles?.widthMobile + 'px' || '100%'}\" />\r\n </a>\r\n </ng-container>\r\n <ng-template #external>\r\n <a [href]=\"settings?.logoRouterLink\"><img class=\"sof-ar-header-logo\" [src]=\"logoUrl\"\r\n alt=\"{{logoAltText | translate}}\"\r\n [ngStyle]=\"{'height.px': settings?.logoStyles?.height, 'width.px': settings?.logoStyles?.width, 'max-width': settings?.logoStyles?.width + 'px' || '100%'}\"\r\n [ngStyle.lt-sm]=\"{'height.px': settings?.logoStyles?.heightMobile, 'width.px': settings?.logoStyles?.widthMobile, 'max-width': settings?.logoStyles?.widthMobile + 'px' || '100%'}\" />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <!-- Logo Text -->\r\n <ng-container *ngIf=\"displayLogoText\">\r\n <p class=\"sof-ar-header-logo-text\">{{headerLogoText}}</p>\r\n </ng-container>\r\n <!-- NG-Content Left -->\r\n <ng-content select=\"[sof-ar-header-left]\"></ng-content>\r\n </div>\r\n <div class=\"sof-ar-header--center\">\r\n <!-- NG-Content Center -->\r\n <ng-content select=\"[sof-ar-header-center]\"></ng-content>\r\n </div>\r\n <div class=\"sof-ar-header--right\" fxLayout=\"row\" fxLayoutAlign=\"end center\" fxLayoutGap=\"10px\">\r\n <!-- NG-Content Right -->\r\n <span fxFlex=\"auto 0 1\" [fxHide.lt-sm]=\"!armatureNavigation && armatureHeaderOverlay\">\r\n <ng-content select=\"[sof-ar-header-right]\"></ng-content>\r\n </span>\r\n <div fxFlex=\"auto 0 1\" *ngIf=\"displayDropDownMenu\">\r\n <button id=\"sof-ar-header-btn-dropdown\" mat-icon-button [disableRipple]=\"true\"\r\n [matMenuTriggerFor]=\"sofArHeaderMenu\" [attr.aria-label]=\"dropDownAriaText | translate\">\r\n <span [style.color]=\"iconColor\">\r\n <i class=\"{{headerDropDownIcon}}\"></i>\r\n <span class=\"sr-only\">{{dropDownMenuSRText | translate}}</span>\r\n </span>\r\n </button>\r\n <mat-menu #sofArHeaderMenu=\"matMenu\" class=\"sof-ar-mat-menu\">\r\n <!-- NG-Content Menu -->\r\n <ng-content select=\"[sof-ar-header-menu]\"></ng-content>\r\n </mat-menu>\r\n </div>\r\n <!-- Language button -->\r\n <div fxFlex=\"auto 0 1\"\r\n *ngIf=\"headerLanguageSettings?.displayLanguageOptions && headerLanguageSettings?.languages?.length > 2 && !mobileQuery.matches\">\r\n <button id=\"sof-ar-header-lang-dropdown\" mat-stroked-button class=\"faded-button-50 language-button\"\r\n [matMenuTriggerFor]=\"headerLanguageMenu\" [attr.aria-label]=\"headerLanguageSettings.buttonText | translate\">\r\n <span>\r\n <i class=\"far fa-globe language-globe\"></i>\r\n {{headerLanguageSettings.buttonText | translate}}\r\n </span>\r\n </button>\r\n <mat-menu #headerLanguageMenu=\"matMenu\" class=\"sof-ar-mat-menu\">\r\n <button mat-menu-item *ngFor=\"let lang of headerLanguageSettings.languages\" (click)=\"setLanguage$.emit(lang)\"\r\n id=\"apply-lang-btn-{{lang}}\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\">\r\n <div fxFlex=\"auto\">\r\n {{ lang | translate }}\r\n </div>\r\n <div fxFlex=\"auto\" fxLayoutAlign=\"end end\">\r\n <i *ngIf=\"currentLang === lang\" class=\"fad fa-check selected-language-icon\"></i>\r\n </div>\r\n </div>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n <div\r\n *ngIf=\"headerLanguageSettings?.displayLanguageOptions && headerLanguageSettings?.languages?.length === 2 && !mobileQuery.matches\">\r\n <button *ngIf=\"headerLanguageSettings.languages.length === 2\" id=\"sof-ar-header-lang-button\" mat-stroked-button\r\n class=\"faded-button-50 language-button\" [attr.aria-label]=\"headerLanguageSettings.buttonText | translate\"\r\n (click)=\"setLanguage$.emit()\">\r\n <span>\r\n <i class=\"far fa-globe language-globe\"></i>\r\n {{otherLangText | translate}}\r\n </span>\r\n </button>\r\n </div>\r\n <!-- Authorization button -->\r\n <div fxFlex=\"auto 0 1\" *ngIf=\"settings?.displayAuthInfo\">\r\n <button *ngIf=\"!isLoggedIn;else loggedIn\" id=\"sof-ar-header-btn-auth\" mat-flat-button (click)=\"authorizeUser()\"\r\n [attr.aria-label]=\"authBtnAriaText | translate\" class=\"sign-in-button\">\r\n {{ authBtnText | translate }}\r\n </button>\r\n <ng-template #loggedIn>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxLayoutGap=\"10px\">\r\n <div fxFlex=\"auto 0 1\">\r\n <button id=\"sof-ar-logged-in-btn-dropdown\" [matMenuTriggerFor]=\"sofArLoginMenu\"\r\n [attr.aria-label]=\"dropDownAriaText | translate\" style=\"padding-left:0px !important\"\r\n ngClass=\"faded-button-50 left-radius-10 mat-stroked-button\" ngClass.lt-md=\"mobile-border\">\r\n\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"15px\">\r\n <div fxFlex=\"40px\" fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"absent-account-image\">\r\n <div fxFlex=\"100%\">\r\n {{ userName.charAt(0).toUpperCase() }}\r\n </div>\r\n </div>\r\n <div fxShow fxHide.lt-md fxFlex=\"auto\" class=\"signed-in-name\">\r\n {{ userName }}\r\n </div>\r\n </div>\r\n </button>\r\n <!-- Login menu -->\r\n <mat-menu #sofArLoginMenu=\"matMenu\" class=\"sof-ar-mat-menu\" id=\"loginMenu\">\r\n <a mat-menu-item href=\"{{manageUrl}}\" target=\"_blank\">\r\n {{ authSettings.myAccountText | translate }}\r\n </a>\r\n <div *ngIf=\"settings.displayDarkTheme\" mat-menu-item (click)=\"$event.stopPropagation()\" disabled>\r\n <mat-slide-toggle color=\"accent\" labelPosition=\"before\" [aria-label]=\"settings.darkThemeText\"\r\n [id]=\"'dark-theme-toggle-btn'\" (change)=\"toggleTheme($event)\">\r\n {{ settings.darkThemeText + '(coming soon!)' | translate }}\r\n <!-- TODO: determine if icon is liked <i class=\"fad fa-moon-cloud dark-theme-icon\"></i> -->\r\n </mat-slide-toggle>\r\n </div>\r\n <ng-content select=\"[sof-header-user-menu]\"></ng-content>\r\n </mat-menu>\r\n </div>\r\n <div fxFlex=\"auto 0 1\">\r\n <button id=\"sof-ar-log-out-btn\" mat-stroked-button class=\"faded-button-50 sign-out-icon\"\r\n [class.hidden]=\"mobileQuery.matches\" (click)=\"authorizeUser()\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <i fxFlex=\"100%\" class=\"fas fa-sign-out-alt\"></i>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</mat-toolbar>\r\n",
3602
+ template: "<ng-container *ngIf=\"displaySuperHeader\">\r\n <div class=\"sof-super-header\" [ngStyle]=\"{'background-color' : superHeaderColor}\">\r\n <ng-content select=\"[sof-ar-super-header]\"></ng-content>\r\n </div>\r\n</ng-container>\r\n<mat-toolbar class=\"sof-ar-header\" [class.sof-ar-header-shadow]=\"headerDropShadow\"\r\n [ngStyle]=\"{'height.px': settings?.headerStyles?.height, background: headerColor, 'border-bottom': themeSettings.borderBottomSize + ' solid ' + themeSettings.borderBottomColor }\"\r\n [ngStyle.lt-sm]=\"{'height.px': settings?.headerStyles?.heightMobile || 64, background: headerColor, 'border-bottom': themeSettings.borderBottomSize + ' solid ' + themeSettings.borderBottomColor }\">\r\n <div class=\"sof-ar-header--left\" [class.sof-ar-toggle-navigation]=\"(mobileQuery.matches && (armatureNavigation || armatureHeaderOverlay)) || settings?.createSpaceForNavToggle\">\r\n <!-- Logo Image -->\r\n <ng-container *ngIf=\"displayLogo\">\r\n <ng-container *ngIf=\"settings?.logoRouterLinkPath === 'internal'; else external\">\r\n <a [routerLink]=\"settings?.logoRouterLink\">\r\n <img class=\"sof-ar-header-logo\" [src]=\"logoUrl\" alt=\"{{logoAltText | translate}}\"\r\n [ngStyle]=\"{'height.px': settings?.logoStyles?.height, 'width.px': settings?.logoStyles?.width, 'max-width': settings?.logoStyles?.width + 'px' || '100%'}\"\r\n [ngStyle.lt-sm]=\"{'height.px': settings?.logoStyles?.heightMobile, 'width.px': settings?.logoStyles?.widthMobile, 'max-width': settings?.logoStyles?.widthMobile + 'px' || '100%'}\" />\r\n </a>\r\n </ng-container>\r\n <ng-template #external>\r\n <a [href]=\"settings?.logoRouterLink\"><img class=\"sof-ar-header-logo\" [src]=\"logoUrl\"\r\n alt=\"{{logoAltText | translate}}\"\r\n [ngStyle]=\"{'height.px': settings?.logoStyles?.height, 'width.px': settings?.logoStyles?.width, 'max-width': settings?.logoStyles?.width + 'px' || '100%'}\"\r\n [ngStyle.lt-sm]=\"{'height.px': settings?.logoStyles?.heightMobile, 'width.px': settings?.logoStyles?.widthMobile, 'max-width': settings?.logoStyles?.widthMobile + 'px' || '100%'}\" />\r\n </a>\r\n </ng-template>\r\n </ng-container>\r\n <!-- Logo Text -->\r\n <ng-container *ngIf=\"displayLogoText\">\r\n <p class=\"sof-ar-header-logo-text\">{{headerLogoText}}</p>\r\n </ng-container>\r\n <!-- NG-Content Left -->\r\n <ng-content select=\"[sof-ar-header-left]\"></ng-content>\r\n </div>\r\n <div class=\"sof-ar-header--center\">\r\n <!-- NG-Content Center -->\r\n <ng-content select=\"[sof-ar-header-center]\"></ng-content>\r\n </div>\r\n <div class=\"sof-ar-header--right\" fxLayout=\"row\" fxLayoutAlign=\"end center\" fxLayoutGap=\"10px\">\r\n <!-- NG-Content Right -->\r\n <span fxFlex=\"auto 0 1\" [fxHide.lt-sm]=\"!armatureNavigation && armatureHeaderOverlay\">\r\n <ng-content select=\"[sof-ar-header-right]\"></ng-content>\r\n </span>\r\n <div fxFlex=\"auto 0 1\" *ngIf=\"displayDropDownMenu\">\r\n <button id=\"sof-ar-header-btn-dropdown\" mat-icon-button [disableRipple]=\"true\"\r\n [matMenuTriggerFor]=\"sofArHeaderMenu\" [attr.aria-label]=\"dropDownAriaText | translate\">\r\n <span [style.color]=\"iconColor\">\r\n <i class=\"{{headerDropDownIcon}}\"></i>\r\n <span class=\"sr-only\">{{dropDownMenuSRText | translate}}</span>\r\n </span>\r\n </button>\r\n <mat-menu #sofArHeaderMenu=\"matMenu\" class=\"sof-ar-mat-menu\">\r\n <!-- NG-Content Menu -->\r\n <ng-content select=\"[sof-ar-header-menu]\"></ng-content>\r\n </mat-menu>\r\n </div>\r\n <!-- Language button -->\r\n <div fxFlex=\"auto 0 1\"\r\n *ngIf=\"headerLanguageSettings?.displayLanguageOptions && headerLanguageSettings?.languages?.length > 2 && !mobileQuery.matches\">\r\n <button id=\"sof-ar-header-lang-dropdown\" mat-stroked-button class=\"faded-button-50 language-button\"\r\n [matMenuTriggerFor]=\"headerLanguageMenu\" [attr.aria-label]=\"headerLanguageSettings.buttonText | translate\">\r\n <span>\r\n <i class=\"far fa-globe language-globe\"></i>\r\n {{headerLanguageSettings.buttonText | translate}}\r\n </span>\r\n </button>\r\n <mat-menu #headerLanguageMenu=\"matMenu\" class=\"sof-ar-mat-menu\">\r\n <button mat-menu-item *ngFor=\"let lang of headerLanguageSettings.languages\" (click)=\"setLanguage$.emit(lang)\"\r\n id=\"apply-lang-btn-{{lang}}\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxLayoutAlign=\"start center\">\r\n <div fxFlex=\"auto\">\r\n {{ lang | translate }}\r\n </div>\r\n <div fxFlex=\"auto\" fxLayoutAlign=\"end end\">\r\n <i *ngIf=\"currentLang === lang\" class=\"fad fa-check selected-language-icon\"></i>\r\n </div>\r\n </div>\r\n </button>\r\n </mat-menu>\r\n </div>\r\n <div\r\n *ngIf=\"headerLanguageSettings?.displayLanguageOptions && headerLanguageSettings?.languages?.length === 2 && !mobileQuery.matches\">\r\n <button *ngIf=\"headerLanguageSettings.languages.length === 2\" id=\"sof-ar-header-lang-button\" mat-stroked-button\r\n class=\"faded-button-50 language-button\" [attr.aria-label]=\"headerLanguageSettings.buttonText | translate\"\r\n (click)=\"setLanguage$.emit()\">\r\n <span>\r\n <i class=\"far fa-globe language-globe\"></i>\r\n {{otherLangText | translate}}\r\n </span>\r\n </button>\r\n </div>\r\n <!-- Authorization button -->\r\n <div fxFlex=\"auto 0 1\" *ngIf=\"settings?.displayAuthInfo\">\r\n <button *ngIf=\"!isLoggedIn;else loggedIn\" id=\"sof-ar-header-btn-auth\" mat-flat-button (click)=\"authorizeUser()\"\r\n [attr.aria-label]=\"authBtnText | translate\" class=\"sign-in-button\">\r\n {{ authBtnText | translate }}\r\n </button>\r\n <ng-template #loggedIn>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end center\" fxLayoutGap=\"10px\">\r\n <div fxFlex=\"auto 0 1\">\r\n <button id=\"sof-ar-logged-in-btn-dropdown\" [matMenuTriggerFor]=\"sofArLoginMenu\"\r\n [attr.aria-label]=\"dropDownAriaText | translate\" style=\"padding-left:0px !important\"\r\n ngClass=\"faded-button-50 left-radius-10 mat-stroked-button\" ngClass.lt-md=\"mobile-border\">\r\n\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"15px\">\r\n <div fxFlex=\"40px\" fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"absent-account-image\">\r\n <div fxFlex=\"100%\">\r\n {{ userName.charAt(0).toUpperCase() }}\r\n </div>\r\n </div>\r\n <div fxShow fxHide.lt-md fxFlex=\"auto\" class=\"signed-in-name\">\r\n {{ userName }}\r\n </div>\r\n </div>\r\n </button>\r\n <!-- Login menu -->\r\n <mat-menu #sofArLoginMenu=\"matMenu\" class=\"sof-ar-mat-menu\" id=\"loginMenu\">\r\n <a mat-menu-item href=\"{{manageUrl}}\" target=\"_blank\">\r\n {{ authSettings.myAccountText | translate }}\r\n </a>\r\n <div *ngIf=\"settings.displayDarkTheme\" mat-menu-item (click)=\"$event.stopPropagation()\" disabled>\r\n <mat-slide-toggle color=\"accent\" labelPosition=\"before\" [aria-label]=\"settings.darkThemeText\"\r\n [id]=\"'dark-theme-toggle-btn'\" (change)=\"toggleTheme($event)\">\r\n {{ settings.darkThemeText + '(coming soon!)' | translate }}\r\n <!-- TODO: determine if icon is liked <i class=\"fad fa-moon-cloud dark-theme-icon\"></i> -->\r\n </mat-slide-toggle>\r\n </div>\r\n <ng-content select=\"[sof-header-user-menu]\"></ng-content>\r\n </mat-menu>\r\n </div>\r\n <div fxFlex=\"auto 0 1\">\r\n <button id=\"sof-ar-log-out-btn\" mat-stroked-button class=\"faded-button-50 sign-out-icon\"\r\n [class.hidden]=\"mobileQuery.matches\" (click)=\"authorizeUser()\" [attr.aria-label]=\"authBtnText | translate\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <i fxFlex=\"100%\" class=\"fas fa-sign-out-alt\"></i>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n</mat-toolbar>\r\n",
3604
3603
  styles: [":root{--accent-color-100-parts:#b2dfdb;--accent-color-100-parts-rgb:178,223,219;--accent-color-200-parts:#80cbc4;--accent-color-200-parts-rgb:128,203,196;--accent-color-300-parts:#4db6ac;--accent-color-300-parts-rgb:77,182,172;--accent-color-400-parts:#26a69a;--accent-color-400-parts-rgb:38,166,154;--accent-color-50-parts:#e0f2f1;--accent-color-50-parts-rgb:224,242,241;--accent-color-500-parts:#009688;--accent-color-500-parts-rgb:0,150,136;--accent-color-600-parts:#00897b;--accent-color-600-parts-rgb:0,137,123;--accent-color-700-parts:#00796b;--accent-color-700-parts-rgb:0,121,107;--accent-color-800-parts:#00695c;--accent-color-800-parts-rgb:0,105,92;--accent-color-900-parts:#004d40;--accent-color-900-parts-rgb:0,77,64;--accent-color-A100-parts:#a7ffeb;--accent-color-A100-parts-rgb:167,255,235;--accent-color-A200-parts:#64ffda;--accent-color-A200-parts-rgb:100,255,218;--accent-color-A400-parts:#1de9b6;--accent-color-A400-parts-rgb:29,233,182;--accent-color-A700-parts:#00bfa5;--accent-color-A700-parts-rgb:0,191,165;--accent-color-contrast-100-parts:#000;--accent-color-contrast-200-parts:#000;--accent-color-contrast-300-parts:#000;--accent-color-contrast-400-parts:#000;--accent-color-contrast-50-parts:#000;--accent-color-contrast-500-parts:#fff;--accent-color-contrast-600-parts:#fff;--accent-color-contrast-700-parts:#fff;--accent-color-contrast-800-parts:#fff;--accent-color-contrast-900-parts:#fff;--accent-color-contrast-A100-parts:#000;--accent-color-contrast-A200-parts:#000;--accent-color-contrast-A400-parts:#000;--accent-color-contrast-A700-parts:#000;--error-color-100-parts:#f8c9c5;--error-color-100-parts-rgb:248,201,197;--error-color-200-parts:#f3a69e;--error-color-200-parts-rgb:248,201,197;--error-color-300-parts:#ee8277;--error-color-300-parts-rgb:238,130,119;--error-color-400-parts:#eb6759;--error-color-400-parts-rgb:235,103,89;--error-color-50-parts:#fceae8;--error-color-50-parts-rgb:252,234,232;--error-color-500-parts:#e74c3c;--error-color-500-parts-rgb:231,76,60;--error-color-600-parts:#e44536;--error-color-600-parts-rgb:228,69,54;--error-color-700-parts:#e03c2e;--error-color-700-parts-rgb:224,60,46;--error-color-800-parts:#dd3327;--error-color-800-parts-rgb:221,51,39;--error-color-900-parts:#d7241a;--error-color-900-parts-rgb:215,36,26;--error-color-A100-parts:#fff;--error-color-A100-parts-rgb:255,255,255;--error-color-A200-parts:#ffd9d7;--error-color-A200-parts-rgb:255,217,215;--error-color-A400-parts:#ffa8a4;--error-color-A400-parts-rgb:255,168,164;--error-color-A700-parts:#ff8f8b;--error-color-A700-parts-rgb:255,143,139;--error-color-contrast-100-parts:rgba(0,0,0,0.87);--error-color-contrast-200-parts:rgba(0,0,0,0.87);--error-color-contrast-300-parts:rgba(0,0,0,0.87);--error-color-contrast-400-parts:rgba(0,0,0,0.87);--error-color-contrast-50-parts:rgba(0,0,0,0.87);--error-color-contrast-500-parts:#fff;--error-color-contrast-600-parts:#fff;--error-color-contrast-700-parts:#fff;--error-color-contrast-800-parts:#fff;--error-color-contrast-900-parts:#fff;--error-color-contrast-A100-parts:rgba(0,0,0,0.87);--error-color-contrast-A200-parts:rgba(0,0,0,0.87);--error-color-contrast-A400-parts:rgba(0,0,0,0.87);--error-color-contrast-A700-parts:rgba(0,0,0,0.87);--info-color-100-parts:#c2e0f4;--info-color-100-parts-rgb:194,224,244;--info-color-200-parts:#9acced;--info-color-200-parts-rgb:154,204,237;--info-color-300-parts:#71b7e6;--info-color-300-parts-rgb:113,183,230;--info-color-400-parts:#52a7e0;--info-color-400-parts-rgb:82,167,224;--info-color-50-parts:#e7f3fb;--info-color-50-parts-rgb:231,243,251;--info-color-500-parts:#3498db;--info-color-500-parts-rgb:52,152,219;--info-color-600-parts:#2f90d7;--info-color-600-parts-rgb:47,144,215;--info-color-700-parts:#2785d2;--info-color-700-parts-rgb:39,133,210;--info-color-800-parts:#217bcd;--info-color-800-parts-rgb:33,123,205;--info-color-900-parts:#156ac4;--info-color-900-parts-rgb:21,106,196;--info-color-A100-parts:#f5f9ff;--info-color-A100-parts-rgb:245,249,255;--info-color-A200-parts:#c2ddff;--info-color-A200-parts-rgb:194,221,255;--info-color-A400-parts:#8fc1ff;--info-color-A400-parts-rgb:143,193,255;--info-color-A700-parts:#75b3ff;--info-color-A700-parts-rgb:117,179,255;--info-color-contrast-100-parts:rgba(0,0,0,0.87);--info-color-contrast-200-parts:rgba(0,0,0,0.87);--info-color-contrast-300-parts:rgba(0,0,0,0.87);--info-color-contrast-400-parts:#fff;--info-color-contrast-50-parts:rgba(0,0,0,0.87);--info-color-contrast-500-parts:#fff;--info-color-contrast-600-parts:#fff;--info-color-contrast-700-parts:#fff;--info-color-contrast-800-parts:#fff;--info-color-contrast-900-parts:#fff;--info-color-contrast-A100-parts:rgba(0,0,0,0.87);--info-color-contrast-A200-parts:rgba(0,0,0,0.87);--info-color-contrast-A400-parts:rgba(0,0,0,0.87);--info-color-contrast-A700-parts:rgba(0,0,0,0.87);--neutral-color-100-parts:#f5f5f5;--neutral-color-100-parts-rgb:245,245,245;--neutral-color-200-parts:#eee;--neutral-color-200-parts-rgb:238,238,238;--neutral-color-300-parts:#e0e0e0;--neutral-color-300-parts-rgb:224,224,224;--neutral-color-400-parts:#bdbdbd;--neutral-color-400-parts-rgb:189,189,189;--neutral-color-50-parts:#fafafa;--neutral-color-50-parts-rgb:250,250,250;--neutral-color-500-parts:#9e9e9e;--neutral-color-500-parts-rgb:158,158,158;--neutral-color-600-parts:#757575;--neutral-color-600-parts-rgb:117,117,117;--neutral-color-700-parts:#616161;--neutral-color-700-parts-rgb:97,97,97;--neutral-color-800-parts:#424242;--neutral-color-800-parts-rgb:66,66,66;--neutral-color-900-parts:#212121;--neutral-color-900-parts-rgb:33,33,33;--neutral-color-A100-parts:#fff;--neutral-color-A100-parts-rgb:255,255,255;--neutral-color-A200-parts:#fff;--neutral-color-A200-parts-rgb:255,255,255;--neutral-color-A400-parts:#fff;--neutral-color-A400-parts-rgb:255,255,255;--neutral-color-A700-parts:#fff;--neutral-color-A700-parts-rgb:255,255,255;--neutral-color-contrast-100-parts:rgba(0,0,0,0.87);--neutral-color-contrast-200-parts:rgba(0,0,0,0.87);--neutral-color-contrast-300-parts:rgba(0,0,0,0.87);--neutral-color-contrast-400-parts:rgba(0,0,0,0.87);--neutral-color-contrast-50-parts:rgba(0,0,0,0.87);--neutral-color-contrast-500-parts:#fff;--neutral-color-contrast-600-parts:#fff;--neutral-color-contrast-700-parts:#fff;--neutral-color-contrast-800-parts:#fff;--neutral-color-contrast-900-parts:#fff;--neutral-color-contrast-A100-parts:rgba(0,0,0,0.87);--neutral-color-contrast-A200-parts:rgba(0,0,0,0.87);--neutral-color-contrast-A400-parts:rgba(0,0,0,0.87);--neutral-color-contrast-A700-parts:rgba(0,0,0,0.87);--primary-color-100-parts:#b9d4fc;--primary-color-100-parts-rgb:185,212,252;--primary-color-200-parts:#8ab7fb;--primary-color-200-parts-rgb:138,183,251;--primary-color-300-parts:#5b9af9;--primary-color-300-parts-rgb:91,154,249;--primary-color-400-parts:#3784f7;--primary-color-400-parts-rgb:55,132,247;--primary-color-50-parts:#edf4ff;--primary-color-50-parts-rgb:237,244,255;--primary-color-500-parts:#146ef6;--primary-color-500-parts-rgb:20,110,246;--primary-color-600-parts:#1266f5;--primary-color-600-parts-rgb:18,102,245;--primary-color-700-parts:#0e5bf3;--primary-color-700-parts-rgb:14,91,243;--primary-color-800-parts:#0b51f2;--primary-color-800-parts-rgb:11,81,242;--primary-color-900-parts:#063fef;--primary-color-900-parts-rgb:6,63,239;--primary-color-A100-parts:#fff;--primary-color-A100-parts-rgb:255,255,255;--primary-color-A200-parts:#e4e9ff;--primary-color-A200-parts-rgb:228,233,255;--primary-color-A400-parts:#b1c0ff;--primary-color-A400-parts-rgb:177,192,255;--primary-color-A700-parts:#97acff;--primary-color-A700-parts-rgb:151,172,255;--primary-color-contrast-100-parts:rgba(0,0,0,0.87);--primary-color-contrast-200-parts:rgba(0,0,0,0.87);--primary-color-contrast-300-parts:rgba(0,0,0,0.87);--primary-color-contrast-400-parts:#fff;--primary-color-contrast-50-parts:rgba(0,0,0,0.87);--primary-color-contrast-500-parts:#fff;--primary-color-contrast-600-parts:#fff;--primary-color-contrast-700-parts:#fff;--primary-color-contrast-800-parts:#fff;--primary-color-contrast-900-parts:#fff;--primary-color-contrast-A100-parts:rgba(0,0,0,0.87);--primary-color-contrast-A200-parts:rgba(0,0,0,0.87);--primary-color-contrast-A400-parts:rgba(0,0,0,0.87);--primary-color-contrast-A700-parts:rgba(0,0,0,0.87);--success-color-100-parts:#d1e6ce;--success-color-100-parts-rgb:209,230,206;--success-color-200-parts:#b3d6ae;--success-color-200-parts-rgb:179,214,174;--success-color-300-parts:#95c58d;--success-color-300-parts-rgb:149,197,141;--success-color-400-parts:#7eb874;--success-color-400-parts-rgb:126,184,116;--success-color-50-parts:#edf5eb;--success-color-50-parts-rgb:237,245,235;--success-color-500-parts:#67ac5c;--success-color-500-parts-rgb:103,172,92;--success-color-600-parts:#5fa554;--success-color-600-parts-rgb:95,165,84;--success-color-700-parts:#549b4a;--success-color-700-parts-rgb:84,155,74;--success-color-800-parts:#4a9241;--success-color-800-parts-rgb:74,146,65;--success-color-900-parts:#398230;--success-color-900-parts-rgb:57,130,48;--success-color-A100-parts:#d0ffcb;--success-color-A100-parts-rgb:208,255,203;--success-color-A200-parts:#a2ff98;--success-color-A200-parts-rgb:162,255,152;--success-color-A400-parts:#74ff65;--success-color-A400-parts-rgb:116,255,101;--success-color-A700-parts:#5dff4c;--success-color-A700-parts-rgb:93,255,76;--success-color-contrast-100-parts:rgba(0,0,0,0.87);--success-color-contrast-200-parts:rgba(0,0,0,0.87);--success-color-contrast-300-parts:rgba(0,0,0,0.87);--success-color-contrast-400-parts:rgba(0,0,0,0.87);--success-color-contrast-50-parts:rgba(0,0,0,0.87);--success-color-contrast-500-parts:rgba(0,0,0,0.87);--success-color-contrast-600-parts:rgba(0,0,0,0.87);--success-color-contrast-700-parts:#fff;--success-color-contrast-800-parts:#fff;--success-color-contrast-900-parts:#fff;--success-color-contrast-A100-parts:rgba(0,0,0,0.87);--success-color-contrast-A200-parts:rgba(0,0,0,0.87);--success-color-contrast-A400-parts:rgba(0,0,0,0.87);--success-color-contrast-A700-parts:rgba(0,0,0,0.87);--warn-color-100-parts:#fbe1c3;--warn-color-100-parts-rgb:251,225,195;--warn-color-200-parts:#f9ce9c;--warn-color-200-parts-rgb:249,206,156;--warn-color-300-parts:#f6ba74;--warn-color-300-parts-rgb:246,186,116;--warn-color-400-parts:#f4ab56;--warn-color-400-parts-rgb:244,171,86;--warn-color-50-parts:#fdf3e7;--warn-color-50-parts-rgb:253,243,231;--warn-color-500-parts:#f29c38;--warn-color-500-parts-rgb:242,156,56;--warn-color-600-parts:#f09432;--warn-color-600-parts-rgb:240,148,50;--warn-color-700-parts:#ee8a2b;--warn-color-700-parts-rgb:238,138,43;--warn-color-800-parts:#ec8024;--warn-color-800-parts-rgb:236,128,36;--warn-color-900-parts:#e86e17;--warn-color-900-parts-rgb:232,110,23;--warn-color-A100-parts:#fff;--warn-color-A100-parts-rgb:255,255,255;--warn-color-A200-parts:#fff0e6;--warn-color-A200-parts-rgb:255,240,230;--warn-color-A400-parts:#ffd0b3;--warn-color-A400-parts-rgb:255,208,179;--warn-color-A700-parts:#ffc19a;--warn-color-A700-parts-rgb:255,193,154;--warn-color-contrast-100-parts:rgba(0,0,0,0.87);--warn-color-contrast-200-parts:rgba(0,0,0,0.87);--warn-color-contrast-300-parts:rgba(0,0,0,0.87);--warn-color-contrast-400-parts:rgba(0,0,0,0.87);--warn-color-contrast-50-parts:rgba(0,0,0,0.87);--warn-color-contrast-500-parts:rgba(0,0,0,0.87);--warn-color-contrast-600-parts:rgba(0,0,0,0.87);--warn-color-contrast-700-parts:rgba(0,0,0,0.87);--warn-color-contrast-800-parts:rgba(0,0,0,0.87);--warn-color-contrast-900-parts:rgba(0,0,0,0.87);--warn-color-contrast-A100-parts:rgba(0,0,0,0.87);--warn-color-contrast-A200-parts:rgba(0,0,0,0.87);--warn-color-contrast-A400-parts:rgba(0,0,0,0.87);--warn-color-contrast-A700-parts:rgba(0,0,0,0.87)}.mat-badge-content{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:600}.mat-badge-small .mat-badge-content{font-size:9px}.mat-badge-large .mat-badge-content{font-size:24px}.mat-h1,.mat-headline,.mat-typography h1{font:400 24px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h2,.mat-title,.mat-typography h2{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h3,.mat-subheading-2,.mat-typography h3{font:400 16px/28px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h4,.mat-subheading-1,.mat-typography h4{font:400 15px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 16px}.mat-h5,.mat-typography h5{font:400 11.62px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-h6,.mat-typography h6{font:400 9.38px/20px Roboto,Helvetica Neue,sans-serif;margin:0 0 12px}.mat-body-2,.mat-body-strong{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body,.mat-body-1,.mat-typography{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-body-1 p,.mat-body p,.mat-typography p{margin:0 0 12px}.mat-caption,.mat-small{font:400 12px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-display-4,.mat-typography .mat-display-4{font:300 112px/112px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.05em;margin:0 0 56px}.mat-display-3,.mat-typography .mat-display-3{font:400 56px/56px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.02em;margin:0 0 64px}.mat-display-2,.mat-typography .mat-display-2{font:400 45px/48px Roboto,Helvetica Neue,sans-serif;letter-spacing:-.005em;margin:0 0 64px}.mat-display-1,.mat-typography .mat-display-1{font:400 34px/40px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0 0 64px}.mat-bottom-sheet-container{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-button,.mat-fab,.mat-flat-button,.mat-icon-button,.mat-mini-fab,.mat-raised-button,.mat-stroked-button{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-button-toggle,.mat-card{font-family:Roboto,Helvetica Neue,sans-serif}.mat-card-title{font-size:24px;font-weight:500}.mat-card-header .mat-card-title{font-size:20px}.mat-card-content,.mat-card-subtitle{font-size:14px}.mat-checkbox{font-family:Roboto,Helvetica Neue,sans-serif}.mat-checkbox-layout .mat-checkbox-label{line-height:24px}.mat-chip{font-size:14px;font-weight:500}.mat-chip .mat-chip-remove.mat-icon,.mat-chip .mat-chip-trailing-icon.mat-icon{font-size:18px}.mat-table{font-family:Roboto,Helvetica Neue,sans-serif}.mat-header-cell{font-size:12px;font-weight:500}.mat-cell,.mat-footer-cell{font-size:14px}.mat-calendar{font-family:Roboto,Helvetica Neue,sans-serif}.mat-calendar-body{font-size:13px}.mat-calendar-body-label,.mat-calendar-period-button{font-size:14px;font-weight:500}.mat-calendar-table-header th{font-size:11px;font-weight:400}.mat-dialog-title{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-expansion-panel-header{font-family:Roboto,Helvetica Neue,sans-serif;font-size:15px;font-weight:400}.mat-expansion-panel-content{font:400 14px/20px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-form-field{font-family:Roboto,Helvetica Neue,sans-serif;font-size:inherit;font-weight:400;letter-spacing:normal;line-height:1.125}.mat-form-field-wrapper{padding-bottom:1.34375em}.mat-form-field-prefix .mat-icon,.mat-form-field-suffix .mat-icon{font-size:150%;line-height:1.125}.mat-form-field-prefix .mat-icon-button,.mat-form-field-suffix .mat-icon-button{height:1.5em;width:1.5em}.mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field-suffix .mat-icon-button .mat-icon{height:1.125em;line-height:1.125}.mat-form-field-infix{border-top:.84375em solid transparent;padding:.5em 0}.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34375em) scale(.75);width:133.3333333333%}.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.34374em) scale(.75);width:133.3333433333%}.mat-form-field-label-wrapper{padding-top:.84375em;top:-.84375em}.mat-form-field-label{top:1.34375em}.mat-form-field-underline{bottom:1.34375em}.mat-form-field-subscript-wrapper{font-size:75%;margin-top:.6666666667em;top:calc(100% - 1.79167em)}.mat-form-field-appearance-legacy .mat-form-field-wrapper{padding-bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-infix{padding:.4375em 0}.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{-ms-transform:translateY(-1.28125em) scale(.75);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.001px);width:133.3333333333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{-ms-transform:translateY(-1.28124em) scale(.75);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00101px);width:133.3333433333%}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{-ms-transform:translateY(-1.28123em) scale(.75);transform:translateY(-1.28125em) scale(.75) perspective(100px) translateZ(.00102px);width:133.3333533333%}.mat-form-field-appearance-legacy .mat-form-field-label{top:1.28125em}.mat-form-field-appearance-legacy .mat-form-field-underline{bottom:1.25em}.mat-form-field-appearance-legacy .mat-form-field-subscript-wrapper{margin-top:.5416666667em;top:calc(100% - 1.66667em)}@media print{.mat-form-field-appearance-legacy.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28122em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-form-field-autofill-control:-webkit-autofill+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.28121em) scale(.75)}.mat-form-field-appearance-legacy.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.2812em) scale(.75)}}.mat-form-field-appearance-fill .mat-form-field-infix{padding:.25em 0 .75em}.mat-form-field-appearance-fill .mat-form-field-label{margin-top:-.5em;top:1.09375em}.mat-form-field-appearance-fill.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-fill.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-.59374em) scale(.75);width:133.3333433333%}.mat-form-field-appearance-outline .mat-form-field-infix{padding:1em 0}.mat-form-field-appearance-outline .mat-form-field-label{margin-top:-.25em;top:1.84375em}.mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label,.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server:focus+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59375em) scale(.75);width:133.3333333333%}.mat-form-field-appearance-outline.mat-form-field-can-float .mat-input-server[label]:not(:label-shown)+.mat-form-field-label-wrapper .mat-form-field-label{transform:translateY(-1.59374em) scale(.75);width:133.3333433333%}.mat-grid-tile-footer,.mat-grid-tile-header{font-size:14px}.mat-grid-tile-footer .mat-line,.mat-grid-tile-header .mat-line{box-sizing:border-box;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-grid-tile-footer .mat-line:nth-child(n+2),.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:12px}input.mat-input-element{margin-top:-.0625em}.mat-menu-item{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:400}.mat-paginator,.mat-paginator-page-size .mat-select-trigger{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px}.mat-radio-button,.mat-select{font-family:Roboto,Helvetica Neue,sans-serif}.mat-select-trigger{height:1.125em}.mat-slide-toggle-content,.mat-slider-thumb-label-text{font-family:Roboto,Helvetica Neue,sans-serif}.mat-slider-thumb-label-text{font-size:12px;font-weight:500}.mat-stepper-horizontal,.mat-stepper-vertical{font-family:Roboto,Helvetica Neue,sans-serif}.mat-step-label{font-size:14px;font-weight:400}.mat-step-sub-label-error{font-weight:400}.mat-step-label-error{font-size:14px}.mat-step-label-selected{font-size:14px;font-weight:500}.mat-tab-group,.mat-tab-label,.mat-tab-link{font-family:Roboto,Helvetica Neue,sans-serif}.mat-tab-label,.mat-tab-link{font-size:14px;font-weight:500}.mat-toolbar,.mat-toolbar h1,.mat-toolbar h2,.mat-toolbar h3,.mat-toolbar h4,.mat-toolbar h5,.mat-toolbar h6{font:500 20px/32px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;margin:0}.mat-tooltip{font-family:Roboto,Helvetica Neue,sans-serif;font-size:10px;padding-bottom:6px;padding-top:6px}.mat-tooltip-handset{font-size:14px;padding-bottom:8px;padding-top:8px}.mat-list-item,.mat-list-option{font-family:Roboto,Helvetica Neue,sans-serif}.mat-list-base .mat-list-item{font-size:16px}.mat-list-base .mat-list-item .mat-line{box-sizing:border-box;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-list-base .mat-list-item .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-list-option{font-size:16px}.mat-list-base .mat-list-option .mat-line{box-sizing:border-box;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-list-base .mat-list-option .mat-line:nth-child(n+2){font-size:14px}.mat-list-base .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px;font-weight:500}.mat-list-base[dense] .mat-list-item{font-size:12px}.mat-list-base[dense] .mat-list-item .mat-line{box-sizing:border-box;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-list-base[dense] .mat-list-item .mat-line:nth-child(n+2),.mat-list-base[dense] .mat-list-option{font-size:12px}.mat-list-base[dense] .mat-list-option .mat-line{box-sizing:border-box;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-list-base[dense] .mat-list-option .mat-line:nth-child(n+2){font-size:12px}.mat-list-base[dense] .mat-subheader{font-family:Roboto,Helvetica Neue,sans-serif;font-size:12px;font-weight:500}.mat-option{font-family:Roboto,Helvetica Neue,sans-serif;font-size:16px}.mat-optgroup-label{font:500 14px/24px Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.mat-simple-snackbar{font-family:Roboto,Helvetica Neue,sans-serif;font-size:14px}.mat-simple-snackbar-action{font-family:inherit;font-size:inherit;font-weight:500;line-height:1}.mat-tree{font-family:Roboto,Helvetica Neue,sans-serif}.mat-nested-tree-node,.mat-tree-node{font-size:14px;font-weight:400}.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{border-radius:50%;pointer-events:none;position:absolute;transform:scale(0);transition:opacity,transform 0ms cubic-bezier(0,0,.2,1)}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{-moz-appearance:none;-webkit-appearance:none;border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;outline:0;overflow:hidden;padding:0;position:absolute;width:1px}.cdk-global-overlay-wrapper,.cdk-overlay-container{height:100%;left:0;pointer-events:none;top:0;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper,.cdk-overlay-pane{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{box-sizing:border-box;max-height:100%;max-width:100%;pointer-events:auto}.cdk-overlay-backdrop{-webkit-tap-highlight-color:transparent;bottom:0;left:0;opacity:0;pointer-events:auto;position:absolute;right:0;top:0;transition:opacity .4s cubic-bezier(.25,.8,.25,1);z-index:1000}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}@media screen and (-ms-high-contrast:active){.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop,.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0}.cdk-overlay-connected-position-bounding-box{display:flex;flex-direction:column;min-height:1px;min-width:1px;position:absolute;z-index:1000}.cdk-global-scrollblock{overflow-y:scroll;position:fixed;width:100%}@-webkit-keyframes cdk-text-field-autofill-start{\n /*!*/}@keyframes cdk-text-field-autofill-start{\n /*!*/}@-webkit-keyframes cdk-text-field-autofill-end{\n /*!*/}@keyframes cdk-text-field-autofill-end{\n /*!*/}.cdk-text-field-autofill-monitored:-webkit-autofill{-webkit-animation:cdk-text-field-autofill-start 0s 1ms;animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){-webkit-animation:cdk-text-field-autofill-end 0s 1ms;animation:cdk-text-field-autofill-end 0s 1ms}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{box-sizing:content-box!important;height:auto!important;overflow:hidden!important;padding:2px 0!important}textarea.cdk-textarea-autosize-measuring-firefox{box-sizing:content-box!important;height:0!important;padding:2px 0!important}.mat-focus-indicator,.mat-mdc-focus-indicator{position:relative}.sof-super-header{align-items:center;display:flex;height:34px;justify-content:center}@media only screen and (max-width:599px){.sof-super-header{justify-content:center;padding:0}}.sof-ar-header{align-items:center;display:flex;justify-content:space-between;position:relative;z-index:2}.sof-ar-header.sof-ar-header-shadow{box-shadow:0 1px 4px rgba(0,0,0,.5)}.sof-ar-header-logo-text{display:inline-block;font-size:20px}::ng-deep .sof-ar-header-icon,::ng-deep .sof-ar-header-menu-icon{font-size:24px}::ng-deep .sof-ar-header-menu-icon{padding-right:10px}::ng-deep .sof-ar-mat-menu{border-radius:2px!important}::ng-deep .sof-ar-mat-menu .mat-menu-content{min-width:150px;padding-bottom:0!important;padding-top:0!important}::ng-deep .sof-ar-header-menu-list.sof-ar-header-menu-border{border-bottom:1px solid rgba(0,0,0,.25)!important}::ng-deep .sof-ar-header-menu-list{align-items:center;display:flex!important}::ng-deep .sof-ar-header-button-text{font-size:14px;font-weight:600;padding-left:10px;padding-right:10px}.sof-ar-header-logo{height:32px;max-width:100%}@media only screen and (max-width:599px){.sof-ar-header-logo{height:24px}}.sof-ar-header--left{align-items:center;display:flex}.sof-ar-header--left.sof-ar-toggle-navigation{margin-left:50px}.sof-ar-header--right{text-align:right}.sof-ar-header--center{text-align:center}.sof-ar-header--center,.sof-ar-header--left,.sof-ar-header--right{flex:1}.sign-in-button{background-color:var(--primary-color-50-parts);color:var(--primary-color-500-parts)!important;font-size:16px!important;font-weight:500!important}.faded-button-50,.faded-button-100{background-color:var(--primary-color-50-parts)!important;border-color:var(--primary-color-50-parts)!important}.absent-account-image{background:var(--primary-color-500-parts)!important;border-radius:6px!important;border-right:2px solid var(--primary-color-500-parts)!important;color:#fff;font-size:16px!important;font-weight:500!important;height:41px!important;margin-left:-1px!important;margin-top:-1px!important}.sign-out-icon{font-size:20px!important}.sign-out-icon,.signed-in-name{color:var(--primary-color-500-parts)!important}.signed-in-name{font-size:16px!important;font-weight:500!important}.left-radius-10{border-bottom-left-radius:11px!important;border-top-left-radius:11px!important}.language-button{color:var(--primary-color-500-parts)!important;font-size:16px!important}.language-globe{padding-right:8px}.dark-theme-icon,.language-globe,.selected-language-icon{font-size:20px!important}.selected-language-icon{color:var(--primary-color-500-parts)!important;padding-right:10px!important}.hidden{display:none}.mobile-border{border:0;border-radius:11px!important;padding:0}"]
3605
3604
  },] }
3606
3605
  ];
@@ -5419,9 +5418,8 @@
5419
5418
  * @param skipIssuerCheck Skip issuer check flag.
5420
5419
  * @param logInText Log In Text.
5421
5420
  * @param logOutText Log Out Text.
5422
- * @param authBtnAriaText Auth Button Aria Text.
5423
5421
  */
5424
- function HeaderAuthSettings(clientId, redirectUri, issuer, scope, skipIssuerCheck, logInText, logOutText, authBtnAriaText, timeoutFactor, returnRoute, postLogOutUrl, loginUrl, authSetOnStartup) {
5422
+ function HeaderAuthSettings(clientId, redirectUri, issuer, scope, skipIssuerCheck, logInText, logOutText, timeoutFactor, returnRoute, postLogOutUrl, loginUrl, authSetOnStartup) {
5425
5423
  if (clientId === void 0) { clientId = ''; }
5426
5424
  if (redirectUri === void 0) { redirectUri = ''; }
5427
5425
  if (issuer === void 0) { issuer = ''; }
@@ -5429,7 +5427,6 @@
5429
5427
  if (skipIssuerCheck === void 0) { skipIssuerCheck = true; }
5430
5428
  if (logInText === void 0) { logInText = 'SIGN IN'; }
5431
5429
  if (logOutText === void 0) { logOutText = 'SIGN OUT'; }
5432
- if (authBtnAriaText === void 0) { authBtnAriaText = ''; }
5433
5430
  if (timeoutFactor === void 0) { timeoutFactor = 9; }
5434
5431
  if (returnRoute === void 0) { returnRoute = ''; }
5435
5432
  if (postLogOutUrl === void 0) { postLogOutUrl = ''; }
@@ -5442,7 +5439,6 @@
5442
5439
  this.skipIssuerCheck = skipIssuerCheck;
5443
5440
  this.logInText = logInText;
5444
5441
  this.logOutText = logOutText;
5445
- this.authBtnAriaText = authBtnAriaText;
5446
5442
  this.timeoutFactor = timeoutFactor;
5447
5443
  this.returnRoute = returnRoute;
5448
5444
  this.postLogOutUrl = postLogOutUrl;
@@ -6485,6 +6481,152 @@
6485
6481
 
6486
6482
  /** Public API surface for the forms */
6487
6483
 
6484
+ /** The component print service */
6485
+ var ComponentSavePrintService = /** @class */ (function () {
6486
+ /** Constructs the service */
6487
+ function ComponentSavePrintService() {
6488
+ /** The component to print behavior subject */
6489
+ this.componentSavePrintBs = new rxjs.BehaviorSubject(undefined);
6490
+ this.savePrintComponent$ = this.componentSavePrintBs.asObservable()
6491
+ .pipe(operators.filter(function (c) { return !!c; }));
6492
+ }
6493
+ /**
6494
+ * Save/Print the provided component
6495
+ * @param component The component to save/print
6496
+ */
6497
+ ComponentSavePrintService.prototype.savePrintComponent = function (component) {
6498
+ this.componentSavePrintBs.next(component);
6499
+ };
6500
+ return ComponentSavePrintService;
6501
+ }());
6502
+ ComponentSavePrintService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ComponentSavePrintService_Factory() { return new ComponentSavePrintService(); }, token: ComponentSavePrintService, providedIn: "root" });
6503
+ ComponentSavePrintService.decorators = [
6504
+ { type: i0.Injectable, args: [{
6505
+ providedIn: 'root'
6506
+ },] }
6507
+ ];
6508
+ ComponentSavePrintService.ctorParameters = function () { return []; };
6509
+
6510
+ /** The component save and print component */
6511
+ var ComponentSavePrintComponent = /** @class */ (function () {
6512
+ /**
6513
+ * Constructs the component
6514
+ * @param cfr The component factory resolver
6515
+ * @param vcr The view container reference
6516
+ * @param componentSavePrintService The component save print service
6517
+ */
6518
+ function ComponentSavePrintComponent(cfr, vcr, componentSavePrintService) {
6519
+ this.cfr = cfr;
6520
+ this.vcr = vcr;
6521
+ this.componentSavePrintService = componentSavePrintService;
6522
+ /** The component subscription */
6523
+ this.componentSub = new rxjs.Subscription();
6524
+ }
6525
+ /** Life cycle hook for component initialization */
6526
+ ComponentSavePrintComponent.prototype.ngOnInit = function () {
6527
+ var _this = this;
6528
+ this.componentSub.add(this.componentSavePrintService.savePrintComponent$.subscribe(function (c) {
6529
+ _this.print(c);
6530
+ }));
6531
+ };
6532
+ /** Life cycle hook for component destruction */
6533
+ ComponentSavePrintComponent.prototype.ngOnDestroy = function () {
6534
+ this.componentSub.unsubscribe();
6535
+ };
6536
+ /**
6537
+ * Prints the component
6538
+ * @param component The component type to print
6539
+ */
6540
+ ComponentSavePrintComponent.prototype.print = function (component) {
6541
+ var _a;
6542
+ this.attachStyles(this.iframeRef.nativeElement.contentWindow);
6543
+ this.doc = ((_a = this.iframeRef) === null || _a === void 0 ? void 0 : _a.nativeElement.contentDocument) || this.iframeRef.nativeElement.iFrameRef.contentWindow;
6544
+ var compFactory = this.cfr.resolveComponentFactory(component);
6545
+ this.componentRef = this.vcr.createComponent(compFactory);
6546
+ this.componentRef.location.nativeElement.id = 'sofArComponentSavePrintContainer';
6547
+ this.doc.body.appendChild(this.componentRef.location.nativeElement);
6548
+ var iframe = this.iframeRef.nativeElement;
6549
+ iframe.contentWindow.onafterprint = function () {
6550
+ iframe.contentDocument.body.innerHTML = '';
6551
+ };
6552
+ this.waitForImageToLoad(iframe, function () { iframe.contentWindow.print(); });
6553
+ };
6554
+ /**
6555
+ * Helper function to execute print function on hold until images finish loading
6556
+ * @param iframe The iframe to load images on
6557
+ * @param done The function to wait execution
6558
+ */
6559
+ ComponentSavePrintComponent.prototype.waitForImageToLoad = function (iframe, done) {
6560
+ var interval = setInterval(function () {
6561
+ var allImages = iframe.contentDocument.body.querySelectorAll('img');
6562
+ var loaded = Array.from({ length: allImages.length }).fill(false);
6563
+ allImages.forEach(function (img, idx) {
6564
+ loaded[idx] = img.complete;
6565
+ });
6566
+ if (loaded.every(function (c) { return !!c; })) {
6567
+ clearInterval(interval);
6568
+ done();
6569
+ }
6570
+ }, 500);
6571
+ };
6572
+ /**
6573
+ * Helper function to append all the styles to targe window
6574
+ * @param targetWindow The target window
6575
+ */
6576
+ ComponentSavePrintComponent.prototype.attachStyles = function (targetWindow) {
6577
+ // Copy styles from parent window
6578
+ document.querySelectorAll('style')
6579
+ .forEach(function (htmlElement) {
6580
+ targetWindow.document.head.appendChild(htmlElement.cloneNode(true));
6581
+ });
6582
+ // Copy stylesheet link from parent window
6583
+ document.querySelectorAll('link')
6584
+ .forEach(function (htmlElement) {
6585
+ targetWindow.document.head.appendChild(htmlElement.cloneNode(true));
6586
+ });
6587
+ };
6588
+ return ComponentSavePrintComponent;
6589
+ }());
6590
+ ComponentSavePrintComponent.decorators = [
6591
+ { type: i0.Component, args: [{
6592
+ selector: 'sof-ar-component-save-print',
6593
+ template: "<div class=\"save-print-container\">\r\n <iframe #iframe class=\"save-print\">\r\n </iframe>\r\n</div>\r\n",
6594
+ styles: ["iframe.save-print{height:1px;opacity:0;width:1000px}.save-print-container{height:1px;overflow-x:hidden;overflow-y:hidden;width:100%}"]
6595
+ },] }
6596
+ ];
6597
+ ComponentSavePrintComponent.ctorParameters = function () { return [
6598
+ { type: i0.ComponentFactoryResolver },
6599
+ { type: i0.ViewContainerRef },
6600
+ { type: ComponentSavePrintService }
6601
+ ]; };
6602
+ ComponentSavePrintComponent.propDecorators = {
6603
+ iframeRef: [{ type: i0.ViewChild, args: ['iframe', { static: false },] }]
6604
+ };
6605
+
6606
+ /** The component save print module */
6607
+ var SofArComponentSavePrintModule = /** @class */ (function () {
6608
+ function SofArComponentSavePrintModule() {
6609
+ }
6610
+ return SofArComponentSavePrintModule;
6611
+ }());
6612
+ SofArComponentSavePrintModule.decorators = [
6613
+ { type: i0.NgModule, args: [{
6614
+ declarations: [ComponentSavePrintComponent],
6615
+ imports: [
6616
+ common.CommonModule
6617
+ ],
6618
+ providers: [
6619
+ ComponentSavePrintService
6620
+ ],
6621
+ exports: [
6622
+ ComponentSavePrintComponent
6623
+ ],
6624
+ entryComponents: [
6625
+ ComponentSavePrintComponent
6626
+ ]
6627
+ },] }
6628
+ ];
6629
+
6488
6630
  /** Public API Surface of armature */
6489
6631
 
6490
6632
  /**
@@ -6516,6 +6658,8 @@
6516
6658
  exports.BaseComponentModule = BaseComponentModule;
6517
6659
  exports.BaseConfigService = BaseConfigService;
6518
6660
  exports.CacheExpirationType = CacheExpirationType;
6661
+ exports.ComponentSavePrintComponent = ComponentSavePrintComponent;
6662
+ exports.ComponentSavePrintService = ComponentSavePrintService;
6519
6663
  exports.Configuration = Configuration$1;
6520
6664
  exports.CssOverride = CssOverride;
6521
6665
  exports.CssOverrideDirective = CssOverrideDirective;
@@ -6572,6 +6716,7 @@
6572
6716
  exports.SiteMapComponent = SiteMapComponent;
6573
6717
  exports.SofAddressComponent = SofAddressComponent;
6574
6718
  exports.SofAlertComponent = SofAlertComponent;
6719
+ exports.SofArComponentSavePrintModule = SofArComponentSavePrintModule;
6575
6720
  exports.SofBannerComponent = SofBannerComponent;
6576
6721
  exports.SofBlankPipe = SofBlankPipe;
6577
6722
  exports.SofDatePipe = SofDatePipe;