@rxap/config 19.2.0-dev.2 → 19.2.0-dev.3

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 (103) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/compodoc/changelog.html +5 -0
  3. package/compodoc/dependencies.html +1 -1
  4. package/compodoc/injectables/ConfigService.html +142 -68
  5. package/compodoc/interfaces/ConfigLoadOptions.html +197 -33
  6. package/compodoc/js/menu-wc.js +3 -0
  7. package/compodoc/js/menu-wc_es5.js +1 -1
  8. package/compodoc/js/search/search_index.js +2 -2
  9. package/compodoc/miscellaneous/enumerations.html +231 -0
  10. package/compodoc/properties.html +1 -1
  11. package/docs/documentation.json +780 -644
  12. package/docs/html/assets/hierarchy.js +1 -1
  13. package/docs/html/assets/navigation.js +1 -1
  14. package/docs/html/assets/search.js +1 -1
  15. package/docs/html/classes/ConfigLoaderService.html +2 -2
  16. package/docs/html/classes/ConfigService.html +6 -6
  17. package/docs/html/classes/ConfigTestingService.html +2 -2
  18. package/docs/html/enums/ConfigLoadingStrategy.html +3 -0
  19. package/docs/html/functions/ProvideConfig.html +1 -1
  20. package/docs/html/functions/dnsLookup.html +1 -1
  21. package/docs/html/functions/dnsResolver.html +1 -1
  22. package/docs/html/functions/fetchCidContent.html +1 -1
  23. package/docs/html/functions/fetchCidContentAsJson.html +1 -1
  24. package/docs/html/functions/fetchCidContentViaHttp.html +1 -1
  25. package/docs/html/functions/fetchContentViaHttp.html +1 -1
  26. package/docs/html/functions/raceSuccess.html +2 -2
  27. package/docs/html/hierarchy.html +1 -1
  28. package/docs/html/index.html +2 -2
  29. package/docs/html/interfaces/AppsNavigationConfig.html +2 -2
  30. package/docs/html/interfaces/Config.html +2 -2
  31. package/docs/html/interfaces/ConfigLoadOptions.html +7 -5
  32. package/docs/html/interfaces/LogoConfig.html +2 -2
  33. package/docs/html/interfaces/NavigationConfig.html +2 -2
  34. package/docs/html/interfaces/Oauth2Config.html +2 -2
  35. package/docs/html/interfaces/i18nConfig.html +2 -2
  36. package/docs/html/modules.html +1 -1
  37. package/docs/html/types/AnySchema.html +1 -1
  38. package/docs/html/types/Join.html +1 -1
  39. package/docs/html/types/LanguagesConfig.html +1 -1
  40. package/docs/html/types/Leaves.html +1 -1
  41. package/docs/html/types/NoInferType.html +1 -1
  42. package/docs/html/types/Paths.html +1 -1
  43. package/docs/html/variables/RXAP_CONFIG.html +1 -1
  44. package/docs/markdown/README.md +1 -1
  45. package/docs/markdown/classes/ConfigLoaderService.md +7 -7
  46. package/docs/markdown/classes/ConfigService.md +22 -22
  47. package/docs/markdown/classes/ConfigTestingService.md +8 -8
  48. package/docs/markdown/enumerations/ConfigLoadingStrategy.md +25 -0
  49. package/docs/markdown/functions/ProvideConfig.md +2 -2
  50. package/docs/markdown/functions/dnsLookup.md +2 -2
  51. package/docs/markdown/functions/dnsResolver.md +2 -2
  52. package/docs/markdown/functions/fetchCidContent.md +2 -2
  53. package/docs/markdown/functions/fetchCidContentAsJson.md +2 -2
  54. package/docs/markdown/functions/fetchCidContentViaHttp.md +2 -2
  55. package/docs/markdown/functions/fetchContentViaHttp.md +2 -2
  56. package/docs/markdown/functions/raceSuccess.md +2 -2
  57. package/docs/markdown/globals.md +6 -2
  58. package/docs/markdown/interfaces/AppsNavigationConfig.md +12 -12
  59. package/docs/markdown/interfaces/Config.md +6 -6
  60. package/docs/markdown/interfaces/ConfigLoadOptions.md +27 -11
  61. package/docs/markdown/interfaces/LogoConfig.md +5 -5
  62. package/docs/markdown/interfaces/NavigationConfig.md +9 -9
  63. package/docs/markdown/interfaces/Oauth2Config.md +3 -3
  64. package/docs/markdown/interfaces/i18nConfig.md +4 -4
  65. package/docs/markdown/type-aliases/AnySchema.md +2 -2
  66. package/docs/markdown/type-aliases/Join.md +2 -2
  67. package/docs/markdown/type-aliases/LanguagesConfig.md +2 -2
  68. package/docs/markdown/type-aliases/Leaves.md +2 -2
  69. package/docs/markdown/type-aliases/NoInferType.md +2 -2
  70. package/docs/markdown/type-aliases/Paths.md +2 -2
  71. package/docs/markdown/variables/RXAP_CONFIG.md +2 -2
  72. package/docs/wiki/Class.ConfigLoaderService.md +6 -6
  73. package/docs/wiki/Class.ConfigService.md +21 -21
  74. package/docs/wiki/Class.ConfigTestingService.md +7 -7
  75. package/docs/wiki/Enumeration.ConfigLoadingStrategy.md +21 -0
  76. package/docs/wiki/Function.ProvideConfig.md +1 -1
  77. package/docs/wiki/Function.dnsLookup.md +1 -1
  78. package/docs/wiki/Function.dnsResolver.md +1 -1
  79. package/docs/wiki/Function.fetchCidContent.md +1 -1
  80. package/docs/wiki/Function.fetchCidContentAsJson.md +1 -1
  81. package/docs/wiki/Function.fetchCidContentViaHttp.md +1 -1
  82. package/docs/wiki/Function.fetchContentViaHttp.md +1 -1
  83. package/docs/wiki/Function.raceSuccess.md +1 -1
  84. package/docs/wiki/Interface.AppsNavigationConfig.md +11 -11
  85. package/docs/wiki/Interface.Config.md +5 -5
  86. package/docs/wiki/Interface.ConfigLoadOptions.md +26 -10
  87. package/docs/wiki/Interface.LogoConfig.md +4 -4
  88. package/docs/wiki/Interface.NavigationConfig.md +8 -8
  89. package/docs/wiki/Interface.Oauth2Config.md +2 -2
  90. package/docs/wiki/Interface.i18nConfig.md +3 -3
  91. package/docs/wiki/TypeAlias.AnySchema.md +1 -1
  92. package/docs/wiki/TypeAlias.Join.md +1 -1
  93. package/docs/wiki/TypeAlias.LanguagesConfig.md +1 -1
  94. package/docs/wiki/TypeAlias.Leaves.md +1 -1
  95. package/docs/wiki/TypeAlias.NoInferType.md +1 -1
  96. package/docs/wiki/TypeAlias.Paths.md +1 -1
  97. package/docs/wiki/Variable.RXAP_CONFIG.md +1 -1
  98. package/docs/wiki/_Sidebar.md +4 -0
  99. package/docs/wiki/globals.md +5 -1
  100. package/fesm2022/rxap-config.mjs +111 -34
  101. package/fesm2022/rxap-config.mjs.map +1 -1
  102. package/lib/config.service.d.ts +9 -0
  103. package/package.json +6 -6
