{"version":3,"file":"sowatech-shared-swt-controls.mjs","sources":["../../../projects/shared/swt-controls/swt-dropdown-container/swt-dropdown-container.component.ts","../../../projects/shared/swt-controls/swt-dropdown-container/swt-dropdown-container.component.html","../../../projects/shared/swt-controls/swt-date-picker.component.ts","../../../projects/shared/swt-controls/swt-date-picker.component.html","../../../projects/shared/swt-controls/swt-date-interval/swt-date-interval.model.ts","../../../projects/shared/swt-controls/swt-date-range.model.ts","../../../projects/shared/swt-controls/swt-date-range-picker.component.ts","../../../projects/shared/swt-controls/swt-date-range-picker.component.html","../../../projects/shared/swt-controls/swt-popover.component.ts","../../../projects/shared/swt-controls/swt-date-interval/swt-date-interval-store.service.ts","../../../projects/shared/swt-controls/swt-date-interval/templates/swt-date-interval.templates.ts","../../../projects/shared/swt-controls/swt-date-interval/templates/swt-date-interval.inspinia.component.html","../../../projects/shared/swt-controls/swt-date-interval/templates/swt-date-interval.sneat.component.html","../../../projects/shared/swt-controls/swt-date-interval/swt-date-interval.component.ts","../../../projects/shared/swt-controls/swt-date-interval/swt-date-interval.component.html","../../../projects/shared/swt-controls/swt-rating-icons.component.ts","../../../projects/shared/swt-controls/swt-loading-indicator.component.ts","../../../projects/shared/swt-controls/ibox/templates/ibox-template.components.ts","../../../projects/shared/swt-controls/ibox/templates/ibox-sneat.component.html","../../../projects/shared/swt-controls/ibox/templates/ibox-inspinia.component.html","../../../projects/shared/swt-controls/ibox/swt-ibox.component.ts","../../../projects/shared/swt-controls/ibox/swt-ibox.component.html","../../../projects/shared/swt-controls/ibox/ibox.module.ts","../../../projects/shared/swt-controls/swt-checkbox-wrapper.component.ts","../../../projects/shared/swt-controls/swt-checkbox.component.ts","../../../projects/shared/swt-controls/swt-wizard/swt-wizard-step.component.ts","../../../projects/shared/swt-controls/swt-wizard/swt-wizard.component.ts","../../../projects/shared/swt-controls/swt-wizard/swt-wizard.component.html","../../../projects/shared/swt-controls/debounce.directive.ts","../../../projects/shared/swt-controls/swt-highlight-search.pipe.ts","../../../projects/shared/swt-controls/templates/swt-lru.template.ts","../../../projects/shared/swt-controls/templates/swt-lru.inspinia.component.html","../../../projects/shared/swt-controls/templates/swt-lru.sneat.component.html","../../../projects/shared/swt-controls/swt-lru.component.ts","../../../projects/shared/swt-controls/multi-lru.component.ts","../../../projects/shared/swt-controls/toolbar-container.component.ts","../../../projects/shared/swt-controls/dom-change.directive.ts","../../../projects/shared/swt-controls/ul-nav-tabs.component.ts","../../../projects/shared/swt-controls/loading.directive.ts","../../../projects/shared/swt-controls/swt-color-picker/swt-color-picker.types.ts","../../../projects/shared/swt-controls/swt-color-picker/swt-color-picker.service.ts","../../../projects/shared/swt-controls/swt-color-picker/swt-color-picker.component.ts","../../../projects/shared/swt-controls/swt-color-picker/swt-color-picker.component.html","../../../projects/shared/swt-controls/swt-date-input/swt-date-input.component.ts","../../../projects/shared/swt-controls/swt-date-input/swt-date-input.component.html","../../../projects/shared/swt-controls/swt-quill/swt-quill-editor.component.ts","../../../projects/shared/swt-controls/swt-controls.module.ts","../../../projects/shared/swt-controls/sowatech-shared-swt-controls.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, ViewChild, QueryList, ContentChildren, ElementRef } from '@angular/core';\r\nimport { BsDropdownContainerComponent } from 'ngx-bootstrap/dropdown';\r\n\r\nexport type InputSize = 'small' | 'medium' | 'large';\r\n@Component({\r\n    selector: 'swt-dropdown-container',\r\n    templateUrl: './swt-dropdown-container.component.html',\r\n    styles: [\r\n        `\r\n    .pointer-events-auto {\r\n        pointer-events: auto;\r\n    }\r\n    .multiple {\r\n      flex-flow: row wrap;\r\n      height: 100%;\r\n      min-height: 30px;\r\n      padding: 6px 12px;\r\n      width: 100%;\r\n    }\r\n    .option {\r\n      background-color: #ebf5ff;\r\n      border-radius: 2px;\r\n      color: #333;\r\n      cursor: default;\r\n      display: inline-block;\r\n      font-size: .9em;\r\n      line-height: 22px;\r\n      padding: 1px 5px;\r\n      margin-right: 5px;\r\n    }\r\n    `,\r\n        '.small {height:100%; min-height: 28px; font-size: 12px;}',\r\n        '.medium {height:100%; min-height: 34px;}',\r\n        '.large {height:100%; min-height: 46px; font-size: 18px;}'\r\n    ],\r\n    standalone: false\r\n})\r\n\r\nexport class DropDownContainerComponent {\r\n    @ViewChild('dropdown', { static: true })\r\n    public dropdown: BsDropdownContainerComponent;\r\n    @ViewChild('inputContainer', { static: true })\r\n    public inputContainer: ElementRef<HTMLElement>;\r\n    @ContentChildren(DropDownContainerComponent)\r\n    public childDropdowns: QueryList<DropDownContainerComponent>;\r\n\r\n    @Input() public container: string = 'body';\r\n    @Input() public alignContent: 'left' | 'right' = 'left';\r\n    @Input() public width: string;\r\n    @Input() public disableClickPropagation = false;\r\n    @Input() public inputSize: InputSize = 'medium';\r\n    @Input() public tabindex: number | string | null = null;\r\n    /**\r\n     * Kann gesetzt werden um den Dropdown automatisch zu schließen sobald man außerhalb des Dropdowns klickt.\r\n     * ToggleCollapse/Expand funktionieren nicht, wenn closeWhenClickOutside aktiviert ist.\r\n     */\r\n    @Input() public closeWhenClickOutside = false;\r\n    public value: string;\r\n    public values: string[] = null;\r\n    @Input() public set displayValue(value: string | string[]) {\r\n        if (Array.isArray(value)) {\r\n            this.value = '';\r\n            this.values = value;\r\n        } else {\r\n            this.values = null;\r\n            this.value = value;\r\n        }\r\n    }\r\n\r\n    //Abwärtskompatibilität\r\n    //Vorher haben wir den DropDownContainer eigenhändig gebaut, jetzt benutzen wir ngx-bootstrap.\r\n    //ngx-bootstrap fragt isOpen ab, welches genau invertiert zu unserer variante isCollapsed abgefragt hat.\r\n    //Der Input soll noch gleich funktionieren und bestehen bleiben.\r\n    public get collapsed(): boolean {\r\n        return !this.dropdown.isOpen;\r\n    }\r\n\r\n    @Input() public set collapsed(value: boolean) {\r\n        this.dropdown.isOpen = !value;\r\n    }\r\n\r\n    @Input() public allowClear = false;\r\n\r\n    // eslint-disable-next-line @angular-eslint/no-output-on-prefix\r\n    @Output() public onClear = new EventEmitter<void>();\r\n    // eslint-disable-next-line @angular-eslint/no-output-on-prefix\r\n    @Output() public onShow = new EventEmitter<void>();\r\n\r\n    public toggleCollapse(isGoingToOpen: boolean) {\r\n        this.dropdown.isOpen = isGoingToOpen;\r\n    }\r\n\r\n    public collapse() {\r\n        this.dropdown.isOpen = false;\r\n    }\r\n\r\n    public collapseAndFocus() {\r\n        this.dropdown.isOpen = false;\r\n        // Fokussiere das Container-Element nach dem Schließen\r\n        requestAnimationFrame(() => {\r\n            if (this.inputContainer && this.inputContainer.nativeElement)\r\n                this.inputContainer.nativeElement.focus();\r\n        });\r\n    }\r\n\r\n    public expand() {\r\n        this.dropdown.isOpen = true;\r\n    }\r\n\r\n    public clear(eventData: Event) {\r\n        eventData.stopPropagation();\r\n        this.onClear.emit();\r\n    }\r\n\r\n    public collapseChildDropdowns() {\r\n        this.childDropdowns.forEach(child => child.collapse());\r\n    }\r\n\r\n    public onKeyDown(event: KeyboardEvent) {\r\n        if (event.key === 'Enter' || event.key === ' ') {\r\n            event.preventDefault();\r\n            this.dropdown.isOpen = !this.dropdown.isOpen;\r\n        } else if (event.key === 'Escape' && this.dropdown.isOpen) {\r\n            event.preventDefault();\r\n            this.collapse();\r\n        }\r\n    }\r\n}\r\n","<div style=\"display:inline-block\" [style.width]=\"width\" dropdown #dropdown=\"bs-dropdown\" #inputContainer\r\n  [container]=\"container\" [insideClick]=\"disableClickPropagation\" placement=\"bottom\" (onShown)=\"onShow.emit()\"\r\n  [autoClose]=\"closeWhenClickOutside\" (onHidden)=\"collapseChildDropdowns()\" class=\"swt-dropdown-container\" dropdownToggle\r\n  [attr.tabindex]=\"tabindex\" (keydown)=\"tabindex !== null ? onKeyDown($event) : null\">\r\n  @if (!value && !values) {\r\n    <div class=\"input-group\">\r\n      <ng-content select=\"[dropdown-input]\" #template></ng-content>\r\n      <span class=\"input-group-addon dropdown-toggle\" id=\"addon-toggle-collapse\">\r\n        <i class=\"fa\" [ngClass]=\"dropdown.isOpen ? 'fa-caret-up' : 'fa-caret-down'\"></i>\r\n      </span>\r\n      @if (allowClear) {\r\n        <span class=\"input-group-addon\" id=\"addon-toggle-clear\" (click)=\"clear($event)\">\r\n          <i class=\"fa fa-times\"></i>\r\n        </span>\r\n      }\r\n    </div>\r\n  }\r\n  @if (value || values) {\r\n    <div class=\"input-dropdown form-control\" [style.width]=\"width\"\r\n      [ngClass]=\"[inputSize, values && values.length > 0 ? 'multiple' : '']\">\r\n      @if (value) {\r\n        {{value}}\r\n      }\r\n      @if (values && values.length > 0) {\r\n        @for (value of values; track value) {\r\n          <span class=\"option\">{{value}}</span>\r\n        }\r\n      }\r\n      <div sneat-class=\"float-end\" inspinia-class='pull-right'>\r\n        <i class=\"m-r-xs fa\" [ngClass]=\"allowClear ? 'fa-times' : 'hidden'\" (click)='clear($event)'></i>\r\n        <i class=\"fa\" [ngClass]=\"dropdown.isOpen ? 'fa-caret-up' : 'fa-caret-down'\"></i>\r\n      </div>\r\n    </div>\r\n  }\r\n  <div *dropdownMenu role=\"menu\" (click)=\"$event.stopPropagation()\" class=\"pointer-events-auto\">\r\n    <div [style.width.px]=\"inputContainer.offsetWidth\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </div>\r\n</div>\r\n","//see http://almerosteyn.com/2016/04/linkup-custom-control-to-ngcontrol-ngmodel\r\n\r\nimport { WeekDay } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport moment from 'moment';\r\n\r\nconst noop = () => { };\r\n\r\nexport const SWT_DATE_PICKER_VALUE_ACCESSOR: any = {\r\n    provide: NG_VALUE_ACCESSOR,\r\n    useExisting: forwardRef(() => SwtDatePickerComponent),\r\n    multi: true\r\n};\r\n\r\nconst LOCALE = 'de-DE';\r\n@Component({\r\n    selector: 'swt-date-picker',\r\n    templateUrl: './swt-date-picker.component.html',\r\n    providers: [SWT_DATE_PICKER_VALUE_ACCESSOR],\r\n    changeDetection: ChangeDetectionStrategy.OnPush, //https://angular-2-training-book.rangle.io/handout/change-detection/change_detection_strategy_onpush.html\r\n    styles: [`\r\n        th, td {\r\n            height: 16%;\r\n            width: 14% !important;\r\n        }\r\n\r\n        th {\r\n            width: 2% !important;\r\n        }\r\n\r\n        .datepicker-days, table {\r\n            height: 100%;\r\n        }\r\n\r\n        table {\r\n            width: 100%;\r\n            background-color: white;\r\n        }\r\n\r\n        .second-color {\r\n            color: #aca9a9\r\n        }\r\n\r\n        .bg-marked {\r\n            background-color: #bffab6;\r\n        }\r\n\r\n        .bg-today {\r\n            background-color: #e7e5e5\r\n        }\r\n\r\n        .bg-selected {\r\n            background-color: #1c84c6;\r\n        }\r\n        `\r\n    ],\r\n    standalone: false\r\n})\r\nexport class SwtDatePickerComponent implements ControlValueAccessor, OnInit {\r\n    constructor() {\r\n        moment.locale(LOCALE);\r\n        this.setDaysOfWeek();\r\n\r\n        this.startDate = moment();\r\n        this.currentMonth = this.startDate.month();\r\n        this.currentYear = this.startDate.year();\r\n        this.yearInCenterView = this.currentYear;\r\n    }\r\n\r\n    ngOnInit() {\r\n        this.refreshStartEndDate();\r\n    }\r\n\r\n    @Input()\r\n    public modusYear = true;\r\n\r\n    @Input()\r\n    public set markedDays(value: Date[]) {\r\n        this._markedDays = value;\r\n        this.buildMonth();\r\n    }\r\n    public get markedDays(): Date[] {\r\n        return this._markedDays;\r\n    }\r\n    private _markedDays: Date[];\r\n\r\n    @Input()\r\n    public calendarWeekVisible = false;\r\n\r\n    private _firstDayOfWeek = WeekDay.Monday;\r\n    @Input()\r\n    public get firstDayOfWeek(): WeekDay {\r\n        return this._firstDayOfWeek;\r\n    }\r\n    public set firstDayOfWeek(value: WeekDay) {\r\n        this._firstDayOfWeek = value;\r\n        this.setDaysOfWeek();\r\n        this.refreshStartEndDate();\r\n    }\r\n\r\n    public get lastDayOfWeek(): WeekDay {\r\n        return (this.firstDayOfWeek + 6) % 7;\r\n    }\r\n\r\n    public readonly DisplayModus = DisplayModus;\r\n\r\n    private startDate: moment.Moment;\r\n    private endDate: moment.Moment;\r\n    public currentMonth: number;\r\n    private currentYear: number;\r\n    public weeks: DatePickerWeekViewModel[] = [];\r\n    public daysOfWeek: string[] = [];\r\n    public displayModus: DisplayModus = DisplayModus.Days;\r\n    public yearAuswahl = new Array<Array<number>>(new Array<number>()); // [zeilen][years]\r\n    private yearInCenterView: number;\r\n\r\n    //----------------------\r\n\r\n    //The internal data model\r\n    private innerValue: moment.Moment = moment();\r\n\r\n    //Placeholders for the callbacks which are later provided by the Control Value Accessor\r\n    private onTouchedCallback: () => void = noop;\r\n    private onChangeCallback: (_: any) => void = noop;\r\n\r\n    //From ControlValueAccessor interface\r\n    public registerOnChange(fn: any) {\r\n        this.onChangeCallback = fn;\r\n    }\r\n\r\n    //From ControlValueAccessor interface\r\n    public registerOnTouched(fn: any) {\r\n        this.onTouchedCallback = fn;\r\n    }\r\n\r\n    //get accessor\r\n    public get value(): string | Date {\r\n        return this.valueType === ValueType.DateString ? this.innerValue.format('YYYY-MM-DD') : this.innerValue.toDate();\r\n    }\r\n\r\n    //set accessor including call the onchange callback\r\n    public set value(v: string | Date) {\r\n        if (v !== this.value) {\r\n            this.valueType = (typeof (v) === 'string') ? ValueType.DateString : ValueType.DateObject;\r\n            this.innerValue = moment(v);\r\n            this.onChangeCallback(v);\r\n        }\r\n    }\r\n\r\n    public refresh() {\r\n        this.select(moment(this.value).toDate());\r\n    }\r\n\r\n    public writeValue(v: string | Date) {\r\n        if (v == undefined) {\r\n            this.valueType = ValueType.Undefined;\r\n            v = moment().format('YYYY-MM-DD');\r\n        }\r\n        else if (v == '') {\r\n            this.valueType = ValueType.DateString;\r\n            v = moment().format('YYYY-MM-DD');\r\n        }\r\n        if (this.valueType == ValueType.Undefined)\r\n            this.valueType = (typeof (v) === 'string') ? ValueType.DateString : ValueType.DateObject;\r\n\r\n        this.innerValue = moment(v);\r\n        this.currentMonth = this.innerValue.month();\r\n        this.currentYear = this.innerValue.year();\r\n        this.refreshStartEndDate();\r\n    }\r\n\r\n    //---------------------\r\n    private valueType = ValueType.Undefined;\r\n\r\n    @Output('change')\r\n    public valueChange = new EventEmitter<string | Date>();\r\n    @Output()\r\n    public monthChanged = new EventEmitter<{ startDay: Date; endDay: Date; }>();\r\n\r\n    public select(date: Date) {\r\n        this.innerValue = moment(date);\r\n        this.goToSelectedDate();\r\n        this.valueChange.emit(this.value);\r\n        this.onChangeCallback(this.value);//From ControlValueAccessor interface\r\n    }\r\n\r\n    public get currentMonthAndYear(): Date {\r\n        return new Date(this.currentYear, this.currentMonth);\r\n    }\r\n\r\n    public next(): void {\r\n        if (this.displayModus === DisplayModus.Days)\r\n            this.displayNextMonth();\r\n        else\r\n            this.displayNextYears();\r\n    }\r\n\r\n    public previous(): void {\r\n        if (this.displayModus === DisplayModus.Days)\r\n            this.displayPreviousMonth();\r\n        else\r\n            this.displayPreviousYears();\r\n    }\r\n\r\n    private goToSelectedDate() {\r\n        this.currentMonth = this.innerValue.month();\r\n        this.currentYear = this.innerValue.year();\r\n        this.refreshStartEndDate();\r\n    }\r\n\r\n    private displayNextMonth() {\r\n        if (this.currentMonth < 11) ++this.currentMonth;\r\n        else { this.currentMonth = 0; this.currentYear++; }\r\n        this.refreshStartEndDate();\r\n    }\r\n\r\n    private displayNextYears() {\r\n        this.yearInCenterView = this.yearInCenterView + 25;\r\n        this.fillYearAuswahlArray();\r\n    }\r\n\r\n    private displayPreviousMonth() {\r\n        if (this.currentMonth > 0) --this.currentMonth;\r\n        else { this.currentMonth = 11; this.currentYear--; }\r\n        this.refreshStartEndDate();\r\n    }\r\n\r\n    private displayPreviousYears() {\r\n        this.yearInCenterView = this.yearInCenterView - 25;\r\n        this.fillYearAuswahlArray();\r\n    }\r\n\r\n    /**\r\n     * Berechnet Start- und Enddatum der Ansicht neu\r\n     */\r\n    private refreshStartEndDate() {\r\n        const yearChanged = this.startDate.year() !== this.currentYear;\r\n        const monthChanged = yearChanged || this.startDate.clone().add(1, 'week').month() !== this.currentMonth; // +1 Woche, weil das erste angezeigte Datum im letzen Monat sein kann\r\n        const dayInMonth: moment.Moment = this.startDate.clone().month(this.currentMonth).year(this.currentYear);\r\n\r\n        const startOfMonth = dayInMonth.clone().startOf('month');\r\n        this.startDate = startOfMonth.clone().isoWeekday(this.toIsoWeekday(this.firstDayOfWeek));\r\n        if (startOfMonth < this.startDate)\r\n            this.startDate = this.startDate.subtract(1, 'week');\r\n\r\n        const endOfMonth = dayInMonth.clone().endOf('month');\r\n        this.endDate = endOfMonth.clone().isoWeekday(this.toIsoWeekday(this.lastDayOfWeek));\r\n        if (this.endDate < endOfMonth)\r\n            this.endDate = this.endDate.add(1, 'week');\r\n\r\n        const monthInitialized = this.weeks.length !== 0;\r\n        if (monthChanged) {\r\n            this.monthChanged.emit({ startDay: this.startDate.toDate(), endDay: this.endDate.toDate() });\r\n            this.buildMonth();\r\n        }\r\n        else if (!monthInitialized)\r\n            this.buildMonth();\r\n    }\r\n\r\n    private buildMonth() {\r\n        this.weeks = [];\r\n        const amountOfWeeksInMonth = Math.round(moment(this.endDate).diff(this.startDate, 'days') / 7);\r\n\r\n        const dateForWeek: moment.Moment = this.startDate.clone();\r\n\r\n        for (let week = 0; week < amountOfWeeksInMonth; week++) {\r\n            const datePickerDaysForWeek = this.buildWeek(dateForWeek.clone());\r\n            const datePickerWeek = new DatePickerWeekViewModel(dateForWeek.isoWeek(), datePickerDaysForWeek);\r\n            this.weeks.push(datePickerWeek);\r\n            dateForWeek.add(1, 'w');\r\n        }\r\n    }\r\n\r\n    private buildWeek(amoment: moment.Moment): DatePickerDayViewModel[] {\r\n        const result: DatePickerDayViewModel[] = [];\r\n        let markedMoments = new Array<moment.Moment>();\r\n        if (this.markedDays)\r\n            markedMoments = this.markedDays.map(mD => moment(mD));\r\n        for (let i = 0; i < 7; i++) {\r\n            result.push(new DatePickerDayViewModel(amoment, this.currentMonth, this.innerValue, this.valueChange, markedMoments));\r\n            amoment = amoment.clone();\r\n            amoment.add(1, 'd');\r\n        }\r\n        return result;\r\n    }\r\n\r\n    public today() {\r\n        this.select(new Date(Date.now()));\r\n    }\r\n\r\n    public setYear(pickedYear: number) {\r\n        this.currentYear = pickedYear;\r\n        this.refreshStartEndDate();\r\n        this.displayModus = DisplayModus.Days;\r\n    }\r\n\r\n    public setModusYear() {\r\n        if (this.modusYear) {\r\n            this.displayModus = DisplayModus.Years;\r\n            this.fillYearAuswahlArray();\r\n        }\r\n    }\r\n\r\n    public fillYearAuswahlArray() {\r\n        this.yearAuswahl = new Array<Array<number>>(new Array<number>());\r\n        let startYear = this.yearInCenterView - 12;\r\n        for (let z = 0; z < 5; z++) {\r\n            this.yearAuswahl.push([]);\r\n            for (let i = 0; i < 5; i++) {\r\n                this.yearAuswahl[z].push(startYear);\r\n                startYear++;\r\n            }\r\n        }\r\n    }\r\n\r\n    public getStartDate(): Date {\r\n        return this.startDate.toDate();\r\n    }\r\n\r\n    public getEndDate(): Date {\r\n        return this.endDate.toDate();\r\n    }\r\n\r\n    private setDaysOfWeek() {\r\n        this.daysOfWeek = Array.from({ length: 7 }, (_, i) => moment().day(i + this.firstDayOfWeek).format('ddd'));\r\n    }\r\n\r\n    private toIsoWeekday(day: WeekDay): 1 | 2 | 3 | 4 | 5 | 6 | 7 {\r\n        if (day === WeekDay.Sunday)\r\n            return 7;\r\n        return day;\r\n    }\r\n}\r\n\r\nenum ValueType { Undefined, DateString, DateObject }\r\n\r\nexport class DatePickerWeekViewModel {\r\n    constructor(\r\n        public weekNumber: number,\r\n        public days: DatePickerDayViewModel[] = []\r\n    ) { }\r\n}\r\n\r\nexport class DatePickerDayViewModel {\r\n    constructor(\r\n        public currentMoment: moment.Moment,\r\n        currentMonth: number,\r\n        valueMoment: moment.Moment,\r\n        valueChange: EventEmitter<string | Date>,\r\n        markedDays: moment.Moment[]\r\n    ) {\r\n        this.isCurrentMonth = currentMoment.month() == currentMonth;\r\n        this.isToday = currentMoment.isSame(new Date(), 'day');\r\n        this.isSelected = currentMoment.isSame(valueMoment, 'day');\r\n        this.isMarked = markedDays.some(mD => mD.startOf('day').isSame(currentMoment));\r\n        // TODO unsubscribe\r\n        valueChange.subscribe((newValue: string | Date) => {\r\n            const newValueMoment = moment(newValue);\r\n            this.isSelected = currentMoment.isSame(newValueMoment, 'day');\r\n        });\r\n    }\r\n    public isCurrentMonth: boolean;\r\n    public isToday: boolean;\r\n    public isSelected: boolean;\r\n    public isMarked: boolean;\r\n    public get currentDate(): Date {\r\n        return this.currentMoment.toDate();\r\n    }\r\n\r\n    public get cssClass(): string {\r\n        let result = '';\r\n        if (!this.isCurrentMonth) result += ' second-color';\r\n        if (this.isToday) result += ' bg-today ';\r\n        if (this.isSelected) result += ' bg-selected';\r\n        if (this.isMarked) result += ' bg-marked';\r\n        return result;\r\n    }\r\n}\r\n\r\nexport enum DisplayModus {\r\n    Years = 0,\r\n    Days = 1\r\n}\r\n","<div class=\"datepicker-days\" style=\"background-color: white\">\r\n  <table class=\"table-condensed table-bordered small\">\r\n    <thead>\r\n      <tr>\r\n        <th colspan=\"8\">\r\n          <div style=\"position:relative;width: 100%;display: block;height: 34px;\">\r\n            <div style=\"position:absolute;\">\r\n              <a class=\"btn btn-white\" (click)=\"previous()\">«</a>\r\n            </div>\r\n            <div style=\"position:absolute;right:0\">\r\n              <a class=\"btn btn-white\" (click)=\"next()\">»</a>\r\n            </div>\r\n            <div [hidden]=\"displayModus !== DisplayModus.Days\" class=\"text-center\"\r\n              style=\"line-height: 32px;\">\r\n              {{ currentMonthAndYear | date: 'MMMM' }}\r\n              <span style=\"cursor: pointer; width: 32px;\" (click)=\"setModusYear()\">\r\n                {{ currentMonthAndYear | date: 'yyyy' }}\r\n              </span>\r\n            </div>\r\n            <div [hidden]=\"displayModus !== DisplayModus.Years\" class=\"text-center\"\r\n              style=\"line-height: 32px;\">\r\n              Jahr\r\n            </div>\r\n          </div>\r\n        </th>\r\n      </tr>\r\n      <tr [hidden]=\"displayModus === DisplayModus.Years\">\r\n        @if (calendarWeekVisible) {\r\n          <th>KW</th>\r\n        }\r\n        @if (!calendarWeekVisible) {\r\n          <th></th>\r\n        }\r\n        @for (dayOfWeek of daysOfWeek; track dayOfWeek) {\r\n          <th style=\"width:32px;padding:2px\">\r\n            {{ dayOfWeek }}\r\n          </th>\r\n        }\r\n      </tr>\r\n    </thead>\r\n\r\n    <tbody [hidden]=\"displayModus !== DisplayModus.Days\">\r\n      @for (week of weeks; track week) {\r\n        <tr class=\"week\">\r\n          @if (calendarWeekVisible) {\r\n            <th class=\"text-center\"><small style=\"cursor: default\">{{ week.weekNumber }}</small></th>\r\n          }\r\n          @else {\r\n            <th class=\"text-center\"></th>\r\n          }\r\n          @for (dayOfWeek of week.days; track dayOfWeek) {\r\n            <td class=\"text-center\" [ngClass]=\"dayOfWeek.cssClass\"\r\n              (click)=\"select(dayOfWeek.currentDate)\" style=\"cursor:pointer;width:32px\">\r\n              {{ dayOfWeek.currentDate | date: 'd' }}\r\n            </td>\r\n          }\r\n        </tr>\r\n      }\r\n    </tbody>\r\n\r\n    <tbody [hidden]=\"displayModus !== DisplayModus.Years\">\r\n      @for (arrayYears of yearAuswahl; track arrayYears) {\r\n        <tr class=\"week\">\r\n          @for (year of arrayYears; track year) {\r\n            <td class=\"text-center\" (click)=\"setYear(year)\"\r\n              style=\"cursor: pointer; width: 64px; padding: 3px;\">\r\n              {{ year }}\r\n            </td>\r\n          }\r\n        </tr>\r\n      }\r\n    </tbody>\r\n\r\n    <tfoot>\r\n      <tr>\r\n        <th [hidden]=\"displayModus === DisplayModus.Years\" colspan=\"8\" class=\"text-center\">\r\n          <button class=\"btn btn-sm btn-white\" type=\"button\" (click)=\"today()\">Heute</button>\r\n        </th>\r\n      </tr>\r\n    </tfoot>\r\n  </table>\r\n</div>\r\n","import moment from 'moment';\r\n\r\n/**\r\n * - number: Letzten x Tage bis zum gewählten Tag\r\n * - 'day', 'currentday': Tag\r\n * - 'currentmonth': Monat + Jahr\r\n * - 'currentmonthwithoutyear': Datum => Monat\r\n * - 'currentquarter': Quartal + Jahr\r\n * - 'currentyear': Jahr\r\n * - 'interval': Tag bis Tag\r\n * - 'calendarweek': Kalenderwoche + Jahr\r\n * - 'monthinterval': Monat bis Monat + Jahr\r\n */\r\nexport type TIntervalSelectType = number | 'day' | 'currentday' | 'currentmonth' | 'currentquarter' | 'currentyear' | 'interval' | 'currentmonthwithoutyear' | 'calendarweek' | 'monthinterval';\r\n\r\nexport class DateInterval {\r\n    constructor(start?: string | Date, end?: string | Date) {\r\n        this.setStart(start);\r\n        this.setEnd(end);\r\n    }\r\n\r\n    public start: string;\r\n    public end: string;\r\n\r\n    public get startMoment(): moment.Moment {\r\n        return moment(this.start);\r\n    }\r\n\r\n    public get endMoment(): moment.Moment {\r\n        return moment(this.end);\r\n    }\r\n\r\n    public get startDate(): Date {\r\n        return moment(this.start).toDate();\r\n    }\r\n\r\n    public get endDate(): Date {\r\n        return moment(this.end).toDate();\r\n    }\r\n\r\n    public setStart(d: string | Date);\r\n    public setStart(m: moment.Moment);\r\n    public setStart(value: any) {\r\n        this.start = moment(value).format('YYYY-MM-DD');\r\n    }\r\n\r\n    public setEnd(d: string | Date);\r\n    public setEnd(m: moment.Moment);\r\n    public setEnd(value: any) {\r\n        this.end = moment(value).format('YYYY-MM-DD');\r\n    }\r\n}\r\n","import moment from 'moment';\r\n\r\nconst MILLISECONDSPERDAY = 86400000;\r\nexport class DateRange {\r\n    constructor(start?: string | Date, end?: string | Date, maxDuration?: number) {\r\n        this.setStart(start);\r\n        this.setEnd(end);\r\n        this.maxDurationInDays = maxDuration;\r\n    }\r\n\r\n    public static createFromDateRange(from: DateRange, maxDuration?: number) {\r\n        const newMaxDuration = maxDuration !== undefined ? maxDuration : from.maxDurationInDays;\r\n        return new DateRange(from.start, from.end, newMaxDuration);\r\n    }\r\n\r\n    private _start?: string;\r\n    public set start(val: string){\r\n        this.setStart(val);\r\n    }\r\n    public get start(): string | undefined{\r\n        return this._start;\r\n    }\r\n    private _end?: string;\r\n    public set end(val: string){\r\n        this.setEnd(val);\r\n    }\r\n    public get end(): string | undefined{\r\n        return this._end;\r\n    }\r\n    public readonly maxDurationInDays?: number;\r\n\r\n    public get isValid(): boolean {\r\n        return this.isDefined() && this.hasValidOrder() && this.durationMaxisNotExceeded();\r\n    }\r\n\r\n    public isDefined(): boolean {\r\n        return this.start !== undefined && this.end !== undefined;\r\n    }\r\n\r\n    public hasValidOrder(): boolean {\r\n        return this.start === this.end || moment(this.start).isBefore(moment(this.end));\r\n    }\r\n\r\n    public durationMaxisNotExceeded(): boolean {\r\n        if (this.maxDurationInDays === undefined)\r\n            return true;\r\n        const diff = moment(this.end).diff(moment(this.start));\r\n        return (diff / MILLISECONDSPERDAY + 1) <= this.maxDurationInDays;\r\n    }\r\n\r\n    public setStart(value: string | Date) {\r\n        const valAsMoment = moment(value);\r\n        if (valAsMoment.isValid())\r\n            this._start = valAsMoment.format('YYYY-MM-DD');\r\n        else\r\n            this._start = undefined;\r\n    }\r\n\r\n    public setEnd(value: string | Date) {\r\n        const valAsMoment = moment(value);\r\n        if (valAsMoment.isValid())\r\n            this._end = valAsMoment.format('YYYY-MM-DD');\r\n        else\r\n            this._end = undefined;\r\n    }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, inject } from '@angular/core';\r\nimport { I18nService } from '@sowatech/shared/utilities';\r\n\r\nimport { DateInterval } from './swt-date-interval/swt-date-interval.model';\r\nimport { DateRange } from './swt-date-range.model';\r\n\r\n@Component({\r\n    selector: 'swt-date-range-picker',\r\n    templateUrl: './swt-date-range-picker.component.html',\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    styles: [`\r\n    h3 {\r\n        text-align: center;\r\n    }\r\n    .dropdown-bg {\r\n        background-color: white;\r\n        border: 1px solid #ccc;\r\n        padding: 4px;\r\n        border-radius: 4px;\r\n        width: 220px;\r\n        input {\r\n            width: 100%;\r\n        }\r\n        button {\r\n            margin-left: auto;\r\n            margin-right: 0px;\r\n            display: block;\r\n        }\r\n    }\r\n    `],\r\n    standalone: false\r\n})\r\nexport class SwtDateRangePickerComponent {\r\n    private i18n = inject(I18nService);\r\n\r\n    public stopPropagation(evt: Event): void {\r\n        evt.stopPropagation();\r\n    }\r\n\r\n    @Input() public set inputInterval(val: DateInterval) {\r\n        this.currentRange.setStart(val.start);\r\n        this.currentRange.setEnd(val.end);\r\n    }\r\n    @Input() public set maxDurationInDays(val: number) {\r\n        if (this.currentRange.maxDurationInDays !== val)\r\n            this.currentRange = DateRange.createFromDateRange(this.currentRange, val);\r\n    }\r\n    @Output() public newInterval: EventEmitter<DateInterval> = new EventEmitter<DateInterval>();\r\n\r\n    public currentRange: DateRange = new DateRange();\r\n    public errortext?: string;\r\n\r\n    public submitInterval() {\r\n        this.errortext = undefined;\r\n        if (this.currentRange.isValid)\r\n            this.newInterval.emit(new DateInterval(this.currentRange.start, this.currentRange.end));\r\n        else\r\n            this.errortext = this.getError(this.currentRange);\r\n    }\r\n\r\n    public getError(range: DateRange): string {\r\n        if (!range.isDefined())\r\n            return $localize`:@@SwtDateRange.MissingDateHint.dsp.Label:Start oder Enddatum nicht gesetzt`;\r\n        if (!range.hasValidOrder())\r\n            return $localize`:@@SwtDateInterval.EndBeforeStart.dsp.Tooltip:Ende liegt vor Start`;\r\n        if (!range.durationMaxisNotExceeded())\r\n            return this.i18n.replace($localize`:@@SwtDateRange.DurationExceededHint.dsp.Label:Dauer überschreitet Maximaldauer von $0 Tagen`, [range.maxDurationInDays.toString()]);\r\n    }\r\n\r\n}\r\n","<div class=\"dropdown-bg\">\r\n  <ly-title context=\"swt-date-range-picker\" sizeClass=\"title-size-4\" i18n=\"@@SwtDateRange.DateRange.dsp.Label\">Zeitraum auswählen</ly-title>\r\n  <label for=\"swtRangePickerStart\" i18n=\"@@SwtDateInterval.interval.from.dsp.Label\">Von</label>\r\n  <input type=\"date\" id=\"swtRangePickerStart\" [width]=\"'120px'\" class=\"form-control no-spinners\"\r\n    [(ngModel)]=\"currentRange.start\" (change)=\"stopPropagation($event)\">\r\n    <label for=\"swtRangePickerEnd\" i18n=\"@@SwtDateRangePicker.year.to.dsp.Label\">Bis</label>\r\n    <input type=\"date\" id=\"swtRangePickerEnd\" [width]=\"'120px'\" class=\"form-control no-spinners\"\r\n      [(ngModel)]=\"currentRange.end\" (change)=\"stopPropagation($event)\">\r\n      @if (errortext) {\r\n        <div class=\"text-danger\">\r\n          <i class=\"fa fa-exclamation-triangle m-r-xs\"></i>{{errortext}}\r\n        </div>\r\n      }\r\n      <div inspinia-class=\"m-t-sm\" sneat-class=\"mt-1\">\r\n        <button sneat-class=\"px-2 py-1\" button-custom class=\"btn btn-primary\" (click)=\"submitInterval()\"\r\n        i18n=\"@@SwtDateRange.OK.act.Label\">OK</button>\r\n      </div>\r\n    </div>\r\n","import { Component, ViewChild, ElementRef, Input } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'swt-popover',\r\n    template: `\r\n        <div #popover class=\"popover top in\" role=\"tooltip\" [style.display]=\"display\" style=\"position:absolute\">\r\n            <div #arrow class=\"arrow\"></div>\r\n            <ly-title context=\"swt-popover\" customClass=\"popover-title popover-font\" sizeClass=\"title-size-3\">{{title}}</ly-title>\r\n            <div class=\"popover-content\">\r\n                <ng-content></ng-content>\r\n            </div>\r\n        </div>`,\r\n    standalone: false\r\n})\r\n\r\n//http://getbootstrap.com/javascript/#popovers\r\nexport class SwtPopoverComponent {\r\n    @Input() title: string;\r\n\r\n    private placement: 'top' | 'bottom' | 'left' | 'right' = 'top';\r\n    @Input('placement') set setPlacement(value: 'top' | 'bottom' | 'left' | 'right') {\r\n        this.popoverElement.classList.remove(this.placement);\r\n        this.placement = value;\r\n        this.popoverElement.classList.add(this.placement);\r\n        this.setArrowStyle();\r\n    }\r\n\r\n    private trigger: 'click' | 'hover' | 'focus' | 'manual' = 'click';\r\n    @Input('trigger') set setTrigger(value: 'click' | 'hover' | 'focus' | 'manual') {\r\n        this.removeEventListener();\r\n        this.trigger = value;\r\n        this.addEventListener();\r\n    }\r\n\r\n    private target: HTMLElement;\r\n    @Input('target') set setTarget(value: HTMLElement) {\r\n        this.removeEventListener();\r\n        this.target = value;\r\n        this.addEventListener();\r\n    }\r\n\r\n\r\n    private oldEvent = '';\r\n    private popoverElement: HTMLElement;\r\n    private arrowElement: HTMLElement;\r\n    @ViewChild('arrow', { static: true }) arrow: HTMLElement;\r\n\r\n    @ViewChild('arrow', { static: true }) set arrowRef(ref: ElementRef) {\r\n        if (ref) this.arrowElement = ref.nativeElement;\r\n    }\r\n\r\n    @ViewChild('popover', { static: true }) set popoverRef(ref: ElementRef) {\r\n        if (ref) this.popoverElement = ref.nativeElement;\r\n    }\r\n\r\n    private setArrowStyle() {\r\n        switch (this.placement) {\r\n            case 'left':\r\n                this.arrowElement.style.left = '50 %';\r\n                break;\r\n            case 'right':\r\n            default:\r\n                this.arrowElement.style.top = '50 %';\r\n                break;\r\n        }\r\n    }\r\n\r\n    private currentEventListener: EventListener;\r\n\r\n    private removeEventListener() {\r\n        if (this.target && this.triggerEventName && this.currentEventListener)\r\n            this.target.removeEventListener(this.triggerEventName, this.currentEventListener);\r\n\r\n    }\r\n\r\n    private addEventListener() {\r\n        if (this.target && this.triggerEventName) {\r\n            this.currentEventListener = () => { this.show(this.target); };\r\n            this.target.addEventListener(this.triggerEventName, this.currentEventListener);\r\n            //this.target.onmouseenter = (ev: MouseEvent) => { this.show(this.target) };\r\n        }\r\n    }\r\n\r\n    private get triggerEventName(): string {\r\n        let eventName = '';\r\n        switch (this.trigger) {\r\n            case 'click':\r\n                eventName = 'click';\r\n                break;\r\n            case 'focus':\r\n                eventName = 'focus';\r\n                break;\r\n            case 'manual':\r\n                eventName = null;\r\n                break;\r\n            case 'hover':\r\n            default:\r\n                eventName = 'mouseenter';\r\n                break;\r\n        }\r\n        return eventName;\r\n    }\r\n\r\n    public get display(): string {\r\n        return this.visible ? 'block' : 'none';\r\n    }\r\n\r\n    public visible: boolean;\r\n\r\n    public show(target: HTMLElement = null) {\r\n        const showTarget = target ? target : this.target;\r\n        this.visible = true;\r\n        this.calculatePosition();\r\n        setTimeout(() => { this.hide(); }, 1400);\r\n    }\r\n\r\n    public hide() {\r\n        this.visible = false;\r\n    }\r\n\r\n    private calculatePosition() {\r\n        const targetRect: ClientRect = (this.target).getBoundingClientRect();\r\n        this.popoverElement.style.display = 'inline-block';\r\n        const popoverRect: ClientRect = (this.popoverElement).getBoundingClientRect();\r\n\r\n        switch (this.placement) {\r\n            case 'right':\r\n                this.popoverElement.style.left = (targetRect.width).toString() + 'px';\r\n                this.popoverElement.style.top = (targetRect.height / 2 - popoverRect.height / 2).toString() + 'px';\r\n                break;\r\n            case 'bottom':\r\n                this.popoverElement.style.left = (targetRect.width / 2 - (popoverRect.width / 2)).toString() + 'px';\r\n                this.popoverElement.style.top = (targetRect.height).toString() + 'px';\r\n                break;\r\n            case 'top':\r\n                this.popoverElement.style.left = (targetRect.width / 2 - (popoverRect.width / 2)).toString() + 'px';\r\n                this.popoverElement.style.top = (0 - popoverRect.height).toString() + 'px';\r\n                break;\r\n            case 'left':\r\n                this.popoverElement.style.left = (0 - popoverRect.width).toString() + 'px';\r\n                this.popoverElement.style.top = ((targetRect.height / 2) - (popoverRect.height / 2)).toString() + 'px';\r\n                break;\r\n            default:\r\n                //this ist hier never?!?\r\n                //this.popoverElement.style.left = (targetRect.width / 2 - (popoverRect.width / 2)).toString() + \"px\";\r\n                //this.popoverElement.style.top = (0 - popoverRect.height).toString() + \"px\";\r\n                break;\r\n        }\r\n    }\r\n}\r\n\r\nexport class PopoverPosition {\r\n    constructor(offsetTop: number, offsetLeft: number) {\r\n        this.OffsetTop = offsetTop;\r\n        this.OffsetLeft = offsetLeft;\r\n    }\r\n    OffsetTop = 0;\r\n    OffsetLeft = 0;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LoggerService } from '@sowatech/shared/logger';\r\nimport { UserPropertiesStorageService } from '@sowatech/shared/user-properties-storage';\r\nimport moment from 'moment';\r\n\r\nimport { TIntervalSelectType } from './swt-date-interval.model';\r\n\r\nconst STOREKEY_PREFIX = 'SwtDateIntervalStore.';\r\nconst STOREKEY_SELECTEDDATE_POSTFIX = '.SelectedDate';\r\nconst STOREKEY_SELECTEDFROMDATE_POSTFIX = '.SelectedFromDate';\r\nconst STOREKEY_SELECTEDITEMVALUE_POSTFIX = '.SelectedItemValue';\r\n\r\n@Injectable() export class SwtDateIntervalStoreHelper {\r\n    //private storeKey: string;\r\n\r\n    constructor(\r\n        private loggerService: LoggerService,\r\n        private storage: UserPropertiesStorageService,\r\n    ) { }\r\n\r\n    //public init(storeKey: string) { this.storeKey = storeKey; }\r\n\r\n    public clearStorage(storeKey: string) {\r\n        this.loggerService.log('SwtDateIntervalStoreHelper.clearStorage');\r\n        this.storage.delete(this.selectedDateKey(storeKey));\r\n        this.storage.delete(this.selectedFromDateKey(storeKey));\r\n        this.storage.delete(this.selectedItemValueKey(storeKey));\r\n    }\r\n\r\n    public loadFromStorage(storeKey: string, maxDurationInDays?: number): DateIntervalStoredData {\r\n        this.loggerService.log('SwtDateIntervalStoreHelper.loadFromStorage');\r\n        const result = new DateIntervalStoredData(\r\n            this.storage.load<string>(this.selectedDateKey(storeKey)),\r\n            this.storage.load<string>(this.selectedFromDateKey(storeKey)),\r\n            this.storage.load<number>(this.selectedItemValueKey(storeKey)),\r\n            maxDurationInDays\r\n        );\r\n\r\n        return result;\r\n    }\r\n\r\n    public saveToStorage(storeKey: string, start: string, end: string, intervalSelectType: TIntervalSelectType) {\r\n        this.loggerService.log('SwtDateIntervalStoreHelper.saveToStorage');\r\n        this.storage.save(this.selectedDateKey(storeKey), start);\r\n        this.storage.save(this.selectedFromDateKey(storeKey), end);\r\n        this.storage.save(this.selectedItemValueKey(storeKey), intervalSelectType);\r\n    }\r\n\r\n    private selectedDateKey(storeKey: string): string {\r\n        return STOREKEY_PREFIX + storeKey + STOREKEY_SELECTEDDATE_POSTFIX;\r\n    }\r\n\r\n    private selectedFromDateKey(storeKey: string): string {\r\n        return STOREKEY_PREFIX + storeKey + STOREKEY_SELECTEDFROMDATE_POSTFIX;\r\n    }\r\n\r\n    private selectedItemValueKey(storeKey: string): string {\r\n        return STOREKEY_PREFIX + storeKey + STOREKEY_SELECTEDITEMVALUE_POSTFIX;\r\n    }\r\n}\r\n\r\nclass DateIntervalStoredData {\r\n    constructor(start: string, end: string, intervalSelectType: TIntervalSelectType, maxDurationInDays?: number) {\r\n        this.start = start;\r\n        this.end = end;\r\n        this.intervalSelectType = intervalSelectType;\r\n        this.maxDurationInDays = maxDurationInDays;\r\n    }\r\n    public start: string;\r\n    public end: string;\r\n    public intervalSelectType: TIntervalSelectType;\r\n    private maxDurationInDays?: number;\r\n    public get isValid(): boolean {\r\n        return this.isDefined() && this.hasValidDates() && this.hasValidOrder() && this.durationMaxisNotExceeded();\r\n    }\r\n\r\n    private hasValidDates(): boolean {\r\n        return moment(this.start).isValid() && moment(this.end).isValid();\r\n    }\r\n\r\n    private isDefined(): boolean {\r\n        return this.start !== undefined && this.end !== undefined;\r\n    }\r\n\r\n    private hasValidOrder(): boolean {\r\n        return this.start === this.end || moment(this.start).isBefore(moment(this.end));\r\n    }\r\n\r\n    private durationMaxisNotExceeded(): boolean {\r\n        if (this.maxDurationInDays === undefined || this.intervalSelectType !== 'interval')\r\n            return true;\r\n        const diff = moment(this.end).diff(moment(this.start));\r\n        return (diff / 86400000 + 1) <= this.maxDurationInDays;\r\n    }\r\n\r\n}\r\n","import { Component, Directive, Input } from '@angular/core';\r\n\r\nimport type { SwtDateIntervalComponent } from '../swt-date-interval.component';\r\n\r\n@Directive()\r\nexport abstract class SwtDateIntervalComponentBase {\r\n    @Input()\r\n    public component: SwtDateIntervalComponent;\r\n}\r\n\r\n@Component({\r\n    selector: 'swt-date-interval-inspinia',\r\n    templateUrl: './swt-date-interval.inspinia.component.html',\r\n    styleUrls: ['../swt-date-interval.component.scss'],\r\n    standalone: false\r\n})\r\nexport class SwtDateIntervalInspiniaComponent extends SwtDateIntervalComponentBase { }\r\n\r\n@Component({\r\n    selector: 'swt-date-interval-sneat',\r\n    templateUrl: './swt-date-interval.sneat.component.html',\r\n    styleUrls: [\r\n        '../swt-date-interval.component.scss',\r\n        './swt-date-interval.sneat.scss'\r\n    ],\r\n    standalone: false\r\n})\r\nexport class SwtDateIntervalSneatComponent extends SwtDateIntervalComponentBase { }\r\n","<div class=\"form-inline m-b-sm\">\r\n  @if (component.selectItems.length > 1) {\r\n    <div class=\"form-group\">\r\n      <div dropdown name=\"intervalSelectType\" class=\"btn-group\">\r\n        <button dropdownToggle type=\"button\" id=\"intervalSelectType\" class=\"btn btn-default dropdown-toggle\"\r\n          title=\"Intervall-Art auswählen\" i18n-title=\"@@SwtDateInterval.IntervalSelectType.dsp.Tooltip\">\r\n          <i class=\"fa fa-calendar-week\"></i>\r\n        </button>\r\n        <ul *dropdownMenu role=\"menu\" id=\"dropdown-basic\" class=\"dropdown-menu\">\r\n          @for (item of component.selectItems; track item) {\r\n            <li role=\"menuitem\">\r\n              <a (click)=\"component.setIntervalSelectType(item.value)\" class=\"dropdown-item\">{{item.text}}</a>\r\n            </li>\r\n          }\r\n        </ul>\r\n      </div>\r\n    </div>\r\n  }\r\n\r\n  @if (component.fromDatePickerVisible) {\r\n    <div class=\"form-group\">\r\n      @if (component.useBrowserDateInput()) {\r\n        <input type=\"date\" aria-label=\"Von\"\r\n          i18n-aria-label=\"@@SwtDateInterval.interval.from.dsp.Label\" [width]=\"'120px'\"\r\n          class=\"form-control no-spinners\" [name]=\"component.selectedDateAsString\"\r\n          [(ngModel)]=\"component.currentInterval.start\" (ngModelChange)=\"component.onIntervalChange()\"\r\n          (change)=\"component.onInputChange($event)\">\r\n      }\r\n      @if (!component.useBrowserDateInput()) {\r\n        <swt-dropdown-container #swtFromcontainer [width]=\"'120px'\"\r\n          [displayValue]=\"component.currentInterval.start | date:'dd.MM.yyyy'\"\r\n          [container]=\"component.swtDropdownContainerContainer\">\r\n          <swt-date-picker name=\"selectedFromDate\" [(ngModel)]=\"component.currentInterval.start\"\r\n            (ngModelChange)=\"component.onIntervalChange()\"\r\n            (change)=\"component.onInputChange($event,swtFromcontainer)\">\r\n          </swt-date-picker>\r\n        </swt-dropdown-container>\r\n      }\r\n    </div>\r\n  }\r\n\r\n  @if (component.calendarweekVisible) {\r\n    <div class=\"form-group\">\r\n      <button aria-label=\"Vorherige Woche auswählen\" i18n-aria-label=\"@@SwtDateInterval.SelectPreviousWeek.dsp.Label\"\r\n        class=\"btn btn-primary\" (click)=\"component.calendarWeekAdd(-1)\" disable-no-double-click [disabled]=\"component.isFirstCalendarWeekOfYear\">\r\n        <ng-container *ngTemplateOutlet=\"iconPrevious\"></ng-container>\r\n      </button>\r\n      <select id=\"selectedCalendarWeek\" name=\"selectedCalendarWeek\"\r\n        aria-label=\"Auswahl der Kalenderwoche\" i18n-aria-label=\"@@SwtDateInterval.SelectedCalendarWeek.dsp.Label\"\r\n        class=\"form-control\" [(ngModel)]=\"component.selectedCalendarWeek\"\r\n        (ngModelChange)=\"component.onCalendarWeekChange()\" (change)=\"component.onInputChange($event)\">\r\n        @for (calendarWeek of component.calendarWeeks; track calendarWeek) {\r\n          <option [value]=\"calendarWeek.value\">\r\n            {{ calendarWeek.text }}\r\n          </option>\r\n        }\r\n      </select>\r\n      <button aria-label=\"Nächste Woche auswählen\" i18n-aria-label=\"@@SwtDateInterval.SelectNextWeek.dsp.Label\"\r\n        class=\"btn btn-primary\" (click)=\"component.calendarWeekAdd(1)\" disable-no-double-click [disabled]=\"component.isLastCalendarWeekOfYear\">\r\n        <ng-container *ngTemplateOutlet=\"iconNext\"></ng-container>\r\n      </button>\r\n    </div>\r\n  }\r\n\r\n  @if (component.fromMonthVisible) {\r\n    <div class=\"form-group\">\r\n      <select name=\"selectedFromMonthIndex\" aria-label=\"Auswahl Monat\"\r\n        i18n-aria-label=\"@@SwtDateInterval.SelectedFromMonthIndex.dsp.Label\" class=\"form-control\"\r\n        [(ngModel)]=\"component.selectedFromMonth\" (ngModelChange)=\"component.onMonthYearChange()\"\r\n        (change)=\"component.onInputChange($event)\">\r\n        @for (month of component.months; track month) {\r\n          <option [value]=\"month.value\">\r\n            {{month.text}}\r\n          </option>\r\n        }\r\n      </select>\r\n    </div>\r\n  }\r\n\r\n  @if (!component.intervalVisible) {\r\n    @if (component.delimiter) {\r\n      <span class=\"m-r-xs m-l-xs\">{{component.delimiter}}</span>\r\n    } @else {\r\n      <span class=\"m-r-xs\"></span>\r\n    }\r\n  }\r\n\r\n  @if (component.datepickervisible) {\r\n    <div class=\"form-group\">\r\n      @if (component.useBrowserDateInput()) {\r\n        <input type=\"date\" [width]=\"'120px'\" aria-label=\"Jahr\"\r\n          i18n-aria-label=\"@@SwtDateInterval.SelectedYear.dsp.Label\" class=\"form-control no-spinners\"\r\n          [name]=\"component.selectedDateAsString\" [(ngModel)]=\"component.currentInterval.end\"\r\n          (ngModelChange)=\"component.onIntervalChange()\" (change)=\"component.onInputChange($event)\">\r\n      }\r\n      @if (!component.useBrowserDateInput()) {\r\n        <swt-dropdown-container #swtTocontainer [inputSize]=\"'medium'\"\r\n          [width]=\"'120px'\" [displayValue]=\"component.currentInterval.end | date:'dd.MM.yyyy'\"\r\n          [container]=\"component.swtDropdownContainerContainer\">\r\n          <swt-date-picker name=\"selectedDate\" [(ngModel)]=\"component.currentInterval.end\"\r\n            (ngModelChange)=\"component.onIntervalChange()\"\r\n            (change)=\"component.onInputChange($event,swtTocontainer)\">\r\n          </swt-date-picker>\r\n        </swt-dropdown-container>\r\n      }\r\n      <span [hidden]=\"!component.startEndError\" class=\"text-warning\">\r\n        <i class=\"fa fa-exclamation-triangle\" title=\"Ende liegt vor Start\"\r\n        i18n-title=\"@@SwtDateInterval.EndBeforeStart.dsp.Tooltip\"></i>\r\n      </span>\r\n    </div>\r\n  }\r\n\r\n  @if (component.monthvisible) {\r\n    <div class=\"form-group\">\r\n      <select name=\"selectedMonthIndex\" aria-label=\"Monat\" i18n-aria-label=\"@@SwtDateInterval.SelectedMonth.dsp.Label\"\r\n        class=\"form-control m-r-xs\" [(ngModel)]=\"component.selectedMonth\"\r\n        (ngModelChange)=\"component.onMonthYearChange()\" (change)=\"component.onInputChange($event)\">\r\n        @for (month of component.months; track month) {\r\n          <option [value]=\"month.value\">\r\n            {{month.text}}\r\n          </option>\r\n        }\r\n      </select>\r\n      <button aria-label=\"Vorheriges Jahr auswählen\" i18n-aria-label=\"@@SwtDateInterval.SelectPastYear.dsp.Label\"\r\n        for=\"selectedYear\" type=\"button\" class=\"btn btn-primary\" (click)=\"component.selectedYearAdd(-1)\">\r\n        <ng-container *ngTemplateOutlet=\"iconPrevious\"></ng-container>\r\n      </button>\r\n      <input aria-label=\"Jahr\" i18n-aria-label=\"@@SwtDateInterval.SelectedYear.dsp.Label\" name=\"selectedYear\"\r\n        class=\"form-control no-spinners text-center\" style=\"width:100px;\" [(ngModel)]=\"component.selectedYear\" type=\"number\"\r\n        (ngModelChange)=\"component.onMonthYearChange()\" />\r\n        <button aria-label=\"Nächstes Jahr auswählen\" i18n-aria-label=\"@@SwtDateInterval.SelectNextYear.dsp.Label\"\r\n          for=\"selectedYear\" type=\"button\" class=\"btn btn-primary\" (click)=\"component.selectedYearAdd(1)\">\r\n          <ng-container *ngTemplateOutlet=\"iconNext\"></ng-container>\r\n        </button>\r\n        <span [hidden]=\"!component.startEndError\" class=\"text-warning\">\r\n          <i class=\"fa fa-warning\" title=\"Ende liegt vor Start\"\r\n          i18n-title=\"@@SwtDateInterval.EndBeforeStart.dsp.Tooltip\"></i>\r\n        </span>\r\n      </div>\r\n    }\r\n\r\n    @if (component.quarterSelectorVisible) {\r\n      <div class=\"form-group\">\r\n        <select name=\"selectQuarter\" aria-label=\"Quartal\" i18n-aria-label=\"@@SwtDateInterval.Quarter.dsp.Label\"\r\n          class=\"form-control m-r-xs\" [(ngModel)]=\"component.selectedFromQuarter\"\r\n          (ngModelChange)=\"component.updateQuarter()\" (change)=\"component.onInputChange($event)\">\r\n          @for (quarter of component.quarters; track quarter) {\r\n            <option [value]=\"quarter.value\">\r\n              {{ quarter.text }}\r\n            </option>\r\n          }\r\n        </select>\r\n      </div>\r\n    }\r\n\r\n    @if (component.yearvisible) {\r\n      <div class=\"form-group\">\r\n        <button aria-label=\"Vorheriges Jahr auswählen\" i18n-aria-label=\"@@SwtDateInterval.SelectPastYear.dsp.Label\"\r\n          type=\"submit\" class=\"btn btn-primary\" (click)=\"component.selectedYearAdd(-1)\">\r\n          <ng-container *ngTemplateOutlet=\"iconPrevious\"></ng-container>\r\n        </button>\r\n        <input aria-label=\"Jahr\" i18n-aria-label=\"@@SwtDateInterval.SelectedYear.dsp.Label\" name=\"selectedYear\"\r\n          class=\"form-control no-spinners text-center\" style=\"width: 100px;\" [(ngModel)]=\"component.selectedYear\" type=\"number\"\r\n          (ngModelChange)=\"component.onMonthYearChange()\" />\r\n          <button aria-label=\"Nächstes Jahr auswählen\" i18n-aria-label=\"@@SwtDateInterval.SelectNextYear.dsp.Label\"\r\n            type=\"submit\" class=\"btn btn-primary\" (click)=\"component.selectedYearAdd(1)\">\r\n            <ng-container *ngTemplateOutlet=\"iconNext\"></ng-container>\r\n          </button>\r\n        </div>\r\n      }\r\n\r\n      @if (component.intervalVisible) {\r\n        <div class=\"form-group\">\r\n          <swt-dropdown-container #swtdaterangecontainer [width]=\"'220px'\"\r\n            [displayValue]=\"(component.currentInterval.start | date:'dd.MM.yyyy') + ' - ' + (component.currentInterval.end | date:'dd.MM.yyyy')\"\r\n            [container]=\"component.swtDropdownContainerContainer\">\r\n            <swt-date-range-picker [maxDurationInDays]=\"component.maxDurationInDays\"\r\n              [inputInterval]=\"component.currentInterval\"\r\n            (newInterval)=\"component.newIntervalFromRangePicker($event,swtdaterangecontainer)\"></swt-date-range-picker>\r\n          </swt-dropdown-container>\r\n        </div>\r\n      }\r\n    </div>\r\n\r\n    <ng-template #iconPrevious>\r\n      <i class=\"fa fa-angle-left\" aria-hidden=\"true\"></i>\r\n    </ng-template>\r\n    <ng-template #iconNext>\r\n      <i class=\"fa fa-angle-right\" aria-hidden=\"true\"></i>\r\n    </ng-template>\r\n","<div class=\"form-inline mb-2\">\r\n  @if (component.selectItems.length > 1) {\r\n    <div class=\"form-group\">\r\n      <div dropdown name=\"intervalSelectType\" class=\"btn-group\">\r\n        <button dropdownToggle type=\"button\" id=\"intervalSelectType\"\r\n          class=\"px-3 me-2 btn btn-label-secondary dropdown-toggle\" title=\"Intervall-Art auswählen\"\r\n          i18n-title=\"@@SwtDateInterval.IntervalSelectType.dsp.Tooltip\">\r\n          <i class=\"fa fa-calendar-week\"></i>\r\n        </button>\r\n        <ul *dropdownMenu role=\"menu\" id=\"dropdown-basic\" class=\"dropdown-menu\">\r\n          @for (item of component.selectItems; track item) {\r\n            <li role=\"menuitem\">\r\n              <a (click)=\"component.setIntervalSelectType(item.value)\" class=\"dropdown-item\">{{item.text}}</a>\r\n            </li>\r\n          }\r\n        </ul>\r\n      </div>\r\n    </div>\r\n  }\r\n\r\n  @if (component.fromDatePickerVisible) {\r\n    <div class=\"form-group\">\r\n      @if (component.useBrowserDateInput()) {\r\n        <input type=\"date\" aria-label=\"Von\"\r\n          i18n-aria-label=\"@@SwtDateInterval.interval.from.dsp.Label\" [width]=\"'120px'\"\r\n          class=\"form-control no-spinners\" [name]=\"component.selectedDateAsString\"\r\n          [(ngModel)]=\"component.currentInterval.start\" (ngModelChange)=\"component.onIntervalChange()\"\r\n          (change)=\"component.onInputChange($event)\">\r\n      }\r\n      @if (!component.useBrowserDateInput()) {\r\n        <swt-dropdown-container #swtFromcontainer [width]=\"'120px'\"\r\n          [displayValue]=\"component.currentInterval.start | date:'dd.MM.yyyy'\"\r\n          [container]=\"component.swtDropdownContainerContainer\">\r\n          <swt-date-picker name=\"selectedFromDate\" [(ngModel)]=\"component.currentInterval.start\"\r\n            (ngModelChange)=\"component.onIntervalChange()\"\r\n            (change)=\"component.onInputChange($event,swtFromcontainer)\">\r\n          </swt-date-picker>\r\n        </swt-dropdown-container>\r\n      }\r\n    </div>\r\n  }\r\n\r\n  @if (component.calendarweekVisible) {\r\n    <div class=\"form-group\">\r\n      <div class=\"input-group\">\r\n        <button aria-label=\"Vorherige Woche auswählen\" i18n-aria-label=\"@@SwtDateInterval.SelectPreviousWeek.dsp.Label\"\r\n          class=\"input-group-text\" (click)=\"component.calendarWeekAdd(-1)\" [disabled]=\"component.isFirstCalendarWeekOfYear\" disable-no-double-click>\r\n          <ng-container *ngTemplateOutlet=\"iconPrevious\"></ng-container>\r\n        </button>\r\n        <select id=\"selectedCalendarWeek\" aria-label=\"Auswahl der Kalenderwoche\"\r\n          i18n-aria-label=\"@@SwtDateInterval.SelectedCalendarWeek.dsp.Label\" name=\"selectedCalendarWeek\"\r\n          class=\"form-control\" [(ngModel)]=\"component.selectedCalendarWeek\"\r\n          (ngModelChange)=\"component.onCalendarWeekChange()\" (change)=\"component.onInputChange($event)\">\r\n          @for (calendarWeek of component.calendarWeeks; track calendarWeek) {\r\n            <option [value]=\"calendarWeek.value\">\r\n              {{ calendarWeek.text }}\r\n            </option>\r\n          }\r\n        </select>\r\n        <button aria-label=\"Nächste Woche auswählen\" i18n-aria-label=\"@@SwtDateInterval.SelectNextWeek.dsp.Label\"\r\n          class=\"input-group-text\" (click)=\"component.calendarWeekAdd(1)\" [disabled]=\"component.isLastCalendarWeekOfYear\" disable-no-double-click>\r\n          <ng-container *ngTemplateOutlet=\"iconNext\"></ng-container>\r\n        </button>\r\n      </div>\r\n    </div>\r\n  }\r\n\r\n  @if (component.fromMonthVisible) {\r\n    <div class=\"form-group\">\r\n      <select name=\"selectedFromMonthIndex\" aria-label=\"Auswahl Monat\"\r\n        i18n-aria-label=\"@@SwtDateInterval.SelectedFromMonthIndex.dsp.Label\" class=\"form-control\"\r\n        [(ngModel)]=\"component.selectedFromMonth\" (ngModelChange)=\"component.onMonthYearChange()\"\r\n        (change)=\"component.onInputChange($event)\">\r\n        @for (month of component.months; track month) {\r\n          <option [value]=\"month.value\">\r\n            {{month.text}}\r\n          </option>\r\n        }\r\n      </select>\r\n    </div>\r\n  }\r\n\r\n  @if (!component.intervalVisible) {\r\n    @if (component.delimiter) {\r\n      <span class=\"mx-2\">{{component.delimiter}}</span>\r\n    } @else {\r\n      <span></span>\r\n    }\r\n  }\r\n\r\n  @if (component.datepickervisible) {\r\n    <div class=\"form-group\">\r\n      @if (component.useBrowserDateInput()) {\r\n        <input type=\"date\" [width]=\"'120px'\" aria-label=\"Jahr\"\r\n          i18n-aria-label=\"@@SwtDateInterval.SelectedYear.dsp.Label\" class=\"form-control no-spinners\"\r\n          [name]=\"component.selectedDateAsString\" [(ngModel)]=\"component.currentInterval.end\"\r\n          (ngModelChange)=\"component.onIntervalChange()\" (change)=\"component.onInputChange($event)\">\r\n      }\r\n      @if (!component.useBrowserDateInput()) {\r\n        <swt-dropdown-container #swtTocontainer [inputSize]=\"'medium'\"\r\n          [width]=\"'120px'\" [displayValue]=\"component.currentInterval.end | date:'dd.MM.yyyy'\"\r\n          [container]=\"component.swtDropdownContainerContainer\">\r\n          <swt-date-picker name=\"selectedDate\" [(ngModel)]=\"component.currentInterval.end\"\r\n            (ngModelChange)=\"component.onIntervalChange()\"\r\n            (change)=\"component.onInputChange($event,swtTocontainer)\">\r\n          </swt-date-picker>\r\n        </swt-dropdown-container>\r\n      }\r\n      <span [hidden]=\"!component.startEndError\" class=\"text-warning\">\r\n        <i class=\"fa fa-exclamation-triangle\" title=\"Ende liegt vor Start\"\r\n        i18n-title=\"@@SwtDateInterval.EndBeforeStart.dsp.Tooltip\"></i>\r\n      </span>\r\n    </div>\r\n  }\r\n\r\n  @if (component.monthvisible) {\r\n    <div class=\"form-group\">\r\n      <select name=\"selectedMonthIndex\" aria-label=\"Monat\" i18n-aria-label=\"@@SwtDateInterval.SelectedMonth.dsp.Label\"\r\n        class=\"form-control me-2\" [(ngModel)]=\"component.selectedMonth\"\r\n        (ngModelChange)=\"component.onMonthYearChange()\" (change)=\"component.onInputChange($event)\">\r\n        @for (month of component.months; track month) {\r\n          <option [value]=\"month.value\">\r\n            {{month.text}}\r\n          </option>\r\n        }\r\n      </select>\r\n      <div class=\"form-group\">\r\n        <div class=\"input-group\">\r\n          <span aria-label=\"Vorheriges Jahr auswählen\"\r\n            i18n-aria-label=\"@@SwtDateInterval.SelectPastYear.dsp.Label\" for=\"selectedYear\" type=\"button\"\r\n            class=\"input-group-text\" (click)=\"component.selectedYearAdd(-1)\">\r\n            <ng-container *ngTemplateOutlet=\"iconPrevious\"></ng-container>\r\n          </span>\r\n          <input aria-label=\"Jahr\" i18n-aria-label=\"@@SwtDateInterval.SelectedYear.dsp.Label\" name=\"selectedYear\"\r\n            class=\"form-control no-spinners text-center\" style=\"width:100px;\" [(ngModel)]=\"component.selectedYear\"\r\n            type=\"number\" (ngModelChange)=\"component.onMonthYearChange()\" />\r\n            <span aria-label=\"Nächstes Jahr auswählen\" i18n-aria-label=\"@@SwtDateInterval.SelectNextYear.dsp.Label\"\r\n              for=\"selectedYear\" type=\"button\" class=\"input-group-text\" (click)=\"component.selectedYearAdd(1)\">\r\n              <ng-container *ngTemplateOutlet=\"iconNext\"></ng-container>\r\n            </span>\r\n          </div>\r\n          <span [hidden]=\"!component.startEndError\" class=\"text-warning\">\r\n            <i class=\"fa fa-warning\" title=\"Ende liegt vor Start\"\r\n            i18n-title=\"@@SwtDateInterval.EndBeforeStart.dsp.Tooltip\"></i>\r\n          </span>\r\n        </div>\r\n      </div>\r\n    }\r\n\r\n    @if (component.quarterSelectorVisible) {\r\n      <div class=\"form-group\">\r\n        <select name=\"selectQuarter\" aria-label=\"Quartal\" i18n-aria-label=\"@@SwtDateInterval.Quarter.dsp.Label\"\r\n          class=\"form-control me-2\" [(ngModel)]=\"component.selectedFromQuarter\"\r\n          (ngModelChange)=\"component.updateQuarter()\" (change)=\"component.onInputChange($event)\">\r\n          @for (quarter of component.quarters; track quarter) {\r\n            <option [value]=\"quarter.value\">\r\n              {{ quarter.text }}\r\n            </option>\r\n          }\r\n        </select>\r\n      </div>\r\n    }\r\n\r\n    @if (component.yearvisible) {\r\n      <div class=\"form-group\">\r\n        <div class=\"input-group\">\r\n          <span aria-label=\"Vorheriges Jahr auswählen\" i18n-aria-label=\"@@SwtDateInterval.SelectPastYear.dsp.Label\"\r\n            type=\"submit\" class=\"input-group-text\" (click)=\"component.selectedYearAdd(-1)\">\r\n            <ng-container *ngTemplateOutlet=\"iconPrevious\"></ng-container>\r\n          </span>\r\n          <input aria-label=\"Jahr\" i18n-aria-label=\"@@SwtDateInterval.SelectedYear.dsp.Label\" name=\"selectedYear\"\r\n            class=\"form-control no-spinners text-center\" style=\"width:100px\" [(ngModel)]=\"component.selectedYear\" type=\"number\"\r\n            (ngModelChange)=\"component.onMonthYearChange()\" />\r\n            <span aria-label=\"Nächstes Jahr auswählen\" i18n-aria-label=\"@@SwtDateInterval.SelectNextYear.dsp.Label\"\r\n              type=\"submit\" class=\"input-group-text\" (click)=\"component.selectedYearAdd(1)\">\r\n              <ng-container *ngTemplateOutlet=\"iconNext\"></ng-container>\r\n            </span>\r\n          </div>\r\n        </div>\r\n      }\r\n\r\n      @if (component.intervalVisible) {\r\n        <div class=\"form-group\">\r\n          <swt-dropdown-container #swtdaterangecontainer [width]=\"'220px'\"\r\n            [displayValue]=\"(component.currentInterval.start | date:'dd.MM.yyyy') + ' - ' + (component.currentInterval.end | date:'dd.MM.yyyy')\"\r\n            [container]=\"component.swtDropdownContainerContainer\">\r\n            <swt-date-range-picker [maxDurationInDays]=\"component.maxDurationInDays\"\r\n              [inputInterval]=\"component.currentInterval\"\r\n            (newInterval)=\"component.newIntervalFromRangePicker($event,swtdaterangecontainer)\"></swt-date-range-picker>\r\n          </swt-dropdown-container>\r\n        </div>\r\n      }\r\n    </div>\r\n\r\n    <ng-template #iconPrevious>\r\n      <i class=\"fa fa-angle-left\" aria-hidden=\"true\"></i>\r\n    </ng-template>\r\n    <ng-template #iconNext>\r\n      <i class=\"fa fa-angle-right\" aria-hidden=\"true\"></i>\r\n    </ng-template>\r\n","/* eslint-disable @angular-eslint/no-input-rename,no-case-declarations */\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { SelectItem } from '@sowatech/shared/@types';\r\nimport { I18nService } from '@sowatech/shared/utilities';\r\nimport moment from 'moment';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { DropDownContainerComponent } from '../swt-dropdown-container/swt-dropdown-container.component';\r\n\r\nimport { SwtDateIntervalStoreHelper } from './swt-date-interval-store.service';\r\nimport { DateInterval, TIntervalSelectType } from './swt-date-interval.model';\r\n\r\nexport type InputSize = 'small' | 'medium' | 'large';\r\n\r\n@Component({\r\n    selector: 'swt-date-interval',\r\n    templateUrl: './swt-date-interval.component.html',\r\n    providers: [SwtDateIntervalStoreHelper],\r\n    standalone: false\r\n})\r\nexport class SwtDateIntervalComponent implements OnInit, OnDestroy {\r\n    constructor(\r\n        private storeHelper: SwtDateIntervalStoreHelper,\r\n        private i18n: I18nService,\r\n        private changeDetectorRef: ChangeDetectorRef,\r\n    ) { }\r\n\r\n    @Input('store-key')\r\n    public storeKey: string;\r\n\r\n    @Input('selectItems')\r\n    public set setintervalValues(values: Array<TIntervalSelectType>) {\r\n        this.setSelectItemsValues(values);\r\n    }\r\n\r\n    private _selectedDate?: Date | string;\r\n    public get selectedDate(): Date | string | undefined { return this._selectedDate; }\r\n    public get selectedDateAsString(): string | undefined { return this._selectedDate?.toString(); }\r\n    @Input('selectedDate')\r\n    public set setSelectedDate(value: Date | string) {\r\n        const valueMoment = moment(value);\r\n        this._selectedDate = value;\r\n        if (this.onInitCalled)\r\n            this.setCurrentInterval(valueMoment);\r\n    }\r\n\r\n    @Input()\r\n    public maxDurationInDays: number;\r\n    @Input()\r\n    public delimiter = 'von';\r\n    @Input()\r\n    public inputSize: InputSize = 'medium';\r\n    @Output('change')\r\n    public changeEventEmitter = new EventEmitter<DateInterval>();\r\n    @ViewChild('swtcontainer')\r\n    public swtcontainer: DropDownContainerComponent;\r\n    @ViewChild('swtFromcontainer')\r\n    public swtFromcontainer: DropDownContainerComponent;\r\n    @Input()\r\n    public swtDropdownContainerContainer: string = 'body';\r\n\r\n    private readonly subscriptions: Subscription[] = [];\r\n    private onInitCalled = false;\r\n    ngOnInit() {\r\n        const storeData = this.storeHelper.loadFromStorage(this.storeKey, this.maxDurationInDays);\r\n        const hasStoreData = this.storeKey && storeData.intervalSelectType != null && storeData.intervalSelectType as string !== '';\r\n        if (hasStoreData) {\r\n            this.intervalSelectType = storeData.intervalSelectType;\r\n            this.currentInterval = storeData.isValid ? new DateInterval(storeData.start, storeData.end) : new DateInterval(this.selectedDate, this.selectedDate);\r\n        }\r\n        else {\r\n            this.intervalSelectType = this.selectItems.length > 0 ? this.selectItems[0].value : 1;\r\n            this.currentInterval = new DateInterval(this.selectedDate, this.selectedDate);\r\n        }\r\n        this.refreshControlVisibility();\r\n        this.updateSelectedDateProperties();\r\n        if (this.hasMonthSelect()) this.onMonthYearChange();\r\n        else if (this.quarterSelectorVisible) this.initQuarter();\r\n        else this.setCurrentInterval(this.currentInterval.startMoment, this.currentInterval.endMoment);\r\n        this.onInitCalled = true;\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        this.subscriptions.forEach(s => s.unsubscribe());\r\n    }\r\n\r\n    public currentInterval: DateInterval = new DateInterval();\r\n\r\n    public intervalSelectType: TIntervalSelectType = 0;\r\n    public selectItems: Array<SelectItem>;\r\n\r\n    public setIntervalSelectType(value: TIntervalSelectType) {\r\n        this.intervalSelectType = value;\r\n        this.onIntervalChange();\r\n    }\r\n\r\n    public newIntervalFromRangePicker(val: DateInterval, container: DropDownContainerComponent) {\r\n        this.setCurrentInterval(val.startMoment, val.endMoment);\r\n        container.collapse();\r\n    }\r\n\r\n    public onIntervalChange() {\r\n        this.setCurrentInterval(this.currentInterval.startMoment, this.currentInterval.endMoment);\r\n    }\r\n\r\n    public selectedMonth: TMonthIndex;\r\n    public selectedFromMonth: TMonthIndex;\r\n    public selectedFromQuarter = Quarters.I;\r\n    public selectedYear: number;\r\n    public selectedCalendarWeek: number;\r\n\r\n    public onMonthYearChange() {\r\n        if (this.selectedYear < 1900) this.selectedYear = 1900;\r\n        if (this.selectedYear > 3000) this.selectedYear = 3000;\r\n        let momentStart: moment.Moment;\r\n        let momentEnd: moment.Moment;\r\n        if (this.intervalSelectType === 'currentyear') {\r\n            momentStart = moment([this.selectedYear, TMonthIndex.jan, 1]);\r\n            momentEnd = momentStart.endOf('year');\r\n        }\r\n        else if (this.intervalSelectType === 'monthinterval') {\r\n            momentStart = moment([this.selectedYear, this.selectedFromMonth, 1]);\r\n            momentEnd = moment([this.selectedYear, this.selectedMonth, 1]).endOf('month');\r\n        }\r\n        else if (this.intervalSelectType === 'calendarweek') {\r\n            this.fixCalendarWeek();\r\n            momentStart = moment().year(this.selectedYear).isoWeek(this.selectedCalendarWeek).startOf('week');\r\n            momentEnd = moment().year(this.selectedYear).isoWeek(this.selectedCalendarWeek).endOf('week');\r\n        }\r\n        else {\r\n            momentStart = moment([this.selectedYear, this.selectedMonth, 1]);\r\n            momentEnd = momentStart.endOf('month');\r\n        }\r\n        this.setCurrentInterval(momentStart, momentEnd);\r\n    }\r\n\r\n    private initQuarter() {\r\n        const month = moment().month();\r\n        const monthsPerQuarter = 3;\r\n        this.selectedFromQuarter = Math.floor(month / monthsPerQuarter) as Quarters;\r\n        this.updateQuarter();\r\n    }\r\n\r\n    public updateQuarter() {\r\n        const { start, end } = quarters[+this.selectedFromQuarter as Quarters].getInterval(this.selectedYear);\r\n        this.setCurrentInterval(start, end);\r\n    }\r\n\r\n    public selectedYearAdd(addYear: number) {\r\n        this.selectedYear = addYear + this.selectedYear;\r\n        this.onMonthYearChange();\r\n        this.recalcIsFirstOrLastWeek();\r\n    }\r\n\r\n    public calendarWeekAdd(increment: number) {\r\n        const currentWeekIndex = this.calendarWeeks.findIndex(selectItem => selectItem.value === this.selectedCalendarWeek);\r\n        const newWeekIndex = currentWeekIndex + increment;\r\n\r\n        if (newWeekIndex < 0 || newWeekIndex >= this.calendarWeeks.length)\r\n            return;\r\n\r\n        this.selectedCalendarWeek = this.calendarWeeks[newWeekIndex].value;\r\n\r\n        this.onCalendarWeekChange();\r\n    }\r\n\r\n    public isFirstCalendarWeekOfYear = false;\r\n    public isLastCalendarWeekOfYear = false;\r\n    private recalcIsFirstOrLastWeek() {\r\n        const currentWeekIndex = this.calendarWeeks.findIndex(selectItem => selectItem.value === this.selectedCalendarWeek);\r\n        this.isFirstCalendarWeekOfYear = currentWeekIndex === 0;\r\n        this.isLastCalendarWeekOfYear = currentWeekIndex === this.calendarWeeks.length - 1;\r\n    }\r\n\r\n    public onCalendarWeekChange() {\r\n        this.fixCalendarWeek();\r\n\r\n        const momentStart = moment().year(this.selectedYear).isoWeek(this.selectedCalendarWeek).startOf('week');\r\n        const momentEnd = moment().year(this.selectedYear).isoWeek(this.selectedCalendarWeek).endOf('week');\r\n        this.setCurrentInterval(momentStart, momentEnd);\r\n\r\n        this.recalcIsFirstOrLastWeek();\r\n    }\r\n\r\n    public fixCalendarWeek() {\r\n        const lastWeekOfYear = moment([this.selectedYear]).weeksInYear();\r\n        if (this.selectedCalendarWeek < 0)\r\n            this.selectedCalendarWeek = 1;\r\n\r\n        if (this.selectedCalendarWeek > lastWeekOfYear)\r\n            this.selectedCalendarWeek = lastWeekOfYear;\r\n    }\r\n\r\n    public startEndError = false;\r\n    public fromDatePickerVisible = false;\r\n    public datepickervisible = true;\r\n    public monthvisible = false;\r\n    public fromMonthVisible = false;\r\n    public yearvisible = false;\r\n    public calendarweekVisible = false;\r\n    public intervalVisible = false;\r\n    public currentmonthyearvisible = false;\r\n    public quarterSelectorVisible = false;\r\n    public isInChange = false;\r\n\r\n    public months: Array<SelectItem> = [\r\n        { text: $localize`:@@SwtDateInterval.January.dsp.Label:Januar`, value: TMonthIndex.jan },\r\n        { text: $localize`:@@SwtDateInterval.February.dsp.Label:Februar`, value: TMonthIndex.feb },\r\n        { text: $localize`:@@SwtDateInterval.March.dsp.Label:März`, value: TMonthIndex.mar },\r\n        { text: $localize`:@@SwtDateInterval.April.dsp.Label:April`, value: TMonthIndex.apr },\r\n        { text: $localize`:@@SwtDateInterval.May.dsp.Label:Mai`, value: TMonthIndex.may },\r\n        { text: $localize`:@@SwtDateInterval.June.dsp.Label:Juni`, value: TMonthIndex.jun },\r\n        { text: $localize`:@@SwtDateInterval.July.dsp.Label:Juli`, value: TMonthIndex.jul },\r\n        { text: $localize`:@@SwtDateInterval.August.dsp.Label:August`, value: TMonthIndex.aug },\r\n        { text: $localize`:@@SwtDateInterval.September.dsp.Label:September`, value: TMonthIndex.sep },\r\n        { text: $localize`:@@SwtDateInterval.October.dsp.Label:Oktober`, value: TMonthIndex.oct },\r\n        { text: $localize`:@@SwtDateInterval.November.dsp.Label:November`, value: TMonthIndex.nov },\r\n        { text: $localize`:@@SwtDateInterval.December.dsp.Label:Dezember`, value: TMonthIndex.dec },\r\n    ];\r\n    public readonly quarters: SelectItem[] = Object.keys(quarters).map(q => ({\r\n        value: q,\r\n        text: quarters[+q as Quarters].text,\r\n    }));\r\n\r\n    public calendarWeeks: Array<SelectItem> = [];\r\n\r\n    public refreshCalendarWeeks() {\r\n        this.calendarWeeks = [];\r\n        this.detectChanges();\r\n        const weeksInYear = (moment.utc([this.selectedYear, 11, 31]).isoWeek() === 53) ? 53 : 52;\r\n        for (let week = 1; week <= weeksInYear; week++)\r\n            this.calendarWeeks.push({ text: week.toString(), value: week });\r\n    }\r\n\r\n    private detectChanges() {\r\n        this.changeDetectorRef.detectChanges();\r\n    }\r\n\r\n    private setSelectItemsValues(values: Array<TIntervalSelectType>) {\r\n        this.selectItems = values.map(value => ({ value, text: this.getIntervalTypeSelectItemText(value) }));\r\n    }\r\n\r\n    private getIntervalTypeSelectItemText(selectType: TIntervalSelectType) {\r\n        switch (selectType) {\r\n            case 'day':\r\n            case 'currentday':\r\n                return $localize`:@@SwtDateInterval.SameDay.dsp.Label:Selber Tag`;\r\n            case 'currentmonth':\r\n            case 'currentmonthwithoutyear':\r\n                return $localize`:@@SwtDateInterval.Month.dsp.Label:Monat`;\r\n            case 'currentquarter':\r\n                return $localize`:@@SwtDateInterval.CurrentQuarter.dsp.Label:Aktuelles Quartal`;\r\n            case 'currentyear':\r\n                return $localize`:@@SwtDateInterval.Year.dsp.Label:Jahr`;\r\n            case 'interval':\r\n                return $localize`:@@SwtDateInterval.Period.dsp.Label:Zeitraum`;\r\n            case 'calendarweek':\r\n                return $localize`:@@SwtDateInterval.CalendarWeek.dsp.Label:Kalenderwoche`;\r\n            case 'monthinterval':\r\n                return $localize`:@@SwtDateInterval.MonthPeriod.dsp.Label:Monatszeitraum`;\r\n            default:\r\n                return selectType === 1\r\n                    ? $localize`:@@SwtDateInterval.PreviousDay.dsp.Label:Vorheriger Tag`\r\n                    : this.i18n.replace($localize`:@@SwtDateInterval.LastDays.dsp.Label:Letzte $0 Tage`, [selectType.toString()]);\r\n        }\r\n    }\r\n\r\n    private oldInterval: DateInterval;\r\n    private setCurrentInterval(start: moment.Moment, end?: moment.Moment) {\r\n        if (!end) end = start.clone();\r\n        this.startEndError = false;\r\n        this.refreshControlVisibility();\r\n        switch (this.intervalSelectType) {\r\n            case 'currentmonth':\r\n            case 'currentmonthwithoutyear':\r\n                this.currentInterval.setStart(moment([end.year(), end.month(), 1]));\r\n                let firstDayOfNextMonth: moment.Moment;\r\n                if (end.month() < TMonthIndex.dec)\r\n                    firstDayOfNextMonth = moment([end.year(), end.month() + 1, 1]);\r\n                else\r\n                    firstDayOfNextMonth = moment([end.year() + 1, TMonthIndex.jan, 1]);\r\n                this.currentInterval.setEnd(firstDayOfNextMonth.subtract(1, 'day'));\r\n                this.delimiter = undefined;\r\n                break;\r\n            case 'currentyear': {\r\n                const currentYear = end.year();\r\n                this.currentInterval.setStart(moment([currentYear, TMonthIndex.jan, 1]));\r\n                this.currentInterval.setEnd(moment([currentYear, TMonthIndex.dec, 31]));\r\n                this.delimiter = $localize`:'zu' 2023@@SwtDateInterval.year.to.dsp.Label:zu`;\r\n                break;\r\n            }\r\n            case 'currentquarter': {\r\n                const monthsPerQuarter = 3;\r\n                this.selectedFromQuarter = Math.floor(end.month() / monthsPerQuarter) as Quarters;\r\n                const quarter = quarters[+this.selectedFromQuarter as Quarters].getInterval(this.selectedYear);\r\n                this.currentInterval.setStart(quarter.start);\r\n                this.currentInterval.setEnd(quarter.end);\r\n                this.delimiter = '';\r\n                break;\r\n            }\r\n            case 'day':\r\n            case 'currentday':\r\n                this.currentInterval.setStart(end);\r\n                this.currentInterval.setEnd(end);\r\n                this.delimiter = $localize`:z.B. 'am' 13.11.2023@@SwtDateInterval.day.atThe.dsp.Label:am`;\r\n                break;\r\n            case 'interval':\r\n                if (end < start) this.startEndError = true;\r\n                this.currentInterval.setStart(start);\r\n                this.currentInterval.setEnd(end);\r\n                this.delimiter = $localize`:z.B. Januar 'bis' März 2023@@SwtDateInterval.interval.to.dsp.Label:bis`;\r\n                break;\r\n            case 'calendarweek':\r\n                this.delimiter = $localize`:42 'in' 2023@@SwtDateInterval.calendarweek.in.dsp.Label:in`;\r\n                this.currentInterval.setStart(end.startOf('week'));\r\n                this.currentInterval.setEnd(end.endOf('week'));\r\n                break;\r\n            case 'monthinterval':\r\n                if (end < start) this.startEndError = true;\r\n                this.currentInterval.setStart(start);\r\n                this.currentInterval.setEnd(end);\r\n                this.delimiter = $localize`:@@SwtDateInterval.interval.to.dsp.Label:bis`;\r\n                break;\r\n            default:\r\n                this.currentInterval.setStart(moment(end).subtract(this.intervalSelectType, 'day'));\r\n                this.currentInterval.setEnd(end);\r\n                this.delimiter = this.i18n.replace($localize`:@@SwtDateInterval.daysUntil.dsp.Label:$0 Tage bis`, [this.intervalSelectType.toString()]);\r\n                break;\r\n        }\r\n\r\n        this.updateSelectedDateProperties();\r\n        if (this.intervalSelectType === 'calendarweek') this.refreshCalendarWeeks();\r\n\r\n        if (!this.oldInterval || this.oldInterval.start !== this.currentInterval.start || this.oldInterval.end !== this.currentInterval.end || this.onInitCalled) {\r\n            this.saveToStorage();\r\n            this.changeEventEmitter.emit(this.currentInterval);\r\n        }\r\n        this.oldInterval = new DateInterval(this.currentInterval.startDate, this.currentInterval.endDate);\r\n    }\r\n\r\n    private updateSelectedDateProperties() {\r\n        this.selectedMonth = this.currentInterval.endMoment.month();\r\n        this.selectedFromMonth = this.currentInterval.startMoment.month();\r\n        this.selectedYear = this.getSelectedYearByInterval(this.currentInterval);\r\n        this.selectedCalendarWeek = this.currentInterval.endMoment.isoWeek();\r\n    }\r\n\r\n    private getSelectedYearByInterval(interval: DateInterval) {\r\n        //Letzte Kalenderwoche des Jahres kann in folgeJahr enden\r\n        //Erste Kalenderwoche des Jahres kann im Vorjahr starten\r\n        if (this.intervalSelectType === 'calendarweek' && interval.startMoment.isoWeek() > 1)\r\n            return interval.startMoment.year();\r\n        return interval.endMoment.year();\r\n    }\r\n\r\n    private saveToStorage() {\r\n        if (this.storeKey)\r\n            this.storeHelper.saveToStorage(this.storeKey, this.currentInterval.start, this.currentInterval.end, this.intervalSelectType);\r\n    }\r\n\r\n    private refreshControlVisibility() {\r\n        this.datepickervisible = false;\r\n        this.monthvisible = false;\r\n        this.fromMonthVisible = false;\r\n        this.yearvisible = false;\r\n        this.calendarweekVisible = false;\r\n        this.fromDatePickerVisible = false;\r\n        this.quarterSelectorVisible = false;\r\n        this.intervalVisible = false;\r\n\r\n        switch (this.intervalSelectType) {\r\n            case 'currentmonth':\r\n                this.monthvisible = true;\r\n                break;\r\n            case 'currentyear':\r\n                this.yearvisible = true;\r\n                break;\r\n            case 'interval':\r\n                this.intervalVisible = true;\r\n                break;\r\n            case 'calendarweek':\r\n                this.calendarweekVisible = true;\r\n                this.yearvisible = true;\r\n                break;\r\n            case 'monthinterval':\r\n                this.fromMonthVisible = true;\r\n                this.monthvisible = true;\r\n                break;\r\n            case 'currentquarter':\r\n                this.quarterSelectorVisible = true;\r\n                this.yearvisible = true;\r\n                break;\r\n            case 'currentday':\r\n            case 'day':\r\n            default:\r\n                this.datepickervisible = true;\r\n                break;\r\n        }\r\n    }\r\n\r\n    public onInputChange(eventData: Event | string | Date, collapseContainer?: DropDownContainerComponent) {\r\n        // ! type Date nicht beachtet?\r\n        if (collapseContainer) collapseContainer.collapse();\r\n        if (eventData && typeof (eventData) !== 'string')\r\n            (eventData as Event).stopPropagation();\r\n    }\r\n\r\n    // prüft, ob <input type=\"date\"> vom browser unterstützt wird\r\n    private hasDatePicker() {\r\n        const input = document.createElement('input');\r\n        input.setAttribute('type', 'date');\r\n        input.value = '2038-01-20';\r\n        return !!input.valueAsDate;\r\n    }\r\n\r\n    public useBrowserDateInput(): boolean {\r\n        return this.hasDatePicker();\r\n    }\r\n\r\n    private hasMonthSelect() {\r\n        return this.monthvisible || this.fromMonthVisible;\r\n    }\r\n}\r\n\r\nenum TMonthIndex {\r\n    jan = 0,\r\n    feb = 1,\r\n    mar = 2,\r\n    apr = 3,\r\n    may = 4,\r\n    jun = 5,\r\n    jul = 6,\r\n    aug = 7,\r\n    sep = 8,\r\n    oct = 9,\r\n    nov = 10,\r\n    dec = 11\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nenum Quarters { I, II, III, IV }\r\n\r\ntype MomentInterval = { start: moment.Moment; end: moment.Moment; };\r\nconst quarters: Record<Quarters, { text: string; getInterval: (year: number) => MomentInterval; }> = {\r\n    [Quarters.I]: {\r\n        text: $localize`:@@SwtDateInterval.Quarter1.dsp.Label:Quartal I`,\r\n        getInterval: year => ({\r\n            start: moment([year, TMonthIndex.jan, 1]),\r\n            end: moment([year, TMonthIndex.mar, 31]),\r\n        }),\r\n    },\r\n    [Quarters.II]: {\r\n        text: $localize`:@@SwtDateInterval.Quarter2.dsp.Label:Quartal II`,\r\n        getInterval: year => ({\r\n            start: moment([year, TMonthIndex.apr, 1]),\r\n            end: moment([year, TMonthIndex.jun, 30]),\r\n        }),\r\n    },\r\n    [Quarters.III]: {\r\n        text: $localize`:@@SwtDateInterval.Quarter3.dsp.Label:Quartal III`,\r\n        getInterval: year => ({\r\n            start: moment([year, TMonthIndex.jul, 1]),\r\n            end: moment([year, TMonthIndex.sep, 30]),\r\n        }),\r\n    },\r\n    [Quarters.IV]: {\r\n        text: $localize`:@@SwtDateInterval.Quarter4.dsp.Label:Quartal IV`,\r\n        getInterval: year => ({\r\n            start: moment([year, TMonthIndex.oct, 1]),\r\n            end: moment([year, TMonthIndex.dec, 31]),\r\n        }),\r\n    },\r\n};\r\n","<switch-template [inspinia]=\"inspiniaTemplate\" [sneat]=\"sneatTemplate\"></switch-template>\r\n\r\n<ng-template #inspiniaTemplate>\r\n    <swt-date-interval-inspinia [component]=\"this\" #template></swt-date-interval-inspinia>\r\n</ng-template>\r\n\r\n<ng-template #sneatTemplate>\r\n    <swt-date-interval-sneat [component]=\"this\" #template></swt-date-interval-sneat>\r\n</ng-template>\r\n","import { Component, Input } from '@angular/core';\r\nimport { LoggerService } from '@sowatech/shared/logger';\r\n\r\n@Component({\r\n    selector: 'rating-icons',\r\n    template: `@for (r of fullArray; track r) {\r\n  <i [ngClass]=\"iconCssClass\"></i>\r\n  }@for (e of emptyArray; track e) {\r\n  <i [ngClass]=\"emptyIconCssClass\"></i>\r\n}\r\n`,\r\n    standalone: false\r\n})\r\n\r\nexport class RatingIconsComponent {\r\n    constructor(private logger: LoggerService) {\r\n    }\r\n\r\n    @Input() iconCssClass = 'fa fa-star';\r\n    @Input() emptyIconCssClass = 'fa fa-star-o';\r\n\r\n    @Input() set rating(value: number) {\r\n        this._rating = value;\r\n        this.refreshArrays();\r\n    }\r\n\r\n    @Input() set maxRating(value: number) {\r\n        this._maxRating = value;\r\n        this.refreshArrays();\r\n    }\r\n\r\n    _rating = 0;\r\n    _maxRating = 0;\r\n    fullArray: number[] = [];\r\n    emptyArray: number[] = [];\r\n\r\n    private refreshArrays() {\r\n        this.fullArray = [];\r\n        for (var i = 0; i < this._rating; i++) this.fullArray.push(i + 1);\r\n\r\n        this.emptyArray = [];\r\n        for (var i = this._rating; i < this._maxRating; i++) this.emptyArray.push(i + 1);\r\n    }\r\n\r\n\r\n}\r\n","import { AfterContentInit, Component, ElementRef, Input, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'loading-indicator',\r\n    template: `\r\n        <div #loadingContainer [ngStyle]=\"{ 'min-height': visible ? minHeight : '' }\">\r\n          <ng-content></ng-content>\r\n          @if (visible) {\r\n            <div class=\"loading-indicator-backdrop\"></div>\r\n          }\r\n          @if (visible) {\r\n            <div class=\"loading-indicator\" [style.top]=\"topdistance\">\r\n              <switch-template [inspinia]=\"inspiniaTemplate\" [sneat]=\"sneatTemplate\"></switch-template>\r\n              <div [hidden]=\"!text\" class=\"loading-indicator-text\">{{text}}</div>\r\n            </div>\r\n          }\r\n        \r\n          <ng-template #inspiniaTemplate>\r\n            <div class=\"sk-spinner sk-spinner-circle\" [style.width]=\"spinnerSize\"\r\n              [style.height]=\"spinnerSize\">\r\n              <div class=\"sk-circle1 sk-circle\"></div>\r\n              <div class=\"sk-circle2 sk-circle\"></div>\r\n              <div class=\"sk-circle3 sk-circle\"></div>\r\n              <div class=\"sk-circle4 sk-circle\"></div>\r\n              <div class=\"sk-circle5 sk-circle\"></div>\r\n              <div class=\"sk-circle6 sk-circle\"></div>\r\n              <div class=\"sk-circle7 sk-circle\"></div>\r\n              <div class=\"sk-circle8 sk-circle\"></div>\r\n              <div class=\"sk-circle9 sk-circle\"></div>\r\n              <div class=\"sk-circle10 sk-circle\"></div>\r\n              <div class=\"sk-circle11 sk-circle\"></div>\r\n              <div class=\"sk-circle12 sk-circle\"></div>\r\n            </div>\r\n          </ng-template>\r\n        \r\n          <ng-template #sneatTemplate>\r\n            <div class=\"sk-swing sk-primary auto-margin\" [style.width]=\"spinnerSize\"\r\n              [style.height]=\"spinnerSize\">\r\n              <div class=\"sk-swing-dot\"></div>\r\n              <div class=\"sk-swing-dot\"></div>\r\n            </div>\r\n          </ng-template>\r\n        </div>\r\n        `,\r\n    styles: [`\r\n        .loading-indicator-container-off {\r\n        }\r\n\r\n        .loading-indicator-container-on {\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n\r\n        .loading-indicator {\r\n            position: absolute;\r\n            width: 100%;\r\n            height: 100%;\r\n            top: 0;\r\n        }\r\n\r\n        .loading-indicator-backdrop {\r\n            position: absolute;\r\n            width: 100%;\r\n            height: 100%;\r\n            background-color: silver;\r\n            opacity: 0.25;\r\n            top: 0;\r\n        }\r\n\r\n        .loading-indicator-text {\r\n            text-align: center;\r\n        }\r\n\r\n        .auto-margin {\r\n            margin: 0 auto;\r\n        }\r\n    `],\r\n    standalone: false\r\n})\r\n\r\nexport class LoadingIndicatorComponent implements AfterContentInit {\r\n\r\n    @Input() public text: string;\r\n    @Input() public spinnerSize: string;\r\n    @Input() public minHeight = '80px';\r\n    @ViewChild('loadingContainer', { static: true })\r\n    private set loadingContainerRef(ref: ElementRef) { this.loadingContainer = ref.nativeElement; }\r\n    private loadingContainer: HTMLElement;\r\n\r\n    public visible: boolean;\r\n    public topdistance: string;\r\n\r\n    constructor() {\r\n        this.visible = false;\r\n        this.topdistance = '0';\r\n        this.spinnerSize = '30px';\r\n        this.text = '';\r\n    }\r\n\r\n    ngAfterContentInit() {\r\n        this.loadingContainer.classList.add('loading-indicator-container-off');\r\n        this.recalcPosition();\r\n    }\r\n\r\n    private recalcPosition() {\r\n        this.topdistance = Math.floor(this.loadingContainer.clientHeight / 2 - 15) + 'px';\r\n    }\r\n\r\n    public show() {\r\n        setTimeout(() => {\r\n            this.recalcPosition();\r\n            this.loadingContainer.classList.remove('loading-indicator-container-off');\r\n            this.loadingContainer.classList.add('loading-indicator-container-on');\r\n            this.visible = true;\r\n        }, 0);\r\n    }\r\n\r\n    public hide() {\r\n        setTimeout(() => {\r\n            this.visible = false;\r\n            this.loadingContainer.classList.add('loading-indicator-container-off');\r\n            this.loadingContainer.classList.remove('loading-indicator-container-on');\r\n        }, 0);\r\n    }\r\n\r\n}\r\n","import { Component, Directive, Input, TemplateRef } from '@angular/core';\r\n\r\nimport type { IBoxComponent } from '../swt-ibox.component';\r\n\r\n@Directive()\r\nexport abstract class IBoxTemplateBase {\r\n    @Input()\r\n    public component: IBoxComponent;\r\n\r\n    @Input()\r\n    public content: TemplateRef<unknown>;\r\n    @Input()\r\n    public content_heading: TemplateRef<unknown>;\r\n    @Input()\r\n    public content_titleInfo: TemplateRef<unknown>;\r\n    @Input()\r\n    public content_tools: TemplateRef<unknown>;\r\n    @Input()\r\n    public content_contentHeading: TemplateRef<unknown>;\r\n}\r\n\r\n@Component({\r\n    selector: 'ibox-template-sneat',\r\n    templateUrl: './ibox-sneat.component.html',\r\n    styleUrls: ['./ibox-sneat.component.scss'],\r\n    standalone: false\r\n})\r\nexport class IBoxSneatComponent extends IBoxTemplateBase { }\r\n\r\n@Component({\r\n    selector: 'ibox-template-inspinia',\r\n    templateUrl: './ibox-inspinia.component.html',\r\n    standalone: false\r\n})\r\nexport class IBoxInspiniaComponent extends IBoxTemplateBase { }\r\n","<div class=\"accordion\">\r\n  <div class=\"card accordion-item\">\r\n    @if (!component.headingHidden) {\r\n      <ly-title context=\"ibox\" customClass=\"accordion-header d-flex align-items-center\" sizeClass=\"title-size-5\">\r\n        <button class=\"accordion-button\" (click)=\"component.toggleCollapse($event)\"\r\n          [ngClass]=\"{ 'collapsed': component.collapsed, 'collapsable': component.collapsable }\">\r\n          {{ component.heading }}\r\n          @if (!component.heading) {\r\n            <ng-container *ngTemplateOutlet=\"content_heading\"></ng-container>\r\n          }\r\n          @if (component.label) {\r\n            <span class=\"badge bg-primary ms-1\">{{ component.label }}</span>\r\n          }\r\n          <div class=\"ms-auto\" (click)=\"$event.stopPropagation()\">\r\n            <ng-container *ngTemplateOutlet=\"content_tools\"></ng-container>\r\n          </div>\r\n        </button>\r\n      </ly-title>\r\n    }\r\n    <div class=\"accordion-collapse collapse\" [ngClass]=\"component.collapsed ? '' : 'show'\">\r\n      <div class=\"accordion-body\">\r\n        <div [class]=\"component.contentHeadingClass + ' title-size-3'\">\r\n          <ng-container *ngTemplateOutlet=\"content_contentHeading\"></ng-container>\r\n        </div>\r\n        <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","<div class=\"ibox\" [ngClass]=\"component.collapsed ? '' : 'border-bottom'\">\r\n  <div class=\"ibox-title\" [hidden]=\"component.headingHidden\">\r\n    <ly-title context=\"ibox\" (click)=\"component.toggleCollapse($event)\" sizeClass=\"title-size-5\">\r\n      {{component.heading}}\r\n      @if (!component.heading) {\r\n        <ng-container *ngTemplateOutlet=\"content_heading\"></ng-container>\r\n      }\r\n    </ly-title>\r\n    @if (component.label) {\r\n      <span class=\"label label-primary\">{{ component.label }}</span>\r\n    }\r\n    <div class=\"ibox-tools\">\r\n      <ng-container *ngTemplateOutlet=\"content_tools\"></ng-container>\r\n      <a class=\"collapse-link\" [hidden]=\"!component.collapsable\" (click)=\"component.toggleCollapse($event)\">\r\n        <i class=\"fa\" [ngClass]=\"component.collapsed ? 'fa-chevron-down' : 'fa-chevron-up'\"></i>\r\n      </a>\r\n    </div>\r\n  </div>\r\n  <div #contentHeadingWrapper\r\n    [ngClass]=\"contentHeadingWrapper.children.length === 0 || component.collapsed ? 'hidden' : 'ibox-content ibox-heading ' + component.contentHeadingClass\">\r\n    <ng-container *ngTemplateOutlet=\"content_contentHeading\"></ng-container>\r\n  </div>\r\n  @if (!component.collapsed) {\r\n    <div class=\"ibox-content\">\r\n      <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n    </div>\r\n  }\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { LoggerService } from '@sowatech/shared/logger';\r\nimport { IBoxDefaultConfig } from '@sowatech/shared/shared-config';\r\nimport { UserPropertiesStorageService } from '@sowatech/shared/user-properties-storage';\r\n\r\nconst STORAGE_KEY_PREFIX = 'IBoxStore';\r\ntype LocalStorageData = {\r\n    collapsed: boolean;\r\n};\r\n\r\nexport enum State {\r\n    open = 'open',\r\n    collapsed = 'collapsed'\r\n}\r\n\r\n@Component({\r\n    selector: 'ibox',\r\n    templateUrl: './swt-ibox.component.html',\r\n    standalone: false\r\n})\r\nexport class IBoxComponent implements OnInit {\r\n\r\n    @Output() public stateChange: EventEmitter<State> = new EventEmitter();\r\n\r\n    @Input() public heading = '';\r\n    @Input() public collapsable = true;\r\n    @Input() public collapsed = false;\r\n    @Input() public headingHidden = false;\r\n    @Input() public label = '';\r\n    @Input() public contentHeadingClass = '';\r\n    // eslint-disable-next-line @angular-eslint/no-input-rename\r\n    @Input('store-key') public storeKey?: string;\r\n    @Input() public saveState?: boolean;\r\n\r\n    constructor(\r\n        private logger: LoggerService,\r\n        private config: IBoxDefaultConfig,\r\n        private userPropStorageService: UserPropertiesStorageService,\r\n    ) { }\r\n\r\n    public toggleCollapse(event: MouseEvent) {\r\n        event.preventDefault();\r\n        if (!this.collapsable)\r\n            return;\r\n\r\n        this.collapsed = !this.collapsed;\r\n        this.stateChange.emit(this.collapsed ? State.collapsed : State.open);\r\n        if (this.saveState && this.storeKey)\r\n            this.userPropStorageService.save<LocalStorageData>(this.key, { collapsed: this.collapsed });\r\n    }\r\n\r\n    ngOnInit() {\r\n        if (!this.collapsable)\r\n            return;\r\n\r\n        this.saveState ??= !!this.storeKey || this.config.saveState;\r\n        this.storeKey ??= this.defaultKey;\r\n\r\n        if (this.saveState && this.storeKey) {\r\n            const storageData = this.userPropStorageService.load<LocalStorageData>(this.key);\r\n            this.collapsed = storageData?.collapsed;\r\n            return;\r\n        }\r\n    }\r\n\r\n    private get key() {\r\n        return `${STORAGE_KEY_PREFIX}.${this.storeKey}`;\r\n    }\r\n\r\n    private get defaultKey() {\r\n        if (this.saveState && (!this.config.useHeaderAsDefaultStoreKey || !this.heading)) {\r\n            this.logger.warn('There is no store-key set and this.heading can or may not be used as key either, the state will not be saved.');\r\n            return undefined;\r\n        }\r\n        return this.heading;\r\n    }\r\n}\r\n","<switch-template [inspinia]=\"inspiniaTemplate\" [sneat]=\"sneatTemplate\" [default]=\"inspiniaTemplate\"></switch-template>\r\n\r\n<ng-template #inspiniaTemplate>\r\n    <ibox-template-inspinia [component]=\"this\" [content]=\"content\" [content_heading]=\"content_heading\"\r\n        [content_titleInfo]=\"content_titleInfo\" [content_tools]=\"content_tools\"\r\n        [content_contentHeading]=\"content_contentHeading\"></ibox-template-inspinia>\r\n</ng-template>\r\n\r\n<ng-template #sneatTemplate>\r\n    <ibox-template-sneat [component]=\"this\" [content]=\"content\" [content_heading]=\"content_heading\"\r\n        [content_titleInfo]=\"content_titleInfo\" [content_tools]=\"content_tools\"\r\n        [content_contentHeading]=\"content_contentHeading\"></ibox-template-sneat>\r\n</ng-template>\r\n\r\n<ng-template #content><ng-content></ng-content></ng-template>\r\n<ng-template #content_heading><ng-content select=\"[ibox-heading]\"></ng-content></ng-template>\r\n<ng-template #content_titleInfo><ng-content select=\"[ibox-title-info]\"></ng-content></ng-template>\r\n<ng-template #content_tools><ng-content select=\"[ibox-tools]\"></ng-content></ng-template>\r\n<ng-template #content_contentHeading><ng-content select=\"[ibox-content-heading]\"></ng-content></ng-template>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { LayoutModule } from '@sowatech/shared/layout';\r\nimport { SwitchTemplateModule } from '@sowatech/shared/template';\r\n\r\nimport { IBoxComponent } from './swt-ibox.component';\r\nimport { IBoxInspiniaComponent, IBoxSneatComponent } from './templates/ibox-template.components';\r\n\r\n@NgModule({\r\n    imports: [\r\n        CommonModule,\r\n        SwitchTemplateModule,\r\n        LayoutModule,\r\n    ],\r\n    declarations: [\r\n        IBoxComponent,\r\n        IBoxSneatComponent,\r\n        IBoxInspiniaComponent,\r\n    ],\r\n    exports: [IBoxComponent],\r\n})\r\nexport class IBoxModule { }\r\n","import { Component, ContentChild, ElementRef, Input } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'swt-checkbox-wrapper',\r\n    template: `\r\n        <div style=\"position: relative; float:left\">\r\n          <div class=\"form-control\" [class.checkbox-focused]=\"checkBoxFocused===true\"\r\n            [style.height]=\"boxSize\" [style.width]=\"boxSize\" style=\"padding:0\">\r\n            <div class=\"text-center\" [ngClass]=\"{'bg-success': isChecked, 'bg-default': !isChecked}\">\r\n              @if (isChecked) {\r\n                <i class=\"fa fa-check\" sneat-class=\"text-white\" [style.verticalAlign]=\"'text-bottom'\"\r\n                [style.fontSize]=\"fontSize\" [style.lineHeight]=\"boxSize\"></i>\r\n              }\r\n              @if (isIntermediate) {\r\n                <i class=\"fa fa-question\" sneat-class=\"text-white\" [style.verticalAlign]=\"'text-bottom'\"\r\n                [style.fontSize]=\"fontSize\" [style.lineHeight]=\"boxSize\"></i>\r\n              }\r\n              <div [style.height]=\"boxSize\" [style.width]=\"boxSize\"\r\n                style=\"top:0; position: absolute; opacity: 0;\">\r\n                <ng-content></ng-content>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n        `,\r\n    styleUrls: ['./swt-checkbox.scss'],\r\n    standalone: false\r\n})\r\nexport class SwtCheckboxWrapper {\r\n    @Input('size')\r\n    public sizePixel = 22;\r\n\r\n    public checkBoxFocused = false;\r\n\r\n    public get fontSize(): string {\r\n        const calc = (this.sizePixel / 3) * 2;\r\n        return calc.toString() + 'px';\r\n    }\r\n\r\n    public get boxSize(): string {\r\n        return this.sizePixel + 'px';\r\n    }\r\n\r\n    @ContentChild('cb', { static: true })\r\n    public set contentChild(value: ElementRef<HTMLInputElement>) {\r\n        this.checkBoxControl = value.nativeElement;\r\n    }\r\n\r\n    public checkBoxControl: HTMLInputElement;\r\n\r\n    public onFocusCheckbox() {\r\n        this.checkBoxFocused = true;\r\n    }\r\n\r\n    public onUnfocusCheckbox() {\r\n        this.checkBoxFocused = false;\r\n    }\r\n\r\n    public get isChecked(): boolean {\r\n        return this.checkBoxControl.checked;\r\n    }\r\n\r\n    public toggleCheckbox() {\r\n        this.checkBoxControl.click();\r\n    }\r\n\r\n    public get isIntermediate(): boolean {\r\n        const result = this.checkBoxControl.checked === null || this.checkBoxControl.checked === undefined;\r\n        return result;\r\n    }\r\n}\r\n","//see http://almerosteyn.com/2016/04/linkup-custom-control-to-ngcontrol-ngmodel\r\nimport { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, Input, input, Output, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nimport { SwtCheckboxWrapper } from './swt-checkbox-wrapper.component';\r\n\r\nconst noop = () => { };\r\n\r\nexport const SWT_CHECKBOX_VALUE_ACCESSOR: any = {\r\n    provide: NG_VALUE_ACCESSOR,\r\n    useExisting: forwardRef(() => SwtCheckboxComponent),\r\n    multi: true\r\n};\r\n\r\n@Component({\r\n    selector: 'swt-checkbox',\r\n    template: `\r\n        <swt-checkbox-wrapper #swtCheckboxWrapper [size]=\"size\">\r\n            <input #cb type=\"checkbox\" [style.width]=\"boxSize\" [style.height]=\"boxSize\"\r\n                style=\"margin:0\"\r\n                [(ngModel)]=\"value\" class=\"form-check-input\" (focus)=\"onFocusCheckbox()\"\r\n                (change)=\"$event.stopPropagation()\" (focusout)=\"onUnfocusCheckbox()\" [id]=\"id()\" (keydown.enter)=\"toggleCheckbox($event)\"\r\n            />\r\n        </swt-checkbox-wrapper>\r\n    `,\r\n    providers: [SWT_CHECKBOX_VALUE_ACCESSOR],\r\n    standalone: false,\r\n    host: {\r\n        '[attr.data-cy-name]': 'id()',\r\n    },\r\n})\r\nexport class SwtCheckboxComponent implements ControlValueAccessor, AfterViewInit {\r\n    constructor(\r\n        private changeDetectorRef: ChangeDetectorRef\r\n    ) { }\r\n\r\n    @Input()\r\n    public activeChangeDetectionHack: boolean;\r\n\r\n    @Input()\r\n    public size = 22;\r\n    public get boxSize(): string { return this.size + 'px'; }\r\n\r\n    public id = input<string>();\r\n\r\n    public checkBox: HTMLInputElement;\r\n\r\n    ngAfterViewInit() {\r\n        // Wegen der Umstellung der GenericDialog.ChangeDetection wurde die checkbox nicht richtig gerendert -> noetiger HACK mit PK beschlossen\r\n        if (this.activeChangeDetectionHack) {\r\n            setTimeout(() => {\r\n                this.refreshBindings();\r\n            }, 200);\r\n        }\r\n    }\r\n\r\n    @ViewChild('swtCheckboxWrapper', { static: true }) public swtCheckboxWrapper: SwtCheckboxWrapper;\r\n    @ViewChild('cb') public set checkBoxRef(value: ElementRef) {\r\n        this.checkBox = value.nativeElement;\r\n        this.checkBox.addEventListener('change', (ev) => this.valueChange.emit(this.checkBox.checked));\r\n    }\r\n    //The internal data model\r\n    private innerValue: boolean;\r\n\r\n    //Placeholders for the callbacks which are later provided by the Control Value Accessor\r\n    private onTouchedCallback: () => void = noop;\r\n    private onChangeCallback: (_: any) => void = noop;\r\n\r\n    public onFocusCheckbox() {\r\n        this.swtCheckboxWrapper.onFocusCheckbox();\r\n    }\r\n\r\n    public onUnfocusCheckbox() {\r\n        this.swtCheckboxWrapper.onUnfocusCheckbox();\r\n    }\r\n\r\n    //From ControlValueAccessor interface\r\n    public registerOnChange(fn: any) {\r\n        this.onChangeCallback = fn;\r\n    }\r\n\r\n    //From ControlValueAccessor interface\r\n    public registerOnTouched(fn: any) {\r\n        this.onTouchedCallback = fn;\r\n    }\r\n\r\n    //Set touched on blur\r\n    public onBlur() {\r\n        this.onTouchedCallback();\r\n    }\r\n\r\n    //get accessor\r\n    public get value(): boolean {\r\n        return this.innerValue;\r\n    }\r\n\r\n    //set accessor including call the onchange callback\r\n    public set value(v: boolean) {\r\n        if (v !== this.value) {\r\n            this.innerValue = v;\r\n            this.onChangeCallback(v);\r\n        }\r\n    }\r\n\r\n    //From ControlValueAccessor interface\r\n    public writeValue(v: boolean) {\r\n        if (v !== this.value)\r\n            this.innerValue = v;\r\n        //this.checkBox.checked = v;\r\n    }\r\n\r\n    public valueChanged(event: any) {\r\n        event.stopPropagation();\r\n        this.valueChange.emit(event.value);\r\n    }\r\n\r\n    public refreshBindings() {\r\n        this.changeDetectorRef.detectChanges();\r\n    }\r\n\r\n\r\n    protected toggleCheckbox(event: Event) {\r\n        // Sicherstellen, dass Enter nicht noch eigenes Default-Verhalten auslöst\r\n        event.preventDefault();\r\n        event.stopPropagation();\r\n        this.swtCheckboxWrapper.toggleCheckbox();\r\n    }\r\n\r\n    //---------------------\r\n\r\n    @Output('change')\r\n    public valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n}\r\n","/* eslint-disable @angular-eslint/no-input-rename */\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'swt-wizard-step',\r\n    template: `\r\n        <div [style.display]=\"step.current ? 'block' : 'none'\">\r\n            <div role=\"tabpanel\">\r\n                <ng-content></ng-content>\r\n            </div>\r\n        </div>\r\n    `,\r\n    standalone: false\r\n})\r\nexport class WizardStepComponent {\r\n    public step = new WizardStep('(no title)');\r\n\r\n    @Input('ident')\r\n    public set setIdent(value: string) {\r\n        if (value) this.step.ident = value;\r\n    }\r\n\r\n    @Input('name')\r\n    public set setName(value: string) {\r\n        if (value) this.step.title = value;\r\n    }\r\n\r\n    /** @deprecated title sorgt für einen Tooltip auf dem ganzen Wizard Step */\r\n    @Input('title')\r\n    public set setTitle(value: string) {\r\n        this.setName = value;\r\n    }\r\n\r\n    @Input('number')\r\n    public set setNumber(value: string) {\r\n        if (value) this.step.number = value;\r\n    }\r\n\r\n    @Input('canFinish')\r\n    public set setCanFinish(value: boolean) {\r\n        if (value) this.step.canFinish = value;\r\n    }\r\n\r\n    @Input('last')\r\n    public set setLast(value: boolean) {\r\n        if (value) this.step.last = value;\r\n    }\r\n\r\n    @Input('first')\r\n    public set setFirst(value: boolean) {\r\n        if (value) this.step.first = value;\r\n    }\r\n\r\n    @Input()\r\n    public set canCancel(value: boolean) {\r\n        if (typeof (value) === 'boolean') this.step.canCancel = value;\r\n    }\r\n\r\n    @Input()\r\n    public set leaveStepToNextCallback(v: () => boolean | Promise<boolean>) {\r\n        this.step.leaveStepToNextCallback = v;\r\n    }\r\n}\r\n\r\nexport class WizardStep {\r\n    constructor(title: string) {\r\n        this.title = title;\r\n    }\r\n\r\n    public title: string;\r\n    public ident: string;\r\n    public number?: string;\r\n\r\n    public get class(): string {\r\n        const classes = new Array<string>();\r\n        if (this.disabled) classes.push('disabled');\r\n        if (this.current) classes.push('current');\r\n        if (this.hidden) classes.push('hidden');\r\n        if (this.done) classes.push('done');\r\n        if (this.first) classes.push('first');\r\n        if (this.last) classes.push('last');\r\n        if (this.error) classes.push('error');\r\n        return classes.join(' ');\r\n    }\r\n\r\n    public disabled = false;\r\n    public current = false;\r\n    public done = false;\r\n    public hidden = false;\r\n    public error = false;\r\n\r\n    private _first = false;\r\n    public set first(value: boolean) {\r\n        this._first = value;\r\n        if (this._first) this.canLeaveToPrevious = false;\r\n    }\r\n\r\n    public get first(): boolean {\r\n        return this._first;\r\n    }\r\n\r\n    private _last = false;\r\n    public set last(value: boolean) {\r\n        this._last = value;\r\n        if (this._last) {\r\n            this.canLeaveToNext = false;\r\n            this.canFinish = true;\r\n        }\r\n    }\r\n\r\n    public get last(): boolean {\r\n        return this._last;\r\n    }\r\n\r\n    public canFinish = false;\r\n    public canLeaveToNext = true;\r\n    public canLeaveToPrevious = true;\r\n    public canCancel = true;\r\n\r\n    /** Callback, ob man den Step verlassen darf. Wird bei Click auf \"Weiter\" abgefragt. */\r\n    public leaveStepToNextCallback: () => boolean | Promise<boolean> = () => true;\r\n}\r\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\r\nimport { AfterContentInit, Component, ContentChildren, EventEmitter, Input, Output, QueryList } from '@angular/core';\r\nimport { AllowIn, ShortcutInput } from 'ng-keyboard-shortcuts';\r\n\r\nimport { WizardStep, WizardStepComponent } from './swt-wizard-step.component';\r\n\r\n@Component({\r\n    selector: 'swt-wizard',\r\n    templateUrl: './swt-wizard.component.html',\r\n    standalone: false\r\n})\r\nexport class WizardComponent implements AfterContentInit {\r\n    public shortcuts: ShortcutInput[] = [];\r\n\r\n    @ContentChildren(WizardStepComponent) public wizardStepComponents: QueryList<WizardStepComponent>;\r\n\r\n    ngAfterContentInit() {\r\n        for (const wizardStepComponent of this.wizardStepComponents.toArray())\r\n            this.steps.push(wizardStepComponent.step);\r\n\r\n        this.shortcuts.push(\r\n            {\r\n                key: ['esc', 'escape'],\r\n                preventDefault: true,\r\n                allowIn: [AllowIn.Input, AllowIn.Textarea],\r\n                command: () => { if (!document.body.classList.contains('modal-open')) this.cancel(); },\r\n            },\r\n            {\r\n                key: 'ctrl + enter',\r\n                preventDefault: true,\r\n                allowIn: [AllowIn.Input, AllowIn.Textarea],\r\n                command: () => {\r\n                    if (!document.body.classList.contains('modal-open')) {\r\n                        if (this.currentStep.canFinish)\r\n                            this.finish();\r\n                    }\r\n                },\r\n            },\r\n            {\r\n\t\t\t\tkey: 'ctrl + alt + right',\r\n\t\t\t\tallowIn: [AllowIn.Textarea, AllowIn.Input],\r\n\t\t\t\tcommand: () => this.next()\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: 'ctrl + alt + left',\r\n\t\t\t\tallowIn: [AllowIn.Textarea, AllowIn.Input],\r\n\t\t\t\tcommand: () => this.previous()\r\n\t\t\t}\r\n        );\r\n        this.initSteps();\r\n    }\r\n\r\n    @Input() public tabclass = 'col-lg-3';\r\n    @Input() public autoReset = true;\r\n    /** `@Input` mit 'title' sorgt für einen tooltip, also besser 'heading' benutzen */\r\n    // eslint-disable-next-line @angular-eslint/no-input-rename\r\n    @Input() public title = '';\r\n    @Input()\r\n    public get heading() { return this.title; }\r\n    public set heading(value: string) { this.title = value; }\r\n    @Input() public subTitle = '';\r\n\r\n    @Output() public onAfterReset = new EventEmitter<void>();\r\n    @Output() public onBeforeLeaveStepToNext = new EventEmitter<WizardStep>();\r\n    @Output() public onBeforeLeaveStepToPrevious = new EventEmitter<WizardStep>();\r\n    @Output() public onAfterLeaveStep = new EventEmitter<WizardStep>();\r\n    @Output() public onBeforeEnterStep = new EventEmitter<WizardStep>();\r\n    @Output() public onAfterEnterStep = new EventEmitter<WizardStep>();\r\n    @Output() public onStepChanged = new EventEmitter<WizardStep>();\r\n    @Output() public onBeforeFinished = new EventEmitter<WizardStep>();\r\n    @Output() public onAfterFinished = new EventEmitter<WizardStep>();\r\n    @Output() public onCanceled = new EventEmitter<void>();\r\n\r\n    public steps: Array<WizardStep> = [];\r\n\r\n    private initSteps() {\r\n        this.setStepDefaults();\r\n        this.reset();\r\n    }\r\n\r\n    private setStepDefaults() {\r\n        if (this.steps.length > 0 && !this.steps.find(s => s.first))\r\n            this.setFirstStep(this.steps[0]);\r\n\r\n        if (this.steps.length > 0 && !this.steps.find(s => s.last))\r\n            this.setLastSteps([this.steps[this.steps.length - 1]]);\r\n\r\n        if (this.steps.length > 0 && !this.steps.find(s => s.canFinish)) {\r\n            for (const s of this.steps.filter(sx => sx.last))\r\n                s.canFinish = true;\r\n\r\n        }\r\n    }\r\n\r\n    public reset() {\r\n        for (const s of this.steps) {\r\n            s.done = false;\r\n            s.disabled = true;\r\n        }\r\n        const firstStep = this.steps.find(s => s.first);\r\n        this.setCurrentStep(firstStep);\r\n\r\n        this.setStepDefaults();\r\n\r\n        this.onAfterReset.emit();\r\n        this.onAfterEnterStep.emit(firstStep);\r\n    }\r\n\r\n    private setFirstStep(firstStep: WizardStep) {\r\n        for (const s of this.steps)\r\n            s.first = s === firstStep;\r\n    }\r\n\r\n    public set firstStep(firstStep: WizardStep) {\r\n        this.setFirstStep(firstStep);\r\n    }\r\n\r\n    public get firstStep(): WizardStep {\r\n        return this.steps.find(s => s.first);\r\n    }\r\n\r\n    private setCurrentStep(currentStep: WizardStep) {\r\n        for (const s of this.steps)\r\n            s.current = s === currentStep;\r\n\r\n        currentStep.disabled = false;\r\n        currentStep.done = false;\r\n    }\r\n\r\n    public set currentStep(currentStep: WizardStep) {\r\n        this.setCurrentStep(currentStep);\r\n        this.onStepChanged.emit(currentStep);\r\n    }\r\n\r\n    public get currentStep(): WizardStep {\r\n        return this.steps.find(s => s.current);\r\n    }\r\n\r\n    public setLastSteps(lastSteps: WizardStep[]) {\r\n        for (const s of this.steps)\r\n            s.last = lastSteps.indexOf(s) >= 0;\r\n    }\r\n\r\n    public getNextStep(): WizardStep {\r\n        let result = null;\r\n        if (this.currentStep && !this.currentStep.last) {\r\n            const indexOfCurrent = this.steps.indexOf(this.currentStep);\r\n            const indexOfNext = indexOfCurrent + 1;\r\n            if (this.steps.length > indexOfNext)\r\n                result = this.steps[indexOfNext];\r\n        }\r\n        return result;\r\n    }\r\n\r\n    public getPreviousStep(): WizardStep {\r\n        let result = null;\r\n        if (this.currentStep && !this.currentStep.first) {\r\n            const indexOfCurrent = this.steps.indexOf(this.currentStep);\r\n            const indexOfPrev = indexOfCurrent - 1;\r\n            if (indexOfPrev >= 0)\r\n                result = this.steps[indexOfPrev];\r\n\r\n        }\r\n        return result;\r\n    }\r\n\r\n    public async goto(gotoStep: WizardStep) {\r\n        if (!gotoStep.disabled) {\r\n            const indexOfGotoStep = this.steps.indexOf(gotoStep);\r\n            const indexOfCurrent = this.steps.indexOf(this.currentStep);\r\n\r\n            if (indexOfGotoStep > indexOfCurrent)\r\n                await this.next(gotoStep);\r\n            else\r\n                this.previous(gotoStep);\r\n        }\r\n    }\r\n\r\n    public async next(targetStep?: WizardStep) {\r\n        targetStep ??= this.getNextStep();\r\n        const currentStep = this.currentStep;\r\n        this.onBeforeLeaveStepToNext.emit(currentStep);\r\n        if (!currentStep.canLeaveToNext) return;\r\n        if (!await currentStep.leaveStepToNextCallback()) return;\r\n        this.enterStep(targetStep);\r\n    }\r\n\r\n    public previous(enteredStep?: WizardStep) {\r\n        this.onBeforeLeaveStepToPrevious.emit(this.currentStep);\r\n        if (this.currentStep.canLeaveToPrevious) {\r\n            if (!enteredStep) enteredStep = this.getPreviousStep();\r\n            this.enterStep(enteredStep);\r\n        }\r\n    }\r\n\r\n    private leftStep(leftStep: WizardStep) {\r\n        leftStep.done = true;\r\n        this.onAfterLeaveStep.emit(leftStep);\r\n    }\r\n\r\n    private enterStep(enteredStep: WizardStep) {\r\n        this.onBeforeEnterStep.emit(enteredStep);\r\n        const lastStep = this.currentStep;\r\n        this.currentStep = enteredStep;\r\n        this.leftStep(lastStep);\r\n        this.onAfterEnterStep.emit(this.currentStep);\r\n    }\r\n\r\n    public finish() {\r\n        this.onBeforeFinished.emit(this.currentStep);\r\n        if (this.currentStep.canFinish) {\r\n            this.onAfterFinished.emit(this.currentStep);\r\n            if (this.autoReset) this.reset();\r\n        }\r\n    }\r\n\r\n    public cancel() {\r\n        this.onCanceled.emit();\r\n        if (this.autoReset) this.reset();\r\n    }\r\n}\r\n","<ng-keyboard-shortcuts [shortcuts]=\"shortcuts\"></ng-keyboard-shortcuts>\r\n@if (title) {\r\n  <ly-title context=\"swt-wizard\" sizeClass=\"title-size-2\">{{ title }}</ly-title>\r\n}\r\n@if (subTitle) {\r\n  <p>{{ subTitle }}</p>\r\n}\r\n<div id=\"wizard\" role=\"application\" class=\"wizard clearfix\">\r\n  <div class=\"steps clearfix\">\r\n    @for (step of steps; track step) {\r\n      <ul role=\"tablist\">\r\n        <li #test [id]=\"'step_' + step.number\" (mouseover)=\"test.title = ''\" [title]=\"step.title\" role=\"tab\" [class]=\"tabclass\" [ngClass]=\"step.class\">\r\n          <a href=\"javascript:void(0)\" (click)=\"goto(step)\">\r\n            @if (step.number) {\r\n              <span class=\"number\">{{ step.number }}</span>\r\n              } {{ step.title }}\r\n            </a>\r\n          </li>\r\n        </ul>\r\n      }\r\n    </div>\r\n    <div class=\"content clearfix\">\r\n      <div class=\"body\">\r\n        <ng-content></ng-content>\r\n      </div>\r\n    </div>\r\n    <div class=\"actions clearfix\">\r\n      @if (currentStep) {\r\n        <ul role=\"menu\">\r\n          <li id=\"swt-wizard-previous\" (click)=\"previous()\">\r\n            <button disable-no-double-click [disabled]=\"!currentStep.canLeaveToPrevious\" class=\"btn\" role=\"menuitem\" i18n=\"@@Wizard.Previous.act.Label\" title=\"ctrl + alt + left\">\r\n                    Zurück\r\n                </button>\r\n          </li>\r\n          <li id=\"swt-wizard-next\" (click)=\"next()\">\r\n            <button disable-no-double-click [disabled]=\"!currentStep.canLeaveToNext\" class=\"btn\" role=\"menuitem\" i18n=\"@@Wizard.Next.act.Label\"  title=\"ctrl + alt + right\">\r\n                    Weiter\r\n                </button>\r\n          </li>\r\n          <li id=\"swt-wizard-finish\">\r\n            <button disable-no-double-click [disabled]=\"!currentStep.canFinish\" class=\"btn\" role=\"menuitem\" (click)=\"finish()\" i18n=\"@@Wizard.Finish.act.Label\" title=\"ctrl + enter\">\r\n                    Abschliessen\r\n                </button>\r\n          </li>\r\n          <li id=\"swt-wizard-cancel\" (click)=\"cancel()\">\r\n            <button disable-no-double-click [disabled]=\"!currentStep.canCancel\" class=\"btn\" i18n=\"@@Wizard.Cancel.act.Label\" title=\"esc\">\r\n                    Abbrechen\r\n                </button>\r\n          </li>\r\n        </ul>\r\n      }\r\n    </div>\r\n    <div [hidden]=\"true\">\r\n      <input id=\"swt-wizard-step-ident\" [name]=\"currentStep.ident\">\r\n      <input id=\"swt-wizard-step-number\" [name]=\"currentStep.number\">\r\n    </div>\r\n  </div>\r\n","import { DestroyRef, Directive, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { NgControl } from '@angular/forms';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\n\r\n@Directive({\r\n    selector: '[ngModel][debounce]',\r\n    standalone: false\r\n})\r\nexport class DebounceDirective implements OnInit {\r\n    private readonly destroyRef = inject(DestroyRef);\r\n\r\n    @Output()\r\n    public onDebounce = new EventEmitter<any>();\r\n\r\n    @Input('debounce')\r\n    public debounceTime = 500;\r\n\r\n    private isFirstChange = true;\r\n\r\n    constructor(public model: NgControl) {\r\n    }\r\n\r\n    ngOnInit() {\r\n        this.model.valueChanges.pipe(\r\n            debounceTime(this.debounceTime),\r\n            distinctUntilChanged(),\r\n            takeUntilDestroyed(this.destroyRef),\r\n        ).subscribe(modelValue => {\r\n            if (this.isFirstChange)\r\n                this.isFirstChange = false;\r\n            else\r\n                this.onDebounce.emit(modelValue);\r\n        });\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'highlight',\r\n    standalone: false\r\n})\r\n\r\nexport class SWTHighlightSearch implements PipeTransform {\r\n\r\n    transform(value: any, args: any): any {\r\n        if (!args)  return value;\r\n        const re = new RegExp(args, 'gi');\r\n        return value.replace(re, '<strong>' + args + '</strong>');\r\n    }\r\n}\r\n","import { Component, Directive, ElementRef, Input, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\n\r\nimport type { LRUComponent } from '../swt-lru.component';\r\n\r\n@Directive()\r\nexport abstract class SwtLruComponentBase {\r\n    @ViewChild('search', { static: true }) public htmlInputSearch!: ElementRef;\r\n    @ViewChildren('selectItem') public htmlSelectItems!: QueryList<ElementRef>;\r\n\r\n    @Input() public component: LRUComponent;\r\n}\r\n\r\n@Component({\r\n    selector: 'swt-lru-inspinia',\r\n    templateUrl: './swt-lru.inspinia.component.html',\r\n    styles: [`\r\n        .list-group-item {\r\n            cursor: pointer;\r\n        }\r\n        .list-group-item:hover {\r\n            color: #fff;\r\n            background-color: #337ab7 !important;\r\n            border-color: #337ab7;\r\n        }\r\n        .list-group-item:focus {\r\n            background: #c1c1c1;\r\n            outline: none;\r\n        }\r\n        ul {\r\n            z-index: 4;\r\n            position: absolute;\r\n            max-height: 200px;\r\n            width: 348px;\r\n            overflow-y: scroll;\r\n            background-color: #fff;\r\n        }\r\n        /* da in bs3 die Klassen zur Größe von InputGroups fehlen. Bei input-lg gibt es keine Probleme  */\r\n        .input-group-sm .input-group-btn button {\r\n            height: 28px;\r\n        }\r\n    `],\r\n    standalone: false\r\n})\r\nexport class SwtLruInspiniaComponent extends SwtLruComponentBase { }\r\n\r\n@Component({\r\n    selector: 'swt-lru-sneat',\r\n    templateUrl: './swt-lru.sneat.component.html',\r\n    styles: [],\r\n    standalone: false\r\n})\r\nexport class SwtLruSneatComponent extends SwtLruComponentBase { }\r\n","<div class=\"input-group\" [ngClass]=\"component.inputGroupCss\">\r\n  <input type=\"text\" #search [(ngModel)]=\"component.value\" tabindex=\"0\" class=\"form-control\" [name]=\"component.key\"\r\n    [maxlength]=\"component.inputMaxLength\" (keydown)=\"component.onKeydown($event)\" (input)=\"component.refresh()\"\r\n    (focus)=\"component.onInputFocus()\" (blur)=\"component.onInputFocusLost()\" [ngClass]=\"component.cssClass\" [id]=\"component.id\">\r\n    <span class=\"input-group-btn\">\r\n      <button (click)=\"component.clearInput()\" class=\"btn btn-default\" type=\"button\">\r\n        <i class=\"fa fa-times\"></i></button>\r\n      </span>\r\n    </div>\r\n    @if (component.showList) {\r\n      <ul tabindex=\"-1\" class=\"list-group\" (keydown)=\"component.onKeydown($event)\" (focus)=\"component.onListFocus()\" (blur)=\"component.onListFocusLost()\">\r\n        @for (item of component.selectItems; track item) {\r\n          <li #selectItem tabindex=\"1\" (click)=\"component.select(item.value)\"\r\n            class=\"list-group-item\" innerHTML=\"{{ item.text | highlight : component.value}}\" [value]=\"item.value\">\r\n          </li>\r\n        }\r\n      </ul>\r\n    }\r\n","\r\n<div class=\"input-group\">\r\n  <input type=\"text\" #search [(ngModel)]=\"component.value\" tabindex=\"0\" class=\"form-control\" [name]=\"component.key\"\r\n    [maxlength]=\"component.inputMaxLength\" (keydown)=\"component.onKeydown($event)\" (input)=\"component.refresh()\"\r\n    (focus)=\"component.onInputFocus()\" (blur)=\"component.onInputFocusLost()\" [ngClass]=\"component.cssClass\" [id]=\"component.id\">\r\n    <span class=\"input-group-text\" role=\"button\" (click)=\"component.clearInput()\">\r\n      <i class=\"fa fa-times\"></i>\r\n    </span>\r\n  </div>\r\n  @if (component.showList) {\r\n    <ul tabindex=\"-1\" class=\"list-group\" (keydown)=\"component.onKeydown($event)\" (focus)=\"component.onListFocus()\" (blur)=\"component.onListFocusLost()\">\r\n      @for (item of component.selectItems; track item) {\r\n        <li #selectItem tabindex=\"1\" (click)=\"component.select(item.value)\"\r\n          class=\"list-group-item\" innerHTML=\"{{ item.text | highlight : component.value}}\" [value]=\"item.value\">\r\n        </li>\r\n      }\r\n    </ul>\r\n  }\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';\r\nimport { SelectItem } from '@sowatech/shared/@types';\r\nimport { UserPropertiesStorageService } from '@sowatech/shared/user-properties-storage';\r\n\r\nimport type { SwtLruComponentBase } from './templates/swt-lru.template';\r\n\r\n@Component({\r\n    selector: 'swt-lru',\r\n    styles: [],\r\n    template: `\r\n    <switch-template [inspinia]=\"inspiniaTemplate\" [sneat]=\"sneatTemplate\"></switch-template>\r\n\r\n    <ng-template #inspiniaTemplate>\r\n        <swt-lru-inspinia [component]=\"this\" #template></swt-lru-inspinia>\r\n    </ng-template>\r\n\r\n    <ng-template #sneatTemplate>\r\n        <swt-lru-sneat [component]=\"this\" #template></swt-lru-sneat>\r\n    </ng-template>\r\n    `,\r\n    standalone: false\r\n})\r\n\r\nexport class LRUComponent implements OnInit {\r\n\r\n    constructor(private storage: UserPropertiesStorageService) { }\r\n\r\n    @ViewChildren('template') public template: QueryList<SwtLruComponentBase>;\r\n\r\n    @Output() public selectedId: EventEmitter<number> = new EventEmitter();\r\n    @Output() public selectedName: EventEmitter<string> = new EventEmitter();\r\n    @Output() public valueChange: EventEmitter<string> = new EventEmitter();\r\n\r\n    private get htmlInputSearch(): ElementRef {\r\n        return this.template.first.htmlInputSearch;\r\n    }\r\n    private get htmlSelectItems(): QueryList<ElementRef> {\r\n        return this.template.first.htmlSelectItems;\r\n    }\r\n\r\n    private inputValue: string;\r\n    @Input()\r\n    public get value(): string {\r\n        return this.inputValue;\r\n    }\r\n    public set value(value: string) {\r\n        if (value === undefined || this.inputValue === value) return;\r\n        this.inputValue = value;\r\n        this.valueChange.emit(this.inputValue);\r\n    }\r\n    @Input() public key: string = null;\r\n    @Input() public inputMaxLength: number = null;\r\n    @Input() public stopEventPropagation = true;\r\n    @Input('filter-method') public filterMethod: 'includes' | 'startswith' = 'includes';\r\n    @Input() public set inputSelectItems(selectItems: SelectItem[]) {\r\n        this.selectItems = selectItems ? selectItems.slice() : [];\r\n        this.originalSelectItems = selectItems ? selectItems.slice() : [];\r\n        this.refresh();\r\n    }\r\n    private _cssClass: string;\r\n    @Input()\r\n    public set cssClass(value: string) {\r\n        if (value === this._cssClass) return;\r\n        this._cssClass = value;\r\n        if (this._cssClass.includes('input-sm'))\r\n            this.inputGroupCss = 'input-group-sm';\r\n        if (this._cssClass.includes('input-lg'))\r\n            this.inputGroupCss = 'input-group-lg';\r\n    }\r\n    public get cssClass() {\r\n        return this._cssClass;\r\n    }\r\n\r\n    @Input() public id: string;\r\n\r\n    @Output() public focusLost: EventEmitter<void> = new EventEmitter();\r\n\r\n    public inputGroupCss: string;\r\n\r\n    /**\r\n     * @deprecated Use the 'value' two-way-binding instead\r\n     */\r\n    @Input() public set preSetText(text: string) {\r\n        if (text && text !== this.value && text !== '$NULL')\r\n            this.value = text;\r\n    }\r\n\r\n    public savedIds: number[] = [];\r\n    public selectItems: SelectItem[] = [];\r\n    public originalSelectItems: SelectItem[] = [];\r\n    public inputFocused = false;\r\n    public listFocused = false;\r\n    public showList = false;\r\n\r\n    private focusedItem = -1;\r\n\r\n    ngOnInit() {\r\n        this.refresh();\r\n    }\r\n\r\n    public storageKey() {\r\n        if (!this.key) return null;\r\n        return 'LRU-' + this.key.charAt(0).toUpperCase() + this.key.slice(1);\r\n    }\r\n\r\n    public onKeydown(event: KeyboardEvent) {\r\n        if (this.stopEventPropagation)\r\n            event.stopPropagation();\r\n        switch (event.key) {\r\n            case 'ArrowUp':\r\n                if (this.focusedItem > 0)\r\n                    this.focusedItem--;\r\n                event.preventDefault();\r\n                break;\r\n            case 'ArrowDown':\r\n                if (this.focusedItem < this.selectItems.length - 1)\r\n                    this.focusedItem++;\r\n                event.preventDefault();\r\n                break;\r\n            case 'Enter':\r\n                this.getFocusedElement()?.click();\r\n                return;\r\n            case 'Tab':\r\n                this.onInputFocusLost();\r\n                return;\r\n            default:\r\n                this.focusedItem = -1;\r\n                setTimeout(() => (this.htmlInputSearch.nativeElement as HTMLElement)?.focus());\r\n                return;\r\n        }\r\n        this.getFocusedElement()?.focus();\r\n    }\r\n\r\n    public filterSelectItems() {\r\n        if (!this.value) {\r\n            this.selectItems = this.originalSelectItems.slice();\r\n            this.reorderSelectItems();\r\n            return;\r\n        }\r\n        switch (this.filterMethod) {\r\n            case 'includes':\r\n                this.selectItems = this.originalSelectItems.filter((si) => si.text.toLowerCase().includes(this.value.toLowerCase()));\r\n                break;\r\n            case 'startswith':\r\n                this.selectItems = this.originalSelectItems.filter((si) => si.text.toLowerCase().startsWith(this.value.toLowerCase()));\r\n                break;\r\n        }\r\n    }\r\n\r\n    public select(itemValue?: number) {\r\n        if (itemValue === undefined || itemValue === null) return;\r\n        const selectedItem = this.selectItems.find(item => item.value === itemValue);\r\n        this.addToBeginning(itemValue);\r\n        this.reorderSelectItems();\r\n        this.saveToStorage();\r\n        this.selectedId.emit(selectedItem.value);\r\n        this.selectedName.emit(selectedItem.text);\r\n        this.setSelectedText(selectedItem.text);\r\n        this.focusedItem = -1;\r\n        this.onInputFocusLost();\r\n    }\r\n\r\n    public refresh() {\r\n        this.loadFromStorage();\r\n        this.filterSelectItems();\r\n        this.reorderSelectItems();\r\n    }\r\n\r\n    public reorderSelectItems() {\r\n        if (this.savedIds.length === 0) return;\r\n        const selectItemCopy = this.selectItems.slice();\r\n        const newSelectItemList: SelectItem[] = [];\r\n        for (const id of this.savedIds) {\r\n            const selectItem = selectItemCopy.find(item => +item.value === id);\r\n            if (selectItem) {\r\n                newSelectItemList.push(selectItem);\r\n                this.removeItemFromArray(selectItemCopy, selectItem);\r\n            }\r\n        }\r\n        if (selectItemCopy.length > 0) {\r\n            for (const selectItem of selectItemCopy)\r\n                newSelectItemList.push(selectItem);\r\n\r\n        }\r\n        this.selectItems = newSelectItemList;\r\n        this.saveToStorage();\r\n    }\r\n\r\n    public onInputFocus() {\r\n        this.inputFocused = true;\r\n        this.updateShowList();\r\n        this.focusedItem = -1;\r\n        this.filterSelectItems();\r\n    }\r\n\r\n    public onListFocus() {\r\n        this.listFocused = true;\r\n        this.updateShowList();\r\n        this.filterSelectItems();\r\n    }\r\n\r\n    public onInputFocusLost() {\r\n        this.focusLost.emit();\r\n        if (this.focusedItem !== -1) return;\r\n        this.inputFocused = false;\r\n        setTimeout(() => {\r\n            this.focusedItem = -1;\r\n            this.updateShowList();\r\n        }, 150);\r\n    }\r\n\r\n    public onListFocusLost() {\r\n        this.listFocused = false;\r\n        setTimeout(() => {\r\n            this.updateShowList();\r\n        }, 150);\r\n    }\r\n\r\n    private updateShowList(){\r\n        this.showList = this.listFocused || this.inputFocused;\r\n    }\r\n\r\n    public clearInput() {\r\n        if (!this.value) return;\r\n        this.focusedItem = -1;\r\n        this.value = null;\r\n        this.selectedId.emit(null);\r\n        this.selectedName.emit(null);\r\n        this.refresh();\r\n    }\r\n\r\n    private getFocusedElement(): HTMLElement | null {\r\n        const item = this.htmlSelectItems.get(this.focusedItem) as ElementRef;\r\n        return item?.nativeElement ?? null;\r\n    }\r\n\r\n    private setSelectedText(text?: string) {\r\n        this.value = text ?? this.selectItems[0].text;\r\n    }\r\n\r\n    private removeItemFromArray(array: SelectItem[], item: SelectItem) {\r\n        const removeIndex = array.indexOf(item);\r\n        array.splice(removeIndex, 1);\r\n    }\r\n\r\n    private loadFromStorage() {\r\n        const result = this.storage.load<number[] | null>(this.storageKey());\r\n        if (result)\r\n            this.savedIds = result;\r\n    }\r\n\r\n    private saveToStorage() {\r\n        if (this.selectItems.length === 0) return;\r\n        this.savedIds = this.selectItems.map(si => +si.value);\r\n        this.storage.save(this.storageKey(), this.savedIds);\r\n    }\r\n\r\n    private addToBeginning(value: number) {\r\n        this.savedIds = this.savedIds.filter(s => s !== value);\r\n        this.savedIds.unshift(value);\r\n    }\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, signal, untracked, ViewChild } from '@angular/core';\r\nimport { outputToObservable } from '@angular/core/rxjs-interop';\r\nimport { NgSelectComponent } from '@ng-select/ng-select';\r\nimport { SelectItem } from '@sowatech/shared/@types';\r\nimport { debounceTime, Subscription } from 'rxjs';\r\n\r\nexport type VALUE = any;\r\n\r\n@Component({\r\n    selector: 'multi-lru',\r\n    styleUrls: ['./multi-lru.component.scss'],\r\n    template: `\r\n        <div class=\"position-relative\" >\r\n            <ng-select #ngSelect\r\n                [(ngModel)]=\"value\" [items]=\"inputSelectItems\" (change)=\"onSelectChanged()\" [attr.name]=\"nameSignal()\" name=\"{{nameSignal()}}\"\r\n                [multiple]=\"multiple\" [addTag]=\"addTag\" [searchFn]=\"filterFunction\" [maxSelectedItems]=\"maxSelectedItems\"\r\n                bindValue=\"text\" bindLabel=\"text\" [inputAttrs]=\"{maxlength: inputMaxLength?.toString()}\" [virtualScroll]=\"true\"\r\n                class=\"form-control\" [ngClass]=\"cssClass\"\r\n                loadingText=\"Lädt...\" i18n-loadingText=\"@@MultiLru.Loading.dsp.Label\"\r\n                placeholder=\"(Auswählen)\" i18n-placeholder=\"@@MultiLru.Choose.dsp.Label\"\r\n                notFoundText=\"Keine Suchergebnisse\" i18n-notFoundText=\"@@MultiLru.NotFound.dsp.Label\"\r\n                addTagText=\"Hinzufügen\" i18n-addTagText=\"@@MultiLru.AddTag.dsp.Label\" (blur)=\"focusLost.emit()\" appNgSelectAriaLabel [ariaLabel]=\"fieldText\" [id]=\"id\"\r\n                [loading]=\"loading()\">\r\n            </ng-select>\r\n        </div>\r\n    `,\r\n    standalone: false,\r\n    host: {\r\n        '[attr.data-cy-name]': 'nameSignal()',\r\n    },\r\n})\r\n\r\nexport class MultiLRUComponent implements OnInit, OnDestroy {\r\n\r\n    @ViewChild('ngSelect', { static: true }) public ngSelect: NgSelectComponent;\r\n\r\n    @Output() public selectedValues: EventEmitter<VALUE[]> = new EventEmitter();\r\n    @Output() public selectedTexts: EventEmitter<string[]> = new EventEmitter();\r\n    @Output() public valueChange: EventEmitter<string[]> = new EventEmitter();\r\n    @Output() public focusLost: EventEmitter<void> = new EventEmitter();\r\n\r\n    protected readonly nameSignal = signal('');\r\n\r\n    @Input()\r\n    public get name(): string { return untracked(this.nameSignal); }\r\n    public set name(value: string) {\r\n        this.nameSignal.set(value);\r\n    }\r\n\r\n    private _textValues: string[];\r\n    /**Text der SelectItems */\r\n    @Input()\r\n    public get value(): string[] {\r\n        return this._textValues;\r\n    }\r\n    public set value(value: string[]) {\r\n        if (value === undefined || this._textValues === value) return;\r\n        this._textValues = value;\r\n        this.valueChange.emit(this._textValues);\r\n    }\r\n\r\n    @Input() public inputSelectItems: SelectItem[] = [];\r\n    @Input() public inputSelectItemsFn: (searchTerm: string) => Promise<SelectItem[]> = null;\r\n    @Input() public multiple = true;\r\n    @Input() public addTag = true;\r\n    @Input() public maxSelectedItems: number;\r\n    @Input() public inputMaxLength: number;\r\n    @Input('filter-method') public filterMethod: 'includes' | 'startswith' = 'includes';\r\n    @Input() public cssClass: string;\r\n    @Input() public fieldText: string;\r\n    @Input() public id: string;\r\n\r\n\r\n    private loadingCounter = 0;\r\n    private readonly subscriptions: Subscription[] = [];\r\n\r\n    ngOnInit(): void {\r\n        if (this.inputSelectItemsFn) {\r\n\r\n            this.subscriptions.push(outputToObservable(this.ngSelect.searchEvent).pipe(debounceTime(300))\r\n                .subscribe(search => this.onSearch(search.term)));\r\n        }\r\n    }\r\n\r\n    ngOnDestroy(): void {\r\n        this.subscriptions.forEach(s => s.unsubscribe());\r\n    }\r\n\r\n    public onSelectChanged() {\r\n        this.selectedValues.emit(this.value.map(text => this.inputSelectItems.find(si => si.text === text)?.value ?? text));\r\n        this.selectedTexts.emit(this.value);\r\n    }\r\n\r\n    public async onSearch(searchTerm: string) {\r\n        this.showLoading();\r\n        try {\r\n            this.inputSelectItems = await this.inputSelectItemsFn(searchTerm);\r\n        } finally {\r\n            this.hideLoading();\r\n        }\r\n    }\r\n\r\n    public filterFunction = (term: string, item: SelectItem) => {\r\n        if (!term) return true;\r\n        if (this.filterMethod === 'includes')\r\n            return item.text.toLowerCase().includes(term.toLowerCase());\r\n        else\r\n            return item.text.toLowerCase().startsWith(term.toLowerCase());\r\n    };\r\n\r\n    protected loading = signal(false);\r\n    private showLoading() {\r\n        this.loadingCounter++;\r\n        this.loading.set(true);\r\n    }\r\n\r\n    private hideLoading() {\r\n        this.loadingCounter--;\r\n        if (this.loadingCounter === 0)\r\n            this.loading.set(false);\r\n    }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'toolbar-container',\r\n    template: `<div class=\"panel m-b-sm clearfix\" inspinia-class=\"m-b-sm\" sneat-class=\"mb-2\">\r\n                    <div inspinia-class=\"pull-right\" sneat-class=\"float-end\">\r\n                        <ng-content></ng-content>\r\n                    </div>\r\n                </div>\r\n              `,\r\n    styles: [`\r\n    .panel {\r\n        background-color: transparent;\r\n    }\r\n    .clearfix:after {\r\n        clear: both;\r\n    }\r\n    :host ::ng-deep {\r\n        .panel button,\r\n        .panel div.btn-group,\r\n        .ibox-tools button {\r\n            margin-left: 3px;\r\n        }\r\n    }\r\n    `],\r\n    standalone: false\r\n})\r\n\r\nexport class ToolBarContainerComponent {\r\n\r\n}\r\n","//https://nitayneeman.com/posts/listening-to-dom-changes-using-mutationobserver-in-angular/\r\nimport { Directive, ElementRef, EventEmitter, OnDestroy, Output } from '@angular/core';\r\n\r\n@Directive({\r\n    selector: '[domChange]',\r\n    standalone: false\r\n})\r\nexport class DomChangeDirective implements OnDestroy {\r\n  private changes: MutationObserver;\r\n\r\n  @Output()\r\n  public domChange = new EventEmitter();\r\n\r\n  constructor(private elementRef: ElementRef) {\r\n    const element = this.elementRef.nativeElement;\r\n\r\n    this.changes = new MutationObserver((mutations: MutationRecord[]) => {\r\n        mutations.forEach((mutation: MutationRecord) => this.domChange.emit(mutation));\r\n      }\r\n    );\r\n\r\n    this.changes.observe(element, {\r\n      attributes: true,\r\n      childList: true,\r\n      characterData: true\r\n    });\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.changes.disconnect();\r\n  }\r\n}\r\n","import { Component, Input, ViewChild, ElementRef, AfterContentInit, OnDestroy, Output, EventEmitter, inject } from '@angular/core';\r\nimport { SharedConfigService } from '@sowatech/shared/shared-config';\r\n\r\n@Component({\r\n    selector: 'ul-nav-tabs',\r\n    template: '<ul #navtabs [ngClass]=\"ngClassValue\" class=\"nav cursor-pointer\" (domChange)=\"contentChange()\"><ng-content></ng-content></ul>',\r\n    standalone: false\r\n})\r\n\r\n// eslint-disable-next-line @angular-eslint/component-class-suffix\r\nexport class UlNavTabs implements AfterContentInit, OnDestroy {\r\n    // eslint-disable-next-line @angular-eslint/no-input-rename\r\n    @Input('class') public cssClasses;\r\n    @Input() public pills: boolean;\r\n    @Input() public stacked: boolean;\r\n    @Input() public justified: boolean;\r\n\r\n    private readonly config = inject(SharedConfigService);\r\n\r\n    public get ngClassValue(): string {\r\n        const classes: string[] = [];\r\n        if (this.pills)\r\n            classes.push('nav-pills');\r\n\r\n        else\r\n            classes.push('nav-tabs');\r\n\r\n        if (this.stacked)\r\n            classes.push(this.getNavStackedCssClass());\r\n\r\n        if (this.justified)\r\n            classes.push('nav-justified');\r\n\r\n        if (this.cssClasses)\r\n            classes.push(this.cssClasses);\r\n\r\n        return classes.join(' ');\r\n    }\r\n\r\n    @Output() public changed = new EventEmitter<string>();\r\n\r\n    @ViewChild('navtabs', { static: true }) private navtabsRef: ElementRef;\r\n    private get navtabs(): HTMLElement {\r\n        return this.navtabsRef.nativeElement;\r\n    }\r\n\r\n    private get navTabsItems(): HTMLElement[] {\r\n        const results = [];\r\n        this.navtabs.childNodes.forEach(childNode => {\r\n            if (childNode.nodeName === 'LI')\r\n                results.push(childNode);\r\n        });\r\n        return results;\r\n    }\r\n\r\n    ngAfterContentInit() {\r\n        setTimeout(() => {\r\n            this.initTabs();\r\n        });\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        this.unsubscribeTabs();\r\n    }\r\n\r\n    public contentChange() {\r\n        this.initTabs();\r\n    }\r\n\r\n    private tabsWithSubscriptions: HTMLElement[] = [];\r\n\r\n    private initTabs() {\r\n        this.unsubscribeTabs();\r\n        for (const navTab of this.navTabsItems) {\r\n            navTab.addEventListener('click', this.onNavTabClick.bind(this));//see options for more\r\n            navTab.addEventListener('keydown', this.onNavTabKeyDown.bind(this));//see options for more\r\n            if (!navTab.hasAttribute('tabindex')) navTab.setAttribute('tabindex', '0');\r\n            if (this.getActiveClassHtmlElement(navTab).classList.contains('active')) this.activeTabId = navTab.id;\r\n        }\r\n    }\r\n\r\n    private unsubscribeTabs() {\r\n        for (const navTab of this.tabsWithSubscriptions) {\r\n            navTab.removeEventListener('click', this.onNavTabClick);\r\n            navTab.removeEventListener('keydown', this.onNavTabKeyDown);\r\n        }\r\n        this.tabsWithSubscriptions = [];\r\n    }\r\n\r\n    private onNavTabClick(ev: MouseEvent) {\r\n        ev.stopPropagation();\r\n        this.setActive((ev.currentTarget as HTMLElement).id);//currentTarget => li, target => a\r\n    }\r\n\r\n    private onNavTabKeyDown(ev: KeyboardEvent) {\r\n        if (ev.code === 'Space') {\r\n            ev.stopPropagation();\r\n            this.setActive((ev.currentTarget as HTMLElement).id);//currentTarget => li, target => a\r\n        }\r\n    }\r\n\r\n    private activeTabId: string;\r\n\r\n    public setActive(id: string) {\r\n        if (this.activeTabId === id) return;\r\n        this.activeTabId = id;\r\n        for (const navTab of this.navTabsItems) {\r\n            if (navTab.id === this.activeTabId)\r\n                this.getActiveClassHtmlElement(navTab).classList.add('active');\r\n            else\r\n                this.getActiveClassHtmlElement(navTab).classList.remove('active');\r\n        }\r\n        this.changed.emit(this.activeTabId);\r\n    }\r\n\r\n    public getActive(): string {\r\n        return this.activeTabId;\r\n    }\r\n\r\n    public isActive(id: string): boolean {\r\n        return this.activeTabId === id;\r\n    }\r\n\r\n    /** In Bs3 wird die active Klasse direkt auf dem LI-Element gesetzt. In Bs5 wird sie auf dem A-Element gesetzt */\r\n    private getActiveClassHtmlElement(navTab: HTMLElement): HTMLElement {\r\n        if (this.config.templateKey === 'sneat')\r\n            return navTab.firstChild as HTMLElement;\r\n        return navTab;\r\n    }\r\n\r\n    private getNavStackedCssClass(): string {\r\n        if (this.config.templateKey === 'sneat')\r\n            return 'flex-column';\r\n        return 'nav-stacked';\r\n    }\r\n}\r\n","import { ChangeDetectorRef, Directive, effect, inject, input } from '@angular/core';\r\n\r\nimport { LoadingIndicatorComponent } from './swt-loading-indicator.component';\r\n\r\n@Directive({\r\n    selector: 'loading-indicator[loading]',\r\n    standalone: false\r\n})\r\nexport class LoadingDirective {\r\n    private readonly loadingIndicator = inject(LoadingIndicatorComponent);\r\n    private readonly changeDetector = inject(ChangeDetectorRef);\r\n\r\n    constructor() {\r\n        effect(() => {\r\n            if (this.loading()) this.loadingIndicator.show();\r\n            else this.loadingIndicator.hide();\r\n\r\n            // klappt nicht sofort, weil der loading-indicator intern `setTimeout` benutzt\r\n            setTimeout(() => this.changeDetector.markForCheck());\r\n        });\r\n    }\r\n\r\n    /** Wenn `true`, wird der `loading-indicator` angezeigt */\r\n    public readonly loading = input(false);\r\n}\r\n","export class ColorPickerConfiguration {\r\n  returnHexCode?: boolean = true;\r\n  emptyText?: string;\r\n  allowOnlyColorsFromSelect?: boolean = false;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SelectColor } from '@sowatech/shared/@types';\r\n\r\n@Injectable()\r\nexport class SwtColorPickerService {\r\n\r\n    public getColorFromSelectColorsOrEmptyColor(hexColor: string, colors: SelectColor[]): SelectColor {\r\n        let color = null;\r\n        if (this.isSelectedColor(hexColor, colors))\r\n            color = colors.find(s => s.hexColor === hexColor);\r\n         else\r\n            color = this.getEmptySelectColor(hexColor);\r\n\r\n        return color;\r\n    }\r\n\r\n    public isSelectedColor(hexColor: string, colors: SelectColor[]): boolean {\r\n        let isSelectedColor = false;\r\n        if (colors)\r\n            isSelectedColor = colors.some(s => s.hexColor === hexColor);\r\n\r\n        return isSelectedColor;\r\n    }\r\n\r\n\tpublic hexColorIsValid(hexColor: string): boolean {\r\n\t\treturn /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hexColor);\r\n\t}\r\n\r\n    public getEmptySelectColor(hexColor?: string): SelectColor {\r\n\t\treturn { hexColor, text: hexColor, value: null } as SelectColor;\r\n\t}\r\n}\r\n","import { Component, Input, forwardRef, ElementRef, OnInit, ViewChild, Provider } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SelectColor } from '@sowatech/shared/@types';\r\n\r\nimport { SwtColorPickerService } from './swt-color-picker.service';\r\nimport { ColorPickerConfiguration } from './swt-color-picker.types';\r\n\r\nconst noop = () => { };\r\n\r\nexport const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: Provider = {\r\n    provide: NG_VALUE_ACCESSOR,\r\n    useExisting: forwardRef(() => SwtColorPickerComponent),\r\n    multi: true\r\n};\r\n\r\n@Component({\r\n    selector: 'swt-color-picker',\r\n    templateUrl: './swt-color-picker.component.html',\r\n    styleUrls: ['./swt-color-picker.component.scss'],\r\n    providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\r\n    host: { '(document:click)': 'onDocumentClick($event)' },\r\n    standalone: false\r\n})\r\nexport class SwtColorPickerComponent implements ControlValueAccessor, OnInit {\r\n\r\n    @ViewChild('paintInput', { static: true }) public input: Element;\r\n\r\n    @Input() public required = false;\r\n    @Input('selectColors') public set _selectColors(value: SelectColor[]) {\r\n        if (value && value.length !== 0 && this.selectColors !== value) {\r\n            this.selectColors = value;\r\n            if (!this.selectedColor && this.required) this.selectedColor = value[0];\r\n        }\r\n    }\r\n\r\n    @Input('config') public set _config(value: ColorPickerConfiguration) {\r\n        if (value && this.config !== value)\r\n            this.config = value;\r\n    }\r\n\r\n    public get emptyText(): string {\r\n        return this.config.emptyText ? this.config.emptyText : $localize`:@@SwtColorPicker.NoColorChosen.msg.Text:Keine Farbe ausgewählt!`;\r\n    }\r\n    public get value(): string {\r\n        return this.innerValue;\r\n    }\r\n\r\n    public set value(v: string) {\r\n        if (v !== this.value) {\r\n            this.innerValue = v;\r\n            this.onChangeCallback(v);\r\n        }\r\n    }\r\n\r\n    public selectColors: SelectColor[];\r\n    public showColors = false;\r\n    public selectedColor: SelectColor = this.colorPickerService.getEmptySelectColor();\r\n    public config: ColorPickerConfiguration = new ColorPickerConfiguration();\r\n\r\n    //The internal data model\r\n    private innerValue = '';\r\n\r\n    constructor(\r\n        private elementRef: ElementRef,\r\n        private colorPickerService: SwtColorPickerService\r\n    ) { }\r\n\r\n    ngOnInit() {\r\n        this.initConfigDefaults();\r\n    }\r\n\r\n    public onDocumentClick(event: MouseEvent) {\r\n        const clickInComponent = this.elementRef.nativeElement.contains(event.target);\r\n        if (!clickInComponent)\r\n            this.showColors = false;\r\n\r\n    }\r\n\r\n    //From ControlValueAccessor interface\r\n    //Wird vom NgModel zur initialisierung verwendet!\r\n    public writeValue(value: string) {\r\n        if (value !== this.innerValue) {\r\n            this.innerValue = value;\r\n            this.setSelectedColor(value);\r\n            this.onChangeCallback(value);\r\n        }\r\n    }\r\n\r\n    public changeValue(selectedColor: SelectColor) {\r\n        if (this.config.returnHexCode) {\r\n            const hexColor = selectedColor?.hexColor ? selectedColor.hexColor.toUpperCase() : '';\r\n            this.writeValue(hexColor);\r\n        } else\r\n            this.writeValue(selectedColor.value);\r\n\r\n    }\r\n\r\n    //From ControlValueAccessor interface\r\n    public registerOnChange(fn: any) {\r\n        this.onChangeCallback = fn;\r\n    }\r\n\r\n    //From ControlValueAccessor interface\r\n    public registerOnTouched(fn: any) { }\r\n\r\n    public changeColor(hexColor: string): void {\r\n        const newSelectedItem = this.selectColors ? this.selectColors.find(s => s.hexColor == hexColor) : null;\r\n        this.changeValue(newSelectedItem);\r\n    }\r\n\r\n    public changeColorManual(hexColor: string): void {\r\n        const isValid = this.hexColorIsValid(hexColor);\r\n        if (isValid) {\r\n            const color = this.colorPickerService.getColorFromSelectColorsOrEmptyColor(hexColor, this.selectColors);\r\n            this.changeValue(color);\r\n        }\r\n    }\r\n\r\n    public hexColorIsValid(hexColor: string): boolean {\r\n        if (!this.required && !hexColor) return true;\r\n        else return this.colorPickerService.hexColorIsValid(hexColor);\r\n    }\r\n\r\n    public toggleColors(): void {\r\n        this.showColors = !this.showColors;\r\n    }\r\n\r\n    private initConfigDefaults() {\r\n        if (this.config.allowOnlyColorsFromSelect === undefined)\r\n            this.config.allowOnlyColorsFromSelect = false;\r\n\r\n        if (this.config.returnHexCode === undefined)\r\n            this.config.returnHexCode = true;\r\n\r\n    }\r\n\r\n    private setSelectedColor(value: string) {\r\n        if (this.selectColors) {\r\n            if (this.config.returnHexCode) {\r\n                this.selectedColor = this.selectColors.find(c => c.hexColor === value);\r\n                if (!this.selectedColor) this.selectedColor = this.colorPickerService.getEmptySelectColor(value);\r\n            } else\r\n                this.selectedColor = this.selectColors.find(c => c.value === value);\r\n\r\n        }\r\n    }\r\n\r\n    private onChangeCallback: (_: any) => void = noop;\r\n}\r\n","<div class=\"color-picker\">\r\n  <div class=\"form-control summary-info\" (click)=\"toggleColors()\">\r\n    @if (selectedColor?.hexColor) {\r\n      <span class=\"circle\" [ngStyle]=\"{ 'background': selectedColor.hexColor }\"></span>\r\n    } @else {\r\n      <span class=\"circle cross\"></span>\r\n    }\r\n\r\n    <div class=\"color-display\">\r\n      @if (config.returnHexCode) {\r\n        <p>{{ selectedColor?.hexColor?.length > 0 ? selectedColor.hexColor : emptyText }}</p>\r\n      } @else {\r\n        <p>\r\n          {{ selectedColor?.text ?? emptyText }}\r\n          @if (selectedColor?.hexColor) {\r\n            <span class=\"hexcode-label\">{{ selectedColor.hexColor }}</span>\r\n          }\r\n        </p>\r\n      }\r\n    </div>\r\n\r\n    <span>\r\n      <i class=\"fas\" [ngClass]=\"showColors ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\r\n    </span>\r\n  </div>\r\n  @if (showColors) {\r\n    <div style=\"position:relative\">\r\n      <div style=\"position:absolute;z-index:10;width: 100%;\">\r\n        <div class=\"opened\">\r\n          @if (selectColors?.length > 0) {\r\n            <ul class=\"colors\">\r\n              @if (!required) {\r\n                <li (click)=\"changeColor(null)\" title=\"Keine Farbe\"\r\n                  i18n-title=\"@@SwtColorPicker.NoColor.dsp.Tooltip\">\r\n                  <span class=\"circle cross\"></span>\r\n                  <span class=\"m-l-xs\">{{emptyText}}</span>\r\n                </li>\r\n              }\r\n              @for (paint of selectColors; track paint) {\r\n                <li (click)=\"changeColor(paint.hexColor)\" class=\"hex-code\"\r\n                  [title]=\"paint.text ?? paint.hexColor\">\r\n                  <span class=\"circle\" [ngStyle]=\"{ 'background': paint.hexColor }\"></span>\r\n                  <span class=\"m-l-xs\">{{paint.text ?? paint.hexColor}}</span>\r\n                </li>\r\n              }\r\n              @if (!config.allowOnlyColorsFromSelect) {\r\n                <li class=\"custom-color\">\r\n                  <label for=\"paint-input\">Hex Code</label>\r\n                  <div class=\"input-group\">\r\n                    <input id=\"paint-input\" #paintInput type=\"text\" class=\"form-control\" maxlength=\"7\"\r\n                      [value]=\"selectedColor?.hexColor ?? ''\" [required]=\"required\"\r\n                      (input)=\"changeColorManual(paintInput.value)\" (keydown.enter)=\"toggleColors()\">\r\n                    </div>\r\n                  </li>\r\n                }\r\n              </ul>\r\n            } @else {\r\n              <p i18n=\"@@SwtColorPicker.NoChoice.dsp.Label\">Keine Auswahl!</p>\r\n            }\r\n          </div>\r\n        </div>\r\n      </div>\r\n    }\r\n  </div>\r\n","import { DatePipe } from '@angular/common';\r\nimport { Component, Input, Inject, forwardRef, Output, EventEmitter, ViewChild, LOCALE_ID, OnInit, OnDestroy } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { I18nService } from '@sowatech/shared/utilities';\r\nimport moment from 'moment';\r\nimport { Subscription, noop } from 'rxjs';\r\n\r\n\r\nconst CLASS = 'SwtDateInput';\r\nexport const CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\r\n    provide: NG_VALUE_ACCESSOR,\r\n    useExisting: forwardRef(() => SwtDateInputComponent),\r\n    multi: true\r\n};\r\n\r\n@Component({\r\n    selector: 'swt-date-input',\r\n    templateUrl: './swt-date-input.component.html',\r\n    providers: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR],\r\n    styles: [`.input-group-addon{\r\n        border-left: 0px;\r\n    }\r\n    .invalid-date {\r\n        border-color: #a74058;\r\n    }\r\n    input.ng-touched.input-invalid-date{\r\n        border-right: 0px;\r\n    }\r\n    `],\r\n    standalone: false\r\n})\r\n\r\nexport class SwtDateInputComponent implements ControlValueAccessor, OnInit, OnDestroy {\r\n    constructor(\r\n        private datePipe: DatePipe,\r\n        @Inject(LOCALE_ID) public locale: string,\r\n        private i18n: I18nService\r\n    ) {\r\n    }\r\n\r\n    private subscriptions: Array<Subscription> = [];\r\n    ngOnInit() {\r\n        this.subscriptions.push(\r\n        );\r\n        this.setTranslationProps();\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        for (const s of this.subscriptions)\r\n            s.unsubscribe();\r\n\r\n    }\r\n\r\n    private valueType = ValueType.Undefined;\r\n    public errorMessage = '';\r\n    public isValid = true;\r\n    public languageIso: string;\r\n    private momentFormat: string;\r\n    private alternativeMomentFormat: string;\r\n    private dateIsoFormat = 'YYYY-MM-DD';\r\n    public dateString: string;\r\n    public dateInputError: DateInputError;\r\n    private pattern: string[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'Backspace', 'Enter', 'Shift', 'Tab', 'ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown'];\r\n    @Input() public placeholder = ''; // zu Beachten: Der Placeholder muss deutsch + englisches Format je nach Browser Einstellung sein\r\n    @Input() public dateFormat = '';\r\n    @Input() public name;\r\n    @Input() public autofocus;\r\n    @Input() public required: boolean;\r\n    @Input() public class;\r\n    @Input() public width = 100;\r\n    @Input() public maxDate: Date;\r\n    @Input() public minDate: Date;\r\n    @Input() public showErrorMessage = true;\r\n    @Input() public id: string;\r\n    @Output() public dateError = new EventEmitter<DateInputError>();\r\n    @Output() public focusLost = new EventEmitter<void>();\r\n\r\n    private setTranslationProps() {\r\n        if (this.dateFormat == '') {\r\n            switch (this.locale) {\r\n                case ('en'):\r\n                    this.dateFormat = 'MM/dd/yyyy';\r\n                    this.momentFormat = 'MM/DD/YYYY';\r\n                    this.alternativeMomentFormat = 'MMDDYYYY';\r\n                    this.placeholder = (this.placeholder == '') ? 'MM/dd/yyyy' : this.placeholder;\r\n                    this.pattern.push('/');\r\n                    break;\r\n                case ('de'):\r\n                default:\r\n                    this.dateFormat = 'dd.MM.yyyy';\r\n                    this.momentFormat = 'DD.MM.YYYY';\r\n                    this.alternativeMomentFormat = 'DDMMYYYY';\r\n                    this.placeholder = (this.placeholder == '') ? 'tt.MM.jjjj' : this.placeholder;\r\n                    this.pattern.push('.');\r\n                    break;\r\n            }\r\n        }\r\n    }\r\n\r\n    transformDateToString(date: Date) {\r\n        return this.datePipe.transform(date, this.dateFormat, '');\r\n    }\r\n\r\n    transformStringToDate(dateString: string) {\r\n        const date = this.transformStringToMoment(dateString).toDate();\r\n        return date;\r\n    }\r\n\r\n    transformStringToMoment(dateString: string) {\r\n        let currentMoment = moment(dateString, this.momentFormat, true);\r\n        if (!currentMoment.isValid())\r\n            currentMoment = moment(dateString, this.alternativeMomentFormat, true);\r\n\r\n\r\n        return currentMoment;\r\n    }\r\n\r\n    public dateMoment: moment.Moment = moment();\r\n\r\n    private onTouchedCallback: () => void = noop;\r\n    private onChangeCallback: (_: any) => void = noop;\r\n\r\n    get dateValue(): string {\r\n        if (this.dateMoment && this.dateMoment.isValid()) return this.transformDateToString(this.dateMoment.toDate());\r\n        else return undefined;\r\n    }\r\n    //set accessor including call the onchange callback\r\n    set dateValue(v: string) {\r\n        const currentMoment = this.transformStringToMoment(v);\r\n        this.checkValidation(v);\r\n        if (this.isValid) {\r\n            this.dateMoment = currentMoment.clone();\r\n            const changeValue = this.dateMoment.format(this.dateIsoFormat);\r\n            this.resetErrorMessage();\r\n            this.onChangeCallback(changeValue);\r\n        } else\r\n            this.onChangeCallback('');\r\n\r\n    }\r\n\r\n    private resetErrorMessage() {\r\n        this.dateInputError = DateInputError.None;\r\n        this.errorMessage = '';\r\n\r\n    }\r\n\r\n    onBlur() {\r\n        this.onTouchedCallback();\r\n        this.focusLost.emit();\r\n    }\r\n\r\n    //From ControlValueAccessor interface\r\n    writeValue(value: DateIso | Date) {\r\n        if (value != undefined) {\r\n            this.valueType = (typeof (value) === 'string') ? ValueType.DateString : ValueType.DateObject;\r\n            const valueMoment = this.isIsoFormat(value) ? moment(value, this.dateIsoFormat, true) : moment(value, this.momentFormat, true);\r\n            if (!this.dateMoment || this.dateMoment.diff(valueMoment) != 0) {\r\n                this.dateMoment = valueMoment.clone();\r\n                this.isValid = this.dateMoment.isValid();\r\n            }\r\n        }\r\n        else\r\n            if (this.dateMoment != undefined) this.dateMoment = undefined;\r\n\r\n    }\r\n\r\n    private isIsoFormat(value: DateIso | Date) {\r\n        if (this.valueType == ValueType.DateString) {\r\n            const isIsoFormat = moment(value, this.dateIsoFormat, true).isValid();\r\n            return isIsoFormat;\r\n        }\r\n        else return false;\r\n    }\r\n\r\n    //From ControlValueAccessor interface\r\n    registerOnChange(fn: any) {\r\n        this.onChangeCallback = fn;\r\n    }\r\n\r\n    //From ControlValueAccessor interface\r\n    registerOnTouched(fn: any) {\r\n        this.onTouchedCallback = fn;\r\n    }\r\n\r\n    public onKeyDown(event: KeyboardEvent) {\r\n        if (this.pattern.find(p => p == event.key)) return;\r\n        else event.preventDefault();\r\n    }\r\n\r\n    private checkValidation(dateValue: string) {\r\n        if (!this.checkDateIsValid(dateValue))\r\n            this.dateInputError = DateInputError.DateInvalidError;\r\n\r\n        else\r\n            this.dateInputError = this.checkDateIntervallisValid(dateValue);\r\n\r\n        this.isValid = this.dateInputError == DateInputError.None;\r\n        this.errorMessage = this.showErrorMessage ? this.getErrorMessage() : '';\r\n        if (!this.isValid) this.dateError.emit(this.dateInputError);\r\n    }\r\n\r\n    private checkDateIntervallisValid(dateValue: string): DateInputError {\r\n        const minDateMoment = moment(this.minDate).startOf('day');\r\n        const maxDateMoment = moment(this.maxDate).startOf('day');\r\n        // let date = this.transformStringToDate(dateValue)\r\n        const dateMoment = this.transformStringToMoment(dateValue).startOf('day');\r\n        if (!this.maxDate && !this.minDate)\r\n            return DateInputError.None;\r\n\r\n        else if (this.minDate && this.maxDate)\r\n            return this.checkForDateIntervallError(minDateMoment, maxDateMoment, dateMoment);\r\n\r\n        else if (this.maxDate)\r\n            return this.checkForMaxDateError(maxDateMoment, dateMoment);\r\n\r\n        else if (this.minDate)\r\n            return this.checkForMinDateError(minDateMoment, dateMoment);\r\n        else return null;\r\n\r\n    }\r\n\r\n    public checkForMaxDateError(maxDateMoment: moment.Moment, dateMoment: moment.Moment): DateInputError {\r\n        if (maxDateMoment < dateMoment)\r\n            return DateInputError.MaxDateError;\r\n\r\n        else return DateInputError.None;\r\n    }\r\n\r\n    private checkForMinDateError(minDateMoment: moment.Moment, dateMoment: moment.Moment): DateInputError {\r\n        if (minDateMoment > dateMoment)\r\n            return DateInputError.MinDateError;\r\n\r\n        else return DateInputError.None;\r\n    }\r\n\r\n    private checkForDateIntervallError(minDateMoment: moment.Moment, maxDateMoment: moment.Moment, dateMoment: moment.Moment): DateInputError {\r\n        if (maxDateMoment < dateMoment && dateMoment > minDateMoment)\r\n            return DateInputError.DateIntervallError;\r\n\r\n        else return DateInputError.None;\r\n    }\r\n\r\n    private getErrorMessage(): string {\r\n        switch (this.dateInputError) {\r\n            case (DateInputError.None):\r\n                return '';\r\n            case (DateInputError.DateInvalidError):\r\n                return $localize`:@@SwtDateInput.InvalidDatetime.msg.Text:Das Datum ist ungültig.`;\r\n            case (DateInputError.MinDateError):\r\n                return this.i18n.replace($localize`:@@SwtDateInput.DateInPast.msg.Text:Das Datum liegt zu weit in der Vergangen. Bitte ein Datem nach dem '$0' auswählen.`, [this.transformDateToString(this.minDate)]);//'Das Datum liegt zu weit in der Vergangenheit. Bitte ein Datum nach dem '\r\n\r\n            case (DateInputError.MaxDateError):\r\n                return this.i18n.replace($localize`:@@SwtDateInput.DateInFuture.msg.Text:Das Datum liegt zu weit in der Zukunft. Bitte ein Datum vor dem '$0' auswählen.`, [this.transformDateToString(this.maxDate)]);\r\n\r\n            case (DateInputError.DateIntervallError):\r\n                return this.i18n.replace($localize`:@@SwtDateInput.ChooseDateBetween.msg.Text:Bitte ein Datum zwischen dem '$0' und dem '$1' auswählen.`, [this.transformDateToString(this.minDate), this.transformDateToString(this.maxDate)]);\r\n            default:\r\n                return $localize`:@@SwtDateInput.UnknownError.msg.Text:Unbekannter Fehler`;\r\n        }\r\n    }\r\n\r\n    private checkDateIsValid(dateValue: string): boolean {\r\n        return this.transformStringToMoment(dateValue).isValid();\r\n    }\r\n}\r\n\r\nenum ValueType {\r\n    Undefined,\r\n    DateString,\r\n    DateObject\r\n}\r\n\r\nenum DateInputError {\r\n    None,\r\n    DateInvalidError,\r\n    MinDateError,\r\n    MaxDateError,\r\n    DateIntervallError\r\n}\r\n\r\ntype DateIso = string;\r\n","<div class=\"input-group\" [style.width.%]=\"100\">\r\n  <input [class]=\"class\" [name]=\"name\" [attr.name]=\"name\" [attr.data-cy-name]=\"name\" [placeholder]=\"placeholder\" #ctrlDateInput=\"ngModel\"\r\n    [(ngModel)]=\"dateValue\" class=\"form-control\" [autofocus]=\"autofocus\" [required]=\"required\" type=\"text\" [id]=\"id\"\r\n    [ngClass]=\"isValid?  'ng-valid' : 'ng-invalid input-invalid-date'\" (blur)=\"onBlur()\" (keydown)=\"onKeyDown($event)\" [title]=\"errorMessage\" />\r\n    @if (!isValid && showErrorMessage && ctrlDateInput.touched) {\r\n      <span    class=\"text-danger input-group-addon invalid-date\" >\r\n        <i class=\"fas fa-exclamation-triangle\" [title]=\"errorMessage\"></i></span>\r\n      }\r\n    </div>\r\n\r\n","import { Component, Input, OnInit, forwardRef, ViewEncapsulation,  ViewChild } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { LoggerService } from '@sowatech/shared/logger';\r\nimport { QuillEditorComponent, QuillModule } from 'ngx-quill';\r\nimport Quill, { type Parchment } from 'quill';\r\n\r\nimport { IQuillConfiguration, IQuillToolbarConfiguration, QuillToolbarDefaultType } from './swt-quill.types';\r\n\r\nconst noop = () => { };\r\n\r\nexport const SWT_QUILL_EDITOR_VALUE_ACCESSOR: any = {\r\n    provide: NG_VALUE_ACCESSOR,\r\n    useExisting: forwardRef(() => SwtQuillEditorComponent),\r\n    multi: true\r\n};\r\n\r\n@Component({\r\n    selector: 'swt-quill-editor',\r\n    template: `\r\n    <quill-editor #textbox [attr.name]=\"name\" name=\"{{name}}\"\r\n        [(ngModel)]=\"value\" [maxlength]=\"maxLength\" [minlength]=\"minLength\" [required]=\"required\"\r\n        [placeholder]=\"placeholder?placeholder:''\" [modules]=\"quillModules\"\r\n        [readOnly]=\"config?.readOnly\" [format]=\"config?.format\">\r\n    </quill-editor>\r\n   `,\r\n    providers: [SWT_QUILL_EDITOR_VALUE_ACCESSOR],\r\n    styleUrls: ['./swt-quill-custom.scss'],\r\n    encapsulation: ViewEncapsulation.None,\r\n    standalone: false\r\n})\r\n\r\n\r\nexport class SwtQuillEditorComponent implements OnInit, ControlValueAccessor {\r\n    constructor(\r\n        private logger: LoggerService\r\n    ) {\r\n    }\r\n\r\n    private _config: IQuillConfiguration;\r\n    public get config() { return this._config; }\r\n\r\n    @Input() public set config(config: IQuillConfiguration) {\r\n        if (config != this._config) {\r\n            this._config = this.prepareConfig(config);\r\n            this.setQuillModules();\r\n        }\r\n    }\r\n    @Input() public name: string;\r\n    @Input() public maxLength: number;\r\n    @Input() public minLength: number;\r\n    @Input() public required: boolean;\r\n    @Input() public placeholder: string;\r\n    @ViewChild('textbox', { static: true }) public textbox: QuillEditorComponent;\r\n\r\n    ngOnInit() {\r\n       this.configureQuillInlineStyles();\r\n    }\r\n\r\n    private innerValue: string;\r\n\r\n    public get value(): string {\r\n        return this.innerValue;\r\n    }\r\n\r\n    public set value(v: string) {\r\n        if (v !== this.value) {\r\n            this.innerValue = v;\r\n            this.onChangeCallback(v);\r\n        }\r\n    }\r\n\r\n\r\n    //Placeholders for the callbacks which are later provided by the Control Value Accessor\r\n    private onTouchedCallback: () => void = noop;\r\n    private onChangeCallback: (_: any) => void = noop;\r\n\r\n    //From ControlValueAccessor interface\r\n    public writeValue(v: string) {\r\n        if (v !== this.value)\r\n            this.innerValue = v;\r\n            //this.checkBox.checked = v;\r\n\r\n    }\r\n\r\n    //From ControlValueAccessor interface\r\n    public registerOnChange(fn: any) {\r\n        this.onChangeCallback = fn;\r\n    }\r\n\r\n    //From ControlValueAccessor interface\r\n    public registerOnTouched(fn: any) {\r\n        this.onTouchedCallback = fn;\r\n    }\r\n\r\n    // configure Quill to use inline styles so the email's format properly\r\n    private configureQuillInlineStyles() {\r\n        for (const styleName of ['align', 'background', 'color', 'direction', 'font', 'size']) {\r\n            const style = Quill.imports[`attributors/style/${styleName}`] as Parchment.RegistryDefinition;\r\n            Quill.register(style, true);\r\n        }\r\n    }\r\n\r\n    public quillModules: QuillModule;\r\n    private setQuillModules() {\r\n        if (this.config) {\r\n            if (this.config.modules)\r\n                this.quillModules = this.config.modules;\r\n\r\n            else\r\n                this.quillModules = { toolbar: this.getQuillToolbar(this.config.toolbar) };\r\n\r\n        }\r\n    }\r\n\r\n    private getQuillToolbar(toolbarConfiguration: QuillToolbarDefaultType | IQuillToolbarConfiguration) {\r\n        if (toolbarConfiguration) {\r\n            const toolbar = [];\r\n            const toolbarConfig = typeof (toolbarConfiguration) === 'string' ?\r\n                this.getDefaultQuillToolbar(toolbarConfiguration) : toolbarConfiguration;\r\n            if (toolbarConfig.decorators) toolbar.push(toolbarConfig.decorators);\r\n            if (toolbarConfig.quotes) toolbar.push(toolbarConfig.quotes);\r\n            if (toolbarConfig.headers) toolbar.push(toolbarConfig.headers.map(h => ({ header: h })));\r\n            if (toolbarConfig.lists) toolbar.push(toolbarConfig.lists.map(l => ({ list: l })));\r\n            if (toolbarConfig.scripts) toolbar.push(toolbarConfig.scripts.map(s => ({ script: s })));\r\n            if (toolbarConfig.sizes) toolbar.push([{ size: toolbarConfig.sizes }]);\r\n            if (toolbarConfig.colors) toolbar.push([{ color: toolbarConfig.colors }]);\r\n            if (toolbarConfig.backgrounds) toolbar.push([{ background: toolbarConfig.backgrounds }]);\r\n            if (toolbarConfig.fonts) toolbar.push([{ font: toolbarConfig.fonts }]);\r\n            if (toolbarConfig.aligns) toolbar.push([{ align: toolbarConfig.aligns }]);\r\n            if (toolbarConfig.clean) toolbar.push(['clean']);\r\n            return toolbar;\r\n        }\r\n        return null;\r\n    }\r\n\r\n    private prepareConfig(config: IQuillConfiguration): IQuillConfiguration {\r\n        const configCopy = { ...config };\r\n        if (!configCopy.format) configCopy.format = 'html';\r\n        if (!configCopy.theme) configCopy.theme = 'snow';\r\n        return configCopy;\r\n    }\r\n\r\n    public getDefaultQuillToolbar(defaultType: QuillToolbarDefaultType) {\r\n        switch (defaultType) {\r\n            case 'reduced':\r\n                return SwtQuillEditorComponent.getReducedQuillToolbar();\r\n            case 'full':\r\n                return SwtQuillEditorComponent.getFullQuillToolbar();\r\n        }\r\n    }\r\n\r\n    public static getReducedQuillToolbar(): IQuillToolbarConfiguration {\r\n        return {\r\n            clean: true,\r\n            decorators: ['bold', 'italic', 'underline', 'strike'],\r\n            lists: ['ordered', 'bullet'],\r\n            sizes: ['10px', false, '18px', '32px'],\r\n            colors: [],\r\n            backgrounds: [],\r\n            aligns: [false, 'center', 'right', 'justify'],\r\n        };\r\n    }\r\n\r\n    public static getFullQuillToolbar(): IQuillToolbarConfiguration {\r\n        return {\r\n            clean: true,\r\n            decorators: ['bold', 'italic', 'underline', 'strike'],\r\n            quotes: ['blockquote'],\r\n            headers: [1, 2],\r\n            lists: ['ordered', 'bullet'],\r\n            scripts: ['sub', 'super'],\r\n            directions: ['rtl'],\r\n            sizes: ['10px', false, '18px', '32px'],\r\n            colors: [],\r\n            backgrounds: [],\r\n            fonts: [],\r\n            aligns: [false, 'center', 'right', 'justify'],\r\n        };\r\n    }\r\n}\r\n","import { CommonModule, DatePipe } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { LayoutModule } from '@sowatech/shared/layout';\r\nimport { NoDblClickModule } from '@sowatech/shared/no-double-click';\r\nimport { SwitchTemplateModule } from '@sowatech/shared/template';\r\nimport { NgSelectAriaLabelDirective } from '@sowatech/shared/utilities';\r\nimport { KeyboardShortcutsModule } from 'ng-keyboard-shortcuts';\r\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\r\nimport { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\r\nimport { QuillModule } from 'ngx-quill';\r\n\r\n\r\nimport { DebounceDirective } from './debounce.directive';\r\nimport { DomChangeDirective } from './dom-change.directive';\r\nimport { IBoxModule } from './ibox/ibox.module';\r\nimport { LoadingDirective } from './loading.directive';\r\nimport { MultiLRUComponent } from './multi-lru.component';\r\nimport { SwtCheckboxWrapper } from './swt-checkbox-wrapper.component';\r\nimport { SwtCheckboxComponent } from './swt-checkbox.component';\r\nimport { SwtColorPickerComponent } from './swt-color-picker/swt-color-picker.component';\r\nimport { SwtColorPickerService } from './swt-color-picker/swt-color-picker.service';\r\nimport { SwtDateInputComponent } from './swt-date-input/swt-date-input.component';\r\nimport { SwtDateIntervalComponent } from './swt-date-interval/swt-date-interval.component';\r\nimport { SwtDateIntervalInspiniaComponent, SwtDateIntervalSneatComponent } from './swt-date-interval/templates/swt-date-interval.templates';\r\nimport { SwtDatePickerComponent } from './swt-date-picker.component';\r\nimport { SwtDateRangePickerComponent } from './swt-date-range-picker.component';\r\nimport { DropDownContainerComponent } from './swt-dropdown-container/swt-dropdown-container.component';\r\nimport { SWTHighlightSearch } from './swt-highlight-search.pipe';\r\nimport { LoadingIndicatorComponent } from './swt-loading-indicator.component';\r\nimport { LRUComponent } from './swt-lru.component';\r\nimport { SwtPopoverComponent } from './swt-popover.component';\r\nimport { SwtQuillEditorComponent } from './swt-quill/swt-quill-editor.component';\r\nimport { RatingIconsComponent } from './swt-rating-icons.component';\r\nimport { WizardStepComponent } from './swt-wizard/swt-wizard-step.component';\r\nimport { WizardComponent } from './swt-wizard/swt-wizard.component';\r\nimport { SwtLruInspiniaComponent, SwtLruSneatComponent } from './templates/swt-lru.template';\r\nimport { ToolBarContainerComponent } from './toolbar-container.component';\r\nimport { UlNavTabs } from './ul-nav-tabs.component';\r\n\r\nexport const QuillModuleForRoot = QuillModule.forRoot();\r\n\r\n@NgModule({\r\n    imports: [\r\n        CommonModule,\r\n        FormsModule,\r\n        SwitchTemplateModule,\r\n        NgxMaskDirective,\r\n        NgxMaskPipe,\r\n        NoDblClickModule,\r\n        KeyboardShortcutsModule,\r\n        QuillModuleForRoot,\r\n        IBoxModule,\r\n        BsDropdownModule,\r\n        LayoutModule,\r\n        NgSelectModule,\r\n        NgSelectAriaLabelDirective\r\n    ],\r\n    declarations: [\r\n        DropDownContainerComponent,\r\n        SwtDatePickerComponent,\r\n        SwtDateRangePickerComponent,\r\n        SwtDateInputComponent,\r\n        SwtPopoverComponent,\r\n        SwtColorPickerComponent,\r\n        RatingIconsComponent,\r\n        ToolBarContainerComponent,\r\n\r\n        WizardComponent, WizardStepComponent,\r\n        DebounceDirective,\r\n        SWTHighlightSearch,\r\n        SwtQuillEditorComponent,\r\n        UlNavTabs,\r\n        DomChangeDirective,\r\n\r\n        SwtCheckboxWrapper,\r\n        SwtCheckboxComponent,\r\n\r\n        LRUComponent,\r\n        SwtLruSneatComponent,\r\n        SwtLruInspiniaComponent,\r\n\r\n        MultiLRUComponent,\r\n\r\n        LoadingIndicatorComponent,\r\n        LoadingDirective,\r\n\r\n        SwtDateIntervalComponent,\r\n        SwtDateIntervalSneatComponent,\r\n        SwtDateIntervalInspiniaComponent\r\n    ],\r\n    exports: [\r\n        DropDownContainerComponent,\r\n        SwtDatePickerComponent,\r\n        SwtDateRangePickerComponent,\r\n        SwtPopoverComponent,\r\n        SwtColorPickerComponent,\r\n        SwtDateInputComponent,\r\n        RatingIconsComponent,\r\n        LoadingIndicatorComponent,\r\n        LoadingDirective,\r\n        SwtCheckboxWrapper,\r\n        SwtCheckboxComponent,\r\n        WizardComponent, WizardStepComponent,\r\n        DebounceDirective,\r\n        LRUComponent,\r\n        MultiLRUComponent,\r\n        ToolBarContainerComponent,\r\n        SwtQuillEditorComponent,\r\n        UlNavTabs,\r\n        DomChangeDirective,\r\n        IBoxModule,\r\n        SwtDateIntervalComponent\r\n    ],\r\n    providers: [DatePipe, SwtColorPickerService, provideNgxMask()]\r\n})\r\nexport class SwtControlsModule { }\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","noop","ValueType","i2","i1","i4","i5.DropDownContainerComponent","i6.SwtDatePickerComponent","i7.SwtDateRangePickerComponent","i1.SwtDateIntervalStoreHelper","i4.SwtDateIntervalSneatComponent","i4.SwtDateIntervalInspiniaComponent","i5.IBoxSneatComponent","i5.IBoxInspiniaComponent","i2.SwtCheckboxWrapper","i4.SWTHighlightSearch","i3.SwtLruSneatComponent","i3.SwtLruInspiniaComponent","debounceTime","i2.DomChangeDirective","CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR","i1.SwtColorPickerService"],"mappings":"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"}