@rxap/config 19.2.0-dev.1 → 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 +13 -0
  2. package/compodoc/changelog.html +11 -0
  3. package/compodoc/dependencies.html +1 -1
  4. package/compodoc/injectables/ConfigService.html +151 -69
  5. package/compodoc/interfaces/ConfigLoadOptions.html +251 -34
  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 +813 -648
  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 +8 -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 +34 -10
  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 +33 -9
  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 +118 -35
  101. package/fesm2022/rxap-config.mjs.map +1 -1
  102. package/lib/config.service.d.ts +10 -0
  103. package/package.json +6 -6
@@ -140,6 +140,13 @@
140
140
  <tr>
141
141
  <td class="col-md-4">
142
142
  <ul class="index-list">
143
+ <li>
144
+ <span class="modifier">Optional</span>
145
+ <a href="#dnsServers"
146
+ >
147
+ dnsServers
148
+ </a>
149
+ </li>
143
150
  <li>
144
151
  <span class="modifier">Optional</span>
145
152
  <a href="#fetchCidContent"
@@ -175,6 +182,13 @@
175
182
  fromUrlParam
176
183
  </a>
177
184
  </li>
185
+ <li>
186
+ <span class="modifier">Optional</span>
187
+ <a href="#fromUrls"
188
+ >
189
+ fromUrls
190
+ </a>
191
+ </li>
178
192
  <li>
179
193
  <span class="modifier">Optional</span>
180
194
  <a href="#schema"
@@ -189,6 +203,13 @@
189
203
  static
190
204
  </a>
191
205
  </li>
206
+ <li>
207
+ <span class="modifier">Optional</span>
208
+ <a href="#strategy"
209
+ >
210
+ strategy
211
+ </a>
212
+ </li>
192
213
  <li>
193
214
  <span class="modifier">Optional</span>
194
215
  <a href="#url"
@@ -207,6 +228,44 @@
207
228
 
208
229
  <section data-compodoc="block-properties">
209
230
  <h3 id="inputs">Properties</h3>
231
+ <table class="table table-sm table-bordered">
232
+ <tbody>
233
+ <tr>
234
+ <td class="col-md-4">
235
+ <a name="dnsServers"></a>
236
+ <span class="name "><b>dnsServers</b>
237
+ <a href="#dnsServers">
238
+ <span class="icon ion-ios-link"></span>
239
+ </a>
240
+ </span>
241
+ </td>
242
+ </tr>
243
+ <tr>
244
+ <td class="col-md-4">
245
+ <code>dnsServers: <code>string[]</code>
246
+ </code>
247
+ </td>
248
+ </tr>
249
+
250
+
251
+ <tr>
252
+ <td class="col-md-4">
253
+ <i>Type : </i> <code>string[]</code>
254
+
255
+ </td>
256
+ </tr>
257
+
258
+ <tr>
259
+ <td class="col-md-4">
260
+ <i>Optional</i>
261
+ </td>
262
+ </tr>
263
+
264
+
265
+
266
+
267
+ </tbody>
268
+ </table>
210
269
  <table class="table table-sm table-bordered">
211
270
  <tbody>
212
271
  <tr>
@@ -409,6 +468,44 @@ If true, uses <code>location.hostname</code>. If a string, uses that domain.</p>
409
468
 
410
469
 
411
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
+
412
509
  </tbody>
413
510
  </table>
414
511
  <table class="table table-sm table-bordered">
@@ -491,6 +588,44 @@ If true, uses <code>location.hostname</code>. If a string, uses that domain.</p>
491
588
  </div>
492
589
  </td>
493
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
+
494
629
  </tbody>
495
630
  </table>
496
631
  <table class="table table-sm table-bordered">
@@ -559,8 +694,14 @@ import {
559
694
 
560
695
  export type AnySchema &#x3D; { validateAsync: (...args: any[]) &#x3D;&gt; any };
561
696
 
697
+ export enum ConfigLoadingStrategy {
698
+ DEFAULT &#x3D; &#x27;default&#x27;,
699
+ FIFO &#x3D; &#x27;fifo&#x27;,
700
+ }
701
+
562
702
  export interface ConfigLoadOptions {
563
703
  fromUrlParam?: string | boolean;
704
+ fromUrls?: boolean;
564
705
  fromLocalStorage?: boolean;
565
706
  schema?: AnySchema;
566
707
  url?: string | string[] | ((environment: Environment) &#x3D;&gt; string | string[]);
@@ -579,6 +720,8 @@ export interface ConfigLoadOptions {
579
720
  */
580
721
  fromCid?: string;
581
722
  fetchCidContent?: (cid: string, path?: string) &#x3D;&gt; Promise&lt;Blob | null&gt;;
723
+ dnsServers?: string[];
724
+ strategy?: ConfigLoadingStrategy;
582
725
  }
583
726
 
584
727
  @Injectable({
@@ -647,65 +790,132 @@ export class ConfigService&lt;Config extends Record&lt;string, any&gt; &#x3D; Re
647
790
  options.fromUrlParam &#x3D; environment.config.fromUrlParam;
648
791
  options.fromLocalStorage &#x3D; environment.config.fromLocalStorage;
649
792
  options.schema &#x3D; environment.config.schema;
793
+ options.strategy &#x3D; environment.config.strategy as ConfigLoadingStrategy ?? options.strategy;
650
794
  }
651
795
  }
652
796
 
653
797
  config &#x3D; deepMerge(config, options?.static ?? {});
798
+ let done &#x3D; false;
654
799
 
655
- const urls &#x3D; (options?.url ? coerceArray(options.url) : ConfigService.Urls).map(url &#x3D;&gt; {
656
- if (typeof url &#x3D;&#x3D;&#x3D; &#x27;function&#x27;) {
657
- if (!environment) {
658
- 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;);
659
812
  }
660
- return coerceArray(url(environment));
661
813
  }
662
- return coerceArray(url);
663
- }).flat();
814
+ }
664
815
 
