@siemens/element-ng 49.13.0 → 51.0.0-rc.3
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 +56 -39
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-action-modal.mjs +81 -51
- package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ag-grid.mjs +15 -12
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +142 -137
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +34 -28
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-autocomplete.mjs +27 -22
- package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs +31 -21
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-badge.mjs +9 -8
- package/fesm2022/siemens-element-ng-badge.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +17 -14
- package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +18 -15
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +71 -46
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-carousel.mjs +55 -32
- package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs +175 -111
- package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs +37 -24
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-color-picker.mjs +24 -16
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +52 -33
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +12 -12
- package/fesm2022/siemens-element-ng-connection-strength.mjs +14 -12
- package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +35 -26
- 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 +327 -213
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs +8 -8
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +119 -72
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +358 -234
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-electron-titlebar.mjs +21 -16
- 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 +93 -81
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filter-bar.mjs +29 -22
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +243 -147
- 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 +267 -84
- 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 +220 -315
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +38 -29
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-help-button.mjs +5 -5
- package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs +46 -47
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-info-page.mjs +17 -11
- package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-inline-notification.mjs +19 -14
- package/fesm2022/siemens-element-ng-inline-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ip-input.mjs +19 -15
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-landing-page.mjs +118 -72
- 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 +73 -54
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +42 -33
- 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 +46 -29
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs +6 -5
- package/fesm2022/siemens-element-ng-markdown-renderer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs +56 -48
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-modal.mjs +12 -10
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +133 -94
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +117 -81
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +67 -41
- 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 +38 -27
- 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 +31 -22
- package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-password-toggle.mjs +18 -13
- package/fesm2022/siemens-element-ng-password-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs +121 -138
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +76 -45
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +63 -58
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs +43 -28
- package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +33 -26
- 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 +32 -24
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +212 -154
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-shadow-root.mjs +3 -3
- package/fesm2022/siemens-element-ng-side-panel.mjs +119 -75
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs +14 -13
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-slider.mjs +42 -28
- package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs +268 -254
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +57 -47
- 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 +22 -14
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-chip.mjs +25 -16
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-widget.mjs +27 -17
- package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-system-banner.mjs +11 -8
- package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs +16 -15
- package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +59 -45
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-theme.mjs +5 -4
- package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +59 -40
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +45 -40
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +52 -54
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs +28 -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 +92 -73
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +75 -67
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +72 -48
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/formly-legacy/package.json +4 -0
- package/package.json +20 -22
- package/schematics/migration.json +4 -4
- package/schematics/migrations/data/class-member-replacement.js +1 -19
- package/schematics/migrations/data/component-property-names.js +1 -25
- package/schematics/migrations/data/element-class-changes.js +1 -28
- package/schematics/migrations/data/element-migration-data.js +2 -0
- package/schematics/migrations/data/element-selectors.js +1 -11
- package/schematics/migrations/data/index.js +0 -4
- package/schematics/migrations/data/migration-test-data.js +9 -6
- package/schematics/migrations/data/provider-function-removals.js +7 -0
- package/schematics/migrations/data/symbol-removals.js +7 -7
- package/schematics/migrations/data/symbol-renaming.js +1 -48
- package/schematics/migrations/element-migration/element-migration.js +3 -6
- package/schematics/migrations/utilities/import-removal.js +39 -0
- package/schematics/migrations/utilities/index.js +2 -0
- package/schematics/migrations/utilities/provider-function-removal.migration.js +116 -0
- package/schematics/ng-update/index.js +1 -1
- package/schematics/ng-update/{migrate-to-v49.js → migrate-to-v51.js} +2 -2
- package/template-i18n.json +3 -6
- package/types/siemens-element-ng-application-header.d.ts +1 -21
- package/types/siemens-element-ng-chat-messages.d.ts +6 -4
- package/types/siemens-element-ng-circle-status.d.ts +1 -1
- package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
- package/types/siemens-element-ng-datepicker.d.ts +1 -12
- package/types/siemens-element-ng-file-uploader.d.ts +5 -23
- package/types/siemens-element-ng-filtered-search.d.ts +1 -1
- package/types/siemens-element-ng-form.d.ts +134 -37
- 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-navbar-vertical-next.d.ts +6 -1
- package/types/siemens-element-ng-notification-item.d.ts +12 -0
- package/types/siemens-element-ng-phone-number.d.ts +5 -8
- package/types/siemens-element-ng-resize-observer.d.ts +0 -17
- package/types/siemens-element-ng-split.d.ts +95 -63
- 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-toast-notification.d.ts +0 -1
- package/types/siemens-element-ng-translate.d.ts +1 -5
- package/fesm2022/siemens-element-ng-icon-status.mjs +0 -46
- package/fesm2022/siemens-element-ng-icon-status.mjs.map +0 -1
- package/fesm2022/siemens-element-ng-sort-bar.mjs +0 -99
- package/fesm2022/siemens-element-ng-sort-bar.mjs.map +0 -1
- package/icon-status/package.json +0 -4
- package/schematics/vitest-setup.js +0 -5
- package/sort-bar/package.json +0 -4
- package/types/siemens-element-ng-icon-status.d.ts +0 -25
- package/types/siemens-element-ng-sort-bar.d.ts +0 -59
- /package/{LICENSE.md → LICENSE} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-auto-collapsable-list.mjs","sources":["../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-measurable.class.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-item.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-additional-content.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-overflow-item.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list.module.ts","../../../../projects/element-ng/auto-collapsable-list/index.ts","../../../../projects/element-ng/auto-collapsable-list/siemens-element-ng-auto-collapsable-list.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, ElementRef, inject } from '@angular/core';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs/operators';\n\n@Directive()\nexport class SiAutoCollapsableListMeasurable {\n protected readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly resizeObserverService = inject(ResizeObserverService);\n\n /**\n * Emits on element width changes.\n *\n * @defaultValue\n * ```\n * this.resizeObserverService\n * .observe(this.elementRef.nativeElement, 0, true, true)\n * .pipe(\n * map(size => size.width),\n * distinctUntilChanged(),\n * shareReplay(1)\n * )\n * ```\n */\n size$ = this.resizeObserverService.observe(this.elementRef.nativeElement, 0, true, true).pipe(\n map(size => size.width),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { AfterViewInit, booleanAttribute, computed, Directive, input, signal } from '@angular/core';\n\nimport { SiAutoCollapsableListMeasurable } from './si-auto-collapsable-list-measurable.class';\n\n@Directive({\n selector: '[siAutoCollapsableListItem]',\n host: {\n '[style.visibility]': 'isVisible() ? \"visible\" : \"hidden\"',\n '[style.position]': 'isVisible() ? \"\" : \"absolute\"',\n // Ensure hidden items are behind the visible ones. Otherwise, the visible ones are not clickable\n '[style.z-index]': 'isVisible() ? \"\" : \"-1\"'\n },\n exportAs: 'siAutoCollapsableListItem'\n})\nexport class SiAutoCollapsableListItemDirective\n extends SiAutoCollapsableListMeasurable\n implements AfterViewInit\n{\n /**\n * Hide this item even if enough space is available.\n * When calculating the overall available size, this item is still considered when forceHide=true\n *\n * @defaultValue false\n */\n readonly forceHide = input(false, { transform: booleanAttribute });\n\n /**\n * True if enough space is available for this item.\n *\n * @defaultValue false\n */\n readonly canBeVisible = signal<boolean>(false);\n\n /**\n * True if this item is actually visible to the user\n */\n readonly isVisible = computed(() => this.canBeVisible() && !this.forceHide());\n\n ngAfterViewInit(): void {\n if (getComputedStyle(this.elementRef.nativeElement).display === 'inline') {\n console.error('siAutoCollapsibleListItem does not work on items with display=\"inline\"');\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SiAutoCollapsableListMeasurable } from './si-auto-collapsable-list-measurable.class';\n\n@Directive({\n selector: '[siAutoCollapsableListAdditionalContent]'\n})\nexport class SiAutoCollapsableListAdditionalContentDirective extends SiAutoCollapsableListMeasurable {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SiAutoCollapsableListItemDirective } from './si-auto-collapsable-list-item.directive';\n\n@Directive({\n selector: '[siAutoCollapsableListOverflowItem]',\n exportAs: 'siAutoCollapsableListOverflowItem'\n})\nexport class SiAutoCollapsableListOverflowItemDirective extends SiAutoCollapsableListItemDirective {\n /**\n * Number of hidden items.\n *\n * @defaultValue 0\n */\n hiddenItemCount = 0;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n contentChild,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n INJECTOR,\n input,\n OnChanges,\n OnDestroy,\n SimpleChanges\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\nimport { BehaviorSubject, combineLatest, of, Subscription } from 'rxjs';\nimport { auditTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators';\n\nimport { SiAutoCollapsableListAdditionalContentDirective } from './si-auto-collapsable-list-additional-content.directive';\nimport { SiAutoCollapsableListItemDirective } from './si-auto-collapsable-list-item.directive';\nimport { SiAutoCollapsableListOverflowItemDirective } from './si-auto-collapsable-list-overflow-item.directive';\n\n@Directive({\n selector: '[siAutoCollapsableList]',\n host: {\n style: 'position: relative',\n '[style.overflow]': 'siAutoCollapsableList() ? \"hidden\" : \"\"'\n },\n exportAs: 'siAutoCollapsableList'\n})\nexport class SiAutoCollapsableListDirective implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * The items which are displayed in the siAutoCollapsableList.\n */\n readonly items = contentChildren(SiAutoCollapsableListItemDirective);\n\n private readonly overflowItem = contentChild(SiAutoCollapsableListOverflowItemDirective);\n\n private readonly additionalContent = contentChildren(\n SiAutoCollapsableListAdditionalContentDirective\n );\n\n /** @defaultValue true */\n readonly siAutoCollapsableList = input(true, { transform: booleanAttribute });\n\n /**\n * The (flex) gap in pixels, will automatically be set if a pixel value is used in CSS.\n */\n readonly gap = input<number>();\n\n /**\n * The element which size is available for the content of the siAutoCollapsableList.\n *\n * @defaultValue undefined\n */\n readonly containerElement = input<HTMLElement | undefined | null>(undefined, {\n alias: 'siAutoCollapsableListContainerElement'\n });\n\n private resizeSubscription?: Subscription;\n private disableInitSubscription?: Subscription;\n private readonly elementRef = inject(ElementRef);\n private readonly resizeObserverService = inject(ResizeObserverService);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly containerElementSubject = new BehaviorSubject<HTMLElement | null>(\n this.elementRef.nativeElement\n );\n\n /**\n * The same as {@link gap}, but automatically read from the computed styles.\n * Used if not set by user.\n */\n private computedGap = 0;\n private injector = inject(INJECTOR);\n\n ngAfterViewInit(): void {\n if (this.siAutoCollapsableList()) {\n this.readGapSize();\n this.setupResizeListener();\n } else {\n this.reset();\n }\n }\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.siAutoCollapsableList) {\n const siAutoCollapsableList = this.siAutoCollapsableList();\n if (!siAutoCollapsableList && this.resizeSubscription) {\n this.reset();\n } else if (siAutoCollapsableList && !this.resizeSubscription && this.items()) {\n this.setupResizeListener();\n }\n }\n\n if (changes.containerElement) {\n this.containerElementSubject.next(this.containerElement() ?? this.elementRef.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.resizeSubscription?.unsubscribe();\n this.disableInitSubscription?.unsubscribe();\n this.containerElementSubject.complete();\n }\n\n private setupResizeListener(): void {\n this.disableInitSubscription?.unsubscribe();\n const containerSize$ = this.containerElementSubject.pipe(\n switchMap(element => this.resizeObserverService.observe(element!, 0, true, true)),\n map(size => size.width),\n distinctUntilChanged(),\n map(size => {\n const { paddingInlineStart, paddingInlineEnd } = getComputedStyle(\n this.containerElement() ?? this.elementRef.nativeElement\n );\n return size - parseFloat(paddingInlineStart) - parseFloat(paddingInlineEnd);\n })\n );\n\n const itemSizes$ = toObservable(this.items, { injector: this.injector }).pipe(\n startWith(this.items()),\n switchMap(items =>\n !items.length\n ? of([])\n : combineLatest(\n items.map(item =>\n item.size$.pipe(\n map(size => ({\n size,\n directive: item\n }))\n )\n )\n )\n )\n );\n const additionalContentSizes$ = toObservable(this.additionalContent, {\n injector: this.injector\n }).pipe(\n startWith(this.additionalContent()),\n switchMap(additionalContent => combineLatest(additionalContent.map(item => item.size$))),\n startWith([])\n );\n\n this.resizeSubscription = combineLatest([\n containerSize$,\n this.overflowItem()?.size$ ?? of(0),\n itemSizes$,\n additionalContentSizes$\n ])\n .pipe(auditTime(0))\n .subscribe(([containerSize, overflowItemSize, items, additionalContentSizes]) =>\n this.updateItemVisibility(containerSize, overflowItemSize, items, additionalContentSizes)\n );\n }\n\n private updateItemVisibility(\n containerSize: number,\n overflowItemSize: number,\n items: { size: number; directive: SiAutoCollapsableListItemDirective }[],\n additionalContent: number[]\n ): void {\n let remainingSpace = containerSize - additionalContent.reduce((a, b) => a + b, 0);\n\n const itemsRemaining = items.slice();\n\n const gap = this.gap() ?? this.computedGap;\n\n while (remainingSpace > 0 && itemsRemaining.length) {\n const item = itemsRemaining.shift()!;\n if (remainingSpace - item.size - gap - overflowItemSize >= 0) {\n // There is space for the item and an overflow item.\n item.directive.canBeVisible.set(true);\n remainingSpace -= item.size + gap;\n } else if (\n !itemsRemaining.length &&\n (remainingSpace - item.size >= 0 || overflowItemSize >= item.size)\n ) {\n // There are no other items remaining and there is enough space or the overflow item is biggger than the current one.\n item.directive.canBeVisible.set(true);\n remainingSpace = 0;\n } else {\n // There is no space for the item.\n remainingSpace = 0;\n item.directive.canBeVisible.set(false);\n }\n }\n itemsRemaining.forEach(item => item.directive.canBeVisible.set(false));\n\n const overflowItem = this.overflowItem();\n if (overflowItem) {\n overflowItem.hiddenItemCount = this.items().filter(item => !item.canBeVisible()).length;\n overflowItem.canBeVisible.set(overflowItem.hiddenItemCount !== 0);\n }\n this.changeDetectorRef.markForCheck();\n }\n\n private reset(): void {\n this.resizeSubscription?.unsubscribe();\n this.resizeSubscription = undefined;\n this.disableInitSubscription = toObservable(this.items, { injector: this.injector }).subscribe(\n items =>\n queueMicrotask(() => {\n items.forEach(item => item.canBeVisible.set(true));\n })\n );\n\n const overflowItem = this.overflowItem();\n if (overflowItem) {\n queueMicrotask(() => {\n overflowItem!.canBeVisible.set(false);\n overflowItem!.hiddenItemCount = 0;\n });\n }\n }\n\n private readGapSize(): void {\n const { gap } = getComputedStyle(this.containerElement() ?? this.elementRef.nativeElement);\n if (gap.endsWith('px') || gap === '0') {\n this.computedGap = parseFloat(gap);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiAutoCollapsableListAdditionalContentDirective } from './si-auto-collapsable-list-additional-content.directive';\nimport { SiAutoCollapsableListItemDirective } from './si-auto-collapsable-list-item.directive';\nimport { SiAutoCollapsableListOverflowItemDirective } from './si-auto-collapsable-list-overflow-item.directive';\nimport { SiAutoCollapsableListDirective } from './si-auto-collapsable-list.directive';\n\n@NgModule({\n imports: [\n SiAutoCollapsableListAdditionalContentDirective,\n SiAutoCollapsableListDirective,\n SiAutoCollapsableListItemDirective,\n SiAutoCollapsableListOverflowItemDirective\n ],\n exports: [\n SiAutoCollapsableListAdditionalContentDirective,\n SiAutoCollapsableListDirective,\n SiAutoCollapsableListItemDirective,\n SiAutoCollapsableListOverflowItemDirective\n ]\n})\nexport class SiAutoCollapsableListModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-auto-collapsable-list-item.directive';\nexport * from './si-auto-collapsable-list.directive';\nexport * from './si-auto-collapsable-list-overflow-item.directive';\nexport * from './si-auto-collapsable-list-measurable.class';\nexport * from './si-auto-collapsable-list-additional-content.directive';\nexport * from './si-auto-collapsable-list.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-auto-collapsable-list.mjs","sources":["../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-measurable.class.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-item.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-additional-content.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-overflow-item.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list.module.ts","../../../../projects/element-ng/auto-collapsable-list/index.ts","../../../../projects/element-ng/auto-collapsable-list/siemens-element-ng-auto-collapsable-list.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, ElementRef, inject } from '@angular/core';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs/operators';\n\n@Directive()\nexport class SiAutoCollapsableListMeasurable {\n protected readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly resizeObserverService = inject(ResizeObserverService);\n\n /**\n * Emits on element width changes.\n *\n * @defaultValue\n * ```\n * this.resizeObserverService\n * .observe(this.elementRef.nativeElement, 0, true, true)\n * .pipe(\n * map(size => size.width),\n * distinctUntilChanged(),\n * shareReplay(1)\n * )\n * ```\n */\n size$ = this.resizeObserverService.observe(this.elementRef.nativeElement, 0, true, true).pipe(\n map(size => size.width),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { AfterViewInit, booleanAttribute, computed, Directive, input, signal } from '@angular/core';\n\nimport { SiAutoCollapsableListMeasurable } from './si-auto-collapsable-list-measurable.class';\n\n@Directive({\n selector: '[siAutoCollapsableListItem]',\n host: {\n '[style.visibility]': 'isVisible() ? \"visible\" : \"hidden\"',\n '[style.position]': 'isVisible() ? \"\" : \"absolute\"',\n // Ensure hidden items are behind the visible ones. Otherwise, the visible ones are not clickable\n '[style.z-index]': 'isVisible() ? \"\" : \"-1\"'\n },\n exportAs: 'siAutoCollapsableListItem'\n})\nexport class SiAutoCollapsableListItemDirective\n extends SiAutoCollapsableListMeasurable\n implements AfterViewInit\n{\n /**\n * Hide this item even if enough space is available.\n * When calculating the overall available size, this item is still considered when forceHide=true\n *\n * @defaultValue false\n */\n readonly forceHide = input(false, { transform: booleanAttribute });\n\n /**\n * True if enough space is available for this item.\n *\n * @defaultValue false\n */\n readonly canBeVisible = signal<boolean>(false);\n\n /**\n * True if this item is actually visible to the user\n */\n readonly isVisible = computed(() => this.canBeVisible() && !this.forceHide());\n\n ngAfterViewInit(): void {\n if (getComputedStyle(this.elementRef.nativeElement).display === 'inline') {\n console.error('siAutoCollapsibleListItem does not work on items with display=\"inline\"');\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SiAutoCollapsableListMeasurable } from './si-auto-collapsable-list-measurable.class';\n\n@Directive({\n selector: '[siAutoCollapsableListAdditionalContent]'\n})\nexport class SiAutoCollapsableListAdditionalContentDirective extends SiAutoCollapsableListMeasurable {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SiAutoCollapsableListItemDirective } from './si-auto-collapsable-list-item.directive';\n\n@Directive({\n selector: '[siAutoCollapsableListOverflowItem]',\n exportAs: 'siAutoCollapsableListOverflowItem'\n})\nexport class SiAutoCollapsableListOverflowItemDirective extends SiAutoCollapsableListItemDirective {\n /**\n * Number of hidden items.\n *\n * @defaultValue 0\n */\n hiddenItemCount = 0;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n contentChild,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n INJECTOR,\n input,\n OnChanges,\n OnDestroy,\n SimpleChanges\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\nimport { BehaviorSubject, combineLatest, of, Subscription } from 'rxjs';\nimport { auditTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators';\n\nimport { SiAutoCollapsableListAdditionalContentDirective } from './si-auto-collapsable-list-additional-content.directive';\nimport { SiAutoCollapsableListItemDirective } from './si-auto-collapsable-list-item.directive';\nimport { SiAutoCollapsableListOverflowItemDirective } from './si-auto-collapsable-list-overflow-item.directive';\n\n@Directive({\n selector: '[siAutoCollapsableList]',\n host: {\n style: 'position: relative',\n '[style.overflow]': 'siAutoCollapsableList() ? \"hidden\" : \"\"'\n },\n exportAs: 'siAutoCollapsableList'\n})\nexport class SiAutoCollapsableListDirective implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * The items which are displayed in the siAutoCollapsableList.\n */\n readonly items = contentChildren(SiAutoCollapsableListItemDirective);\n\n private readonly overflowItem = contentChild(SiAutoCollapsableListOverflowItemDirective);\n\n private readonly additionalContent = contentChildren(\n SiAutoCollapsableListAdditionalContentDirective\n );\n\n /** @defaultValue true */\n readonly siAutoCollapsableList = input(true, { transform: booleanAttribute });\n\n /**\n * The (flex) gap in pixels, will automatically be set if a pixel value is used in CSS.\n */\n readonly gap = input<number>();\n\n /**\n * The element which size is available for the content of the siAutoCollapsableList.\n *\n * @defaultValue undefined\n */\n readonly containerElement = input<HTMLElement | undefined | null>(undefined, {\n alias: 'siAutoCollapsableListContainerElement'\n });\n\n private resizeSubscription?: Subscription;\n private disableInitSubscription?: Subscription;\n private readonly elementRef = inject(ElementRef);\n private readonly resizeObserverService = inject(ResizeObserverService);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly containerElementSubject = new BehaviorSubject<HTMLElement | null>(\n this.elementRef.nativeElement\n );\n\n /**\n * The same as {@link gap}, but automatically read from the computed styles.\n * Used if not set by user.\n */\n private computedGap = 0;\n private injector = inject(INJECTOR);\n\n ngAfterViewInit(): void {\n if (this.siAutoCollapsableList()) {\n this.readGapSize();\n this.setupResizeListener();\n } else {\n this.reset();\n }\n }\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.siAutoCollapsableList) {\n const siAutoCollapsableList = this.siAutoCollapsableList();\n if (!siAutoCollapsableList && this.resizeSubscription) {\n this.reset();\n } else if (siAutoCollapsableList && !this.resizeSubscription && this.items()) {\n this.setupResizeListener();\n }\n }\n\n if (changes.containerElement) {\n this.containerElementSubject.next(this.containerElement() ?? this.elementRef.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.resizeSubscription?.unsubscribe();\n this.disableInitSubscription?.unsubscribe();\n this.containerElementSubject.complete();\n }\n\n private setupResizeListener(): void {\n this.disableInitSubscription?.unsubscribe();\n const containerSize$ = this.containerElementSubject.pipe(\n switchMap(element => this.resizeObserverService.observe(element!, 0, true, true)),\n map(size => size.width),\n distinctUntilChanged(),\n map(size => {\n const { paddingInlineStart, paddingInlineEnd } = getComputedStyle(\n this.containerElement() ?? this.elementRef.nativeElement\n );\n return size - parseFloat(paddingInlineStart) - parseFloat(paddingInlineEnd);\n })\n );\n\n const itemSizes$ = toObservable(this.items, { injector: this.injector }).pipe(\n startWith(this.items()),\n switchMap(items =>\n !items.length\n ? of([])\n : combineLatest(\n items.map(item =>\n item.size$.pipe(\n map(size => ({\n size,\n directive: item\n }))\n )\n )\n )\n )\n );\n const additionalContentSizes$ = toObservable(this.additionalContent, {\n injector: this.injector\n }).pipe(\n startWith(this.additionalContent()),\n switchMap(additionalContent => combineLatest(additionalContent.map(item => item.size$))),\n startWith([])\n );\n\n this.resizeSubscription = combineLatest([\n containerSize$,\n this.overflowItem()?.size$ ?? of(0),\n itemSizes$,\n additionalContentSizes$\n ])\n .pipe(auditTime(0))\n .subscribe(([containerSize, overflowItemSize, items, additionalContentSizes]) =>\n this.updateItemVisibility(containerSize, overflowItemSize, items, additionalContentSizes)\n );\n }\n\n private updateItemVisibility(\n containerSize: number,\n overflowItemSize: number,\n items: { size: number; directive: SiAutoCollapsableListItemDirective }[],\n additionalContent: number[]\n ): void {\n let remainingSpace = containerSize - additionalContent.reduce((a, b) => a + b, 0);\n\n const itemsRemaining = items.slice();\n\n const gap = this.gap() ?? this.computedGap;\n\n while (remainingSpace > 0 && itemsRemaining.length) {\n const item = itemsRemaining.shift()!;\n if (remainingSpace - item.size - gap - overflowItemSize >= 0) {\n // There is space for the item and an overflow item.\n item.directive.canBeVisible.set(true);\n remainingSpace -= item.size + gap;\n } else if (\n !itemsRemaining.length &&\n (remainingSpace - item.size >= 0 || overflowItemSize >= item.size)\n ) {\n // There are no other items remaining and there is enough space or the overflow item is biggger than the current one.\n item.directive.canBeVisible.set(true);\n remainingSpace = 0;\n } else {\n // There is no space for the item.\n remainingSpace = 0;\n item.directive.canBeVisible.set(false);\n }\n }\n itemsRemaining.forEach(item => item.directive.canBeVisible.set(false));\n\n const overflowItem = this.overflowItem();\n if (overflowItem) {\n overflowItem.hiddenItemCount = this.items().filter(item => !item.canBeVisible()).length;\n overflowItem.canBeVisible.set(overflowItem.hiddenItemCount !== 0);\n }\n this.changeDetectorRef.markForCheck();\n }\n\n private reset(): void {\n this.resizeSubscription?.unsubscribe();\n this.resizeSubscription = undefined;\n this.disableInitSubscription = toObservable(this.items, { injector: this.injector }).subscribe(\n items =>\n queueMicrotask(() => {\n items.forEach(item => item.canBeVisible.set(true));\n })\n );\n\n const overflowItem = this.overflowItem();\n if (overflowItem) {\n queueMicrotask(() => {\n overflowItem!.canBeVisible.set(false);\n overflowItem!.hiddenItemCount = 0;\n });\n }\n }\n\n private readGapSize(): void {\n const { gap } = getComputedStyle(this.containerElement() ?? this.elementRef.nativeElement);\n if (gap.endsWith('px') || gap === '0') {\n this.computedGap = parseFloat(gap);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiAutoCollapsableListAdditionalContentDirective } from './si-auto-collapsable-list-additional-content.directive';\nimport { SiAutoCollapsableListItemDirective } from './si-auto-collapsable-list-item.directive';\nimport { SiAutoCollapsableListOverflowItemDirective } from './si-auto-collapsable-list-overflow-item.directive';\nimport { SiAutoCollapsableListDirective } from './si-auto-collapsable-list.directive';\n\n@NgModule({\n imports: [\n SiAutoCollapsableListAdditionalContentDirective,\n SiAutoCollapsableListDirective,\n SiAutoCollapsableListItemDirective,\n SiAutoCollapsableListOverflowItemDirective\n ],\n exports: [\n SiAutoCollapsableListAdditionalContentDirective,\n SiAutoCollapsableListDirective,\n SiAutoCollapsableListItemDirective,\n SiAutoCollapsableListOverflowItemDirective\n ]\n})\nexport class SiAutoCollapsableListModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-auto-collapsable-list-item.directive';\nexport * from './si-auto-collapsable-list.directive';\nexport * from './si-auto-collapsable-list-overflow-item.directive';\nexport * from './si-auto-collapsable-list-measurable.class';\nexport * from './si-auto-collapsable-list-additional-content.directive';\nexport * from './si-auto-collapsable-list.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -18,16 +18,18 @@ class SiAutocompleteOptionDirective {
|
|
|
18
18
|
* `__si-autocomplete-option-${SiAutocompleteOptionDirective.idCounter++}`
|
|
19
19
|
* ```
|
|
20
20
|
*/
|
|
21
|
-
id = input(`__si-autocomplete-option-${SiAutocompleteOptionDirective.idCounter++}`,
|
|
21
|
+
id = input(`__si-autocomplete-option-${SiAutocompleteOptionDirective.idCounter++}`, /* @ts-ignore */
|
|
22
|
+
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
22
23
|
/** @defaultValue false */
|
|
23
24
|
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
24
|
-
disabledInput = input(false, { ...(ngDevMode ? { debugName: "disabledInput" } : {}), alias: 'disabled', transform: booleanAttribute });
|
|
25
|
+
disabledInput = input(false, { ...(ngDevMode ? { debugName: "disabledInput" } : /* istanbul ignore next */ {}), alias: 'disabled', transform: booleanAttribute });
|
|
25
26
|
get disabled() {
|
|
26
27
|
return this.disabledInput();
|
|
27
28
|
}
|
|
28
29
|
/** @defaultValue undefined */
|
|
29
|
-
value = input(undefined, { ...(ngDevMode ? { debugName: "value" } : {}), alias: 'siAutocompleteOption' });
|
|
30
|
-
active = signal(false,
|
|
30
|
+
value = input(undefined, { ...(ngDevMode ? { debugName: "value" } : /* istanbul ignore next */ {}), alias: 'siAutocompleteOption' });
|
|
31
|
+
active = signal(false, /* @ts-ignore */
|
|
32
|
+
...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
|
|
31
33
|
click() {
|
|
32
34
|
this.parent.siAutocompleteOptionSubmitted.emit(this.value());
|
|
33
35
|
}
|
|
@@ -40,10 +42,10 @@ class SiAutocompleteOptionDirective {
|
|
|
40
42
|
setInactiveStyles() {
|
|
41
43
|
this.active.set(false);
|
|
42
44
|
}
|
|
43
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
44
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
45
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiAutocompleteOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
46
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.5", type: SiAutocompleteOptionDirective, isStandalone: true, selector: "[siAutocompleteOption]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, disabledInput: { classPropertyName: "disabledInput", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "siAutocompleteOption", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "option" }, listeners: { "click": "click()" }, properties: { "id": "id()", "attr.aria-disabled": "disabledInput()", "class.active": "active()" } }, exportAs: ["siAutocompleteOption"], ngImport: i0 });
|
|
45
47
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiAutocompleteOptionDirective, decorators: [{
|
|
47
49
|
type: Directive,
|
|
48
50
|
args: [{
|
|
49
51
|
selector: '[siAutocompleteOption]',
|
|
@@ -64,17 +66,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
64
66
|
*/
|
|
65
67
|
class SiAutocompleteListboxDirective {
|
|
66
68
|
static idCounter = 0;
|
|
67
|
-
options = contentChildren(SiAutocompleteOptionDirective, { ...(ngDevMode ? { debugName: "options" } : {}), descendants: true });
|
|
69
|
+
options = contentChildren(SiAutocompleteOptionDirective, { ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), descendants: true });
|
|
68
70
|
/**
|
|
69
71
|
* @defaultValue
|
|
70
72
|
* ```
|
|
71
73
|
* `__si-autocomplete-listbox-${SiAutocompleteListboxDirective.idCounter++}`
|
|
72
74
|
* ```
|
|
73
75
|
*/
|
|
74
|
-
id = input(`__si-autocomplete-listbox-${SiAutocompleteListboxDirective.idCounter++}`,
|
|
75
|
-
|
|
76
|
+
id = input(`__si-autocomplete-listbox-${SiAutocompleteListboxDirective.idCounter++}`, /* @ts-ignore */
|
|
77
|
+
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
78
|
+
autocomplete = input.required({ ...(ngDevMode ? { debugName: "autocomplete" } : /* istanbul ignore next */ {}), alias: 'siAutocompleteListboxFor' });
|
|
76
79
|
/** @defaultValue 0 */
|
|
77
|
-
siAutocompleteDefaultIndex = input(0,
|
|
80
|
+
siAutocompleteDefaultIndex = input(0, /* @ts-ignore */
|
|
81
|
+
...(ngDevMode ? [{ debugName: "siAutocompleteDefaultIndex" }] : /* istanbul ignore next */ []));
|
|
78
82
|
siAutocompleteOptionSubmitted = output();
|
|
79
83
|
injector = inject(INJECTOR);
|
|
80
84
|
keyManager = new ActiveDescendantKeyManager(this.options, this.injector)
|
|
@@ -133,10 +137,10 @@ class SiAutocompleteListboxDirective {
|
|
|
133
137
|
}
|
|
134
138
|
return this.options().at(this.keyManager.activeItemIndex) ?? null;
|
|
135
139
|
}
|
|
136
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
137
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "
|
|
140
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiAutocompleteListboxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
141
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.0.5", type: SiAutocompleteListboxDirective, isStandalone: true, selector: "[siAutocompleteListboxFor]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "siAutocompleteListboxFor", isSignal: true, isRequired: true, transformFunction: null }, siAutocompleteDefaultIndex: { classPropertyName: "siAutocompleteDefaultIndex", publicName: "siAutocompleteDefaultIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { siAutocompleteOptionSubmitted: "siAutocompleteOptionSubmitted" }, host: { attributes: { "role": "listbox" }, properties: { "id": "id()" } }, providers: [{ provide: AUTOCOMPLETE_LISTBOX, useExisting: SiAutocompleteListboxDirective }], queries: [{ propertyName: "options", predicate: SiAutocompleteOptionDirective, descendants: true, isSignal: true }], exportAs: ["siAutocompleteListbox"], ngImport: i0 });
|
|
138
142
|
}
|
|
139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiAutocompleteListboxDirective, decorators: [{
|
|
140
144
|
type: Directive,
|
|
141
145
|
args: [{
|
|
142
146
|
selector: '[siAutocompleteListboxFor]',
|
|
@@ -155,7 +159,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
155
159
|
*/
|
|
156
160
|
class SiAutocompleteDirective {
|
|
157
161
|
/** @internal */
|
|
158
|
-
listbox = signal(undefined,
|
|
162
|
+
listbox = signal(undefined, /* @ts-ignore */
|
|
163
|
+
...(ngDevMode ? [{ debugName: "listbox" }] : /* istanbul ignore next */ []));
|
|
159
164
|
get activeDescendant() {
|
|
160
165
|
return this.listbox()?.active?.id() ?? '';
|
|
161
166
|
}
|
|
@@ -165,10 +170,10 @@ class SiAutocompleteDirective {
|
|
|
165
170
|
get active() {
|
|
166
171
|
return this.listbox()?.active;
|
|
167
172
|
}
|
|
168
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
169
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
173
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiAutocompleteDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
174
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: SiAutocompleteDirective, isStandalone: true, selector: "input[siAutocomplete]", host: { attributes: { "role": "combobox", "aria-autocomplete": "list" }, listeners: { "keydown": "keydown($event)" }, properties: { "attr.aria-activedescendant": "activeDescendant", "attr.aria-controls": "listbox()?.id()", "attr.aria-expanded": "!!listbox()" } }, exportAs: ["siAutocomplete"], ngImport: i0 });
|
|
170
175
|
}
|
|
171
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
176
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiAutocompleteDirective, decorators: [{
|
|
172
177
|
type: Directive,
|
|
173
178
|
args: [{
|
|
174
179
|
selector: 'input[siAutocomplete]',
|
|
@@ -191,11 +196,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
191
196
|
* SPDX-License-Identifier: MIT
|
|
192
197
|
*/
|
|
193
198
|
class SiAutocompleteModule {
|
|
194
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
195
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
196
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
199
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiAutocompleteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
200
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.5", ngImport: i0, type: SiAutocompleteModule, imports: [SiAutocompleteDirective, SiAutocompleteListboxDirective, SiAutocompleteOptionDirective], exports: [SiAutocompleteDirective, SiAutocompleteListboxDirective, SiAutocompleteOptionDirective] });
|
|
201
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiAutocompleteModule });
|
|
197
202
|
}
|
|
198
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
203
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiAutocompleteModule, decorators: [{
|
|
199
204
|
type: NgModule,
|
|
200
205
|
args: [{
|
|
201
206
|
imports: [SiAutocompleteDirective, SiAutocompleteListboxDirective, SiAutocompleteOptionDirective],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-autocomplete.mjs","sources":["../../../../projects/element-ng/autocomplete/si-autocomplete.model.ts","../../../../projects/element-ng/autocomplete/si-autocomplete-option.directive.ts","../../../../projects/element-ng/autocomplete/si-autocomplete-listbox.directive.ts","../../../../projects/element-ng/autocomplete/si-autocomplete.directive.ts","../../../../projects/element-ng/autocomplete/si-autocomplete.module.ts","../../../../projects/element-ng/autocomplete/index.ts","../../../../projects/element-ng/autocomplete/siemens-element-ng-autocomplete.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken } from '@angular/core';\n\nimport { SiAutocompleteListboxDirective } from './si-autocomplete-listbox.directive';\n\nexport const AUTOCOMPLETE_LISTBOX = new InjectionToken<SiAutocompleteListboxDirective<unknown>>(\n 'si-autocomplete-listbox'\n);\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Highlightable } from '@angular/cdk/a11y';\nimport { booleanAttribute, Directive, ElementRef, inject, input, signal } from '@angular/core';\n\nimport { AUTOCOMPLETE_LISTBOX } from './si-autocomplete.model';\n\n@Directive({\n selector: '[siAutocompleteOption]',\n host: {\n role: 'option',\n '[id]': 'id()',\n '[attr.aria-disabled]': 'disabledInput()',\n '[class.active]': 'active()',\n '(click)': 'click()'\n },\n exportAs: 'siAutocompleteOption'\n})\nexport class SiAutocompleteOptionDirective<T = unknown> implements Highlightable {\n private static idCounter = 0;\n private element = inject<ElementRef<HTMLElement>>(ElementRef);\n private parent = inject(AUTOCOMPLETE_LISTBOX);\n\n /**\n * @defaultValue\n * ```\n * `__si-autocomplete-option-${SiAutocompleteOptionDirective.idCounter++}`\n * ```\n */\n readonly id = input(`__si-autocomplete-option-${SiAutocompleteOptionDirective.idCounter++}`);\n\n /** @defaultValue false */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n get disabled(): boolean {\n return this.disabledInput();\n }\n /** @defaultValue undefined */\n readonly value = input<T>(undefined, { alias: 'siAutocompleteOption' });\n\n protected readonly active = signal(false);\n\n protected click(): void {\n this.parent.siAutocompleteOptionSubmitted.emit(this.value());\n }\n\n /** @internal */\n setActiveStyles(): void {\n this.active.set(true);\n this.element.nativeElement.scrollIntoView({ block: 'nearest' });\n }\n\n /** @internal */\n setInactiveStyles(): void {\n this.active.set(false);\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport {\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n inject,\n input,\n OnInit,\n output,\n contentChildren,\n INJECTOR,\n effect\n} from '@angular/core';\n\nimport { SiAutocompleteOptionDirective } from './si-autocomplete-option.directive';\nimport { SiAutocompleteDirective } from './si-autocomplete.directive';\nimport { AUTOCOMPLETE_LISTBOX } from './si-autocomplete.model';\n\n@Directive({\n selector: '[siAutocompleteListboxFor]',\n providers: [{ provide: AUTOCOMPLETE_LISTBOX, useExisting: SiAutocompleteListboxDirective }],\n host: {\n role: 'listbox',\n '[id]': 'id()'\n },\n exportAs: 'siAutocompleteListbox'\n})\nexport class SiAutocompleteListboxDirective<T> implements OnInit {\n private static idCounter = 0;\n\n private readonly options = contentChildren(SiAutocompleteOptionDirective, { descendants: true });\n\n /**\n * @defaultValue\n * ```\n * `__si-autocomplete-listbox-${SiAutocompleteListboxDirective.idCounter++}`\n * ```\n */\n readonly id = input(`__si-autocomplete-listbox-${SiAutocompleteListboxDirective.idCounter++}`);\n\n readonly autocomplete = input.required<SiAutocompleteDirective<T>>({\n alias: 'siAutocompleteListboxFor'\n });\n\n /** @defaultValue 0 */\n readonly siAutocompleteDefaultIndex = input(0);\n\n readonly siAutocompleteOptionSubmitted = output<T | undefined>();\n\n private injector = inject(INJECTOR);\n private keyManager = new ActiveDescendantKeyManager(this.options, this.injector)\n .withWrap(true)\n .withVerticalOrientation(true);\n\n private changeDetectorRef = inject(ChangeDetectorRef);\n private destroyRef = inject(DestroyRef);\n\n constructor() {\n effect(() => {\n if (this.siAutocompleteDefaultIndex() >= 0 && !this.keyManager.activeItem) {\n this.setActiveItem();\n }\n });\n\n effect(() => {\n if (this.options()) {\n this.setActiveItem();\n }\n });\n }\n\n ngOnInit(): void {\n // For some reason, this is needed sometimes. Otherwise, one may get ExpressionChangedAfterItHasBeenCheckedError.\n queueMicrotask(() => {\n this.changeDetectorRef.markForCheck();\n this.autocomplete().listbox.set(this);\n });\n this.destroyRef.onDestroy(() => {\n this.autocomplete().listbox.set(undefined);\n });\n }\n\n private setActiveItem(): void {\n queueMicrotask(() => {\n this.keyManager.setActiveItem(this.siAutocompleteDefaultIndex());\n this.changeDetectorRef.markForCheck();\n });\n }\n\n /** @internal */\n onKeydown(event: KeyboardEvent): void {\n if (event.ctrlKey && event.key === 'Enter') {\n // [ctrl + enter] should submit and not select an option.\n // Mainly needed for filtered-search.\n return;\n }\n this.keyManager!.onKeydown(event);\n if (event.key === 'Enter' && this.keyManager!.activeItem) {\n this.siAutocompleteOptionSubmitted.emit(this.keyManager!.activeItem.value());\n // Something was selected. This should prevent everything else from happening, especially submitting the form.\n event.stopImmediatePropagation();\n }\n this.changeDetectorRef.markForCheck();\n }\n\n get active(): SiAutocompleteOptionDirective<T> | null {\n // NOTE: We must not return `this.keyManager.activeItem` here, because its not updating\n // activeItem reference when options change.\n if (this.keyManager.activeItemIndex === null) {\n return null;\n }\n return this.options().at(this.keyManager.activeItemIndex) ?? null;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, HostListener, signal } from '@angular/core';\n\nimport { SiAutocompleteListboxDirective } from './si-autocomplete-listbox.directive';\nimport { SiAutocompleteOptionDirective } from './si-autocomplete-option.directive';\n\n@Directive({\n selector: 'input[siAutocomplete]',\n host: {\n role: 'combobox',\n 'aria-autocomplete': 'list',\n '[attr.aria-activedescendant]': 'activeDescendant',\n '[attr.aria-controls]': 'listbox()?.id()',\n '[attr.aria-expanded]': '!!listbox()'\n },\n exportAs: 'siAutocomplete'\n})\nexport class SiAutocompleteDirective<T> {\n /** @internal */\n readonly listbox = signal<SiAutocompleteListboxDirective<T> | undefined>(undefined);\n\n protected get activeDescendant(): string {\n return this.listbox()?.active?.id() ?? '';\n }\n\n @HostListener('keydown', ['$event'])\n protected keydown(event: KeyboardEvent): void {\n this.listbox()?.onKeydown(event);\n }\n\n get active(): SiAutocompleteOptionDirective<T> | undefined | null {\n return this.listbox()?.active;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiAutocompleteListboxDirective } from './si-autocomplete-listbox.directive';\nimport { SiAutocompleteOptionDirective } from './si-autocomplete-option.directive';\nimport { SiAutocompleteDirective } from './si-autocomplete.directive';\n\n@NgModule({\n imports: [SiAutocompleteDirective, SiAutocompleteListboxDirective, SiAutocompleteOptionDirective],\n declarations: [],\n exports: [SiAutocompleteDirective, SiAutocompleteListboxDirective, SiAutocompleteOptionDirective]\n})\nexport class SiAutocompleteModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-autocomplete-listbox.directive';\nexport * from './si-autocomplete-option.directive';\nexport * from './si-autocomplete.directive';\nexport * from './si-autocomplete.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-autocomplete.mjs","sources":["../../../../projects/element-ng/autocomplete/si-autocomplete.model.ts","../../../../projects/element-ng/autocomplete/si-autocomplete-option.directive.ts","../../../../projects/element-ng/autocomplete/si-autocomplete-listbox.directive.ts","../../../../projects/element-ng/autocomplete/si-autocomplete.directive.ts","../../../../projects/element-ng/autocomplete/si-autocomplete.module.ts","../../../../projects/element-ng/autocomplete/index.ts","../../../../projects/element-ng/autocomplete/siemens-element-ng-autocomplete.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken } from '@angular/core';\n\nimport { SiAutocompleteListboxDirective } from './si-autocomplete-listbox.directive';\n\nexport const AUTOCOMPLETE_LISTBOX = new InjectionToken<SiAutocompleteListboxDirective<unknown>>(\n 'si-autocomplete-listbox'\n);\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Highlightable } from '@angular/cdk/a11y';\nimport { booleanAttribute, Directive, ElementRef, inject, input, signal } from '@angular/core';\n\nimport { AUTOCOMPLETE_LISTBOX } from './si-autocomplete.model';\n\n@Directive({\n selector: '[siAutocompleteOption]',\n host: {\n role: 'option',\n '[id]': 'id()',\n '[attr.aria-disabled]': 'disabledInput()',\n '[class.active]': 'active()',\n '(click)': 'click()'\n },\n exportAs: 'siAutocompleteOption'\n})\nexport class SiAutocompleteOptionDirective<T = unknown> implements Highlightable {\n private static idCounter = 0;\n private element = inject<ElementRef<HTMLElement>>(ElementRef);\n private parent = inject(AUTOCOMPLETE_LISTBOX);\n\n /**\n * @defaultValue\n * ```\n * `__si-autocomplete-option-${SiAutocompleteOptionDirective.idCounter++}`\n * ```\n */\n readonly id = input(`__si-autocomplete-option-${SiAutocompleteOptionDirective.idCounter++}`);\n\n /** @defaultValue false */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n get disabled(): boolean {\n return this.disabledInput();\n }\n /** @defaultValue undefined */\n readonly value = input<T>(undefined, { alias: 'siAutocompleteOption' });\n\n protected readonly active = signal(false);\n\n protected click(): void {\n this.parent.siAutocompleteOptionSubmitted.emit(this.value());\n }\n\n /** @internal */\n setActiveStyles(): void {\n this.active.set(true);\n this.element.nativeElement.scrollIntoView({ block: 'nearest' });\n }\n\n /** @internal */\n setInactiveStyles(): void {\n this.active.set(false);\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport {\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n inject,\n input,\n OnInit,\n output,\n contentChildren,\n INJECTOR,\n effect\n} from '@angular/core';\n\nimport { SiAutocompleteOptionDirective } from './si-autocomplete-option.directive';\nimport { SiAutocompleteDirective } from './si-autocomplete.directive';\nimport { AUTOCOMPLETE_LISTBOX } from './si-autocomplete.model';\n\n@Directive({\n selector: '[siAutocompleteListboxFor]',\n providers: [{ provide: AUTOCOMPLETE_LISTBOX, useExisting: SiAutocompleteListboxDirective }],\n host: {\n role: 'listbox',\n '[id]': 'id()'\n },\n exportAs: 'siAutocompleteListbox'\n})\nexport class SiAutocompleteListboxDirective<T> implements OnInit {\n private static idCounter = 0;\n\n private readonly options = contentChildren(SiAutocompleteOptionDirective, { descendants: true });\n\n /**\n * @defaultValue\n * ```\n * `__si-autocomplete-listbox-${SiAutocompleteListboxDirective.idCounter++}`\n * ```\n */\n readonly id = input(`__si-autocomplete-listbox-${SiAutocompleteListboxDirective.idCounter++}`);\n\n readonly autocomplete = input.required<SiAutocompleteDirective<T>>({\n alias: 'siAutocompleteListboxFor'\n });\n\n /** @defaultValue 0 */\n readonly siAutocompleteDefaultIndex = input(0);\n\n readonly siAutocompleteOptionSubmitted = output<T | undefined>();\n\n private injector = inject(INJECTOR);\n private keyManager = new ActiveDescendantKeyManager(this.options, this.injector)\n .withWrap(true)\n .withVerticalOrientation(true);\n\n private changeDetectorRef = inject(ChangeDetectorRef);\n private destroyRef = inject(DestroyRef);\n\n constructor() {\n effect(() => {\n if (this.siAutocompleteDefaultIndex() >= 0 && !this.keyManager.activeItem) {\n this.setActiveItem();\n }\n });\n\n effect(() => {\n if (this.options()) {\n this.setActiveItem();\n }\n });\n }\n\n ngOnInit(): void {\n // For some reason, this is needed sometimes. Otherwise, one may get ExpressionChangedAfterItHasBeenCheckedError.\n queueMicrotask(() => {\n this.changeDetectorRef.markForCheck();\n this.autocomplete().listbox.set(this);\n });\n this.destroyRef.onDestroy(() => {\n this.autocomplete().listbox.set(undefined);\n });\n }\n\n private setActiveItem(): void {\n queueMicrotask(() => {\n this.keyManager.setActiveItem(this.siAutocompleteDefaultIndex());\n this.changeDetectorRef.markForCheck();\n });\n }\n\n /** @internal */\n onKeydown(event: KeyboardEvent): void {\n if (event.ctrlKey && event.key === 'Enter') {\n // [ctrl + enter] should submit and not select an option.\n // Mainly needed for filtered-search.\n return;\n }\n this.keyManager!.onKeydown(event);\n if (event.key === 'Enter' && this.keyManager!.activeItem) {\n this.siAutocompleteOptionSubmitted.emit(this.keyManager!.activeItem.value());\n // Something was selected. This should prevent everything else from happening, especially submitting the form.\n event.stopImmediatePropagation();\n }\n this.changeDetectorRef.markForCheck();\n }\n\n get active(): SiAutocompleteOptionDirective<T> | null {\n // NOTE: We must not return `this.keyManager.activeItem` here, because its not updating\n // activeItem reference when options change.\n if (this.keyManager.activeItemIndex === null) {\n return null;\n }\n return this.options().at(this.keyManager.activeItemIndex) ?? null;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, HostListener, signal } from '@angular/core';\n\nimport { SiAutocompleteListboxDirective } from './si-autocomplete-listbox.directive';\nimport { SiAutocompleteOptionDirective } from './si-autocomplete-option.directive';\n\n@Directive({\n selector: 'input[siAutocomplete]',\n host: {\n role: 'combobox',\n 'aria-autocomplete': 'list',\n '[attr.aria-activedescendant]': 'activeDescendant',\n '[attr.aria-controls]': 'listbox()?.id()',\n '[attr.aria-expanded]': '!!listbox()'\n },\n exportAs: 'siAutocomplete'\n})\nexport class SiAutocompleteDirective<T> {\n /** @internal */\n readonly listbox = signal<SiAutocompleteListboxDirective<T> | undefined>(undefined);\n\n protected get activeDescendant(): string {\n return this.listbox()?.active?.id() ?? '';\n }\n\n @HostListener('keydown', ['$event'])\n protected keydown(event: KeyboardEvent): void {\n this.listbox()?.onKeydown(event);\n }\n\n get active(): SiAutocompleteOptionDirective<T> | undefined | null {\n return this.listbox()?.active;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiAutocompleteListboxDirective } from './si-autocomplete-listbox.directive';\nimport { SiAutocompleteOptionDirective } from './si-autocomplete-option.directive';\nimport { SiAutocompleteDirective } from './si-autocomplete.directive';\n\n@NgModule({\n imports: [SiAutocompleteDirective, SiAutocompleteListboxDirective, SiAutocompleteOptionDirective],\n declarations: [],\n exports: [SiAutocompleteDirective, SiAutocompleteListboxDirective, SiAutocompleteOptionDirective]\n})\nexport class SiAutocompleteModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-autocomplete-listbox.directive';\nexport * from './si-autocomplete-option.directive';\nexport * from './si-autocomplete.directive';\nexport * from './si-autocomplete.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, numberAttribute, booleanAttribute, signal, Directive, inject, computed, effect,
|
|
2
|
+
import { input, numberAttribute, booleanAttribute, signal, Directive, inject, computed, effect, Component } from '@angular/core';
|
|
3
3
|
import { STATUS_ICON_CONFIG, SiIconComponent } from '@siemens/element-ng/icon';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -20,15 +20,16 @@ class SiAvatarBackgroundColorDirective {
|
|
|
20
20
|
*
|
|
21
21
|
* @defaultValue undefined
|
|
22
22
|
*/
|
|
23
|
-
color = input(undefined, { ...(ngDevMode ? { debugName: "color" } : {}), transform: numberAttribute });
|
|
23
|
+
color = input(undefined, { ...(ngDevMode ? { debugName: "color" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
24
24
|
/**
|
|
25
25
|
* Automatically calculates the background color.
|
|
26
26
|
* If set, {@link color} will be ignored.
|
|
27
27
|
*
|
|
28
28
|
* @defaultValue false
|
|
29
29
|
*/
|
|
30
|
-
autoColor = input(false, { ...(ngDevMode ? { debugName: "autoColor" } : {}), transform: booleanAttribute });
|
|
31
|
-
backgroundStyle = signal('var(--element-data-17)',
|
|
30
|
+
autoColor = input(false, { ...(ngDevMode ? { debugName: "autoColor" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
31
|
+
backgroundStyle = signal('var(--element-data-17)', /* @ts-ignore */
|
|
32
|
+
...(ngDevMode ? [{ debugName: "backgroundStyle" }] : /* istanbul ignore next */ []));
|
|
32
33
|
ngOnChanges(changes) {
|
|
33
34
|
if (changes.color) {
|
|
34
35
|
this.setColor(this.color());
|
|
@@ -58,10 +59,10 @@ class SiAvatarBackgroundColorDirective {
|
|
|
58
59
|
this.backgroundStyle.set(`var(--element-data-${colorIndex})`);
|
|
59
60
|
}
|
|
60
61
|
}
|
|
61
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
62
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
62
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiAvatarBackgroundColorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
63
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.5", type: SiAvatarBackgroundColorDirective, isStandalone: true, selector: "[siAvatarBackgroundColor]", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, autoColor: { classPropertyName: "autoColor", publicName: "autoColor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.--background": "backgroundStyle()" } }, usesOnChanges: true, ngImport: i0 });
|
|
63
64
|
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiAvatarBackgroundColorDirective, decorators: [{
|
|
65
66
|
type: Directive,
|
|
66
67
|
args: [{
|
|
67
68
|
selector: '[siAvatarBackgroundColor]',
|
|
@@ -82,17 +83,21 @@ class SiAvatarComponent {
|
|
|
82
83
|
*
|
|
83
84
|
* @defaultValue 'regular'
|
|
84
85
|
*/
|
|
85
|
-
size = input('regular',
|
|
86
|
+
size = input('regular', /* @ts-ignore */
|
|
87
|
+
...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
86
88
|
/** Image src URL when using an image. */
|
|
87
|
-
imageUrl = input(
|
|
89
|
+
imageUrl = input(/* @ts-ignore */
|
|
90
|
+
...(ngDevMode ? [undefined, { debugName: "imageUrl" }] : /* istanbul ignore next */ []));
|
|
88
91
|
/** Icon name when using an icon. */
|
|
89
|
-
icon = input(
|
|
92
|
+
icon = input(/* @ts-ignore */
|
|
93
|
+
...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
90
94
|
/**
|
|
91
95
|
* Initials to be displayed as default avatar if no `icon` or `imageUrl` are provided.
|
|
92
96
|
* If also no initials are provided, they will be automatically calculated from the `altText`.
|
|
93
97
|
* The value will be used to calculate the background color when `autoColor` is true.
|
|
94
98
|
*/
|
|
95
|
-
initials = input(
|
|
99
|
+
initials = input(/* @ts-ignore */
|
|
100
|
+
...(ngDevMode ? [undefined, { debugName: "initials" }] : /* istanbul ignore next */ []));
|
|
96
101
|
/**
|
|
97
102
|
* The desired color index from $element-data-* color tokens. This can be set to any kind of
|
|
98
103
|
* positive integer that is then mapped to a color index.
|
|
@@ -100,22 +105,26 @@ class SiAvatarComponent {
|
|
|
100
105
|
*
|
|
101
106
|
* @defaultValue undefined
|
|
102
107
|
*/
|
|
103
|
-
color = input(undefined, { ...(ngDevMode ? { debugName: "color" } : {}), transform: numberAttribute });
|
|
108
|
+
color = input(undefined, { ...(ngDevMode ? { debugName: "color" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
104
109
|
/** The `alt` text for image, `title` for other modes. */
|
|
105
|
-
altText = input.required(
|
|
110
|
+
altText = input.required(/* @ts-ignore */
|
|
111
|
+
...(ngDevMode ? [{ debugName: "altText" }] : /* istanbul ignore next */ []));
|
|
106
112
|
/**
|
|
107
113
|
* The status (success, info, warning, caution, danger, critical, pending, progress) to be
|
|
108
114
|
* visualized.
|
|
109
115
|
*/
|
|
110
|
-
status = input(
|
|
116
|
+
status = input(/* @ts-ignore */
|
|
117
|
+
...(ngDevMode ? [undefined, { debugName: "status" }] : /* istanbul ignore next */ []));
|
|
111
118
|
/**
|
|
112
119
|
* aria-label for status
|
|
113
120
|
*/
|
|
114
|
-
statusAriaLabel = input(
|
|
121
|
+
statusAriaLabel = input(/* @ts-ignore */
|
|
122
|
+
...(ngDevMode ? [undefined, { debugName: "statusAriaLabel" }] : /* istanbul ignore next */ []));
|
|
115
123
|
statusIcon = computed(() => {
|
|
116
124
|
const status = this.status();
|
|
117
125
|
return status ? this.statusIcons[status] : undefined;
|
|
118
|
-
},
|
|
126
|
+
}, /* @ts-ignore */
|
|
127
|
+
...(ngDevMode ? [{ debugName: "statusIcon" }] : /* istanbul ignore next */ []));
|
|
119
128
|
displayInitials = computed(() => {
|
|
120
129
|
const initials = this.initials();
|
|
121
130
|
if (initials) {
|
|
@@ -143,19 +152,20 @@ class SiAvatarComponent {
|
|
|
143
152
|
last = last[0].toLocaleUpperCase();
|
|
144
153
|
}
|
|
145
154
|
return first + last;
|
|
146
|
-
},
|
|
155
|
+
}, /* @ts-ignore */
|
|
156
|
+
...(ngDevMode ? [{ debugName: "displayInitials" }] : /* istanbul ignore next */ []));
|
|
147
157
|
autoBackgroundColorDirective = inject(SiAvatarBackgroundColorDirective);
|
|
148
158
|
constructor() {
|
|
149
159
|
effect(() => {
|
|
150
160
|
this.autoBackgroundColorDirective.calculateColorFromInitials(this.displayInitials());
|
|
151
161
|
});
|
|
152
162
|
}
|
|
153
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
154
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
163
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
164
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SiAvatarComponent, isStandalone: true, selector: "si-avatar", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, imageUrl: { classPropertyName: "imageUrl", publicName: "imageUrl", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, initials: { classPropertyName: "initials", publicName: "initials", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, altText: { classPropertyName: "altText", publicName: "altText", isSignal: true, isRequired: true, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, statusAriaLabel: { classPropertyName: "statusAriaLabel", publicName: "statusAriaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "size()" } }, hostDirectives: [{ directive: SiAvatarBackgroundColorDirective, inputs: ["color", "color", "autoColor", "autoColor"] }], ngImport: i0, template: "@if (imageUrl()) {\n <img [src]=\"imageUrl()\" [alt]=\"altText()\" />\n} @else if (icon()) {\n <si-icon class=\"icon\" [title]=\"altText()\" [icon]=\"icon()!\" />\n} @else {\n <div\n class=\"initials\"\n [class.text-body]=\"color() === 0\"\n [title]=\"altText()\"\n [attr.aria-label]=\"altText()\"\n >{{ displayInitials() }}</div\n >\n}\n@let iconConfig = statusIcon();\n@if (iconConfig) {\n <span class=\"indicator-size indicator icon-stack\">\n <si-icon [class]=\"`drop-shadow ${iconConfig.color}`\" [icon]=\"iconConfig.icon\" />\n <si-icon [class]=\"iconConfig.stackedColor\" [icon]=\"iconConfig.stacked\" />\n </span>\n}\n", styles: [":host{--avatar-size: calc(1.25rem + 20px) ;--indicator-size: 1.25rem;--background: var(--element-base-0);--indicator-offset-x: -.625rem;--indicator-offset-y: -.375rem;flex:0 0 auto;display:inline-flex;vertical-align:middle;color:var(--element-text-inverse);position:relative;align-items:center;justify-content:center;inline-size:var(--avatar-size);block-size:var(--avatar-size);border-radius:50%;background:var(--background)}:host.tiny,:host.xsmall,:host.small{--initials-size: .875rem;--indicator-size: 1rem;--indicator-offset-x: -.5rem;--indicator-offset-y: -.25rem}:host.tiny{--avatar-size: calc(1.25rem + 4px) }:host.xsmall{--avatar-size: calc(1.25rem + 8px) }:host.small{--avatar-size: calc(1.25rem + 12px) }:host.large{--avatar-size: calc(1.25rem + 36px) }:host.xlarge{--avatar-size: calc(1.25rem + 60px) }.initials{font-weight:600;font-size:var(--initials-size, 1.125rem);line-height:1}img{inline-size:var(--avatar-size);block-size:var(--avatar-size);border-radius:50%}.indicator{position:absolute;inset-block-start:var(--indicator-offset-y);inset-inline-end:var(--indicator-offset-x);font-size:var(--indicator-size);filter:drop-shadow(1px 0 0 var(--element-base-1)) drop-shadow(-1px 0 0 var(--element-base-1)) drop-shadow(0 1px 0 var(--element-base-1)) drop-shadow(0 -1px 0 var(--element-base-1))}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }] });
|
|
155
165
|
}
|
|
156
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiAvatarComponent, decorators: [{
|
|
157
167
|
type: Component,
|
|
158
|
-
args: [{ selector: 'si-avatar', imports: [SiIconComponent],
|
|
168
|
+
args: [{ selector: 'si-avatar', imports: [SiIconComponent], host: {
|
|
159
169
|
'[class]': 'size()'
|
|
160
170
|
}, hostDirectives: [
|
|
161
171
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-avatar.mjs","sources":["../../../../projects/element-ng/avatar/si-avatar-background-color.directive.ts","../../../../projects/element-ng/avatar/si-avatar.component.ts","../../../../projects/element-ng/avatar/si-avatar.component.html","../../../../projects/element-ng/avatar/index.ts","../../../../projects/element-ng/avatar/siemens-element-ng-avatar.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n Directive,\n input,\n numberAttribute,\n OnChanges,\n signal,\n SimpleChanges\n} from '@angular/core';\n\nconst DATA_COLORS_MAX = 17;\nconst DATA_COLOR_NEUTRAL = 17;\nconst ASCII_CODE_INDEX_A = 64;\n\n/**\n * The directive provide a CSS variable --background with a color based on the initials or alt text.\n */\n@Directive({\n selector: '[siAvatarBackgroundColor]',\n host: {\n '[style.--background]': 'backgroundStyle()'\n }\n})\nexport class SiAvatarBackgroundColorDirective implements OnChanges {\n /**\n * The desired color index from $element-data-* color tokens. This can be set to any kind of\n * positive integer that is then mapped to a color index.\n * A better way to set a pseudo-random color is to set {@link autoColor} to `true`.\n *\n * @defaultValue undefined\n */\n readonly color = input<number | undefined, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * Automatically calculates the background color.\n * If set, {@link color} will be ignored.\n *\n * @defaultValue false\n */\n readonly autoColor = input(false, { transform: booleanAttribute });\n\n protected readonly backgroundStyle = signal<string | undefined>('var(--element-data-17)');\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.color) {\n this.setColor(this.color());\n }\n }\n\n /**\n * Update background color variable based on the initials or placeholder text.\n */\n public calculateColorFromInitials(displayInitials?: string): void {\n if (!this.autoColor() || !displayInitials) {\n return;\n }\n\n let color = 0;\n for (let i = 0; i < displayInitials.length; i++) {\n color *= 17; // this prevents 'JD' to have the same color as 'DJ'\n color += displayInitials.charCodeAt(i) - ASCII_CODE_INDEX_A;\n }\n this.setColor(color);\n }\n\n private setColor(color?: number): void {\n if (this.color() === 0) {\n this.backgroundStyle.set(undefined);\n } else {\n const actualColor = color ?? DATA_COLOR_NEUTRAL;\n const colorIndex = ((actualColor - 1) % DATA_COLORS_MAX) + 1;\n this.backgroundStyle.set(`var(--element-data-${colorIndex})`);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n numberAttribute\n} from '@angular/core';\nimport { EntityStatusType } from '@siemens/element-ng/common';\nimport { SiIconComponent, STATUS_ICON_CONFIG } from '@siemens/element-ng/icon';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiAvatarBackgroundColorDirective } from './si-avatar-background-color.directive';\n\nexport type AvatarSize = 'tiny' | 'xsmall' | 'small' | 'regular' | 'large' | 'xlarge';\n\n@Component({\n selector: 'si-avatar',\n imports: [SiIconComponent],\n templateUrl: './si-avatar.component.html',\n styleUrl: './si-avatar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': 'size()'\n },\n hostDirectives: [\n {\n directive: SiAvatarBackgroundColorDirective,\n inputs: ['color', 'autoColor']\n }\n ]\n})\nexport class SiAvatarComponent {\n private readonly statusIcons = inject(STATUS_ICON_CONFIG);\n /**\n * Size of the component.\n *\n * @defaultValue 'regular'\n */\n readonly size = input<AvatarSize>('regular');\n /** Image src URL when using an image. */\n readonly imageUrl = input<string>();\n /** Icon name when using an icon. */\n readonly icon = input<string>();\n /**\n * Initials to be displayed as default avatar if no `icon` or `imageUrl` are provided.\n * If also no initials are provided, they will be automatically calculated from the `altText`.\n * The value will be used to calculate the background color when `autoColor` is true.\n */\n readonly initials = input<string>();\n /**\n * The desired color index from $element-data-* color tokens. This can be set to any kind of\n * positive integer that is then mapped to a color index.\n * A better way to set a pseudo-random color is to set * {@link autoColor} to `true`.\n *\n * @defaultValue undefined\n */\n readonly color = input<number | undefined, unknown>(undefined, { transform: numberAttribute });\n /** The `alt` text for image, `title` for other modes. */\n readonly altText = input.required<string>();\n /**\n * The status (success, info, warning, caution, danger, critical, pending, progress) to be\n * visualized.\n */\n readonly status = input<EntityStatusType>();\n /**\n * aria-label for status\n */\n readonly statusAriaLabel = input<TranslatableString>();\n\n protected readonly statusIcon = computed(() => {\n const status = this.status();\n return status ? this.statusIcons[status] : undefined;\n });\n\n protected readonly displayInitials = computed(() => {\n const initials = this.initials();\n if (initials) {\n return initials;\n }\n\n const name = this.altText()\n .replaceAll(/\\([^)]*\\)/g, '')\n .trim();\n const byComma = name.split(/,\\s*/);\n let first: string;\n let last: string;\n if (byComma.length > 1) {\n last = byComma[0];\n first = byComma[1];\n } else {\n const parts = name.split(' ');\n first = parts.shift() ?? '';\n last = parts.pop() ?? '';\n }\n if (first) {\n first = first[0].toLocaleUpperCase();\n }\n if (last) {\n last = last[0].toLocaleUpperCase();\n }\n return first + last;\n });\n\n private readonly autoBackgroundColorDirective = inject(SiAvatarBackgroundColorDirective);\n\n constructor() {\n effect(() => {\n this.autoBackgroundColorDirective.calculateColorFromInitials(this.displayInitials());\n });\n }\n}\n","@if (imageUrl()) {\n <img [src]=\"imageUrl()\" [alt]=\"altText()\" />\n} @else if (icon()) {\n <si-icon class=\"icon\" [title]=\"altText()\" [icon]=\"icon()!\" />\n} @else {\n <div\n class=\"initials\"\n [class.text-body]=\"color() === 0\"\n [title]=\"altText()\"\n [attr.aria-label]=\"altText()\"\n >{{ displayInitials() }}</div\n >\n}\n@let iconConfig = statusIcon();\n@if (iconConfig) {\n <span class=\"indicator-size indicator icon-stack\">\n <si-icon [class]=\"`drop-shadow ${iconConfig.color}`\" [icon]=\"iconConfig.icon\" />\n <si-icon [class]=\"iconConfig.stackedColor\" [icon]=\"iconConfig.stacked\" />\n </span>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-avatar-background-color.directive';\nexport * from './si-avatar.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SiAvatarBackgroundColorDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-avatar.mjs","sources":["../../../../projects/element-ng/avatar/si-avatar-background-color.directive.ts","../../../../projects/element-ng/avatar/si-avatar.component.ts","../../../../projects/element-ng/avatar/si-avatar.component.html","../../../../projects/element-ng/avatar/index.ts","../../../../projects/element-ng/avatar/siemens-element-ng-avatar.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n Directive,\n input,\n numberAttribute,\n OnChanges,\n signal,\n SimpleChanges\n} from '@angular/core';\n\nconst DATA_COLORS_MAX = 17;\nconst DATA_COLOR_NEUTRAL = 17;\nconst ASCII_CODE_INDEX_A = 64;\n\n/**\n * The directive provide a CSS variable --background with a color based on the initials or alt text.\n */\n@Directive({\n selector: '[siAvatarBackgroundColor]',\n host: {\n '[style.--background]': 'backgroundStyle()'\n }\n})\nexport class SiAvatarBackgroundColorDirective implements OnChanges {\n /**\n * The desired color index from $element-data-* color tokens. This can be set to any kind of\n * positive integer that is then mapped to a color index.\n * A better way to set a pseudo-random color is to set {@link autoColor} to `true`.\n *\n * @defaultValue undefined\n */\n readonly color = input<number | undefined, unknown>(undefined, { transform: numberAttribute });\n\n /**\n * Automatically calculates the background color.\n * If set, {@link color} will be ignored.\n *\n * @defaultValue false\n */\n readonly autoColor = input(false, { transform: booleanAttribute });\n\n protected readonly backgroundStyle = signal<string | undefined>('var(--element-data-17)');\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.color) {\n this.setColor(this.color());\n }\n }\n\n /**\n * Update background color variable based on the initials or placeholder text.\n */\n public calculateColorFromInitials(displayInitials?: string): void {\n if (!this.autoColor() || !displayInitials) {\n return;\n }\n\n let color = 0;\n for (let i = 0; i < displayInitials.length; i++) {\n color *= 17; // this prevents 'JD' to have the same color as 'DJ'\n color += displayInitials.charCodeAt(i) - ASCII_CODE_INDEX_A;\n }\n this.setColor(color);\n }\n\n private setColor(color?: number): void {\n if (this.color() === 0) {\n this.backgroundStyle.set(undefined);\n } else {\n const actualColor = color ?? DATA_COLOR_NEUTRAL;\n const colorIndex = ((actualColor - 1) % DATA_COLORS_MAX) + 1;\n this.backgroundStyle.set(`var(--element-data-${colorIndex})`);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, effect, inject, input, numberAttribute } from '@angular/core';\nimport { EntityStatusType } from '@siemens/element-ng/common';\nimport { SiIconComponent, STATUS_ICON_CONFIG } from '@siemens/element-ng/icon';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiAvatarBackgroundColorDirective } from './si-avatar-background-color.directive';\n\nexport type AvatarSize = 'tiny' | 'xsmall' | 'small' | 'regular' | 'large' | 'xlarge';\n\n@Component({\n selector: 'si-avatar',\n imports: [SiIconComponent],\n templateUrl: './si-avatar.component.html',\n styleUrl: './si-avatar.component.scss',\n host: {\n '[class]': 'size()'\n },\n hostDirectives: [\n {\n directive: SiAvatarBackgroundColorDirective,\n inputs: ['color', 'autoColor']\n }\n ]\n})\nexport class SiAvatarComponent {\n private readonly statusIcons = inject(STATUS_ICON_CONFIG);\n /**\n * Size of the component.\n *\n * @defaultValue 'regular'\n */\n readonly size = input<AvatarSize>('regular');\n /** Image src URL when using an image. */\n readonly imageUrl = input<string>();\n /** Icon name when using an icon. */\n readonly icon = input<string>();\n /**\n * Initials to be displayed as default avatar if no `icon` or `imageUrl` are provided.\n * If also no initials are provided, they will be automatically calculated from the `altText`.\n * The value will be used to calculate the background color when `autoColor` is true.\n */\n readonly initials = input<string>();\n /**\n * The desired color index from $element-data-* color tokens. This can be set to any kind of\n * positive integer that is then mapped to a color index.\n * A better way to set a pseudo-random color is to set * {@link autoColor} to `true`.\n *\n * @defaultValue undefined\n */\n readonly color = input<number | undefined, unknown>(undefined, { transform: numberAttribute });\n /** The `alt` text for image, `title` for other modes. */\n readonly altText = input.required<string>();\n /**\n * The status (success, info, warning, caution, danger, critical, pending, progress) to be\n * visualized.\n */\n readonly status = input<EntityStatusType>();\n /**\n * aria-label for status\n */\n readonly statusAriaLabel = input<TranslatableString>();\n\n protected readonly statusIcon = computed(() => {\n const status = this.status();\n return status ? this.statusIcons[status] : undefined;\n });\n\n protected readonly displayInitials = computed(() => {\n const initials = this.initials();\n if (initials) {\n return initials;\n }\n\n const name = this.altText()\n .replaceAll(/\\([^)]*\\)/g, '')\n .trim();\n const byComma = name.split(/,\\s*/);\n let first: string;\n let last: string;\n if (byComma.length > 1) {\n last = byComma[0];\n first = byComma[1];\n } else {\n const parts = name.split(' ');\n first = parts.shift() ?? '';\n last = parts.pop() ?? '';\n }\n if (first) {\n first = first[0].toLocaleUpperCase();\n }\n if (last) {\n last = last[0].toLocaleUpperCase();\n }\n return first + last;\n });\n\n private readonly autoBackgroundColorDirective = inject(SiAvatarBackgroundColorDirective);\n\n constructor() {\n effect(() => {\n this.autoBackgroundColorDirective.calculateColorFromInitials(this.displayInitials());\n });\n }\n}\n","@if (imageUrl()) {\n <img [src]=\"imageUrl()\" [alt]=\"altText()\" />\n} @else if (icon()) {\n <si-icon class=\"icon\" [title]=\"altText()\" [icon]=\"icon()!\" />\n} @else {\n <div\n class=\"initials\"\n [class.text-body]=\"color() === 0\"\n [title]=\"altText()\"\n [attr.aria-label]=\"altText()\"\n >{{ displayInitials() }}</div\n >\n}\n@let iconConfig = statusIcon();\n@if (iconConfig) {\n <span class=\"indicator-size indicator icon-stack\">\n <si-icon [class]=\"`drop-shadow ${iconConfig.color}`\" [icon]=\"iconConfig.icon\" />\n <si-icon [class]=\"iconConfig.stackedColor\" [icon]=\"iconConfig.stacked\" />\n </span>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-avatar-background-color.directive';\nexport * from './si-avatar.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SiAvatarBackgroundColorDirective"],"mappings":";;;;AAAA;;;AAGG;AAWH,MAAM,eAAe,GAAG,EAAE;AAC1B,MAAM,kBAAkB,GAAG,EAAE;AAC7B,MAAM,kBAAkB,GAAG,EAAE;AAE7B;;AAEG;MAOU,gCAAgC,CAAA;AAC3C;;;;;;AAMG;IACM,KAAK,GAAG,KAAK,CAA8B,SAAS,6EAAI,SAAS,EAAE,eAAe,EAAA,CAAG;AAE9F;;;;;AAKG;IACM,SAAS,GAAG,KAAK,CAAC,KAAK,iFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;IAE/C,eAAe,GAAG,MAAM,CAAqB,wBAAwB;wFAAC;AAEzF,IAAA,WAAW,CAAC,OAA4B,EAAA;AACtC,QAAA,IAAI,OAAO,CAAC,KAAK,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7B;IACF;AAEA;;AAEG;AACI,IAAA,0BAA0B,CAAC,eAAwB,EAAA;QACxD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE;YACzC;QACF;QAEA,IAAI,KAAK,GAAG,CAAC;AACb,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/C,YAAA,KAAK,IAAI,EAAE,CAAC;YACZ,KAAK,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,kBAAkB;QAC7D;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IACtB;AAEQ,IAAA,QAAQ,CAAC,KAAc,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;QACrC;aAAO;AACL,YAAA,MAAM,WAAW,GAAG,KAAK,IAAI,kBAAkB;AAC/C,YAAA,MAAM,UAAU,GAAG,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,eAAe,IAAI,CAAC;YAC5D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA,mBAAA,EAAsB,UAAU,CAAA,CAAA,CAAG,CAAC;QAC/D;IACF;uGAlDW,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAN5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,IAAI,EAAE;AACJ,wBAAA,sBAAsB,EAAE;AACzB;AACF,iBAAA;;;AC1BD;;;AAGG;MAyBU,iBAAiB,CAAA;AACX,IAAA,WAAW,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACzD;;;;AAIG;IACM,IAAI,GAAG,KAAK,CAAa,SAAS;6EAAC;;AAEnC,IAAA,QAAQ,GAAG,KAAK;4FAAU;;AAE1B,IAAA,IAAI,GAAG,KAAK;wFAAU;AAC/B;;;;AAIG;AACM,IAAA,QAAQ,GAAG,KAAK;4FAAU;AACnC;;;;;;AAMG;IACM,KAAK,GAAG,KAAK,CAA8B,SAAS,6EAAI,SAAS,EAAE,eAAe,EAAA,CAAG;;IAErF,OAAO,GAAG,KAAK,CAAC,QAAQ;gFAAU;AAC3C;;;AAGG;AACM,IAAA,MAAM,GAAG,KAAK;0FAAoB;AAC3C;;AAEG;AACM,IAAA,eAAe,GAAG,KAAK;mGAAsB;AAEnC,IAAA,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC5C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,QAAA,OAAO,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS;IACtD,CAAC;mFAAC;AAEiB,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACjD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;QAChC,IAAI,QAAQ,EAAE;AACZ,YAAA,OAAO,QAAQ;QACjB;AAEA,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO;AACtB,aAAA,UAAU,CAAC,YAAY,EAAE,EAAE;AAC3B,aAAA,IAAI,EAAE;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAClC,QAAA,IAAI,KAAa;AACjB,QAAA,IAAI,IAAY;AAChB,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC;AACjB,YAAA,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC;QACpB;aAAO;YACL,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC7B,YAAA,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE;AAC3B,YAAA,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE;QAC1B;QACA,IAAI,KAAK,EAAE;YACT,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE;QACtC;QACA,IAAI,IAAI,EAAE;YACR,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE;QACpC;QACA,OAAO,KAAK,GAAG,IAAI;IACrB,CAAC;wFAAC;AAEe,IAAA,4BAA4B,GAAG,MAAM,CAAC,gCAAgC,CAAC;AAExF,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,IAAI,CAAC,4BAA4B,CAAC,0BAA0B,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;AACtF,QAAA,CAAC,CAAC;IACJ;uGA9EW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,QAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5B9B,+oBAoBA,EAAA,MAAA,EAAA,CAAA,6xCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDLY,eAAe,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAad,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAf7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,OAAA,EACZ,CAAC,eAAe,CAAC,EAAA,IAAA,EAGpB;AACJ,wBAAA,SAAS,EAAE;qBACZ,EAAA,cAAA,EACe;AACd,wBAAA;AACE,4BAAA,SAAS,EAAE,gCAAgC;AAC3C,4BAAA,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW;AAC9B;AACF,qBAAA,EAAA,QAAA,EAAA,+oBAAA,EAAA,MAAA,EAAA,CAAA,6xCAAA,CAAA,EAAA;;;AE1BH;;;AAGG;;ACHH;;AAEG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input,
|
|
2
|
+
import { input, Component } from '@angular/core';
|
|
3
3
|
import { SiIconComponent } from '@siemens/element-ng/icon';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -11,22 +11,24 @@ class SiBadgeComponent {
|
|
|
11
11
|
* Optional icon
|
|
12
12
|
* @defaultValue ''
|
|
13
13
|
*/
|
|
14
|
-
icon = input(
|
|
14
|
+
icon = input(/* @ts-ignore */
|
|
15
|
+
...(ngDevMode ? [undefined, { debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
15
16
|
/**
|
|
16
17
|
* Badge display type.
|
|
17
18
|
* @defaultValue 'default'
|
|
18
19
|
*/
|
|
19
|
-
type = input('default',
|
|
20
|
-
|
|
21
|
-
static
|
|
20
|
+
type = input('default', /* @ts-ignore */
|
|
21
|
+
...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
|
|
22
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SiBadgeComponent, isStandalone: true, selector: "si-badge", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "status" }, properties: { "class": "\"bg-\" + type()" }, classAttribute: "badge" }, ngImport: i0, template: `
|
|
22
24
|
@let ico = icon();
|
|
23
25
|
@if (ico) {
|
|
24
26
|
<si-icon class="icon" [icon]="ico" />
|
|
25
27
|
}
|
|
26
28
|
<span class="text-truncate"><ng-content /></span>
|
|
27
|
-
`, isInline: true, dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }]
|
|
29
|
+
`, isInline: true, dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }] });
|
|
28
30
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SiBadgeComponent, decorators: [{
|
|
30
32
|
type: Component,
|
|
31
33
|
args: [{
|
|
32
34
|
selector: 'si-badge',
|
|
@@ -38,7 +40,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
38
40
|
}
|
|
39
41
|
<span class="text-truncate"><ng-content /></span>
|
|
40
42
|
`,
|
|
41
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
42
43
|
host: {
|
|
43
44
|
role: 'status',
|
|
44
45
|
class: 'badge',
|