@rxap/config 18.2.3-dev.0 → 19.0.0-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +1 -1
  3. package/compodoc/changelog.html +32 -0
  4. package/compodoc/dependencies.html +6 -6
  5. package/compodoc/index.html +1 -1
  6. package/compodoc/injectables/ConfigService.html +199 -31
  7. package/compodoc/interfaces/AppsNavigationConfig.html +5 -0
  8. package/compodoc/interfaces/Config.html +50 -0
  9. package/compodoc/interfaces/ConfigLoadOptions.html +36 -0
  10. package/compodoc/interfaces/LogoConfig.html +5 -0
  11. package/compodoc/interfaces/NavigationConfig.html +5 -0
  12. package/compodoc/interfaces/Oauth2Config.html +333 -0
  13. package/compodoc/interfaces/i18nConfig.html +5 -0
  14. package/compodoc/js/menu-wc.js +3 -0
  15. package/compodoc/js/menu-wc_es5.js +2 -2
  16. package/compodoc/js/search/search_index.js +2 -2
  17. package/compodoc/overview.html +1 -1
  18. package/compodoc/properties.html +1 -1
  19. package/docs/assets/navigation.js +1 -1
  20. package/docs/assets/search.js +1 -1
  21. package/docs/classes/ConfigLoaderService.html +2 -2
  22. package/docs/classes/ConfigService.html +6 -6
  23. package/docs/classes/ConfigTestingService.html +2 -2
  24. package/docs/documentation.json +288 -205
  25. package/docs/functions/ProvideConfig.html +1 -1
  26. package/docs/index.html +1 -1
  27. package/docs/interfaces/AppsNavigationConfig.html +2 -2
  28. package/docs/interfaces/Config.html +3 -2
  29. package/docs/interfaces/ConfigLoadOptions.html +3 -3
  30. package/docs/interfaces/LogoConfig.html +2 -2
  31. package/docs/interfaces/NavigationConfig.html +2 -2
  32. package/docs/interfaces/Oauth2Config.html +2 -0
  33. package/docs/interfaces/i18nConfig.html +2 -2
  34. package/docs/modules.html +1 -0
  35. package/docs/types/AnySchema.html +1 -1
  36. package/docs/types/Join.html +1 -1
  37. package/docs/types/LanguagesConfig.html +1 -1
  38. package/docs/types/Leaves.html +1 -1
  39. package/docs/types/NoInferType.html +1 -1
  40. package/docs/types/Paths.html +1 -1
  41. package/docs/variables/RXAP_CONFIG.html +1 -1
  42. package/fesm2022/rxap-config.mjs +9 -9
  43. package/fesm2022/rxap-config.mjs.map +1 -1
  44. package/package.json +11 -14
  45. package/theme.css +72 -1
  46. package/esm2022/index.mjs +0 -10
  47. package/esm2022/lib/config-loader.service.mjs +0 -34
  48. package/esm2022/lib/config-testing-service.mjs +0 -33
  49. package/esm2022/lib/config.mjs +0 -2
  50. package/esm2022/lib/config.service.mjs +0 -294
  51. package/esm2022/lib/provide-config.mjs +0 -8
  52. package/esm2022/lib/tokens.mjs +0 -3
  53. package/esm2022/lib/types.mjs +0 -2
  54. package/esm2022/rxap-config.mjs +0 -5
@@ -398,6 +398,7 @@ import {
398
398
  deepMerge,
399
399
  SetObjectValue,
400
400
  } from '@rxap/utilities';
401
+ import { ReplaySubject } from 'rxjs';
401
402
  import { RXAP_CONFIG } from './tokens';
402
403
  import { NoInferType } from './types';
403
404
 
@@ -419,6 +420,12 @@ export interface ConfigLoadOptions {
419
420
  })
