{"version":3,"file":"vgr-komponentkartan.mjs","sources":["../../../projects/komponentkartan/src/lib/utils/guid.ts","../../../projects/komponentkartan/src/lib/controls/icon/icon.component.ts","../../../projects/komponentkartan/src/lib/controls/icon/icon.component.html","../../../projects/komponentkartan/src/lib/controls/close-button/close-button.component.ts","../../../projects/komponentkartan/src/lib/controls/close-button/close-button.component.html","../../../projects/komponentkartan/src/lib/controls/action-panel/action-panel.component.ts","../../../projects/komponentkartan/src/lib/controls/action-panel/action-panel.component.html","../../../projects/komponentkartan/src/lib/controls/textarea/textarea.component.ts","../../../projects/komponentkartan/src/lib/controls/textarea/textarea.component.html","../../../projects/komponentkartan/src/lib/utils/map-to-class-string.ts","../../../projects/komponentkartan/src/lib/controls/loader/loader.component.ts","../../../projects/komponentkartan/src/lib/controls/loader/loader.component.html","../../../projects/komponentkartan/src/lib/controls/button/button.component.ts","../../../projects/komponentkartan/src/lib/controls/button/button.component.html","../../../projects/komponentkartan/src/lib/controls/card/card-column.component.ts","../../../projects/komponentkartan/src/lib/controls/card/card.component.ts","../../../projects/komponentkartan/src/lib/controls/card/card.component.html","../../../projects/komponentkartan/src/lib/controls/card/card-header.component.ts","../../../projects/komponentkartan/src/lib/pipes/errorMessagePipe.ts","../../../projects/komponentkartan/src/lib/controls/checkbox/checkbox.component.ts","../../../projects/komponentkartan/src/lib/controls/checkbox/checkbox.component.html","../../../projects/komponentkartan/src/lib/controls/lock-button/lock-button.component.ts","../../../projects/komponentkartan/src/lib/controls/lock-button/lock-button.component.html","../../../projects/komponentkartan/src/lib/controls/save-cancel/save-cancel.component.ts","../../../projects/komponentkartan/src/lib/controls/save-cancel/save-cancel.component.html","../../../projects/komponentkartan/src/lib/controls/radioGroup/radioGroup.component.ts","../../../projects/komponentkartan/src/lib/controls/radioGroup/radioGroup.component.html","../../../projects/komponentkartan/src/lib/controls/radiobutton-group/radiobutton-item.component.ts","../../../projects/komponentkartan/src/lib/controls/radiobutton-group/radiobutton-item.component.html","../../../projects/komponentkartan/src/lib/controls/radiobutton-group/radiobutton-group.component.ts","../../../projects/komponentkartan/src/lib/controls/radiobutton-group/radiobutton-group.component.html","../../../projects/komponentkartan/src/lib/services/modalService.ts","../../../projects/komponentkartan/src/lib/controls/modal/modal.component.ts","../../../projects/komponentkartan/src/lib/controls/modal/modal.component.html","../../../projects/komponentkartan/src/lib/controls/input/input.component.ts","../../../projects/komponentkartan/src/lib/controls/input/input.component.html","../../../projects/komponentkartan/src/lib/animation.ts","../../../projects/komponentkartan/src/lib/pipes/truncatePipe.ts","../../../projects/komponentkartan/src/lib/controls/card/cardSection.component.ts","../../../projects/komponentkartan/src/lib/controls/card/cardSection.component.html","../../../projects/komponentkartan/src/lib/controls/titleValue/titleValue.component.ts","../../../projects/komponentkartan/src/lib/controls/titleValue/titleValue.component.html","../../../projects/komponentkartan/src/lib/controls/titleValue/titleValueLayout.component.ts","../../../projects/komponentkartan/src/lib/controls/titleValue/titleValueContainer/titleValueContainer.component.ts","../../../projects/komponentkartan/src/lib/controls/titleValue/titleValueContainer/titleValueContainer.component.html","../../../projects/komponentkartan/src/lib/controls/titleValue/titleValueHeading/titleValueHeading.component.ts","../../../projects/komponentkartan/src/lib/controls/titleValue/titleValueHeading/titleValueHeading.component.html","../../../projects/komponentkartan/src/lib/controls/skeleton-loader/skeleton-loader.component.ts","../../../projects/komponentkartan/src/lib/controls/skeleton-loader/skeleton-loader.component.html","../../../projects/komponentkartan/src/lib/controls/menu/menu-item-base.ts","../../../projects/komponentkartan/src/lib/controls/menu/submenu.component.ts","../../../projects/komponentkartan/src/lib/controls/menu/submenu.component.html","../../../projects/komponentkartan/src/lib/controls/menu/menu.component.ts","../../../projects/komponentkartan/src/lib/controls/menu/menu.component.html","../../../projects/komponentkartan/src/lib/controls/menu/menu-item.component.ts","../../../projects/komponentkartan/src/lib/controls/menu/menu-item.component.html","../../../projects/komponentkartan/src/lib/controls/menu/menu-separator.component.ts","../../../projects/komponentkartan/src/lib/controls/ring-with-text/ring-with-text.component.ts","../../../projects/komponentkartan/src/lib/controls/ring-with-text/ring-with-text.component.html","../../../projects/komponentkartan/src/lib/controls/loginInformation/loginInformation.component.ts","../../../projects/komponentkartan/src/lib/controls/loginInformation/loginInformation.component.html","../../../projects/komponentkartan/src/lib/controls/headerMenu/headerMenu.component.ts","../../../projects/komponentkartan/src/lib/controls/headerMenu/headerMenu.component.html","../../../projects/komponentkartan/src/lib/controls/header/header.component.ts","../../../projects/komponentkartan/src/lib/controls/header/header.component.html","../../../projects/komponentkartan/src/lib/controls/scrollbar/scrollbar.component.ts","../../../projects/komponentkartan/src/lib/controls/scrollbar/scrollbar.component.html","../../../projects/komponentkartan/src/lib/controls/menu/sidebar-menu.component.ts","../../../projects/komponentkartan/src/lib/controls/menu/sidebar-menu.component.html","../../../projects/komponentkartan/src/lib/controls/panel/panel.component.ts","../../../projects/komponentkartan/src/lib/controls/panel/panel.component.html","../../../projects/komponentkartan/src/lib/controls/panel/panel-container.component.ts","../../../projects/komponentkartan/src/lib/services/page-header-height.service.ts","../../../projects/komponentkartan/src/lib/controls/page/page.component.ts","../../../projects/komponentkartan/src/lib/controls/page/page.component.html","../../../projects/komponentkartan/src/lib/controls/page-header/page-header.component.ts","../../../projects/komponentkartan/src/lib/controls/page-header/page-header.component.html","../../../projects/komponentkartan/src/lib/controls/page-body/page-body.component.ts","../../../projects/komponentkartan/src/lib/controls/page-body/page-body.component.html","../../../projects/komponentkartan/src/lib/controls/page-block/page-block.component.ts","../../../projects/komponentkartan/src/lib/controls/page-block/page-block.component.html","../../../projects/komponentkartan/src/lib/controls/expandableDiv/expandableDiv.component.ts","../../../projects/komponentkartan/src/lib/controls/expandableDiv/expandableDiv.component.html","../../../projects/komponentkartan/src/lib/controls/expandableDiv/expandableDiv-header.component.ts","../../../projects/komponentkartan/src/lib/controls/expandableDiv/expandableDiv-content.component.ts","../../../projects/komponentkartan/src/lib/controls/modal/modal-content.component.ts","../../../projects/komponentkartan/src/lib/controls/modal/modal-header.component.ts","../../../projects/komponentkartan/src/lib/controls/modal/modal-footer.component.ts","../../../projects/komponentkartan/src/lib/controls/table/table.component.ts","../../../projects/komponentkartan/src/lib/controls/table/table.component.html","../../../projects/komponentkartan/src/lib/controls/table/table-row-column.component.ts","../../../projects/komponentkartan/src/lib/controls/table/table-header-column.component.ts","../../../projects/komponentkartan/src/lib/controls/table/table-row.component.ts","../../../projects/komponentkartan/src/lib/controls/table/table-header.component.ts","../../../projects/komponentkartan/src/lib/controls/filter-tag/filter-tag.component.ts","../../../projects/komponentkartan/src/lib/controls/filter-tag/filter-tag.component.html","../../../projects/komponentkartan/src/lib/controls/filter-tag/filter-tag-group.component.ts","../../../projects/komponentkartan/src/lib/controls/filter-tag/filter-tag-group.component.html","../../../projects/komponentkartan/src/lib/controls/scroll-to-top/scroll-to-top.component.ts","../../../projects/komponentkartan/src/lib/controls/scroll-to-top/scroll-to-top.component.html","../../../projects/komponentkartan/src/lib/controls/search-result/search-result.component.ts","../../../projects/komponentkartan/src/lib/controls/search-result/search-result.component.html","../../../projects/komponentkartan/src/lib/controls/toggle-button/toggle-button.component.ts","../../../projects/komponentkartan/src/lib/controls/toggle-button/toggle-button.component.html","../../../projects/komponentkartan/src/lib/controls/toggle-button/toggle-button-group.component.ts","../../../projects/komponentkartan/src/lib/controls/toggle-button/toggle-button-group.component.html","../../../projects/komponentkartan/src/lib/controls/tab-button/tab-button.component.ts","../../../projects/komponentkartan/src/lib/controls/tab-button/tab-button.component.html","../../../projects/komponentkartan/src/lib/controls/tab-button/tab-management.service.ts","../../../projects/komponentkartan/src/lib/controls/tab-button/tab-button-group.component.ts","../../../projects/komponentkartan/src/lib/controls/tab-button/tab-button-group.component.html","../../../projects/komponentkartan/src/lib/controls/pagination/pagination-management.service.ts","../../../projects/komponentkartan/src/lib/controls/pagination/pagination.component.ts","../../../projects/komponentkartan/src/lib/controls/pagination/pagination.component.html","../../../projects/komponentkartan/src/lib/controls/dropdown-select/dropdown-item.component.ts","../../../projects/komponentkartan/src/lib/controls/dropdown-select/dropdown-item.component.html","../../../projects/komponentkartan/src/lib/controls/dropdown-select/dropdown-select.component.ts","../../../projects/komponentkartan/src/lib/controls/dropdown-select/dropdown-select.component.html","../../../projects/komponentkartan/src/lib/controls/datepicker/datepicker-item.component.ts","../../../projects/komponentkartan/src/lib/controls/datepicker/datepicker-item.component.html","../../../projects/komponentkartan/src/lib/controls/datepicker/datepicker.interface.ts","../../../projects/komponentkartan/src/lib/controls/datepicker/datepicker.component.ts","../../../projects/komponentkartan/src/lib/controls/datepicker/datepicker.component.html","../../../projects/komponentkartan/src/lib/controls/combobox/combobox-item.component.ts","../../../projects/komponentkartan/src/lib/controls/combobox/combobox-item.component.html","../../../projects/komponentkartan/src/lib/controls/combobox/combobox.component.ts","../../../projects/komponentkartan/src/lib/controls/combobox/combobox.component.html","../../../projects/komponentkartan/src/lib/models/notificationType.model.ts","../../../projects/komponentkartan/src/lib/models/expandableRow.model.ts","../../../projects/komponentkartan/src/lib/pipes/filterPipe.ts","../../../projects/komponentkartan/src/lib/pipes/safePipe.ts","../../../projects/komponentkartan/src/lib/pipes/currency.pipe.ts","../../../projects/komponentkartan/src/lib/pipes/hsaid.pipe.ts","../../../projects/komponentkartan/src/lib/pipes/personnummer.pipe.ts","../../../projects/komponentkartan/src/lib/pipes/postnummer.pipe.ts","../../../projects/komponentkartan/src/lib/services/browserDetector.ts","../../../projects/komponentkartan/src/lib/controls/sort-arrow/sort-arrow.component.ts","../../../projects/komponentkartan/src/lib/controls/sort-arrow/sort-arrow.component.html","../../../projects/komponentkartan/src/lib/controls/grid/grid-header-column.component.ts","../../../projects/komponentkartan/src/lib/controls/grid/grid-header-column.component.html","../../../projects/komponentkartan/src/lib/controls/grid/grid-header.component.ts","../../../projects/komponentkartan/src/lib/controls/grid/grid-header.component.html","../../../projects/komponentkartan/src/lib/controls/grid/grid-content.component.ts","../../../projects/komponentkartan/src/lib/controls/notification/notification.component.ts","../../../projects/komponentkartan/src/lib/controls/notification/notification.component.html","../../../projects/komponentkartan/src/lib/controls/grid/grid.service.ts","../../../projects/komponentkartan/src/lib/controls/grid/grid-row.component.ts","../../../projects/komponentkartan/src/lib/controls/grid/grid-row.component.html","../../../projects/komponentkartan/src/lib/controls/grid/grid-header-toolbar.component.ts","../../../projects/komponentkartan/src/lib/controls/grid/grid.component.ts","../../../projects/komponentkartan/src/lib/controls/grid/grid.component.html","../../../projects/komponentkartan/src/lib/controls/grid/grid-column.component.ts","../../../projects/komponentkartan/src/lib/controls/grid/grid-column.component.html","../../../projects/komponentkartan/src/lib/controls/editable-table/editable-table.service.ts","../../../projects/komponentkartan/src/lib/controls/editable-table/editable-table-header-column.component.ts","../../../projects/komponentkartan/src/lib/controls/editable-table/editable-table-header.component.ts","../../../projects/komponentkartan/src/lib/controls/editable-table/editable-table-column.component.ts","../../../projects/komponentkartan/src/lib/controls/editable-table/editable-table-row.component.ts","../../../projects/komponentkartan/src/lib/controls/editable-table/editable-table.component.ts","../../../projects/komponentkartan/src/lib/controls/editable-table/editable-table.component.html","../../../projects/komponentkartan/src/lib/controls/checkbox/checkbox-group.component.ts","../../../projects/komponentkartan/src/lib/controls/checkbox/checkbox-group.component.html","../../../projects/komponentkartan/src/lib/controls/selectablelist/selectablelist.header.component.ts","../../../projects/komponentkartan/src/lib/controls/selectablelist/selectablelist.service.ts","../../../projects/komponentkartan/src/lib/controls/selectablelist/selectablelist.row.component.ts","../../../projects/komponentkartan/src/lib/controls/selectablelist/selectablelist.component.ts","../../../projects/komponentkartan/src/lib/controls/selectablelist/selectablelist.component.html","../../../projects/komponentkartan/src/lib/controls/selectablelist/selectablelist.header-column.component.ts","../../../projects/komponentkartan/src/lib/controls/selectablelist/selectablelist.column.component.ts","../../../projects/komponentkartan/src/lib/controls/icon/icon.module.ts","../../../projects/komponentkartan/src/lib/komponentkartan.module.ts","../../../projects/komponentkartan/src/public_api.ts","../../../projects/komponentkartan/src/vgr-komponentkartan.ts"],"sourcesContent":["export class Guid {\r\n    static newGuid() {\r\n        const result = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n            const r = Math.random() * 16 | 0, v = c === 'x' ? r : (r && 0x3 | 0x8);\r\n            return v.toString(16);\r\n        });\r\n\r\n        return result;\r\n    }\r\n}\r\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-icon',\r\n    templateUrl: './icon.component.html',\r\n    styleUrls: ['./icon.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class IconComponent {\r\n  @Input() color = 'primary';\r\n  @Input() size = '';\r\n  @Input() ariaLabel = '';\r\n  @Input() icon: string;\r\n  @Input() flip: string;\r\n  @Input() pull: string;\r\n  @Input() rotate: number;\r\n  @Input() solid = true;\r\n  @Input() fixedWidth = false;\r\n  @Input() spin = false;\r\n  @Input() pulse = false;\r\n  @Input() border = false;\r\n  @Input() disabled = false;\r\n\r\n  get prefix(): string {\r\n    return this.solid ? 'fas' : 'far';\r\n  }\r\n}\r\n","<span class=\"icon\" [ngClass]=\"{\r\n    'icon-color--text': color === 'text',\r\n    'icon-color--light': color === 'light',\r\n    'icon-color--success': color === 'success',\r\n    'icon-color--error': color === 'error',\r\n    'icon-color--warning': color === 'warning',\r\n    'icon-color--info': color === 'info',\r\n    'icon--disabled': disabled\r\n  }\" [attr.aria-disabled]=\"disabled\" [attr.aria-label]=\"ariaLabel\">\r\n  <fa-icon\r\n    [icon]=\"[prefix, icon]\"\r\n    [fixedWidth]=\"fixedWidth\"\r\n    [border]=\"border\"\r\n    [animation]=\"spin === true ? 'spin' : pulse === true ? 'beat' : ''\"\r\n    size=\"{{size}}\"\r\n    flip=\"{{flip}}\"\r\n    rotate=\"{{rotate}}\"\r\n    pull=\"{{pull}}\"\r\n    >\r\n  </fa-icon>\r\n</span>\r\n","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-close-button',\r\n    templateUrl: './close-button.component.html',\r\n    styleUrls: ['./close-button.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class CloseButtonComponent {\r\n  @Input() disabled = false;\r\n\r\n  checkDisabled(event: MouseEvent) {\r\n    if (this.disabled) {\r\n      event.stopPropagation();\r\n    }\r\n  }\r\n}\r\n","<span (click)=\"checkDisabled($event)\">\r\n  <button type=\"button\" class=\"close-button noselect\" [ngClass]=\"{'button--disabled' : disabled}\"\r\n  [attr.aria-disabled]=\"disabled\" aria-label=\"stäng\">\r\n    <vgr-icon icon=\"times\"></vgr-icon>\r\n    <div class=\"button__focus-line\"></div>\r\n  </button>\r\n</span>\r\n","import { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges, ViewChild, OnInit, AfterViewInit, Renderer2, ChangeDetectionStrategy } from '@angular/core';\r\nimport { trigger, style, animate, transition, state, AnimationEvent } from '@angular/animations';\r\nimport { Guid } from '../../utils/guid';\r\n\r\n@Component({\r\n    templateUrl: './action-panel.component.html',\r\n    selector: 'vgr-action-panel',\r\n    styleUrls: ['./action-panel.component.scss'],\r\n    animations: [\r\n        trigger('slide', [\r\n            state('closed', style({\r\n                height: 0,\r\n                marginBottom: 0,\r\n                boxShadow: '3px 3px 9px 0 rgba(0, 0, 0, 0)'\r\n            })),\r\n            state('open', style({\r\n                height: '*',\r\n                marginBottom: '14px',\r\n                boxShadow: '3px 3px 9px 0 rgba(0, 0, 0, 0.5)'\r\n            })),\r\n            transition('closed <=> open', animate('600ms ease'))\r\n        ]),\r\n        trigger('fade', [\r\n            state('hidden', style({\r\n                opacity: 0\r\n            })),\r\n            state('visible', style({\r\n                opacity: 1\r\n            })),\r\n            transition('hidden <=> visible', animate('400ms ease'))\r\n        ])\r\n    ],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\r\n    standalone: false\r\n})\r\nexport class ActionPanelComponent implements OnChanges, OnInit, AfterViewInit {\r\n\r\n  @Input() title: string;\r\n  @Input() open = false;\r\n  @Input() showCloseButton = true;\r\n  @Output() openChanged = new EventEmitter<boolean>();\r\n  @ViewChild('actionPanel', { static: true }) actionPanelElement;\r\n  private readonly slideStateOpen = 'open';\r\n  private readonly slideStateClosed = 'closed';\r\n  private readonly fadeStateVisible = 'visible';\r\n  private readonly fadeStateHidden = 'hidden';\r\n  slideState = this.slideStateClosed;\r\n  fadeState = this.fadeStateVisible;\r\n  isOpened: boolean;\r\n  isClosed: boolean;\r\n  elementId: string;\r\n\r\n  constructor(private renderer: Renderer2) {\r\n    this.elementId = `action-panel-container${Guid.newGuid()}`;\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.isOpened = this.open;\r\n    this.isClosed = !this.open;\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    const openChange = changes['open'];\r\n    if (openChange) {\r\n      if (openChange.currentValue) {\r\n        this.slideState = this.slideStateOpen;\r\n        this.openChanged.emit(true);\r\n        this.focus();\r\n      } else {\r\n        this.slideState = this.slideStateClosed;\r\n        this.openChanged.emit(false);\r\n      }\r\n    }\r\n\r\n    const showCloseButtonChange = changes['showCloseButton'];\r\n    if (showCloseButtonChange) {\r\n      if (showCloseButtonChange.currentValue) {\r\n        this.fadeState = this.fadeStateVisible;\r\n      } else {\r\n        this.fadeState = this.fadeStateHidden;\r\n      }\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit(): void {\r\n      this.focus();\r\n  }\r\n\r\n  close() {\r\n    this.open = false;\r\n    this.slideState = this.slideStateClosed;\r\n    this.openChanged.emit(false);\r\n  }\r\n\r\n  onSlideStart(event: AnimationEvent) {\r\n    setTimeout(() => {\r\n      if (event.fromState === this.slideStateOpen) {\r\n        this.isOpened = false;\r\n      }\r\n      if (event.fromState === this.slideStateClosed) {\r\n        this.isClosed = false;\r\n      }\r\n    });\r\n  }\r\n\r\n  onSlideEnd(event: AnimationEvent) {\r\n    setTimeout(() => {\r\n      if (event.fromState === this.slideStateClosed) {\r\n        this.isOpened = true;\r\n      }\r\n      if (event.fromState === this.slideStateOpen) {\r\n        this.isClosed = true;\r\n      }\r\n    });\r\n  }\r\n\r\n  public focus() {\r\n    setTimeout(() => {\r\n      const id = document.getElementById(this.elementId);\r\n\r\n      if (id) {\r\n        this.renderer.selectRootElement('#' + this.elementId, true).focus();\r\n      }\r\n    }, 100);\r\n  }\r\n}\r\n","<div #actionPanel class=\"action-panel\" [id]=\"elementId\" tabindex=\"0\" [@slide]=\"slideState\" (@slide.start)=\"onSlideStart($event)\" (@slide.done)=\"onSlideEnd($event)\" [ngClass]=\"{ 'action-panel--open': isOpened }\" [ngStyle]=\"{'visibility': isClosed ? 'hidden' : 'visible'}\">\r\n  <div class=\"action-panel__header\">\r\n    <h3 class=\"action-panel__title\">{{title}}</h3>\r\n    @if (showCloseButton) {\r\n      <vgr-close-button class=\"action-panel__close-button\" [@fade]=\"fadeState\" (click)=\"close()\"></vgr-close-button>\r\n    }\r\n  </div>\r\n  <div class=\"action-panel__content\" >\r\n    <ng-content></ng-content>\r\n  </div>\r\n</div>\r\n","import {\n  Component,\n  forwardRef,\n  ElementRef,\n  Host,\n  HostBinding,\n  Input,\n  OnChanges,\n  Optional,\n  AfterViewInit,\n  SimpleChanges,\n  SkipSelf,\n  ChangeDetectorRef,\n  OnDestroy,\n  ViewChild,\n  ChangeDetectionStrategy\n} from '@angular/core';\r\nimport { AbstractControl, ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Guid } from '../../utils/guid';\r\n@Component({\r\n    selector: 'vgr-textarea',\r\n    templateUrl: './textarea.component.html',\r\n    styleUrls: ['./textarea.component.scss'],\r\n    providers: [{\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => TextareaComponent),\r\n            multi: true,\r\n        }],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class TextareaComponent implements AfterViewInit, OnChanges, ControlValueAccessor, OnDestroy {\r\n\r\n  @Input() showValidation = true;\r\n  @Input() width: string;\r\n  @Input() height: string;\r\n  @Input() placeholder: string;\r\n  @Input() formControlName: string;\r\n  @Input() maxlength: number;\r\n  @Input() value: string;\r\n  @Input() labelId: string;\r\n  @Input() disabled = false;\r\n\r\n  @Input() @HostBinding('class.readonly') readonly?: boolean;\r\n\r\n  @HostBinding('class.textarea-validation-error--active') get errorClass() {\r\n    return this.showValidation && this.control && this.control.invalid && !this.hasFocus;\r\n  }\r\n  @HostBinding('class.textarea-validation-error--editing') get editingClass() {\r\n    return this.showValidation && this.control && this.control.invalid && this.hasFocus;\r\n  }\r\n\r\n  @ViewChild('textareaElement') textareaElement: ElementRef;\r\n\r\n  scrollHeight: string;\r\n  control: AbstractControl;\r\n  hasFocus = false;\r\n  cancel: boolean;\r\n  elementId: string;\r\n\r\n  validationErrorMessage = 'Obligatoriskt';\r\n  private ngUnsubscribe: any = new Subject();\r\n\r\n  constructor(@Optional() @Host() @SkipSelf() private controlContainer: ControlContainer, private cdRef: ChangeDetectorRef, private el: ElementRef) {\r\n    this.elementId = Guid.newGuid();\r\n    this.width = '100%';\r\n    this.height = '120px';\r\n    this.placeholder = '';\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (this.formControlName) {\r\n      this.control = this.controlContainer.control.get(this.formControlName);\r\n      this.control.statusChanges\r\n        .pipe(takeUntil(this.ngUnsubscribe))\r\n        .subscribe((status) => {\r\n        });\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    setTimeout(() => {\r\n      this.scrollHeight = this.textareaElement.nativeElement.scrollHeight + 'px';\r\n      this.cdRef.detectChanges();\r\n    }, 25);\r\n  }\r\n\r\n  public focus() {\r\n    this.textareaElement.nativeElement.focus();\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    this.value = value;\r\n  }\r\n\r\n  registerOnChange(func: any) {\r\n    this.onChange = func;\r\n  }\r\n\r\n  registerOnTouched(func: any) {\r\n    this.onTouched = func;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean) {\r\n    this.disabled = isDisabled;\r\n  }\r\n\r\n  onChange(input: any) {\r\n    if (this.control) {\r\n      this.control.setValue(input);\r\n    }\r\n  }\r\n\r\n  onTouched(input: any) {\r\n    if (this.control) {\r\n      this.control.setValue(input);\r\n    }\r\n  }\r\n\r\n  onBlur(event: Event) {\r\n    event.stopPropagation();\r\n    this.hasFocus = false;\r\n    if (this.control) {\r\n      this.control.markAsTouched();\r\n      this.control.markAsDirty();\r\n    }\r\n\r\n    this.onTouched(this.value);\r\n    this.scrollHeight = this.textareaElement.nativeElement.scrollHeight + 'px';\r\n  }\r\n\r\n  onFocus(event: Event): void {\r\n    this.hasFocus = true;\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n\r\n  get errorActive() {\r\n    if (this.disabled || this.readonly) {\r\n      return false;\r\n    }\r\n    const classes = this.el.nativeElement.classList;\r\n    return this.showValidation && classes.contains('ng-invalid');\r\n  }\r\n}\r\n","<div class=\"textarea\" [ngStyle]=\"{ 'width': width }\">\r\n  <div class=\"textarea-validation\">\r\n    <div>\r\n      <textarea #textareaElement class=\"textarea-input\" [ngStyle]=\"{'height': readonly ? scrollHeight : height}\"\r\n        [maxlength]=\"maxlength\" [attr.id]=\"labelId\"\r\n        [placeholder]=\"disabled ? '' : placeholder\" [(ngModel)]=\"value\" (ngModelChange)=\"onChange($event)\" (blur)=\"onBlur($event)\" (focus)=\"onFocus($event)\"\r\n        [attr.readonly]=\"readonly ? '' : null\"\r\n      [disabled]=\"disabled\" [attr.aria-describedby]=\"elementId\" [attr.aria-invalid]=\"errorActive\"></textarea>\r\n    </div>\r\n    @if (control) {\r\n      <div [attr.id]=\"elementId\" class=\"textarea-validation_status\" [title]=\"validationErrorMessage\" [attr.aria-live]=\"errorActive ? 'assertive' : 'off'\">\r\n        <vgr-icon icon=\"exclamation-circle\" size=\"sm\" class=\"textarea-validation_status__icon\"></vgr-icon>\r\n        <div class=\"textarea-validation_status__message\">{{validationErrorMessage}}</div>\r\n      </div>\r\n    }\r\n  </div>\r\n</div>\r\n","export function mapToClassString(input: Map<string, boolean>): string {\r\n  const classes = [];\r\n    for (const [key, value] of input) {\r\n      if (value) {\r\n        classes.push(key);\r\n      }\r\n    }\r\n\r\n  return classes.join(' ');\r\n}\r\n","import { Component, Input, ChangeDetectorRef, HostBinding, ChangeDetectionStrategy } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { trigger, state, animate, style, transition } from '@angular/animations';\r\n\r\n@Component({\r\n    selector: 'vgr-loader',\r\n    templateUrl: './loader.component.html',\r\n    styleUrls: ['./loader.component.scss'],\r\n    animations: [\r\n        trigger('fadeInOut', [\r\n            state('true', style({\r\n                opacity: 1\r\n            })),\r\n            state('false', style({\r\n                opacity: 0\r\n            })),\r\n            transition('* => *', animate('400ms ease'))\r\n        ])\r\n    ],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class LoaderComponent {\r\n  private _minimumTimeMs = 1000;\r\n  private lastActivated: Date;\r\n  private _active = false;\r\n  visible = false;\r\n\r\n  @Input() set active(value: boolean) {\r\n    if ((this._active && !value) || (!this._active && value)) {\r\n      this._active = value;\r\n      if (!this._active) {\r\n        this.hideWhenMinimumTimeHasPassed();\r\n      } else {\r\n        this.showForMinimumTime();\r\n      }\r\n    }\r\n  }\r\n  get active(): boolean {\r\n    return this._active;\r\n  }\r\n\r\n  @Input() small: boolean;\r\n\r\n\r\n  constructor(private changeDetector: ChangeDetectorRef) { }\r\n\r\n  private startSpinning() {\r\n    this.visible = true;\r\n  }\r\n  private stopSpinning() {\r\n    setTimeout(() => {\r\n      if (this._active) {\r\n        this.startSpinning();\r\n      }\r\n    }, 400);\r\n    this.visible = false;\r\n  }\r\n  private hideWhenMinimumTimeHasPassed() {\r\n    const timeShown = new Date().getTime() - this.lastActivated.getTime();\r\n    if (timeShown >= this._minimumTimeMs) {\r\n      this.stopSpinning();\r\n    } else {\r\n      setTimeout(() => {\r\n        this.stopSpinning();\r\n      }, this._minimumTimeMs - timeShown);\r\n    }\r\n  }\r\n\r\n  private showForMinimumTime() {\r\n    this.lastActivated = new Date();\r\n    this.startSpinning();\r\n  }\r\n\r\n\r\n}\r\n","<div class=\"loader\" [ngClass]=\"{'loader--small':small}\" [@fadeInOut]=\"visible\">\r\n</div>\r\n","import { Component, Input, OnChanges, ViewChild, ElementRef, Renderer2, ChangeDetectionStrategy } from '@angular/core';\r\nimport { mapToClassString } from '../../utils/map-to-class-string';\r\n\r\n@Component({\r\n    selector: 'vgr-button',\r\n    templateUrl: './button.component.html',\r\n    styleUrls: ['./button.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class ButtonComponent implements OnChanges {\r\n  @Input() disabled = false;\r\n  @Input() buttonStyle = 'primary';\r\n  @Input() type = 'button';\r\n  @Input() loadingState = false;\r\n  @ViewChild('button', { static: true }) button: ElementRef;\r\n  reenabled = false;\r\n  private wasDisabled = false;\r\n  private activated = false;\r\n\r\n  constructor() {}\r\n\r\n  ngOnChanges() {\r\n    this.reenabled = this.wasDisabled && !this.disabled;\r\n    this.wasDisabled = this.disabled;\r\n  }\r\n\r\n  checkDisabled(event: Event) {\r\n    if (this.disabled || this.loadingState) {\r\n      event.stopPropagation();\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  public focus() {\r\n    this.button.nativeElement.focus();\r\n  }\r\n\r\n  onKeyboardActivation(e: KeyboardEvent): void {\r\n    if (!this.disabled) {\r\n      if (e.key === ' ' || e.key === 'Enter') {\r\n        this.activated = true;\r\n        setTimeout(() => {\r\n          this.activated = false;\r\n        }, 500);\r\n      }\r\n    }\r\n  }\r\n\r\n  calculateClasses() {\r\n    const css = new Map([\r\n      ['button--disabled', this.disabled || this.loadingState],\r\n      ['button--enabling', this.reenabled],\r\n      ['button--secondary', this.buttonStyle === 'secondary'],\r\n      ['button--discreet', this.buttonStyle === 'discreet'],\r\n      ['button--active', this.activated]\r\n    ]);\r\n\r\n    return mapToClassString(css);\r\n  }\r\n}\r\n","<span (click)=\"checkDisabled($event)\">\r\n  <button #button\r\n    [type]=\"type\"\r\n    class=\"button noselect\"\r\n    [attr.aria-disabled]=\"disabled\"\r\n    [ngClass]=\"calculateClasses()\"\r\n    (keydown)=\"onKeyboardActivation($event)\"\r\n    [ngStyle]=\"{'background-color': loadingState ? '#9EA2A2' : '', 'min-width': loadingState ? '87px' : ''}\">\r\n    @if (!loadingState) {\r\n      <span class=\"button__fixIE\">\r\n        <ng-content></ng-content>\r\n      </span>\r\n    }\r\n    @if (loadingState) {\r\n      <span class=\"loader-class\">\r\n        <vgr-loader [small]=\"true\" [active]=\"true\"></vgr-loader>\r\n      </span>\r\n    }\r\n    @if (buttonStyle==='primary') {\r\n      <div class=\"button__focus-line\"></div>\r\n    }\r\n  </button>\r\n</span>\r\n","import { Component, HostBinding, Input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-card-column',\r\n    template: `<ng-content></ng-content>`,\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class CardColumnComponent {\r\n  @HostBinding('class.card-column') cardTopClass = true;\r\n  @HostBinding('class.card__section-container') cardSectionContainer = true;\r\n  @HostBinding('class.card__left-container') left: boolean;\r\n  @HostBinding('class.card__right-container') right: boolean;\r\n  @HostBinding('class.card__fullwidth-container') fullwidth: boolean;\r\n\r\n  constructor() {\r\n  }\r\n}\r\n","import { Component, ContentChildren, QueryList, AfterContentInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CardColumnComponent } from './card-column.component';\r\n\r\n\r\n\r\n@Component({\r\n    selector: 'vgr-card',\r\n    templateUrl: './card.component.html',\r\n    styleUrls: ['./card.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class CardComponent implements AfterContentInit {\r\n    @ContentChildren(CardColumnComponent) columns: QueryList<CardColumnComponent>;\r\n\r\n    constructor() {\r\n    }\r\n\r\n    ngAfterContentInit() {\r\n        if (this.columns.length === 1) {\r\n            this.columns.first.fullwidth = true;\r\n        } else if (this.columns.length === 2) {\r\n            this.columns.first.left = true;\r\n            this.columns.last.right = true;\r\n        }\r\n    }\r\n}\r\n","<ng-content select=\"vgr-card-header\"></ng-content>\r\n<div class=\"card__bottom-container\">\r\n  <ng-content select=\"vgr-card-column\"></ng-content>\r\n</div>\r\n","import { Component, HostBinding, Input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-card-header',\r\n    template: `<ng-content></ng-content>`,\r\n    styleUrls: ['./card.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class CardHeaderComponent {\r\n  @HostBinding('class.card__top') cardTopClass = true;\r\n  @HostBinding('class.card-header') cardHeaderClass = true;\r\n\r\n  constructor() {\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'errorMessage',\r\n    standalone: false\r\n})\r\n\r\nexport class ErrorMessagePipe implements PipeTransform {\r\n  currentMessage: string;\r\n\r\n  transform(message: any, errors: any, label: any, small = false) {\r\n    if (!message) {\r\n      return null;\r\n    }\r\n\r\n    this.currentMessage = this.setErrorMessage(errors, message, label, small);\r\n\r\n    return this.currentMessage;\r\n  }\r\n\r\n  private setErrorMessage(errors: any, message: any, label: any, small: any): string {\r\n    if (typeof (message) === 'object') {\r\n      for (const key in errors) {\r\n        if (key === 'required' && small && !message[key]) {\r\n          return 'Obligatoriskt';\r\n        } else if (key === 'required' && !small && !message[key]) {\r\n          return label ? label.innerText + ' är obligatoriskt' : 'Fältet är obligatoriskt';\r\n        } else if (message) {\r\n          return message[key];\r\n        } else {\r\n          return 'Oväntat fel';\r\n        }\r\n      }\r\n    } else {\r\n      return message;\r\n    }\r\n  }\r\n}\r\n","import { Component, Input, EventEmitter, Output, OnChanges, forwardRef, SkipSelf, Optional, Host, ElementRef, AfterViewInit, SimpleChanges, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, ControlContainer, AbstractControl } from '@angular/forms';\r\nimport { Guid } from '../../utils/guid';\r\n\r\n\r\n@Component({\r\n    selector: 'vgr-checkbox',\r\n    templateUrl: './checkbox.component.html',\r\n    styleUrls: ['./checkbox.component.scss'],\r\n    providers: [{\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => CheckboxComponent),\r\n            multi: true\r\n        }],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class CheckboxComponent implements ControlValueAccessor, OnChanges, AfterViewInit {\r\n\r\n    get disabled() {\r\n      if (this.groupDisabledOverride) {\r\n        return true;\r\n      } else {\r\n        return this._disabled;\r\n      }\r\n    }\r\n    @Input() set disabled(val: boolean) {\r\n      this._disabled = val;\r\n    };\r\n    @Input() checked = false;\r\n    @Input() label: string;\r\n    @Input() formControlName?: string;\r\n    @Input() transparent = false;\r\n    @Input() required = false;\r\n    @Input() showValidation = true;\r\n\r\n    @Output() checkedChanged = new EventEmitter<any>();\r\n\r\n    @ViewChild('checkbox', { read: ElementRef, static: false }) checkbox: ElementRef;\r\n\r\n    public control: AbstractControl;\r\n    public labelledbyid: string = Guid.newGuid();\r\n    public element: any;\r\n    groupDisabledOverride: boolean;\r\n    validationErrorMessage = 'Obligatoriskt';\r\n    elementId: string;\r\n    _disabled: boolean = false;\r\n\r\n    constructor(@Optional() @Host() @SkipSelf() private controlContainer: ControlContainer, private elementRef: ElementRef) {\r\n        this.elementId = Guid.newGuid();\r\n    }\r\n\r\n    ngOnChanges(changes: SimpleChanges) {\r\n      if (this.formControlName && this.controlContainer) {\r\n          this.control = this.controlContainer.control.get(this.formControlName);\r\n          this.setDisabledState(this.controlContainer.control.get(this.formControlName).disabled);\r\n      }\r\n    }\r\n\r\n    getLabelFromId() {\r\n        // return window.document.getElementById(this.idForLabel)\r\n      let labels = document.getElementsByTagName('label');\r\n      for( var i = 0; i < labels.length; i++ ) {\r\n        if (labels[i].htmlFor == this.elementId)\r\n              return labels[i];\r\n      }\r\n    }\r\n\r\n\r\n    get errorActive() {\r\n      const el = this.elementRef.nativeElement;\r\n\r\n      if (el.closest('vgr-checkbox-group')) { // if checkbox is in a group, dont validate\r\n           return false;\r\n       }\r\n      if (this.disabled) {\r\n        return false;\r\n      }\r\n\r\n      if (this.showValidation) {\r\n        if (this.required && !this.checked) {\r\n          this.validationErrorMessage = 'Obligatoriskt'\r\n          return true;\r\n        } else if (this.control) {\r\n          const classes = this.elementRef.nativeElement.classList;\r\n          return classes.contains('ng-invalid');\r\n        } else {\r\n          return false;\r\n        }\r\n      } else {\r\n        return false;\r\n      }\r\n    }\r\n\r\n    setDisabledState(isDisabled: boolean) {\r\n        this.disabled = isDisabled;\r\n    }\r\n\r\n    ngAfterViewInit() {\r\n      this.element = this.elementRef.nativeElement.querySelector(':not(.checkbox--disabled) .checkbox__image');\r\n    }\r\n\r\n    onClick(event: Event): void {\r\n      if (!this.disabled) {\r\n        this.checked = !this.checked;\r\n\r\n        if (this.element) {\r\n          this.element.focus();\r\n        }\r\n\r\n        this.onChange(this.checked);\r\n        this.checkedChanged.emit( {id: this.elementId, checked: this.checked, label: this.label});\r\n        event.stopPropagation();\r\n      }\r\n    }\r\n\r\n    onKeyDown(event: KeyboardEvent): void {\r\n      if ([' ', 'Spacebar', 'Enter'].includes(event.key)) {\r\n          this.onClick(event);\r\n          event.preventDefault();\r\n          event.stopPropagation();\r\n      }\r\n    }\r\n\r\n    onLeave(event) {\r\n      if ((event.relatedTarget !== null)) {\r\n        return;\r\n      }\r\n\r\n      if (this.control) {\r\n          this.control.markAsTouched();\r\n          this.control.markAsDirty();\r\n          if (this.control.updateOn === 'blur') {\r\n\r\n            setTimeout(() => {\r\n              this.control.setValue(this.checked);\r\n            } );\r\n\r\n          }\r\n      }\r\n    }\r\n\r\n    writeValue(value: any): void {\r\n      this.checked = value;\r\n    }\r\n\r\n    registerOnChange(func: any): void {\r\n      this.onChange = func;\r\n    }\r\n\r\n    registerOnTouched(func: any): void {\r\n      this.onTouched = func;\r\n    }\r\n\r\n    onChange(input: any) { }\r\n\r\n    onTouched() { }\r\n\r\n    public focus() {\r\n      this.checkbox.nativeElement.focus();\r\n    }\r\n}\r\n","<div [ngClass]=\"{ 'checkbox-validation-error--active': errorActive}\" >\r\n  <div class=\"checkbox checkbox-validation\">\r\n    <span class=\"checkbox__input\" (focusout)=\"onLeave($event)\" (click)=\"onClick($event)\" (keydown)=\"onKeyDown($event)\">\r\n      <input id=\"{{labelledbyid}}\" tabindex=\"-1\" type=\"checkbox\" name=\"checkbox\" [disabled]=\"disabled\" [checked]=\"checked\" aria-hidden=\"true\">\r\n      <span\r\n        class=\"checkbox__control\"\r\n        [ngClass]=\"{ 'checkbox--transparent': transparent }\"\r\n        [attr.aria-labelledby]=\"labelledbyid\"\r\n        role=\"checkbox\"\r\n        #checkbox\r\n        [attr.aria-disabled]=\"disabled\"\r\n        [attr.aria-checked]=\"checked\"\r\n        tabindex=\"0\">\r\n        <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' aria-hidden=\"true\" focusable=\"false\">\r\n        <path fill='none' stroke='currentColor' stroke-width='6' d='M1.73 12.91l6.37 6.37L22.79 4.59' /></svg>\r\n      </span>\r\n\r\n\r\n    </span>\r\n    <label id=\"{{labelledbyid}}\" class=\"checkbox__label\" for=\"{{labelledbyid}}\" [ngClass]=\"{'checkbox--disabled' : disabled }\" [attr.aria-disabled]=\"disabled\">{{label}}</label>\r\n  </div>\r\n  @if (errorActive) {\r\n    <div [attr.id]=\"elementId\" class=\"checkbox-validation_status\" [title]=\"validationErrorMessage\" [attr.aria-live]=\"errorActive ? 'assertive' : 'off'\">\r\n      <vgr-icon icon=\"exclamation-circle\" size=\"sm\" class=\"checkbox-validation_status__icon\"></vgr-icon>\r\n      @if (control) {\r\n        <div class=\"checkbox-validation_status__message\">{{validationErrorMessage | errorMessage: control.errors : getLabelFromId() : false}}</div>\r\n      }\r\n      @if (!control) {\r\n        <div class=\"checkbox-validation_status__message\">{{validationErrorMessage}}</div>\r\n      }\r\n    </div>\r\n  }\r\n</div>\r\n\r\n","import { Component, Input, EventEmitter, Output, HostBinding, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-lock-button',\r\n    templateUrl: './lock-button.component.html',\r\n    styleUrls: ['./lock-button.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class LockButtonComponent {\r\n  @Input() disabled = false;\r\n  @Input() locked = true;\r\n  @Output() lockChanged = new EventEmitter<boolean>();\r\n\r\n  get label(): string {\r\n    return this.locked ? 'lås upp' : 'lås';\r\n  }\r\n\r\n  toggleLocked() {\r\n    if (!this.disabled) {\r\n      this.locked = !this.locked;\r\n      this.lockChanged.emit(this.locked);\r\n    }\r\n  }\r\n\r\n  checkDisabled(event: MouseEvent) {\r\n    if (this.disabled) {\r\n      event.stopPropagation();\r\n    }\r\n  }\r\n}\r\n","<span (click)=\"checkDisabled($event)\">\r\n  <button type=\"button\" (click)=\"toggleLocked()\" class=\"lock-button noselect\" [ngClass]=\"{'lock-button--unlocked' : !locked, 'button--disabled' : disabled}\"\r\n    [attr.aria-disabled]=\"disabled\" [attr.aria-label]=\"label\">\r\n    @if (locked) {\r\n      <vgr-icon icon=\"lock\"></vgr-icon>\r\n    }\r\n    @if (!locked) {\r\n      <vgr-icon icon=\"lock-open\"></vgr-icon>\r\n    }\r\n\r\n    <div class=\"button__focus-line\"></div>\r\n  </button>\r\n</span>","import { Component, Input, EventEmitter, Output, OnInit, OnChanges, SimpleChanges, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-save-cancel',\r\n    templateUrl: './save-cancel.component.html',\r\n    styleUrls: ['./save-cancel.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class SaveCancelComponent implements OnInit {\r\n  @Input() locked = true;\r\n  @Input() secondary = false;\r\n  @Input() hideLock = false;\r\n  @Input() saveButtonText = 'Spara';\r\n  @Output() cancel = new EventEmitter();\r\n  @Output() save = new EventEmitter();\r\n  @Output() unlock = new EventEmitter();\r\n\r\n  ngOnInit() {\r\n    if (this.hideLock) {\r\n      this.locked = false;\r\n    }\r\n  }\r\n\r\n  onLockChanged(locked: boolean) {\r\n    if (locked) {\r\n      this.locked = true;\r\n      this.save.emit();\r\n\r\n    } else {\r\n      this.locked = false;\r\n      this.unlock.emit();\r\n    }\r\n  }\r\n\r\n  onSave() {\r\n    if (!this.hideLock) {\r\n      this.locked = true;\r\n    }\r\n    this.save.emit();\r\n  }\r\n\r\n  onCancel() {\r\n    if (!this.hideLock) {\r\n      this.locked = true;\r\n    }\r\n    this.cancel.emit();\r\n  }\r\n\r\n}\r\n","<div class=\"save-cancel\">\r\n  <vgr-button class=\"button--cancel\" [disabled]=\"locked\" (click)=\"onCancel()\" [buttonStyle]=\"secondary ? 'secondary' : 'primary'\">Avbryt</vgr-button>\r\n  <vgr-button class=\"button--save\" [disabled]=\"locked\" (click)=\"onSave()\" [buttonStyle]=\"secondary ? 'secondary' : 'primary'\">{{saveButtonText}}</vgr-button>\r\n  @if (!hideLock) {\r\n    <vgr-lock-button [disabled]=\"!locked\" [locked]=\"locked\" (lockChanged)=\"onLockChanged($event)\"></vgr-lock-button>\r\n  }\r\n</div>\r\n","import { Component, Input, EventEmitter, Output, HostBinding, forwardRef, ElementRef, OnChanges, AfterViewInit, SkipSelf, Optional, Host, Renderer2, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { SelectableItem } from '../../models/selectableItem.model';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, ControlContainer, AbstractControl } from '@angular/forms';\r\nimport { Guid } from '../../utils/guid';\r\n\r\n@Component({\r\n    selector: 'vgr-radio-group',\r\n    templateUrl: './radioGroup.component.html',\r\n    styleUrls: ['./radioGroup.component.scss'],\r\n    providers: [{\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => RadioGroupComponent),\r\n            multi: true\r\n        }],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\n\r\nexport class RadioGroupComponent implements ControlValueAccessor, OnChanges, AfterViewInit {\r\n  @HostBinding('class.radio-group') hasClass = true;\r\n  @HostBinding('attr.role') role = 'radiogroup';\r\n  @Input() @HostBinding('class.disabled') disabled: boolean;\r\n  @Input() @HostBinding('class.vertical') vertical = false;\r\n  @Input() formControlName?: string;\r\n  @Input() set options(items: SelectableItem<any>[]) {\r\n    const _items = JSON.parse(JSON.stringify(items));\r\n\r\n    let newItem: RadioGroupItem<any>;\r\n    _items.forEach(item => {\r\n      newItem = item as RadioGroupItem<any>;\r\n      newItem.ariaid = Guid.newGuid();\r\n      this.radiogroupItems.push(newItem);\r\n    });\r\n  }\r\n\r\n  @Output() selectedChanged: EventEmitter<any> = new EventEmitter<any>();\r\n  public radiogroupItems: RadioGroupItem<any>[] = [];\r\n  public control: AbstractControl;\r\n  public elements: any;\r\n  public selectedOption: RadioGroupItem<any>;\r\n\r\n  get noSelectionFlag(): boolean {\r\n    return this.radiogroupItems.every((x) => (x.selected === false || x.selected === undefined));\r\n  }\r\n\r\n  constructor(@Optional() @Host() @SkipSelf() private controlContainer: ControlContainer, private elementRef: ElementRef, private renderer: Renderer2) {\r\n    console.warn('Komponenten <vgr-radio-group> är utfasad och skall ersättas med <vgr-radiobutton-group>')\r\n  }\r\n\r\n  ngOnChanges() {\r\n    if (this.radiogroupItems && this.radiogroupItems.length > 0) {\r\n      const preSelectedOption = this.radiogroupItems.find(x => x.selected);\r\n      if (preSelectedOption) {\r\n        this.selectOption(preSelectedOption);\r\n      }\r\n    }\r\n    if (this.formControlName && this.controlContainer) {\r\n      this.control = this.controlContainer.control.get(this.formControlName);\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.elements = this.elementRef.nativeElement.querySelectorAll('.radio-button__icon');\r\n  }\r\n\r\n  public focus() {\r\n    this.elements[0].focus();\r\n  }\r\n\r\n  optionClicked(option: RadioGroupItem<any>) {\r\n    if (this.disabled || option.disabled) {\r\n      const position = this.radiogroupItems.indexOf(option);\r\n      if (this.elements[position]) {\r\n        this.elements[position].focus();\r\n        return;\r\n      }\r\n    }\r\n\r\n    if (!option.selected) {\r\n      this.selectOption(option);\r\n    }\r\n\r\n    if (this.renderer) {\r\n      const position = this.radiogroupItems.indexOf(option);\r\n      if (this.elements[position]) {\r\n        this.elements[position].focus();\r\n      }\r\n    }\r\n  }\r\n\r\n  keyDown(event: KeyboardEvent, option: RadioGroupItem<any>): void {\r\n\r\n    if (['Enter', 'Spacebar', ' '].includes(event.key)) {\r\n      this.optionClicked(option);\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n    }\r\n\r\n    if (['ArrowRight', 'Right', 'ArrowDown', 'Down'].includes(event.key)) {\r\n      this.setFocus(option, 'forward');\r\n      event.preventDefault();\r\n    }\r\n\r\n    if (['ArrowLeft', 'Left', 'ArrowUp', 'Up'].includes(event.key)) {\r\n      this.setFocus(option, 'back');\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  setFocus(option: RadioGroupItem<any>, direction?: string) {\r\n    const position = this.radiogroupItems.indexOf(option);\r\n    const nextItem = this.radiogroupItems[position + 1];\r\n    const previousItem = this.radiogroupItems[position - 1];\r\n\r\n    const enabledOptions = this.radiogroupItems;\r\n    if (direction === 'forward') {\r\n      if (position + 1 === enabledOptions.length) {\r\n        if (this.elements[0]) {\r\n          this.elements[0].focus();\r\n        }\r\n        this.optionClicked(enabledOptions[0]);\r\n      } else {\r\n        if (this.elements[position + 1]) {\r\n\r\n          this.elements[position + 1].focus();\r\n        }\r\n        this.optionClicked(nextItem);\r\n      }\r\n    } else if (direction === 'back') {\r\n      if (position === 0) {\r\n        if (this.elements[this.radiogroupItems.length - 1]) {\r\n          this.elements[this.radiogroupItems.length - 1].focus();\r\n        }\r\n        this.optionClicked(this.radiogroupItems[enabledOptions.length - 1]);\r\n      } else {\r\n        if (this.elements[position - 1]) {\r\n          this.elements[position - 1].focus();\r\n        }\r\n        this.optionClicked(previousItem);\r\n      }\r\n    }\r\n  }\r\n\r\n  checkTabFocus(index: number) {\r\n    // return !this.radiogroupItems[index].disabled && (this.radiogroupItems[index].selected || (index === 0 && this.noSelectionFlag));\r\n    return this.radiogroupItems[index].selected || (index === 0 && this.noSelectionFlag);\r\n  }\r\n\r\n  writeValue(option: any): void {\r\n    if (option) {\r\n      const preSelectedOption = this.radiogroupItems.find(x => x.value === option);\r\n      if (preSelectedOption) {\r\n        this.selectOption(preSelectedOption, false);\r\n      }\r\n    } else {\r\n      this.radiogroupItems.forEach(o => {\r\n        o.selected = false;\r\n      });\r\n    }\r\n  }\r\n\r\n  registerOnChange(func: any): void {\r\n    this.onChange = func;\r\n  }\r\n\r\n  registerOnTouched(func: any): void {\r\n    this.onTouched = func;\r\n  }\r\n\r\n  onChange(input: SelectableItem<any>) {\r\n  }\r\n\r\n  onTouched() { }\r\n\r\n  onLeave() {\r\n    if (this.control) {\r\n      this.control.markAsTouched();\r\n      this.control.markAsDirty();\r\n      if (this.control.updateOn === 'blur' && this.selectedOption && this.selectedOption.value) {\r\n        this.control.setValue(this.selectedOption.value);\r\n      }\r\n    }\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean) {\r\n    this.disabled = isDisabled;\r\n  }\r\n\r\n  private selectOption(option: RadioGroupItem<any>, event: boolean = true) {\r\n    this.selectedOption = option;\r\n    this.radiogroupItems.forEach(o => {\r\n      o.selected = (o === option);\r\n    });\r\n    option.selected = true;\r\n\r\n    this.selectedChanged.emit(option.value);\r\n    if (event) {\r\n      this.onChange(option.value);\r\n    }\r\n  }\r\n}\r\n\r\nexport interface RadioGroupItem<TValue> extends SelectableItem<TValue> {\r\n  ariaid?: string;\r\n}\r\n","@for (option of radiogroupItems; track option; let i = $index) {\r\n  <div class=\"radio-button\" title=\"{{option.displayName}}\" [ngClass]=\"{'radio-button--checked' : option.selected, 'radio-button--disabled' : option.disabled }\"\r\n    (click)=\"optionClicked(option)\" (keydown)=\"keyDown($event, option)\" (focusout)=\"onLeave()\">\r\n    <div [attr.aria-labelledby]=\"option.ariaid\" role=\"radio\" [attr.aria-disabled]=\"option.disabled\"  [attr.aria-checked]=\"option.selected\" class=\"radio-button__icon\"\r\n    tabindex=\"{{checkTabFocus(i) ? 0 : -1}}\"></div>\r\n    <span id=\"{{option.ariaid}}\" class=\"radio-button__text \">{{option.displayName}}</span>\r\n  </div>\r\n}\r\n","import { AfterContentInit, AfterViewInit, Component, ContentChild, ElementRef, EventEmitter, Input, Output, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Guid } from '../../utils/guid';\r\n\r\n@Component({\r\n    selector: 'vgr-radiobutton-item',\r\n    templateUrl: './radiobutton-item.component.html',\r\n    styleUrls: ['./radiobutton-item.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class RadiobuttonItemComponent implements AfterViewInit {\r\n  groupDisabledOverride: boolean; // gruppens disabledState\r\n  elementId: string;\r\n\r\n\r\n  @Input() set selected(val: boolean) {\r\n    this._selected = val;\r\n    if (this._selected) {\r\n      this.tabIndex = 0;\r\n    }\r\n  };\r\n  @Input() value: string | number;\r\n  label: string;\r\n  @Input() set disabled(val: boolean) {\r\n    this._disabled = val;\r\n  };\r\n  get disabled() {\r\n    if (this.groupDisabledOverride) {\r\n      return true;\r\n    } else {\r\n      return this._disabled;\r\n    }\r\n  }\r\n\r\n  get selected() : boolean {\r\n    return this._selected;\r\n  }\r\n\r\n  @Output() itemSelected = new EventEmitter();\r\n  @Output() itemDisabled = new EventEmitter();\r\n\r\n  @ViewChild('item') item: ElementRef;\r\n  @ViewChild('radioButton') radioButton: ElementRef;\r\n  @ContentChild('radioButtonContent') radioButtonContent: ElementRef;\r\n\r\n  tabIndex: number = -1;\r\n  _disabled: boolean;\r\n  _selected: boolean = false;\r\n\r\n  set tabEnabled(val: boolean) {\r\n    this.isTabEnabled = val;\r\n    if (this.isTabEnabled) {\r\n      setTimeout(() => {\r\n        this.tabIndex = 0\r\n      });\r\n    }\r\n  }\r\n\r\n  isTabEnabled: boolean = false;\r\n\r\n  constructor(private elementRef: ElementRef) {\r\n    this.elementId = Guid.newGuid();\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.label = (this.item.nativeElement as Node).textContent.trim();\r\n    if (this.value === undefined) {\r\n      this.value = this.label;\r\n    }\r\n  }\r\n\r\n  itemClicked() {\r\n    if (this.item && !this.disabled) {\r\n      this.selected = true;\r\n      // this.tabIndex = 0;\r\n      this.itemSelected.emit();\r\n    }\r\n    this.focus();\r\n  }\r\n\r\n  public firstfocusIn() {\r\n    if (this.isTabEnabled) {\r\n      this.isTabEnabled = false;\r\n      this.focus();\r\n    }\r\n  }\r\n\r\n  public focus() {\r\n    if(!this.disabled && !this.selected) {\r\n      this.selected = true;\r\n      // this.tabIndex = 0;\r\n      this.itemSelected.emit();\r\n    }\r\n\r\n    this.radioButton.nativeElement.focus();\r\n  }\r\n\r\n  public hasFocus() {\r\n    return this.radioButton.nativeElement === document.activeElement;\r\n  }\r\n  checkTabFocus() {\r\n    return this.elementRef.nativeElement.querySelectorAll('.radio-button--checked').length > 0;\r\n  }\r\n}\r\n","<div #item\r\n  class=\"radio-button-container\"\r\n  [ngClass]=\"{'radio-button--checked' : _selected, 'radio-button--disabled' : disabled}\"\r\n  (click)=\"itemClicked()\"\r\n  >\r\n  <input type=\"radio\" >\r\n  <!-- role=\"radio\"-->\r\n  <div\r\n    #radioButton\r\n    role=\"radio\"\r\n    [attr.aria-labelledby]=\"elementId\"\r\n    [attr.aria-checked]=\"selected\"\r\n    [attr.aria-disabled]=\"disabled\"\r\n    class=\"radio-button__icon\"\r\n    [tabindex]=\"tabIndex\"\r\n    (focusin)=\"firstfocusIn()\"></div>\r\n    <!--\"{{checkTabFocus() || isTabEnabled ? 0 : -1}}\"-->\r\n  <span [attr.id]=\"elementId\" style=\"position: relative; top: 2px;\" class=\"radio-button__content\" >\r\n    <ng-content #radioButtonContent></ng-content>\r\n  </span>\r\n</div>\r\n","import { AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, forwardRef, Host, HostBinding, Input, OnChanges, OnDestroy, Optional, Output, QueryList, SkipSelf, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AbstractControl, ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { __values } from 'tslib';\r\nimport { Guid } from '../../utils/guid';\r\nimport { RadiobuttonItemComponent } from './radiobutton-item.component';\r\n\r\n@Component({\r\n    selector: 'vgr-radiobutton-group',\r\n    templateUrl: './radiobutton-group.component.html',\r\n    styleUrls: ['./radiobutton-group.component.scss'],\r\n    providers: [{\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: RadiobuttonGroupComponent,\r\n            multi: true\r\n        }],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class RadiobuttonGroupComponent implements ControlValueAccessor, AfterContentInit, OnChanges, OnDestroy {\r\n  _disabled: boolean;\r\n  _value: string | number;\r\n\r\n  @Input() showValidation = true;\r\n\r\n  @Input() set value(val: string | number) {\r\n    this._value = val;\r\n  };\r\n  get value() {\r\n    return this._value;\r\n  }\r\n\r\n  @Input() @HostBinding('class.disabled') set disabled(val) {\r\n    this._disabled = val;\r\n    if (val !== undefined) {\r\n      this.setGroupDisabledOverride(val);\r\n    }\r\n  }\r\n  @Input() @HostBinding('class.vertical') vertical = false;\r\n  @Input() formControlName?: string;\r\n  @Input() required = false;\r\n\r\n  @Output() selectedChanged: EventEmitter<RadiobuttonItemComponent> = new EventEmitter<RadiobuttonItemComponent>();\r\n  @ContentChildren(RadiobuttonItemComponent) items: QueryList<RadiobuttonItemComponent>;\r\n\r\n  ngUnsubscribeItems: any = new Subject();\r\n\r\n  internalDisabled: boolean;\r\n  validationErrorMessage = 'Obligatoriskt';\r\n  elementId: string;\r\n\r\n  public control: AbstractControl;\r\n  constructor(@Host() @SkipSelf() @Optional() private controlContainer: ControlContainer, private elementRef: ElementRef) {\r\n    this.elementId = Guid.newGuid();\r\n  }\r\n\r\n\r\n  ngAfterContentInit() {\r\n    if (this.items.length === 0) {\r\n      return;\r\n    }\r\n    this.items.forEach(item => {\r\n      item.itemSelected.pipe(\r\n        takeUntil(this.ngUnsubscribeItems)\r\n      ).subscribe(() => {\r\n        this.unSelectItems(item);\r\n      });\r\n    });\r\n\r\n    if (!this.items.some(x => x.selected) && this._value === undefined) {\r\n      this.unSelectItems();\r\n    }\r\n    this.setGroupDisabledOverride(this._disabled);\r\n\r\n    setTimeout(() => {\r\n      this.setPreselectedValue();\r\n    }, 100);\r\n  }\r\n\r\n\r\n\r\n setFirstOptionAsFocusable() {\r\n    if(!this.items.some(x => x.selected)) {\r\n      // if (this.items.filter(x => !x.disabled)[0].item !== undefined) {\r\n        this.items.filter(x => !x.disabled)[0].tabEnabled = true;\r\n      // }\r\n    }\r\n }\r\n\r\n  ngOnChanges() {\r\n    if (this.formControlName && this.controlContainer) {\r\n      this.control = this.controlContainer.control.get(this.formControlName);\r\n    }\r\n  }\r\n\r\n  get errorActive() {\r\n    if (this.disabled) {\r\n      return false;\r\n    }\r\n\r\n    if (this.showValidation ) {\r\n      if (this.required && !this.items.some(x => x.selected)) {\r\n        this.validationErrorMessage = 'Obligatoriskt'\r\n        return true;\r\n      } else if (this.items.filter(x => x.selected === true).length > 1) {\r\n        this.validationErrorMessage = 'Mer än ett val är aktivt'\r\n        return true;\r\n      } else if (this.control) {\r\n        const classes = this.elementRef.nativeElement.classList;\r\n        return classes.contains('ng-invalid');\r\n      } else {\r\n        return false;\r\n      }\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribeItems.next();\r\n    this.ngUnsubscribeItems.complete();\r\n  }\r\n\r\n  unSelectItems(itemToExclude?: RadiobuttonItemComponent) {\r\n    this.items.forEach(item => {\r\n      if (item !== itemToExclude || !itemToExclude) {\r\n        item.selected = false;\r\n        if (item.item) {\r\n          item.tabIndex = -1;\r\n        }\r\n      }\r\n    });\r\n\r\n    if (itemToExclude) {\r\n      this.value = itemToExclude.value;\r\n    } else {\r\n      // Om ingen är vald, möjliggör att man kan tabba in till första enablade elementet\r\n      this.setFirstOptionAsFocusable();\r\n      this.value = null;\r\n    }\r\n\r\n    this.selectedChanged.emit(itemToExclude);\r\n    this.onChange(itemToExclude);\r\n  }\r\n\r\n  disabledItems() {\r\n    this.items.forEach(item => {\r\n      // if (this.disabled) {\r\n        item.disabled = true;\r\n      // }\r\n    });\r\n  }\r\n\r\n  setGroupDisabledOverride(groupDisabledState: boolean) {\r\n    this.items?.forEach(item => {\r\n        item.groupDisabledOverride = groupDisabledState;\r\n    });\r\n  }\r\n\r\n  setPreselectedValue() {\r\n    if (this.value) {\r\n      this.items?.forEach(item => {\r\n        if(item.value === this.value) {\r\n          item.selected = true;\r\n          this.unSelectItems(item);\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  keyDown(event: KeyboardEvent): void {\r\n    const selectedItem = this.items.filter(item => item.hasFocus())[0];\r\n    if (['Enter', 'Spacebar', ' '].includes(event.key)) {\r\n      const positionArray = this.items.toArray();\r\n      const position = positionArray.indexOf(selectedItem)\r\n      this.items.get(position).itemClicked();\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n    }\r\n\r\n\r\n    if (['ArrowRight', 'Right', 'ArrowDown', 'Down'].includes(event.key)) {\r\n      this.setFocus(selectedItem, 'forward');\r\n      event.preventDefault();\r\n    }\r\n\r\n    if (['ArrowLeft', 'Left', 'ArrowUp', 'Up'].includes(event.key)) {\r\n      this.setFocus(selectedItem, 'back');\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  setSelectedValue(value: string | number) {\r\n    const selectedItem = this.items.filter(x => x.value === value)[0];\r\n    if (selectedItem) {\r\n      selectedItem.selected = true;\r\n      this.unSelectItems(selectedItem);\r\n    } else {\r\n      this.unSelectItems();\r\n    }\r\n }\r\n\r\n  setFocus(option: any, direction?: string) {\r\n    let positionArray = this.items.toArray();\r\n    let position = positionArray.indexOf(option);\r\n\r\n    const enabledOptions = this.items;\r\n    if (direction === 'forward') {\r\n      if (position + 1 === enabledOptions.length) {\r\n        if (this.items.get(0)) {\r\n          this.items.get(0).focus();\r\n        }\r\n      } else {\r\n        if (this.items.get(position + 1)) {\r\n\r\n          this.items.get(position + 1).focus();\r\n        }\r\n      }\r\n    } else if (direction === 'back') {\r\n      if (position === 0) {\r\n        if (this.items.get(this.items.length - 1)) {\r\n          this.items.get(this.items.length - 1).focus();\r\n        }\r\n      } else {\r\n        if (this.items.get(position - 1)) {\r\n          this.items.get(position - 1).focus();\r\n        }\r\n      }\r\n    }\r\n  }\r\n  onTouched() {}\r\n  onChange(input: RadiobuttonItemComponent) {}\r\n\r\n  onLeave() {\r\n\r\n    this.onTouched();\r\n  }\r\n\r\n  writeValue(value: string | number): void {\r\n    if (value) {\r\n      this.value = value;\r\n    }\r\n\r\n    if (this.items) {\r\n      this.setSelectedValue(value);\r\n    }\r\n  }\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.disabled = isDisabled;\r\n  }\r\n\r\n\r\n  getLabelFromId() {\r\n    // return window.document.getElementById(this.idForLabel)\r\n    let labels = document.getElementsByTagName('label');\r\n    for( var i = 0; i < labels.length; i++ ) {\r\n      if (labels[i].htmlFor == this.elementId)\r\n           return labels[i];\r\n   }\r\n  }\r\n}\r\n","<div [ngClass]=\"{ 'radiobutton-group-validation-error--active': errorActive}\">\r\n  <div class=\"radiobutton-group-validation\" >\r\n    <div\r\n      id=\"radiogroup\"\r\n      [attr.aria-labelledby]=\"elementId\"\r\n      (keydown)=\"keyDown($event)\"\r\n      [attr.aria-disabled]=\"_disabled\"\r\n      tabindex=\"{{_disabled ? 0 : -1}}\"\r\n      role=\"radiogroup\"\r\n      [ngClass]=\"{'vertical' : vertical}\"\r\n      [attr.aria-invalid]=\"errorActive\"\r\n      (focusout)=\"onLeave()\">\r\n      <ng-content select=\"vgr-radiobutton-item\"></ng-content>\r\n    </div>\r\n  </div>\r\n  @if (errorActive) {\r\n    <div [attr.id]=\"elementId\" class=\"radiobutton-group-validation_status\" [title]=\"validationErrorMessage\" [attr.aria-live]=\"errorActive ? 'assertive' : 'off'\">\r\n      <vgr-icon icon=\"exclamation-circle\" size=\"sm\" class=\"radiobutton-group-validation_status__icon\"></vgr-icon>\r\n      @if (control) {\r\n        <div class=\"radiobutton-group-validation_status__message\">{{validationErrorMessage | errorMessage: control.errors : getLabelFromId() : false}}</div>\r\n      }\r\n      @if (!control) {\r\n        <div class=\"radiobutton-group-validation_status__message\">{{validationErrorMessage}}</div>\r\n      }\r\n    </div>\r\n  }\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ModalService {\r\n\r\n    // Observable string sources\r\n    private modalOpenedSource = new Subject<string>();\r\n    private modalClosedSource = new Subject<string>();\r\n    private modalUpdateSource = new Subject<string>();\r\n\r\n    // Observable string streams\r\n    modalOpened$ = this.modalOpenedSource.asObservable();\r\n    modalClosed$ = this.modalClosedSource.asObservable();\r\n    modalUpdate$ = this.modalUpdateSource.asObservable();\r\n\r\n    openDialog(elementId: string) {\r\n        this.modalOpenedSource.next(elementId);\r\n    }\r\n\r\n    closeDialog(elementId: string) {\r\n        this.modalClosedSource.next(elementId);\r\n    }\r\n\r\n    updateDialog(elementId: string) {\r\n        this.modalUpdateSource.next(elementId);\r\n    }\r\n}\r\n\r\n","\r\nimport {\n  Component, AfterViewChecked, QueryList, forwardRef, ElementRef, ContentChildren, Renderer2, OnDestroy, Output, EventEmitter, AfterContentInit,\n  ChangeDetectionStrategy\n} from '@angular/core';\r\nimport { ModalService } from '../../services/modalService';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n    selector: 'vgr-modal',\r\n    templateUrl: './modal.component.html',\r\n    styleUrls: ['./modal.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class ModalPlaceholderComponent implements AfterViewChecked, AfterContentInit, OnDestroy {\r\n  @Output() outsideClick = new EventEmitter();\r\n\r\n  isOpen: boolean;\r\n  elementId: string;\r\n  title: string;\r\n  modalInitialized: boolean;\r\n  lastFocusedElement: any;\r\n  firstTabStop: any;\r\n  lastTabStop: any;\r\n  private ngUnsubscribe: any = new Subject();\r\n\r\n  // A list of elements that can recieve focus\r\n  focusableElementsString = '[tabindex]:not([tabindex=\"-1\"]), a[href], area[href], input:not([disabled]):not([tabindex=\"-1\"]):not([type=\"radio\"]), select:not([disabled]), textarea:not([disabled]):not([aria-hidden]), button:not([disabled]), iframe, object, embed, [tabindex=\"0\"], [contenteditable]';\r\n  focusableNodes: NodeList;\r\n  @ContentChildren(forwardRef(() => ButtonComponent), { read: ElementRef, descendants: true }) buttonComponents: QueryList<ElementRef>;\r\n\r\n  constructor(\r\n    private modalService: ModalService, private elementRef: ElementRef, private renderer: Renderer2) {\r\n\r\n    this.isOpen = false;\r\n    this.modalService.modalOpened$\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(elementId => {\r\n        this.modalInitialized = false;\r\n        if (elementId === this.elementId) {\r\n          this.openModal();\r\n        }\r\n      });\r\n\r\n    this.modalService.modalClosed$\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(elementId => {\r\n        if (elementId === this.elementId) {\r\n          this.closeModal();\r\n        }\r\n      });\r\n\r\n    this.modalService.modalUpdate$\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(elementId => {\r\n        if (elementId === this.elementId) {\r\n          this.initFocusableElements();\r\n        }\r\n      });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n\r\n  ngAfterViewChecked() {\r\n    if (!this.modalInitialized && this.buttonComponents && this.buttonComponents.length > 0) {\r\n      this.initFocusableElements();\r\n      this.modalInitialized = true;\r\n    }\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this.elementId = this.elementRef.nativeElement.id;\r\n  }\r\n\r\n  initFocusableElements() {\r\n    // Had to put this in a SetTimeout since the QuerySelector returned old objects from the last opened dialog otherwise\r\n    setTimeout(() => {\r\n      this.focusableNodes = this.elementRef.nativeElement.querySelectorAll(this.focusableElementsString);\r\n      if (this.focusableNodes.length === 0) {\r\n        return false;\r\n      }\r\n      const focusableElements = Array.from(this.focusableNodes);\r\n\r\n      this.firstTabStop = focusableElements[0];\r\n      this.lastTabStop = focusableElements[focusableElements.length - 1];\r\n\r\n      // Set focus default button if one is defined\r\n        const defaultButtonComponent = this.buttonComponents && this.buttonComponents.find(x => x.nativeElement.getAttribute('default') === 'true');\r\n        if (defaultButtonComponent) {\r\n          const spanElement = defaultButtonComponent.nativeElement.children[0];\r\n          if (spanElement) {\r\n            // wait one lifecycle and set focus on the button element wrapped insde the span\r\n            Promise.resolve(null).then(() => {\r\n              spanElement.children[0].focus();\r\n            });\r\n          }\r\n        } else {\r\n          this.firstTabStop.focus();\r\n        }\r\n    }, 10);\r\n  }\r\n\r\n  private openModal() {\r\n    this.isOpen = true;\r\n    this.renderer.addClass(document.querySelector(`#${this.elementId}`), 'vgr-modal--open');\r\n    this.renderer.addClass(document.body, 'modal--open');\r\n    this.renderer.setStyle(document.body, 'overflow', 'hidden');\r\n  }\r\n\r\n  private closeModal() {\r\n    this.isOpen = false;\r\n    this.renderer.removeClass(document.querySelector(`#${this.elementId}`), 'vgr-modal--open');\r\n    this.renderer.removeClass(document.body, 'modal--open');\r\n    this.renderer.setStyle(document.body, 'overflow', 'visible');\r\n  }\r\n\r\n  onKeyDown(e: KeyboardEvent) {\r\n    // This only happens if we come from a focusable content\r\n    switch (e.key) {\r\n      case 'Tab':\r\n        this.handleTabPress(e);\r\n        break;\r\n      case 'Escape':\r\n        this.modalService.closeDialog(this.elementId);\r\n        break;\r\n      // Supporting IE and Edge\r\n      case 'Esc':\r\n        this.modalService.closeDialog(this.elementId);\r\n        break;\r\n    }\r\n  }\r\n\r\n  onOutsideClick(e: MouseEvent) {\r\n    this.focusableNodes = this.elementRef.nativeElement.querySelectorAll(this.focusableElementsString);\r\n    this.firstTabStop = this.focusableNodes[0]; // reset first tabstop\r\n    let onFocusableNode = this.checkIfOnFocusableNode();\r\n\r\n    // When click on non focusable item within the modal will place focus on firstTabStop\r\n    if (!onFocusableNode && this.elementRef.nativeElement.classList.contains('vgr-modal--open')) {\r\n      this.firstTabStop.focus();\r\n    }\r\n\r\n    // Is event bubbling; Ignore\r\n    if (e.eventPhase === Event.BUBBLING_PHASE) {\r\n      return;\r\n    }\r\n\r\n    this.outsideClick.emit(e);\r\n  }\r\n\r\n  private checkIfOnFocusableNode(): boolean {\r\n    let onfocusableNode = false;\r\n    this.focusableNodes.forEach((node) => {\r\n      if (node === (document.activeElement as Node)) {\r\n        onfocusableNode = true;\r\n      }\r\n    })\r\n    return onfocusableNode;\r\n  }\r\n\r\n  private handleTabPress(e: KeyboardEvent) {\r\n    this.focusableNodes = this.elementRef.nativeElement.querySelectorAll(this.focusableElementsString);\r\n    let onFocusableNode = this.checkIfOnFocusableNode();\r\n    this.firstTabStop = this.focusableNodes[0]; // reset first tabstop\r\n    if (e.shiftKey) {\r\n      if (!onFocusableNode) {\r\n        e.preventDefault();\r\n        // ...jump to the last focusable element\r\n        this.lastTabStop.focus();\r\n      }\r\n      // If Shift + Tab\r\n      // If the current element in focus is the first focusable element within the modal window...\r\n      else if (document.activeElement === this.firstTabStop) {\r\n        e.preventDefault();\r\n        // ...jump to the last focusable element\r\n        this.lastTabStop.focus();\r\n      }\r\n      // if Tab\r\n    } else {\r\n      // If the current element in focus is the last focusable element within the modal window...\r\n      if (document.activeElement === this.lastTabStop) {\r\n        e.preventDefault();\r\n        // ...jump to the first focusable element\r\n        this.firstTabStop.focus();\r\n      }\r\n    }\r\n  }\r\n}\r\n","<div class=\"modal\" (keydown)=\"onKeyDown($event)\" (click)=\"onOutsideClick($event)\">\r\n  <div class=\"modal-content\" role=\"dialog\" aria-modal=\"true\" [attr.aria-labelledby]=\"'dialogTitle' + elementId\">\r\n    <h1 [id]=\"'dialogTitle' + elementId\" class=\"modal-content__title\">\r\n      <ng-content select=\"vgr-modal-header\"></ng-content>\r\n    </h1>\r\n    <div class=\"modal-content__content\">\r\n      <ng-content select=\"vgr-modal-content\"></ng-content>\r\n    </div>\r\n    <div class=\"modal-content__footer\">\r\n      <ng-content select=\"vgr-modal-footer\"></ng-content>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, OnInit, Input, forwardRef, OnChanges, Optional, Host, SkipSelf, Output, EventEmitter, HostBinding, ViewChild, ElementRef, SimpleChanges, Renderer2, AfterViewInit, HostListener, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor, AbstractControl, ControlContainer } from '@angular/forms';\r\nimport { Guid } from '../../utils/guid';\r\n\r\n@Component({\r\n    selector: 'vgr-input',\r\n    templateUrl: './input.component.html',\r\n    styleUrls: ['./input.component.scss'],\r\n    providers: [{\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => InputComponent),\r\n            multi: true\r\n        }],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\r\n    standalone: false\r\n})\r\nexport class InputComponent implements ControlValueAccessor, OnChanges, OnInit, AfterViewInit {\r\n\r\n  @Input() showValidation = true;\r\n  @Input() readonly = false;\r\n  @HostBinding('class.vgr-input--disabled') @Input() disabledControl = false;\r\n  @HostBinding('class.vgr-input--suffix') hasSuffix = false;\r\n  @HostBinding('style.width') @Input() width = '270px';\r\n\r\n  /** DEFAULT INPUT OPTIONS FORWARDED **/\r\n  @Input() required = false;\r\n  @Input() step = null;\r\n  @Input() pattern = null;\r\n  @Input() labelId: string;\r\n  @Input() maxlength: number;\r\n  @Input() minlength: number;\r\n  @Input() min: number;\r\n  @Input() max: number;\r\n  @Input() placeholder = '';\r\n  @Input() name = '';\r\n  @Input() type: 'text' | 'email' | 'number' | 'password' | 'search' | 'tel' = 'text';\r\n  @Input() value: any = '';\r\n  @Input() aria: any;\r\n\r\n  /**  */\r\n  @Input() formControlName: string;\r\n  @Input() prefix: string = null;\r\n  @Input() suffix: string = null;\r\n  @Input() textAlign: string;\r\n  @Input() errorMessage: any = 'Innehåller valideringsfel';\r\n  @Output() blur = new EventEmitter<any>();\r\n\r\n  @ViewChild('inputElement', {static: false}) inputElement: ElementRef;\r\n\r\n  control: AbstractControl = null;\r\n  hasFocus = false;\r\n  elementId: string;\r\n  mouseDown: boolean;\r\n\r\n  constructor(@Optional() @Host() @SkipSelf() private controlContainer: ControlContainer, private el: ElementRef, public renderer: Renderer2, private cdr: ChangeDetectorRef) {\r\n    this.elementId = Guid.newGuid();\r\n\r\n  }\r\n\r\n  ngOnInit() {\r\n\r\n    if (!this.textAlign && this.suffix) {\r\n      this.textAlign = 'right';\r\n    }\r\n    if (this.suffix) {\r\n      this.hasSuffix = true;\r\n    }\r\n    if (this.formControlName) {\r\n      this.control = this.controlContainer.control.get(this.formControlName);\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    if (this.aria) {\r\n      for (const key in this.aria) {\r\n        if (Object.prototype.hasOwnProperty.call(this.aria, key)) {\r\n          const value = this.aria[key];\r\n          this.renderer.setAttribute(this.inputElement.nativeElement, 'aria-' + key, value);\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n\r\n\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n\r\n    if (this.control && changes.disabledControl) {\r\n      this.setDisabledState(changes.disabledControl.currentValue);\r\n    }\r\n\r\n    this.cdr.detectChanges();\r\n    // lets change focus back to input after going from disabled to enabled\r\n    if (this.el.nativeElement.offsetParent && this.el.nativeElement.offsetParent.className.includes('search-result-wrapper')) {\r\n      if (changes.disabledControl && changes.disabledControl.previousValue === true) {\r\n        this.focus();\r\n      }\r\n    }\r\n\r\n\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    this.value = value;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean) {\r\n    this.disabledControl = isDisabled;\r\n  }\r\n\r\n\r\n  get errorActive() {\r\n    if (this.disabledControl || this.readonly) {\r\n      return false;\r\n    }\r\n    const classes = this.el.nativeElement.classList;\r\n    return this.showValidation && classes.contains('ng-invalid');\r\n  }\r\n\r\n  propagateChange = (_: any) => {};\r\n  propagateTouch = (_: any) => {};\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.propagateTouch = fn;\r\n  }\r\n  onChange(event: KeyboardEvent) {\r\n    const target = event.target as HTMLInputElement;\r\n    this.value = target.value;\r\n    this.propagateChange(this.value);\r\n  }\r\n\r\n  onBlur(event) {\r\n    this.propagateTouch(this.value);\r\n    this.hasFocus = false;\r\n    this.blur.emit(event);\r\n  }\r\n\r\n  onClickFocus(event) {\r\n    this.mouseDown = true;\r\n    this.hasFocus = false;\r\n  }\r\n\r\n  onFocus(event) {\r\n    if (this.mouseDown) {\r\n      //reset mouseDown event (it will be set again on click)\r\n      this.mouseDown = false;\r\n      return;\r\n    }\r\n\r\n      this.hasFocus = true\r\n      //reset mouseDown event (it will be set again on click)\r\n      this.mouseDown = false;\r\n  }\r\n\r\n  public focus() {\r\n    this.inputElement.nativeElement.focus();\r\n  }\r\n\r\n  getLabelFromId() {\r\n    let labels = document.getElementsByTagName('label');\r\n    for( var i = 0; i < labels.length; i++ ) {\r\n      if (labels[i].htmlFor == this.labelId)\r\n           return labels[i];\r\n   }\r\n  }\r\n\r\n}\r\n","<div class=\"custominput\" [ngClass]=\"{ 'validation-error--active': errorActive, 'validation-error--editing': hasFocus }\">\r\n  <div class=\"validation\" [ngClass]=\"{ 'readonly': readonly }\">\r\n    <div>\r\n      <div class=\"inputwrapper\" role=\"textbox\" [tabindex]=\"disabledControl ? 0 : -1\"\r\n        [attr.aria-disabled]=\"disabledControl\"\r\n      [ngClass]=\"{\r\n        'alignRight': textAlign === 'right',\r\n        'disabled_focus': disabledControl\r\n      }\">\r\n        @if (prefix) {\r\n          <div class=\"prefix\">{{prefix}}</div>\r\n        }\r\n\r\n        <input\r\n          [attr.id]=\"labelId\"\r\n          [type]=\"type\"\r\n          [attr.min]=\"min\"\r\n          [attr.max]=\"max\"\r\n          [disabled]=\"disabledControl\"\r\n          [attr.minlength]=\"minlength\"\r\n          [attr.maxlength]=\"maxlength\"\r\n          [attr.pattern]=\"pattern\"\r\n          [placeholder]=\"disabledControl ? '' : placeholder\"\r\n          [readonly]=\"readonly\"\r\n          [required]=\"required\"\r\n          [attr.step]=\"step\"\r\n          [name]=\"name\"\r\n          [value]=\"value\"\r\n          (search)=\"onChange($event)\"\r\n          (input)=\"onChange($event)\"\r\n          (mousedown)=\"onClickFocus($event)\"\r\n          (focus)=\"onFocus($event)\"\r\n          (blur)=\"onBlur($event)\"\r\n          #inputElement\r\n          [attr.aria-describedby]=\"elementId\"\r\n          [attr.aria-invalid]=\"errorActive\">\r\n          @if (suffix) {\r\n            <div class=\"suffix\">{{suffix}}</div>\r\n          }\r\n          @if (type === 'search') {\r\n            <div class=\"searchicon\">\r\n              <vgr-icon icon=\"search\"></vgr-icon>\r\n            </div>\r\n          }\r\n          <span class=\"screenreader_only\" aria-disabled=\"true\">{{value}}</span>\r\n        </div>\r\n      </div>\r\n      @if (errorActive) {\r\n        <div [attr.id]=\"elementId\" class=\"validation__status\" [attr.aria-live]=\"errorActive ? 'assertive' : 'off'\">\r\n          <vgr-icon icon=\"exclamation-circle\" size=\"sm\" class=\"validation_status__icon\"></vgr-icon>\r\n          @if (control) {\r\n            <div class=\"validation__status__message\">{{errorMessage | errorMessage: control.errors : getLabelFromId() : false}}</div>\r\n          }\r\n          @if (!control) {\r\n            <div class=\"validation__status__message\">{{errorMessage}}</div>\r\n          }\r\n        </div>\r\n      }\r\n    </div>\r\n  </div>\r\n","import {\r\n    trigger,\r\n    animate,\r\n    transition,\r\n    style,\r\n    state,\r\n    query,\r\n    stagger\r\n} from '@angular/animations';\r\n\r\nexport const toggleExpandedState = trigger('toggleExpandedState', [\r\n    state('false', style({\r\n        height: '0', // overflow: 'hidden'\r\n    })),\r\n    state('true', style({\r\n        height: '*'\r\n    })),\r\n    transition('false => *, true => *',\r\n        [\r\n          animate('{{speed}}')\r\n        ],\r\n        { params: { speed: '400ms ease' } }\r\n    )\r\n]);\r\n\r\nexport const toggleChevron = trigger('toggleChevron', [\r\n    state('false', style({\r\n        transform: 'rotate(0deg)'\r\n    })),\r\n    state('true', style({\r\n        transform: 'rotate(-180deg)'\r\n    })),\r\n    transition('* => *', [animate('400ms ease')]),\r\n]);\r\n\r\nexport const toggleFadedState = trigger('toggleFadedState', [\r\n    transition(':enter', [\r\n        style({ opacity: 0 }),\r\n        animate('400ms ease', style({ opacity: 1 })),\r\n    ]),\r\n    transition(':leave', [\r\n        style({ opacity: 1, height: '*' }),\r\n        animate('400ms ease', style({ opacity: 0, height: 0 })),\r\n    ]),\r\n]);\r\n\r\nexport const remove = trigger('remove', [\r\n    // state('start', style({\r\n    //     height: '*'\r\n    // })),\r\n    // state('end', style({\r\n    //     height: '0', opacity: '0', overflow: 'hidden'\r\n    // })),\r\n    // transition('start => end', animate('1.4s'))\r\n    transition(':enter', [\r\n        style({ height: '0', opacity: '1', overflow: 'hidden', display: 'block' }),\r\n        animate('{{speed}}', style({ height: '*', opacity: '1' })),\r\n    ], { params: { speed: '.2s' } }),\r\n\r\n    transition(':leave', [\r\n        style({ height: '*', overflow: 'hidden', display: 'block' }),\r\n        animate('{{speed}}', style({ height: '0', opacity: '0' })),\r\n    ], { params: { speed: '.2s' } }),\r\n]);\r\n\r\nexport const deleteListRow = trigger('deleted', [\r\n    transition(':leave', [\r\n        style({ opacity: 1, height: '*', overflow: 'hidden' }),\r\n        animate('0.4s ease', style({ opacity: 0, height: 0, overflow: 'hidden' })),\r\n    ]),\r\n]);\r\n\r\nexport const listStagger = trigger('listStagger', [\r\n    transition('* <=> *', [\r\n        query(\r\n            ':enter',\r\n            [\r\n                style({ opacity: 0, transform: 'translateY(-15px)' }),\r\n                stagger(\r\n                    '50ms',\r\n                    animate(\r\n                        '550ms ease-out',\r\n                        style({ opacity: 1, transform: 'translateY(0px)' })\r\n                    )\r\n                )\r\n            ],\r\n            { optional: true }\r\n        ),\r\n        query(':leave', animate('50ms', style({ opacity: 0 })), {\r\n            optional: true\r\n        })\r\n    ])\r\n]);\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n    name: 'truncate',\r\n    standalone: false\r\n})\r\nexport class TruncatePipe implements PipeTransform {\r\n    transform(value: string, maxLength?: number): string {\r\n        const trail = '...';\r\n\r\n        if (!value) {\r\n            return '';\r\n        }\r\n\r\n        if (!maxLength) {\r\n            return value;\r\n        }\r\n\r\n        let limit = maxLength;\r\n        if (!limit) {\r\n            return value;\r\n        }\r\n\r\n        if (value.length <= limit) {\r\n            return value;\r\n        }\r\n\r\n        limit = limit - trail.length;\r\n\r\n        return value.substring(0, limit) + trail;\r\n    }\r\n}\r\n","import { Component, ElementRef, HostBinding, Input, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { toggleExpandedState, toggleChevron } from '../../animation';\r\n\r\n@Component({\r\n    selector: 'vgr-card-section',\r\n    templateUrl: './cardSection.component.html',\r\n    styleUrls: ['./card.component.scss'],\r\n    animations: [toggleExpandedState, toggleChevron],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class CardSectionComponent {\r\n    @HostBinding('class.card-section') cardSectionClass = true;\r\n    @Input() @HostBinding('class.card-section--expanded') expanded = false;\r\n    @Input() @HostBinding('class.card-section--readonly') readonly = true;\r\n    @Input() title: string;\r\n    @Input() subtitle: string;\r\n    @Input() truncateLength = 30;\r\n    @Input() backgroundColor = '#FFFFFF';\r\n    @ViewChild('cardSectionHeader', { read: ElementRef, static: true }) cardSectionHeader: ElementRef;\r\n    overflow = false;\r\n    animationSpeed = '400ms ease';\r\n    expandOverflow: boolean;\r\n\r\n    toggleExpanded(event) {\r\n        if ((event instanceof KeyboardEvent && ['Enter', 'Spacebar', ' '].includes(event.key)) || (event instanceof MouseEvent)) {\r\n            this.overflow = false;\r\n            setTimeout(() => {\r\n                this.expanded = !this.expanded;\r\n            });\r\n            event.preventDefault();\r\n        }\r\n    }\r\n\r\n    constructor() { }\r\n\r\n    toggleState(state: 'start' | 'done', expanded: boolean) {\r\n      setTimeout(() => {\r\n        if (state === 'done' && expanded === true) {\r\n            this.expandOverflow = false;\r\n        } else {\r\n            this.expandOverflow = true;\r\n        }\r\n      });\r\n    }\r\n\r\n    public focus() {\r\n        this.cardSectionHeader.nativeElement.focus();\r\n    }\r\n\r\n\r\n}\r\n","<div #cardSectionHeader class=\"card-section__header\" [ngStyle]=\"{'background-color': backgroundColor}\" (click)=\"toggleExpanded($event)\" (keydown)=\"toggleExpanded($event)\" tabindex=\"0\"\r\n  [attr.aria-expanded]=\"expanded\" role=\"button\">\r\n  <h2 class=\"card-section__header__title noselect\">{{title}}</h2>\r\n  @if (subtitle && subtitle.length>0) {\r\n    <h4 class=\"card-section__header__subtitle\" title=\"{{subtitle}}\">\r\n    {{subtitle|truncate:truncateLength}}</h4>\r\n  }\r\n  <vgr-icon icon=\"pen\" color=\"text\" class=\"card-section__header__icon\" size=\"sm\"></vgr-icon>\r\n  <vgr-icon icon=\"chevron-down\" size=\"sm\" class=\"card-section__header__expander\" [@toggleChevron]=\"expanded\">\r\n  </vgr-icon>\r\n</div>\r\n<div class=\"card-section__content\" [@toggleExpandedState]=\"{value: expanded, params: {speed: animationSpeed}}\"\r\n  (@toggleExpandedState.start)=\"toggleState('start', expanded)\"\r\n  (@toggleExpandedState.done)=\"toggleState('done', expanded)\" [class.card-section__content--overflow]=\"expandOverflow\">\r\n  <div class=\"add-padding\">\r\n    @if (expanded) {\r\n      <ng-content></ng-content>\r\n    }\r\n  </div>\r\n</div>\r\n","import { Input, Output, Component, HostBinding, ContentChild, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n\r\n@Component({\r\n    selector: 'vgr-title-value',\r\n    templateUrl: './titleValue.component.html',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class TitleValueComponent {\r\n    @HostBinding('class.title-value') titleValueClass = true;\r\n    @HostBinding('class.slim-row')\r\n    public get isSlim(): boolean {\r\n        return this.slim;\r\n    }\r\n    @Input() slim: boolean;\r\n    constructor() {\r\n    }\r\n\r\n}\r\n","<ng-content select=\"vgr-title-value-heading\"></ng-content>\r\n<ng-content select=\"vgr-title-value-container\"></ng-content>\r\n","\r\nimport { Component, HostBinding, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n\r\n@Component({\r\n    selector: 'vgr-title-value-layout',\r\n    template: `<ng-content></ng-content>`,\r\n    styleUrls: ['./titleValue.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class TitleValueLayoutComponent {\r\n\r\n    @HostBinding('class.title-value-layout') TitleValueLayoutClass = true;\r\n    constructor() { }\r\n\r\n}\r\n","import { Component, HostBinding, Input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-title-value-container',\r\n    templateUrl: './titleValueContainer.component.html',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class TitleValueContainerComponent {\r\n    @Input() @HostBinding('style.flex') width = 1;\r\n    constructor() {}\r\n}\r\n","<div class=\"title-value__value\">\r\n    <ng-content></ng-content>\r\n</div>","import { Component, HostBinding, Input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-title-value-heading',\r\n    templateUrl: './titleValueHeading.component.html',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class TitleValueHeadingComponent {\r\n    @Input() for: string = null;\r\n    @Input() @HostBinding('style.flex') width = 1;\r\n    constructor() {}\r\n}\r\n","<label class=\"title-value__title\" [attr.for]=\"for\">\r\n    <ng-content></ng-content>\r\n</label>","import { Component, Input, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { trigger, state, animate, style, transition } from '@angular/animations';\r\n\r\n@Component({\r\n    selector: 'vgr-skeleton-loader',\r\n    templateUrl: './skeleton-loader.component.html',\r\n    styleUrls: ['./skeleton-loader.component.scss'],\r\n    animations: [\r\n        trigger('fadeInOut', [\r\n            state('true', style({\r\n                opacity: 1\r\n            })),\r\n            state('false', style({\r\n                opacity: 0\r\n            })),\r\n            transition('* => *', animate('400ms ease'))\r\n        ])\r\n    ],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class SkeletonLoaderComponent {\r\n  private _minimumTimeMs = 1000;\r\n  private lastActivated: Date;\r\n  private _active = false;\r\n  visible = false;\r\n\r\n  @Input() set active(value: boolean) {\r\n    if ((this._active && !value) || (!this._active && value)) {\r\n      this._active = value;\r\n      if (!this._active) {\r\n        this.hideWhenMinimumTimeHasPassed();\r\n      } else {\r\n        this.showForMinimumTime();\r\n      }\r\n    }\r\n  }\r\n  get active(): boolean {\r\n    return this._active;\r\n  }\r\n\r\n  @Input() width: string = '';\r\n  @Input() height: string = '';\r\n  @Input() circle: boolean = false;\r\n\r\n\r\n  constructor(private changeDetector: ChangeDetectorRef) { }\r\n\r\n  private startSpinning() {\r\n    this.visible = true;\r\n  }\r\n  private stopSpinning() {\r\n    setTimeout(() => {\r\n      if (this._active) {\r\n        this.startSpinning();\r\n      }\r\n    }, 400);\r\n    this.visible = false;\r\n  }\r\n  private hideWhenMinimumTimeHasPassed() {\r\n    const timeShown = new Date().getTime() - this.lastActivated.getTime();\r\n    if (timeShown >= this._minimumTimeMs) {\r\n      this.stopSpinning();\r\n    } else {\r\n      setTimeout(() => {\r\n        this.stopSpinning();\r\n      }, this._minimumTimeMs - timeShown);\r\n    }\r\n  }\r\n\r\n  private showForMinimumTime() {\r\n    this.lastActivated = new Date();\r\n    this.startSpinning();\r\n  }\r\n\r\n\r\n}\r\n","<div class=\"skeleton-loader\" [ngStyle]=\"{'width': width, 'height': height, 'border-radius': circle ? '50%' : '' }\" [@fadeInOut]=\"visible\">\r\n</div>\r\n","import { Output, EventEmitter, Directive } from '@angular/core';\r\n@Directive()\r\nexport abstract class MenuItemBaseDirective {\r\n    @Output() home: EventEmitter<null> = new EventEmitter();\r\n    @Output() end: EventEmitter<null> = new EventEmitter();\r\n    @Output() escape: EventEmitter<null> = new EventEmitter();\r\n    @Output() arrowUp: EventEmitter<null> = new EventEmitter();\r\n    @Output() arrowDown: EventEmitter<null> = new EventEmitter();\r\n    @Output() tab: EventEmitter<null> = new EventEmitter();\r\n    @Output() enter: EventEmitter<null> = new EventEmitter();\r\n    @Output() showExpanded: boolean;\r\n\r\n    constructor() { }\r\n    setFocus(movingUp: boolean = false) { }\r\n}\r\n","import { Input, Component, ElementRef, HostBinding, forwardRef, HostListener, ContentChildren, QueryList, AfterContentInit, OnInit, ViewChild, OnDestroy, Renderer2, EventEmitter, Output, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { MenuItemBaseDirective } from './menu-item-base';\r\nimport { trigger, style, transition, animate, state } from '@angular/animations';\r\nimport { MenuItemComponent } from '../..';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n    selector: 'vgr-submenu',\r\n    templateUrl: './submenu.component.html',\r\n    providers: [{ provide: MenuItemBaseDirective, useExisting: forwardRef(() => SubmenuComponent) }],\r\n    animations: [\r\n        trigger('toggleSubMenu', [\r\n            state('void', style({\r\n                height: '0',\r\n            })),\r\n            state('collapsed', style({\r\n                height: '0'\r\n            })),\r\n            state('expanded', style({\r\n                height: '*'\r\n            })),\r\n            transition('* => expanded', [animate('600ms  ease-in')]),\r\n            transition('* => collapsed', [animate('600ms ease-out')])\r\n        ])\r\n    ],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class SubmenuComponent extends MenuItemBaseDirective implements AfterContentInit, OnInit, OnDestroy {\r\n    @Input() text: string;\r\n    private _showExpanded: boolean;\r\n    private ngUnsubscribe: any = new Subject();\r\n    state: string;\r\n\r\n    @HostBinding('attr.aria-haspopup') hasAriaPopup = 'menu';\r\n    @HostBinding('attr.role') role = 'menuitem';\r\n    @Input() @HostBinding('attr.aria-expanded') expanded = false;\r\n    @Output() ToggleChanged: EventEmitter<any> = new EventEmitter();\r\n\r\n    @ContentChildren(MenuItemBaseDirective) menuItems: QueryList<MenuItemComponent>;\r\n    @HostBinding('class.submenu') hasClass = true;\r\n    @HostBinding('class.submenu--child-selected') childSelected: boolean;\r\n    @ViewChild('menuitem', { static: true }) menuitem: ElementRef;\r\n\r\n    @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\r\n\r\n        if (event.key === 'Tab') { // Tab\r\n            this.tab.emit();\r\n        }\r\n\r\n        if (event.key === ' ' || event.key === 'Spacebar' || event.key === 'Enter') {\r\n            this._showExpanded = true;\r\n            this.expanded = !this.expanded;\r\n            // SetFocus after the animation is completed.\r\n            setTimeout(() => {\r\n                if (this.expandedState) {\r\n                    this.menuItems.toArray()[0].setFocus();\r\n                } else {\r\n                    this.setFocus();\r\n                }\r\n            }, 650);\r\n        }\r\n        if (event.key === 'Home') {\r\n            this.home.emit();\r\n        }\r\n        if (event.key === 'End') {\r\n            this.end.emit();\r\n        }\r\n        if (event.key === 'ArrowDown' || event.key === 'Down') {\r\n            if (this.expanded) {\r\n                this.menuItems.toArray()[0].setFocus();\r\n            } else {\r\n                this.arrowDown.emit();\r\n            }\r\n        }\r\n        if (event.key === 'ArrowUp' || event.key === 'Up') {\r\n            this.arrowUp.emit();\r\n        }\r\n        if (event.key === 'Escape' || event.key === 'Esc') {\r\n            this.escape.emit();\r\n        }\r\n        if (event.key === 'Enter') {\r\n            this.enter.emit();\r\n        }\r\n        if ([' ', 'Spacebar', 'Enter', 'Home', 'End', 'ArrowDown', 'Down', 'ArrowUp', 'Up', 'Escape', 'Esc'].indexOf(event.key) > -1) {\r\n            event.stopPropagation();\r\n            event.preventDefault();\r\n        }\r\n    }\r\n\r\n\r\n    get expandedState() {\r\n        this.state = this.expanded ? 'expanded' : 'collapsed';\r\n        return this._showExpanded;\r\n    }\r\n\r\n    set expandedState(show: boolean) {\r\n        if (show) {\r\n            this._showExpanded = true;\r\n            this.expanded = true;\r\n            this.state = 'expanded';\r\n        } else {\r\n            this.state = 'collapsed';\r\n            this.expanded = false;\r\n        }\r\n    }\r\n\r\n    toggleExpand() {\r\n        this._showExpanded = true;\r\n        this.expanded = !this.expanded;\r\n        this.ToggleChanged.emit();\r\n    }\r\n\r\n    constructor(private router: Router, private elementRef: ElementRef, private renderer: Renderer2) {\r\n        super();\r\n    }\r\n\r\n    animationDone(event: any) {\r\n        if (event.fromState === 'expanded' && event.toState === 'collapsed') {\r\n\r\n            this._showExpanded = false;\r\n            this.expanded = false;\r\n        }\r\n    }\r\n    setFocus(handle: boolean = false) {\r\n        if (handle && this.expanded) {\r\n            this.menuItems.last.setFocus();\r\n        } else {\r\n            this.menuitem.nativeElement.focus();\r\n        }\r\n    }\r\n\r\n    ngOnInit() {\r\n        this._showExpanded = this.expanded;\r\n\r\n        this.router.events\r\n            .pipe(takeUntil(this.ngUnsubscribe))\r\n            .subscribe((event) => {\r\n                if (event instanceof NavigationEnd) {\r\n                    this.setChildSelected(event);\r\n                }\r\n            });\r\n\r\n        this.childSelected = !!this.elementRef.nativeElement.querySelector('.submenu--child-selected');  // The class .menu__item--selected does not exist.\r\n    }\r\n\r\n    ngAfterContentInit() {\r\n        this.addSubscriptions();\r\n        this.menuItems.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe((change) => {\r\n            this.ngUnsubscribe.next();\r\n            this.ngUnsubscribe.complete();\r\n            this.addSubscriptions();\r\n        });\r\n    }\r\n\r\n    addSubscriptions() {\r\n        const menuItemArray = this.menuItems.toArray();\r\n        menuItemArray.forEach((x, i) => {\r\n            x.home\r\n                .pipe(takeUntil(this.ngUnsubscribe))\r\n                .subscribe(() => {\r\n                    this.home.emit();\r\n                });\r\n            x.end\r\n                .pipe(takeUntil(this.ngUnsubscribe))\r\n                .subscribe(() => {\r\n                    this.end.emit();\r\n                });\r\n            x.arrowUp\r\n                .pipe(takeUntil(this.ngUnsubscribe))\r\n                .subscribe(() => {\r\n                    if (i === 0) {\r\n                        this.setFocus();\r\n                        return;\r\n                    }\r\n                    menuItemArray[i - 1].setFocus();\r\n                });\r\n            x.arrowDown\r\n                .pipe(takeUntil(this.ngUnsubscribe))\r\n                .subscribe(() => {\r\n                    if (i === menuItemArray.length - 1) {\r\n                        this.arrowDown.emit();\r\n                        return;\r\n                    }\r\n                    menuItemArray[i + 1].setFocus();\r\n                });\r\n            x.escape\r\n                .pipe(takeUntil(this.ngUnsubscribe))\r\n                .subscribe(() => {\r\n                    this.escape.emit();\r\n                });\r\n            x.tab\r\n                .pipe(takeUntil(this.ngUnsubscribe))\r\n                .subscribe((event) => {\r\n                    this.tab.emit(event);\r\n                });\r\n            x.enter\r\n            .pipe(takeUntil(this.ngUnsubscribe))\r\n            .subscribe((event) => {\r\n                this.enter.emit(event);\r\n            });\r\n        });\r\n    }\r\n\r\n    private setChildSelected(event: NavigationEnd) {\r\n        const itemArray = this.menuItems.toArray();\r\n        const menuItemArray = <MenuItemComponent[]>itemArray;\r\n        const url = decodeURIComponent(event.url);\r\n        const matches = menuItemArray.filter(m => url.includes(m.link));\r\n        if (matches.length) {\r\n            this.expandedState = true;\r\n            setTimeout(() => {\r\n                this.childSelected = !!this.elementRef.nativeElement.querySelector('.submenu--child-selected'); // The class .menu__item--selected does not exist.\r\n            }, 650);\r\n        } else {\r\n            this.childSelected = false;\r\n        }\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        this.ngUnsubscribe.next();\r\n        this.ngUnsubscribe.complete();\r\n    }\r\n}\r\n","<div #menuitem class=\"menu__item\" tabindex=\"0\" (click)=\"toggleExpand()\">\r\n  <a>{{text}}</a>\r\n  <vgr-icon icon=\"chevron-down\" size=\"xs\" class=\"menu__item__expander\" [ngClass]=\"{'expanded': expanded}\"></vgr-icon>\r\n</div>\r\n\r\n@if (expandedState) {\r\n  <div class=\"submenu-content\" [@toggleSubMenu]=\"state\" (@toggleSubMenu.done)=\"animationDone($event)\">\r\n    <ng-content></ng-content>\r\n  </div>\r\n}\r\n","import { Input, Component, HostBinding, AfterContentInit, ContentChildren, QueryList, OnDestroy, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MenuItemBaseDirective } from './menu-item-base';\r\nimport { SubmenuComponent } from './submenu.component';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n@Component({\r\n    selector: 'vgr-menu',\r\n    templateUrl: './menu.component.html',\r\n    styleUrls: ['./menu.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class MenuComponent implements AfterContentInit, OnDestroy {\r\n    private ngUnsubscribe: any = new Subject();\r\n\r\n    @Input() title: string;\r\n    @HostBinding('class.menu') hasClass = true;\r\n    @ContentChildren(MenuItemBaseDirective) menuItems: QueryList<MenuItemBaseDirective>;\r\n    @HostBinding('attr.role') role = 'menu';\r\n    @HostBinding('attr.aria-orientation') orientation = 'vertical';\r\n\r\n    get smallerFont(): boolean {\r\n        return this.title && this.title.length > 9;\r\n    }\r\n\r\n    constructor() { }\r\n\r\n    ngAfterContentInit() {\r\n        this.addSubscriptions();\r\n        this.menuItems.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe((change) => {\r\n            this.ngUnsubscribe.next();\r\n            this.ngUnsubscribe.complete();\r\n            this.addSubscriptions();\r\n        });\r\n\r\n    }\r\n\r\n    addSubscriptions() {\r\n        this.menuItems.forEach((x, i) => {\r\n            x.home\r\n                .pipe(takeUntil(this.ngUnsubscribe))\r\n                .subscribe(() => this.menuItems.first.setFocus());\r\n\r\n            x.end\r\n                .pipe(takeUntil(this.ngUnsubscribe))\r\n                .subscribe(() => this.menuItems.last.setFocus(true));\r\n\r\n            x.arrowUp\r\n                .pipe(takeUntil(this.ngUnsubscribe))\r\n                .subscribe(() => {\r\n                    if (i === 0) {\r\n                        const lastMenuItem = this.menuItems.last;\r\n                        if (lastMenuItem instanceof SubmenuComponent) {\r\n                            if ((<SubmenuComponent>lastMenuItem).expanded) {\r\n                                (<SubmenuComponent>lastMenuItem).menuItems.last.setFocus();\r\n\r\n                                return;\r\n                            }\r\n                        }\r\n                        this.menuItems.last.setFocus();\r\n                        return;\r\n                    }\r\n                    this.menuItems.toArray()[i - 1].setFocus(true);\r\n                });\r\n\r\n\r\n            x.arrowDown\r\n                .pipe(takeUntil(this.ngUnsubscribe))\r\n                .subscribe(() => {\r\n                    if (i === this.menuItems.length - 1) {\r\n                        this.menuItems.first.setFocus();\r\n                        return;\r\n                    }\r\n                    this.menuItems.toArray()[i + 1].setFocus();\r\n                });\r\n\r\n            x.escape\r\n                .pipe(takeUntil(this.ngUnsubscribe))\r\n                .subscribe(() => {\r\n                    this.menuItems.toArray()[i].showExpanded = false;\r\n                    this.menuItems.toArray()[i].setFocus();\r\n                });\r\n        });\r\n    }\r\n\r\n    ngOnDestroy() {\r\n        this.ngUnsubscribe.next();\r\n        this.ngUnsubscribe.complete();\r\n    }\r\n}\r\n","<div class=\"menu__header\">\r\n  <div class=\"menu__header__title\" [ngClass]=\"{'menu__header__title--smaller-font-size': smallerFont}\">{{ title }}</div>\r\n</div>\r\n<nav>\r\n  <ng-content></ng-content>\r\n</nav>\r\n<div class=\"menu__footer\"></div>\r\n","import { Input, Component, HostListener, ElementRef, forwardRef, HostBinding, AfterViewInit, ViewChild, Renderer2, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Guid } from '../../utils/guid';\r\nimport { MenuItemBaseDirective } from './menu-item-base';\r\n\r\n@Component({\r\n    selector: 'vgr-menu-item',\r\n    templateUrl: './menu-item.component.html',\r\n    providers: [{ provide: MenuItemBaseDirective, useExisting: forwardRef(() => MenuItemComponent) }],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class MenuItemComponent extends MenuItemBaseDirective implements AfterViewInit {\r\n    @Input() text: string;\r\n    @Input() link: string;\r\n    @Output() action = new EventEmitter<MouseEvent | KeyboardEvent>();\r\n    @Input() disabled = false;\r\n    @Input() disabledTooltip: string;\r\n    @Input() notification: string;\r\n    @Input() notificationColor: string;\r\n    @Input() notificationTooltip: string;\r\n    @Input() isInternalLink = true;\r\n    @HostBinding('attr.role') role = 'menuitem';\r\n    @HostBinding('attr.aria-disabled') ariaDisabled;\r\n    @ViewChild('menuitem') menuitem: ElementRef;\r\n    elementId: string;\r\n\r\n    @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\r\n        if (event.key === ' ' || event.key === 'Spacebar' || event.key === 'Enter') {\r\n            if (this.disabled) {\r\n                event.stopPropagation();\r\n                event.preventDefault();\r\n                return;\r\n            } else if (this.link) {\r\n                this.isInternalLink ? this.router.navigate([this.link]) : this.onExternalLink();\r\n                this.enter.emit();\r\n              setTimeout(() => {\r\n                const id = document.getElementById('page-content-focus');\r\n                const modalIsOpen = document.getElementsByClassName('vgr-modal--open');\r\n\r\n                if (id && modalIsOpen.length === 0) {\r\n                  this.renderer.selectRootElement('#page-content-focus', true).focus();\r\n                }\r\n              }, 100);\r\n            } else if (this.action) {\r\n                this.enter.emit();\r\n                this.onAction(event);\r\n\r\n            }\r\n\r\n        }\r\n        if (event.key === 'Home') {\r\n            this.home.emit();\r\n        }\r\n        if (event.key === 'End') {\r\n            this.end.emit();\r\n        }\r\n        if (event.key === 'ArrowUp' || event.key === 'Up') {\r\n            this.arrowUp.emit();\r\n        }\r\n        if (event.key === 'ArrowDown' || event.key === 'Down') {\r\n            this.arrowDown.emit();\r\n        }\r\n        if (event.key === 'Escape' || event.key === 'Esc') {\r\n            this.escape.emit();\r\n        }\r\n        if (event.key === 'Tab') {\r\n            this.tab.emit();\r\n        }\r\n\r\n        if ([' ', 'Spacebar', 'Enter', 'Home', 'End', 'ArrowDown', 'Down', 'ArrowUp', 'Up', 'Escape', 'Esc'].indexOf(event.key) > -1) {\r\n            event.stopPropagation();\r\n            event.preventDefault();\r\n        }\r\n\r\n    }\r\n\r\n    get notificationColorClass(): string {\r\n        return 'notification--' + this.notificationColor;\r\n    }\r\n\r\n    get notificationText(): string {\r\n        return this.notification && this.notification.length > 2 ? '!' : this.notification;\r\n    }\r\n\r\n    constructor(private router: Router, private renderer: Renderer2) {\r\n      super();\r\n        this.elementId = `menu-item_${Guid.newGuid()}`;\r\n    }\r\n\r\n    setFocus(movingUp: boolean = false) {\r\n        this.menuitem.nativeElement.focus();\r\n    }\r\n\r\n    ngAfterViewInit() {\r\n        setTimeout(() => {\r\n            this.ariaDisabled = this.disabled;\r\n        }, 25);\r\n    }\r\n\r\n    onExternalLink() {\r\n        if (this.link) {\r\n            return window.open(this.link, '_blank');\r\n        }\r\n    }\r\n\r\n    onAction(event: MouseEvent | KeyboardEvent) {\r\n        this.action.emit(event);\r\n    }\r\n\r\n    public focus() {\r\n        this.setFocus();\r\n    }\r\n}\r\n","@if (!disabled) {\r\n  <div>\r\n    <!-- Internal link -->\r\n    @if (isInternalLink && link) {\r\n      <div [id]=\"elementId\" #menuitem class=\"menu__item\" routerLinkActive=\"menu__item--active\" routerLink={{link}}\r\n        [routerLinkActiveOptions]=\"{exact:false}\" tabindex=\"0\">\r\n        <a>{{text}}</a>\r\n        @if (notification) {\r\n          <span class=\"menu__item--notification\" [ngClass]=\"notificationColorClass\"\r\n          title={{notificationTooltip}}>{{ notificationText }}</span>\r\n        }\r\n      </div>\r\n    }\r\n    <!-- External link -->\r\n    @if (!isInternalLink && link) {\r\n      <div [id]=\"elementId\" #menuitem (click)=\"onExternalLink()\" class=\"menu__item\" tabindex=\"0\">\r\n        <a>{{text}}</a>\r\n        @if (notification) {\r\n          <span class=\"menu__item--notification\" [ngClass]=\"notificationColorClass\"\r\n          title={{notificationTooltip}}>{{ notificationText }}</span>\r\n        }\r\n      </div>\r\n    }\r\n    <!-- Action -->\r\n    @if (!link) {\r\n      <div [id]=\"elementId\" #menuitem (click)=\"onAction($event)\" class=\"menu__item\" tabindex=\"0\">\r\n        <a>{{text}}</a>\r\n        @if (notification) {\r\n          <span class=\"menu__item--notification\" [ngClass]=\"notificationColorClass\"\r\n          title={{notificationTooltip}}>{{ notificationText }}</span>\r\n        }\r\n      </div>\r\n    }\r\n  </div>\r\n} @else {\r\n  <div #menuitem class=\"menu__item menu__item--disabled\" tabindex=\"0\">\r\n    <p title=\"{{disabledTooltip}}\">{{text}}</p>\r\n    @if (notification) {\r\n      <span class=\"menu__item--notification\" [ngClass]=\"notificationColorClass\"\r\n      title={{notificationTooltip}}>{{ notificationText }}</span>\r\n    }\r\n  </div>\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-menu-separator',\r\n    template: `<span class=\"menu__item menu-separator\"></span>`,\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class MenuSeparatorComponent {\r\n\r\n    constructor() { }\r\n}\r\n","import { Component, Input, OnChanges, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-ring-with-text',\r\n    templateUrl: './ring-with-text.component.html',\r\n    styleUrls: ['./ring-with-text.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class RingWithTextComponent implements OnChanges {\r\n\r\n  @Input() size: string;\r\n  @Input() text: string;\r\n  @Input() textColor: string;\r\n  @Input() circleColor: string;\r\n  ringSize = 'ring-with-text--small';\r\n\r\n  constructor() { }\r\n\r\n  ngOnChanges() {\r\n    if (this.text) {\r\n      this.text = this.text.substr(0, 2);\r\n    }\r\n    this.ringSize = this.size === 'large'  ? 'ring-with-text--large' : 'ring-with-text--small';\r\n  }\r\n\r\n\r\n}\r\n","@if (text) {<div class=\"ring-with-text\" [ngClass]=\"ringSize\" [ngStyle]=\"{color: textColor, backgroundColor: circleColor}\" >{{text}}</div>}","import { Component, Input, HostBinding, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-login-information',\r\n    templateUrl: './loginInformation.component.html',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class LoginInformationComponent {\r\n    @Input() userName: string;\r\n    @Input() initials: string;\r\n    @Input() textColor: string;\r\n    @Input() circleColor: string;\r\n}\r\n","<div class=\"login-information\">\r\n  <div class=\"login-information__user-name\">\r\n    <span>Inloggad som:<br />{{userName}}</span>\r\n  </div>\r\n  <vgr-ring-with-text [text]=\"initials\" [textColor]=\"textColor\" [circleColor]=\"circleColor\"></vgr-ring-with-text>\r\n</div>","import { Component, Input, ElementRef, HostListener, ContentChildren, QueryList, SimpleChanges, OnChanges, AfterContentInit, OnDestroy, Renderer2, ViewChild, ContentChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { MenuItemBaseDirective } from '../menu/menu-item-base';\r\nimport { SubmenuComponent } from '../menu/submenu.component';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { MenuItemComponent } from '../menu/menu-item.component';\r\n\r\n@Component({\r\n    selector: 'vgr-header-menu',\r\n    templateUrl: './headerMenu.component.html',\r\n    styleUrls: ['./headerMenu.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class HeaderMenuComponent implements AfterContentInit, OnDestroy, OnChanges {\r\n  private ngUnsubscribe: any = new Subject();\r\n\r\n  @ContentChildren(MenuItemBaseDirective) menuItems: QueryList<MenuItemBaseDirective>;\r\n  @Input() userName: string;\r\n  @Input() initials: string;\r\n  @Input() textColor: string;\r\n  @Input() circleColor: string;\r\n  internalInitials: string;\r\n  hideMenu = true;\r\n\r\n  constructor(private elementRef: ElementRef) {\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    const menuItemArray = this.menuItems.toArray();\r\n\r\n    menuItemArray.forEach((menuItem, i) => {\r\n      menuItem.home\r\n        .pipe(takeUntil(this.ngUnsubscribe))\r\n        .subscribe(() => this.menuItems.first.setFocus());\r\n\r\n      menuItem.end\r\n        .pipe(takeUntil(this.ngUnsubscribe))\r\n        .subscribe(() => this.menuItems.last.setFocus(true));\r\n\r\n      menuItem.arrowUp\r\n        .pipe(takeUntil(this.ngUnsubscribe))\r\n        .subscribe(() => {\r\n          if (i === 0) {\r\n            const lastMenuItem = this.menuItems.last;\r\n            if (lastMenuItem instanceof SubmenuComponent) {\r\n              if ((<SubmenuComponent>lastMenuItem).expanded) {\r\n                (<SubmenuComponent>lastMenuItem).menuItems.last.setFocus();\r\n\r\n                return;\r\n              }\r\n            }\r\n            this.menuItems.last.setFocus();\r\n            return;\r\n          }\r\n          this.menuItems.toArray()[i - 1].setFocus(true);\r\n        });\r\n\r\n      menuItem.arrowDown.pipe(takeUntil(this.ngUnsubscribe))\r\n        .subscribe(() => {\r\n          if (i === this.menuItems.length - 1) {\r\n            this.menuItems.first.setFocus();\r\n            return;\r\n          }\r\n          this.menuItems.toArray()[i + 1].setFocus();\r\n        });\r\n\r\n      menuItem.escape\r\n        .pipe(takeUntil(this.ngUnsubscribe))\r\n        .subscribe(() => {\r\n          this.elementRef.nativeElement.querySelector('.header__login-info-menu').focus();\r\n          this.hideMenuAction();\r\n        });\r\n\r\n      menuItem.tab\r\n        .pipe(takeUntil(this.ngUnsubscribe))\r\n        .subscribe(() => {\r\n          this.hideMenuAction();\r\n        });\r\n\r\n      menuItem.enter\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(() => {\r\n        this.closeMenuOnClick(event, this.menuItems.map(x => x as MenuItemComponent))\r\n      });\r\n\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n\r\n  clickToggleHeaderMenu(event: Event) {\r\n    this.toggleHeaderMenu(event);\r\n  }\r\n\r\n  closeMenuOnClick(event, menuItems: any) {\r\n    if (!( event instanceof KeyboardEvent) && ( event.key === 'Spacebar' || event.key === 'Enter')) {\r\n      return\r\n    }\r\n\r\n    const focusedId = event.composedPath().filter((x: HTMLElement) => x.id && x.id.startsWith('menu-item'))[0]?.id;\r\n    menuItems.forEach((menuitem) => {\r\n      if (menuitem instanceof SubmenuComponent) {\r\n        let subMenuItem : SubmenuComponent = menuitem;\r\n        let menuClicked = subMenuItem.menuItems.filter((x) => x.elementId === focusedId)[0];\r\n        if (menuClicked) {\r\n          this.hideMenuAction();\r\n        }\r\n      } else if (menuitem.elementId === focusedId) {\r\n          if (!(menuitem instanceof SubmenuComponent)) {\r\n            this.hideMenuAction();\r\n          } else {\r\n            this.hideMenu = false;\r\n          }\r\n        }\r\n    })\r\n   }\r\n\r\n  keyToggleHeaderMenu(event: KeyboardEvent) {\r\n\r\n    if (this.menuItems.length > 0 && event.key === ' ' || event.key === 'Spacebar' || event.key === 'Enter') {\r\n      event.preventDefault();\r\n      this.toggleHeaderMenu(event);\r\n      setTimeout(() => {\r\n        this.focusFirstMenuItem();\r\n      }, 100);\r\n    } else if (this.menuItems.length > 0 && event.key === 'Tab' && !this.hideMenu) {\r\n      event.preventDefault();\r\n      this.focusFirstMenuItem();\r\n    } else if (event.key === 'Escape') {\r\n      this.hideMenuAction();\r\n    }\r\n  }\r\n\r\n  toggleHeaderMenu(event: MouseEvent | any) {\r\n    this.hideMenu = !this.hideMenu;\r\n    if (!this.hideMenu) {\r\n      event.stopPropagation();\r\n    }\r\n  }\r\n\r\n  focusFirstMenuItem() {\r\n    this.menuItems.first.setFocus();\r\n  }\r\n\r\n\r\n\r\n @HostListener('document:mousedown', ['$event'])\r\n  onDocumentClick(event: any) {\r\n\r\n    if (!this.elementRef.nativeElement.contains(event.target)) {\r\n      this.hideMenuAction();\r\n    }\r\n  }\r\n\r\n  @HostListener('document:keydown', ['$event'])\r\n  onDocumentKeyPressed(event: any) {\r\n    if (event.key === 'Spacebar' || event.key === 'Enter') {\r\n      if (!this.elementRef.nativeElement.contains(event.target)) {\r\n        this.hideMenuAction();\r\n      }\r\n    }\r\n  }\r\n\r\n  hideMenuAction() {\r\n    this.hideMenu = true;\r\n    const submenus = this.menuItems.filter(menuItem => menuItem instanceof SubmenuComponent);\r\n    submenus.forEach((submenu: SubmenuComponent) => {\r\n      submenu.expandedState = false;\r\n    })\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    const initialsChange = changes['initials'];\r\n    const userNameChange = changes['userName'];\r\n\r\n    if (initialsChange) {\r\n      if (initialsChange.previousValue && !initialsChange.currentValue) {\r\n        this.internalInitials = this.getInitialsFromUserName();\r\n      } else {\r\n        this.internalInitials = initialsChange.currentValue;\r\n      }\r\n      return;\r\n    }\r\n\r\n    if (userNameChange && !this.initials) {\r\n      this.internalInitials = this.getInitialsFromUserName();\r\n    }\r\n  }\r\n\r\n  private getInitialsFromUserName(): string {\r\n    if (!this.userName) {\r\n      return '';\r\n    }\r\n\r\n    const names = this.userName.split(' ');\r\n    if (names.length > 1) {\r\n      return names[0].substring(0, 1) + names[names.length - 1].substring(0, 1);\r\n    } else {\r\n      return names[0].substring(0, 1);\r\n    }\r\n  }\r\n\r\n}\r\n","@if (userName) {\r\n  <div [ngClass]=\"{ 'header__login-info-menu': menuItems.length > 0 }\" tabindex=\"0\"\r\n    (keydown)=\"keyToggleHeaderMenu($event)\" [attr.aria-haspopup]=\"menuItems.length > 0\" role=\"menu\">\r\n    <vgr-login-information [initials]=\"internalInitials\" [userName]=\"userName\" [textColor]=\"textColor\" (mousedown)=\"clickToggleHeaderMenu($event)\"\r\n      [circleColor]=\"circleColor\" [attr.aria-haspopup]=\"menuItems.length > 0\" role=\"menu\">\r\n    </vgr-login-information>\r\n    @if (menuItems.length > 0) {\r\n      <vgr-icon icon=\"{{hideMenu ? 'ellipsis-v' : 'times'}}\" size=\"xs\" class=\"caret\"\r\n      class=\"header__login-info-menu-dots\" [ngClass]=\"{'expanded' : !hideMenu}\" (mousedown)=\"clickToggleHeaderMenu($event)\"></vgr-icon>\r\n    }\r\n    @if (menuItems.length > 0) {\r\n      <div class=\"header-menu header-menu__content\" [ngClass]=\"{'header-menu--hidden' : hideMenu}\">\r\n        <div role=\"menu\" (click)=\"closeMenuOnClick($event, menuItems)\" (keydown)=\"closeMenuOnClick($event, menuItems)\">\r\n          <ng-content></ng-content>\r\n        </div>\r\n      </div>\r\n    }\r\n  </div>\r\n}\r\n","import { Component, Input, ContentChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { HeaderMenuComponent } from '../headerMenu/headerMenu.component';\r\n\r\n@Component({\r\n    selector: 'vgr-header',\r\n    templateUrl: './header.component.html',\r\n    styleUrls: ['./header.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class HeaderComponent {\r\n  @Input() systemText: string;\r\n  @Input() hideSwosh = false;\r\n  @Input() logoClass: string;\r\n  @ContentChild(HeaderMenuComponent) headerMenuComponent: HeaderMenuComponent;\r\n\r\n  constructor() {}\r\n\r\n}\r\n","<header class=\"header\" [ngClass]=\"{ 'header--hide-swosh': hideSwosh }\">\r\n  <div alt=\"VG_Ne\" [ngClass]=\"{ 'header__vgr-logo': !logoClass }\" [class]=\"logoClass\"></div>\r\n  @if (systemText) {\r\n    <div class=\"header__system-text-box\" tabindex=\"1\">\r\n      {{systemText}}\r\n    </div>\r\n  }\r\n  <ng-content></ng-content>\r\n</header>\r\n","import { Component, Input, OnInit, Output, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\n\r\n@Component({\r\n    selector: 'vgr-scrollbar',\r\n    templateUrl: './scrollbar.component.html',\r\n    styleUrls: ['./scrollbar.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class ScrollbarComponent {\r\n  @ViewChild(NgScrollbar) scrollable: NgScrollbar;\r\n  @Input() autoheightDisabled = 'false';\r\n  @Input() autowidthDisabled = 'true';\r\n  @Input() visibility = 'native';\r\n  @Input() maxHeight;\r\n\r\n  constructor() { }\r\n\r\n}\r\n","<ng-scrollbar #scrollable\r\n[autoHeightDisabled]=\"autoheightDisabled\"\r\n[autoWidthDisabled]=\"autowidthDisabled\"\r\n[visibility]=\"visibility\"\r\n[appearance]=\"'standard'\"\r\nclass=\"scroll-container\"\r\n[ngStyle]=\"{'max-height': maxHeight + 'px' }\">\r\n  <ng-content></ng-content>\r\n</ng-scrollbar>\r\n","import { AfterContentInit, Component, ContentChild, HostListener, ChangeDetectionStrategy } from '@angular/core';\r\nimport { SubmenuComponent } from './submenu.component';\r\n\r\n@Component({\r\n    selector: 'vgr-sidebar-menu',\r\n    templateUrl: './sidebar-menu.component.html',\r\n    styleUrls: ['./sidebar-menu.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class SidebarMenuComponent implements AfterContentInit {\r\n  @ContentChild(SubmenuComponent) subMenu: SubmenuComponent;\r\n\r\n    constructor() {}\r\n\r\n    addHeight() {\r\n      const sidebarmenu = document.querySelector('.sidebar-menu') as HTMLElement;\r\n      sidebarmenu.style.height = '1500px';\r\n      setTimeout(() => {\r\n        sidebarmenu.style.height = 'calc(100vh - 80px)';\r\n      }, 700);\r\n    }\r\n    ngAfterContentInit() {\r\n      const sidebarmenu = document.querySelector('.sidebar-menu') as HTMLElement;\r\n      if (this.subMenu) {\r\n        this.addHeight();\r\n        this.subMenu.ToggleChanged.subscribe(() =>\r\n        {\r\n          // Detta är en hack-lösning för att scrollbaren skall räkna om sig och visa scrollbar eller inte.\r\n          // 80px är hårdkodad header-height\r\n          sidebarmenu.style.height = '1500px';\r\n          setTimeout(() => {\r\n            sidebarmenu.style.height = 'calc(100vh - 80px)';\r\n          }, 500);\r\n        });\r\n      } else {\r\n        sidebarmenu.style.height = 'calc(100vh - 80px)';\r\n      }\r\n    }\r\n}\r\n","<div class=\"sidebar-menu\"  >\r\n  <vgr-scrollbar [autoheightDisabled]=\"true\">\r\n      <ng-content></ng-content>\r\n  </vgr-scrollbar>\r\n</div>\r\n","import { Input, Component, HostBinding, ContentChild, ElementRef, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-panel',\r\n    templateUrl: './panel.component.html',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class PanelComponent {\r\n    @Input() width: number;\r\n    @Input() themecolor: string;\r\n    @Input() noborder: boolean;\r\n    @HostBinding('class')\r\n    get classes(): string {\r\n        return this.getColumnWidthClass() + this.getBorderClass() + this.getColorClass();\r\n    }\r\n\r\n    private getColumnWidthClass(): string {\r\n        return 'flex-width--' + (this.width ? this.width : 4);\r\n    }\r\n\r\n    private getColorClass(): string {\r\n        return this.themecolor && !this.noborder ? ' color--' + this.themecolor : '';\r\n    }\r\n\r\n    private getBorderClass(): string {\r\n        return this.noborder ? '' : ' panel-with-border';\r\n    }\r\n    constructor(private elementRef: ElementRef) { }\r\n}\r\n\r\n","<div class=\"panel__wrapper\">\r\n  <div class=\"panel\">\r\n    <ng-content></ng-content>\r\n  </div>\r\n</div>\r\n","import { Input, Component, HostBinding, ContentChild, ElementRef, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-panel-container',\r\n    template: `<ng-content select=\"vgr-panel\"></ng-content>`,\r\n    styleUrls: ['./panel.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class PanelContainerComponent {\r\n    @HostBinding('class.panel-container') panelContainerClass = true;\r\n\r\n    constructor(private elementRef: ElementRef) { }\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class PageHeaderHeightService {\r\n  private heightSource = new Subject<number>();\r\n\r\n  heightChanged = this.heightSource.asObservable();\r\n  height = 0;\r\n\r\n  setHeight(height: number) {\r\n    this.height = height;\r\n    this.heightSource.next(height);\r\n  }\r\n}\r\n","import { Component, OnInit, OnDestroy, ViewChild, ElementRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { PageHeaderHeightService } from '../../services/page-header-height.service';\r\n\r\n@Component({\r\n    selector: 'vgr-page',\r\n    templateUrl: './page.component.html',\r\n    styleUrls: ['./page.component.scss'],\r\n    providers: [PageHeaderHeightService],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class PageComponent implements OnInit, OnDestroy {\r\n  @ViewChild('bodyContainer', { static: true }) bodyContainer: ElementRef;\r\n  private ngUnsubscribe: any = new Subject();\r\n\r\n  constructor(private pageHeaderHeightService: PageHeaderHeightService) { }\r\n\r\n  ngOnInit() {\r\n    const margin =  10;\r\n\r\n    this.bodyContainer.nativeElement.style.top = `${this.pageHeaderHeightService.height + margin }px`;\r\n    this.pageHeaderHeightService.heightChanged\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(value => {\r\n        this.bodyContainer.nativeElement.style.top = `${value + margin}px`;\r\n      });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n}\r\n","<div class=\"page\">\r\n  <ng-content select=\"vgr-page-header\"></ng-content>\r\n  <div #bodyContainer class=\"page__page-body-container\">\r\n    <ng-content select=\"vgr-page-body\"></ng-content>\r\n  </div>\r\n</div>\r\n","import { Component, Input, ViewChild, AfterViewChecked, ElementRef, HostListener, ChangeDetectionStrategy } from '@angular/core';\r\nimport { PageHeaderHeightService } from '../../services/page-header-height.service';\r\n\r\n@Component({\r\n    selector: 'vgr-page-header',\r\n    templateUrl: './page-header.component.html',\r\n    styleUrls: ['./page-header.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class PageHeaderComponent implements AfterViewChecked {\r\n  @Input() title: string;\r\n  @ViewChild('pageHeader', { static: true }) pageHeader: ElementRef;\r\n  height = 0;\r\n  private previousHeight = 0;\r\n\r\n  visibleState = false;\r\n\r\n  constructor(private pageHeaderHeightService: PageHeaderHeightService) {}\r\n\r\n  ngAfterViewChecked() {\r\n    this.setHeight();\r\n\r\n  }\r\n\r\n  setHeight() {\r\n    this.height = this.pageHeader.nativeElement.offsetTop\r\n      ? this.pageHeader.nativeElement.offsetHeight\r\n      : 0;\r\n\r\n    if (this.height !== this.previousHeight) {\r\n      this.previousHeight = this.height;\r\n      this.pageHeaderHeightService.setHeight(this.height);\r\n    }\r\n  }\r\n}\r\n","<div #pageHeader class=\"page-header\" (window:resize)=\"setHeight()\">\r\n  <div class=\"page-header__block\" tabindex=\"0\" id=\"page-content-focus\">\r\n    <h1 class=\"page-header__title\">{{title}}</h1>\r\n    <ng-content></ng-content>\r\n  </div>\r\n</div>\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-page-body',\r\n    templateUrl: './page-body.component.html',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class PageBodyComponent { }\r\n","<ng-content></ng-content>\r\n  ","import { Component, Input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-page-block',\r\n    templateUrl: './page-block.component.html',\r\n    styleUrls: ['./page-block.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class PageBlockComponent {\r\n\r\n  @Input() transparent = false;\r\n\r\n}\r\n","<div class=\"page-block\" [ngClass]=\"{ 'page-block--transparent': transparent }\">\r\n  <ng-content></ng-content>\r\n</div>\r\n","import { Input, Component, Output, EventEmitter, ViewChild, ElementRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { toggleExpandedState, toggleChevron } from '../../animation';\r\n\r\n@Component({\n    selector: 'vgr-expandable-div',\n    templateUrl: './expandableDiv.component.html',\n    styleUrls: ['./expandableDiv.component.scss'],\n    animations: [toggleExpandedState, toggleChevron],\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\n})\r\nexport class ExpandableDivComponent {\r\n  @Input() expanded = false;\r\n  @Output() expandedChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n  @ViewChild('header', { static: false }) header: ElementRef;\r\n\r\n  onKeydown(event: KeyboardEvent) {\r\n    if (event.key === 'Enter' || event.key === 'Spacebar' || event.key === ' ') {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n      if (!this.expanded) {\r\n        this.expand();\r\n      } else {\r\n        this.collapse();\r\n      }\r\n    }\r\n  }\r\n\r\n  toggleExpanded() {\r\n    if (this.expanded) {\r\n      this.collapse();\r\n    } else {\r\n      this.expand();\r\n    }\r\n  }\r\n\r\n  collapse() {\r\n    this.expanded = false;\r\n    this.expandedChanged.emit(this.expanded);\r\n  }\r\n\r\n  expand() {\r\n    this.expanded = true;\r\n    this.expandedChanged.emit(this.expanded);\r\n  }\r\n\r\n  public focus() {\r\n    if (this.header) {\r\n      this.header.nativeElement.focus();\r\n    }\r\n  }\r\n}\r\n","<div class=\"expandable-div\">\r\n  <div #header class=\"expandable-div-header\" (click)=\"toggleExpanded()\" (keydown)=\"onKeydown($event)\" tabindex=\"0\"\r\n    [attr.aria-expanded]=\"expanded\" role=\"button\">\r\n    <div class=\"expandable-div-header__content\">\r\n      <ng-content select=\"vgr-expandable-div-header\"></ng-content>\r\n    </div>\r\n    <div class=\"expandable-div-header__icon\" [@toggleChevron]=\"expanded\">\r\n      <vgr-icon icon=\"chevron-down\" size=\"sm\" color=\"text\"></vgr-icon>\r\n    </div>\r\n  </div>\r\n  <div class=\"expandable-div-content\" [@toggleExpandedState]=\"expanded\">\r\n    @if (expanded) {\r\n      <ng-content select=\"vgr-expandable-div-content\"></ng-content>\r\n    }\r\n  </div>\r\n</div>\r\n","import { Component, HostBinding, Input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-expandable-div-header',\r\n    template: `<ng-content></ng-content>`,\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class ExpandableDivHeaderComponent {\r\n    constructor() {\r\n    }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-expandable-div-content',\r\n    template: `<ng-content></ng-content>`,\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class ExpandableDivContentComponent {\r\n    constructor() {\r\n    }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-modal-content',\r\n    template: `<ng-content></ng-content>`,\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class ModalContentComponent {\r\n  constructor() {\r\n  }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-modal-header',\r\n    template: `<ng-content></ng-content>`,\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class ModalHeaderComponent {\r\n  constructor() { }\r\n}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-modal-footer',\r\n    template: `<ng-content></ng-content>`,\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class ModalFooterComponent {\r\n\r\n  constructor() {\r\n  }\r\n}\r\n","import { Component, HostBinding, Output, EventEmitter, HostListener, Input, ElementRef, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { toggleExpandedState } from '../../animation';\r\n@Component({\r\n    selector: 'vgr-table',\r\n    templateUrl: './table.component.html',\r\n    styleUrls: ['./table.component.scss'],\r\n    animations: [toggleExpandedState],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class TableComponent {\r\n  @HostBinding('class') tableClass = 'table';\r\n  @Input() expanded = false;\r\n  @Input() expandable = true;\r\n  @Input() percentLayout: boolean = false;\r\n  @Output() expandedChanged: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n  @ViewChild('table', { read: ElementRef, static: false }) table: ElementRef;\r\n  animationSpeed = '400ms';\r\n\r\n  @HostListener('keydown', ['$event']) toggleRow(event: KeyboardEvent) {\r\n    const target = <HTMLDivElement>event.target;\r\n    const targetClass = target.className;\r\n    if (targetClass.includes('table-header') && (['Enter', 'Spacebar', ' '].includes(event.key)) && targetClass.includes('expandable')) { // enter & space\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n      this.toggleExpansion();\r\n    }\r\n  }\r\n\r\n  toggleExpansion(expandable = true) {\r\n    if (expandable) {\r\n      this.expanded = !this.expanded;\r\n      this.expandedChanged.emit(this.expanded);\r\n    }\r\n  }\r\n\r\n  public focus() {\r\n    this.table.nativeElement.focus();\r\n  }\r\n}\r\n\r\n","<div #table class=\"table-header\" (click)=\"toggleExpansion(expandable)\" [ngClass]=\"{'expanded': expanded, 'collapsed': !expanded, 'expandable': expandable }\" tabindex=\"0\" [attr.aria-expanded]=\"expandable ? expanded : 'null'\" [attr.role]=\"expandable ? 'button' : 'null'\">\r\n  <ng-content select=\"vgr-table-header\"></ng-content>\r\n  @if (expandable) {\r\n    <vgr-icon icon=\"chevron-down\" size=\"sm\" class=\"table-chevron\" [ngClass]=\"{ 'expanded': expanded, 'collapsed': !expanded }\"></vgr-icon>\r\n  }\r\n</div>\r\n@if (expanded) {\r\n  <div class=\"table-content\" [@toggleExpandedState]=\"{value: expanded,  params: { speed: animationSpeed } }\">\r\n    <ng-content select=\"vgr-table-row\"></ng-content>\r\n    <ng-content select=\"vgr-table\"></ng-content>\r\n  </div>\r\n}\r\n","import { Component, Host, HostBinding, Input, Optional, SkipSelf, ChangeDetectionStrategy } from '@angular/core';\r\nimport { TableComponent } from './table.component';\r\n\r\n@Component({\r\n    selector: 'vgr-table-row-column',\r\n    template: `<ng-content></ng-content>`,\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class TableRowColumnComponent {\r\n  @Input() width: number;\r\n  @Input() align: string;\r\n\r\n  @HostBinding('class', )\r\n  get classes(): string {\r\n    return 'table__column flex-column ' + this.getColumnWidthClass() + ' ' + this.getAlignClass();\r\n  }\r\n\r\n  constructor(@Optional() @SkipSelf() @Host() private table: TableComponent) {\r\n  }\r\n\r\n  getColumnWidthClass(): string {\r\n    if (this.table !== null) {\r\n      if (this.table.percentLayout) {\r\n        return 'flex-column-percent--' + (this.width ? this.width : 1);\r\n      } else {\r\n        return 'flex-column--' + (this.width ? this.width : 1);\r\n      }\r\n    } else {\r\n      return 'flex-column--' + (this.width ? this.width : 1);\r\n    }\r\n  }\r\n\r\n  getAlignClass(): string {\r\n    if (this.align !== 'right' &&\r\n      this.align !== 'left' &&\r\n      this.align !== 'center') {\r\n      this.align = 'left';\r\n    }\r\n\r\n    return 'column--align-' + (this.align ? this.align : 'left');\r\n  }\r\n}\r\n","import { Component, Host, HostBinding, Input, Optional, SkipSelf, ChangeDetectionStrategy } from '@angular/core';\r\nimport { TableComponent } from './table.component';\r\n\r\n@Component({\r\n    selector: 'vgr-table-header-column',\r\n    template: `<ng-content></ng-content>`,\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class TableHeaderColumnComponent {\r\n  @Input() width: number;\r\n  @Input() align: string;\r\n\r\n  @HostBinding('class', )\r\n  get classes(): string {\r\n    return 'table__column flex-column ' + this.getColumnWidthClass() + ' ' + this.getAlignClass();\r\n  }\r\n\r\n  constructor(@Optional() @SkipSelf() @Host() private table: TableComponent) {\r\n  }\r\n\r\n  getColumnWidthClass(): string {\r\n    if (this.table !== null) {\r\n      if (this.table.percentLayout) {\r\n        return 'flex-column-percent--' + (this.width ? this.width : 1);\r\n      } else {\r\n        return 'flex-column--' + (this.width ? this.width : 1);\r\n      }\r\n    } else {\r\n      return 'flex-column--' + (this.width ? this.width : 1);\r\n    }\r\n  }\r\n\r\n  getAlignClass(): string {\r\n    if (this.align !== 'right' &&\r\n      this.align !== 'left' &&\r\n      this.align !== 'center') {\r\n      this.align = 'left';\r\n    }\r\n\r\n    return 'column--align-' + (this.align ? this.align : 'left');\r\n  }\r\n}\r\n","import { Component, HostBinding, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-table-row',\r\n    template: `<ng-content select=\"vgr-table-row-column\"></ng-content>`,\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class TableRowComponent {\r\n    @HostBinding('class.table-row') tableRowClass = true;\r\n\r\n    constructor() {\r\n    }\r\n}\r\n","import { Component, HostBinding, Input, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-table-header',\r\n    template: `<ng-content></ng-content>`,\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class TableHeaderComponent {\r\n    constructor() {\r\n    }\r\n}\r\n","import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, AfterViewInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-filter-tag',\r\n    templateUrl: './filter-tag.component.html',\r\n    styleUrls: ['./filter-tag.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class FilterTagComponent implements AfterViewInit {\r\n  @Input() disabled = false;\r\n  @Input() ariaLabel: string;\r\n  @Output() next = new EventEmitter();\r\n  @Output() previous = new EventEmitter();\r\n  @Output() remove = new EventEmitter();\r\n  @ViewChild('filtertag', { static: true }) filtertag: ElementRef;\r\n  @ViewChild('content', { static: true }) content: ElementRef;\r\n  tabindex = 0;\r\n  removed = false;\r\n  removing = false;\r\n\r\n  ngAfterViewInit() {\r\n    if (!this.ariaLabel) {\r\n      Promise.resolve(null).then(() =>\r\n        this.ariaLabel = `Ta bort filtrering ${this.content.nativeElement.innerText}`\r\n      );\r\n    }\r\n  }\r\n\r\n  makeTabFocusable(focusable: boolean) {\r\n    Promise.resolve(null).then(() =>\r\n      this.tabindex = focusable ? 0 : -1\r\n    );\r\n  }\r\n\r\n  onKeydown(event: KeyboardEvent) {\r\n    if (event.key === 'ArrowLeft' || event.key === 'Left' || event.key === 'ArrowUp' || event.key === 'Up') {\r\n      this.previous.emit();\r\n      event.preventDefault();\r\n    } else if (event.key === 'ArrowRight' || event.key === 'Right' || event.key === 'ArrowDown' || event.key === 'Down') {\r\n      this.next.emit();\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  public focus() {\r\n    // focus() does not work in IE11 unless\r\n    // called after a short delay. Wrap in if\r\n    // to not do this in better browsers.\r\n    const re = /Trident\\/7/;\r\n    const isIE11 = re.test(window.navigator.userAgent);\r\n\r\n    if (isIE11) {\r\n      setTimeout(() => {\r\n        this.filtertag.nativeElement.focus();\r\n      }, 5);\r\n    } else {\r\n      this.filtertag.nativeElement.focus();\r\n    }\r\n  }\r\n\r\n  emitRemove() {\r\n    if (this.disabled || this.removing || this.removed) {\r\n      return;\r\n    }\r\n\r\n    this.removing = true;\r\n    setTimeout(\r\n      () => {\r\n        this.removing = false;\r\n        this.removed = true;\r\n        this.remove.emit();\r\n      },\r\n      200);\r\n  }\r\n\r\n  checkDisabled(event: MouseEvent) {\r\n    if (this.disabled) {\r\n      event.stopPropagation();\r\n    }\r\n  }\r\n}\r\n","<span (click)=\"checkDisabled($event)\" (keydown)=\"onKeydown($event)\">\r\n  <button #filtertag type=\"button\" (click)=\"emitRemove()\" class=\"filter-tag noselect\"\r\n    [ngClass]=\"{'button--disabled': disabled, 'filter-tag--removing': removing, 'filter-tag--removed': removed}\"\r\n    [attr.aria-disabled]=\"disabled\" [attr.aria-label]=\"ariaLabel\" [tabindex]=\"tabindex\">\r\n    <span class=\"button__fixIE\">\r\n      <span #content class=\"filter-tag__content\">\r\n        <ng-content></ng-content>\r\n      </span>\r\n      <vgr-icon icon=\"times\" size=\"xs\" class=\"filter-tag__close-icon\"></vgr-icon>\r\n    </span>\r\n  </button>\r\n</span>","import { Component, AfterContentInit, OnDestroy, ContentChildren, QueryList, ChangeDetectionStrategy } from '@angular/core';\r\nimport { FilterTagComponent } from './filter-tag.component';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n    selector: 'vgr-filter-tag-group',\r\n    templateUrl: './filter-tag-group.component.html',\r\n    styleUrls: ['./filter-tag-group.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class FilterTagGroupComponent implements AfterContentInit, OnDestroy {\r\n\r\n  @ContentChildren(FilterTagComponent) filterTags: QueryList<FilterTagComponent>;\r\n  filterTagSubscriptions = [];\r\n  lastSelectedIndex: number;\r\n  private ngUnsubscribe: any = new Subject();\r\n\r\n  ngAfterContentInit() {\r\n    this.setFilterTagTabFocusability();\r\n    this.addFilterTagSubscriptions();\r\n\r\n    this.filterTags.changes\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(\r\n        _ => {\r\n          this.setFilterTagTabFocusability();\r\n          this.setFilterTagFocus();\r\n          this.addFilterTagSubscriptions();\r\n        }\r\n      );\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n\r\n  setFilterTagTabFocusability() {\r\n    this.filterTags.forEach((x) => {\r\n      x.makeTabFocusable(false);\r\n      });\r\n    this.filterTags.get(0).makeTabFocusable(true);\r\n  }\r\n\r\n  setFilterTagFocus() {\r\n    if (this.lastSelectedIndex >= 0) {\r\n      const nonRemovedFilterTags = this.filterTags.filter(x => !x.removed);\r\n      if (this.lastSelectedIndex < nonRemovedFilterTags.length) {\r\n        nonRemovedFilterTags[this.lastSelectedIndex].focus();\r\n      } else if (nonRemovedFilterTags.length) {\r\n        this.lastSelectedIndex = nonRemovedFilterTags.length - 1;\r\n        nonRemovedFilterTags[nonRemovedFilterTags.length - 1].focus();\r\n      }\r\n    }\r\n  }\r\n\r\n  addFilterTagSubscriptions() {\r\n    this.filterTagSubscriptions.forEach(x => x.unsubscribe());\r\n    this.filterTagSubscriptions = [];\r\n\r\n    this.filterTags.forEach((x, i) => {\r\n      const previousSubscription = x.previous\r\n        .pipe(takeUntil(this.ngUnsubscribe))\r\n        .subscribe(() => {\r\n          if (i > 0) {\r\n            this.filterTags.toArray()[i - 1].focus();\r\n          } else {\r\n            this.filterTags.last.focus();\r\n          }\r\n        });\r\n      this.filterTagSubscriptions.push(previousSubscription);\r\n\r\n      const nextSubscription = x.next\r\n        .pipe(takeUntil(this.ngUnsubscribe))\r\n        .subscribe(() => {\r\n          if (i < this.filterTags.length - 1) {\r\n            this.filterTags.toArray()[i + 1].focus();\r\n          } else {\r\n            this.filterTags.first.focus();\r\n          }\r\n        });\r\n      this.filterTagSubscriptions.push(nextSubscription);\r\n\r\n      const removeSubscription = x.remove\r\n        .pipe(takeUntil(this.ngUnsubscribe))\r\n        .subscribe(() => {\r\n          this.lastSelectedIndex = i;\r\n          this.setFilterTagFocus();\r\n        });\r\n      this.filterTagSubscriptions.push(removeSubscription);\r\n    });\r\n  }\r\n\r\n  public focus() {\r\n    if (this.filterTags && this.filterTags.length) {\r\n      this.filterTags.first.focus();\r\n    }\r\n  }\r\n}\r\n","<div class=\"filter-tag-group\">\r\n  <ng-content></ng-content>\r\n</div>\r\n","import { Component, OnInit, HostListener, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-scroll-to-top',\r\n    templateUrl: './scroll-to-top.component.html',\r\n    styleUrls: ['./scroll-to-top.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class ScrollToTopComponent {\r\n\r\n  visibleState = false;\r\n\r\n  @HostListener('window:scroll', []) onWindowScroll() {\r\n    if (window.scrollY && window.scrollY > 0) {\r\n      this.visibleState = true;\r\n    } else if (document.documentElement.scrollTop > 0) {\r\n      this.visibleState = true;\r\n    } else {\r\n      this.visibleState = false;\r\n    }\r\n  }\r\n\r\n  constructor() { }\r\n\r\n  scrollToTop () {\r\n    window.scroll({\r\n      top: 0,\r\n      behavior: 'smooth'\r\n    });\r\n  }\r\n\r\n}\r\n","<span (click)=\"scrollToTop()\">\r\n    <button type=\"button\" class=\"back-to-top\" [class.back-to-top--visible]=\"visibleState\">\r\n      <vgr-icon icon=\"chevron-up\" size=\"2x\"></vgr-icon>\r\n    </button>\r\n</span>\r\n","import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, NgZone, OnChanges, OnInit, Output, ChangeDetectionStrategy } from '@angular/core';\r\n@Component({\r\n    selector: 'vgr-search-result',\r\n    templateUrl: './search-result.component.html',\r\n    styleUrls: ['./search-result.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class SearchResultComponent implements OnChanges, OnInit {\r\n\r\n  @Input() description: string;\r\n  @Input() noResultsText = 'Inget resultat';\r\n  @Input() items: any;\r\n  @Input() maxItems = 25;\r\n  @Input() width: string;\r\n  displayItems: any;\r\n  focusItem = -1;\r\n  @Input() @HostBinding('class.search-results--open') visible = false;\r\n  @Output() visibleChange = new EventEmitter();\r\n  @Output() itemClick = new EventEmitter();\r\n  descriptionHeight: number;\r\n\r\n  @HostListener('document:click', ['$event'])\r\n  onDocumentClick(event: any) {\r\n    const target = event.target || event.srcElement || event.currentTarget;\r\n    if ((this.elementRef.nativeElement.parentNode && !this.elementRef.nativeElement.parentNode.contains(target)) && this.visible) {\r\n      this.visible = false;\r\n      this.visibleChange.emit(this.visible);\r\n    }\r\n  }\r\n\r\n  constructor(private elementRef: ElementRef) { }\r\n\r\n\r\n  ngOnInit() {\r\n    const parent = this.getParentNode();\r\n    if (parent && parent.classList.contains('search-result-wrapper')) {\r\n      parent.onkeydown = (event) => this.handleKeyevents(event);\r\n    } else {\r\n      throw new Error('Du har glömt att lägga din search-result komponent i en wrapper');\r\n    }\r\n  }\r\n\r\n  ngOnChanges() {\r\n    if (this.items) {\r\n      this.filterItems();\r\n      setTimeout(() => {\r\n        if (this.elementRef.nativeElement.querySelector('.search-results__description')) {\r\n          this.descriptionHeight = this.elementRef.nativeElement.querySelector('.search-results__description').offsetHeight;\r\n        } else {\r\n          this.descriptionHeight = 0;\r\n        }\r\n      }, 20);\r\n    }\r\n  }\r\n\r\n  resetScrollPosition() {\r\n    this.focusItem = -1;\r\n  }\r\n\r\n  handleKeyevents(event) {\r\n    if (!['Esc', 'Escape', 'Enter', 'Spacebar', ' ', 'Tab', 'Up', 'Down', 'ArrowUp', 'ArrowDown'].includes(event.key)) {\r\n      return;\r\n    }\r\n\r\n    this.setFocusedElement();\r\n\r\n    if (['Esc', 'Escape', 'Tab'].includes(event.key)) {\r\n      this.visible = false;\r\n      this.visibleChange.emit(this.visible);\r\n      this.resetScrollPosition();\r\n    } else if (['Up', 'Down', 'ArrowUp', 'ArrowDown'].includes(event.key)) {\r\n      const nodes = this.elementRef.nativeElement.querySelectorAll('.search-results__items li');\r\n      if (nodes.length === 0) {\r\n        return;\r\n      }\r\n\r\n      if (['Down', 'ArrowDown'].includes(event.key)) {\r\n        if (this.focusItem === nodes.length - 1) {\r\n          this.focusItem = 0;\r\n        } else {\r\n          this.focusItem++;\r\n        }\r\n      } else if (['Up', 'ArrowUp'].includes(event.key)) {\r\n        if (this.focusItem === 0 || this.focusItem === -1) {\r\n          this.focusItem = nodes.length - 1;\r\n        } else {\r\n          this.focusItem--;\r\n        }\r\n      }\r\n      const activeNode = nodes[this.focusItem];\r\n      activeNode.focus();\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n    } else if (['Enter', 'Spacebar', ' '].includes(event.key)) {\r\n      const target = event.target || event.srcElement || event.currentTarget;\r\n      if (this.elementRef.nativeElement.contains(target)) {\r\n        this.visible = false;\r\n        this.visibleChange.emit(this.visible);\r\n        this.onItemClick(this.displayItems[this.focusItem]);\r\n        event.preventDefault();\r\n        event.stopPropagation();\r\n      }\r\n    }\r\n  }\r\n\r\n  indexInParent(node) {\r\n    const children = node.parentNode.childNodes;\r\n    let num = 0;\r\n    for (let i = 0; i < children.length; i++) {\r\n      if (children[i] === node) { return num; }\r\n      if (children[i].nodeType === 1) { num++; }\r\n    }\r\n  }\r\n\r\n  setFocusedElement() {\r\n    const node = this.elementRef.nativeElement.querySelector('li:focus');\r\n    this.focusItem = node ? this.indexInParent(node) : -1;\r\n  }\r\n\r\n  public getParentNode() {\r\n    return this.elementRef.nativeElement.parentNode;\r\n  }\r\n\r\n  filterItems() {\r\n    this.displayItems = this.items.slice(0, this.maxItems);\r\n  }\r\n\r\n  onItemClick(item) {\r\n      this.itemClick.emit(item);\r\n  }\r\n\r\n}\r\n","@if (visible) {\r\n  <div class=\"search-results\" [ngStyle]=\"{'width': width }\">\r\n    @if (!items || items?.length === 0) {\r\n      <div class=\"search-results__noresults\">\r\n        {{noResultsText}}\r\n      </div>\r\n    }\r\n    @if (description || items?.length > maxItems) {\r\n      <div class=\"search-results__description\">\r\n        @if (description) {\r\n          <p class=\"search-results__description-field\">{{description}}</p>\r\n        }\r\n        @if (items?.length > maxItems) {\r\n          <p class=\"search-results__description-static\">\r\n            <strong>Endast de {{maxItems}} första träffarna visas.</strong> Begränsa din sökning genom att ange mer specifika sökkriterier.\r\n          </p>\r\n        }\r\n      </div>\r\n    }\r\n    <div class=\"scrollbar__dimmer scrollbar__dimmer-top\"></div>\r\n    <vgr-scrollbar>\r\n      <ul class=\"search-results__items\" role=\"listbox\">\r\n        @for (item of displayItems; track item; let i = $index) {\r\n          <li class=\"search-results-item\" [ngClass]=\"{'search-results-item--focused' : i === focusItem }\"\r\n            tabindex=\"-1\" [attr.aria-label]=\"item.displayName\" [attr.aria-selected]=\"item.selected\">\r\n            <a (click)=\"onItemClick(item)\" title={{item.displayName}}>\r\n              {{item.displayName[0]}}\r\n              @if (item.displayName.length > 1) {\r\n                <span [class.italic]=\"item.secondRowItalic\">{{item.displayName[1]}}</span>\r\n              }\r\n            </a>\r\n          </li>\r\n        }\r\n      </ul>\r\n    </vgr-scrollbar>\r\n    <div class=\"scrollbar__dimmer scrollbar__dimmer-bottom\"></div>\r\n  </div>\r\n}\r\n","import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, AfterViewInit, OnChanges, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-toggle-button',\r\n    templateUrl: './toggle-button.component.html',\r\n    styleUrls: ['./toggle-button.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class ToggleButtonComponent implements AfterViewInit, OnChanges {\r\n  @Input() disabled = false;\r\n  @Input() pressed = false;\r\n  @Input() ariaLabel: string;\r\n  @Output() next = new EventEmitter();\r\n  @Output() previous = new EventEmitter();\r\n  @ViewChild('togglebutton', { static: true }) togglebutton: ElementRef;\r\n  @ViewChild('content', { static: true }) content: ElementRef;\r\n\r\n  tabindex = 0;\r\n  ariaPressed: boolean;\r\n\r\n  ngOnChanges() {\r\n    setTimeout(() => {\r\n      this.ariaPressed = this.pressed;\r\n    });\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    if (!this.ariaLabel) {\r\n      setTimeout(() => {\r\n        this.ariaLabel = `${this.content.nativeElement.innerHTML} toggle button`;\r\n      });\r\n    }\r\n\r\n    setTimeout(() => {\r\n      this.ariaPressed = this.pressed;\r\n    });\r\n  }\r\n\r\n  makeTabFocusable(focusable: boolean) {\r\n    setTimeout(() => {\r\n      this.tabindex = focusable ? 0 : -1;\r\n    });\r\n  }\r\n\r\n  onKeydown(event: KeyboardEvent) {\r\n    if (['ArrowLeft', 'Left', 'ArrowUp', 'Up'].includes(event.key)) {\r\n      this.previous.emit();\r\n      event.preventDefault();\r\n    } else if (['ArrowRight', 'Right', 'ArrowDown', 'Down'].includes(event.key)) {\r\n      this.next.emit();\r\n      event.preventDefault();\r\n    } else if (['Enter', 'Spacebar', ' '].includes(event.key)) {\r\n      event.stopPropagation();\r\n    }\r\n  }\r\n\r\n  checkDisabled(event: MouseEvent) {\r\n    if (this.disabled) {\r\n      event.stopPropagation();\r\n    }\r\n  }\r\n\r\n  public focus() {\r\n    this.togglebutton.nativeElement.focus();\r\n  }\r\n}\r\n","<span (click)=\"checkDisabled($event)\" (keydown)=\"onKeydown($event)\" class=\"toggle-button-container\">\r\n  <button #togglebutton type=\"button\" class=\"toggle-button noselect\"    \r\n  [ngClass]=\"{'button--disabled': disabled, 'button--secondary': !pressed}\"    \r\n  [attr.aria-disabled]=\"disabled\" [attr.aria-label]=\"ariaLabel\" [attr.aria-pressed]=\"ariaPressed\" [tabindex]=\"tabindex\">\r\n    <span class=\"button__fixIE\">\r\n      <span #content>\r\n        <ng-content></ng-content>\r\n      </span>\r\n    </span>\r\n  </button>\r\n</span>\r\n","import { Component, AfterContentInit, OnDestroy, ContentChildren, QueryList, Input, ChangeDetectionStrategy } from '@angular/core';\r\nimport { ToggleButtonComponent } from './toggle-button.component';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\n    selector: 'vgr-toggle-button-group',\n    templateUrl: './toggle-button-group.component.html',\n    styleUrls: ['./toggle-button-group.component.scss'],\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\n})\r\nexport class ToggleButtonGroupComponent implements AfterContentInit, OnDestroy {\r\n\r\n  @Input() width: string;\r\n  @ContentChildren(ToggleButtonComponent) toggleButtons: QueryList<ToggleButtonComponent>;\r\n  toggleButtonSubscriptions = [];\r\n  lastSelectedIndex: number;\r\n  private ngUnsubscribe: any = new Subject();\r\n\r\n  ngAfterContentInit() {\r\n    this.setToggleButtonTabFocusability();\r\n    this.addToggleButtonSubscriptions();\r\n\r\n    this.toggleButtons.changes\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(\r\n        _ => {\r\n          this.setToggleButtonTabFocusability();\r\n          this.setToggleButtonFocus();\r\n          this.addToggleButtonSubscriptions();\r\n        }\r\n      );\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n\r\n  setToggleButtonTabFocusability() {\r\n    this.toggleButtons.forEach((x, i) => {\r\n      const focusable = i ? false : true;\r\n      x.makeTabFocusable(focusable);\r\n    });\r\n  }\r\n\r\n  setToggleButtonFocus() {\r\n    if (this.lastSelectedIndex >= 0) {\r\n      if (this.lastSelectedIndex < this.toggleButtons.length) {\r\n        this.toggleButtons[this.lastSelectedIndex].focus();\r\n      } else if (this.toggleButtons.length) {\r\n        this.toggleButtons[this.toggleButtons.length - 1].focus();\r\n      }\r\n    }\r\n  }\r\n\r\n  addToggleButtonSubscriptions() {\r\n    this.toggleButtonSubscriptions.forEach(x => x.unsubscribe());\r\n    this.toggleButtonSubscriptions = [];\r\n\r\n    this.toggleButtons.forEach((x, i) => {\r\n      const previousSubscription = x.previous\r\n        .pipe(takeUntil(this.ngUnsubscribe))\r\n        .subscribe(() => {\r\n          if (i > 0) {\r\n            this.toggleButtons.toArray()[i - 1].focus();\r\n          } else {\r\n            this.toggleButtons.last.focus();\r\n          }\r\n        });\r\n      this.toggleButtonSubscriptions.push(previousSubscription);\r\n\r\n      const nextSubscription = x.next\r\n        .pipe(takeUntil(this.ngUnsubscribe))\r\n        .subscribe(() => {\r\n          if (i < this.toggleButtons.length - 1) {\r\n            this.toggleButtons.toArray()[i + 1].focus();\r\n          } else {\r\n            this.toggleButtons.first.focus();\r\n          }\r\n        });\r\n      this.toggleButtonSubscriptions.push(nextSubscription);\r\n    });\r\n  }\r\n\r\n  public focus() {\r\n    if (this.toggleButtons && this.toggleButtons.length) {\r\n      this.toggleButtons.toArray()[0].focus();\r\n    }\r\n  }\r\n}\r\n","<div [ngStyle]=\"{'width': width }\">\r\n  <div class=\"toggle-button-group\">\r\n    <ng-content></ng-content>\r\n  </div>\r\n</div>","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, Renderer2, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Guid } from '../../utils/guid';\r\n\r\n@Component({\r\n    selector: 'vgr-tab-button',\r\n    templateUrl: './tab-button.component.html',\r\n    styleUrls: ['./tab-button.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\r\n    standalone: false\r\n})\r\nexport class TabButtonComponent implements AfterViewInit, OnChanges {\r\n\r\n  @Input() disabled = false;\r\n  @Input() active = false;\r\n  @Input() ariaLabel: string;\r\n  @Input() tabId = Guid.newGuid();\r\n  @Input() width = 'auto';\r\n  @Input() parentId;\r\n\r\n  @Output() next = new EventEmitter();\r\n  @Output() previous = new EventEmitter();\r\n  @Output() home = new EventEmitter();\r\n  @Output() end = new EventEmitter();\r\n  @Output() selectedChanged = new EventEmitter<string>();\r\n\r\n  @ViewChild('tabbutton', { static: true }) tabbutton: ElementRef;\r\n  @ViewChild('content', { static: true }) content: ElementRef;\r\n\r\n  tabindex = 0;\r\n  ariaPressed = false;\r\n  initialTabId: string;\r\n\r\n  constructor() {\r\n  }\r\n\r\n  ngOnChanges() {\r\n    Promise.resolve(null).then(() => {\r\n        this.ariaPressed = this.active;\r\n      });\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    if (!this.ariaLabel) {\r\n      Promise.resolve(null).then(() =>\r\n        this.ariaLabel = `${this.content.nativeElement.innerText} tab button`\r\n      );\r\n    }\r\n\r\n    Promise.resolve(null).then(() =>\r\n      this.ariaPressed = this.active\r\n    );\r\n  }\r\n\r\n  makeTabFocusable(focusable: boolean) {\r\n    Promise.resolve(null).then(() =>\r\n      this.tabindex = focusable ? 0 : -1\r\n    );\r\n  }\r\n\r\n  onKeydown(event: KeyboardEvent) {\r\n    if (['ArrowLeft', 'Left', 'ArrowUp', 'Up'].includes(event.key)) {\r\n      this.previous.emit();\r\n      event.preventDefault();\r\n    } else if (['ArrowRight', 'Right', 'ArrowDown', 'Down'].includes(event.key)) {\r\n      this.next.emit();\r\n      event.preventDefault();\r\n    } else if (['Enter', 'Spacebar', ' '].includes(event.key)) {\r\n      event.stopPropagation();\r\n    } else if (['Home'].includes(event.key)) {\r\n      this.home.emit();\r\n      event.preventDefault();\r\n    } else if (['End'].includes(event.key)) {\r\n      this.end.emit();\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  public focus() {\r\n    this.tabbutton.nativeElement.focus();\r\n  }\r\n\r\n  onChange(event: any) {\r\n    if (this.disabled || this.active) {\r\n      event.stopPropagation();\r\n      return;\r\n    }\r\n    this.selectedChanged.emit(this.tabId);\r\n  }\r\n}\r\n","<span\r\n  (click)=\"onChange($event)\"\r\n  (keydown)=\"onKeydown($event)\"\r\n  class=\"tab-button-container\"\r\n>\r\n  <button #tabbutton type=\"button\"  id=\"{{tabId}}\"\r\n  [ngStyle]=\"{'width': width }\"\r\n  class=\"tab-button noselect\"\r\n  [ngClass]=\"{'button--disabled': disabled, 'tab-button--active': active}\"\r\n  [attr.aria-disabled]=\"disabled\" [attr.aria-label]=\"ariaLabel\" [attr.aria-pressed]=\"ariaPressed\" [tabindex]=\"tabindex\">\r\n    <span class=\"button__fixIE\">\r\n      <span #content>\r\n        <ng-content></ng-content>\r\n      </span>\r\n    </span>\r\n  </button>\r\n</span>\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class TabManagementService {\r\n\r\n  navigateAborted = false;\r\n  public subject = new Subject<any>();\r\n  private messageSource = new  BehaviorSubject(this.navigateAborted);\r\n  private currentTab = new Subject<any>();\r\n\r\n  changeNavigation = this.messageSource.asObservable();\r\n  tabChanged = this.currentTab.asObservable();\r\n\r\n  navigationCancelled(navigated: boolean) {\r\n    this.messageSource.next(navigated);\r\n  }\r\n\r\n  tabChangeRequested(tab, id) {\r\n    this.currentTab.next({tab: tab, tabGroupId: id})\r\n  }\r\n\r\n  constructor() { }\r\n}\r\n","import { AfterContentInit, Component, ContentChildren, HostBinding, Input, OnDestroy, QueryList, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Guid } from '../../utils/guid';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { TabButtonComponent } from './tab-button.component';\r\nimport { TabManagementService } from './tab-management.service';\r\n\r\n@Component({\r\n    selector: 'vgr-tab-button-group',\r\n    templateUrl: './tab-button-group.component.html',\r\n    styleUrls: ['./tab-button-group.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class TabButtonGroupComponent implements AfterContentInit, OnDestroy {\r\n\r\n  @Input() width = 'auto';\r\n\r\n  @HostBinding('attr.id') @Input() id: string;\r\n  @HostBinding('class.centrera')  @Input() alignCenter = false;\r\n  @ContentChildren(TabButtonComponent) tabButtons: QueryList<TabButtonComponent>;\r\n  tabButtonSubscriptions = [];\r\n  lastSelectedIndex: number;\r\n  activeTabId: string;\r\n  previousActiveTabId: string = '';\r\n  private ngUnsubscribe: any = new Subject();\r\n  _navigationCancelled: boolean;\r\n  get navigationCancelled() {\r\n    return this._navigationCancelled;\r\n  }\r\n\r\n  constructor(private tabManagementService: TabManagementService) {\r\n    if (!this.id) {\r\n      this.id = Guid.newGuid();\r\n    }\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this.setTabButtonTabFocusability();\r\n    this.addTabButtonSubscriptions();\r\n\r\n\r\n\r\n    this.tabButtons.changes\r\n    .pipe(takeUntil(this.ngUnsubscribe))\r\n    .subscribe(\r\n      () => {\r\n        this.setTabButtonTabFocusability();\r\n        this.setTabButtonFocus();\r\n        this.addTabButtonSubscriptions();\r\n      }\r\n    );\r\n\r\n    this.tabManagementService.tabChanged\r\n    .pipe(takeUntil(this.ngUnsubscribe))\r\n    .subscribe((res) => {\r\n       if (res.tabGroupId === this.id) {\r\n        let activeTabId;\r\n\r\n        this.tabButtons.forEach(item => {\r\n\r\n          if (res.tab.tabId === item.tabId) {\r\n            activeTabId = item.tabId;\r\n            item.active = true;\r\n          }\r\n          else {\r\n            item.active = false;\r\n          }\r\n\r\n          item.ariaPressed = item.active;\r\n        });\r\n\r\n        this.setActiveTabId(res.tab.tabId);\r\n      }\r\n    })\r\n\r\n    this.tabButtons.forEach(tab => {\r\n      tab.parentId = this.id;\r\n      if (tab.active === true) {\r\n        this.setActiveTabId(tab.tabId);\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n\r\n\r\n  setTabButtonTabFocusability() {\r\n    this.tabButtons.forEach((x, i) => {\r\n      const focusable = i ? false : true;\r\n      x.makeTabFocusable(focusable);\r\n    });\r\n  }\r\n\r\n  setTabButtonFocus() {\r\n    if (this.lastSelectedIndex >= 0) {\r\n      if (this.lastSelectedIndex < this.tabButtons.length) {\r\n        this.tabButtons[this.lastSelectedIndex].focus();\r\n      } else if (this.tabButtons.length) {\r\n        this.tabButtons[this.tabButtons.length - 1].focus();\r\n      }\r\n    }\r\n  }\r\n\r\n  addTabButtonSubscriptions() {\r\n\r\n    this.tabButtonSubscriptions.forEach(x => x.unsubscribe());\r\n    this.tabButtonSubscriptions = [];\r\n\r\n    this.tabButtons.forEach((x, i) => {\r\n      const previousSubscription = x.previous\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(() => {\r\n        if (i > 0) {\r\n          this.tabButtons.toArray()[i - 1].focus();\r\n        } else {\r\n          this.tabButtons.last.focus();\r\n        }\r\n      });\r\n      this.tabButtonSubscriptions.push(previousSubscription);\r\n\r\n      const nextSubscription = x.next\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(() => {\r\n        if (i < this.tabButtons.length - 1) {\r\n          this.tabButtons.toArray()[i + 1].focus();\r\n        } else {\r\n          this.tabButtons.first.focus();\r\n        }\r\n      });\r\n      this.tabButtonSubscriptions.push(nextSubscription);\r\n\r\n      const homeSubscription = x.home\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(() => {\r\n        const notDisabledButtons = this.tabButtons.filter(tab => tab.disabled === false);\r\n        notDisabledButtons[0].focus();\r\n      });\r\n      this.tabButtonSubscriptions.push(homeSubscription);\r\n\r\n      const endSubscription = x.end\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(() => {\r\n        const notDisabledButtons = this.tabButtons.filter(tab => tab.disabled === false);\r\n        notDisabledButtons[notDisabledButtons.length - 1].focus();\r\n      });\r\n      this.tabButtonSubscriptions.push(endSubscription);\r\n\r\n      const selectedChangedSubscription = x.selectedChanged\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe((event) => {\r\n          this.tabButtons.forEach( button => {\r\n\r\n          if (button.tabId === event) {\r\n            button.active = true;\r\n            this.tabManagementService.tabChangeRequested(button, this.id);\r\n          }\r\n        });\r\n      });\r\n      this.tabButtonSubscriptions.push(selectedChangedSubscription);\r\n\r\n      this.tabManagementService.changeNavigation.subscribe(navigationCancelled => {\r\n        if (this._navigationCancelled === navigationCancelled) {\r\n          return;\r\n        }\r\n\r\n        this._navigationCancelled = navigationCancelled;\r\n        if (navigationCancelled && this.tabButtons) {\r\n          let activeTabId;\r\n          this.tabButtons.forEach(tab => {\r\n            if (tab.tabId === this.previousActiveTabId) {\r\n              tab.active = true;\r\n              activeTabId = tab.tabId;\r\n\r\n            } else {\r\n              tab.active = false;\r\n            }\r\n          });\r\n\r\n            if (activeTabId) {\r\n              this.previousActiveTabId = this.activeTabId;\r\n              this.activeTabId = activeTabId;\r\n            }\r\n        }\r\n      });\r\n\r\n\r\n    });\r\n  }\r\n  setActiveTabId(tabId: string) {\r\n      if (tabId === this.activeTabId) {\r\n        return;\r\n      }\r\n      this.previousActiveTabId = this.activeTabId ? this.activeTabId : tabId;\r\n      this.activeTabId = tabId;\r\n  }\r\n\r\n  public focus() {\r\n    if (this.tabButtons && this.tabButtons.length) {\r\n      this.tabButtons.toArray()[0].focus();\r\n    }\r\n  }\r\n}\r\n","<div [ngStyle]=\"{'width': width }\" >\r\n  <div class=\"tab-button-group\"  tabindex=\"0\">\r\n    <ng-content ></ng-content>\r\n  </div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class PaginationManagementService {\r\n\r\n  navigateAborted = false;\r\n  public subject = new Subject<any>();\r\n  private messageSource = new  BehaviorSubject(this.navigateAborted);\r\n\r\n  changeNavigation = this.messageSource.asObservable();\r\n\r\n  navigationCancelled(navigated: boolean) {\r\n    this.messageSource.next(navigated);\r\n  }\r\n}\r\n","import { Component, OnChanges, SimpleChanges, Input, Output, EventEmitter, OnDestroy, AfterViewInit, ViewChildren, QueryList, ElementRef, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { PageItem } from './page-item';\r\nimport { PaginationManagementService } from './pagination-management.service';\r\n\r\n@Component({\r\n    selector: 'vgr-pagination',\r\n    templateUrl: './pagination.component.html',\r\n    styleUrls: ['./pagination.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class PaginationComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n  @Input() pages = 1;\r\n  @Input() activePage = 1;\r\n  @Output() pageChanged: EventEmitter<number> = new EventEmitter();\r\n  @ViewChildren('pageButton') pageButtons: QueryList<ElementRef>;\r\n\r\n  pageItems: PageItem[] = [];\r\n  focusedPageLabel: string;\r\n  nextPage = new EventEmitter();\r\n  previousPage = new EventEmitter();\r\n\r\n  private _activePage: number;\r\n  private ngUnsubscribe: any = new Subject();\r\n\r\n  previousActivePage: number;\r\n\r\n  _navigationCancelled: boolean;\r\n  get navigationCancelled() {\r\n    return this._navigationCancelled;\r\n  }\r\n\r\n  constructor(private paginationManagementService: PaginationManagementService) {}\r\n\r\n  ngOnInit() {\r\n    this.setPageItems(this.activePage);\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    const pagesChange = changes['pages'];\r\n    const activePageChange = changes['activePage'];\r\n\r\n    if (pagesChange || activePageChange) {\r\n      this.setPageItems(this.activePage);\r\n      if (activePageChange && (this.activePage !== this._activePage)) {\r\n        if (this.focusedPageLabel && (!this.focusedPageLabel.startsWith('Nästa sida') && !this.focusedPageLabel.endsWith('Föregående sida'))) {\r\n          this.focusedPageLabel = this.activePage.toString();\r\n        }\r\n        this._activePage = this.activePage;\r\n      }\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.pageButtons.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe(_ => {\r\n      const focusedPageButton = this.pageButtons.find(button => button.nativeElement.textContent.trim() === this.focusedPageLabel);\r\n      if (focusedPageButton && this._navigationCancelled === false) {\r\n        setTimeout(() => focusedPageButton.nativeElement.focus());\r\n      }\r\n    });\r\n\r\n    this.paginationManagementService.changeNavigation.subscribe(navigationCancelled => {\r\n      if (this._navigationCancelled === navigationCancelled) {\r\n        const focusedPageButton = this.pageButtons.filter(button => button.nativeElement.tabIndex === 0).find(btn => btn.nativeElement.textContent.trim() === this.activePage.toString());\r\n\r\n        if (focusedPageButton && this._navigationCancelled === false) {\r\n          setTimeout(() => focusedPageButton.nativeElement.focus());\r\n        }\r\n        return;\r\n      }\r\n      this._navigationCancelled = navigationCancelled;\r\n      //Om vi har cancellerat, sätt active till previous\r\n      if (navigationCancelled && this.pageButtons) {\r\n        this.focusedPageLabel = this.previousActivePage.toString();\r\n        this.showPage(this.previousActivePage);\r\n      }\r\n    })\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n\r\n  onPageButtonFocus(event: FocusEvent) {\r\n    const buttonElement = event.target as HTMLElement;\r\n    if (buttonElement) {\r\n      this.focusedPageLabel = buttonElement.textContent.trim();\r\n    }\r\n  }\r\n\r\n  onPageButtonBlur(event: FocusEvent) {\r\n    if (event.relatedTarget) {\r\n      this.focusedPageLabel = '';\r\n    }\r\n  }\r\n\r\n  onKeydown(event: KeyboardEvent, index: number) {\r\n    if (event.key === 'ArrowLeft' || event.key === 'Left') {\r\n      this.focusPreviousPageItem(index);\r\n      event.preventDefault();\r\n    } else if (event.key === 'ArrowRight' || event.key === 'Right') {\r\n      this.focusNextPageItem(index);\r\n      event.preventDefault();\r\n    } else if (event.key === 'Home') {\r\n      this.focusPreviousButton();\r\n      event.preventDefault();\r\n    } else if (event.key === 'End') {\r\n      this.focusNextButton();\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  private focusPreviousPageItem(itemIndex: number) {\r\n    if (itemIndex > 0) {\r\n      this.pageButtons.toArray()[itemIndex - 1].nativeElement.focus();\r\n    }\r\n  }\r\n\r\n  private focusNextPageItem(itemIndex: number) {\r\n    if (itemIndex < this.pageButtons.length - 1) {\r\n      this.pageButtons.toArray()[itemIndex + 1].nativeElement.focus();\r\n    }\r\n  }\r\n\r\n  private focusPreviousButton() {\r\n    this.pageButtons.toArray()[0].nativeElement.focus();\r\n  }\r\n\r\n  private focusNextButton() {\r\n    this.pageButtons.toArray()[this.pageButtons.length - 1].nativeElement.focus();\r\n  }\r\n\r\n  private showPage(page: number) {\r\n    this.setPageItems(page);\r\n    this.previousActivePage = this.activePage;\r\n    if (this.activePage !== page) {\r\n      this.activePage = page;\r\n      this._activePage = page;\r\n      if (this._navigationCancelled === false) {\r\n        this.pageChanged.emit(page);\r\n      } else {\r\n        // reset navigationCancelled\r\n        this._navigationCancelled = false;\r\n      }\r\n    }\r\n  }\r\n\r\n  private setPageItems(activePage: number) {\r\n    this.pageItems = [];\r\n    let index = 0;\r\n\r\n    const previousPageItem = {\r\n      buttonIndex: index,\r\n      tabindex: -1,\r\n      label: 'Föregående sida',\r\n      ariaLabel: activePage !== 1 ? `Gå till föregående sida, sida ${activePage - 1} av ${this.pages}` : 'Gå till föregående sida'\r\n    } as PageItem;\r\n\r\n    previousPageItem.action = () => {\r\n      if (activePage > 1) {\r\n        this.showPage(activePage - 1);\r\n      }\r\n    };\r\n\r\n    this.pageItems.push(previousPageItem);\r\n\r\n    if (this.pages <= 7) {\r\n      for (let item = 1; item <= this.pages; item++) {\r\n        index++;\r\n        this.addPageItem(index, item, activePage);\r\n      }\r\n    } else if (this.pages === 8) {\r\n      if (activePage <= 4) {\r\n\r\n        for (let item = 1; item <= 5; item++) {\r\n          index++;\r\n          this.addPageItem(index, item, activePage);\r\n        }\r\n\r\n        this.addDots();\r\n\r\n        index++;\r\n        this.addLastPageItem(index, activePage);\r\n\r\n      } else {\r\n        index++;\r\n        this.addFirstPageItem(index, activePage);\r\n\r\n        this.addDots();\r\n\r\n        for (let item = 4; item <= 8; item++) {\r\n          index++;\r\n          this.addPageItem(index, item, activePage);\r\n        }\r\n      }\r\n    } else {\r\n      if (activePage <= 4) {\r\n\r\n        for (let item = 1; item <= 5; item++) {\r\n          index++;\r\n          this.addPageItem(index, item, activePage);\r\n        }\r\n\r\n        this.addDots();\r\n\r\n        index++;\r\n        this.addLastPageItem(index, activePage);\r\n\r\n      } else if (activePage >= this.pages - 3) {\r\n\r\n        index++;\r\n        this.addFirstPageItem(index, activePage);\r\n\r\n        this.addDots();\r\n\r\n        for (let item = this.pages - 4; item <= this.pages; item++) {\r\n          index++;\r\n          this.addPageItem(index, item, activePage);\r\n        }\r\n\r\n      } else {\r\n        index++;\r\n        this.addFirstPageItem(index, activePage);\r\n\r\n        this.addDots();\r\n\r\n        for (let item = activePage - 1; item <= activePage + 1; item++) {\r\n          index++;\r\n          this.addPageItem(index, item, activePage);\r\n        }\r\n\r\n        this.addDots();\r\n\r\n        index++;\r\n        this.addLastPageItem(index, activePage);\r\n      }\r\n    }\r\n\r\n    index++;\r\n    const nextPageItem = {\r\n      buttonIndex: index,\r\n      tabindex: -1,\r\n      label: 'Nästa sida',\r\n      ariaLabel: activePage !== this.pages ? `Gå till nästa sida, sida ${activePage + 1} av ${this.pages}` : 'Gå till nästa sida'\r\n    } as PageItem;\r\n\r\n    nextPageItem.action = () => {\r\n      if (activePage < this.pages) {\r\n        this.showPage(activePage + 1);\r\n      }\r\n    };\r\n    this.pageItems.push(nextPageItem);\r\n  }\r\n\r\n  private addFirstPageItem(index: number, activePage: number) {\r\n    this.pageItems.push({\r\n      buttonIndex: index,\r\n      tabindex: activePage === 1 ? 0 : -1,\r\n      label: '1',\r\n      ariaLabel: this.setAriaLabel(activePage, 1),\r\n      active: activePage === 1,\r\n      action: () => { this.showPage(1); }\r\n    } as PageItem);\r\n  }\r\n\r\n  private addLastPageItem(index: number, activePage: number) {\r\n    this.pageItems.push({\r\n      buttonIndex: index,\r\n      tabindex: activePage === this.pages ? 0 : -1,\r\n      label: this.pages.toString(),\r\n      ariaLabel: this.setAriaLabel(activePage, this.pages),\r\n      active: activePage === this.pages,\r\n      action: () => { this.showPage(this.pages); }\r\n    } as PageItem);\r\n  }\r\n\r\n  private addPageItem(index: number, item: number, activePage: number) {\r\n    this.pageItems.push({\r\n      buttonIndex: index,\r\n      tabindex: activePage === item ? 0 : -1,\r\n      label: item.toString(),\r\n      ariaLabel: this.setAriaLabel(activePage, item),\r\n      active: item === activePage,\r\n      action: () => { this.showPage(item); }\r\n    });\r\n  }\r\n\r\n  private setAriaLabel(activePage: number, item: number): string {\r\n    if (activePage === item) {\r\n      return `Du är på sida ${item} av ${this.pages}`;\r\n    } else if (item === 1) {\r\n      return `Gå till första sidan, sida 1 av ${this.pages}`;\r\n    } else if (item === this.pages) {\r\n      return `Gå till sista sidan, sida ${this.pages} av ${this.pages}`;\r\n    } else {\r\n      return `Gå till sida ${item} av ${this.pages}`;\r\n    }\r\n  }\r\n\r\n  private addDots() {\r\n    this.pageItems.push({\r\n      label: '...',\r\n      action: () => { }\r\n    } as PageItem);\r\n  }\r\n}\r\n","@if (pages >= 1) {\r\n  <div class=\"pagination\">\r\n    @for (item of pageItems; track $index; let isPrevious = $first; let isNext = $last) {\r\n      <div>\r\n        @if (item.label !== '...') {\r\n          <button #pageButton type=\"button\" [attr.aria-disabled]=\"isPrevious && activePage === 1 || isNext && activePage === pages\"\r\n            [attr.aria-label]=\"item.ariaLabel\" tabindex=\"{{item.tabindex}}\" class=\"pagination__page-button\"\r\n            [ngClass]=\"{'page--active' : item.active, 'previous' : isPrevious, 'next' : isNext, 'button--disabled' : isPrevious && activePage === 1 || isNext && activePage === pages }\"\r\n            (click)=\"item.action()\" (focus)=\"onPageButtonFocus($event)\" (blur)=\"onPageButtonBlur($event)\" (keydown)=\"onKeydown($event, item.buttonIndex)\">\r\n            @if (isPrevious) {\r\n              <span>&lt;</span>\r\n            }\r\n            <span>{{ item.label }}</span>\r\n            @if (isNext) {\r\n              <span>&gt;</span>\r\n            }\r\n          </button>\r\n        }\r\n        @if (item.label === '...') {\r\n          <span class=\"noselect pagination__dots\">{{ item.label }}</span>\r\n        }\r\n      </div>\r\n    }\r\n  </div>\r\n}\r\n","import { Component, Input, EventEmitter, Output, ViewChild, ElementRef, AfterViewInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-dropdown-item',\r\n    templateUrl: './dropdown-item.component.html',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class DropdownItemComponent implements AfterViewInit {\r\n\r\n  @Input() selectedLabel: string;\r\n  @Input() value: any;\r\n  @Output() toggle = new EventEmitter();\r\n  @Output() confirm = new EventEmitter();\r\n  @Output() previous = new EventEmitter();\r\n  @Output() next = new EventEmitter();\r\n  @Output() nextMatch = new EventEmitter<string>();\r\n  @ViewChild('item') item: ElementRef;\r\n  label: string;\r\n  multi = false;\r\n  selected = false;\r\n  visible = true;\r\n  hasFocus = false;\r\n\r\n  ngAfterViewInit() {\r\n    this.label = (this.item.nativeElement as Node).textContent.trim();\r\n    if (this.value === undefined) {\r\n      this.value = this.label;\r\n    }\r\n  }\r\n\r\n  toggleSelect() {\r\n    if (this.multi) {\r\n      this.selected = !this.selected;\r\n      this.toggle.emit();\r\n    } else if (!this.selected) {\r\n      this.selected = true;\r\n      this.confirm.emit();\r\n    }\r\n  }\r\n\r\n  focus() {\r\n    if (this.item) {\r\n      this.item.nativeElement.focus();\r\n    }\r\n  }\r\n\r\n  // IE specific hack, since IE sets focus on internal elements when clicked.\r\n  onFocus() {\r\n    this.hasFocus = true;\r\n  }\r\n\r\n  onBlur() {\r\n    this.hasFocus = false;\r\n  }\r\n\r\n  onKeydown(event: KeyboardEvent) {\r\n    if (event.key === 'ArrowUp' || event.key === 'Up') {\r\n      this.previous.emit();\r\n    } else if (event.key === 'ArrowDown' || event.key === 'Down') {\r\n      this.next.emit();\r\n    } else if (event.key === ' ' || event.key === 'Spacebar') {\r\n      if (this.multi) {\r\n        this.toggleSelect();\r\n      }\r\n    } else if (event.key === 'Enter') {\r\n      this.selected = true;\r\n      this.confirm.emit();\r\n    } else if (/^[\\wåäöÅÄÖ]$/.test(event.key) && !event.ctrlKey && !event.altKey) {\r\n      this.nextMatch.emit(event.key);\r\n    }\r\n  }\r\n\r\n}\r\n","@if (visible) {\r\n  <div #item class=\"dropdown-select__menu__items__item\" tabindex=\"0\" role=\"option\" [attr.aria-selected]=\"selected\"\r\n    [ngClass]=\"{ 'dropdown-item--selected': selected, 'dropdown-item--focus': hasFocus }\" (click)=\"toggleSelect()\"\r\n    (keydown)=\"onKeydown($event)\" (focusin)=\"onFocus()\" (focusout)=\"onBlur()\">\r\n    <div class=\"dropdown-select__menu__items__item__content-wrapper\">\r\n      <div class=\"dropdown-select__menu__items__item__content-wrapper__checkbox\"></div>\r\n      <div>\r\n        <ng-content></ng-content>\r\n      </div>\r\n    </div>\r\n  </div>\r\n}","import {\n  Component, OnChanges, AfterContentInit, AfterViewInit, OnDestroy, ViewChild, ContentChildren, ElementRef, QueryList,\n  Input, Output, EventEmitter, Optional, SimpleChanges, Self, HostListener,\n  ChangeDetectionStrategy\n} from '@angular/core';\r\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\nimport { DropdownItemComponent } from './dropdown-item.component';\r\nimport { ButtonComponent } from '../button/button.component';\r\nimport { Guid } from '../../utils/guid';\r\nimport { InputComponent } from '../input/input.component';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\n\r\nfunction _defaultCompare(o1: any, o2: any): boolean {\r\n  return o1 === o2;\r\n}\r\n\r\n@Component({\r\n    selector: 'vgr-dropdown-select',\r\n    templateUrl: './dropdown-select.component.html',\r\n    styleUrls: ['./dropdown-select.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class DropdownSelectComponent implements OnChanges, AfterContentInit, AfterViewInit, OnDestroy, ControlValueAccessor {\r\n\r\n  @Input() multi = false;\r\n  @Input() deselectable = false;\r\n  @Input() simpleLabel = false;\r\n  @Input() noItemSelectedLabel = 'Välj';\r\n  @Input() readonly = false;\r\n  @Input() disabled = false;\r\n  @Input() showValidation = true;\r\n  @Input() errorMessage = {};\r\n  @Input() compareWith = _defaultCompare;\r\n  @Input() labelId: string;\r\n  @Input() value: any;\r\n  @Input() width: string;\r\n  @Input() small = false;\r\n  @Input() rightAlign = false;\r\n  @Input() topAlign = false;\r\n\r\n  @Output() selectedChanged = new EventEmitter<any>();\r\n  @Output() expandedChanged = new EventEmitter<boolean>();\r\n\r\n  @ViewChild('dropdown', { static: true }) dropdown: ElementRef;\r\n  @ViewChild(NgScrollbar) scrollbarRef: NgScrollbar;\r\n  @ViewChild('header', { static: true }) header: ElementRef;\r\n  @ViewChild('selectAll', { static: false }) selectAll: ElementRef;\r\n  @ViewChild('deselectButton', { static: false }) deselectButton: ButtonComponent;\r\n  @ViewChild(InputComponent, { static: false }) filter: InputComponent;\r\n  @ContentChildren(DropdownItemComponent) items: QueryList<DropdownItemComponent>;\r\n\r\n  scrollSubscription = Subscription.EMPTY;\r\n  expanded = false;\r\n  filterVisible = false;\r\n  allSelected = false;\r\n  deselectDisabled = true;\r\n  headerLabelId = Guid.newGuid();\r\n  label = this.noItemSelectedLabel;\r\n\r\n  hasFocus: boolean;\r\n  filterHasFocus: boolean;\r\n  visibleCount: number;\r\n  searchString = '';\r\n  elementId: string;\r\n  truncateTextLength: number;\r\n\r\n  private matchQuery = '';\r\n\r\n  get combinedLabelIds() {\r\n    return `${this.labelId} ${this.headerLabelId}`;\r\n  }\r\n\r\n  get errorActive() {\r\n    return this.showValidation && this.formControl && this.formControl.invalid;\r\n  }\r\n\r\n  get errorEditing() {\r\n    return this.showValidation && this.formControl && this.formControl.invalid && this.hasFocus;\r\n  }\r\n\r\n  private ngUnsubscribe: any = new Subject();\r\n  private ngUnsubscribeItems: any = new Subject();\r\n\r\n  @HostListener('document:click', ['$event'])\r\n  onDocumentClick(event: any) {\r\n    const target = event.target || event.srcElement || event.currentTarget;\r\n    if ((this.elementRef.nativeElement && !this.elementRef.nativeElement.contains(target)) && this.expanded) {\r\n      this.collapse();\r\n    }\r\n  }\r\n\r\n  constructor(@Optional() @Self() public formControl: NgControl, private elementRef: ElementRef) {\r\n    this.elementId = Guid.newGuid();\r\n    if (this.formControl != null) {\r\n      this.formControl.valueAccessor = this;\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes.value && !changes.value.firstChange) {\r\n      this.onChange(changes.value.currentValue);\r\n      this.setSelectedState(changes.value.currentValue);\r\n    }\r\n\r\n    if (changes.multi && this.items) {\r\n      this.setMultiOnItems();\r\n    }\r\n\r\n    if (changes.noItemSelectedLabel && changes.noItemSelectedLabel.firstChange || (this.items && !this.items.some(item => item.selected))) {\r\n       this.label = this.disabled ? '' : this.noItemSelectedLabel;\r\n    }\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this.setFilterVisibility();\r\n    this.subscribeToItems();\r\n    if (this.multi) {\r\n      this.setMultiOnItems();\r\n    }\r\n\r\n    this.items.changes\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(_ => {\r\n        this.setFilterVisibility();\r\n        this.subscribeToItems();\r\n        if (this.multi) {\r\n          this.setMultiOnItems();\r\n        }\r\n        setTimeout(() => {\r\n          this.setSelectedState(this.value);\r\n        });\r\n      });\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    if (this.formControl) {\r\n      setTimeout(() => {\r\n        this.truncateTextLength = this.errorMessage.toString().length < 25 ? 24 : this.errorMessage.toString().length;\r\n        this.setSelectedState(this.formControl.value);\r\n      });\r\n    } else {\r\n      setTimeout(() => {\r\n        this.setSelectedState(this.value);\r\n        this.truncateTextLength = this.errorMessage.toString().length < 25 ? 24 : this.errorMessage.toString().length;\r\n      });\r\n    }\r\n\r\n    // this.visibilityObserver();\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n\r\n    this.ngUnsubscribeItems.next();\r\n    this.ngUnsubscribeItems.complete();\r\n    this.scrollSubscription.unsubscribe();\r\n  }\r\n\r\n    // Kollar om komponenten försvunnit ur view och rensar dropdown filtrerade och sökvärden\r\n    // private visibilityObserver() {\r\n    //   const native = this.elementRef.nativeElement;\r\n\r\n    //   const observer = new MutationObserver(() => {\r\n    //   if (native.getClientRects().length === 0 || !native.offsetParent) {\r\n    //     this.deselectItems();\r\n    //     if (this.filter) {\r\n    //       this.filter.value = '';\r\n    //     }\r\n    //     this.filterItems();\r\n    //   }\r\n    // });\r\n\r\n    //   observer.observe(document.body, {\r\n    //     attributes: true,\r\n    //     subtree: true,\r\n    //     childList: true\r\n    //   });\r\n\r\n    //   this.ngUnsubscribe.subscribe(() => observer.disconnect());\r\n    // }\r\n\r\n  public focus() {\r\n    this.header.nativeElement.focus();\r\n  }\r\n\r\n  writeValue(value: any) {\r\n    this.value = value;\r\n    this.selectedChanged.emit(this.value);\r\n\r\n    if (!this.items) {\r\n      return;\r\n    }\r\n\r\n    this.setSelectedState(this.value);\r\n  }\r\n\r\n  registerOnChange(func: (value: any) => any) {\r\n    this.onChange = (value: any) => {\r\n      this.value = value;\r\n      this.selectedChanged.emit(value);\r\n      func(value);\r\n    };\r\n  }\r\n\r\n  registerOnTouched(func: () => any) {\r\n    this.onTouched = func;\r\n  }\r\n\r\n  onChange(value: any) {\r\n    this.value = value;\r\n    this.selectedChanged.emit(value);\r\n  }\r\n\r\n  onTouched() { }\r\n\r\n  toggleExpanded() {\r\n    if (this.readonly || this.disabled) {\r\n      return;\r\n    }\r\n\r\n    if (this.expanded) {\r\n      this.collapse();\r\n    } else {\r\n      this.expand();\r\n    }\r\n  }\r\n\r\n  filterItems() {\r\n    const value = this.searchString;\r\n\r\n    if (this.items) {\r\n      this.items.forEach(item => {\r\n        item.visible = item.label.toLowerCase().trim().replace(' ', '').includes(value.toLowerCase().trim().replace(' ', ''));\r\n      });\r\n      this.visibleCount = this.items.filter(e => e.visible).length;\r\n      this.updateAllCheckedStatus();\r\n    }\r\n  }\r\n\r\n  deselectItems() {\r\n    const selecedItem = this.items.find(item => item.selected);\r\n    if (selecedItem) {\r\n      selecedItem.selected = false;\r\n      this.label = this.disabled ? '' : this.noItemSelectedLabel;\r\n      this.deselectDisabled = true;\r\n      this.searchString = '';\r\n      this.onChange(null);\r\n    }\r\n    this.collapse();\r\n  }\r\n\r\n  toggleSelectAll() {\r\n    if (!this.multi) {\r\n      return;\r\n    }\r\n    this.items.filter(i => i.visible).forEach(item => item.selected = !this.allSelected);\r\n    this.setLabel(Array.from(this.items.filter(i => i.selected)));\r\n    this.updateAllCheckedStatus();\r\n    let values;\r\n    if (this.items) {\r\n      values = this.items.filter(i => i.selected).map(item => item.value).length > 0 ? this.items.filter(i => i.selected).map(item => item.value) : null;\r\n    } else {\r\n      values = null;\r\n    }\r\n    this.onChange(values);\r\n  }\r\n\r\n  updateAllCheckedStatus() {\r\n    if (this.items) {\r\n      const selected = Array.from(this.items.filter(i => i.selected));\r\n      const visible = Array.from(this.items.filter(i => i.visible));\r\n      this.allSelected = visible.every(i => selected.includes(i));\r\n    } else {\r\n      this.allSelected = false;\r\n    }\r\n    // this.allSelected = this.items && this.items.filter(i => i.visible).length === this.items.filter(i => i.selected).length;\r\n  }\r\n\r\n  onFocus() {\r\n    this.hasFocus = true;\r\n  }\r\n\r\n  onBlur(event: FocusEvent) {\r\n    const dropdownElement = this.dropdown.nativeElement as HTMLElement;\r\n    const focusedNode = event.relatedTarget as Node;\r\n\r\n    if (!focusedNode || dropdownElement.contains(focusedNode)) {\r\n      return;\r\n    } else if (event.relatedTarget !== null && (event.relatedTarget as HTMLElement).id === 'page-content-focus') { // otherwise the pagefocus will steal event and collapse\r\n      return;\r\n    } else if (event.relatedTarget !== null  && (event.relatedTarget as HTMLElement).tagName === 'VGR-EDITABLE-TABLE-COLUMN') { // otherwise the the combobox in an editable-table will alway collapse on click\r\n      return;\r\n    } else if (event.relatedTarget !== null  && (event.relatedTarget as HTMLElement).className.includes('action-panel--open')) { // otherwise the the dropdown in an action-panel will always collapse on click\r\n      return;\r\n    }\r\n\r\n    this.hasFocus = false;\r\n    this.collapse(false);\r\n  }\r\n\r\n  onKeydown(event: KeyboardEvent) {\r\n    if (event.key === 'ArrowDown' || event.key === 'Down' ||\r\n      event.key === 'ArrowUp' || event.key === 'Up' ||\r\n      event.key === ' ' || event.key === 'Spacebar') {\r\n      event.preventDefault();\r\n    }\r\n\r\n    if (event.key === 'Escape' || event.key === 'Esc') {\r\n      this.collapse();\r\n    } else if (event.key === 'Tab') {\r\n      this.collapse();\r\n    } else if (this.multi && event.ctrlKey && event.key === 'a') {\r\n      event.preventDefault();\r\n      this.toggleSelectAll();\r\n    } else if (event.key === 'Home') {\r\n      event.preventDefault();\r\n      if (this.filterVisible) {\r\n        setTimeout(() => {\r\n          this.filter.focus();\r\n        });\r\n      } else {\r\n        const filteredItems = this.items.filter(item => item.visible);\r\n        if (filteredItems.length) {\r\n          setTimeout(() => {\r\n            filteredItems[0].focus();\r\n          });\r\n        }\r\n      }\r\n    } else if (event.key === 'End') {\r\n      event.preventDefault();\r\n      const filteredItems = this.items.filter(item => item.visible);\r\n      if (filteredItems.length) {\r\n        setTimeout(() => {\r\n          filteredItems[filteredItems.length - 1].focus();\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  onHeaderKeydown(event: KeyboardEvent) {\r\n    if (event.key === 'Enter') {\r\n      event.stopPropagation();\r\n      this.expand();\r\n\r\n      const selectedItems = this.items.filter(item => item.selected);\r\n      if (selectedItems.length) {\r\n        setTimeout(() => {\r\n          selectedItems[0].focus();\r\n        });\r\n      } else if (this.filterVisible) {\r\n        setTimeout(() => {\r\n          this.filter.focus();\r\n        });\r\n      } else if (this.items.length) {\r\n        setTimeout(() => {\r\n          this.items.toArray()[0].focus();\r\n        });\r\n      }\r\n    } else if (event.key === 'ArrowDown' || event.key === 'Down') {\r\n      this.expand();\r\n\r\n      let lastSelectedIndex = -1;\r\n      const itemsArray = this.items.toArray();\r\n      for (let index = itemsArray.length - 1; index >= 0; index--) {\r\n        if (itemsArray[index].selected) {\r\n          lastSelectedIndex = index;\r\n          break;\r\n        }\r\n      }\r\n      if (lastSelectedIndex >= 0) {\r\n        const focusedIndex = lastSelectedIndex < this.items.length - 1\r\n          ? lastSelectedIndex + 1\r\n          : lastSelectedIndex;\r\n        setTimeout(() => {\r\n          itemsArray[focusedIndex].focus();\r\n        });\r\n      } else if (this.filterVisible) {\r\n        setTimeout(() => {\r\n          this.filter.focus();\r\n        });\r\n      } else if (this.items.length) {\r\n        setTimeout(() => {\r\n          itemsArray[0].focus();\r\n        });\r\n      }\r\n    } else if (event.key === 'ArrowUp' || event.key === 'Up') {\r\n      this.expand();\r\n\r\n      let firstSelectedIndex = -1;\r\n      const itemsArray = this.items.toArray();\r\n      for (let index = 0; index < itemsArray.length; index++) {\r\n        if (itemsArray[index].selected) {\r\n          firstSelectedIndex = index;\r\n          break;\r\n        }\r\n      }\r\n      if (firstSelectedIndex >= 0) {\r\n        const focusedIndex = firstSelectedIndex > 0\r\n          ? firstSelectedIndex - 1\r\n          : 0;\r\n        setTimeout(() => {\r\n          itemsArray[focusedIndex].focus();\r\n        });\r\n      } else if (this.filterVisible) {\r\n        setTimeout(() => {\r\n          this.filter.focus();\r\n        });\r\n      } else if (this.items.length) {\r\n        setTimeout(() => {\r\n          itemsArray[0].focus();\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  onFilterFocus() {\r\n    this.filterHasFocus = true;\r\n  }\r\n\r\n  onFilterBlur() {\r\n    this.filterHasFocus = false;\r\n  }\r\n\r\n  onFilterKeydown(event: KeyboardEvent) {\r\n    const filteredItems = this.items.filter(item => item.visible);\r\n\r\n    if (event.key === ' ' || event.key === 'Spacebar' || event.key === 'Enter') {\r\n      event.stopPropagation();\r\n      if (event.key === 'Enter') {\r\n        this.toggleSelectAll();\r\n      }\r\n    } else if (event.key === 'ArrowDown' || event.key === 'Down') {\r\n      if (this.multi) {\r\n        this.selectAll.nativeElement.focus();\r\n      } else if (this.deselectable && this.value) {\r\n        this.deselectButton.focus();\r\n      } else if (filteredItems.length) {\r\n        filteredItems[0].focus();\r\n      }\r\n    }\r\n  }\r\n\r\n  onDeselectKeydown(event: KeyboardEvent) {\r\n    const filteredItems = this.items.filter(item => item.visible);\r\n\r\n    if (event.key === ' ' || event.key === 'Spacebar') {\r\n      this.deselectItems();\r\n    } else if (event.key === 'ArrowDown' || event.key === 'Down') {\r\n      if (filteredItems.length) {\r\n        filteredItems[0].focus();\r\n      }\r\n    } else if (event.key === 'ArrowUp' || event.key === 'Up') {\r\n      if (this.filterVisible) {\r\n        this.filter.focus();\r\n      }\r\n    }\r\n  }\r\n\r\n  onSelectAllKeydown(event: KeyboardEvent) {\r\n    const filteredItems = this.items.filter(item => item.visible);\r\n\r\n    if (event.key === 'ArrowDown' || event.key === 'Down') {\r\n      if (filteredItems.length) {\r\n        filteredItems[0].focus();\r\n      }\r\n    } else if (event.key === 'ArrowUp' || event.key === 'Up') {\r\n      if (this.filterVisible) {\r\n        this.filter.focus();\r\n      }\r\n    } else if (event.key === ' ' || event.key === 'Spacebar') {\r\n      this.toggleSelectAll();\r\n    } else if (event.key === 'Enter') {\r\n      this.toggleSelectAll();\r\n      this.collapse();\r\n    }\r\n  }\r\n\r\n  private expand() {\r\n    this.expanded = true;\r\n\r\n    this.expandedChanged.emit(true);\r\n\r\n  }\r\n\r\n  private collapse(focusHeader = true) {\r\n    this.expanded = false;\r\n\r\n    if (this.filter) {\r\n      this.filter.value = '';\r\n      // this.searchString = '';\r\n      this.filterItems();\r\n    }\r\n\r\n    if (focusHeader) {\r\n      this.header.nativeElement.focus();\r\n    }\r\n\r\n    if (this.formControl) {\r\n      this.onTouched();\r\n    }\r\n\r\n    this.expandedChanged.emit(false);\r\n  }\r\n\r\n  private setFilterVisibility() {\r\n    this.filterVisible = this.items && this.items.length > 20;\r\n    this.visibleCount = this.items.length;\r\n  }\r\n\r\n  private setMultiOnItems() {\r\n    this.items.forEach(item => item.multi = this.multi);\r\n  }\r\n\r\n  private subscribeToItems() {\r\n    this.ngUnsubscribeItems.next();\r\n    this.ngUnsubscribeItems.complete();\r\n    this.ngUnsubscribeItems = new Subject();\r\n\r\n    this.items.forEach(item => {\r\n      item.previous\r\n        .pipe(takeUntil(this.ngUnsubscribeItems))\r\n        .subscribe(() => this.focusPreviousItem(item));\r\n\r\n      item.next\r\n        .pipe(takeUntil(this.ngUnsubscribeItems))\r\n        .subscribe(() => this.focusNextItem(item));\r\n\r\n      item.nextMatch\r\n        .pipe(takeUntil(this.ngUnsubscribeItems))\r\n        .subscribe(value => this.focusNextMatchingItem(item, value));\r\n\r\n      item.toggle\r\n        .pipe(takeUntil(this.ngUnsubscribeItems))\r\n        .subscribe(() => {\r\n          const selectedItems = this.items.filter(i => i.selected);\r\n          if (selectedItems.length) {\r\n            this.updateAllCheckedStatus();\r\n            this.setLabel(selectedItems);\r\n            const values = selectedItems.map(i => i.value);\r\n            this.onChange(values);\r\n          } else {\r\n            this.allSelected = false;\r\n            this.label = this.disabled ? '' : this.noItemSelectedLabel;\r\n            this.onChange(null);\r\n          }\r\n        });\r\n\r\n      item.confirm\r\n        .pipe(takeUntil(this.ngUnsubscribeItems))\r\n        .subscribe(() => {\r\n          if (this.multi) {\r\n            const selectedItems = this.items.filter(i => i.selected);\r\n            this.updateAllCheckedStatus();\r\n            this.setLabel(selectedItems);\r\n            const values = selectedItems.map(i => i.value);\r\n            this.onChange(values);\r\n          } else {\r\n            this.items.forEach(x => {\r\n              if (x !== item) {\r\n                x.selected = false;\r\n              }\r\n            });\r\n            this.label = item.selectedLabel || item.label;\r\n            this.deselectDisabled = false;\r\n            this.onChange(item.value);\r\n          }\r\n          this.collapse();\r\n        });\r\n    });\r\n  }\r\n\r\n  private focusPreviousItem(item: DropdownItemComponent) {\r\n    const filteredItems = this.items.filter(i => i.visible);\r\n    const itemIndex = filteredItems.findIndex(i => i === item);\r\n\r\n    if (itemIndex > 0) {\r\n      filteredItems[itemIndex - 1].focus();\r\n    } else if (this.multi) {\r\n      this.selectAll.nativeElement.focus();\r\n    } else if (this.deselectable && this.value) {\r\n      this.deselectButton.focus();\r\n    } else if (this.filterVisible) {\r\n      this.filter.focus();\r\n    }\r\n  }\r\n\r\n  private focusNextItem(item: DropdownItemComponent) {\r\n    const filteredItems = this.items.filter(i => i.visible);\r\n    const itemIndex = filteredItems.findIndex(i => i === item);\r\n\r\n    if (itemIndex < (filteredItems.length - 1)) {\r\n      filteredItems[itemIndex + 1].focus();\r\n    }\r\n  }\r\n\r\n  private focusNextMatchingItem(item: DropdownItemComponent, query: string) {\r\n    if (!this.matchQuery) {\r\n      setTimeout(() => {\r\n        const filteredItems = this.items.filter(i => i.visible);\r\n        const itemIndex = filteredItems.findIndex(i => i === item);\r\n\r\n        const match =\r\n          filteredItems.slice(itemIndex + 1)\r\n            .concat(filteredItems.slice(0, itemIndex))\r\n            .find(i => i.label.toLowerCase().startsWith(this.matchQuery));\r\n\r\n        if (match) {\r\n          const matchIndex = filteredItems.findIndex(i => i === match);\r\n          filteredItems[matchIndex].focus();\r\n        }\r\n\r\n        this.matchQuery = '';\r\n      }, 300);\r\n    }\r\n\r\n    this.matchQuery += query;\r\n  }\r\n\r\n  private setLabel(selectedItems: DropdownItemComponent[]) {\r\n    if (this.simpleLabel) {\r\n      if (!selectedItems.length) {\r\n        this.label = this.disabled ? '' : this.noItemSelectedLabel;\r\n      } else if (selectedItems.length === this.items.length) {\r\n        this.label = 'Alla';\r\n      } else if (selectedItems.length === 1) {\r\n        this.label = '1 vald';\r\n      } else {\r\n        this.label = `${selectedItems.length} valda`;\r\n      }\r\n    } else {\r\n      const labels = selectedItems.map(item => item.selectedLabel || item.label);\r\n      if (labels.length) {\r\n        this.label = labels.reduce((xs, x) => xs = `${xs}, ${x}`);\r\n      } else {\r\n        this.label = this.disabled ? '' : this.noItemSelectedLabel;\r\n      }\r\n    }\r\n  }\r\n\r\n  private setSelectedState(value: any) {\r\n    if (this.multi) {\r\n      const selectedItems: DropdownItemComponent[] = [];\r\n      const values = value as any[] || [];\r\n      this.items.forEach(i => {\r\n        if (values.some(v => this.compareWith(v, i.value))) {\r\n          i.selected = true;\r\n          selectedItems.push(i);\r\n        } else {\r\n          i.selected = false;\r\n        }\r\n      });\r\n      this.updateAllCheckedStatus();\r\n      this.setLabel(selectedItems);\r\n    } else {\r\n      let selectedItem: DropdownItemComponent;\r\n      this.items.forEach(i => {\r\n        if (this.compareWith(value, i.value)) {\r\n          i.selected = true;\r\n          selectedItem = i;\r\n        } else {\r\n          i.selected = false;\r\n        }\r\n      });\r\n      this.label = selectedItem ? selectedItem.selectedLabel || selectedItem.label : this.disabled ? '' : this.noItemSelectedLabel;\r\n      if (value) {\r\n        this.deselectDisabled = false;\r\n      } else {\r\n        this.deselectDisabled = true;\r\n      }\r\n    }\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean) {\r\n    this.disabled = isDisabled;\r\n\r\n    // if disabled and noitems selected, empty placeholder\r\n    if (this.disabled && this.label === this.noItemSelectedLabel ) {\r\n      this.label = '';\r\n    // if not disabled and noitems selected, set placeholder\r\n    } else if (!this.disabled && this.label === '') {\r\n      this.label = this.noItemSelectedLabel;\r\n    }\r\n  }\r\n\r\n  getLabelFromId() {\r\n    // return window.document.getElementById(this.idForLabel)\r\n    let labels = document.getElementsByTagName('label');\r\n    for( var i = 0; i < labels.length; i++ ) {\r\n      if (labels[i].htmlFor == this.labelId)\r\n           return labels[i];\r\n   }\r\n  }\r\n}\r\n","<div class=\"dropdown-select\" [ngClass]=\"{\r\n    'validation-error--active': errorActive,\r\n    'validation-error--editing': errorEditing,\r\n    'dropdown--small': small, 'dropdown--large': !small }\" [ngStyle]=\"{ 'width': width }\">\r\n  <div class=\"validation\" [ngClass]=\"{ 'readonly': readonly }\">\r\n    <div #dropdown class=\"dropdown-select__control\" [attr.aria-disabled]=\"disabled\" [attr.aria-readonly]=\"readonly\" [attr.aria-describedby]=\"elementId\"\r\n      [ngClass]=\"{ 'dropdown-select--multi': multi, 'dropdown-select--small': small, 'dropdown-select--readonly': readonly, 'dropdown-select--disabled': disabled && !readonly, 'dropdown-select--expanded': expanded, 'dropdown-select--filter-visible': filterVisible }\"\r\n      (keydown)=\"onKeydown($event)\" (focusin)=\"onFocus()\" (focusout)=\"onBlur($event)\">\r\n      <div #header class=\"dropdown-select__header\" tabindex=\"0\" aria-haspopup=\"listbox\" [attr.aria-expanded]=\"expanded\"\r\n        [attr.aria-labelledby]=\"combinedLabelIds\" (click)=\"toggleExpanded()\" (keydown)=\"onHeaderKeydown($event)\" role=\"listbox\" [attr.aria-invalid]=\"errorActive\" [attr.aria-disabled]=\"disabled\">\r\n        @if (!(readonly && noItemSelectedLabel === label)) {\r\n          <div class=\"dropdown-select__header__label noselect\" id=\"{{headerLabelId}}\" title=\"{{label}}\">{{label}}</div>\r\n        }\r\n        <div class=\"dropdown-select__header__button\">\r\n          <vgr-icon icon=\"chevron-down\" size=\"sm\" class=\"dropdown-select__header__button__icon\"></vgr-icon>\r\n        </div>\r\n      </div>\r\n      @if (expanded && !readonly && !disabled) {\r\n        <div class=\"dropdown-select__menu\" role=\"listbox\"\r\n          [attr.aria-labelledby]=\"labelId\" [attr.aria-multiselectable]=\"multi\" [ngClass]=\"{ 'top-align': topAlign, 'right-align': rightAlign }\">\r\n          @if (filterVisible || deselectable || multi) {\r\n            <div class=\"dropdown-select__menu__header\">\r\n              @if (filterVisible) {\r\n                <vgr-input type=\"search\" (keydown)=\"onFilterKeydown($event)\" [(ngModel)]=\"searchString\" (ngModelChange)=\"filterItems()\" (focusin)=\"onFilterFocus()\" (focusout)=\"onFilterBlur()\" >\r\n                </vgr-input>\r\n              }\r\n              @if (multi) {\r\n                <div class=\"select-all-text\" [ngStyle]=\"{'visibility': filterHasFocus ? 'visible' : 'hidden'}\">(tryck retur för att välja alla träffar)</div>\r\n              }\r\n              @if (deselectable && !multi) {\r\n                <vgr-button #deselectButton class=\"dropdown-select__menu__header__deselect\"\r\n                  [buttonStyle]=\"'discreet'\" [disabled]=\"deselectDisabled\" (click)=\"deselectItems()\"\r\n                  (keydown)=\"onDeselectKeydown($event)\">Ta\r\n                bort val</vgr-button>\r\n              }\r\n              @if (multi) {\r\n                <div #selectAll class=\"dropdown-select__menu__header__select-all\" tabindex=\"0\" role=\"button\"\r\n                  [ngClass]=\"{ 'select-all--selected': allSelected }\" (click)=\"toggleSelectAll()\"\r\n                  (keydown)=\"onSelectAllKeydown($event)\">Markera alla@if (searchString !== '') {\r\n                  <span> sökträffar</span>\r\n                } ({{visibleCount}} st)</div>\r\n              }\r\n            </div>\r\n          }\r\n          <div class=\"dropdown-select__menu__dimmer dropdown-select__menu__dimmer-top\"></div>\r\n          <vgr-scrollbar >\r\n            <div class=\"dropdown-select__menu__items\">\r\n              <div class=\"dropdown-select__menu__items__dimmer-padding\"></div>\r\n              <ng-content></ng-content>\r\n              <div class=\"dropdown-select__menu__items__dimmer-padding\"></div>\r\n            </div>\r\n          </vgr-scrollbar>\r\n          <div class=\"dropdown-select__menu__dimmer dropdown-select__menu__dimmer-bottom\"></div>\r\n        </div>\r\n      }\r\n    </div>\r\n    @if (errorActive || errorEditing) {\r\n      <div [attr.id]=\"elementId\" class=\"validation__status\" [attr.aria-live]=\"errorActive ? 'assertive' : 'off'\"\r\n        title=\"{{ errorMessage | errorMessage: $safeNavigationMigration(formControl?.errors) : getLabelFromId() :  true  }}\">\r\n        <vgr-icon icon=\"exclamation-circle\" size=\"sm\" class=\"validation_status__icon\"></vgr-icon>\r\n        <div class=\"validation__status__message\">\r\n        {{ errorMessage | errorMessage : $safeNavigationMigration(formControl?.errors) : getLabelFromId() : true | truncate:truncateTextLength }}</div>\r\n      </div>\r\n    }\r\n  </div>\r\n</div>\r\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-datepicker-item',\r\n    templateUrl: './datepicker-item.component.html',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\r\n    standalone: false\r\n})\r\nexport class DatepickerItemComponent implements OnInit {\r\n  @Input() date: Date;\r\n  @Input() type: string;\r\n  @Input() selected: boolean;\r\n  @Input() disabled: boolean;\r\n  @Input() isMinZoom: boolean;\r\n  @Output() select = new EventEmitter<Date>();\r\n  @Output() zoomIn = new EventEmitter<Date>();\r\n  @Output() previousColumn = new EventEmitter<Date>();\r\n  @Output() nextColumn = new EventEmitter<Date>();\r\n  @Output() previousRow = new EventEmitter<Date>();\r\n  @Output() nextRow = new EventEmitter<Date>();\r\n\r\n  @ViewChild('item', { static: true }) item: ElementRef;\r\n  dateFormat: string;\r\n  ariaDateFormat: string;\r\n  current: boolean;\r\n  focused: boolean;\r\n\r\n  ngOnInit() {\r\n    const today = new Date();\r\n\r\n    switch (this.type) {\r\n      case 'day':\r\n        this.dateFormat = 'd';\r\n        this.ariaDateFormat = 'EEEE yyyy-MM-dd';\r\n        this.current =\r\n          this.date.getFullYear() === today.getFullYear() &&\r\n          this.date.getMonth() === today.getMonth() &&\r\n          this.date.getDate() === today.getDate();\r\n        break;\r\n      case 'month':\r\n        this.dateFormat = 'MMM';\r\n        this.ariaDateFormat = 'MMM yyyy';\r\n        this.current =\r\n          this.date.getFullYear() === today.getFullYear() &&\r\n          this.date.getMonth() === today.getMonth();\r\n        break;\r\n      case 'year':\r\n        this.dateFormat = 'yyyy';\r\n        this.ariaDateFormat = 'yyyy';\r\n        this.current = this.date.getFullYear() === today.getFullYear();\r\n        break;\r\n    }\r\n  }\r\n\r\n  onClick() {\r\n    this.activate();\r\n  }\r\n\r\n  onKeydown(event: KeyboardEvent) {\r\n    if (event.key === 'Enter' || event.key === 'Spacebar' || event.key === ' ') {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n      // This moves focus to input in datepicker, so wait one cycle to avoid pressed key being entered\r\n      setTimeout(() => {\r\n        this.activate();\r\n      });\r\n    } else if (event.key === 'ArrowLeft' || event.key === 'Left') {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n      this.previousColumn.emit(this.date);\r\n    } else if (event.key === 'ArrowRight' || event.key === 'Right') {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n      this.nextColumn.emit(this.date);\r\n    } else if (event.key === 'ArrowUp' || event.key === 'Up') {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n      this.previousRow.emit(this.date);\r\n    } else if (event.key === 'ArrowDown' || event.key === 'Down') {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n      this.nextRow.emit(this.date);\r\n    }\r\n  }\r\n\r\n  onFocus() {\r\n    this.focused = true;\r\n  }\r\n\r\n  onBlur() {\r\n    this.focused = false;\r\n  }\r\n\r\n  focus() {\r\n    this.item.nativeElement.focus();\r\n  }\r\n\r\n  private activate() {\r\n    if (this.disabled) {\r\n      return;\r\n    }\r\n\r\n    if (this.isMinZoom) {\r\n      this.select.emit(this.date);\r\n    } else {\r\n      this.zoomIn.emit(this.date);\r\n    }\r\n  }\r\n\r\n}\r\n","<div>\r\n  <div #item tabindex=\"0\" class=\"datepicker__calendar__body__item\" role=\"gridcell\"\r\n  [attr.aria-selected]=\"selected\"\r\n  [attr.aria-disabled]=\"disabled\"\r\n  [attr.aria-label]=\"date | date:ariaDateFormat\"\r\n  [ngClass]=\"{'datepicker__calendar__body__item--selected': selected, 'datepicker__calendar__body__item--current': current, 'datepicker__calendar__body__item--disabled': disabled}\"\r\n  (click)=\"onClick()\"\r\n  (keydown)=\"onKeydown($event)\"\r\n  (focus)=\"onFocus()\"\r\n  (blur)=\"onBlur()\">\r\n    {{date | date:dateFormat}}\r\n  </div>\r\n</div>\r\n","export interface Calendar {\r\n    date: Date;\r\n    items: CalendarItem[][];\r\n    previous: () => void;\r\n    next: () => void;\r\n    farPrevious: () => void;\r\n    farNext: () => void;\r\n    zoomOut: () => void;\r\n}\r\n\r\nexport interface CalendarItem {\r\n    date: Date;\r\n    selected: boolean;\r\n    disabled: boolean;\r\n    isMinZoom: boolean;\r\n}\r\n\r\nexport enum DatepickerZoomLevel {\r\n    Days = 1,\r\n    Months = 2,\r\n    Years = 3\r\n}\r\n","import {\n  Component, Input, Output, EventEmitter, OnChanges, SimpleChanges, Optional, Self,\n  ViewChild, ElementRef, ViewChildren, QueryList, AfterViewInit, OnDestroy, LOCALE_ID, Inject, HostBinding, HostListener,\n  ChangeDetectionStrategy\n} from '@angular/core';\r\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { DatepickerItemComponent } from './datepicker-item.component';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { DatePipe } from '@angular/common';\r\n\r\nimport { Guid } from '../../utils/guid';\r\nimport { DatepickerZoomLevel, CalendarItem, Calendar } from './datepicker.interface';\r\n\r\n@Component({\r\n    selector: 'vgr-datepicker',\r\n    templateUrl: './datepicker.component.html',\r\n    styleUrls: ['./datepicker.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class DatepickerComponent implements OnChanges, AfterViewInit, OnDestroy, ControlValueAccessor {\r\n  @Input() @HostBinding('style.width') width; // = '142px';\r\n  @Input() selectedDate: Date;\r\n  @Input() minZoom: string;\r\n  @Input() minDate: Date;\r\n  @Input() maxDate: Date;\r\n  @Input() allowText = true;\r\n  @Input() disabled = false;\r\n  @Input() readonly = false;\r\n  @Input() showValidation = true;\r\n  @Input() errorMessage = {};\r\n  @Input() labelId: string;\r\n  @Input() transparent = false;\r\n  @Input() displayFormat: string = '';\r\n\r\n  @Output() selectedDateChanged = new EventEmitter<Date>();\r\n\r\n  @ViewChild('datepicker', { static: true }) datepicker: ElementRef;\r\n  @ViewChild('headerLabel') headerLabel: ElementRef;\r\n  @ViewChild('headerInput') headerInput: ElementRef;\r\n  @ViewChild('readOnlyHeader') readOnlyHeader: ElementRef;\r\n  @ViewChild('headerInputDiv') headerInputDiv: ElementRef;\r\n  @ViewChild('calendar') calendar: ElementRef;\r\n  @ViewChildren(DatepickerItemComponent) items: QueryList<DatepickerItemComponent>;\r\n\r\n  headerLabelId = Guid.newGuid();\r\n  label = '';\r\n  noSelectedDateLabel: string;\r\n  labelDateFormat: string;\r\n  inputPlaceholder: string;\r\n  parseError = false;\r\n  parseErrorMessage: string;\r\n  headerHasFocus = false;\r\n  expanded = false;\r\n  years: Calendar;\r\n  months: Calendar;\r\n  days: Calendar;\r\n  zoomedToYears = false;\r\n  zoomedToMonths = false;\r\n  zoomedToDays = false;\r\n  private minZoomLevel: DatepickerZoomLevel;\r\n  private actualMinDate: Date;\r\n  private actualMaxDate: Date;\r\n  private ngUnsubscribe: any = new Subject();\r\n  private ngUnsubscribeItems: any = new Subject();\r\n  elementId: string;\r\n  mouseDown: any;\r\n\r\n  @HostListener('window:resize', [])\r\n  onWindowResize() {\r\n    // only change if 'default' values\r\n    if (window.innerWidth <= 1459) {\r\n      if (this.width === '142px') {\r\n        this.width = '130px';\r\n      }\r\n    } else {\r\n      if (this.width === '130px') {\r\n        this.width = '142px';\r\n      }\r\n    }\r\n  }\r\n\r\n\r\n  get errorActive() {\r\n    if (!this.showValidation || this.disabled || this.readonly) {\r\n      return false;\r\n    }\r\n\r\n    return (this.parseError || (this.formControl && this.formControl.invalid));\r\n  }\r\n\r\n  get errorEditing() {\r\n    if (!this.showValidation || this.disabled || this.readonly) {\r\n      return false;\r\n    }\r\n\r\n    return this.headerHasFocus && (this.parseError || (this.formControl && this.formControl.invalid));\r\n  }\r\n\r\n  constructor(@Inject(LOCALE_ID) private locale: string, @Optional() @Self() public formControl: NgControl) {\r\n    this.elementId = Guid.newGuid();\r\n    this.setMinZoomLevel();\r\n\r\n    if (this.formControl != null) {\r\n      this.formControl.valueAccessor = this;\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes.minZoom || changes.minDate || changes.maxDate) {\r\n      this.setMinZoomLevel();\r\n    }\r\n\r\n    if (changes.selectedDate) {\r\n      if (changes.selectedDate.firstChange) {\r\n        this.writeValue(changes.selectedDate.currentValue);\r\n      } else {\r\n        this.writeValue(changes.selectedDate.currentValue);\r\n      }\r\n    }\r\n\r\n    if (changes.disabled) {\r\n      if (changes.disabled.firstChange) {\r\n        setTimeout(() => {\r\n          this.setDisabledState(changes.disabled.currentValue);\r\n        });\r\n      } else {\r\n        this.setDisabledState(changes.disabled.currentValue);\r\n      }\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.subscribeToItems();\r\n\r\n    this.items.changes\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(_ => this.subscribeToItems());\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n\r\n    this.ngUnsubscribeItems.next();\r\n    this.ngUnsubscribeItems.complete();\r\n  }\r\n\r\n  public focus() {\r\n    if (this.readonly) {\r\n      this.readOnlyHeader.nativeElement.focus();\r\n    } else {\r\n      if (this.allowText) {\r\n        this.setFocusOnHeaderInput();\r\n      } else {\r\n        this.headerLabel.nativeElement.focus();\r\n      }\r\n    }\r\n  }\r\n\r\n  setFocusOnHeaderInput() {\r\n    if (this.disabled)  {\r\n      this.headerInputDiv.nativeElement.focus();\r\n    } else {\r\n      this.headerInput.nativeElement.focus();\r\n    }\r\n\r\n  }\r\n\r\n  writeValue(value: Date) {\r\n    this.setSelectedDate(value, false, false);\r\n  }\r\n\r\n  registerOnChange(func: (value: any) => any) {\r\n    this.onChange = (value: any) => {\r\n      this.selectedDateChanged.emit(value);\r\n      func(value);\r\n    };\r\n  }\r\n\r\n  registerOnTouched(func: (value: any) => any) {\r\n    this.onTouched = func;\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean) {\r\n    this.disabled = isDisabled;\r\n\r\n    if (isDisabled) {\r\n      this.collapse(false);\r\n    }\r\n  }\r\n\r\n  onChange(value: any) {\r\n    this.selectedDateChanged.emit(value);\r\n  }\r\n\r\n  onTouched(value: any) { }\r\n\r\n  toggleExpanded() {\r\n    if (this.expanded) {\r\n      this.collapse();\r\n    } else {\r\n      this.expand();\r\n    }\r\n  }\r\n\r\n  onMouseDownClick() {\r\n    this.mouseDown = true;\r\n    this.headerHasFocus = false;\r\n  }\r\n\r\n  onHeaderFocus() {\r\n    if (this.mouseDown) {\r\n      this.mouseDown = false;\r\n      return;\r\n    }\r\n    this.headerHasFocus = true;\r\n    this.mouseDown = false;\r\n  }\r\n\r\n  onHeaderBlur() {\r\n    this.headerHasFocus = false;\r\n  }\r\n\r\n  onBlur(event: FocusEvent) {\r\n    const datepickerElement = this.datepicker.nativeElement as HTMLElement;\r\n    const focusedNode = event.relatedTarget as Node;\r\n\r\n    if (datepickerElement.contains(focusedNode)) {\r\n      return;\r\n    }\r\n\r\n    this.onTouched(this.selectedDate);\r\n    this.collapse(false);\r\n  }\r\n\r\n  onHeaderInputKeydown(event: KeyboardEvent ) {\r\n    // to be able to move backwards-tab, otherwise we will be stuck in an endless loop going to input in div 'allowtext'\r\n    if (event.key === 'Tab' && event.shiftKey) {\r\n      this.headerInputDiv.nativeElement.focus();\r\n    }\r\n  }\r\n\r\n  onKeydown(event: KeyboardEvent) {\r\n    if (this.disabled || this.readonly) {\r\n      return;\r\n    }\r\n\r\n    if (event.key === 'Escape' || event.key === 'Esc') {\r\n      this.collapse();\r\n    } else if (event.key === 'Tab' ) {\r\n      if (event.shiftKey) {\r\n        // to be able to move backwards-tab, otherwise we will be stuck in an endless loop going to input in div 'allowtext'\r\n        this.collapse(false);\r\n      } else {\r\n        this.collapse();\r\n      }\r\n    } else if (event.key === 'Home') {\r\n      event.preventDefault();\r\n      this.items.first.focus();\r\n    } else if (event.key === 'End') {\r\n      event.preventDefault();\r\n      this.items.last.focus();\r\n    }\r\n  }\r\n\r\n  onHeaderClick() {\r\n    if (this.disabled || this.readonly) {\r\n      return;\r\n    }\r\n\r\n    if (this.allowText) {\r\n      this.headerInput.nativeElement.focus();\r\n    } else {\r\n      this.mouseDown = true;\r\n      this.headerLabel.nativeElement.focus();\r\n    }\r\n\r\n    this.toggleExpanded();\r\n  }\r\n\r\n  onHeaderKeydown(event: KeyboardEvent) {\r\n    if (this.disabled || this.readonly) {\r\n      return;\r\n    }\r\n\r\n    if (event.key === 'Enter') {\r\n      this.toggleExpanded();\r\n      if (!this.allowText) {\r\n        setTimeout(() => {\r\n          const itemToFocus = this.items.find(x => x.selected) || this.items.first;\r\n          itemToFocus.focus();\r\n        });\r\n      }\r\n    } else if (\r\n      event.key === 'ArrowUp' || event.key === 'Up' ||\r\n      event.key === 'ArrowDown' || event.key === 'Down') {\r\n      if (this.expanded) {\r\n        event.preventDefault();\r\n        const itemToFocus = this.items.find(x => x.selected) || this.items.first;\r\n        itemToFocus.focus();\r\n      }\r\n    }\r\n  }\r\n\r\n  onCalendarKeydown(event: KeyboardEvent) {\r\n    if (event.key === 'Home') {\r\n      this.items.first.focus();\r\n    } else if (event.key === 'End') {\r\n      this.items.last.focus();\r\n    } else if (event.key === 'PageUp' && !event.altKey) {\r\n      event.preventDefault();\r\n      if (this.zoomedToDays) {\r\n        this.days.previous();\r\n      } else if (this.zoomedToMonths) {\r\n        this.months.previous();\r\n      } else if (this.zoomedToYears) {\r\n        this.years.previous();\r\n      }\r\n    } else if (event.key === 'PageDown' && !event.altKey) {\r\n      event.preventDefault();\r\n      if (this.zoomedToDays) {\r\n        this.days.next();\r\n      } else if (this.zoomedToMonths) {\r\n        this.months.next();\r\n      } else if (this.zoomedToYears) {\r\n        this.years.next();\r\n      }\r\n    } else if (event.key === 'PageUp' && event.altKey) {\r\n      event.preventDefault();\r\n      if (this.zoomedToDays) {\r\n        this.days.farPrevious();\r\n      }\r\n    } else if (event.key === 'PageDown' && event.altKey) {\r\n      event.preventDefault();\r\n      if (this.zoomedToDays) {\r\n        this.days.farNext();\r\n      }\r\n    } else if (\r\n      event.key === 'ArrowUp' || event.key === 'Up' ||\r\n      event.key === 'ArrowDown' || event.key === 'Down' ||\r\n      event.key === 'ArrowLeft' || event.key === 'Left' ||\r\n      event.key === 'ArrowRight' || event.key === 'Right') {\r\n      if (event.target !== this.calendar.nativeElement) {\r\n        return;\r\n      }\r\n      event.preventDefault();\r\n      const itemToFocus = this.items.find(x => x.selected) || this.items.first;\r\n      itemToFocus.focus();\r\n    }\r\n  }\r\n\r\n  parseSelectedDate(value: string) {\r\n    if (!value) {\r\n      this.setSelectedDate(null);\r\n      this.collapse();\r\n      return;\r\n    }\r\n\r\n    let date: Date;\r\n    let year: number;\r\n    let month = 0;\r\n    let day = 1;\r\n    let invalidFormat = false;\r\n\r\n    if (this.minZoomLevel === DatepickerZoomLevel.Days) {\r\n      const matches = value.match(/^((\\d\\d)?\\d\\d)[ -]?(\\d\\d)[ -]?(\\d\\d)$/);\r\n\r\n      if (!matches) {\r\n        invalidFormat = true;\r\n      } else {\r\n        year = +matches[1];\r\n        if (year < 100) {\r\n          year += 2000;\r\n        }\r\n        month = +matches[3] - 1;\r\n        day = +matches[4];\r\n        date = new Date(year, month, day);\r\n      }\r\n    } else if (this.minZoomLevel === DatepickerZoomLevel.Months) {\r\n      const numericMatches = value.match(/^((\\d\\d)?\\d\\d)[ -]?(\\d\\d)$/);\r\n      const textMatches = value.match(/^(\\w+)\\.? ((\\d\\d)?\\d\\d)$/);\r\n\r\n      if (numericMatches) {\r\n        year = +numericMatches[1];\r\n        if (year < 100) {\r\n          year += 2000;\r\n        }\r\n        month = +numericMatches[3] - 1;\r\n        date = new Date(year, month, 1);\r\n      } else if (textMatches) {\r\n        year = +textMatches[2];\r\n        if (year < 100) {\r\n          year += 2000;\r\n        }\r\n        switch (textMatches[1].toLowerCase()) {\r\n          case 'jan':\r\n          case 'januari':\r\n            month = 0;\r\n            break;\r\n          case 'feb':\r\n          case 'februari':\r\n            month = 1;\r\n            break;\r\n          case 'mars':\r\n            month = 2;\r\n            break;\r\n          case 'apr':\r\n          case 'april':\r\n            month = 3;\r\n            break;\r\n          case 'maj':\r\n            month = 4;\r\n            break;\r\n          case 'juni':\r\n            month = 5;\r\n            break;\r\n          case 'juli':\r\n            month = 6;\r\n            break;\r\n          case 'aug':\r\n          case 'augusti':\r\n            month = 7;\r\n            break;\r\n          case 'sep':\r\n          case 'september':\r\n            month = 8;\r\n            break;\r\n          case 'okt':\r\n          case 'oktober':\r\n            month = 9;\r\n            break;\r\n          case 'nov':\r\n          case 'november':\r\n            month = 10;\r\n            break;\r\n          case 'dec':\r\n          case 'december':\r\n            month = 11;\r\n            break;\r\n          default:\r\n            month = -1;\r\n            break;\r\n        }\r\n        date = new Date(year, month, 1);\r\n      } else {\r\n        invalidFormat = true;\r\n      }\r\n    } else if (this.minZoomLevel === DatepickerZoomLevel.Years) {\r\n      const matches = value.match(/^((\\d\\d)?\\d\\d)$/);\r\n\r\n      if (!matches) {\r\n        invalidFormat = true;\r\n      } else {\r\n        year = +matches[1];\r\n        if (year < 100) {\r\n          year += 2000;\r\n        }\r\n        date = new Date(year, 0, 1);\r\n      }\r\n    }\r\n\r\n    if (invalidFormat) {\r\n      this.setSelectedDate(null, true);\r\n      this.parseErrorMessage = 'Felaktigt format';\r\n      return;\r\n    }\r\n\r\n    if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {\r\n      this.setSelectedDate(null, true);\r\n      this.parseErrorMessage = 'Datumet finns inte.';\r\n      return;\r\n    }\r\n\r\n    if (this.actualMinDate && date < this.actualMinDate) {\r\n      this.setSelectedDate(null, true);\r\n      this.parseErrorMessage = 'Datumet är tidigare än tillåtet.';\r\n      return;\r\n    }\r\n\r\n    if (this.actualMaxDate && date > this.actualMaxDate) {\r\n      this.setSelectedDate(null, true);\r\n      this.parseErrorMessage = 'Datumet är senare än tillåtet.';\r\n      return;\r\n    }\r\n\r\n    this.setSelectedDate(date);\r\n  }\r\n\r\n  private expand() {\r\n    let referenceDate: Date;\r\n    if (this.selectedDate) {\r\n      referenceDate = this.selectedDate;\r\n    } else {\r\n      const today = new Date();\r\n      today.setHours(0, 0, 0, 0);\r\n      if (this.minDate && today < this.minDate) {\r\n        referenceDate = this.minDate;\r\n      } else if (this.maxDate && today > this.maxDate) {\r\n        referenceDate = this.maxDate;\r\n      } else {\r\n        referenceDate = today;\r\n      }\r\n    }\r\n\r\n    switch (this.minZoomLevel) {\r\n      case DatepickerZoomLevel.Days:\r\n        this.zoomToDays(referenceDate);\r\n        break;\r\n      case DatepickerZoomLevel.Months:\r\n        this.zoomToMonths(referenceDate);\r\n        break;\r\n      case DatepickerZoomLevel.Years:\r\n        this.zoomToYears(referenceDate, referenceDate);\r\n        break;\r\n    }\r\n\r\n    this.expanded = true;\r\n  }\r\n\r\n  private collapse(focusHeader = true) {\r\n    if (this.disabled) {\r\n      return;\r\n    }\r\n\r\n    this.expanded = false;\r\n\r\n    if (focusHeader) {\r\n      if (this.headerInput) {\r\n        this.headerInput.nativeElement.focus();\r\n      } else if (this.headerLabel) {\r\n        this.headerLabel.nativeElement.focus();\r\n      }\r\n    }\r\n  }\r\n\r\n  private zoomToDays(referenceDate: Date, focus = false) {\r\n    this.zoomedToYears = false;\r\n    this.zoomedToMonths = false;\r\n    this.zoomedToDays = true;\r\n\r\n    const minDateDay = this.minDate ? new Date(this.minDate.getFullYear(), this.minDate.getMonth(), this.minDate.getDate()) : null;\r\n    const maxDateDay = this.maxDate ? new Date(this.maxDate.getFullYear(), this.maxDate.getMonth(), this.maxDate.getDate()) : null;\r\n    const year = referenceDate.getFullYear();\r\n    const month = referenceDate.getMonth();\r\n    const firstDayWeekDay = new Date(year, month, 1).getDay();\r\n    const daysInMonth = new Date(year, month + 1, 0).getDate();\r\n    const dayOffset = firstDayWeekDay ? firstDayWeekDay - 1 : 6; // Sunday is 0\r\n    const weeks = Math.ceil((daysInMonth + dayOffset) / 7);\r\n    const items: CalendarItem[][] = [];\r\n    for (let week = 0; week < weeks; week++) {\r\n      const weekDays: CalendarItem[] = [];\r\n      for (let day = 1; day <= 7; day++) {\r\n        const dayOfMonth = week * 7 + day - dayOffset;\r\n        if (dayOfMonth < 1 || dayOfMonth > daysInMonth) {\r\n          weekDays.push(null);\r\n        } else {\r\n          const date = new Date(year, month, dayOfMonth);\r\n          const selectedYear = this.selectedDate ? this.selectedDate.getFullYear() : null;\r\n          const selectedMonth = this.selectedDate ? this.selectedDate.getMonth() : null;\r\n          const selectedDay = this.selectedDate ? this.selectedDate.getDate() : null;\r\n          const selected = date.getFullYear() === selectedYear && date.getMonth() === selectedMonth && date.getDate() === selectedDay;\r\n          const disabled = (minDateDay && date < minDateDay) || (maxDateDay && date > maxDateDay);\r\n          weekDays.push({\r\n            date: date,\r\n            selected: selected,\r\n            disabled: disabled,\r\n            isMinZoom: true\r\n          });\r\n        }\r\n      }\r\n      items.push(weekDays);\r\n    }\r\n\r\n    this.days = {\r\n      date: new Date(year, month),\r\n      items: items,\r\n      previous: () => {\r\n        const focusedItem = this.items.find(x => x.focused);\r\n        let dayToFocus = focusedItem ? focusedItem.date.getDate() : 1;\r\n        if (dayToFocus > 28) {\r\n          const previousMonthLastDay = new Date(year, month, 0).getDate();\r\n          if (previousMonthLastDay < dayToFocus) {\r\n            dayToFocus = previousMonthLastDay;\r\n          }\r\n        }\r\n        this.zoomToDays(new Date(year, month - 1, dayToFocus), focusedItem ? true : false);\r\n      },\r\n      next: () => {\r\n        const focusedItem = this.items.find(x => x.focused);\r\n        let dayToFocus = focusedItem ? focusedItem.date.getDate() : 1;\r\n        if (dayToFocus > 28) {\r\n          const nextMonthLastDay = new Date(year, month + 2, 0).getDate();\r\n          if (nextMonthLastDay < dayToFocus) {\r\n            dayToFocus = nextMonthLastDay;\r\n          }\r\n        }\r\n        this.zoomToDays(new Date(year, month + 1, dayToFocus), focusedItem ? true : false);\r\n      },\r\n      farPrevious: () => {\r\n        const focusedItem = this.items.find(x => x.focused);\r\n        let dayToFocus = focusedItem ? focusedItem.date.getDate() : 1;\r\n        if (month === 1 && dayToFocus === 29) {\r\n          dayToFocus = 28;\r\n        }\r\n        this.zoomToDays(new Date(year - 1, month, dayToFocus), focusedItem ? true : false);\r\n      },\r\n      farNext: () => {\r\n        const focusedItem = this.items.find(x => x.focused);\r\n        let dayToFocus = focusedItem ? focusedItem.date.getDate() : 1;\r\n        if (month === 1 && dayToFocus === 29) {\r\n          dayToFocus = 28;\r\n        }\r\n        this.zoomToDays(new Date(year + 1, month, dayToFocus), focusedItem ? true : false);\r\n      },\r\n      zoomOut: () => this.zoomToMonths(new Date(year, month))\r\n    };\r\n\r\n    if (focus) {\r\n      this.calendar.nativeElement.focus();\r\n      setTimeout(() => {\r\n        this.items.find(x => x.date.getDate() === referenceDate.getDate()).focus();\r\n      });\r\n    }\r\n  }\r\n\r\n  private zoomToMonths(referenceDate: Date, focus = false) {\r\n    this.zoomedToYears = false;\r\n    this.zoomedToMonths = true;\r\n    this.zoomedToDays = false;\r\n\r\n    const year = referenceDate.getFullYear();\r\n\r\n    const monthArray: Date[] = [\r\n      new Date(year, 0),\r\n      new Date(year, 1),\r\n      new Date(year, 2),\r\n      new Date(year, 3),\r\n      new Date(year, 4),\r\n      new Date(year, 5),\r\n      new Date(year, 6),\r\n      new Date(year, 7),\r\n      new Date(year, 8),\r\n      new Date(year, 9),\r\n      new Date(year, 10),\r\n      new Date(year, 11)\r\n    ];\r\n\r\n    const selectedYear = this.selectedDate ? this.selectedDate.getFullYear() : null;\r\n    const selectedMonth = this.selectedDate ? this.selectedDate.getMonth() : null;\r\n    const minDateMonth = this.minDate ? new Date(this.minDate.getFullYear(), this.minDate.getMonth()) : null;\r\n    const maxDateMonth = this.maxDate ? new Date(this.maxDate.getFullYear(), this.maxDate.getMonth()) : null;\r\n    const isMinZoom = this.minZoomLevel === DatepickerZoomLevel.Months;\r\n\r\n    const items: CalendarItem[][] = [];\r\n    for (let rowIndex = 0; rowIndex < 3; rowIndex++) {\r\n      const row: CalendarItem[] = [];\r\n      for (let colIndex = 0; colIndex < 4; colIndex++) {\r\n        const date = monthArray[4 * rowIndex + colIndex];\r\n        const selected = date.getFullYear() === selectedYear && date.getMonth() === selectedMonth;\r\n        const disabled = (minDateMonth && date < minDateMonth) || (maxDateMonth && date > maxDateMonth);\r\n        row.push({\r\n          date: date,\r\n          selected: selected,\r\n          disabled: disabled,\r\n          isMinZoom: isMinZoom\r\n        });\r\n      }\r\n      items.push(row);\r\n    }\r\n\r\n    this.months = {\r\n      date: new Date(year, 0),\r\n      items: items,\r\n      previous: () => {\r\n        const focusedItem = this.items.find(x => x.focused);\r\n        const monthToFocus = focusedItem ? focusedItem.date.getMonth() : 0;\r\n        this.zoomToMonths(new Date(year - 1, monthToFocus), focusedItem ? true : false);\r\n      },\r\n      next: () => {\r\n        const focusedItem = this.items.find(x => x.focused);\r\n        const monthToFocus = focusedItem ? focusedItem.date.getMonth() : 0;\r\n        this.zoomToMonths(new Date(year + 1, monthToFocus), focusedItem ? true : false);\r\n      },\r\n      farPrevious: () => { },\r\n      farNext: () => { },\r\n      zoomOut: () => this.zoomToYears(new Date(year, 0), new Date(year, 0))\r\n    };\r\n\r\n    if (focus) {\r\n      this.calendar.nativeElement.focus();\r\n      setTimeout(() => {\r\n        this.items.find(x => x.date.getMonth() === referenceDate.getMonth()).focus();\r\n      });\r\n    }\r\n  }\r\n\r\n  private zoomToYears(referenceDate: Date, focusDate: Date, focus = false) {\r\n    this.zoomedToYears = true;\r\n    this.zoomedToMonths = false;\r\n    this.zoomedToDays = false;\r\n\r\n    const year = referenceDate.getFullYear();\r\n\r\n    const yearArray: Date[] = [\r\n      new Date(year - 4, 0),\r\n      new Date(year - 3, 0),\r\n      new Date(year - 2, 0),\r\n      new Date(year - 1, 0),\r\n      new Date(year, 0),\r\n      new Date(year + 1, 0),\r\n      new Date(year + 2, 0),\r\n      new Date(year + 3, 0),\r\n      new Date(year + 4, 0)\r\n    ];\r\n\r\n    const selectedYear = this.selectedDate ? this.selectedDate.getFullYear() : null;\r\n    const minDateYear = this.minDate ? new Date(this.minDate.getFullYear(), 0) : null;\r\n    const maxDateYear = this.maxDate ? new Date(this.maxDate.getFullYear(), 0) : null;\r\n    const isMinZoom = this.minZoomLevel === DatepickerZoomLevel.Years;\r\n\r\n    const items: CalendarItem[][] = [];\r\n    for (let rowIndex = 0; rowIndex < 3; rowIndex++) {\r\n      const row: CalendarItem[] = [];\r\n      for (let colIndex = 0; colIndex < 3; colIndex++) {\r\n        const date = yearArray[3 * rowIndex + colIndex];\r\n        const selected = date.getFullYear() === selectedYear;\r\n        const disabled = (minDateYear && date < minDateYear) || (maxDateYear && date > maxDateYear);\r\n        row.push({\r\n          date: date,\r\n          selected: selected,\r\n          disabled: disabled,\r\n          isMinZoom: isMinZoom\r\n        });\r\n      }\r\n      items.push(row);\r\n    }\r\n\r\n    this.years = {\r\n      date: null,\r\n      items: items,\r\n      previous: () => {\r\n        const focusedItem = this.items.find(x => x.focused);\r\n        const yearToFocus = focusedItem ? new Date(focusedItem.date.getFullYear() - 9, 0) : null;\r\n        this.zoomToYears(new Date(year - 9, 0), yearToFocus, focusedItem ? true : false);\r\n      },\r\n      next: () => {\r\n        const focusedItem = this.items.find(x => x.focused);\r\n        const yearToFocus = focusedItem ? new Date(focusedItem.date.getFullYear() + 9, 0) : null;\r\n        this.zoomToYears(new Date(year + 9, 0), yearToFocus, focusedItem ? true : false);\r\n      },\r\n      farPrevious: () => { },\r\n      farNext: () => { },\r\n      zoomOut: () => { }\r\n    };\r\n\r\n    if (focus) {\r\n      this.calendar.nativeElement.focus();\r\n      setTimeout(() => {\r\n        this.items.find(x => x.date.getFullYear() === focusDate.getFullYear()).focus();\r\n      });\r\n    }\r\n  }\r\n\r\n  private setMinZoomLevel() {\r\n    switch (this.minZoom) {\r\n      case 'years':\r\n      case 'year':\r\n      case 'y':\r\n        this.minZoomLevel = DatepickerZoomLevel.Years;\r\n        this.zoomedToYears = true;\r\n        this.zoomedToMonths = false;\r\n        this.zoomedToDays = false;\r\n        this.noSelectedDateLabel = 'Välj år';\r\n        this.labelDateFormat = this.displayFormat !== '' ? this.displayFormat : 'yyyy';\r\n        this.inputPlaceholder = 'ÅÅ';\r\n        this.actualMinDate = this.minDate ? new Date(this.minDate.getFullYear(), 0) : null;\r\n        this.actualMaxDate = this.maxDate ? new Date(this.maxDate.getFullYear(), 0) : null;\r\n        break;\r\n      case 'months':\r\n      case 'month':\r\n      case 'm':\r\n        this.minZoomLevel = DatepickerZoomLevel.Months;\r\n        this.zoomedToYears = false;\r\n        this.zoomedToMonths = true;\r\n        this.zoomedToDays = false;\r\n        this.noSelectedDateLabel = 'Välj månad';\r\n        this.labelDateFormat = this.displayFormat !== '' ? this.displayFormat : 'MMM yyyy';\r\n        this.inputPlaceholder = 'ÅÅMM';\r\n        this.actualMinDate = this.minDate ? new Date(this.minDate.getFullYear(), this.minDate.getMonth()) : null;\r\n        this.actualMaxDate = this.maxDate ? new Date(this.maxDate.getFullYear(), this.maxDate.getMonth()) : null;\r\n        break;\r\n      default:\r\n        this.minZoomLevel = DatepickerZoomLevel.Days;\r\n        this.zoomedToYears = false;\r\n        this.zoomedToMonths = false;\r\n        this.zoomedToDays = true;\r\n        this.noSelectedDateLabel = 'Välj datum';\r\n        this.labelDateFormat = this.displayFormat !== '' ? this.displayFormat : 'yyyy-MM-dd';\r\n        this.inputPlaceholder = 'ÅÅMMDD';\r\n        this.actualMinDate = this.minDate ? new Date(this.minDate.getFullYear(), this.minDate.getMonth(), this.minDate.getDate()) : null;\r\n        this.actualMaxDate = this.maxDate ? new Date(this.maxDate.getFullYear(), this.maxDate.getMonth(), this.maxDate.getDate()) : null;\r\n        break;\r\n    }\r\n  }\r\n\r\n  private setSelectedDate(date: Date, parseError = false, emit = true) {\r\n    if (emit) {\r\n      this.onChange(date);\r\n    }\r\n\r\n    this.selectedDate = date;\r\n    this.parseError = parseError;\r\n\r\n    if (!parseError) {\r\n      const newLabel = this.formatDate(date);\r\n      if (this.label !== newLabel) {\r\n        this.label = newLabel;\r\n      } else {\r\n        // this.label = '';\r\n        // setTimeout(() => {\r\n        this.label = newLabel;\r\n        // });\r\n      }\r\n    }\r\n  }\r\n\r\n  private formatDate(date: Date): string {\r\n    return new DatePipe(this.locale).transform(date, this.labelDateFormat);\r\n  }\r\n\r\n  private subscribeToItems() {\r\n    this.ngUnsubscribeItems.next();\r\n    this.ngUnsubscribeItems.complete();\r\n    this.ngUnsubscribeItems = new Subject();\r\n\r\n    this.items.forEach(item => {\r\n      item.select\r\n        .pipe(takeUntil(this.ngUnsubscribeItems))\r\n        .subscribe(date => {\r\n          this.collapse();\r\n          this.setSelectedDate(date);\r\n        });\r\n\r\n      item.zoomIn\r\n        .pipe(takeUntil(this.ngUnsubscribeItems))\r\n        .subscribe(date => {\r\n          if (this.zoomedToYears) {\r\n            this.zoomToMonths(date, true);\r\n          } else if (this.zoomedToMonths) {\r\n            this.zoomToDays(date, true);\r\n          }\r\n        });\r\n\r\n      item.previousColumn\r\n        .pipe(takeUntil(this.ngUnsubscribeItems))\r\n        .subscribe(date => {\r\n          if (this.zoomedToDays) {\r\n            const dayToFocus = date.getDate() - 1;\r\n            if (dayToFocus < 1) {\r\n              this.zoomToDays(new Date(date.getFullYear(), date.getMonth(), 0), true);\r\n            } else {\r\n              this.items.find(x => x.date.getDate() === dayToFocus).focus();\r\n            }\r\n          } else if (this.zoomedToMonths) {\r\n            const monthToFocus = date.getMonth() - 1;\r\n            if (monthToFocus < 0) {\r\n              this.zoomToMonths(new Date(date.getFullYear() - 1, 11), true);\r\n            } else {\r\n              this.items.find(x => x.date.getMonth() === monthToFocus).focus();\r\n            }\r\n          } else if (this.zoomedToYears) {\r\n            const yearToFocus = date.getFullYear() - 1;\r\n            if (yearToFocus < this.items.first.date.getFullYear()) {\r\n              this.zoomToYears(new Date(this.items.first.date.getFullYear() - 5, 0), new Date(yearToFocus, 0), true);\r\n            } else {\r\n              this.items.find(x => x.date.getFullYear() === yearToFocus).focus();\r\n            }\r\n          }\r\n        });\r\n\r\n      item.nextColumn\r\n        .pipe(takeUntil(this.ngUnsubscribeItems))\r\n        .subscribe(date => {\r\n          if (this.zoomedToDays) {\r\n            const dayToFocus = date.getDate() + 1;\r\n            if (dayToFocus > 28) {\r\n              const dateToFocus = new Date(date.getFullYear(), date.getMonth(), dayToFocus);\r\n              if (dateToFocus.getDate() !== dayToFocus) {\r\n                this.zoomToDays(new Date(date.getFullYear(), date.getMonth() + 1, 1), true);\r\n                return;\r\n              }\r\n            }\r\n            this.items.find(x => x.date.getDate() === dayToFocus).focus();\r\n          } else if (this.zoomedToMonths) {\r\n            const monthToFocus = date.getMonth() + 1;\r\n            if (monthToFocus > 11) {\r\n              this.zoomToMonths(new Date(date.getFullYear() + 1, 0), true);\r\n            } else {\r\n              this.items.find(x => x.date.getMonth() === monthToFocus).focus();\r\n            }\r\n          } else if (this.zoomedToYears) {\r\n            const yearToFocus = date.getFullYear() + 1;\r\n            if (yearToFocus > this.items.last.date.getFullYear()) {\r\n              this.zoomToYears(new Date(this.items.last.date.getFullYear() + 5, 0), new Date(yearToFocus, 0), true);\r\n            } else {\r\n              this.items.find(x => x.date.getFullYear() === yearToFocus).focus();\r\n            }\r\n          }\r\n        });\r\n\r\n      item.previousRow\r\n        .pipe(takeUntil(this.ngUnsubscribeItems))\r\n        .subscribe(date => {\r\n          if (this.zoomedToDays) {\r\n            const dayToFocus = date.getDate() - 7;\r\n            if (dayToFocus < 1) {\r\n              this.zoomToDays(new Date(date.getFullYear(), date.getMonth(), dayToFocus), true);\r\n            } else {\r\n              this.items.find(x => x.date.getDate() === dayToFocus).focus();\r\n            }\r\n          } else if (this.zoomedToMonths) {\r\n            const monthToFocus = date.getMonth() - 4;\r\n            if (monthToFocus < 0) {\r\n              this.zoomToMonths(new Date(date.getFullYear(), monthToFocus), true);\r\n            } else {\r\n              this.items.find(x => x.date.getMonth() === monthToFocus).focus();\r\n            }\r\n          } else if (this.zoomedToYears) {\r\n            const yearToFocus = date.getFullYear() - 3;\r\n            if (yearToFocus < this.items.first.date.getFullYear()) {\r\n              this.zoomToYears(new Date(this.items.first.date.getFullYear() - 5, 0), new Date(yearToFocus, 0), true);\r\n            } else {\r\n              this.items.find(x => x.date.getFullYear() === yearToFocus).focus();\r\n            }\r\n          }\r\n        });\r\n\r\n      item.nextRow\r\n        .pipe(takeUntil(this.ngUnsubscribeItems))\r\n        .subscribe(date => {\r\n          if (this.zoomedToDays) {\r\n            const dayToFocus = date.getDate() + 7;\r\n            if (dayToFocus > 28) {\r\n              const dateToFocus = new Date(date.getFullYear(), date.getMonth(), dayToFocus);\r\n              if (dateToFocus.getDate() !== dayToFocus) {\r\n                this.zoomToDays(dateToFocus, true);\r\n                return;\r\n              }\r\n            }\r\n            this.items.find(x => x.date.getDate() === dayToFocus).focus();\r\n          } else if (this.zoomedToMonths) {\r\n            const monthToFocus = date.getMonth() + 4;\r\n            if (monthToFocus > 11) {\r\n              this.zoomToMonths(new Date(date.getFullYear(), monthToFocus), true);\r\n            } else {\r\n              this.items.find(x => x.date.getMonth() === monthToFocus).focus();\r\n            }\r\n          } else if (this.zoomedToYears) {\r\n            const yearToFocus = date.getFullYear() + 3;\r\n            if (yearToFocus > this.items.last.date.getFullYear()) {\r\n              this.zoomToYears(new Date(this.items.last.date.getFullYear() + 5, 0), new Date(yearToFocus, 0), true);\r\n            } else {\r\n              this.items.find(x => x.date.getFullYear() === yearToFocus).focus();\r\n            }\r\n          }\r\n        });\r\n    });\r\n  }\r\n\r\n  getLabelFromId() {\r\n    // return window.document.getElementById(this.idForLabel)\r\n    let labels = document.getElementsByTagName('label');\r\n    for( var i = 0; i < labels.length; i++ ) {\r\n      if (labels[i].htmlFor == this.labelId)\r\n           return labels[i];\r\n   }\r\n  }\r\n}\r\n\r\n","<div class=\"datepicker\"\r\n  [ngClass]=\"{ 'validation-error--active': errorActive, 'validation-error--editing': errorEditing }\">\r\n  <div class=\"validation\">\r\n    <div #datepicker class=\"datepicker__control\"\r\n      [ngClass]=\"{ 'datepicker--disabled': disabled, 'datepicker--readonly': readonly }\"\r\n      (keydown)=\"onKeydown($event)\"\r\n      (focusout)=\"onBlur($event)\"\r\n      [attr.aria-disabled]=\"disabled\"\r\n      [attr.aria-readonly]=\"readonly\">\r\n\r\n      <!-- Om datepicker inte är readonly -->\r\n      @if (!readonly) {\r\n        <div class=\"datepicker__header\"\r\n          [ngClass]=\"{'datepicker__header--focus': headerHasFocus}\"\r\n          (focusin)=\"onHeaderFocus()\"\r\n          (focusout)=\"onHeaderBlur()\"\r\n          (keydown)=\"onHeaderKeydown($event)\"\r\n          (mousedown)=\"onMouseDownClick()\"\r\n          (click)=\"onHeaderClick()\" >\r\n          <!-- Om Textboxen inte tillåter att man skriver datum disabled || errorActive  ? -1 : 0-->\r\n          @if (!allowText) {\r\n            <div #headerLabel tabindex=\"0\" role=\"button\"\r\n              aria-haspopup=\"grid\"\r\n              [attr.aria-invalid]=\"errorActive\"\r\n              [attr.id]=\"labelId\"\r\n              [attr.aria-disabled]=\"disabled\"\r\n              [attr.aria-expanded]=\"expanded\"\r\n              [attr.aria-describedby]=\"elementId\">\r\n              <input class=\"datepicker__header__input\" [disabled]=\"disabled\" [placeholder]=\"disabled ? '' : noSelectedDateLabel\" readonly=\"readonly\"\r\n                [tabindex]=\"-1\" [value]=\"label\" >\r\n                <span class=\"screenreader_only\" aria-disabled=\"true\">{{label}}</span>\r\n              </div>\r\n            }\r\n            <!-- Om Textboxen tillåter att man skriver datum -->\r\n            @if (allowText) {\r\n              <div #headerInputDiv [attr.aria-describedby]=\"elementId\"\r\n                tabindex=\"{{disabled ? 0 : -1}}\" role=\"textbox\" [attr.aria-disabled]=\"disabled\" >\r\n                <input #headerInput class=\"datepicker__header__input\"\r\n                  tabindex=\"{{disabled ? -1 : 0}}\"\r\n                  [ngClass]=\"{'datepicker--transparent': transparent }\"\r\n                  [placeholder]=\"disabled ? '' : inputPlaceholder\"\r\n                  aria-haspopup=\"grid\"\r\n                  [attr.id]=\"labelId\"\r\n                  [attr.aria-expanded]=\"expanded\"\r\n                  [value]=\"label\"\r\n                  (change)=\"parseSelectedDate($event.target.value)\"\r\n                  [disabled]=\"disabled\"\r\n                  [attr.aria-invalid]=\"errorActive\"\r\n                  (keydown)=\"onHeaderInputKeydown($event)\"\r\n                  >\r\n                  <span class=\"screenreader_only\" aria-disabled=\"true\">{{label}}</span>\r\n                </div>\r\n              }\r\n              <div class=\"datepicker__header__button\">\r\n                <vgr-icon [icon]=\"'calendar-alt'\" [solid]=\"false\" [color]=\"'light'\"></vgr-icon>\r\n              </div>\r\n            </div>\r\n          }\r\n          <!-- Om datepicker är readonly -->\r\n          @if (readonly) {\r\n            <div #readOnlyHeader class=\"datepicker__readonly-header\" tabindex=\"0\" aria-readonly=\"true\">\r\n              @if (selectedDate) {\r\n                <span>{{selectedDate | date:labelDateFormat}}</span>\r\n              }\r\n              @if (!selectedDate) {\r\n                <span>&nbsp;</span>\r\n              }\r\n            </div>\r\n          }\r\n\r\n          <!-- kalender grid, expanderad -->\r\n          @if (expanded) {\r\n            <div #calendar class=\"datepicker__calendar noselect\" tabindex=\"0\"\r\n              (keydown)=\"onCalendarKeydown($event)\">\r\n              @if (zoomedToDays) {\r\n                <div>\r\n                  <div class=\"datepicker__calendar__header\">\r\n                    <div class=\"datepicker__calendar__header__chevron datepicker__calendar__header__chevron-left\"\r\n                      (click)=\"days.previous()\">\r\n                      <vgr-icon [icon]=\"'chevron-left'\" [color]=\"'light'\"></vgr-icon>\r\n                    </div>\r\n                    <div class=\"datepicker__calendar__header__date\" (click)=\"days.zoomOut()\">\r\n                    {{days.date | date:'MMMM yyyy'}}</div>\r\n                    <div class=\"datepicker__calendar__header__chevron datepicker__calendar__header__chevron-right\"\r\n                      (click)=\"days.next()\">\r\n                      <vgr-icon [icon]=\"'chevron-right'\" [color]=\"'light'\"></vgr-icon>\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"datepicker__calendar__body\">\r\n                    <table class=\"datepicker__calendar__body__days\" role=\"grid\" [attr.aria-labelledby]=\"labelId\">\r\n                      <tr>\r\n                        <td role=\"columnheader\">\r\n                          <div>Må</div>\r\n                        </td>\r\n                        <td role=\"columnheader\">\r\n                          <div>Ti</div>\r\n                        </td>\r\n                        <td role=\"columnheader\">\r\n                          <div>On</div>\r\n                        </td>\r\n                        <td role=\"columnheader\">\r\n                          <div>To</div>\r\n                        </td>\r\n                        <td role=\"columnheader\">\r\n                          <div>Fr</div>\r\n                        </td>\r\n                        <td role=\"columnheader\">\r\n                          <div>Lö</div>\r\n                        </td>\r\n                        <td role=\"columnheader\">\r\n                          <div>Sö</div>\r\n                        </td>\r\n                      </tr>\r\n                      @for (row of days.items; track $index) {\r\n                        <tr>\r\n                          @for (item of row; track $index) {\r\n                            <td>\r\n                              @if (item) {\r\n                                <vgr-datepicker-item [type]=\"'day'\" [date]=\"item.date\" [selected]=\"item.selected\"\r\n                                [disabled]=\"item.disabled\" [isMinZoom]=\"item.isMinZoom\"></vgr-datepicker-item>\r\n                              }\r\n                            </td>\r\n                          }\r\n                        </tr>\r\n                      }\r\n                    </table>\r\n                  </div>\r\n                </div>\r\n              }\r\n              @if (zoomedToMonths) {\r\n                <div>\r\n                  <div class=\"datepicker__calendar__header\">\r\n                    <div class=\"datepicker__calendar__header__chevron datepicker__calendar__header__chevron-left\"\r\n                      (click)=\"months.previous()\">\r\n                      <vgr-icon [icon]=\"'chevron-left'\" [color]=\"'light'\"></vgr-icon>\r\n                    </div>\r\n                    <div class=\"datepicker__calendar__header__date\" (click)=\"months.zoomOut()\">{{months.date | date:'yyyy'}}\r\n                    </div>\r\n                    <div class=\"datepicker__calendar__header__chevron datepicker__calendar__header__chevron-right\"\r\n                      (click)=\"months.next()\">\r\n                      <vgr-icon [icon]=\"'chevron-right'\" [color]=\"'light'\"></vgr-icon>\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"datepicker__calendar__body\">\r\n                    <table class=\"datepicker__calendar__body__months\" role=\"grid\" [attr.aria-labelledby]=\"labelId\">\r\n                      @for (row of months.items; track row) {\r\n                        <tr>\r\n                          @for (item of row; track item) {\r\n                            <td>\r\n                              <vgr-datepicker-item [type]=\"'month'\" [date]=\"item.date\" [selected]=\"item.selected\"\r\n                              [disabled]=\"item.disabled\" [isMinZoom]=\"item.isMinZoom\"></vgr-datepicker-item>\r\n                            </td>\r\n                          }\r\n                        </tr>\r\n                      }\r\n                    </table>\r\n                  </div>\r\n                </div>\r\n              }\r\n              @if (zoomedToYears) {\r\n                <div>\r\n                  <div class=\"datepicker__calendar__header\">\r\n                    <div class=\"datepicker__calendar__header__chevron datepicker__calendar__header__chevron-left\"\r\n                      (click)=\"years.previous()\">\r\n                      <vgr-icon [icon]=\"'chevron-left'\" [color]=\"'light'\"></vgr-icon>\r\n                    </div>\r\n                    <div class=\"datepicker__calendar__header__chevron datepicker__calendar__header__chevron-right\"\r\n                      (click)=\"years.next()\">\r\n                      <vgr-icon [icon]=\"'chevron-right'\" [color]=\"'light'\"></vgr-icon>\r\n                    </div>\r\n                  </div>\r\n                  <div class=\"datepicker__calendar__body\">\r\n                    <table class=\"datepicker__calendar__body__years\" role=\"grid\" [attr.aria-labelledby]=\"labelId\">\r\n                      @for (row of years.items; track row) {\r\n                        <tr>\r\n                          @for (item of row; track item) {\r\n                            <td>\r\n                              <vgr-datepicker-item [type]=\"'year'\" [date]=\"item.date\" [selected]=\"item.selected\"\r\n                              [disabled]=\"item.disabled\" [isMinZoom]=\"item.isMinZoom\"></vgr-datepicker-item>\r\n                            </td>\r\n                          }\r\n                        </tr>\r\n                      }\r\n                    </table>\r\n                  </div>\r\n                </div>\r\n              }\r\n            </div>\r\n          }\r\n        </div>\r\n        <!-- ParseError har alltid företräde till om det går fel, visar endast 1 fel åt gången -->\r\n        @if (parseError) {\r\n          <div  [attr.id]=\"elementId\" class=\"validation__status\" title=\"{{parseErrorMessage}}\" [attr.aria-live]=\"errorActive ? 'assertive' : 'off'\">\r\n            <vgr-icon icon=\"exclamation-circle\" size=\"sm\" class=\"validation_status__icon\"></vgr-icon>\r\n            <div class=\"validation__status__message\">{{parseErrorMessage}}</div>\r\n          </div>\r\n        }\r\n        @if (formControl?.errors && !parseError) {\r\n          <div  [attr.id]=\"elementId\" class=\"validation__status\"\r\n            title=\"{{errorMessage | errorMessage : $safeNavigationMigration(formControl?.errors) : getLabelFromId() : true}}\" [attr.aria-live]=\"errorActive ? 'assertive' : 'off'\">\r\n            <vgr-icon icon=\"exclamation-circle\" size=\"sm\" class=\"validation_status__icon\"></vgr-icon>\r\n            @if (formControl) {\r\n              <div class=\"validation__status__message\">{{errorMessage | errorMessage :  $safeNavigationMigration(formControl?.errors) : getLabelFromId() : true}}</div>\r\n            }\r\n            @if (!formControl) {\r\n              <div class=\"validation__status__message\">{{errorMessage + 'hopp'}}</div>\r\n            }\r\n          </div>\r\n        }\r\n      </div>\r\n    </div>\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, Output, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-combobox-item',\r\n    templateUrl: './combobox-item.component.html',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\r\n    standalone: false\r\n})\r\nexport class ComboboxItemComponent implements AfterViewInit {\r\n\r\n  @Input() selectedLabel: string;\r\n  @Input() value: any;\r\n  @Output() select = new EventEmitter();\r\n  @ViewChild('item') item: ElementRef;\r\n  label: string;\r\n  index: number;\r\n  selected = false;\r\n  highlighted = false;\r\n  visible = true;\r\n  hasFocus = false;\r\n\r\n  ngAfterViewInit() {\r\n    this.label = (this.item.nativeElement as Node).textContent.trim();\r\n    if (this.value === undefined) {\r\n      this.value = this.label;\r\n    }\r\n  }\r\n\r\n  setSelected() {\r\n    this.selected = true;\r\n    this.select.emit();\r\n  }\r\n\r\n  public setIndex(index: number) {\r\n    this.index = index;\r\n  }\r\n\r\n}\r\n","@if (visible) {\r\n  <div #item class=\"combobox__menu__items__item\" tabindex=\"0\" role=\"option\" id=\"{{index}}\" [attr.aria-selected]=\"selected || highlighted\"\r\n    [ngClass]=\"{ 'combobox-item--selected': selected, 'combobox-item--highlighted': highlighted }\" (click)=\"setSelected()\">\r\n    <div class=\"combobox__menu__items__item__content-wrapper\">\r\n      <div>\r\n        <ng-content></ng-content>\r\n      </div>\r\n    </div>\r\n  </div>\r\n}","import {\n  Component, OnChanges, AfterContentInit, AfterViewInit, OnDestroy, ViewChild, ContentChildren, ElementRef, QueryList,\n  Input, Output, EventEmitter, Optional, SimpleChanges, Self, HostListener,\n  ChangeDetectionStrategy\n} from '@angular/core';\r\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\r\nimport { ScrollbarComponent } from '../scrollbar/scrollbar.component';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { Guid } from '../../utils/guid';\r\nimport { ComboboxItemComponent } from './combobox-item.component';\r\n\r\nfunction _defaultCompare(o1: any, o2: any): boolean {\r\n  return o1 === o2;\r\n}\r\n\r\n\r\n@Component({\r\n    selector: 'vgr-combobox',\r\n    templateUrl: './combobox.component.html',\r\n    styleUrls: ['./combobox.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class ComboboxComponent implements OnChanges, AfterContentInit, AfterViewInit, OnDestroy, ControlValueAccessor {\r\n\r\n  @Input() readonly = false;\r\n  @Input() disabled = false;\r\n  @Input() showValidation = true;\r\n  @Input() errorMessage = {};\r\n  @Input() value: any;\r\n  @Input() labelId: string;\r\n  @Input() width: string;\r\n  @Input() small = false;\r\n  @Input() showButton = true;\r\n  @Input() placeholder = '';\r\n  @Input() listAlignRight = false;\r\n  @Input() compareWith = _defaultCompare;\r\n\r\n  @Output() selectedChanged = new EventEmitter<any>();\r\n  @Output() expandedChanged = new EventEmitter<boolean>();\r\n\r\n  @ViewChild('combobox', { static: true }) combobox: ElementRef;\r\n  @ViewChild('textInput', { static: false }) textInput: ElementRef;\r\n  @ViewChild('readonlyLabel', { static: false }) readonlyLabel: ElementRef;\r\n  @ViewChild('header', { static: false }) header: ElementRef;\r\n  @ViewChild(ScrollbarComponent) scrollable: ScrollbarComponent;\r\n  @ContentChildren(ComboboxItemComponent) items: QueryList<ComboboxItemComponent>;\r\n\r\n  expanded = false;\r\n  headerLabelId = Guid.newGuid();\r\n  label = '';\r\n  hasFocus: boolean;\r\n  searchString = '';\r\n  leftPosition = '0px';\r\n  elementId: string;\r\n  mouseDown: boolean;\r\n\r\n  get combinedLabelIds() {\r\n    return `${this.labelId} ${this.headerLabelId}`;\r\n  }\r\n\r\n  get highlightedItemIndex() {\r\n    const item = this.items ? this.items.find(x => x.highlighted) : null;\r\n    return item && item.index ? item.index : null;\r\n  }\r\n\r\n  get errorActive() {\r\n    return this.showValidation && this.formControl && this.formControl.invalid;\r\n  }\r\n\r\n  get errorEditing() {\r\n    return this.showValidation && this.formControl && this.formControl.invalid && this.hasFocus;\r\n  }\r\n\r\n  private ngUnsubscribe: any = new Subject();\r\n  private ngUnsubscribeItems: any = new Subject();\r\n\r\n  @HostListener('document:click', ['$event'])\r\n  onDocumentClick(event: any) {\r\n\r\n    const target = event.target || event.srcElement || event.currentTarget;\r\n\r\n    if ((this.elementRef.nativeElement && !this.elementRef.nativeElement.contains(target)) && this.expanded) {\r\n      this.onChange(null);\r\n      this.collapse(false);\r\n    }\r\n  }\r\n\r\n  constructor(@Optional() @Self() public formControl: NgControl, private elementRef: ElementRef) {\r\n    this.elementId = Guid.newGuid();\r\n    if (this.formControl != null) {\r\n      this.formControl.valueAccessor = this;\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes.value && !changes.value.firstChange) {\r\n      this.onChange(changes.value.currentValue);\r\n      this.setSelectedState(changes.value.currentValue);\r\n    }\r\n\r\n    if (this.items && !this.items.some(item => item.selected) && !this.items.some(item => item.highlighted)) {\r\n      this.label = '';\r\n    }\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this.subscribeToItems();\r\n\r\n    for (let index = 0; index < this.items.length; index++) {\r\n      setTimeout(() => {\r\n        this.items.toArray()[index].setIndex(index + 1);\r\n      });\r\n    }\r\n\r\n    this.items.changes\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(_ => {\r\n        this.subscribeToItems();\r\n\r\n        setTimeout(() => {\r\n          this.setSelectedState(this.value);\r\n        });\r\n      });\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    if (this.formControl) {\r\n      setTimeout(() => {\r\n        this.setSelectedState(this.formControl.value);\r\n      });\r\n    } else {\r\n      setTimeout(() => {\r\n        this.setSelectedState(this.value);\r\n      });\r\n    }\r\n\r\n    if (this.listAlignRight) {\r\n      const width = getComputedStyle(this.combobox.nativeElement).width;\r\n      if (width) {\r\n        this.leftPosition = `calc(${width} - 330px)`;\r\n      }\r\n    } else {\r\n      this.leftPosition = '0px';\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n\r\n    this.ngUnsubscribeItems.next();\r\n    this.ngUnsubscribeItems.complete();\r\n  }\r\n\r\n  public focus() {\r\n    //to make sure that combobox is not highlighted on focus\r\n    this.mouseDown = true;\r\n    if (this.readonly) {\r\n      this.readonlyLabel.nativeElement.focus();\r\n    } else if (this.disabled) {\r\n      this.header.nativeElement.focus();\r\n    } else {\r\n      const index = this.value ? (this.value as string).length : 0;\r\n      this.textInput.nativeElement.setSelectionRange(index, index);\r\n      this.textInput.nativeElement.focus();\r\n    }\r\n  }\r\n\r\n  writeValue(value: any) {\r\n    this.value = value;\r\n    this.selectedChanged.emit(this.value);\r\n\r\n    if (!this.items) {\r\n      return;\r\n    }\r\n\r\n    this.setSelectedState(this.value);\r\n  }\r\n\r\n  registerOnChange(func: (value: any) => any) {\r\n    this.onChange = (value: any) => {\r\n      this.value = value;\r\n      this.selectedChanged.emit(value);\r\n      func(value);\r\n    };\r\n  }\r\n\r\n  registerOnTouched(func: () => any) {\r\n    this.onTouched = func;\r\n  }\r\n\r\n  onChange(value: any) {\r\n    this.value = value;\r\n    this.selectedChanged.emit(value);\r\n  }\r\n\r\n  onTouched() { }\r\n\r\n  expandListbox() {\r\n    if (this.readonly || this.disabled) {\r\n      return;\r\n    }\r\n\r\n    if (!this.expanded) {\r\n\r\n      this.filterItems();\r\n      this.expand();\r\n\r\n      const selectedItem = this.items.find(x => x.selected);\r\n      if (selectedItem) {\r\n        this.setHighlightedItem(selectedItem.value);\r\n      } else {\r\n        if (!this.searchString.length) {\r\n          this.setHighlightedItem(this.items.toArray()[0].value);\r\n        }\r\n      }\r\n\r\n      this.focus();\r\n    }\r\n  }\r\n\r\n  filterItems() {\r\n    const value = this.searchString;\r\n\r\n    if (value) {\r\n      if (this.items) {\r\n        this.items.forEach(item => {\r\n          item.visible = item.label.toLowerCase().startsWith(value.toLowerCase());\r\n        });\r\n      }\r\n    } else {\r\n      this.items.forEach(item => {\r\n        item.visible = true;\r\n      });\r\n    }\r\n\r\n    // Scroll to top when filter is changed\r\n    if (this.combobox.nativeElement.querySelector('.ps')) {\r\n      this.combobox.nativeElement.querySelector('.ps').scrollTop = 0;\r\n    }\r\n  }\r\n\r\n  deselectItems() {\r\n    const selecedItem = this.items.find(item => item.selected || item.highlighted);\r\n    if (selecedItem) {\r\n      selecedItem.selected = false;\r\n      selecedItem.highlighted = false;\r\n      this.label = '';\r\n      this.searchString = this.label;\r\n    }\r\n  }\r\n\r\n  onMouseDownClick() {\r\n    this.mouseDown = true;\r\n    this.hasFocus = false;\r\n  }\r\n\r\n  onFocus() {\r\n    if (this.mouseDown) {\r\n      this.mouseDown = false;\r\n      return;\r\n    }\r\n    this.hasFocus = true;\r\n    this.mouseDown = false;\r\n  }\r\n\r\n  onBlur(event: FocusEvent) {\r\n    const comboboxElement = this.combobox.nativeElement as HTMLElement;\r\n    const focusedNode = event.relatedTarget as Node;\r\n    if (comboboxElement.contains(focusedNode) || event.relatedTarget === null ) {\r\n      return;\r\n    } else if (event.relatedTarget !== null  && (event.relatedTarget as HTMLElement).id === 'page-content-focus') { // otherwise the pagefocus will steal event and collapse\r\n      return;\r\n    } else if (event.relatedTarget !== null  && (event.relatedTarget as HTMLElement).tagName === 'VGR-EDITABLE-TABLE-COLUMN') { // otherwise the the combobox in an editable-table will alway collapse on click\r\n      return;\r\n    }\r\n\r\n    this.hasFocus = false;\r\n    if (this.searchString.length) {\r\n      const highlighted = this.items.find(x => x.highlighted);\r\n\r\n      if (highlighted) {\r\n        this.setSelectedState(highlighted.value);\r\n      } else {\r\n        this.setSelectedState(this.value);\r\n      }\r\n      this.collapse(false);\r\n    } else {\r\n      this.deselectItems();\r\n      this.onChange(null);\r\n      this.collapse(false);\r\n    }\r\n  }\r\n\r\n  onKeydown(event: KeyboardEvent) {\r\n\r\n    if (event.key === 'Tab' || (event.shiftKey && event.key === 'Tab')) {\r\n      this.collapse(false);\r\n\r\n    } else if (event.key === 'Enter') {\r\n      if (this.searchString.length) {\r\n        const highlighted = this.items.find(x => x.highlighted);\r\n\r\n        if (highlighted) {\r\n          this.setSelectedState(highlighted.value);\r\n        } else {\r\n          this.setSelectedState(this.value);\r\n        }\r\n        this.collapse(true);\r\n      } else {\r\n        this.expand();\r\n\r\n        setTimeout(() => {\r\n          this.focusNextItem();\r\n        });\r\n      }\r\n\r\n    } else if (event.key === 'Escape' || event.key === 'Esc') {\r\n      if (this.value) {\r\n        this.setSelectedState(this.value);\r\n        this.setHighlightedItem(this.value);\r\n        this.collapse();\r\n      } else {\r\n        this.deselectItems();\r\n        this.collapse();\r\n      }\r\n\r\n    } else if (event.altKey && (event.key === 'ArrowDown' || event.key === 'Down')) {\r\n      this.expand();\r\n\r\n    } else if (event.altKey && (event.key === 'ArrowUp' || event.key === 'Up')) {\r\n      this.collapse();\r\n\r\n    } else if (event.key === 'ArrowDown' || event.key === 'Down') {\r\n      this.expand();\r\n\r\n      setTimeout(() => {\r\n        const filteredItems = this.items.filter(i => i.visible);\r\n        if (filteredItems.length) {\r\n          this.focusNextItem();\r\n        }\r\n      });\r\n\r\n    } else if (event.key === 'ArrowUp' || event.key === 'Up') {\r\n      this.expand();\r\n\r\n      const filteredItems = this.items.filter(i => i.visible);\r\n      if (filteredItems.length) {\r\n        this.focusPreviousItem();\r\n      }\r\n\r\n    } else if (event.key === 'Backspace') {\r\n      setTimeout(() => {\r\n        this.setHighligthState();\r\n        if (this.searchString.length) {\r\n          this.expand();\r\n        } else {\r\n          this.deselectItems();\r\n          this.collapse();\r\n        }\r\n      });\r\n\r\n    } else if (/^[\\wåäöÅÄÖ ]$/.test(event.key) && !event.ctrlKey && !event.altKey) {\r\n\r\n      setTimeout(() => {\r\n        this.setHighligthState();\r\n        this.setInputText();\r\n\r\n        const filteredItems = this.items.filter(i => i.visible);\r\n        if (filteredItems.length) {\r\n          this.expand();\r\n        } else {\r\n          this.collapse();\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  setDisabledState(isDisabled: boolean) {\r\n    this.disabled = isDisabled;\r\n  }\r\n\r\n  private expand() {\r\n    const filteredItems = this.items.filter(x => x.visible);\r\n\r\n    if (filteredItems.length) {\r\n      this.expanded = true;\r\n      this.expandedChanged.emit(true);\r\n    }\r\n  }\r\n\r\n  private collapse(focusFilter = true) {\r\n    this.expanded = false;\r\n\r\n    if (this.textInput) {\r\n      this.filterItems();\r\n    }\r\n\r\n    if (focusFilter) {\r\n      this.textInput.nativeElement.focus();\r\n    }\r\n\r\n    if (this.formControl) {\r\n      this.onTouched();\r\n    }\r\n\r\n    this.expandedChanged.emit(false);\r\n  }\r\n\r\n  private subscribeToItems() {\r\n    this.ngUnsubscribeItems.next();\r\n    this.ngUnsubscribeItems.complete();\r\n    this.ngUnsubscribeItems = new Subject();\r\n\r\n    this.items.forEach(item => {\r\n      item.select\r\n        .pipe(takeUntil(this.ngUnsubscribeItems))\r\n        .subscribe(() => {\r\n          if (item.selected) {\r\n            this.setHighlightedItem(item.value);\r\n            this.setSelectedState(item.value);\r\n          } else {\r\n            this.label = '';\r\n            this.searchString = this.label;\r\n          }\r\n          this.collapse();\r\n        });\r\n    });\r\n  }\r\n\r\n  private focusPreviousItem() {\r\n    const filteredItems = this.items.filter(i => i.visible);\r\n    const highlightedItem = this.items.find(x => x.highlighted);\r\n    const itemIndex = highlightedItem ? filteredItems.findIndex(i => i === highlightedItem) : 0;\r\n\r\n    if (itemIndex > 0) {\r\n      this.setHighlightedItem(filteredItems[itemIndex - 1].value);\r\n      this.scrollToItem(highlightedItem);\r\n\r\n    } else {\r\n      if (!highlightedItem) {\r\n        this.setHighlightedItem(filteredItems[filteredItems.length - 1].value);\r\n\r\n        setTimeout(() => {\r\n          this.scrollToItem(filteredItems[filteredItems.length - 1]);\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  private focusNextItem() {\r\n    const filteredItems = this.items.filter(i => i.visible);\r\n    const highlightedItem = this.items.find(x => x.highlighted);\r\n    const itemIndex = highlightedItem ? filteredItems.findIndex(i => i === highlightedItem) : -1;\r\n\r\n    if (itemIndex < (filteredItems.length - 1)) {\r\n      this.setHighlightedItem(filteredItems[itemIndex + 1].value);\r\n\r\n      setTimeout(() => {\r\n        this.scrollToItem(filteredItems[itemIndex + 1]);\r\n      });\r\n\r\n    } else {\r\n      if (filteredItems.length && !highlightedItem) {\r\n\r\n        this.setHighlightedItem(filteredItems[0].value);\r\n\r\n        setTimeout(() => {\r\n          this.scrollToItem(filteredItems[0]);\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  private scrollToItem(item: ComboboxItemComponent) {\r\n    if (this.scrollable.scrollable) {\r\n      const filteredItems = this.items.filter(i => i.visible);\r\n      const itemIndex = filteredItems.findIndex(i => i === item);\r\n\r\n      if (itemIndex > 3 || itemIndex === 1) {\r\n        const scrollToItem = filteredItems[itemIndex > 3 ? itemIndex - 3 : itemIndex ];\r\n        if (itemIndex === 1) {\r\n          this.scrollable.scrollable.scrollTo({top: 0});\r\n        } else {\r\n          this.scrollable.scrollable.scrollToElement(scrollToItem.item.nativeElement, {duration: 0} );\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  private setSelectedState(value: any) {\r\n    let selectedItem: ComboboxItemComponent;\r\n    let itemFound = false;\r\n\r\n    this.items.forEach(i => (i.selected = false));\r\n    this.items.forEach(i => {\r\n      if (this.compareWith(value, i.value) && !itemFound) {\r\n        i.selected = true;\r\n        selectedItem = i;\r\n        itemFound = true;\r\n      }\r\n    });\r\n\r\n    this.label = selectedItem ? selectedItem.selectedLabel || selectedItem.label : '';\r\n    this.searchString = this.label;\r\n    if (selectedItem) {\r\n      this.onChange(selectedItem.value);\r\n    }\r\n  }\r\n\r\n  private setHighligthState() {\r\n    let highligthedItem: ComboboxItemComponent;\r\n    this.items.forEach(i => (i.highlighted = false));\r\n    this.items.forEach(item => {\r\n      if (item.label.toLowerCase().startsWith(this.searchString.toLowerCase()) && !highligthedItem) {\r\n        item.highlighted = true;\r\n        highligthedItem = item;\r\n        return;\r\n      }\r\n    });\r\n\r\n  }\r\n\r\n  private setHighlightedItem(value: any) {\r\n    this.items.forEach(i => (i.highlighted = false));\r\n    this.items.forEach(item => {\r\n      if (this.compareWith(value, item.value)) {\r\n        item.highlighted = true;\r\n        this.label = item.selectedLabel || item.label;\r\n        this.searchString = this.label;\r\n        return;\r\n      }\r\n    });\r\n  }\r\n\r\n\r\n  private setInputText() {\r\n    const item: ComboboxItemComponent = this.items.find(x => x.highlighted);\r\n\r\n    if (item) {\r\n      if (this.searchString.length) {\r\n\r\n        const autocompleteText = item.label.substring(this.searchString.length);\r\n        this.textInput.nativeElement.setRangeText(autocompleteText, this.searchString.length, item.label.length + 1);\r\n\r\n        setTimeout(() => {\r\n          this.textInput.nativeElement.focus();\r\n          this.textInput.nativeElement.setSelectionRange(this.searchString.length, item.label.length, 'backward');\r\n        });\r\n      } else {\r\n        setTimeout(() => {\r\n          this.textInput.nativeElement.focus();\r\n          this.textInput.nativeElement.setRangeText(item.label);\r\n          this.focus();\r\n        });\r\n      }\r\n    }\r\n  }\r\n\r\n  getLabelFromId() {\r\n    // return window.document.getElementById(this.idForLabel)\r\n    let labels = document.getElementsByTagName('label');\r\n    for( var i = 0; i < labels.length; i++ ) {\r\n      if (labels[i].htmlFor == this.labelId)\r\n           return labels[i];\r\n   }\r\n  }\r\n}\r\n","<div class=\"combobox\" [ngClass]=\"{\r\n    'validation-error--active': errorActive,\r\n    'validation-error--editing': errorEditing,\r\n    'combobox--small': small, 'combobox--large': !small }\" [ngStyle]=\"{ 'width': width }\">\r\n  <div class=\"validation\" [ngClass]=\"{ 'readonly': readonly }\">\r\n    <div #combobox class=\"combobox__control\"\r\n      [attr.aria-disabled]=\"disabled\" [attr.aria-readonly]=\"readonly\" role=\"combobox\" id=\"combobox\" aria-owns=\"listbox\" aria-haspopup=\"listbox\" [attr.aria-expanded]=\"expanded && !readonly && !disabled\"\r\n      [ngClass]=\"{ 'combobox--small': small, 'combobox--readonly': readonly, 'combobox--disabled': disabled && !readonly, 'combobox--expanded': expanded, 'combobox--focus': hasFocus }\"\r\n      (focusin)=\"onFocus()\" (focusout)=\"onBlur($event)\"  (mousedown)=\"onMouseDownClick()\">\r\n\r\n      <div #header class=\"combobox__header\" [tabindex]=\"(disabled ? 0 : -1)\">\r\n        @if (!readonly) {\r\n          <input\r\n            #textInput\r\n            type=\"text\"\r\n            (keydown)=\"onKeydown($event)\"\r\n            [(ngModel)]=\"searchString\"\r\n            (ngModelChange)=\"filterItems()\"\r\n            [disabled]=\"disabled\"\r\n            [placeholder]=\"disabled ? '' : placeholder\"\r\n            aria-autocomplete=\"both\"\r\n            aria-controls=\"listbox\"\r\n            [attr.aria-activedescendant]=\"highlightedItemIndex\"\r\n            [attr.aria-labelledby]=\"combinedLabelIds\"\r\n            [attr.aria-invalid]=\"errorActive\"\r\n            [attr.aria-describedby]=\"elementId\"\r\n            class=\"combobox__header__input\"\r\n            [ngClass]=\"{ 'combobox--disabled': disabled && !readonly, 'combobox--readonly': readonly, 'combobox--small': small }\">\r\n        }\r\n        @if (showButton) {\r\n          <div class=\"combobox__header__button\" role=\"button\" tabindex=\"-1\"   (click)=\"expandListbox()\" >\r\n            <vgr-icon icon=\"chevron-down\" size=\"sm\" class=\"combobox__header__button__icon\" [disabled]=\"disabled\"></vgr-icon>\r\n          </div>\r\n        }\r\n        @if (readonly) {\r\n          <div #readonlyLabel class=\"combobox__header__label noselect\" tabindex=\"0\" id=\"{{headerLabelId}}\" title=\"{{label}}\">{{label}}</div>\r\n        }\r\n        <span class=\"screenreader_only\" aria-disabled=\"true\">{{label}}</span>\r\n      </div>\r\n      @if (expanded && !readonly && !disabled) {\r\n        <div class=\"combobox__menu\" role=\"listbox\" id=\"listbox\" [attr.aria-labelledby]=\"labelId\" [ngStyle]=\"{'left': leftPosition}\" [ngClass]=\"{'alignRight': listAlignRight}\">\r\n          <div class=\"combobox__menu__dimmer combobox__menu__dimmer-top\"></div>\r\n          <vgr-scrollbar #scrollable>\r\n            <div class=\"combobox__menu__items\">\r\n              <div class=\"combobox__menu__items__dimmer-padding\"></div>\r\n              <ng-content></ng-content>\r\n              <div class=\"combobox__menu__items__dimmer-padding\"></div>\r\n            </div>\r\n          </vgr-scrollbar>\r\n          <div class=\"combobox__menu__dimmer combobox__menu__dimmer-bottom\"></div>\r\n        </div>\r\n      }\r\n\r\n    </div>\r\n    @if (formControl) {\r\n      <div [attr.id]=\"elementId\" class=\"validation__status\" [attr.aria-live]=\"errorActive ? 'assertive' : 'off'\"\r\n        title=\"{{ errorMessage | errorMessage: $safeNavigationMigration(formControl?.errors) : getLabelFromId() : true  }}\">\r\n        <vgr-icon icon=\"exclamation-circle\" size=\"sm\" class=\"validation_status__icon\"></vgr-icon>\r\n        <div class=\"validation__status__message\">\r\n        {{ errorMessage | errorMessage : $safeNavigationMigration(formControl?.errors) : getLabelFromId() : true | truncate:24 }}</div>\r\n      </div>\r\n    }\r\n  </div>\r\n</div>\r\n","export enum NotificationType {\r\n    Permanent,\r\n    ShowOnCollapse,\r\n    ShowOnRemove\r\n}\r\n","import { RowNotification } from './rowNotification.model';\r\nimport { NotificationType } from './notificationType.model';\r\nimport { NotificationIconTypes } from './notificationIconTypes';\r\n\r\nexport class ExpandableRow<TPreview, TFull> {\r\n    previewObject: TPreview;\r\n    fullObject: TFull;\r\n    notification: RowNotification; // the permanentNofication\r\n\r\n    constructor(previewObject: TPreview) {\r\n        this.previewObject = previewObject;\r\n    }\r\n    setNotification(message: string, icon: NotificationIconTypes, temporary = false) {\r\n        const type = temporary ? NotificationType.ShowOnCollapse : NotificationType.Permanent;\r\n        this.notification = { icon: icon, message: message, type: type } as RowNotification;\r\n    }\r\n\r\n    notifyOnCollapse(message: string, icon: NotificationIconTypes, clearNotification: boolean = false) {\r\n        this.notification = { icon: icon, message: message, type: NotificationType.ShowOnCollapse, removeWhenDone: clearNotification } as RowNotification;\r\n    }\r\n\r\n    notifyOnRemove(message: string, icon: NotificationIconTypes) {\r\n        this.notification = { icon: icon, message: message, type: NotificationType.ShowOnRemove } as RowNotification;\r\n    }\r\n\r\n    removeNotification() {\r\n        this.notification = null;\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n    name: 'filterByProperties',\r\n    standalone: false\r\n})\r\n\r\nexport class FilterPipe implements PipeTransform {\r\n    transform(valueList: any[], filter: string, properties?: string[]): any[] {\r\n        if (!filter) {\r\n            return valueList;\r\n        }\r\n        const filteredItems: any[] = [];\r\n        filter = filter.toLowerCase();\r\n        for (let i = 0; i < valueList.length; i++) {\r\n            const item = valueList[i];\r\n\r\n            for (const property in item) {\r\n                if (item.hasOwnProperty(property)) {\r\n                    if (!properties || properties.length === 0 || properties.some(x => x === property)) {\r\n                        const propertyValue = item[property];\r\n                        if (propertyValue !== undefined && typeof (propertyValue) === 'string' &&\r\n                            (propertyValue as string).toLowerCase().indexOf(filter) >= 0) {\r\n                            filteredItems.push(item);\r\n                            break;\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        return filteredItems;\r\n    }\r\n}\r\n","\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n    name: 'safe',\r\n    standalone: false\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n    constructor(private sanitizer: DomSanitizer) { }\r\n    transform(url: string): SafeResourceUrl {\r\n        return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n    }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'komponentkartanCurrency',\r\n    standalone: false\r\n})\r\nexport class CurrencyPipe implements PipeTransform {\r\n\r\n  transform(value: number, fractions: number = 2): string {\r\n    if (!value && value !== 0) {\r\n      return '';\r\n    }\r\n    return value.toLocaleString('sv-SE', { minimumFractionDigits: fractions, maximumFractionDigits: fractions });\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'hsaidPipe',\r\n    standalone: false\r\n})\r\nexport class HsaidPipe implements PipeTransform {\r\n\r\n  transform(value: string): string {\r\n    if (!value) {\r\n      return '';\r\n    }\r\n    const hsaid = value.split('-');\r\n\r\n    return hsaid[1];\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'personnummer',\r\n    standalone: false\r\n})\r\nexport class PersonnummerPipe implements PipeTransform {\r\n\r\n  transform(value: string): string {\r\n    if (!value) {\r\n      return '';\r\n    }\r\n    return `${value.slice(0, -4)}-${value.slice(-4)}`;\r\n  }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n    name: 'postnummer',\r\n    standalone: false\r\n})\r\nexport class PostnummerPipe implements PipeTransform {\r\n\r\n    transform(value: string): string {\r\n        if (!value) {\r\n            return '';\r\n        }\r\n        let postnummer = value;\r\n\r\n        if (postnummer.length === 5) {\r\n            postnummer.split('', 5);\r\n            postnummer = postnummer[0] + postnummer[1] + postnummer[2] + ' ' + postnummer[3] + postnummer[4];\r\n        }\r\n\r\n        return postnummer;\r\n    }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class BrowserDetector {\r\n\r\n    constructor() {\r\n\r\n    }\r\n\r\n    isInternetExplorer(): boolean {\r\n        const ua = window.navigator.userAgent;\r\n\r\n        const msie = ua.indexOf('MSIE ');\r\n        if (msie > 0) {\r\n            return true;\r\n        }\r\n\r\n        const trident = ua.indexOf('Trident/');\r\n        if (trident > 0) {\r\n            return true;\r\n        }\r\n\r\n        // other browser\r\n        return false;\r\n\r\n    }\r\n}\r\n","import { Component, Input, OnChanges, HostBinding, ChangeDetectionStrategy } from '@angular/core';\r\n\r\nexport enum GridSortDirection {\r\n  None,\r\n  Ascending,\r\n  Descending\r\n}\r\nexport interface SortChangedArgs {\r\n  key: string;\r\n  direction: GridSortDirection;\r\n}\r\n@Component({\r\n    selector: 'vgr-sort-arrow',\r\n    templateUrl: './sort-arrow.component.html',\r\n    styleUrls: ['./sort-arrow.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class SortArrowComponent implements  OnChanges {\r\n\r\n  @Input() sortDirection: GridSortDirection;\r\n  @HostBinding('class') className;\r\n\r\n  constructor() { }\r\n\r\n  ngOnChanges(changes) {\r\n    const values = ['only-hover', 'permanent', 'permanent'];\r\n    this.className = values[changes.sortDirection.currentValue];\r\n  }\r\n\r\n}\r\n","@if (sortDirection !== 2) {\r\n  <vgr-icon [class.permanent]=\"sortDirection > 0\" color=\"text\" [icon]=\"'caret-up'\" size=\"sm\"></vgr-icon>\r\n}\r\n@if (sortDirection === 2) {\r\n  <vgr-icon [class.permanent]=\"sortDirection > 0\"  color=\"text\" [icon]=\"'caret-down'\" size=\"sm\"></vgr-icon>\r\n  } <!--[class.only-hover]=\"sortDirection === 0\"-->\r\n","import { Component, OnInit, Input, Output, EventEmitter, HostBinding, ViewChild, ElementRef, HostListener, Injector, ChangeDetectionStrategy } from '@angular/core';\r\nimport { GridComponent } from '../grid/grid.component'\r\nimport { GridSortDirection } from '../sort-arrow/sort-arrow.component';\r\n\r\n\r\n@Component({\r\n    selector: 'vgr-grid-header-column',\r\n    templateUrl: './grid-header-column.component.html',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class GridHeaderColumnComponent {\r\n  @Input() @HostBinding('style.flex') width = 1;\r\n  @Input() align = 'left';\r\n  @Input() sortKey: string;\r\n  @Input() sortDirection = GridSortDirection.None;\r\n  @Output() sortChanged: EventEmitter<GridSortDirection> = new EventEmitter<GridSortDirection>();\r\n  @ViewChild('gridHeaderColumn', { read: ElementRef, static: false }) gridHeaderColumn: ElementRef;\r\n\r\n  constructor(private injector: Injector) { }\r\n\r\n  @HostListener('keydown', ['$event']) keydown(event: any) {\r\n    const parent: GridComponent = this.injector.get<GridComponent>(GridComponent);  \r\n    if (event.key === 'ArrowDown') {\r\n      event.preventDefault();\r\n      parent.setFocusOnRow(0);\r\n    }\r\n  } \r\n\r\n  changeSort() {\r\n    if (this.sortKey) {\r\n      if (this.sortDirection === GridSortDirection.None) {\r\n        this.sortDirection = GridSortDirection.Ascending;\r\n      } else if (this.sortDirection === GridSortDirection.Ascending) {\r\n        this.sortDirection = GridSortDirection.Descending;\r\n      } else if (this.sortDirection === GridSortDirection.Descending) {\r\n        this.sortDirection = GridSortDirection.Ascending;\r\n      }\r\n      this.sortChanged.emit(this.sortDirection);\r\n    }\r\n  }\r\n\r\n  public focus() {\r\n    if (this.sortKey) {\r\n      this.gridHeaderColumn.nativeElement.focus();\r\n    }\r\n  }\r\n\r\n}\r\n","<div #gridHeaderColumn [attr.class]=\"'grid-align--'+align\" [attr.tabindex]=\"0\" (click)=\"changeSort()\" [attr.tabindex]=\"!sortKey ? -1 : 0\"  (keydown.space)=\"changeSort()\" (keydown.enter)=\"changeSort()\">\r\n  <h2 [class.sortable]=\"sortKey\">\r\n    <ng-content></ng-content>\r\n    @if (sortKey) {\r\n      <vgr-sort-arrow [sortDirection]=\"sortDirection\"></vgr-sort-arrow>\r\n    }\r\n  </h2>\r\n</div>\r\n","import { Component, ContentChildren, Output, EventEmitter, QueryList, AfterContentInit, OnDestroy, Input, HostBinding, HostListener, ElementRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { GridHeaderColumnComponent } from './grid-header-column.component';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { GridSortDirection } from '../sort-arrow/sort-arrow.component';\r\n\r\n\r\nexport interface GridSortChangedArgs {\r\n  key: string;\r\n  direction: GridSortDirection;\r\n}\r\n@Component({\r\n    selector: 'vgr-grid-header',\r\n    templateUrl: './grid-header.component.html',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class GridHeaderComponent implements AfterContentInit, OnDestroy {\r\n  @ContentChildren(GridHeaderColumnComponent) gridHeaderColumns: QueryList<GridHeaderColumnComponent>;\r\n  @Output() sortChanged: EventEmitter<GridSortChangedArgs> = new EventEmitter<GridSortChangedArgs>();\r\n  @Output() focusChanged: EventEmitter<number> = new EventEmitter<number>();\r\n  private ngUnsubscribe: any = new Subject();\r\n\r\n  previousSortableColumn(startIndex: number): number {\r\n    if (startIndex === -1) {\r\n      return;\r\n    }\r\n    for (let index = startIndex; index < this.gridHeaderColumns.length; index--) {\r\n      if (index === -1) {\r\n        // gå till sista\r\n        index = this.gridHeaderColumns.length-1;\r\n      }\r\n      if (this.gridHeaderColumns.get(index).sortKey !== undefined) {\r\n      return index;\r\n      }\r\n    }\r\n    return startIndex;\r\n\r\n  }\r\n  nextSortableColumn(startIndex: number): number {\r\n    if (startIndex === -1) {\r\n      return;\r\n    }\r\n    for (let index = startIndex; index < this.gridHeaderColumns.length; index++) {\r\n      if (this.gridHeaderColumns.get(index).sortKey !== undefined) {\r\n      return index;\r\n      }\r\n    }\r\n    return startIndex;\r\n  }\r\n\r\n  constructor(public el: ElementRef) { }\r\n\r\n\r\n  ngAfterContentInit() {\r\n    this.gridHeaderColumns.forEach(column => column.sortChanged.pipe(takeUntil(this.ngUnsubscribe)).subscribe(\r\n      (direction: GridSortDirection) => this.onColumnSortChanged(column, direction)));\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n\r\n  onColumnSortChanged(column: GridHeaderColumnComponent, direction: GridSortDirection) {\r\n    this.gridHeaderColumns.filter(otherCol => otherCol !== column).forEach(otherCol => otherCol.sortDirection = GridSortDirection.None);\r\n    this.sortChanged.emit({ key: column.sortKey, direction: direction } as GridSortChangedArgs);\r\n  }\r\n\r\n}\r\n\r\n\r\n","<ng-content select=\"vgr-grid-header-column\"></ng-content>","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-grid-content',\r\n    template: '<ng-content></ng-content>',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class GridContentComponent {\r\n\r\n  constructor() { }\r\n\r\n}\r\n","import { Component, Input, HostBinding, OnInit, ElementRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { toggleFadedState } from '../../animation';\r\n\r\n@Component({\r\n    selector: 'vgr-notification',\r\n    templateUrl: './notification.component.html',\r\n    styleUrls: ['./notification.component.scss'],\r\n    animations: [toggleFadedState],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class NotificationComponent implements OnInit {\r\n  /**\r\n   * Option to use Notification as standalone.\r\n   * If true, no margin will be set or any border on parent-element.\r\n   * This is for use outside of <vgr-grid />\r\n   */\r\n  @Input() standalone = false;\r\n  /**\r\n   * This is deprecated and you're encouraged to use \"type\" instead.\r\n   *\r\n   * @deprecated\r\n   */\r\n  @Input() borderColor: 'success' | 'error' | 'warning' | 'info' | 'comment' = null;\r\n  /**\r\n   * Set icon and background-color of notification\r\n   */\r\n  @Input() @HostBinding('attr.class') type: 'success' | 'error' | 'warning' | 'info' | 'comment'  = null;\r\n  /**\r\n   * Set width of notification\r\n   */\r\n  @Input() @HostBinding('style.width') width = null;\r\n  /**\r\n   * Set min-height of notification.\r\n   */\r\n  @Input() @HostBinding('style.min-height') height = null;\r\n  /**\r\n   * Remove icon that's otherwise automatically added\r\n   */\r\n  @Input() @HostBinding('class.no-icon') noIcon = false;\r\n\r\n  @HostBinding('class.list-notification') listNotification = false;\r\n  @HostBinding('class.standalone-notification') standaloneNotification = false;\r\n  @HostBinding('@toggleFadedState') animate = true;\r\n  @HostBinding('attr.role') role = '';\r\n  @HostBinding('attr.aria-describedby') describeBy = 'description';\r\n\r\n  @Input()  set  isAlertNotice(value: boolean) {\r\n    if (value) {\r\n      this.role = 'alert';\r\n    } else {\r\n      this.role = '';\r\n    }\r\n  }\r\n\r\n  constructor(public el: ElementRef) {}\r\n\r\n  ngOnInit() {\r\n    // Is <vgr-grid /> direct parent; Add class \"list-notification\"\r\n    if (this.el.nativeElement?.parentElement?.localName === 'vgr-grid') {\r\n      this.listNotification = true;\r\n    }\r\n\r\n    // Not list-notification & standalone passed to component; Add class \"standalone-notification\"\r\n    if (!this.listNotification && this.standalone) {\r\n      this.standaloneNotification = true;\r\n    }\r\n\r\n    // TODO: Remove this later on...\r\n    if (this.borderColor) {\r\n      console.warn('\"borderColor\" is deprecated, please use \"type\" instead');\r\n      if (this.type === null) {\r\n        this.type = this.borderColor;\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\n","@if (type && !noIcon) {\r\n  @if (type === 'success') {\r\n    <vgr-icon [solid]=\"true\" color=\"success\" icon=\"check-circle\"></vgr-icon>\r\n  }\r\n  @if (type === 'error') {\r\n    <vgr-icon [solid]=\"true\" color=\"error\" icon=\"exclamation-circle\"></vgr-icon>\r\n  }\r\n  @if (type === 'warning') {\r\n    <vgr-icon [solid]=\"true\" color=\"warning\" icon=\"exclamation-circle\"></vgr-icon>\r\n  }\r\n  @if (type === 'info') {\r\n    <vgr-icon [solid]=\"true\" color=\"info\" icon=\"info-circle\"></vgr-icon>\r\n  }\r\n  @if (type === 'comment') {\r\n    <vgr-icon [solid]=\"false\" color=\"text\" icon=\"comment-dots\"></vgr-icon>\r\n  }\r\n}\r\n\r\n<div id=\"description\">\r\n  @if (type === 'warning') {\r\n    <p>warning</p>\r\n  }\r\n  @if (type === 'info') {\r\n    <p>information</p>\r\n  }\r\n  @if (type === 'success') {\r\n    <p>success</p>\r\n  }\r\n  @if (type === 'error') {\r\n    <p>error</p>\r\n  }\r\n  @if (type === 'comment') {\r\n    <p>comment</p>\r\n  }\r\n</div>\r\n<ng-content></ng-content>\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class GridService {\r\n\r\n  private expandRowRequestedSource = new Subject<any>();\r\n  expandRowRequested = this.expandRowRequestedSource.asObservable();\r\n\r\n  private collapseRowRequestedSource = new Subject<any>();\r\n  collapseRowRequested = this.collapseRowRequestedSource.asObservable();\r\n\r\n  requestExpandRow(row: any) {\r\n    setTimeout(() => {\r\n      this.expandRowRequestedSource.next(row);\r\n    },0);\r\n  }\r\n\r\n  requestCollapseRow(row: any) {\r\n    setTimeout(() => {\r\n      this.collapseRowRequestedSource.next(row);\r\n    });\r\n  }\r\n}\r\n","import { Component, ContentChildren, QueryList, Input, AfterContentInit, Output, EventEmitter, OnChanges, SimpleChanges, ElementRef, OnDestroy, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { GridContentComponent } from './grid-content.component';\r\nimport { GridService } from './grid.service';\r\nimport { toggleExpandedState } from '../../animation';\r\nimport { NotificationComponent } from '../notification/notification.component';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n    selector: 'vgr-grid-row',\r\n    templateUrl: './grid-row.component.html',\r\n    animations: [toggleExpandedState],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class GridRowComponent implements OnChanges, AfterContentInit, OnDestroy {\r\n\r\n  @Input() expanded = false;\r\n  @Input() preventCollapse = false;\r\n  @Output() expandedChanged: EventEmitter<any> = new EventEmitter();\r\n  @Output() expandPrevented: EventEmitter<any> = new EventEmitter();\r\n  @Output() collapsePrevented: EventEmitter<any> = new EventEmitter();\r\n  @ViewChild('gridRowHeader', { read: ElementRef, static: false }) gridRowHeader: ElementRef;\r\n\r\n  @ContentChildren(GridContentComponent) content: QueryList<GridContentComponent>;\r\n  @ContentChildren(NotificationComponent) notifications: QueryList<NotificationComponent>;\r\n  zebraLayout = false;\r\n\r\n  animationSpeed = '400ms ease';\r\n  hasExpandablecontent = true;\r\n  hasNotifications = false;\r\n  isExpanded = false;\r\n  notificationColor = 'default';\r\n  overflow: boolean;\r\n\r\n  private ngUnsubscribe: any = new Subject();\r\n  constructor(private gridService: GridService, public el: ElementRef) { }\r\n\r\n  get expandedState() {\r\n    return {\r\n      value: this.isExpanded,\r\n      params: {\r\n        speed: this.animationSpeed\r\n      }\r\n    };\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    const expandedChange = changes['expanded'];\r\n    if (expandedChange && expandedChange.currentValue !== this.isExpanded) {\r\n      if (expandedChange.firstChange) {\r\n        this.isExpanded = expandedChange.currentValue;\r\n      } else {\r\n        this.toggleExpanded();\r\n      }\r\n    }\r\n  }\r\n\r\n  toggleExpanded() {\r\n    if (this.hasExpandablecontent) {\r\n      if (this.isExpanded) {\r\n        if (this.preventCollapse) {\r\n          this.collapsePrevented.emit();\r\n        } else {\r\n          this.gridService.requestCollapseRow(this);\r\n        }\r\n      } else {\r\n         this.gridService.requestExpandRow(this);\r\n      }\r\n    }\r\n  }\r\n\r\n\r\n  toggleState(state: 'start' | 'done', expanded: boolean) {\r\n    setTimeout(() => {\r\n      if (state === 'done' && expanded === true) {\r\n        this.overflow = false;\r\n      } else {\r\n        this.overflow = true;\r\n      }\r\n    });\r\n  }\r\n\r\n  //Anropas från Grid\r\n  setExpanded(expanded: boolean) {\r\n    this.isExpanded = expanded;\r\n    // this.expanded = expanded;\r\n    this.expandedChanged.emit(this.isExpanded);\r\n\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this.hasExpandablecontent = this.content.length > 0;\r\n    this.hasNotifications = this.notifications.length > 0;\r\n\r\n    this.notifications.changes\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(_ => {\r\n        this.hasNotifications = _.length > 0;\r\n      });\r\n\r\n    if (this.hasNotifications) {\r\n      this.notificationColor = this.notifications.toArray()[0].type;\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n\r\n  public focus() {\r\n    this.gridRowHeader.nativeElement.focus();\r\n  }\r\n}\r\n","<div class=\"grid-row-container\" [ngClass]=\"{'grid-row-header--expandable': hasExpandablecontent, 'grid-row--expanded': isExpanded, 'grid-row-container--notification': hasNotifications}\">\r\n  <div #gridRowHeader class=\"grid-row-header-focus\" tabindex=\"0\" (click)=\"toggleExpanded()\" [attr.aria-expanded]=\"isExpanded\">\r\n    <div class=\"grid-row-header\" [ngClass]=\"{'grid-row-header-background-zebra': zebraLayout}\">\r\n      <ng-content select=\"vgr-grid-column\"></ng-content>\r\n    </div>\r\n    <div class=\"grid-row-notification\">\r\n      <ng-content select=\"vgr-notification\"></ng-content>\r\n    </div>\r\n  </div>\r\n  <div class=\"grid-row-content\" [@toggleExpandedState]=\"expandedState\"\r\n    (@toggleExpandedState.start)=\"toggleState('start', isExpanded)\" (@toggleExpandedState.done)=\"toggleState('done', isExpanded)\"\r\n    [class.grid-row-overflow]=\"overflow\">\r\n    <!-- <div> -->\r\n    @if (isExpanded) {\r\n      <ng-content select=\"vgr-grid-content\"></ng-content>\r\n    }\r\n  </div>\r\n</div>\r\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-grid-header-toolbar',\r\n    template: '<ng-content></ng-content>',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class GridHeaderToolbarComponent {\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, AfterContentInit, ContentChild, ContentChildren, QueryList, OnDestroy, HostListener, ChangeDetectionStrategy } from '@angular/core';\r\nimport { GridHeaderComponent, GridSortChangedArgs } from './grid-header.component';\r\nimport { GridRowComponent } from './grid-row.component';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { PageHeaderHeightService } from '../../services/page-header-height.service';\r\nimport { GridService } from './grid.service';\r\nimport { remove } from '../../animation';\r\nimport { GridHeaderToolbarComponent } from './grid-header-toolbar.component';\r\n\r\n@Component({\n    selector: 'vgr-grid',\n    templateUrl: './grid.component.html',\n    styleUrls: ['./grid.component.scss'],\n    providers: [GridService],\n    animations: [remove],\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\n})\r\nexport class GridComponent implements OnInit, AfterContentInit, OnDestroy {\r\n\r\n  @Input() allowMultipleExpandedRows = false;\r\n  @Input() stickyHeader = false;\r\n  @Input() toggleAnimation: 'none' | 'slow' | 'medium' | 'fast' = 'medium';\r\n  @Input() pages = 1;\r\n  @Input() activePage = 1;\r\n  @Input() showLoader = false;\r\n  @Input() ariaLabel = 'Lista';\r\n  @Input() increaseHeaderWidth = false;\r\n  @Input() zebraLayout = false;\r\n  @Output() pageChanged: EventEmitter<number> = new EventEmitter();\r\n  @Output() sortChanged: EventEmitter<GridSortChangedArgs> = new EventEmitter<GridSortChangedArgs>();\r\n\r\n  @ContentChild(GridHeaderToolbarComponent) gridHeaderToolbar: GridHeaderToolbarComponent;\r\n  @ContentChild(GridHeaderComponent) gridHeader: GridHeaderComponent;\r\n  @ContentChildren(GridRowComponent) rows: QueryList<GridRowComponent>;\r\n\r\n  headerOffset: string; // dynamic offset depending on the heightof the page header + header height.\r\n  hasToolbar = false;\r\n  private animationSpeed: string;\r\n  private headerHeight = 79; // vgr-header height (same value as $header-height _setting.sizes.scss)\r\n  private ngUnsubscribe: any = new Subject();\r\n\r\n  @HostListener('keydown', ['$event']) keydown(event: any) {\r\n    if (event.target.classList.contains('grid-header')) {\r\n      if (event.key === 'ArrowDown') {\r\n        event.preventDefault();\r\n        this.setFocusOnRow(0);\r\n      }\r\n    } else {\r\n      if (!event.target.className.includes('grid-row-header-focus') || event.key === 'Tab') {\r\n\r\n        // Om vi står på en rad\r\n        const row = event.target.closest('vgr-grid-row');\r\n        if (row) {\r\n          const parent = row.closest('.grid-rows');\r\n          const index = Array.from(parent.children).indexOf(row);\r\n\r\n          if (index === 0 && event.key === 'Tab' && event.shiftKey) {\r\n            // event.preventDefault();\r\n            // let headerToFocus = event.currentTarget.getElementsByClassName('grid-header')[0];\r\n            // headerToFocus.focus();\r\n          }\r\n        }\r\n\r\n        return;\r\n      }\r\n      const row = event.target.closest('vgr-grid-row');\r\n      const parent = row.closest('.grid-rows');\r\n      const index = Array.from(parent.children).indexOf(row);\r\n      if (event.key === 'Enter' || event.key === 'Spacebar' || event.key === ' ') {\r\n        this.rows.toArray()[index].toggleExpanded();\r\n        event.preventDefault();\r\n      }\r\n      if (event.key === 'Home') {\r\n        this.setFocusOnRow(0);\r\n        event.preventDefault();\r\n      }\r\n      if (event.key === 'End') {\r\n        this.setFocusOnRow(this.rows.length - 1);\r\n        event.preventDefault();\r\n      }\r\n      if (event.key === 'ArrowUp' || event.key === 'Up') {\r\n        event.preventDefault();\r\n        if (index > 0) {\r\n          this.setFocusOnRow(index - 1);\r\n        } else {\r\n          this.setFocusOnRow(this.rows.length - 1);\r\n        }\r\n      }\r\n      if (event.key === 'ArrowDown' || event.key === 'Down') {\r\n        event.preventDefault();\r\n        if (index < this.rows.length - 1) {\r\n          this.setFocusOnRow(index + 1);\r\n        } else {\r\n          this.setFocusOnRow(0);\r\n        }\r\n      }\r\n\r\n    }\r\n  }\r\n\r\n  setFocusOnRow(index) {\r\n    const elem = this.rows.toArray()[index].el.nativeElement.querySelector('.grid-row-header-focus');\r\n    elem.focus();\r\n  }\r\n\r\n  constructor(private pageHeaderHeightService: PageHeaderHeightService,\r\n    private gridService: GridService) { }\r\n\r\n  ngOnInit() {\r\n    this.headerOffset = `${this.headerHeight + this.pageHeaderHeightService.height}px`;\r\n    this.pageHeaderHeightService.heightChanged\r\n      .pipe(takeUntil(this.ngUnsubscribe))\r\n      .subscribe(value => {\r\n        setTimeout(() => {\r\n          this.headerOffset = `${this.headerHeight + value}px`;\r\n        });\r\n      });\r\n    const animationSpeeds = {\r\n      none: '0ms',\r\n      slow: '600ms ease',\r\n      medium: '400ms ease',\r\n      fast: '200ms ease'\r\n    };\r\n    this.animationSpeed = animationSpeeds[this.toggleAnimation];\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    if (this.gridHeader) {\r\n      this.gridHeader.sortChanged\r\n        .pipe(takeUntil(this.ngUnsubscribe)).subscribe((args: GridSortChangedArgs) => this.sortChanged.emit(args));\r\n\r\n      this.gridHeader.focusChanged\r\n        .pipe(takeUntil(this.ngUnsubscribe)).subscribe((index: number) => this.setFocusOnRow(index));\r\n    }\r\n    if (this.gridHeaderToolbar) {\r\n      this.hasToolbar = true;\r\n    }\r\n\r\n    //      .pipe(takeUntil(this.ngUnsubscribe))\r\n    this.gridService.expandRowRequested.subscribe((rowToExpand: GridRowComponent) => {\r\n        if (this.allowMultipleExpandedRows) {\r\n          rowToExpand.setExpanded(true);\r\n          if (this.stickyHeader) {\r\n            this.increaseHeaderWidth = true;\r\n          }\r\n        } else {\r\n          const expandedRows = this.rows.filter(x => x.isExpanded);\r\n\r\n          if (expandedRows.length) {\r\n            const preventedRows = expandedRows.filter(x => x.preventCollapse);\r\n\r\n            if (preventedRows.length) {\r\n              preventedRows.forEach(x => x.collapsePrevented.emit());\r\n              rowToExpand.expandPrevented.emit();\r\n\r\n            } else {\r\n              expandedRows.forEach(x => x.setExpanded(false));\r\n              rowToExpand.setExpanded(true);\r\n              if (this.stickyHeader) {\r\n                this.increaseHeaderWidth = true;\r\n              }\r\n            }\r\n\r\n          } else {\r\n            rowToExpand.setExpanded(true);\r\n            if (this.stickyHeader) {\r\n              this.increaseHeaderWidth = true;\r\n            }\r\n          }\r\n        }\r\n      });\r\n\r\n    this.gridService.collapseRowRequested\r\n      .pipe(takeUntil(this.ngUnsubscribe)).subscribe((rowToCollapse: GridRowComponent) => {\r\n        rowToCollapse.setExpanded(false);\r\n        if (this.stickyHeader) {\r\n          this.increaseHeaderWidth = false;\r\n        }\r\n      });\r\n\r\n    this.rows.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\r\n      this.setAnimationSpeed();\r\n    });\r\n    this.setAnimationSpeed();\r\n\r\n    this.setLayout();\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n\r\n  setLayout() {\r\n    this.rows.forEach(row => {\r\n      row.zebraLayout = this.zebraLayout;\r\n    });\r\n  }\r\n\r\n  setAnimationSpeed() {\r\n    this.rows.forEach(row => {\r\n      row.animationSpeed = this.animationSpeed;\r\n    });\r\n  }\r\n\r\n  onPageChanged(event: number) {\r\n    setTimeout(() => {\r\n      this.pageChanged.emit(event);\r\n      this.increaseHeaderWidth = false;\r\n    });\r\n  }\r\n}\r\n","<div class=\"grid-header-wrapper\" [ngClass]=\"{'grid-header-wrapper--sticky': stickyHeader, 'grid-header-wrapper-expanded': increaseHeaderWidth}\" [style.top]=\"headerOffset\">\r\n  @if (hasToolbar) {\r\n    <div class=\"grid-header-toolbar\">\r\n      <ng-content select=\"vgr-grid-header-toolbar\"></ng-content>\r\n    </div>\r\n  }\r\n  <div tabindex=\"0\" [attr.aria-label]=\"ariaLabel\" class=\"grid-header\">\r\n    <ng-content select=\"vgr-grid-header\"></ng-content>\r\n  </div>\r\n</div>\r\n<ng-content select=\"vgr-notification\"></ng-content>\r\n@if (showLoader) {\r\n  <div class=\"grid-loader\">\r\n    <vgr-loader [active]=\"true\"></vgr-loader>\r\n  </div>\r\n}\r\n@if (!showLoader) {\r\n  <div class=\"grid-rows\">\r\n    <ng-content select=\"vgr-grid-row\"></ng-content>\r\n  </div>\r\n}\r\n@if (pages > 1) {\r\n  <div class=\"grid-footer\">\r\n    <vgr-pagination [pages]=\"pages\" [activePage]=\"activePage\" (pageChanged)=\"onPageChanged($event)\"></vgr-pagination>\r\n  </div>\r\n}\r\n","import { Component, Input, HostBinding, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-grid-column',\r\n    templateUrl: './grid-column.component.html',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class GridColumnComponent {\r\n\r\n  @Input() @HostBinding('style.flex') width = 1;\r\n  @Input() align = 'left';\r\n\r\n}\r\n","<div [attr.class]=\"'grid-align--'+align\"><ng-content></ng-content></div>","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class EditableTableService {\r\n  \r\n  private editmode = new Subject<any>();\r\n  constructor() { }\r\n\r\n  editmodeChanged = this.editmode.asObservable();\r\n\r\n  changeEditmode(value: boolean, id: any) {\r\n    this.editmode.next({ value: value, id: id });\r\n  }\r\n\r\n}\r\n","import { Component, OnInit, HostBinding, Input, ElementRef, EventEmitter, Output, Host, HostListener, AfterContentInit, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Guid } from '../../utils/guid';\r\nimport { GridSortDirection } from '../sort-arrow/sort-arrow.component';\r\nimport { EditableTableService } from './editable-table.service';\r\n@Component({\r\n    selector: 'vgr-editable-table-header-column',\r\n    template: '<ng-content></ng-content>  @if (sortKey && editMode === false) {<vgr-sort-arrow [sortDirection]=\"sortDirection\"></vgr-sort-arrow>}',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class EditableTableHeaderColumnComponent implements OnInit, AfterContentInit {\r\n\r\n  @HostBinding('style.textAlign') @Input() align = 'left';\r\n  @HostBinding('style.width') @Input() width;\r\n  @HostBinding('attr.id') id: string;\r\n  @HostBinding('attr.role') role = 'columnheader';\r\n  @HostBinding('style.cursor') pointer = 'default'\r\n\r\n\r\n  editMode: boolean = false;\r\n  @Input() sortKey: string;\r\n  @Input() sortDirection = GridSortDirection.None;\r\n  @Output() sortChanged: EventEmitter<GridSortDirection> = new EventEmitter<GridSortDirection>();\r\n\r\n\r\n  parentId: string;\r\n\r\n\r\n\r\n  constructor(public elem: ElementRef, private editableTableService: EditableTableService) {}\r\n\r\n  @HostListener('click', ['$event.target'])\r\n  onClick(target) {\r\n    if (this.sortKey && this.editMode === false) {\r\n      this.changeSort();\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n    const uniqeId = Guid.newGuid();\r\n    const index = Array.from(this.elem.nativeElement.parentNode.children).indexOf(this.elem.nativeElement);\r\n    this.id = `${uniqeId}-header-${index}`;\r\n\r\n    this.setPointer();\r\n\r\n    //check that align value is correct\r\n    if (this.align !== 'left' && this.align !== 'center' && this.align !== 'right') {\r\n      throw new Error('Felaktigt värde på align, endast left, right eller center kan anges ( du har satt ' + this.align + ' ) på kolumn '+ index );\r\n    }\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this.editableTableService.editmodeChanged.subscribe((value) => {\r\n      if (value.id === this.parentId) {\r\n        this.editMode = value.value;\r\n        this.setPointer();\r\n      }\r\n    });\r\n  }\r\n\r\n  setPointer() {\r\n    if (this.sortKey && this.editMode === false) {\r\n      this.pointer = 'pointer'\r\n    } else {\r\n      this.pointer = 'default'\r\n    }\r\n  }\r\n  changeSort() {\r\n    if (this.sortKey) {\r\n      if (this.sortDirection === GridSortDirection.None) {\r\n        this.sortDirection = GridSortDirection.Ascending;\r\n      } else if (this.sortDirection === GridSortDirection.Ascending) {\r\n        this.sortDirection = GridSortDirection.Descending;\r\n      } else if (this.sortDirection === GridSortDirection.Descending) {\r\n        this.sortDirection = GridSortDirection.Ascending;\r\n      }\r\n      this.sortChanged.emit(this.sortDirection);\r\n    }\r\n  }\r\n\r\n\r\n}\r\n","import { AfterContentInit, Component, ContentChildren, EventEmitter, OnDestroy, Output, QueryList, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GridSortDirection, SortChangedArgs } from '../sort-arrow/sort-arrow.component';\r\nimport { EditableTableHeaderColumnComponent } from './editable-table-header-column.component';\r\n\r\n@Component({\r\n    selector: 'vgr-editable-table-header',\r\n    template: '<ng-content select=\"vgr-editable-table-header-column\"></ng-content>',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class EditableTableHeaderComponent implements AfterContentInit, OnDestroy{\r\n  private ngUnsubscribe: any = new Subject();\r\n\r\n  @Output() sortChanged: EventEmitter<SortChangedArgs> = new EventEmitter<SortChangedArgs>();\r\n  @ContentChildren(EditableTableHeaderColumnComponent) headerColumns: QueryList<EditableTableHeaderColumnComponent>;\r\n  constructor() { }\r\n\r\n  ngAfterContentInit() {\r\n    this.headerColumns.forEach(column => column.sortChanged.pipe(takeUntil(this.ngUnsubscribe)).subscribe(\r\n      (direction: GridSortDirection) => this.onColumnSortChanged(column, direction)));\r\n  }\r\n\r\n  onColumnSortChanged(column: EditableTableHeaderColumnComponent, direction: GridSortDirection) {\r\n    this.headerColumns.filter(otherCol => otherCol !== column).forEach(otherCol => otherCol.sortDirection = GridSortDirection.None);\r\n    this.sortChanged.emit({ key: column.sortKey, direction: direction } as SortChangedArgs);\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n\r\n}\r\n","import { Component, Input, HostBinding, ElementRef, Host, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n\r\n\r\n@Component({\r\n    selector: 'vgr-editable-table-column',\r\n    template: '<ng-content></ng-content>',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class EditableTableColumnComponent {\r\n\r\n\r\n  @HostBinding('style.textAlign') align = 'left';\r\n  @HostBinding('tabIndex') tabIndex = -1;\r\n  @HostBinding('class.editmode') editMode;\r\n\r\n  @Input() @HostBinding('attr.aria-describedby') headerId = '';\r\n  @HostBinding('attr.role') role = 'cell';\r\n\r\n  constructor(private el: ElementRef) {\r\n\r\n  }\r\n\r\n  focus() {\r\n    this.el.nativeElement.focus();\r\n  }\r\n\r\n}\r\n","import { Component, ElementRef, QueryList, ContentChildren, AfterContentInit, Input, HostBinding, ChangeDetectionStrategy } from '@angular/core';\r\nimport { EditableTableColumnComponent } from './editable-table-column.component';\r\nimport { EditableTableComponent } from './editable-table.component';\r\nimport { EditableTableService } from './editable-table.service';\r\n\r\n@Component({\r\n    selector: 'vgr-editable-table-row',\r\n    template: '<ng-content selects=\"vgr-editable-table-column\"></ng-content>',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class EditableTableRowComponent implements AfterContentInit {\r\n  @ContentChildren(EditableTableColumnComponent) columns : QueryList<EditableTableColumnComponent>;\r\n  @Input() parentId: string;\r\n  @HostBinding('attr.role') role = 'row';\r\n  set editMode(value:boolean) {\r\n    this.columns.forEach((column) => column.editMode = value );\r\n  }\r\n\r\n  constructor(public elem: ElementRef, private editableTableService: EditableTableService) {}\r\n\r\n  ngAfterContentInit() {\r\n    this.editableTableService.editmodeChanged.subscribe((value) => {\r\n      if (value.id === this.parentId) {\r\n        this.columns.forEach((column) => column.editMode = value.value );\r\n      }\r\n    });\r\n    \r\n\r\n  }\r\n}\r\n","import { AfterContentInit, AfterViewInit, Component, ContentChild, ContentChildren, DebugElement, ElementRef, EventEmitter, HostBinding, HostListener, Input, OnDestroy, OnInit, Output, QueryList, ViewChild, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Guid } from '../../utils/guid';\r\nimport { Subject } from 'rxjs';\r\nimport { EditableTableHeaderComponent } from './editable-table-header.component';\r\nimport { EditableTableRowComponent } from './editable-table-row.component';\r\nimport { EditableTableService } from './editable-table.service';\r\nimport { last, takeUntil } from 'rxjs/operators';\r\nimport { SortChangedArgs } from '../sort-arrow/sort-arrow.component';\r\n\r\n@Component({\r\n    selector: 'vgr-editable-table',\r\n    templateUrl: './editable-table.component.html',\r\n    styleUrls: ['./editable-table.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\n\r\nexport class EditableTableComponent implements AfterViewInit, AfterContentInit, OnDestroy {\r\n\r\n  @Input() set  editMode(value: boolean){\r\n    this.inEditmode = value;\r\n    this.editableTableService.changeEditmode(value, this.id);\r\n  }\r\n\r\n  @Input() height = '';\r\n  @Output() sortChanged: EventEmitter<SortChangedArgs> = new EventEmitter<SortChangedArgs>();\r\n\r\n  @ContentChild(EditableTableHeaderComponent) tableHeader: EditableTableHeaderComponent;\r\n  @ContentChildren(EditableTableRowComponent) tableRows: QueryList<EditableTableRowComponent>;\r\n  @ViewChild('tableHeaderContainer') header: ElementRef;\r\n\r\n  currentRow: number;\r\n  currentColumn: number;\r\n  inEditmode: boolean = false;\r\n  calculatedHeight: any\r\n  @HostBinding('class.editable-table') editableTableClass = true;\r\n  @HostBinding('attr.id') id: string;\r\n  @HostListener('focusout', ['$event']) onFocus(event) {\r\n\r\n    if (!this.elRef.nativeElement.contains(event.relatedTarget)) {\r\n      if (this.tableRows.length > 0) {\r\n        this.resetTabIndexOnColumn();\r\n        this.tableRows.get(0).columns.get(0).tabIndex = 0;\r\n      }\r\n      this.currentColumn = 0;\r\n      this.currentRow = 0;\r\n      event.preventDefault();\r\n    } else {\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n\r\n    }\r\n  }\r\n  resetTabIndexOnColumn() {\r\n    if (this.tableRows.length > 0) {\r\n      this.tableRows.get(this.currentRow).columns.get(this.currentColumn).tabIndex = -1;\r\n    }\r\n  }\r\n\r\n  setTabIndexAndFocusOnColumn() {\r\n    if (this.tableRows.length > 0) {\r\n      this.tableRows.get(this.currentRow).columns.get(this.currentColumn).tabIndex = 0;\r\n      this.tableRows.get(this.currentRow).columns.get(this.currentColumn).focus();\r\n    }\r\n  }\r\n\r\n  @HostListener('keydown', ['$event']) onKeydownHandler(event: any) {\r\n\r\n    if (event.key === 'Tab' || (event.shiftKey && event.key === 'Tab')) {\r\n    } else if (event.srcElement.tagName !== 'VGR-EDITABLE-TABLE-COLUMN') {\r\n      return;\r\n    }\r\n\r\n    switch (event.key) {\r\n\r\n      case 'Tab':\r\n        //tab out of table\r\n        if (event.shiftKey) {\r\n          if (!this.inEditmode) {\r\n            let focusableElements = this.elRef.nativeElement.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\r\n            let firstFocusable = <HTMLElement>focusableElements[0]; //<HTMLElement>\r\n            if (document.activeElement === firstFocusable) {\r\n              return;\r\n            } else {\r\n             event.preventDefault();\r\n             firstFocusable.focus();\r\n\r\n              //not working...\r\n              firstFocusable.dispatchEvent(new KeyboardEvent('keydown', {'key':'Tab', 'shiftKey': event.shiftKey}));\r\n            }\r\n          }\r\n        } else {\r\n          if (!this.inEditmode) {\r\n            let focusableElements = this.elRef.nativeElement.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');\r\n            let lastFocusable = <HTMLElement>focusableElements[focusableElements.length - 1]; //<HTMLElement>\r\n            if (document.activeElement === lastFocusable) {\r\n              return;\r\n            } else {\r\n             event.preventDefault();\r\n             lastFocusable.focus();\r\n\r\n              //not working...\r\n             lastFocusable.dispatchEvent(new KeyboardEvent('keydown', {'key':'Tab'}));\r\n            }\r\n          }\r\n        }\r\n        break;\r\n      case 'ArrowRight':\r\n      case 'Right':\r\n        event.preventDefault();\r\n        this.resetTabIndexOnColumn();\r\n\r\n        if (this.currentColumn === this.tableRows.get(this.currentRow).columns.length-1) {\r\n          this.currentColumn = 0;\r\n        } else {\r\n          this.currentColumn++;\r\n        }\r\n        this.setTabIndexAndFocusOnColumn();\r\n        break;\r\n      case 'ArrowLeft':\r\n      case 'Left':\r\n        event.preventDefault();\r\n        this.resetTabIndexOnColumn();\r\n        if (this.currentColumn === 0) {\r\n          this.currentColumn = this.tableRows.get(this.currentRow).columns.length-1;\r\n        } else {\r\n          this.currentColumn--;\r\n        }\r\n        this.setTabIndexAndFocusOnColumn();\r\n        break;\r\n      case 'ArrowUp':\r\n      case 'Up':\r\n        // Only move up and down if we are in table\r\n\r\n\r\n        event.preventDefault();\r\n        this.resetTabIndexOnColumn();\r\n        if (this.currentRow === 0) {\r\n          this.currentRow = this.tableRows.length-1;\r\n        } else {\r\n          this.currentRow--;\r\n        }\r\n        this.setTabIndexAndFocusOnColumn();\r\n        break;\r\n      case 'ArrowDown':\r\n      case 'Down':\r\n        event.preventDefault();\r\n        this.resetTabIndexOnColumn();\r\n        if (this.currentRow === this.tableRows.length-1) {\r\n          this.currentRow = 0;\r\n        } else {\r\n          this.currentRow++;\r\n        }\r\n        this.setTabIndexAndFocusOnColumn();\r\n        break;\r\n      case 'Home':\r\n        event.preventDefault();\r\n        if (event.ctrlKey) {\r\n          this.resetTabIndexOnColumn();\r\n          this.currentColumn = 0;\r\n          this.currentRow = 0;\r\n\r\n          this.setTabIndexAndFocusOnColumn();\r\n        } else {\r\n          this.resetTabIndexOnColumn();\r\n          this.currentColumn = 0;\r\n\r\n          this.setTabIndexAndFocusOnColumn();\r\n        }\r\n        break;\r\n      case 'End':\r\n        event.preventDefault();\r\n        if (event.ctrlKey) {\r\n          this.resetTabIndexOnColumn();\r\n\r\n          this.currentColumn = this.tableRows.get(this.tableRows.length-1).columns.length-1;\r\n          this.currentRow = this.tableRows.length-1;\r\n\r\n          this.setTabIndexAndFocusOnColumn();\r\n        } else {\r\n          this.resetTabIndexOnColumn();\r\n          this.currentColumn = this.tableRows.get(this.currentRow).columns.length-1;\r\n          this.setTabIndexAndFocusOnColumn();\r\n        }\r\n        break;\r\n    }\r\n  }\r\n\r\n  @HostListener('window:resize') setColumnWidths() {\r\n    const el = this.elRef.nativeElement;\r\n    const row = el.querySelector('vgr-editable-table-row');\r\n    if (row) {\r\n      const rowColumns = Array.from(row.querySelectorAll('vgr-editable-table-column'));\r\n\r\n      const headerColumns = Array.from(el.querySelectorAll('vgr-editable-table-header-column'));\r\n\r\n      const headerColumnWidth = this.tableHeader.headerColumns.map(element => element.width);\r\n      headerColumns.pop(); // dont want to set a size on the last column that can brake the alignments\r\n      headerColumns.forEach((element: HTMLElement, index) => {\r\n        element.style.width = this.tableHeader.headerColumns.get(index).width;\r\n      });\r\n\r\n      rowColumns.forEach((column: HTMLElement, index) => {\r\n        column.style.width = headerColumnWidth[index];\r\n      })\r\n\r\n       this.calculateTableHeight();\r\n    }\r\n  }\r\n\r\n  constructor(public elRef: ElementRef, private editableTableService: EditableTableService) {\r\n    const uniqeId = Guid.newGuid();\r\n    // const index = Array.from(this.elRef.nativeElement.parentNode.children).indexOf(this.elRef.nativeElement);\r\n    this.id = `${uniqeId}`;\r\n  }\r\n\r\n  private ngUnsubscribe: any = new Subject();\r\n  ngAfterViewInit() {\r\n    setTimeout(() => this.setColumnWidths(), 100);\r\n\r\n  }\r\n\r\n\r\n  calculateTableHeight() {\r\n    let newHeight: any;\r\n    if (this.height === '') {\r\n      return;\r\n    } else if (this.height.includes('px')) {\r\n      const numericHeight = +this.height.replace('px', '');\r\n\r\n      newHeight = numericHeight-this.header.nativeElement.offsetHeight;\r\n      this.calculatedHeight = newHeight + 'px'\r\n    } else {\r\n\r\n      console.log('height är felaktigt satt!')\r\n    }\r\n\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this.tableRows.forEach(row => row.parentId = this.id);\r\n    if (this.tableHeader) {\r\n      this.tableHeader?.headerColumns?.forEach(column => column.parentId = this.id)\r\n\r\n      this.tableHeader.sortChanged\r\n      .pipe(takeUntil(this.ngUnsubscribe)).subscribe((args: SortChangedArgs) => this.sortChanged.emit(args));\r\n      }\r\n\r\n    this.tableRows.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe((rows) => {\r\n      setTimeout(() => {\r\n        const el = this.elRef.nativeElement;\r\n        const row = el.querySelector('vgr-editable-table-row');\r\n        if (row) {\r\n          const rowColumns = Array.from(row.querySelectorAll('vgr-editable-table-column'));\r\n          const headerColumnWidth = this.tableHeader.headerColumns.map(element => element.width);\r\n          rowColumns.forEach((column: HTMLElement, index) => {\r\n            column.style.width = headerColumnWidth[index];\r\n          })\r\n\r\n          this.setAlignment();\r\n          rows.get(rows.length-1).editMode = this.inEditmode;\r\n        }\r\n\r\n      });\r\n\r\n\r\n    });\r\n\r\n\r\n    if (this.tableRows.length > 0) {\r\n     setTimeout(() => {\r\n      this.tableRows.get(0).columns.get(0).tabIndex = 0;\r\n      this.tableRows.get(0).editMode = this.inEditmode;\r\n     });\r\n    }\r\n\r\n    this.currentColumn = 0;\r\n    this.currentRow = 0;\r\n\r\n    setTimeout(() => {\r\n      this.setAlignment();\r\n    });\r\n  }\r\n\r\n\r\n  setAlignment() {\r\n    this.tableRows.forEach((row) => {\r\n      for (let i = 0; i < row.columns.length; i++) {\r\n        row.columns.get(i).align = this.tableHeader.headerColumns.get(i).align;\r\n        row.columns.get(i).headerId = this.tableHeader.headerColumns.get(i).id;\r\n      }\r\n    });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next();\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n}\r\n","<table class=\"data-input\" aria-colcount=\"3\" [ngStyle]=\"{'height': height }\">\r\n  <thead #tableHeaderContainer>\r\n    <tr>\r\n      <div class=\"editable-table-header\">\r\n        <ng-content select=\"vgr-editable-table-header\"></ng-content>\r\n      </div>\r\n    </tr>\r\n  </thead>\r\n  <tbody>\r\n    @if (height !== '') {\r\n      <div style=\"position: relative; border-bottom: 1px solid #97939f; border-left: 1px solid #97939f; border-right: 1px solid #97939f;\" [ngStyle]=\"{'height': calculatedHeight }\" >\r\n        <div class=\"editable-table__menu__dimmer editable-table__menu__dimmer-top\"></div>\r\n        <ng-scrollbar [visibility]=\"'native'\" [appearance]=\"'compact'\" class=\"scroll-container\" [autoHeightDisabled]=\"false\">\r\n          <div *ngTemplateOutlet=\"rowContent\"></div>\r\n        </ng-scrollbar>\r\n        <div class=\"editable-table__menu__dimmer editable-table__menu__dimmer-bottom\"></div>\r\n      </div>\r\n    }\r\n\r\n    @if (height === '') {\r\n      <div style=\"position: relative;\" >\r\n        <div *ngTemplateOutlet=\"rowContent\"></div>\r\n      </div>\r\n    }\r\n\r\n    <ng-template #rowContent>\r\n      <div class=\"list-wrapper\">\r\n        <ng-content select=\"vgr-editable-table-row\" ></ng-content>\r\n      </div>\r\n    </ng-template>\r\n\r\n\r\n  </tbody>\r\n</table>\r\n","import { AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, forwardRef, Host, HostBinding, Input, OnChanges, OnDestroy, OnInit, Optional, Output, QueryList, SimpleChanges, SkipSelf, ChangeDetectionStrategy } from '@angular/core';\r\nimport { AbstractControl, ControlContainer, ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Guid } from '../../utils/guid';\r\nimport { CheckboxComponent } from './checkbox.component';\r\n\r\n@Component({\r\n    selector: 'vgr-checkbox-group',\r\n    templateUrl: './checkbox-group.component.html',\r\n    styleUrls: ['./checkbox-group.component.scss'],\r\n    providers: [{\r\n            provide: NG_VALUE_ACCESSOR,\r\n            useExisting: forwardRef(() => CheckboxGroupComponent),\r\n            multi: true\r\n        }],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class CheckboxGroupComponent implements ControlValueAccessor, AfterContentInit, OnChanges, OnDestroy {\r\n  _disabled: boolean;\r\n  @Input() showValidation = true;\r\n\r\n  @Input() @HostBinding('class.disabled') set disabled(val) {\r\n    this._disabled = val;\r\n    if (val !== undefined) {\r\n      this.setGroupDisabledOverride(val);\r\n    }\r\n  }\r\n  @Input() @HostBinding('class.vertical') vertical = false;\r\n  @Input() formControlName?: string;\r\n  @Input() required = false;\r\n\r\n  @Output() selectedChanged: EventEmitter<CheckboxComponent> = new EventEmitter<CheckboxComponent>();\r\n  @ContentChildren(CheckboxComponent) items: QueryList<CheckboxComponent>;\r\n\r\n  ngUnsubscribeItems: any = new Subject();\r\n\r\n  validationErrorMessage = 'Obligatoriskt';\r\n  elementId: string;\r\n  _value: string[] = [];\r\n\r\n\r\n  public control: AbstractControl;\r\n\r\n  constructor(@Host() @SkipSelf() @Optional() private controlContainer: ControlContainer, private elementRef: ElementRef) {\r\n    this.elementId = Guid.newGuid();\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    this.setGroupDisabledOverride(this._disabled);\r\n\r\n\r\n\r\n    // Subscribe on changes\r\n    this.items.forEach(item => {\r\n      item.checkedChanged.pipe(takeUntil(this.ngUnsubscribeItems)).subscribe(($event: any) => {\r\n        const values = this.items.filter((item: any) => item.checked).map(i => i.label);\r\n        this.selectedChanged.emit(item);\r\n        this.onChange( values);\r\n\r\n      });\r\n    });\r\n\r\n    setTimeout(() => {\r\n      const values = this.items.filter(item => item.checked === true).map(i => i.label);\r\n      this.onChange( values);\r\n    }, 20);\r\n  };\r\n\r\n\r\n\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribeItems.next();\r\n    this.ngUnsubscribeItems.complete();\r\n  }\r\n\r\n  ngOnChanges(changes): void {\r\n    if (this.formControlName && this.controlContainer) {\r\n      this.control = this.controlContainer.control.get(this.formControlName)\r\n    }\r\n  }\r\n\r\n\r\n  keyDown(event: KeyboardEvent): void {\r\n    if ([' ', 'Spacebar', 'Enter'].includes(event.key)) {\r\n      // this.onClick(event);\r\n      event.preventDefault();\r\n      event.stopPropagation();\r\n    }\r\n  }\r\n\r\n\r\n\r\n  getLabelFromId() {\r\n    // return window.document.getElementById(this.idForLabel)\r\n    let labels = document.getElementsByTagName('label');\r\n    for (var i = 0; i < labels.length; i++) {\r\n      if (labels[i].htmlFor == this.elementId)\r\n        return labels[i];\r\n    }\r\n  }\r\n\r\n\r\n  get errorActive() {\r\n    if (this.disabled) {\r\n      return false;\r\n    }\r\n\r\n    if (this.showValidation) {\r\n      if (this.required && !this.items.some(x => x.checked)) {\r\n        this.validationErrorMessage = 'Obligatoriskt'\r\n        return true;\r\n      } else if (this.control) {\r\n        const classes = this.elementRef.nativeElement.classList;\r\n        return classes.contains('ng-invalid');\r\n      } else {\r\n        return false;\r\n      }\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  setGroupDisabledOverride(groupDisabledState: boolean) {\r\n    this.items?.forEach(item => {\r\n      item.groupDisabledOverride = groupDisabledState;\r\n    });\r\n  }\r\n\r\n  onChange(value: any) {\r\n    this._value = value;\r\n\r\n\r\n  }\r\n  onTouch:  (value) => void;\r\n\r\n  onLeave(event) {\r\n\r\n    if ((event.relatedTarget !== null)) {\r\n      return;\r\n    }\r\n    if (this.control) {\r\n      this.control.markAsTouched();\r\n      this.control.markAsDirty();\r\n      if (this.control.updateOn === 'blur') {\r\n\r\n        const values = this.items.filter(item => item.checked).map(i => i.label);\r\n\r\n\r\n        this.control.setValue(values);\r\n      }\r\n\r\n    }\r\n  }\r\n\r\n  writeValue(event: any): void {\r\n      if (event.length === 0) {\r\n        return;\r\n      }\r\n\r\n      if (event) {\r\n        setTimeout(() => {\r\n          event.forEach( checkboxValue => {\r\n            this.items.filter(item => item.label === checkboxValue).map(checked => checked.checked = true);\r\n          })\r\n        }, 10);\r\n\r\n        this._value = event;\r\n      } else { // formcontrol.reset\r\n        this._value = [];\r\n        this.items.forEach(element => {\r\n          element.checked = false;\r\n        });\r\n      }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n     this.onChange = (value: any) => {\r\n      this._value = value;\r\n      fn(value);\r\n    };\r\n  }\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouch = fn;\r\n  }\r\n  setDisabledState?(isDisabled: boolean): void {\r\n    this.disabled = isDisabled;\r\n  }\r\n}\r\n","<div [ngClass]=\"{ 'checkbox-group-validation-error--active': errorActive}\" class=\"checkbox-group\" >\r\n  <div class=\"checkbox-group-validation\" >\r\n    <div\r\n      id=\"checkboxlist\"\r\n      [attr.aria-labelledby]=\"elementId\"\r\n      (keydown)=\"keyDown($event)\" (focusout)=\"onLeave($event)\"\r\n      [attr.aria-disabled]=\"_disabled\"\r\n      tabindex=\"{{_disabled ? 0 : -1}}\"\r\n      role=\"list\"\r\n      [ngClass]=\"{'vertical' : vertical}\"\r\n      [attr.aria-invalid]=\"errorActive\"\r\n      >\r\n      <ng-content select=\"vgr-checkbox\"></ng-content>\r\n    </div>\r\n  </div>\r\n  @if (errorActive) {\r\n    <div [attr.id]=\"elementId\" class=\"checkbox-group-validation_status\" [title]=\"validationErrorMessage\" [attr.aria-live]=\"'assertive'\">\r\n      <vgr-icon icon=\"exclamation-circle\" size=\"sm\" class=\"checkbox-group-validation_status__icon\"></vgr-icon>\r\n      @if (control) {\r\n        <div class=\"checkbox-group-validation_status__message\">{{validationErrorMessage | errorMessage: control.errors : getLabelFromId() : false}}</div>\r\n      }\r\n      @if (!control) {\r\n        <div class=\"checkbox-group-validation_status__message\">{{validationErrorMessage}}</div>\r\n      }\r\n    </div>\r\n  }\r\n</div>\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-selectablelist-header',\r\n    template: '<ng-content select=\"vgr-selectablelist-header-column\"></ng-content>',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class SelectablelistHeaderComponent {\r\n\r\n  constructor() { }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class SelectablelistService {\r\n\r\n  private clickedRowRequestedSource = new Subject<any>();\r\n  private clickedHeaderRequestedSource = new Subject<any>();\r\n\r\n  clickedRowRequested = this.clickedRowRequestedSource.asObservable();\r\n  clickedHeaderRequested = this.clickedHeaderRequestedSource.asObservable();\r\n\r\n  requestRowClicked(row: any) {\r\n    setTimeout(() => {\r\n      this.clickedRowRequestedSource.next(row);\r\n    });\r\n  }\r\n\r\n  headerClicked(header: any) {\r\n    setTimeout(() => {\r\n      this.clickedHeaderRequestedSource.next(header);\r\n    });\r\n  }\r\n}\r\n\r\n","import { Component, OnInit, HostListener, HostBinding, Output, EventEmitter, Input, ElementRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { SelectablelistService } from './selectablelist.service';\r\n\r\n@Component({\r\n    selector: 'vgr-selectablelist-row',\r\n    template: '<ng-content selects=\"vgr-selectablelist-column\"></ng-content>',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class SelectablelistRowComponent implements OnInit {\r\n\r\n  @Output() rowClicked = new EventEmitter();\r\n  @Input() value: any;\r\n  @HostBinding('class.groupheader')\r\n  @Input() groupheader = false;\r\n\r\n  @HostBinding('class.selectable')\r\n  @Input() selectable = true;\r\n\r\n\r\n  @HostBinding('class.selected')\r\n  @HostBinding('attr.aria-selected') selected = false;\r\n  @HostBinding('class.focused') focused = false;\r\n  @HostBinding('attr.role') role = 'option';\r\n  @HostBinding('attr.id') id: string;\r\n\r\n  @HostListener('click') toggleSelected() {\r\n    if (this.groupheader || !this.selectable) {\r\n      this.selected = null;\r\n    } else {\r\n      this.selectablelistService.requestRowClicked(this);\r\n    }\r\n  }\r\n\r\n  constructor(public elem: ElementRef, private selectablelistService: SelectablelistService) { }\r\n\r\n  ngOnInit() {\r\n    const parentid = this.elem.nativeElement.closest('vgr-selectablelist').id;\r\n    const index = Array.from(this.elem.nativeElement.parentNode.children).indexOf(this.elem.nativeElement);\r\n    this.id = `${parentid}-row${index}`;\r\n    if (this.groupheader) {\r\n      this.selected = null;\r\n    } else if (!this.selectable) {\r\n      this.selected = false;\r\n    }\r\n  }\r\n\r\n}\r\n","import {\n  Component,\n  ElementRef,\n  AfterContentInit,\n  HostListener,\n  ContentChildren,\n  QueryList,\n  Input,\n  OnChanges,\n  SimpleChanges,\n  Output,\n  EventEmitter,\n  OnDestroy,\n  HostBinding,\n  ViewChild,\n  ContentChild,\n  ChangeDetectionStrategy\n} from '@angular/core';\r\nimport { SelectablelistHeaderComponent } from './selectablelist.header.component';\r\nimport { SelectablelistRowComponent } from './selectablelist.row.component';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { SelectablelistService } from './selectablelist.service';\r\nimport { GridSortDirection } from '../sort-arrow/sort-arrow.component';\r\nimport { ScrollbarComponent } from '../scrollbar/scrollbar.component';\r\n\r\n@Component({\r\n    selector: 'vgr-selectablelist',\r\n    templateUrl: './selectablelist.component.html',\r\n    styleUrls: ['./selectablelist.component.scss'],\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class SelectablelistComponent implements AfterContentInit, OnChanges, OnDestroy {\r\n\r\n  headersPresent: boolean;\r\n  controlPressed = false;\r\n  focusedRow: number = null;\r\n\r\n  sortOption: { column: number; sortDirection: GridSortDirection } = {\r\n    column: null,\r\n    sortDirection: GridSortDirection.None,\r\n  };\r\n  sortDirection = GridSortDirection;\r\n\r\n  @HostBinding('attr.aria-activedescendant') activeDecendant = null;\r\n  @HostBinding('attr.role') role = 'listbox';\r\n  @HostBinding('attr.aria-multiselectable') multi = true;\r\n  @HostBinding('attr.tabIndex') tabIndex = 0;\r\n\r\n  @Input() active: boolean;\r\n  @Input() setFirstSelectable: boolean = true;\r\n  @Input() useScrollbar: boolean = true;\r\n  @Input() maxHeight: number;\r\n  @HostBinding('attr.id') @Input() id: string;\r\n  @Output() selectedChanged = new EventEmitter();\r\n\r\n  @ContentChild(SelectablelistHeaderComponent) header: SelectablelistHeaderComponent;\r\n\r\n  @ContentChildren(SelectablelistRowComponent) rows: QueryList<SelectablelistRowComponent>;\r\n\r\n  @ViewChild('scrollWrapper') scrollWrapper;\r\n  @ViewChild('scrollable') scrollable: ScrollbarComponent;\r\n\r\n  private ngUnsubscribe = new Subject();\r\n\r\n  lastSelectedItemIndex: number;\r\n  isClicked: boolean;\r\n  showScrollbar: boolean;\r\n\r\n  @HostListener('keydown', ['$event']) onKeydownHandler(event: KeyboardEvent) {\r\n    this.isClicked = false;\r\n    if (event.repeat) { return; }\r\n    if (event.key === 'ArrowUp' || event.key === 'ArrowDown' || event.key === 'Up' || event.key === 'Down') {\r\n      event.preventDefault();\r\n      let newIndex: number;\r\n      if (event.key === 'ArrowDown' || event.key === 'Down') {\r\n        newIndex = this.focusedRow < this.rows.length - 1 ? this.focusedRow + 1 : 0;\r\n      } else {\r\n        newIndex = this.focusedRow > 0 ? this.focusedRow - 1 : this.rows.length - 1;\r\n      }\r\n      this.focusRow(newIndex);\r\n    } else if (event.key === ' ') {\r\n      event.preventDefault();\r\n      this.changeActiveStatus(this.focusedRow);\r\n    }\r\n  }\r\n\r\n  @HostListener('click', ['$event']) onClick(event) {\r\n    this.isClicked = true;\r\n  }\r\n\r\n  @HostListener('focusin', ['$event']) onCompFocus(event) {\r\n\r\n    if (this.isClicked) {\r\n      // do nothing\r\n      this.isClicked = false;\r\n    } else {\r\n      const selectedRows = this.rows.filter(r => r.selected === true);\r\n      if (selectedRows) {\r\n        this.focusedRow = this.rows.toArray().indexOf(selectedRows[0])\r\n        this.focusRow(this.focusedRow);\r\n      } else {\r\n        this.selectFirstSelectable()\r\n      }\r\n    }\r\n  }\r\n\r\n  @HostListener('focusout', ['$event']) onCompBlur(event) {\r\n    const rows = this.rows.toArray();\r\n    rows.forEach(row => { row.focused = false; });\r\n    // this.focusedRow = null;\r\n    this.activeDecendant = null;\r\n  }\r\n\r\n  @HostListener('window:resize', []) alignColumns() {\r\n    const el = this.elRef.nativeElement;\r\n    const row = el.querySelector('vgr-selectablelist-row');\r\n    if (row) {\r\n      const rowWidths = Array.from(row.querySelectorAll('vgr-selectablelist-column'))\r\n        .map((item: HTMLElement) => item.clientWidth);\r\n\r\n      const headers = Array.from(el.querySelectorAll('vgr-selectablelist-header-column'));\r\n      headers.pop(); // dont want to set a size on the last column that can brake the alignments\r\n      headers.forEach((element: HTMLElement, index) => {\r\n        element.style.width = rowWidths[index] + 'px';\r\n      });\r\n\r\n      setTimeout(() => this.setInternalIds(), 0);\r\n    }\r\n  }\r\n\r\n  constructor(public elRef: ElementRef, private selectablelistService: SelectablelistService) {}\r\n\r\n  ngOnDestroy() {\r\n    this.ngUnsubscribe.next(null);\r\n    this.ngUnsubscribe.complete();\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (!changes.active || this.rows === undefined) {\r\n      return;\r\n    }\r\n\r\n    if (changes.active.firstChange === true) {\r\n      this.selectFirstSelectable();\r\n    }\r\n\r\n    if (changes.active.currentValue === true && changes.active.previousValue === false) {\r\n      if (this.lastSelectedItemIndex !== undefined) {\r\n        this.changeActiveStatus(this.lastSelectedItemIndex, false)\r\n      }\r\n    }\r\n\r\n    if (changes.active.currentValue === false) {\r\n      this.clearSelection();\r\n      this.selectedChanged.emit([]);\r\n    }\r\n  }\r\n\r\n  ngAfterContentInit() {\r\n    this.setScrollbarOnHeightChange();\r\n\r\n    setTimeout(() => this.alignColumns(), 100);\r\n    if (this.header) {\r\n      this.headersPresent = true;\r\n    }\r\n\r\n    this.rows.changes.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {\r\n      setTimeout(() => {\r\n        this.setScrollbarOnHeightChange();\r\n        this.alignColumns()\r\n      }, 100);\r\n    });\r\n\r\n    this.selectablelistService.clickedRowRequested\r\n        .pipe(takeUntil(this.ngUnsubscribe)).subscribe((row: SelectablelistRowComponent) => {\r\n          this.handleRowClicked(row);\r\n        });\r\n\r\n    if (this.active && this.setFirstSelectable) {\r\n      setTimeout(() => {\r\n        this.selectFirstSelectable();\r\n      }, 200);\r\n    }\r\n  }\r\n\r\n  setScrollbarOnHeightChange() {\r\n    if (this.useScrollbar === false) {\r\n      this.showScrollbar = false;\r\n      return;\r\n    }\r\n    // Fix för att ta bort scrollbar om height är mindre än maxheighten för tabellen (244px)\r\n    setTimeout(() => {\r\n      if (this.scrollWrapper.nativeElement.clientHeight < this.maxHeight) {\r\n        this.showScrollbar = false;\r\n      } else {\r\n        this.showScrollbar = true;\r\n      }\r\n    }, 20);\r\n  }\r\n\r\n  // sortColumn(clickedHeader: SelectablelistHeaderColumnComponent) {\r\n  //   const subIndex = clickedHeader.id.lastIndexOf('-') + 1;\r\n  //   const index = +clickedHeader.id.substring(subIndex);\r\n  //   const rowValues = this.rows.toArray();\r\n\r\n  //   this.sortOption.sortDirection =\r\n  //     this.sortOption.sortDirection === GridSortDirection.Ascending &&\r\n  //     this.sortOption.column === index\r\n  //       ? GridSortDirection.Descending\r\n  //       : GridSortDirection.Ascending;\r\n  //   this.sortOption.column = index;\r\n\r\n\r\n  //   console.log('here')\r\n  //   rowValues.sort((a, b) => {\r\n  //   const aElement = a.elem.nativeElement;\r\n  //   const bElement = b.elem.nativeElement;\r\n  //   const aIndex: any = (aElement.children[index] as HTMLElement).innerText.replace(/\\s/g, '').replace(',', '.');\r\n  //   const bIndex: any = (bElement.children[index] as HTMLElement).innerText.replace(/\\s/g, '').replace(',', '.');\r\n  //   const valA = isNaN(aIndex) ? aIndex : parseFloat(aIndex);\r\n  //   const valB = isNaN(bIndex) ? bIndex : parseFloat(bIndex);\r\n  //   return valA > valB ? 1 : valB > valA ? -1 : 0;\r\n  // });\r\n\r\n  // if (this.sortOption.sortDirection === GridSortDirection.Descending) {\r\n  //   rowValues.reverse();\r\n  // }\r\n\r\n  // this.rows.reset(rowValues);\r\n\r\n  //  this.rows = new  QueryList<SelectablelistRowComponent>();\r\n  // this.rows.notifyOnChanges();\r\n  // console.log('in sort: ', this.rows)\r\n\r\n  // }\r\n\r\n\r\n  handleRowClicked(row: SelectablelistRowComponent) {\r\n    const index = this.rows.toArray().indexOf(row);\r\n    this.changeActiveStatus(index);\r\n\r\n  }\r\n\r\n  setInternalIds() {\r\n    this.rows.forEach((row, index) => {\r\n      row.id = `${this.id}-row${index}`;\r\n    });\r\n  }\r\n\r\n  clearSelection() {\r\n    const lastSelectedItem = this.rows?.filter(x => x.selected === true)[0];\r\n    this.lastSelectedItemIndex = this.rows.toArray().indexOf(lastSelectedItem)\r\n    this.rows?.forEach(row => { row.selected = false; row.focused = false; });\r\n  }\r\n\r\n  selectFirstSelectable() {\r\n    const rows = this.rows.toArray();\r\n\r\n    const firstNonHeader = this.rows.filter(row => row.groupheader === false)[0];\r\n    const index = rows.indexOf(firstNonHeader);\r\n    this.changeActiveStatus(index);\r\n  }\r\n\r\n  focusRow(index) {\r\n    const rows = this.rows.toArray();\r\n    if (rows.length === 0) {\r\n      return;\r\n    }\r\n    if (index === -1) {\r\n      return;\r\n    }\r\n\r\n    rows.forEach(row => { row.focused = false; });\r\n    if (index === 0) {\r\n      rows[index].focused = true;\r\n    } else {\r\n      rows[index].focused = !rows[index].focused;\r\n    }\r\n\r\n    this.focusedRow = index;\r\n    this.activeDecendant = rows[index].id;\r\n    if (!this.isRowVisible(this.activeDecendant)) {\r\n      this.scrollable.scrollable.scrollToElement('#' + this.activeDecendant, {duration: 500});\r\n    }\r\n  }\r\n\r\n  isRowVisible(id) {\r\n    const container = this.elRef.nativeElement.querySelector('.ng-scroll-viewport');\r\n    if (!container) {\r\n      return true;\r\n    }\r\n    const element = document.getElementById(id);\r\n\r\n    const cTop = container.scrollTop;\r\n    const cBottom = cTop + container.clientHeight;\r\n\r\n    // Get element properties\r\n    const eTop = element.offsetTop;\r\n    const eBottom = eTop + element.clientHeight;\r\n\r\n    // Check if in view\r\n    return (eTop >= cTop && eBottom <= cBottom);\r\n  }\r\n\r\n  changeActiveStatus(index, setFocus = true) {\r\n    const rows = this.rows.toArray();\r\n    if (rows.length === 0) {\r\n      return;\r\n    }\r\n\r\n    if (index === -1) {\r\n      return;\r\n    }\r\n\r\n    this.clearSelection();\r\n    let selectedRowClickable = true;\r\n    if (rows[index]) {\r\n      selectedRowClickable = (rows[index].groupheader === false); // && rows[index].selectable === true;\r\n    }\r\n\r\n    this.focusedRow = index;\r\n    if (this.focusedRow >= 0 && setFocus) {\r\n      this.focusRow(index);\r\n    }\r\n\r\n\r\n    if (this.active && selectedRowClickable) {\r\n      setTimeout(() => {\r\n        rows[index].selected = true;\r\n        const selected = this.rows.filter(item => item.selected).map(item => item.value);\r\n        this.selectedChanged.emit(selected);\r\n      }, 40);\r\n\r\n    }\r\n  }\r\n\r\n}\r\n","<div class=\"list-header\" [class.hidden]=\"!headersPresent\">\r\n  <ng-content select=\"vgr-selectablelist-header\"></ng-content>\r\n</div>\r\n\r\n<div class=\"scrollbar-container\">\r\n  <vgr-scrollbar #scrollable [ngClass]=\"{'remove-scrollbar': !showScrollbar}\" [maxHeight]=\"maxHeight\">\r\n    <div #scrollWrapper class=\"scroll-wrapper\">\r\n      <div class=\"list-wrapper\" [class.active]=\"active\">\r\n        <ng-content select=\"vgr-selectablelist-row\"></ng-content>\r\n      </div>\r\n    </div>\r\n  </vgr-scrollbar>\r\n</div>\r\n","import { Component, OnInit, HostBinding, Input, HostListener, ElementRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { Guid } from '../../utils/guid';\r\nimport { SelectablelistService } from './selectablelist.service';\r\n@Component({\r\n    selector: 'vgr-selectablelist-header-column',\r\n    template: '<ng-content></ng-content>',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class SelectablelistHeaderColumnComponent implements OnInit {\r\n\r\n  @HostBinding('class.right') @Input() alignRight = false;\r\n  @HostBinding('class.center') @Input() alignCenter = false;\r\n  id: string;\r\n  @HostListener('click') toggleSelected() {\r\n    this.selectablelistService.headerClicked(this);\r\n  }\r\n  constructor(public elem: ElementRef, private selectablelistService: SelectablelistService) {}\r\n\r\n  ngOnInit() {\r\n    const uniqeId = Guid.newGuid();\r\n    const index = Array.from(this.elem.nativeElement.parentNode.children).indexOf(this.elem.nativeElement);\r\n    this.id = `${uniqeId}-header-${index}`;\r\n  }\r\n\r\n\r\n}\r\n","import { Component, Input, HostBinding, ChangeDetectionStrategy } from '@angular/core';\r\n\r\n@Component({\r\n    selector: 'vgr-selectablelist-column',\r\n    template: '<ng-content></ng-content>',\r\n    changeDetection: ChangeDetectionStrategy.Eager,\n    standalone: false\r\n})\r\nexport class SelectablelistColumnComponent {\r\n\r\n  @HostBinding('class.right') @Input() alignRight = false;\r\n  @HostBinding('class.center') @Input() alignCenter = false;\r\n\r\n  constructor() { }\r\n\r\n}\r\n","import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons';\r\nimport { far } from '@fortawesome/free-regular-svg-icons';\r\nimport { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n    imports: [\r\n        FontAwesomeModule\r\n    ]\r\n})\r\n\r\nexport class IconModule {\r\n    constructor(library: FaIconLibrary) {\r\n        // Add an icon to the library for convenient access in other components\r\n        library.addIconPacks(fas, far);\r\n    }\r\n}","// Core\r\nimport { NgModule, LOCALE_ID } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n// Common\r\nimport * as type from './index';\r\n\r\n// Locale registration\r\nimport { registerLocaleData } from '@angular/common';\r\nimport localeSv from '@angular/common/locales/sv';\r\nregisterLocaleData(localeSv);\r\n\r\nimport { NgScrollbarModule } from 'ngx-scrollbar';\r\nimport { IconModule } from './controls/icon/icon.module';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n\r\n\r\n// const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {\r\n//   suppressScrollX: true\r\n// };\r\n\r\n@NgModule({\r\n  imports: [\r\n    FormsModule,\r\n    RouterModule,\r\n    NgScrollbarModule,\r\n    CommonModule,\r\n    ReactiveFormsModule,\r\n    IconModule,\r\n    FontAwesomeModule\r\n  ],\r\n  declarations: [\r\n    type.SafePipe,\r\n    type.TruncatePipe,\r\n    type.FilterPipe,\r\n    type.ErrorMessagePipe,\r\n    type.HsaidPipe,\r\n    type.PersonnummerPipe,\r\n    type.PostnummerPipe,\r\n    type.CurrencyPipe,\r\n    type.ActionPanelComponent,\r\n    type.ButtonComponent,\r\n    type.LockButtonComponent,\r\n    type.SaveCancelComponent,\r\n    type.PageHeaderComponent,\r\n    type.RadioGroupComponent,\r\n    type.HeaderComponent,\r\n    type.LoginInformationComponent,\r\n    type.HeaderMenuComponent,\r\n    type.CheckboxComponent,\r\n    type.ModalPlaceholderComponent,\r\n    type.ModalContentComponent,\r\n    type.ModalHeaderComponent,\r\n    type.ModalFooterComponent,\r\n    type.CardComponent,\r\n    type.CardHeaderComponent,\r\n    type.CardColumnComponent,\r\n    type.CardSectionComponent,\r\n    type.TitleValueComponent,\r\n    type.TitleValueLayoutComponent,\r\n    type.TitleValueHeadingComponent,\r\n    type.TitleValueContainerComponent,\r\n    type.LoaderComponent,\r\n    type.SkeletonLoaderComponent,\r\n    type.PageComponent,\r\n    type.PageBodyComponent,\r\n    type.PageBlockComponent,\r\n    type.SidebarMenuComponent,\r\n    type.MenuComponent,\r\n    type.MenuItemComponent,\r\n    type.MenuSeparatorComponent,\r\n    type.ExpandableDivComponent,\r\n    type.ExpandableDivHeaderComponent,\r\n    type.ExpandableDivContentComponent,\r\n    type.PanelComponent,\r\n    type.PanelContainerComponent,\r\n    type.SubmenuComponent,\r\n    type.CloseButtonComponent,\r\n    type.TableRowColumnComponent,\r\n    type.TableHeaderColumnComponent,\r\n    type.TableHeaderComponent,\r\n    type.TableRowComponent,\r\n    type.TableComponent,\r\n    type.TextareaComponent,\r\n    type.FilterTagComponent,\r\n    type.FilterTagGroupComponent,\r\n    type.RingWithTextComponent,\r\n    type.ScrollToTopComponent,\r\n    type.ToggleButtonComponent,\r\n    type.ToggleButtonGroupComponent,\r\n    type.SearchResultComponent,\r\n    type.DropdownItemComponent,\r\n    type.PaginationComponent,\r\n    type.DropdownSelectComponent,\r\n    type.IconComponent,\r\n    type.DatepickerComponent,\r\n    type.DatepickerItemComponent,\r\n    type.GridComponent,\r\n    type.GridHeaderComponent,\r\n    type.GridHeaderColumnComponent,\r\n    type.GridColumnComponent,\r\n    type.GridRowComponent,\r\n    type.GridContentComponent,\r\n    type.GridHeaderToolbarComponent,\r\n    type.NotificationComponent,\r\n    type.InputComponent,\r\n    type.SortArrowComponent,\r\n    type.TabButtonComponent,\r\n    type.TabButtonGroupComponent,\r\n    type.ComboboxComponent,\r\n    type.ComboboxItemComponent,\r\n    type.ScrollbarComponent,\r\n    type.EditableTableComponent,\r\n    type.EditableTableHeaderColumnComponent,\r\n    type.EditableTableHeaderComponent,\r\n    type.EditableTableRowComponent,\r\n    type.EditableTableColumnComponent,\r\n    type.RadiobuttonGroupComponent,\r\n    type.RadiobuttonItemComponent,\r\n    type.CheckboxGroupComponent,\r\n    type.SelectablelistComponent,\r\n    type.SelectablelistHeaderComponent,\r\n    type.SelectablelistColumnComponent,\r\n    type.SelectablelistHeaderColumnComponent,\r\n    type.SelectablelistRowComponent\r\n  ],\r\n  exports: [\r\n    type.SafePipe,\r\n    type.TruncatePipe,\r\n    type.FilterPipe,\r\n    type.ErrorMessagePipe,\r\n    type.HsaidPipe,\r\n    type.PersonnummerPipe,\r\n    type.PostnummerPipe,\r\n    type.CurrencyPipe,\r\n    type.ActionPanelComponent,\r\n    type.ButtonComponent,\r\n    type.LockButtonComponent,\r\n    type.SaveCancelComponent,\r\n    type.PageHeaderComponent,\r\n    type.RadioGroupComponent,\r\n    type.HeaderComponent,\r\n    type.LoginInformationComponent,\r\n    type.HeaderMenuComponent,\r\n    type.CheckboxComponent,\r\n    type.ModalPlaceholderComponent,\r\n    type.ModalContentComponent,\r\n    type.ModalHeaderComponent,\r\n    type.ModalFooterComponent,\r\n    type.CardComponent,\r\n    type.CardHeaderComponent,\r\n    type.CardColumnComponent,\r\n    type.CardSectionComponent,\r\n    type.TitleValueComponent,\r\n    type.TitleValueLayoutComponent,\r\n    type.TitleValueHeadingComponent,\r\n    type.TitleValueContainerComponent,\r\n    type.LoaderComponent,\r\n    type.SkeletonLoaderComponent,\r\n    type.PageComponent,\r\n    type.PageBodyComponent,\r\n    type.PageBlockComponent,\r\n    type.MenuComponent,\r\n    type.SidebarMenuComponent,\r\n    type.MenuItemComponent,\r\n    type.MenuSeparatorComponent,\r\n    type.ExpandableDivComponent,\r\n    type.ExpandableDivHeaderComponent,\r\n    type.ExpandableDivContentComponent,\r\n    type.PanelComponent,\r\n    type.PanelContainerComponent,\r\n    type.SubmenuComponent,\r\n    type.CloseButtonComponent,\r\n    type.TableComponent,\r\n    type.TableRowColumnComponent,\r\n    type.TableHeaderColumnComponent,\r\n    type.TableHeaderComponent,\r\n    type.TableRowComponent,\r\n    type.TextareaComponent,\r\n    type.FilterTagComponent,\r\n    type.RingWithTextComponent,\r\n    type.FilterTagGroupComponent,\r\n    type.ScrollToTopComponent,\r\n    type.ToggleButtonComponent,\r\n    type.ToggleButtonGroupComponent,\r\n    type.SearchResultComponent,\r\n    type.DropdownItemComponent,\r\n    type.PaginationComponent,\r\n    type.DropdownSelectComponent,\r\n    type.IconComponent,\r\n    type.DatepickerComponent,\r\n    type.DatepickerItemComponent,\r\n    type.GridComponent,\r\n    type.GridHeaderComponent,\r\n    type.GridHeaderColumnComponent,\r\n    type.GridColumnComponent,\r\n    type.GridRowComponent,\r\n    type.GridContentComponent,\r\n    type.GridHeaderToolbarComponent,\r\n    type.NotificationComponent,\r\n    type.InputComponent,\r\n    type.SortArrowComponent,\r\n    type.TabButtonComponent,\r\n    type.TabButtonGroupComponent,\r\n    type.ComboboxComponent,\r\n    type.ComboboxItemComponent,\r\n    type.ScrollbarComponent,\r\n    type.EditableTableComponent,\r\n    type.EditableTableHeaderColumnComponent,\r\n    type.EditableTableHeaderComponent,\r\n    type.EditableTableRowComponent,\r\n    type.EditableTableColumnComponent,\r\n    type.RadiobuttonGroupComponent,\r\n    type.RadiobuttonItemComponent,\r\n    type.CheckboxGroupComponent,\r\n    type.SelectablelistComponent,\r\n    type.SelectablelistHeaderComponent,\r\n    type.SelectablelistColumnComponent,\r\n    type.SelectablelistHeaderColumnComponent,\r\n    type.SelectablelistRowComponent\r\n  ],\r\n  providers: [\r\n    type.ModalService,\r\n    type.BrowserDetector,\r\n    type.TabManagementService,\r\n    type.SelectablelistService,\r\n    type.PaginationManagementService,\r\n    { provide: LOCALE_ID, useValue: 'sv-SE' },\r\n    // {\r\n    //   provide: PERFECT_SCROLLBAR_CONFIG,\r\n    //   useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG\r\n    // }\r\n  ]\r\n})\r\nexport class KomponentkartanModule {\r\n  constructor() { }\r\n}\r\n","/*\r\n * Public API Surface of my-lib\r\n */\r\nexport * from './lib/komponentkartan.module';\r\nexport * from './lib/index';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i2.IconComponent","i2.CloseButtonComponent","i1","i3.IconComponent","i2.LoaderComponent","i4.ErrorMessagePipe","i1.ButtonComponent","i2.LockButtonComponent","i1.ModalService","i1.RingWithTextComponent","i2.LoginInformationComponent","i1.ScrollbarComponent","i1.PageHeaderHeightService","i1.IconComponent","i1.TableComponent","i2.ScrollbarComponent","i1.TabManagementService","i1.PaginationManagementService","_defaultCompare","i3.ButtonComponent","i4.IconComponent","i5.InputComponent","i6.ScrollbarComponent","i7.TruncatePipe","i8.ErrorMessagePipe","i4.DatepickerItemComponent","i5.ErrorMessagePipe","i4.ScrollbarComponent","i5.TruncatePipe","i6.ErrorMessagePipe","i1.SortArrowComponent","i1.GridService","i2.GridService","i3","i4.LoaderComponent","i5.PaginationComponent","i1.EditableTableService","i2.SortArrowComponent","takeUntil","i1.SelectablelistService","i3.ScrollbarComponent","i1.SafePipe","i2.TruncatePipe","i3.FilterPipe","i5.HsaidPipe","i6.PersonnummerPipe","i7.PostnummerPipe","i8.CurrencyPipe","i9.ActionPanelComponent","i10.ButtonComponent","i11.LockButtonComponent","i12.SaveCancelComponent","i13.PageHeaderComponent","i14.RadioGroupComponent","i15.HeaderComponent","i16.LoginInformationComponent","i17.HeaderMenuComponent","i18.CheckboxComponent","i19.ModalPlaceholderComponent","i20.ModalContentComponent","i21.ModalHeaderComponent","i22.ModalFooterComponent","i23.CardComponent","i24.CardHeaderComponent","i25.CardColumnComponent","i26.CardSectionComponent","i27.TitleValueComponent","i28.TitleValueLayoutComponent","i29.TitleValueHeadingComponent","i30.TitleValueContainerComponent","i31.LoaderComponent","i32.SkeletonLoaderComponent","i33.PageComponent","i34.PageBodyComponent","i35.PageBlockComponent","i37.MenuComponent","i36.SidebarMenuComponent","i38.MenuItemComponent","i39.MenuSeparatorComponent","i40.ExpandableDivComponent","i41.ExpandableDivHeaderComponent","i42.ExpandableDivContentComponent","i43.PanelComponent","i44.PanelContainerComponent","i45.SubmenuComponent","i46.CloseButtonComponent","i51.TableComponent","i47.TableRowColumnComponent","i48.TableHeaderColumnComponent","i49.TableHeaderComponent","i50.TableRowComponent","i52.TextareaComponent","i53.FilterTagComponent","i55.RingWithTextComponent","i54.FilterTagGroupComponent","i56.ScrollToTopComponent","i57.ToggleButtonComponent","i58.ToggleButtonGroupComponent","i59.SearchResultComponent","i60.DropdownItemComponent","i61.PaginationComponent","i62.DropdownSelectComponent","i63.IconComponent","i64.DatepickerComponent","i65.DatepickerItemComponent","i66.GridComponent","i67.GridHeaderComponent","i68.GridHeaderColumnComponent","i69.GridColumnComponent","i70.GridRowComponent","i71.GridContentComponent","i72.GridHeaderToolbarComponent","i73.NotificationComponent","i74.InputComponent","i75.SortArrowComponent","i76.TabButtonComponent","i77.TabButtonGroupComponent","i78.ComboboxComponent","i79.ComboboxItemComponent","i80.ScrollbarComponent","i81.EditableTableComponent","i82.EditableTableHeaderColumnComponent","i83.EditableTableHeaderComponent","i84.EditableTableRowComponent","i85.EditableTableColumnComponent","i86.RadiobuttonGroupComponent","i87.RadiobuttonItemComponent","i88.CheckboxGroupComponent","i89.SelectablelistComponent","i90.SelectablelistHeaderComponent","i91.SelectablelistColumnComponent","i92.SelectablelistHeaderColumnComponent","i93.SelectablelistRowComponent","type.ModalService","type.BrowserDetector","type.TabManagementService","type.SelectablelistService","type.PaginationManagementService","type.SafePipe","type.TruncatePipe","type.FilterPipe","type.ErrorMessagePipe","type.HsaidPipe","type.PersonnummerPipe","type.PostnummerPipe","type.CurrencyPipe","type.ActionPanelComponent","type.ButtonComponent","type.LockButtonComponent","type.SaveCancelComponent","type.PageHeaderComponent","type.RadioGroupComponent","type.HeaderComponent","type.LoginInformationComponent","type.HeaderMenuComponent","type.CheckboxComponent","type.ModalPlaceholderComponent","type.ModalContentComponent","type.ModalHeaderComponent","type.ModalFooterComponent","type.CardComponent","type.CardHeaderComponent","type.CardColumnComponent","type.CardSectionComponent","type.TitleValueComponent","type.TitleValueLayoutComponent","type.TitleValueHeadingComponent","type.TitleValueContainerComponent","type.LoaderComponent","type.SkeletonLoaderComponent","type.PageComponent","type.PageBodyComponent","type.PageBlockComponent","type.SidebarMenuComponent","type.MenuComponent","type.MenuItemComponent","type.MenuSeparatorComponent","type.ExpandableDivComponent","type.ExpandableDivHeaderComponent","type.ExpandableDivContentComponent","type.PanelComponent","type.PanelContainerComponent","type.SubmenuComponent","type.CloseButtonComponent","type.TableRowColumnComponent","type.TableHeaderColumnComponent","type.TableHeaderComponent","type.TableRowComponent","type.TableComponent","type.TextareaComponent","type.FilterTagComponent","type.FilterTagGroupComponent","type.RingWithTextComponent","type.ScrollToTopComponent","type.ToggleButtonComponent","type.ToggleButtonGroupComponent","type.SearchResultComponent","type.DropdownItemComponent","type.PaginationComponent","type.DropdownSelectComponent","type.IconComponent","type.DatepickerComponent","type.DatepickerItemComponent","type.GridComponent","type.GridHeaderComponent","type.GridHeaderColumnComponent","type.GridColumnComponent","type.GridRowComponent","type.GridContentComponent","type.GridHeaderToolbarComponent","type.NotificationComponent","type.InputComponent","type.SortArrowComponent","type.TabButtonComponent","type.TabButtonGroupComponent","type.ComboboxComponent","type.ComboboxItemComponent","type.ScrollbarComponent","type.EditableTableComponent","type.EditableTableHeaderColumnComponent","type.EditableTableHeaderComponent","type.EditableTableRowComponent","type.EditableTableColumnComponent","type.RadiobuttonGroupComponent","type.RadiobuttonItemComponent","type.CheckboxGroupComponent","type.SelectablelistComponent","type.SelectablelistHeaderComponent","type.SelectablelistColumnComponent","type.SelectablelistHeaderColumnComponent","type.SelectablelistRowComponent"],"mappings":"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"}