@rxap/layout 19.0.0-dev.1 → 19.0.0-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +1 -1
- package/compodoc/changelog.html +89 -0
- package/compodoc/components/AppsButtonComponent.html +18 -23
- package/compodoc/components/BaseLayoutComponent.html +8 -13
- package/compodoc/components/DefaultHeaderComponent.html +76 -35
- package/compodoc/components/FooterComponent.html +7 -12
- package/compodoc/components/HeaderComponent.html +13 -18
- package/compodoc/components/LayoutComponent.html +29 -72
- package/compodoc/components/MinimalLayoutComponent.html +5 -10
- package/compodoc/components/NavigationComponent.html +31 -36
- package/compodoc/components/NavigationItemComponent.html +52 -51
- package/compodoc/components/NavigationProgressBarComponent.html +9 -14
- package/compodoc/components/ReleaseInfoComponent.html +11 -16
- package/compodoc/components/SettingsButtonComponent.html +64 -53
- package/compodoc/components/SidenavComponent.html +35 -40
- package/compodoc/components/SidenavToggleButtonComponent.html +11 -16
- package/compodoc/components/UserProfileIconComponent.html +18 -20
- package/compodoc/dependencies.html +23 -17
- package/compodoc/index.html +1 -1
- package/compodoc/injectables/DefaultHeaderService.html +585 -0
- package/compodoc/interfaces/NavigationDividerItem.html +1 -1
- package/compodoc/interfaces/NavigationInsertItem.html +1 -1
- package/compodoc/interfaces/NavigationItem.html +3 -3
- package/compodoc/interfaces/NavigationStatus.html +1 -1
- package/compodoc/interfaces/ReleaseInfoModule.html +2 -0
- package/compodoc/interfaces/SettingsMenuItem.html +2 -0
- package/compodoc/js/menu-wc.js +3 -0
- package/compodoc/js/menu-wc_es5.js +2 -2
- package/compodoc/js/search/search_index.js +2 -2
- package/compodoc/miscellaneous/functions.html +387 -6
- package/compodoc/miscellaneous/typealiases.html +19 -0
- package/compodoc/miscellaneous/variables.html +50 -1
- package/compodoc/overview.html +1 -1
- package/compodoc/properties.html +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/AppsButtonComponent.html +3 -3
- package/docs/classes/BaseLayoutComponent.html +1 -1
- package/docs/classes/DefaultHeaderComponent.html +5 -2
- package/docs/classes/DefaultHeaderService.html +16 -0
- package/docs/classes/ExternalAppsService.html +2 -2
- package/docs/classes/FooterComponent.html +2 -2
- package/docs/classes/FooterDirective.html +2 -2
- package/docs/classes/FooterService.html +6 -6
- package/docs/classes/HeaderComponent.html +2 -2
- package/docs/classes/HeaderDirective.html +2 -2
- package/docs/classes/HeaderService.html +6 -6
- package/docs/classes/LayoutComponent.html +2 -2
- package/docs/classes/LayoutService.html +2 -2
- package/docs/classes/LogoService.html +2 -2
- package/docs/classes/MinimalLayoutComponent.html +1 -1
- package/docs/classes/NavigationComponent.html +2 -2
- package/docs/classes/NavigationItemComponent.html +2 -2
- package/docs/classes/NavigationProgressBarComponent.html +2 -2
- package/docs/classes/NavigationService.html +3 -3
- package/docs/classes/ReleaseInfoComponent.html +2 -2
- package/docs/classes/SettingsButtonComponent.html +2 -2
- package/docs/classes/SidenavComponent.html +2 -2
- package/docs/classes/SidenavFooterDirective.html +2 -2
- package/docs/classes/SidenavHeaderDirective.html +2 -2
- package/docs/classes/SidenavToggleButtonComponent.html +2 -2
- package/docs/classes/UserProfileIconComponent.html +2 -2
- package/docs/documentation.json +2279 -1170
- package/docs/functions/IsNavigationDividerItem.html +1 -1
- package/docs/functions/IsNavigationInsertItem.html +1 -1
- package/docs/functions/IsNavigationItem.html +1 -1
- package/docs/functions/provideExternalApps.html +1 -1
- package/docs/functions/provideLayout.html +1 -1
- package/docs/functions/withDefaultHeaderComponent.html +1 -1
- package/docs/functions/withDefaultHeaderItems.html +1 -0
- package/docs/functions/withFooterComponents.html +1 -1
- package/docs/functions/withHeaderComponents.html +1 -1
- package/docs/functions/withNavigationConfig.html +1 -1
- package/docs/functions/withNavigationInserts.html +1 -1
- package/docs/functions/withReleaseInfoModules.html +1 -1
- package/docs/functions/withSettingsMenuItems.html +1 -1
- package/docs/functions/withUserProfileDataSource.html +1 -1
- package/docs/index.html +1 -1
- package/docs/interfaces/NavigationDividerItem.html +2 -2
- package/docs/interfaces/NavigationInsertItem.html +2 -2
- package/docs/interfaces/NavigationItem.html +2 -2
- package/docs/interfaces/NavigationStatus.html +2 -2
- package/docs/interfaces/ReleaseInfoModule.html +2 -2
- package/docs/interfaces/SettingsMenuItem.html +2 -2
- package/docs/modules.html +5 -1
- package/docs/types/DefaultHeaderItemComponent.html +1 -0
- package/docs/types/ExternalApp.html +1 -1
- package/docs/types/ExtractUsernameFromProfileFn.html +1 -1
- package/docs/types/Navigation.html +1 -1
- package/docs/types/NavigationWithInserts.html +1 -1
- package/docs/types/SettingsMenuItemComponent.html +1 -1
- package/docs/variables/EXTRACT_USERNAME_FROM_PROFILE.html +1 -1
- package/docs/variables/RXAP_DEFAULT_HEADER_ITEM_COMPONENT.html +1 -0
- package/docs/variables/RXAP_EXTERNAL_APP.html +1 -1
- package/docs/variables/RXAP_EXTERNAL_APP_FILTER.html +1 -1
- package/docs/variables/RXAP_FOOTER_COMPONENT.html +1 -1
- package/docs/variables/RXAP_HEADER_COMPONENT.html +1 -1
- package/docs/variables/RXAP_LAYOUT_APPS_GRID.html +1 -1
- package/docs/variables/RXAP_LOGO_CONFIG.html +1 -1
- package/docs/variables/RXAP_NAVIGATION_CONFIG.html +1 -1
- package/docs/variables/RXAP_NAVIGATION_CONFIG_INSERTS.html +1 -1
- package/docs/variables/RXAP_RELEASE_INFO_MODULE.html +1 -1
- package/docs/variables/RXAP_SETTINGS_MENU_ITEM.html +1 -1
- package/docs/variables/RXAP_SETTINGS_MENU_ITEM_COMPONENT.html +1 -1
- package/docs/variables/RXAP_USER_PROFILE_DATA_SOURCE.html +1 -1
- package/package.json +35 -36
- package/src/migrations/18.0.0/add-seperate-external-apps-provider/__snapshots__/add-seperate-external-apps-provider.spec.ts.snap +22 -0
- package/src/migrations/18.0.0/add-theme-provider-to-app-config/__snapshots__/add-theme-provider-to-app-config.spec.ts.snap +18 -0
- package/src/migrations/18.0.0/add-user-theme-provider-to-layout-providers/__snapshots__/add-user-theme-provider-to-layout-providers.spec.ts.snap +51 -0
- package/src/migrations/18.0.0/add-with-user-profile-provider/__snapshots__/add-with-user-profile-provider.spec.ts.snap +53 -0
- package/theme.css +425 -1
|
@@ -101,7 +101,13 @@
|
|
|
101
101
|
</ol>
|
|
102
102
|
<ul class="dependencies-list">
|
|
103
103
|
<li>
|
|
104
|
-
<b>@nx/devkit</b> :
|
|
104
|
+
<b>@nx/devkit</b> : 20.2.1</li>
|
|
105
|
+
<li>
|
|
106
|
+
<b>@rxap/ts-morph</b> : ^1.5.2-dev.2</li>
|
|
107
|
+
<li>
|
|
108
|
+
<b>@rxap/workspace-ts-morph</b> : ^19.1.8-dev.2</li>
|
|
109
|
+
<li>
|
|
110
|
+
<b>@rxap/workspace-utilities</b> : ^19.6.0-dev.0</li>
|
|
105
111
|
<li>
|
|
106
112
|
<b>tslib</b> : 2.6.2</li>
|
|
107
113
|
</ul>
|
|
@@ -113,37 +119,37 @@
|
|
|
113
119
|
</ol>
|
|
114
120
|
<ul class="dependencies-list">
|
|
115
121
|
<li>
|
|
116
|
-
<b>@angular/animations</b> :
|
|
122
|
+
<b>@angular/animations</b> : 19.0.3</li>
|
|
117
123
|
<li>
|
|
118
|
-
<b>@angular/cdk</b> :
|
|
124
|
+
<b>@angular/cdk</b> : 19.0.2</li>
|
|
119
125
|
<li>
|
|
120
|
-
<b>@angular/common</b> :
|
|
126
|
+
<b>@angular/common</b> : 19.0.3</li>
|
|
121
127
|
<li>
|
|
122
|
-
<b>@angular/core</b> :
|
|
128
|
+
<b>@angular/core</b> : 19.0.3</li>
|
|
123
129
|
<li>
|
|
124
|
-
<b>@angular/material</b> :
|
|
130
|
+
<b>@angular/material</b> : 19.0.2</li>
|
|
125
131
|
<li>
|
|
126
|
-
<b>@angular/router</b> :
|
|
132
|
+
<b>@angular/router</b> : 19.0.3</li>
|
|
127
133
|
<li>
|
|
128
|
-
<b>@rxap/browser-utilities</b> : ^1.1.
|
|
134
|
+
<b>@rxap/browser-utilities</b> : ^1.1.9-dev.2</li>
|
|
129
135
|
<li>
|
|
130
|
-
<b>@rxap/config</b> : ^
|
|
136
|
+
<b>@rxap/config</b> : ^19.0.0-dev.2</li>
|
|
131
137
|
<li>
|
|
132
|
-
<b>@rxap/
|
|
138
|
+
<b>@rxap/data-source</b> : ^19.0.0-dev.2</li>
|
|
133
139
|
<li>
|
|
134
|
-
<b>@rxap/
|
|
140
|
+
<b>@rxap/environment</b> : ^19.0.0-dev.2</li>
|
|
135
141
|
<li>
|
|
136
|
-
<b>@rxap/
|
|
142
|
+
<b>@rxap/material-directives</b> : ^19.0.0-dev.2</li>
|
|
137
143
|
<li>
|
|
138
|
-
<b>@rxap/ngx-
|
|
144
|
+
<b>@rxap/ngx-pub-sub</b> : ^19.0.0-dev.2</li>
|
|
139
145
|
<li>
|
|
140
|
-
<b>@rxap/ngx-
|
|
146
|
+
<b>@rxap/ngx-theme</b> : ^19.0.0-dev.2</li>
|
|
141
147
|
<li>
|
|
142
|
-
<b>@rxap/pattern</b> : ^1.1.
|
|
148
|
+
<b>@rxap/pattern</b> : ^1.1.10-dev.2</li>
|
|
143
149
|
<li>
|
|
144
|
-
<b>@rxap/utilities</b> : ^16.2
|
|
150
|
+
<b>@rxap/utilities</b> : ^16.4.1-dev.2</li>
|
|
145
151
|
<li>
|
|
146
|
-
<b>rxjs</b> :
|
|
152
|
+
<b>rxjs</b> : 7.8.1</li>
|
|
147
153
|
</ul>
|
|
148
154
|
|
|
149
155
|
|
package/compodoc/index.html
CHANGED
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
<h1>Installation</h1>
|
|
98
98
|
<p><strong>Add the package to your workspace:</strong></p>
|
|
99
99
|
<b>Example :</b><div><pre class="line-numbers"><code class="language-bash">yarn add @rxap/layout</code></pre></div><p><strong>Install peer dependencies:</strong></p>
|
|
100
|
-
<b>Example :</b><div><pre class="line-numbers"><code class="language-bash">yarn add @angular/animations@
|
|
100
|
+
<b>Example :</b><div><pre class="line-numbers"><code class="language-bash">yarn add @angular/animations@19.0.3 @angular/cdk@19.0.2 @angular/common@19.0.3 @angular/core@19.0.3 @angular/material@19.0.2 @angular/router@19.0.3 @rxap/browser-utilities@^1.1.9-dev.2 @rxap/config@^19.0.0-dev.2 @rxap/data-source@^19.0.0-dev.2 @rxap/environment@^19.0.0-dev.2 @rxap/material-directives@^19.0.0-dev.2 @rxap/ngx-pub-sub@^19.0.0-dev.2 @rxap/ngx-theme@^19.0.0-dev.2 @rxap/pattern@^1.1.10-dev.2 @rxap/utilities@^16.4.1-dev.2 rxjs@7.8.1 </code></pre></div><p><strong>Execute the init generator:</strong></p>
|
|
101
101
|
<b>Example :</b><div><pre class="line-numbers"><code class="language-bash">yarn nx g @rxap/layout:init</code></pre></div><h1>Get started</h1>
|
|
102
102
|
<h2>Layout</h2>
|
|
103
103
|
<p>Create a new file <code>layout.routes.ts</code> in the <code>app</code> folder. This file will contain all child routes that should be loaded within the layout component.</p>
|
|
@@ -0,0 +1,585 @@
|
|
|
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" >DefaultHeaderService</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/default-header/default-header.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="#portalCount" >portalCount</a>
|
|
141
|
+
</li>
|
|
142
|
+
<li>
|
|
143
|
+
<span class="modifier">Public</span>
|
|
144
|
+
<span class="modifier">Readonly</span>
|
|
145
|
+
<a href="#portals" >portals</a>
|
|
146
|
+
</li>
|
|
147
|
+
</ul>
|
|
148
|
+
</td>
|
|
149
|
+
</tr>
|
|
150
|
+
|
|
151
|
+
<tr>
|
|
152
|
+
<td class="col-md-4">
|
|
153
|
+
<h6><b>Methods</b></h6>
|
|
154
|
+
</td>
|
|
155
|
+
</tr>
|
|
156
|
+
<tr>
|
|
157
|
+
<td class="col-md-4">
|
|
158
|
+
<ul class="index-list">
|
|
159
|
+
<li>
|
|
160
|
+
<span class="modifier">Public</span>
|
|
161
|
+
<a href="#pushPortal" >pushPortal</a>
|
|
162
|
+
</li>
|
|
163
|
+
<li>
|
|
164
|
+
<span class="modifier">Public</span>
|
|
165
|
+
<a href="#removePortal" >removePortal</a>
|
|
166
|
+
</li>
|
|
167
|
+
</ul>
|
|
168
|
+
</td>
|
|
169
|
+
</tr>
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
</tbody>
|
|
176
|
+
</table>
|
|
177
|
+
</section>
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
<section data-compodoc="block-methods">
|
|
181
|
+
|
|
182
|
+
<h3 id="methods">
|
|
183
|
+
Methods
|
|
184
|
+
</h3>
|
|
185
|
+
<table class="table table-sm table-bordered">
|
|
186
|
+
<tbody>
|
|
187
|
+
<tr>
|
|
188
|
+
<td class="col-md-4">
|
|
189
|
+
<a name="pushPortal"></a>
|
|
190
|
+
<span class="name">
|
|
191
|
+
<span class="modifier">Public</span>
|
|
192
|
+
<span ><b>pushPortal</b></span>
|
|
193
|
+
<a href="#pushPortal"><span class="icon ion-ios-link"></span></a>
|
|
194
|
+
</span>
|
|
195
|
+
</td>
|
|
196
|
+
</tr>
|
|
197
|
+
<tr>
|
|
198
|
+
<td class="col-md-4">
|
|
199
|
+
<span class="modifier-icon icon ion-ios-reset"></span>
|
|
200
|
+
<code>pushPortal(portal: Portal<>)</code>
|
|
201
|
+
</td>
|
|
202
|
+
</tr>
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
<tr>
|
|
206
|
+
<td class="col-md-4">
|
|
207
|
+
<div class="io-line">Defined in <a href="" data-line="52"
|
|
208
|
+
class="link-to-prism">src/lib/default-header/default-header.service.ts:52</a></div>
|
|
209
|
+
</td>
|
|
210
|
+
</tr>
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
<tr>
|
|
214
|
+
<td class="col-md-4">
|
|
215
|
+
<div class="io-description"><p>Adds a portal to the list of portals.</p>
|
|
216
|
+
</div>
|
|
217
|
+
|
|
218
|
+
<div class="io-description">
|
|
219
|
+
<b>Parameters :</b>
|
|
220
|
+
|
|
221
|
+
<table class="params">
|
|
222
|
+
<thead>
|
|
223
|
+
<tr>
|
|
224
|
+
<td>Name</td>
|
|
225
|
+
<td>Type</td>
|
|
226
|
+
<td>Optional</td>
|
|
227
|
+
<td>Description</td>
|
|
228
|
+
</tr>
|
|
229
|
+
</thead>
|
|
230
|
+
<tbody>
|
|
231
|
+
<tr>
|
|
232
|
+
<td>portal</td>
|
|
233
|
+
<td>
|
|
234
|
+
<code>Portal<></code>
|
|
235
|
+
</td>
|
|
236
|
+
|
|
237
|
+
<td>
|
|
238
|
+
No
|
|
239
|
+
</td>
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
<td>
|
|
243
|
+
<ul>
|
|
244
|
+
<li>The portal to be added.</li>
|
|
245
|
+
</ul>
|
|
246
|
+
|
|
247
|
+
</td>
|
|
248
|
+
</tr>
|
|
249
|
+
</tbody>
|
|
250
|
+
</table>
|
|
251
|
+
</div>
|
|
252
|
+
<div class="io-description">
|
|
253
|
+
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
|
|
254
|
+
|
|
255
|
+
</div>
|
|
256
|
+
<div class="io-description">
|
|
257
|
+
|
|
258
|
+
</div>
|
|
259
|
+
</td>
|
|
260
|
+
</tr>
|
|
261
|
+
</tbody>
|
|
262
|
+
</table>
|
|
263
|
+
<table class="table table-sm table-bordered">
|
|
264
|
+
<tbody>
|
|
265
|
+
<tr>
|
|
266
|
+
<td class="col-md-4">
|
|
267
|
+
<a name="removePortal"></a>
|
|
268
|
+
<span class="name">
|
|
269
|
+
<span class="modifier">Public</span>
|
|
270
|
+
<span ><b>removePortal</b></span>
|
|
271
|
+
<a href="#removePortal"><span class="icon ion-ios-link"></span></a>
|
|
272
|
+
</span>
|
|
273
|
+
</td>
|
|
274
|
+
</tr>
|
|
275
|
+
<tr>
|
|
276
|
+
<td class="col-md-4">
|
|
277
|
+
<span class="modifier-icon icon ion-ios-reset"></span>
|
|
278
|
+
<code>removePortal(portal: Portal<>)</code>
|
|
279
|
+
</td>
|
|
280
|
+
</tr>
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
<tr>
|
|
284
|
+
<td class="col-md-4">
|
|
285
|
+
<div class="io-line">Defined in <a href="" data-line="68"
|
|
286
|
+
class="link-to-prism">src/lib/default-header/default-header.service.ts:68</a></div>
|
|
287
|
+
</td>
|
|
288
|
+
</tr>
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
<tr>
|
|
292
|
+
<td class="col-md-4">
|
|
293
|
+
<div class="io-description"><p>Removes a portal from the list of portals.</p>
|
|
294
|
+
</div>
|
|
295
|
+
|
|
296
|
+
<div class="io-description">
|
|
297
|
+
<b>Parameters :</b>
|
|
298
|
+
|
|
299
|
+
<table class="params">
|
|
300
|
+
<thead>
|
|
301
|
+
<tr>
|
|
302
|
+
<td>Name</td>
|
|
303
|
+
<td>Type</td>
|
|
304
|
+
<td>Optional</td>
|
|
305
|
+
<td>Description</td>
|
|
306
|
+
</tr>
|
|
307
|
+
</thead>
|
|
308
|
+
<tbody>
|
|
309
|
+
<tr>
|
|
310
|
+
<td>portal</td>
|
|
311
|
+
<td>
|
|
312
|
+
<code>Portal<></code>
|
|
313
|
+
</td>
|
|
314
|
+
|
|
315
|
+
<td>
|
|
316
|
+
No
|
|
317
|
+
</td>
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
<td>
|
|
321
|
+
<ul>
|
|
322
|
+
<li>The portal to be removed.</li>
|
|
323
|
+
</ul>
|
|
324
|
+
|
|
325
|
+
</td>
|
|
326
|
+
</tr>
|
|
327
|
+
</tbody>
|
|
328
|
+
</table>
|
|
329
|
+
</div>
|
|
330
|
+
<div class="io-description">
|
|
331
|
+
<b>Returns : </b> <code><a href="https://www.typescriptlang.org/docs/handbook/basic-types.html" target="_blank" >void</a></code>
|
|
332
|
+
|
|
333
|
+
</div>
|
|
334
|
+
<div class="io-description">
|
|
335
|
+
|
|
336
|
+
</div>
|
|
337
|
+
</td>
|
|
338
|
+
</tr>
|
|
339
|
+
</tbody>
|
|
340
|
+
</table>
|
|
341
|
+
</section>
|
|
342
|
+
<section data-compodoc="block-properties">
|
|
343
|
+
|
|
344
|
+
<h3 id="inputs">
|
|
345
|
+
Properties
|
|
346
|
+
</h3>
|
|
347
|
+
<table class="table table-sm table-bordered">
|
|
348
|
+
<tbody>
|
|
349
|
+
<tr>
|
|
350
|
+
<td class="col-md-4">
|
|
351
|
+
<a name="portalCount"></a>
|
|
352
|
+
<span class="name">
|
|
353
|
+
<span class="modifier">Public</span>
|
|
354
|
+
<span class="modifier">Readonly</span>
|
|
355
|
+
<span ><b>portalCount</b></span>
|
|
356
|
+
<a href="#portalCount"><span class="icon ion-ios-link"></span></a>
|
|
357
|
+
</span>
|
|
358
|
+
</td>
|
|
359
|
+
</tr>
|
|
360
|
+
<tr>
|
|
361
|
+
<td class="col-md-4">
|
|
362
|
+
<i>Default value : </i><code>computed(() => this.portals().length)</code>
|
|
363
|
+
</td>
|
|
364
|
+
</tr>
|
|
365
|
+
<tr>
|
|
366
|
+
<td class="col-md-4">
|
|
367
|
+
<div class="io-line">Defined in <a href="" data-line="42" class="link-to-prism">src/lib/default-header/default-header.service.ts:42</a></div>
|
|
368
|
+
</td>
|
|
369
|
+
</tr>
|
|
370
|
+
|
|
371
|
+
<tr>
|
|
372
|
+
<td class="col-md-4">
|
|
373
|
+
<div class="io-description"><p>Computes the count of portals.</p>
|
|
374
|
+
</div>
|
|
375
|
+
</td>
|
|
376
|
+
</tr>
|
|
377
|
+
|
|
378
|
+
</tbody>
|
|
379
|
+
</table>
|
|
380
|
+
<table class="table table-sm table-bordered">
|
|
381
|
+
<tbody>
|
|
382
|
+
<tr>
|
|
383
|
+
<td class="col-md-4">
|
|
384
|
+
<a name="portals"></a>
|
|
385
|
+
<span class="name">
|
|
386
|
+
<span class="modifier">Public</span>
|
|
387
|
+
<span class="modifier">Readonly</span>
|
|
388
|
+
<span ><b>portals</b></span>
|
|
389
|
+
<a href="#portals"><span class="icon ion-ios-link"></span></a>
|
|
390
|
+
</span>
|
|
391
|
+
</td>
|
|
392
|
+
</tr>
|
|
393
|
+
<tr>
|
|
394
|
+
<td class="col-md-4">
|
|
395
|
+
<i>Default value : </i><code>computed(() => [ ...this.injectedPortals(), ...this.methodPortals() ])</code>
|
|
396
|
+
</td>
|
|
397
|
+
</tr>
|
|
398
|
+
<tr>
|
|
399
|
+
<td class="col-md-4">
|
|
400
|
+
<div class="io-line">Defined in <a href="" data-line="34" class="link-to-prism">src/lib/default-header/default-header.service.ts:34</a></div>
|
|
401
|
+
</td>
|
|
402
|
+
</tr>
|
|
403
|
+
|
|
404
|
+
<tr>
|
|
405
|
+
<td class="col-md-4">
|
|
406
|
+
<div class="io-description"><p>Represents an array of <code>Portal</code> objects with unknown type.</p>
|
|
407
|
+
</div>
|
|
408
|
+
</td>
|
|
409
|
+
</tr>
|
|
410
|
+
|
|
411
|
+
</tbody>
|
|
412
|
+
</table>
|
|
413
|
+
</section>
|
|
414
|
+
|
|
415
|
+
</div>
|
|
416
|
+
|
|
417
|
+
|
|
418
|
+
<div class="tab-pane fade tab-source-code" id="source">
|
|
419
|
+
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import {
|
|
420
|
+
ComponentPortal,
|
|
421
|
+
Portal,
|
|
422
|
+
} from '@angular/cdk/portal';
|
|
423
|
+
import {
|
|
424
|
+
computed,
|
|
425
|
+
inject,
|
|
426
|
+
Injectable,
|
|
427
|
+
isDevMode,
|
|
428
|
+
signal,
|
|
429
|
+
} from '@angular/core';
|
|
430
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
431
|
+
import { from } from 'rxjs';
|
|
432
|
+
import { RXAP_DEFAULT_HEADER_ITEM_COMPONENT } from '../tokens';
|
|
433
|
+
import {
|
|
434
|
+
coerceArray,
|
|
435
|
+
IsFunction,
|
|
436
|
+
} from '@rxap/utilities';
|
|
437
|
+
|
|
438
|
+
@Injectable()
|
|
439
|
+
export class DefaultHeaderService {
|
|
440
|
+
|
|
441
|
+
private readonly components = toSignal(from(Promise.all(coerceArray(inject(RXAP_DEFAULT_HEADER_ITEM_COMPONENT, { optional: true }))
|
|
442
|
+
.map(item => IsFunction(item) ? item() : item))), { initialValue: [] });
|
|
443
|
+
|
|
444
|
+
private readonly injectedPortals = computed(() => this.components().map(component => new ComponentPortal(component)));
|
|
445
|
+
private readonly methodPortals = signal<Portal<unknown>[]>([]);
|
|
446
|
+
|
|
447
|
+
/**
|
|
448
|
+
* Represents an array of `Portal` objects with unknown type.
|
|
449
|
+
*
|
|
450
|
+
* @typedef {Array<Portal<unknown>>} SignalPortals
|
|
451
|
+
*/
|
|
452
|
+
public readonly portals = computed(() => [ ...this.injectedPortals(), ...this.methodPortals() ]);
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
/**
|
|
456
|
+
* Computes the count of portals.
|
|
457
|
+
*
|
|
458
|
+
* @returns {number} The count of portals.
|
|
459
|
+
*/
|
|
460
|
+
public readonly portalCount = computed(() => this.portals().length);
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
/**
|
|
464
|
+
* Adds a portal to the list of portals.
|
|
465
|
+
*
|
|
466
|
+
* @param {Portal<unknown>} portal - The portal to be added.
|
|
467
|
+
*
|
|
468
|
+
* @return {void}
|
|
469
|
+
*/
|
|
470
|
+
public pushPortal(portal: Portal<unknown>) {
|
|
471
|
+
if (!this.methodPortals().includes(portal)) {
|
|
472
|
+
this.methodPortals.update(portals => [ ...portals, portal ]);
|
|
473
|
+
} else {
|
|
474
|
+
if (isDevMode()) {
|
|
475
|
+
console.warn('Can not add the same portal multiple times');
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
/**
|
|
481
|
+
* Removes a portal from the list of portals.
|
|
482
|
+
*
|
|
483
|
+
* @param {Portal<unknown>} portal - The portal to be removed.
|
|
484
|
+
* @return {void}
|
|
485
|
+
*/
|
|
486
|
+
public removePortal(portal: Portal<unknown>) {
|
|
487
|
+
const index = this.methodPortals().indexOf(portal);
|
|
488
|
+
if (index !== -1) {
|
|
489
|
+
this.methodPortals.update(portals => {
|
|
490
|
+
portals.splice(index, 1);
|
|
491
|
+
return portals.slice();
|
|
492
|
+
});
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
}
|
|
497
|
+
</code></pre>
|
|
498
|
+
</div>
|
|
499
|
+
|
|
500
|
+
</div>
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
|
|
511
|
+
|
|
512
|
+
|
|
513
|
+
|
|
514
|
+
</div><div class="search-results">
|
|
515
|
+
<div class="has-results">
|
|
516
|
+
<h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
|
|
517
|
+
<ul class="search-results-list"></ul>
|
|
518
|
+
</div>
|
|
519
|
+
<div class="no-results">
|
|
520
|
+
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
|
|
521
|
+
</div>
|
|
522
|
+
</div>
|
|
523
|
+
</div>
|
|
524
|
+
<!-- END CONTENT -->
|
|
525
|
+
</div>
|
|
526
|
+
</div>
|
|
527
|
+
|
|
528
|
+
<label class="dark-mode-switch">
|
|
529
|
+
<input type="checkbox">
|
|
530
|
+
<span class="slider">
|
|
531
|
+
<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">
|
|
532
|
+
<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
|
|
533
|
+
</svg>
|
|
534
|
+
</span>
|
|
535
|
+
</label>
|
|
536
|
+
|
|
537
|
+
<script>
|
|
538
|
+
var COMPODOC_CURRENT_PAGE_DEPTH = 1;
|
|
539
|
+
var COMPODOC_CURRENT_PAGE_CONTEXT = 'injectable';
|
|
540
|
+
var COMPODOC_CURRENT_PAGE_URL = 'DefaultHeaderService.html';
|
|
541
|
+
var MAX_SEARCH_RESULTS = 15;
|
|
542
|
+
</script>
|
|
543
|
+
|
|
544
|
+
<script>
|
|
545
|
+
$darkModeToggleSwitchers = document.querySelectorAll('.dark-mode-switch input');
|
|
546
|
+
checkToggle(darkModeState);
|
|
547
|
+
if ($darkModeToggleSwitchers.length > 0) {
|
|
548
|
+
for (var i = 0; i < $darkModeToggleSwitchers.length; i++) {
|
|
549
|
+
$darkModeToggleSwitchers[i].addEventListener('change', function (event) {
|
|
550
|
+
darkModeState = !darkModeState;
|
|
551
|
+
toggleDarkMode(darkModeState);
|
|
552
|
+
});
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
</script>
|
|
556
|
+
|
|
557
|
+
<script src="../js/libs/custom-elements.min.js"></script>
|
|
558
|
+
<script src="../js/libs/lit-html.js"></script>
|
|
559
|
+
|
|
560
|
+
<script src="../js/menu-wc.js" defer></script>
|
|
561
|
+
<script nomodule src="../js/menu-wc_es5.js" defer></script>
|
|
562
|
+
|
|
563
|
+
<script src="../js/libs/bootstrap-native.js"></script>
|
|
564
|
+
|
|
565
|
+
<script src="../js/libs/es6-shim.min.js"></script>
|
|
566
|
+
<script src="../js/libs/EventDispatcher.js"></script>
|
|
567
|
+
<script src="../js/libs/promise.min.js"></script>
|
|
568
|
+
<script src="../js/libs/zepto.min.js"></script>
|
|
569
|
+
|
|
570
|
+
<script src="../js/compodoc.js"></script>
|
|
571
|
+
|
|
572
|
+
<script src="../js/tabs.js"></script>
|
|
573
|
+
<script src="../js/menu.js"></script>
|
|
574
|
+
<script src="../js/libs/clipboard.min.js"></script>
|
|
575
|
+
<script src="../js/libs/prism.js"></script>
|
|
576
|
+
<script src="../js/sourceCode.js"></script>
|
|
577
|
+
<script src="../js/search/search.js"></script>
|
|
578
|
+
<script src="../js/search/lunr.min.js"></script>
|
|
579
|
+
<script src="../js/search/search-lunr.js"></script>
|
|
580
|
+
<script src="../js/search/search_index.js"></script>
|
|
581
|
+
<script src="../js/lazy-load-graphs.js"></script>
|
|
582
|
+
|
|
583
|
+
|
|
584
|
+
</body>
|
|
585
|
+
</html>
|
|
@@ -284,7 +284,7 @@ export interface NavigationStatus {
|
|
|
284
284
|
}
|
|
285
285
|
|
|
286
286
|
export interface NavigationItem<Children = Navigation> extends Record<string, unknown> {
|
|
287
|
-
routerLink: string[];
|
|
287
|
+
routerLink: string[] | string;
|
|
288
288
|
label: string;
|
|
289
289
|
children?: Children;
|
|
290
290
|
icon?: IconConfig;
|