420
421
  export class ConfigService<Config extends Record<string, any> = Record<string, any>> {
421
422
 
423
+ public static onError = new ReplaySubject<unknown>(1);
424
+ public static onRequestError = new ReplaySubject<Response>(1);
425
+
426
+ public static onErrorFnc: Array<(error: any) => void> = [];
427
+ public static onRequestErrorFnc: Array<(response: Response) => void> = [];
428
+
422
429
  public static Config: any = null;
423
430
 
424
431
  /**
@@ -519,6 +526,28 @@ export class ConfigService<Config extends Record<string, any> = Re
519
526
  this.Config = config;
520
527
  }
521
528
 
529
+ private static handleError(error: any) {
530
+ this.onError.next(error);
531
+ for (const fnc of this.onErrorFnc) {
532
+ try {
533
+ fnc(error);
534
+ } catch (e: any) {
535
+ console.error('Error in onErrorFnc', e);
536
+ }
537
+ }
538
+ }
539
+
540
+ private static handleRequestError(response: Response) {
541
+ this.onRequestError.next(response);
542
+ for (const fnc of this.onRequestErrorFnc) {
543
+ try {
544
+ fnc(response);
545
+ } catch (e: any) {
546
+ console.error('Error in onRequestErrorFnc', e);
547
+ }
548
+ }
549
+ }
550
+
522
551
  private static async loadConfig<T = any>(url: string, required?: boolean, schema?: AnySchema): Promise<T | null> {
523
552
 
524
553
  let config: any;
@@ -529,6 +558,7 @@ export class ConfigService<Config extends Record<string, any> = Re
529
558
  } catch (error: any) {
530
559
  const message = `Could not fetch config from '${ url }': ${ error.message }`;
531
560
  if (required) {
561
+ this.handleError(error);
532
562
  this.showError(message);
533
563
  throw new Error(message);
534
564
  } else {
@@ -546,8 +576,12 @@ export class ConfigService<Config extends Record<string, any> = Re
546
576
  case 405:
547
577
  message = `Config service is not started yet. Wait 30s and try again.`;
548
578
  break;
579
+ case 401:
580
+ message = `Unauthorized to fetch config from '${ url }'`;
581
+ break;
549
582
  }
550
583
  if (required) {
584
+ this.handleRequestError(response);
551
585
  this.showError(message);
552
586
  throw new Error(message);
553
587
  } else {
@@ -561,6 +595,7 @@ export class ConfigService<Config extends Record<string, any> = Re
561
595
  } catch (error: any) {
562
596
  const message = `Could not parse config from '${ url }' to a json object: ${ error.message }`;
563
597
  if (required) {
598
+ this.handleError(error);
564
599
  this.showError(message);
565
600
  throw new Error(message);
566
601
  } else {
@@ -575,6 +610,7 @@ export class ConfigService<Config extends Record<string, any> = Re
575
610
  } catch (error: any) {
576
611
  const message = `Config from '${ url }' is not valid: ${ error.message }`;
577
612
  if (required) {
613
+ this.handleError(error);
578
614
  this.showError(message);
579
615
  throw new Error(message);
580
616
  } else {
@@ -328,10 +328,15 @@ export interface i18nConfig {
328
328
  defaultLanguage?: string;
329
329
  }
330
330
 
331
+ export interface Oauth2Config {
332
+ profileUrl?: string;
333
+ }
334
+
331
335
  export interface Config {
332
336
  navigation?: NavigationConfig;
333
337
  logo?: LogoConfig;
334
338
  i18n?: i18nConfig;
339
+ oauth2?: Oauth2Config;
335
340
  }
336
341
  </code></pre>
337
342
  </div>
@@ -463,10 +463,15 @@ export interface i18nConfig {
463
463
  defaultLanguage?: string;
464
464
  }
465
465
 
466
+ export interface Oauth2Config {
467
+ profileUrl?: string;
468
+ }
469
+
466
470
  export interface Config {
467
471
  navigation?: NavigationConfig;
468
472
  logo?: LogoConfig;
469
473
  i18n?: i18nConfig;
474
+ oauth2?: Oauth2Config;
470
475
  }
471
476
  </code></pre>
472
477
  </div>
@@ -0,0 +1,333 @@
1
+ <!doctype html>
2
+ <html class="no-js" lang="">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
6
+ <title>angular-config</title>
7
+ <meta name="description" content="">
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+
10
+ <link rel="icon" type="image/x-icon" href="../images/favicon.ico">
11
+ <link rel="stylesheet" href="../styles/style.css">
12
+ <link rel="stylesheet" href="../styles/dark.css">
13
+ </head>
14
+ <body>
15
+ <script>
16
+ // Blocking script to avoid flickering dark mode
17
+ // Dark mode toggle button
18
+ var useDark = window.matchMedia('(prefers-color-scheme: dark)');
19
+ var darkModeState = useDark.matches;
20
+ var $darkModeToggleSwitchers = document.querySelectorAll('.dark-mode-switch input');
21
+ var $darkModeToggles = document.querySelectorAll('.dark-mode-switch');
22
+ var darkModeStateLocal = localStorage.getItem('compodoc_darkmode-state');
23
+
24
+ function checkToggle(check) {
25
+ for (var i = 0; i < $darkModeToggleSwitchers.length; i++) {
26
+ $darkModeToggleSwitchers[i].checked = check;
27
+ }
28
+ }
29
+
30
+ function toggleDarkMode(state) {
31
+ if (window.localStorage) {
32
+ localStorage.setItem('compodoc_darkmode-state', state);
33
+ }
34
+
35
+ checkToggle(state);
36
+
37
+ const hasClass = document.body.classList.contains('dark');
38
+
39
+ if (state) {
40
+ for (var i = 0; i < $darkModeToggles.length; i++) {
41
+ $darkModeToggles[i].classList.add('dark');
42
+ }
43
+ if (!hasClass) {
44
+ document.body.classList.add('dark');
45
+ }
46
+ } else {
47
+ for (var i = 0; i < $darkModeToggles.length; i++) {
48
+ $darkModeToggles[i].classList.remove('dark');
49
+ }
50
+ if (hasClass) {
51
+ document.body.classList.remove('dark');
52
+ }
53
+ }
54
+ }
55
+
56
+ useDark.addEventListener('change', function (evt) {
57
+ toggleDarkMode(evt.matches);
58
+ });
59
+ if (darkModeStateLocal) {
60
+ darkModeState = darkModeStateLocal === 'true';
61
+ }
62
+ toggleDarkMode(darkModeState);
63
+ </script>
64
+
65
+ <div class="navbar navbar-default navbar-fixed-top d-md-none p-0">
66
+ <div class="d-flex">
67
+ <a href="../" class="navbar-brand">angular-config</a>
68
+ <button type="button" class="btn btn-default btn-menu ion-ios-menu" id="btn-menu"></button>
69
+ </div>
70
+ </div>
71
+
72
+ <div class="xs-menu menu" id="mobile-menu">
73
+ <div id="book-search-input" role="search"><input type="text" placeholder="Type to search"></div> <compodoc-menu></compodoc-menu>
74
+ </div>
75
+
76
+ <div class="container-fluid main">
77
+ <div class="row main">
78
+ <div class="d-none d-md-block menu">
79
+ <compodoc-menu mode="normal"></compodoc-menu>
80
+ </div>
81
+ <!-- START CONTENT -->
82
+ <div class="content interface">
83
+ <div class="content-data">
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+ <ol class="breadcrumb">
98
+ <li class="breadcrumb-item">Interfaces</li>
99
+ <li class="breadcrumb-item"
100
+ >
101
+ Oauth2Config</li>
102
+ </ol>
103
+
104
+ <ul class="nav nav-tabs" role="tablist">
105
+ <li class="nav-item">
106
+ <a href="#info"
107
+ class="nav-link"
108
+ class="nav-link active"
109
+ role="tab" id="info-tab" data-bs-toggle="tab" data-link="info">Info</a>
110
+ </li>
111
+ <li class="nav-item">
112
+ <a href="#source"
113
+ class="nav-link"
114
+
115
+ role="tab" id="source-tab" data-bs-toggle="tab" data-link="source">Source</a>
116
+ </li>
117
+ </ul>
118
+
119
+ <div class="tab-content">
120
+ <div class="tab-pane fade active in" id="info">
121
+ <p class="comment">
122
+ <h3>File</h3>
123
+ </p>
124
+ <p class="comment">
125
+ <code>src/lib/config.ts</code>
126
+ </p>
127
+
128
+
129
+
130
+
131
+ <section data-compodoc="block-index">
132
+ <h3 id="index">Index</h3>
133
+ <table class="table table-sm table-bordered index-table">
134
+ <tbody>
135
+ <tr>
136
+ <td class="col-md-4">
137
+ <h6><b>Properties</b></h6>
138
+ </td>
139
+ </tr>
140
+ <tr>
141
+ <td class="col-md-4">
142
+ <ul class="index-list">
143
+ <li>
144
+ <span class="modifier">Optional</span>
145
+ <a href="#profileUrl"
146
+ >
147
+ profileUrl
148
+ </a>
149
+ </li>
150
+ </ul>
151
+ </td>
152
+ </tr>
153
+ </tbody>
154
+ </table>
155
+ </section>
156
+
157
+
158
+
159
+ <section data-compodoc="block-properties">
160
+ <h3 id="inputs">Properties</h3>
161
+ <table class="table table-sm table-bordered">
162
+ <tbody>
163
+ <tr>
164
+ <td class="col-md-4">
165
+ <a name="profileUrl"></a>
166
+ <span class="name "><b>profileUrl</b>
167
+ <a href="#profileUrl">
168
+ <span class="icon ion-ios-link"></span>
169
+ </a>
170
+ </span>
171
+ </td>
172
+ </tr>
173
+ <tr>
174
+ <td class="col-md-4">
175
+ <code>profileUrl: <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
176
+ </code>
177
+ </td>
178
+ </tr>
179
+
180
+
181
+ <tr>
182
+ <td class="col-md-4">
183
+ <i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
184
+
185
+ </td>
186
+ </tr>
187
+
188
+ <tr>
189
+ <td class="col-md-4">
190
+ <i>Optional</i>
191
+ </td>
192
+ </tr>
193
+
194
+
195
+
196
+
197
+ </tbody>
198
+ </table>
199
+ </section>
200
+ </div>
201
+
202
+
203
+ <div class="tab-pane fade tab-source-code" id="source">
204
+ <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { IconConfig } from &#x27;@rxap/utilities&#x27;;
205
+
206
+ export interface AppsNavigationConfig {
207
+ target?: string;
208
+ image?: string;
209
+ label: string;
210
+ href?: string;
211
+ routerLink?: string[];
212
+ empty?: false;
213
+ hidden?: boolean;
214
+ id?: string;
215
+ permissions?: string[];
216
+ icon?: IconConfig;
217
+ }
218
+
219
+ export interface LogoConfig {
220
+ src?: string;
221
+ width?: number;
222
+ height?: number;
223
+ }
224
+
225
+ export interface NavigationConfig {
226
+ apps?: AppsNavigationConfig[];
227
+ collapsable?: boolean;
228
+ pinned?: boolean;
229
+ mode?: &#x27;side&#x27; | &#x27;over&#x27;;
230
+ opened?: boolean;
231
+ fixedInViewport?: boolean;
232
+ }
233
+
234
+ export type LanguagesConfig &#x3D; Record&lt;string, string&gt;;
235
+
236
+ export interface i18nConfig {
237
+ languages?: LanguagesConfig;
238
+ defaultLanguage?: string;
239
+ }
240
+
241
+ export interface Oauth2Config {
242
+ profileUrl?: string;
243
+ }
244
+
245
+ export interface Config {
246
+ navigation?: NavigationConfig;
247
+ logo?: LogoConfig;
248
+ i18n?: i18nConfig;
249
+ oauth2?: Oauth2Config;
250
+ }
251
+ </code></pre>
252
+ </div>
253
+ </div>
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+ </div><div class="search-results">
263
+ <div class="has-results">
264
+ <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
265
+ <ul class="search-results-list"></ul>
266
+ </div>
267
+ <div class="no-results">
268
+ <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
269
+ </div>
270
+ </div>
271
+ </div>
272
+ <!-- END CONTENT -->
273
+ </div>
274
+ </div>
275
+
276
+ <label class="dark-mode-switch">
277
+ <input type="checkbox">
278
+ <span class="slider">
279
+ <svg class="slider-icon" viewBox="0 0 24 24" fill="none" height="20" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" width="20" xmlns="http://www.w3.org/2000/svg">
280
+ <path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
281
+ </svg>
282
+ </span>
283
+ </label>
284
+
285
+ <script>
286
+ var COMPODOC_CURRENT_PAGE_DEPTH = 1;
287
+ var COMPODOC_CURRENT_PAGE_CONTEXT = 'interface';
288
+ var COMPODOC_CURRENT_PAGE_URL = 'Oauth2Config.html';
289
+ var MAX_SEARCH_RESULTS = 15;
290
+ </script>
291
+
292
+ <script>
293
+ $darkModeToggleSwitchers = document.querySelectorAll('.dark-mode-switch input');
294
+ checkToggle(darkModeState);
295
+ if ($darkModeToggleSwitchers.length > 0) {
296
+ for (var i = 0; i < $darkModeToggleSwitchers.length; i++) {
297
+ $darkModeToggleSwitchers[i].addEventListener('change', function (event) {
298
+ darkModeState = !darkModeState;
299
+ toggleDarkMode(darkModeState);
300
+ });
301
+ }
302
+ }
303
+ </script>
304
+
305
+ <script src="../js/libs/custom-elements.min.js"></script>
306
+ <script src="../js/libs/lit-html.js"></script>
307
+
308
+ <script src="../js/menu-wc.js" defer></script>
309
+ <script nomodule src="../js/menu-wc_es5.js" defer></script>
310
+
311
+ <script src="../js/libs/bootstrap-native.js"></script>
312
+
313
+ <script src="../js/libs/es6-shim.min.js"></script>
314
+ <script src="../js/libs/EventDispatcher.js"></script>
315
+ <script src="../js/libs/promise.min.js"></script>
316
+ <script src="../js/libs/zepto.min.js"></script>
317
+
318
+ <script src="../js/compodoc.js"></script>
319
+
320
+ <script src="../js/tabs.js"></script>
321
+ <script src="../js/menu.js"></script>
322
+ <script src="../js/libs/clipboard.min.js"></script>
323
+ <script src="../js/libs/prism.js"></script>
324
+ <script src="../js/sourceCode.js"></script>
325
+ <script src="../js/search/search.js"></script>
326
+ <script src="../js/search/lunr.min.js"></script>
327
+ <script src="../js/search/search-lunr.js"></script>
328
+ <script src="../js/search/search_index.js"></script>
329
+ <script src="../js/lazy-load-graphs.js"></script>
330
+
331
+
332
+ </body>
333
+ </html>
@@ -283,10 +283,15 @@ export interface i18nConfig {
283
283
  defaultLanguage?: string;
284
284
  }
285
285
 
286
+ export interface Oauth2Config {
287
+ profileUrl?: string;
288
+ }
289
+
286
290
  export interface Config {
287
291
  navigation?: NavigationConfig;
288
292
  logo?: LogoConfig;
289
293
  i18n?: i18nConfig;
294
+ oauth2?: Oauth2Config;
290
295
  }
291
296
  </code></pre>
292
297
  </div>
@@ -100,6 +100,9 @@ customElements.define('compodoc-menu', class extends HTMLElement {
100
100
  <li class="link">
101
101
  <a href="interfaces/NavigationConfig.html" data-type="entity-link" >NavigationConfig</a>
102
102
  </li>
103
+ <li class="link">
104
+ <a href="interfaces/Oauth2Config.html" data-type="entity-link" >Oauth2Config</a>
105
+ </li>
103
106
  </ul>
104
107
  </li>
105
108
  <li class="chapter">
@@ -33,8 +33,8 @@ customElements.define('compodoc-menu', /*#__PURE__*/function (_HTMLElement) {
33
33
  }, {
34
34
  key: "render",
35
35
  value: function render(isNormalMode) {
36
- var tp = lithtml.html("\n <nav>\n <ul class=\"list\">\n <li class=\"title\">\n <a href=\"index.html\" data-type=\"index-link\">angular-config</a>\n </li>\n\n <li class=\"divider\"></li>\n ".concat(isNormalMode ? "<div id=\"book-search-input\" role=\"search\"><input type=\"text\" placeholder=\"Type to search\"></div>" : '', "\n <li class=\"chapter\">\n <a data-type=\"chapter-link\" href=\"index.html\"><span class=\"icon ion-ios-home\"></span>Getting started</a>\n <ul class=\"links\">\n <li class=\"link\">\n <a href=\"overview.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-keypad\"></span>Overview\n </a>\n </li>\n <li class=\"link\">\n <a href=\"index.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-paper\"></span>README\n </a>\n </li>\n <li class=\"link\">\n <a href=\"changelog.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-paper\"></span>CHANGELOG\n </a>\n </li>\n <li class=\"link\">\n <a href=\"license.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-paper\"></span>LICENSE\n </a>\n </li>\n <li class=\"link\">\n <a href=\"dependencies.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-list\"></span>Dependencies\n </a>\n </li>\n <li class=\"link\">\n <a href=\"properties.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-apps\"></span>Properties\n </a>\n </li>\n </ul>\n </li>\n <li class=\"chapter\">\n <div class=\"simple menu-toggler\" data-bs-toggle=\"collapse\" ").concat(isNormalMode ? 'data-bs-target="#injectables-links"' : 'data-bs-target="#xs-injectables-links"', ">\n <span class=\"icon ion-md-arrow-round-down\"></span>\n <span>Injectables</span>\n <span class=\"icon ion-ios-arrow-down\"></span>\n </div>\n <ul class=\"links collapse \" ").concat(isNormalMode ? 'id="injectables-links"' : 'id="xs-injectables-links"', ">\n <li class=\"link\">\n <a href=\"injectables/ConfigLoaderService.html\" data-type=\"entity-link\" >ConfigLoaderService</a>\n </li>\n <li class=\"link\">\n <a href=\"injectables/ConfigService.html\" data-type=\"entity-link\" >ConfigService</a>\n </li>\n <li class=\"link\">\n <a href=\"injectables/ConfigTestingService.html\" data-type=\"entity-link\" >ConfigTestingService</a>\n </li>\n </ul>\n </li>\n <li class=\"chapter\">\n <div class=\"simple menu-toggler\" data-bs-toggle=\"collapse\" ").concat(isNormalMode ? 'data-bs-target="#interfaces-links"' : 'data-bs-target="#xs-interfaces-links"', ">\n <span class=\"icon ion-md-information-circle-outline\"></span>\n <span>Interfaces</span>\n <span class=\"icon ion-ios-arrow-down\"></span>\n </div>\n <ul class=\"links collapse \" ").concat(isNormalMode ? ' id="interfaces-links"' : 'id="xs-interfaces-links"', ">\n <li class=\"link\">\n <a href=\"interfaces/AppsNavigationConfig.html\" data-type=\"entity-link\" >AppsNavigationConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/Config.html\" data-type=\"entity-link\" >Config</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/ConfigLoadOptions.html\" data-type=\"entity-link\" >ConfigLoadOptions</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/i18nConfig.html\" data-type=\"entity-link\" >i18nConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/LogoConfig.html\" data-type=\"entity-link\" >LogoConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/NavigationConfig.html\" data-type=\"entity-link\" >NavigationConfig</a>\n </li>\n </ul>\n </li>\n <li class=\"chapter\">\n <div class=\"simple menu-toggler\" data-bs-toggle=\"collapse\" ").concat(isNormalMode ? 'data-bs-target="#miscellaneous-links"' : 'data-bs-target="#xs-miscellaneous-links"', ">\n <span class=\"icon ion-ios-cube\"></span>\n <span>Miscellaneous</span>\n <span class=\"icon ion-ios-arrow-down\"></span>\n </div>\n <ul class=\"links collapse \" ").concat(isNormalMode ? 'id="miscellaneous-links"' : 'id="xs-miscellaneous-links"', ">\n <li class=\"link\">\n <a href=\"miscellaneous/functions.html\" data-type=\"entity-link\">Functions</a>\n </li>\n <li class=\"link\">\n <a href=\"miscellaneous/typealiases.html\" data-type=\"entity-link\">Type aliases</a>\n </li>\n <li class=\"link\">\n <a href=\"miscellaneous/variables.html\" data-type=\"entity-link\">Variables</a>\n </li>\n </ul>\n </li>\n <li class=\"divider\"></li>\n <li class=\"copyright\">\n Documentation generated using <a href=\"https://compodoc.app/\" target=\"_blank\" rel=\"noopener noreferrer\">\n <img data-src=\"images/compodoc-vectorise.png\" class=\"img-responsive\" data-type=\"compodoc-logo\">\n </a>\n </li>\n </ul>\n </nav>\n "));
36
+ var tp = lithtml.html("\n <nav>\n <ul class=\"list\">\n <li class=\"title\">\n <a href=\"index.html\" data-type=\"index-link\">angular-config</a>\n </li>\n\n <li class=\"divider\"></li>\n ".concat(isNormalMode ? "<div id=\"book-search-input\" role=\"search\"><input type=\"text\" placeholder=\"Type to search\"></div>" : '', "\n <li class=\"chapter\">\n <a data-type=\"chapter-link\" href=\"index.html\"><span class=\"icon ion-ios-home\"></span>Getting started</a>\n <ul class=\"links\">\n <li class=\"link\">\n <a href=\"overview.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-keypad\"></span>Overview\n </a>\n </li>\n <li class=\"link\">\n <a href=\"index.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-paper\"></span>README\n </a>\n </li>\n <li class=\"link\">\n <a href=\"changelog.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-paper\"></span>CHANGELOG\n </a>\n </li>\n <li class=\"link\">\n <a href=\"license.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-paper\"></span>LICENSE\n </a>\n </li>\n <li class=\"link\">\n <a href=\"dependencies.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-list\"></span>Dependencies\n </a>\n </li>\n <li class=\"link\">\n <a href=\"properties.html\" data-type=\"chapter-link\">\n <span class=\"icon ion-ios-apps\"></span>Properties\n </a>\n </li>\n </ul>\n </li>\n <li class=\"chapter\">\n <div class=\"simple menu-toggler\" data-bs-toggle=\"collapse\" ").concat(isNormalMode ? 'data-bs-target="#injectables-links"' : 'data-bs-target="#xs-injectables-links"', ">\n <span class=\"icon ion-md-arrow-round-down\"></span>\n <span>Injectables</span>\n <span class=\"icon ion-ios-arrow-down\"></span>\n </div>\n <ul class=\"links collapse \" ").concat(isNormalMode ? 'id="injectables-links"' : 'id="xs-injectables-links"', ">\n <li class=\"link\">\n <a href=\"injectables/ConfigLoaderService.html\" data-type=\"entity-link\" >ConfigLoaderService</a>\n </li>\n <li class=\"link\">\n <a href=\"injectables/ConfigService.html\" data-type=\"entity-link\" >ConfigService</a>\n </li>\n <li class=\"link\">\n <a href=\"injectables/ConfigTestingService.html\" data-type=\"entity-link\" >ConfigTestingService</a>\n </li>\n </ul>\n </li>\n <li class=\"chapter\">\n <div class=\"simple menu-toggler\" data-bs-toggle=\"collapse\" ").concat(isNormalMode ? 'data-bs-target="#interfaces-links"' : 'data-bs-target="#xs-interfaces-links"', ">\n <span class=\"icon ion-md-information-circle-outline\"></span>\n <span>Interfaces</span>\n <span class=\"icon ion-ios-arrow-down\"></span>\n </div>\n <ul class=\"links collapse \" ").concat(isNormalMode ? ' id="interfaces-links"' : 'id="xs-interfaces-links"', ">\n <li class=\"link\">\n <a href=\"interfaces/AppsNavigationConfig.html\" data-type=\"entity-link\" >AppsNavigationConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/Config.html\" data-type=\"entity-link\" >Config</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/ConfigLoadOptions.html\" data-type=\"entity-link\" >ConfigLoadOptions</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/i18nConfig.html\" data-type=\"entity-link\" >i18nConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/LogoConfig.html\" data-type=\"entity-link\" >LogoConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/NavigationConfig.html\" data-type=\"entity-link\" >NavigationConfig</a>\n </li>\n <li class=\"link\">\n <a href=\"interfaces/Oauth2Config.html\" data-type=\"entity-link\" >Oauth2Config</a>\n </li>\n </ul>\n </li>\n <li class=\"chapter\">\n <div class=\"simple menu-toggler\" data-bs-toggle=\"collapse\" ").concat(isNormalMode ? 'data-bs-target="#miscellaneous-links"' : 'data-bs-target="#xs-miscellaneous-links"', ">\n <span class=\"icon ion-ios-cube\"></span>\n <span>Miscellaneous</span>\n <span class=\"icon ion-ios-arrow-down\"></span>\n </div>\n <ul class=\"links collapse \" ").concat(isNormalMode ? 'id="miscellaneous-links"' : 'id="xs-miscellaneous-links"', ">\n <li class=\"link\">\n <a href=\"miscellaneous/functions.html\" data-type=\"entity-link\">Functions</a>\n </li>\n <li class=\"link\">\n <a href=\"miscellaneous/typealiases.html\" data-type=\"entity-link\">Type aliases</a>\n </li>\n <li class=\"link\">\n <a href=\"miscellaneous/variables.html\" data-type=\"entity-link\">Variables</a>\n </li>\n </ul>\n </li>\n <li class=\"divider\"></li>\n <li class=\"copyright\">\n Documentation generated using <a href=\"https://compodoc.app/\" target=\"_blank\" rel=\"noopener noreferrer\">\n <img data-src=\"images/compodoc-vectorise.png\" class=\"img-responsive\" data-type=\"compodoc-logo\">\n </a>\n </li>\n </ul>\n </nav>\n "));
37
37
  this.innerHTML = tp.strings;
38
38
  }
39
39
  }]);
40
- }( /*#__PURE__*/_wrapNativeSuper(HTMLElement)));
40
+ }(/*#__PURE__*/_wrapNativeSuper(HTMLElement)));