@flusys/ng-layout 4.0.2 → 4.1.1
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/README.md +367 -594
- package/assets/layout/_footer.scss +11 -1
- package/assets/layout/_topbar.scss +24 -0
- package/assets/layout/_topbar_nav.scss +1 -6
- package/fesm2022/flusys-ng-layout.mjs +23 -21
- package/fesm2022/flusys-ng-layout.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
display: flex;
|
|
3
3
|
align-items: center;
|
|
4
4
|
justify-content: center;
|
|
5
|
-
padding: 1rem 0
|
|
5
|
+
padding: 1rem 0;
|
|
6
6
|
gap: 0.5rem;
|
|
7
7
|
border-top: 1px solid var(--surface-border);
|
|
8
8
|
|
|
@@ -13,3 +13,13 @@
|
|
|
13
13
|
object-fit: contain;
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
+
|
|
17
|
+
@media (max-width: 639px) {
|
|
18
|
+
.layout-footer {
|
|
19
|
+
padding: 0.75rem 0;
|
|
20
|
+
|
|
21
|
+
.logo-image {
|
|
22
|
+
height: 1.5rem;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -190,3 +190,27 @@
|
|
|
190
190
|
}
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
|
+
|
|
194
|
+
@media (max-width: 639px) {
|
|
195
|
+
.layout-topbar {
|
|
196
|
+
padding: 0 0.75rem;
|
|
197
|
+
gap: 0.5rem;
|
|
198
|
+
|
|
199
|
+
.layout-topbar-actions {
|
|
200
|
+
gap: 0.25rem;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.layout-config-menu {
|
|
204
|
+
gap: 0.25rem;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.layout-topbar-action {
|
|
208
|
+
width: 2.25rem;
|
|
209
|
+
height: 2.25rem;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.layout-topbar-menu {
|
|
213
|
+
right: 0.75rem;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
@@ -66,10 +66,6 @@ $submenu-icon-margin: 0.5rem;
|
|
|
66
66
|
flex: 1;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
&:hover {
|
|
70
|
-
background-color: var(--surface-hover);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
69
|
&.active-route {
|
|
74
70
|
background-color: var(--p-primary-color);
|
|
75
71
|
color: var(--p-primary-contrast-color);
|
|
@@ -332,9 +328,8 @@ $submenu-icon-margin: 0.5rem;
|
|
|
332
328
|
}
|
|
333
329
|
}
|
|
334
330
|
|
|
335
|
-
// Show Level 1 submenu on hover
|
|
331
|
+
// Show Level 1 submenu on hover only (not active state - prevents submenu staying open)
|
|
336
332
|
&:hover > ul,
|
|
337
|
-
&.active-menuitem > ul,
|
|
338
333
|
> ul:hover {
|
|
339
334
|
@include show-submenu;
|
|
340
335
|
}
|
|
@@ -405,14 +405,16 @@ class AppFooter {
|
|
|
405
405
|
@if (displayLogo) {
|
|
406
406
|
<img [src]="displayLogo" [alt]="appName" class="logo-image" />
|
|
407
407
|
}
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
408
|
+
<span class="hidden sm:inline">
|
|
409
|
+
{{ appName }} {{ 'layout.footer.by' | translate }}
|
|
410
|
+
<a
|
|
411
|
+
[href]="authorUrl"
|
|
412
|
+
target="_blank"
|
|
413
|
+
rel="noopener noreferrer"
|
|
414
|
+
class="text-primary font-bold hover:underline"
|
|
415
|
+
>{{ authorName }}</a
|
|
416
|
+
>
|
|
417
|
+
</span>
|
|
416
418
|
</div>`, isInline: true, dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
417
419
|
}
|
|
418
420
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: AppFooter, decorators: [{
|
|
@@ -424,14 +426,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
424
426
|
@if (displayLogo) {
|
|
425
427
|
<img [src]="displayLogo" [alt]="appName" class="logo-image" />
|
|
426
428
|
}
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
429
|
+
<span class="hidden sm:inline">
|
|
430
|
+
{{ appName }} {{ 'layout.footer.by' | translate }}
|
|
431
|
+
<a
|
|
432
|
+
[href]="authorUrl"
|
|
433
|
+
target="_blank"
|
|
434
|
+
rel="noopener noreferrer"
|
|
435
|
+
class="text-primary font-bold hover:underline"
|
|
436
|
+
>{{ authorName }}</a
|
|
437
|
+
>
|
|
438
|
+
</span>
|
|
435
439
|
</div>`,
|
|
436
440
|
}]
|
|
437
441
|
}] });
|
|
@@ -1135,7 +1139,7 @@ class AppMenuitem {
|
|
|
1135
1139
|
}
|
|
1136
1140
|
updateSubmenuPosition() {
|
|
1137
1141
|
const linkEl = this.parentLink()?.nativeElement;
|
|
1138
|
-
if (!linkEl)
|
|
1142
|
+
if (!linkEl || typeof linkEl.getBoundingClientRect !== 'function')
|
|
1139
1143
|
return;
|
|
1140
1144
|
const rect = linkEl.getBoundingClientRect();
|
|
1141
1145
|
const hostEl = linkEl.closest('[app-menuitem]');
|
|
@@ -1183,7 +1187,6 @@ class AppMenuitem {
|
|
|
1183
1187
|
#parentLink
|
|
1184
1188
|
tabindex="0"
|
|
1185
1189
|
pRipple
|
|
1186
|
-
[style.cursor]="layoutService.isTopbar() ? 'default' : 'pointer'"
|
|
1187
1190
|
>
|
|
1188
1191
|
@if (item().icon) {
|
|
1189
1192
|
<lib-icon
|
|
@@ -1259,7 +1262,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
1259
1262
|
#parentLink
|
|
1260
1263
|
tabindex="0"
|
|
1261
1264
|
pRipple
|
|
1262
|
-
[style.cursor]="layoutService.isTopbar() ? 'default' : 'pointer'"
|
|
1263
1265
|
>
|
|
1264
1266
|
@if (item().icon) {
|
|
1265
1267
|
<lib-icon
|
|
@@ -2454,7 +2456,7 @@ class AppTopbar {
|
|
|
2454
2456
|
@if (displayLogo()) {
|
|
2455
2457
|
<img [src]="displayLogo()" [alt]="companyName()" class="logo-image" />
|
|
2456
2458
|
}
|
|
2457
|
-
<span>{{ companyName() }}</span>
|
|
2459
|
+
<span class="hidden sm:inline">{{ companyName() }}</span>
|
|
2458
2460
|
</a>
|
|
2459
2461
|
@if (!layoutService.isTopbar() && layoutService.isDesktop()) {
|
|
2460
2462
|
<button
|
|
@@ -2582,7 +2584,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImpor
|
|
|
2582
2584
|
@if (displayLogo()) {
|
|
2583
2585
|
<img [src]="displayLogo()" [alt]="companyName()" class="logo-image" />
|
|
2584
2586
|
}
|
|
2585
|
-
<span>{{ companyName() }}</span>
|
|
2587
|
+
<span class="hidden sm:inline">{{ companyName() }}</span>
|
|
2586
2588
|
</a>
|
|
2587
2589
|
@if (!layoutService.isTopbar() && layoutService.isDesktop()) {
|
|
2588
2590
|
<button
|