@softheon/armature 10.24.0 → 10.26.1
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 +192 -68
- package/assets/styles/arm-theme.scss +90 -0
- package/bundles/softheon-armature.umd.js +96 -23
- 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/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 +13 -7
- 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 +3 -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 +1 -1
- 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 +8 -4
- package/esm2015/lib/header/components/mobile-header-menu/mobile-header-menu.component.js +37 -0
- package/esm2015/lib/header/header-api.js +2 -1
- package/esm2015/lib/header/header.module.js +8 -4
- package/esm2015/lib/header/models/header-auth.settings.js +1 -1
- 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 +10 -7
- 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/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 +20 -2
- package/esm2015/lib/theming/theme-api.js +1 -1
- package/esm2015/lib/theming/theme.module.js +1 -1
- package/esm2015/public-api.js +1 -1
- package/esm2015/softheon-armature.js +1 -1
- package/fesm2015/softheon-armature.js +92 -21
- package/fesm2015/softheon-armature.js.map +1 -1
- package/lib/core/models/user-entity-service-config.d.ts +2 -0
- package/lib/header/components/mobile-header-menu/mobile-header-menu.component.d.ts +23 -0
- package/lib/header/header-api.d.ts +1 -0
- package/lib/header/models/header-theme.settings.d.ts +4 -0
- package/lib/header/models/header.settings.d.ts +2 -0
- package/lib/navigation/models/nav.settings.d.ts +5 -1
- package/lib/theming/services/theme.service.d.ts +6 -0
- package/package.json +1 -1
- package/softheon-armature.metadata.json +1 -1
package/README.md
CHANGED
|
@@ -2,8 +2,12 @@ This document is also available on [Softheon Wiki](https://wiki.softheon.com/Wik
|
|
|
2
2
|
|
|
3
3
|
# Getting started
|
|
4
4
|
|
|
5
|
+
## Step 1 - Create an empty project with the correct dependencies
|
|
6
|
+
|
|
5
7
|
To create a project targeting angular 10, in the directory you wish to create your project in, run `npm i @angular/cli@10`, once the command completes, run `ng new your-project-name`. This will create an angular project with the latest stable version of angular 10
|
|
6
8
|
|
|
9
|
+
It is preferred to select routing as `yes` and style sheet to `SCSS`
|
|
10
|
+
|
|
7
11
|
Then install the peer dependencies required by the Armature, they can be found below for easy reference
|
|
8
12
|
|
|
9
13
|
* "@angular/animations": "~10.2.4",
|
|
@@ -23,28 +27,135 @@ Then install the peer dependencies required by the Armature, they can be found b
|
|
|
23
27
|
* "angular-oauth2-oidc-jwks": "^9.0.0",
|
|
24
28
|
* "rxjs": "~6.6.3"
|
|
25
29
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
After these have been installed, run the following to install armature `npm i @softheon/armature`
|
|
31
|
+
|
|
32
|
+
Include the `HttpClientModule` in the imports of your `app.module.ts`.
|
|
33
|
+
|
|
34
|
+
## Step 2 - Armature Set Up
|
|
35
|
+
|
|
36
|
+
### 2.1 Configurations
|
|
37
|
+
|
|
38
|
+
Create the following directory(ies) `src/app/configs/models`.
|
|
39
|
+
|
|
40
|
+
inside the `src/app/configs/models` directory create a `config.ts` file.
|
|
41
|
+
|
|
42
|
+
Set the contents of the file to the following
|
|
29
43
|
|
|
30
44
|
```javascript
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
45
|
+
import { BaseConfig, HeaderConfig, NavigationConfig, OidcAuthSettings, ThemePaletteModel } from '@softheon/armature';
|
|
46
|
+
|
|
47
|
+
/** The configurations - new properties can be added here to add more application specific configurations */
|
|
48
|
+
export class Config implements BaseConfig {
|
|
49
|
+
/** the odic settings */
|
|
50
|
+
public oAuthSettings: OidcAuthSettings;
|
|
51
|
+
|
|
52
|
+
/** The header configurations */
|
|
53
|
+
public header: HeaderConfig;
|
|
54
|
+
|
|
55
|
+
/** The theme palette */
|
|
56
|
+
public theme: ThemePaletteModel;
|
|
57
|
+
|
|
58
|
+
/** The navigation config */
|
|
59
|
+
public navigation: NavigationConfig;
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
cd into the `src/app/configs` directory and run the following command `ng g service config`
|
|
64
|
+
|
|
65
|
+
In the generated `config.service.ts` extend `ConfigService` class with `BaseConfig<Config>`. The end result should show as below
|
|
66
|
+
|
|
67
|
+
```javascript
|
|
68
|
+
|
|
69
|
+
import { Injectable } from '@angular/core';
|
|
70
|
+
import { BaseConfigService } from '@softheon/armature';
|
|
71
|
+
import { Config } from './models/config';
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* The Config service is used to get the applications configurations
|
|
75
|
+
*/
|
|
76
|
+
@Injectable()
|
|
77
|
+
export class ConfigService extends BaseConfigService<Config> {
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
In the `src/assets` directory create a `baseline` folder and a `configurations` folder.
|
|
83
|
+
|
|
84
|
+
In the `src/assets/baseline` folder create an `appsettings.json` file. This will be where you configure your default configurations for your applications. For now it can be an empty object as seen below
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
In the `src/assets/configurations` folder create an `appsettings.json` file, a `en.json` file and a `theme.json` file. These will be the overrides for your languages, theme and configurations. For now it can be an empty as seen below
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Finally in your `app.module.ts` include the following line in your imports array
|
|
97
|
+
|
|
98
|
+
```javascript
|
|
99
|
+
|
|
100
|
+
ArmatureModule.forRoot(ConfigService)
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Make sure your `ConfigService` is added to the providers array in `app.module.ts`
|
|
105
|
+
|
|
106
|
+
### 2.3 Start-up service
|
|
107
|
+
|
|
108
|
+
cd into the `src/app` directory and run the following command `ng g module core`. This will create a core module for later user.
|
|
109
|
+
|
|
110
|
+
Inside the `src/app/core` directory create a `start-up` folder.
|
|
111
|
+
|
|
112
|
+
cd into `src/app/core/start-up` and run `ng g service start-up`.
|
|
113
|
+
|
|
114
|
+
In the generated `start-up.service.ts` implement the `AbstractStartupService` and create a `load` function that returns `Promise.resolve(true)`. The end result can be found below
|
|
115
|
+
|
|
116
|
+
```javascript
|
|
117
|
+
import { Injectable } from '@angular/core';
|
|
118
|
+
import { Router } from '@angular/router';
|
|
119
|
+
import { AbstractStartupService } from '@softheon/armature';
|
|
120
|
+
|
|
121
|
+
/** The start up service */
|
|
122
|
+
@Injectable({
|
|
123
|
+
providedIn: 'root'
|
|
124
|
+
})
|
|
125
|
+
export class StartupService implements AbstractStartupService {
|
|
126
|
+
constructor(){}
|
|
127
|
+
|
|
128
|
+
public async load(): Promise<any> {
|
|
129
|
+
return Promise.resolve(true);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
The body of the load function is where you would run your own custom start up logic if any is required.
|
|
135
|
+
|
|
136
|
+
In your `app.module.ts` add the following to your array of providers `{ provide: AbstractStartupService, useClass: StartupService }`.
|
|
137
|
+
|
|
138
|
+
**Note** - The `StartUpService` should not need to be included in your providers array in `app.module.ts`.
|
|
139
|
+
|
|
140
|
+
### 2.4 Styles
|
|
141
|
+
|
|
142
|
+
In your `src/style.scss` file, import the following two scss files at the top
|
|
143
|
+
|
|
144
|
+
```scss
|
|
145
|
+
@import "../node_modules/@softheon/armature/assets/styles/arm-theme.scss";
|
|
146
|
+
@import "../node_modules/@softheon/armature/assets/styles/material-overrides.scss";
|
|
36
147
|
```
|
|
37
148
|
|
|
38
|
-
|
|
149
|
+
### 2.5 Setting the app-template selector
|
|
39
150
|
|
|
40
|
-
|
|
151
|
+
In your app.component.html, use the following selector to add a full header, nav and footer page layout template
|
|
41
152
|
|
|
42
153
|
```html
|
|
43
154
|
<sof-ar-app-template>
|
|
44
155
|
</sof-ar-app-template>
|
|
45
156
|
```
|
|
46
157
|
|
|
47
|
-
|
|
158
|
+
**Optional** Add footer content using the following ng-content selector
|
|
48
159
|
|
|
49
160
|
```html
|
|
50
161
|
<sof-ar-app-template>
|
|
@@ -54,7 +165,7 @@ Then install the peer dependencies required by the Armature, they can be found b
|
|
|
54
165
|
</sof-ar-app-template>
|
|
55
166
|
```
|
|
56
167
|
|
|
57
|
-
|
|
168
|
+
**Optional** Add additional content between the header and nav using the following selector
|
|
58
169
|
|
|
59
170
|
```html
|
|
60
171
|
<sof-ar-app-template>
|
|
@@ -64,27 +175,9 @@ Then install the peer dependencies required by the Armature, they can be found b
|
|
|
64
175
|
</sof-ar-app-template>
|
|
65
176
|
```
|
|
66
177
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
8. In your style.scss file, import the following two scss files at the top
|
|
70
|
-
|
|
71
|
-
```scss
|
|
72
|
-
@import "../node_modules/@softheon/armature/assets/styles/arm-theme.scss";
|
|
73
|
-
@import "../node_modules/@softheon/armature/assets/styles/material-overrides.scss";
|
|
74
|
-
```
|
|
178
|
+
### 2.6 NGX Translate
|
|
75
179
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
```javascript
|
|
79
|
-
OAuthModule.forRoot({
|
|
80
|
-
resourceServer: {
|
|
81
|
-
allowedUrls: [''],
|
|
82
|
-
sendAccessToken: true
|
|
83
|
-
}
|
|
84
|
-
}),
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
10. Initialize the translate module by doing the following in app module imports and including the factory towards the top of the file outside of the ngModule decorator and create an `en.json` file under assets/i18n:
|
|
180
|
+
Initialize the translate module by doing the following in `app.module.ts` imports and including the factory towards the top of the file outside of the ngModule decorator and make sure an `src/assets/i18n/en.json` file exists:
|
|
88
181
|
|
|
89
182
|
```javascript
|
|
90
183
|
|
|
@@ -108,11 +201,20 @@ export function createTranslateLoader(http: HttpClient): TranslateHttpLoader {
|
|
|
108
201
|
|
|
109
202
|
```
|
|
110
203
|
|
|
111
|
-
|
|
204
|
+
### 2.7 Application log in
|
|
112
205
|
|
|
113
|
-
|
|
206
|
+
In your `app.module.ts` imports, set up the oauth module by doing the following
|
|
114
207
|
|
|
115
|
-
|
|
208
|
+
```javascript
|
|
209
|
+
OAuthModule.forRoot({
|
|
210
|
+
resourceServer: {
|
|
211
|
+
allowedUrls: [],
|
|
212
|
+
sendAccessToken: true
|
|
213
|
+
}
|
|
214
|
+
}),
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Then add the following object to the root level of your `src/assets/baseline/appsettings.json` file
|
|
116
218
|
|
|
117
219
|
```json
|
|
118
220
|
"oAuthSettings": {
|
|
@@ -127,11 +229,17 @@ In your baseline `appsettings.json` use following property to configure oauth2 l
|
|
|
127
229
|
}
|
|
128
230
|
```
|
|
129
231
|
|
|
130
|
-
|
|
232
|
+
if you wish to use implicit flow add the following entry to the object above `"responseType": "id_token token"`
|
|
233
|
+
|
|
234
|
+
**Note** -- The `logInText` and `logOutText` support translate keys or plain text
|
|
131
235
|
|
|
132
|
-
If your application does not offer sign in, leave the values empty and set the `header.settings.displayAuthInfo` to false in your baseline appsettings file.
|
|
236
|
+
**Note** -- If your application does not offer sign in, leave the values empty and set the `header.settings.displayAuthInfo` to false in your baseline appsettings file.
|
|
133
237
|
|
|
134
|
-
If your application requires sign in immediately, set `requireLoginOnStartup` to `true`
|
|
238
|
+
**Note** -- If your application requires sign in immediately, set `requireLoginOnStartup` to `true`
|
|
239
|
+
|
|
240
|
+
### 2.8 Turn off User Entity Service
|
|
241
|
+
|
|
242
|
+
In your `app.module.ts` include the following in your providers array `{ provide: USER_ENTITY_SERVICE_CONFIG, useValue: { getUserOnInit: false }},`. This will disable the user entity look up, and can be turned on if needed for user information outside of your OIDC provider.
|
|
135
243
|
|
|
136
244
|
### Theming
|
|
137
245
|
|
|
@@ -291,6 +399,12 @@ export class MyClass {
|
|
|
291
399
|
}
|
|
292
400
|
```
|
|
293
401
|
|
|
402
|
+
## Colors with opacity
|
|
403
|
+
|
|
404
|
+
The theme palettes all offer a rgb value through css variables, the following naming convention is used `--{{palette}}-color-{{partsNumber}}-parts-rgb`. So in order to get an opacity of .2 on the primary color, 500 parts the following css can be used
|
|
405
|
+
|
|
406
|
+
`rgba(var(--primary-color-500-parts-rgb), .2)`
|
|
407
|
+
|
|
294
408
|
# Armature Navigation
|
|
295
409
|
|
|
296
410
|
`<sof-ar-navigation></sof-ar-navigation>` is a mobile-responsive navigation component. It structures the application view content to the right and the navigation to the left.
|
|
@@ -313,10 +427,12 @@ export class MyClass {
|
|
|
313
427
|
2. `route` - the sub-node route
|
|
314
428
|
5. Configure Armature component settings in the TS
|
|
315
429
|
1. `[settings]` - these are the required settings to configure your navigation
|
|
316
|
-
1. `fontAwesomeMenuIcon`
|
|
317
|
-
2. `
|
|
318
|
-
3. `
|
|
319
|
-
4. `
|
|
430
|
+
1. `fontAwesomeMenuIcon` the Header toggle navigation icon when navigation is open
|
|
431
|
+
2. `fontAwesomeMenuIconClosed` the Header toggle navigation icon when navigation is closed
|
|
432
|
+
3. `mainMenuText` the main menu text that appears in the mobile SubNav
|
|
433
|
+
4. `headerHeight` the header height
|
|
434
|
+
5. `menuButtonSRText` the menu button screen reader text
|
|
435
|
+
6. `allowNavToggle` whether to allow navigation toggle
|
|
320
436
|
2. `[advancedSettings]`- these settings are optional, and only needed for advanced height/offset customizations. These will override `headerHeight` in `[settings]`.
|
|
321
437
|
1. `topGapDesktop` & `topGapMobile`- the navigation top gap
|
|
322
438
|
2. `marginTopDesktop/marginTopMobile`- the navigation margin top
|
|
@@ -327,7 +443,7 @@ export class MyClass {
|
|
|
327
443
|
4. `bgGradientColor2` the Nav background gradient color 2
|
|
328
444
|
5. `borderRightColor` the Nav border-right color
|
|
329
445
|
6. `listBorderColor` the Nav border color between each list item
|
|
330
|
-
7. `highlightGradient1` the Nav highlight gradient color 1
|
|
446
|
+
7. `highlightGradient1` the Nav highlight gradient color 1, Only setting this will create a solid navigation highlight.
|
|
331
447
|
8. `highlightGradient2` the Nav highlight gradient color 2
|
|
332
448
|
9. `subHighlightBorderColor` the SubNav highlight border color
|
|
333
449
|
10. `subHighlightBgColor` the SubNav highlight bg color
|
|
@@ -381,28 +497,30 @@ The navigation data consists of an array of `NavNode`s:
|
|
|
381
497
|
|
|
382
498
|
The `[settings]` required input receives a `NavigationSettings` object in order to configure your navigation.
|
|
383
499
|
|
|
384
|
-
1. `fontAwesomeMenuIcon`
|
|
385
|
-
2. `
|
|
386
|
-
3. `
|
|
387
|
-
4. `
|
|
388
|
-
5. `
|
|
389
|
-
6. `
|
|
390
|
-
7. `
|
|
391
|
-
8. `
|
|
392
|
-
9. `
|
|
393
|
-
10. `
|
|
394
|
-
11. `
|
|
395
|
-
12. `
|
|
396
|
-
13. `
|
|
397
|
-
14. `
|
|
398
|
-
15. `
|
|
399
|
-
16. `
|
|
400
|
-
17. `
|
|
401
|
-
18. `
|
|
402
|
-
19. `
|
|
403
|
-
20. `
|
|
404
|
-
21. `
|
|
405
|
-
22. `
|
|
500
|
+
1. `fontAwesomeMenuIcon` the Header toggle navigation icon when navigation is open
|
|
501
|
+
2. `fontAwesomeMenuIconClosed` the Header toggle navigation icon when navigation is closed
|
|
502
|
+
3. `mainMenuText` the main menu text that appears in the mobile SubNav
|
|
503
|
+
4. `headerHeight` the header height number
|
|
504
|
+
5. `menuButtonSRText` the menu button screen reader text
|
|
505
|
+
6. `menuStyle` (optional - 'static' | 'stepper' | 'progress') static by default, changes the menu between static, stepper and progress
|
|
506
|
+
7. `hideNavigation` true if hiding the navigation container, defaulted to false
|
|
507
|
+
8. `displayNumbers`true if the navigaiton sections should be numbered, defaulted to true
|
|
508
|
+
9. `progressSectionCompleteIcon` the Progress menu completed section icon string
|
|
509
|
+
10. `progressSectionFutureIcon` the Progress menu future section icon string
|
|
510
|
+
11. `progressSectionCurrentIcon` the Progress menu current section icon string
|
|
511
|
+
12. `progressMenuCompleteIcon` the Progress menu item complete icon string
|
|
512
|
+
13. `showProgressBar` true if the Progress menu should also display the progress bar, defaulted to true
|
|
513
|
+
14. `sideNavWidthDesktop` the side navigation width for desktop, defaulted to 500
|
|
514
|
+
15. `sideNavWidthMobile` the side navigation width for mobile, defaulted to 500
|
|
515
|
+
16. `progressMenuWidth` the progress menu dropdown width, defaulted to 280
|
|
516
|
+
17. `overrideNavigation` overrides the navigation and enables all routes (to be used for testing) defaulted to false
|
|
517
|
+
18. `maxContentWidthDesktop` the maximum width for the desktop content, defaulted to 100%
|
|
518
|
+
19. `maxContentWidthMobile` the maximum width for the mobile content, defaulted to 100%
|
|
519
|
+
20. `useCustomMobileFooter` true if the navigation is using a custom mobile footer. This hides the language options and signout buttons for mobile nav
|
|
520
|
+
21. `customUserName` the custom user name to be displayed in the mobile side nav
|
|
521
|
+
22. `toggleProgressNavParentIndex` the custom parent node index to be set when menu style is toggled to progress navigation
|
|
522
|
+
23. `toggleProgressNavChildIndex` the custom child node index to be set when menu style is toggled to progress navigation
|
|
523
|
+
24. `allowNavToggle` whether to allow navigation toggle
|
|
406
524
|
|
|
407
525
|
### Theme Settings
|
|
408
526
|
|
|
@@ -443,10 +561,12 @@ The `[themeSettings]` - required input receives a `ThemeSettings` object in orde
|
|
|
443
561
|
|
|
444
562
|
// the navigation settings
|
|
445
563
|
this.exampleSettings = {
|
|
446
|
-
fontAwesomeMenuIcon: '
|
|
564
|
+
fontAwesomeMenuIcon: 'fas fa-angle-double-left',
|
|
565
|
+
fontAwesomeMenuIconClosed: 'fas fa-angle-double-right',
|
|
447
566
|
mainMenuText: 'MAIN MENU',
|
|
448
567
|
headerHeight: 60,
|
|
449
|
-
menuButtonSRText: 'Menu Button'
|
|
568
|
+
menuButtonSRText: 'Menu Button',
|
|
569
|
+
allowNagToggle: true
|
|
450
570
|
};
|
|
451
571
|
|
|
452
572
|
// the navigation
|
|
@@ -662,7 +782,7 @@ i.e.
|
|
|
662
782
|
5. `sof-ar-super-header` this is for the header at the very top of the page
|
|
663
783
|
4. Configure Armature component settings in the TS
|
|
664
784
|
1. `[settings]` - these are the required settings to configure your header
|
|
665
|
-
1. `armatureNavigation` if the header is being paired with the armature navigation. this will auto create the room
|
|
785
|
+
1. `armatureNavigation` if the header is being paired with the armature navigation. this will auto create the room for the navigation icon
|
|
666
786
|
2. `displayLogo` whether or not to display the logo, default false
|
|
667
787
|
3. `logoUrl` the logo url
|
|
668
788
|
4. `logoAltText` the logo alt text
|
|
@@ -673,11 +793,14 @@ i.e.
|
|
|
673
793
|
9. `dropDownAriaText` the drop down menu aria text
|
|
674
794
|
10. `headerDropDownIcon` the header menu drop down icon
|
|
675
795
|
11. `displaySuperHeader` whether or not to show the super header
|
|
796
|
+
12. `createSpaceForNavToggle` whether to create space for the nav toggle button, regardless of screen size
|
|
676
797
|
2. `[themeSettings]` - this will colorize your header.
|
|
677
798
|
1. `headerColor` the header color - uses a neutral background color based on the current theme (light or dark). can be primary, secondary, or warn
|
|
678
799
|
2. `iconColor` using color string icon color
|
|
679
800
|
3. `headerDropShadow` whether or not to add a drop shadow to the header
|
|
680
801
|
4. `superHeaderColor` the super header color
|
|
802
|
+
5. `borderBottomColor` The color of the bottom border for the header
|
|
803
|
+
6. `borderBottomSize` The size of teh bottom border for the header
|
|
681
804
|
|
|
682
805
|
## Header Module Setup
|
|
683
806
|
|
|
@@ -712,6 +835,7 @@ These settings will display the header with a logo.
|
|
|
712
835
|
/** Armature Header - settings */
|
|
713
836
|
public exampleHeaderSettings: HeaderSettings = {
|
|
714
837
|
armatureNavigation: true,
|
|
838
|
+
createSpaceForNavToggle: true,
|
|
715
839
|
displayLogo: true,
|
|
716
840
|
logoUrl: './assets/logos/logo.svg',
|
|
717
841
|
logoAltText: 'the example portal header logo',
|
|
@@ -28,6 +28,21 @@
|
|
|
28
28
|
--primary-color-contrast-A400-parts: rgba(0, 0, 0, 0.87);
|
|
29
29
|
--primary-color-contrast-A700-parts: rgba(0, 0, 0, 0.87);
|
|
30
30
|
|
|
31
|
+
--primary-color-50-parts-rgb: 237, 244, 255;
|
|
32
|
+
--primary-color-100-parts-rgb: 185, 212, 252;
|
|
33
|
+
--primary-color-200-parts-rgb: 138, 183, 251;
|
|
34
|
+
--primary-color-300-parts-rgb: 91, 154, 249;
|
|
35
|
+
--primary-color-400-parts-rgb: 55, 132, 247;
|
|
36
|
+
--primary-color-500-parts-rgb: 20, 110, 246;
|
|
37
|
+
--primary-color-600-parts-rgb: 18, 102, 245;
|
|
38
|
+
--primary-color-700-parts-rgb: 14, 91, 243;
|
|
39
|
+
--primary-color-800-parts-rgb: 11, 81, 242;
|
|
40
|
+
--primary-color-900-parts-rgb: 6, 63, 239;
|
|
41
|
+
--primary-color-A100-parts-rgb: 255, 255, 255;
|
|
42
|
+
--primary-color-A200-parts-rgb: 228, 233, 255;
|
|
43
|
+
--primary-color-A400-parts-rgb: 177, 192, 255;
|
|
44
|
+
--primary-color-A700-parts-rgb: 151, 172, 255;
|
|
45
|
+
|
|
31
46
|
--accent-color-50-parts: #e0f2f1;
|
|
32
47
|
--accent-color-100-parts: #b2dfdb;
|
|
33
48
|
--accent-color-200-parts: #80cbc4;
|
|
@@ -57,6 +72,21 @@
|
|
|
57
72
|
--accent-color-contrast-A400-parts: #000000;
|
|
58
73
|
--accent-color-contrast-A700-parts: #000000;
|
|
59
74
|
|
|
75
|
+
--accent-color-50-parts-rgb: 224, 242, 241;
|
|
76
|
+
--accent-color-100-parts-rgb: 178, 223, 219;
|
|
77
|
+
--accent-color-200-parts-rgb: 128, 203, 196;
|
|
78
|
+
--accent-color-300-parts-rgb: 77, 182, 172;
|
|
79
|
+
--accent-color-400-parts-rgb: 38, 166, 154;
|
|
80
|
+
--accent-color-500-parts-rgb: 0, 150, 136;
|
|
81
|
+
--accent-color-600-parts-rgb: 0, 137, 123;
|
|
82
|
+
--accent-color-700-parts-rgb: 0, 121, 107;
|
|
83
|
+
--accent-color-800-parts-rgb: 0, 105, 92;
|
|
84
|
+
--accent-color-900-parts-rgb: 0, 77, 64;
|
|
85
|
+
--accent-color-A100-parts-rgb: 167, 255, 235;
|
|
86
|
+
--accent-color-A200-parts-rgb: 100, 255, 218;
|
|
87
|
+
--accent-color-A400-parts-rgb: 29, 233, 182;
|
|
88
|
+
--accent-color-A700-parts-rgb: 0, 191, 165;
|
|
89
|
+
|
|
60
90
|
--warn-color-50-parts: #fdf3e7;
|
|
61
91
|
--warn-color-100-parts: #fbe1c3;
|
|
62
92
|
--warn-color-200-parts: #f9ce9c;
|
|
@@ -86,6 +116,21 @@
|
|
|
86
116
|
--warn-color-contrast-A400-parts: rgba(0, 0, 0, 0.87);
|
|
87
117
|
--warn-color-contrast-A700-parts: rgba(0, 0, 0, 0.87);
|
|
88
118
|
|
|
119
|
+
--warn-color-50-parts-rgb: 253, 243, 231;
|
|
120
|
+
--warn-color-100-parts-rgb: 251, 225, 195;
|
|
121
|
+
--warn-color-200-parts-rgb: 249, 206, 156;
|
|
122
|
+
--warn-color-300-parts-rgb: 246, 186, 116;
|
|
123
|
+
--warn-color-400-parts-rgb: 244, 171, 86;
|
|
124
|
+
--warn-color-500-parts-rgb: 242, 156, 56;
|
|
125
|
+
--warn-color-600-parts-rgb: 240, 148, 50;
|
|
126
|
+
--warn-color-700-parts-rgb: 238, 138, 43;
|
|
127
|
+
--warn-color-800-parts-rgb: 236, 128, 36;
|
|
128
|
+
--warn-color-900-parts-rgb: 232, 110, 23;
|
|
129
|
+
--warn-color-A100-parts-rgb: 255, 255, 255;
|
|
130
|
+
--warn-color-A200-parts-rgb: 255, 240, 230;
|
|
131
|
+
--warn-color-A400-parts-rgb: 255, 208, 179;
|
|
132
|
+
--warn-color-A700-parts-rgb: 255, 193, 154;
|
|
133
|
+
|
|
89
134
|
--info-color-50-parts: #e7f3fb;
|
|
90
135
|
--info-color-100-parts: #c2e0f4;
|
|
91
136
|
--info-color-200-parts: #9acced;
|
|
@@ -115,6 +160,21 @@
|
|
|
115
160
|
--info-color-contrast-A400-parts: rgba(0, 0, 0, 0.87);
|
|
116
161
|
--info-color-contrast-A700-parts: rgba(0, 0, 0, 0.87);
|
|
117
162
|
|
|
163
|
+
--info-color-50-parts-rgb: 231, 243, 251;
|
|
164
|
+
--info-color-100-parts-rgb: 194, 224, 244;
|
|
165
|
+
--info-color-200-parts-rgb: 154, 204, 237;
|
|
166
|
+
--info-color-300-parts-rgb: 113, 183, 230;
|
|
167
|
+
--info-color-400-parts-rgb: 82, 167, 224;
|
|
168
|
+
--info-color-500-parts-rgb: 52, 152, 219;
|
|
169
|
+
--info-color-600-parts-rgb: 47, 144, 215;
|
|
170
|
+
--info-color-700-parts-rgb: 39, 133, 210;
|
|
171
|
+
--info-color-800-parts-rgb: 33, 123, 205;
|
|
172
|
+
--info-color-900-parts-rgb: 21, 106, 196;
|
|
173
|
+
--info-color-A100-parts-rgb: 245, 249, 255;
|
|
174
|
+
--info-color-A200-parts-rgb: 194, 221, 255;
|
|
175
|
+
--info-color-A400-parts-rgb: 143, 193, 255;
|
|
176
|
+
--info-color-A700-parts-rgb: 117, 179, 255;
|
|
177
|
+
|
|
118
178
|
--success-color-50-parts: #edf5eb;
|
|
119
179
|
--success-color-100-parts: #d1e6ce;
|
|
120
180
|
--success-color-200-parts: #b3d6ae;
|
|
@@ -144,6 +204,21 @@
|
|
|
144
204
|
--success-color-contrast-A400-parts: rgba(0, 0, 0, 0.87);
|
|
145
205
|
--success-color-contrast-A700-parts: rgba(0, 0, 0, 0.87);
|
|
146
206
|
|
|
207
|
+
--success-color-50-parts-rgb: 237, 245, 235;
|
|
208
|
+
--success-color-100-parts-rgb: 209, 230, 206;
|
|
209
|
+
--success-color-200-parts-rgb: 179, 214, 174;
|
|
210
|
+
--success-color-300-parts-rgb: 149, 197, 141;
|
|
211
|
+
--success-color-400-parts-rgb: 126, 184, 116;
|
|
212
|
+
--success-color-500-parts-rgb: 103, 172, 92;
|
|
213
|
+
--success-color-600-parts-rgb: 95, 165, 84;
|
|
214
|
+
--success-color-700-parts-rgb: 84, 155, 74;
|
|
215
|
+
--success-color-800-parts-rgb: 74, 146, 65;
|
|
216
|
+
--success-color-900-parts-rgb: 57, 130, 48;
|
|
217
|
+
--success-color-A100-parts-rgb: 208, 255, 203;
|
|
218
|
+
--success-color-A200-parts-rgb: 162, 255, 152;
|
|
219
|
+
--success-color-A400-parts-rgb: 116, 255, 101;
|
|
220
|
+
--success-color-A700-parts-rgb: 93, 255, 76;
|
|
221
|
+
|
|
147
222
|
--error-color-50-parts: #fceae8;
|
|
148
223
|
--error-color-100-parts: #f8c9c5;
|
|
149
224
|
--error-color-200-parts: #f3a69e;
|
|
@@ -172,6 +247,21 @@
|
|
|
172
247
|
--error-color-contrast-A200-parts: rgba(0, 0, 0, 0.87);
|
|
173
248
|
--error-color-contrast-A400-parts: rgba(0, 0, 0, 0.87);
|
|
174
249
|
--error-color-contrast-A700-parts: rgba(0, 0, 0, 0.87);
|
|
250
|
+
|
|
251
|
+
--error-color-50-parts-rgb: 252, 234, 232;
|
|
252
|
+
--error-color-100-parts-rgb: 248, 201, 197;
|
|
253
|
+
--error-color-200-parts-rgb: 248, 201, 197;
|
|
254
|
+
--error-color-300-parts-rgb: 238, 130, 119;
|
|
255
|
+
--error-color-400-parts-rgb: 235, 103, 89;
|
|
256
|
+
--error-color-500-parts-rgb: 231, 76, 60;
|
|
257
|
+
--error-color-600-parts-rgb: 228, 69, 54;
|
|
258
|
+
--error-color-700-parts-rgb: 224, 60, 46;
|
|
259
|
+
--error-color-800-parts-rgb: 221, 51, 39;
|
|
260
|
+
--error-color-900-parts-rgb: 215, 36, 26;
|
|
261
|
+
--error-color-A100-parts-rgb: 255, 255, 255;
|
|
262
|
+
--error-color-A200-parts-rgb: 255, 217, 215;
|
|
263
|
+
--error-color-A400-parts-rgb: 255, 168, 164;
|
|
264
|
+
--error-color-A700-parts-rgb: 255, 143, 139;
|
|
175
265
|
}
|
|
176
266
|
|
|
177
267
|
$arm-primary: (
|