@siemens/element-ng 47.11.0 → 47.12.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.
@@ -1,4 +1,4 @@
1
- import { WeekStart } from './si-datepicker.model';
1
+ import { DatepickerInputConfig, WeekStart } from './si-datepicker.model';
2
2
  export interface DayOfWeek {
3
3
  id: string;
4
4
  index: number;
@@ -300,3 +300,7 @@ export declare const nextMonth: (date: Date) => Date;
300
300
  export declare const previousMonth: (date: Date) => Date;
301
301
  export declare const minDate: (first?: Date, second?: Date) => Date | undefined;
302
302
  export declare const maxDate: (first?: Date, second?: Date) => Date | undefined;
303
+ /**
304
+ * Indicate whether the time use the 12-hour format
305
+ */
306
+ export declare const is12HourFormat: (locale: string, config: DatepickerInputConfig) => boolean;
@@ -118,6 +118,7 @@ export declare class SiDateRangeComponent implements ControlValueAccessor, Valid
118
118
  protected readonly disabled: import("@angular/core").Signal<boolean>;
119
119
  private readonly disabledNgControl;
120
120
  private readonly cdRef;
121
+ private readonly locale;
121
122
  private readonly overlayToggle;
122
123
  private readonly elementRef;
123
124
  private readonly defaultPlacement;
@@ -50,7 +50,6 @@ export declare class SiDatepickerDirective extends SiDateInputDirective implemen
50
50
  */
51
51
  useExternalTrigger(element: ElementRef<HTMLElement>): void;
52
52
  protected focusChange(): void;
53
- private getTime12h;
54
53
  private subscribeDateChanges;
55
54
  /**
56
55
  * Callback when the datepicker changes his value.
@@ -58,13 +58,13 @@ class SiColumnSelectionEditorComponent {
58
58
  this.visibilityChange.emit();
59
59
  }
60
60
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiColumnSelectionEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
61
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiColumnSelectionEditorComponent, isStandalone: true, selector: "si-column-selection-editor", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: true, transformFunction: null }, renameInputLabel: { classPropertyName: "renameInputLabel", publicName: "renameInputLabel", isSignal: true, isRequired: true, transformFunction: null }, columnVisibilityConfigurable: { classPropertyName: "columnVisibilityConfigurable", publicName: "columnVisibilityConfigurable", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { titleChange: "titleChange", visibilityChange: "visibilityChange" }, host: { listeners: { "keydown.enter": "tryEdit($event)" }, classAttribute: "d-block my-4 mx-1 rounded-2 elevation-1" }, viewQueries: [{ propertyName: "title", first: true, predicate: ["title"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"d-flex p-4\" (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\n <div class=\"d-flex w-100\" [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\">\n @if (columnVisibilityConfigurable()) {\n <span\n class=\"btn btn-circle btn-sm btn-tertiary ms-4\"\n [class.text-primary]=\"!column().disabled\"\n [class.disabled]=\"column().disabled\"\n (click)=\"toggleVisibility()\"\n >\n <si-icon-next [icon]=\"selected() ? icons.elementShow : icons.elementHide\" />\n </span>\n }\n <span\n cdkDragHandle\n class=\"btn btn-circle btn-sm btn-tertiary ms-4\"\n [class.disabled]=\"column().disabled\"\n [class.pe-none]=\"!column().draggable\"\n >\n <si-icon-next\n [class.pe-none]=\"!column().draggable\"\n [icon]=\"column().draggable ? icons.elementMenu : icons.elementLock\"\n />\n </span>\n </div>\n</div>\n", styles: [".form-control{cursor:text}\n"], dependencies: [{ kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
61
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.6", type: SiColumnSelectionEditorComponent, isStandalone: true, selector: "si-column-selection-editor", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: true, transformFunction: null }, renameInputLabel: { classPropertyName: "renameInputLabel", publicName: "renameInputLabel", isSignal: true, isRequired: true, transformFunction: null }, columnVisibilityConfigurable: { classPropertyName: "columnVisibilityConfigurable", publicName: "columnVisibilityConfigurable", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { titleChange: "titleChange", visibilityChange: "visibilityChange" }, host: { listeners: { "keydown.enter": "tryEdit($event)" }, classAttribute: "d-block my-4 mx-1 rounded-2 elevation-1" }, viewQueries: [{ propertyName: "title", first: true, predicate: ["title"], descendants: true, isSignal: true }], ngImport: i0, template: "<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-sm btn-tertiary ms-4\"\n [class.text-primary]=\"!column().disabled\"\n [class.disabled]=\"column().disabled\"\n (click)=\"toggleVisibility()\"\n >\n <si-icon-next [icon]=\"selected() ? icons.elementShow : icons.elementHide\" />\n </span>\n }\n <span\n cdkDragHandle\n class=\"btn btn-circle btn-sm btn-tertiary ms-4\"\n [class.disabled]=\"column().disabled\"\n [class.pe-none]=\"!column().draggable\"\n >\n <si-icon-next\n [class.pe-none]=\"!column().draggable\"\n [icon]=\"column().draggable ? icons.elementMenu : icons.elementLock\"\n />\n </span>\n </div>\n</div>\n", styles: [".form-control{cursor:text}\n"], dependencies: [{ kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: SiIconNextComponent, selector: "si-icon-next", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
62
62
  }
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiColumnSelectionEditorComponent, decorators: [{
64
64
  type: Component,
65
65
  args: [{ selector: 'si-column-selection-editor', imports: [CdkDragHandle, SiIconNextComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: {
66
66
  class: 'd-block my-4 mx-1 rounded-2 elevation-1'
67
- }, template: "<div class=\"d-flex p-4\" (click)=\"$event.stopPropagation()\" (keydown)=\"$event.stopPropagation()\">\n <div class=\"d-flex w-100\" [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\">\n @if (columnVisibilityConfigurable()) {\n <span\n class=\"btn btn-circle btn-sm btn-tertiary ms-4\"\n [class.text-primary]=\"!column().disabled\"\n [class.disabled]=\"column().disabled\"\n (click)=\"toggleVisibility()\"\n >\n <si-icon-next [icon]=\"selected() ? icons.elementShow : icons.elementHide\" />\n </span>\n }\n <span\n cdkDragHandle\n class=\"btn btn-circle btn-sm btn-tertiary ms-4\"\n [class.disabled]=\"column().disabled\"\n [class.pe-none]=\"!column().draggable\"\n >\n <si-icon-next\n [class.pe-none]=\"!column().draggable\"\n [icon]=\"column().draggable ? icons.elementMenu : icons.elementLock\"\n />\n </span>\n </div>\n</div>\n", styles: [".form-control{cursor:text}\n"] }]
67
+ }, template: "<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-sm btn-tertiary ms-4\"\n [class.text-primary]=\"!column().disabled\"\n [class.disabled]=\"column().disabled\"\n (click)=\"toggleVisibility()\"\n >\n <si-icon-next [icon]=\"selected() ? icons.elementShow : icons.elementHide\" />\n </span>\n }\n <span\n cdkDragHandle\n class=\"btn btn-circle btn-sm btn-tertiary ms-4\"\n [class.disabled]=\"column().disabled\"\n [class.pe-none]=\"!column().draggable\"\n >\n <si-icon-next\n [class.pe-none]=\"!column().draggable\"\n [icon]=\"column().draggable ? icons.elementMenu : icons.elementLock\"\n />\n </span>\n </div>\n</div>\n", styles: [".form-control{cursor:text}\n"] }]
68
68
  }], propDecorators: { tryEdit: [{
69
69
  type: HostListener,
70
70
  args: ['keydown.enter', ['$event']]
@@ -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 - 2025\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 {\n addIcons,\n elementHide,\n elementLock,\n elementMenu,\n elementShow,\n SiIconNextComponent\n} 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, SiIconNextComponent],\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']) protected tryEdit(event: KeyboardEvent): 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 startEdit(): void {\n if (this.column().editable) {\n this.editing = true;\n setTimeout(() => this.title().nativeElement.focus());\n }\n }\n\n stopEdit(): void {\n this.editing = false;\n this.elementRef.nativeElement.focus();\n }\n\n 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=\"d-flex w-100\" [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\">\n @if (columnVisibilityConfigurable()) {\n <span\n class=\"btn btn-circle btn-sm btn-tertiary ms-4\"\n [class.text-primary]=\"!column().disabled\"\n [class.disabled]=\"column().disabled\"\n (click)=\"toggleVisibility()\"\n >\n <si-icon-next [icon]=\"selected() ? icons.elementShow : icons.elementHide\" />\n </span>\n }\n <span\n cdkDragHandle\n class=\"btn btn-circle btn-sm btn-tertiary ms-4\"\n [class.disabled]=\"column().disabled\"\n [class.pe-none]=\"!column().draggable\"\n >\n <si-icon-next\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 - 2025\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 { addIcons, elementCancel, SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { ModalRef } from '@siemens/element-ng/modal';\nimport {\n injectSiTranslateService,\n SiTranslatePipe,\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 SiIconNextComponent,\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 * $localize`:@@SI_COLUMN_SELECTION_DIALOG.SUBMIT:Apply`\n * ```\n */\n readonly submitBtnName = input<TranslatableString>(\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.SUBMIT:Apply`\n );\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.CANCEL:Cancel`\n * ```\n */\n readonly cancelBtnName = input<TranslatableString>(\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.CANCEL:Cancel`\n );\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT:Restore to default`\n * ```\n */\n readonly restoreToDefaultBtnName = input<TranslatableString>(\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT:Restore to default`\n );\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.HIDDEN:Hidden`\n * ```\n */\n readonly hiddenText = input<TranslatableString>(\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.HIDDEN:Hidden`\n );\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.VISIBLE:Visible`\n * ```\n */\n readonly visibleText = input<TranslatableString>(\n $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 * $localize`:@@SI_COLUMN_SELECTION_DIALOG.LIST_ARIA_LABEL:\n * List of possible columns.\n * Items can be moved using Alt+ArrowUp or Alt+ArrowDown.\n * Press Enter to rename supported items.`\n * ```\n */\n readonly listAriaLabel = input(\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 * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL:Rename column`\n * ```\n */\n readonly renameInputAriaLabel = input(\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL:Rename column`\n );\n\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED:Item is now at position {{targetPosition}}`\n * ```\n */\n readonly a11yItemMovedMessage = input<TranslatableString>(\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED:Item is now at position {{targetPosition}}`\n );\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_NOT_MOVED:Item was not moved`\n * ```\n */\n\n readonly a11yItemNotMovedMessage = input<TranslatableString>(\n $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-sm btn-ghost\"\n [attr.aria-label]=\"cancelBtnName() | translate\"\n (click)=\"cancelColumnSelection()\"\n >\n <si-icon-next [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 - 2025\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 - 2025\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":";;;;;;;;;;;;;AAAA;;;AAGG;MAsCU,gCAAgC,CAAA;AAClC,IAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAU;AACjC,IAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAW;AACpC,IAAA,gBAAgB,GAAG,KAAK,CAAC,QAAQ,EAAU;AAC3C,IAAA,4BAA4B,GAAG,KAAK,CAAC,QAAQ,EAAW;IAExD,WAAW,GAAG,MAAM,EAAE;IACtB,gBAAgB,GAAG,MAAM,EAAE;AAEjB,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACtC,OAAO,GAAG,KAAK;AACR,IAAA,KAAK,GAAG,SAAS,CAAC,QAAQ,CAA+B,OAAO,CAAC;AACjE,IAAA,UAAU,GAAG,MAAM,CAA6B,UAAU,CAAC;IACzD,KAAK,GAAG,QAAQ,CAAC;QAClC,WAAW;QACX,WAAW;QACX,WAAW;QACX;AACD,KAAA,CAAC;AAEmD,IAAA,OAAO,CAAC,KAAoB,EAAA;AAC/E,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC1B,KAAK,CAAC,eAAe,EAAE;YACvB,IAAI,CAAC,SAAS,EAAE;;;AAIV,IAAA,WAAW,CAAC,KAAa,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,GAAG,KAAK;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;;IAGzB,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;AAC1B,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,YAAA,UAAU,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;;;IAIxD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;;IAGvC,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;;AAEvB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE;;uGA/CnB,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,ECzC7C,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,4BAAA,EAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,cAAA,EAAA,yCAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,olDAiDA,EDpBY,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,+FAAE,mBAAmB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAYjC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAd5C,SAAS;+BACE,4BAA4B,EAAA,OAAA,EAC7B,CAAC,aAAa,EAAE,mBAAmB,CAAC,EAO5B,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE;AACR,qBAAA,EAAA,QAAA,EAAA,olDAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA;8BAsBoD,OAAO,EAAA,CAAA;sBAA3D,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC;;;AE7D3C;;;AAGG;AAmCH,MAAM,UAAU,GAAG;AACjB,IAAA,kBAAkB,EAAE,CAAC;AACrB,IAAA,+BAA+B,EAAE,CAAC;AAClC,IAAA,MAAM,EAAE;CACT;MAmBY,gCAAgC,CAAA;IAClC,OAAO,GAAG,KAAK,EAAU;IACzB,OAAO,GAAG,KAAK,EAAsB;IACrC,SAAS,GAAG,KAAK,EAAsB;AAChD;;;;;AAKG;AACM,IAAA,aAAa,GAAG,KAAK,CAC5B,SAAS,CAAA,CAAA,0CAAA,CAA4C,CACtD;AACD;;;;;AAKG;AACM,IAAA,aAAa,GAAG,KAAK,CAC5B,SAAS,CAAA,CAAA,2CAAA,CAA6C,CACvD;AACD;;;;;AAKG;AACM,IAAA,uBAAuB,GAAG,KAAK,CACtC,SAAS,CAAA,CAAA,mEAAA,CAAqE,CAC/E;AACD;;;;;AAKG;AACM,IAAA,UAAU,GAAG,KAAK,CACzB,SAAS,CAAA,CAAA,2CAAA,CAA6C,CACvD;AACD;;;;;AAKG;AACM,IAAA,WAAW,GAAG,KAAK,CAC1B,SAAS,CAAA,CAAA,6CAAA,CAA+C,CACzD;;IAEQ,cAAc,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAC9D,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAY;AAC7C;;;;;AAKG;AACM,IAAA,iBAAiB,GAAG,KAAK,CAA0B,EAAE,CAAC;AAE/D;;;;;;;;AAQG;AACM,IAAA,aAAa,GAAG,KAAK,CAC5B,SAAS,CAAA,CAAA,qKAAA,CAAuK,CACjL;AAED;;;;;AAKG;AACM,IAAA,oBAAoB,GAAG,KAAK,CACnC,SAAS,CAAA,CAAA,mEAAA,CAAqE,CAC/E;AAED;;;;;AAKG;AACM,IAAA,oBAAoB,GAAG,KAAK,CACnC,SAAS,CAAA,CAAA,mFAAA,CAAqF,CAC/F;AACD;;;;;AAKG;AAEM,IAAA,uBAAuB,GAAG,KAAK,CACtC,SAAS,CAAA,CAAA,+DAAA,CAAiE,CAC3E;;IAEQ,4BAA4B,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAEnE,IAAA,WAAW,GAAG,YAAY,CAAC,SAAS,CAAC;AAErC,IAAA,gBAAgB,GAAG,SAAS,CAAC,QAAQ,CAA6B,WAAW,CAAC;IAEvF,cAAc,GAAa,EAAE;AAElB,IAAA,QAAQ,GAAG,MAAM,EAClC,QAAuE,EACxE;AACkB,IAAA,KAAK,GAAG,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAE5C,UAAU,GAAa,EAAE;AAElB,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IACrC,gBAAgB,GAAG,wBAAwB,EAAE;IAE9D,QAAQ,GAAA;QACN,IAAI,CAAC,eAAe,EAAE;;;AAIxB,IAAA,IAAI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,cAAc;;IAGlB,qBAAqB,GAAA;AAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;;IAGnD,qBAAqB,GAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACjF,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;;AAGvD,IAAA,IAAI,CAAC,KAA4B,EAAA;AACzC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE;YACzC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;YACjE,IAAI,CAAC,UAAU,EAAE;;;IAIX,gBAAgB,GAAA;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;AACxB,YAAA,IAAI,EAAE,gBAAgB;AACtB,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;YACvB,aAAa,EAAE,OAAO,IAAG;AACvB,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;gBACzB,IAAI,CAAC,eAAe,EAAE;;AAEzB,SAAA,CAAC;;IAGM,QAAQ,CAAC,KAAa,EAAE,KAAY,EAAA;AAC5C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE;AAC5B,YAAA,IAAI,WAAW,GAAG,KAAK,GAAG,CAAC;AAC3B,YAAA,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE;AAC9D,gBAAA,WAAW,EAAE;;YAGf,IAAI,WAAW,KAAK,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE;gBAC5D,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC;;;;;AAM5C,gBAAA,IACE,WAAW,CAAC,EAAE,CAAC,KAAK,CAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,GAAG;oBAC1D,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,GAAG,EACjE;oBACA,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,SAAS;AACzE,oBAAA,UAAU,CAAC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC;;;;gBAKzF,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC,WAAW,CAAE,CAAC,OAAO;AAC1D,gBAAA,IACE,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM;oBAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC,MAAM,EACpE;oBACA,aAAa,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;;AAGhD,gBAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC;gBACxC,IAAI,CAAC,UAAU,EAAE;;iBACZ;gBACL,IAAI,CAAC,yBAAyB,EAAE;;;;IAK5B,MAAM,CAAC,KAAa,EAAE,KAAY,EAAA;AAC1C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,QAAA,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE;AAC5B,YAAA,IAAI,WAAW,GAAG,KAAK,GAAG,CAAC;AAC3B,YAAA,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,SAAS,EAAE;AAC9D,gBAAA,WAAW,EAAE;;YAGf,IAAI,WAAW,KAAK,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE;gBAC5D,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC;;AAE5C,gBAAA,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,WAAW,CAAE,CAAC,KAAK,EAAE,CAAC;AAC7D,gBAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC;gBACxC,IAAI,CAAC,UAAU,EAAE;;iBACZ;gBACL,IAAI,CAAC,yBAAyB,EAAE;;;;IAK5B,UAAU,GAAA;QAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;;IAG/D,gBAAgB,GAAA;AACxB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;aAC3B,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE;aACpC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE;YACnC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;;QAE5C,IAAI,CAAC,UAAU,EAAE;;IAGX,eAAe,GAAA;AACrB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;QAC9B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC;;AAG7E,IAAA,sBAAsB,CAAC,KAAa,EAAA;AAC1C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE;YAC7C,GAAG,IAAI,CAAC,iBAAiB;YACzB,cAAc,EAAE,KAAK,GAAG;AACzB,SAAA,CAAC;;IAGI,yBAAyB,GAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC;;IAGrE,YAAY,CAAC,OAAgB,EAAE,iBAA2C,EAAA;QAChF,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,CAAC;AACF,iBAAA,cAAc,CAAC,OAAO,EAAE,iBAAiB;iBACzC,IAAI,CAAC,KAAK,EAAE;AACZ,iBAAA,SAAS,CAAC,iBAAiB,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;;;uGAnQ1E,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAHhC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,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,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,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,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,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,oBAAA,EAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,uBAAA,EAAA,EAAA,iBAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,4BAAA,EAAA,EAAA,iBAAA,EAAA,8BAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAAA,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,0DA4GnB,SAAS,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtKvD,0lEAuDA,EAAA,MAAA,EAAA,CAAA,2HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDRI,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,WAAW,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,UAAU,EACV,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,kCAAA,EAAA,oCAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,EACT,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,WAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,eAAe,kDACf,gCAAgC,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,8BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAOvB,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAjB5C,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAC7B,OAAA,EAAA;wBACP,OAAO;wBACP,WAAW;wBACX,UAAU;wBACV,SAAS;wBACT,mBAAmB;wBACnB,mBAAmB;wBACnB,eAAe;wBACf;AACD,qBAAA,EAAA,SAAA,EAGU,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAC9C,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0lEAAA,EAAA,MAAA,EAAA,CAAA,2HAAA,CAAA,EAAA;;;AE3DjD;;;AAGG;MAiBU,8BAA8B,CAAA;AACjC,IAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAE7C;;;;;;;;;AASG;IACH,yBAAyB,CACvB,YAA2C,EAC3C,SAA2C,EAAA;AAE3C,QAAA,OAAO,IAAI,UAAU,CAA8B,UAAU,IAAG;AAC9D,YAAA,MAAM,MAAM,GAAsB,iBAAiB,CAAC,YAAY,CAAC;AACjE,YAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;AAEhC,YAAA,MAAM,CAAC,KAAK,IAAI,0BAA0B;AAC1C,YAAA,MAAM,CAAC,QAAQ,GAAG,IAAI;AAEtB,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CACrC,gCAAgC,EAChC,MAAM,CACP;YACD,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAC5C,CAAC,kBAA2D,KAAI;AAC9D,gBAAA,MAAM,aAAa,GACjB,kBAAkB,EAAE,IAAI,KAAK,SAAS,IAAI,kBAAkB,EAAE,IAAI,KAAK,gBAAgB;AACzF,gBAAA,kBAAkB,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE;AAClF,gBAAA,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC;gBACnC,IAAI,CAAC,aAAa,EAAE;oBAClB,YAAY,CAAC,WAAW,EAAE;oBAC1B,UAAU,CAAC,QAAQ,EAAE;;AAEzB,aAAC,CACF;AAED,YAAA,OAAO,MAAK;AACV,gBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;oBACxB,YAAY,CAAC,WAAW,EAAE;oBAC1B,QAAQ,CAAC,MAAM,EAAE;;AAErB,aAAC;AACH,SAAC,CAAC;;uGA/CO,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA9B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,cADjB,MAAM,EAAA,CAAA;;2FACnB,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACnBlC;;;AAGG;;ACHH;;AAEG;;;;"}
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 - 2025\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 {\n addIcons,\n elementHide,\n elementLock,\n elementMenu,\n elementShow,\n SiIconNextComponent\n} 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, SiIconNextComponent],\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']) protected tryEdit(event: KeyboardEvent): 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 startEdit(): void {\n if (this.column().editable) {\n this.editing = true;\n setTimeout(() => this.title().nativeElement.focus());\n }\n }\n\n stopEdit(): void {\n this.editing = false;\n this.elementRef.nativeElement.focus();\n }\n\n 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-sm btn-tertiary ms-4\"\n [class.text-primary]=\"!column().disabled\"\n [class.disabled]=\"column().disabled\"\n (click)=\"toggleVisibility()\"\n >\n <si-icon-next [icon]=\"selected() ? icons.elementShow : icons.elementHide\" />\n </span>\n }\n <span\n cdkDragHandle\n class=\"btn btn-circle btn-sm btn-tertiary ms-4\"\n [class.disabled]=\"column().disabled\"\n [class.pe-none]=\"!column().draggable\"\n >\n <si-icon-next\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 - 2025\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 { addIcons, elementCancel, SiIconNextComponent } from '@siemens/element-ng/icon';\nimport { ModalRef } from '@siemens/element-ng/modal';\nimport {\n injectSiTranslateService,\n SiTranslatePipe,\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 SiIconNextComponent,\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 * $localize`:@@SI_COLUMN_SELECTION_DIALOG.SUBMIT:Apply`\n * ```\n */\n readonly submitBtnName = input<TranslatableString>(\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.SUBMIT:Apply`\n );\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.CANCEL:Cancel`\n * ```\n */\n readonly cancelBtnName = input<TranslatableString>(\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.CANCEL:Cancel`\n );\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT:Restore to default`\n * ```\n */\n readonly restoreToDefaultBtnName = input<TranslatableString>(\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT:Restore to default`\n );\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.HIDDEN:Hidden`\n * ```\n */\n readonly hiddenText = input<TranslatableString>(\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.HIDDEN:Hidden`\n );\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.VISIBLE:Visible`\n * ```\n */\n readonly visibleText = input<TranslatableString>(\n $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 * $localize`:@@SI_COLUMN_SELECTION_DIALOG.LIST_ARIA_LABEL:\n * List of possible columns.\n * Items can be moved using Alt+ArrowUp or Alt+ArrowDown.\n * Press Enter to rename supported items.`\n * ```\n */\n readonly listAriaLabel = input(\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 * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL:Rename column`\n * ```\n */\n readonly renameInputAriaLabel = input(\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL:Rename column`\n );\n\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED:Item is now at position {{targetPosition}}`\n * ```\n */\n readonly a11yItemMovedMessage = input<TranslatableString>(\n $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED:Item is now at position {{targetPosition}}`\n );\n /**\n * @defaultValue\n * ```\n * $localize`:@@SI_COLUMN_SELECTION_DIALOG.ITEM_NOT_MOVED:Item was not moved`\n * ```\n */\n\n readonly a11yItemNotMovedMessage = input<TranslatableString>(\n $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-sm btn-ghost\"\n [attr.aria-label]=\"cancelBtnName() | translate\"\n (click)=\"cancelColumnSelection()\"\n >\n <si-icon-next [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 - 2025\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 - 2025\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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"}
@@ -678,6 +678,13 @@ const minDate = (first, second) => {
678
678
  const maxDate = (first, second) => {
679
679
  return !!first && !!second ? (first > second ? first : second) : (first ?? second);
680
680
  };
681
+ /**
682
+ * Indicate whether the time use the 12-hour format
683
+ */
684
+ const is12HourFormat = (locale, config) => {
685
+ const dateFormat = getDatepickerFormat(locale, config, true);
686
+ return dateFormat?.includes('a') ?? false;
687
+ };
681
688
 
682
689
  /**
683
690
  * Returns date / datetime format to be used for rendering a date object as text
@@ -2290,7 +2297,8 @@ class SiTimepickerComponent {
2290
2297
  }
2291
2298
  let hours = time.getHours();
2292
2299
  if (this.use12HourClock()) {
2293
- this.meridian.set(hours >= 12 ? 'pm' : 'am');
2300
+ // 12:00 am is midnight while 12:00 pm is noon when users enter a value greater than 12 we can assume it's pm
2301
+ this.meridian.set(hours > 12 ? 'pm' : 'am');
2294
2302
  this.meridianChange.emit(this.meridian());
2295
2303
  hours = hours % 12;
2296
2304
  if (hours === 0) {
@@ -3632,7 +3640,7 @@ class SiDatepickerDirective extends SiDateInputDirective {
3632
3640
  this.subscribeDateChanges(this.overlayToggle.showOverlay(initialFocus, {
3633
3641
  config: this.siDatepickerConfig(),
3634
3642
  date: this.date,
3635
- time12h: this.getTime12h()
3643
+ time12h: is12HourFormat(this.locale, this.siDatepickerConfig() ?? {})
3636
3644
  }));
3637
3645
  }
3638
3646
  /**
@@ -3646,10 +3654,6 @@ class SiDatepickerDirective extends SiDateInputDirective {
3646
3654
  this.show();
3647
3655
  }
3648
3656
  }
3649
- getTime12h() {
3650
- const dateFormat = getDatepickerFormat(this.locale, this.siDatepickerConfig(), true);
3651
- return dateFormat?.includes('a');
3652
- }
3653
3657
  subscribeDateChanges(overlay) {
3654
3658
  this.overlaySubscriptions?.forEach(s => s.unsubscribe());
3655
3659
  overlay?.instance.date.subscribe(d => this.onDateChanged(d));
@@ -3848,6 +3852,7 @@ class SiDateRangeComponent {
3848
3852
  disabled = computed(() => this.disabledInput() || this.disabledNgControl());
3849
3853
  disabledNgControl = signal(false);
3850
3854
  cdRef = inject(ChangeDetectorRef);
3855
+ locale = inject(LOCALE_ID).toString();
3851
3856
  overlayToggle = inject(SiDatepickerOverlayDirective);
3852
3857
  elementRef = inject(ElementRef);
3853
3858
  defaultPlacement = [
@@ -3931,7 +3936,8 @@ class SiDateRangeComponent {
3931
3936
  }
3932
3937
  this.subscribeRangeChanges(this.overlayToggle.showOverlay(true, {
3933
3938
  config: this.siDatepickerConfig(),
3934
- dateRange: this.value()
3939
+ dateRange: this.value(),
3940
+ time12h: is12HourFormat(this.locale, this.siDatepickerConfig())
3935
3941
  }));
3936
3942
  }
3937
3943
  subscribeRangeChanges(overlay) {
@@ -4221,5 +4227,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
4221
4227
  * Generated bundle index. Do not edit.
4222
4228
  */
4223
4229
 
4224
- export { CloseCause, SiCalendarButtonComponent, SiDateInputDirective, SiDateRangeComponent, SiDatepickerComponent, SiDatepickerDirective, SiDatepickerModule, SiDatepickerOverlayComponent, SiDatepickerOverlayDirective, SiTimepickerComponent, WEEK_START_OFFSET, addDays, addDaysInRange, addMonthsInRange, addYearsInRange, changeDay, compareDate, compareMonth, compareYear, createDate, daysInMonth, getDateSameOrBetween, getDateWithoutTime, getDatepickerFormat, getDayStrings, getDaysOfWeek, getFirstDateInMonth, getFirstDateInYear, getFirstDayInMonth, getLastDateInMonth, getLocaleMonthNames, getMaxDate, getMinDate, getNamedFormat, getStringforDate, getWeekDayOffset, getWeekEndDate, getWeekOfYear, getWeekStartDate, isAfter, isAfterMonth, isAfterYear, isAnotherMonth, isAnotherMonthOrYear, isAnotherYear, isBetween, isBetweenMonth, isBetweenYears, isSameDate, isSameMonth, isSameOrBefore, isSameOrBeforeMonth, isSameOrBeforeYear, isSameOrBetween, isSameOrBetweenMonth, isSameOrBetweenYears, isSameYear, isValid, maxDate, minDate, nextMonth, parseDate, previousMonth, today };
4230
+ export { CloseCause, SiCalendarButtonComponent, SiDateInputDirective, SiDateRangeComponent, SiDatepickerComponent, SiDatepickerDirective, SiDatepickerModule, SiDatepickerOverlayComponent, SiDatepickerOverlayDirective, SiTimepickerComponent, WEEK_START_OFFSET, addDays, addDaysInRange, addMonthsInRange, addYearsInRange, changeDay, compareDate, compareMonth, compareYear, createDate, daysInMonth, getDateSameOrBetween, getDateWithoutTime, getDatepickerFormat, getDayStrings, getDaysOfWeek, getFirstDateInMonth, getFirstDateInYear, getFirstDayInMonth, getLastDateInMonth, getLocaleMonthNames, getMaxDate, getMinDate, getNamedFormat, getStringforDate, getWeekDayOffset, getWeekEndDate, getWeekOfYear, getWeekStartDate, is12HourFormat, isAfter, isAfterMonth, isAfterYear, isAnotherMonth, isAnotherMonthOrYear, isAnotherYear, isBetween, isBetweenMonth, isBetweenYears, isSameDate, isSameMonth, isSameOrBefore, isSameOrBeforeMonth, isSameOrBeforeYear, isSameOrBetween, isSameOrBetweenMonth, isSameOrBetweenYears, isSameYear, isValid, maxDate, minDate, nextMonth, parseDate, previousMonth, today };
4225
4231
  //# sourceMappingURL=siemens-element-ng-datepicker.mjs.map