@rxap/layout 18.0.3-dev.0 → 18.1.0-dev.0

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 (210) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +280 -1
  3. package/compodoc/changelog.html +13 -0
  4. package/compodoc/components/AppsButtonComponent.html +185 -153
  5. package/compodoc/components/BaseLayoutComponent.html +351 -0
  6. package/compodoc/components/DefaultHeaderComponent.html +545 -0
  7. package/compodoc/components/FooterComponent.html +58 -79
  8. package/compodoc/components/HeaderComponent.html +49 -294
  9. package/compodoc/components/LanguageSelectorComponent.html +6 -54
  10. package/compodoc/components/LayoutComponent.html +69 -464
  11. package/compodoc/components/MinimalLayoutComponent.html +349 -0
  12. package/compodoc/components/NavigationComponent.html +116 -312
  13. package/compodoc/components/NavigationItemComponent.html +130 -361
  14. package/compodoc/components/NavigationProgressBarComponent.html +41 -107
  15. package/compodoc/components/ReleaseInfoComponent.html +536 -0
  16. package/compodoc/components/SettingsButtonComponent.html +186 -225
  17. package/compodoc/components/SidenavComponent.html +566 -142
  18. package/compodoc/components/SidenavToggleButtonComponent.html +71 -91
  19. package/compodoc/components/SignOutComponent.html +7 -60
  20. package/compodoc/components/UserProfileIconComponent.html +97 -161
  21. package/compodoc/dependencies.html +11 -25
  22. package/compodoc/directives/FooterDirective-1.html +293 -0
  23. package/compodoc/directives/FooterDirective.html +8 -86
  24. package/compodoc/directives/HeaderDirective.html +293 -0
  25. package/compodoc/index.html +183 -1
  26. package/compodoc/injectables/ExternalAppsService.html +1274 -0
  27. package/compodoc/injectables/FooterService.html +573 -0
  28. package/compodoc/injectables/HeaderService.html +576 -0
  29. package/compodoc/injectables/LayoutService.html +899 -0
  30. package/compodoc/injectables/LogoService.html +411 -0
  31. package/compodoc/injectables/NavigationService.html +46 -57
  32. package/compodoc/interfaces/ReleaseInfoModule.html +385 -0
  33. package/compodoc/interfaces/SettingsMenuItem.html +385 -0
  34. package/compodoc/js/menu-wc.js +24 -40
  35. package/compodoc/js/menu-wc_es5.js +1 -1
  36. package/compodoc/js/search/search_index.js +2 -2
  37. package/compodoc/miscellaneous/functions.html +544 -1
  38. package/compodoc/miscellaneous/typealiases.html +40 -2
  39. package/compodoc/miscellaneous/variables.html +100 -9
  40. package/compodoc/overview.html +2 -10
  41. package/compodoc/properties.html +1 -1
  42. package/docs/assets/highlight.css +42 -0
  43. package/docs/assets/navigation.js +1 -1
  44. package/docs/assets/search.js +1 -1
  45. package/docs/classes/AppsButtonComponent.html +8 -8
  46. package/docs/classes/BaseLayoutComponent.html +2 -0
  47. package/docs/classes/DefaultHeaderComponent.html +7 -0
  48. package/docs/classes/ExternalAppsService.html +18 -0
  49. package/docs/classes/FooterComponent.html +5 -3
  50. package/docs/classes/FooterDirective.html +2 -2
  51. package/docs/classes/FooterService.html +14 -0
  52. package/docs/classes/HeaderComponent.html +6 -8
  53. package/docs/classes/HeaderDirective.html +8 -0
  54. package/docs/classes/HeaderService.html +14 -0
  55. package/docs/classes/LayoutComponent.html +4 -12
  56. package/docs/classes/LayoutService.html +20 -0
  57. package/docs/classes/LogoService.html +7 -0
  58. package/docs/classes/MinimalLayoutComponent.html +2 -0
  59. package/docs/classes/NavigationComponent.html +7 -8
  60. package/docs/classes/NavigationItemComponent.html +6 -9
  61. package/docs/classes/NavigationProgressBarComponent.html +3 -3
  62. package/docs/classes/NavigationService.html +3 -3
  63. package/docs/classes/ReleaseInfoComponent.html +6 -0
  64. package/docs/classes/SettingsButtonComponent.html +6 -11
  65. package/docs/classes/SidenavComponent.html +17 -5
  66. package/docs/classes/SidenavFooterDirective.html +2 -2
  67. package/docs/classes/SidenavHeaderDirective.html +2 -2
  68. package/docs/classes/SidenavToggleButtonComponent.html +4 -3
  69. package/docs/classes/UserProfileIconComponent.html +5 -4
  70. package/docs/documentation.json +8546 -8346
  71. package/docs/functions/IsNavigationDividerItem.html +1 -1
  72. package/docs/functions/IsNavigationInsertItem.html +1 -1
  73. package/docs/functions/IsNavigationItem.html +1 -1
  74. package/docs/functions/provideLayout.html +1 -0
  75. package/docs/functions/widthDefaultHeaderComponent.html +1 -0
  76. package/docs/functions/withFooterComponents.html +1 -0
  77. package/docs/functions/withHeaderComponents.html +1 -0
  78. package/docs/functions/withNavigationConfig.html +1 -0
  79. package/docs/functions/withNavigationInserts.html +1 -0
  80. package/docs/functions/withReleaseInfoModules.html +1 -0
  81. package/docs/functions/withSettingsMenuItems.html +1 -0
  82. package/docs/index.html +74 -2
  83. package/docs/interfaces/NavigationDividerItem.html +2 -2
  84. package/docs/interfaces/NavigationInsertItem.html +2 -2
  85. package/docs/interfaces/NavigationItem.html +2 -2
  86. package/docs/interfaces/NavigationStatus.html +2 -2
  87. package/docs/interfaces/ReleaseInfoModule.html +4 -0
  88. package/docs/interfaces/SettingsMenuItem.html +4 -0
  89. package/docs/modules.html +29 -17
  90. package/docs/types/ExternalApps.html +1 -0
  91. package/docs/types/ExtractUsernameFromProfileFn.html +1 -1
  92. package/docs/types/Navigation.html +1 -1
  93. package/docs/types/NavigationWithInserts.html +1 -1
  94. package/docs/types/SettingsMenuItemComponent.html +1 -0
  95. package/docs/variables/EXTRACT_USERNAME_FROM_PROFILE.html +1 -1
  96. package/docs/variables/RXAP_EXTERNAL_APP_FILTER.html +1 -0
  97. package/docs/variables/RXAP_FOOTER_COMPONENT.html +1 -1
  98. package/docs/variables/RXAP_HEADER_COMPONENT.html +1 -1
  99. package/docs/variables/RXAP_LAYOUT_APPS_GRID.html +1 -1
  100. package/docs/variables/RXAP_LOGO_CONFIG.html +1 -1
  101. package/docs/variables/RXAP_NAVIGATION_CONFIG.html +1 -1
  102. package/docs/variables/RXAP_NAVIGATION_CONFIG_INSERTS.html +1 -1
  103. package/docs/variables/RXAP_RELEASE_INFO_MODULE.html +1 -0
  104. package/docs/variables/RXAP_SETTINGS_MENU_ITEM.html +1 -0
  105. package/docs/variables/RXAP_SETTINGS_MENU_ITEM_COMPONENT.html +1 -0
  106. package/esm2022/index.mjs +35 -40
  107. package/esm2022/lib/base-layout/base-layout.component.mjs +16 -0
  108. package/esm2022/lib/default-header/apps-button/apps-button.component.mjs +38 -0
  109. package/esm2022/lib/default-header/default-header.component.mjs +32 -0
  110. package/esm2022/lib/default-header/settings-button/settings-button.component.mjs +73 -0
  111. package/esm2022/lib/default-header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +24 -0
  112. package/esm2022/lib/default-header/user-profile-icon/user-profile-icon.component.mjs +35 -0
  113. package/esm2022/lib/external-apps.service.mjs +97 -0
  114. package/esm2022/lib/footer/footer.component.mjs +13 -13
  115. package/esm2022/lib/footer/footer.directive.mjs +30 -0
  116. package/esm2022/lib/footer.service.mjs +58 -0
  117. package/esm2022/lib/header/header.component.mjs +17 -65
  118. package/esm2022/lib/header/header.directive.mjs +30 -0
  119. package/esm2022/lib/header.service.mjs +60 -0
  120. package/esm2022/lib/layout/layout.component.mjs +33 -47
  121. package/esm2022/lib/layout.service.mjs +93 -0
  122. package/esm2022/lib/logo.service.mjs +23 -0
  123. package/esm2022/lib/minimal-layout/minimal-layout.component.mjs +14 -0
  124. package/esm2022/lib/navigation/navigation-item/navigation-item.component.mjs +30 -64
  125. package/esm2022/lib/navigation/navigation.component.mjs +22 -48
  126. package/esm2022/lib/navigation-progress-bar/navigation-progress-bar.component.mjs +23 -0
  127. package/esm2022/lib/navigation.service.mjs +141 -0
  128. package/esm2022/lib/provide.mjs +73 -0
  129. package/esm2022/lib/release-info/release-info.component.mjs +28 -0
  130. package/esm2022/lib/sidenav/sidenav.component.mjs +50 -33
  131. package/esm2022/lib/tokens.mjs +9 -1
  132. package/esm2022/lib/types.mjs +1 -1
  133. package/fesm2022/rxap-layout.mjs +845 -833
  134. package/fesm2022/rxap-layout.mjs.map +1 -1
  135. package/index.d.ts +18 -19
  136. package/lib/base-layout/base-layout.component.d.ts +5 -0
  137. package/lib/default-header/apps-button/apps-button.component.d.ts +15 -0
  138. package/lib/default-header/default-header.component.d.ts +11 -0
  139. package/lib/{header → default-header}/settings-button/settings-button.component.d.ts +6 -14
  140. package/lib/{header → default-header}/sidenav-toggle-button/sidenav-toggle-button.component.d.ts +3 -5
  141. package/lib/default-header/user-profile-icon/user-profile-icon.component.d.ts +10 -0
  142. package/lib/external-apps.service.d.ts +25 -0
  143. package/lib/footer/footer.component.d.ts +3 -3
  144. package/lib/{footer.directive.d.ts → footer/footer.directive.d.ts} +2 -4
  145. package/lib/footer.service.d.ts +32 -0
  146. package/lib/header/header.component.d.ts +6 -12
  147. package/lib/header/header.directive.d.ts +12 -0
  148. package/lib/header.service.d.ts +34 -0
  149. package/lib/layout/layout.component.d.ts +4 -17
  150. package/lib/layout.service.d.ts +26 -0
  151. package/lib/logo.service.d.ts +10 -0
  152. package/lib/minimal-layout/minimal-layout.component.d.ts +5 -0
  153. package/lib/navigation/navigation-item/navigation-item.component.d.ts +10 -18
  154. package/lib/navigation/navigation.component.d.ts +10 -15
  155. package/lib/{header/navigation-progress-bar → navigation-progress-bar}/navigation-progress-bar.component.d.ts +1 -3
  156. package/lib/{navigation/navigation.service.d.ts → navigation.service.d.ts} +4 -5
  157. package/lib/provide.d.ts +12 -0
  158. package/lib/release-info/release-info.component.d.ts +9 -0
  159. package/lib/sidenav/sidenav.component.d.ts +18 -6
  160. package/lib/tokens.d.ts +11 -3
  161. package/lib/types.d.ts +15 -4
  162. package/package.json +32 -66
  163. package/theme.css +1 -1
  164. package/docs/classes/AppUrlService.html +0 -13
  165. package/docs/classes/AuthenticationServiceMock.html +0 -3
  166. package/docs/classes/LanguageSelectorComponent.html +0 -3
  167. package/docs/classes/LayoutComponentService.html +0 -15
  168. package/docs/classes/ReplaceRouterPathsPipe.html +0 -4
  169. package/docs/classes/ReplaceRouterPathsService.html +0 -3
  170. package/docs/classes/ResetButtonComponent.html +0 -3
  171. package/docs/classes/SidenavComponentService.html +0 -5
  172. package/docs/classes/SignOutComponent.html +0 -4
  173. package/docs/classes/ToggleWindowSidenavButtonComponent.html +0 -5
  174. package/docs/classes/VersionComponent.html +0 -7
  175. package/docs/classes/WindowContainerSidenavComponent.html +0 -10
  176. package/docs/interfaces/ExternalApps.html +0 -8
  177. package/docs/interfaces/LogoConfig.html +0 -4
  178. package/esm2022/lib/app-url.service.mjs +0 -78
  179. package/esm2022/lib/authentication.service.mock.mjs +0 -13
  180. package/esm2022/lib/footer.directive.mjs +0 -40
  181. package/esm2022/lib/header/apps-button/apps-button.component.mjs +0 -46
  182. package/esm2022/lib/header/language-selector/language-selector.component.mjs +0 -35
  183. package/esm2022/lib/header/navigation-progress-bar/navigation-progress-bar.component.mjs +0 -30
  184. package/esm2022/lib/header/reset-button/reset-button.component.mjs +0 -23
  185. package/esm2022/lib/header/settings-button/settings-button.component.mjs +0 -87
  186. package/esm2022/lib/header/sidenav-toggle-button/sidenav-toggle-button.component.mjs +0 -26
  187. package/esm2022/lib/header/sign-out/sign-out.component.mjs +0 -23
  188. package/esm2022/lib/header/user-profile-icon/user-profile-icon.component.mjs +0 -45
  189. package/esm2022/lib/layout/layout.component.service.mjs +0 -77
  190. package/esm2022/lib/navigation/navigation.service.mjs +0 -145
  191. package/esm2022/lib/navigation/replace-router-paths.pipe.mjs +0 -22
  192. package/esm2022/lib/navigation/replace-router-paths.service.mjs +0 -15
  193. package/esm2022/lib/sidenav/sidenav.component.service.mjs +0 -22
  194. package/esm2022/lib/sidenav/version/version.component.mjs +0 -28
  195. package/esm2022/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.mjs +0 -30
  196. package/esm2022/lib/window-container-sidenav/window-container-sidenav.component.mjs +0 -54
  197. package/lib/app-url.service.d.ts +0 -29
  198. package/lib/authentication.service.mock.d.ts +0 -6
  199. package/lib/header/apps-button/apps-button.component.d.ts +0 -16
  200. package/lib/header/language-selector/language-selector.component.d.ts +0 -8
  201. package/lib/header/reset-button/reset-button.component.d.ts +0 -8
  202. package/lib/header/sign-out/sign-out.component.d.ts +0 -9
  203. package/lib/header/user-profile-icon/user-profile-icon.component.d.ts +0 -15
  204. package/lib/layout/layout.component.service.d.ts +0 -25
  205. package/lib/navigation/replace-router-paths.pipe.d.ts +0 -11
  206. package/lib/navigation/replace-router-paths.service.d.ts +0 -7
  207. package/lib/sidenav/sidenav.component.service.d.ts +0 -11
  208. package/lib/sidenav/version/version.component.d.ts +0 -14
  209. package/lib/toggle-window-sidenav-button/toggle-window-sidenav-button.component.d.ts +0 -9
  210. package/lib/window-container-sidenav/window-container-sidenav.component.d.ts +0 -17