@@ -182,6 +182,13 @@
182
182
  fromUrlParam
183
183
  </a>
184
184
  </li>
185
+ <li>
186
+ <span class="modifier">Optional</span>
187
+ <a href="#fromUrls"
188
+ >
189
+ fromUrls
190
+ </a>
191
+ </li>
185
192
  <li>
186
193
  <span class="modifier">Optional</span>
187
194
  <a href="#schema"
@@ -196,6 +203,13 @@
196
203
  static
197
204
  </a>
198
205
  </li>
206
+ <li>
207
+ <span class="modifier">Optional</span>
208
+ <a href="#strategy"
209
+ >
210
+ strategy
211
+ </a>
212
+ </li>
199
213
  <li>
200
214
  <span class="modifier">Optional</span>
201
215
  <a href="#url"
@@ -454,6 +468,44 @@ If true, uses <code>location.hostname</code>. If a string, uses that domain.</p>
454
468
 
455
469
 
456
470
 
471
+ </tbody>
472
+ </table>
473
+ <table class="table table-sm table-bordered">
474
+ <tbody>
475
+ <tr>
476
+ <td class="col-md-4">
477
+ <a name="fromUrls"></a>
478
+ <span class="name "><b>fromUrls</b>
479
+ <a href="#fromUrls">
480
+ <span class="icon ion-ios-link"></span>
481
+ </a>
482
+ </span>
483
+ </td>
484
+ </tr>
485
+ <tr>
486
+ <td class="col-md-4">
487
+ <code>fromUrls: <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
488
+ </code>
489
+ </td>
490
+ </tr>
491
+
492
+
493
+ <tr>
494
+ <td class="col-md-4">
495
+ <i>Type : </i> <code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/boolean" target="_blank" >boolean</a></code>
496
+
497
+ </td>
498
+ </tr>
499
+
500
+ <tr>
501
+ <td class="col-md-4">
502
+ <i>Optional</i>
503
+ </td>
504
+ </tr>
505
+
506
+
507
+
508
+
457
509
  </tbody>
