@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.
Files changed (184) hide show
  1. package/README.md +192 -68
  2. package/assets/styles/arm-theme.scss +90 -0
  3. package/bundles/softheon-armature.umd.js +96 -23
  4. package/bundles/softheon-armature.umd.js.map +1 -1
  5. package/bundles/softheon-armature.umd.min.js +2 -2
  6. package/bundles/softheon-armature.umd.min.js.map +1 -1
  7. package/esm2015/lib/alert-banner/alert-banner-api.js +1 -1
  8. package/esm2015/lib/alert-banner/alert-banner.module.js +1 -1
  9. package/esm2015/lib/alert-banner/components/alert-banner/alert-banner.component.js +1 -1
  10. package/esm2015/lib/alert-banner/models/alert-banner-config.js +1 -1
  11. package/esm2015/lib/alert-banner/models/alert-banner-context.js +1 -1
  12. package/esm2015/lib/alert-banner/models/constants.js +1 -1
  13. package/esm2015/lib/alert-banner/services/alert-banner.service.js +1 -1
  14. package/esm2015/lib/armature.module.js +1 -1
  15. package/esm2015/lib/core/client-generated/api/session.service.js +1 -1
  16. package/esm2015/lib/core/client-generated/configuration.js +1 -1
  17. package/esm2015/lib/core/client-generated/encoder.js +1 -1
  18. package/esm2015/lib/core/client-generated/model/applicationUserModel.js +1 -1
  19. package/esm2015/lib/core/client-generated/model/assertedUserModel.js +1 -1
  20. package/esm2015/lib/core/client-generated/model/brandingModel.js +1 -1
  21. package/esm2015/lib/core/client-generated/model/errorModel.js +1 -1
  22. package/esm2015/lib/core/client-generated/model/folderLink.js +1 -1
  23. package/esm2015/lib/core/client-generated/model/identityProfile.js +1 -1
  24. package/esm2015/lib/core/client-generated/model/models.js +1 -1
  25. package/esm2015/lib/core/client-generated/model/oAuthModel.js +1 -1
  26. package/esm2015/lib/core/client-generated/model/preferencesRow.js +1 -1
  27. package/esm2015/lib/core/client-generated/model/rolesRow.js +1 -1
  28. package/esm2015/lib/core/client-generated/model/sessionGetResponseModel.js +1 -1
  29. package/esm2015/lib/core/client-generated/model/sessionPostRequestModel.js +1 -1
  30. package/esm2015/lib/core/client-generated/model/sessionPostResponseModel.js +1 -1
  31. package/esm2015/lib/core/client-generated/model/sessionPutRequestModel.js +1 -1
  32. package/esm2015/lib/core/client-generated/model/sessionPutResponseModel.js +1 -1
  33. package/esm2015/lib/core/client-generated/model/sessionResponseModel.js +1 -1
  34. package/esm2015/lib/core/client-generated/model/settingsProfile.js +1 -1
  35. package/esm2015/lib/core/client-generated/model/themePaletteColorsModel.js +1 -1
  36. package/esm2015/lib/core/client-generated/model/themePaletteModel.js +1 -1
  37. package/esm2015/lib/core/client-generated/model/trackingModel.js +1 -1
  38. package/esm2015/lib/core/client-generated/model/validationRecordsRow.js +1 -1
  39. package/esm2015/lib/core/client-generated/variables.js +1 -1
  40. package/esm2015/lib/core/components/app-template/app-template.component.js +13 -7
  41. package/esm2015/lib/core/functions/guid.js +1 -1
  42. package/esm2015/lib/core/functions/naming-convention.js +1 -1
  43. package/esm2015/lib/core/initializer/abstract-startup-service.js +1 -1
  44. package/esm2015/lib/core/initializer/initializer.service.js +1 -1
  45. package/esm2015/lib/core/interceptors/armature-auth-token-append.interceptor.js +1 -1
  46. package/esm2015/lib/core/models/base-config.js +1 -1
  47. package/esm2015/lib/core/models/constants.js +1 -1
  48. package/esm2015/lib/core/models/data-store-config.js +1 -1
  49. package/esm2015/lib/core/models/header-config.js +1 -1
  50. package/esm2015/lib/core/models/http-verbs.js +1 -1
  51. package/esm2015/lib/core/models/navigation-config.js +1 -1
  52. package/esm2015/lib/core/models/oidc-auth-settings.js +1 -1
  53. package/esm2015/lib/core/models/route-path.js +1 -1
  54. package/esm2015/lib/core/models/session-config.js +1 -1
  55. package/esm2015/lib/core/models/styles.js +1 -1
  56. package/esm2015/lib/core/models/typed-session.js +1 -1
  57. package/esm2015/lib/core/models/user-entity-service-config.js +1 -1
  58. package/esm2015/lib/core/services/authorization.service.js +1 -1
  59. package/esm2015/lib/core/services/banner.service.js +1 -1
  60. package/esm2015/lib/core/services/base-config.service.js +1 -1
  61. package/esm2015/lib/core/services/custom-auth-config.service.js +1 -1
  62. package/esm2015/lib/core/services/default-config.service.js +1 -1
  63. package/esm2015/lib/core/services/session.service.js +1 -1
  64. package/esm2015/lib/core/services/user-entity.service.js +3 -1
  65. package/esm2015/lib/distributed-cache/client-generated/api/api.js +1 -1
  66. package/esm2015/lib/distributed-cache/client-generated/api/cache.service.js +1 -1
  67. package/esm2015/lib/distributed-cache/client-generated/configuration.js +1 -1
  68. package/esm2015/lib/distributed-cache/client-generated/encoder.js +1 -1
  69. package/esm2015/lib/distributed-cache/client-generated/model/cacheExpirationType.js +1 -1
  70. package/esm2015/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.js +1 -1
  71. package/esm2015/lib/distributed-cache/client-generated/model/models.js +1 -1
  72. package/esm2015/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.js +1 -1
  73. package/esm2015/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.js +1 -1
  74. package/esm2015/lib/distributed-cache/client-generated/variables.js +1 -1
  75. package/esm2015/lib/distributed-cache/distributed-cache-api.js +1 -1
  76. package/esm2015/lib/distributed-cache/distributed-cache.module.js +1 -1
  77. package/esm2015/lib/distributed-cache/models/constants.js +1 -1
  78. package/esm2015/lib/distributed-cache/models/policy-person.js +1 -1
  79. package/esm2015/lib/distributed-cache/services/server-cache.service.js +1 -1
  80. package/esm2015/lib/error/components/error-common/error-common.component.js +1 -1
  81. package/esm2015/lib/error/error-api.js +1 -1
  82. package/esm2015/lib/error/error.module.js +1 -1
  83. package/esm2015/lib/error/models/error-common-config.js +1 -1
  84. package/esm2015/lib/faq/components/faq/faq.component.js +1 -1
  85. package/esm2015/lib/faq/faq-api.js +1 -1
  86. package/esm2015/lib/faq/faq.module.js +1 -1
  87. package/esm2015/lib/faq/models/faq-config.js +1 -1
  88. package/esm2015/lib/faq/models/faq.js +1 -1
  89. package/esm2015/lib/footer/components/footer/footer.component.js +1 -1
  90. package/esm2015/lib/footer/components/site-map/site-map.component.js +1 -1
  91. package/esm2015/lib/footer/footer-api.js +1 -1
  92. package/esm2015/lib/footer/footer.module.js +1 -1
  93. package/esm2015/lib/footer/models/enum/site-map-direction.js +1 -1
  94. package/esm2015/lib/footer/models/footer-config.js +1 -1
  95. package/esm2015/lib/footer/models/site-map-models.js +1 -1
  96. package/esm2015/lib/forms/components/sof-address/sof-address.component.js +1 -1
  97. package/esm2015/lib/forms/directives/alphanumeric/alphanumeric.directive.js +1 -1
  98. package/esm2015/lib/forms/directives/letters-only/letters-only.directive.js +1 -1
  99. package/esm2015/lib/forms/directives/numbers-only/numbers-only.directive.js +1 -1
  100. package/esm2015/lib/forms/forms-api.js +1 -1
  101. package/esm2015/lib/forms/forms.module.js +1 -1
  102. package/esm2015/lib/forms/models/address.js +1 -1
  103. package/esm2015/lib/forms/models/constants.js +1 -1
  104. package/esm2015/lib/forms/models/county.js +1 -1
  105. package/esm2015/lib/forms/models/enums/states.js +1 -1
  106. package/esm2015/lib/forms/pipes/phone-format.pipe.js +1 -1
  107. package/esm2015/lib/forms/services/alert.service.js +1 -1
  108. package/esm2015/lib/header/components/header/header.component.js +8 -4
  109. package/esm2015/lib/header/components/mobile-header-menu/mobile-header-menu.component.js +37 -0
  110. package/esm2015/lib/header/header-api.js +2 -1
  111. package/esm2015/lib/header/header.module.js +8 -4
  112. package/esm2015/lib/header/models/header-auth.settings.js +1 -1
  113. package/esm2015/lib/header/models/header-language.settings.js +1 -1
  114. package/esm2015/lib/header/models/header-theme.settings.js +1 -1
  115. package/esm2015/lib/header/models/header.settings.js +1 -1
  116. package/esm2015/lib/header/models/mobile-header-nav.settings.js +1 -1
  117. package/esm2015/lib/navigation/components/navigation/navigation.component.js +10 -7
  118. package/esm2015/lib/navigation/models/nav-theme.settings.js +1 -1
  119. package/esm2015/lib/navigation/models/nav.settings.js +1 -1
  120. package/esm2015/lib/navigation/models/navigation.js +1 -1
  121. package/esm2015/lib/navigation/navigation-api.js +1 -1
  122. package/esm2015/lib/navigation/navigation.module.js +1 -1
  123. package/esm2015/lib/oauth/models/constants.js +1 -1
  124. package/esm2015/lib/oauth/models/generated/accountManagementAssertionModel.js +1 -1
  125. package/esm2015/lib/oauth/models/generated/accountManagementRefreshRequestModel.js +1 -1
  126. package/esm2015/lib/oauth/models/generated/accountManagementResponseModel.js +1 -1
  127. package/esm2015/lib/oauth/models/generated/coverageDetail.js +1 -1
  128. package/esm2015/lib/oauth/models/generated/finance.js +1 -1
  129. package/esm2015/lib/oauth/models/generated/iSsoResponseModel.js +1 -1
  130. package/esm2015/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.js +1 -1
  131. package/esm2015/lib/oauth/models/generated/person.js +1 -1
  132. package/esm2015/lib/oauth/models/generated/policy.js +1 -1
  133. package/esm2015/lib/oauth/models/generated/refreshResponseModel.js +1 -1
  134. package/esm2015/lib/oauth/models/hybrid-saml-oauth-config.js +1 -1
  135. package/esm2015/lib/oauth/oauth-api.js +1 -1
  136. package/esm2015/lib/oauth/oauth.module.js +1 -1
  137. package/esm2015/lib/oauth/services/hybrid-saml-oauth.service.js +1 -1
  138. package/esm2015/lib/rbac/directives/rbac-action.directive.js +1 -1
  139. package/esm2015/lib/rbac/models/access-token-claims.js +1 -1
  140. package/esm2015/lib/rbac/models/constants.js +1 -1
  141. package/esm2015/lib/rbac/models/decoded-access-token.js +1 -1
  142. package/esm2015/lib/rbac/models/rbac-config.js +1 -1
  143. package/esm2015/lib/rbac/models/role-access.js +1 -1
  144. package/esm2015/lib/rbac/rbac-api.js +1 -1
  145. package/esm2015/lib/rbac/rbac.module.js +1 -1
  146. package/esm2015/lib/rbac/services/ar-role-nav.service.js +1 -1
  147. package/esm2015/lib/rbac/services/oauth2-role.service.js +1 -1
  148. package/esm2015/lib/rbac/services/role-nav.service.js +1 -1
  149. package/esm2015/lib/rum/models/arm-error.js +1 -1
  150. package/esm2015/lib/rum/models/rum-config.js +1 -1
  151. package/esm2015/lib/rum/rum-api.js +1 -1
  152. package/esm2015/lib/rum/rum.module.js +1 -1
  153. package/esm2015/lib/rum/services/rum.service.js +1 -1
  154. package/esm2015/lib/rum/services/shared-error.service.js +1 -1
  155. package/esm2015/lib/rum/services/softheon-error-handler.service.js +1 -1
  156. package/esm2015/lib/saml/components/redirect-saml/redirect-saml.component.js +1 -1
  157. package/esm2015/lib/saml/models/i-saml-request.js +1 -1
  158. package/esm2015/lib/saml/models/i-saml-response.js +1 -1
  159. package/esm2015/lib/saml/models/redirect-saml-request.js +1 -1
  160. package/esm2015/lib/saml/models/sso-gateway-model.js +1 -1
  161. package/esm2015/lib/saml/saml-api.js +1 -1
  162. package/esm2015/lib/saml/saml.module.js +1 -1
  163. package/esm2015/lib/saml/services/entry/abstract-saml-entry.service.js +1 -1
  164. package/esm2015/lib/saml/services/entry/sso-gateway-entry.service.js +1 -1
  165. package/esm2015/lib/saml/services/send-off/abstract-saml.service.js +1 -1
  166. package/esm2015/lib/saml/services/send-off/saml.service.js +1 -1
  167. package/esm2015/lib/theming/directives/css-override.directive.js +1 -1
  168. package/esm2015/lib/theming/models/css-override.js +1 -1
  169. package/esm2015/lib/theming/services/theme.service.js +20 -2
  170. package/esm2015/lib/theming/theme-api.js +1 -1
  171. package/esm2015/lib/theming/theme.module.js +1 -1
  172. package/esm2015/public-api.js +1 -1
  173. package/esm2015/softheon-armature.js +1 -1
  174. package/fesm2015/softheon-armature.js +92 -21
  175. package/fesm2015/softheon-armature.js.map +1 -1
  176. package/lib/core/models/user-entity-service-config.d.ts +2 -0
  177. package/lib/header/components/mobile-header-menu/mobile-header-menu.component.d.ts +23 -0
  178. package/lib/header/header-api.d.ts +1 -0
  179. package/lib/header/models/header-theme.settings.d.ts +4 -0
  180. package/lib/header/models/header.settings.d.ts +2 -0
  181. package/lib/navigation/models/nav.settings.d.ts +5 -1
  182. package/lib/theming/services/theme.service.d.ts +6 -0
  183. package/package.json +1 -1
  184. 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
