@siemens/element-ng 49.16.0 → 51.0.0-rc.10
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 +59 -41
- 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 +143 -148
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +180 -188
- 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 +34 -24
- 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 +72 -47
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-carousel.mjs +58 -34
- package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs +323 -215
- 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 +44 -34
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +58 -37
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +22 -22
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- 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 +37 -28
- 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 +337 -223
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs +12 -15
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +126 -76
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +393 -251
- 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 +33 -25
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +274 -165
- 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 +361 -116
- 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 +224 -318
- 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 +6 -6
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs +56 -57
- 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 +19 -15
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-landing-page.mjs +121 -75
- 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 +132 -66
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +51 -64
- 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 +116 -51
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-maplibre.mjs +401 -0
- package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-directives-tabs.mjs +70 -0
- package/fesm2022/siemens-element-ng-markdown-directives-tabs.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-citations.mjs +215 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-citations.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs +76 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-mermaid.mjs +86 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-mermaid.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs +130 -0
- package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-markdown.mjs +800 -0
- package/fesm2022/siemens-element-ng-markdown.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-menu.mjs +71 -57
- 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 +251 -206
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +123 -86
- 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 +41 -29
- 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 +33 -24
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs +19 -14
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs +144 -139
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +85 -52
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +56 -41
- 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 -37
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +265 -170
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-shadow-root.mjs +4 -4
- package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +181 -104
- 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 +45 -30
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-source-chip.mjs +79 -0
- package/fesm2022/siemens-element-ng-source-chip.mjs.map +1 -0
- package/fesm2022/siemens-element-ng-split.mjs +290 -306
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +66 -52
- 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 +13 -10
- 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 +156 -131
- 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 +62 -42
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +59 -40
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +108 -82
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs +36 -19
- 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 +113 -84
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +69 -49
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +95 -54
- 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 +724 -0
- package/markdown/directives/tabs/package.json +4 -0
- package/markdown/extensions/citations/package.json +4 -0
- package/markdown/extensions/katex/package.json +4 -0
- package/markdown/extensions/mermaid/package.json +4 -0
- package/markdown/hightlighter/highlightjs/package.json +4 -0
- package/markdown/package.json +4 -0
- package/package.json +96 -25
- package/schematics/collection.json +5 -0
- package/schematics/{migrations/icon-path-migration → migrate-tabs-legacy}/index.js +1 -1
- package/schematics/migrate-tabs-legacy/migrate-tabs-legacy-rule.js +675 -0
- package/schematics/migrate-tabs-legacy/schema.json +14 -0
- 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/component-property-to-child.js +11 -0
- package/schematics/migrations/data/css-custom-properties.js +224 -0
- package/schematics/migrations/data/element-class-changes.js +116 -18
- package/schematics/migrations/data/element-migration-data.js +6 -0
- package/schematics/migrations/data/element-selectors.js +1 -9
- package/schematics/migrations/data/index.js +0 -4
- package/schematics/migrations/data/migration-test-data.js +49 -6
- package/schematics/migrations/data/provider-function-removals.js +7 -0
- package/schematics/migrations/data/symbol-removals.js +17 -7
- package/schematics/migrations/data/symbol-renaming.js +3 -44
- package/schematics/migrations/element-migration/element-migration.js +6 -6
- package/schematics/migrations/utilities/component-property-to-child.migration.js +73 -0
- package/schematics/migrations/utilities/css-custom-property.migration.js +51 -0
- package/schematics/migrations/utilities/element-class-change.migration.js +10 -5
- package/schematics/migrations/utilities/import-removal.js +39 -0
- package/schematics/migrations/utilities/index.js +4 -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-content-formatter.js +288 -0
- package/schematics/ng-update/migrate-list-details-units.js +86 -0
- package/schematics/ng-update/migrate-main-detail-units.js +89 -0
- package/schematics/ng-update/migrate-markdown-renderer.js +106 -0
- package/schematics/ng-update/migrate-spacers.js +32 -0
- package/schematics/ng-update/migrate-split-collapse.js +276 -0
- package/schematics/ng-update/migrate-split-scale.js +524 -0
- package/schematics/ng-update/migrate-split-sizes.js +107 -0
- package/schematics/ng-update/migrate-to-v51.js +35 -0
- package/schematics/utils/index.js +1 -0
- package/schematics/utils/template-edit-utils.js +35 -0
- package/schematics/utils/template-utils.js +31 -45
- package/source-chip/package.json +4 -0
- package/template-i18n.json +78 -47
- package/types/siemens-element-ng-application-header.d.ts +7 -33
- package/types/siemens-element-ng-avatar.d.ts +1 -1
- package/types/siemens-element-ng-breadcrumb.d.ts +1 -1
- package/types/siemens-element-ng-chat-messages.d.ts +118 -70
- 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-datatable.d.ts +5 -56
- package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
- package/types/siemens-element-ng-datepicker.d.ts +8 -15
- 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 +183 -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-landing-page.d.ts +2 -2
- package/types/siemens-element-ng-list-details.d.ts +25 -3
- package/types/siemens-element-ng-loading-spinner.d.ts +11 -17
- package/types/siemens-element-ng-main-detail-container.d.ts +23 -3
- package/types/siemens-element-ng-maplibre.d.ts +190 -0
- package/types/siemens-element-ng-markdown-directives-tabs.d.ts +10 -0
- package/types/siemens-element-ng-markdown-extensions-citations.d.ts +11 -0
- package/types/siemens-element-ng-markdown-extensions-katex.d.ts +19 -0
- package/types/siemens-element-ng-markdown-extensions-mermaid.d.ts +11 -0
- package/types/siemens-element-ng-markdown-hightlighter-highlightjs.d.ts +48 -0
- package/types/siemens-element-ng-markdown.d.ts +367 -0
- package/types/siemens-element-ng-menu.d.ts +2 -0
- package/types/siemens-element-ng-navbar-vertical-next.d.ts +87 -39
- 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 +28 -10
- 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 +2 -9
- package/types/siemens-element-ng-select.d.ts +32 -5
- package/types/siemens-element-ng-side-panel.d.ts +25 -11
- package/types/siemens-element-ng-source-chip.d.ts +53 -0
- package/types/siemens-element-ng-split.d.ts +101 -78
- 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-system-banner.d.ts +2 -2
- 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 +35 -5
- package/types/siemens-element-ng-tree-view.d.ts +3 -0
- package/types/siemens-element-ng-wizard.d.ts +18 -3
- 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-markdown-renderer.mjs +0 -263
- package/fesm2022/siemens-element-ng-markdown-renderer.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/markdown-renderer/package.json +0 -4
- package/schematics/migrations/icon-path-migration/icon-path-migration.js +0 -95
- package/schematics/ng-update/migrate-to-v49.js +0 -21
- 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-markdown-renderer.d.ts +0 -36
- 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.8", ngImport: i0, type: SiNavbarVerticalNextItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", 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:var(--si-sys-sizing-spacing-y-40)}: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.8", 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:var(--si-sys-sizing-spacing-y-40)}: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.8", ngImport: i0, type: SiNavbarVerticalNextChipMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
105
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", 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(var(--si-sys-sizing-sizing-100) + 1px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px)) + var(--si-sys-sizing-spacing-y-60));inset-inline-start:calc(var(--si-navbar-parked-inline-start) + calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40)) + 1px);max-inline-size:calc(100vi - 2 * var(--si-navbar-parked-inline-start) - calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40)) - 1px);block-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40));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.8", 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(var(--si-sys-sizing-sizing-100) + 1px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px)) + var(--si-sys-sizing-spacing-y-60));inset-inline-start:calc(var(--si-navbar-parked-inline-start) + calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40)) + 1px);max-inline-size:calc(100vi - 2 * var(--si-navbar-parked-inline-start) - calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40)) - 1px);block-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40));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
|
|
@@ -54,16 +122,16 @@ const SI_NAVBAR_VERTICAL_NEXT = new InjectionToken('SI_NAVBAR_VERTICAL_NEXT');
|
|
|
54
122
|
*/
|
|
55
123
|
class SiNavbarFlyoutAnchorComponent {
|
|
56
124
|
/** ID of the flyout group owned by this accessibility anchor. */
|
|
57
|
-
groupId = input(
|
|
58
|
-
|
|
59
|
-
static
|
|
125
|
+
groupId = input(/* @ts-ignore */
|
|
126
|
+
...(ngDevMode ? [undefined, { debugName: "groupId" }] : /* istanbul ignore next */ []));
|
|
127
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarFlyoutAnchorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
128
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.8", 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 });
|
|
60
129
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarFlyoutAnchorComponent, decorators: [{
|
|
62
131
|
type: Component,
|
|
63
132
|
args: [{
|
|
64
133
|
selector: 'si-navbar-flyout-anchor',
|
|
65
134
|
template: '',
|
|
66
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
67
135
|
host: { '[attr.aria-owns]': 'groupId()' }
|
|
68
136
|
}]
|
|
69
137
|
}], propDecorators: { groupId: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupId", required: false }] }] } });
|
|
@@ -74,11 +142,12 @@ class SiNavbarVerticalNextGroupTriggerDirective {
|
|
|
74
142
|
groupId = `si-navbar-vertical-next-group-${SiNavbarVerticalNextGroupTriggerDirective.idCounter++}`;
|
|
75
143
|
id = `${this.groupId}-trigger`;
|
|
76
144
|
/** Template rendered for the expandable group. */
|
|
77
|
-
groupTemplate = input.required({ ...(ngDevMode ? { debugName: "groupTemplate" } : {}), alias: 'siNavbarVerticalNextGroupTriggerFor' });
|
|
145
|
+
groupTemplate = input.required({ ...(ngDevMode ? { debugName: "groupTemplate" } : /* istanbul ignore next */ {}), alias: 'siNavbarVerticalNextGroupTriggerFor' });
|
|
78
146
|
/** Key used to persist the expanded state of this group. */
|
|
79
|
-
stateId = input(
|
|
147
|
+
stateId = input(/* @ts-ignore */
|
|
148
|
+
...(ngDevMode ? [undefined, { debugName: "stateId" }] : /* istanbul ignore next */ []));
|
|
80
149
|
/** @defaultValue false */
|
|
81
|
-
expanded = linkedSignal({ ...(ngDevMode ? { debugName: "expanded" } : {}), source: () => {
|
|
150
|
+
expanded = linkedSignal({ ...(ngDevMode ? { debugName: "expanded" } : /* istanbul ignore next */ {}), source: () => {
|
|
82
151
|
const stateId = this.stateId();
|
|
83
152
|
return {
|
|
84
153
|
uiState: stateId ? this.navbar.uiStateExpandedItems()[stateId] : undefined,
|
|
@@ -104,28 +173,37 @@ class SiNavbarVerticalNextGroupTriggerDirective {
|
|
|
104
173
|
* `false` whenever the rendering mode changes.
|
|
105
174
|
* @internal
|
|
106
175
|
*/
|
|
107
|
-
flyout = linkedSignal({ ...(ngDevMode ? { debugName: "flyout" } : {}), source: () => this.flyoutMode(),
|
|
176
|
+
flyout = linkedSignal({ ...(ngDevMode ? { debugName: "flyout" } : /* istanbul ignore next */ {}), source: () => this.flyoutMode(),
|
|
108
177
|
computation: () => false });
|
|
109
178
|
/** `true` when this group contains the active route. Set by the group component.
|
|
110
179
|
* @internal
|
|
111
180
|
*/
|
|
112
|
-
active = signal(false,
|
|
181
|
+
active = signal(false, /* @ts-ignore */
|
|
182
|
+
...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
|
|
113
183
|
navbar = inject(SI_NAVBAR_VERTICAL_NEXT);
|
|
114
184
|
/** Signal mirror of the navbar's flyout mode. `true` when groups should render as transient overlays instead of inline.
|
|
115
185
|
* @internal
|
|
116
186
|
*/
|
|
117
|
-
flyoutMode = computed(() => this.navbar.flyoutMode(),
|
|
187
|
+
flyoutMode = computed(() => this.navbar.flyoutMode(), /* @ts-ignore */
|
|
188
|
+
...(ngDevMode ? [{ debugName: "flyoutMode" }] : /* istanbul ignore next */ []));
|
|
118
189
|
flyoutOutsideClickSubscription;
|
|
119
190
|
viewContainer = inject(ViewContainerRef);
|
|
120
191
|
overlay = inject(Overlay);
|
|
121
192
|
destroyRef = inject(DestroyRef);
|
|
122
193
|
injector = Injector.create({ parent: inject(Injector), providers: [] });
|
|
123
194
|
overlayRef = this.overlay.create({
|
|
124
|
-
positionStrategy: this.
|
|
195
|
+
positionStrategy: this.overlay
|
|
196
|
+
.position()
|
|
197
|
+
.flexibleConnectedTo(this.viewContainer.element)
|
|
198
|
+
.withPositions([
|
|
199
|
+
{ originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },
|
|
200
|
+
{ originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' }
|
|
201
|
+
])
|
|
125
202
|
});
|
|
126
203
|
groupView;
|
|
127
204
|
flyoutAnchorComponentRef;
|
|
128
|
-
templatePortal = computed(() => new TemplatePortal(this.groupTemplate(), this.viewContainer, undefined, this.injector),
|
|
205
|
+
templatePortal = computed(() => new TemplatePortal(this.groupTemplate(), this.viewContainer, undefined, this.injector), /* @ts-ignore */
|
|
206
|
+
...(ngDevMode ? [{ debugName: "templatePortal" }] : /* istanbul ignore next */ []));
|
|
129
207
|
constructor() {
|
|
130
208
|
// Manage the rendering of the inline projection / flyout overlay in
|
|
131
209
|
// response to mode changes. Only side effects belong here; the related
|
|
@@ -143,22 +221,6 @@ class SiNavbarVerticalNextGroupTriggerDirective {
|
|
|
143
221
|
});
|
|
144
222
|
}
|
|
145
223
|
/** @internal */
|
|
146
|
-
buildPositionStrategy(chipMode) {
|
|
147
|
-
const positions = chipMode
|
|
148
|
-
? [
|
|
149
|
-
{ originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },
|
|
150
|
-
{ originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' }
|
|
151
|
-
]
|
|
152
|
-
: [
|
|
153
|
-
{ originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },
|
|
154
|
-
{ originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' }
|
|
155
|
-
];
|
|
156
|
-
return this.overlay
|
|
157
|
-
.position()
|
|
158
|
-
.flexibleConnectedTo(this.viewContainer.element)
|
|
159
|
-
.withPositions(positions);
|
|
160
|
-
}
|
|
161
|
-
/** @internal */
|
|
162
224
|
hideFlyout() {
|
|
163
225
|
if (!this.flyout())
|
|
164
226
|
return;
|
|
@@ -192,13 +254,9 @@ class SiNavbarVerticalNextGroupTriggerDirective {
|
|
|
192
254
|
});
|
|
193
255
|
}
|
|
194
256
|
attachFlyout() {
|
|
195
|
-
this.overlayRef.updatePositionStrategy(this.buildPositionStrategy(this.navbar.chipMode()));
|
|
196
257
|
this.groupView?.destroy();
|
|
197
258
|
this.groupView = this.overlayRef.attach(this.templatePortal());
|
|
198
|
-
|
|
199
|
-
// navbar's in-nav anchor host so aria-owns stays within the navigation landmark.
|
|
200
|
-
const anchorHost = this.navbar.flyoutAnchorHost() ?? this.viewContainer;
|
|
201
|
-
this.flyoutAnchorComponentRef = anchorHost.createComponent(SiNavbarFlyoutAnchorComponent);
|
|
259
|
+
this.flyoutAnchorComponentRef = this.viewContainer.createComponent(SiNavbarFlyoutAnchorComponent);
|
|
202
260
|
this.flyoutAnchorComponentRef.setInput('groupId', this.groupId);
|
|
203
261
|
this.flyoutOutsideClickSubscription = this.overlayRef
|
|
204
262
|
.outsidePointerEvents()
|
|
@@ -210,17 +268,17 @@ class SiNavbarVerticalNextGroupTriggerDirective {
|
|
|
210
268
|
this.flyoutOutsideClickSubscription?.unsubscribe();
|
|
211
269
|
this.flyoutOutsideClickSubscription = undefined;
|
|
212
270
|
}
|
|
213
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
214
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
271
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextGroupTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
272
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", 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 });
|
|
215
273
|
}
|
|
216
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
274
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextGroupTriggerDirective, decorators: [{
|
|
217
275
|
type: Directive,
|
|
218
276
|
args: [{
|
|
219
277
|
selector: 'button[siNavbarVerticalNextGroupTriggerFor]',
|
|
220
278
|
host: {
|
|
221
279
|
class: 'dropdown-toggle',
|
|
222
280
|
'[id]': 'id',
|
|
223
|
-
'[class.show]': 'expanded()',
|
|
281
|
+
'[class.show]': '!flyoutMode() && expanded()',
|
|
224
282
|
'[attr.aria-controls]': 'groupId',
|
|
225
283
|
'[attr.aria-expanded]': 'flyoutMode() ? flyout() : expanded()',
|
|
226
284
|
'(click)': 'triggered()'
|
|
@@ -236,19 +294,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
236
294
|
class SiNavbarVerticalNextItemComponent {
|
|
237
295
|
icons = addIcons({ elementDown2, elementRight2 });
|
|
238
296
|
/** Optional icon to render before the label. */
|
|
239
|
-
icon = input(
|
|
297
|
+
icon = input(/* @ts-ignore */
|
|
298
|
+
...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
240
299
|
/** Badge value to display. */
|
|
241
|
-
badge = input(
|
|
300
|
+
badge = input(/* @ts-ignore */
|
|
301
|
+
...(ngDevMode ? [undefined, { debugName: "badge" }] : /* istanbul ignore next */ []));
|
|
242
302
|
/** Color of the badge. */
|
|
243
|
-
badgeColor = input(
|
|
303
|
+
badgeColor = input(/* @ts-ignore */
|
|
304
|
+
...(ngDevMode ? [undefined, { debugName: "badgeColor" }] : /* istanbul ignore next */ []));
|
|
244
305
|
/**
|
|
245
306
|
* Hide the badge when the navbar is collapsed.
|
|
246
307
|
*
|
|
247
308
|
* @defaultValue false
|
|
248
309
|
*/
|
|
249
|
-
hideBadgeWhenCollapsed = input(false, { ...(ngDevMode ? { debugName: "hideBadgeWhenCollapsed" } : {}), transform: booleanAttribute });
|
|
310
|
+
hideBadgeWhenCollapsed = input(false, { ...(ngDevMode ? { debugName: "hideBadgeWhenCollapsed" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
250
311
|
/** Override the active state. Useful for action items. */
|
|
251
|
-
activeOverride = input(
|
|
312
|
+
activeOverride = input(/* @ts-ignore */
|
|
313
|
+
...(ngDevMode ? [undefined, { debugName: "activeOverride" }] : /* istanbul ignore next */ []));
|
|
314
|
+
/**
|
|
315
|
+
* Text label of this item.
|
|
316
|
+
* Consumed by the chip button to mirror the active item's label when collapsed.
|
|
317
|
+
*/
|
|
318
|
+
label = input(/* @ts-ignore */
|
|
319
|
+
...(ngDevMode ? [undefined, { debugName: "label" }] : /* istanbul ignore next */ []));
|
|
252
320
|
navbar = inject(SI_NAVBAR_VERTICAL_NEXT);
|
|
253
321
|
parent = inject(SiNavbarVerticalNextItemComponent, {
|
|
254
322
|
skipSelf: true,
|
|
@@ -263,37 +331,37 @@ class SiNavbarVerticalNextItemComponent {
|
|
|
263
331
|
* @internal
|
|
264
332
|
*/
|
|
265
333
|
routerActive = toSignal(this.routerLinkActive?.isActiveChange ?? EMPTY, { initialValue: this.routerLinkActive?.isActive ?? false });
|
|
266
|
-
/**
|
|
267
|
-
elementRef = inject(ElementRef);
|
|
268
|
-
/** DOM portal relocated into the chip slot when collapsed.
|
|
334
|
+
/** `true` when the navbar is in chip mode (inline-collapse active and collapsed).
|
|
269
335
|
* @internal
|
|
270
336
|
*/
|
|
271
|
-
|
|
272
|
-
/** Signal mirror of the navbar's chip mode. `true` when inline-collapse is active and the navbar is collapsed.
|
|
273
|
-
* @internal
|
|
274
|
-
*/
|
|
275
|
-
chipMode = computed(() => this.navbar.chipMode(), ...(ngDevMode ? [{ debugName: "chipMode" }] : []));
|
|
337
|
+
chipMode = this.navbar.chipMode;
|
|
276
338
|
/**
|
|
277
339
|
* Determines if the badge contains text-only content (not numeric)
|
|
278
340
|
*/
|
|
279
341
|
textOnlyBadge = computed(() => {
|
|
280
342
|
const badge = this.badge();
|
|
281
343
|
return badge != null && badge !== '' ? typeof badge !== 'number' : false;
|
|
282
|
-
},
|
|
344
|
+
}, /* @ts-ignore */
|
|
345
|
+
...(ngDevMode ? [{ debugName: "textOnlyBadge" }] : /* istanbul ignore next */ []));
|
|
283
346
|
/** `true` when the `active` CSS class should be applied to this item.
|
|
284
347
|
*
|
|
285
|
-
* In chip mode
|
|
286
|
-
*
|
|
287
|
-
*
|
|
288
|
-
*
|
|
348
|
+
* In chip mode the root-level items are hidden inside the collapsed nav until
|
|
349
|
+
* the user opens the chip menu, so their active state is suppressed to avoid
|
|
350
|
+
* flashing when the menu closes. Sub-items and open group triggers always
|
|
351
|
+
* reflect activity. While the chip menu is open, root-level active items must
|
|
352
|
+
* be highlighted so the user can locate the current page in the overlay.
|
|
289
353
|
* @internal
|
|
290
354
|
*/
|
|
291
355
|
showActive = computed(() => {
|
|
292
356
|
if (this.chipMode()) {
|
|
357
|
+
if (this.navbar.chipMenuOpen()) {
|
|
358
|
+
return this.active();
|
|
359
|
+
}
|
|
293
360
|
return (!!this.parent || this.group?.flyout()) && this.active();
|
|
294
361
|
}
|
|
295
362
|
return this.active();
|
|
296
|
-
},
|
|
363
|
+
}, /* @ts-ignore */
|
|
364
|
+
...(ngDevMode ? [{ debugName: "showActive" }] : /* istanbul ignore next */ []));
|
|
297
365
|
/**
|
|
298
366
|
* Formats badge value to limit display to "+99" for numbers greater than 99
|
|
299
367
|
*/
|
|
@@ -306,15 +374,18 @@ class SiNavbarVerticalNextItemComponent {
|
|
|
306
374
|
return badge > 99 ? '+99' : badge.toString();
|
|
307
375
|
}
|
|
308
376
|
return badge.toString();
|
|
309
|
-
},
|
|
377
|
+
}, /* @ts-ignore */
|
|
378
|
+
...(ngDevMode ? [{ debugName: "formattedBadge" }] : /* istanbul ignore next */ []));
|
|
310
379
|
/** Active via override or router link — excludes group state.
|
|
311
380
|
* @internal
|
|
312
381
|
*/
|
|
313
|
-
anyRouteActive = computed(() => !!this.activeOverride() || this.routerActive(),
|
|
382
|
+
anyRouteActive = computed(() => !!this.activeOverride() || this.routerActive(), /* @ts-ignore */
|
|
383
|
+
...(ngDevMode ? [{ debugName: "anyRouteActive" }] : /* istanbul ignore next */ []));
|
|
314
384
|
/** Own route is active, or a descendant route is active — includes group state, not gated on expansion.
|
|
315
385
|
* @internal
|
|
316
386
|
*/
|
|
317
|
-
isOnActiveRoute = computed(() => this.anyRouteActive() || !!this.group?.active(),
|
|
387
|
+
isOnActiveRoute = computed(() => this.anyRouteActive() || !!this.group?.active(), /* @ts-ignore */
|
|
388
|
+
...(ngDevMode ? [{ debugName: "isOnActiveRoute" }] : /* istanbul ignore next */ []));
|
|
318
389
|
/**
|
|
319
390
|
* `true` when this item should reflect activity.
|
|
320
391
|
*
|
|
@@ -326,15 +397,13 @@ class SiNavbarVerticalNextItemComponent {
|
|
|
326
397
|
* when the active child cannot show it itself.
|
|
327
398
|
*/
|
|
328
399
|
active = computed(() => this.anyRouteActive() ||
|
|
329
|
-
((!this.group?.expanded() || this.navbar.collapsed()) && !!this.group?.active()),
|
|
400
|
+
((!this.group?.expanded() || this.navbar.collapsed()) && !!this.group?.active()), /* @ts-ignore */
|
|
401
|
+
...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
|
|
330
402
|
/** `true` when this is a root-level item on the active route (ungated, so the chip survives collapse↔expand).
|
|
331
403
|
* @internal
|
|
332
404
|
*/
|
|
333
|
-
isActiveRootItem = computed(() => !this.parent && this.isOnActiveRoute(),
|
|
334
|
-
|
|
335
|
-
* @internal
|
|
336
|
-
*/
|
|
337
|
-
isChip = computed(() => this.navbar.chipPortalAttached() && this.isActiveRootItem(), ...(ngDevMode ? [{ debugName: "isChip" }] : []));
|
|
405
|
+
isActiveRootItem = computed(() => !this.parent && this.isOnActiveRoute(), /* @ts-ignore */
|
|
406
|
+
...(ngDevMode ? [{ debugName: "isActiveRootItem" }] : /* istanbul ignore next */ []));
|
|
338
407
|
ngOnInit() {
|
|
339
408
|
if (this.group && this.active()) {
|
|
340
409
|
this.group.expanded.set(true);
|
|
@@ -346,22 +415,18 @@ class SiNavbarVerticalNextItemComponent {
|
|
|
346
415
|
this.navbar.itemTriggered();
|
|
347
416
|
}
|
|
348
417
|
}
|
|
349
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
350
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
418
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
419
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", 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\" [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-primary\"\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(--si-sys-text-primary);background:none;border:0;font-size:var(--si-sys-typography-font-size-body);padding-block:var(--si-sys-sizing-spacing-y-40);padding-inline:0 var(--si-sys-sizing-spacing-x-50);min-inline-size:0;min-block-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-50));inline-size:100%;border-radius:0}:host(.navbar-vertical-item) .item-title{margin-inline-start:var(--si-sys-sizing-spacing-x-50)}:host(.navbar-vertical-item) .icon{margin-inline-start:var(--si-sys-sizing-spacing-x-50);padding-inline:var(--si-sys-sizing-spacing-x-10);padding-block:var(--si-sys-sizing-spacing-y-10)}:host(.navbar-vertical-item) .icon+.item-title{margin-inline-start:var(--si-sys-sizing-spacing-x-40)}: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(--si-sys-text-accent-active);background:var(--si-sys-background-active)}:host(.navbar-vertical-item).active:after{content:\"\";position:absolute;inset-block:0;inset-inline-start:0;inline-size:4px;background:var(--si-sys-border-accent-active)}:host(.navbar-vertical-item):hover{text-decoration:none;background:var(--si-sys-background-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:var(--si-sys-sizing-spacing-y-40)}: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:var(--si-sys-sizing-spacing-x-90)}: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:var(--si-sys-sizing-spacing-y-20);inset-inline-end:var(--si-sys-sizing-spacing-x-30);min-inline-size:.875rem;border-radius:.4375rem;font-size:var(--si-sys-typography-font-size-body-sm);line-height:.875rem;padding-block:0;padding-inline:var(--si-sys-sizing-spacing-x-20);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"] }] });
|
|
351
420
|
}
|
|
352
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
421
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextItemComponent, decorators: [{
|
|
353
422
|
type: Component,
|
|
354
|
-
args: [{ selector: 'a[si-navbar-vertical-next-item], button[si-navbar-vertical-next-item]', imports: [SiIconComponent],
|
|
355
|
-
|
|
356
|
-
'[class.navbar-vertical-item]': '!isChip()',
|
|
423
|
+
args: [{ selector: 'a[si-navbar-vertical-next-item], button[si-navbar-vertical-next-item]', imports: [SiIconComponent], host: {
|
|
424
|
+
class: 'navbar-vertical-item focus-inside',
|
|
357
425
|
'[class.active]': 'showActive()',
|
|
358
|
-
'[class.is-chip]': 'isChip()',
|
|
359
|
-
'[class.btn]': 'isChip()',
|
|
360
|
-
'[class.btn-primary-ghost]': 'isChip()',
|
|
361
426
|
'[class.hide-badge-collapsed]': 'hideBadgeWhenCollapsed()',
|
|
362
427
|
'(click)': 'triggered()'
|
|
363
|
-
}, template: "@let icon = this.icon();\n@if (icon) {\n <si-icon
|
|
364
|
-
}], 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 }] }] } });
|
|
428
|
+
}, template: "@let icon = this.icon();\n@if (icon) {\n <si-icon class=\"icon\" [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-primary\"\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(--si-sys-text-primary);background:none;border:0;font-size:var(--si-sys-typography-font-size-body);padding-block:var(--si-sys-sizing-spacing-y-40);padding-inline:0 var(--si-sys-sizing-spacing-x-50);min-inline-size:0;min-block-size:calc(1lh + 2 * var(--si-sys-sizing-spacing-y-50));inline-size:100%;border-radius:0}:host(.navbar-vertical-item) .item-title{margin-inline-start:var(--si-sys-sizing-spacing-x-50)}:host(.navbar-vertical-item) .icon{margin-inline-start:var(--si-sys-sizing-spacing-x-50);padding-inline:var(--si-sys-sizing-spacing-x-10);padding-block:var(--si-sys-sizing-spacing-y-10)}:host(.navbar-vertical-item) .icon+.item-title{margin-inline-start:var(--si-sys-sizing-spacing-x-40)}: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(--si-sys-text-accent-active);background:var(--si-sys-background-active)}:host(.navbar-vertical-item).active:after{content:\"\";position:absolute;inset-block:0;inset-inline-start:0;inline-size:4px;background:var(--si-sys-border-accent-active)}:host(.navbar-vertical-item):hover{text-decoration:none;background:var(--si-sys-background-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:var(--si-sys-sizing-spacing-y-40)}: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:var(--si-sys-sizing-spacing-x-90)}: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:var(--si-sys-sizing-spacing-y-20);inset-inline-end:var(--si-sys-sizing-spacing-x-30);min-inline-size:.875rem;border-radius:.4375rem;font-size:var(--si-sys-typography-font-size-body-sm);line-height:.875rem;padding-block:0;padding-inline:var(--si-sys-sizing-spacing-x-20);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"] }]
|
|
429
|
+
}], 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 }] }] } });
|
|
365
430
|
|
|
366
431
|
/**
|
|
367
432
|
* Copyright (c) Siemens 2016 - 2026
|
|
@@ -380,13 +445,14 @@ class SiNavbarVerticalNextComponent {
|
|
|
380
445
|
*
|
|
381
446
|
* @defaultValue false
|
|
382
447
|
*/
|
|
383
|
-
collapsed = model(false,
|
|
448
|
+
collapsed = model(false, /* @ts-ignore */
|
|
449
|
+
...(ngDevMode ? [{ debugName: "collapsed" }] : /* istanbul ignore next */ []));
|
|
384
450
|
/**
|
|
385
451
|
* Set to `true` if there are no icons
|
|
386
452
|
*
|
|
387
453
|
* @defaultValue false
|
|
388
454
|
*/
|
|
389
|
-
textOnly = input(false, { ...(ngDevMode ? { debugName: "textOnly" } : {}), transform: booleanAttribute });
|
|
455
|
+
textOnly = input(false, { ...(ngDevMode ? { debugName: "textOnly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
390
456
|
/**
|
|
391
457
|
* Enables an alternative inline-collapse behavior.
|
|
392
458
|
*
|
|
@@ -395,7 +461,7 @@ class SiNavbarVerticalNextComponent {
|
|
|
395
461
|
*
|
|
396
462
|
* @defaultValue false
|
|
397
463
|
*/
|
|
398
|
-
inlineCollapse = input(false, { ...(ngDevMode ? { debugName: "inlineCollapse" } : {}), transform: booleanAttribute });
|
|
464
|
+
inlineCollapse = input(false, { ...(ngDevMode ? { debugName: "inlineCollapse" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
399
465
|
/**
|
|
400
466
|
* When `true`, item-groups always open as a transient flyout panel adjacent to the
|
|
401
467
|
* trigger, regardless of whether the navbar is collapsed or expanded.
|
|
@@ -403,7 +469,7 @@ class SiNavbarVerticalNextComponent {
|
|
|
403
469
|
*
|
|
404
470
|
* @defaultValue false
|
|
405
471
|
*/
|
|
406
|
-
alwaysFlyout = input(false, { ...(ngDevMode ? { debugName: "alwaysFlyout" } : {}), transform: booleanAttribute });
|
|
472
|
+
alwaysFlyout = input(false, { ...(ngDevMode ? { debugName: "alwaysFlyout" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
407
473
|
/**
|
|
408
474
|
* List of vertical navigation items
|
|
409
475
|
*
|
|
@@ -412,22 +478,24 @@ class SiNavbarVerticalNextComponent {
|
|
|
412
478
|
*
|
|
413
479
|
* @defaultValue true
|
|
414
480
|
*/
|
|
415
|
-
visible = input(true, { ...(ngDevMode ? { debugName: "visible" } : {}), transform: booleanAttribute });
|
|
481
|
+
visible = input(true, { ...(ngDevMode ? { debugName: "visible" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
416
482
|
/**
|
|
417
483
|
* Text for the navbar toggle button used as `aria-label`.
|
|
418
484
|
* The expanded state is communicated via `aria-expanded`.
|
|
419
485
|
*
|
|
420
486
|
* @defaultValue
|
|
421
487
|
* ```
|
|
422
|
-
* t(() => $localize`:@@SI_NAVBAR_VERTICAL.TOGGLE:
|
|
488
|
+
* t(() => $localize`:@@SI_NAVBAR_VERTICAL.TOGGLE:Show side navigation`)
|
|
423
489
|
* ```
|
|
424
490
|
*/
|
|
425
|
-
toggleButtonText = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.TOGGLE:
|
|
491
|
+
toggleButtonText = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.TOGGLE:Show side navigation`), /* @ts-ignore */
|
|
492
|
+
...(ngDevMode ? [{ debugName: "toggleButtonText" }] : /* istanbul ignore next */ []));
|
|
426
493
|
/**
|
|
427
494
|
* An optional stateId to uniquely identify a component instance.
|
|
428
495
|
* Required for persistence of ui state.
|
|
429
496
|
*/
|
|
430
|
-
stateId = input(
|
|
497
|
+
stateId = input(/* @ts-ignore */
|
|
498
|
+
...(ngDevMode ? [undefined, { debugName: "stateId" }] : /* istanbul ignore next */ []));
|
|
431
499
|
/**
|
|
432
500
|
* Label for the skip link to the vertical navbar
|
|
433
501
|
*
|
|
@@ -436,7 +504,8 @@ class SiNavbarVerticalNextComponent {
|
|
|
436
504
|
* t(() => $localize`:@@SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL:Navigation`)
|
|
437
505
|
* ```
|
|
438
506
|
*/
|
|
439
|
-
skipLinkNavigationLabel = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL:Navigation`),
|
|
507
|
+
skipLinkNavigationLabel = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL:Navigation`), /* @ts-ignore */
|
|
508
|
+
...(ngDevMode ? [{ debugName: "skipLinkNavigationLabel" }] : /* istanbul ignore next */ []));
|
|
440
509
|
/**
|
|
441
510
|
* Label for the skip link to main content
|
|
442
511
|
*
|
|
@@ -445,35 +514,42 @@ class SiNavbarVerticalNextComponent {
|
|
|
445
514
|
* t(() => $localize`:@@SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL:Main content`)
|
|
446
515
|
* ```
|
|
447
516
|
*/
|
|
448
|
-
skipLinkMainContentLabel = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL:Main content`),
|
|
517
|
+
skipLinkMainContentLabel = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL:Main content`), /* @ts-ignore */
|
|
518
|
+
...(ngDevMode ? [{ debugName: "skipLinkMainContentLabel" }] : /* istanbul ignore next */ []));
|
|
449
519
|
uiStateService = inject(SI_UI_STATE_SERVICE, { optional: true });
|
|
450
520
|
breakpointObserver = inject(BreakpointObserver);
|
|
451
521
|
injector = inject(Injector);
|
|
452
|
-
ready = signal(false,
|
|
453
|
-
|
|
454
|
-
|
|
522
|
+
ready = signal(false, /* @ts-ignore */
|
|
523
|
+
...(ngDevMode ? [{ debugName: "ready" }] : /* istanbul ignore next */ []));
|
|
524
|
+
smallScreen = signal(false, /* @ts-ignore */
|
|
525
|
+
...(ngDevMode ? [{ debugName: "smallScreen" }] : /* istanbul ignore next */ []));
|
|
526
|
+
/** Chip menu sub-component; present only while the parent template renders it.
|
|
455
527
|
* @internal
|
|
456
528
|
*/
|
|
457
|
-
|
|
458
|
-
|
|
529
|
+
chipMenu = viewChild(SiNavbarVerticalNextChipMenuComponent, /* @ts-ignore */
|
|
530
|
+
...(ngDevMode ? [{ debugName: "chipMenu" }] : /* istanbul ignore next */ []));
|
|
531
|
+
/** Projected items container; portaled into the chip menu overlay while it is open.
|
|
459
532
|
* @internal
|
|
460
533
|
*/
|
|
461
|
-
|
|
462
|
-
|
|
534
|
+
itemsComponent = contentChild(SiNavbarVerticalNextItemsComponent, /* @ts-ignore */
|
|
535
|
+
...(ngDevMode ? [{ debugName: "itemsComponent" }] : /* istanbul ignore next */ []));
|
|
536
|
+
/** All projected nav items, including descendants inside group templates.
|
|
463
537
|
* @internal
|
|
464
538
|
*/
|
|
465
|
-
|
|
466
|
-
/**
|
|
539
|
+
items = contentChildren(SiNavbarVerticalNextItemComponent, { ...(ngDevMode ? { debugName: "items" } : /* istanbul ignore next */ {}), descendants: true });
|
|
540
|
+
/** The active root-level item; group triggers resolve for nested routes.
|
|
467
541
|
* @internal
|
|
468
542
|
*/
|
|
469
|
-
|
|
543
|
+
activeItem = linkedSignal({ ...(ngDevMode ? { debugName: "activeItem" } : /* istanbul ignore next */ {}), source: () => this.items().find(item => item.isActiveRootItem()),
|
|
544
|
+
computation: (current, previous) => current ?? previous?.value });
|
|
470
545
|
/**
|
|
471
546
|
* @defaultValue
|
|
472
547
|
* ```
|
|
473
548
|
* {}
|
|
474
549
|
* ```
|
|
475
550
|
*/
|
|
476
|
-
uiStateExpandedItems = signal({},
|
|
551
|
+
uiStateExpandedItems = signal({}, /* @ts-ignore */
|
|
552
|
+
...(ngDevMode ? [{ debugName: "uiStateExpandedItems" }] : /* istanbul ignore next */ []));
|
|
477
553
|
// Indicates if the user prefers a collapsed navbar. Relevant for resizing.
|
|
478
554
|
preferCollapse = false;
|
|
479
555
|
toggleIcon = computed(() => {
|
|
@@ -481,15 +557,28 @@ class SiNavbarVerticalNextComponent {
|
|
|
481
557
|
return this.collapsed() ? this.icons.elementLayoutPane2 : this.icons.elementLayoutPane2Right;
|
|
482
558
|
}
|
|
483
559
|
return this.collapsed() ? this.icons.elementDoubleRight : this.icons.elementDoubleLeft;
|
|
484
|
-
},
|
|
560
|
+
}, /* @ts-ignore */
|
|
561
|
+
...(ngDevMode ? [{ debugName: "toggleIcon" }] : /* istanbul ignore next */ []));
|
|
485
562
|
/** `true` when inline-collapse is active and the nav is collapsed.
|
|
486
563
|
* @internal
|
|
487
564
|
*/
|
|
488
|
-
chipMode = computed(() => this.inlineCollapse() && this.collapsed(),
|
|
565
|
+
chipMode = computed(() => this.inlineCollapse() && this.collapsed(), /* @ts-ignore */
|
|
566
|
+
...(ngDevMode ? [{ debugName: "chipMode" }] : /* istanbul ignore next */ []));
|
|
489
567
|
/** `true` when groups should render as flyout overlays.
|
|
490
568
|
* @internal
|
|
491
569
|
*/
|
|
492
|
-
flyoutMode = computed(() => this.alwaysFlyout() || this.collapsed(),
|
|
570
|
+
flyoutMode = computed(() => this.alwaysFlyout() || this.collapsed(), /* @ts-ignore */
|
|
571
|
+
...(ngDevMode ? [{ debugName: "flyoutMode" }] : /* istanbul ignore next */ []));
|
|
572
|
+
/** `true` when the chip menu overlay is open.
|
|
573
|
+
* @internal
|
|
574
|
+
*/
|
|
575
|
+
chipMenuOpen = computed(() => this.chipMenu()?.open() ?? false, /* @ts-ignore */
|
|
576
|
+
...(ngDevMode ? [{ debugName: "chipMenuOpen" }] : /* istanbul ignore next */ []));
|
|
577
|
+
/** `true` when the chip is rendered and visually parked next to the toggle.
|
|
578
|
+
* @internal
|
|
579
|
+
*/
|
|
580
|
+
hasVisibleChip = computed(() => this.chipMode() && !!this.activeItem(), /* @ts-ignore */
|
|
581
|
+
...(ngDevMode ? [{ debugName: "hasVisibleChip" }] : /* istanbul ignore next */ []));
|
|
493
582
|
constructor() {
|
|
494
583
|
this.breakpointObserver
|
|
495
584
|
.observe(`(max-width: ${BOOTSTRAP_BREAKPOINTS.lgMinimum}px)`)
|
|
@@ -568,21 +657,28 @@ class SiNavbarVerticalNextComponent {
|
|
|
568
657
|
if (this.smallScreen()) {
|
|
569
658
|
this.collapsed.set(true);
|
|
570
659
|
}
|
|
660
|
+
this.chipMenu()?.close();
|
|
571
661
|
}
|
|
572
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
573
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
662
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
663
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", 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=\"background-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(var(--si-sys-sizing-sizing-100) + 1px + 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 + 2 * var(--si-sys-sizing-spacing-x-50));color:var(--si-sys-text-primary);padding-block:var(--si-sys-sizing-spacing-y-20);padding-inline:var(--si-sys-sizing-spacing-x-40);margin-block-start:var(--si-sys-sizing-spacing-y-40);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(--si-sys-background-1);box-shadow:var(--si-sys-effects-shadow-1)}@media(max-width:575.98px){:host.nav-collapsed .mobile-drawer{background:var(--si-sys-background-1);box-shadow:var(--si-sys-effects-shadow-1)}}@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 + 2 * var(--si-sys-sizing-spacing-x-50))}:host:where(:not(.nav-text-only):not(.nav-inline-collapse)) nav{inline-size:calc(1.5rem + 2 * var(--si-sys-sizing-spacing-x-50))}: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: var(--si-sys-sizing-spacing-x-60)}@media(min-width:768px){:host(.nav-inline-collapse){--si-navbar-parked-inline-start: var(--si-sys-sizing-spacing-x-90)}}:host(.nav-inline-collapse) nav{overflow:hidden}:host(.nav-inline-collapse) nav:before{content:\"\";position:absolute;inset:0;background:var(--si-sys-background-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 + 2 * var(--si-sys-sizing-spacing-y-40))}: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(var(--si-sys-sizing-sizing-100) + 1px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px)) + var(--si-sys-sizing-spacing-y-40) + var(--si-sys-sizing-spacing-y-20));inset-inline-start:calc(240px - calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40)) - var(--si-sys-sizing-spacing-x-40));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 + 2 * var(--si-sys-sizing-spacing-y-40));margin-block-start:var(--si-sys-sizing-spacing-y-60)}:host(.nav-inline-collapse).nav-collapsed .toggle-button{inset-block-start:calc(calc(var(--si-sys-sizing-sizing-100) + 1px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px)) + var(--si-sys-sizing-spacing-y-60));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" }] });
|
|
574
664
|
}
|
|
575
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
665
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextComponent, decorators: [{
|
|
576
666
|
type: Component,
|
|
577
|
-
args: [{ selector: 'si-navbar-vertical-next', imports: [
|
|
667
|
+
args: [{ selector: 'si-navbar-vertical-next', imports: [
|
|
668
|
+
SiIconComponent,
|
|
669
|
+
SiNavbarVerticalNextChipMenuComponent,
|
|
670
|
+
SiSkipLinkTargetDirective,
|
|
671
|
+
SiTranslatePipe
|
|
672
|
+
], providers: [{ provide: SI_NAVBAR_VERTICAL_NEXT, useExisting: SiNavbarVerticalNextComponent }], host: {
|
|
578
673
|
class: 'si-layout-inner ready',
|
|
579
674
|
'[class.nav-collapsed]': 'collapsed()',
|
|
580
675
|
'[class.nav-text-only]': 'textOnly()',
|
|
581
676
|
'[class.nav-inline-collapse]': 'inlineCollapse()',
|
|
677
|
+
'[class.has-visible-chip]': 'hasVisibleChip()',
|
|
582
678
|
'[class.visible]': 'visible()',
|
|
583
679
|
'[class.ready]': 'ready()'
|
|
584
|
-
}, 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=\"
|
|
585
|
-
}], 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 }] }],
|
|
680
|
+
}, 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=\"background-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(var(--si-sys-sizing-sizing-100) + 1px + 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 + 2 * var(--si-sys-sizing-spacing-x-50));color:var(--si-sys-text-primary);padding-block:var(--si-sys-sizing-spacing-y-20);padding-inline:var(--si-sys-sizing-spacing-x-40);margin-block-start:var(--si-sys-sizing-spacing-y-40);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(--si-sys-background-1);box-shadow:var(--si-sys-effects-shadow-1)}@media(max-width:575.98px){:host.nav-collapsed .mobile-drawer{background:var(--si-sys-background-1);box-shadow:var(--si-sys-effects-shadow-1)}}@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 + 2 * var(--si-sys-sizing-spacing-x-50))}:host:where(:not(.nav-text-only):not(.nav-inline-collapse)) nav{inline-size:calc(1.5rem + 2 * var(--si-sys-sizing-spacing-x-50))}: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: var(--si-sys-sizing-spacing-x-60)}@media(min-width:768px){:host(.nav-inline-collapse){--si-navbar-parked-inline-start: var(--si-sys-sizing-spacing-x-90)}}:host(.nav-inline-collapse) nav{overflow:hidden}:host(.nav-inline-collapse) nav:before{content:\"\";position:absolute;inset:0;background:var(--si-sys-background-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 + 2 * var(--si-sys-sizing-spacing-y-40))}: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(var(--si-sys-sizing-sizing-100) + 1px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px)) + var(--si-sys-sizing-spacing-y-40) + var(--si-sys-sizing-spacing-y-20));inset-inline-start:calc(240px - calc(1lh + 2 * var(--si-sys-sizing-spacing-y-40)) - var(--si-sys-sizing-spacing-x-40));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 + 2 * var(--si-sys-sizing-spacing-y-40));margin-block-start:var(--si-sys-sizing-spacing-y-60)}:host(.nav-inline-collapse).nav-collapsed .toggle-button{inset-block-start:calc(calc(var(--si-sys-sizing-sizing-100) + 1px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px)) + var(--si-sys-sizing-spacing-y-60));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"] }]
|
|
681
|
+
}], 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), { ...{
|
|
586
682
|
descendants: true
|
|
587
683
|
}, isSignal: true }] }] } });
|
|
588
684
|
|
|
@@ -595,12 +691,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
595
691
|
* We need a component to attach the stylesheet
|
|
596
692
|
*/
|
|
597
693
|
class SiNavbarVerticalNextDividerComponent {
|
|
598
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
599
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
694
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextDividerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
695
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", 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(--si-sys-border-4);margin-block:var(--si-sys-sizing-spacing-y-30);margin-inline:var(--si-sys-sizing-spacing-x-50)}\n"] });
|
|
600
696
|
}
|
|
601
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
697
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextDividerComponent, decorators: [{
|
|
602
698
|
type: Component,
|
|
603
|
-
args: [{ selector: 'si-navbar-vertical-next-divider', template: '',
|
|
699
|
+
args: [{ selector: 'si-navbar-vertical-next-divider', template: '', styles: [":host{display:block;block-size:1px;background-color:var(--si-sys-border-4);margin-block:var(--si-sys-sizing-spacing-y-30);margin-inline:var(--si-sys-sizing-spacing-x-50)}\n"] }]
|
|
604
700
|
}] });
|
|
605
701
|
|
|
606
702
|
/**
|
|
@@ -614,12 +710,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
614
710
|
* @experimental
|
|
615
711
|
*/
|
|
616
712
|
class SiNavbarVerticalNextFooterItemsComponent {
|
|
617
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
618
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
713
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextFooterItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
714
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", 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:var(--si-sys-sizing-spacing-y-40)}:host-context(.nav-collapsed){display:none}@media(min-width:576px){:host-context(:not(.nav-text-only).nav-collapsed){display:block}}\n"] });
|
|
619
715
|
}
|
|
620
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
716
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextFooterItemsComponent, decorators: [{
|
|
621
717
|
type: Component,
|
|
622
|
-
args: [{ selector: 'si-navbar-vertical-next-footer-items', template: '<ng-content />',
|
|
718
|
+
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:var(--si-sys-sizing-spacing-y-40)}:host-context(.nav-collapsed){display:none}@media(min-width:576px){:host-context(:not(.nav-text-only).nav-collapsed){display:block}}\n"] }]
|
|
623
719
|
}] });
|
|
624
720
|
|
|
625
721
|
/**
|
|
@@ -633,7 +729,8 @@ class SiNavbarVerticalNextGroupComponent {
|
|
|
633
729
|
routerLinkActive = inject(RouterLinkActive, { optional: true });
|
|
634
730
|
visible = computed(() => {
|
|
635
731
|
return this.groupTrigger.flyout() || (!this.navbar.collapsed() && this.groupTrigger.expanded());
|
|
636
|
-
},
|
|
732
|
+
}, /* @ts-ignore */
|
|
733
|
+
...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
|
|
637
734
|
constructor() {
|
|
638
735
|
this.routerLinkActive?.isActiveChange
|
|
639
736
|
.pipe(takeUntilDestroyed())
|
|
@@ -642,8 +739,8 @@ class SiNavbarVerticalNextGroupComponent {
|
|
|
642
739
|
close() {
|
|
643
740
|
this.groupTrigger.hideFlyout();
|
|
644
741
|
}
|
|
645
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
646
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
742
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
743
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiNavbarVerticalNextGroupComponent, isStandalone: true, selector: "si-navbar-vertical-next-group", host: { attributes: { "animate.enter": "component-enter" }, listeners: { "keydown.escape": "close()" }, properties: { "attr.role": "groupTrigger.flyout() ? 'dialog' : 'group'", "id": "groupTrigger.groupId", "attr.aria-labelledby": "groupTrigger.id" } }, ngImport: i0, template: `@if (visible()) {
|
|
647
744
|
@let flyout = groupTrigger.flyout();
|
|
648
745
|
<div
|
|
649
746
|
animate.leave="group-leave"
|
|
@@ -656,9 +753,9 @@ class SiNavbarVerticalNextGroupComponent {
|
|
|
656
753
|
<ng-content />
|
|
657
754
|
</div>
|
|
658
755
|
</div>
|
|
659
|
-
}`, 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"] }]
|
|
756
|
+
}`, 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"] }] });
|
|
660
757
|
}
|
|
661
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
758
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextGroupComponent, decorators: [{
|
|
662
759
|
type: Component,
|
|
663
760
|
args: [{ selector: 'si-navbar-vertical-next-group', imports: [CdkTrapFocus], template: `@if (visible()) {
|
|
664
761
|
@let flyout = groupTrigger.flyout();
|
|
@@ -673,8 +770,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
673
770
|
<ng-content />
|
|
674
771
|
</div>
|
|
675
772
|
</div>
|
|
676
|
-
}`,
|
|
677
|
-
role: 'group',
|
|
773
|
+
}`, host: {
|
|
774
|
+
'[attr.role]': "groupTrigger.flyout() ? 'dialog' : 'group'",
|
|
678
775
|
'[id]': 'groupTrigger.groupId',
|
|
679
776
|
'[attr.aria-labelledby]': 'groupTrigger.id',
|
|
680
777
|
'animate.enter': 'component-enter',
|
|
@@ -689,31 +786,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
689
786
|
/** @experimental */
|
|
690
787
|
class SiNavbarVerticalNextHeaderComponent {
|
|
691
788
|
navbar = inject(SI_NAVBAR_VERTICAL_NEXT);
|
|
692
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
693
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
694
|
-
@if (!navbar.collapsed()) {
|
|
789
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
790
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", 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: `
|
|
791
|
+
@if (!navbar.collapsed() || navbar.chipMenuOpen()) {
|
|
695
792
|
<div class="title si-h5 text-secondary text-truncate p-5" animate.leave="title-leave">
|
|
696
793
|
<ng-content />
|
|
697
794
|
</div>
|
|
698
795
|
} @else {
|
|
699
796
|
<si-navbar-vertical-next-divider class="divider" animate.leave="divider-leave" />
|
|
700
797
|
}
|
|
701
|
-
`, 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 +
|
|
798
|
+
`, 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 + 2 * var(--si-sys-sizing-spacing-y-50));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" }] });
|
|
702
799
|
}
|
|
703
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
800
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextHeaderComponent, decorators: [{
|
|
704
801
|
type: Component,
|
|
705
802
|
args: [{ selector: 'si-navbar-vertical-next-header', imports: [SiNavbarVerticalNextDividerComponent], template: `
|
|
706
|
-
@if (!navbar.collapsed()) {
|
|
803
|
+
@if (!navbar.collapsed() || navbar.chipMenuOpen()) {
|
|
707
804
|
<div class="title si-h5 text-secondary text-truncate p-5" animate.leave="title-leave">
|
|
708
805
|
<ng-content />
|
|
709
806
|
</div>
|
|
710
807
|
} @else {
|
|
711
808
|
<si-navbar-vertical-next-divider class="divider" animate.leave="divider-leave" />
|
|
712
809
|
}
|
|
713
|
-
`,
|
|
714
|
-
'[class.collapsed]': 'navbar.collapsed()',
|
|
810
|
+
`, host: {
|
|
811
|
+
'[class.collapsed]': 'navbar.collapsed() && !navbar.chipMenuOpen()',
|
|
812
|
+
'[class.chip-mode]': 'navbar.chipMode()',
|
|
715
813
|
'animate.enter': 'component-enter'
|
|
716
|
-
}, 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 +
|
|
814
|
+
}, 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 + 2 * var(--si-sys-sizing-spacing-y-50));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"] }]
|
|
717
815
|
}] });
|
|
718
816
|
|
|
719
817
|
/**
|
|
@@ -728,89 +826,36 @@ class SiNavbarVerticalNextSearchComponent {
|
|
|
728
826
|
*
|
|
729
827
|
* @defaultValue
|
|
730
828
|
* ```
|
|
731
|
-
* t(() => $localize`:@@SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER:Search
|
|
829
|
+
* t(() => $localize`:@@SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER:Search…`)
|
|
732
830
|
* ```
|
|
733
831
|
*/
|
|
734
|
-
placeholder = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER:Search
|
|
832
|
+
placeholder = input(t(() => $localize `:@@SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER:Search…`), /* @ts-ignore */
|
|
833
|
+
...(ngDevMode ? [{ debugName: "placeholder" }] : /* istanbul ignore next */ []));
|
|
735
834
|
/**
|
|
736
835
|
* Debounce time for the search input
|
|
737
836
|
* @defaultValue 400
|
|
738
837
|
*/
|
|
739
|
-
debounceTime = input(400,
|
|
838
|
+
debounceTime = input(400, /* @ts-ignore */
|
|
839
|
+
...(ngDevMode ? [{ debugName: "debounceTime" }] : /* istanbul ignore next */ []));
|
|
740
840
|
/**
|
|
741
841
|
* Output for search bar input
|
|
742
842
|
*/
|
|
743
843
|
searchChange = output();
|
|
744
844
|
navbar = inject(SI_NAVBAR_VERTICAL_NEXT);
|
|
745
|
-
searchBar = viewChild.required(SiSearchBarComponent
|
|
845
|
+
searchBar = viewChild.required(SiSearchBarComponent, /* @ts-ignore */
|
|
846
|
+
...(ngDevMode ? [{ debugName: "searchBar" }] : /* istanbul ignore next */ []));
|
|
746
847
|
expandForSearch() {
|
|
747
848
|
this.navbar.expand();
|
|
748
849
|
setTimeout(() => this.searchBar().focus());
|
|
749
850
|
}
|
|
750
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
751
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
851
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
852
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.8", 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 background-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:var(--si-sys-sizing-spacing-y-40);padding-block:var(--si-sys-sizing-spacing-y-20);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:var(--si-sys-sizing-sizing-80);inline-size:calc(1.5rem + 2 * var(--si-sys-sizing-spacing-x-20));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", "value", "readonly", "colorVariant", "disabled", "maxlength", "clearButtonAriaLabel"], outputs: ["searchChange"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
|
|
752
853
|
}
|
|
753
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
854
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiNavbarVerticalNextSearchComponent, decorators: [{
|
|
754
855
|
type: Component,
|
|
755
|
-
args: [{ selector: 'si-navbar-vertical-next-search', imports: [SiIconComponent, SiSearchBarComponent, SiTranslatePipe],
|
|
856
|
+
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 background-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:var(--si-sys-sizing-spacing-y-40);padding-block:var(--si-sys-sizing-spacing-y-20);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:var(--si-sys-sizing-sizing-80);inline-size:calc(1.5rem + 2 * var(--si-sys-sizing-spacing-x-20));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"] }]
|
|
756
857
|
}], 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 }] }] } });
|
|
757
858
|
|
|
758
|
-
/**
|
|
759
|
-
* Copyright (c) Siemens 2016 - 2026
|
|
760
|
-
* SPDX-License-Identifier: MIT
|
|
761
|
-
*/
|
|
762
|
-
/** @experimental */
|
|
763
|
-
class SiNavbarVerticalNextModule {
|
|
764
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiNavbarVerticalNextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
765
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: SiNavbarVerticalNextModule, imports: [SiNavbarVerticalNextComponent,
|
|
766
|
-
SiNavbarVerticalNextDividerComponent,
|
|
767
|
-
SiNavbarVerticalNextFooterItemsComponent,
|
|
768
|
-
SiNavbarVerticalNextGroupComponent,
|
|
769
|
-
SiNavbarVerticalNextGroupTriggerDirective,
|
|
770
|
-
SiNavbarVerticalNextHeaderComponent,
|
|
771
|
-
SiNavbarVerticalNextItemComponent,
|
|
772
|
-
SiNavbarVerticalNextItemsComponent,
|
|
773
|
-
SiNavbarVerticalNextSearchComponent], exports: [SiNavbarVerticalNextComponent,
|
|
774
|
-
SiNavbarVerticalNextDividerComponent,
|
|
775
|
-
SiNavbarVerticalNextFooterItemsComponent,
|
|
776
|
-
SiNavbarVerticalNextGroupComponent,
|
|
777
|
-
SiNavbarVerticalNextGroupTriggerDirective,
|
|
778
|
-
SiNavbarVerticalNextHeaderComponent,
|
|
779
|
-
SiNavbarVerticalNextItemComponent,
|
|
780
|
-
SiNavbarVerticalNextItemsComponent,
|
|
781
|
-
SiNavbarVerticalNextSearchComponent] });
|
|
782
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiNavbarVerticalNextModule, imports: [SiNavbarVerticalNextComponent,
|
|
783
|
-
SiNavbarVerticalNextItemComponent,
|
|
784
|
-
SiNavbarVerticalNextSearchComponent] });
|
|
785
|
-
}
|
|
786
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiNavbarVerticalNextModule, decorators: [{
|
|
787
|
-
type: NgModule,
|
|
788
|
-
args: [{
|
|
789
|
-
imports: [
|
|
790
|
-
SiNavbarVerticalNextComponent,
|
|
791
|
-
SiNavbarVerticalNextDividerComponent,
|
|
792
|
-
SiNavbarVerticalNextFooterItemsComponent,
|
|
793
|
-
SiNavbarVerticalNextGroupComponent,
|
|
794
|
-
SiNavbarVerticalNextGroupTriggerDirective,
|
|
795
|
-
SiNavbarVerticalNextHeaderComponent,
|
|
796
|
-
SiNavbarVerticalNextItemComponent,
|
|
797
|
-
SiNavbarVerticalNextItemsComponent,
|
|
798
|
-
SiNavbarVerticalNextSearchComponent
|
|
799
|
-
],
|
|
800
|
-
exports: [
|
|
801
|
-
SiNavbarVerticalNextComponent,
|
|
802
|
-
SiNavbarVerticalNextDividerComponent,
|
|
803
|
-
SiNavbarVerticalNextFooterItemsComponent,
|
|
804
|
-
SiNavbarVerticalNextGroupComponent,
|
|
805
|
-
SiNavbarVerticalNextGroupTriggerDirective,
|
|
806
|
-
SiNavbarVerticalNextHeaderComponent,
|
|
807
|
-
SiNavbarVerticalNextItemComponent,
|
|
808
|
-
SiNavbarVerticalNextItemsComponent,
|
|
809
|
-
SiNavbarVerticalNextSearchComponent
|
|
810
|
-
]
|
|
811
|
-
}]
|
|
812
|
-
}] });
|
|
813
|
-
|
|
814
859
|
/**
|
|
815
860
|
* Copyright (c) Siemens 2016 - 2026
|
|
816
861
|
* SPDX-License-Identifier: MIT
|
|
@@ -820,5 +865,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
820
865
|
* Generated bundle index. Do not edit.
|
|
821
866
|
*/
|
|
822
867
|
|
|
823
|
-
export { SiNavbarVerticalNextComponent, SiNavbarVerticalNextDividerComponent, SiNavbarVerticalNextFooterItemsComponent, SiNavbarVerticalNextGroupComponent, SiNavbarVerticalNextGroupTriggerDirective, SiNavbarVerticalNextHeaderComponent, SiNavbarVerticalNextItemComponent, SiNavbarVerticalNextItemsComponent,
|
|
868
|
+
export { SiNavbarVerticalNextChipMenuComponent, SiNavbarVerticalNextComponent, SiNavbarVerticalNextDividerComponent, SiNavbarVerticalNextFooterItemsComponent, SiNavbarVerticalNextGroupComponent, SiNavbarVerticalNextGroupTriggerDirective, SiNavbarVerticalNextHeaderComponent, SiNavbarVerticalNextItemComponent, SiNavbarVerticalNextItemsComponent, SiNavbarVerticalNextSearchComponent };
|
|
824
869
|
//# sourceMappingURL=siemens-element-ng-navbar-vertical-next.mjs.map
|