@siemens/element-ng 48.7.0 → 48.8.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.
- package/date-range-filter/index.d.ts +2 -2
- package/fesm2022/siemens-element-ng-avatar.mjs +2 -2
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +2 -2
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +13 -9
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +3 -0
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs +4 -2
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +4 -3
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs +19 -5
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs +5 -3
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +11 -2
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +2 -2
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +6 -3
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs +11 -2
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs +2 -2
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +121 -16
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +6 -4
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +4 -4
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/header-dropdown/index.d.ts +1 -0
- package/icon/index.d.ts +11 -1
- package/list-details/index.d.ts +1 -0
- package/main-detail-container/index.d.ts +1 -0
- package/navbar/index.d.ts +1 -0
- package/notification-item/index.d.ts +1 -0
- package/package.json +15 -15
- package/side-panel/index.d.ts +102 -9
- package/tabs/index.d.ts +1 -0
- package/template-i18n.json +2 -0
- package/threshold/index.d.ts +1 -1
- package/translate/index.d.ts +2 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { signal, Injectable, input, booleanAttribute, model, output, computed, viewChild, inject, PLATFORM_ID, ElementRef, ChangeDetectorRef, DestroyRef, DOCUMENT, Component, NgModule } from '@angular/core';
|
|
3
|
-
import { BehaviorSubject, Subject, EMPTY } from 'rxjs';
|
|
2
|
+
import { signal, Injectable, input, booleanAttribute, model, output, computed, viewChild, inject, PLATFORM_ID, ElementRef, ChangeDetectorRef, DestroyRef, DOCUMENT, Component, effect, NgModule } from '@angular/core';
|
|
3
|
+
import { BehaviorSubject, Subject, EMPTY, timer } from 'rxjs';
|
|
4
4
|
import * as i1 from '@angular/cdk/portal';
|
|
5
5
|
import { CdkPortalOutlet, PortalModule } from '@angular/cdk/portal';
|
|
6
6
|
import { isPlatformBrowser } from '@angular/common';
|
|
@@ -9,9 +9,10 @@ import { ResizeObserverService, BOOTSTRAP_BREAKPOINTS } from '@siemens/element-n
|
|
|
9
9
|
import { t, SiTranslatePipe } from '@siemens/element-translate-ng/translate';
|
|
10
10
|
import { debounceTime } from 'rxjs/operators';
|
|
11
11
|
import { BreakpointObserver } from '@angular/cdk/layout';
|
|
12
|
+
import { ActivatedRoute, RouterLink } from '@angular/router';
|
|
12
13
|
import { SiAccordionHCollapseService } from '@siemens/element-ng/accordion';
|
|
13
14
|
import { SiContentActionBarComponent } from '@siemens/element-ng/content-action-bar';
|
|
14
|
-
import { addIcons, elementDoubleRight, elementDoubleLeft, SiIconComponent } from '@siemens/element-ng/icon';
|
|
15
|
+
import { addIcons, elementDoubleRight, elementDoubleLeft, elementCancel, SiIconComponent } from '@siemens/element-ng/icon';
|
|
15
16
|
import { SiLinkDirective } from '@siemens/element-ng/link';
|
|
16
17
|
import { SiSearchBarComponent } from '@siemens/element-ng/search-bar';
|
|
17
18
|
|
|
@@ -32,6 +33,13 @@ class SiSidePanelService {
|
|
|
32
33
|
tempContentClosed;
|
|
33
34
|
/** @internal */
|
|
34
35
|
enableMobile = signal(false);
|
|
36
|
+
/** @internal */
|
|
37
|
+
collapsible = signal(false);
|
|
38
|
+
fullscreenSubject = new BehaviorSubject(false);
|
|
39
|
+
/**
|
|
40
|
+
* Emits when fullscreen overlay mode is toggled.
|
|
41
|
+
*/
|
|
42
|
+
isFullscreen$ = this.fullscreenSubject.asObservable();
|
|
35
43
|
/** Set or update displayed content. */
|
|
36
44
|
setSidePanelContent(portal) {
|
|
37
45
|
this.contentSubject.next(portal);
|
|
@@ -57,6 +65,18 @@ class SiSidePanelService {
|
|
|
57
65
|
isOpen() {
|
|
58
66
|
return this.openSubject.value;
|
|
59
67
|
}
|
|
68
|
+
/** Toggle fullscreen overlay mode. */
|
|
69
|
+
toggleFullscreen() {
|
|
70
|
+
this.fullscreenSubject.next(!this.fullscreenSubject.value);
|
|
71
|
+
}
|
|
72
|
+
/** Set fullscreen overlay mode. */
|
|
73
|
+
setFullscreen(fullscreen) {
|
|
74
|
+
this.fullscreenSubject.next(fullscreen);
|
|
75
|
+
}
|
|
76
|
+
/** Indicate if side panel is in fullscreen overlay mode. */
|
|
77
|
+
isFullscreen() {
|
|
78
|
+
return this.fullscreenSubject.value;
|
|
79
|
+
}
|
|
60
80
|
/**
|
|
61
81
|
* Indicate that the side panel is open with temporary content.
|
|
62
82
|
*/
|
|
@@ -102,6 +122,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
102
122
|
* SPDX-License-Identifier: MIT
|
|
103
123
|
*/
|
|
104
124
|
class SiSidePanelComponent {
|
|
125
|
+
/**
|
|
126
|
+
* Custom breakpoint for ultra-wide screens (≥1920px)
|
|
127
|
+
*/
|
|
128
|
+
static xxxlMinimum = 1920;
|
|
105
129
|
/**
|
|
106
130
|
* @defaultValue false
|
|
107
131
|
*/
|
|
@@ -161,9 +185,12 @@ class SiSidePanelComponent {
|
|
|
161
185
|
isMd = signal(true);
|
|
162
186
|
isLg = signal(false);
|
|
163
187
|
isXl = signal(false);
|
|
188
|
+
isXxl = signal(false);
|
|
189
|
+
isXxxl = signal(false);
|
|
164
190
|
isCollapsed = signal(false);
|
|
165
191
|
ready = signal(false);
|
|
166
192
|
isHidden = signal(false);
|
|
193
|
+
isFullscreenOverlay = signal(false);
|
|
167
194
|
showTempContent = signal(false);
|
|
168
195
|
panelElement = viewChild.required('sidePanel');
|
|
169
196
|
contentElement = viewChild.required('content');
|
|
@@ -190,6 +217,9 @@ class SiSidePanelComponent {
|
|
|
190
217
|
destroyRef = inject(DestroyRef);
|
|
191
218
|
document = inject(DOCUMENT);
|
|
192
219
|
constructor() {
|
|
220
|
+
this.service.isFullscreen$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(fullscreen => {
|
|
221
|
+
this.isFullscreenOverlay.set(fullscreen);
|
|
222
|
+
});
|
|
193
223
|
if (this.isBrowser) {
|
|
194
224
|
this.resizeEvent
|
|
195
225
|
.asObservable()
|
|
@@ -197,6 +227,7 @@ class SiSidePanelComponent {
|
|
|
197
227
|
.subscribe(() => {
|
|
198
228
|
this.openingOrClosing = false;
|
|
199
229
|
this.emitResizeOutputs();
|
|
230
|
+
this.service.setFullscreen(false);
|
|
200
231
|
if (this.isCollapsedInternal && !this.collapsible()) {
|
|
201
232
|
this.isHidden.set(true);
|
|
202
233
|
}
|
|
@@ -212,9 +243,12 @@ class SiSidePanelComponent {
|
|
|
212
243
|
this.service.open();
|
|
213
244
|
}
|
|
214
245
|
}
|
|
215
|
-
|
|
246
|
+
if (changes.enableMobile) {
|
|
216
247
|
this.service.enableMobile.set(this.enableMobile());
|
|
217
248
|
}
|
|
249
|
+
if (changes.collapsible) {
|
|
250
|
+
this.service.collapsible.set(this.collapsible());
|
|
251
|
+
}
|
|
218
252
|
}
|
|
219
253
|
ngOnInit() {
|
|
220
254
|
// handle initial state to avoid flicker
|
|
@@ -222,6 +256,7 @@ class SiSidePanelComponent {
|
|
|
222
256
|
this.isCollapsedInternal = collapsed;
|
|
223
257
|
this.isHidden.set(collapsed);
|
|
224
258
|
this.isCollapsed.set(collapsed);
|
|
259
|
+
this.service.collapsible.set(this.collapsible());
|
|
225
260
|
this.resizeObserver
|
|
226
261
|
.observe(this.element.nativeElement, 100, true)
|
|
227
262
|
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
@@ -286,7 +321,9 @@ class SiSidePanelComponent {
|
|
|
286
321
|
this.isSm.set(width >= breakpoints.smMinimum && width < breakpoints.mdMinimum);
|
|
287
322
|
this.isMd.set(width >= breakpoints.mdMinimum && width < breakpoints.lgMinimum);
|
|
288
323
|
this.isLg.set(width >= breakpoints.lgMinimum && width < breakpoints.xlMinimum);
|
|
289
|
-
this.isXl.set(width >= breakpoints.xlMinimum);
|
|
324
|
+
this.isXl.set(width >= breakpoints.xlMinimum && width < breakpoints.xxlMinimum);
|
|
325
|
+
this.isXxl.set(width >= breakpoints.xxlMinimum && width < SiSidePanelComponent.xxxlMinimum);
|
|
326
|
+
this.isXxxl.set(width >= SiSidePanelComponent.xxxlMinimum);
|
|
290
327
|
}
|
|
291
328
|
sendResize() {
|
|
292
329
|
if (this.isScrollMode() || this.element.nativeElement.style.paddingRight !== '0') {
|
|
@@ -345,7 +382,7 @@ class SiSidePanelComponent {
|
|
|
345
382
|
}
|
|
346
383
|
}
|
|
347
384
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiSidePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
348
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.6", type: SiSidePanelComponent, isStandalone: true, selector: "si-side-panel", inputs: { collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, toggleItemLabel: { classPropertyName: "toggleItemLabel", publicName: "toggleItemLabel", isSignal: true, isRequired: false, transformFunction: null }, breakpoints: { classPropertyName: "breakpoints", publicName: "breakpoints", isSignal: true, isRequired: false, transformFunction: null }, enableMobile: { classPropertyName: "enableMobile", publicName: "enableMobile", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange", closed: "closed", contentResize: "contentResize" }, host: { properties: { "class.enable-mobile": "enableMobile()", "class.rpanel-size--regular": "this.size() === \"regular\"", "class.rpanel-size--wide": "this.size() === \"wide\"", "class.rpanel-mode--over": "this.mode() === \"over\"", "class.rpanel-mode--scroll": "isScrollMode()", "class.rpanel-collapsed": "isCollapsed()", "class.ready": "ready()", "class.collapsible": "collapsible() && !this.showTempContent()", "class.collapsible-temp": "collapsible() && this.showTempContent()", "class.rpanel-hidden": "isHidden()", "class.rpanel-resize-xs": "isXs()", "class.rpanel-resize-sm": "isSm()", "class.rpanel-resize-md": "isMd()", "class.rpanel-resize-lg": "isLg()", "class.rpanel-resize-xl": "isXl()" }, classAttribute: "si-layout-inner" }, viewQueries: [{ propertyName: "panelElement", first: true, predicate: ["sidePanel"], descendants: true, isSignal: true }, { propertyName: "contentElement", first: true, predicate: ["content"], descendants: true, isSignal: true }, { propertyName: "portalOutlet", first: true, predicate: ["portalOutlet"], descendants: true, read: CdkPortalOutlet, isSignal: true }, { propertyName: "tmpPortalOutlet", first: true, predicate: ["tmpPortalOutlet"], descendants: true, read: CdkPortalOutlet, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div #sidePanel class=\"side-panel focus-none\" tabindex=\"-1\">\n <div class=\"inner\" [class.d-none]=\"showTempContent()\">\n <ng-content select=\"si-side-panel-content, element-side-panel-content\" />\n <ng-container #portalOutlet cdkPortalOutlet />\n </div>\n <div class=\"inner\" [class.d-none]=\"!showTempContent()\">\n <ng-container #tmpPortalOutlet cdkPortalOutlet />\n </div>\n</div>\n<div #content class=\"main-content si-layout-inner\">\n <ng-content />\n</div>\n", styles: [":host{--rpanel-collapsed-padding: 0;--rpanel-size: 390px;display:block;padding-inline-end:var(--rpanel-size)}:host.ready{transition:padding-inline-end calc(.5s * var(--element-animations-enabled, 1))}:host.ready .side-panel{transition:inline-size calc(.5s * var(--element-animations-enabled, 1))}:host .side-panel,:host .side-panel>.inner{inline-size:var(--rpanel-size)}:host.collapsible,:host.collapsible-temp{--rpanel-collapsed-width: 48px}:host.rpanel-size--wide{--rpanel-size: 500px}:host.rpanel-resize-sm.rpanel-mode--over,:host.rpanel-resize-md.rpanel-mode--over,:host.rpanel-resize-lg.rpanel-mode--over,:host.rpanel-resize-xl.rpanel-mode--over{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-sm.rpanel-mode--over:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-md.rpanel-mode--over:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-lg.rpanel-mode--over:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xl.rpanel-mode--over:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-lg.rpanel-mode--scroll.rpanel-size--wide{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-sm.rpanel-mode--scroll,:host.rpanel-resize-md.rpanel-mode--scroll{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-sm.rpanel-mode--scroll:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-md.rpanel-mode--scroll:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-xs.rpanel-mode--over,:host.rpanel-resize-xs.rpanel-mode--scroll{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-xs .side-panel{z-index:1031}:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel>.inner{inline-size:100%}:host.rpanel-hidden:not(.collapsible) .side-panel{display:none}:host.rpanel-collapsed{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-collapsed:not(.collapsible) .side-panel{inline-size:0;overflow:hidden}:host.rpanel-collapsed.collapsible .side-panel{inline-size:var(--rpanel-collapsed-width);overflow:hidden}.side-panel{position:fixed;z-index:1029;inset-block-start:calc(48px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-block-end:0;inset-inline-end:0;overflow-x:hidden;background:var(--element-base-1)}.side-panel>.inner{display:flex;flex-direction:column;position:absolute;inset-block:0;inset-inline-start:0}@media (max-width: 575.98px){:host.enable-mobile{padding-inline-end:0!important;--si-layout-header-first-element-offset-end: 40px}:host.enable-mobile.rpanel-collapsed .side-panel{inline-size:0!important}}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] });
|
|
385
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.6", type: SiSidePanelComponent, isStandalone: true, selector: "si-side-panel", inputs: { collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, toggleItemLabel: { classPropertyName: "toggleItemLabel", publicName: "toggleItemLabel", isSignal: true, isRequired: false, transformFunction: null }, breakpoints: { classPropertyName: "breakpoints", publicName: "breakpoints", isSignal: true, isRequired: false, transformFunction: null }, enableMobile: { classPropertyName: "enableMobile", publicName: "enableMobile", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange", closed: "closed", contentResize: "contentResize" }, host: { properties: { "class.enable-mobile": "enableMobile()", "class.rpanel-size--regular": "this.size() === \"regular\"", "class.rpanel-size--wide": "this.size() === \"wide\"", "class.rpanel-size--extended": "this.size() === \"extended\"", "class.rpanel-mode--over": "this.mode() === \"over\"", "class.rpanel-mode--scroll": "isScrollMode()", "class.rpanel-collapsed": "isCollapsed()", "class.ready": "ready()", "class.collapsible": "collapsible() && !this.showTempContent()", "class.collapsible-temp": "collapsible() && this.showTempContent()", "class.rpanel-hidden": "isHidden()", "class.rpanel-fullscreen-overlay": "isFullscreenOverlay()", "class.rpanel-resize-xs": "isXs()", "class.rpanel-resize-sm": "isSm()", "class.rpanel-resize-md": "isMd()", "class.rpanel-resize-lg": "isLg()", "class.rpanel-resize-xl": "isXl()", "class.rpanel-resize-xxl": "isXxl()", "class.rpanel-resize-xxxl": "isXxxl()" }, classAttribute: "si-layout-inner" }, viewQueries: [{ propertyName: "panelElement", first: true, predicate: ["sidePanel"], descendants: true, isSignal: true }, { propertyName: "contentElement", first: true, predicate: ["content"], descendants: true, isSignal: true }, { propertyName: "portalOutlet", first: true, predicate: ["portalOutlet"], descendants: true, read: CdkPortalOutlet, isSignal: true }, { propertyName: "tmpPortalOutlet", first: true, predicate: ["tmpPortalOutlet"], descendants: true, read: CdkPortalOutlet, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div #sidePanel class=\"side-panel focus-none\" tabindex=\"-1\">\n <div class=\"inner\" [class.d-none]=\"showTempContent()\">\n <ng-content select=\"si-side-panel-content, element-side-panel-content\" />\n <ng-container #portalOutlet cdkPortalOutlet />\n </div>\n <div class=\"inner\" [class.d-none]=\"!showTempContent()\">\n <ng-container #tmpPortalOutlet cdkPortalOutlet />\n </div>\n</div>\n<div #content class=\"main-content si-layout-inner\">\n <ng-content />\n</div>\n", styles: [":host{--rpanel-collapsed-padding: 0;--rpanel-size: 390px;display:block;padding-inline-end:var(--rpanel-size)}:host.ready{transition:padding-inline-end calc(.5s * var(--element-animations-enabled, 1))}:host.ready .side-panel,:host.ready .side-panel>.inner{transition:inline-size calc(.5s * var(--element-animations-enabled, 1)),box-shadow calc(.5s * var(--element-animations-enabled, 1))}:host .side-panel,:host .side-panel>.inner{inline-size:var(--rpanel-width-fullscreen, var(--rpanel-size))}:host.collapsible,:host.collapsible-temp{--rpanel-collapsed-width: 48px}:host.rpanel-size--wide{--rpanel-size: 500px}:host.rpanel-size--extended{--rpanel-size: 100%}:host.rpanel-fullscreen-overlay{--rpanel-width-fullscreen: 100vw}:host.rpanel-resize-sm.rpanel-mode--over,:host.rpanel-resize-md.rpanel-mode--over,:host.rpanel-resize-lg.rpanel-mode--over,:host.rpanel-resize-xl.rpanel-mode--over,:host.rpanel-resize-xxl.rpanel-mode--over,:host.rpanel-resize-xxxl.rpanel-mode--over{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-sm.rpanel-mode--over:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-md.rpanel-mode--over:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-lg.rpanel-mode--over:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xl.rpanel-mode--over:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xxl.rpanel-mode--over:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xxxl.rpanel-mode--over:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-md.rpanel-mode--scroll.rpanel-size--extended{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-md.rpanel-mode--scroll.rpanel-size--extended:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-md.rpanel-size--extended{--rpanel-size: 480px}:host.rpanel-resize-lg.rpanel-mode--scroll.rpanel-size--wide{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-lg.rpanel-mode--scroll.rpanel-size--wide:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-lg.rpanel-mode--scroll.rpanel-size--extended{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-lg.rpanel-mode--scroll.rpanel-size--extended:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-lg.rpanel-size--extended{--rpanel-size: 480px}:host.rpanel-resize-xl.rpanel-size--extended{--rpanel-size: 640px}:host.rpanel-resize-xxl.rpanel-size--extended{--rpanel-size: 720px}:host.rpanel-resize-xxxl.rpanel-size--extended{--rpanel-size: 912px}:host.rpanel-resize-sm.rpanel-mode--scroll,:host.rpanel-resize-md.rpanel-mode--scroll{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-sm.rpanel-mode--scroll:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-md.rpanel-mode--scroll:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-sm.rpanel-size--extended{--fullscreen-button-display: none}:host.rpanel-resize-xs{--fullscreen-button-display: none}:host.rpanel-resize-xs.rpanel-mode--over,:host.rpanel-resize-xs.rpanel-mode--scroll{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-xs .side-panel{z-index:1031}:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel>.inner{inline-size:100%}:host.rpanel-hidden:not(.collapsible) .side-panel{display:none}:host.rpanel-collapsed{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-collapsed:not(.collapsible) .side-panel{inline-size:0;overflow:hidden}:host.rpanel-collapsed.collapsible .side-panel{inline-size:var(--rpanel-collapsed-width);overflow:hidden}.side-panel{position:fixed;z-index:1029;inset-block-start:calc(48px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-block-end:0;inset-inline-end:0;overflow-x:hidden;background:var(--element-base-1)}.side-panel>.inner{display:flex;flex-direction:column;position:absolute;inset-block:0;inset-inline-start:0}@media (max-width: 575.98px){:host.enable-mobile{padding-inline-end:0!important;--si-layout-header-first-element-offset-end: 40px}:host.enable-mobile.rpanel-collapsed .side-panel{inline-size:0!important}}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] });
|
|
349
386
|
}
|
|
350
387
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiSidePanelComponent, decorators: [{
|
|
351
388
|
type: Component,
|
|
@@ -354,6 +391,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
354
391
|
'[class.enable-mobile]': 'enableMobile()',
|
|
355
392
|
'[class.rpanel-size--regular]': 'this.size() === "regular"',
|
|
356
393
|
'[class.rpanel-size--wide]': 'this.size() === "wide"',
|
|
394
|
+
'[class.rpanel-size--extended]': 'this.size() === "extended"',
|
|
357
395
|
'[class.rpanel-mode--over]': 'this.mode() === "over"',
|
|
358
396
|
'[class.rpanel-mode--scroll]': 'isScrollMode()',
|
|
359
397
|
'[class.rpanel-collapsed]': 'isCollapsed()',
|
|
@@ -361,12 +399,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
361
399
|
'[class.collapsible]': 'collapsible() && !this.showTempContent()',
|
|
362
400
|
'[class.collapsible-temp]': 'collapsible() && this.showTempContent()',
|
|
363
401
|
'[class.rpanel-hidden]': 'isHidden()',
|
|
402
|
+
'[class.rpanel-fullscreen-overlay]': 'isFullscreenOverlay()',
|
|
364
403
|
'[class.rpanel-resize-xs]': 'isXs()',
|
|
365
404
|
'[class.rpanel-resize-sm]': 'isSm()',
|
|
366
405
|
'[class.rpanel-resize-md]': 'isMd()',
|
|
367
406
|
'[class.rpanel-resize-lg]': 'isLg()',
|
|
368
|
-
'[class.rpanel-resize-xl]': 'isXl()'
|
|
369
|
-
|
|
407
|
+
'[class.rpanel-resize-xl]': 'isXl()',
|
|
408
|
+
'[class.rpanel-resize-xxl]': 'isXxl()',
|
|
409
|
+
'[class.rpanel-resize-xxxl]': 'isXxxl()'
|
|
410
|
+
}, template: "<div #sidePanel class=\"side-panel focus-none\" tabindex=\"-1\">\n <div class=\"inner\" [class.d-none]=\"showTempContent()\">\n <ng-content select=\"si-side-panel-content, element-side-panel-content\" />\n <ng-container #portalOutlet cdkPortalOutlet />\n </div>\n <div class=\"inner\" [class.d-none]=\"!showTempContent()\">\n <ng-container #tmpPortalOutlet cdkPortalOutlet />\n </div>\n</div>\n<div #content class=\"main-content si-layout-inner\">\n <ng-content />\n</div>\n", styles: [":host{--rpanel-collapsed-padding: 0;--rpanel-size: 390px;display:block;padding-inline-end:var(--rpanel-size)}:host.ready{transition:padding-inline-end calc(.5s * var(--element-animations-enabled, 1))}:host.ready .side-panel,:host.ready .side-panel>.inner{transition:inline-size calc(.5s * var(--element-animations-enabled, 1)),box-shadow calc(.5s * var(--element-animations-enabled, 1))}:host .side-panel,:host .side-panel>.inner{inline-size:var(--rpanel-width-fullscreen, var(--rpanel-size))}:host.collapsible,:host.collapsible-temp{--rpanel-collapsed-width: 48px}:host.rpanel-size--wide{--rpanel-size: 500px}:host.rpanel-size--extended{--rpanel-size: 100%}:host.rpanel-fullscreen-overlay{--rpanel-width-fullscreen: 100vw}:host.rpanel-resize-sm.rpanel-mode--over,:host.rpanel-resize-md.rpanel-mode--over,:host.rpanel-resize-lg.rpanel-mode--over,:host.rpanel-resize-xl.rpanel-mode--over,:host.rpanel-resize-xxl.rpanel-mode--over,:host.rpanel-resize-xxxl.rpanel-mode--over{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-sm.rpanel-mode--over:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-md.rpanel-mode--over:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-lg.rpanel-mode--over:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xl.rpanel-mode--over:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xxl.rpanel-mode--over:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xxxl.rpanel-mode--over:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-md.rpanel-mode--scroll.rpanel-size--extended{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-md.rpanel-mode--scroll.rpanel-size--extended:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-md.rpanel-size--extended{--rpanel-size: 480px}:host.rpanel-resize-lg.rpanel-mode--scroll.rpanel-size--wide{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-lg.rpanel-mode--scroll.rpanel-size--wide:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-lg.rpanel-mode--scroll.rpanel-size--extended{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-lg.rpanel-mode--scroll.rpanel-size--extended:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-lg.rpanel-size--extended{--rpanel-size: 480px}:host.rpanel-resize-xl.rpanel-size--extended{--rpanel-size: 640px}:host.rpanel-resize-xxl.rpanel-size--extended{--rpanel-size: 720px}:host.rpanel-resize-xxxl.rpanel-size--extended{--rpanel-size: 912px}:host.rpanel-resize-sm.rpanel-mode--scroll,:host.rpanel-resize-md.rpanel-mode--scroll{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-sm.rpanel-mode--scroll:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-md.rpanel-mode--scroll:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-sm.rpanel-size--extended{--fullscreen-button-display: none}:host.rpanel-resize-xs{--fullscreen-button-display: none}:host.rpanel-resize-xs.rpanel-mode--over,:host.rpanel-resize-xs.rpanel-mode--scroll{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-xs .side-panel{z-index:1031}:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel>.inner{inline-size:100%}:host.rpanel-hidden:not(.collapsible) .side-panel{display:none}:host.rpanel-collapsed{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-collapsed:not(.collapsible) .side-panel{inline-size:0;overflow:hidden}:host.rpanel-collapsed.collapsible .side-panel{inline-size:var(--rpanel-collapsed-width);overflow:hidden}.side-panel{position:fixed;z-index:1029;inset-block-start:calc(48px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-block-end:0;inset-inline-end:0;overflow-x:hidden;background:var(--element-base-1)}.side-panel>.inner{display:flex;flex-direction:column;position:absolute;inset-block:0;inset-inline-start:0}@media (max-width: 575.98px){:host.enable-mobile{padding-inline-end:0!important;--si-layout-header-first-element-offset-end: 40px}:host.enable-mobile.rpanel-collapsed .side-panel{inline-size:0!important}}\n"] }]
|
|
370
411
|
}], ctorParameters: () => [] });
|
|
371
412
|
|
|
372
413
|
/**
|
|
@@ -375,9 +416,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
375
416
|
*/
|
|
376
417
|
class SiSidePanelContentComponent {
|
|
377
418
|
/**
|
|
378
|
-
* @
|
|
419
|
+
* @deprecated This input is no longer used. The collapsible state is managed by the SiSidePanelService.
|
|
420
|
+
* This input will be removed in a future major version.
|
|
421
|
+
* @defaultValue undefined
|
|
379
422
|
*/
|
|
380
|
-
|
|
423
|
+
collapsibleInput = input(undefined, {
|
|
424
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
425
|
+
alias: 'collapsible',
|
|
426
|
+
transform: booleanAttribute
|
|
427
|
+
});
|
|
381
428
|
/**
|
|
382
429
|
* Header of side panel
|
|
383
430
|
*
|
|
@@ -435,33 +482,67 @@ class SiSidePanelContentComponent {
|
|
|
435
482
|
* ```
|
|
436
483
|
*/
|
|
437
484
|
toggleItemLabel = input(t(() => $localize `:@@SI_SIDE_PANEL.TOGGLE:Toggle`));
|
|
485
|
+
/**
|
|
486
|
+
* Enter fullscreen aria-label, required for a11y
|
|
487
|
+
*
|
|
488
|
+
* @defaultValue
|
|
489
|
+
* ```
|
|
490
|
+
* t(() => $localize`:@@SI_SIDE_PANEL.ENTER_FULLSCREEN:Enter fullscreen`)
|
|
491
|
+
* ```
|
|
492
|
+
*/
|
|
493
|
+
enterFullscreenLabel = input(t(() => $localize `:@@SI_SIDE_PANEL.ENTER_FULLSCREEN:Enter fullscreen`));
|
|
494
|
+
/**
|
|
495
|
+
* Exit fullscreen aria-label, required for a11y
|
|
496
|
+
*
|
|
497
|
+
* @defaultValue
|
|
498
|
+
* ```
|
|
499
|
+
* t(() => $localize`:@@SI_SIDE_PANEL.EXIT_FULLSCREEN:Exit fullscreen`)
|
|
500
|
+
* ```
|
|
501
|
+
*/
|
|
502
|
+
exitFullscreenLabel = input(t(() => $localize `:@@SI_SIDE_PANEL.EXIT_FULLSCREEN:Exit fullscreen`));
|
|
438
503
|
/**
|
|
439
504
|
* Show a badge on the mobile drawer indicating a new alert or notification
|
|
440
505
|
*
|
|
441
506
|
* @defaultValue false
|
|
442
507
|
*/
|
|
443
508
|
showMobileDrawerBadge = input(false, { transform: booleanAttribute });
|
|
509
|
+
/**
|
|
510
|
+
* Display mode for side panel - enables navigate or overlay functionality
|
|
511
|
+
*/
|
|
512
|
+
displayMode = input();
|
|
513
|
+
/**
|
|
514
|
+
* Configuration for navigate mode
|
|
515
|
+
*/
|
|
516
|
+
navigateConfig = input();
|
|
444
517
|
/**
|
|
445
518
|
* Output for search bar input
|
|
446
519
|
*/
|
|
447
520
|
searchEvent = output();
|
|
521
|
+
activatedRoute = inject(ActivatedRoute, { optional: true });
|
|
522
|
+
service = inject(SiSidePanelService);
|
|
448
523
|
isCollapsed = signal(false);
|
|
449
524
|
isExpanded = signal(true);
|
|
525
|
+
isFullscreen = signal(false);
|
|
450
526
|
enableMobile = computed(() => this.service?.enableMobile() ?? false);
|
|
527
|
+
collapsible = computed(() => {
|
|
528
|
+
return this.collapsibleInput() ?? this.service?.collapsible() ?? false;
|
|
529
|
+
});
|
|
451
530
|
mobileSize = signal(false);
|
|
452
531
|
focusable = computed(() => !this.mobileSize() || !this.enableMobile() || !this.isCollapsed());
|
|
453
|
-
icons = addIcons({ elementDoubleLeft, elementDoubleRight });
|
|
532
|
+
icons = addIcons({ elementCancel, elementDoubleLeft, elementDoubleRight });
|
|
454
533
|
/**
|
|
455
534
|
* The $rpanel-transition-duration in the style is 0.5 seconds.
|
|
456
535
|
* For the animation we need to wait until the resize is done.
|
|
457
536
|
*/
|
|
458
537
|
resizeAnimationDelay = 500;
|
|
459
538
|
destroyRef = inject(DestroyRef);
|
|
460
|
-
service = inject(SiSidePanelService);
|
|
461
539
|
breakpointObserver = inject(BreakpointObserver);
|
|
462
540
|
expandedTimeout;
|
|
463
541
|
constructor() {
|
|
464
542
|
const accordionHcollapse = inject(SiAccordionHCollapseService);
|
|
543
|
+
this.service.isFullscreen$.pipe(takeUntilDestroyed()).subscribe(fullscreen => {
|
|
544
|
+
this.isFullscreen.set(fullscreen);
|
|
545
|
+
});
|
|
465
546
|
this.service.isOpen$.pipe(takeUntilDestroyed()).subscribe(state => {
|
|
466
547
|
this.isCollapsed.set(!state);
|
|
467
548
|
clearTimeout(this.expandedTimeout);
|
|
@@ -474,7 +555,20 @@ class SiSidePanelContentComponent {
|
|
|
474
555
|
this.isExpanded.set(true);
|
|
475
556
|
}, this.resizeAnimationDelay / 2);
|
|
476
557
|
}
|
|
477
|
-
|
|
558
|
+
});
|
|
559
|
+
effect(() => {
|
|
560
|
+
if (this.collapsible()) {
|
|
561
|
+
accordionHcollapse.hcollapsed.set(this.isCollapsed());
|
|
562
|
+
}
|
|
563
|
+
});
|
|
564
|
+
effect(() => {
|
|
565
|
+
if (this.isCollapsed() && !this.service.isTemporaryOpen() && this.isFullscreen()) {
|
|
566
|
+
timer(this.resizeAnimationDelay)
|
|
567
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
568
|
+
.subscribe(() => {
|
|
569
|
+
this.service.setFullscreen(false);
|
|
570
|
+
});
|
|
571
|
+
}
|
|
478
572
|
});
|
|
479
573
|
accordionHcollapse.open$.pipe(takeUntilDestroyed()).subscribe(() => this.service.open());
|
|
480
574
|
}
|
|
@@ -486,6 +580,15 @@ class SiSidePanelContentComponent {
|
|
|
486
580
|
this.mobileSize.set(matches);
|
|
487
581
|
});
|
|
488
582
|
}
|
|
583
|
+
/**
|
|
584
|
+
* Toggle fullscreen overlay mode
|
|
585
|
+
*/
|
|
586
|
+
toggleFullscreen() {
|
|
587
|
+
if (this.isCollapsed() && !this.service.isTemporaryOpen()) {
|
|
588
|
+
return;
|
|
589
|
+
}
|
|
590
|
+
this.service.toggleFullscreen();
|
|
591
|
+
}
|
|
489
592
|
toggleSidePanel(event) {
|
|
490
593
|
if (event?.detail !== 0) {
|
|
491
594
|
// Blur except if triggered by keyboard
|
|
@@ -499,7 +602,7 @@ class SiSidePanelContentComponent {
|
|
|
499
602
|
}
|
|
500
603
|
}
|
|
501
604
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiSidePanelContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
502
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiSidePanelContentComponent, isStandalone: true, selector: "si-side-panel-content", inputs: { collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, primaryActions: { classPropertyName: "primaryActions", publicName: "primaryActions", isSignal: true, isRequired: false, transformFunction: null }, secondaryActions: { classPropertyName: "secondaryActions", publicName: "secondaryActions", isSignal: true, isRequired: false, transformFunction: null }, statusActions: { classPropertyName: "statusActions", publicName: "statusActions", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, closeButtonLabel: { classPropertyName: "closeButtonLabel", publicName: "closeButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, toggleItemLabel: { classPropertyName: "toggleItemLabel", publicName: "toggleItemLabel", isSignal: true, isRequired: false, transformFunction: null }, showMobileDrawerBadge: { classPropertyName: "showMobileDrawerBadge", publicName: "showMobileDrawerBadge", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchEvent: "searchEvent" }, host: { properties: { "class.collapsed": "isCollapsed()", "class.expanded": "isExpanded()", "class.enable-mobile": "enableMobile()" } }, providers: [SiAccordionHCollapseService], ngImport: i0, template: "<div class=\"rpanel-header pt-5\">\n <p class=\"si-h5 my-0 ms-6 auto-hide text-truncate\">{{ heading() | translate }}</p>\n @if ((primaryActions().length || secondaryActions().length) && focusable()) {\n <si-content-action-bar\n class=\"auto-hide ms-auto\"\n viewType=\"expanded\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n [toggleItemLabel]=\"toggleItemLabel()\"\n />\n }\n <button\n type=\"button\"\n class=\"close-button btn btn-circle btn-sm btn-ghost element-cancel me-4\"\n [attr.aria-label]=\"closeButtonLabel() | translate\"\n [tabindex]=\"focusable() ? '0' : '-1'\"\n (click)=\"toggleSidePanel($event)\"\n ></button>\n <div class=\"collapse-toggle\">\n <button\n type=\"button\"\n class=\"side-panel-collapse-toggle btn btn-circle btn-sm btn-ghost mx-4\"\n [attr.aria-label]=\"toggleItemLabel() | translate\"\n (click)=\"toggleSidePanel($event)\"\n >\n <si-icon\n class=\"flip-rtl\"\n [class.badge-dot]=\"showMobileDrawerBadge()\"\n [icon]=\"isCollapsed() ? icons.elementDoubleLeft : icons.elementDoubleRight\"\n />\n </button>\n </div>\n</div>\n<div class=\"rpanel-wrapper d-flex flex-column\">\n @if (statusActions().length && focusable()) {\n <div class=\"rpanel-header rpanel-statusactions px-6\">\n @for (dp of statusActions(); track $index) {\n @if (!dp.disabled) {\n <a\n class=\"rpanel-statusaction position-relative focus-inside\"\n [attr.aria-label]=\"!isCollapsed ? '' : (dp.title | translate)\"\n [siLink]=\"dp\"\n >\n <si-icon class=\"icon\" [icon]=\"dp.icon!\" />\n @if (dp.overlayIcon) {\n <si-icon class=\"icon position-absolute\" [icon]=\"dp.overlayIcon\" />\n }\n <span class=\"ms-2 auto-hide\">{{ dp.title | translate }}</span>\n </a>\n } @else {\n <div class=\"rpanel-statusaction dot-outer\" aria-hidden=\"true\">\n <div class=\"dot text-muted text-center\">•</div>\n </div>\n }\n }\n </div>\n }\n @if (searchable() && focusable()) {\n <div class=\"nav-search px-6 auto-hide\">\n <si-search-bar\n #searchBar\n class=\"m-0\"\n colorVariant=\"base-0\"\n prohibitedCharacters=\"*?\"\n [placeholder]=\"searchPlaceholder() | translate\"\n [debounceTime]=\"400\"\n [showIcon]=\"true\"\n (searchChange)=\"searchEvent.emit($event)\"\n />\n </div>\n }\n @if (focusable()) {\n <div class=\"rpanel-content\">\n <ng-content />\n </div>\n }\n</div>\n", styles: [":host{--si-accordion-radius: 0;display:flex;flex-direction:column;flex:1;gap:12px}:host-context(.collapsible) .close-button{display:none}:host-context(.collapsible) .collapse-toggle{display:block}:host-context(.collapsible) .rpanel-wrapper{gap:12px}:host-context(.collapsible) :host.collapsed{gap:0}:host-context(.collapsible) :host.collapsed .auto-hide{display:none}:host-context(.collapsible) :host.collapsed .rpanel-wrapper{gap:0;inline-size:var(--rpanel-collapsed-width)}:host-context(.collapsible) :host.collapsed .rpanel-content{flex:0 0 auto;margin-block-start:8px}:host-context(.collapsible) :host.collapsed .rpanel-statusactions{order:3;flex-direction:column;align-items:flex-start;padding:0!important}:host-context(.collapsible) :host.collapsed .rpanel-statusaction{padding-block:8px;padding-inline:12px}:host-context(.collapsible) :host.collapsed .rpanel-statusaction:not(.dot-outer):hover{background:var(--element-base-1-hover)}.collapse-toggle{display:none}.collapse-toggle i{vertical-align:bottom}.rpanel-header,.rpanel-statusaction{display:flex;align-items:center}.rpanel-header{justify-content:space-between}.rpanel-wrapper,.rpanel-content{min-block-size:0;flex:1 0 0;overflow-x:hidden;overflow-y:auto}.rpanel-statusaction{text-decoration:none}.rpanel-statusaction .dot{inline-size:24px;line-height:24px}.rpanel-statusaction span{font-size:12px;white-space:pre-wrap;color:var(--element-text-primary)}.rpanel-statusaction:hover span{color:var(--element-text-active)}@media (max-width: 575.98px){:host.enable-mobile:not(.collapsed):not(.expanded) si-content-action-bar{margin-inline-end:48px}:host.enable-mobile:not(.expanded) .collapse-toggle{position:fixed;border:0;text-align:end;padding-block:4px!important;margin-block-start:8px!important;inset-inline-end:0;inset-block-start:calc(48px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));border-start-start-radius:var(--element-radius-2);border-end-start-radius:var(--element-radius-2);border-start-end-radius:0!important;border-end-end-radius:0!important;background:var(--element-base-1);box-shadow:0 0 4px var(--element-box-shadow-color-1),0 4px 4px var(--element-box-shadow-color-2);z-index:2}}\n"], dependencies: [{ kind: "component", type: SiContentActionBarComponent, selector: "si-content-action-bar", inputs: ["primaryActions", "secondaryActions", "actionParam", "viewType", "toggleItemLabel", "preventIconsInDropdownMenus", "disabled"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "component", type: SiSearchBarComponent, selector: "si-search-bar", inputs: ["debounceTime", "prohibitedCharacters", "placeholder", "showIcon", "tabbable", "value", "readonly", "colorVariant", "disabled", "clearButtonAriaLabel"], outputs: ["searchChange"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
|
|
605
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: SiSidePanelContentComponent, isStandalone: true, selector: "si-side-panel-content", inputs: { collapsibleInput: { classPropertyName: "collapsibleInput", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, primaryActions: { classPropertyName: "primaryActions", publicName: "primaryActions", isSignal: true, isRequired: false, transformFunction: null }, secondaryActions: { classPropertyName: "secondaryActions", publicName: "secondaryActions", isSignal: true, isRequired: false, transformFunction: null }, statusActions: { classPropertyName: "statusActions", publicName: "statusActions", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: "searchable", publicName: "searchable", isSignal: true, isRequired: false, transformFunction: null }, searchPlaceholder: { classPropertyName: "searchPlaceholder", publicName: "searchPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, closeButtonLabel: { classPropertyName: "closeButtonLabel", publicName: "closeButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, toggleItemLabel: { classPropertyName: "toggleItemLabel", publicName: "toggleItemLabel", isSignal: true, isRequired: false, transformFunction: null }, enterFullscreenLabel: { classPropertyName: "enterFullscreenLabel", publicName: "enterFullscreenLabel", isSignal: true, isRequired: false, transformFunction: null }, exitFullscreenLabel: { classPropertyName: "exitFullscreenLabel", publicName: "exitFullscreenLabel", isSignal: true, isRequired: false, transformFunction: null }, showMobileDrawerBadge: { classPropertyName: "showMobileDrawerBadge", publicName: "showMobileDrawerBadge", isSignal: true, isRequired: false, transformFunction: null }, displayMode: { classPropertyName: "displayMode", publicName: "displayMode", isSignal: true, isRequired: false, transformFunction: null }, navigateConfig: { classPropertyName: "navigateConfig", publicName: "navigateConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchEvent: "searchEvent" }, host: { properties: { "class.collapsed": "isCollapsed()", "class.expanded": "isExpanded()", "class.enable-mobile": "enableMobile()", "class.rpanel-fullscreen-overlay": "isFullscreen()" } }, providers: [SiAccordionHCollapseService], ngImport: i0, template: "<div class=\"rpanel-header pt-5\">\n <p class=\"si-h5 my-0 ms-6 auto-hide text-truncate\">{{ heading() | translate }}</p>\n @if ((primaryActions().length || secondaryActions().length) && focusable()) {\n <si-content-action-bar\n class=\"auto-hide ms-auto\"\n viewType=\"expanded\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n [toggleItemLabel]=\"toggleItemLabel()\"\n />\n }\n <div class=\"d-flex\">\n @let navigateConfig = this.navigateConfig();\n @if (displayMode() === 'navigate' && navigateConfig) {\n @if (navigateConfig.type === 'router-link') {\n <a\n class=\"btn btn-circle btn-sm btn-ghost auto-hide\"\n [class.ms-4]=\"collapsible()\"\n [class.mx-4]=\"!collapsible() || service.isTemporaryOpen()\"\n [routerLink]=\"navigateConfig.routerLink\"\n [queryParams]=\"navigateConfig.extras?.queryParams\"\n [queryParamsHandling]=\"navigateConfig.extras?.queryParamsHandling\"\n [fragment]=\"navigateConfig.extras?.fragment\"\n [state]=\"navigateConfig.extras?.state\"\n [relativeTo]=\"navigateConfig.extras?.relativeTo ?? activatedRoute\"\n [preserveFragment]=\"navigateConfig.extras?.preserveFragment\"\n [skipLocationChange]=\"navigateConfig.extras?.skipLocationChange\"\n [replaceUrl]=\"navigateConfig.extras?.replaceUrl\"\n [attr.aria-label]=\"navigateConfig.label | translate\"\n >\n <si-icon class=\"icon\" icon=\"element-export\" />\n <span class=\"visually-hidden\">\n {{ navigateConfig.label | translate }}\n </span></a\n >\n } @else if (navigateConfig.type === 'link') {\n <a\n class=\"btn btn-circle btn-sm btn-ghost auto-hide\"\n [class.ms-4]=\"collapsible()\"\n [class.mx-4]=\"!collapsible()\"\n [href]=\"navigateConfig.href\"\n [target]=\"navigateConfig.target\"\n [attr.rel]=\"navigateConfig.target === '_blank' ? 'noopener noreferrer' : null\"\n [attr.aria-label]=\"navigateConfig.label | translate\"\n >\n <si-icon class=\"icon\" icon=\"element-export\" />\n <span class=\"visually-hidden\">\n {{ navigateConfig.label | translate }}\n </span></a\n >\n }\n }\n @if (displayMode() === 'overlay') {\n <button\n type=\"button\"\n class=\"fullscreen-button btn btn-circle btn-sm btn-ghost auto-hide\"\n [class.ms-4]=\"collapsible()\"\n [class.mx-4]=\"!collapsible() || service.isTemporaryOpen()\"\n [attr.aria-label]=\"\n (isFullscreen() ? exitFullscreenLabel() : enterFullscreenLabel()) | translate\n \"\n [tabindex]=\"focusable() ? '0' : '-1'\"\n (click)=\"toggleFullscreen()\"\n >\n <si-icon [icon]=\"isFullscreen() ? 'element-pinch' : 'element-zoom'\" />\n </button>\n }\n <button\n type=\"button\"\n class=\"close-button btn btn-circle btn-sm btn-ghost me-4\"\n [attr.aria-label]=\"closeButtonLabel() | translate\"\n [tabindex]=\"focusable() ? '0' : '-1'\"\n (click)=\"toggleSidePanel($event)\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n <div class=\"collapse-toggle\">\n <button\n type=\"button\"\n class=\"side-panel-collapse-toggle btn btn-circle btn-sm btn-ghost mx-4\"\n [attr.aria-label]=\"toggleItemLabel() | translate\"\n (click)=\"toggleSidePanel($event)\"\n >\n <si-icon\n class=\"flip-rtl\"\n [class.badge-dot]=\"showMobileDrawerBadge()\"\n [icon]=\"isCollapsed() ? icons.elementDoubleLeft : icons.elementDoubleRight\"\n />\n </button>\n </div>\n </div>\n</div>\n<div class=\"rpanel-wrapper d-flex flex-column\">\n @if (statusActions().length && focusable()) {\n <div class=\"rpanel-header rpanel-statusactions px-6\">\n @for (dp of statusActions(); track $index) {\n @if (!dp.disabled) {\n <a\n class=\"rpanel-statusaction position-relative focus-inside\"\n [attr.aria-label]=\"!isCollapsed ? '' : (dp.title | translate)\"\n [siLink]=\"dp\"\n >\n <si-icon class=\"icon\" [icon]=\"dp.icon!\" />\n @if (dp.overlayIcon) {\n <si-icon class=\"icon position-absolute\" [icon]=\"dp.overlayIcon\" />\n }\n <span class=\"ms-2 auto-hide\">{{ dp.title | translate }}</span>\n </a>\n } @else {\n <div class=\"rpanel-statusaction dot-outer\" aria-hidden=\"true\">\n <div class=\"dot text-muted text-center\">•</div>\n </div>\n }\n }\n </div>\n }\n @if (searchable() && focusable()) {\n <div class=\"nav-search px-6 auto-hide\">\n <si-search-bar\n #searchBar\n class=\"m-0\"\n colorVariant=\"base-0\"\n prohibitedCharacters=\"*?\"\n [placeholder]=\"searchPlaceholder() | translate\"\n [debounceTime]=\"400\"\n [showIcon]=\"true\"\n (searchChange)=\"searchEvent.emit($event)\"\n />\n </div>\n }\n @if (focusable()) {\n <div class=\"rpanel-content\">\n <ng-content />\n </div>\n }\n</div>\n", styles: [":host{--si-accordion-radius: 0;display:flex;flex-direction:column;flex:1;gap:12px}:host-context(.collapsible) .close-button{display:none}:host-context(.collapsible) .collapse-toggle{display:block}:host-context(.collapsible) .rpanel-wrapper{gap:12px}:host-context(.collapsible) :host.collapsed{gap:0}:host-context(.collapsible) :host.collapsed .auto-hide{display:none}:host-context(.collapsible) :host.collapsed .rpanel-wrapper{gap:0;inline-size:var(--rpanel-collapsed-width)}:host-context(.collapsible) :host.collapsed .rpanel-content{flex:0 0 auto;margin-block-start:8px}:host-context(.collapsible) :host.collapsed .rpanel-statusactions{order:3;flex-direction:column;align-items:flex-start;padding:0!important}:host-context(.collapsible) :host.collapsed .rpanel-statusaction{padding-block:8px;padding-inline:12px}:host-context(.collapsible) :host.collapsed .rpanel-statusaction:not(.dot-outer):hover{background:var(--element-base-1-hover)}.fullscreen-button{display:var(--fullscreen-button-display)}.collapse-toggle{display:none}.collapse-toggle i{vertical-align:bottom}.rpanel-header,.rpanel-statusaction{display:flex;align-items:center}.rpanel-header{justify-content:space-between}.rpanel-wrapper,.rpanel-content{min-block-size:0;flex:1 0 0;overflow-x:hidden;overflow-y:auto}.rpanel-statusaction{text-decoration:none}.rpanel-statusaction .dot{inline-size:24px;line-height:24px}.rpanel-statusaction span{font-size:12px;white-space:pre-wrap;color:var(--element-text-primary)}.rpanel-statusaction:hover span{color:var(--element-text-active)}@media (max-width: 575.98px){:host.enable-mobile:not(.collapsed):not(.expanded) si-content-action-bar{margin-inline-end:48px}:host.enable-mobile:not(.expanded) .collapse-toggle{position:fixed;border:0;text-align:end;padding-block:4px!important;margin-block-start:8px!important;inset-inline-end:0;inset-block-start:calc(48px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));border-start-start-radius:var(--element-radius-2);border-end-start-radius:var(--element-radius-2);border-start-end-radius:0!important;border-end-end-radius:0!important;background:var(--element-base-1);box-shadow:0 0 4px var(--element-box-shadow-color-1),0 4px 4px var(--element-box-shadow-color-2);z-index:2}}\n"], dependencies: [{ kind: "component", type: SiContentActionBarComponent, selector: "si-content-action-bar", inputs: ["primaryActions", "secondaryActions", "actionParam", "viewType", "toggleItemLabel", "preventIconsInDropdownMenus", "disabled"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: SiSearchBarComponent, selector: "si-search-bar", inputs: ["debounceTime", "prohibitedCharacters", "placeholder", "showIcon", "tabbable", "value", "readonly", "colorVariant", "disabled", "clearButtonAriaLabel"], outputs: ["searchChange"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
|
|
503
606
|
}
|
|
504
607
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: SiSidePanelContentComponent, decorators: [{
|
|
505
608
|
type: Component,
|
|
@@ -507,13 +610,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
|
|
|
507
610
|
SiContentActionBarComponent,
|
|
508
611
|
SiIconComponent,
|
|
509
612
|
SiLinkDirective,
|
|
613
|
+
RouterLink,
|
|
510
614
|
SiSearchBarComponent,
|
|
511
615
|
SiTranslatePipe
|
|
512
616
|
], providers: [SiAccordionHCollapseService], host: {
|
|
513
617
|
'[class.collapsed]': 'isCollapsed()',
|
|
514
618
|
'[class.expanded]': 'isExpanded()',
|
|
515
|
-
'[class.enable-mobile]': 'enableMobile()'
|
|
516
|
-
|
|
619
|
+
'[class.enable-mobile]': 'enableMobile()',
|
|
620
|
+
'[class.rpanel-fullscreen-overlay]': 'isFullscreen()'
|
|
621
|
+
}, template: "<div class=\"rpanel-header pt-5\">\n <p class=\"si-h5 my-0 ms-6 auto-hide text-truncate\">{{ heading() | translate }}</p>\n @if ((primaryActions().length || secondaryActions().length) && focusable()) {\n <si-content-action-bar\n class=\"auto-hide ms-auto\"\n viewType=\"expanded\"\n [primaryActions]=\"primaryActions()\"\n [secondaryActions]=\"secondaryActions()\"\n [toggleItemLabel]=\"toggleItemLabel()\"\n />\n }\n <div class=\"d-flex\">\n @let navigateConfig = this.navigateConfig();\n @if (displayMode() === 'navigate' && navigateConfig) {\n @if (navigateConfig.type === 'router-link') {\n <a\n class=\"btn btn-circle btn-sm btn-ghost auto-hide\"\n [class.ms-4]=\"collapsible()\"\n [class.mx-4]=\"!collapsible() || service.isTemporaryOpen()\"\n [routerLink]=\"navigateConfig.routerLink\"\n [queryParams]=\"navigateConfig.extras?.queryParams\"\n [queryParamsHandling]=\"navigateConfig.extras?.queryParamsHandling\"\n [fragment]=\"navigateConfig.extras?.fragment\"\n [state]=\"navigateConfig.extras?.state\"\n [relativeTo]=\"navigateConfig.extras?.relativeTo ?? activatedRoute\"\n [preserveFragment]=\"navigateConfig.extras?.preserveFragment\"\n [skipLocationChange]=\"navigateConfig.extras?.skipLocationChange\"\n [replaceUrl]=\"navigateConfig.extras?.replaceUrl\"\n [attr.aria-label]=\"navigateConfig.label | translate\"\n >\n <si-icon class=\"icon\" icon=\"element-export\" />\n <span class=\"visually-hidden\">\n {{ navigateConfig.label | translate }}\n </span></a\n >\n } @else if (navigateConfig.type === 'link') {\n <a\n class=\"btn btn-circle btn-sm btn-ghost auto-hide\"\n [class.ms-4]=\"collapsible()\"\n [class.mx-4]=\"!collapsible()\"\n [href]=\"navigateConfig.href\"\n [target]=\"navigateConfig.target\"\n [attr.rel]=\"navigateConfig.target === '_blank' ? 'noopener noreferrer' : null\"\n [attr.aria-label]=\"navigateConfig.label | translate\"\n >\n <si-icon class=\"icon\" icon=\"element-export\" />\n <span class=\"visually-hidden\">\n {{ navigateConfig.label | translate }}\n </span></a\n >\n }\n }\n @if (displayMode() === 'overlay') {\n <button\n type=\"button\"\n class=\"fullscreen-button btn btn-circle btn-sm btn-ghost auto-hide\"\n [class.ms-4]=\"collapsible()\"\n [class.mx-4]=\"!collapsible() || service.isTemporaryOpen()\"\n [attr.aria-label]=\"\n (isFullscreen() ? exitFullscreenLabel() : enterFullscreenLabel()) | translate\n \"\n [tabindex]=\"focusable() ? '0' : '-1'\"\n (click)=\"toggleFullscreen()\"\n >\n <si-icon [icon]=\"isFullscreen() ? 'element-pinch' : 'element-zoom'\" />\n </button>\n }\n <button\n type=\"button\"\n class=\"close-button btn btn-circle btn-sm btn-ghost me-4\"\n [attr.aria-label]=\"closeButtonLabel() | translate\"\n [tabindex]=\"focusable() ? '0' : '-1'\"\n (click)=\"toggleSidePanel($event)\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n <div class=\"collapse-toggle\">\n <button\n type=\"button\"\n class=\"side-panel-collapse-toggle btn btn-circle btn-sm btn-ghost mx-4\"\n [attr.aria-label]=\"toggleItemLabel() | translate\"\n (click)=\"toggleSidePanel($event)\"\n >\n <si-icon\n class=\"flip-rtl\"\n [class.badge-dot]=\"showMobileDrawerBadge()\"\n [icon]=\"isCollapsed() ? icons.elementDoubleLeft : icons.elementDoubleRight\"\n />\n </button>\n </div>\n </div>\n</div>\n<div class=\"rpanel-wrapper d-flex flex-column\">\n @if (statusActions().length && focusable()) {\n <div class=\"rpanel-header rpanel-statusactions px-6\">\n @for (dp of statusActions(); track $index) {\n @if (!dp.disabled) {\n <a\n class=\"rpanel-statusaction position-relative focus-inside\"\n [attr.aria-label]=\"!isCollapsed ? '' : (dp.title | translate)\"\n [siLink]=\"dp\"\n >\n <si-icon class=\"icon\" [icon]=\"dp.icon!\" />\n @if (dp.overlayIcon) {\n <si-icon class=\"icon position-absolute\" [icon]=\"dp.overlayIcon\" />\n }\n <span class=\"ms-2 auto-hide\">{{ dp.title | translate }}</span>\n </a>\n } @else {\n <div class=\"rpanel-statusaction dot-outer\" aria-hidden=\"true\">\n <div class=\"dot text-muted text-center\">•</div>\n </div>\n }\n }\n </div>\n }\n @if (searchable() && focusable()) {\n <div class=\"nav-search px-6 auto-hide\">\n <si-search-bar\n #searchBar\n class=\"m-0\"\n colorVariant=\"base-0\"\n prohibitedCharacters=\"*?\"\n [placeholder]=\"searchPlaceholder() | translate\"\n [debounceTime]=\"400\"\n [showIcon]=\"true\"\n (searchChange)=\"searchEvent.emit($event)\"\n />\n </div>\n }\n @if (focusable()) {\n <div class=\"rpanel-content\">\n <ng-content />\n </div>\n }\n</div>\n", styles: [":host{--si-accordion-radius: 0;display:flex;flex-direction:column;flex:1;gap:12px}:host-context(.collapsible) .close-button{display:none}:host-context(.collapsible) .collapse-toggle{display:block}:host-context(.collapsible) .rpanel-wrapper{gap:12px}:host-context(.collapsible) :host.collapsed{gap:0}:host-context(.collapsible) :host.collapsed .auto-hide{display:none}:host-context(.collapsible) :host.collapsed .rpanel-wrapper{gap:0;inline-size:var(--rpanel-collapsed-width)}:host-context(.collapsible) :host.collapsed .rpanel-content{flex:0 0 auto;margin-block-start:8px}:host-context(.collapsible) :host.collapsed .rpanel-statusactions{order:3;flex-direction:column;align-items:flex-start;padding:0!important}:host-context(.collapsible) :host.collapsed .rpanel-statusaction{padding-block:8px;padding-inline:12px}:host-context(.collapsible) :host.collapsed .rpanel-statusaction:not(.dot-outer):hover{background:var(--element-base-1-hover)}.fullscreen-button{display:var(--fullscreen-button-display)}.collapse-toggle{display:none}.collapse-toggle i{vertical-align:bottom}.rpanel-header,.rpanel-statusaction{display:flex;align-items:center}.rpanel-header{justify-content:space-between}.rpanel-wrapper,.rpanel-content{min-block-size:0;flex:1 0 0;overflow-x:hidden;overflow-y:auto}.rpanel-statusaction{text-decoration:none}.rpanel-statusaction .dot{inline-size:24px;line-height:24px}.rpanel-statusaction span{font-size:12px;white-space:pre-wrap;color:var(--element-text-primary)}.rpanel-statusaction:hover span{color:var(--element-text-active)}@media (max-width: 575.98px){:host.enable-mobile:not(.collapsed):not(.expanded) si-content-action-bar{margin-inline-end:48px}:host.enable-mobile:not(.expanded) .collapse-toggle{position:fixed;border:0;text-align:end;padding-block:4px!important;margin-block-start:8px!important;inset-inline-end:0;inset-block-start:calc(48px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));border-start-start-radius:var(--element-radius-2);border-end-start-radius:var(--element-radius-2);border-start-end-radius:0!important;border-end-end-radius:0!important;background:var(--element-base-1);box-shadow:0 0 4px var(--element-box-shadow-color-1),0 4px 4px var(--element-box-shadow-color-2);z-index:2}}\n"] }]
|
|
517
622
|
}], ctorParameters: () => [] });
|
|
518
623
|
|
|
519
624
|
/**
|