@rxap/layout 18.0.2 → 18.0.3-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 (182) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +1 -1
  3. package/compodoc/changelog.html +730 -0
  4. package/compodoc/components/AppsButtonComponent.html +604 -0
  5. package/compodoc/components/FooterComponent.html +487 -0
  6. package/compodoc/components/HeaderComponent.html +781 -0
  7. package/compodoc/components/LanguageSelectorComponent.html +526 -0
  8. package/compodoc/components/LayoutComponent.html +1035 -0
  9. package/compodoc/components/NavigationComponent.html +1156 -0
  10. package/compodoc/components/NavigationItemComponent.html +1328 -0
  11. package/compodoc/components/NavigationProgressBarComponent.html +550 -0
  12. package/compodoc/components/ResetButtonComponent.html +486 -0
  13. package/compodoc/components/SettingsButtonComponent.html +1416 -0
  14. package/compodoc/components/SidenavComponent.html +689 -0
  15. package/compodoc/components/SidenavToggleButtonComponent.html +517 -0
  16. package/compodoc/components/SignOutComponent.html +493 -0
  17. package/compodoc/components/ToggleWindowSidenavButtonComponent.html +549 -0
  18. package/compodoc/components/UserProfileIconComponent.html +657 -0
  19. package/compodoc/components/VersionComponent.html +524 -0
  20. package/compodoc/components/WindowContainerSidenavComponent.html +687 -0
  21. package/compodoc/dependencies.html +239 -0
  22. package/compodoc/directives/FooterDirective.html +371 -0
  23. package/compodoc/directives/SidenavFooterDirective.html +387 -0
  24. package/compodoc/directives/SidenavHeaderDirective.html +387 -0
  25. package/compodoc/fonts/ionicons.eot +0 -0
  26. package/compodoc/fonts/ionicons.svg +2090 -0
  27. package/compodoc/fonts/ionicons.ttf +0 -0
  28. package/compodoc/fonts/ionicons.woff +0 -0
  29. package/compodoc/fonts/ionicons.woff2 +0 -0
  30. package/compodoc/fonts/roboto-v15-latin-300.eot +0 -0
  31. package/compodoc/fonts/roboto-v15-latin-300.svg +314 -0
  32. package/compodoc/fonts/roboto-v15-latin-300.ttf +0 -0
  33. package/compodoc/fonts/roboto-v15-latin-300.woff +0 -0
  34. package/compodoc/fonts/roboto-v15-latin-300.woff2 +0 -0
  35. package/compodoc/fonts/roboto-v15-latin-700.eot +0 -0
  36. package/compodoc/fonts/roboto-v15-latin-700.svg +310 -0
  37. package/compodoc/fonts/roboto-v15-latin-700.ttf +0 -0
  38. package/compodoc/fonts/roboto-v15-latin-700.woff +0 -0
  39. package/compodoc/fonts/roboto-v15-latin-700.woff2 +0 -0
  40. package/compodoc/fonts/roboto-v15-latin-italic.eot +0 -0
  41. package/compodoc/fonts/roboto-v15-latin-italic.svg +323 -0
  42. package/compodoc/fonts/roboto-v15-latin-italic.ttf +0 -0
  43. package/compodoc/fonts/roboto-v15-latin-italic.woff +0 -0
  44. package/compodoc/fonts/roboto-v15-latin-italic.woff2 +0 -0
  45. package/compodoc/fonts/roboto-v15-latin-regular.eot +0 -0
  46. package/compodoc/fonts/roboto-v15-latin-regular.svg +308 -0
  47. package/compodoc/fonts/roboto-v15-latin-regular.ttf +0 -0
  48. package/compodoc/fonts/roboto-v15-latin-regular.woff +0 -0
  49. package/compodoc/fonts/roboto-v15-latin-regular.woff2 +0 -0
  50. package/compodoc/graph/dependencies.svg +24 -0
  51. package/compodoc/images/compodoc-vectorise-inverted.png +0 -0
  52. package/compodoc/images/compodoc-vectorise-inverted.svg +201 -0
  53. package/compodoc/images/compodoc-vectorise.png +0 -0
  54. package/compodoc/images/compodoc-vectorise.svg +201 -0
  55. package/compodoc/images/favicon.ico +0 -0
  56. package/compodoc/index.html +190 -0
  57. package/compodoc/injectables/AppUrlService.html +829 -0
  58. package/compodoc/injectables/AuthenticationServiceMock.html +303 -0
  59. package/compodoc/injectables/LayoutComponentService.html +848 -0
  60. package/compodoc/injectables/NavigationService.html +1081 -0
  61. package/compodoc/injectables/ReplaceRouterPathsService.html +337 -0
  62. package/compodoc/injectables/SidenavComponentService.html +408 -0
  63. package/compodoc/interfaces/ExternalApps.html +634 -0
  64. package/compodoc/interfaces/LogoConfig.html +381 -0
  65. package/compodoc/interfaces/NavigationDividerItem.html +385 -0
  66. package/compodoc/interfaces/NavigationInsertItem.html +340 -0
  67. package/compodoc/interfaces/NavigationItem.html +520 -0
  68. package/compodoc/interfaces/NavigationStatus.html +376 -0
  69. package/compodoc/js/compodoc.js +14 -0
  70. package/compodoc/js/lazy-load-graphs.js +44 -0
  71. package/compodoc/js/libs/EventDispatcher.js +5 -0
  72. package/compodoc/js/libs/bootstrap-native.js +2 -0
  73. package/compodoc/js/libs/clipboard.min.js +7 -0
  74. package/compodoc/js/libs/custom-elements-es5-adapter.js +15 -0
  75. package/compodoc/js/libs/custom-elements.min.js +38 -0
  76. package/compodoc/js/libs/d3.v3.min.js +2 -0
  77. package/compodoc/js/libs/deep-iterator.js +2 -0
  78. package/compodoc/js/libs/es6-shim.min.js +12 -0
  79. package/compodoc/js/libs/htmlparser.js +23 -0
  80. package/compodoc/js/libs/innersvg.js +9 -0
  81. package/compodoc/js/libs/lit-html.js +1 -0
  82. package/compodoc/js/libs/prism.js +46 -0
  83. package/compodoc/js/libs/promise.min.js +6 -0
  84. package/compodoc/js/libs/svg-pan-zoom.min.js +3 -0
  85. package/compodoc/js/libs/tablesort.min.js +6 -0
  86. package/compodoc/js/libs/tablesort.number.min.js +6 -0
  87. package/compodoc/js/libs/vis.min.js +47 -0
  88. package/compodoc/js/libs/zepto.min.js +2 -0
  89. package/compodoc/js/menu-wc.js +237 -0
  90. package/compodoc/js/menu-wc_es5.js +40 -0
  91. package/compodoc/js/menu.js +270 -0
  92. package/compodoc/js/routes.js +301 -0
  93. package/compodoc/js/search/lunr.min.js +6 -0
  94. package/compodoc/js/search/search-lunr.js +67 -0
  95. package/compodoc/js/search/search.js +283 -0
  96. package/compodoc/js/search/search_index.js +4 -0
  97. package/compodoc/js/sourceCode.js +58 -0
  98. package/compodoc/js/svg-pan-zoom.controls.js +53 -0
  99. package/compodoc/js/tabs.js +21 -0
  100. package/compodoc/js/tree.js +147 -0
  101. package/compodoc/license.html +731 -0
  102. package/compodoc/miscellaneous/functions.html +389 -0
  103. package/compodoc/miscellaneous/typealiases.html +256 -0
  104. package/compodoc/miscellaneous/variables.html +370 -0
  105. package/compodoc/modules.html +183 -0
  106. package/compodoc/overview.html +225 -0
  107. package/compodoc/pipes/ReplaceRouterPathsPipe.html +363 -0
  108. package/compodoc/properties.html +195 -0
  109. package/compodoc/styles/bootstrap-card.css +219 -0
  110. package/compodoc/styles/bootstrap.min.css +6 -0
  111. package/compodoc/styles/compodoc.css +1124 -0
  112. package/compodoc/styles/dark.css +121 -0
  113. package/compodoc/styles/ionicons.min.css +11 -0
  114. package/compodoc/styles/laravel.css +113 -0
  115. package/compodoc/styles/material.css +131 -0
  116. package/compodoc/styles/original.css +51 -0
  117. package/compodoc/styles/postmark.css +238 -0
  118. package/compodoc/styles/prism.css +301 -0
  119. package/compodoc/styles/readthedocs.css +117 -0
  120. package/compodoc/styles/reset.css +129 -0
  121. package/compodoc/styles/stripe.css +106 -0
  122. package/compodoc/styles/style.css +7 -0
  123. package/compodoc/styles/tablesort.css +33 -0
  124. package/compodoc/styles/vagrant.css +130 -0
  125. package/docs/.nojekyll +1 -0
  126. package/docs/assets/highlight.css +43 -0
  127. package/docs/assets/icons.js +15 -0
  128. package/docs/assets/icons.svg +1 -0
  129. package/docs/assets/main.js +59 -0
  130. package/docs/assets/navigation.js +1 -0
  131. package/docs/assets/search.js +1 -0
  132. package/docs/assets/style.css +1412 -0
  133. package/docs/classes/AppUrlService.html +13 -0
  134. package/docs/classes/AppsButtonComponent.html +9 -0
  135. package/docs/classes/AuthenticationServiceMock.html +3 -0
  136. package/docs/classes/FooterComponent.html +3 -0
  137. package/docs/classes/FooterDirective.html +8 -0
  138. package/docs/classes/HeaderComponent.html +8 -0
  139. package/docs/classes/LanguageSelectorComponent.html +3 -0
  140. package/docs/classes/LayoutComponent.html +18 -0
  141. package/docs/classes/LayoutComponentService.html +15 -0
  142. package/docs/classes/NavigationComponent.html +15 -0
  143. package/docs/classes/NavigationItemComponent.html +22 -0
  144. package/docs/classes/NavigationProgressBarComponent.html +4 -0
  145. package/docs/classes/NavigationService.html +17 -0
  146. package/docs/classes/ReplaceRouterPathsPipe.html +4 -0
  147. package/docs/classes/ReplaceRouterPathsService.html +3 -0
  148. package/docs/classes/ResetButtonComponent.html +3 -0
  149. package/docs/classes/SettingsButtonComponent.html +30 -0
  150. package/docs/classes/SidenavComponent.html +5 -0
  151. package/docs/classes/SidenavComponentService.html +5 -0
  152. package/docs/classes/SidenavFooterDirective.html +3 -0
  153. package/docs/classes/SidenavHeaderDirective.html +3 -0
  154. package/docs/classes/SidenavToggleButtonComponent.html +4 -0
  155. package/docs/classes/SignOutComponent.html +4 -0
  156. package/docs/classes/ToggleWindowSidenavButtonComponent.html +5 -0
  157. package/docs/classes/UserProfileIconComponent.html +6 -0
  158. package/docs/classes/VersionComponent.html +7 -0
  159. package/docs/classes/WindowContainerSidenavComponent.html +10 -0
  160. package/docs/documentation.json +13292 -0
  161. package/docs/functions/IsNavigationDividerItem.html +1 -0
  162. package/docs/functions/IsNavigationInsertItem.html +1 -0
  163. package/docs/functions/IsNavigationItem.html +1 -0
  164. package/docs/index.html +16 -0
  165. package/docs/interfaces/ExternalApps.html +8 -0
  166. package/docs/interfaces/LogoConfig.html +4 -0
  167. package/docs/interfaces/NavigationDividerItem.html +3 -0
  168. package/docs/interfaces/NavigationInsertItem.html +2 -0
  169. package/docs/interfaces/NavigationItem.html +6 -0
  170. package/docs/interfaces/NavigationStatus.html +2 -0
  171. package/docs/modules.html +47 -0
  172. package/docs/types/ExtractUsernameFromProfileFn.html +1 -0
  173. package/docs/types/Navigation.html +1 -0
  174. package/docs/types/NavigationWithInserts.html +1 -0
  175. package/docs/variables/EXTRACT_USERNAME_FROM_PROFILE.html +1 -0
  176. package/docs/variables/RXAP_FOOTER_COMPONENT.html +1 -0
  177. package/docs/variables/RXAP_HEADER_COMPONENT.html +1 -0
  178. package/docs/variables/RXAP_LAYOUT_APPS_GRID.html +1 -0
  179. package/docs/variables/RXAP_LOGO_CONFIG.html +1 -0
  180. package/docs/variables/RXAP_NAVIGATION_CONFIG.html +1 -0
  181. package/docs/variables/RXAP_NAVIGATION_CONFIG_INSERTS.html +1 -0
  182. package/package.json +44 -44