@@ -0,0 +1,899 @@
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-layout</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-layout</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 injectable">
83
+ <div class="content-data">
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+ <ol class="breadcrumb">
93
+ <li class="breadcrumb-item">Injectables</li>
94
+ <li class="breadcrumb-item" >LayoutService</li>
95
+ </ol>
96
+
97
+ <ul class="nav nav-tabs" role="tablist">
98
+ <li class="nav-item">
99
+ <a href="#info"
100
+ class="nav-link"
101
+ class="nav-link active"
102
+ role="tab" id="info-tab" data-bs-toggle="tab" data-link="info">Info</a>
103
+ </li>
104
+ <li class="nav-item">
105
+ <a href="#source"
106
+ class="nav-link"
107
+
108
+ role="tab" id="source-tab" data-bs-toggle="tab" data-link="source">Source</a>
109
+ </li>
110
+ </ul>
111
+
112
+ <div class="tab-content">
113
+ <div class="tab-pane fade active in" id="info">
114
+ <p class="comment">
115
+ <h3>File</h3>
116
+ </p>
117
+ <p class="comment">
118
+ <code>src/lib/layout.service.ts</code>
119
+ </p>
120
+
121
+
122
+
123
+
124
+
125
+ <section data-compodoc="block-index">
126
+ <h3 id="index">Index</h3>
127
+ <table class="table table-sm table-bordered index-table">
128
+ <tbody>
129
+ <tr>
130
+ <td class="col-md-4">
131
+ <h6><b>Properties</b></h6>
132
+ </td>
133
+ </tr>
134
+ <tr>
135
+ <td class="col-md-4">
136
+ <ul class="index-list">
137
+ <li>
138
+ <span class="modifier">Public</span>
139
+ <span class="modifier">Readonly</span>
140
+ <a href="#collapsable" >collapsable</a>
141
+ </li>
142
+ <li>
143
+ <span class="modifier">Public</span>
144
+ <span class="modifier">Readonly</span>
145
+ <a href="#collapsed" >collapsed</a>
146
+ </li>
147
+ <li>
148
+ <span class="modifier">Public</span>
149
+ <span class="modifier">Readonly</span>
150
+ <a href="#currentThemeDensity" >currentThemeDensity</a>
151
+ </li>
152
+ <li>
153
+ <span class="modifier">Public</span>
154
+ <span class="modifier">Readonly</span>
155
+ <a href="#fixedBottomGap" >fixedBottomGap</a>
156
+ </li>
157
+ <li>
158
+ <span class="modifier">Public</span>
159
+ <span class="modifier">Readonly</span>
160
+ <a href="#fixedInViewport" >fixedInViewport</a>
161
+ </li>
162
+ <li>
163
+ <span class="modifier">Public</span>
164
+ <span class="modifier">Readonly</span>
165
+ <a href="#fixedTopGap" >fixedTopGap</a>
166
+ </li>
167
+ <li>
168
+ <span class="modifier">Public</span>
169
+ <span class="modifier">Readonly</span>
170
+ <a href="#isMobile" >isMobile</a>
171
+ </li>
172
+ <li>
173
+ <span class="modifier">Public</span>
174
+ <span class="modifier">Readonly</span>
175
+ <a href="#mode" >mode</a>
176
+ </li>
177
+ <li>
178
+ <span class="modifier">Public</span>
179
+ <span class="modifier">Readonly</span>
180
+ <a href="#opened" >opened</a>
181
+ </li>
182
+ <li>
183
+ <span class="modifier">Public</span>
184
+ <span class="modifier">Readonly</span>
185
+ <a href="#pinned" >pinned</a>
186
+ </li>
187
+ </ul>
188
+ </td>
189
+ </tr>
190
+
191
+ <tr>
192
+ <td class="col-md-4">
193
+ <h6><b>Methods</b></h6>
194
+ </td>
195
+ </tr>
196
+ <tr>
197
+ <td class="col-md-4">
198
+ <ul class="index-list">
199
+ <li>
200
+ <a href="#closeSidenav" >closeSidenav</a>
201
+ </li>
202
+ <li>
203
+ <a href="#openSidenav" >openSidenav</a>
204
+ </li>
205
+ <li>
206
+ <span class="modifier">Public</span>
207
+ <a href="#toggleOpened" >toggleOpened</a>
208
+ </li>
209
+ <li>
210
+ <span class="modifier">Public</span>
211
+ <a href="#togglePinned" >togglePinned</a>
212
+ </li>
213
+ </ul>
214
+ </td>
215
+ </tr>
216
+
217
+
218
+
219
+
220
+
221
+ </tbody>
222
+ </table>
223
+ </section>
224
+
225
+ <section data-compodoc="block-constructor">
226
+ <h3 id="constructor">Constructor</h3>
227
+ <table class="table table-sm table-bordered">
228
+ <tbody>
229
+ <tr>
230
+ <td class="col-md-4">
231
+ <code>constructor()</code>
232
+ </td>
233
+ </tr>
234
+ <tr>
235
+ <td class="col-md-4">
236
+ <div class="io-line">Defined in <a href="" data-line="37" class="link-to-prism">src/lib/layout.service.ts:37</a></div>
237
+ </td>
238
+ </tr>
239
+
240
+ </tbody>
241
+ </table>
242
+ </section>
243
+
244
+ <section data-compodoc="block-methods">
245
+
246
+ <h3 id="methods">
247
+ Methods
248
+ </h3>
249
+ <table class="table table-sm table-bordered">
250
+ <tbody>
251
+ <tr>
252
+ <td class="col-md-4">
253
+ <a name="closeSidenav"></a>
254
+ <span class="name">
255
+ <span ><b>closeSidenav</b></span>
256
+ <a href="#closeSidenav"><span class="icon ion-ios-link"></span></a>
257
+ </span>
258
+ </td>
259
+ </tr>
260
+ <tr>
261
+ <td class="col-md-4">
262
+ <code>closeSidenav()</code>
263
+ </td>
264
+ </tr>
265
+
266
+
267
+ <tr>
268
+ <td class="col-md-4">
269
+ <div class="io-line">Defined in <a href="" data-line="116"
270
+ class="link-to-prism">src/lib/layout.service.ts:116</a></div>
271
+ </td>
272
+ </tr>
273
+
274
+
275
+ <tr>
276
+ <td class="col-md-4">
277
+
278
+ <div class="io-description">
279
+ <b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
280
+
281
+ </div>
282
+ </td>
283
+ </tr>
284
+ </tbody>
285
+ </table>
286
+ <table class="table table-sm table-bordered">
287
+ <tbody>
288
+ <tr>
289
+ <td class="col-md-4">
290
+ <a name="openSidenav"></a>
291
+ <span class="name">
292
+ <span ><b>openSidenav</b></span>
293
+ <a href="#openSidenav"><span class="icon ion-ios-link"></span></a>
294
+ </span>
295
+ </td>
296
+ </tr>
297
+ <tr>
298
+ <td class="col-md-4">
299
+ <code>openSidenav()</code>
300
+ </td>
301
+ </tr>
302
+
303
+
304
+ <tr>
305
+ <td class="col-md-4">
306
+ <div class="io-line">Defined in <a href="" data-line="112"
307
+ class="link-to-prism">src/lib/layout.service.ts:112</a></div>
308
+ </td>
309
+ </tr>
310
+
311
+
312
+ <tr>
313
+ <td class="col-md-4">
314
+
315
+ <div class="io-description">
316
+ <b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
317
+
318
+ </div>
319
+ </td>
320
+ </tr>
321
+ </tbody>
322
+ </table>
323
+ <table class="table table-sm table-bordered">
324
+ <tbody>
325
+ <tr>
326
+ <td class="col-md-4">
327
+ <a name="toggleOpened"></a>
328
+ <span class="name">
329
+ <span class="modifier">Public</span>
330
+ <span ><b>toggleOpened</b></span>
331
+ <a href="#toggleOpened"><span class="icon ion-ios-link"></span></a>
332
+ </span>
333
+ </td>
334
+ </tr>
335
+ <tr>
336
+ <td class="col-md-4">
337
+ <span class="modifier-icon icon ion-ios-reset"></span>
338
+ <code>toggleOpened()</code>
339
+ </td>
340
+ </tr>
341
+
342
+
343
+ <tr>
344
+ <td class="col-md-4">
345
+ <div class="io-line">Defined in <a href="" data-line="104"
346
+ class="link-to-prism">src/lib/layout.service.ts:104</a></div>
347
+ </td>
348
+ </tr>
349
+
350
+
351
+ <tr>
352
+ <td class="col-md-4">
353
+
354
+ <div class="io-description">
355
+ <b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
356
+
357
+ </div>
358
+ </td>
359
+ </tr>
360
+ </tbody>
361
+ </table>
362
+ <table class="table table-sm table-bordered">
363
+ <tbody>
364
+ <tr>
365
+ <td class="col-md-4">
366
+ <a name="togglePinned"></a>
367
+ <span class="name">
368
+ <span class="modifier">Public</span>
369
+ <span ><b>togglePinned</b></span>
370
+ <a href="#togglePinned"><span class="icon ion-ios-link"></span></a>
371
+ </span>
372
+ </td>
373
+ </tr>
374
+ <tr>
375
+ <td class="col-md-4">
376
+ <span class="modifier-icon icon ion-ios-reset"></span>
377
+ <code>togglePinned()</code>
378
+ </td>
379
+ </tr>
380
+
381
+
382
+ <tr>
383
+ <td class="col-md-4">
384
+ <div class="io-line">Defined in <a href="" data-line="108"
385
+ class="link-to-prism">src/lib/layout.service.ts:108</a></div>
386
+ </td>
387
+ </tr>
388
+
389
+
390
+ <tr>
391
+ <td class="col-md-4">
392
+
393
+ <div class="io-description">
394
+ <b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
395
+
396
+ </div>
397
+ </td>
398
+ </tr>
399
+ </tbody>
400
+ </table>
401
+ </section>
402
+ <section data-compodoc="block-properties">
403
+
404
+ <h3 id="inputs">
405
+ Properties
406
+ </h3>
407
+ <table class="table table-sm table-bordered">
408
+ <tbody>
409
+ <tr>
410
+ <td class="col-md-4">
411
+ <a name="collapsable"></a>
412
+ <span class="name">
413
+ <span class="modifier">Public</span>
414
+ <span class="modifier">Readonly</span>
415
+ <span ><b>collapsable</b></span>
416
+ <a href="#collapsable"><span class="icon ion-ios-link"></span></a>
417
+ </span>
418
+ </td>
419
+ </tr>
420
+ <tr>
421
+ <td class="col-md-4">
422
+ <i>Type : </i> <code>WritableSignal&lt;boolean&gt;</code>
423
+
424
+ </td>
425
+ </tr>
426
+ <tr>
427
+ <td class="col-md-4">
428
+ <div class="io-line">Defined in <a href="" data-line="26" class="link-to-prism">src/lib/layout.service.ts:26</a></div>
429
+ </td>
430
+ </tr>
431
+
432
+
433
+ </tbody>
434
+ </table>
435
+ <table class="table table-sm table-bordered">
436
+ <tbody>
437
+ <tr>
438
+ <td class="col-md-4">
439
+ <a name="collapsed"></a>
440
+ <span class="name">
441
+ <span class="modifier">Public</span>
442
+ <span class="modifier">Readonly</span>
443
+ <span ><b>collapsed</b></span>
444
+ <a href="#collapsed"><span class="icon ion-ios-link"></span></a>
445
+ </span>
446
+ </td>
447
+ </tr>
448
+ <tr>
449
+ <td class="col-md-4">
450
+ <i>Type : </i> <code>Signal&lt;boolean&gt;</code>
451
+
452
+ </td>
453
+ </tr>
454
+ <tr>
455
+ <td class="col-md-4">
456
+ <div class="io-line">Defined in <a href="" data-line="32" class="link-to-prism">src/lib/layout.service.ts:32</a></div>
457
+ </td>
458
+ </tr>
459
+
460
+
461
+ </tbody>
462
+ </table>
463
+ <table class="table table-sm table-bordered">
464
+ <tbody>
465
+ <tr>
466
+ <td class="col-md-4">
467
+ <a name="currentThemeDensity"></a>
468
+ <span class="name">
469
+ <span class="modifier">Public</span>
470
+ <span class="modifier">Readonly</span>
471
+ <span ><b>currentThemeDensity</b></span>
472
+ <a href="#currentThemeDensity"><span class="icon ion-ios-link"></span></a>
473
+ </span>
474
+ </td>
475
+ </tr>
476
+ <tr>
477
+ <td class="col-md-4">
478
+ <i>Default value : </i><code>toSignal(ObserveCurrentThemeDensity())</code>
479
+ </td>
480
+ </tr>
481
+ <tr>
482
+ <td class="col-md-4">
483
+ <div class="io-line">Defined in <a href="" data-line="29" class="link-to-prism">src/lib/layout.service.ts:29</a></div>
484
+ </td>
485
+ </tr>
486
+
487
+
488
+ </tbody>
489
+ </table>
490
+ <table class="table table-sm table-bordered">
491
+ <tbody>
492
+ <tr>
493
+ <td class="col-md-4">
494
+ <a name="fixedBottomGap"></a>
495
+ <span class="name">
496
+ <span class="modifier">Public</span>
497
+ <span class="modifier">Readonly</span>
498
+ <span ><b>fixedBottomGap</b></span>
499
+ <a href="#fixedBottomGap"><span class="icon ion-ios-link"></span></a>
500
+ </span>
501
+ </td>
502
+ </tr>
503
+ <tr>
504
+ <td class="col-md-4">
505
+ <i>Type : </i> <code>Signal&lt;number&gt;</code>
506
+
507
+ </td>
508
+ </tr>
509
+ <tr>
510
+ <td class="col-md-4">
511
+ <div class="io-line">Defined in <a href="" data-line="27" class="link-to-prism">src/lib/layout.service.ts:27</a></div>
512
+ </td>
513
+ </tr>
514
+
515
+
516
+ </tbody>
517
+ </table>
518
+ <table class="table table-sm table-bordered">
519
+ <tbody>
520
+ <tr>
521
+ <td class="col-md-4">
522
+ <a name="fixedInViewport"></a>
523
+ <span class="name">
524
+ <span class="modifier">Public</span>
525
+ <span class="modifier">Readonly</span>
526
+ <span ><b>fixedInViewport</b></span>
527
+ <a href="#fixedInViewport"><span class="icon ion-ios-link"></span></a>
528
+ </span>
529
+ </td>
530
+ </tr>
531
+ <tr>
532
+ <td class="col-md-4">
533
+ <i>Type : </i> <code>WritableSignal&lt;boolean&gt;</code>
534
+
535
+ </td>
536
+ </tr>
537
+ <tr>
538
+ <td class="col-md-4">
539
+ <div class="io-line">Defined in <a href="" data-line="31" class="link-to-prism">src/lib/layout.service.ts:31</a></div>
540
+ </td>
541
+ </tr>
542
+
543
+
544
+ </tbody>
545
+ </table>
546
+ <table class="table table-sm table-bordered">
547
+ <tbody>
548
+ <tr>
549
+ <td class="col-md-4">
550
+ <a name="fixedTopGap"></a>
551
+ <span class="name">
552
+ <span class="modifier">Public</span>
553
+ <span class="modifier">Readonly</span>
554
+ <span ><b>fixedTopGap</b></span>
555
+ <a href="#fixedTopGap"><span class="icon ion-ios-link"></span></a>
556
+ </span>
557
+ </td>
558
+ </tr>
559
+ <tr>
560
+ <td class="col-md-4">
561
+ <i>Type : </i> <code>Signal&lt;number&gt;</code>
562
+
563
+ </td>
564
+ </tr>
565
+ <tr>
566
+ <td class="col-md-4">
567
+ <div class="io-line">Defined in <a href="" data-line="28" class="link-to-prism">src/lib/layout.service.ts:28</a></div>
568
+ </td>
569
+ </tr>
570
+
571
+
572
+ </tbody>
573
+ </table>
574
+ <table class="table table-sm table-bordered">
575
+ <tbody>
576
+ <tr>
577
+ <td class="col-md-4">
578
+ <a name="isMobile"></a>
579
+ <span class="name">
580
+ <span class="modifier">Public</span>
581
+ <span class="modifier">Readonly</span>
582
+ <span ><b>isMobile</b></span>
583
+ <a href="#isMobile"><span class="icon ion-ios-link"></span></a>
584
+ </span>
585
+ </td>
586
+ </tr>
587
+ <tr>
588
+ <td class="col-md-4">
589
+ <i>Type : </i> <code>Signal&lt;boolean&gt;</code>
590
+
591
+ </td>
592
+ </tr>
593
+ <tr>
594
+ <td class="col-md-4">
595
+ <div class="io-line">Defined in <a href="" data-line="30" class="link-to-prism">src/lib/layout.service.ts:30</a></div>
596
+ </td>
597
+ </tr>
598
+
599
+
600
+ </tbody>
601
+ </table>
602
+ <table class="table table-sm table-bordered">
603
+ <tbody>
604
+ <tr>
605
+ <td class="col-md-4">
606
+ <a name="mode"></a>
607
+ <span class="name">
608
+ <span class="modifier">Public</span>
609
+ <span class="modifier">Readonly</span>
610
+ <span ><b>mode</b></span>
611
+ <a href="#mode"><span class="icon ion-ios-link"></span></a>
612
+ </span>
613
+ </td>
614
+ </tr>
615
+ <tr>
616
+ <td class="col-md-4">
617
+ <i>Type : </i> <code>WritableSignal&lt;MatDrawerMode&gt;</code>
618
+
619
+ </td>
620
+ </tr>
621
+ <tr>
622
+ <td class="col-md-4">
623
+ <div class="io-line">Defined in <a href="" data-line="24" class="link-to-prism">src/lib/layout.service.ts:24</a></div>
624
+ </td>
625
+ </tr>
626
+
627
+
628
+ </tbody>
629
+ </table>
630
+ <table class="table table-sm table-bordered">
631
+ <tbody>
632
+ <tr>
633
+ <td class="col-md-4">
634
+ <a name="opened"></a>
635
+ <span class="name">
636
+ <span class="modifier">Public</span>
637
+ <span class="modifier">Readonly</span>
638
+ <span ><b>opened</b></span>
639
+ <a href="#opened"><span class="icon ion-ios-link"></span></a>
640
+ </span>
641
+ </td>
642
+ </tr>
643
+ <tr>
644
+ <td class="col-md-4">
645
+ <i>Type : </i> <code>WritableSignal&lt;boolean&gt;</code>
646
+
647
+ </td>
648
+ </tr>
649
+ <tr>
650
+ <td class="col-md-4">
651
+ <div class="io-line">Defined in <a href="" data-line="23" class="link-to-prism">src/lib/layout.service.ts:23</a></div>
652
+ </td>
653
+ </tr>
654
+
655
+
656
+ </tbody>
657
+ </table>
658
+ <table class="table table-sm table-bordered">
659
+ <tbody>
660
+ <tr>
661
+ <td class="col-md-4">
662
+ <a name="pinned"></a>
663
+ <span class="name">
664
+ <span class="modifier">Public</span>
665
+ <span class="modifier">Readonly</span>
666
+ <span ><b>pinned</b></span>
667
+ <a href="#pinned"><span class="icon ion-ios-link"></span></a>
668
+ </span>
669
+ </td>
670
+ </tr>
671
+ <tr>
672
+ <td class="col-md-4">
673
+ <i>Type : </i> <code>WritableSignal&lt;boolean&gt;</code>
674
+
675
+ </td>
676
+ </tr>
677
+ <tr>
678
+ <td class="col-md-4">
679
+ <div class="io-line">Defined in <a href="" data-line="25" class="link-to-prism">src/lib/layout.service.ts:25</a></div>
680
+ </td>
681
+ </tr>
682
+
683
+
684
+ </tbody>
685
+ </table>
686
+ </section>
687
+
688
+ </div>
689
+
690
+
691
+ <div class="tab-pane fade tab-source-code" id="source">
692
+ <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { MediaMatcher } from &#x27;@angular/cdk/layout&#x27;;
693
+ import {
694
+ computed,
695
+ effect,
696
+ inject,
697
+ Injectable,
698
+ isDevMode,
699
+ signal,
700
+ Signal,
701
+ WritableSignal,
702
+ } from &#x27;@angular/core&#x27;;
703
+ import { toSignal } from &#x27;@angular/core/rxjs-interop&#x27;;
704
+ import { MatDrawerMode } from &#x27;@angular/material/sidenav&#x27;;
705
+ import { ConfigService } from &#x27;@rxap/config&#x27;;
706
+ import { ObserveCurrentThemeDensity } from &#x27;@rxap/ngx-theme&#x27;;
707
+ import { Observable } from &#x27;rxjs&#x27;;
708
+ import { FooterService } from &#x27;./footer.service&#x27;;
709
+ import { HeaderService } from &#x27;./header.service&#x27;;
710
+
711
+ @Injectable()
712
+ export class LayoutService {
713
+
714
+ public readonly opened: WritableSignal&lt;boolean&gt;;
715
+ public readonly mode: WritableSignal&lt;MatDrawerMode&gt;;
716
+ public readonly pinned: WritableSignal&lt;boolean&gt;;
717
+ public readonly collapsable: WritableSignal&lt;boolean&gt;;
718
+ public readonly fixedBottomGap: Signal&lt;number&gt;;
719
+ public readonly fixedTopGap: Signal&lt;number&gt;;
720
+ public readonly currentThemeDensity &#x3D; toSignal(ObserveCurrentThemeDensity());
721
+ public readonly isMobile: Signal&lt;boolean&gt;;
722
+ public readonly fixedInViewport: WritableSignal&lt;boolean&gt;;
723
+ public readonly collapsed: Signal&lt;boolean&gt;;
724
+
725
+ private readonly footerService &#x3D; inject(FooterService);
726
+ private readonly headerService &#x3D; inject(HeaderService);
727
+ private readonly config &#x3D; inject(ConfigService);
728
+ private readonly mediaMatcher &#x3D; inject(MediaMatcher);
729
+
730
+ constructor() {
731
+ const mobileQuery &#x3D; this.mediaMatcher.matchMedia(&#x27;(max-width: 959px)&#x27;);
732
+ this.isMobile &#x3D; toSignal(new Observable&lt;boolean&gt;(subscriber &#x3D;&gt; {
733
+ mobileQuery.addEventListener(&#x27;change&#x27;, (event) &#x3D;&gt; {
734
+ subscriber.next(event.matches);
735
+ });
736
+ }), { initialValue: mobileQuery.matches });
737
+
738
+ const initialCollapsable &#x3D; this.config.get(&#x27;navigation.collapsable&#x27;, true);
739
+ const collapsable &#x3D; initialCollapsable &amp;&amp; !this.isMobile();
740
+ const pinned &#x3D; this.config.get(&#x27;navigation.pinned&#x27;, false);
741
+ const mode &#x3D; this.config.get(&#x27;navigation.mode&#x27;, pinned || !collapsable ? &#x27;side&#x27; : &#x27;over&#x27;);
742
+ const opened &#x3D; this.config.get(&#x27;navigation.opened&#x27;, (!collapsable || pinned) &amp;&amp; !this.isMobile());
743
+ const fixedInViewport &#x3D; this.config.get(&#x27;navigation.fixedInViewport&#x27;, true);
744
+
745
+ if (isDevMode()) {
746
+ console.log({
747
+ initialCollapsable,
748
+ collapsable,
749
+ pinned,
750
+ mode,
751
+ opened,
752
+ fixedInViewport,
753
+ });
754
+ }
755
+
756
+ this.opened &#x3D; signal(opened);
757
+ this.mode &#x3D; signal(mode);
758
+ this.pinned &#x3D; signal(pinned);
759
+ this.collapsable &#x3D; signal(collapsable);
760
+ this.fixedInViewport &#x3D; signal(fixedInViewport);
761
+ this.collapsed &#x3D; computed(() &#x3D;&gt; this.collapsable() &amp;&amp; !this.opened() &amp;&amp; !this.pinned());
762
+
763
+ this.fixedBottomGap &#x3D; computed(() &#x3D;&gt; {
764
+ const footerPortalCount &#x3D; this.footerService.portalCount();
765
+ const currentThemeDensity &#x3D; this.currentThemeDensity() ?? 0;
766
+ return footerPortalCount * (currentThemeDensity * 4 + 64);
767
+ });
768
+
769
+ this.fixedTopGap &#x3D; computed(() &#x3D;&gt; {
770
+ const headerPortalCount &#x3D; this.headerService.portalCount();
771
+ const currentThemeDensity &#x3D; this.currentThemeDensity() ?? 0;
772
+ return headerPortalCount * (currentThemeDensity * 4 + 64);
773
+ });
774
+
775
+ if (initialCollapsable) {
776
+ effect(() &#x3D;&gt; {
777
+ const isMobile &#x3D; this.isMobile();
778
+ this.collapsable.set(!isMobile);
779
+ if (!isMobile &amp;&amp; !this.pinned()) {
780
+ this.opened.set(false);
781
+ }
782
+ }, { allowSignalWrites: true });
783
+ }
784
+ effect(() &#x3D;&gt; {
785
+ if (this.pinned()) {
786
+ this.mode.set(&#x27;side&#x27;);
787
+ this.opened.set(true);
788
+ } else {
789
+ this.mode.set(&#x27;over&#x27;);
790
+ this.opened.set(false);
791
+ }
792
+ }, { allowSignalWrites: true });
793
+ }
794
+
795
+ public toggleOpened() {
796
+ this.opened.update(opened &#x3D;&gt; !opened);
797
+ }
798
+
799
+ public togglePinned() {
800
+ this.pinned.update(pinned &#x3D;&gt; !pinned);
801
+ }
802
+
803
+ openSidenav() {
804
+ this.opened.set(true);
805
+ }
806
+
807
+ closeSidenav() {
808
+ this.opened.set(false);
809
+ }
810
+ }
811
+ </code></pre>
812
+ </div>
813
+
814
+ </div>
815
+
816
+
817
+
818
+
819
+
820
+
821
+
822
+
823
+
824
+
825
+
826
+
827
+
828
+ </div><div class="search-results">
829
+ <div class="has-results">
830
+ <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
831
+ <ul class="search-results-list"></ul>
832
+ </div>
833
+ <div class="no-results">
834
+ <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
835
+ </div>
836
+ </div>
837
+ </div>
838
+ <!-- END CONTENT -->
839
+ </div>
840
+ </div>
841
+
842
+ <label class="dark-mode-switch">
843
+ <input type="checkbox">
844
+ <span class="slider">
845
+ <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">
846
+ <path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
847
+ </svg>
848
+ </span>
849
+ </label>
850
+
851
+ <script>
852
+ var COMPODOC_CURRENT_PAGE_DEPTH = 1;
853
+ var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
854
+ var COMPODOC_CURRENT_PAGE_URL = 'LayoutService.html';
855
+ var MAX_SEARCH_RESULTS = 15;
856
+ </script>
857
+
858
+ <script>
859
+ $darkModeToggleSwitchers = document.querySelectorAll('.dark-mode-switch input');
860
+ checkToggle(darkModeState);
861
+ if ($darkModeToggleSwitchers.length > 0) {
862
+ for (var i = 0; i < $darkModeToggleSwitchers.length; i++) {
863
+ $darkModeToggleSwitchers[i].addEventListener('change', function (event) {
864
+ darkModeState = !darkModeState;
865
+ toggleDarkMode(darkModeState);
866
+ });
867
+ }
868
+ }
869
+ </script>
870
+
871
+ <script src="../js/libs/custom-elements.min.js"></script>
872
+ <script src="../js/libs/lit-html.js"></script>
873
+
874
+ <script src="../js/menu-wc.js" defer></script>
875
+ <script nomodule src="../js/menu-wc_es5.js" defer></script>
876
+
877
+ <script src="../js/libs/bootstrap-native.js"></script>
878
+
879
+ <script src="../js/libs/es6-shim.min.js"></script>
880
+ <script src="../js/libs/EventDispatcher.js"></script>
881
+ <script src="../js/libs/promise.min.js"></script>
882
+ <script src="../js/libs/zepto.min.js"></script>
883
+
884
+ <script src="../js/compodoc.js"></script>
885
+
886
+ <script src="../js/tabs.js"></script>
887
+ <script src="../js/menu.js"></script>
888
+ <script src="../js/libs/clipboard.min.js"></script>
889
+ <script src="../js/libs/prism.js"></script>
890
+ <script src="../js/sourceCode.js"></script>
891
+ <script src="../js/search/search.js"></script>
892
+ <script src="../js/search/lunr.min.js"></script>
893
+ <script src="../js/search/search-lunr.js"></script>
894
+ <script src="../js/search/search_index.js"></script>
895
+ <script src="../js/lazy-load-graphs.js"></script>
896
+
897
+
898
+ </body>
899
+ </html>