- 1. Include the `ArmatureModule.forRoot(ConfigurationServiceClassName)` in your `CoreModule` or `AppModule` depending on your project structure. The `ConfigurationServiceClassName` should be replaced with the name of your custom configuration service that extends `BaseConfigService`. If you don't have a custom configuration service, the `DefaultConfigService` will be used.
27
- 2. Add the following directories and files to your assets folder, `/baseline/appsettings.json`, `/configurations/appsettings.json`, `/configurations/en.json`, and `/configurations/theme.json`. These files serve as the configurations for your application and will be loaded at start up.
28
- 3. If you wish to extend the application initializer, first create a service that implements `AbstractStartupService` and implement the load function. Next, in the module from step 1, add the following to your providers. If you do not wish to extend the start up service, the in the `ArmatureModule.forRoot` function provide `true` as the value for the `ignoreCustomAppInitializer` parameter.
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
- providers: [
32
- ...
33
- { provide: AbstractStartupService, useClass: CustomStartUpService },
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
- `CustomStartUpService` should be replaced with the name of your service that implements AbstractStartupService
149
+ ### 2.5 Setting the app-template selector
39
150
 
40
- 4. In your app.component.html, use the following selector to add a full header, nav and footer page layout template
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
- 5. Add footer content using the following ng-content selector
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
- 6. Add additional content between the header and nav using the following selector
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
- 7. Configure the navigation by including a section in your `/baseline/appsettings.json` file called `navigation`. Set the nodes property of this object to the nodes of the navigation you wish to display. An example of how to configure navigation nodes can be found in the navigation section bellow.
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
- 9. In your app module imports, set up the oauth module by doing the following, this is required even if you do not plan on including login:
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
- ## Configuring the functionality
204
+ ### 2.7 Application log in
112
205
 
113
- ### OAuth2 Sign in
206
+ In your `app.module.ts` imports, set up the oauth module by doing the following
114
207
 
115
- In your baseline `appsettings.json` use following property to configure oauth2 login (This uses code flow and cannot be changed as code flow is the most secure and recommended for client side application log in)
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
- Supply actual values in place of the place holder ones. The `logInText` and `logOutText` can be set to string values or to translate keys. Armature will translate the values if a key is found in your `ngx TranslateService`.
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` the Header Menu FontAwesome icon
317
- 2. `mainMenuText` the main menu text that appears in the mobile SubNav
318
- 3. `headerHeight` the header height
319
- 4. `menuButtonSRText` the menu button screen reader text
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` the Header Menu FontAwesome icon string
385
- 2. `mainMenuText` the main menu text that appears in the mobile SubNav
386
- 3. `headerHeight` the header height number
387
- 4. `menuButtonSRText` the menu button screen reader text
388
- 5. `menuStyle` (optional - 'static' | 'stepper' | 'progress') static by default, changes the menu between static, stepper and progress
389
- 6. `hideNavigation` true if hiding the navigation container, defaulted to false
390
- 7. `displayNumbers`true if the navigaiton sections should be numbered, defaulted to true
391
- 8. `progressSectionCompleteIcon` the Progress menu completed section icon string
392
- 9. `progressSectionFutureIcon` the Progress menu future section icon string
393
- 10. `progressSectionCurrentIcon` the Progress menu current section icon string
394
- 11. `progressMenuCompleteIcon` the Progress menu item complete icon string
395
- 12. `showProgressBar` true if the Progress menu should also display the progress bar, defaulted to true
396
- 13. `sideNavWidthDesktop` the side navigation width for desktop, defaulted to 500
397
- 14. `sideNavWidthMobile` the side navigation width for mobile, defaulted to 500
398
- 15. `progressMenuWidth` the progress menu dropdown width, defaulted to 280
399
- 16. `overrideNavigation` overrides the navigation and enables all routes (to be used for testing) defaulted to false
400
- 17. `maxContentWidthDesktop` the maximum width for the desktop content, defaulted to 100%
401
- 18. `maxContentWidthMobile` the maximum width for the mobile content, defaulted to 100%
402
- 19. `useCustomMobileFooter` true if the navigation is using a custom mobile footer. This hides the language options and signout buttons for mobile nav
403
- 20. `customUserName` the custom user name to be displayed in the mobile side nav
404
- 21. `toggleProgressNavParentIndex` the custom parent node index to be set when menu style is toggled to progress navigation
405
- 22. `toggleProgressNavChildIndex` the custom child node index to be set when menu style is toggled to progress navigation
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: 'fal fa-bars',
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 on mobile for the navigation icon
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: (