@siemens/element-ng 49.13.0 → 49.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/siemens-element-ng-about.mjs +2 -2
- package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-accordion.mjs +16 -6
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-action-modal.mjs +64 -11
- package/fesm2022/siemens-element-ng-action-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ag-grid.mjs +7 -0
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +76 -32
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +6 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-autocomplete.mjs +17 -3
- package/fesm2022/siemens-element-ng-autocomplete.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +2 -2
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-card.mjs +21 -4
- package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-color-picker.mjs +11 -5
- package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +29 -2
- package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +20 -2
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +1 -0
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +20 -2
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs +36 -12
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +80 -15
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs +2 -2
- package/fesm2022/siemens-element-ng-filter-bar.mjs +11 -4
- package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +95 -38
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs +2 -0
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs +10 -7
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +5 -3
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-icon.mjs +1 -0
- package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ip-input.mjs +7 -11
- package/fesm2022/siemens-element-ng-ip-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-link.mjs +10 -1
- package/fesm2022/siemens-element-ng-link.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs +30 -4
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +3 -0
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +11 -0
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +1 -0
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs +11 -2
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs +14 -14
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +14 -19
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs +13 -2
- package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +41 -34
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-resize-observer.mjs +21 -3
- package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +2 -2
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +14 -8
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +80 -8
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-shadow-root.mjs +31 -4
- package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs +5 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs +10 -8
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +30 -3
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-summary-chip.mjs +2 -2
- package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tabs.mjs +6 -0
- package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-threshold.mjs +12 -3
- package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-toast-notification.mjs +6 -2
- package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +9 -4
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tour.mjs +4 -1
- package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +32 -7
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +15 -27
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-wizard.mjs +45 -5
- package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
- package/package.json +3 -3
- package/template-i18n.json +1 -1
- package/types/siemens-element-ng-accordion.d.ts +12 -3
- package/types/siemens-element-ng-application-header.d.ts +10 -9
- package/types/siemens-element-ng-auto-collapsable-list.d.ts +6 -1
- package/types/siemens-element-ng-autocomplete.d.ts +17 -3
- package/types/siemens-element-ng-card.d.ts +21 -4
- package/types/siemens-element-ng-color-picker.d.ts +8 -1
- package/types/siemens-element-ng-common.d.ts +12 -2
- package/types/siemens-element-ng-dashboard.d.ts +5 -0
- package/types/siemens-element-ng-date-range-filter.d.ts +13 -1
- package/types/siemens-element-ng-datepicker.d.ts +62 -9
- package/types/siemens-element-ng-filter-bar.d.ts +11 -4
- package/types/siemens-element-ng-filtered-search.d.ts +8 -1
- package/types/siemens-element-ng-form.d.ts +2 -0
- package/types/siemens-element-ng-formly.d.ts +3 -1
- package/types/siemens-element-ng-header-dropdown.d.ts +5 -3
- package/types/siemens-element-ng-icon.d.ts +1 -0
- package/types/siemens-element-ng-ip-input.d.ts +1 -1
- package/types/siemens-element-ng-link.d.ts +10 -1
- package/types/siemens-element-ng-menu.d.ts +17 -2
- package/types/siemens-element-ng-navbar-vertical-next.d.ts +2 -0
- package/types/siemens-element-ng-navbar.d.ts +1 -0
- package/types/siemens-element-ng-number-input.d.ts +11 -2
- package/types/siemens-element-ng-phone-number.d.ts +1 -2
- package/types/siemens-element-ng-popover.d.ts +10 -7
- package/types/siemens-element-ng-resize-observer.d.ts +21 -3
- package/types/siemens-element-ng-search-bar.d.ts +10 -2
- package/types/siemens-element-ng-select.d.ts +34 -2
- package/types/siemens-element-ng-shadow-root.d.ts +1 -0
- package/types/siemens-element-ng-split.d.ts +11 -8
- package/types/siemens-element-ng-status-bar.d.ts +30 -3
- package/types/siemens-element-ng-threshold.d.ts +8 -1
- package/types/siemens-element-ng-toast-notification.d.ts +3 -1
- package/types/siemens-element-ng-tooltip.d.ts +6 -4
- package/types/siemens-element-ng-tree-view.d.ts +19 -4
- package/types/siemens-element-ng-typeahead.d.ts +6 -4
- package/types/siemens-element-ng-wizard.d.ts +13 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-color-picker.mjs","sources":["../../../../projects/element-ng/color-picker/si-color-picker.component.ts","../../../../projects/element-ng/color-picker/si-color-picker.component.html","../../../../projects/element-ng/color-picker/index.ts","../../../../projects/element-ng/color-picker/siemens-element-ng-color-picker.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n input,\n model,\n signal,\n viewChild,\n viewChildren\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { elementOk } from '@siemens/element-icons';\nimport { isRTL } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\n/**\n * The Element data color palette is used as default.\n * Note: This array needs to be kept in sync with the design system data color tokens.\n */\nconst defaultDataColors: string[] = [\n 'element-data-1',\n 'element-data-2',\n 'element-data-3',\n 'element-data-4',\n 'element-data-5',\n 'element-data-6',\n 'element-data-7',\n 'element-data-8',\n 'element-data-9',\n 'element-data-10',\n 'element-data-11',\n 'element-data-12',\n 'element-data-13',\n 'element-data-14',\n 'element-data-15',\n 'element-data-16'\n];\n@Component({\n selector: 'si-color-picker',\n imports: [SiIconComponent, SiTranslatePipe, CdkConnectedOverlay, CdkOverlayOrigin],\n templateUrl: './si-color-picker.component.html',\n styleUrl: './si-color-picker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiColorPickerComponent,\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiColorPickerComponent implements ControlValueAccessor {\n // eslint-disable-next-line defaultValue/tsdoc-defaultValue-annotation\n /**\n * The color palette to choose the colors from. As colors, only valid CSS\n * variable names omitting the `--` prefix or Element color tokens omitting\n * the `$` prefix are supported.\n *\n * Note: If custom CSS variables are provided, they need to be defined for\n * both light and dark mode.\n *\n * @defaultValue The first 16 colors of the Element data color palette.\n */\n readonly colorPalette = input<string[]>(defaultDataColors);\n\n /**\n * The selected color.\n */\n readonly color = model<string>();\n\n /**\n * Specifies whether the color popup should automatically close on a color selection.\n *\n * @defaultValue false\n */\n readonly autoClose = input(false, { transform: booleanAttribute });\n\n /**\n * Specifies whether the color picker component is disabled.\n *\n * @defaultValue false\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled' });\n\n /**\n * Aria label for the color input button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLOR_PICKER.SELECTED_LABEL:Selected color {{color}}`)\n * ```\n */\n readonly ariaLabel = input(\n t(() => $localize`:@@SI_COLOR_PICKER.SELECTED_LABEL:Selected color {{color}}`)\n );\n\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n private readonly colorInputRef =\n viewChild.required<ElementRef<HTMLInputElement>>('colorInputBox');\n private readonly swatchInputs = viewChildren<ElementRef<HTMLInputElement>>('swatchInput');\n private readonly selectedSwatchInput = computed(() =>\n this.swatchInputs().find(swatchInput => swatchInput.nativeElement.checked)\n );\n private readonly disabledNgControl = signal(false);\n private readonly numberOfColumns = 4;\n protected readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n protected readonly isOverlayOpen = signal(false);\n protected readonly icons = addIcons({ elementOk });\n\n protected blur(): void {\n if (!this.autoClose()) {\n this.onTouched();\n }\n }\n\n protected arrowDown(index: number, event: Event): void {\n const nextIndex = index + this.numberOfColumns;\n this.focusLabel(nextIndex);\n event.preventDefault();\n }\n\n protected arrowUp(index: number, event: Event): void {\n const prevIndex = index - this.numberOfColumns;\n this.focusLabel(prevIndex);\n event.preventDefault();\n }\n\n protected arrowLeft(index: number, event: Event): void {\n const prevIndex = index + (isRTL() ? 1 : -1);\n this.focusLabel(prevIndex);\n event.preventDefault();\n }\n\n protected arrowRight(index: number, event: Event): void {\n const prevIndex = index + (isRTL() ? -1 : +1);\n this.focusLabel(prevIndex);\n event.preventDefault();\n }\n\n private focusLabel(index: number): void {\n const labels = this.swatchInputs();\n const totalSwatches = labels.length;\n const normalizedIndex = (index + totalSwatches) % totalSwatches;\n labels[normalizedIndex].nativeElement.focus();\n }\n\n protected openOverlay(): void {\n this.isOverlayOpen.set(true);\n this.focusSelectedColor();\n }\n\n protected overlayDetach(): void {\n this.isOverlayOpen.set(false);\n setTimeout(() => {\n this.colorInputRef().nativeElement?.focus();\n });\n }\n\n private focusSelectedColor(): void {\n setTimeout(() => {\n this.selectedSwatchInput()?.nativeElement.focus();\n });\n }\n\n protected selectColor(color: string): void {\n this.color.set(color);\n this.onChange(color!);\n if (this.autoClose()) {\n this.overlayDetach();\n }\n }\n\n writeValue(value: string): void {\n this.color.set(value);\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n}\n","<button\n #colorInputBox\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n class=\"input-color-box\"\n type=\"button\"\n [class.is-open]=\"isOverlayOpen()\"\n [attr.aria-label]=\"\n ariaLabel() ? (ariaLabel() | translate: { color: color() ?? '' }) : (color() ?? null)\n \"\n [disabled]=\"disabled()\"\n (keydown.arrowDown)=\"openOverlay()\"\n (blur)=\"blur()\"\n (click)=\"openOverlay()\"\n>\n <div class=\"inside-box\" [style.background-color]=\"'var(--' + color() + ')'\"></div>\n</button>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOverlayOpen()\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n (backdropClick)=\"overlayDetach()\"\n (detach)=\"overlayDetach()\"\n>\n <div #colorPaletteRef role=\"grid\" class=\"colors elevation-1 rounded-2 bg-base-1 p-4 mt-1\">\n <div role=\"row\" class=\"colors-row gap-4\">\n @for (paint of colorPalette(); track $index) {\n <div role=\"gridcell\" class=\"swatch\">\n <input\n #swatchInput\n type=\"radio\"\n name=\"color\"\n class=\"btn-check\"\n [id]=\"paint\"\n [attr.aria-label]=\"paint\"\n [value]=\"paint\"\n [checked]=\"color() === paint\"\n (change)=\"selectColor(paint)\"\n (keydown.enter)=\"selectColor(paint)\"\n (keydown.arrowUp)=\"arrowUp($index, $event)\"\n (keydown.arrowDown)=\"arrowDown($index, $event)\"\n (keydown.arrowLeft)=\"arrowLeft($index, $event)\"\n (keydown.arrowRight)=\"arrowRight($index, $event)\"\n (keydown.tab)=\"overlayDetach()\"\n />\n <label\n class=\"color-box swatch-label\"\n [attr.for]=\"paint\"\n [style.background]=\"'var(--' + paint + ')'\"\n >\n @if (color() === paint) {\n <si-icon class=\"icon text-inverse p-1\" [icon]=\"icons.elementOk\" />\n }\n </label>\n </div>\n }\n </div>\n </div>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-color-picker.component';\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-color-picker.mjs","sources":["../../../../projects/element-ng/color-picker/si-color-picker.component.ts","../../../../projects/element-ng/color-picker/si-color-picker.component.html","../../../../projects/element-ng/color-picker/index.ts","../../../../projects/element-ng/color-picker/siemens-element-ng-color-picker.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n input,\n model,\n signal,\n viewChild,\n viewChildren\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { elementOk } from '@siemens/element-icons';\nimport { defaultConnectedOverlayScrollStrategy, isRTL } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\n/**\n * The Element data color palette is used as default.\n * Note: This array needs to be kept in sync with the design system data color tokens.\n */\nconst defaultDataColors: string[] = [\n 'element-data-1',\n 'element-data-2',\n 'element-data-3',\n 'element-data-4',\n 'element-data-5',\n 'element-data-6',\n 'element-data-7',\n 'element-data-8',\n 'element-data-9',\n 'element-data-10',\n 'element-data-11',\n 'element-data-12',\n 'element-data-13',\n 'element-data-14',\n 'element-data-15',\n 'element-data-16'\n];\n@Component({\n selector: 'si-color-picker',\n imports: [SiIconComponent, SiTranslatePipe, CdkConnectedOverlay, CdkOverlayOrigin],\n templateUrl: './si-color-picker.component.html',\n styleUrl: './si-color-picker.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiColorPickerComponent,\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiColorPickerComponent implements ControlValueAccessor {\n // eslint-disable-next-line defaultValue/tsdoc-defaultValue-annotation\n /**\n * The color palette to choose the colors from. As colors, only valid CSS\n * variable names omitting the `--` prefix or Element color tokens omitting\n * the `$` prefix are supported.\n *\n * Note: If custom CSS variables are provided, they need to be defined for\n * both light and dark mode.\n *\n * @defaultValue The first 16 colors of the Element data color palette.\n */\n readonly colorPalette = input<string[]>(defaultDataColors);\n\n /**\n * The selected color.\n */\n readonly color = model<string>();\n\n /**\n * Specifies whether the color popup should automatically close on a color selection.\n *\n * @defaultValue false\n */\n readonly autoClose = input(false, { transform: booleanAttribute });\n\n /**\n * Optional CDK scroll strategy used for the color picker overlay.\n *\n * @defaultValue defaultConnectedOverlayScrollStrategy()\n */\n readonly scrollStrategy = input(defaultConnectedOverlayScrollStrategy());\n\n /**\n * Specifies whether the color picker component is disabled.\n *\n * @defaultValue false\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled' });\n\n /**\n * Aria label for the color input button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLOR_PICKER.SELECTED_LABEL:Selected color {{color}}`)\n * ```\n */\n readonly ariaLabel = input(\n t(() => $localize`:@@SI_COLOR_PICKER.SELECTED_LABEL:Selected color {{color}}`)\n );\n\n private onChange: (value: string) => void = () => {};\n private onTouched: () => void = () => {};\n\n private readonly colorInputRef =\n viewChild.required<ElementRef<HTMLInputElement>>('colorInputBox');\n private readonly swatchInputs = viewChildren<ElementRef<HTMLInputElement>>('swatchInput');\n private readonly selectedSwatchInput = computed(() =>\n this.swatchInputs().find(swatchInput => swatchInput.nativeElement.checked)\n );\n private readonly disabledNgControl = signal(false);\n private readonly numberOfColumns = 4;\n protected readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n protected readonly isOverlayOpen = signal(false);\n protected readonly icons = addIcons({ elementOk });\n\n protected blur(): void {\n if (!this.autoClose()) {\n this.onTouched();\n }\n }\n\n protected arrowDown(index: number, event: Event): void {\n const nextIndex = index + this.numberOfColumns;\n this.focusLabel(nextIndex);\n event.preventDefault();\n }\n\n protected arrowUp(index: number, event: Event): void {\n const prevIndex = index - this.numberOfColumns;\n this.focusLabel(prevIndex);\n event.preventDefault();\n }\n\n protected arrowLeft(index: number, event: Event): void {\n const prevIndex = index + (isRTL() ? 1 : -1);\n this.focusLabel(prevIndex);\n event.preventDefault();\n }\n\n protected arrowRight(index: number, event: Event): void {\n const prevIndex = index + (isRTL() ? -1 : +1);\n this.focusLabel(prevIndex);\n event.preventDefault();\n }\n\n private focusLabel(index: number): void {\n const labels = this.swatchInputs();\n const totalSwatches = labels.length;\n const normalizedIndex = (index + totalSwatches) % totalSwatches;\n labels[normalizedIndex].nativeElement.focus();\n }\n\n protected openOverlay(): void {\n this.isOverlayOpen.set(true);\n this.focusSelectedColor();\n }\n\n protected overlayDetach(): void {\n this.isOverlayOpen.set(false);\n setTimeout(() => {\n this.colorInputRef().nativeElement?.focus();\n });\n }\n\n private focusSelectedColor(): void {\n setTimeout(() => {\n this.selectedSwatchInput()?.nativeElement.focus();\n });\n }\n\n protected selectColor(color: string): void {\n this.color.set(color);\n this.onChange(color!);\n if (this.autoClose()) {\n this.overlayDetach();\n }\n }\n\n writeValue(value: string): void {\n this.color.set(value);\n }\n\n registerOnChange(fn: (value: string) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n}\n","<button\n #colorInputBox\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n class=\"input-color-box\"\n type=\"button\"\n [class.is-open]=\"isOverlayOpen()\"\n [attr.aria-label]=\"\n ariaLabel() ? (ariaLabel() | translate: { color: color() ?? '' }) : (color() ?? null)\n \"\n [disabled]=\"disabled()\"\n (keydown.arrowDown)=\"openOverlay()\"\n (blur)=\"blur()\"\n (click)=\"openOverlay()\"\n>\n <div class=\"inside-box\" [style.background-color]=\"'var(--' + color() + ')'\"></div>\n</button>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOverlayOpen()\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n (backdropClick)=\"overlayDetach()\"\n (detach)=\"overlayDetach()\"\n>\n <div #colorPaletteRef role=\"grid\" class=\"colors elevation-1 rounded-2 bg-base-1 p-4 mt-1\">\n <div role=\"row\" class=\"colors-row gap-4\">\n @for (paint of colorPalette(); track $index) {\n <div role=\"gridcell\" class=\"swatch\">\n <input\n #swatchInput\n type=\"radio\"\n name=\"color\"\n class=\"btn-check\"\n [id]=\"paint\"\n [attr.aria-label]=\"paint\"\n [value]=\"paint\"\n [checked]=\"color() === paint\"\n (change)=\"selectColor(paint)\"\n (keydown.enter)=\"selectColor(paint)\"\n (keydown.arrowUp)=\"arrowUp($index, $event)\"\n (keydown.arrowDown)=\"arrowDown($index, $event)\"\n (keydown.arrowLeft)=\"arrowLeft($index, $event)\"\n (keydown.arrowRight)=\"arrowRight($index, $event)\"\n (keydown.tab)=\"overlayDetach()\"\n />\n <label\n class=\"color-box swatch-label\"\n [attr.for]=\"paint\"\n [style.background]=\"'var(--' + paint + ')'\"\n >\n @if (color() === paint) {\n <si-icon class=\"icon text-inverse p-1\" [icon]=\"icons.elementOk\" />\n }\n </label>\n </div>\n }\n </div>\n </div>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-color-picker.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -17,9 +17,13 @@ import { first } from 'rxjs/operators';
|
|
|
17
17
|
* SPDX-License-Identifier: MIT
|
|
18
18
|
*/
|
|
19
19
|
class SiColumnSelectionEditorComponent {
|
|
20
|
+
/** The column data object being displayed and edited, including its id, title, visibility, and editable state. */
|
|
20
21
|
column = input.required(...(ngDevMode ? [{ debugName: "column" }] : []));
|
|
22
|
+
/** Whether this column item is currently selected (visible) in the listbox. */
|
|
21
23
|
selected = input.required(...(ngDevMode ? [{ debugName: "selected" }] : []));
|
|
24
|
+
/** Accessible label for the rename input field shown when editing the column title. */
|
|
22
25
|
renameInputLabel = input.required(...(ngDevMode ? [{ debugName: "renameInputLabel" }] : []));
|
|
26
|
+
/** Whether the visibility of this column can be toggled by the user. When `false`, the visibility toggle button is hidden. */
|
|
23
27
|
columnVisibilityConfigurable = input.required(...(ngDevMode ? [{ debugName: "columnVisibilityConfigurable" }] : []));
|
|
24
28
|
titleChange = output();
|
|
25
29
|
visibilityChange = output();
|
|
@@ -81,10 +85,14 @@ const dragConfig = {
|
|
|
81
85
|
zIndex: 10000
|
|
82
86
|
};
|
|
83
87
|
class SiColumnSelectionDialogComponent {
|
|
88
|
+
/** HTML `id` applied to the dialog title element, used for `aria-labelledby` association. */
|
|
84
89
|
titleId = input(...(ngDevMode ? [undefined, { debugName: "titleId" }] : []));
|
|
90
|
+
/** The dialog title text displayed in the modal header. */
|
|
85
91
|
heading = input(...(ngDevMode ? [undefined, { debugName: "heading" }] : []));
|
|
92
|
+
/** The section title displayed above the column list. */
|
|
86
93
|
bodyTitle = input(...(ngDevMode ? [undefined, { debugName: "bodyTitle" }] : []));
|
|
87
94
|
/**
|
|
95
|
+
* Label for the submit button that applies the column selection.
|
|
88
96
|
* @defaultValue
|
|
89
97
|
* ```
|
|
90
98
|
* t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.SUBMIT:Apply`)
|
|
@@ -92,6 +100,7 @@ class SiColumnSelectionDialogComponent {
|
|
|
92
100
|
*/
|
|
93
101
|
submitBtnName = input(t(() => $localize `:@@SI_COLUMN_SELECTION_DIALOG.SUBMIT:Apply`), ...(ngDevMode ? [{ debugName: "submitBtnName" }] : []));
|
|
94
102
|
/**
|
|
103
|
+
* Label for the cancel button that discards changes and closes the dialog.
|
|
95
104
|
* @defaultValue
|
|
96
105
|
* ```
|
|
97
106
|
* t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.CANCEL:Cancel`)
|
|
@@ -99,6 +108,7 @@ class SiColumnSelectionDialogComponent {
|
|
|
99
108
|
*/
|
|
100
109
|
cancelBtnName = input(t(() => $localize `:@@SI_COLUMN_SELECTION_DIALOG.CANCEL:Cancel`), ...(ngDevMode ? [{ debugName: "cancelBtnName" }] : []));
|
|
101
110
|
/**
|
|
111
|
+
* Label for the button that resets the column configuration to its original default state.
|
|
102
112
|
* @defaultValue
|
|
103
113
|
* ```
|
|
104
114
|
* t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT:Restore to default`)
|
|
@@ -106,6 +116,7 @@ class SiColumnSelectionDialogComponent {
|
|
|
106
116
|
*/
|
|
107
117
|
restoreToDefaultBtnName = input(t(() => $localize `:@@SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT:Restore to default`), ...(ngDevMode ? [{ debugName: "restoreToDefaultBtnName" }] : []));
|
|
108
118
|
/**
|
|
119
|
+
* Label shown next to a column that is currently hidden.
|
|
109
120
|
* @defaultValue
|
|
110
121
|
* ```
|
|
111
122
|
* t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.HIDDEN:Hidden`)
|
|
@@ -113,16 +124,25 @@ class SiColumnSelectionDialogComponent {
|
|
|
113
124
|
*/
|
|
114
125
|
hiddenText = input(t(() => $localize `:@@SI_COLUMN_SELECTION_DIALOG.HIDDEN:Hidden`), ...(ngDevMode ? [{ debugName: "hiddenText" }] : []));
|
|
115
126
|
/**
|
|
127
|
+
* Label shown next to a column that is currently visible.
|
|
116
128
|
* @defaultValue
|
|
117
129
|
* ```
|
|
118
130
|
* t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.VISIBLE:Visible`)
|
|
119
131
|
* ```
|
|
120
132
|
*/
|
|
121
133
|
visibleText = input(t(() => $localize `:@@SI_COLUMN_SELECTION_DIALOG.VISIBLE:Visible`), ...(ngDevMode ? [{ debugName: "visibleText" }] : []));
|
|
122
|
-
/**
|
|
134
|
+
/**
|
|
135
|
+
* Whether to show the "Restore to default" button.
|
|
136
|
+
* @defaultValue false
|
|
137
|
+
*/
|
|
123
138
|
restoreEnabled = input(false, { ...(ngDevMode ? { debugName: "restoreEnabled" } : {}), transform: booleanAttribute });
|
|
139
|
+
/**
|
|
140
|
+
* Two-way bound array of `Column` objects defining the column list state.
|
|
141
|
+
* Changes are reflected back to the parent on reorder, visibility toggle, or rename.
|
|
142
|
+
*/
|
|
124
143
|
columns = model.required(...(ngDevMode ? [{ debugName: "columns" }] : []));
|
|
125
144
|
/**
|
|
145
|
+
* Additional interpolation parameters passed to translatable strings.
|
|
126
146
|
* @defaultValue
|
|
127
147
|
* ```
|
|
128
148
|
* {}
|
|
@@ -130,6 +150,7 @@ class SiColumnSelectionDialogComponent {
|
|
|
130
150
|
*/
|
|
131
151
|
translationParams = input({}, ...(ngDevMode ? [{ debugName: "translationParams" }] : []));
|
|
132
152
|
/**
|
|
153
|
+
* Accessible label for the column list, used as an `aria-label`. Describes available keyboard shortcuts for reordering and renaming.
|
|
133
154
|
* @defaultValue
|
|
134
155
|
* ```
|
|
135
156
|
* t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.LIST_ARIA_LABEL:List of possible columns. Items can be moved using Alt+ArrowUp or Alt+ArrowDown. Press Enter to rename supported items.`)
|
|
@@ -137,6 +158,7 @@ class SiColumnSelectionDialogComponent {
|
|
|
137
158
|
*/
|
|
138
159
|
listAriaLabel = input(t(() => $localize `:@@SI_COLUMN_SELECTION_DIALOG.LIST_ARIA_LABEL:List of possible columns. Items can be moved using Alt+ArrowUp or Alt+ArrowDown. Press Enter to rename supported items.`), ...(ngDevMode ? [{ debugName: "listAriaLabel" }] : []));
|
|
139
160
|
/**
|
|
161
|
+
* Accessible label for the rename input field inside each column editor row.
|
|
140
162
|
* @defaultValue
|
|
141
163
|
* ```
|
|
142
164
|
* t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL:Rename column`)
|
|
@@ -144,6 +166,7 @@ class SiColumnSelectionDialogComponent {
|
|
|
144
166
|
*/
|
|
145
167
|
renameInputAriaLabel = input(t(() => $localize `:@@SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL:Rename column`), ...(ngDevMode ? [{ debugName: "renameInputAriaLabel" }] : []));
|
|
146
168
|
/**
|
|
169
|
+
* Live-region message announced after a column is successfully moved to a new position. Supports `{{targetPosition}}` interpolation.
|
|
147
170
|
* @defaultValue
|
|
148
171
|
* ```
|
|
149
172
|
* t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED:Item is now at position {{targetPosition}}`)
|
|
@@ -151,13 +174,17 @@ class SiColumnSelectionDialogComponent {
|
|
|
151
174
|
*/
|
|
152
175
|
a11yItemMovedMessage = input(t(() => $localize `:@@SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED:Item is now at position {{targetPosition}}`), ...(ngDevMode ? [{ debugName: "a11yItemMovedMessage" }] : []));
|
|
153
176
|
/**
|
|
177
|
+
* Live-region message announced when a column could not be moved (e.g. already at the boundary).
|
|
154
178
|
* @defaultValue
|
|
155
179
|
* ```
|
|
156
180
|
* t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_NOT_MOVED:Item was not moved`)
|
|
157
181
|
* ```
|
|
158
182
|
*/
|
|
159
183
|
a11yItemNotMovedMessage = input(t(() => $localize `:@@SI_COLUMN_SELECTION_DIALOG.ITEM_NOT_MOVED:Item was not moved`), ...(ngDevMode ? [{ debugName: "a11yItemNotMovedMessage" }] : []));
|
|
160
|
-
/**
|
|
184
|
+
/**
|
|
185
|
+
* Whether column visibility can be toggled by the user. When `false`, visibility controls are hidden for all columns.
|
|
186
|
+
* @defaultValue true
|
|
187
|
+
*/
|
|
161
188
|
columnVisibilityConfigurable = input(true, { ...(ngDevMode ? { debugName: "columnVisibilityConfigurable" } : {}), transform: booleanAttribute });
|
|
162
189
|
listOptions = viewChildren(CdkOption, ...(ngDevMode ? [{ debugName: "listOptions" }] : []));
|
|
163
190
|
modalBodyElement = viewChild.required('modalBody');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-column-selection-dialog.mjs","sources":["../../../../projects/element-ng/column-selection-dialog/column-selection-editor/si-column-selection-editor.component.ts","../../../../projects/element-ng/column-selection-dialog/column-selection-editor/si-column-selection-editor.component.html","../../../../projects/element-ng/column-selection-dialog/si-column-selection-dialog.component.ts","../../../../projects/element-ng/column-selection-dialog/si-column-selection-dialog.component.html","../../../../projects/element-ng/column-selection-dialog/si-column-selection-dialog.service.ts","../../../../projects/element-ng/column-selection-dialog/index.ts","../../../../projects/element-ng/column-selection-dialog/siemens-element-ng-column-selection-dialog.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkDragHandle } from '@angular/cdk/drag-drop';\nimport { CdkOption } from '@angular/cdk/listbox';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n inject,\n input,\n output,\n viewChild\n} from '@angular/core';\nimport { elementHide, elementLock, elementMenu, elementShow } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\nimport { Column } from '../si-column-selection-dialog.types';\n\n@Component({\n selector: 'si-column-selection-editor',\n imports: [CdkDragHandle, SiIconComponent],\n templateUrl: './si-column-selection-editor.component.html',\n styles: `\n .form-control {\n cursor: text;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block my-4 mx-1 rounded-2 elevation-1'\n }\n})\nexport class SiColumnSelectionEditorComponent {\n readonly column = input.required<Column>();\n readonly selected = input.required<boolean>();\n readonly renameInputLabel = input.required<string>();\n readonly columnVisibilityConfigurable = input.required<boolean>();\n\n readonly titleChange = output();\n readonly visibilityChange = output();\n\n protected readonly cdkOption = inject(CdkOption);\n protected editing = false;\n private readonly title = viewChild.required<ElementRef<HTMLInputElement>>('title');\n private readonly elementRef = inject<ElementRef<HTMLDivElement>>(ElementRef);\n protected readonly icons = addIcons({\n elementHide,\n elementMenu,\n elementLock,\n elementShow\n });\n\n @HostListener('keydown.enter', ['$event'])\n protected tryEdit(event: Event): void {\n if (this.column().editable) {\n event.stopPropagation();\n this.startEdit();\n }\n }\n\n protected updateTitle(value: string): void {\n this.column().title = value;\n this.titleChange.emit();\n }\n\n protected startEdit(): void {\n if (this.column().editable) {\n this.editing = true;\n setTimeout(() => this.title().nativeElement.focus());\n }\n }\n\n protected stopEdit(): void {\n this.editing = false;\n this.elementRef.nativeElement.focus();\n }\n\n protected toggleVisibility(): void {\n this.cdkOption.toggle();\n // manually toggling does not emit an event, so we have to fire one\n this.visibilityChange.emit();\n }\n}\n","<div class=\"d-flex p-4\" (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\n <div class=\"flex-fill overflow-hidden\" [attr.aria-label]=\"column().title\">\n @if (editing) {\n <input\n #title\n type=\"text\"\n class=\"form-control w-100\"\n [attr.aria-label]=\"renameInputLabel()\"\n [value]=\"column().title\"\n (input)=\"updateTitle(title.value)\"\n (keydown.enter)=\"stopEdit()\"\n (blur)=\"stopEdit()\"\n />\n } @else {\n <span\n class=\"form-control text-truncate w-100\"\n [class.border-0]=\"!column().editable\"\n [class.px-0]=\"!column().editable\"\n [class.disabled]=\"column().disabled\"\n (click)=\"startEdit()\"\n >{{ column().title }}</span\n >\n }\n </div>\n\n <div class=\"d-flex align-items-center flex-shrink-0\">\n @if (columnVisibilityConfigurable()) {\n <span\n class=\"btn btn-circle btn-tertiary ms-4\"\n [class.text-primary]=\"!column().disabled\"\n [class.disabled]=\"column().disabled\"\n (click)=\"toggleVisibility()\"\n >\n <si-icon [icon]=\"selected() ? icons.elementShow : icons.elementHide\" />\n </span>\n }\n <span\n cdkDragHandle\n class=\"btn btn-circle btn-tertiary ms-4\"\n [class.disabled]=\"column().disabled\"\n [class.pe-none]=\"!column().draggable\"\n >\n <si-icon\n [class.pe-none]=\"!column().draggable\"\n [icon]=\"column().draggable ? icons.elementMenu : icons.elementLock\"\n />\n </span>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport {\n CDK_DRAG_CONFIG,\n CdkDrag,\n CdkDragDrop,\n CdkDropList,\n moveItemInArray\n} from '@angular/cdk/drag-drop';\nimport { CdkListbox, CdkOption } from '@angular/cdk/listbox';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n model,\n OnInit,\n viewChild,\n viewChildren\n} from '@angular/core';\nimport { elementCancel } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { ModalRef } from '@siemens/element-ng/modal';\nimport {\n injectSiTranslateService,\n SiTranslatePipe,\n t,\n TranslatableString\n} from '@siemens/element-translate-ng/translate';\nimport { first } from 'rxjs/operators';\n\nimport { SiColumnSelectionEditorComponent } from './column-selection-editor/si-column-selection-editor.component';\nimport { Column, ColumnSelectionDialogResult } from './si-column-selection-dialog.types';\n\nconst dragConfig = {\n dragStartThreshold: 0,\n pointerDirectionChangeThreshold: 5,\n zIndex: 10000\n};\n\n@Component({\n selector: 'si-column-selection-dialog',\n imports: [\n CdkDrag,\n CdkDropList,\n CdkListbox,\n CdkOption,\n CdkScrollableModule,\n SiIconComponent,\n SiTranslatePipe,\n SiColumnSelectionEditorComponent\n ],\n templateUrl: './si-column-selection-dialog.component.html',\n styleUrl: './si-column-selection-dialog.component.scss',\n providers: [{ provide: CDK_DRAG_CONFIG, useValue: dragConfig }],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiColumnSelectionDialogComponent implements OnInit {\n readonly titleId = input<string>();\n readonly heading = input<TranslatableString>();\n readonly bodyTitle = input<TranslatableString>();\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.SUBMIT:Apply`)\n * ```\n */\n readonly submitBtnName = input<TranslatableString>(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.SUBMIT:Apply`)\n );\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.CANCEL:Cancel`)\n * ```\n */\n readonly cancelBtnName = input<TranslatableString>(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.CANCEL:Cancel`)\n );\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT:Restore to default`)\n * ```\n */\n readonly restoreToDefaultBtnName = input<TranslatableString>(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT:Restore to default`)\n );\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.HIDDEN:Hidden`)\n * ```\n */\n readonly hiddenText = input<TranslatableString>(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.HIDDEN:Hidden`)\n );\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.VISIBLE:Visible`)\n * ```\n */\n readonly visibleText = input<TranslatableString>(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.VISIBLE:Visible`)\n );\n /** @defaultValue false */\n readonly restoreEnabled = input(false, { transform: booleanAttribute });\n readonly columns = model.required<Column[]>();\n /**\n * @defaultValue\n * ```\n * {}\n * ```\n */\n readonly translationParams = input<Record<string, unknown>>({});\n\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.LIST_ARIA_LABEL:List of possible columns. Items can be moved using Alt+ArrowUp or Alt+ArrowDown. Press Enter to rename supported items.`)\n * ```\n */\n readonly listAriaLabel = input(\n t(\n () =>\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.LIST_ARIA_LABEL:List of possible columns. Items can be moved using Alt+ArrowUp or Alt+ArrowDown. Press Enter to rename supported items.`\n )\n );\n\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL:Rename column`)\n * ```\n */\n readonly renameInputAriaLabel = input(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL:Rename column`)\n );\n\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED:Item is now at position {{targetPosition}}`)\n * ```\n */\n readonly a11yItemMovedMessage = input<TranslatableString>(\n t(\n () =>\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED:Item is now at position {{targetPosition}}`\n )\n );\n /**\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_NOT_MOVED:Item was not moved`)\n * ```\n */\n\n readonly a11yItemNotMovedMessage = input<TranslatableString>(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_NOT_MOVED:Item was not moved`)\n );\n /** @defaultValue true */\n readonly columnVisibilityConfigurable = input(true, { transform: booleanAttribute });\n\n private readonly listOptions = viewChildren(CdkOption);\n\n private readonly modalBodyElement = viewChild.required<ElementRef<HTMLDivElement>>('modalBody');\n\n private tempHeaderData: Column[] = [];\n\n protected readonly modalRef = inject(\n ModalRef<SiColumnSelectionDialogComponent, ColumnSelectionDialogResult>\n );\n protected readonly icons = addIcons({ elementCancel });\n\n protected visibleIds: string[] = [];\n\n private readonly liveAnnouncer = inject(LiveAnnouncer);\n private readonly translateService = injectSiTranslateService();\n\n ngOnInit(): void {\n this.setupColumnData();\n }\n\n /** @internal */\n get backupColumns(): Column[] {\n return this.tempHeaderData;\n }\n\n protected submitColumnSelection(): void {\n this.modalRef.hide({ type: 'ok', columns: this.columns() });\n }\n\n protected cancelColumnSelection(): void {\n this.columns.set([]);\n this.tempHeaderData.forEach(element => this.columns.update(a => [...a, element]));\n this.modalRef.hide({ type: 'cancel', columns: this.columns() });\n }\n\n protected drop(event: CdkDragDrop<string[]>): void {\n const columns = this.columns();\n if (columns[event.currentIndex].draggable) {\n moveItemInArray(columns, event.previousIndex, event.currentIndex);\n this.emitChange();\n }\n }\n\n protected restoreToDefault(): void {\n this.modalRef.hidden.next({\n type: 'restoreDefault',\n columns: this.columns(),\n updateColumns: columns => {\n this.columns.set(columns);\n this.setupColumnData();\n }\n });\n }\n\n protected moveDown(index: number, event: Event): void {\n const columns = this.columns();\n const listOptions = this.listOptions();\n if (columns[index].draggable) {\n let targetIndex = index + 1;\n while (columns[targetIndex] && !columns[targetIndex].draggable) {\n targetIndex++;\n }\n\n if (targetIndex !== index && columns[targetIndex]?.draggable) {\n event.preventDefault();\n moveItemInArray(columns, index, targetIndex);\n\n // When moving the first partially visible item down,\n // the browser tries to keep its position stable within the viewport by automatically scrolling down.\n // This behavior is not wanted here, so we restore the previous scroll after moving the item\n // TODO: check if this could be solved easier\n if (\n listOptions.at(index)!.element.getBoundingClientRect().top <=\n this.modalBodyElement().nativeElement.getBoundingClientRect().top\n ) {\n const previousScrollTop = this.modalBodyElement().nativeElement.scrollTop;\n setTimeout(() => (this.modalBodyElement().nativeElement.scrollTop = previousScrollTop));\n }\n\n // When moving the last visible element down, the scroll position is not adopted. So its scroll out of view.\n // We correct this manually by scrolling it back into view\n const targetElement = listOptions.at(targetIndex)!.element;\n if (\n targetElement.getBoundingClientRect().bottom >\n this.modalBodyElement().nativeElement.getBoundingClientRect().bottom\n ) {\n targetElement.scrollIntoView({ block: 'end' });\n }\n\n this.announceSuccessfulMove(targetIndex);\n this.emitChange();\n } else {\n this.announceNotSuccessfulMove();\n }\n }\n }\n\n protected moveUp(index: number, event: Event): void {\n const columns = this.columns();\n if (columns[index].draggable) {\n let targetIndex = index - 1;\n while (columns[targetIndex] && !columns[targetIndex].draggable) {\n targetIndex--;\n }\n\n if (targetIndex !== index && columns[targetIndex]?.draggable) {\n event.preventDefault();\n moveItemInArray(columns, index, targetIndex);\n // it seems like this is only necessary for move up. Don't know why\n setTimeout(() => this.listOptions().at(targetIndex)!.focus());\n this.announceSuccessfulMove(targetIndex);\n this.emitChange();\n } else {\n this.announceNotSuccessfulMove();\n }\n }\n }\n\n protected emitChange(): void {\n this.modalRef.hidden.next({ type: 'instant', columns: this.columns() });\n }\n\n protected updateVisibility(): void {\n const value = this.listOptions()\n .filter(option => option.isSelected())\n .map(option => option.value);\n for (const column of this.columns()) {\n column.visible = value.includes(column.id);\n }\n this.emitChange();\n }\n\n private setupColumnData(): void {\n const columns = this.columns();\n this.tempHeaderData = columns.map(x => Object.assign({}, x));\n this.visibleIds = columns.filter(column => column.visible).map(column => column.id);\n }\n\n private announceSuccessfulMove(index: number): void {\n this.announceMove(this.a11yItemMovedMessage(), {\n ...this.translationParams,\n targetPosition: index + 1\n });\n }\n\n private announceNotSuccessfulMove(): void {\n this.announceMove(this.a11yItemNotMovedMessage(), this.translationParams());\n }\n\n private announceMove(message?: string, translationParams?: Record<string, unknown>): void {\n if (message) {\n this.translateService\n .translateAsync(message, translationParams)\n .pipe(first())\n .subscribe(translatedMessage => this.liveAnnouncer.announce(translatedMessage));\n }\n }\n}\n","<div class=\"modal-header\">\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-tertiary-ghost\"\n [attr.aria-label]=\"cancelBtnName() | translate\"\n (click)=\"cancelColumnSelection()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n</div>\n<p class=\"text-secondary px-8 pb-5 mb-0\">{{ bodyTitle() | translate: translationParams() }}</p>\n<div #modalBody class=\"modal-body\" tabindex=\"-1\" cdkScrollable>\n <div\n cdkListbox\n cdkListboxMultiple\n cdkDropList\n [cdkListboxValue]=\"visibleIds\"\n [attr.aria-label]=\"listAriaLabel() | translate: translationParams\"\n (cdkListboxValueChange)=\"updateVisibility()\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n @for (column of columns(); track column) {\n <si-column-selection-editor\n #cdkOption=\"cdkOption\"\n cdkDrag\n class=\"focus-inside\"\n [cdkDragDisabled]=\"!column.draggable\"\n [cdkOption]=\"column.id\"\n [cdkOptionDisabled]=\"column.disabled\"\n [column]=\"column\"\n [selected]=\"cdkOption.isSelected()\"\n [renameInputLabel]=\"renameInputAriaLabel() | translate: translationParams\"\n [columnVisibilityConfigurable]=\"columnVisibilityConfigurable()\"\n (titleChange)=\"emitChange()\"\n (visibilityChange)=\"updateVisibility()\"\n (keydown.alt.arrowUp)=\"moveUp($index, $event)\"\n (keydown.alt.arrowDown)=\"moveDown($index, $event)\"\n />\n }\n </div>\n</div>\n<div class=\"modal-footer\">\n @if (restoreEnabled()) {\n <button type=\"button\" class=\"btn btn-tertiary me-auto\" (click)=\"restoreToDefault()\">\n {{ restoreToDefaultBtnName() | translate }}\n </button>\n }\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancelColumnSelection()\">\n {{ cancelBtnName() | translate }}\n </button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"submitColumnSelection()\">\n {{ submitBtnName() | translate }}\n </button>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injectable } from '@angular/core';\nimport {\n createModalConfig,\n ModalDependencyInjectionOptions,\n ModalOptions,\n SiModalService\n} from '@siemens/element-ng/modal';\nimport { Observable } from 'rxjs';\n\nimport { SiColumnSelectionDialogComponent } from './si-column-selection-dialog.component';\nimport {\n ColumnSelectionDialogResult,\n SiColumnSelectionDialogConfig\n} from './si-column-selection-dialog.types';\n\n@Injectable({ providedIn: 'root' })\nexport class SiColumnSelectionDialogService {\n private modalService = inject(SiModalService);\n\n /**\n * Opens a column selection dialog.\n *\n * Despite other dialogs,\n * this dialog informs the consumer not ONLY with clicking `submit` or `cancel`,\n * but also with changing the place or visibility of a dialog row\n * thanks to the `instant` type of emitted event.\n *\n * {@label WITH_OBJECT}\n */\n showColumnSelectionDialog(\n dialogConfig: SiColumnSelectionDialogConfig,\n diOptions?: ModalDependencyInjectionOptions\n ): Observable<ColumnSelectionDialogResult> {\n return new Observable<ColumnSelectionDialogResult>(subscriber => {\n const config: ModalOptions<any> = createModalConfig(dialogConfig);\n Object.assign(config, diOptions);\n\n config.class += ' modal-dialog-scrollable';\n config.keyboard = true;\n\n const modalRef = this.modalService.show<SiColumnSelectionDialogComponent>(\n SiColumnSelectionDialogComponent,\n config\n );\n const subscription = modalRef.hidden.subscribe(\n (confirmationResult: ColumnSelectionDialogResult | undefined) => {\n const keepModalOpen =\n confirmationResult?.type === 'instant' || confirmationResult?.type === 'restoreDefault';\n confirmationResult ??= { type: 'cancel', columns: modalRef.content.backupColumns };\n subscriber.next(confirmationResult);\n if (!keepModalOpen) {\n subscription.unsubscribe();\n subscriber.complete();\n }\n }\n );\n\n return () => {\n if (!subscription.closed) {\n subscription.unsubscribe();\n modalRef.detach();\n }\n };\n });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-column-selection-dialog.types';\nexport * from './si-column-selection-dialog.service';\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-column-selection-dialog.mjs","sources":["../../../../projects/element-ng/column-selection-dialog/column-selection-editor/si-column-selection-editor.component.ts","../../../../projects/element-ng/column-selection-dialog/column-selection-editor/si-column-selection-editor.component.html","../../../../projects/element-ng/column-selection-dialog/si-column-selection-dialog.component.ts","../../../../projects/element-ng/column-selection-dialog/si-column-selection-dialog.component.html","../../../../projects/element-ng/column-selection-dialog/si-column-selection-dialog.service.ts","../../../../projects/element-ng/column-selection-dialog/index.ts","../../../../projects/element-ng/column-selection-dialog/siemens-element-ng-column-selection-dialog.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkDragHandle } from '@angular/cdk/drag-drop';\nimport { CdkOption } from '@angular/cdk/listbox';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n inject,\n input,\n output,\n viewChild\n} from '@angular/core';\nimport { elementHide, elementLock, elementMenu, elementShow } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\nimport { Column } from '../si-column-selection-dialog.types';\n\n@Component({\n selector: 'si-column-selection-editor',\n imports: [CdkDragHandle, SiIconComponent],\n templateUrl: './si-column-selection-editor.component.html',\n styles: `\n .form-control {\n cursor: text;\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block my-4 mx-1 rounded-2 elevation-1'\n }\n})\nexport class SiColumnSelectionEditorComponent {\n /** The column data object being displayed and edited, including its id, title, visibility, and editable state. */\n readonly column = input.required<Column>();\n /** Whether this column item is currently selected (visible) in the listbox. */\n readonly selected = input.required<boolean>();\n /** Accessible label for the rename input field shown when editing the column title. */\n readonly renameInputLabel = input.required<string>();\n /** Whether the visibility of this column can be toggled by the user. When `false`, the visibility toggle button is hidden. */\n readonly columnVisibilityConfigurable = input.required<boolean>();\n\n readonly titleChange = output();\n readonly visibilityChange = output();\n\n protected readonly cdkOption = inject(CdkOption);\n protected editing = false;\n private readonly title = viewChild.required<ElementRef<HTMLInputElement>>('title');\n private readonly elementRef = inject<ElementRef<HTMLDivElement>>(ElementRef);\n protected readonly icons = addIcons({\n elementHide,\n elementMenu,\n elementLock,\n elementShow\n });\n\n @HostListener('keydown.enter', ['$event'])\n protected tryEdit(event: Event): void {\n if (this.column().editable) {\n event.stopPropagation();\n this.startEdit();\n }\n }\n\n protected updateTitle(value: string): void {\n this.column().title = value;\n this.titleChange.emit();\n }\n\n protected startEdit(): void {\n if (this.column().editable) {\n this.editing = true;\n setTimeout(() => this.title().nativeElement.focus());\n }\n }\n\n protected stopEdit(): void {\n this.editing = false;\n this.elementRef.nativeElement.focus();\n }\n\n protected toggleVisibility(): void {\n this.cdkOption.toggle();\n // manually toggling does not emit an event, so we have to fire one\n this.visibilityChange.emit();\n }\n}\n","<div class=\"d-flex p-4\" (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\n <div class=\"flex-fill overflow-hidden\" [attr.aria-label]=\"column().title\">\n @if (editing) {\n <input\n #title\n type=\"text\"\n class=\"form-control w-100\"\n [attr.aria-label]=\"renameInputLabel()\"\n [value]=\"column().title\"\n (input)=\"updateTitle(title.value)\"\n (keydown.enter)=\"stopEdit()\"\n (blur)=\"stopEdit()\"\n />\n } @else {\n <span\n class=\"form-control text-truncate w-100\"\n [class.border-0]=\"!column().editable\"\n [class.px-0]=\"!column().editable\"\n [class.disabled]=\"column().disabled\"\n (click)=\"startEdit()\"\n >{{ column().title }}</span\n >\n }\n </div>\n\n <div class=\"d-flex align-items-center flex-shrink-0\">\n @if (columnVisibilityConfigurable()) {\n <span\n class=\"btn btn-circle btn-tertiary ms-4\"\n [class.text-primary]=\"!column().disabled\"\n [class.disabled]=\"column().disabled\"\n (click)=\"toggleVisibility()\"\n >\n <si-icon [icon]=\"selected() ? icons.elementShow : icons.elementHide\" />\n </span>\n }\n <span\n cdkDragHandle\n class=\"btn btn-circle btn-tertiary ms-4\"\n [class.disabled]=\"column().disabled\"\n [class.pe-none]=\"!column().draggable\"\n >\n <si-icon\n [class.pe-none]=\"!column().draggable\"\n [icon]=\"column().draggable ? icons.elementMenu : icons.elementLock\"\n />\n </span>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { LiveAnnouncer } from '@angular/cdk/a11y';\nimport {\n CDK_DRAG_CONFIG,\n CdkDrag,\n CdkDragDrop,\n CdkDropList,\n moveItemInArray\n} from '@angular/cdk/drag-drop';\nimport { CdkListbox, CdkOption } from '@angular/cdk/listbox';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n model,\n OnInit,\n viewChild,\n viewChildren\n} from '@angular/core';\nimport { elementCancel } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { ModalRef } from '@siemens/element-ng/modal';\nimport {\n injectSiTranslateService,\n SiTranslatePipe,\n t,\n TranslatableString\n} from '@siemens/element-translate-ng/translate';\nimport { first } from 'rxjs/operators';\n\nimport { SiColumnSelectionEditorComponent } from './column-selection-editor/si-column-selection-editor.component';\nimport { Column, ColumnSelectionDialogResult } from './si-column-selection-dialog.types';\n\nconst dragConfig = {\n dragStartThreshold: 0,\n pointerDirectionChangeThreshold: 5,\n zIndex: 10000\n};\n\n@Component({\n selector: 'si-column-selection-dialog',\n imports: [\n CdkDrag,\n CdkDropList,\n CdkListbox,\n CdkOption,\n CdkScrollableModule,\n SiIconComponent,\n SiTranslatePipe,\n SiColumnSelectionEditorComponent\n ],\n templateUrl: './si-column-selection-dialog.component.html',\n styleUrl: './si-column-selection-dialog.component.scss',\n providers: [{ provide: CDK_DRAG_CONFIG, useValue: dragConfig }],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiColumnSelectionDialogComponent implements OnInit {\n /** HTML `id` applied to the dialog title element, used for `aria-labelledby` association. */\n readonly titleId = input<string>();\n /** The dialog title text displayed in the modal header. */\n readonly heading = input<TranslatableString>();\n /** The section title displayed above the column list. */\n readonly bodyTitle = input<TranslatableString>();\n /**\n * Label for the submit button that applies the column selection.\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.SUBMIT:Apply`)\n * ```\n */\n readonly submitBtnName = input<TranslatableString>(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.SUBMIT:Apply`)\n );\n /**\n * Label for the cancel button that discards changes and closes the dialog.\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.CANCEL:Cancel`)\n * ```\n */\n readonly cancelBtnName = input<TranslatableString>(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.CANCEL:Cancel`)\n );\n /**\n * Label for the button that resets the column configuration to its original default state.\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT:Restore to default`)\n * ```\n */\n readonly restoreToDefaultBtnName = input<TranslatableString>(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT:Restore to default`)\n );\n /**\n * Label shown next to a column that is currently hidden.\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.HIDDEN:Hidden`)\n * ```\n */\n readonly hiddenText = input<TranslatableString>(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.HIDDEN:Hidden`)\n );\n /**\n * Label shown next to a column that is currently visible.\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.VISIBLE:Visible`)\n * ```\n */\n readonly visibleText = input<TranslatableString>(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.VISIBLE:Visible`)\n );\n /**\n * Whether to show the \"Restore to default\" button.\n * @defaultValue false\n */\n readonly restoreEnabled = input(false, { transform: booleanAttribute });\n /**\n * Two-way bound array of `Column` objects defining the column list state.\n * Changes are reflected back to the parent on reorder, visibility toggle, or rename.\n */\n readonly columns = model.required<Column[]>();\n /**\n * Additional interpolation parameters passed to translatable strings.\n * @defaultValue\n * ```\n * {}\n * ```\n */\n readonly translationParams = input<Record<string, unknown>>({});\n\n /**\n * Accessible label for the column list, used as an `aria-label`. Describes available keyboard shortcuts for reordering and renaming.\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.LIST_ARIA_LABEL:List of possible columns. Items can be moved using Alt+ArrowUp or Alt+ArrowDown. Press Enter to rename supported items.`)\n * ```\n */\n readonly listAriaLabel = input(\n t(\n () =>\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.LIST_ARIA_LABEL:List of possible columns. Items can be moved using Alt+ArrowUp or Alt+ArrowDown. Press Enter to rename supported items.`\n )\n );\n\n /**\n * Accessible label for the rename input field inside each column editor row.\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL:Rename column`)\n * ```\n */\n readonly renameInputAriaLabel = input(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL:Rename column`)\n );\n\n /**\n * Live-region message announced after a column is successfully moved to a new position. Supports `{{targetPosition}}` interpolation.\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED:Item is now at position {{targetPosition}}`)\n * ```\n */\n readonly a11yItemMovedMessage = input<TranslatableString>(\n t(\n () =>\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED:Item is now at position {{targetPosition}}`\n )\n );\n /**\n * Live-region message announced when a column could not be moved (e.g. already at the boundary).\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_NOT_MOVED:Item was not moved`)\n * ```\n */\n\n readonly a11yItemNotMovedMessage = input<TranslatableString>(\n t(() => $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_NOT_MOVED:Item was not moved`)\n );\n /**\n * Whether column visibility can be toggled by the user. When `false`, visibility controls are hidden for all columns.\n * @defaultValue true\n */\n readonly columnVisibilityConfigurable = input(true, { transform: booleanAttribute });\n\n private readonly listOptions = viewChildren(CdkOption);\n\n private readonly modalBodyElement = viewChild.required<ElementRef<HTMLDivElement>>('modalBody');\n\n private tempHeaderData: Column[] = [];\n\n protected readonly modalRef = inject(\n ModalRef<SiColumnSelectionDialogComponent, ColumnSelectionDialogResult>\n );\n protected readonly icons = addIcons({ elementCancel });\n\n protected visibleIds: string[] = [];\n\n private readonly liveAnnouncer = inject(LiveAnnouncer);\n private readonly translateService = injectSiTranslateService();\n\n ngOnInit(): void {\n this.setupColumnData();\n }\n\n /** @internal */\n get backupColumns(): Column[] {\n return this.tempHeaderData;\n }\n\n protected submitColumnSelection(): void {\n this.modalRef.hide({ type: 'ok', columns: this.columns() });\n }\n\n protected cancelColumnSelection(): void {\n this.columns.set([]);\n this.tempHeaderData.forEach(element => this.columns.update(a => [...a, element]));\n this.modalRef.hide({ type: 'cancel', columns: this.columns() });\n }\n\n protected drop(event: CdkDragDrop<string[]>): void {\n const columns = this.columns();\n if (columns[event.currentIndex].draggable) {\n moveItemInArray(columns, event.previousIndex, event.currentIndex);\n this.emitChange();\n }\n }\n\n protected restoreToDefault(): void {\n this.modalRef.hidden.next({\n type: 'restoreDefault',\n columns: this.columns(),\n updateColumns: columns => {\n this.columns.set(columns);\n this.setupColumnData();\n }\n });\n }\n\n protected moveDown(index: number, event: Event): void {\n const columns = this.columns();\n const listOptions = this.listOptions();\n if (columns[index].draggable) {\n let targetIndex = index + 1;\n while (columns[targetIndex] && !columns[targetIndex].draggable) {\n targetIndex++;\n }\n\n if (targetIndex !== index && columns[targetIndex]?.draggable) {\n event.preventDefault();\n moveItemInArray(columns, index, targetIndex);\n\n // When moving the first partially visible item down,\n // the browser tries to keep its position stable within the viewport by automatically scrolling down.\n // This behavior is not wanted here, so we restore the previous scroll after moving the item\n // TODO: check if this could be solved easier\n if (\n listOptions.at(index)!.element.getBoundingClientRect().top <=\n this.modalBodyElement().nativeElement.getBoundingClientRect().top\n ) {\n const previousScrollTop = this.modalBodyElement().nativeElement.scrollTop;\n setTimeout(() => (this.modalBodyElement().nativeElement.scrollTop = previousScrollTop));\n }\n\n // When moving the last visible element down, the scroll position is not adopted. So its scroll out of view.\n // We correct this manually by scrolling it back into view\n const targetElement = listOptions.at(targetIndex)!.element;\n if (\n targetElement.getBoundingClientRect().bottom >\n this.modalBodyElement().nativeElement.getBoundingClientRect().bottom\n ) {\n targetElement.scrollIntoView({ block: 'end' });\n }\n\n this.announceSuccessfulMove(targetIndex);\n this.emitChange();\n } else {\n this.announceNotSuccessfulMove();\n }\n }\n }\n\n protected moveUp(index: number, event: Event): void {\n const columns = this.columns();\n if (columns[index].draggable) {\n let targetIndex = index - 1;\n while (columns[targetIndex] && !columns[targetIndex].draggable) {\n targetIndex--;\n }\n\n if (targetIndex !== index && columns[targetIndex]?.draggable) {\n event.preventDefault();\n moveItemInArray(columns, index, targetIndex);\n // it seems like this is only necessary for move up. Don't know why\n setTimeout(() => this.listOptions().at(targetIndex)!.focus());\n this.announceSuccessfulMove(targetIndex);\n this.emitChange();\n } else {\n this.announceNotSuccessfulMove();\n }\n }\n }\n\n protected emitChange(): void {\n this.modalRef.hidden.next({ type: 'instant', columns: this.columns() });\n }\n\n protected updateVisibility(): void {\n const value = this.listOptions()\n .filter(option => option.isSelected())\n .map(option => option.value);\n for (const column of this.columns()) {\n column.visible = value.includes(column.id);\n }\n this.emitChange();\n }\n\n private setupColumnData(): void {\n const columns = this.columns();\n this.tempHeaderData = columns.map(x => Object.assign({}, x));\n this.visibleIds = columns.filter(column => column.visible).map(column => column.id);\n }\n\n private announceSuccessfulMove(index: number): void {\n this.announceMove(this.a11yItemMovedMessage(), {\n ...this.translationParams,\n targetPosition: index + 1\n });\n }\n\n private announceNotSuccessfulMove(): void {\n this.announceMove(this.a11yItemNotMovedMessage(), this.translationParams());\n }\n\n private announceMove(message?: string, translationParams?: Record<string, unknown>): void {\n if (message) {\n this.translateService\n .translateAsync(message, translationParams)\n .pipe(first())\n .subscribe(translatedMessage => this.liveAnnouncer.announce(translatedMessage));\n }\n }\n}\n","<div class=\"modal-header\">\n <span class=\"modal-title\" [id]=\"titleId()\">{{ heading() | translate: translationParams() }}</span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-tertiary-ghost\"\n [attr.aria-label]=\"cancelBtnName() | translate\"\n (click)=\"cancelColumnSelection()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n</div>\n<p class=\"text-secondary px-8 pb-5 mb-0\">{{ bodyTitle() | translate: translationParams() }}</p>\n<div #modalBody class=\"modal-body\" tabindex=\"-1\" cdkScrollable>\n <div\n cdkListbox\n cdkListboxMultiple\n cdkDropList\n [cdkListboxValue]=\"visibleIds\"\n [attr.aria-label]=\"listAriaLabel() | translate: translationParams\"\n (cdkListboxValueChange)=\"updateVisibility()\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n @for (column of columns(); track column) {\n <si-column-selection-editor\n #cdkOption=\"cdkOption\"\n cdkDrag\n class=\"focus-inside\"\n [cdkDragDisabled]=\"!column.draggable\"\n [cdkOption]=\"column.id\"\n [cdkOptionDisabled]=\"column.disabled\"\n [column]=\"column\"\n [selected]=\"cdkOption.isSelected()\"\n [renameInputLabel]=\"renameInputAriaLabel() | translate: translationParams\"\n [columnVisibilityConfigurable]=\"columnVisibilityConfigurable()\"\n (titleChange)=\"emitChange()\"\n (visibilityChange)=\"updateVisibility()\"\n (keydown.alt.arrowUp)=\"moveUp($index, $event)\"\n (keydown.alt.arrowDown)=\"moveDown($index, $event)\"\n />\n }\n </div>\n</div>\n<div class=\"modal-footer\">\n @if (restoreEnabled()) {\n <button type=\"button\" class=\"btn btn-tertiary me-auto\" (click)=\"restoreToDefault()\">\n {{ restoreToDefaultBtnName() | translate }}\n </button>\n }\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancelColumnSelection()\">\n {{ cancelBtnName() | translate }}\n </button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"submitColumnSelection()\">\n {{ submitBtnName() | translate }}\n </button>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injectable } from '@angular/core';\nimport {\n createModalConfig,\n ModalDependencyInjectionOptions,\n ModalOptions,\n SiModalService\n} from '@siemens/element-ng/modal';\nimport { Observable } from 'rxjs';\n\nimport { SiColumnSelectionDialogComponent } from './si-column-selection-dialog.component';\nimport {\n ColumnSelectionDialogResult,\n SiColumnSelectionDialogConfig\n} from './si-column-selection-dialog.types';\n\n@Injectable({ providedIn: 'root' })\nexport class SiColumnSelectionDialogService {\n private modalService = inject(SiModalService);\n\n /**\n * Opens a column selection dialog.\n *\n * Despite other dialogs,\n * this dialog informs the consumer not ONLY with clicking `submit` or `cancel`,\n * but also with changing the place or visibility of a dialog row\n * thanks to the `instant` type of emitted event.\n *\n * {@label WITH_OBJECT}\n */\n showColumnSelectionDialog(\n dialogConfig: SiColumnSelectionDialogConfig,\n diOptions?: ModalDependencyInjectionOptions\n ): Observable<ColumnSelectionDialogResult> {\n return new Observable<ColumnSelectionDialogResult>(subscriber => {\n const config: ModalOptions<any> = createModalConfig(dialogConfig);\n Object.assign(config, diOptions);\n\n config.class += ' modal-dialog-scrollable';\n config.keyboard = true;\n\n const modalRef = this.modalService.show<SiColumnSelectionDialogComponent>(\n SiColumnSelectionDialogComponent,\n config\n );\n const subscription = modalRef.hidden.subscribe(\n (confirmationResult: ColumnSelectionDialogResult | undefined) => {\n const keepModalOpen =\n confirmationResult?.type === 'instant' || confirmationResult?.type === 'restoreDefault';\n confirmationResult ??= { type: 'cancel', columns: modalRef.content.backupColumns };\n subscriber.next(confirmationResult);\n if (!keepModalOpen) {\n subscription.unsubscribe();\n subscriber.complete();\n }\n }\n );\n\n return () => {\n if (!subscription.closed) {\n subscription.unsubscribe();\n modalRef.detach();\n }\n };\n });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-column-selection-dialog.types';\nexport * from './si-column-selection-dialog.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { Injectable, InjectionToken, inject, PLATFORM_ID, DOCUMENT } from '@angu
|
|
|
3
3
|
import { BehaviorSubject, timer } from 'rxjs';
|
|
4
4
|
import { filter, map, distinctUntilChanged, takeUntil, endWith, repeat, share } from 'rxjs/operators';
|
|
5
5
|
import { isPlatformBrowser } from '@angular/common';
|
|
6
|
-
import { OverlayConfig } from '@angular/cdk/overlay';
|
|
6
|
+
import { CDK_CONNECTED_OVERLAY_DEFAULT_CONFIG, ScrollStrategyOptions, OverlayConfig } from '@angular/cdk/overlay';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Copyright (c) Siemens 2016 - 2026
|
|
@@ -826,6 +826,24 @@ function makePositionStrategy(elementRef, overlay, placement, constrain = false,
|
|
|
826
826
|
}
|
|
827
827
|
return positionStrategy;
|
|
828
828
|
}
|
|
829
|
+
/**
|
|
830
|
+
* Returns the configured connected-overlay scroll strategy or the CDK reposition fallback.
|
|
831
|
+
* Must be called in an Angular injection context.
|
|
832
|
+
*/
|
|
833
|
+
function defaultConnectedOverlayScrollStrategy() {
|
|
834
|
+
return defaultConnectedOverlayScrollStrategyFactory()();
|
|
835
|
+
}
|
|
836
|
+
/**
|
|
837
|
+
* Returns a factory that creates a connected-overlay scroll strategy on demand.
|
|
838
|
+
* Must be called in an Angular injection context.
|
|
839
|
+
*/
|
|
840
|
+
function defaultConnectedOverlayScrollStrategyFactory() {
|
|
841
|
+
const defaultScrollStrategy = inject(CDK_CONNECTED_OVERLAY_DEFAULT_CONFIG, {
|
|
842
|
+
optional: true
|
|
843
|
+
})?.scrollStrategy;
|
|
844
|
+
const scrollStrategyOptions = inject(ScrollStrategyOptions);
|
|
845
|
+
return () => defaultScrollStrategy ?? scrollStrategyOptions.reposition();
|
|
846
|
+
}
|
|
829
847
|
function makeOverlay(positionStrategy, overlay, hasBackdrop, scrollStrategy) {
|
|
830
848
|
const config = new OverlayConfig();
|
|
831
849
|
config.positionStrategy = positionStrategy;
|
|
@@ -924,5 +942,5 @@ function WebComponentContentChildren(host) {
|
|
|
924
942
|
* Generated bundle index. Do not edit.
|
|
925
943
|
*/
|
|
926
944
|
|
|
927
|
-
export { AXIS_X, AXIS_Y, BOUNDING_RECT_WINDOW, BlinkService, SI_UI_STATE_SERVICE, STATUS_ICON, ScrollbarHelper, TextMeasureService, WebComponentContentChildren, areAnimationsDisabled, calculateOverlayArrowPosition, correctKeyRTL, getContentPositionString, getOverlay, getOverlayPositions, getPositionStrategy, hasTrigger, isRTL, listenGlobal, makeOverlay, makePositionStrategy, positionBottomCenter, positionBottomEnd, positionBottomStart, positionTopCenter, positionTopEnd, positionTopStart, positions, provideSiUiState, resolveReference, responsivelyCheckDirection };
|
|
945
|
+
export { AXIS_X, AXIS_Y, BOUNDING_RECT_WINDOW, BlinkService, SI_UI_STATE_SERVICE, STATUS_ICON, ScrollbarHelper, TextMeasureService, WebComponentContentChildren, areAnimationsDisabled, calculateOverlayArrowPosition, correctKeyRTL, defaultConnectedOverlayScrollStrategy, defaultConnectedOverlayScrollStrategyFactory, getContentPositionString, getOverlay, getOverlayPositions, getPositionStrategy, hasTrigger, isRTL, listenGlobal, makeOverlay, makePositionStrategy, positionBottomCenter, positionBottomEnd, positionBottomStart, positionTopCenter, positionTopEnd, positionTopStart, positions, provideSiUiState, resolveReference, responsivelyCheckDirection };
|
|
928
946
|
//# sourceMappingURL=siemens-element-ng-common.mjs.map
|