458
510
  </table>
459
511
  <table class="table table-sm table-bordered">
@@ -536,6 +588,44 @@ If true, uses <code>location.hostname</code>. If a string, uses that domain.</p>
536
588
  </div>
537
589
  </td>
538
590
  </tr>
591
+ </tbody>
592
+ </table>
593
+ <table class="table table-sm table-bordered">
594
+ <tbody>
595
+ <tr>
596
+ <td class="col-md-4">
597
+ <a name="strategy"></a>
598
+ <span class="name "><b>strategy</b>
599
+ <a href="#strategy">
600
+ <span class="icon ion-ios-link"></span>
601
+ </a>
602
+ </span>
603
+ </td>
604
+ </tr>
605
+ <tr>
606
+ <td class="col-md-4">
607
+ <code>strategy: <code><a href="../miscellaneous/enumerations.html#ConfigLoadingStrategy" target="_self" >ConfigLoadingStrategy</a></code>
608
+ </code>
609
+ </td>
610
+ </tr>
611
+
612
+
613
+ <tr>
614
+ <td class="col-md-4">
615
+ <i>Type : </i> <code><a href="../miscellaneous/enumerations.html#ConfigLoadingStrategy" target="_self" >ConfigLoadingStrategy</a></code>
616
+
617
+ </td>
618
+ </tr>
619
+
620
+ <tr>
621
+ <td class="col-md-4">
622
+ <i>Optional</i>
623
+ </td>
624
+ </tr>
625
+
626
+
627
+
628
+
539
629
  </tbody>
540
630
  </table>
541
631
  <table class="table table-sm table-bordered">
