@siemens/element-ng 49.14.0 → 51.0.0-rc.5
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 +1 -1
- package/fesm2022/siemens-element-ng-about.mjs +41 -25
- package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-accordion.mjs +58 -40
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-action-modal.mjs +83 -53
- package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ag-grid.mjs +15 -12
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +176 -166
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +34 -28
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-autocomplete.mjs +27 -22
- package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs +31 -21
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-badge.mjs +9 -8
- package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +17 -14
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +21 -17
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +71 -46
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-carousel.mjs +57 -33
- package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs +181 -117
- package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs +39 -25
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-color-picker.mjs +26 -17
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +56 -35
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +12 -12
- package/fesm2022/siemens-element-ng-connection-strength.mjs +14 -12
- package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +36 -27
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-copyright-notice.mjs +19 -14
- package/fesm2022/siemens-element-ng-copyright-notice.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +335 -221
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs +8 -8
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +119 -72
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +376 -244
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs +22 -17
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs +15 -12
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs +105 -91
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs +32 -24
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +251 -153
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-footer.mjs +12 -10
- package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +345 -113
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly-legacy.mjs +99 -0
- package/fesm2022/siemens-element-ng-formly-legacy.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-formly.mjs +222 -316
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +40 -30
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-help-button.mjs +5 -5
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs +46 -47
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-info-page.mjs +17 -11
- package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-inline-notification.mjs +19 -14
- package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ip-input.mjs +25 -25
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-landing-page.mjs +120 -74
- package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-language-switcher.mjs +16 -12
- package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-link.mjs +31 -21
- package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs +76 -56
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +46 -63
- package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-localization.mjs +14 -12
- package/fesm2022/siemens-element-ng-localization.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +47 -30
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-maplibre.mjs +42 -0
- package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs +6 -5
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs +56 -48
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-modal.mjs +14 -11
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +249 -204
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +120 -83
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +72 -45
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs +19 -11
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs +40 -28
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pagination.mjs +31 -20
- package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-strength.mjs +32 -23
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs +18 -13
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs +123 -139
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +84 -51
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +63 -58
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs +43 -28
- package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +35 -27
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-progressbar.mjs +23 -16
- package/fesm2022/siemens-element-ng-progressbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-resize-observer.mjs +32 -43
- package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +12 -10
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +38 -31
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +218 -163
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-shadow-root.mjs +3 -3
- package/fesm2022/siemens-element-ng-side-panel.mjs +128 -86
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs +21 -24
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-slider.mjs +44 -29
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs +273 -293
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +65 -51
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-counter.mjs +15 -11
- package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs +26 -16
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-chip.mjs +25 -16
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-widget.mjs +27 -17
- package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-system-banner.mjs +11 -8
- package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs +20 -17
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +73 -70
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-theme.mjs +29 -6
- package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +60 -41
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +45 -40
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +105 -82
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs +24 -18
- package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-translate.mjs +0 -1
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +96 -75
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +76 -70
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +72 -48
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/formly-legacy/package.json +4 -0
- package/maplibre/package.json +4 -0
- package/maplibre/styles/_index.scss +1 -0
- package/maplibre/styles/maplibre-gl.scss +715 -0
- package/package.json +37 -23
- package/schematics/migration.json +4 -4
- package/schematics/migrations/data/class-member-replacement.js +1 -19
- package/schematics/migrations/data/component-property-names.js +1 -25
- package/schematics/migrations/data/element-class-changes.js +1 -28
- package/schematics/migrations/data/element-migration-data.js +2 -0
- package/schematics/migrations/data/element-selectors.js +1 -11
- package/schematics/migrations/data/index.js +0 -4
- package/schematics/migrations/data/migration-test-data.js +9 -6
- package/schematics/migrations/data/provider-function-removals.js +7 -0
- package/schematics/migrations/data/symbol-removals.js +7 -7
- package/schematics/migrations/data/symbol-renaming.js +1 -48
- package/schematics/migrations/element-migration/element-migration.js +3 -6
- package/schematics/migrations/utilities/import-removal.js +39 -0
- package/schematics/migrations/utilities/index.js +2 -0
- package/schematics/migrations/utilities/provider-function-removal.migration.js +116 -0
- package/schematics/ng-update/index.js +1 -1
- package/schematics/ng-update/migrate-split-sizes.js +105 -0
- package/schematics/ng-update/{migrate-to-v49.js → migrate-to-v51.js} +5 -3
- package/template-i18n.json +45 -47
- package/types/siemens-element-ng-application-header.d.ts +8 -28
- package/types/siemens-element-ng-breadcrumb.d.ts +1 -1
- package/types/siemens-element-ng-chat-messages.d.ts +11 -9
- package/types/siemens-element-ng-circle-status.d.ts +1 -1
- package/types/siemens-element-ng-content-action-bar.d.ts +1 -1
- package/types/siemens-element-ng-dashboard.d.ts +2 -2
- package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
- package/types/siemens-element-ng-datepicker.d.ts +3 -14
- package/types/siemens-element-ng-electron-titlebar.d.ts +1 -1
- package/types/siemens-element-ng-file-uploader.d.ts +13 -31
- package/types/siemens-element-ng-filter-bar.d.ts +1 -1
- package/types/siemens-element-ng-filtered-search.d.ts +4 -4
- package/types/siemens-element-ng-form.d.ts +180 -44
- package/types/siemens-element-ng-formly-legacy.d.ts +40 -0
- package/types/siemens-element-ng-formly.d.ts +34 -167
- package/types/siemens-element-ng-icon.d.ts +2 -19
- package/types/siemens-element-ng-ip-input.d.ts +1 -1
- package/types/siemens-element-ng-landing-page.d.ts +2 -2
- package/types/siemens-element-ng-loading-spinner.d.ts +7 -17
- package/types/siemens-element-ng-maplibre.d.ts +26 -0
- package/types/siemens-element-ng-navbar-vertical-next.d.ts +86 -38
- package/types/siemens-element-ng-navbar-vertical.d.ts +1 -1
- package/types/siemens-element-ng-navbar.d.ts +3 -3
- package/types/siemens-element-ng-notification-item.d.ts +12 -0
- package/types/siemens-element-ng-phone-number.d.ts +5 -8
- package/types/siemens-element-ng-photo-upload.d.ts +4 -4
- package/types/siemens-element-ng-resize-observer.d.ts +0 -17
- package/types/siemens-element-ng-search-bar.d.ts +1 -1
- package/types/siemens-element-ng-select.d.ts +1 -1
- package/types/siemens-element-ng-side-panel.d.ts +3 -3
- package/types/siemens-element-ng-split.d.ts +99 -70
- package/types/siemens-element-ng-status-bar.d.ts +5 -13
- package/types/siemens-element-ng-status-counter.d.ts +1 -1
- package/types/siemens-element-ng-tabs.d.ts +1 -2
- package/types/siemens-element-ng-theme.d.ts +12 -2
- package/types/siemens-element-ng-threshold.d.ts +1 -1
- package/types/siemens-element-ng-toast-notification.d.ts +0 -1
- package/types/siemens-element-ng-tooltip.d.ts +7 -7
- package/types/siemens-element-ng-translate.d.ts +2 -5
- package/fesm2022/siemens-element-ng-icon-status.mjs +0 -46
- package/fesm2022/siemens-element-ng-icon-status.mjs.map +0 -1
- package/fesm2022/siemens-element-ng-sort-bar.mjs +0 -99
- package/fesm2022/siemens-element-ng-sort-bar.mjs.map +0 -1
- package/icon-status/package.json +0 -4
- package/schematics/vitest-setup.js +0 -5
- package/sort-bar/package.json +0 -4
- package/types/siemens-element-ng-icon-status.d.ts +0 -25
- package/types/siemens-element-ng-sort-bar.d.ts +0 -59
- /package/{LICENSE.md → LICENSE} +0 -0
|
@@ -1,19 +1,19 @@
|
|
|
1
|
+
import * as i1 from '@angular/cdk/portal';
|
|
2
|
+
import { DomPortal, PortalModule, TemplatePortal } from '@angular/cdk/portal';
|
|
1
3
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
4
|
+
import { inject, ElementRef, Component, InjectionToken, viewChild, linkedSignal, input, untracked, signal, computed, ViewContainerRef, DestroyRef, Injector, effect, Directive, booleanAttribute, model, contentChild, contentChildren, afterNextRender, output } from '@angular/core';
|
|
3
5
|
import { BreakpointObserver } from '@angular/cdk/layout';
|
|
4
|
-
import * as i1 from '@angular/cdk/portal';
|
|
5
|
-
import { TemplatePortal, DomPortal, PortalModule } from '@angular/cdk/portal';
|
|
6
6
|
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
7
7
|
import { elementRight2, elementDown2, elementLayoutPane2Right, elementLayoutPane2, elementDoubleRight, elementDoubleLeft, elementSearch } from '@siemens/element-icons';
|
|
8
8
|
import { SI_UI_STATE_SERVICE } from '@siemens/element-ng/common';
|
|
9
|
-
import {
|
|
9
|
+
import { SiIconComponent, addIcons } from '@siemens/element-ng/icon';
|
|
10
10
|
import { BOOTSTRAP_BREAKPOINTS } from '@siemens/element-ng/resize-observer';
|
|
11
11
|
import { SiSkipLinkTargetDirective } from '@siemens/element-ng/skip-links';
|
|
12
12
|
import { t, SiTranslatePipe } from '@siemens/element-translate-ng/translate';
|
|
13
|
+
import { CdkTrapFocus } from '@angular/cdk/a11y';
|
|
14
|
+
import { CdkOverlayOrigin, Overlay, CdkConnectedOverlay } from '@angular/cdk/overlay';
|
|
13
15
|
import { RouterLinkActive } from '@angular/router';
|
|
14
16
|
import { EMPTY } from 'rxjs';
|
|
15
|
-
import { Overlay } from '@angular/cdk/overlay';
|
|
16
|
-
import { CdkTrapFocus } from '@angular/cdk/a11y';
|
|
17
17
|
import { SiSearchBarComponent } from '@siemens/element-ng/search-bar';
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -26,12 +26,17 @@ import { SiSearchBarComponent } from '@siemens/element-ng/search-bar';
|
|
|
26
26
|
* @experimental
|
|
27
27
|
*/
|
|
28
28
|
class SiNavbarVerticalNextItemsComponent {
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
elementRef = inject(ElementRef);
|
|
30
|
+
/** DOM portal that relocates the whole items container into the chip menu overlay.
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
hostPortal = new DomPortal(this.elementRef.nativeElement);
|
|
34
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.7", type: SiNavbarVerticalNextItemsComponent, isStandalone: true, selector: "si-navbar-vertical-next-items", ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block;overflow-x:hidden;min-block-size:0;flex:1 0 0;overflow-y:auto;margin-block-start:8px}:host-context(.nav-collapsed){display:none}@media(min-width:576px){:host-context(:not(.nav-text-only).nav-collapsed){display:block}}:host-context(.chip-menu-panel){flex:none;margin:0;overflow:visible;min-block-size:auto}\n"] });
|
|
31
36
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextItemsComponent, decorators: [{
|
|
33
38
|
type: Component,
|
|
34
|
-
args: [{ selector: 'si-navbar-vertical-next-items', template: '<ng-content />',
|
|
39
|
+
args: [{ selector: 'si-navbar-vertical-next-items', template: '<ng-content />', styles: [":host{display:block;overflow-x:hidden;min-block-size:0;flex:1 0 0;overflow-y:auto;margin-block-start:8px}:host-context(.nav-collapsed){display:none}@media(min-width:576px){:host-context(:not(.nav-text-only).nav-collapsed){display:block}}:host-context(.chip-menu-panel){flex:none;margin:0;overflow:visible;min-block-size:auto}\n"] }]
|
|
35
40
|
}] });
|
|
36
41
|
|
|
37
42
|
/**
|
|
@@ -41,6 +46,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
41
46
|
/** @experimental */
|
|
42
47
|
const SI_NAVBAR_VERTICAL_NEXT = new InjectionToken('SI_NAVBAR_VERTICAL_NEXT');
|
|
43
48
|
|
|
49
|
+
/**
|
|
50
|
+
* Copyright (c) Siemens 2016 - 2026
|
|
51
|
+
* SPDX-License-Identifier: MIT
|
|
52
|
+
*/
|
|
53
|
+
/**
|
|
54
|
+
* Chip button + chip menu overlay. Mounted by the navbar in inline-collapse
|
|
55
|
+
* mode when an active root item exists.
|
|
56
|
+
* @experimental
|
|
57
|
+
*/
|
|
58
|
+
class SiNavbarVerticalNextChipMenuComponent {
|
|
59
|
+
static menuIdCounter = 0;
|
|
60
|
+
/** Parent navbar host. */
|
|
61
|
+
navbar = inject(SI_NAVBAR_VERTICAL_NEXT);
|
|
62
|
+
chipOrigin = viewChild(CdkOverlayOrigin, /* @ts-ignore */
|
|
63
|
+
...(ngDevMode ? [{ debugName: "chipOrigin" }] : /* istanbul ignore next */ []));
|
|
64
|
+
/** DOM id wiring the chip button's `aria-controls` to the overlay panel.
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
menuId = `si-navbar-vertical-next-chip-menu-${SiNavbarVerticalNextChipMenuComponent.menuIdCounter++}`;
|
|
68
|
+
/** DOM id wiring the chip label to the overlay panel's `aria-labelledby`.
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
menuLabelId = `${this.menuId}-label`;
|
|
72
|
+
/**
|
|
73
|
+
* `true` when the overlay is open.
|
|
74
|
+
*
|
|
75
|
+
* @defaultValue false
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
open = linkedSignal({ ...(ngDevMode ? { debugName: "open" } : /* istanbul ignore next */ {}), source: () => this.navbar.collapsed(),
|
|
79
|
+
computation: (collapsed, previous) => (collapsed ? (previous?.value ?? false) : false) });
|
|
80
|
+
/** @internal */
|
|
81
|
+
positions = [
|
|
82
|
+
{ originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },
|
|
83
|
+
{ originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' }
|
|
84
|
+
];
|
|
85
|
+
/** @internal */
|
|
86
|
+
scrollStrategy = inject(Overlay).scrollStrategies.reposition();
|
|
87
|
+
/** Toggles the overlay open state. */
|
|
88
|
+
toggle() {
|
|
89
|
+
this.open.update(open => !open);
|
|
90
|
+
}
|
|
91
|
+
/** Closes the overlay.
|
|
92
|
+
* @internal
|
|
93
|
+
*/
|
|
94
|
+
close() {
|
|
95
|
+
this.open.set(false);
|
|
96
|
+
}
|
|
97
|
+
/** @internal */
|
|
98
|
+
onOutsideClick(event) {
|
|
99
|
+
// Chip button click is handled by toggle(); ignore here.
|
|
100
|
+
if (!this.chipOrigin()?.elementRef.nativeElement.contains(event.target)) {
|
|
101
|
+
this.close();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextChipMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
105
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: SiNavbarVerticalNextChipMenuComponent, isStandalone: true, selector: "si-navbar-vertical-next-chip-menu", viewQueries: [{ propertyName: "chipOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, isSignal: true }], ngImport: i0, template: "@let item = navbar.activeItem();\n<button\n #chipOrigin=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n type=\"button\"\n class=\"chip btn btn-ghost\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"open() ? menuId : null\"\n (click)=\"toggle()\"\n>\n @if (item?.icon(); as chipIcon) {\n <si-icon class=\"icon\" [icon]=\"chipIcon\" />\n }\n @if (item?.label(); as label) {\n <span class=\"chip-label text-truncate\" [id]=\"menuLabelId\">{{ label }}</span>\n }\n</button>\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"chipOrigin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n (overlayOutsideClick)=\"onOutsideClick($event)\"\n>\n <div\n class=\"chip-menu-panel dropdown-menu\"\n role=\"dialog\"\n aria-modal=\"true\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n [id]=\"menuId\"\n [attr.aria-labelledby]=\"item?.label() ? menuLabelId : null\"\n (keydown.escape)=\"close()\"\n >\n @let items = navbar.itemsComponent();\n @if (items) {\n <ng-container [cdkPortalOutlet]=\"items.hostPortal\" />\n }\n </div>\n</ng-template>\n", styles: [":host{display:contents}.chip{position:fixed;z-index:0;inset-block-start:calc(calc(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px)) + 16px);inset-inline-start:calc(var(--si-navbar-parked-inline-start) + calc(1lh + 16px) + 1px);max-inline-size:calc(100vi - 2 * var(--si-navbar-parked-inline-start) - calc(1lh + 16px) - 1px);block-size:calc(1lh + 16px);min-inline-size:0;justify-content:flex-start;border-start-start-radius:0;border-end-start-radius:0;opacity:1;transition:inset-inline-start calc(.5s * var(--element-animations-enabled, 1)) ease,opacity calc(.5s * var(--element-animations-enabled, 1)) ease}@starting-style{.chip{inset-inline-start:var(--si-navbar-parked-inline-start);opacity:0}}.chip:focus-visible{z-index:1032}.chip .chip-label{font-weight:400}.chip-menu-panel{display:block;position:static;margin:0}\n"], dependencies: [{ kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }] });
|
|
106
|
+
}
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextChipMenuComponent, decorators: [{
|
|
108
|
+
type: Component,
|
|
109
|
+
args: [{ selector: 'si-navbar-vertical-next-chip-menu', imports: [CdkConnectedOverlay, CdkOverlayOrigin, CdkTrapFocus, PortalModule, SiIconComponent], template: "@let item = navbar.activeItem();\n<button\n #chipOrigin=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n type=\"button\"\n class=\"chip btn btn-ghost\"\n aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"open()\"\n [attr.aria-controls]=\"open() ? menuId : null\"\n (click)=\"toggle()\"\n>\n @if (item?.icon(); as chipIcon) {\n <si-icon class=\"icon\" [icon]=\"chipIcon\" />\n }\n @if (item?.label(); as label) {\n <span class=\"chip-label text-truncate\" [id]=\"menuLabelId\">{{ label }}</span>\n }\n</button>\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"chipOrigin\"\n [cdkConnectedOverlayOpen]=\"open()\"\n [cdkConnectedOverlayPositions]=\"positions\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy\"\n (overlayOutsideClick)=\"onOutsideClick($event)\"\n>\n <div\n class=\"chip-menu-panel dropdown-menu\"\n role=\"dialog\"\n aria-modal=\"true\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n [id]=\"menuId\"\n [attr.aria-labelledby]=\"item?.label() ? menuLabelId : null\"\n (keydown.escape)=\"close()\"\n >\n @let items = navbar.itemsComponent();\n @if (items) {\n <ng-container [cdkPortalOutlet]=\"items.hostPortal\" />\n }\n </div>\n</ng-template>\n", styles: [":host{display:contents}.chip{position:fixed;z-index:0;inset-block-start:calc(calc(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px)) + 16px);inset-inline-start:calc(var(--si-navbar-parked-inline-start) + calc(1lh + 16px) + 1px);max-inline-size:calc(100vi - 2 * var(--si-navbar-parked-inline-start) - calc(1lh + 16px) - 1px);block-size:calc(1lh + 16px);min-inline-size:0;justify-content:flex-start;border-start-start-radius:0;border-end-start-radius:0;opacity:1;transition:inset-inline-start calc(.5s * var(--element-animations-enabled, 1)) ease,opacity calc(.5s * var(--element-animations-enabled, 1)) ease}@starting-style{.chip{inset-inline-start:var(--si-navbar-parked-inline-start);opacity:0}}.chip:focus-visible{z-index:1032}.chip .chip-label{font-weight:400}.chip-menu-panel{display:block;position:static;margin:0}\n"] }]
|
|
110
|
+
}], propDecorators: { chipOrigin: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkOverlayOrigin), { isSignal: true }] }] } });
|
|
111
|
+
|
|
44
112
|
/**
|
|
45
113
|
* Copyright (c) Siemens 2016 - 2026
|
|
46
114
|
* SPDX-License-Identifier: MIT
|
|
@@ -53,16 +121,16 @@ const SI_NAVBAR_VERTICAL_NEXT = new InjectionToken('SI_NAVBAR_VERTICAL_NEXT');
|
|
|
53
121
|
* @experimental
|
|
54
122
|
*/
|
|
55
123
|
class SiNavbarFlyoutAnchorComponent {
|
|
56
|
-
groupId = input(
|
|
57
|
-
|
|
58
|
-
static
|
|
124
|
+
groupId = input(/* @ts-ignore */
|
|
125
|
+
...(ngDevMode ? [undefined, { debugName: "groupId" }] : /* istanbul ignore next */ []));
|
|
126
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarFlyoutAnchorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
127
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.7", type: SiNavbarFlyoutAnchorComponent, isStandalone: true, selector: "si-navbar-flyout-anchor", inputs: { groupId: { classPropertyName: "groupId", publicName: "groupId", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-owns": "groupId()" } }, ngImport: i0, template: '', isInline: true });
|
|
59
128
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarFlyoutAnchorComponent, decorators: [{
|
|
61
130
|
type: Component,
|
|
62
131
|
args: [{
|
|
63
132
|
selector: 'si-navbar-flyout-anchor',
|
|
64
133
|
template: '',
|
|
65
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
66
134
|
host: { '[attr.aria-owns]': 'groupId()' }
|
|
67
135
|
}]
|
|
68
136
|
}], propDecorators: { groupId: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupId", required: false }] }] } });
|
|
@@ -72,10 +140,11 @@ class SiNavbarVerticalNextGroupTriggerDirective {
|
|
|
72
140
|
/** @internal */
|
|
73
141
|
groupId = `si-navbar-vertical-next-group-${SiNavbarVerticalNextGroupTriggerDirective.idCounter++}`;
|
|
74
142
|
id = `${this.groupId}-trigger`;
|
|
75
|
-
groupTemplate = input.required({ ...(ngDevMode ? { debugName: "groupTemplate" } : {}), alias: 'siNavbarVerticalNextGroupTriggerFor' });
|
|
76
|
-
stateId = input(
|
|
143
|
+
groupTemplate = input.required({ ...(ngDevMode ? { debugName: "groupTemplate" } : /* istanbul ignore next */ {}), alias: 'siNavbarVerticalNextGroupTriggerFor' });
|
|
144
|
+
stateId = input(/* @ts-ignore */
|
|
145
|
+
...(ngDevMode ? [undefined, { debugName: "stateId" }] : /* istanbul ignore next */ []));
|
|
77
146
|
/** @defaultValue false */
|
|
78
|
-
expanded = linkedSignal({ ...(ngDevMode ? { debugName: "expanded" } : {}), source: () => {
|
|
147
|
+
expanded = linkedSignal({ ...(ngDevMode ? { debugName: "expanded" } : /* istanbul ignore next */ {}), source: () => {
|
|
79
148
|
const stateId = this.stateId();
|
|
80
149
|
return {
|
|
81
150
|
uiState: stateId ? this.navbar.uiStateExpandedItems()[stateId] : undefined,
|
|
@@ -101,28 +170,37 @@ class SiNavbarVerticalNextGroupTriggerDirective {
|
|
|
101
170
|
* `false` whenever the rendering mode changes.
|
|
102
171
|
* @internal
|
|
103
172
|
*/
|
|
104
|
-
flyout = linkedSignal({ ...(ngDevMode ? { debugName: "flyout" } : {}), source: () => this.flyoutMode(),
|
|
173
|
+
flyout = linkedSignal({ ...(ngDevMode ? { debugName: "flyout" } : /* istanbul ignore next */ {}), source: () => this.flyoutMode(),
|
|
105
174
|
computation: () => false });
|
|
106
175
|
/** `true` when this group contains the active route. Set by the group component.
|
|
107
176
|
* @internal
|
|
108
177
|
*/
|
|
109
|
-
active = signal(false,
|
|
178
|
+
active = signal(false, /* @ts-ignore */
|
|
179
|
+
...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
|
|
110
180
|
navbar = inject(SI_NAVBAR_VERTICAL_NEXT);
|
|
111
181
|
/** Signal mirror of the navbar's flyout mode. `true` when groups should render as transient overlays instead of inline.
|
|
112
182
|
* @internal
|
|
113
183
|
*/
|
|
114
|
-
flyoutMode = computed(() => this.navbar.flyoutMode(),
|
|
184
|
+
flyoutMode = computed(() => this.navbar.flyoutMode(), /* @ts-ignore */
|
|
185
|
+
...(ngDevMode ? [{ debugName: "flyoutMode" }] : /* istanbul ignore next */ []));
|
|
115
186
|
flyoutOutsideClickSubscription;
|
|
116
187
|
viewContainer = inject(ViewContainerRef);
|
|
117
188
|
overlay = inject(Overlay);
|
|
118
189
|
destroyRef = inject(DestroyRef);
|
|
119
190
|
injector = Injector.create({ parent: inject(Injector), providers: [] });
|
|
120
191
|
overlayRef = this.overlay.create({
|
|
121
|
-
positionStrategy: this.
|
|
192
|
+
positionStrategy: this.overlay
|
|
193
|
+
.position()
|
|
194
|
+
.flexibleConnectedTo(this.viewContainer.element)
|
|
195
|
+
.withPositions([
|
|
196
|
+
{ originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },
|
|
197
|
+
{ originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' }
|
|
198
|
+
])
|
|
122
199
|
});
|
|
123
200
|
groupView;
|
|
124
201
|
flyoutAnchorComponentRef;
|
|
125
|
-
templatePortal = computed(() => new TemplatePortal(this.groupTemplate(), this.viewContainer, undefined, this.injector),
|
|
202
|
+
templatePortal = computed(() => new TemplatePortal(this.groupTemplate(), this.viewContainer, undefined, this.injector), /* @ts-ignore */
|
|
203
|
+
...(ngDevMode ? [{ debugName: "templatePortal" }] : /* istanbul ignore next */ []));
|
|
126
204
|
constructor() {
|
|
127
205
|
// Manage the rendering of the inline projection / flyout overlay in
|
|
128
206
|
// response to mode changes. Only side effects belong here; the related
|
|
@@ -140,22 +218,6 @@ class SiNavbarVerticalNextGroupTriggerDirective {
|
|
|
140
218
|
});
|
|
141
219
|
}
|
|
142
220
|
/** @internal */
|
|
143
|
-
buildPositionStrategy(chipMode) {
|
|
144
|
-
const positions = chipMode
|
|
145
|
-
? [
|
|
146
|
-
{ originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },
|
|
147
|
-
{ originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' }
|
|
148
|
-
]
|
|
149
|
-
: [
|
|
150
|
-
{ originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },
|
|
151
|
-
{ originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' }
|
|
152
|
-
];
|
|
153
|
-
return this.overlay
|
|
154
|
-
.position()
|
|
155
|
-
.flexibleConnectedTo(this.viewContainer.element)
|
|
156
|
-
.withPositions(positions);
|
|
157
|
-
}
|
|
158
|
-
/** @internal */
|
|
159
221
|
hideFlyout() {
|
|
160
222
|
if (!this.flyout())
|
|
161
223
|
return;
|
|
@@ -189,13 +251,9 @@ class SiNavbarVerticalNextGroupTriggerDirective {
|
|
|
189
251
|
});
|
|
190
252
|
}
|
|
191
253
|
attachFlyout() {
|
|
192
|
-
this.overlayRef.updatePositionStrategy(this.buildPositionStrategy(this.navbar.chipMode()));
|
|
193
254
|
this.groupView?.destroy();
|
|
194
255
|
this.groupView = this.overlayRef.attach(this.templatePortal());
|
|
195
|
-
|
|
196
|
-
// navbar's in-nav anchor host so aria-owns stays within the navigation landmark.
|
|
197
|
-
const anchorHost = this.navbar.flyoutAnchorHost() ?? this.viewContainer;
|
|
198
|
-
this.flyoutAnchorComponentRef = anchorHost.createComponent(SiNavbarFlyoutAnchorComponent);
|
|
256
|
+
this.flyoutAnchorComponentRef = this.viewContainer.createComponent(SiNavbarFlyoutAnchorComponent);
|
|
199
257
|
this.flyoutAnchorComponentRef.setInput('groupId', this.groupId);
|
|
200
258
|
this.flyoutOutsideClickSubscription = this.overlayRef
|
|
201
259
|
.outsidePointerEvents()
|
|
@@ -207,17 +265,17 @@ class SiNavbarVerticalNextGroupTriggerDirective {
|
|
|
207
265
|
this.flyoutOutsideClickSubscription?.unsubscribe();
|
|
208
266
|
this.flyoutOutsideClickSubscription = undefined;
|
|
209
267
|
}
|
|
210
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
211
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
268
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextGroupTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
269
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: SiNavbarVerticalNextGroupTriggerDirective, isStandalone: true, selector: "button[siNavbarVerticalNextGroupTriggerFor]", inputs: { groupTemplate: { classPropertyName: "groupTemplate", publicName: "siNavbarVerticalNextGroupTriggerFor", isSignal: true, isRequired: true, transformFunction: null }, stateId: { classPropertyName: "stateId", publicName: "stateId", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "triggered()" }, properties: { "id": "id", "class.show": "!flyoutMode() && expanded()", "attr.aria-controls": "groupId", "attr.aria-expanded": "flyoutMode() ? flyout() : expanded()" }, classAttribute: "dropdown-toggle" }, ngImport: i0 });
|
|
212
270
|
}
|
|
213
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
271
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextGroupTriggerDirective, decorators: [{
|
|
214
272
|
type: Directive,
|
|
215
273
|
args: [{
|
|
216
274
|
selector: 'button[siNavbarVerticalNextGroupTriggerFor]',
|
|
217
275
|
host: {
|
|
218
276
|
class: 'dropdown-toggle',
|
|
219
277
|
'[id]': 'id',
|
|
220
|
-
'[class.show]': 'expanded()',
|
|
278
|
+
'[class.show]': '!flyoutMode() && expanded()',
|
|
221
279
|
'[attr.aria-controls]': 'groupId',
|
|
222
280
|
'[attr.aria-expanded]': 'flyoutMode() ? flyout() : expanded()',
|
|
223
281
|
'(click)': 'triggered()'
|
|
@@ -233,19 +291,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
233
291
|
class SiNavbarVerticalNextItemComponent {
|
|
234
292
|
icons = addIcons({ elementDown2, elementRight2 });
|
|
235
293
|
/** Optional icon to render before the label. */
|
|
236
|
-
icon = input(
|
|
294
|
+
icon = input(/* @ts-ignore */
|
|
295
|
+
...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
237
296
|
/** Badge value to display. */
|
|
238
|
-
badge = input(
|
|
297
|
+
badge = input(/* @ts-ignore */
|
|
298
|
+
...(ngDevMode ? [undefined, { debugName: "badge" }] : /* istanbul ignore next */ []));
|
|
239
299
|
/** Color of the badge. */
|
|
240
|
-
badgeColor = input(
|
|
300
|
+
badgeColor = input(/* @ts-ignore */
|
|
301
|
+
...(ngDevMode ? [undefined, { debugName: "badgeColor" }] : /* istanbul ignore next */ []));
|
|
241
302
|
/**
|
|
242
303
|
* Hide the badge when the navbar is collapsed.
|
|
243
304
|
*
|
|
244
305
|
* @defaultValue false
|
|
245
306
|
*/
|
|
246
|
-
hideBadgeWhenCollapsed = input(false, { ...(ngDevMode ? { debugName: "hideBadgeWhenCollapsed" } : {}), transform: booleanAttribute });
|
|
307
|
+
hideBadgeWhenCollapsed = input(false, { ...(ngDevMode ? { debugName: "hideBadgeWhenCollapsed" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
247
308
|
/** Override the active state. Useful for action items. */
|
|
248
|
-
activeOverride = input(
|
|
309
|
+
activeOverride = input(/* @ts-ignore */
|
|
310
|
+
...(ngDevMode ? [undefined, { debugName: "activeOverride" }] : /* istanbul ignore next */ []));
|
|
311
|
+
/**
|
|
312
|
+
* Text label of this item.
|
|
313
|
+
* Consumed by the chip button to mirror the active item's label when collapsed.
|
|
314
|
+
*/
|
|
315
|
+
label = input(/* @ts-ignore */
|
|
316
|
+
...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
|
|
249
317
|
navbar = inject(SI_NAVBAR_VERTICAL_NEXT);
|
|
250
318
|
parent = inject(SiNavbarVerticalNextItemComponent, {
|
|
251
319
|
skipSelf: true,
|
|
@@ -260,37 +328,37 @@ class SiNavbarVerticalNextItemComponent {
|
|
|
260
328
|
* @internal
|
|
261
329
|
*/
|
|
262
330
|
routerActive = toSignal(this.routerLinkActive?.isActiveChange ?? EMPTY, { initialValue: this.routerLinkActive?.isActive ?? false });
|
|
263
|
-
/**
|
|
264
|
-
elementRef = inject(ElementRef);
|
|
265
|
-
/** DOM portal relocated into the chip slot when collapsed.
|
|
331
|
+
/** `true` when the navbar is in chip mode (inline-collapse active and collapsed).
|
|
266
332
|
* @internal
|
|
267
333
|
*/
|
|
268
|
-
|
|
269
|
-
/** Signal mirror of the navbar's chip mode. `true` when inline-collapse is active and the navbar is collapsed.
|
|
270
|
-
* @internal
|
|
271
|
-
*/
|
|
272
|
-
chipMode = computed(() => this.navbar.chipMode(), ...(ngDevMode ? [{ debugName: "chipMode" }] : []));
|
|
334
|
+
chipMode = this.navbar.chipMode;
|
|
273
335
|
/**
|
|
274
336
|
* Determines if the badge contains text-only content (not numeric)
|
|
275
337
|
*/
|
|
276
338
|
textOnlyBadge = computed(() => {
|
|
277
339
|
const badge = this.badge();
|
|
278
340
|
return badge != null && badge !== '' ? typeof badge !== 'number' : false;
|
|
279
|
-
},
|
|
341
|
+
}, /* @ts-ignore */
|
|
342
|
+
...(ngDevMode ? [{ debugName: "textOnlyBadge" }] : /* istanbul ignore next */ []));
|
|
280
343
|
/** `true` when the `active` CSS class should be applied to this item.
|
|
281
344
|
*
|
|
282
|
-
* In chip mode
|
|
283
|
-
*
|
|
284
|
-
*
|
|
285
|
-
*
|
|
345
|
+
* In chip mode the root-level items are hidden inside the collapsed nav until
|
|
346
|
+
* the user opens the chip menu, so their active state is suppressed to avoid
|
|
347
|
+
* flashing when the menu closes. Sub-items and open group triggers always
|
|
348
|
+
* reflect activity. While the chip menu is open, root-level active items must
|
|
349
|
+
* be highlighted so the user can locate the current page in the overlay.
|
|
286
350
|
* @internal
|
|
287
351
|
*/
|
|
288
352
|
showActive = computed(() => {
|
|
289
353
|
if (this.chipMode()) {
|
|
354
|
+
if (this.navbar.chipMenuOpen()) {
|
|
355
|
+
return this.active();
|
|
356
|
+
}
|
|
290
357
|
return (!!this.parent || this.group?.flyout()) && this.active();
|
|
291
358
|
}
|
|
292
359
|
return this.active();
|
|
293
|
-
},
|
|
360
|
+
}, /* @ts-ignore */
|
|
361
|
+
...(ngDevMode ? [{ debugName: "showActive" }] : /* istanbul ignore next */ []));
|
|
294
362
|
/**
|
|
295
363
|
* Formats badge value to limit display to "+99" for numbers greater than 99
|
|
296
364
|
*/
|
|
@@ -303,15 +371,18 @@ class SiNavbarVerticalNextItemComponent {
|
|
|
303
371
|
return badge > 99 ? '+99' : badge.toString();
|
|
304
372
|
}
|
|
305
373
|
return badge.toString();
|
|
306
|
-
},
|
|
374
|
+
}, /* @ts-ignore */
|
|
375
|
+
...(ngDevMode ? [{ debugName: "formattedBadge" }] : /* istanbul ignore next */ []));
|
|
307
376
|
/** Active via override or router link — excludes group state.
|
|
308
377
|
* @internal
|
|
309
378
|
*/
|
|
310
|
-
anyRouteActive = computed(() => !!this.activeOverride() || this.routerActive(),
|
|
379
|
+
anyRouteActive = computed(() => !!this.activeOverride() || this.routerActive(), /* @ts-ignore */
|
|
380
|
+
...(ngDevMode ? [{ debugName: "anyRouteActive" }] : /* istanbul ignore next */ []));
|
|
311
381
|
/** Own route is active, or a descendant route is active — includes group state, not gated on expansion.
|
|
312
382
|
* @internal
|
|
313
383
|
*/
|
|
314
|
-
isOnActiveRoute = computed(() => this.anyRouteActive() || !!this.group?.active(),
|
|
384
|
+
isOnActiveRoute = computed(() => this.anyRouteActive() || !!this.group?.active(), /* @ts-ignore */
|
|
385
|
+
...(ngDevMode ? [{ debugName: "isOnActiveRoute" }] : /* istanbul ignore next */ []));
|
|
315
386
|
/**
|
|
316
387
|
* `true` when this item should reflect activity.
|
|
317
388
|
*
|
|
@@ -323,15 +394,13 @@ class SiNavbarVerticalNextItemComponent {
|
|
|
323
394
|
* when the active child cannot show it itself.
|
|
324
395
|
*/
|
|
325
396
|
active = computed(() => this.anyRouteActive() ||
|
|
326
|
-
((!this.group?.expanded() || this.navbar.collapsed()) && !!this.group?.active()),
|
|
397
|
+
((!this.group?.expanded() || this.navbar.collapsed()) && !!this.group?.active()), /* @ts-ignore */
|
|
398
|
+
...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
|
|
327
399
|
/** `true` when this is a root-level item on the active route (ungated, so the chip survives collapse↔expand).
|
|
328
400
|
* @internal
|
|
329
401
|
*/
|
|
330
|
-
isActiveRootItem = computed(() => !this.parent && this.isOnActiveRoute(),
|
|
331
|
-
|
|
332
|
-
* @internal
|
|
333
|
-
*/
|
|
334
|
-
isChip = computed(() => this.navbar.chipPortalAttached() && this.isActiveRootItem(), ...(ngDevMode ? [{ debugName: "isChip" }] : []));
|
|
402
|
+
isActiveRootItem = computed(() => !this.parent && this.isOnActiveRoute(), /* @ts-ignore */
|
|
403
|
+
...(ngDevMode ? [{ debugName: "isActiveRootItem" }] : /* istanbul ignore next */ []));
|
|
335
404
|
ngOnInit() {
|
|
336
405
|
if (this.group && this.active()) {
|
|
337
406
|
this.group.expanded.set(true);
|
|
@@ -343,22 +412,18 @@ class SiNavbarVerticalNextItemComponent {
|
|
|
343
412
|
this.navbar.itemTriggered();
|
|
344
413
|
}
|
|
345
414
|
}
|
|
346
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
347
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
415
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
416
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: SiNavbarVerticalNextItemComponent, isStandalone: true, selector: "a[si-navbar-vertical-next-item], button[si-navbar-vertical-next-item]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, badgeColor: { classPropertyName: "badgeColor", publicName: "badgeColor", isSignal: true, isRequired: false, transformFunction: null }, hideBadgeWhenCollapsed: { classPropertyName: "hideBadgeWhenCollapsed", publicName: "hideBadgeWhenCollapsed", isSignal: true, isRequired: false, transformFunction: null }, activeOverride: { classPropertyName: "activeOverride", publicName: "activeOverride", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "triggered()" }, properties: { "class.active": "showActive()", "class.hide-badge-collapsed": "hideBadgeWhenCollapsed()" }, classAttribute: "navbar-vertical-item focus-inside" }, ngImport: i0, template: "@let icon = this.icon();\n@if (icon) {\n <si-icon class=\"icon-lg\" [icon]=\"icon\" />\n}\n<div class=\"item-title text-truncate si-h5\">{{ label() }}</div>\n@if (!navbar.textOnly() && formattedBadge()) {\n @let badgeColor = this.badgeColor();\n <span\n [class]=\"[\n 'badge',\n badgeColor ? `bg-${badgeColor}` : 'bg-default',\n textOnlyBadge() ? 'badge-text-only' : '',\n navbar.collapsed() ? 'badge-collapsed' : ''\n ]\"\n >{{ formattedBadge() }}</span\n >\n}\n@if (group) {\n <si-icon\n class=\"dropdown-caret me-0 text-body\"\n [icon]=\"group.flyoutMode() ? icons.elementRight2 : icons.elementDown2\"\n />\n}\n", styles: [":host(.navbar-vertical-item){display:flex;align-items:center;position:relative;color:var(--element-text-primary);background:none;border:0;font-size:.875rem;padding-block:8px;padding-inline:0 12px;min-inline-size:0;min-block-size:calc(1lh + 24px);inline-size:100%;border-radius:0}:host(.navbar-vertical-item) .item-title{margin-inline-start:12px}:host(.navbar-vertical-item) .icon-lg{margin-inline-start:12px}:host(.navbar-vertical-item) .icon-lg+.item-title{margin-inline-start:8px}:host(.navbar-vertical-item).show .badge:not(.badge-collapsed){display:none}:host(.navbar-vertical-item):not(.show) .badge+.dropdown-caret{margin-inline:0;padding-inline:0}:host(.navbar-vertical-item).active{color:var(--element-action-primary-hover);background:var(--element-base-1-selected)}:host(.navbar-vertical-item).active:after{content:\"\";position:absolute;inset-block:0;inset-inline-start:0;inline-size:4px;background:var(--element-action-primary-hover)}:host(.navbar-vertical-item):hover{text-decoration:none;background:var(--element-base-1-hover)}:host-context(si-navbar-vertical-next-items > .navbar-vertical-item)+:host(.navbar-vertical-item),:host-context(si-navbar-vertical-next-items > si-navbar-vertical-next-group)+:host(.navbar-vertical-item),:host-context(si-navbar-vertical-next-items > si-navbar-flyout-anchor)+:host(.navbar-vertical-item),:host-context(si-navbar-vertical-next-footer-items > .navbar-vertical-item)+:host(.navbar-vertical-item),:host-context(si-navbar-vertical-next-footer-items > si-navbar-vertical-next-group)+:host(.navbar-vertical-item),:host-context(si-navbar-vertical-next-footer-items > si-navbar-flyout-anchor)+:host(.navbar-vertical-item){margin-block-start:8px}:host-context(.nav-text-only si-navbar-vertical-next-group) .item-title{margin-inline-start:0}:host-context(si-navbar-vertical-next-group) :host(.navbar-vertical-item){padding-inline-start:32px}:host-context(si-navbar-vertical-next-group) :host(.navbar-vertical-item) .item-title{font-weight:400}:host-context(.dropdown-menu) :host(.navbar-vertical-item){padding-inline-start:0}:host-context(.dropdown-menu) :host(.navbar-vertical-item) .item-title{font-weight:400}:host-context(.nav-collapsed) .badge{position:absolute;inset-block-start:4px;inset-inline-end:6px;min-inline-size:.875rem;border-radius:.4375rem;font-size:.75rem;line-height:.875rem;padding-block:0;padding-inline:4px;font-family:var(--element-body-font-family);font-weight:600;text-align:center}:host-context(.nav-collapsed) .badge.badge-text-only{color:transparent;font-size:0}:host-context(.nav-collapsed) :is(.item-title,.dropdown-caret){position:absolute!important;inline-size:1px!important;block-size:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}:host-context(.nav-collapsed).hide-badge-collapsed .badge{display:none}.badge{margin-inline:auto 0}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }] });
|
|
348
417
|
}
|
|
349
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
418
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextItemComponent, decorators: [{
|
|
350
419
|
type: Component,
|
|
351
|
-
args: [{ selector: 'a[si-navbar-vertical-next-item], button[si-navbar-vertical-next-item]', imports: [SiIconComponent],
|
|
352
|
-
|
|
353
|
-
'[class.navbar-vertical-item]': '!isChip()',
|
|
420
|
+
args: [{ selector: 'a[si-navbar-vertical-next-item], button[si-navbar-vertical-next-item]', imports: [SiIconComponent], host: {
|
|
421
|
+
class: 'navbar-vertical-item focus-inside',
|
|
354
422
|
'[class.active]': 'showActive()',
|
|
355
|
-
'[class.is-chip]': 'isChip()',
|
|
356
|
-
'[class.btn]': 'isChip()',
|
|
357
|
-
'[class.btn-primary-ghost]': 'isChip()',
|
|
358
423
|
'[class.hide-badge-collapsed]': 'hideBadgeWhenCollapsed()',
|
|
359
424
|
'(click)': 'triggered()'
|
|
360
|
-
}, template: "@let icon = this.icon();\n@if (icon) {\n <si-icon
|
|
361
|
-
}], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], badge: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge", required: false }] }], badgeColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "badgeColor", required: false }] }], hideBadgeWhenCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideBadgeWhenCollapsed", required: false }] }], activeOverride: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeOverride", required: false }] }] } });
|
|
425
|
+
}, template: "@let icon = this.icon();\n@if (icon) {\n <si-icon class=\"icon-lg\" [icon]=\"icon\" />\n}\n<div class=\"item-title text-truncate si-h5\">{{ label() }}</div>\n@if (!navbar.textOnly() && formattedBadge()) {\n @let badgeColor = this.badgeColor();\n <span\n [class]=\"[\n 'badge',\n badgeColor ? `bg-${badgeColor}` : 'bg-default',\n textOnlyBadge() ? 'badge-text-only' : '',\n navbar.collapsed() ? 'badge-collapsed' : ''\n ]\"\n >{{ formattedBadge() }}</span\n >\n}\n@if (group) {\n <si-icon\n class=\"dropdown-caret me-0 text-body\"\n [icon]=\"group.flyoutMode() ? icons.elementRight2 : icons.elementDown2\"\n />\n}\n", styles: [":host(.navbar-vertical-item){display:flex;align-items:center;position:relative;color:var(--element-text-primary);background:none;border:0;font-size:.875rem;padding-block:8px;padding-inline:0 12px;min-inline-size:0;min-block-size:calc(1lh + 24px);inline-size:100%;border-radius:0}:host(.navbar-vertical-item) .item-title{margin-inline-start:12px}:host(.navbar-vertical-item) .icon-lg{margin-inline-start:12px}:host(.navbar-vertical-item) .icon-lg+.item-title{margin-inline-start:8px}:host(.navbar-vertical-item).show .badge:not(.badge-collapsed){display:none}:host(.navbar-vertical-item):not(.show) .badge+.dropdown-caret{margin-inline:0;padding-inline:0}:host(.navbar-vertical-item).active{color:var(--element-action-primary-hover);background:var(--element-base-1-selected)}:host(.navbar-vertical-item).active:after{content:\"\";position:absolute;inset-block:0;inset-inline-start:0;inline-size:4px;background:var(--element-action-primary-hover)}:host(.navbar-vertical-item):hover{text-decoration:none;background:var(--element-base-1-hover)}:host-context(si-navbar-vertical-next-items > .navbar-vertical-item)+:host(.navbar-vertical-item),:host-context(si-navbar-vertical-next-items > si-navbar-vertical-next-group)+:host(.navbar-vertical-item),:host-context(si-navbar-vertical-next-items > si-navbar-flyout-anchor)+:host(.navbar-vertical-item),:host-context(si-navbar-vertical-next-footer-items > .navbar-vertical-item)+:host(.navbar-vertical-item),:host-context(si-navbar-vertical-next-footer-items > si-navbar-vertical-next-group)+:host(.navbar-vertical-item),:host-context(si-navbar-vertical-next-footer-items > si-navbar-flyout-anchor)+:host(.navbar-vertical-item){margin-block-start:8px}:host-context(.nav-text-only si-navbar-vertical-next-group) .item-title{margin-inline-start:0}:host-context(si-navbar-vertical-next-group) :host(.navbar-vertical-item){padding-inline-start:32px}:host-context(si-navbar-vertical-next-group) :host(.navbar-vertical-item) .item-title{font-weight:400}:host-context(.dropdown-menu) :host(.navbar-vertical-item){padding-inline-start:0}:host-context(.dropdown-menu) :host(.navbar-vertical-item) .item-title{font-weight:400}:host-context(.nav-collapsed) .badge{position:absolute;inset-block-start:4px;inset-inline-end:6px;min-inline-size:.875rem;border-radius:.4375rem;font-size:.75rem;line-height:.875rem;padding-block:0;padding-inline:4px;font-family:var(--element-body-font-family);font-weight:600;text-align:center}:host-context(.nav-collapsed) .badge.badge-text-only{color:transparent;font-size:0}:host-context(.nav-collapsed) :is(.item-title,.dropdown-caret){position:absolute!important;inline-size:1px!important;block-size:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}:host-context(.nav-collapsed).hide-badge-collapsed .badge{display:none}.badge{margin-inline:auto 0}\n"] }]
|
|
426
|
+
}], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], badge: [{ type: i0.Input, args: [{ isSignal: true, alias: "badge", required: false }] }], badgeColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "badgeColor", required: false }] }], hideBadgeWhenCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideBadgeWhenCollapsed", required: false }] }], activeOverride: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeOverride", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }] } });
|
|
362
427
|
|
|
363
428
|
/**
|
|
364
429
|
* Copyright (c) Siemens 2016 - 2026
|
|
@@ -377,13 +442,14 @@ class SiNavbarVerticalNextComponent {
|
|
|
377
442
|
*
|
|
378
443
|
* @defaultValue false
|
|
379
444
|
*/
|
|
380
|
-
collapsed = model(false,
|
|
445
|
+
collapsed = model(false, /* @ts-ignore */
|
|
446
|
+
...(ngDevMode ? [{ debugName: "collapsed" }] : /* istanbul ignore next */ []));
|
|
381
447
|
/**
|
|
382
448
|
* Set to `true` if there are no icons
|
|
383
449
|
*
|
|
384
450
|
* @defaultValue false
|
|
385
451
|
*/
|
|
386
|
-
textOnly = input(false, { ...(ngDevMode ? { debugName: "textOnly" } : {}), transform: booleanAttribute });
|
|
452
|
+
textOnly = input(false, { ...(ngDevMode ? { debugName: "textOnly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
387
453
|
/**
|
|
388
454
|
* Enables an alternative inline-collapse behavior.
|
|
389
455
|
*
|
|
@@ -392,7 +458,7 @@ class SiNavbarVerticalNextComponent {
|
|
|
392
458
|
*
|
|
393
459
|
* @defaultValue false
|
|
394
460
|
*/
|
|
395
|
-
inlineCollapse = input(false, { ...(ngDevMode ? { debugName: "inlineCollapse" } : {}), transform: booleanAttribute });
|
|
461
|
+
inlineCollapse = input(false, { ...(ngDevMode ? { debugName: "inlineCollapse" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
396
462
|
/**
|
|
397
463
|
* When `true`, item-groups always open as a transient flyout panel adjacent to the
|
|
398
464
|
* trigger, regardless of whether the navbar is collapsed or expanded.
|
|
@@ -400,7 +466,7 @@ class SiNavbarVerticalNextComponent {
|
|
|
400
466
|
*
|
|
401
467
|
* @defaultValue false
|
|
402
468
|
*/
|
|
403
|
-
alwaysFlyout = input(false, { ...(ngDevMode ? { debugName: "alwaysFlyout" } : {}), transform: booleanAttribute });
|
|
469
|
+
alwaysFlyout = input(false, { ...(ngDevMode ? { debugName: "alwaysFlyout" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
404
470
|
/**
|
|
405
471
|
* List of vertical navigation items
|
|
406
472
|
*
|
|
@@ -409,7 +475,7 @@ class SiNavbarVerticalNextComponent {
|
|
|
409
475
|
*
|
|
410
476
|
* @defaultValue true
|
|
411
477
|
*/
|
|
412
|
-
visible = input(true, { ...(ngDevMode ? { debugName: "visible" } : {}), transform: booleanAttribute });
|
|
478
|
+
visible = input(true, { ...(ngDevMode ? { debugName: "visible" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
413
479
|
/**
|
|
414
480
|
* Text for the navbar toggle button used as `aria-label`.
|
|
415
481
|
* The expanded state is communicated via `aria-expanded`.
|
|
@@ -419,12 +485,14 @@ class SiNavbarVerticalNextComponent {
|
|
|
419
485
|
* t(() => $localize`:@@SI_NAVBAR_VERTICAL.TOGGLE:Toggle`)
|
|
420
486
|
* ```
|
|
421
487
|
*/
|
|
422
|
-
toggleButtonText = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.TOGGLE:Toggle`),
|
|
488
|
+
toggleButtonText = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.TOGGLE:Toggle`), /* @ts-ignore */
|
|
489
|
+
...(ngDevMode ? [{ debugName: "toggleButtonText" }] : /* istanbul ignore next */ []));
|
|
423
490
|
/**
|
|
424
491
|
* An optional stateId to uniquely identify a component instance.
|
|
425
492
|
* Required for persistence of ui state.
|
|
426
493
|
*/
|
|
427
|
-
stateId = input(
|
|
494
|
+
stateId = input(/* @ts-ignore */
|
|
495
|
+
...(ngDevMode ? [undefined, { debugName: "stateId" }] : /* istanbul ignore next */ []));
|
|
428
496
|
/**
|
|
429
497
|
* Label for the skip link to the vertical navbar
|
|
430
498
|
*
|
|
@@ -433,7 +501,8 @@ class SiNavbarVerticalNextComponent {
|
|
|
433
501
|
* t(() => $localize`:@@SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL:Navigation`)
|
|
434
502
|
* ```
|
|
435
503
|
*/
|
|
436
|
-
skipLinkNavigationLabel = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL:Navigation`),
|
|
504
|
+
skipLinkNavigationLabel = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL:Navigation`), /* @ts-ignore */
|
|
505
|
+
...(ngDevMode ? [{ debugName: "skipLinkNavigationLabel" }] : /* istanbul ignore next */ []));
|
|
437
506
|
/**
|
|
438
507
|
* Label for the skip link to main content
|
|
439
508
|
*
|
|
@@ -442,35 +511,42 @@ class SiNavbarVerticalNextComponent {
|
|
|
442
511
|
* t(() => $localize`:@@SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL:Main content`)
|
|
443
512
|
* ```
|
|
444
513
|
*/
|
|
445
|
-
skipLinkMainContentLabel = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL:Main content`),
|
|
514
|
+
skipLinkMainContentLabel = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL:Main content`), /* @ts-ignore */
|
|
515
|
+
...(ngDevMode ? [{ debugName: "skipLinkMainContentLabel" }] : /* istanbul ignore next */ []));
|
|
446
516
|
uiStateService = inject(SI_UI_STATE_SERVICE, { optional: true });
|
|
447
517
|
breakpointObserver = inject(BreakpointObserver);
|
|
448
518
|
injector = inject(Injector);
|
|
449
|
-
ready = signal(false,
|
|
450
|
-
|
|
451
|
-
|
|
519
|
+
ready = signal(false, /* @ts-ignore */
|
|
520
|
+
...(ngDevMode ? [{ debugName: "ready" }] : /* istanbul ignore next */ []));
|
|
521
|
+
smallScreen = signal(false, /* @ts-ignore */
|
|
522
|
+
...(ngDevMode ? [{ debugName: "smallScreen" }] : /* istanbul ignore next */ []));
|
|
523
|
+
/** Chip menu sub-component; present only while the parent template renders it.
|
|
452
524
|
* @internal
|
|
453
525
|
*/
|
|
454
|
-
|
|
455
|
-
|
|
526
|
+
chipMenu = viewChild(SiNavbarVerticalNextChipMenuComponent, /* @ts-ignore */
|
|
527
|
+
...(ngDevMode ? [{ debugName: "chipMenu" }] : /* istanbul ignore next */ []));
|
|
528
|
+
/** Projected items container; portaled into the chip menu overlay while it is open.
|
|
456
529
|
* @internal
|
|
457
530
|
*/
|
|
458
|
-
|
|
459
|
-
|
|
531
|
+
itemsComponent = contentChild(SiNavbarVerticalNextItemsComponent, /* @ts-ignore */
|
|
532
|
+
...(ngDevMode ? [{ debugName: "itemsComponent" }] : /* istanbul ignore next */ []));
|
|
533
|
+
/** All projected nav items, including descendants inside group templates.
|
|
460
534
|
* @internal
|
|
461
535
|
*/
|
|
462
|
-
|
|
463
|
-
/**
|
|
536
|
+
items = contentChildren(SiNavbarVerticalNextItemComponent, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
|
|
537
|
+
/** The active root-level item; group triggers resolve for nested routes.
|
|
464
538
|
* @internal
|
|
465
539
|
*/
|
|
466
|
-
|
|
540
|
+
activeItem = linkedSignal({ ...(ngDevMode ? { debugName: "activeItem" } : /* istanbul ignore next */ {}), source: () => this.items().find(item => item.isActiveRootItem()),
|
|
541
|
+
computation: (current, previous) => current ?? previous?.value });
|
|
467
542
|
/**
|
|
468
543
|
* @defaultValue
|
|
469
544
|
* ```
|
|
470
545
|
* {}
|
|
471
546
|
* ```
|
|
472
547
|
*/
|
|
473
|
-
uiStateExpandedItems = signal({},
|
|
548
|
+
uiStateExpandedItems = signal({}, /* @ts-ignore */
|
|
549
|
+
...(ngDevMode ? [{ debugName: "uiStateExpandedItems" }] : /* istanbul ignore next */ []));
|
|
474
550
|
// Indicates if the user prefers a collapsed navbar. Relevant for resizing.
|
|
475
551
|
preferCollapse = false;
|
|
476
552
|
toggleIcon = computed(() => {
|
|
@@ -478,15 +554,28 @@ class SiNavbarVerticalNextComponent {
|
|
|
478
554
|
return this.collapsed() ? this.icons.elementLayoutPane2 : this.icons.elementLayoutPane2Right;
|
|
479
555
|
}
|
|
480
556
|
return this.collapsed() ? this.icons.elementDoubleRight : this.icons.elementDoubleLeft;
|
|
481
|
-
},
|
|
557
|
+
}, /* @ts-ignore */
|
|
558
|
+
...(ngDevMode ? [{ debugName: "toggleIcon" }] : /* istanbul ignore next */ []));
|
|
482
559
|
/** `true` when inline-collapse is active and the nav is collapsed.
|
|
483
560
|
* @internal
|
|
484
561
|
*/
|
|
485
|
-
chipMode = computed(() => this.inlineCollapse() && this.collapsed(),
|
|
562
|
+
chipMode = computed(() => this.inlineCollapse() && this.collapsed(), /* @ts-ignore */
|
|
563
|
+
...(ngDevMode ? [{ debugName: "chipMode" }] : /* istanbul ignore next */ []));
|
|
486
564
|
/** `true` when groups should render as flyout overlays.
|
|
487
565
|
* @internal
|
|
488
566
|
*/
|
|
489
|
-
flyoutMode = computed(() => this.alwaysFlyout() || this.collapsed(),
|
|
567
|
+
flyoutMode = computed(() => this.alwaysFlyout() || this.collapsed(), /* @ts-ignore */
|
|
568
|
+
...(ngDevMode ? [{ debugName: "flyoutMode" }] : /* istanbul ignore next */ []));
|
|
569
|
+
/** `true` when the chip menu overlay is open.
|
|
570
|
+
* @internal
|
|
571
|
+
*/
|
|
572
|
+
chipMenuOpen = computed(() => this.chipMenu()?.open() ?? false, /* @ts-ignore */
|
|
573
|
+
...(ngDevMode ? [{ debugName: "chipMenuOpen" }] : /* istanbul ignore next */ []));
|
|
574
|
+
/** `true` when the chip is rendered and visually parked next to the toggle.
|
|
575
|
+
* @internal
|
|
576
|
+
*/
|
|
577
|
+
hasVisibleChip = computed(() => this.chipMode() && !!this.activeItem(), /* @ts-ignore */
|
|
578
|
+
...(ngDevMode ? [{ debugName: "hasVisibleChip" }] : /* istanbul ignore next */ []));
|
|
490
579
|
constructor() {
|
|
491
580
|
this.breakpointObserver
|
|
492
581
|
.observe(`(max-width: ${BOOTSTRAP_BREAKPOINTS.lgMinimum}px)`)
|
|
@@ -565,21 +654,28 @@ class SiNavbarVerticalNextComponent {
|
|
|
565
654
|
if (this.smallScreen()) {
|
|
566
655
|
this.collapsed.set(true);
|
|
567
656
|
}
|
|
657
|
+
this.chipMenu()?.close();
|
|
568
658
|
}
|
|
569
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
570
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
659
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
660
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: SiNavbarVerticalNextComponent, isStandalone: true, selector: "si-navbar-vertical-next", inputs: { collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, textOnly: { classPropertyName: "textOnly", publicName: "textOnly", isSignal: true, isRequired: false, transformFunction: null }, inlineCollapse: { classPropertyName: "inlineCollapse", publicName: "inlineCollapse", isSignal: true, isRequired: false, transformFunction: null }, alwaysFlyout: { classPropertyName: "alwaysFlyout", publicName: "alwaysFlyout", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, toggleButtonText: { classPropertyName: "toggleButtonText", publicName: "toggleButtonText", isSignal: true, isRequired: false, transformFunction: null }, stateId: { classPropertyName: "stateId", publicName: "stateId", isSignal: true, isRequired: false, transformFunction: null }, skipLinkNavigationLabel: { classPropertyName: "skipLinkNavigationLabel", publicName: "skipLinkNavigationLabel", isSignal: true, isRequired: false, transformFunction: null }, skipLinkMainContentLabel: { classPropertyName: "skipLinkMainContentLabel", publicName: "skipLinkMainContentLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange" }, host: { properties: { "class.nav-collapsed": "collapsed()", "class.nav-text-only": "textOnly()", "class.nav-inline-collapse": "inlineCollapse()", "class.has-visible-chip": "hasVisibleChip()", "class.visible": "visible()", "class.ready": "ready()" }, classAttribute: "si-layout-inner ready" }, providers: [{ provide: SI_NAVBAR_VERTICAL_NEXT, useExisting: SiNavbarVerticalNextComponent }], queries: [{ propertyName: "itemsComponent", first: true, predicate: SiNavbarVerticalNextItemsComponent, descendants: true, isSignal: true }, { propertyName: "items", predicate: SiNavbarVerticalNextItemComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "chipMenu", first: true, predicate: SiNavbarVerticalNextChipMenuComponent, descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "@if (visible()) {\n @if (smallScreen() && !collapsed()) {\n <div class=\"modal-backdrop\" animate.leave=\"backdrop-leave\" (click)=\"toggleCollapse()\"></div>\n }\n <nav\n tabindex=\"-1\"\n class=\"bg-base-1 focus-sub-inside\"\n [class.expanded]=\"!collapsed()\"\n [siSkipLinkTarget]=\"skipLinkNavigationLabel()\"\n [class.text-only]=\"textOnly()\"\n >\n <div class=\"collapse-toggle ms-auto\">\n <div class=\"mobile-drawer focus-inside\">\n <button\n type=\"button\"\n class=\"btn btn-icon toggle-button\"\n [class.btn-ghost]=\"chipMode()\"\n [class.btn-tertiary-ghost]=\"!chipMode()\"\n [attr.aria-label]=\"toggleButtonText() | translate\"\n [attr.aria-expanded]=\"!collapsed()\"\n (click)=\"toggleCollapse()\"\n >\n <si-icon class=\"flip-rtl\" [icon]=\"toggleIcon()\" />\n </button>\n </div>\n </div>\n @if (hasVisibleChip()) {\n <si-navbar-vertical-next-chip-menu />\n }\n <div\n class=\"nav-content\"\n [attr.inert]=\"chipMode() ? '' : null\"\n [attr.aria-hidden]=\"chipMode() ? 'true' : null\"\n >\n <ng-content select=\"si-navbar-vertical-next-search\" />\n <ng-content select=\"si-navbar-vertical-next-items\" />\n <ng-content select=\"si-navbar-vertical-next-footer-items\" />\n </div>\n </nav>\n @if (inlineCollapse()) {\n <div class=\"toggle-placeholder\" aria-hidden=\"true\"></div>\n }\n}\n<main\n class=\"si-layout-inner focus-none\"\n tabindex=\"-1\"\n [siSkipLinkTarget]=\"skipLinkMainContentLabel()\"\n>\n <ng-content />\n</main>\n", styles: [":host{display:block;--si-layout-header-first-element-offset: 40px}:host.ready:not(.visible){padding-inline-start:0!important}:host.ready{transition:padding-inline-start calc(.5s * var(--element-animations-enabled, 1))}nav{display:flex;flex-direction:column;position:fixed;z-index:1031;inset-block-start:calc(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-block-end:0;inset-inline-start:0;inline-size:0;transition:inline-size calc(.5s * var(--element-animations-enabled, 1)) ease}:host(.nav-collapsed) nav{z-index:1030}nav.expanded{inline-size:240px}.mobile-drawer{display:block;text-align:end;border:0;inline-size:calc(1.5rem + 24px);color:var(--element-text-primary);padding-block:4px;padding-inline:8px;margin-block-start:8px;border-start-end-radius:var(--element-radius-2);border-end-end-radius:var(--element-radius-2);transition:inline-size calc(.5s * var(--element-animations-enabled, 1)) ease,background-color calc(.5s * var(--element-animations-enabled, 1)) ease,box-shadow calc(.5s * var(--element-animations-enabled, 1)) ease}:host(:not(.nav-collapsed):not(.nav-inline-collapse)) .mobile-drawer{inline-size:240px}.modal-backdrop{z-index:1031;transition:opacity calc(.15s * var(--element-animations-enabled, 1)) linear;opacity:1}@starting-style{.modal-backdrop{opacity:0}}.modal-backdrop.backdrop-leave{opacity:0}:host(.nav-text-only:not(.nav-inline-collapse)).nav-collapsed .mobile-drawer{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)}@media(max-width:575.98px){:host.nav-collapsed .mobile-drawer{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)}}@media(min-width:576px){:host:not(.nav-text-only),:host:not(.nav-collapsed),:host(.nav-inline-collapse){--si-layout-header-first-element-offset: 0}:host:where(:not(.nav-text-only):not(.nav-inline-collapse)){padding-inline-start:calc(1.5rem + 24px)}:host:where(:not(.nav-text-only):not(.nav-inline-collapse)) nav{inline-size:calc(1.5rem + 24px)}:host:where(:not(.nav-text-only):not(.nav-inline-collapse)) nav.expanded{inline-size:240px}}@media(min-width:992px){:host:not(.nav-collapsed){padding-inline-start:240px}}.nav-content{display:flex;flex-direction:column;flex:1 1 auto;min-block-size:0}:host(.nav-inline-collapse){--si-layout-header-first-element-offset: 0;--si-navbar-parked-inline-start: 16px}@media(min-width:768px){:host(.nav-inline-collapse){--si-navbar-parked-inline-start: 32px}}:host(.nav-inline-collapse) nav{overflow:hidden}:host(.nav-inline-collapse) nav:before{content:\"\";position:absolute;inset:0;background:var(--element-base-1);z-index:1;pointer-events:none}:host(.nav-inline-collapse) .nav-content{position:relative;z-index:2}:host(.nav-inline-collapse) .mobile-drawer:before{content:\"\";display:block;block-size:calc(1lh + 16px)}:host(.nav-inline-collapse) .toggle-placeholder{block-size:0;margin-block-start:0;transition:block-size calc(.5s * var(--element-animations-enabled, 1)) ease,margin-block-start calc(.5s * var(--element-animations-enabled, 1)) ease}:host(.nav-inline-collapse) .toggle-button{position:fixed;z-index:1031;inset-block-start:calc(calc(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px)) + 8px + 4px);inset-inline-start:calc(232px - (1lh + 16px));transition:inset-inline-start calc(.5s * var(--element-animations-enabled, 1)) ease,inset-block-start calc(.5s * var(--element-animations-enabled, 1)) ease}:host(.nav-inline-collapse).nav-collapsed .toggle-placeholder{block-size:calc(1lh + 16px);margin-block-start:16px}:host(.nav-inline-collapse).nav-collapsed .toggle-button{inset-block-start:calc(calc(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px)) + 16px);inset-inline-start:var(--si-navbar-parked-inline-start)}:host(.has-visible-chip) .toggle-button{border-start-end-radius:0;border-end-end-radius:0}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "component", type: SiNavbarVerticalNextChipMenuComponent, selector: "si-navbar-vertical-next-chip-menu" }, { kind: "directive", type: SiSkipLinkTargetDirective, selector: "[siSkipLinkTarget]", inputs: ["siSkipLinkTarget"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
|
|
571
661
|
}
|
|
572
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
662
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextComponent, decorators: [{
|
|
573
663
|
type: Component,
|
|
574
|
-
args: [{ selector: 'si-navbar-vertical-next', imports: [
|
|
664
|
+
args: [{ selector: 'si-navbar-vertical-next', imports: [
|
|
665
|
+
SiIconComponent,
|
|
666
|
+
SiNavbarVerticalNextChipMenuComponent,
|
|
667
|
+
SiSkipLinkTargetDirective,
|
|
668
|
+
SiTranslatePipe
|
|
669
|
+
], providers: [{ provide: SI_NAVBAR_VERTICAL_NEXT, useExisting: SiNavbarVerticalNextComponent }], host: {
|
|
575
670
|
class: 'si-layout-inner ready',
|
|
576
671
|
'[class.nav-collapsed]': 'collapsed()',
|
|
577
672
|
'[class.nav-text-only]': 'textOnly()',
|
|
578
673
|
'[class.nav-inline-collapse]': 'inlineCollapse()',
|
|
674
|
+
'[class.has-visible-chip]': 'hasVisibleChip()',
|
|
579
675
|
'[class.visible]': 'visible()',
|
|
580
676
|
'[class.ready]': 'ready()'
|
|
581
|
-
}, template: "@if (visible()) {\n @if (smallScreen() && !collapsed()) {\n <div class=\"modal-backdrop\" animate.leave=\"backdrop-leave\" (click)=\"toggleCollapse()\"></div>\n }\n <nav\n tabindex=\"-1\"\n class=\"bg-base-1 focus-sub-inside\"\n [class.expanded]=\"!collapsed()\"\n [siSkipLinkTarget]=\"skipLinkNavigationLabel()\"\n [class.text-only]=\"textOnly()\"\n >\n <div class=\"collapse-toggle ms-auto\">\n <div class=\"mobile-drawer focus-inside\">\n <button\n type=\"button\"\n class=\"btn btn-icon toggle-button\"\n [class.btn-
|
|
582
|
-
}], ctorParameters: () => [], propDecorators: { collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }, { type: i0.Output, args: ["collapsedChange"] }], textOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "textOnly", required: false }] }], inlineCollapse: [{ type: i0.Input, args: [{ isSignal: true, alias: "inlineCollapse", required: false }] }], alwaysFlyout: [{ type: i0.Input, args: [{ isSignal: true, alias: "alwaysFlyout", required: false }] }], visible: [{ type: i0.Input, args: [{ isSignal: true, alias: "visible", required: false }] }], toggleButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleButtonText", required: false }] }], stateId: [{ type: i0.Input, args: [{ isSignal: true, alias: "stateId", required: false }] }], skipLinkNavigationLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "skipLinkNavigationLabel", required: false }] }], skipLinkMainContentLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "skipLinkMainContentLabel", required: false }] }],
|
|
677
|
+
}, template: "@if (visible()) {\n @if (smallScreen() && !collapsed()) {\n <div class=\"modal-backdrop\" animate.leave=\"backdrop-leave\" (click)=\"toggleCollapse()\"></div>\n }\n <nav\n tabindex=\"-1\"\n class=\"bg-base-1 focus-sub-inside\"\n [class.expanded]=\"!collapsed()\"\n [siSkipLinkTarget]=\"skipLinkNavigationLabel()\"\n [class.text-only]=\"textOnly()\"\n >\n <div class=\"collapse-toggle ms-auto\">\n <div class=\"mobile-drawer focus-inside\">\n <button\n type=\"button\"\n class=\"btn btn-icon toggle-button\"\n [class.btn-ghost]=\"chipMode()\"\n [class.btn-tertiary-ghost]=\"!chipMode()\"\n [attr.aria-label]=\"toggleButtonText() | translate\"\n [attr.aria-expanded]=\"!collapsed()\"\n (click)=\"toggleCollapse()\"\n >\n <si-icon class=\"flip-rtl\" [icon]=\"toggleIcon()\" />\n </button>\n </div>\n </div>\n @if (hasVisibleChip()) {\n <si-navbar-vertical-next-chip-menu />\n }\n <div\n class=\"nav-content\"\n [attr.inert]=\"chipMode() ? '' : null\"\n [attr.aria-hidden]=\"chipMode() ? 'true' : null\"\n >\n <ng-content select=\"si-navbar-vertical-next-search\" />\n <ng-content select=\"si-navbar-vertical-next-items\" />\n <ng-content select=\"si-navbar-vertical-next-footer-items\" />\n </div>\n </nav>\n @if (inlineCollapse()) {\n <div class=\"toggle-placeholder\" aria-hidden=\"true\"></div>\n }\n}\n<main\n class=\"si-layout-inner focus-none\"\n tabindex=\"-1\"\n [siSkipLinkTarget]=\"skipLinkMainContentLabel()\"\n>\n <ng-content />\n</main>\n", styles: [":host{display:block;--si-layout-header-first-element-offset: 40px}:host.ready:not(.visible){padding-inline-start:0!important}:host.ready{transition:padding-inline-start calc(.5s * var(--element-animations-enabled, 1))}nav{display:flex;flex-direction:column;position:fixed;z-index:1031;inset-block-start:calc(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-block-end:0;inset-inline-start:0;inline-size:0;transition:inline-size calc(.5s * var(--element-animations-enabled, 1)) ease}:host(.nav-collapsed) nav{z-index:1030}nav.expanded{inline-size:240px}.mobile-drawer{display:block;text-align:end;border:0;inline-size:calc(1.5rem + 24px);color:var(--element-text-primary);padding-block:4px;padding-inline:8px;margin-block-start:8px;border-start-end-radius:var(--element-radius-2);border-end-end-radius:var(--element-radius-2);transition:inline-size calc(.5s * var(--element-animations-enabled, 1)) ease,background-color calc(.5s * var(--element-animations-enabled, 1)) ease,box-shadow calc(.5s * var(--element-animations-enabled, 1)) ease}:host(:not(.nav-collapsed):not(.nav-inline-collapse)) .mobile-drawer{inline-size:240px}.modal-backdrop{z-index:1031;transition:opacity calc(.15s * var(--element-animations-enabled, 1)) linear;opacity:1}@starting-style{.modal-backdrop{opacity:0}}.modal-backdrop.backdrop-leave{opacity:0}:host(.nav-text-only:not(.nav-inline-collapse)).nav-collapsed .mobile-drawer{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)}@media(max-width:575.98px){:host.nav-collapsed .mobile-drawer{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)}}@media(min-width:576px){:host:not(.nav-text-only),:host:not(.nav-collapsed),:host(.nav-inline-collapse){--si-layout-header-first-element-offset: 0}:host:where(:not(.nav-text-only):not(.nav-inline-collapse)){padding-inline-start:calc(1.5rem + 24px)}:host:where(:not(.nav-text-only):not(.nav-inline-collapse)) nav{inline-size:calc(1.5rem + 24px)}:host:where(:not(.nav-text-only):not(.nav-inline-collapse)) nav.expanded{inline-size:240px}}@media(min-width:992px){:host:not(.nav-collapsed){padding-inline-start:240px}}.nav-content{display:flex;flex-direction:column;flex:1 1 auto;min-block-size:0}:host(.nav-inline-collapse){--si-layout-header-first-element-offset: 0;--si-navbar-parked-inline-start: 16px}@media(min-width:768px){:host(.nav-inline-collapse){--si-navbar-parked-inline-start: 32px}}:host(.nav-inline-collapse) nav{overflow:hidden}:host(.nav-inline-collapse) nav:before{content:\"\";position:absolute;inset:0;background:var(--element-base-1);z-index:1;pointer-events:none}:host(.nav-inline-collapse) .nav-content{position:relative;z-index:2}:host(.nav-inline-collapse) .mobile-drawer:before{content:\"\";display:block;block-size:calc(1lh + 16px)}:host(.nav-inline-collapse) .toggle-placeholder{block-size:0;margin-block-start:0;transition:block-size calc(.5s * var(--element-animations-enabled, 1)) ease,margin-block-start calc(.5s * var(--element-animations-enabled, 1)) ease}:host(.nav-inline-collapse) .toggle-button{position:fixed;z-index:1031;inset-block-start:calc(calc(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px)) + 8px + 4px);inset-inline-start:calc(232px - (1lh + 16px));transition:inset-inline-start calc(.5s * var(--element-animations-enabled, 1)) ease,inset-block-start calc(.5s * var(--element-animations-enabled, 1)) ease}:host(.nav-inline-collapse).nav-collapsed .toggle-placeholder{block-size:calc(1lh + 16px);margin-block-start:16px}:host(.nav-inline-collapse).nav-collapsed .toggle-button{inset-block-start:calc(calc(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px)) + 16px);inset-inline-start:var(--si-navbar-parked-inline-start)}:host(.has-visible-chip) .toggle-button{border-start-end-radius:0;border-end-end-radius:0}\n"] }]
|
|
678
|
+
}], ctorParameters: () => [], propDecorators: { collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }, { type: i0.Output, args: ["collapsedChange"] }], textOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "textOnly", required: false }] }], inlineCollapse: [{ type: i0.Input, args: [{ isSignal: true, alias: "inlineCollapse", required: false }] }], alwaysFlyout: [{ type: i0.Input, args: [{ isSignal: true, alias: "alwaysFlyout", required: false }] }], visible: [{ type: i0.Input, args: [{ isSignal: true, alias: "visible", required: false }] }], toggleButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleButtonText", required: false }] }], stateId: [{ type: i0.Input, args: [{ isSignal: true, alias: "stateId", required: false }] }], skipLinkNavigationLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "skipLinkNavigationLabel", required: false }] }], skipLinkMainContentLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "skipLinkMainContentLabel", required: false }] }], chipMenu: [{ type: i0.ViewChild, args: [i0.forwardRef(() => SiNavbarVerticalNextChipMenuComponent), { isSignal: true }] }], itemsComponent: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SiNavbarVerticalNextItemsComponent), { isSignal: true }] }], items: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SiNavbarVerticalNextItemComponent), { ...{
|
|
583
679
|
descendants: true
|
|
584
680
|
}, isSignal: true }] }] } });
|
|
585
681
|
|
|
@@ -592,12 +688,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
592
688
|
* We need a component to attach the stylesheet
|
|
593
689
|
*/
|
|
594
690
|
class SiNavbarVerticalNextDividerComponent {
|
|
595
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
596
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
691
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
692
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.7", type: SiNavbarVerticalNextDividerComponent, isStandalone: true, selector: "si-navbar-vertical-next-divider", ngImport: i0, template: '', isInline: true, styles: [":host{display:block;block-size:1px;background-color:var(--element-ui-4);margin-block:6px;margin-inline:12px}\n"] });
|
|
597
693
|
}
|
|
598
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
694
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextDividerComponent, decorators: [{
|
|
599
695
|
type: Component,
|
|
600
|
-
args: [{ selector: 'si-navbar-vertical-next-divider', template: '',
|
|
696
|
+
args: [{ selector: 'si-navbar-vertical-next-divider', template: '', styles: [":host{display:block;block-size:1px;background-color:var(--element-ui-4);margin-block:6px;margin-inline:12px}\n"] }]
|
|
601
697
|
}] });
|
|
602
698
|
|
|
603
699
|
/**
|
|
@@ -611,12 +707,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
611
707
|
* @experimental
|
|
612
708
|
*/
|
|
613
709
|
class SiNavbarVerticalNextFooterItemsComponent {
|
|
614
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
615
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
710
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextFooterItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
711
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.7", type: SiNavbarVerticalNextFooterItemsComponent, isStandalone: true, selector: "si-navbar-vertical-next-footer-items", ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block;overflow-x:hidden;margin-block-start:auto;padding-block-end:8px}:host-context(.nav-collapsed){display:none}@media(min-width:576px){:host-context(:not(.nav-text-only).nav-collapsed){display:block}}\n"] });
|
|
616
712
|
}
|
|
617
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
713
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextFooterItemsComponent, decorators: [{
|
|
618
714
|
type: Component,
|
|
619
|
-
args: [{ selector: 'si-navbar-vertical-next-footer-items', template: '<ng-content />',
|
|
715
|
+
args: [{ selector: 'si-navbar-vertical-next-footer-items', template: '<ng-content />', styles: [":host{display:block;overflow-x:hidden;margin-block-start:auto;padding-block-end:8px}:host-context(.nav-collapsed){display:none}@media(min-width:576px){:host-context(:not(.nav-text-only).nav-collapsed){display:block}}\n"] }]
|
|
620
716
|
}] });
|
|
621
717
|
|
|
622
718
|
/**
|
|
@@ -630,7 +726,8 @@ class SiNavbarVerticalNextGroupComponent {
|
|
|
630
726
|
routerLinkActive = inject(RouterLinkActive, { optional: true });
|
|
631
727
|
visible = computed(() => {
|
|
632
728
|
return this.groupTrigger.flyout() || (!this.navbar.collapsed() && this.groupTrigger.expanded());
|
|
633
|
-
},
|
|
729
|
+
}, /* @ts-ignore */
|
|
730
|
+
...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
|
|
634
731
|
constructor() {
|
|
635
732
|
this.routerLinkActive?.isActiveChange
|
|
636
733
|
.pipe(takeUntilDestroyed())
|
|
@@ -639,8 +736,8 @@ class SiNavbarVerticalNextGroupComponent {
|
|
|
639
736
|
close() {
|
|
640
737
|
this.groupTrigger.hideFlyout();
|
|
641
738
|
}
|
|
642
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
643
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
739
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
740
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: SiNavbarVerticalNextGroupComponent, isStandalone: true, selector: "si-navbar-vertical-next-group", host: { attributes: { "role": "group", "animate.enter": "component-enter" }, listeners: { "keydown.escape": "close()" }, properties: { "id": "groupTrigger.groupId", "attr.aria-labelledby": "groupTrigger.id" } }, ngImport: i0, template: `@if (visible()) {
|
|
644
741
|
@let flyout = groupTrigger.flyout();
|
|
645
742
|
<div
|
|
646
743
|
animate.leave="group-leave"
|
|
@@ -653,9 +750,9 @@ class SiNavbarVerticalNextGroupComponent {
|
|
|
653
750
|
<ng-content />
|
|
654
751
|
</div>
|
|
655
752
|
</div>
|
|
656
|
-
}`, isInline: true, styles: [":host.component-enter .inline-group{transition:none}.inline-group{display:grid;transition-property:grid-template-rows,opacity;transition-duration:calc(.5s * var(--element-animations-enabled, 1));transition-timing-function:ease;opacity:1;grid-template-rows:1fr;overflow:hidden}@starting-style{.inline-group{grid-template-rows:0fr;opacity:0}}.inline-group.group-leave{grid-template-rows:0fr;opacity:0}.dropdown-menu{display:block;position:static}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }]
|
|
753
|
+
}`, isInline: true, styles: [":host.component-enter .inline-group{transition:none}.inline-group{display:grid;transition-property:grid-template-rows,opacity;transition-duration:calc(.5s * var(--element-animations-enabled, 1));transition-timing-function:ease;opacity:1;grid-template-rows:1fr;overflow:hidden}@starting-style{.inline-group{grid-template-rows:0fr;opacity:0}}.inline-group.group-leave{grid-template-rows:0fr;opacity:0}.dropdown-menu{display:block;position:static}\n"], dependencies: [{ kind: "directive", type: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }] });
|
|
657
754
|
}
|
|
658
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
755
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextGroupComponent, decorators: [{
|
|
659
756
|
type: Component,
|
|
660
757
|
args: [{ selector: 'si-navbar-vertical-next-group', imports: [CdkTrapFocus], template: `@if (visible()) {
|
|
661
758
|
@let flyout = groupTrigger.flyout();
|
|
@@ -670,7 +767,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
670
767
|
<ng-content />
|
|
671
768
|
</div>
|
|
672
769
|
</div>
|
|
673
|
-
}`,
|
|
770
|
+
}`, host: {
|
|
674
771
|
role: 'group',
|
|
675
772
|
'[id]': 'groupTrigger.groupId',
|
|
676
773
|
'[attr.aria-labelledby]': 'groupTrigger.id',
|
|
@@ -686,31 +783,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
686
783
|
/** @experimental */
|
|
687
784
|
class SiNavbarVerticalNextHeaderComponent {
|
|
688
785
|
navbar = inject(SI_NAVBAR_VERTICAL_NEXT);
|
|
689
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
690
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
691
|
-
@if (!navbar.collapsed()) {
|
|
786
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
787
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: SiNavbarVerticalNextHeaderComponent, isStandalone: true, selector: "si-navbar-vertical-next-header", host: { attributes: { "animate.enter": "component-enter" }, properties: { "class.collapsed": "navbar.collapsed() && !navbar.chipMenuOpen()", "class.chip-mode": "navbar.chipMode()" } }, ngImport: i0, template: `
|
|
788
|
+
@if (!navbar.collapsed() || navbar.chipMenuOpen()) {
|
|
692
789
|
<div class="title si-h5 text-secondary text-truncate p-5" animate.leave="title-leave">
|
|
693
790
|
<ng-content />
|
|
694
791
|
</div>
|
|
695
792
|
} @else {
|
|
696
793
|
<si-navbar-vertical-next-divider class="divider" animate.leave="divider-leave" />
|
|
697
794
|
}
|
|
698
|
-
`, isInline: true, styles: [".divider,.title{opacity:1;transition:opacity calc(.25s * var(--element-animations-enabled, 1)) calc(.25s * var(--element-animations-enabled, 1)) ease-out}@starting-style{.divider,.title{opacity:0}}:host{display:flex;align-items:center;block-size:calc(1lh + 24px);transition:block-size calc(.5s * var(--element-animations-enabled, 1)) ease-out}:host.collapsed{block-size:13px}:host.component-enter{transition:none}:host.component-enter .title,:host.component-enter .divider{transition:none}.title.title-leave{opacity:0;transition:opacity calc(.25s * var(--element-animations-enabled, 1)) ease-in}.divider{flex:1;margin-block:0}.divider.divider-leave{opacity:0;transition-delay:0s}\n"], dependencies: [{ kind: "component", type: SiNavbarVerticalNextDividerComponent, selector: "si-navbar-vertical-next-divider" }]
|
|
795
|
+
`, isInline: true, styles: [".divider,.title{opacity:1;transition:opacity calc(.25s * var(--element-animations-enabled, 1)) calc(.25s * var(--element-animations-enabled, 1)) ease-out}@starting-style{.divider,.title{opacity:0}}:host{display:flex;align-items:center;block-size:calc(1lh + 24px);transition:block-size calc(.5s * var(--element-animations-enabled, 1)) ease-out}:host.collapsed{block-size:13px}:host.component-enter{transition:none}:host.component-enter .title,:host.component-enter .divider{transition:none}.title.title-leave{opacity:0;transition:opacity calc(.25s * var(--element-animations-enabled, 1)) ease-in}:host.chip-mode .title{transition:none}.divider{flex:1;margin-block:0}.divider.divider-leave{opacity:0;transition-delay:0s}\n"], dependencies: [{ kind: "component", type: SiNavbarVerticalNextDividerComponent, selector: "si-navbar-vertical-next-divider" }] });
|
|
699
796
|
}
|
|
700
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
797
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextHeaderComponent, decorators: [{
|
|
701
798
|
type: Component,
|
|
702
799
|
args: [{ selector: 'si-navbar-vertical-next-header', imports: [SiNavbarVerticalNextDividerComponent], template: `
|
|
703
|
-
@if (!navbar.collapsed()) {
|
|
800
|
+
@if (!navbar.collapsed() || navbar.chipMenuOpen()) {
|
|
704
801
|
<div class="title si-h5 text-secondary text-truncate p-5" animate.leave="title-leave">
|
|
705
802
|
<ng-content />
|
|
706
803
|
</div>
|
|
707
804
|
} @else {
|
|
708
805
|
<si-navbar-vertical-next-divider class="divider" animate.leave="divider-leave" />
|
|
709
806
|
}
|
|
710
|
-
`,
|
|
711
|
-
'[class.collapsed]': 'navbar.collapsed()',
|
|
807
|
+
`, host: {
|
|
808
|
+
'[class.collapsed]': 'navbar.collapsed() && !navbar.chipMenuOpen()',
|
|
809
|
+
'[class.chip-mode]': 'navbar.chipMode()',
|
|
712
810
|
'animate.enter': 'component-enter'
|
|
713
|
-
}, styles: [".divider,.title{opacity:1;transition:opacity calc(.25s * var(--element-animations-enabled, 1)) calc(.25s * var(--element-animations-enabled, 1)) ease-out}@starting-style{.divider,.title{opacity:0}}:host{display:flex;align-items:center;block-size:calc(1lh + 24px);transition:block-size calc(.5s * var(--element-animations-enabled, 1)) ease-out}:host.collapsed{block-size:13px}:host.component-enter{transition:none}:host.component-enter .title,:host.component-enter .divider{transition:none}.title.title-leave{opacity:0;transition:opacity calc(.25s * var(--element-animations-enabled, 1)) ease-in}.divider{flex:1;margin-block:0}.divider.divider-leave{opacity:0;transition-delay:0s}\n"] }]
|
|
811
|
+
}, styles: [".divider,.title{opacity:1;transition:opacity calc(.25s * var(--element-animations-enabled, 1)) calc(.25s * var(--element-animations-enabled, 1)) ease-out}@starting-style{.divider,.title{opacity:0}}:host{display:flex;align-items:center;block-size:calc(1lh + 24px);transition:block-size calc(.5s * var(--element-animations-enabled, 1)) ease-out}:host.collapsed{block-size:13px}:host.component-enter{transition:none}:host.component-enter .title,:host.component-enter .divider{transition:none}.title.title-leave{opacity:0;transition:opacity calc(.25s * var(--element-animations-enabled, 1)) ease-in}:host.chip-mode .title{transition:none}.divider{flex:1;margin-block:0}.divider.divider-leave{opacity:0;transition-delay:0s}\n"] }]
|
|
714
812
|
}] });
|
|
715
813
|
|
|
716
814
|
/**
|
|
@@ -725,89 +823,36 @@ class SiNavbarVerticalNextSearchComponent {
|
|
|
725
823
|
*
|
|
726
824
|
* @defaultValue
|
|
727
825
|
* ```
|
|
728
|
-
* t(() => $localize`:@@SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER:Search
|
|
826
|
+
* t(() => $localize`:@@SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER:Search…`)
|
|
729
827
|
* ```
|
|
730
828
|
*/
|
|
731
|
-
placeholder = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER:Search
|
|
829
|
+
placeholder = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER:Search…`), /* @ts-ignore */
|
|
830
|
+
...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
732
831
|
/**
|
|
733
832
|
* Debounce time for the search input
|
|
734
833
|
* @defaultValue 400
|
|
735
834
|
*/
|
|
736
|
-
debounceTime = input(400,
|
|
835
|
+
debounceTime = input(400, /* @ts-ignore */
|
|
836
|
+
...(ngDevMode ? [{ debugName: "debounceTime" }] : /* istanbul ignore next */ []));
|
|
737
837
|
/**
|
|
738
838
|
* Output for search bar input
|
|
739
839
|
*/
|
|
740
840
|
searchChange = output();
|
|
741
841
|
navbar = inject(SI_NAVBAR_VERTICAL_NEXT);
|
|
742
|
-
searchBar = viewChild.required(SiSearchBarComponent
|
|
842
|
+
searchBar = viewChild.required(SiSearchBarComponent, /* @ts-ignore */
|
|
843
|
+
...(ngDevMode ? [{ debugName: "searchBar" }] : /* istanbul ignore next */ []));
|
|
743
844
|
expandForSearch() {
|
|
744
845
|
this.navbar.expand();
|
|
745
846
|
setTimeout(() => this.searchBar().focus());
|
|
746
847
|
}
|
|
747
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
748
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
848
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
849
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.7", type: SiNavbarVerticalNextSearchComponent, isStandalone: true, selector: "si-navbar-vertical-next-search", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searchChange: "searchChange" }, viewQueries: [{ propertyName: "searchBar", first: true, predicate: SiSearchBarComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<si-search-bar\n class=\"mx-4\"\n colorVariant=\"base-0\"\n prohibitedCharacters=\"*?\"\n [placeholder]=\"placeholder() | translate\"\n [debounceTime]=\"debounceTime()\"\n [showIcon]=\"true\"\n (searchChange)=\"searchChange.emit($event)\"\n/>\n<button\n type=\"button\"\n class=\"btn-search bg-base-0 px-3 mx-4 mobile text-secondary\"\n [attr.aria-label]=\"placeholder() | translate\"\n (click)=\"expandForSearch()\"\n>\n <si-icon class=\"icon\" [icon]=\"icons.elementSearch\" />\n</button>\n", styles: [":host{display:flex;align-items:center;margin-block-start:8px;padding-block:4px;overflow-x:hidden}:host-context(.nav-collapsed){display:none}:host-context(.nav-collapsed) si-search-bar{display:none}si-search-bar{inline-size:100%}.btn-search{display:none;border:0;border-radius:var(--element-radius-2);block-size:calc(1lh + 16px);inline-size:calc(1.5rem + 8px);text-align:start}@media(min-width:576px){:host-context(:not(.nav-text-only).nav-collapsed){display:flex}.btn-search{display:none}:host-context(.nav-collapsed) .btn-search{display:block}}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "component", type: SiSearchBarComponent, selector: "si-search-bar", inputs: ["debounceTime", "prohibitedCharacters", "placeholder", "showIcon", "tabbable", "value", "readonly", "colorVariant", "disabled", "maxlength", "clearButtonAriaLabel"], outputs: ["searchChange"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
|
|
749
850
|
}
|
|
750
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
851
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SiNavbarVerticalNextSearchComponent, decorators: [{
|
|
751
852
|
type: Component,
|
|
752
|
-
args: [{ selector: 'si-navbar-vertical-next-search', imports: [SiIconComponent, SiSearchBarComponent, SiTranslatePipe],
|
|
853
|
+
args: [{ selector: 'si-navbar-vertical-next-search', imports: [SiIconComponent, SiSearchBarComponent, SiTranslatePipe], template: "<si-search-bar\n class=\"mx-4\"\n colorVariant=\"base-0\"\n prohibitedCharacters=\"*?\"\n [placeholder]=\"placeholder() | translate\"\n [debounceTime]=\"debounceTime()\"\n [showIcon]=\"true\"\n (searchChange)=\"searchChange.emit($event)\"\n/>\n<button\n type=\"button\"\n class=\"btn-search bg-base-0 px-3 mx-4 mobile text-secondary\"\n [attr.aria-label]=\"placeholder() | translate\"\n (click)=\"expandForSearch()\"\n>\n <si-icon class=\"icon\" [icon]=\"icons.elementSearch\" />\n</button>\n", styles: [":host{display:flex;align-items:center;margin-block-start:8px;padding-block:4px;overflow-x:hidden}:host-context(.nav-collapsed){display:none}:host-context(.nav-collapsed) si-search-bar{display:none}si-search-bar{inline-size:100%}.btn-search{display:none;border:0;border-radius:var(--element-radius-2);block-size:calc(1lh + 16px);inline-size:calc(1.5rem + 8px);text-align:start}@media(min-width:576px){:host-context(:not(.nav-text-only).nav-collapsed){display:flex}.btn-search{display:none}:host-context(.nav-collapsed) .btn-search{display:block}}\n"] }]
|
|
753
854
|
}], propDecorators: { placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], debounceTime: [{ type: i0.Input, args: [{ isSignal: true, alias: "debounceTime", required: false }] }], searchChange: [{ type: i0.Output, args: ["searchChange"] }], searchBar: [{ type: i0.ViewChild, args: [i0.forwardRef(() => SiSearchBarComponent), { isSignal: true }] }] } });
|
|
754
855
|
|
|
755
|
-
/**
|
|
756
|
-
* Copyright (c) Siemens 2016 - 2026
|
|
757
|
-
* SPDX-License-Identifier: MIT
|
|
758
|
-
*/
|
|
759
|
-
/** @experimental */
|
|
760
|
-
class SiNavbarVerticalNextModule {
|
|
761
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiNavbarVerticalNextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
762
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: SiNavbarVerticalNextModule, imports: [SiNavbarVerticalNextComponent,
|
|
763
|
-
SiNavbarVerticalNextDividerComponent,
|
|
764
|
-
SiNavbarVerticalNextFooterItemsComponent,
|
|
765
|
-
SiNavbarVerticalNextGroupComponent,
|
|
766
|
-
SiNavbarVerticalNextGroupTriggerDirective,
|
|
767
|
-
SiNavbarVerticalNextHeaderComponent,
|
|
768
|
-
SiNavbarVerticalNextItemComponent,
|
|
769
|
-
SiNavbarVerticalNextItemsComponent,
|
|
770
|
-
SiNavbarVerticalNextSearchComponent], exports: [SiNavbarVerticalNextComponent,
|
|
771
|
-
SiNavbarVerticalNextDividerComponent,
|
|
772
|
-
SiNavbarVerticalNextFooterItemsComponent,
|
|
773
|
-
SiNavbarVerticalNextGroupComponent,
|
|
774
|
-
SiNavbarVerticalNextGroupTriggerDirective,
|
|
775
|
-
SiNavbarVerticalNextHeaderComponent,
|
|
776
|
-
SiNavbarVerticalNextItemComponent,
|
|
777
|
-
SiNavbarVerticalNextItemsComponent,
|
|
778
|
-
SiNavbarVerticalNextSearchComponent] });
|
|
779
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiNavbarVerticalNextModule, imports: [SiNavbarVerticalNextComponent,
|
|
780
|
-
SiNavbarVerticalNextItemComponent,
|
|
781
|
-
SiNavbarVerticalNextSearchComponent] });
|
|
782
|
-
}
|
|
783
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiNavbarVerticalNextModule, decorators: [{
|
|
784
|
-
type: NgModule,
|
|
785
|
-
args: [{
|
|
786
|
-
imports: [
|
|
787
|
-
SiNavbarVerticalNextComponent,
|
|
788
|
-
SiNavbarVerticalNextDividerComponent,
|
|
789
|
-
SiNavbarVerticalNextFooterItemsComponent,
|
|
790
|
-
SiNavbarVerticalNextGroupComponent,
|
|
791
|
-
SiNavbarVerticalNextGroupTriggerDirective,
|
|
792
|
-
SiNavbarVerticalNextHeaderComponent,
|
|
793
|
-
SiNavbarVerticalNextItemComponent,
|
|
794
|
-
SiNavbarVerticalNextItemsComponent,
|
|
795
|
-
SiNavbarVerticalNextSearchComponent
|
|
796
|
-
],
|
|
797
|
-
exports: [
|
|
798
|
-
SiNavbarVerticalNextComponent,
|
|
799
|
-
SiNavbarVerticalNextDividerComponent,
|
|
800
|
-
SiNavbarVerticalNextFooterItemsComponent,
|
|
801
|
-
SiNavbarVerticalNextGroupComponent,
|
|
802
|
-
SiNavbarVerticalNextGroupTriggerDirective,
|
|
803
|
-
SiNavbarVerticalNextHeaderComponent,
|
|
804
|
-
SiNavbarVerticalNextItemComponent,
|
|
805
|
-
SiNavbarVerticalNextItemsComponent,
|
|
806
|
-
SiNavbarVerticalNextSearchComponent
|
|
807
|
-
]
|
|
808
|
-
}]
|
|
809
|
-
}] });
|
|
810
|
-
|
|
811
856
|
/**
|
|
812
857
|
* Copyright (c) Siemens 2016 - 2026
|
|
813
858
|
* SPDX-License-Identifier: MIT
|
|
@@ -817,5 +862,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
817
862
|
* Generated bundle index. Do not edit.
|
|
818
863
|
*/
|
|
819
864
|
|
|
820
|
-
export { SiNavbarVerticalNextComponent, SiNavbarVerticalNextDividerComponent, SiNavbarVerticalNextFooterItemsComponent, SiNavbarVerticalNextGroupComponent, SiNavbarVerticalNextGroupTriggerDirective, SiNavbarVerticalNextHeaderComponent, SiNavbarVerticalNextItemComponent, SiNavbarVerticalNextItemsComponent,
|
|
865
|
+
export { SiNavbarVerticalNextChipMenuComponent, SiNavbarVerticalNextComponent, SiNavbarVerticalNextDividerComponent, SiNavbarVerticalNextFooterItemsComponent, SiNavbarVerticalNextGroupComponent, SiNavbarVerticalNextGroupTriggerDirective, SiNavbarVerticalNextHeaderComponent, SiNavbarVerticalNextItemComponent, SiNavbarVerticalNextItemsComponent, SiNavbarVerticalNextSearchComponent };
|
|
821
866
|
//# sourceMappingURL=siemens-element-ng-navbar-vertical-next.mjs.map
|