665
- for (const url of urls) {
666
- const loadedConfig &#x3D; await this.loadConfig(url, true, options?.schema);
667
- const match &#x3D; url.match(/config\.([a-zA-Z0-9.\-_]+)\.json/);
668
- if (match) {
669
- SetToObject(config, match[1], loadedConfig);
670
- } else {
671
- 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
+ }
672
829
  }
673
830
  }
674
831
 
675
- config &#x3D; deepMerge(config, this.Overwrites);
676
-
677
- if (options?.fromLocalStorage !&#x3D;&#x3D; false) {
678
-
679
- const localConfig &#x3D; localStorage.getItem(ConfigService.LocalStorageKey);
680
-
681
- if (localConfig) {
682
- try {
683
- config &#x3D; deepMerge(config, JSON.parse(localConfig));
684
- } catch (e: any) {
685
- 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;);
686
844
  }
687
845
  }
688
-
689
846
  }
690
847
 
691
- if (options?.fromUrlParam) {
692
- const param &#x3D; typeof options.fromUrlParam &#x3D;&#x3D;&#x3D; &#x27;string&#x27; ? options.fromUrlParam : &#x27;config&#x27;;
693
- config &#x3D; deepMerge(config, this.LoadConfigDefaultFromUrlParam(param));
848
+ if (!done &amp;&amp; options?.fromDns) {
849
+ await this.loadConfigFromDns(options as any);
694
850
  }
695
851
 
696
- if (options?.fromDns) {
697
- 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
+ }
698
866
  }
699
867
 
700
- if (options?.fromCid) {
701
- 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;);
702
870
  }
703
871
 
872
+ config &#x3D; deepMerge(config, this.Overwrites);
873
+
704
874
  console.debug(&#x27;app config&#x27;, config);
705
875
 
706
876
  this.Config &#x3D; config;
707
877
  }
708
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
+
709
919
  private static async loadConfigFromCid(options: ConfigLoadOptions &amp; { fromCid: string | boolean }) {
710
920
  console.debug(&#x27;Loading config from CID: &#x27;, options.fromCid);
711
921
  try {
@@ -728,6 +938,13 @@ export class ConfigService&lt;Config extends Record&lt;string, any&gt; &#x3D; Re
728
938
 
729
939
  private static async loadConfigFromDns(options: ConfigLoadOptions &amp; { fromDns: string | boolean }) {
730
940
  console.debug(&#x27;Loading config from DNS&#x27;);
941
+ const dnsServers &#x3D; options.dnsServers ?? [];
942
+ if (dnsServers.length &#x3D;&#x3D;&#x3D; 0) {
943
+ dnsServers.push(
944
+ &#x27;https://dns.google/resolve&#x27;,
945
+ &#x27;https://cloudflare-dns.com/dns-query&#x27;
946
+ );
947
+ }
731
948
  let domain &#x3D; location.hostname;
732
949
  if (typeof options.fromDns &#x3D;&#x3D;&#x3D; &#x27;string&#x27;) {
733
950
  domain &#x3D; options.fromDns;
@@ -735,7 +952,7 @@ export class ConfigService&lt;Config extends Record&lt;string, any&gt; &#x3D; Re
735
952
  domain &#x3D; CoercePrefix(domain, &#x27;_config.&#x27;);
736
953
  try {
737
954
  console.log(&#x60;Attempting DNS lookup for domain: ${domain}&#x60;);
738
- const txtData &#x3D; await dnsLookup(domain, &#x27;TXT&#x27;);
955
+ const txtData &#x3D; await dnsLookup(domain, &#x27;TXT&#x27;, dnsServers);
739
956
  console.log(&#x60;DNS TXT record data found: ${txtData}&#x60;);
740
957
  // Example CID extraction logic (adapt to your TXT record format)
741
958
  // This looks for IPFS CIDs (v0 &#x27;Qm...&#x27; or v1 &#x27;b...&#x27;) potentially after &#x27;ipfs://&#x27; or &#x27;/&#x27;
@@ -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
  }]);