@@ -604,8 +694,14 @@ import {
604
694
 
605
695
  export type AnySchema &#x3D; { validateAsync: (...args: any[]) &#x3D;&gt; any };
606
696
 
697
+ export enum ConfigLoadingStrategy {
698
+ DEFAULT &#x3D; &#x27;default&#x27;,
699
+ FIFO &#x3D; &#x27;fifo&#x27;,
700
+ }
701
+
607
702
  export interface ConfigLoadOptions {
608
703
  fromUrlParam?: string | boolean;
704
+ fromUrls?: boolean;
609
705
  fromLocalStorage?: boolean;
610
706
  schema?: AnySchema;
611
707
  url?: string | string[] | ((environment: Environment) &#x3D;&gt; string | string[]);
@@ -625,6 +721,7 @@ export interface ConfigLoadOptions {
625
721
  fromCid?: string;
626
722
  fetchCidContent?: (cid: string, path?: string) &#x3D;&gt; Promise&lt;Blob | null&gt;;
627
723
  dnsServers?: string[];
724
+ strategy?: ConfigLoadingStrategy;
628
725
  }
629
726
 
630
727
  @Injectable({
@@ -693,65 +790,132 @@ export class ConfigService&lt;Config extends Record&lt;string, any&gt; &#x3D; Re
693
790
  options.fromUrlParam &#x3D; environment.config.fromUrlParam;
694
791
  options.fromLocalStorage &#x3D; environment.config.fromLocalStorage;
695
792
  options.schema &#x3D; environment.config.schema;
793
+ options.strategy &#x3D; environment.config.strategy as ConfigLoadingStrategy ?? options.strategy;
696
794
  }
697
795
  }
698
796
 
699
797
  config &#x3D; deepMerge(config, options?.static ?? {});
798
+ let done &#x3D; false;
700
799
 
701
- const urls &#x3D; (options?.url ? coerceArray(options.url) : ConfigService.Urls).map(url &#x3D;&gt; {
702
- if (typeof url &#x3D;&#x3D;&#x3D; &#x27;function&#x27;) {
703
- if (!environment) {
704
- throw new Error(&#x27;environment is required when url is a function&#x27;);
800
+ if (!done &amp;&amp; options?.fromUrls !&#x3D;&#x3D; false) {
801
+ try {
802
+ config &#x3D; deepMerge(config, await this.loadConfigFromUrls(options, environment));
803
+ if (options.strategy &#x3D;&#x3D;&#x3D; ConfigLoadingStrategy.FIFO) {
804
+ done &#x3D; true;
805
+ }
806
+ } catch (error: any) {
807
+ if (options.strategy !&#x3D;&#x3D; ConfigLoadingStrategy.FIFO) {
808
+ console.error(&#x27;Could not load config from urls&#x27;, error);
809
+ throw error;
810
+ } else {
811
+ console.warn(&#x27;Could not load config from urls: &#x27; + error.message + &#x27;. Will try next strategy.&#x27;);
705
812
  }
706
- return coerceArray(url(environment));
707
813
  }
708
- return coerceArray(url);
709
- }).flat();
814
+ }
710
815
 
711
- for (const url of urls) {
712
- const loadedConfig &#x3D; await this.loadConfig(url, true, options?.schema);
713
- const match &#x3D; url.match(/config\.([a-zA-Z0-9.\-_]+)\.json/);
714
- if (match) {
715
- SetToObject(config, match[1], loadedConfig);
716
- } else {
717
- config &#x3D; deepMerge(config, loadedConfig);
816
+ if (!done &amp;&amp; options?.fromLocalStorage !&#x3D;&#x3D; false) {
817
+ try {
818
+ config &#x3D; deepMerge(config, this.loadConfigFromLocalStorage(options));
819
+ if (options.strategy &#x3D;&#x3D;&#x3D; ConfigLoadingStrategy.FIFO) {
820
+ done &#x3D; true;
821
+ }
822
+ } catch (error: any) {
823
+ if (options.strategy !&#x3D;&#x3D; ConfigLoadingStrategy.FIFO) {
824
+ console.error(&#x27;Could not load config from local storage&#x27;, error);
825
+ throw error;
826
+ } else {
827
+ console.warn(&#x27;Could not load config from local storage: &#x27; + error.message + &#x27;. Will try next strategy.&#x27;);
828
+ }
718
829
  }
719
830
  }
720
831
 
721
- config &#x3D; deepMerge(config, this.Overwrites);
722
-
723
- if (options?.fromLocalStorage !&#x3D;&#x3D; false) {
724
-
725
- const localConfig &#x3D; localStorage.getItem(ConfigService.LocalStorageKey);
726
-
727
- if (localConfig) {
728
- try {
729
- config &#x3D; deepMerge(config, JSON.parse(localConfig));
730
- } catch (e: any) {
731
- console.error(&#x27;local config could not be parsed&#x27;);
832
+ if (!done &amp;&amp; options?.fromUrlParam) {
833
+ try {
834
+ config &#x3D; deepMerge(config, this.loadConfigFromUrlParam(options as any));
835
+ if (options.strategy &#x3D;&#x3D;&#x3D; ConfigLoadingStrategy.FIFO) {
836
+ done &#x3D; true;
837
+ }
838
+ } catch (error: any) {
839
+ if (options.strategy !&#x3D;&#x3D; ConfigLoadingStrategy.FIFO) {
840
+ console.error(&#x27;Could not load config from url param&#x27;, error);
841
+ throw error;
842
+ } else {
843
+ console.warn(&#x27;Could not load config from url param: &#x27; + error.message + &#x27;. Will try next strategy.&#x27;);
732
844
  }
733
845
  }
734
-
735
846
  }
736
847
 
737
- if (options?.fromUrlParam) {
738
- const param &#x3D; typeof options.fromUrlParam &#x3D;&#x3D;&#x3D; &#x27;string&#x27; ? options.fromUrlParam : &#x27;config&#x27;;
739
- config &#x3D; deepMerge(config, this.LoadConfigDefaultFromUrlParam(param));
848
+ if (!done &amp;&amp; options?.fromDns) {
849
+ await this.loadConfigFromDns(options as any);
740
850
  }
741
851
 
742
- if (options?.fromDns) {
743
- await this.loadConfigFromDns(options as any);
852
+ if (!done &amp;&amp; options?.fromCid) {
853
+ try {
854
+ config &#x3D; deepMerge(config, await this.loadConfigFromCid(options as any));
855
+ if (options.strategy &#x3D;&#x3D;&#x3D; ConfigLoadingStrategy.FIFO) {
856
+ done &#x3D; true;
857
+ }
858
+ } catch (error: any) {
859
+ if (options.strategy !&#x3D;&#x3D; ConfigLoadingStrategy.FIFO) {
860
+ console.error(&#x27;Could not load config from cid&#x27;, error);
861
+ throw error;
862
+ } else {
863
+ console.warn(&#x27;Could not load config from cid: &#x27; + error.message + &#x27;. Will try next strategy.&#x27;);
864
+ }
865
+ }
744
866
  }
745
867
 
746
- if (options?.fromCid) {
747
- config &#x3D; deepMerge(config, await this.loadConfigFromCid(options as any));
868
+ if (!done) {
869
+ console.warn(&#x27;No config loading strategy succeeded. Using default config.&#x27;);
748
870
  }
749
871
 
872
+ config &#x3D; deepMerge(config, this.Overwrites);
873
+
750
874
  console.debug(&#x27;app config&#x27;, config);
751
875
 
752
876
  this.Config &#x3D; config;
753
877
  }
754
878
 
879
+ private static loadConfigFromUrlParam(options: ConfigLoadOptions &amp; { fromUrlParam: string | true }) {
880
+ const param &#x3D; typeof options.fromUrlParam &#x3D;&#x3D;&#x3D; &#x27;string&#x27; ? options.fromUrlParam : &#x27;config&#x27;;
881
+ return this.LoadConfigDefaultFromUrlParam(param);
882
+ }
883
+
884
+ private static loadConfigFromLocalStorage(options: ConfigLoadOptions) {
885
+ const localConfig &#x3D; localStorage.getItem(ConfigService.LocalStorageKey);
886
+ if (localConfig) {
887
+ return JSON.parse(localConfig);
888
+ } else {
889
+ return {};
890
+ }
891
+ }
892
+
893
+ private static async loadConfigFromUrls(options: ConfigLoadOptions, environment?: Environment) {
894
+ let config: any &#x3D; {};
895
+ const urls &#x3D; (
896
+ options?.url ? coerceArray(options.url) : ConfigService.Urls
897
+ ).map(url &#x3D;&gt; {
898
+ if (typeof url &#x3D;&#x3D;&#x3D; &#x27;function&#x27;) {
899
+ if (!environment) {
900
+ throw new Error(&#x27;environment is required when url is a function&#x27;);
901
+ }
902
+ return coerceArray(url(environment));
903
+ }
904
+ return coerceArray(url);
905
+ }).flat();
906
+
907
+ for (const url of urls) {
908
+ const loadedConfig &#x3D; await this.loadConfig(url, true, options?.schema);
909
+ const match &#x3D; url.match(/config\.([a-zA-Z0-9.\-_]+)\.json/);
910
+ if (match) {
911
+ SetToObject(config, match[1], loadedConfig);
912
+ } else {
913
+ config &#x3D; deepMerge(config, loadedConfig);
914
+ }
915
+ }
916
+ return config;
917
+ }
918
+
755
919
  private static async loadConfigFromCid(options: ConfigLoadOptions &amp; { fromCid: string | boolean }) {
756
920
  console.debug(&#x27;Loading config from CID: &#x27;, options.fromCid);
757
921
  try {
@@ -113,6 +113,9 @@ customElements.define('compodoc-menu', class extends HTMLElement {
113
113
  <span class="icon ion-ios-arrow-down"></span>
114
114
  </div>
115
115
  <ul class="links collapse " ${ isNormalMode ? 'id="miscellaneous-links"' : 'id="xs-miscellaneous-links"' }>
116
+ <li class="link">
117
+ <a href="miscellaneous/enumerations.html" data-type="entity-link">Enums</a>
118
+ </li>
116
119
  <li class="link">
117
120
  <a href="miscellaneous/functions.html" data-type="entity-link">Functions</a>
118
121
  </li>
@@ -33,7 +33,7 @@ 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 <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 "));
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/enumerations.html\" data-type=\"entity-link\">Enums</a>\n </li>\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
  }]);