@@ -0,0 +1,657 @@
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 component">
83
+ <div class="content-data">
84
+
85
+
86
+
87
+
88
+ <ol class="breadcrumb">
89
+ <li class="breadcrumb-item">Components</li>
90
+ <li class="breadcrumb-item"
91
+ >
92
+ UserProfileIconComponent</li>
93
+ </ol>
94
+
95
+ <ul class="nav nav-tabs" role="tablist">
96
+ <li class="nav-item">
97
+ <a href="#info" class="nav-link active"
98
+ role="tab" id="info-tab" data-bs-toggle="tab" data-link="info">Info</a>
99
+ </li>
100
+ <li class="nav-item">
101
+ <a href="#source" class="nav-link"
102
+ role="tab" id="source-tab" data-bs-toggle="tab" data-link="source">Source</a>
103
+ </li>
104
+ <li class="nav-item">
105
+ <a href="#templateData" class="nav-link"
106
+ role="tab" id="templateData-tab" data-bs-toggle="tab" data-link="template">Template</a>
107
+ </li>
108
+ <li class="nav-item">
109
+ <a href="#styleData" class="nav-link"
110
+ role="tab" id="styleData-tab" data-bs-toggle="tab" data-link="style">Styles</a>
111
+ </li>
112
+ <li class="nav-item">
113
+ <a href="#tree" class="nav-link"
114
+ role="tab" id="tree-tab" data-bs-toggle="tab" data-link="dom-tree">DOM Tree</a>
115
+ </li>
116
+ </ul>
117
+
118
+ <div class="tab-content">
119
+ <div class="tab-pane fade active in" id="info"><p class="comment">
120
+ <h3>File</h3>
121
+ </p>
122
+ <p class="comment">
123
+ <code>src/lib/header/user-profile-icon/user-profile-icon.component.ts</code>
124
+ </p>
125
+
126
+
127
+
128
+
129
+
130
+
131
+ <section data-compodoc="block-metadata">
132
+ <h3>Metadata</h3>
133
+ <table class="table table-sm table-hover metadata">
134
+ <tbody>
135
+
136
+ <tr>
137
+ <td class="col-md-3">changeDetection</td>
138
+ <td class="col-md-9"><code>ChangeDetectionStrategy.OnPush</code></td>
139
+ </tr>
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+ <tr>
152
+ <td class="col-md-3">selector</td>
153
+ <td class="col-md-9"><code>rxap-user-profile-icon</code></td>
154
+ </tr>
155
+
156
+ <tr>
157
+ <td class="col-md-3">standalone</td>
158
+ <td class="col-md-9"><code>true</code></td>
159
+ </tr>
160
+
161
+ <tr>
162
+ <td class="col-md-3">imports</td>
163
+ <td class="col-md-9">
164
+ <code>MatMenuModule</code>
165
+ <code>MatIconModule</code>
166
+ <code>NgIf</code>
167
+ <code>AsyncPipe</code>
168
+ </td>
169
+ </tr>
170
+
171
+ <tr>
172
+ <td class="col-md-3">styleUrls</td>
173
+ <td class="col-md-9"><code>./user-profile-icon.component.scss</code></td>
174
+ </tr>
175
+
176
+
177
+
178
+ <tr>
179
+ <td class="col-md-3">templateUrl</td>
180
+ <td class="col-md-9"><code>./user-profile-icon.component.html</code></td>
181
+ </tr>
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+ </tbody>
191
+ </table>
192
+ </section>
193
+
194
+ <section data-compodoc="block-index">
195
+ <h3 id="index">Index</h3>
196
+ <table class="table table-sm table-bordered index-table">
197
+ <tbody>
198
+ <tr>
199
+ <td class="col-md-4">
200
+ <h6><b>Properties</b></h6>
201
+ </td>
202
+ </tr>
203
+ <tr>
204
+ <td class="col-md-4">
205
+ <ul class="index-list">
206
+ <li>
207
+ <span class="modifier">Public</span>
208
+ <a href="#username" >username</a>
209
+ </li>
210
+ </ul>
211
+ </td>
212
+ </tr>
213
+
214
+ <tr>
215
+ <td class="col-md-4">
216
+ <h6><b>Methods</b></h6>
217
+ </td>
218
+ </tr>
219
+ <tr>
220
+ <td class="col-md-4">
221
+ <ul class="index-list">
222
+ <li>
223
+ <span class="modifier">Public</span>
224
+ <span class="modifier">Async</span>
225
+ <a href="#logout" >logout</a>
226
+ </li>
227
+ </ul>
228
+ </td>
229
+ </tr>
230
+
231
+
232
+
233
+
234
+
235
+ </tbody>
236
+ </table>
237
+ </section>
238
+
239
+ <section data-compodoc="block-constructor">
240
+ <h3 id="constructor">Constructor</h3>
241
+ <table class="table table-sm table-bordered">
242
+ <tbody>
243
+ <tr>
244
+ <td class="col-md-4">
245
+ <code>constructor(userProfileService: UserProfileDataSource<T>, authenticationService: RxapAuthenticationService, extractUsernameFromProfile: <a href="../undefineds/ExtractUsernameFromProfileFn.html" target="_self">ExtractUsernameFromProfileFn&lt;T&gt;</a>)</code>
246
+ </td>
247
+ </tr>
248
+ <tr>
249
+ <td class="col-md-4">
250
+ <div class="io-line">Defined in <a href="" data-line="52" class="link-to-prism">src/lib/header/user-profile-icon/user-profile-icon.component.ts:52</a></div>
251
+ </td>
252
+ </tr>
253
+
254
+ <tr>
255
+ <td class="col-md-4">
256
+ <div>
257
+ <b>Parameters :</b>
258
+ <table class="params">
259
+ <thead>
260
+ <tr>
261
+ <td>Name</td>
262
+ <td>Type</td>
263
+ <td>Optional</td>
264
+ </tr>
265
+ </thead>
266
+ <tbody>
267
+ <tr>
268
+ <td>userProfileService</td>
269
+
270
+ <td>
271
+ <code>UserProfileDataSource&lt;T&gt;</code>
272
+ </td>
273
+
274
+ <td>
275
+ No
276
+ </td>
277
+
278
+ </tr>
279
+ <tr>
280
+ <td>authenticationService</td>
281
+
282
+ <td>
283
+ <code>RxapAuthenticationService</code>
284
+ </td>
285
+
286
+ <td>
287
+ No
288
+ </td>
289
+
290
+ </tr>
291
+ <tr>
292
+ <td>extractUsernameFromProfile</td>
293
+
294
+ <td>
295
+ <code><a href="../miscellaneous/typealiases.html#ExtractUsernameFromProfileFn" target="_self" >ExtractUsernameFromProfileFn&lt;T&gt;</a></code>
296
+ </td>
297
+
298
+ <td>
299
+ No
300
+ </td>
301
+
302
+ </tr>
303
+ </tbody>
304
+ </table>
305
+ </div>
306
+ </td>
307
+ </tr>
308
+ </tbody>
309
+ </table>
310
+ </section>
311
+
312
+
313
+
314
+
315
+
316
+ <section data-compodoc="block-methods">
317
+
318
+ <h3 id="methods">
319
+ Methods
320
+ </h3>
321
+ <table class="table table-sm table-bordered">
322
+ <tbody>
323
+ <tr>
324
+ <td class="col-md-4">
325
+ <a name="logout"></a>
326
+ <span class="name">
327
+ <span class="modifier">Public</span>
328
+ <span class="modifier">Async</span>
329
+ <span ><b>logout</b></span>
330
+ <a href="#logout"><span class="icon ion-ios-link"></span></a>
331
+ </span>
332
+ </td>
333
+ </tr>
334
+ <tr>
335
+ <td class="col-md-4">
336
+ <span class="modifier-icon icon ion-ios-reset"></span>
337
+ <code>logout()</code>
338
+ </td>
339
+ </tr>
340
+
341
+
342
+ <tr>
343
+ <td class="col-md-4">
344
+ <div class="io-line">Defined in <a href="" data-line="74"
345
+ class="link-to-prism">src/lib/header/user-profile-icon/user-profile-icon.component.ts:74</a></div>
346
+ </td>
347
+ </tr>
348
+
349
+
350
+ <tr>
351
+ <td class="col-md-4">
352
+
353
+ <div class="io-description">
354
+ <b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >any</a></code>
355
+
356
+ </div>
357
+ </td>
358
+ </tr>
359
+ </tbody>
360
+ </table>
361
+ </section>
362
+ <section data-compodoc="block-properties">
363
+
364
+ <h3 id="inputs">
365
+ Properties
366
+ </h3>
367
+ <table class="table table-sm table-bordered">
368
+ <tbody>
369
+ <tr>
370
+ <td class="col-md-4">
371
+ <a name="username"></a>
372
+ <span class="name">
373
+ <span class="modifier">Public</span>
374
+ <span ><b>username</b></span>
375
+ <a href="#username"><span class="icon ion-ios-link"></span></a>
376
+ </span>
377
+ </td>
378
+ </tr>
379
+ <tr>
380
+ <td class="col-md-4">
381
+ <i>Type : </i> <code>Signal&lt;string | null&gt;</code>
382
+
383
+ </td>
384
+ </tr>
385
+ <tr>
386
+ <td class="col-md-4">
387
+ <div class="io-line">Defined in <a href="" data-line="52" class="link-to-prism">src/lib/header/user-profile-icon/user-profile-icon.component.ts:52</a></div>
388
+ </td>
389
+ </tr>
390
+
391
+
392
+ </tbody>
393
+ </table>
394
+ </section>
395
+
396
+ </div>
397
+
398
+
399
+ <div class="tab-pane fade tab-source-code" id="source">
400
+ <pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {
401
+ AsyncPipe,
402
+ NgIf,
403
+ } from &#x27;@angular/common&#x27;;
404
+ import {
405
+ ChangeDetectionStrategy,
406
+ Component,
407
+ Inject,
408
+ InjectionToken,
409
+ Signal,
410
+ } from &#x27;@angular/core&#x27;;
411
+ import { toSignal } from &#x27;@angular/core/rxjs-interop&#x27;;
412
+ import { MatIconModule } from &#x27;@angular/material/icon&#x27;;
413
+ import { MatMenuModule } from &#x27;@angular/material/menu&#x27;;
414
+ import { RxapAuthenticationService } from &#x27;@rxap/authentication&#x27;;
415
+ import { UserProfileDataSource } from &#x27;@rxap/ngx-user&#x27;;
416
+ import {
417
+ distinctUntilChanged,
418
+ filter,
419
+ skip,
420
+ } from &#x27;rxjs&#x27;;
421
+ import {
422
+ map,
423
+ switchMap,
424
+ } from &#x27;rxjs/operators&#x27;;
425
+
426
+ export type ExtractUsernameFromProfileFn&lt;T &#x3D; unknown&gt; &#x3D; (profile: T) &#x3D;&gt; string | null;
427
+
428
+ export const EXTRACT_USERNAME_FROM_PROFILE &#x3D; new InjectionToken&lt;ExtractUsernameFromProfileFn&gt;(
429
+ &#x27;extract-username-from-profile&#x27;,
430
+ {
431
+ providedIn: &#x27;root&#x27;,
432
+ factory: () &#x3D;&gt; (profile: any) &#x3D;&gt; (profile ? profile.username ?? profile.email ?? profile.name : null) ?? null,
433
+ },
434
+ );
435
+
436
+ @Component({
437
+ selector: &#x27;rxap-user-profile-icon&#x27;,
438
+ templateUrl: &#x27;./user-profile-icon.component.html&#x27;,
439
+ styleUrls: [ &#x27;./user-profile-icon.component.scss&#x27; ],
440
+ changeDetection: ChangeDetectionStrategy.OnPush,
441
+ standalone: true,
442
+ imports: [
443
+ MatMenuModule,
444
+ MatIconModule,
445
+ NgIf,
446
+ AsyncPipe,
447
+ ],
448
+ })
449
+ export class UserProfileIconComponent&lt;T &#x3D; unknown&gt; {
450
+
451
+ public username: Signal&lt;string | null&gt;;
452
+
453
+ constructor(
454
+ private readonly userProfileService: UserProfileDataSource&lt;T&gt;,
455
+ private readonly authenticationService: RxapAuthenticationService,
456
+ @Inject(EXTRACT_USERNAME_FROM_PROFILE)
457
+ extractUsernameFromProfile: ExtractUsernameFromProfileFn&lt;T&gt;,
458
+ ) {
459
+ this.username &#x3D; toSignal(this.authenticationService.isAuthenticated$.pipe(
460
+ filter(Boolean),
461
+ switchMap(() &#x3D;&gt; this.userProfileService.connect({
462
+ viewChange: this.authenticationService.isAuthenticated$.pipe(
463
+ skip(1),
464
+ filter(Boolean),
465
+ distinctUntilChanged(),
466
+ ),
467
+ })),
468
+ filter(Boolean),
469
+ map(extractUsernameFromProfile),
470
+ ), { initialValue: null });
471
+ }
472
+
473
+ public async logout() {
474
+ await this.authenticationService.signOut();
475
+ }
476
+
477
+
478
+ }
479
+ </code></pre>
480
+ </div>
481
+
482
+ <div class="tab-pane fade " id="templateData">
483
+ <pre class="line-numbers"><code class="language-html">&lt;button [matMenuTriggerFor]&#x3D;&quot;menu&quot;
484
+ [disabled]&#x3D;&quot;!username()&quot;
485
+ class&#x3D;&quot;profile-icon flex flex-row justify-center items-center&quot;&gt;
486
+ &lt;mat-icon class&#x3D;&quot;avatar-icon&quot; svgIcon&#x3D;&quot;account-circle&quot;&gt;&lt;/mat-icon&gt;
487
+ &lt;/button&gt;
488
+
489
+ &lt;mat-menu #menu&#x3D;&quot;matMenu&quot; [yPosition]&#x3D;&quot;&#x27;below&#x27;&quot; class&#x3D;&quot;!max-w-none&quot;&gt;
490
+ &lt;button mat-menu-item&gt;
491
+ &lt;span class&#x3D;&quot;flex flex-row gap-2&quot;&gt;
492
+ &lt;mat-icon svgIcon&#x3D;&quot;account&quot;&gt;&lt;/mat-icon&gt;
493
+ &lt;span&gt;{{username()}}&lt;/span&gt;
494
+ &lt;/span&gt;
495
+ &lt;/button&gt;
496
+ &lt;button (click)&#x3D;&quot;logout()&quot; mat-menu-item&gt;
497
+ &lt;span class&#x3D;&quot;flex flex-row gap-2&quot;&gt;
498
+ &lt;mat-icon svgIcon&#x3D;&quot;logout&quot;&gt;&lt;/mat-icon&gt;
499
+ &lt;span i18n&gt;Logout&lt;/span&gt;
500
+ &lt;/span&gt;
501
+ &lt;/button&gt;
502
+ &lt;/mat-menu&gt;
503
+ </code></pre>
504
+ </div>
505
+
506
+ <div class="tab-pane fade " id="styleData">
507
+ <p class="comment">
508
+ <code>./user-profile-icon.component.scss</code>
509
+ </p>
510
+ <pre class="line-numbers"><code class="language-scss">.profile-icon {
511
+ border-radius: 100%;
512
+ border: none;
513
+ height: 32px;
514
+ width: 32px;
515
+ overflow: hidden;
516
+ background-position: center center;
517
+ background-repeat: no-repeat;
518
+ background-size: cover;
519
+
520
+ .avatar-icon {
521
+ width: 32px;
522
+ height: 32px;
523
+ font-size: 32px;
524
+ }
525
+
526
+ &amp;:hover {
527
+ cursor: pointer;
528
+ }
529
+
530
+ &amp;:focus {
531
+ outline: none;
532
+ }
533
+
534
+ }
535
+ </code></pre>
536
+ </div>
537
+
538
+ <div class="tab-pane fade " id="tree">
539
+ <div id="tree-container"></div>
540
+ <div class="tree-legend">
541
+ <div class="title">
542
+ <b>Legend</b>
543
+ </div>
544
+ <div>
545
+ <div class="color htmlelement"></div><span>Html element</span>
546
+ </div>
547
+ <div>
548
+ <div class="color component"></div><span>Component</span>
549
+ </div>
550
+ <div>
551
+ <div class="color directive"></div><span>Html element with directive</span>
552
+ </div>
553
+ </div>
554
+ </div>
555
+
556
+
557
+ </div>
558
+
559
+ <script src="../js/libs/vis.min.js"></script>
560
+ <script src="../js/libs/htmlparser.js"></script>
561
+ <script src="../js/libs/deep-iterator.js"></script>
562
+ <script>
563
+ var COMPONENT_TEMPLATE = '<div><button [matMenuTriggerFor]="menu" [disabled]="!username()" class="profile-icon flex flex-row justify-center items-center"> <mat-icon class="avatar-icon" svgIcon="account-circle"></mat-icon></button><mat-menu #menu="matMenu" [yPosition]="\'below\'" class="!max-w-none"> <button mat-menu-item> <span class="flex flex-row gap-2"> <mat-icon svgIcon="account"></mat-icon> <span>{{username()}}</span> </span> </button> <button (click)="logout()" mat-menu-item> <span class="flex flex-row gap-2"> <mat-icon svgIcon="logout"></mat-icon> <span i18n>Logout</span> </span> </button></mat-menu></div>'
564
+ var COMPONENTS = [{'name': 'AppsButtonComponent', 'selector': 'rxap-apps-button'},{'name': 'FooterComponent', 'selector': 'rxap-footer'},{'name': 'HeaderComponent', 'selector': 'rxap-header'},{'name': 'LanguageSelectorComponent', 'selector': 'rxap-language-selector'},{'name': 'LayoutComponent', 'selector': 'rxap-layout'},{'name': 'NavigationComponent', 'selector': 'ul[rxap-navigation]'},{'name': 'NavigationItemComponent', 'selector': 'li[rxap-navigation-item]'},{'name': 'NavigationProgressBarComponent', 'selector': 'rxap-navigation-progress-bar'},{'name': 'ResetButtonComponent', 'selector': 'rxap-reset-button'},{'name': 'SettingsButtonComponent', 'selector': 'rxap-settings-button'},{'name': 'SidenavComponent', 'selector': 'rxap-sidenav'},{'name': 'SidenavToggleButtonComponent', 'selector': 'rxap-sidenav-toggle-button'},{'name': 'SignOutComponent', 'selector': 'rxap-sign-out'},{'name': 'ToggleWindowSidenavButtonComponent', 'selector': 'rxap-toggle-window-sidenav-button'},{'name': 'UserProfileIconComponent', 'selector': 'rxap-user-profile-icon'},{'name': 'VersionComponent', 'selector': 'rxap-version'},{'name': 'WindowContainerSidenavComponent', 'selector': 'rxap-window-container-sidenav'}];
565
+ var DIRECTIVES = [{'name': 'FooterDirective', 'selector': '[rxapFooter]'},{'name': 'SidenavFooterDirective', 'selector': '[rxapSidenavFooter]'},{'name': 'SidenavHeaderDirective', 'selector': '[rxapSidenavHeader]'}];
566
+ var ACTUAL_COMPONENT = {'name': 'UserProfileIconComponent'};
567
+ </script>
568
+ <script src="../js/tree.js"></script>
569
+
570
+
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+
580
+
581
+
582
+
583
+
584
+
585
+
586
+ </div><div class="search-results">
587
+ <div class="has-results">
588
+ <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
589
+ <ul class="search-results-list"></ul>
590
+ </div>
591
+ <div class="no-results">
592
+ <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
593
+ </div>
594
+ </div>
595
+ </div>
596
+ <!-- END CONTENT -->
597
+ </div>
598
+ </div>
599
+
600
+ <label class="dark-mode-switch">
601
+ <input type="checkbox">
602
+ <span class="slider">
603
+ <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">
604
+ <path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
605
+ </svg>
606
+ </span>
607
+ </label>
608
+
609
+ <script>
610
+ var COMPODOC_CURRENT_PAGE_DEPTH = 1;
611
+ var COMPODOC_CURRENT_PAGE_CONTEXT = 'component';
612
+ var COMPODOC_CURRENT_PAGE_URL = 'UserProfileIconComponent.html';
613
+ var MAX_SEARCH_RESULTS = 15;
614
+ </script>
615
+
616
+ <script>
617
+ $darkModeToggleSwitchers = document.querySelectorAll('.dark-mode-switch input');
618
+ checkToggle(darkModeState);
619
+ if ($darkModeToggleSwitchers.length > 0) {
620
+ for (var i = 0; i < $darkModeToggleSwitchers.length; i++) {
621
+ $darkModeToggleSwitchers[i].addEventListener('change', function (event) {
622
+ darkModeState = !darkModeState;
623
+ toggleDarkMode(darkModeState);
624
+ });
625
+ }
626
+ }
627
+ </script>
628
+
629
+ <script src="../js/libs/custom-elements.min.js"></script>
630
+ <script src="../js/libs/lit-html.js"></script>
631
+
632
+ <script src="../js/menu-wc.js" defer></script>
633
+ <script nomodule src="../js/menu-wc_es5.js" defer></script>
634
+
635
+ <script src="../js/libs/bootstrap-native.js"></script>
636
+
637
+ <script src="../js/libs/es6-shim.min.js"></script>
638
+ <script src="../js/libs/EventDispatcher.js"></script>
639
+ <script src="../js/libs/promise.min.js"></script>
640
+ <script src="../js/libs/zepto.min.js"></script>
641
+
642
+ <script src="../js/compodoc.js"></script>
643
+
644
+ <script src="../js/tabs.js"></script>
645
+ <script src="../js/menu.js"></script>
646
+ <script src="../js/libs/clipboard.min.js"></script>
647
+ <script src="../js/libs/prism.js"></script>
648
+ <script src="../js/sourceCode.js"></script>
649
+ <script src="../js/search/search.js"></script>
650
+ <script src="../js/search/lunr.min.js"></script>
651
+ <script src="../js/search/search-lunr.js"></script>
652
+ <script src="../js/search/search_index.js"></script>
653
+ <script src="../js/lazy-load-graphs.js"></script>
654
+
655
+
656
+ </body>
657
+ </html>