@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.
- package/README.md +72 -0
- package/assets/styles/sof-styles.scss +9 -13
- package/bundles/softheon-armature.umd.js +153 -8
- package/bundles/softheon-armature.umd.js.map +1 -1
- package/bundles/softheon-armature.umd.min.js +2 -2
- package/bundles/softheon-armature.umd.min.js.map +1 -1
- package/esm2015/lib/alert-banner/alert-banner-api.js +1 -1
- package/esm2015/lib/alert-banner/alert-banner.module.js +1 -1
- package/esm2015/lib/alert-banner/components/alert-banner/alert-banner.component.js +1 -1
- package/esm2015/lib/alert-banner/models/alert-banner-config.js +1 -1
- package/esm2015/lib/alert-banner/models/alert-banner-context.js +1 -1
- package/esm2015/lib/alert-banner/models/constants.js +1 -1
- package/esm2015/lib/alert-banner/services/alert-banner.service.js +1 -1
- package/esm2015/lib/armature.module.js +1 -1
- package/esm2015/lib/base-components/base-component-api.js +1 -1
- package/esm2015/lib/base-components/base-component.module.js +1 -1
- package/esm2015/lib/base-components/sof-alert/sof-alert.component.js +1 -1
- package/esm2015/lib/base-components/sof-banner/sof-banner.component.js +1 -1
- package/esm2015/lib/base-components/sof-modal/sof-modal.component.js +1 -1
- package/esm2015/lib/base-components/sof-progress-bar/sof-progress-bar.component.js +1 -1
- package/esm2015/lib/component-save-print/components/component-save-print/component-save-print.component.js +97 -0
- package/esm2015/lib/component-save-print/services/component-save-print.service.js +29 -0
- package/esm2015/lib/component-save-print/sof-ar-component-save-print.module.js +25 -0
- package/esm2015/lib/core/client-generated/api/session.service.js +1 -1
- package/esm2015/lib/core/client-generated/configuration.js +1 -1
- package/esm2015/lib/core/client-generated/encoder.js +1 -1
- package/esm2015/lib/core/client-generated/model/applicationUserModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/assertedUserModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/brandingModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/errorModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/folderLink.js +1 -1
- package/esm2015/lib/core/client-generated/model/identityProfile.js +1 -1
- package/esm2015/lib/core/client-generated/model/models.js +1 -1
- package/esm2015/lib/core/client-generated/model/oAuthModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/preferencesRow.js +1 -1
- package/esm2015/lib/core/client-generated/model/rolesRow.js +1 -1
- package/esm2015/lib/core/client-generated/model/sessionGetResponseModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/sessionPostRequestModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/sessionPostResponseModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/sessionPutRequestModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/sessionPutResponseModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/sessionResponseModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/settingsProfile.js +1 -1
- package/esm2015/lib/core/client-generated/model/themePaletteColorsModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/themePaletteModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/trackingModel.js +1 -1
- package/esm2015/lib/core/client-generated/model/validationRecordsRow.js +1 -1
- package/esm2015/lib/core/client-generated/variables.js +1 -1
- package/esm2015/lib/core/components/app-template/app-template.component.js +1 -2
- package/esm2015/lib/core/functions/guid.js +1 -1
- package/esm2015/lib/core/functions/naming-convention.js +1 -1
- package/esm2015/lib/core/initializer/abstract-startup-service.js +1 -1
- package/esm2015/lib/core/initializer/initializer.service.js +1 -1
- package/esm2015/lib/core/interceptors/armature-auth-token-append.interceptor.js +1 -1
- package/esm2015/lib/core/models/base-config.js +1 -1
- package/esm2015/lib/core/models/constants.js +1 -1
- package/esm2015/lib/core/models/data-store-config.js +1 -1
- package/esm2015/lib/core/models/header-config.js +1 -1
- package/esm2015/lib/core/models/http-verbs.js +1 -1
- package/esm2015/lib/core/models/navigation-config.js +1 -1
- package/esm2015/lib/core/models/oidc-auth-settings.js +1 -1
- package/esm2015/lib/core/models/route-path.js +1 -1
- package/esm2015/lib/core/models/session-config.js +1 -1
- package/esm2015/lib/core/models/styles.js +1 -1
- package/esm2015/lib/core/models/typed-session.js +1 -1
- package/esm2015/lib/core/models/user-entity-service-config.js +1 -1
- package/esm2015/lib/core/services/authorization.service.js +1 -1
- package/esm2015/lib/core/services/banner.service.js +1 -1
- package/esm2015/lib/core/services/base-config.service.js +1 -1
- package/esm2015/lib/core/services/custom-auth-config.service.js +1 -1
- package/esm2015/lib/core/services/default-config.service.js +1 -1
- package/esm2015/lib/core/services/session.service.js +1 -1
- package/esm2015/lib/core/services/user-entity.service.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/api/api.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/api/cache.service.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/configuration.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/encoder.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/model/cacheExpirationType.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/model/models.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.js +1 -1
- package/esm2015/lib/distributed-cache/client-generated/variables.js +1 -1
- package/esm2015/lib/distributed-cache/distributed-cache-api.js +1 -1
- package/esm2015/lib/distributed-cache/distributed-cache.module.js +1 -1
- package/esm2015/lib/distributed-cache/models/constants.js +1 -1
- package/esm2015/lib/distributed-cache/models/policy-person.js +1 -1
- package/esm2015/lib/distributed-cache/services/server-cache.service.js +1 -1
- package/esm2015/lib/error/components/error-common/error-common.component.js +1 -1
- package/esm2015/lib/error/error-api.js +1 -1
- package/esm2015/lib/error/error.module.js +1 -1
- package/esm2015/lib/error/models/error-common-config.js +1 -1
- package/esm2015/lib/faq/components/faq/faq.component.js +1 -1
- package/esm2015/lib/faq/faq-api.js +1 -1
- package/esm2015/lib/faq/faq.module.js +1 -1
- package/esm2015/lib/faq/models/faq-config.js +1 -1
- package/esm2015/lib/faq/models/faq.js +1 -1
- package/esm2015/lib/footer/components/footer/footer.component.js +2 -2
- package/esm2015/lib/footer/components/site-map/site-map.component.js +1 -1
- package/esm2015/lib/footer/footer-api.js +1 -1
- package/esm2015/lib/footer/footer.module.js +1 -1
- package/esm2015/lib/footer/models/enum/site-map-direction.js +1 -1
- package/esm2015/lib/footer/models/footer-config.js +1 -1
- package/esm2015/lib/footer/models/site-map-models.js +1 -1
- package/esm2015/lib/forms/components/sof-address/sof-address.component.js +1 -1
- package/esm2015/lib/forms/directives/alphanumeric/alphanumeric.directive.js +1 -1
- package/esm2015/lib/forms/directives/letters-only/letters-only.directive.js +1 -1
- package/esm2015/lib/forms/directives/numbers-only/numbers-only.directive.js +1 -1
- package/esm2015/lib/forms/forms-api.js +1 -1
- package/esm2015/lib/forms/forms.module.js +1 -1
- package/esm2015/lib/forms/models/address.js +1 -1
- package/esm2015/lib/forms/models/constants.js +1 -1
- package/esm2015/lib/forms/models/county.js +1 -1
- package/esm2015/lib/forms/models/enums/states.js +1 -1
- package/esm2015/lib/forms/pipes/phone-format.pipe.js +1 -1
- package/esm2015/lib/forms/services/alert.service.js +1 -1
- package/esm2015/lib/header/components/header/header.component.js +3 -3
- package/esm2015/lib/header/components/mobile-header-menu/mobile-header-menu.component.js +1 -1
- package/esm2015/lib/header/header-api.js +1 -1
- package/esm2015/lib/header/header.module.js +1 -1
- package/esm2015/lib/header/models/header-auth.settings.js +2 -4
- package/esm2015/lib/header/models/header-language.settings.js +1 -1
- package/esm2015/lib/header/models/header-theme.settings.js +1 -1
- package/esm2015/lib/header/models/header.settings.js +1 -1
- package/esm2015/lib/header/models/mobile-header-nav.settings.js +1 -1
- package/esm2015/lib/navigation/components/navigation/navigation.component.js +1 -1
- package/esm2015/lib/navigation/models/nav-theme.settings.js +1 -1
- package/esm2015/lib/navigation/models/nav.settings.js +1 -1
- package/esm2015/lib/navigation/models/navigation.js +1 -1
- package/esm2015/lib/navigation/navigation-api.js +1 -1
- package/esm2015/lib/navigation/navigation.module.js +1 -1
- package/esm2015/lib/oauth/models/constants.js +1 -1
- package/esm2015/lib/oauth/models/generated/accountManagementAssertionModel.js +1 -1
- package/esm2015/lib/oauth/models/generated/accountManagementRefreshRequestModel.js +1 -1
- package/esm2015/lib/oauth/models/generated/accountManagementResponseModel.js +1 -1
- package/esm2015/lib/oauth/models/generated/coverageDetail.js +1 -1
- package/esm2015/lib/oauth/models/generated/finance.js +1 -1
- package/esm2015/lib/oauth/models/generated/iSsoResponseModel.js +1 -1
- package/esm2015/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.js +1 -1
- package/esm2015/lib/oauth/models/generated/person.js +1 -1
- package/esm2015/lib/oauth/models/generated/policy.js +1 -1
- package/esm2015/lib/oauth/models/generated/refreshResponseModel.js +1 -1
- package/esm2015/lib/oauth/models/hybrid-saml-oauth-config.js +1 -1
- package/esm2015/lib/oauth/oauth-api.js +1 -1
- package/esm2015/lib/oauth/oauth.module.js +1 -1
- package/esm2015/lib/oauth/services/hybrid-saml-oauth.service.js +1 -1
- package/esm2015/lib/rbac/directives/rbac-action.directive.js +1 -1
- package/esm2015/lib/rbac/models/access-token-claims.js +1 -1
- package/esm2015/lib/rbac/models/constants.js +1 -1
- package/esm2015/lib/rbac/models/decoded-access-token.js +1 -1
- package/esm2015/lib/rbac/models/rbac-config.js +1 -1
- package/esm2015/lib/rbac/models/role-access.js +1 -1
- package/esm2015/lib/rbac/rbac-api.js +1 -1
- package/esm2015/lib/rbac/rbac.module.js +1 -1
- package/esm2015/lib/rbac/services/ar-role-nav.service.js +1 -1
- package/esm2015/lib/rbac/services/oauth2-role.service.js +1 -1
- package/esm2015/lib/rbac/services/role-nav.service.js +1 -1
- package/esm2015/lib/rum/models/arm-error.js +1 -1
- package/esm2015/lib/rum/models/rum-config.js +1 -1
- package/esm2015/lib/rum/rum-api.js +1 -1
- package/esm2015/lib/rum/rum.module.js +1 -1
- package/esm2015/lib/rum/services/rum.service.js +1 -1
- package/esm2015/lib/rum/services/shared-error.service.js +1 -1
- package/esm2015/lib/rum/services/softheon-error-handler.service.js +1 -1
- package/esm2015/lib/saml/components/redirect-saml/redirect-saml.component.js +1 -1
- package/esm2015/lib/saml/models/i-saml-request.js +1 -1
- package/esm2015/lib/saml/models/i-saml-response.js +1 -1
- package/esm2015/lib/saml/models/redirect-saml-request.js +1 -1
- package/esm2015/lib/saml/models/sso-gateway-model.js +1 -1
- package/esm2015/lib/saml/saml-api.js +1 -1
- package/esm2015/lib/saml/saml.module.js +1 -1
- package/esm2015/lib/saml/services/entry/abstract-saml-entry.service.js +1 -1
- package/esm2015/lib/saml/services/entry/sso-gateway-entry.service.js +1 -1
- package/esm2015/lib/saml/services/send-off/abstract-saml.service.js +1 -1
- package/esm2015/lib/saml/services/send-off/saml.service.js +1 -1
- package/esm2015/lib/sof-pipe/constants/constants.js +1 -1
- package/esm2015/lib/sof-pipe/models/sof-date-pipe-format.js +1 -1
- package/esm2015/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.js +1 -1
- package/esm2015/lib/sof-pipe/pipes/sof-date/sof-date.pipe.js +1 -1
- package/esm2015/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.js +1 -1
- package/esm2015/lib/sof-pipe/sof-pipe.api.js +1 -1
- package/esm2015/lib/sof-pipe/sof-pipe.module.js +1 -1
- package/esm2015/lib/theming/directives/css-override.directive.js +1 -1
- package/esm2015/lib/theming/models/css-override.js +1 -1
- package/esm2015/lib/theming/services/theme.service.js +1 -1
- package/esm2015/lib/theming/theme-api.js +1 -1
- package/esm2015/lib/theming/theme.module.js +1 -1
- package/esm2015/public-api.js +4 -1
- package/esm2015/softheon-armature.js +1 -1
- package/fesm2015/softheon-armature.js +146 -9
- package/fesm2015/softheon-armature.js.map +1 -1
- package/lib/component-save-print/components/component-save-print/component-save-print.component.d.ts +43 -0
- package/lib/component-save-print/services/component-save-print.service.d.ts +15 -0
- package/lib/component-save-print/sof-ar-component-save-print.module.d.ts +3 -0
- package/lib/core/models/oidc-auth-settings.d.ts +0 -1
- package/lib/header/components/header/header.component.d.ts +0 -2
- package/lib/header/models/header-auth.settings.d.ts +1 -3
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
- 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
|
-
|
|
20
|
-
font-family: "Merriweather", serif;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
|
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]=\"
|
|
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,
|
|
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;
|