{"version":3,"file":"indice-ng-components.mjs","sources":["../../../projects/ng-components/src/lib/directives/click-outside.directive.ts","../../../projects/ng-components/src/lib/controls/drop-down-menu/drop-down-menu.component.ts","../../../projects/ng-components/src/lib/controls/drop-down-menu/drop-down-menu.component.html","../../../projects/ng-components/src/lib/icons.ts","../../../projects/ng-components/src/lib/types.ts","../../../projects/ng-components/src/lib/controls/pager/pager.component.ts","../../../projects/ng-components/src/lib/controls/pager/pager.component.html","../../../projects/ng-components/src/lib/controls/breadcrumb/breadcrumb-item.ts","../../../projects/ng-components/src/lib/tokens.ts","../../../projects/ng-components/src/lib/services/utilities.service.ts","../../../projects/ng-components/src/lib/services/breadcrumb.service.ts","../../../projects/ng-components/src/lib/controls/breadcrumb/breadcrumb.component.ts","../../../projects/ng-components/src/lib/controls/breadcrumb/breadcrumb.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-column.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-tile.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-details-section.component.ts","../../../projects/ng-components/src/lib/controls/advanced-search/models.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.html","../../../projects/ng-components/src/lib/controls/advanced-search/advanced-search.component.ts","../../../projects/ng-components/src/lib/controls/advanced-search/advanced-search.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.html","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.ts","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.html","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.html","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.ts","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.html","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.ts","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.html","../../../projects/ng-components/src/lib/services/toaster.service.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.html","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.html","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.ts","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.html","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.ts","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.html","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.ts","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.html","../../../projects/ng-components/src/lib/controls/nav-links-list/nav-links-list.component.ts","../../../projects/ng-components/src/lib/controls/nav-links-list/nav-links-list.component.html","../../../projects/ng-components/src/lib/controls/combobox/combobox.component.ts","../../../projects/ng-components/src/lib/controls/combobox/combobox.component.html","../../../projects/ng-components/src/lib/controls/enhanced-combobox/enhanced-combobox.component.ts","../../../projects/ng-components/src/lib/controls/enhanced-combobox/enhanced-combobox.component.html","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-label.directive.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab.component.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-group.component.ts","../../../projects/ng-components/src/lib/controls/tabs/lib-tab-group.component.html","../../../projects/ng-components/src/lib/controls/stepper/lib-step-info.directive.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-step-label.directive.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-step.component.ts","../../../projects/ng-components/src/lib/controls/stepper/types/stepper-type.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-stepper.component.ts","../../../projects/ng-components/src/lib/controls/stepper/lib-stepper.component.html","../../../projects/ng-components/src/lib/controls/stepper/types/step-selected-event.ts","../../../projects/ng-components/src/lib/controls/toggle-button/toggle-button.component.ts","../../../projects/ng-components/src/lib/controls/toggle-button/toggle-button.component.html","../../../projects/ng-components/src/lib/controls/toggle-buttons-list/toggle-buttons-list.component.ts","../../../projects/ng-components/src/lib/controls/toggle-buttons-list/toggle-buttons-list.component.html","../../../projects/ng-components/src/lib/controls/content-tile/content-tile.component.ts","../../../projects/ng-components/src/lib/controls/content-tile/content-tile.component.html","../../../projects/ng-components/src/lib/controls/stats-grid/stats-grid.component.ts","../../../projects/ng-components/src/lib/controls/stats-grid/stats-grid.component.html","../../../projects/ng-components/src/lib/controls/progress-bar/progress-bar.component.ts","../../../projects/ng-components/src/lib/controls/progress-bar/progress-bar.component.html","../../../projects/ng-components/src/lib/directives/dynamic-component-host.directive.ts","../../../projects/ng-components/src/lib/services/component-loader/content-ref.class.ts","../../../projects/ng-components/src/lib/services/component-loader/component-loader.class.ts","../../../projects/ng-components/src/lib/services/component-loader/component-loader.factory.ts","../../../projects/ng-components/src/lib/services/user-settings.service.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar/shell-sidebar.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar/shell-sidebar.component.html","../../../projects/ng-components/src/lib/controls/language-selection/language-selection.component.ts","../../../projects/ng-components/src/lib/controls/language-selection/language-selection.component.html","../../../projects/ng-components/src/lib/controls/notifications-indicator/notifications-indicator.component.ts","../../../projects/ng-components/src/lib/controls/notifications-indicator/notifications-indicator.component.html","../../../projects/ng-components/src/lib/controls/user-profile-menu/user-profile-menu.component.ts","../../../projects/ng-components/src/lib/controls/user-profile-menu/user-profile-menu.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.html","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.html","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.html","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.html","../../../projects/ng-components/src/lib/pages/auth/auth-renew/auth-renew.component.ts","../../../projects/ng-components/src/lib/pages/auth/logged-out/logged-out.component.ts","../../../projects/ng-components/src/lib/pages/auth/logged-out/logged-out.component.html","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.ts","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.html","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.ts","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.html","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.ts","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.html","../../../projects/ng-components/src/lib/pipes/address.pipe.ts","../../../projects/ng-components/src/lib/pipes/duration-format.pipe.ts","../../../projects/ng-components/src/lib/pipes/short-number.pipe.ts","../../../projects/ng-components/src/lib/helpers/base-list.component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-styles.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-backdrop-component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-options.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-container-component.ts","../../../projects/ng-components/src/lib/services/modal-service/modal.class.ts","../../../projects/ng-components/src/lib/services/modal-service/modal-service.ts","../../../projects/ng-components/src/lib/ng-components.module.ts","../../../projects/ng-components/src/public-api.ts","../../../projects/ng-components/src/indice-ng-components.ts"],"sourcesContent":["//\n// https://github.com/arkon/ng-click-outside\n// the project is inactive - so imoved the directive code in our project\n//\nimport {\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  PLATFORM_ID,\n  SimpleChanges,\n  NgZone,\n} from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\n\n// tslint:disable-next-line:directive-selector\n@Directive({\n    selector: '[clickOutside]',\n    standalone: false\n})\nexport class ClickOutsideDirective implements OnInit, OnChanges, OnDestroy {\n\n  @Input() clickOutsideEnabled = true;\n\n  @Input() attachOutsideOnClick = false;\n  @Input() delayClickOutsideInit = false;\n  @Input() emitOnBlur = false;\n\n  @Input() exclude = '';\n  @Input() excludeBeforeClick = false;\n\n  @Input() clickOutsideEvents = '';\n\n  @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\n\n  // tslint:disable-next-line:variable-name\n  private _nodesExcluded: Array<HTMLElement> = [];\n  // tslint:disable-next-line:variable-name\n  private _events: Array<string> = ['click'];\n\n  constructor(\n    // tslint:disable-next-line:variable-name\n    private _el: ElementRef,\n    // tslint:disable-next-line:variable-name\n    private _ngZone: NgZone,\n    @Inject(PLATFORM_ID) private platformId: any) {\n    this._initOnClickBody = this._initOnClickBody.bind(this);\n    this._onClickBody = this._onClickBody.bind(this);\n    this._onWindowBlur = this._onWindowBlur.bind(this);\n  }\n\n  ngOnInit(): void {\n    if (!isPlatformBrowser(this.platformId)) { return; }\n\n    this._init();\n  }\n\n  ngOnDestroy(): void {\n    if (!isPlatformBrowser(this.platformId)) { return; }\n\n    this._removeClickOutsideListener();\n    this._removeAttachOutsideOnClickListener();\n    this._removeWindowBlurListener();\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (!isPlatformBrowser(this.platformId)) { return; }\n\n    // tslint:disable-next-line:no-string-literal\n    if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\n      this._init();\n    }\n  }\n\n  private _init(): void {\n    if (this.clickOutsideEvents !== '') {\n      this._events = this.clickOutsideEvents.split(',').map(e => e.trim());\n    }\n\n    this._excludeCheck();\n\n    if (this.attachOutsideOnClick) {\n      this._initAttachOutsideOnClickListener();\n    } else {\n      this._initOnClickBody();\n    }\n\n    if (this.emitOnBlur) {\n      this._initWindowBlurListener();\n    }\n  }\n\n  private _initOnClickBody(): void {\n    if (this.delayClickOutsideInit) {\n      setTimeout(this._initClickOutsideListener.bind(this));\n    } else {\n      this._initClickOutsideListener();\n    }\n  }\n\n  private _excludeCheck(): void {\n    if (this.exclude) {\n      try {\n        const nodes = Array.from(document.querySelectorAll(this.exclude)) as Array<HTMLElement>;\n        if (nodes) {\n          this._nodesExcluded = nodes;\n        }\n      } catch (err) {\n        console.error('[ng-click-outside] Check your exclude selector syntax.', err);\n      }\n    }\n  }\n\n  private _onClickBody(ev: Event): void {\n    if (!this.clickOutsideEnabled) { return; }\n\n    if (this.excludeBeforeClick) {\n      this._excludeCheck();\n    }\n\n    if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {\n      this._emit(ev);\n\n      if (this.attachOutsideOnClick) {\n        this._removeClickOutsideListener();\n      }\n    }\n  }\n\n  /**\n   * Resolves problem with outside click on iframe\n   * @see https://github.com/arkon/ng-click-outside/issues/32\n   */\n  private _onWindowBlur(ev: Event): void {\n    setTimeout(() => {\n      if (!document.hidden) {\n        this._emit(ev);\n      }\n    });\n  }\n\n  private _emit(ev: Event): void {\n    if (!this.clickOutsideEnabled) { return; }\n\n    this._ngZone.run(() => this.clickOutside.emit(ev));\n  }\n\n  private _shouldExclude(target: any): boolean {\n    // tslint:disable-next-line:prefer-const\n    for (let excludedNode of this._nodesExcluded) {\n      if (excludedNode.contains(target)) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  private _initClickOutsideListener(): void {\n    this._ngZone.runOutsideAngular(() => {\n      this._events.forEach(e => document.addEventListener(e, this._onClickBody));\n    });\n  }\n\n  private _removeClickOutsideListener(): void {\n    this._ngZone.runOutsideAngular(() => {\n      this._events.forEach(e => document.removeEventListener(e, this._onClickBody));\n    });\n  }\n\n  private _initAttachOutsideOnClickListener(): void {\n    this._ngZone.runOutsideAngular(() => {\n      this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));\n    });\n  }\n\n  private _removeAttachOutsideOnClickListener(): void {\n    this._ngZone.runOutsideAngular(() => {\n      this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));\n    });\n  }\n\n  private _initWindowBlurListener(): void {\n    this._ngZone.runOutsideAngular(() => {\n      window.addEventListener('blur', this._onWindowBlur);\n    });\n  }\n\n  private _removeWindowBlurListener(): void {\n    this._ngZone.runOutsideAngular(() => {\n      window.removeEventListener('blur', this._onWindowBlur);\n    });\n  }\n}\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { MenuOption } from '../../types';\n\n@Component({\n    // tslint:disable-next-line:component-selector\n    selector: 'lib-drop-down-menu',\n    templateUrl: './drop-down-menu.component.html',\n    standalone: false\n})\nexport class DropDownMenuComponent implements OnInit, OnChanges {\n  @Input() options: MenuOption[] | undefined = [];\n  // tslint:disable-next-line:no-input-rename\n  @Input('selected') selectedValue: any | null | undefined = undefined;\n  @Input() multiple = false;\n  @Input() placeholder: string = 'Please select...';\n  @Input('show-icons') showIcons = true;\n\n  private selectedOption$: MenuOption | null = null;\n  public get selectedOption(): MenuOption | null {\n    return this.selectedOption$;\n  }\n  public set selectedOption(option: MenuOption | null) {\n    this.selectedOption$ = option;\n    this.selectedValue = option ? option.value : null;\n    this.expanded = false;\n  }\n\n  @Output() selectedChange: EventEmitter<any> = new EventEmitter<any>();\n  @Output() selectedChanged: EventEmitter<any> = new EventEmitter<any>();\n\n  private expanded$ = false;\n  public get expanded(): boolean {\n    return this.expanded$;\n  }\n  public set expanded(value: boolean) {\n    this.expanded$ = value;\n  }\n  constructor() {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (this.options && this.options.length > 0 && this.selectedValue !== null && this.selectedValue !== undefined) {\n      this.selectedOption$ = this.options.filter((o) => o.value === this.selectedValue)[0];\n    }\n  }\n\n  ngOnInit(): void {}\n\n  public isSelected(option: MenuOption): boolean {\n    return option != null && this.selectedValue != null && option.value === this.selectedValue;\n  }\n\n  public onClickOutside($event: any): void {\n    this.expanded = false;\n  }\n\n  public selectOption(option: MenuOption): void {\n    this.selectedOption = option;\n    this.selectedChange.emit(option.value);\n    this.selectedChanged.emit(option.value);\n  }\n}\n","<div class=\"dropdown-container\" (clickOutside)=\"onClickOutside($event)\">\n  <button type=\"button\" (click)=\"expanded = !expanded\" class=\"dropdown-button\" aria-haspopup=\"listbox\" aria-expanded=\"true\" aria-labelledby=\"listbox-label\">\n    <span class=\"dropdown-selected-text\">\n      <i *ngIf=\"selectedOption?.icon && showIcons\" [class]=\"selectedOption?.icon\" \n          [class.mr-2]=\"selectedOption?.icon\"></i>{{ selectedOption?.text || placeholder }}\n    </span>\n    <span class=\"dropdown-button-icon\">\n      <!-- Heroicon name: solid/selector -->\n      <svg class=\"dropdown-arrow\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n        <path fill-rule=\"evenodd\"\n          d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\"\n          clip-rule=\"evenodd\"/>\n      </svg>\n    </span>\n  </button>\n  <ul title=\"menu\" *ngIf=\"expanded && options && options.length > 0\" class=\"dropdown-ul\" tabindex=\"-1\" role=\"listbox\" aria-labelledby=\"listbox-label\">\n    <ng-container *ngFor=\"let option of options\">\n      <li [class]=\"isSelected(option) ? 'dropdown-li-selected' : 'dropdown-li'\" (click)=\"selectOption(option)\" id=\"listbox-option-0\" role=\"option\">\n        <span [class]=\"isSelected(option) ? 'dropdown-li-selected-text' : 'dropdown-li-text'\">\n          <i *ngIf=\"option.icon && showIcons\" [class]=\"option.icon\" [class.mr-2]=\"option.icon\"></i>{{ option.text }}\n        </span>\n        <span *ngIf=\"isSelected(option)\" class=\"dropdown-li-selected-indicator-container\">\n          <!-- Heroicon name: solid/check -->\n          <svg class=\"dropdown-li-selected-indicator\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n            <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\"/>\n          </svg>\n        </span>\n      </li>\n    </ng-container>\n  </ul>\n</div>\n","export class Icons {\n  // https://uifabricicons.azurewebsites.net/\n  public static Dashboard = `ms-Icon ms-Icon--HomeGroup `;\n  public static Locations = `ms-Icon ms-Icon--MapPin `;\n  public static ChargePoints = `ms-Icon ms-Icon--ChatBot `;\n  public static Transations = `ms-Icon ms-Icon--LightningBolt `;\n  public static Badges = `ms-Icon ms-Icon--IDBadge `;\n\n  public static Information = `ms-Icon ms-Icon--Info`;\n  public static Refresh = `ms-Icon ms-Icon--Refresh`;\n  public static Search = `ms-Icon ms-Icon--Search`;\n  public static Add = `ms-Icon ms-Icon--Add`;\n  public static Delete = `ms-Icon ms-Icon--Delete`;\n  public static SendEmail = `ms-Icon ms-Icon--NewMail`;\n  public static Filter = `ms-Icon ms-Icon--Filter`;\n  public static Export = `ms-Icon ms-Icon--ExcelDocument`;\n  public static Import = `ms-Icon ms-Icon--PeopleAdd`;\n\n  public static TilesView = `ms-Icon ms-Icon--AppIconDefault`;\n  public static TableView = `ms-Icon ms-Icon--Table`;\n  public static MapView = `ms-Icon ms-Icon--MapPin`;\n  public static EntryView = `ms-Icon ms-Icon--EntryView`;\n\n  public static Separator = `ms-Icon ms-Icon--Separator text-white`;\n\n  public static ItemsCount = 'ms-Icon ms-Icon--Boards';\n\n  public static Heart = 'ms-Icon ms-Icon--Heart';\n  public static HeartBroken = 'ms-Icon ms-Icon--HeartBroken';\n  public static DateTime = 'ms-Icon ms-Icon--ReminderTime';\n\n  public static Expand = 'ms-Icon ms-Icon--ChevronDown';\n  public static Collapse = 'ms-Icon ms-Icon--ChevronUp';\n\n  public static SortAsc = 'ms-Icon ms-Icon--Ascending';\n  public static SortDesc = 'ms-Icon ms-Icon--Descending';\n\n  public static Details = ' ms-Icon ms-Icon--AccountActivity';\n\n  public static Messages = ' ms-Icon ms-Icon--Message';\n  public static MessagesUnread = ' ms-Icon ms-Icon--MessageFill';\n\n  public static External = ' ms-Icon ms-Icon--FileSymlink';\n  public static Statistics = ' ms-Icon ms-Icon--BIDashboard';\n}\n","import { Observable } from 'rxjs';\nimport { Icons } from './icons';\nimport { ActivatedRouteSnapshot, Params, Route } from '@angular/router';\n\n\nexport interface IAppNotifications {\n  messages: Observable<IResultSet<NavLink>>;\n  getMessage?: (predicate: (value: any, index: number, obj: any[]) => any) => any | undefined;\n  markMessageRead?: (predicate: (value: any, index: number, obj: any[]) => any) => any | undefined;\n  refresh?: () => void | undefined;\n  inboxAction?: () => void | undefined;\n}\n\nexport interface IAppLanguagesService {\n  options: Observable<MenuOption[]> | undefined;\n  selected?: string;\n  default?: string;\n  setSelected?: (lang: string) => void | undefined;\n}\n\nexport interface IAppLinks {\n  public: Observable<NavLink[]>;\n  main: Observable<NavLink[]>;\n  profile: Observable<NavLink[]>;\n  profileActions: Observable<NavLink[]>;\n  legal: Observable<NavLink[]>;\n  brand: Observable<NavLink[]>;\n  notifications?: Observable<NavLink>;\n}\n\n\nexport class NavLink {\n  constructor(text: string, path: string, exact: boolean = false, external: boolean = false, icon?: string, data?: any, queryParams?: Params) {\n    this.text = text;\n    this.path = path;\n    this.exact = exact;\n    this.external = external;\n    this.icon = icon;\n    this.data = data;\n    this.queryParams = queryParams;\n  }\n  public text: string;\n  public path: string;\n  public exact: boolean;\n  public external: boolean;\n  public icon: string | undefined;\n  public type = 'router';\n  public data: any | undefined;\n  public queryParams: Params | undefined;\n}\n\nexport class ExternalNavLink extends NavLink {\n  constructor(text: string, path: string, openInNewTab?: boolean, icon?: string) {\n    super(text, path, true, openInNewTab, icon ?? Icons.External);\n  }\n  public type = 'external';\n}\n\nexport class FragmentNavLink extends NavLink {\n  constructor(text: string, path: string, icon?: string) {\n    super(text, path, true, true, icon);\n  }\n  public type = 'fragment';\n}\n\nexport class NotificationNavLink extends NavLink {\n  constructor(text: string, path: string, public isRead: boolean, public creationDate?: Date) {\n    super(text, path, true, false, undefined);\n  }\n}\n\nexport class NavLinkSeparator extends NavLink {\n  constructor(text: string, path: string, public isRead: boolean, public creationDate?: Date) {\n    super('', '');\n   }\n   public type = 'separator';\n  }\n\nexport class ViewAction {\n  public type: string;\n  public key: string | null;\n  public param: any;\n  public icon: string;\n  public tooltip: string | null;\n  public text?: string;\n\n  constructor(type: string, key: string | null, param: any, icon: string, tooltip: string | null, text?: string) {\n    this.type = type;\n    this.key = key;\n    this.param = param;\n    this.icon = icon;\n    this.tooltip = tooltip;\n    this.text = text;\n  }\n}\n\nexport class ListViewType {\n  public static Tiles = 'tiles';\n  public static Table = 'table';\n  public static Map = 'map';\n  public static Gallery = 'gallery';\n}\n\nexport class RouterViewAction extends ViewAction {\n  public outlet: string | null = null;\n  public link: string | null = null;\n  constructor(icon: string, link: string, outlet: string | null, tooltip: string | null, text?: string) {\n    super('router-link', null, null, icon, tooltip, text);\n    this.outlet = outlet;\n    this.link = link;\n  }\n}\n\n\nexport class SwitchViewAction extends ViewAction {\n  constructor(view: string, icon: string, tooltip: string | null) {\n    super('switch-view', null, view, icon, tooltip);\n  }\n}\n\nexport interface IResultSet<T> {\n  count: number;\n  items: T[];\n}\n\nexport class HeaderMetaItem {\n  public key: string | null = null;\n  public icon: string | null = null;\n  public text: string | null = null;\n}\n\nexport class MenuOption {\n  constructor(text: string, value: any, description?: string, data?: any, icon?: string) {\n    this.text = text;\n    this.value = value;\n    this.description = description;\n    this.data = data;\n    this.icon = icon;\n  }\n  public text: string;\n  public value: any;\n  public description: string | undefined;\n  public data: any | undefined;\n  public icon: string | undefined;\n}\n\nexport enum PagerPosition {\n  Top = 'top',\n  Bottom = 'bottom',\n  Both = 'both'\n}\n\nexport interface IAddress {\n  id?: string;\n  street?: string | null;\n  streetNumber?: string | null;\n  city?: string | null;\n  region?: string | null;\n  postalCode?: string | null;\n  country?: string | null;\n}\n\nexport interface IShellConfig {\n  appLogo: string;\n  appLogoAlt: string;\n  breadcrumb: boolean;\n  customFooterComponent?: any;\n  customHeaderComponent?: any;\n  fluid: boolean;\n  layout?: ShellLayoutType;\n  showAlertsOnHeader?: boolean;\n  showFooter: boolean;\n  showHeader: boolean;\n  showLangsOnHeader?: boolean;\n  showUserNameOnHeader?: boolean;\n  showPictureOnHeader?: boolean;\n}\n\nexport interface IBreadcrumbLabelProcessor {\n  process(context: BreadcrumbContext): string | Observable<string>;\n}\n\nexport interface BreadcrumbContext {\n  routeSnapshot?: ActivatedRouteSnapshot;\n  route?: Route;\n  defaultValue?: string;\n}\n\nexport enum ShellLayoutType {\n  Stacked = 'Stacked',\n  Sidebar = 'Sidebar'\n}\n\nexport class DefaultShellConfig implements IShellConfig {\n  appLogo = 'https://tailwindui.com/img/logos/workflow-mark.svg?color=white';\n  appLogoAlt = 'your app name here';\n  breadcrumb = false;\n  fluid = false;\n  layout = ShellLayoutType.Stacked;\n  showAlertsOnHeader = false;\n  showFooter = true;\n  showHeader = true;\n  showUserNameOnHeader = false;\n  showPictureOnHeader = true;\n}\n\nexport enum SCREEN_SIZE {\n  XS,\n  SM,\n  MD,\n  LG,\n  XL\n}\n\nexport interface IScreenSize {\n  id: SCREEN_SIZE;\n  name: string;\n  css: string;\n}\n\nexport enum ToastType {\n  Info = 'info',\n  Success = 'success',\n  Error = 'error',\n  Warning = 'warning'\n}\n\nexport const NULL_TOAST = { title: '_____NULL_____' } as Toast;\n\nexport interface Toast {\n  type: ToastType;\n  title: string;\n  body: string;\n  delay: number;\n}\n\nexport enum SidePaneSize {\n  Default = '',\n  Small25 = '25%',\n  Medium50 = '50%',\n  Large75 = '75%',\n  Fullscreen = '100%',\n}\n\nexport enum SidePaneOverlayType {\n  Default = '',\n  None = '-opacity-0',\n  Light = '',\n  Dark = '-opacity-50'\n}\n\n\nexport interface IValidationProblemDetails {\n  type?: string | undefined;\n  title?: string | undefined;\n  status?: number | undefined;\n  detail?: string | undefined;\n  instance?: string | undefined;\n  errors?: { [key: string]: string[]; } | undefined;\n}\n\nexport type UserSettingKey = 'MobileSideBar';\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Icons } from '../../icons';\nimport { MenuOption } from '../../types';\n\n@Component({\n    selector: 'lib-pager',\n    templateUrl: './pager.component.html',\n    standalone: false\n})\nexport class PagerComponent implements OnInit, OnChanges {\n  // BUSY STATE\n  @Input() busy = false;\n  // PAGING\n  @Input() count: number | null = null;\n  @Input() page = 1;\n  // tslint:disable-next-line:no-input-rename\n  @Input('page-size') pageSize = 20;\n  // tslint:disable-next-line:no-input-rename\n  @Input('page-size-options') pageSizeOptions: MenuOption[] = [\n    new MenuOption('10', 10),\n    new MenuOption('20', 20),\n    new MenuOption('30', 30),\n    new MenuOption('50', 50),\n    new MenuOption('100', 100)\n  ];\n  public pages: MenuOption[] = [];\n  @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\n  @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\n  public canPreviousPage = false;\n  public canNextPage = false;\n\n  // SORTING\n  // tslint:disable-next-line:no-input-rename\n  @Input('sort-options') sortOptions: MenuOption[] = [];\n  // tslint:disable-next-line:no-input-rename\n  @Input('sort') sort: string | null = null;\n  // tslint:disable-next-line:no-input-rename\n  @Input('sort-dir') sortdir: string | null = 'desc';\n  @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\n  @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\n  public sortdirIcon = Icons.SortDesc;\n\n  constructor(private router: Router) { }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.calcPages();\n  }\n\n  ngOnInit(): void {\n  }\n\n  private calcPages(): void {\n    this.pages = [];\n    if (this.count && this.count > 0) {\n      const pageCount = this.count / this.pageSize;\n      for (let i = 0; i < pageCount; i++) {\n        this.pages.push(new MenuOption(i + 1 + '', i + 1));\n      }\n    }\n    this.canPreviousPage = this.page > 1;\n    this.canNextPage = this.page < this.pages.length;\n  }\n\n  public nextPage(): void {\n    const next = this.page + 1;\n    this.gotoPage(next);\n  }\n\n  public previousPage(): void {\n    const previous = this.page - 1;\n    this.gotoPage(previous);\n  }\n\n  public gotoPage(page: number): void {\n    this.page = page;\n    this.pageChanged.emit(page);\n    this.calcPages();\n  }\n\n  public pageSizeOptionChanged(pageSize: number): void {\n    this.pageSizeChanged.emit(pageSize);\n    this.calcPages();\n  }\n\n  public pageOptionChanged(page: number): void {\n    this.pageChanged.emit(page);\n    this.calcPages();\n  }\n\n  public sortOptionChanged(sort: string): void {\n    this.sortChanged.emit(sort);\n  }\n\n  public toggleSortdir(): void {\n    let sortdir = 'desc';\n    if (this.sortdir === 'desc') {\n      sortdir = 'asc';\n      this.sortdirIcon = Icons.SortAsc;\n    } else {\n      sortdir = 'desc';\n      this.sortdirIcon = Icons.SortDesc;\n    }\n    this.sortdirChanged.emit(sortdir);\n  }\n\n}\n","<div class=\"pager-container\">\n  <div class=\"pager-container-near\">\n      <ng-content select=\"[pager-near-content]\"></ng-content>\n  </div>\n  <div class=\"pager-container-far\">\n    <div class=\"inline-flex\" *ngIf=\"sortOptions && sortOptions.length > 0\">\n      <lib-drop-down-menu [options]=\"sortOptions\" [selected]=\"sort\" (selectedChanged)=\"sortOptionChanged($event)\"></lib-drop-down-menu>\n      <button (click)=\"toggleSortdir()\" [disabled]=\"!sort || busy\" class=\"pager-icon-button\">\n        <span class=\"sr-only\">sort direction</span>\n        <span class=\"inline-block relative\">\n          <i [class]=\"sortdirIcon\"></i>\n        </span>\n      </button>\n    </div>\n    <div class=\"pager-pages-container\">\n      <lib-drop-down-menu [options]=\"pageSizeOptions\" [selected]=\"pageSize\" (selectedChanged)=\"pageSizeOptionChanged($event)\"></lib-drop-down-menu>\n      <div class=\"mx-1\">\n        <button [disabled]=\"!canPreviousPage || busy\"  (click)=\"previousPage()\"\n                class=\"pager-arrow-button-left\">\n          <span class=\"sr-only\">Previous</span>\n          <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n            <path fill-rule=\"evenodd\" d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\n          </svg>\n        </button>\n        <button type=\"button\"\n                [disabled]=\"!canNextPage || busy\"  (click)=\"nextPage()\"\n                class=\"pager-arrow-button-right\">\n          <span class=\"sr-only\">Next</span>\n          <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n            <path fill-rule=\"evenodd\" d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" clip-rule=\"evenodd\" />\n          </svg>\n        </button>\n      </div>\n      <lib-drop-down-menu *ngIf=\"false && (pages && pages.length > 0)\" [options]=\"pages\" [selected]=\"page\" (selectedChanged)=\"pageOptionChanged($event)\"></lib-drop-down-menu>\n    </div>\n  </div>\n</div>\n","import { Observable } from \"rxjs\";\n\nexport class BreadcrumbItem {\n    constructor(public title?: string | Observable<string>, public url?: string) {\n        this.level = 0;\n    }\n\n    public level: number;\n\n    public get urlSegments(): string[] | undefined {\n        if (this.url) {\n            return this.url?.split('/').filter(x => x !== '');\n        }\n        return undefined;\n    }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { IAppLinks, IAppLanguagesService, IAppNotifications, IShellConfig, IBreadcrumbLabelProcessor } from './types';\nimport { LibStepperComponent } from './controls/stepper/lib-stepper.component';\nimport { LibTabGroupComponent } from './controls/tabs/lib-tab-group.component';\n\nexport const APP_LANGUAGES = new InjectionToken<IAppLanguagesService>('APP_LANGUAGES');\nexport const APP_LINKS = new InjectionToken<IAppLinks>('APP_LINKS');\nexport const APP_NOTIFICATIONS = new InjectionToken<IAppNotifications>('APP_NOTIFICATIONS');\nexport const LIBSTEPPER_ACCESSOR = new InjectionToken<LibStepperComponent>('LibStepperAccessor');\nexport const LIBTABGROUP_ACCESSOR = new InjectionToken<LibTabGroupComponent>('LibTabGroupAccessor');\nexport const SHELL_CONFIG = new InjectionToken<IShellConfig>('SHELL_CONFIG');\nexport const BREADCRUMB_LABEL_RESOLVER = new InjectionToken<IBreadcrumbLabelProcessor>('BREADCRUMB_LABEL_PROCESSOR');\n","import { Injectable } from '@angular/core';\nimport { IValidationProblemDetails } from '../types';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UtilitiesService {\n  constructor() { }\n\n  public problemDetails?: IValidationProblemDetails;\n\n  public get validationErrors(): string[] {\n    const messages: string[] = [];\n    const errors = this.problemDetails && this.problemDetails.errors;\n    for (const property in errors) {\n      if (property) {\n        const propertyMessages = errors[property];\n        propertyMessages.forEach((message: string) => {\n          messages.push(message);\n        });\n      } else {\n        Object.values(errors || {}).forEach(message => {\n          message.forEach(x => {\n            messages.push(x);\n          });\n        });\n      }\n    }\n    return messages;\n  }\n\n  public getValidationProblemDetails(problemDetails: IValidationProblemDetails): string[] {\n    this.problemDetails = problemDetails;\n    if (this.validationErrors.length === 0 && this.problemDetails.title) {\n      return new Array<string>(1).fill(this.problemDetails.title);\n    }\n    return this.validationErrors;\n  }\n\n  public getPathFromUrl(url: string): string | undefined {\n    if (!url) {\n      return undefined;\n    }\n    return url.split(/[?#]/)[0];\n  }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { Data, NavigationEnd, Route, Router } from '@angular/router';\n\nimport { Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, filter } from 'rxjs/operators';\nimport { BreadcrumbItem } from '../controls/breadcrumb/breadcrumb-item';\nimport { BREADCRUMB_LABEL_RESOLVER, SHELL_CONFIG } from '../tokens';\nimport { UtilitiesService } from './utilities.service';\nimport { BreadcrumbContext, IBreadcrumbLabelProcessor } from '../types';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class BreadcrumbService {\n    private _defaultHome: BreadcrumbItem | undefined;\n    private _breadcrumb$: Subject<BreadcrumbItem[]> = new Subject<BreadcrumbItem[]>();\n\n    constructor(\n        private _router: Router,\n      private _utilities: UtilitiesService,\n      @Optional() @Inject(BREADCRUMB_LABEL_RESOLVER) public breadcrumbLabelResolver?: IBreadcrumbLabelProcessor,\n      @Optional() @Inject(SHELL_CONFIG) public _shellConfig?: any\n    ) {\n        if (_shellConfig?.breadcrumb) {\n            this._defaultHome = this._getDefaultHomeItem();\n            this._router\n                .events\n                .pipe(\n                    filter(event => event instanceof NavigationEnd),\n                    distinctUntilChanged()\n                )\n                .subscribe(_ => {\n                    const breadcrumb = this._buildBreadcrumb();\n                    this._breadcrumb$.next(breadcrumb);\n                });\n        }\n    }\n\n    public breadcrumb: Observable<BreadcrumbItem[]> = this._breadcrumb$.asObservable();\n\n    private _getDefaultHomeItem(): BreadcrumbItem | undefined {\n        const routerConfig = this._router.config;\n        const declaredHomeRoutes = routerConfig.filter((route: Route) => route.data?.breadcrumb?.isHome === true);\n        if (declaredHomeRoutes.length > 1) {\n            throw new Error('You can declare only one route as home.');\n        }\n        let homeRoute: Route | undefined;\n        if (declaredHomeRoutes.length === 1) {\n            homeRoute = declaredHomeRoutes[0];\n        } else {\n            homeRoute = routerConfig.find((route: Route) => route.path === '');\n            if (!homeRoute) {\n                return undefined;\n            }\n            const redirectionUrl = homeRoute.redirectTo;\n            if (!homeRoute?.data?.breadcrumb?.title && redirectionUrl) {\n                homeRoute = routerConfig.find((route: Route) => route.path === redirectionUrl);\n                if (!homeRoute) {\n                    return undefined;\n                }\n            }\n        }\n        return new BreadcrumbItem(this._getRouteTitle(homeRoute), homeRoute.path || '');\n    }\n\n  private _getRouteTitle(route: Route) {\n      if (this.breadcrumbLabelResolver) {\n        const context: BreadcrumbContext = {\n          //will have to change things for additional info from route snapshot\n          route: route\n        };\n          return this.breadcrumbLabelResolver.process(context);\n        }\n      else {\n        return route?.data?.breadcrumb?.title || route.component?.name.replace('Component', '');\n      }\n    }\n\n    private _buildBreadcrumb(): BreadcrumbItem[] {\n        const breadcrumb: BreadcrumbItem[] = [];\n        if (this._defaultHome) {\n            breadcrumb.push(this._defaultHome);\n        }\n        const url = this._router.url;\n        const path = this._utilities.getPathFromUrl(url) || '';\n        const activeRoute = this._findRouteFromUrl(path);\n        const parentRoutes = this._findParentRoutes(activeRoute);\n        breadcrumb.push(...parentRoutes);\n        if (activeRoute && activeRoute?.path !== this._defaultHome?.url) {\n            const routeData = this._getBreadcrumbRouteData(activeRoute);\n            breadcrumb.push(new BreadcrumbItem(this._getRouteTitle(activeRoute), (routeData._fullPath || activeRoute.path || '')));\n        }\n        return breadcrumb.map((route: BreadcrumbItem) => {\n            const routeSegments = route.url?.split('/') || [];\n            routeSegments.forEach((segment: string, index: number) => {\n                if (segment.startsWith(':')) {\n                    route.url = route.url?.replace(segment, url.split('/')[index + 1]);\n                }\n            });\n            return route;\n        });\n    }\n\n    private _findRouteFromUrl(url: string): Route | undefined {\n        let urlSegments = url.replace(/\\(.+\\)/, '') // remove any secondary outlet segments and focus on primary outlet that is the main route\n            .split('/') // split the URL into segments\n            .filter((segment: string) => segment !== '');\n\n        const outletRegex = new RegExp(\"\\\\(([^()]+)\\\\)\");\n        var outletPart = url.match(outletRegex)?.[1];\n        //if (outletPart) {\n        //urlSegments = outletPart.replace(/.+:/, '').split('/') // split the URL into segments\n        //                        .filter((segment: string) => segment !== '');\n        //}\n        const routerConfig = this._router.config;\n        const flattenedRouterConfig = this._flattenRoutes(routerConfig);\n        const filteredRouterConfig = flattenedRouterConfig.filter((route: Route) => {\n            const routeData = this._getBreadcrumbRouteData(route);\n            return (routeData._fullPath || route.path)?.split('/').length === urlSegments.length;\n        });\n        const route = filteredRouterConfig.find((route: Route) => {\n            const routeData = this._getBreadcrumbRouteData(route);\n            const routeSegments = (routeData._fullPath || route.path)?.split('/') || [];\n            let segmentsMatched = false;\n            for (let i = 0; i < routeSegments.length; i++) {\n                const currentSegment = routeSegments[i];\n                const isDynamicSegment = currentSegment.startsWith(':');\n                if (!isDynamicSegment) {\n                    segmentsMatched = currentSegment === urlSegments[i];\n                }\n            }\n            return segmentsMatched ? route : undefined;\n        });\n        return route;\n    }\n\n    private _findParentRoutes(activeRoute: Route | undefined, items: BreadcrumbItem[] = []): BreadcrumbItem[] {\n        if (!activeRoute) {\n            return [];\n        }\n        const routeData = this._getBreadcrumbRouteData(activeRoute);\n        let urlSegments = (routeData._fullPath || activeRoute.path)?.split('/').filter((segment: string) => segment !== '') || [];\n        if (urlSegments?.length <= 1) {\n            return [...items];\n        }\n        const previousUrl = urlSegments.slice(0, -1).join('/');\n        const route = this._findRouteFromUrl(previousUrl);\n        if (route) {\n            const routeData = this._getBreadcrumbRouteData(route);\n            if (routeData._level > 0 || (!route.children || route.children.length === 0)) {\n                items = this._findParentRoutes(route, [new BreadcrumbItem(this._getRouteTitle(route), routeData._fullPath || route.path), ...items]);\n            }\n        }\n        return [...items];\n    }\n\n    private _flattenRoutes(routes: Route[], level?: number): Route[] {\n        let children: Route[] = [];\n        level = level || 0;\n        return routes.map((route: Route) => {\n            const routeData = this._getBreadcrumbRouteData(route);\n            routeData._level = level!;\n            if (route.children && route.children.length) {\n                route.children.forEach((child: Route) => {\n                    const childRouteData = this._getBreadcrumbRouteData(child);\n                    const routePath = routeData._fullPath || route.path || '';\n                    const childPath = child.path?.endsWith('/') ? child.path.slice(0, -1) : child.path;\n                    childRouteData._fullPath = childPath?.indexOf(routePath) === -1 ? `${routePath}/${childPath}` : childPath;\n                });\n                children = [...children, ...route.children];\n            }\n            return route;\n        }).concat(children.length ? this._flattenRoutes(children, level + 1) : children);\n    }\n\n    private _getBreadcrumbRouteData(route: Route | undefined): BreadcrumbRouteData {\n        if (!route) {\n            throw new Error('No route was found');\n        }\n        if (!route.data?.breadcrumb) {\n            if (!route.data) {\n                route.data = {};\n            }\n            route.data.breadcrumb = new BreadcrumbRouteData(0, false, undefined);\n        }\n        return route.data.breadcrumb;\n    }\n}\n\nexport class BreadcrumbRouteData {\n    constructor(public _level: number, public isHome: boolean, public _fullPath?: string | undefined) { }\n}\n","import { Component, OnInit } from '@angular/core';\n\nimport { BreadcrumbService } from '../../services/breadcrumb.service';\nimport { BreadcrumbItem } from './breadcrumb-item';\nimport { isObservable } from 'rxjs';\n\n@Component({\n    selector: 'lib-breadcrumb',\n    templateUrl: './breadcrumb.component.html',\n    standalone: false\n})\nexport class BreadcrumbComponent implements OnInit {\n    constructor(\n        private _breadcrumbService: BreadcrumbService\n    ) { }\n\n    public ngOnInit(): void {\n        this._breadcrumbService\n            .breadcrumb\n            .subscribe((breadcrumb: BreadcrumbItem[]) => {\n                this.breadcrumb = [...breadcrumb, new BreadcrumbItem('', '')];\n            });\n  }\n  isAsync(value: any): boolean {\n    return isObservable(value);\n  } \n\n    public breadcrumb: BreadcrumbItem[] = [];\n}\n","<nav class=\"bg-white border-b border-gray-200 flex\"\n     aria-label=\"Breadcrumb\">\n  <ol role=\"list\"\n      class=\"w-full mx-auto px-4 flex space-x-4 sm:px-6 lg:px-8\">\n    <li class=\"flex\"\n        *ngFor=\"let item of breadcrumb; let i = index\">\n      <div class=\"flex items-center\">\n        <ng-container *ngTemplateOutlet=\"i === 0 ? homeTemplate : linkTemplate; context: { value: item }\"></ng-container>\n      </div>\n    </li>\n  </ol>\n</nav>\n<ng-template let-value=\"value\"\n             #homeTemplate>\n  <a [routerLink]=\"value.urlSegments\"\n     [title]=\"isAsync(value.title) ? (value.title | async) : value.title\"\n     class=\"text-gray-400 hover:text-gray-500\">\n    <svg class=\"flex-shrink-0 h-5 w-5\"\n         xmlns=\"http://www.w3.org/2000/svg\"\n         viewBox=\"0 0 20 20\"\n         fill=\"currentColor\"\n         aria-hidden=\"true\">\n      <path d=\"M10.707 2.293a1 1 0 00-1.414 0l-7 7a1 1 0 001.414 1.414L4 10.414V17a1 1 0 001 1h2a1 1 0 001-1v-2a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 001 1h2a1 1 0 001-1v-6.586l.293.293a1 1 0 001.414-1.414l-7-7z\" />\n    </svg>\n    <span class=\"sr-only\">{{ isAsync(value.title) ? (value.title | async) : value.title }}</span>\n  </a>\n</ng-template>\n<ng-template let-value=\"value\"\n             #linkTemplate>\n  <svg class=\"flex-shrink-0 w-6 h-full text-gray-200\"\n       viewBox=\"0 0 24 44\"\n       preserveAspectRatio=\"none\"\n       fill=\"currentColor\"\n       xmlns=\"http://www.w3.org/2000/svg\"\n       aria-hidden=\"true\">\n    <path d=\"M.293 0l22 22-22 22h1.414l22-22-22-22H.293z\" />\n  </svg>\n  <a [routerLink]=\"value.urlSegments\"\n     class=\"ml-4 text-sm font-medium text-gray-500 hover:text-gray-700\">\n    {{ isAsync(value.title) ? (value.title | async) : value.title }}\n  </a>\n</ng-template>\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\n\n@Component({\n    selector: 'lib-list-column', template: '<ng-content></ng-content>',\n    standalone: false\n})\nexport class ListColumnComponent {\n  @Input() title: string | null = null;\n  // tslint:disable-next-line:no-input-rename\n  @Input('full-width') fullWidth = false;\n  @ContentChild(TemplateRef) template: any | null = null;\n  constructor() { }\n}\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\n\n@Component({\n    selector: 'lib-list-tile', template: '<ng-content></ng-content>',\n    standalone: false\n})\nexport class ListTileComponent{\n  @ContentChild(TemplateRef) template: any | null = null;\n  constructor() {\n  }\n}\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\n\n@Component({\n    selector: 'lib-list-details-section', template: '<ng-content></ng-content>',\n    standalone: false\n})\nexport class ListDetailsSectionComponent{\n  @ContentChild(TemplateRef) template: any | null = null;\n  constructor() {\n  }\n}\n","import { formatDate } from \"@angular/common\";\n\nexport namespace Operators {\n  export const EQUALS = { label: '=', value: 'eq', description: 'Equal to' };\n  export const NOT_EQUALS = { label: '≠', value: 'neq', description: 'Not equal to' };\n  export const GREATER_THAN = { label: '>', value: 'gt', description: 'Greater than' };\n  export const LESS_THAN = { label: '<', value: 'lt', description: 'Less than' };\n  export const GREATER_THAN_EQUAL = { label: '≥', value: 'gte', description: 'Greater than or equal to' };\n  export const LESS_THAN_EQUAL = { label: '≤', value: 'lte', description: 'Less than or equal to' };\n  export const CONTAINS = { label: '∋', value: 'contains', description: 'Contains' };\n  export const IN = { label: '1..n', value: 'in', description: 'In' };\n}\n\nexport enum QueryParameters {\n  VIEW = 'view',\n  PAGE_SIZE = 'pagesize',\n  PAGE = 'page',\n  SEARCH = 'search',\n  SORT_FIELD = 'sort',\n  SORT_DIRECTION = 'dir',\n  FILTER = 'filter',\n  FILTER_FROM = 'from',\n  FILTER_TO = 'to'\n}\n\nexport interface SearchOption {\n  name: string;\n  field: string;\n  dataType: FilterClause.Dt;\n  array?: boolean;\n  multiTerm?: boolean;\n  options?: SelectInputOption[];\n  placeholder?: string;\n  readonly?: boolean;\n}\n\nexport interface SelectInputOption {\n  value: any;\n  label: string;\n  description?: string;\n}\n\nexport namespace FilterClause {\n  export type Op = 'eq' | 'neq' | 'gt' | 'lt' | 'gte' | 'lte' | 'contains' | 'in';\n  export type Dt = 'string' | 'integer' | 'number' | 'boolean' | 'datetime' | 'array' | 'daterange' | undefined;\n}\n\n// Dictionary with the DataType as a key and the value an array of available operators.\nexport interface IDictionary<T> {\n  [key: string]: T;\n}\n\nexport const OperatorOptions: IDictionary<{ label: string; value: string; description?: string }[]> = {\n  'string': [Operators.EQUALS, Operators.NOT_EQUALS, Operators.CONTAINS],\n  'array': [Operators.EQUALS, Operators.NOT_EQUALS]\n};\n\nexport class FilterClause {\n  // Member path to compare\n  public member: string;\n  // Value to compare against\n  public value: any;\n  // The operator to apply between the Indice.Types.FilterClause.Member and Indice.Types.FilterClause.Value\n  public operator: FilterClause.Op;\n  // The Indice.Types.JsonDataType of the data Indice.Types.FilterClause.Member\n  public dataType: FilterClause.Dt;\n\n  public uiName: string | undefined;\n  public uiOperator: string | undefined;\n  public uiValue: string | undefined;\n\n  public constructor(member: string, value: any, operator?: FilterClause.Op, dataType?: FilterClause.Dt, searchOptions?: SearchOption[]) { // yeap, we do need searchOptions for the ui view model\n    this.member = member;\n    this.value = value;\n    this.operator = operator || Operators.EQUALS.value as FilterClause.Op;\n    this.dataType = dataType === undefined ? 'string' : dataType;\n    // uiName\n    if (this.dataType === 'datetime') { // special treatment for dates\n      this.uiName = this.member === QueryParameters.FILTER_FROM ? 'From' : 'To';\n    } else {\n      this.uiName = this.member;\n      let fo = <any>{};\n      if (searchOptions && searchOptions.length > 0) {\n        fo = searchOptions.find((f) => {\n          return f.field === this.member;\n        });\n      }\n\n      if (fo && fo?.name?.length > 0) {\n        this.uiName = fo.name;\n      }\n    }\n    // We don't want a uiOperator for the datetime dataType. For strings and arrays we have the equals/not-equals/contains operators. The switch case can be expanded for more data types/operators when needed.\n    if (this.dataType === 'datetime') {\n      this.uiOperator = '';\n    } else {\n      switch (this.operator) {\n        case (Operators.EQUALS.value):\n          this.uiOperator = Operators.EQUALS.label;\n          break;\n        case (Operators.NOT_EQUALS.value):\n          this.uiOperator = Operators.NOT_EQUALS.label;\n          break;\n        case (Operators.CONTAINS.value):\n          this.uiOperator = Operators.CONTAINS.label;\n          break;\n      }\n    }\n    // uiValue\n    this.uiValue = this.value;\n    if ((this.dataType === 'datetime')) {\n      this.uiValue = formatDate(new Date(this.value), 'dd/MM/yyyy', 'en-US');\n    }\n    let fo: SearchOption | undefined;\n    if (searchOptions && searchOptions.length > 0) {\n      fo = searchOptions.find((f) => {\n        return f.field === this.member;\n      });\n    }\n    if (fo && fo.options) { // special treatment for arrays, if there is an options property then it is an array\n      this.dataType = 'array';\n      this.uiValue = fo!.options!.find((option) => {\n        return option.value === this.value;\n      })?.label;\n    }\n  }\n\n  public static parse(text: string): FilterClause | undefined {\n    const pattern = /^\\s*([A-Za-z_][A-Za-z0-9_\\.]+)::(eq|neq|gt|lt|gte|lte|contains|in)::(\\((string|integer|number|boolean|datetime)\\))?(.+)\\s*$/gi;\n    if (text != null) {\n      const matches = pattern.exec(text);\n      if (matches != null) {\n        const path = matches[1];\n        const op = <FilterClause.Op>matches[2];\n        const dt = <FilterClause.Dt>matches[4];\n        const v = matches[5];\n\n        return new FilterClause(path, v, op, dt);\n      }\n    }\n    return undefined;\n  }\n\n  public toString(): string {\n    if (this.dataType !== 'string' && this.dataType !== 'array') {\n      return `${this.member}::${this.operator}::(${this.dataType})${this.value}`;\n    } else {\n      return `${this.member}::${this.operator}::${this.value}`;\n    }\n  }\n}\n","import { getLocaleMonthNames, FormStyle, TranslationWidth, getLocaleDayNames } from '@angular/common';\nimport { Component, ElementRef, EventEmitter, forwardRef, Inject, Input, LOCALE_ID, OnInit, Output, ViewChild } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n// freaksly simple date picker : https://tailwind-elements.com/docs/standard/forms/datepicker/\n@Component({\n    selector: 'lib-date-picker',\n    templateUrl: './date-picker.component.html',\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => DatepickerComponent),\n            multi: true\n        }\n    ],\n    standalone: false\n})\nexport class DatepickerComponent implements OnInit, ControlValueAccessor {\n  @Input() readonly: boolean = false;\n  @Input() disabled: boolean = false;\n  @Input() inline: boolean = false;\n  @Input('display-format') displayFormat: string | undefined = 'dd/MM/yyyy';\n  @Input() placeholder: string | undefined = '';\n  @Input() value: Date | undefined | null = null;\n  @Output() valueChange: EventEmitter<Date> = new EventEmitter<Date>();\n  @ViewChild('dateInput') dateInput: ElementRef | undefined;\n  @Input() minDate: Date | undefined = undefined;\n  @Input() maxDate: Date | undefined = undefined;\n  public showCalendar = false;\n  public showYears = false;\n  public monthNames = getLocaleMonthNames(this.locale, FormStyle.Standalone, TranslationWidth.Wide);\n  public dayNames = getLocaleDayNames(this.locale, FormStyle.Standalone, TranslationWidth.Abbreviated);\n\n  public month: number = -1;\n  public year: number = -1;\n  public calendarDates: any[] = [];\n  public calendarYears: any[] = [];\n  public showCalendarYears: any[] = [];\n  public blankDays: any[] = [];\n  public calendarYearPage = 1;\n  private yearsPerPage = 30;\n\n  private onChange$: any | undefined = undefined;\n  private onTouched$: any | undefined = undefined;\n\n  ngOnInit(): void {\n    let today = new Date();\n    this.month = today.getMonth();\n    this.year = today.getFullYear();\n    this.calendarDates = [{ day: this.value, today: this.value, selected: this.value }];\n    this.calendarYears = [{ year: this.value?.getFullYear(), today: this.value, selected: this.value }];\n    const yearsArray = [];\n    for (let i = 1950; i <= today.getFullYear() + 2; i++) {\n      yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.value?.getFullYear() });\n    }\n    this.calendarYears = yearsArray;\n    this.showCalendarYears = this.paginate(this.calendarYears, 1);\n    this.calcDays();\n  }\n\n  constructor(@Inject(LOCALE_ID) public locale: string) { }\n\n  writeValue(obj: any): void {\n    if (obj) {\n      this.value = new Date(obj);\n      this.month = this.value.getMonth();\n      this.year = this.value.getFullYear();\n    }\n  }\n\n  registerOnChange(fn: (_: any) => void): void {\n    this.onChange$ = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouched$ = fn;\n  }\n\n  public onBlur(event: any): void {\n    if (this.onTouched$) {\n      this.onTouched$();\n    }\n    this.getDateFromInput();\n  }\n\n  public selectDateValue(date: any): void {\n    // This should be in UTC\n    if (!this.outOfRangeDate(date.day)) {\n      let selectedDate = new Date(this.year, this.month, date.day, 3, 0, 0, 0);\n      this.value = selectedDate;\n      this.valueChange.emit(this.value);\n      if (this.onChange$) {\n        this.onChange$(this.value);\n      }\n      this.updateDays();\n      if (this.onTouched$) {\n        this.onTouched$();\n      }\n      this.calcDays();\n      this.showCalendar = false;\n    }\n  }\n\n  public selectYearValue(year: any): void {\n    // This should be in UTC\n    const tempYear = this.year;\n    this.year = year.year;\n    if (!this.outOfRangeDate(this.calendarDates?.find(x => x.selected == true) ?? { day: 1 })) {\n      let selectedDate = new Date(year.year, this.month ?? 1, this.calendarDates?.find(x => x.selected == true).day ?? 1, 3, 0, 0, 0);\n      this.value = selectedDate;\n      this.valueChange.emit(this.value);\n      if (this.onChange$) {\n        this.onChange$(this.value);\n      }\n      this.updateDays();\n      if (this.onTouched$) {\n        this.onTouched$();\n      }\n      this.showYears = false;\n      this.showCalendar = true;\n      this.calcDays();\n    } else {\n      this.year = tempYear;\n      this.showYears = false;\n      this.showCalendar = true;\n    }\n  }\n\n  public previousMonth(): void {\n    if (this.month !== 0) {\n      this.month = this.month - 1;\n      this.calcDays();\n    } else {\n      this.month = 11;\n      this.year = this.year - 1;\n      this.calcDays();\n    }\n    if (this.onTouched$) {\n      this.onTouched$();\n    }\n  }\n\n  public nextMonth(): void {\n    if (this.month !== 11) {\n      this.month = this.month + 1;\n      this.calcDays();\n    } else {\n      this.month = 0;\n      this.year = this.year + 1;\n      this.calcDays();\n    }\n    if (this.onTouched$) {\n      this.onTouched$();\n    }\n  }\n\n  public previousYear(): void {\n    this.showCalendarYears = this.paginate(\n      this.calendarYears,\n      this.calendarYearPage > 1 ? --this.calendarYearPage : 1);\n    this.calcDays();\n    if (this.onTouched$) {\n      this.onTouched$();\n    }\n  }\n\n  public nextYear(): void {\n    this.showCalendarYears = this.paginate(\n      this.calendarYears,\n      this.calendarYearPage <= this.calendarYears.length / this.yearsPerPage\n        ? ++this.calendarYearPage\n        : this.calendarYearPage);\n    this.calcDays();\n    if (this.onTouched$) {\n      this.onTouched$();\n    }\n  }\n\n  private compareDates(date1: Date | undefined | null, day: number | null | undefined, year: number | null | undefined): boolean {\n    if (!date1) {\n      return false;\n    }\n    const d = new Date(year ?? this.year, this.month, day ?? this.value?.getDay());\n    return date1.toDateString() === d.toDateString();\n  };\n\n  private calcDays(): void {\n    const daysInMonth = new Date(this.year, this.month + 1, 0).getDate();\n    // find where to start calendar day of week\n    const dayOfWeek = new Date(this.year, this.month).getDay();\n    const blankdaysArray = new Array<number>();\n    for (var i = 1; i <= dayOfWeek; i++) {\n      // check if month is February\n      blankdaysArray.push(this.month != 2 ? (32 - i) : (29 - i));\n      blankdaysArray.reverse().sort();\n    }\n    const daysArray = [];\n    const today = new Date();\n    for (var i = 1; i <= daysInMonth; i++) {\n      daysArray.push({ day: i, today: this.compareDates(today, i, null), selected: this.compareDates(this.value ?? today, i, null) });\n    }\n    const yearsArray = [];\n    for (let i = 1950; i <= today.getFullYear() + 2; i++) {\n      yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.year });\n    }\n    this.calendarYears = yearsArray;\n    this.blankDays = blankdaysArray;\n    this.calendarDates = daysArray;\n  }\n\n  private updateDays(): void {\n    const today = new Date();\n    this.calendarDates.forEach(d => {\n      d.today = this.compareDates(today, d, this.year);\n      d.selected = this.compareDates(this.value, d, this.year);\n    });\n  }\n\n  private paginate(array: any[], page_number: number): any[] {\n    return array.slice((page_number - 1) * this.yearsPerPage, page_number * this.yearsPerPage);\n  }\n\n  private getDateFromInput() {\n    if(!this.dateInput?.nativeElement.value || this.dateInput?.nativeElement.value === '') {\n      this.value = undefined;\n      this.valueChange.emit(this.value);\n      if (this.onChange$) {\n        this.onChange$(this.value);\n      }\n      return;\n    }\n\n    if (this.dateInput?.nativeElement.value !== '' && !this.inline) {    \n      var dateParts = this.dateInput?.nativeElement.value.split(\"/\");\n      let dateInGrFormat = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0], 3, 0, 0);\n      if (dateInGrFormat.toString() !== 'Invalid Date') {\n        this.writeValue(dateInGrFormat)\n        this.calcDays();\n        this.valueChange.emit(dateInGrFormat);\n      }\n      if (this.onChange$) {\n        this.onChange$(this.value);\n      }\n      this.updateDays();\n      if (this.onTouched$) {\n        this.onTouched$();\n      }\n    }\n    this.showCalendar = false;\n  }\n\n  public openYears() {\n    this.showYears = !this.showYears;\n    this.calendarYearPage = Math.ceil(this.calendarYears.map(x => x.year).indexOf(this.year) / this.yearsPerPage);\n    this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage !== 0 ? this.calendarYearPage : 1);\n    this.calcDays();\n  }\n\n  public openCalendar() {\n    this.showCalendar = !this.showCalendar;\n    this.calcDays();\n  }\n\n  public closeCalendar() {\n    this.showCalendar = false;\n    // this.getDateFromInput();\n  }\n\n  outOfRangeDate(date: any): boolean {\n    let outOfRange: boolean = false;\n    if (this.minDate || this.maxDate) {\n      const d = new Date(this.year, this.month, date.day);\n      const dateInMillis = d.getTime();\n      if (this.minDate) {\n        let minDate: number = this.minDate.getTime();\n        if (dateInMillis < minDate && this.minDate.toDateString() !== d.toDateString()) {\n          outOfRange = true;\n        }\n      }\n      if (this.maxDate) {\n        let maxDate: number = this.maxDate.getTime();\n        if (dateInMillis > maxDate && this.maxDate.toDateString() !== d.toDateString()) {\n          outOfRange = true;\n        }\n      }\n    }\n    return outOfRange;\n  }\n}","<div [class.relative]=\"!inline\" (clickOutside)=\"closeCalendar()\">\n  <div class=\"datepicker-container\">\n    @if(!inline) {\n      <input #dateInput [readonly]=\"readonly\" name=\"dateInput\" (blur)=\"onBlur($event)\" id=\"dateInput\" title=\"dateInput\" (focus)=\"showCalendar = false\" [value]=\"value | date: displayFormat\"\n            class=\"datepicker-input\" [class.cursor-not-allowed]=\"disabled\" [placeholder]=\"placeholder\">\n      <button type=\"button\" class=\"datepicker-button\" [disabled]=\"disabled\" (click)=\"openCalendar()\" [class.cursor-not-allowed]=\"disabled\">\n        <i class=\"ms-Icon ms-Icon--DateTime2\"></i>\n      </button>\n    }\n  </div>\n  @if(showCalendar || inline) {\n    <div [class.absolute]=\"!inline\" class=\"datepicker-background\" style=\"height:18rem;min-width:16rem;\" name=\"calendar\">\n      <div class=\"datepicker-btn-wrapper\">\n        <div>\n          <button type=\"button\" (click)=\"openYears()\">\n            <span class=\"datepicker-selected-month\">{{monthNames[month]}}</span><span class=\"datepicker-selected-year\">{{year}}</span>\n          </button>\n        </div>\n        @if(!showYears) {\n          <div>\n            <button type=\"button\" class=\"datepicker-nav-btn\" (click)=\"previousMonth();\">\n              <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n                <path stroke-linecap=\"round\"stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 19l-7-7 7-7\" />\n              </svg>\n            </button>\n            <button type=\"button\" class=\"datepicker-nav-btn\" (click)=\"nextMonth()\">\n              <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n                <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\" />\n              </svg>\n            </button>\n          </div>\n        }\n        @if(showYears) {\n          <div>\n            <button type=\"button\" class=\"datepicker-nav-btn\" (click)=\"previousYear();\">\n              <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n                <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 19l-7-7 7-7\" />\n              </svg>\n            </button>\n            <button type=\"button\"  class=\"datepicker-nav-btn\" (click)=\"nextYear()\">\n              <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n                <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 5l7 7-7 7\" />\n              </svg>\n            </button>\n          </div>\n        }\n      </div>\n      @if(!showYears) {\n        <div class=\"datepicker-wrapper\">\n          @for(day of dayNames; track day) {\n            <div class=\"datepicker-day-name\" style=\"width: 14.28%\">{{day}}</div>\n          }\n        </div>\n      }\n      @if(showYears) {\n        <div class=\"datepicker-content-wrapper\">\n          @for(year of showCalendarYears; track year) {\n            <div style=\"width: 18.28%\" class=\"px-1 mb-1\">\n              <div (click)=\"selectYearValue(year)\" class=\"datepicker-year\" [class.selected]=\"year.selected\" [class.not-selected]=\"!year.selected\">{{year.year}}</div>\n            </div>\n          }\n        </div>\n      }\n      @if(!showYears) {\n        <div class=\"datepicker-content-wrapper\">\n          @for(blankday of blankDays; track blankday) {\n            <div style=\"width: 14.28%\" class=\"datepicker-blank-days\">{{blankday}}</div>\n          }\n          @for(date of calendarDates; track date) {\n            <div style=\"width: 14.28%\" class=\"px-1 mb-1\">\n              <div (click)=\"selectDateValue(date)\" class=\"datepicker-days\" [class.out-of-range]=\"outOfRangeDate(date)\" [class.selected]=\"date.selected\" [class.not-selected]=\"!date.selected\">{{date.day}}</div>\n            </div>\n          }\n        </div>\n      }\n    </div>\n  }\n</div>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { SearchOption, FilterClause, Operators, OperatorOptions } from './models';\nimport { MenuOption } from '../../types';\n\n@Component({\n    selector: 'lib-advanced-search',\n    templateUrl: './advanced-search.component.html',\n    standalone: false\n})\nexport class AdvancedSearchComponent implements OnInit, OnChanges {\n  @Output() advancedSearchChanged: EventEmitter<FilterClause[]> = new EventEmitter<FilterClause[]>();\n  @Input('operators-disabled') operatorsDisabled: boolean = false;\n  @Input('search-options') searchOptions: SearchOption[] = [];\n  @Input() filters: FilterClause[] = [];\n  @Input() searchCriteriaLabel: string = 'Search Criteria:';\n  public menuOptions: MenuOption[] = [];\n  public operatorMenuOptions: MenuOption[] = [];\n  public operatorOptions = OperatorOptions;\n  public operators: { [key: string]: MenuOption[] } = {};\n  public selectedOperator?: string;\n  public selectedField?: SearchOption;\n  public fieldValue?: string;\n  public fieldValueDateFrom: any;\n  public fieldValueDateTo: any;\n  public menuOptionsDictionary: { [key: string]: MenuOption[] } = {};\n\n  constructor() { }\n\n  public ngOnInit(): void {\n  }\n\n  public ngOnChanges(changes: SimpleChanges): void {\n    if (changes['searchOptions']) {\n      this.setSearchOptions();\n    }\n  }\n\n  public setSearchOptions() {\n    const updatedSearchOptions = [];\n    for (const searchOption of this.searchOptions) {\n      updatedSearchOptions.push({\n        text: searchOption.name,\n        value: searchOption.field,\n        data: searchOption.dataType,\n        description: searchOption.placeholder,\n        icon: undefined\n      });\n      if (searchOption.dataType === 'array' && searchOption.options) {\n        this.menuOptionsDictionary[searchOption.field] = searchOption.options.map(option => ({\n          text: option.label,\n          value: option.value,\n          data: undefined,\n          description: option.description,\n          icon: undefined\n        }));\n      }\n    }\n    this.menuOptions = updatedSearchOptions;\n  }\n\n  public selectedFieldChanged(field: string) {\n    this.selectedField = this.searchOptions.find((searchOption) => searchOption.field === field);\n    this.selectedOperator = undefined;\n    // Since we have special UI handling for the daterange, we don't need to fill the operatorMenuOptions in that case.\n    if (this.selectedField?.dataType != 'daterange') {\n      let operatorMenuOpts: MenuOption[] = [];\n      // based on the data type that we are filtering, fill the operator dropdown with the correct operators. The default is the string with equals/not-equals/contains\n      this.operatorOptions[this.selectedField?.dataType ?? 'string'].forEach(x => {\n        operatorMenuOpts.push({\n          text: x.description ?? x.label,\n          value: x.value,\n          data: undefined,\n          description: x.description,\n          icon: undefined\n        })\n      })\n      this.operatorMenuOptions = operatorMenuOpts;\n      // Preselect the first option from the operators menu so there will always be a default value, which is the 'equals' operator for all data types for now.\n      this.selectedOperator = this.operatorMenuOptions[0].value;\n    }\n    this.fieldValue = undefined;\n  }\n\n  public selectedOperatorChanged(operator: any) {\n    this.selectedOperator = operator;\n  }\n\n  public selectedFieldValueChanged(fieldValue: string) {\n    this.fieldValue = fieldValue;\n  }\n\n  public search() {\n    if (!this.selectedField || !this.selectedField.dataType) {\n      return;\n    }\n    // the filter is of type 'daterange'\n    if (this.selectedField.dataType === 'daterange') {\n      if (!this.selectedField.multiTerm) {\n        this.filters = this.filters.filter((f) => {\n          return f.dataType !== 'datetime';\n        });\n      }\n      if (this.fieldValueDateFrom) {\n        const filterClauseFrom = new FilterClause(this.selectedField.field, this.fieldValueDateFrom, Operators.GREATER_THAN_EQUAL.value as FilterClause.Op, 'datetime', this.searchOptions);\n        this.filters.push(filterClauseFrom);\n      }\n\n      if (this.fieldValueDateTo) {\n        const filterClauseTo = new FilterClause(this.selectedField.field, this.fieldValueDateTo, Operators.LESS_THAN_EQUAL.value as FilterClause.Op, 'datetime', this.searchOptions);\n        this.filters.push(filterClauseTo);\n      }\n    }\n    // the filter isn't of type 'daterange' (everything else)\n    else {\n      if (this.fieldValue === undefined) { // handle empty field value\n        return;\n      }\n      // if no operator was provided, it falls back to the default 'equals' operator\n      this.selectedOperator = this.selectedOperator ?? Operators.EQUALS.value;\n      // create the filterClause\n      const filterClause = new FilterClause(this.selectedField.field, this.fieldValue, this.selectedOperator as FilterClause.Op, this.selectedField.dataType, this.searchOptions);\n      if (!this.selectedField.multiTerm) { // multiTerm means that we can have multiple filter values of the SAME filter clause (eg \"filter case types that are Phone OR Address\")\n        this.filters = this.filters.filter((f) => {\n          return f.member !== this.selectedField!.field;\n        });\n      } else { // selectedField is multiTerm: just checking if we already have the newly selected filterClause in filters\n        const isDuplicate = this.filters.some(f => f.toString() === filterClause.toString());\n        if (isDuplicate) {\n          return;\n        }\n      }\n\n      this.filters.push(filterClause);\n      this.fieldValue = undefined;\n    }\n    this.advancedSearchChanged.emit(this.filters);\n  }\n\n  public removeFilter(index: number) {\n    if (this.filters && this.filters.length >= index) {\n      this.filters.splice(index, 1);\n      this.advancedSearchChanged.emit(this.filters);\n    }\n  }\n\n  public isDateValueUnpicked(): boolean {\n    return this.fieldValueDateFrom === undefined && this.fieldValueDateTo === undefined;\n  }\n\n  public isFieldAndOperatorUnpicked(): boolean {\n    // if the operators are enabled we need to check for both the field value and the operator value\n    return this.operatorsDisabled ? this.fieldValue === undefined : (this.fieldValue === undefined || this.selectedOperator === undefined);\n  }\n\n  public clear() {\n    this.fieldValueDateFrom = undefined;\n    this.fieldValueDateTo = undefined;\n    this.selectedField = undefined;\n    this.fieldValue = undefined;\n    this.selectedOperator = undefined;\n    this.filters = [];\n    this.advancedSearchChanged.emit(this.filters);\n  }\n}\n","<div class=\"advanced-search-container\">\n  <div class=\"advanced-search-filter\">\n    <!--SEARCH FIELDS-->\n    <div class=\"advanced-search-filter-field-container\">\n      <label class=\"advanced-search-filter-field-label\"\n             for=\"selectedField\">\n        {{searchCriteriaLabel}}\n      </label>\n      <lib-drop-down-menu [options]=\"menuOptions\"\n                          (selectedChanged)=\"selectedFieldChanged($event)\"></lib-drop-down-menu>\n    </div>\n    <!--SEARCH FIELDS OPERATOR MENU-->\n    <div *ngIf=\"!operatorsDisabled && selectedField\"\n         class=\"advanced-search-filter-operator-container\">\n      <div *ngIf=\"selectedField.dataType === 'array' || selectedField.dataType === 'string'\">\n        <label class=\"advanced-search-filter-operator-label\"\n               for=\"selectedOperator\">\n          &nbsp;\n        </label>\n        <lib-drop-down-menu [options]=\"operatorMenuOptions\"\n                            [selected]=\"selectedOperator\"\n                            (selectedChanged)=\"selectedOperatorChanged($event)\"></lib-drop-down-menu>\n      </div>\n    </div>\n    <!--SEARCH FIELDS INPUT-->\n    <div *ngIf=\"selectedField\"\n         class=\"advanced-search-filter-value-container\">\n      <div *ngIf=\"selectedField.dataType === 'array'\">\n        <label class=\"advanced-search-filter-value-label\"\n               for=\"fieldValue\">\n          &nbsp;\n        </label>\n        <lib-drop-down-menu [options]=\"menuOptionsDictionary[selectedField.field]\"\n                            [selected]=\"fieldValue\"\n                            (selectedChanged)=\"selectedFieldValueChanged($event)\"></lib-drop-down-menu>\n      </div>\n      <div *ngIf=\"selectedField.dataType === 'string'\">\n        <label class=\"advanced-search-filter-value-label\"\n               for=\"fieldValue\">\n          &nbsp;\n        </label>\n        <input (keyup.enter)=\"search()\"\n               [(ngModel)]=\"fieldValue\"\n               name=\"fieldValue\"\n               type=\"text\"\n               placeholder=\"Search\"\n               maxlength=\"300\"\n               class=\"advanced-search-filter-value-input\">\n      </div>\n      <ng-container *ngIf=\"selectedField.dataType === 'daterange'\">\n        <div>\n          <span class=\"advanced-search-filter-value-input-daterange-from\">\n            From:\n          </span>\n          <lib-date-picker [maxDate]=\"fieldValueDateTo\"\n                           [(ngModel)]=\"fieldValueDateFrom\"\n                           [placeholder]=\"'01/01/2022'\"></lib-date-picker>\n        </div>\n        <div *ngIf=\"selectedField.dataType === 'daterange'\">\n          <span class=\"advanced-search-filter-value-input-daterange-to\">\n            To:\n          </span>\n          <lib-date-picker [minDate]=\"fieldValueDateFrom\"\n                           [(ngModel)]=\"fieldValueDateTo\"\n                           [placeholder]=\"'01/01/2022'\"></lib-date-picker>\n        </div>\n      </ng-container>\n    </div>\n    <ng-container *ngIf=\"selectedField\">\n      <!--DO SEARCH-->\n      <button type=\"button\"\n              [ngClass]=\"{'opacity-50 cursor-not-allowed': isDateValueUnpicked() && isFieldAndOperatorUnpicked()}\"\n              [disabled]=\"isDateValueUnpicked() && isFieldAndOperatorUnpicked()\"\n              (click)=\"search()\">\n        <i [class]=\"'ms-Icon ms-Icon--Search'\"></i>\n      </button>\n      <!--CLEAR-->\n      <button type=\"button\"\n              (click)=\"clear()\">\n        <i [class]=\"'ms-Icon ms-Icon--Cancel'\"></i>\n      </button>\n    </ng-container>\n  </div>\n  <!--FILTER CHIPS-->\n  <!-- In order for our changes to be reflected everytime searchOptions change -->\n  <!-- We are looping searchOptions in order to display the proper name -->\n  <ng-container *ngFor=\"let searchOption of searchOptions\">\n    <ng-container *ngFor=\"let filter of filters; let j = index\">\n      <span *ngIf=\"filter && filter.member && searchOption.field === filter.member\"\n            class=\"advanced-search-chips\"\n            [ngClass]=\"{'disabled': searchOption?.readonly ?? false}\">\n        {{ searchOption.name }} {{ filter.uiOperator }} '{{ filter.uiValue }}'\n        <button (click)=\"removeFilter(j)\"\n                [disabled]=\"searchOption?.readonly ?? false\"\n                type=\"button\"\n                class=\"advanced-search-chips-remove-filter\">\n          <span class=\"sr-only\">Remove large option</span>\n          <svg class=\"h-2 w-2\"\n               stroke=\"currentColor\"\n               fill=\"none\"\n               viewBox=\"0 0 8 8\">\n            <path stroke-linecap=\"round\"\n                  stroke-width=\"1.5\"\n                  d=\"M1 1l6 6m0-6L1 7\" />\n          </svg>\n        </button>\n      </span>\n    </ng-container>\n  </ng-container>\n\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'lib-list-view-empty-state',\n    templateUrl: './list-view-empty-state.component.html',\n    standalone: false\n})\nexport class ListViewEmptyStateComponent implements OnInit {\n\n  @Input() title = 'No records found.';\n  // tslint:disable-next-line:no-input-rename\n  @Input('sub-title') subTitle = 'Please change your search criteria or start by adding a new record';\n  // tslint:disable-next-line:no-input-rename\n  @Input('new-item-label') newItemLabel = 'New record';\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"py-20\">\n  <div class=\"p-20\">\n    <div class=\"text-center p-2\">\n      <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n        <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\n      </svg>\n      <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\n      <p class=\"mt-1 text-sm text-gray-500\">\n        {{subTitle}}\n      </p>\n      <div class=\"mt-6\" *ngIf=\"false\">\n        <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\n          <!-- Heroicon name: solid/plus -->\n          <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n            <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\n          </svg>\n          {{newItemLabel}}\n        </button>\n      </div>\n    </div>\n  </div>\n</div>","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n    // tslint:disable-next-line:component-selector\n    selector: 'lib-skeleton-loader',\n    templateUrl: './skeleton-loader.component.html',\n    standalone: false\n})\nexport class SkeletonLoaderComponent implements OnInit {\n  @Input() count = 7;\n  @Input() type = 'tiles'; // 'large-tile', 'table'\n  @Input('deck-class') deckClass = 'cards-deck-4'; // 'large-tile', 'table'\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  public counter(i: number): number[] {\n    return new Array(i);\n  }\n\n}\n","<div [class]=\"deckClass\" *ngIf=\"type === 'tiles'\">\n  <div class=\"relative p-4 w-80 bg-white overflow-hidden shadow hover:shadow-md rounded-xl\"  *ngFor=\"let i of counter(count)\">\n    <div class=\"animate-pulse flex flex-col rounded-xl\">\n      <div class=\"rounded w-full h-32 bg-gray-200\"></div>\n      \n      <div class=\"flex flex-col mt-5 rounded-xl\">\n        <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\n        <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\n        <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\n      </div>\n\n      <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1 rounded-xl\">\n        <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n        <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n      </div>\n\n    </div>\n  </div>\n</div>\n  \n<div class=\"cards-deck-1\"  *ngIf=\"type === 'table'\">\n  <div class=\"border border-light-blue-300 shadow rounded-lg p-4 max-w-sm w-full mx-auto mb-4\" *ngFor=\"let i of counter(count)\">\n    <div class=\"animate-pulse flex space-x-4\">\n      <div class=\"rounded-full bg-light-blue-400 h-12 w-12\">&nbsp;</div>\n      <div class=\"flex-1 space-y-4 py-1\">\n        <div class=\"h-4 bg-light-blue-400 rounded w-3/4\">&nbsp;</div>\n        <div class=\"space-y-2\">\n          <div class=\"h-4 bg-light-blue-400 rounded\">&nbsp;</div>\n          <div class=\"h-4 bg-light-blue-400 rounded w-5/6\">&nbsp;</div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>","import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, QueryList, OnChanges, SimpleChanges } from '@angular/core';\nimport { FilterClause, SearchOption } from '../advanced-search/models';\nimport { ListViewType, MenuOption, PagerPosition } from '../../types';\nimport { ListColumnComponent } from './list-column.component';\nimport { ListTileComponent } from './list-tile.component';\nimport { ListDetailsSectionComponent } from './list-details-section.component';\nimport { Icons } from '../../icons';\n;\n\n@Component({\n    selector: 'lib-list-view',\n    templateUrl: './list-view.component.html',\n    standalone: false\n})\nexport class ListViewComponent implements OnChanges {\n  @Input('search-options') searchOptions: SearchOption[] = [];\n  @Input() filters: FilterClause[] = [];\n  // BUSY STATE\n  @Input() busy = false;\n  // DATA SOURCE!\n  @Input() items: any[] | null | undefined;\n  // PAGING - pass through for pager component\n  @Input() count: number | null = null;\n  @Input() page = 1;\n  @Input() view = ListViewType.Table;\n  @Input() sort: string | null = null;\n  // tslint:disable-next-line:no-input-rename\n  @Input('page-size') pageSize = 20;\n  // tslint:disable-next-line:no-input-rename\n  @Input('page-size-options') pageSizeOptions: MenuOption[] = [];\n  // SORTING - pass through for pager component\n  // tslint:disable-next-line:no-input-rename\n  @Input('sort-options') sortOptions: MenuOption[] = [];\n  @Input('operators-disabled') operatorsDisabled: boolean = false;\n  // tslint:disable-next-line:no-input-rename\n  @Input('sort-dir') sortdir: string | null = '-';\n  // tslint:disable-next-line:no-input-rename\n  @Input('tiles-count') tilesCount = 4;\n  // tslint:disable-next-line:no-input-rename\n  @Input('show-pager') showPager = true;\n  // tslint:disable-next-line:no-input-rename\n  @Input('pager-position') pagerPosition: any | undefined = PagerPosition.Top;\n  // DETAILS SECTION\n  // Check if details section and button should be displayed according to the count of the value given\n  // tslint:disable-next-line:no-input-rename\n  @Input('details-section-property-count') detailsSectionPropertyCount: string | null = null;\n  // COLUMNS\n  @ContentChildren(ListColumnComponent, { read: ListColumnComponent })\n  set cols(refs: QueryList<ListColumnComponent>) {\n    this.columns = refs?.toArray();\n    if (this.columns && this.columns.length > 0) {\n      this.tableViewSupported = true;\n    }\n    this.multipleFullWidth = this.columns.filter(c => c.fullWidth).length > 1;\n    this.fullWidthTHClass = this.multipleFullWidth ? 'list-view-th-half' : 'list-view-th-full';\n    this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';\n  }\n  // tslint:disable-next-line:no-input-rename\n  @ContentChild(ListTileComponent, { read: ListTileComponent })\n  set tiles(ref: ListTileComponent) {\n    this.tileTemplate = ref;\n    if (this.tileTemplate) {\n      this.tilesViewSupported = true;\n    }\n  }\n\n  @ContentChild(ListDetailsSectionComponent, { read: ListDetailsSectionComponent })\n  set details(ref: ListDetailsSectionComponent) {\n    this.detailsTemplate = ref;\n    if (this.detailsTemplate) {\n      this.detailsSectionSupported = true;\n    }\n  }\n\n  @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\n  @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\n  @Output() detailsOpened: EventEmitter<{ item: any, open: boolean }> = new EventEmitter<{ item: any, open: boolean }>();\n  @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\n  @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\n  @Output() advancedSearchChanged: EventEmitter<FilterClause[]> = new EventEmitter<FilterClause[]>();\n\n  private multipleFullWidth = false;\n  public expandIcon = Icons.Expand;\n  public collapseIcon = Icons.Collapse;\n  public tableViewSupported = false;\n  public fullWidthTHClass = 'list-view-th-full';\n  public fullWidthTDClass = 'list-view-td-full';\n  public tilesViewSupported = false;\n  public detailsSectionSupported = false;\n  public loaderItems: any[] = [];\n  public columns: any[] = [];\n  public tilesDeckClass = 'cards-deck-4';\n  public tileTemplate: any | null | undefined = null;\n  public detailsTemplate: any | null | undefined = null;\n\n  constructor() {\n    for (let i = 0; i < 9; i++) {\n      this.loaderItems.push({});\n    }\n    if (this.pagerPosition) {\n      this.pagerPosition = this.pagerPosition as PagerPosition;\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const tilesCountChange = changes['tiles-count'] || changes.tilesCount;\n    if (tilesCountChange) {\n      this.setTilesDeckClass(tilesCountChange.currentValue);\n    }\n  }\n\n  // events\n  public emitPageChanged($event: number): void {\n    this.pageChanged.emit($event);\n  }\n\n  public emitPageSizeChanged($event: number): void {\n    this.pageSizeChanged.emit($event);\n  }\n\n  public emitSortChanged($event: string): void {\n    this.sortChanged.emit($event);\n  }\n  public emitSortdirChanged($event: string): void {\n    this.sortdirChanged.emit($event);\n  }\n  public emitAdvancedSearchChanged($event: FilterClause[]): void {\n    this.advancedSearchChanged.emit($event);\n  }\n\n  public toggleDetails(item: any): void {\n    item.detailsExpanded = !item.detailsExpanded;\n    this.detailsOpened.emit({ item, open: item.detailsExpanded });\n  }\n\n  // helpers\n  private setTilesDeckClass(tiles: number): void {\n    if (tiles >= 1 && tiles <= 4) {\n      this.tilesDeckClass =\n        this.view !== ListViewType.Gallery\n          ? `cards-deck-${tiles}`\n          : this.items && this.items.length > 0\n            ? `gallery-deck-${tiles}`\n            : 'gallery-deck';\n    } else {\n      this.tilesDeckClass =\n        this.view !== ListViewType.Gallery\n          ? 'cards-deck-3'\n          : this.items && this.items.length > 0\n            ? 'gallery-deck-3'\n            : 'gallery-deck';\n    }\n  }\n}\n","<div>\n  <lib-advanced-search *ngIf=\"searchOptions && searchOptions.length > 0\"\n                       [search-options]=\"searchOptions\"\n                       [filters]=\"filters\"\n                       [operators-disabled]=\"operatorsDisabled\"\n                       (advancedSearchChanged)=\"emitAdvancedSearchChanged($event)\">\n  </lib-advanced-search>\n\n  <lib-pager *ngIf=\"showPager && (pagerPosition == 'top' || pagerPosition == 'both')\"\n             [page]=\"page\"\n             [page-size]=\"pageSize\"\n             [count]=\"count\"\n             [sort-options]=\"sortOptions\"\n             [sort]=\"sort\"\n             [sort-dir]=\"sortdir\"\n             [busy]=\"busy\"\n             (pageChanged)=\"emitPageChanged($event)\"\n             (pageSizeChanged)=\"emitPageSizeChanged($event)\"\n             (sortChanged)=\"emitSortChanged($event)\"\n             (sortdirChanged)=\"emitSortdirChanged($event)\">\n             <ng-content select=\"[pager-near-content]\" ngProjectAs=\"[pager-near-content]\"></ng-content>\n  </lib-pager>\n</div>\n\n<ng-container [ngSwitch]=\"view\">\n\n  <ng-container *ngSwitchCase=\"'tiles'\">\n    <div [class]=\"busy ? 'cards-deck-1' : tilesDeckClass\">\n\n      <lib-skeleton-loader *ngIf=\"busy\" [deck-class]=\"tilesDeckClass\" [count]=\"7\" [type]=\"'tiles'\"></lib-skeleton-loader>\n\n      <ng-container *ngIf=\"!busy && items && items.length > 0\">\n        <ng-container *ngFor=\"let item of items\">\n          <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n          <ng-template [ngTemplateOutlet]=\"tileTemplate.template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n        </ng-container>\n      </ng-container>\n\n    </div>\n  </ng-container>\n\n\n  <!-- *ngSwitchCase=\"'gallery'\" -->\n  <ng-container *ngSwitchCase=\"'gallery'\">\n    <ul role=\"list\" role=\"list\" [class]=\"tilesDeckClass\">\n\n      <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\n\n      <ng-container *ngIf=\"!busy && items && items.length > 0\">\n        <ng-container *ngFor=\"let item of items\" role=\"listitem\">\n          <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n          <ng-template [ngTemplateOutlet]=\"tileTemplate.template\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n        </ng-container>\n      </ng-container>\n    </ul>\n  </ng-container>\n\n  <!-- *ngSwitchCase=\"'table'\" -->\n  <ng-container *ngSwitchDefault>\n\n    <div class=\"list-view-container\">\n      <div class=\"list-view-container-inner\">\n        <table class=\"list-view-table\">\n          <thead class=\"list-view-thead\">\n            <tr>\n              <ng-container *ngIf=\"detailsSectionSupported\">\n                <th aria-label=\"details button\" class=\"list-view-th-details\"></th>\n              </ng-container>\n              <ng-container *ngFor=\"let col of columns\">\n                <th scope=\"col\" [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\n                  {{col.title}}\n                </th>\n              </ng-container>\n            </tr>\n          </thead>\n          <tbody class=\"list-view-tbody\" *ngIf=\"busy\">\n            <ng-container *ngFor=\"let item of loaderItems;let i=index\">\n              <tr class=\"list-view-tr\">\n                <ng-container *ngIf=\"detailsSectionSupported\">\n                  <td class=\"list-view-td-details\"\n                      *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n                    <button disabled\n                            title=\"expand-collapse\"\n                            type=\"button\"\n                            class=\"expand-collapse-button\">\n                      <!-- Heroicon name: solid/plus -->\n                      <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n                    </button>\n                  </td>\n                  <ng-template #hiddenDetailsButton>\n                    <td class=\"list-view-td-details\"></td>\n                  </ng-template>\n                </ng-container>\n                <td *ngFor=\"let col of columns\"\n                    [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n                  <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\n                </td>\n              </tr>\n              <ng-container *ngIf=\"detailsSectionSupported\">\n                <tr *ngIf=\"item.detailsExpanded\">\n                  <td [colSpan]=\"columns.length + 1\"\n                      class=\"list-view-td bg-gray-100\">\n                    <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n                                 [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n                  </td>\n                </tr>\n              </ng-container>\n            </ng-container>\n          </tbody>\n          <tbody class=\"list-view-tbody\"\n                 *ngIf=\"!busy\">\n            <ng-container *ngFor=\"let item of items;let i=index\">\n              <tr class=\"list-view-tr\">\n                <ng-container *ngIf=\"detailsSectionSupported\">\n                  <td class=\"list-view-td-details\"\n                      *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n                    <button (click)=\"toggleDetails(item)\"\n                            title=\"toggleDetails\"\n                            type=\"button\"\n                            class=\"expand-collapse-button\">\n                      <!-- Heroicon name: solid/plus -->\n                      <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n                    </button>\n                  </td>\n                  <ng-template #hiddenDetailsButton>\n                    <td class=\"list-view-td-details\"></td>\n                  </ng-template>\n                </ng-container>\n                <td *ngFor=\"let col of columns\"\n                    [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n                  <ng-template [ngTemplateOutlet]=\"col.template\"\n                               [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n                </td>\n              </tr>\n              <ng-container *ngIf=\"detailsSectionSupported\">\n                <tr *ngIf=\"item.detailsExpanded\">\n                  <td [colSpan]=\"columns.length + 1\"\n                      class=\"list-view-td bg-gray-100\">\n                    <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n                                 [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n                  </td>\n                </tr>\n              </ng-container>\n            </ng-container>\n          </tbody>\n        </table>\n      </div>\n    </div>\n  </ng-container>\n\n  <ng-container *ngIf=\"!busy && items && items.length === 0\">\n    <div class=\"cards-deck-1\">\n      <lib-list-view-empty-state></lib-list-view-empty-state>\n    </div>\n  </ng-container>\n</ng-container>\n\n<ng-content></ng-content>\n\n<div class=\"px-2 mt-2\"\n     *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\">\n  <lib-pager [page]=\"page\"\n             [page-size]=\"pageSize\"\n             [count]=\"count\"\n             [sort-options]=\"sortOptions\"\n             [sort]=\"sort\"\n             [sort-dir]=\"sortdir\"\n             [busy]=\"busy\"\n             (pageChanged)=\"emitPageChanged($event)\"\n             (pageSizeChanged)=\"emitPageSizeChanged($event)\"\n             (sortChanged)=\"emitSortChanged($event)\"\n             (sortdirChanged)=\"emitSortdirChanged($event)\">\n  </lib-pager>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'lib-collapsible-panel',\n    templateUrl: './collapsible-panel.component.html',\n    standalone: false\n})\nexport class CollapsiblePanelComponent implements OnInit {\n  @Input() title: string | null = null;\n  public visible = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<div class=\"collapsible-panel-container\">\n  <div class=\"collapsible-panel-container-shadow\">\n    <div class=\"collapsible-panel-container-inner\">\n      <button type=\"button\" class=\"collapsible-panel-button\" (click)=\"visible = !visible\">\n        <div class=\"collapsible-panel-button-content-container\">\n          <span>{{ title }} </span>\n          <span class=\"ico-plus\"></span>\n        </div>\n      </button>\n      <div class=\"collapsible-panel-content-container\" *ngIf=\"visible\">\n        <ng-content></ng-content>\n      </div>\n    </div>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n    selector: 'lib-kpi-tile',\n    templateUrl: './kpi-tile.component.html',\n    standalone: false\n})\nexport class KpiTileComponent implements OnInit {\n\n  @Input() title: string | undefined = undefined;\n  @Input() busy = false;\n  @Input() kpi: any | undefined = undefined;\n  @Input() hideBtn: boolean | undefined = false;\n  @Input('action-text') actionText: string = 'More';\n  // tslint:disable-next-line:no-output-rename\n  @Output('tile-action') tileAction: EventEmitter<any> = new EventEmitter<any>();\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  public emitTileAction($event: any): boolean {\n    $event.preventDefault();\n    $event.stopPropagation();\n    this.tileAction.emit($event);\n    return false;\n  }\n\n}\n","<div class=\"card\" [ngClass]=\"{'card-deck-busy' : busy }\">\n  <div class=\"card-body\">\n    <div class=\"kpi-tile-title-container\">\n      <a href=\"#\" class=\"kpi-tile-action\" (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\n    </div>\n    <div class=\"grid grid-cols-2 grid-flow-row gap-2 items-center\">\n      <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\n      <ng-content></ng-content>\n    </div>\n    <div class=\"card-footer\">\n      <div class=\"text-xs\">\n        <a href=\"#\" class=\"kpi-tile-action\" [ngClass]=\"{'invisible': hideBtn}\" (click)=\"emitTileAction($event)\">{{actionText}}</a>\n      </div>\n    </div>\n  </div>\n</div>","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { Toast, ToastType, NULL_TOAST } from '../types';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ToasterService {\n  private _subject: BehaviorSubject<Toast>;\n\n  constructor() {\n    this._subject = new BehaviorSubject<Toast>(NULL_TOAST);\n    this.toast$ = this\n      ._subject\n      .asObservable()\n      .pipe(filter((toast: Toast) => toast !== null && toast.title !== NULL_TOAST.title));\n  }\n  \n  public toast$: Observable<Toast>;\n\n  public show(type: ToastType, title?: string, body?: string, delay?: number): void {\n    this._subject.next({ type, title, body, delay } as Toast);\n  }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { Toast } from '../../types';\n\n@Component({\n    selector: 'lib-toaster',\n    templateUrl: './toaster.component.html',\n    standalone: false\n})\nexport class ToasterComponent implements OnInit {\n\n  @Input() toast: Toast | undefined;\n  @Input() i = 0;\n  @Output() remove = new EventEmitter<number>();\n  public isMobile = false;\n  public closed = false;\n\n  constructor() { }\n\n  ngOnInit(): void {\n    window.screen.width > 640 ? this.isMobile = false : this.isMobile = true;\n  }\n\n  public closeToast(index: number): void {\n    this.closed = true;\n    setTimeout(() => this.remove.emit(index), 100);\n  }\n}\n","<div aria-live=\"assertive\"\n     [ngClass]=\"closed ? 'toast-closed': 'toast z-50'\"\n     [ngStyle]=\"isMobile ? { 'margin-bottom.px': i * 85 } : {'margin-top.px': i * 85 }\">\n  <div class=\"toast-container\">\n    <div class=\"toast-pill\">\n      <div class=\"toast-context-padding\">\n        <div class=\"toast-context\"\n             [ngSwitch]=\"toast?.type\">\n          <div class=\"toast-icon\"\n               *ngSwitchCase=\"'info'\">\n            <svg class=\"h-5 w-5 text-blue-400\"\n                 xmlns=\"http://www.w3.org/2000/svg\"\n                 viewBox=\"0 0 20 20\"\n                 fill=\"currentColor\"\n                 aria-hidden=\"true\">\n              <path fill-rule=\"evenodd\"\n                    d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\n                    clip-rule=\"evenodd\" />\n            </svg>\n          </div>\n          <div class=\"toast-icon\"\n               *ngSwitchCase=\"'success'\">\n            <svg class=\"h-5 w-5 text-green-400\"\n                 xmlns=\"http://www.w3.org/2000/svg\"\n                 fill=\"none\"\n                 viewBox=\"0 0 24 24\"\n                 stroke=\"currentColor\"\n                 aria-hidden=\"true\">\n              <path stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\n            </svg>\n          </div>\n          <div class=\"toast-icon\"\n               *ngSwitchCase=\"'error'\">\n            <svg class=\"h-5 w-5 text-red-400\"\n                 xmlns=\"http://www.w3.org/2000/svg\"\n                 viewBox=\"0 0 20 20\"\n                 fill=\"currentColor\"\n                 aria-hidden=\"true\">\n              <path fill-rule=\"evenodd\"\n                    d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\n                    clip-rule=\"evenodd\" />\n            </svg>\n          </div>\n          <div class=\"toast-icon\"\n               *ngSwitchCase=\"'warning'\">\n            <svg class=\"h-5 w-5 text-yellow-400\"\n                 xmlns=\"http://www.w3.org/2000/svg\"\n                 viewBox=\"0 0 20 20\"\n                 fill=\"currentColor\"\n                 aria-hidden=\"true\">\n              <path fill-rule=\"evenodd\"\n                    d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\"\n                    clip-rule=\"evenodd\" />\n            </svg>\n          </div>\n          <div class=\"toast-icon\"\n               *ngSwitchDefault>\n            <svg class=\"h-5 w-5 text-green-400\"\n                 xmlns=\"http://www.w3.org/2000/svg\"\n                 fill=\"none\"\n                 viewBox=\"0 0 24 24\"\n                 stroke=\"currentColor\"\n                 aria-hidden=\"true\">\n              <path stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z\" />\n            </svg>\n          </div>\n\n          <div class=\"ml-3 w-0 flex-1\">\n            <p class=\"toast-title\"\n               *ngIf=\"toast?.title\">\n              {{toast?.title}}\n            </p>\n            <p class=\"toast-body\">\n              {{toast?.body}}\n            </p>\n          </div>\n          <div class=\"toast-close-icon\">\n            <button class=\"toast-close-button\"\n                    (click)=\"closeToast(i)\">\n              <span class=\"sr-only\">Close</span>\n              <!-- Heroicon name: solid/x -->\n              <svg class=\"h-5 w-5\"\n                   xmlns=\"http://www.w3.org/2000/svg\"\n                   viewBox=\"0 0 20 20\"\n                   fill=\"currentColor\"\n                   aria-hidden=\"true\">\n                <path fill-rule=\"evenodd\"\n                      d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n                      clip-rule=\"evenodd\" />\n              </svg>\n            </button>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>","import { Component, OnInit } from '@angular/core';\nimport { ToasterService } from '../../services/toaster.service';\nimport { Toast } from '../../types';\n\n@Component({\n    selector: 'lib-toaster-container',\n    templateUrl: './toaster-container.component.html',\n    standalone: false\n})\nexport class ToasterContainerComponent implements OnInit {\n\n  toasts: Toast[] = [];\n\n  constructor(private toaster: ToasterService) { }\n\n  ngOnInit(): void {\n    this.toaster.toast$\n      .subscribe(toast => {\n        this.toasts = [toast, ...this.toasts];\n        setTimeout(() => this.toasts.pop(), toast.delay || 6000);\n      });\n  }\n\n  remove(index: number): void {\n    this.toasts = this.toasts.slice(0, index).concat(this.toasts.slice(index + 1));\n  }\n\n}\n","<lib-toaster *ngFor=\"let toast of toasts; let i=index\" [toast]=\"toast\" [i]=\"i\" (remove)=\"remove($event)\"></lib-toaster>\n","import { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'lib-avatar-initials',\n    templateUrl: './avatar-initials.component.html',\n    standalone: false\n})\nexport class AvatarInitialsComponent implements OnInit {\n  @Input()\n  public name: string | null | undefined;\n  @Input()\n  public large = false;\n  public initials?: string;\n  public circleColor!: string;\n  private colors = [\n    '#EB7181', // red\n    '#468547', // green\n    '#FFD558', // yellow\n    '#3670B2', // blue\n  ];\n\n  constructor() { }\n\n  ngOnInit(): void {\n    this.createInititals();\n    const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));\n    // assign this to a class if you want to randomly change background colors of the circle.\n    this.circleColor = this.colors[randomIndex];\n  }\n\n  private createInititals(): void {\n    if (this.name) {\n      let initials = '';\n      for (let i = 0; i < this.name.length; i++) {\n        if (this.name.charAt(i) === ' ') {\n          continue;\n        }\n        if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) {\n          initials += this.name.charAt(i);\n          if (initials.length === 2) {\n            break;\n          }\n        }\n      }\n      this.initials = initials;\n    }\n  }\n}\n","<div [ngClass]=\"large ? 'avatar-container-large': 'avatar-container'\">\n    <span [ngClass]=\"large ? 'avatar-text-large': 'avatar-text'\">{{ initials }}</span>\n</div>\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\n@Component({\n    selector: 'lib-toggle',\n    templateUrl: './toggle.component.html',\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => ToggleComponent),\n            multi: true\n        }\n    ],\n    standalone: false\n})\nexport class ToggleComponent implements OnInit, ControlValueAccessor {\n  @Input()\n  public value: boolean | null | undefined;\n  @Input()\n  public disabled: boolean | null | undefined;\n  @Input() privateLabel: string = 'Private';\n  @Input() publicLabel: string = 'The file should be private'; \n  @Output() valueChange: EventEmitter<Boolean> = new EventEmitter<Boolean>();\n\n  private onChange$: any | undefined = undefined;\n  private onTouched$: any | undefined = undefined;\n\n  constructor() { }\n  \n  writeValue(obj: any): void {\n    if(obj) {\n      this.value = obj || false;\n    }\n  }\n  registerOnChange(fn: any): void {\n    this.onChange$ = fn;\n  }\n  registerOnTouched(fn: any): void {\n    this.onTouched$ = fn;\n  }\n\n  public onBlur(event: any): void {\n    if(this.onTouched$) {\n      this.onTouched$();\n    }\n  }\n\n  ngOnInit(): void {\n  }\n\n  public changeValue(){\n    this.value = !this.value;\n    this.valueChange.emit(this.value);\n    if(this.onChange$) {\n      this.onChange$(this.value);\n    }\n    if(this.onTouched$) {\n      this.onTouched$();\n    }\n  }\n}\n","<button type=\"button\"\n        [ngClass]=\"value ? (disabled ? 'on disabled' : 'on') : 'off'\"\n        class=\"toggle-button\"\n        role=\"switch\"\n        aria-checked=\"false\"\n        aria-labelledby=\"isPrivate\"\n        (click)=\"changeValue()\"\n        (blur)=\"onBlur($event)\"\n        value=\"{{value}}\"\n        [disabled]=\"disabled\"\n        [title]=\"disabled ? publicLabel : privateLabel\">\n    <span aria-hidden=\"true\"\n          [ngClass]=\"value ? 'enabled-anim' : 'disabled-anim'\"\n          class=\"toggle-span\"></span>\n</button>\n","import { Component, DOCUMENT, EventEmitter, Inject, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, TemplateRef } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { SidePaneOverlayType, SidePaneSize } from '../../types';\n@Component({ selector: 'lib-side-pane', templateUrl: './side-pane.component.html', standalone: false })\nexport class SidePaneComponent implements OnInit, OnDestroy, OnChanges {\n  @Input('visible')\n  protected showPane = false;\n  public sizeContainerStyle = 'side-pane-box-size';\n  public overlayStyle = 'side-pane-overlay';\n  @Input('pane-size') size: SidePaneSize | undefined;\n  @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\n  @Output() onOpen: EventEmitter<any> = new EventEmitter<any>();\n  @Output() onClose: EventEmitter<any> = new EventEmitter<any>();\n  @Input('params') params: any | undefined;\n  @Input() template: TemplateRef<any> | undefined;\n  \n  constructor(private router: Router, @Inject(DOCUMENT) private document: any,) { }\n  \n  ngOnChanges(changes: SimpleChanges): void {\n    if(changes && changes['size']) this.initPane();\n  }\n\n  ngOnDestroy(): void {\n  }\n\n  ngOnInit(): void  {\n  }\n\n  public onSidePaneActivated(component: any): void  {\n    this.initPane(this.router.getCurrentNavigation()?.extras?.state);\n    this.show();\n  }\n\n  private initPane(state?: any) {\n    //priority to property for size\n    this.sizeContainerStyle = this.sizeToClass(this.size ?? state?.paneSize);\n    this.overlayStyle = this.overlayToClass(state?.paneOverlay);\n  }\n\n  private overlayToClass(overlay?: SidePaneOverlayType): string {\n    if(!overlay) return 'side-pane-overlay';\n    if (overlay === SidePaneOverlayType.None)  {\n      return 'side-pane-overlay-opacity-0';\n    } else if (overlay === SidePaneOverlayType.Dark) {\n      return 'side-pane-overlay-opacity-50';\n    }\n    return 'side-pane-overlay';\n  }\n\n  private sizeToClass(size?: SidePaneSize): string {\n    if(!size) return 'side-pane-box-size';\n    let sizeStyleSuffix: string = '-25';\n    if (size === SidePaneSize.Small25) {\n      sizeStyleSuffix = '-25';\n    } else if (size === SidePaneSize.Medium50) {\n      sizeStyleSuffix = '-50';\n    } else if (size === SidePaneSize.Large75) {\n      sizeStyleSuffix = '-75';\n    }\n    else if (size === SidePaneSize.Fullscreen) {\n      sizeStyleSuffix = '-100';\n    }\n    return `side-pane-box-size${sizeStyleSuffix}`;\n  }\n\n  public onSidePaneDeactivated($event: any): void  {  \n    this.hide();\n  }\n\n  public show(): void {\n    this.document.body.classList.add('modal-active');\n    this.showPane = true;\n    this.onOpen.emit(true);\n  }\n\n  public hide(): void {\n    this.showPane = false;\n    this.document.body.classList.remove('modal-active');\n    this.onClose.emit(false);\n    // prepei na allaxei auto!\n    this.onComplete.emit(true);\n  }\n}\n","@if(showPane) {\n<div class=\"side-pane-outer-container\" aria-labelledby=\"slide-over\" role=\"dialog\" aria-modal=\"true\">\n  <div [class]=\"showPane ? overlayStyle : 'hidden'\" aria-hidden=\"true\"></div>\n    <div [class]=\"showPane ? 'side-pane-container' : 'hidden'\">\n      <div [class]=\"sizeContainerStyle\">\n        <div class=\"side-pane\">\n            @if(template) { <ng-container *ngTemplateOutlet=\"template; context: {params: params}\"></ng-container> }\n            <ng-content></ng-content>\n        </div>\n    </div>\n    </div>\n</div>\n}\n","import { Observable, Subscription } from 'rxjs';\nimport { Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { NavLink } from '../../types';\n\n@Component({\n    selector: 'lib-nav-links-list',\n    templateUrl: './nav-links-list.component.html',\n    standalone: false\n})\nexport class NavLinksListComponent implements OnInit, OnDestroy {\n\n  @Input() links: Observable<NavLink[]> | undefined;\n  // tslint:disable-next-line:no-input-rename\n  @Input('active-fragment') activeFragment: Observable<string> | undefined;\n  // tslint:disable-next-line:no-input-rename\n  @Input('link-class') navLinkClass: string | string = 'nav-link';\n  // tslint:disable-next-line:no-input-rename\n  @Input('link-active-class') navLinkActiveClass: string | string[] = 'nav-link-active';\n  // tslint:disable-next-line:no-input-rename\n  @Input('container-class') containerClass: string | string[] | undefined = undefined;\n  // tslint:disable-next-line:no-input-rename\n  @Input('show-icons') showIcons: boolean | undefined = false;\n  @Input('show-text') showText: boolean | undefined = true;\n  @Input('large-icons') largeIcons: boolean = false;\n  public fragmentValue: string | undefined;\n  private fragmentSub$: Subscription | undefined;\n  constructor() { }\n  \n  ngOnDestroy(): void {\n    this.fragmentSub$?.unsubscribe();\n  }\n\n  ngOnInit(): void {\n      this.fragmentSub$ = this.activeFragment?.subscribe( fragment => this.fragmentValue = fragment);\n  }\n\n}\n","\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\n  <div class=\"nav-link-list-container-inner\" [class.icons-only]=\"!showText\">\n    <ng-container *ngFor=\"let link of links | async\">\n      <ng-container [ngSwitch]=\"link.type\">\n        <div *ngSwitchCase=\"'sparator'\" class=\"h-2\"></div>\n        <a *ngSwitchCase=\"'router'\"\n          href=\"#\"\n          [routerLink]=\"[link.path]\"\n          [routerLinkActive]=\"navLinkActiveClass\"\n          [routerLinkActiveOptions]=\"{ exact: link.exact }\"\n          [queryParams]=\"link.queryParams\"\n          [class]=\"navLinkClass\"\n          [class.min-nav-link-text-width]=\"showText\">\n          <div class=\"inline-flex items-center\">\n            <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon\" [class.text-2xl]=\"largeIcons\" [class.p-1]=\"largeIcons\"></i>\n            <span [class.ml-3]=\"showIcons && link.icon\" *ngIf=\"showText\">{{ link.text }}</span>\n          </div>\n        </a>\n        <a *ngSwitchCase=\"'external'\"\n          [href]=\"link.path\"\n          [attr.target]=\"link.external ? '_blank' : '_self'\"\n          [class]=\"navLinkClass\"\n          [class.min-nav-link-text-width]=\"showText\">\n          <div class=\"inline-flex items-center\">\n          <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon\" [class.text-2xl]=\"largeIcons\" [class.p-1]=\"largeIcons\"></i>\n          <span [class.ml-3]=\"showIcons && link.icon\" *ngIf=\"showText\">{{ link.text }}</span>\n        </div>\n        </a>\n        <a *ngSwitchCase=\"'fragment'\"\n          routerLink=\".\"\n          [fragment]=\"link.path\"\n          [class]=\"fragmentValue === link.path ? navLinkClass + ' ' + navLinkActiveClass : navLinkClass\"\n          [class.min-nav-link-text-width]=\"showText\">\n          <div class=\"inline-flex items-center\">\n            <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon\" [class.text-2xl]=\"largeIcons\" [class.p-1]=\"largeIcons\"></i>\n            <span [class.ml-3]=\"showIcons && link.icon\" *ngIf=\"showText\">{{ link.text }}</span>\n          </div>\n        </a>\n      </ng-container>\n    </ng-container>\n  </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core';\n\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\n@Component({\n    selector: 'lib-combobox',\n    templateUrl: './combobox.component.html',\n    standalone: false\n})\nexport class ComboboxComponent implements OnInit {\n    private _debouncer: Subject<string> = new Subject<string>();\n    private _items: any[] = [];\n\n    private _defaultItemsFilter = (item: any) => {\n        const selectedItem = this.selectedItems.find(x => x == item);\n        return selectedItem == null || selectedItem == undefined;\n    };\n\n    constructor() { }\n\n    @Input() public id: string = 'combobox';\n    @Input() public placeholder: string | undefined;\n\n    @Input('items') public set items(items: any[]) {\n        if (!this.itemTemplate) {\n            this._items = items.filter(this._defaultItemsFilter);\n        } else {\n            this._items = items.filter(this.selectedItemsFilter);\n        }\n    }\n\n    public get items(): any[] {\n        if (!this.itemTemplate) {\n            return this._items.filter(this._defaultItemsFilter);\n        } else {\n            return this._items.filter(this.selectedItemsFilter);\n        }\n    }\n\n    @Input() public itemTemplate: TemplateRef<HTMLElement> | undefined = undefined;\n    @Input() public selectedItemsFilter: (item: any) => boolean | null = () => true;\n    @Input() public selectedItemTemplate: TemplateRef<HTMLElement> | undefined = undefined;\n    @Input() public noResultsTemplate: TemplateRef<unknown> | undefined = undefined;\n    @Input() public busy: boolean = false;\n    @Input() public multiple: boolean = true;\n    @Input() public debounceMs: number = 1000;\n    @Output() public onSearch: EventEmitter<string | undefined> = new EventEmitter();\n    @Output() public onItemSelected: EventEmitter<any> = new EventEmitter();\n    public showResults: boolean = false;\n    public selectedItems: any[] = [];\n    public value: string | undefined;\n    protected searchTerm: string = '';\n\n    public ngOnInit(): void {\n        if (this.itemTemplate && !this.multiple) {\n            this.multiple = true;\n            console.warn('You cannot have a custom item template with single selection.');\n        }\n        this.emitSearchEvent();\n        this._debouncer\n            .pipe(\n                debounceTime(this.debounceMs),\n                distinctUntilChanged()\n            )\n            .subscribe((value: string) => {\n                this.searchTerm = value;\n                this.emitSearchEvent(value);\n            });\n    }\n\n    public onInputClick(): void {\n        this.showResults = true;\n    }\n\n    public onClickOutside(): void {\n        this.showResults = false;\n    }\n\n    public onInputKeyUp(event: any): void {\n        this._debouncer.next(event.currentTarget.value);\n    }\n\n    public onListItemSelected(item: any): void {\n        this.onItemSelected.emit(item);\n        if (this.multiple) {\n            this.selectedItems.push(item);\n        } else {\n            this.value = item;\n        }\n    }\n\n    public removeItem(item: any): void {\n        const index = this.selectedItems.indexOf(item);\n        if (index > -1) {\n            this.selectedItems.splice(index, 1);\n        }\n    }\n\n    private emitSearchEvent(searchTerm: string | undefined = undefined): void {\n        this.onSearch.emit(searchTerm);\n    }\n}","<div class=\"combobox-wrapper\" (clickOutside)=\"onClickOutside()\">\n    <form autocomplete=\"off\"\n          [id]=\"id + '-form'\">\n        <input [id]=\"id\"\n               title=\"combobox input\"\n               type=\"text\"\n               (click)=\"onInputClick()\"\n               (clickOutside)=\"onClickOutside()\"\n               (keyup)=\"onInputKeyUp($event)\"\n               class=\"combobox-input\"\n               role=\"combobox\"\n               aria-controls=\"options\"\n               aria-expanded=\"false\"\n               autocomplete=\"off\"\n               list=\"autocomplete\"\n               [value]=\"value || ''\"\n               [placeholder]=\"placeholder || ''\">\n    </form>\n    <div class=\"combobox-icons\">\n        <svg *ngIf=\"!busy\"\n             xmlns=\"http://www.w3.org/2000/svg\"\n             class=\"h-6 w-6 text-gray-400\"\n             fill=\"none\"\n             viewBox=\"0 0 24 24\"\n             stroke=\"currentColor\"\n             stroke-width=\"2\">\n            <path stroke-linecap=\"round\"\n                  stroke-linejoin=\"round\"\n                  d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />\n        </svg>\n        <svg *ngIf=\"busy\"\n             class=\"animate-spin h-6 w-6 text-gray-400\"\n             xmlns=\"http://www.w3.org/2000/svg\"\n             fill=\"none\"\n             viewBox=\"0 0 24 24\">\n            <circle class=\"opacity-25\"\n                    cx=\"12\"\n                    cy=\"12\"\n                    r=\"10\"\n                    stroke=\"currentColor\"\n                    stroke-width=\"4\">\n            </circle>\n            <path class=\"opacity-75\"\n                  fill=\"currentColor\"\n                  d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n        </svg>\n    </div>\n    <ul [id]=\"id + '-results'\"\n        *ngIf=\"showResults && items.length > 0\"\n        class=\"combobox-results\"\n        role=\"listbox\">\n        <li *ngFor=\"let item of items; let i = index\"\n            [id]=\"'option-'+ i\"\n            (click)=\"onListItemSelected(item)\"\n            role=\"option\"\n            tabindex=\"-1\">\n            <ng-container [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n                          [ngTemplateOutletContext]=\"{ $implicit: item }\">\n            </ng-container>\n        </li>\n    </ul>\n    <div class=\"combobox-results\"\n         *ngIf=\"noResultsTemplate && items.length === 0 && !busy\">\n        <ng-container [ngTemplateOutlet]=\"noResultsTemplate || defaultnoResultsTemplate\"\n                      [ngTemplateOutletContext]=\"{ $implicit: searchTerm }\">\n        </ng-container>\n    </div>\n</div>\n<ul *ngIf=\"selectedItems.length > 0\"\n    role=\"list\"\n    class=\"grid grid-cols-1\">\n    <li *ngFor=\"let item of selectedItems; let i = index\"\n        class=\"mt-3\">\n        <ng-container [ngTemplateOutlet]=\"selectedItemTemplate || defaultSelectedItemTemplate\"\n                      [ngTemplateOutletContext]=\"{ $implicit: item }\">\n        </ng-container>\n    </li>\n</ul>\n<ng-template #defaultnoResultsTemplate\n             let-searchTerm>\n    <span class=\"combobox-default-item-template\">No results found for <i>{{ searchTerm }}</i></span>\n</ng-template>\n<ng-template #defaultItemTemplate\n             let-item>\n    <span class=\"combobox-default-item-template\">{{ item }}</span>\n</ng-template>\n<ng-template #defaultSelectedItemTemplate\n             let-item>\n    <div class=\"grid grid-cols-1\">\n        <div class=\"combobox-selected-item-wrapper\">\n            <div class=\"flex-1 min-w-0\">\n                <div class=\"focus:outline-none\">\n                    <span class=\"absolute\"\n                          aria-hidden=\"true\">\n                    </span>\n                    <p class=\"text-sm font-medium text-gray-900\">{{ item }}</p>\n                </div>\n            </div>\n            <div class=\"ml-4 flex-shrink-0 flex\">\n                <button type=\"button\"\n                        (click)=\"removeItem(item)\"\n                        class=\"combobox-selected-item-remove-btn\">\n                    <span class=\"sr-only\">Close</span>\n                    <svg class=\"h-5 w-5\"\n                         xmlns=\"http://www.w3.org/2000/svg\"\n                         viewBox=\"0 0 20 20\"\n                         fill=\"currentColor\"\n                         aria-hidden=\"true\">\n                        <path fill-rule=\"evenodd\"\n                              d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n                              clip-rule=\"evenodd\" />\n                    </svg>\n                </button>\n            </div>\n        </div>\n    </div>\n</ng-template>","import { Component, EventEmitter, Input, OnInit, Output, TemplateRef } from '@angular/core';\nimport { Subject, debounceTime, distinctUntilChanged } from 'rxjs';\n\n@Component({\n    selector: 'lib-enhanced-combobox',\n    templateUrl: './enhanced-combobox.component.html',\n    standalone: false\n})\nexport class EnhancedComboboxComponent implements OnInit {\n    private _debouncer: Subject<string> = new Subject<string>();\n    private _items: any[] = [];\n\n    constructor() { }\n\n    @Input() public id: string = 'combobox';\n    @Input() public placeholder: string | undefined;\n    @Input() public itemTemplate: TemplateRef<HTMLElement> | undefined = undefined;\n    @Input() public selectedItemTemplate: TemplateRef<HTMLElement> | undefined = undefined;\n    @Input() public noResultsTemplate: TemplateRef<unknown> | undefined = undefined;\n    @Input() public busy: boolean = false;\n    @Input() public multiple: boolean = true;\n    @Input() public debounceMs: number = 1000;\n    @Input() public displayShowMoreOption: boolean = false;\n    @Input() public equalityPredicate: (item: any, otherItem: any) => boolean = (x, y) => x === y;\n    @Input() public selectedItemsFilter: (item: any) => boolean = () => true;\n\n    @Input('items') public set items(items: any[]) {\n        this._items = items;\n    }\n    public get items(): any[] {\n        return this._items.filter(this.selectedItemsFilter);\n    }\n\n    @Output() public onSearch: EventEmitter<string | undefined> = new EventEmitter();\n    @Output() public onItemSelected: EventEmitter<any> = new EventEmitter();\n    @Output() public onShowMore: EventEmitter<any> = new EventEmitter();\n\n    public showResults: boolean = false;\n    public selectedItems: any[] = [];\n    public value: string | undefined;\n    protected searchTerm: string = '';\n\n    public ngOnInit(): void {\n        this.emitSearchEvent();\n        this._debouncer\n            .pipe(\n                debounceTime(this.debounceMs),\n                distinctUntilChanged()\n            )\n            .subscribe((value: string) => {\n                this.searchTerm = value;\n                this.emitSearchEvent(value);\n            });\n    }\n\n    public onInputClick(): void {\n        this.showResults = true;\n    }\n\n    public onClickOutside(): void {\n        this.showResults = false;\n    }\n\n    public onInputKeyUp(event: any): void {\n        this._debouncer.next(event.currentTarget.value);\n    }\n\n    public onListItemSelected(item: any): void {\n        this.onItemSelected.emit(item);\n        if (this.multiple) {\n            const index = this.selectedItems.findIndex(x => this.equalityPredicate(x, item));\n            if (index < 0) {\n                this.selectedItems.push(item);\n            }\n        } else {\n            this.value = item;\n        }\n    }\n\n    public removeItem(item: any): void {\n        const index = this.selectedItems.findIndex(x => this.equalityPredicate(x, item));\n        if (index > -1) {\n            this.selectedItems.splice(index, 1);\n        }\n    }\n\n    private emitSearchEvent(searchTerm: string | undefined = undefined): void {\n        this.onSearch.emit(searchTerm);\n    }\n\n    public emitShowMoreEvent(event: MouseEvent): void {\n        event.stopPropagation();\n        this.onShowMore.emit();\n    }\n}","<div class=\"combobox-wrapper\" (clickOutside)=\"onClickOutside()\">\n    <form autocomplete=\"off\"\n          [id]=\"id + '-form'\">\n        <input [id]=\"id\"\n               title=\"combobox input\"\n               type=\"text\"\n               (click)=\"onInputClick()\"\n               (clickOutside)=\"onClickOutside()\"\n               (keyup)=\"onInputKeyUp($event)\"\n               class=\"combobox-input\"\n               role=\"combobox\"\n               aria-controls=\"options\"\n               aria-expanded=\"false\"\n               autocomplete=\"off\"\n               list=\"autocomplete\"\n               [value]=\"value || ''\"\n               [placeholder]=\"placeholder || ''\">\n    </form>\n    <div class=\"combobox-icons\">\n        <svg *ngIf=\"!busy\"\n             xmlns=\"http://www.w3.org/2000/svg\"\n             class=\"h-6 w-6 text-gray-400\"\n             fill=\"none\"\n             viewBox=\"0 0 24 24\"\n             stroke=\"currentColor\"\n             stroke-width=\"2\">\n            <path stroke-linecap=\"round\"\n                  stroke-linejoin=\"round\"\n                  d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />\n        </svg>\n        <svg *ngIf=\"busy\"\n             class=\"animate-spin h-6 w-6 text-gray-400\"\n             xmlns=\"http://www.w3.org/2000/svg\"\n             fill=\"none\"\n             viewBox=\"0 0 24 24\">\n            <circle class=\"opacity-25\"\n                    cx=\"12\"\n                    cy=\"12\"\n                    r=\"10\"\n                    stroke=\"currentColor\"\n                    stroke-width=\"4\">\n            </circle>\n            <path class=\"opacity-75\"\n                  fill=\"currentColor\"\n                  d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\n        </svg>\n    </div>\n    <ul [id]=\"id + '-results'\"\n        *ngIf=\"showResults && items.length > 0\"\n        class=\"combobox-results\"\n        role=\"listbox\">\n        <li *ngFor=\"let item of items; let i = index\"\n            [id]=\"'option-'+ i\"\n            (click)=\"onListItemSelected(item)\"\n            role=\"option\"\n            tabindex=\"-1\">\n            <ng-container [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\"\n                          [ngTemplateOutletContext]=\"{ $implicit: item }\">\n            </ng-container>\n        </li>\n        <li *ngIf=\"displayShowMoreOption\"\n            role=\"option\"\n            tabindex=\"-1\">\n            <ng-container [ngTemplateOutlet]=\"showMoreItemTemplate\" />\n        </li>\n    </ul>\n    <div class=\"combobox-results\"\n         *ngIf=\"noResultsTemplate && items.length === 0 && !busy\">\n        <ng-container [ngTemplateOutlet]=\"noResultsTemplate || defaultnoResultsTemplate\"\n                      [ngTemplateOutletContext]=\"{ $implicit: searchTerm }\">\n        </ng-container>\n    </div>\n</div>\n<ul *ngIf=\"selectedItems.length > 0\"\n    role=\"list\"\n    class=\"grid grid-cols-1\">\n    <li *ngFor=\"let item of selectedItems; let i = index\"\n        class=\"mt-3\">\n        <ng-container [ngTemplateOutlet]=\"selectedItemTemplate || defaultSelectedItemTemplate\"\n                      [ngTemplateOutletContext]=\"{ $implicit: item }\">\n        </ng-container>\n    </li>\n</ul>\n<ng-template #defaultnoResultsTemplate\n             let-searchTerm>\n    <span class=\"combobox-default-item-template\">No results found for <i>{{ searchTerm }}</i></span>\n</ng-template>\n<ng-template #defaultItemTemplate\n             let-item>\n    <span class=\"combobox-default-item-template\">{{ item }}</span>\n</ng-template>\n<ng-template #showMoreItemTemplate>\n    <span (click)=\"emitShowMoreEvent($event)\" class=\"btn btn-link text-blue-600 hover:bg-gray-100 flex justify-center relative cursor-pointer select-none py-2 pl-3 pr-3 block truncate\">Show More</span>\n</ng-template>\n<ng-template #defaultSelectedItemTemplate\n             let-item>\n    <div class=\"grid grid-cols-1\">\n        <div class=\"combobox-selected-item-wrapper\">\n            <div class=\"flex-1 min-w-0\">\n                <div class=\"focus:outline-none\">\n                    <span class=\"absolute\"\n                          aria-hidden=\"true\">\n                    </span>\n                    <p class=\"text-sm font-medium text-gray-900\">{{ item }}</p>\n                </div>\n            </div>\n            <div class=\"ml-4 flex-shrink-0 flex\">\n                <button type=\"button\"\n                        (click)=\"removeItem(item)\"\n                        class=\"combobox-selected-item-remove-btn\">\n                    <span class=\"sr-only\">Close</span>\n                    <svg class=\"h-5 w-5\"\n                         xmlns=\"http://www.w3.org/2000/svg\"\n                         viewBox=\"0 0 20 20\"\n                         fill=\"currentColor\"\n                         aria-hidden=\"true\">\n                        <path fill-rule=\"evenodd\"\n                              d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n                              clip-rule=\"evenodd\" />\n                    </svg>\n                </button>\n            </div>\n        </div>\n    </div>\n</ng-template>","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n    selector: '[libTabLabel]',\n    standalone: false\n})\nexport class LibTabLabelDirective {\n    constructor(public template: TemplateRef<any>) { }\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, Inject, Input, OnInit, Optional, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\n\nimport * as uuid from 'uuid';\nimport { LIBTABGROUP_ACCESSOR } from '../../tokens';\nimport { LibTabLabelDirective } from './lib-tab-label.directive';\n\n@Component({\n    selector: 'lib-tab',\n    template: `\n        <ng-template>\n            <ng-content></ng-content>\n        </ng-template>\n    `,\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class LibTabComponent implements OnInit {\n    private _isActive: boolean = false;\n\n    constructor(\n        @Optional() @Inject(LIBTABGROUP_ACCESSOR) public readonly _tabGroup?: any\n    ) { }\n\n    /** The content provided for the tab. */\n    @ViewChild(TemplateRef, { static: true }) public content: TemplateRef<any> | null = null;\n    /** A label template for the tab header. */\n    @ContentChild(LibTabLabelDirective) public label: LibTabLabelDirective | undefined;\n    /** Indicates the unique id assigned in the tab. */\n    @Input() public id: string | undefined;\n    @Input() public labelText: string | undefined;\n\n    /** Indicates the index of the tab. */\n    public get index(): number {\n        const index = this._tabGroup?.tabs.toArray()?.indexOf(this);\n        return index;\n    }\n\n    /** Indicates whether the tab is active. */\n    public get isActive(): boolean {\n        return this._isActive;\n    }\n\n    /** Setter for LibTabComponent isActive property. */\n    public set isActive(isActive: boolean) {\n        this._isActive = isActive;\n    }\n\n    public ngOnInit(): void {\n        this.id = this.id || uuid.v4();\n    }\n}","import { AfterContentChecked, AfterContentInit, Component, ContentChildren, EventEmitter, forwardRef, OnInit, Output, QueryList } from '@angular/core';\n\nimport { LIBTABGROUP_ACCESSOR } from '../../tokens';\nimport { LibTabComponent } from './lib-tab.component';\n\n@Component({\n    selector: 'lib-tab-group',\n    templateUrl: './lib-tab-group.component.html',\n    providers: [\n        { provide: LIBTABGROUP_ACCESSOR, useExisting: forwardRef(() => LibTabGroupComponent) }\n    ],\n    standalone: false\n})\nexport class LibTabGroupComponent implements OnInit, AfterContentInit, AfterContentChecked {\n    constructor() { }\n\n    /** The inner tabs of the group. */\n    @ContentChildren(LibTabComponent, { descendants: true }) public tabs: QueryList<LibTabComponent> | undefined = undefined;\n    /** Emmited when a step change occurs. */\n    @Output() protected tabChanged: EventEmitter<LibTabComponent> = new EventEmitter<LibTabComponent>();\n\n    /** The current tab. */\n    public get currentTab(): LibTabComponent | undefined {\n        return this.tabs?.find(x => x.isActive);\n    }\n\n    /** The index (starting from zero) of the current tab. */\n    public get currentΤabIndex(): number | undefined {\n        return this.currentTab?.index || undefined;\n    }\n\n    public ngOnInit(): void { }\n\n    protected onTabChanged(selectedTab: LibTabComponent): void {\n        if (selectedTab.isActive) {\n            return;\n        }\n        this.tabs?.forEach((tab: LibTabComponent) => tab.isActive = tab.id === selectedTab.id);\n        this.tabChanged.emit(selectedTab);\n    }\n\n    protected onTabSelectChanged(selectedTabIndex: number): void {\n        if (selectedTabIndex === this.currentΤabIndex) {\n            return;\n        }\n        this.tabs?.forEach((tab: LibTabComponent, index: number) => tab.isActive = index === selectedTabIndex);\n        this.tabChanged.emit(this.tabs?.get(selectedTabIndex));\n    }\n\n    public ngAfterContentInit(): void {\n        if (!this.tabs) {\n            return;\n        }\n    }\n\n    public ngAfterContentChecked(): void {\n        if (this.tabs && this.tabs.length > 0) {\n            const anyActive = this.tabs.filter(x => x.isActive).length > 0;\n            if (!anyActive) {\n                this.tabs.get(0)!.isActive = true;\n            }\n        }\n    }\n}","<div class=\"tab-group-select-hidden\">\n    <label for=\"tabs\"\n           class=\"sr-only\">\n        Select a tab\n    </label>\n    <select id=\"tabs\"\n            name=\"tabs\"\n            (change)=\"onTabSelectChanged(+tabsSelect.value)\"\n            class=\"tab-group-select\"\n            #tabsSelect>\n        <option [value]=\"i\"\n                *ngFor=\"let tab of tabs; let i = index\">\n            {{ tab.labelText }}\n        </option>\n    </select>\n</div>\n<div class=\"tab-group-container-hidden\">\n    <div class=\"tab-group-container\">\n        <nav class=\"tab-group-container-nav\"\n             aria-label=\"Tabs\">\n            <a *ngFor=\"let tab of tabs\"\n               href=\"javascript:void(0)\"\n               [class.tab]=\"!tab.isActive\"\n               [class.tab-active]=\"tab.isActive\"\n               (click)=\"onTabChanged(tab)\">\n                <ng-container *ngTemplateOutlet=\"tab.label ? tab.label.template: defaultTabLabel; context:{ $implicit: tab }\"></ng-container>\n            </a>\n        </nav>\n    </div>\n</div>\n<div *ngIf=\"currentTab?.content\">\n    <ng-container [ngTemplateOutlet]=\"currentTab?.content || emptyTemplate\"></ng-container>\n</div>\n<ng-template let-tab\n             #defaultTabLabel>\n    {{ tab.labelText || 'tab-' + (tab.index + 1) }}\n</ng-template>\n<ng-template #emptyTemplate></ng-template>","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n    selector: '[libStepInfo]',\n    standalone: false\n})\nexport class LibStepInfoDirective {\n    constructor(public template: TemplateRef<any>) { }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n    selector: '[libStepLabel]',\n    standalone: false\n})\nexport class LibStepLabelDirective {\n    constructor(public template: TemplateRef<any>) { }\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, Inject, Input, Optional, TemplateRef, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\n\nimport { LIBSTEPPER_ACCESSOR } from '../../tokens';\nimport { LibStepInfoDirective } from './lib-step-info.directive';\nimport { LibStepLabelDirective } from './lib-step-label.directive';\n\nexport enum StepState {\n    Active = 'Active',\n    Completed = 'Completed',\n    Upcoming = 'Upcoming'\n};\n\n@Component({\n    selector: 'lib-step',\n    template: `\n        <ng-template>\n            <ng-content></ng-content>\n        </ng-template>\n    `,\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    standalone: false\n})\nexport class LibStepComponent {\n    constructor(\n        @Optional() @Inject(LIBSTEPPER_ACCESSOR) public readonly _stepper?: any\n    ) { }\n\n    /** The content provided for the step. */\n    @ViewChild(TemplateRef, { static: true }) public content!: TemplateRef<any>;\n    /** The label of the step displayed in header, if applicable. */\n    @ContentChild(LibStepLabelDirective) public stepLabel: LibStepLabelDirective | undefined;\n    /** The info of the step displayed in header, if applicable. */\n    @ContentChild(LibStepInfoDirective) public stepInfo: LibStepInfoDirective | undefined;\n    /** An optional CSS class for the step header. */\n    @Input() public class: string | undefined;\n    /** The abstract control of the step. */\n    @Input() public stepControl: AbstractControl | undefined;\n\n    /** Indicates the index of the step. */\n    public get index(): number {\n        return this._stepper ? this._stepper.steps.toArray().indexOf(this) : -1;\n    }\n\n    /** Indicates whether this step is the last step. */\n    public get isLast(): boolean {\n        return this._stepper ? this._stepper.steps.length - 1 === this.index : false;\n    }\n\n    /** Indicates whether you can navigate to the step or not. */\n    public get isValid(): boolean {\n        if (!this.stepControl) {\n            return true;\n        }\n        return this.stepControl.valid;\n    }\n\n    /** Shows the current state of the step. */\n    public get state(): StepState {\n        const currentIndex = this._stepper?.currentStepIndex;\n        if (currentIndex === this.index) {\n            return StepState.Active;\n        }\n        if (currentIndex > this.index) {\n            return StepState.Completed;\n        }\n        return StepState.Upcoming;\n    }\n}\n","export enum StepperType {\n    Bullets = 'Bullets',\n    BulletsAndText = 'BulletsAndText',\n    Circles = 'Circles',\n    CirclesWithText = 'CirclesWithText',\n    Panels = 'Panels',\n    PanelsWithBorder = 'PanelsWithBorder',\n    Progress = 'Progress',\n    Simple = 'Simple'\n}","import { AfterViewChecked, ChangeDetectorRef, Component, ContentChildren, EventEmitter, forwardRef, Input, OnInit, Output, QueryList } from '@angular/core';\n\nimport { LibStepComponent, StepState } from './lib-step.component';\nimport { LIBSTEPPER_ACCESSOR } from '../../tokens';\nimport { StepperType } from './types/stepper-type';\nimport { StepSelectedEvent } from './types/step-selected-event';\n\n@Component({\n    selector: 'lib-stepper',\n    templateUrl: './lib-stepper.component.html',\n    providers: [\n        { provide: LIBSTEPPER_ACCESSOR, useExisting: forwardRef(() => LibStepperComponent) }\n    ],\n    standalone: false\n})\nexport class LibStepperComponent implements OnInit, AfterViewChecked {\n    // Private properties.\n    private _currentStepIndex: number = 0;\n    private _isCompleted = false;\n\n    constructor(private _changeDetectorRef: ChangeDetectorRef) { }\n\n    /** The inner steps of the wizard. */\n    @ContentChildren(LibStepComponent, { descendants: true }) public steps!: QueryList<LibStepComponent>;\n    /** Emmited when a step change occurs. */\n    @Output() public readonly stepChanged = new EventEmitter<StepSelectedEvent>();\n    /** Emmited when the stepper navigates away from the final step. Only emits once. */\n    @Output() public readonly completed = new EventEmitter<void>();\n    /** Indicates whether each step has to be validated before proceeding to the next. */\n    @Input() public linear: boolean = false;\n    /** The type of the stepper. */\n    @Input() public type: StepperType = StepperType.Panels;\n    public StepState = StepState;\n    public StepperType = StepperType;\n\n    /** The current wizard step. */\n    public get currentStep(): LibStepComponent | undefined {\n        return this.steps?.get(this._currentStepIndex);\n    }\n\n    /** The index (starting from zero) of the current wizard step. */\n    public get currentStepIndex(): number {\n        return this._currentStepIndex;\n    }\n\n    /** Indicates whether stepper can go a step back. */\n    public get canGoBack(): boolean {\n        return this._currentStepIndex > 0;\n    }\n\n    /** Indicates whether stepper can go a step forward. */\n    public get canGoForward(): boolean {\n        return this._currentStepIndex < this.steps?.length - 1;\n    }\n\n    /** Indicates whether  */\n    public get isCompleted(): boolean {\n        return this._isCompleted;\n    }\n\n    public ngOnInit(): void { }\n\n    public ngAfterViewChecked(): void {\n        this._changeDetectorRef.detectChanges();\n    }\n\n    /** Proceeds to the next step, if any. */\n    public goToNextStep(): void {\n        if (this.currentStep?.isLast && !this._isCompleted) {\n            this._isCompleted = true;\n            this.completed.emit();\n        }\n        if (!this.canGoForward) {\n            return;\n        }\n        this.updateCurrentStepIndex(this._currentStepIndex + 1);\n    }\n\n    /** Proceeds to the previous step, if any. */\n    public goToPreviousStep(): void {\n        if (!this.canGoBack) {\n            return;\n        }\n        this.updateCurrentStepIndex(this._currentStepIndex - 1);\n    }\n\n    public onSelectStep(selectedStep: LibStepComponent): void {\n        this.updateCurrentStepIndex(selectedStep.index);\n    }\n\n    private updateCurrentStepIndex(newIndex: number): void {\n        const stepsArray = this.steps.toArray();\n        const currentStep = stepsArray[this.currentStepIndex];\n        const shouldStop = this.linear && (\n            (!currentStep.isValid && newIndex >= this.currentStepIndex) || // If current step is invalid and want to go forward, then stop.\n            (currentStep.isValid && newIndex > this.currentStepIndex + 1 && stepsArray.slice(this.currentStepIndex + 1, newIndex).some(x => !x.isValid)) // If going forward (more than 1 steps), check if there are any invalid steps in between.\n        );\n        if (shouldStop) {\n            return;\n        }\n        this.stepChanged.emit({\n            selectedIndex: newIndex,\n            previouslySelectedIndex: this.currentStepIndex,\n            selectedStep: stepsArray[newIndex],\n            previouslySelectedStep: currentStep\n        });\n        this._currentStepIndex = newIndex;\n    }\n}\n","<ng-container [ngSwitch]=\"type\">\n    <!-- Bullets -->\n    <nav class=\"stepper-bullets-container\"\n         aria-label=\"Progress\"\n         *ngSwitchCase=\"StepperType.Bullets\">\n        <p class=\"stepper-bullets-counter\">Step {{ currentStepIndex + 1 }} of {{ steps.length }}</p>\n        <ol role=\"list\"\n            class=\"stepper-bullets-ol\">\n            <li class=\"cursor-pointer\"\n                *ngFor=\"let step of steps\"\n                (click)=\"onSelectStep(step)\">\n                <!-- Completed Step -->\n                <div class=\"stepper-bullets-completed-step\"\n                     *ngIf=\"step.state === StepState.Completed\">\n                    <span class=\"sr-only\">Step {{ step.index }}</span>\n                </div>\n                <!-- Active Step -->\n                <div class=\"stepper-bullets-active-step\"\n                     aria-current=\"step\"\n                     *ngIf=\"step.state === StepState.Active\">\n                    <span class=\"stepper-bullets-active-step-level1\"\n                          aria-hidden=\"true\">\n                        <span class=\"stepper-bullets-active-step-level1\"></span>\n                    </span>\n                    <span class=\"stepper-bullets-active-step-bullet\"\n                          aria-hidden=\"true\">\n                    </span>\n                    <span class=\"sr-only\">Step {{ step.index }}</span>\n                </div>\n                <!-- Upcoming Step -->\n                <div href=\"#\"\n                     class=\"stepper-bullets-upcoming-step\"\n                     *ngIf=\"step.state === StepState.Upcoming\">\n                    <span class=\"sr-only\">Step {{ step.index }}</span>\n                </div>\n            </li>\n        </ol>\n    </nav>\n    <!-- Bullets & Text -->\n    <div class=\"stepper-bullets-and-text-container\"\n         aria-label=\"Progress\"\n         *ngSwitchCase=\"StepperType.BulletsAndText\">\n        <nav aria-label=\"Progress\">\n            <ol role=\"list\"\n                class=\"stepper-bullets-and-text-ol\">\n                <li class=\"cursor-pointer\"\n                    *ngFor=\"let step of steps\"\n                    (click)=\"onSelectStep(step)\">\n                    <!-- Complete Step -->\n                    <div class=\"group\"\n                         *ngIf=\"step.state === StepState.Completed\">\n                        <span class=\"stepper-bullets-and-text-completed-step\">\n                            <span class=\"stepper-bullets-and-text-completed-step-level1\">\n                                <svg class=\"h-full w-full text-blue-600 group-hover:text-blue-800\"\n                                     xmlns=\"http://www.w3.org/2000/svg\"\n                                     viewBox=\"0 0 20 20\"\n                                     fill=\"currentColor\"\n                                     aria-hidden=\"true\">\n                                    <path fill-rule=\"evenodd\"\n                                          d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\n                                          clip-rule=\"evenodd\" />\n                                </svg>\n                            </span>\n                            <span class=\"stepper-bullets-and-text-completed-step-container\"\n                                  *ngIf=\"step.stepLabel\">\n                                <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                            </span>\n                        </span>\n                    </div>\n                    <!-- Active Step -->\n                    <div class=\"stepper-bullets-and-text-active-step\"\n                         aria-current=\"step\"\n                         *ngIf=\"step.state === StepState.Active\">\n                        <span class=\"stepper-bullets-and-text-active-step-level1\"\n                              aria-hidden=\"true\">\n                            <span class=\"stepper-bullets-and-text-active-step-level11\"></span>\n                            <span class=\"stepper-bullets-and-text-active-step-level12\"></span>\n                        </span>\n                        <span class=\"stepper-bullets-and-text-active-step-container\"\n                              *ngIf=\"step.stepLabel\">\n                            <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                        </span>\n                    </div>\n                    <!-- Upcoming Step -->\n                    <div class=\"group\"\n                         *ngIf=\"step.state === StepState.Upcoming\">\n                        <div class=\"stepper-bullets-and-text-upcoming-step\">\n                            <div class=\"stepper-bullets-and-text-upcoming-step-level1\"\n                                 aria-hidden=\"true\">\n                                <div class=\"stepper-bullets-and-text-upcoming-step-level2\"></div>\n                            </div>\n                            <p class=\"stepper-bullets-and-text-upcoming-step-container\"\n                               *ngIf=\"step.stepLabel\">\n                                <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                            </p>\n                        </div>\n                    </div>\n                </li>\n            </ol>\n        </nav>\n    </div>\n    <!-- Circles -->\n    <nav class=\"flex justify-center\"\n         aria-label=\"Progress\"\n         *ngSwitchCase=\"StepperType.Circles\">\n        <ol class=\"flex items-center\"\n            role=\"list\">\n            <li *ngFor=\"let step of steps\"\n                (click)=\"onSelectStep(step)\"\n                class=\"relative pr-8 sm:pr-20 cursor-pointer\">\n                <!-- Completed Step -->\n                <ng-container *ngIf=\"step.state === StepState.Completed\">\n                    <div class=\"absolute inset-0 flex items-center\"\n                         aria-hidden=\"true\">\n                        <div class=\"h-0.5 w-full bg-blue-600\"></div>\n                    </div>\n                    <div class=\"relative w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full hover:bg-blue-900\">\n                        <svg class=\"w-5 h-5 text-white\"\n                             xmlns=\"http://www.w3.org/2000/svg\"\n                             viewBox=\"0 0 20 20\"\n                             fill=\"currentColor\"\n                             aria-hidden=\"true\">\n                            <path fill-rule=\"evenodd\"\n                                  d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n                                  clip-rule=\"evenodd\" />\n                        </svg>\n                        <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\n                    </div>\n                </ng-container>\n                <!-- Active Step -->\n                <ng-container *ngIf=\"step.state === StepState.Active\">\n                    <div class=\"absolute inset-0 flex items-center\"\n                         aria-hidden=\"true\">\n                        <div class=\"h-0.5 w-full bg-gray-200\"></div>\n                    </div>\n                    <div class=\"relative w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\"\n                         aria-current=\"step\">\n                        <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\"\n                              aria-hidden=\"true\"></span>\n                        <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\n                    </div>\n                </ng-container>\n                <!-- Upcoming Step -->\n                <ng-container *ngIf=\"step.state === StepState.Upcoming\">\n                    <div class=\"absolute inset-0 flex items-center\"\n                         aria-hidden=\"true\">\n                        <div class=\"h-0.5 w-full bg-gray-200\"></div>\n                    </div>\n                    <div class=\"group relative w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full hover:border-gray-400\">\n                        <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\"\n                              aria-hidden=\"true\"></span>\n                        <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\n                    </div>\n                </ng-container>\n            </li>\n        </ol>\n    </nav>\n    <!-- Circles With Text -->\n    <nav class=\"flex items-center justify-center\"\n         aria-label=\"Progress\"\n         *ngSwitchCase=\"StepperType.CirclesWithText\">\n        <ol role=\"list\"\n            class=\"overflow-hidden\">\n            <li *ngFor=\"let step of steps\"\n                (click)=\"onSelectStep(step)\"\n                class=\"relative pb-10 cursor-pointer\">\n                <!-- Complete Step -->\n                <ng-container *ngIf=\"step.state === StepState.Completed\">\n                    <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-blue-600\"\n                         aria-hidden=\"true\"\n                         *ngIf=\"!step.isLast\"></div>\n                    <div class=\"relative flex items-start group\">\n                        <span class=\"h-9 flex items-center\">\n                            <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\n                                <svg class=\"w-5 h-5 text-white\"\n                                     xmlns=\"http://www.w3.org/2000/svg\"\n                                     viewBox=\"0 0 20 20\"\n                                     fill=\"currentColor\"\n                                     aria-hidden=\"true\">\n                                    <path fill-rule=\"evenodd\"\n                                          d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n                                          clip-rule=\"evenodd\" />\n                                </svg>\n                            </span>\n                        </span>\n                        <span class=\"ml-4 min-w-0 flex flex-col\">\n                            <span class=\"text-xs font-semibold tracking-wide uppercase\"\n                                  *ngIf=\"step.stepLabel\">\n                                <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                            </span>\n                            <span class=\"text-sm text-gray-500\"\n                                  *ngIf=\"step.stepInfo\">\n                                <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\n                            </span>\n                        </span>\n                    </div>\n                </ng-container>\n                <!-- Active Step -->\n                <ng-container *ngIf=\"step.state === StepState.Active\">\n                    <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\"\n                         aria-hidden=\"true\"\n                         *ngIf=\"!step.isLast\"></div>\n                    <div class=\"relative flex items-start group\"\n                         aria-current=\"step\">\n                        <span class=\"h-9 flex items-center\"\n                              aria-hidden=\"true\">\n                            <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\">\n                                <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\"></span>\n                            </span>\n                        </span>\n                        <span class=\"ml-4 min-w-0 flex flex-col\">\n                            <span class=\"text-xs font-semibold tracking-wide uppercase text-blue-600\"\n                                  *ngIf=\"step.stepLabel\">\n                                <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                            </span>\n                            <span class=\"text-sm text-gray-500\"\n                                  *ngIf=\"step.stepInfo\">\n                                <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\n                            </span>\n                        </span>\n                    </div>\n                </ng-container>\n                <!-- Upcoming Step -->\n                <ng-container *ngIf=\"step.state === StepState.Upcoming\">\n                    <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\"\n                         aria-hidden=\"true\"\n                         *ngIf=\"!step.isLast\"></div>\n                    <div href=\"#\"\n                         class=\"relative flex items-start group\">\n                        <span class=\"h-9 flex items-center\"\n                              aria-hidden=\"true\">\n                            <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\n                                <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\"></span>\n                            </span>\n                        </span>\n                        <span class=\"ml-4 min-w-0 flex flex-col\">\n                            <span class=\"text-xs font-semibold tracking-wide uppercase text-gray-500\"\n                                  *ngIf=\"step.stepLabel\">\n                                <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                            </span>\n                            <span class=\"text-sm text-gray-500\"\n                                  *ngIf=\"step.stepInfo\">\n                                <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\n                            </span>\n                        </span>\n                    </div>\n                </ng-container>\n            </li>\n        </ol>\n    </nav>\n    <!-- Panels -->\n    <nav aria-label=\"Progress\"\n         *ngSwitchCase=\"StepperType.Panels\">\n        <ol role=\"list\"\n            class=\"border border-gray-300 rounded-md divide-y divide-gray-300 md:flex md:divide-y-0\">\n            <li *ngFor=\"let step of steps\"\n                (click)=\"onSelectStep(step)\"\n                class=\"relative md:flex-1 md:flex cursor-pointer\">\n                <!-- Completed step -->\n                <div class=\"group flex items-center w-full\"\n                     *ngIf=\"step.state === StepState.Completed\">\n                    <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\n                        <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\n                            <svg class=\"w-6 h-6 text-white\"\n                                 xmlns=\"http://www.w3.org/2000/svg\"\n                                 viewBox=\"0 0 20 20\"\n                                 fill=\"currentColor\"\n                                 aria-hidden=\"true\">\n                                <path fill-rule=\"evenodd\"\n                                      d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n                                      clip-rule=\"evenodd\" />\n                            </svg>\n                        </span>\n                        <span class=\"ml-4 text-sm font-medium text-gray-900\"\n                              *ngIf=\"step.stepLabel\">\n                            <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                        </span>\n                    </span>\n                </div>\n                <!-- Active step -->\n                <div class=\"px-6 py-4 flex items-center text-sm font-medium\"\n                     *ngIf=\"step.state === StepState.Active\">\n                    <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-blue-600 rounded-full\">\n                        <span class=\"text-blue-600\">{{ (step.index + 1) }}</span>\n                    </span>\n                    <span class=\"ml-4 text-sm font-medium text-blue-600\"\n                          *ngIf=\"step.stepLabel\">\n                        <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                    </span>\n                </div>\n                <!-- Upcoming step -->\n                <div class=\"group flex items-center\"\n                     *ngIf=\"step.state === StepState.Upcoming\">\n                    <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\n                        <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\n                            <span class=\"text-gray-500 group-hover:text-gray-900\">{{ (step.index + 1) }}</span>\n                        </span>\n                        <span class=\"ml-4 text-sm font-medium text-gray-500 group-hover:text-gray-900\"\n                              *ngIf=\"step.stepLabel\">\n                            <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                        </span>\n                    </span>\n                </div>\n                <!-- Arrow separator for lg screens and up -->\n                <div *ngIf=\"!step.isLast\"\n                     class=\"hidden md:block absolute top-0 right-0 h-full w-5\"\n                     aria-hidden=\"true\">\n                    <svg class=\"h-full w-full text-gray-300\"\n                         viewBox=\"0 0 22 80\"\n                         fill=\"none\"\n                         preserveAspectRatio=\"none\">\n                        <path d=\"M0 -2L20 40L0 82\"\n                              vector-effect=\"non-scaling-stroke\"\n                              stroke=\"currentcolor\"\n                              stroke-linejoin=\"round\" />\n                    </svg>\n                </div>\n            </li>\n        </ol>\n    </nav>\n    <!-- Panels With Border -->\n    <div class=\"panels-with-border-container\"\n         *ngSwitchCase=\"StepperType.PanelsWithBorder\">\n        <nav class=\"panels-with-border-nav\"\n             aria-label=\"Progress\">\n            <ol role=\"list\"\n                class=\"panels-with-border-ol\">\n                <li *ngFor=\"let step of steps\"\n                    (click)=\"onSelectStep(step)\"\n                    class=\"panels-with-border-li\">\n                    <!-- Completed Step -->\n                    <div class=\"panels-with-border-completed-step\"\n                         *ngIf=\"step.state === StepState.Completed\">\n                        <div class=\"group\">\n                            <span class=\"panels-with-border-completed-step-level1\"\n                                  aria-hidden=\"true\">\n                            </span>\n                            <span class=\"panels-with-border-completed-step-level2\">\n                                <span class=\"panels-with-border-completed-step-level21\">\n                                    <span class=\"panels-with-border-completed-step-level211\">\n                                        <svg class=\"w-6 h-6 text-white\"\n                                             xmlns=\"http://www.w3.org/2000/svg\"\n                                             viewBox=\"0 0 20 20\"\n                                             fill=\"currentColor\"\n                                             aria-hidden=\"true\">\n                                            <path fill-rule=\"evenodd\"\n                                                  d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n                                                  clip-rule=\"evenodd\" />\n                                        </svg>\n                                    </span>\n                                </span>\n                                <span class=\"panels-with-border-completed-step-level22\">\n                                    <span class=\"panels-with-border-completed-step-level221\"\n                                          *ngIf=\"step.stepLabel\">\n                                        <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                                    </span>\n                                    <span class=\"panels-with-border-completed-step-level222\"\n                                          *ngIf=\"step.stepInfo\">\n                                        <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\n                                    </span>\n                                </span>\n                            </span>\n                        </div>\n                    </div>\n                    <!-- Active Step -->\n                    <div class=\"panels-with-border-active-step\"\n                         *ngIf=\"step.state === StepState.Active\">\n                        <div aria-current=\"step\">\n                            <span class=\"panels-with-border-active-step-level1\"\n                                  aria-hidden=\"true\">\n                            </span>\n                            <span class=\"panels-with-border-active-step-level2\">\n                                <span class=\"panels-with-border-active-step-level21\">\n                                    <span class=\"panels-with-border-active-step-level211\">\n                                        <span class=\"panels-with-border-active-step-level211-text\">{{ step.index + 1 }}</span>\n                                    </span>\n                                </span>\n                                <span class=\"panels-with-border-active-step-level22\">\n                                    <span class=\"panels-with-border-active-step-level221\"\n                                          *ngIf=\"step.stepLabel\">\n                                        <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                                    </span>\n                                    <span class=\"panels-with-border-active-step-level222\"\n                                          *ngIf=\"step.stepInfo\">\n                                        <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\n                                    </span>\n                                </span>\n                            </span>\n                        </div>\n                        <!-- Separator -->\n                        <div class=\"panels-with-border-step-separator\"\n                             aria-hidden=\"true\"\n                             *ngIf=\"step.index !== 0\">\n                            <svg class=\"h-full w-full text-gray-300\"\n                                 viewBox=\"0 0 12 82\"\n                                 fill=\"none\"\n                                 preserveAspectRatio=\"none\">\n                                <path d=\"M0.5 0V31L10.5 41L0.5 51V82\"\n                                      stroke=\"currentcolor\"\n                                      vector-effect=\"non-scaling-stroke\" />\n                            </svg>\n                        </div>\n                    </div>\n                    <!-- Upcoming Step -->\n                    <div class=\"panels-with-border-upcoming-step\"\n                         *ngIf=\"step.state === StepState.Upcoming\">\n                        <div class=\"group\">\n                            <span class=\"panels-with-border-upcoming-step-level1\"\n                                  aria-hidden=\"true\">\n                            </span>\n                            <span class=\"panels-with-border-upcoming-step-level2\">\n                                <span class=\"panels-with-border-upcoming-step-level21\">\n                                    <span class=\"panels-with-border-upcoming-step-level211\">\n                                        <span class=\"panels-with-border-upcoming-step-level211-text\">{{ step.index + 1 }}</span>\n                                    </span>\n                                </span>\n                                <span class=\"panels-with-border-upcoming-step-level22\">\n                                    <span class=\"panels-with-border-upcoming-step-level221\"\n                                          *ngIf=\"step.stepLabel\">\n                                        <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                                    </span>\n                                    <span class=\"text-sm font-medium text-gray-500\"\n                                          *ngIf=\"step.stepInfo\">\n                                        <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\n                                    </span>\n                                </span>\n                            </span>\n                        </div>\n                        <!-- Separator -->\n                        <div class=\"panels-with-border-step-separator\"\n                             aria-hidden=\"true\"\n                             *ngIf=\"step.index !== 0\">\n                            <svg class=\"h-full w-full text-gray-300\"\n                                 viewBox=\"0 0 12 82\"\n                                 fill=\"none\"\n                                 preserveAspectRatio=\"none\">\n                                <path d=\"M0.5 0V31L10.5 41L0.5 51V82\"\n                                      stroke=\"currentcolor\"\n                                      vector-effect=\"non-scaling-stroke\" />\n                            </svg>\n                        </div>\n                    </div>\n                </li>\n            </ol>\n        </nav>\n    </div>\n    <!-- Progress -->\n    <div *ngSwitchCase=\"StepperType.Progress\">\n        <div class=\"mt-6\"\n             aria-hidden=\"true\">\n            <div class=\"bg-gray-200 rounded-full overflow-hidden\">\n                <div class=\"h-2 bg-blue-600 rounded-full\"\n                     [style.width]=\"(((currentStepIndex + 1) / steps.length) * 100) + '%'\">\n                </div>\n            </div>\n            <div class=\"hidden sm:grid grid-cols-4 text-sm font-medium text-gray-600 mt-6\">\n                <div *ngFor=\"let step of steps\"\n                     (click)=\"onSelectStep(step)\"\n                     class=\"text-blue-600 cursor-pointer\">\n                    <ng-container *ngIf=\"step.stepLabel\"\n                                  [ngTemplateOutlet]=\"step.stepLabel.template\">\n                    </ng-container>\n                </div>\n            </div>\n        </div>\n    </div>\n    <!-- Simple -->\n    <nav aria-label=\"Progress\"\n         *ngSwitchCase=\"StepperType.Simple\">\n        <ol role=\"list\"\n            class=\"space-y-4 md:flex md:space-y-0 md:space-x-8\">\n            <li *ngFor=\"let step of steps\"\n                (click)=\"onSelectStep(step)\"\n                class=\"md:flex-1 cursor-pointer\">\n                <!-- Completed Step -->\n                <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-blue-600 hover:border-blue-800 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\"\n                     *ngIf=\"step.state === StepState.Completed\">\n                    <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase group-hover:text-blue-800\">Step {{ step.index + 1 }}</span>\n                    <span class=\"text-sm font-medium\"\n                          *ngIf=\"step.stepLabel\">\n                        <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                    </span>\n                </div>\n                <!-- Active Step -->\n                <div class=\"pl-4 py-2 flex flex-col border-l-4 border-blue-600 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\"\n                     aria-current=\"step\"\n                     *ngIf=\"step.state === StepState.Active\">\n                    <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase\">Step {{ step.index + 1 }}</span>\n                    <span class=\"text-sm font-medium\"\n                          *ngIf=\"step.stepLabel\">\n                        <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                    </span>\n                </div>\n                <!-- Upcoming Step -->\n                <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-gray-200 hover:border-gray-300 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\"\n                     *ngIf=\"step.state === StepState.Upcoming\">\n                    <span class=\"text-xs text-gray-500 font-semibold tracking-wide uppercase group-hover:text-gray-700\">Step {{ step.index + 1 }}</span>\n                    <span class=\"text-sm font-medium\"\n                          *ngIf=\"step.stepLabel\">\n                        <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\n                    </span>\n                </div>\n            </li>\n        </ol>\n    </nav>\n</ng-container>\n<ng-container *ngFor=\"let step of steps\">\n    <ng-container *ngIf=\"step.state === StepState.Active\"\n                  [ngTemplateOutlet]=\"step.content\">\n    </ng-container>\n</ng-container>","import { LibStepComponent } from '../lib-step.component';\n\n/** Change event emitted on step changes. */\nexport class StepSelectedEvent {\n    /** Index of the step now selected. */\n    public selectedIndex!: number;\n    /** Index of the step previously selected. */\n    public previouslySelectedIndex: number | undefined;\n    /** The step instance now selected. */\n    public selectedStep!: LibStepComponent;\n    /** The step instance previously selected. */\n    public previouslySelectedStep: LibStepComponent | undefined;\n}\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n    selector: 'lib-toggle-button',\n    templateUrl: './toggle-button.component.html',\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => ToggleButtonComponent),\n            multi: true\n        }\n    ],\n    standalone: false\n})\nexport class ToggleButtonComponent implements OnInit {\n  @Input() value: boolean = false;\n  @Input() disabled: boolean = false;\n  @Input() icon: boolean = true;\n  @Input('text') text: string | null | undefined;\n  @Input('text-true') textTrue: string | null | undefined;\n  @Input('text-false') textFalse: string | null | undefined;\n  @Input('description') description: string | null | undefined;\n  @Input('description-true') descriptionTrue: string | null | undefined;\n  @Input('description-false') descriptionFalse: string | null | undefined;\n  @Output() valueChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  private onChange$: any | undefined = undefined;\n  private onTouched$: any | undefined = undefined;\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  writeValue(obj: any): void {\n    if(obj) {\n      this.value = obj || false;\n    }\n  }\n  registerOnChange(fn: any): void {\n    this.onChange$ = fn;\n  }\n  registerOnTouched(fn: any): void {\n    this.onTouched$ = fn;\n  }\n\n  public onBlur(event: any): void {\n    if(this.onTouched$) {\n      this.onTouched$();\n    }\n  }\n\n  public changeValue(){\n    this.value = !this.value;\n    this.valueChange.emit(this.value);\n    if(this.onChange$) {\n      this.onChange$(this.value);\n    }\n    if(this.onTouched$) {\n      this.onTouched$();\n    }\n  }\n\n}\n","<!-- Enabled: \"bg-indigo-600\", Not Enabled: \"bg-gray-200\" -->\n<div class=\"flex items-center\">\n<button type=\"button\"\n    (click)=\"changeValue()\"\n    [disabled]=\"disabled\"\n    class=\"toggle-button-button\" \n    [class.toggle-button-bg-false] = \"!value\"\n    [class.toggle-button-bg-true] = \"value\"\n    [class.toggle-button-button-disabled]=\"disabled\"\n    role=\"switch\" \n    aria-checked=\"false\">\n    <span class=\"sr-only\">{{value ? textTrue : textFalse}}</span>\n    <!-- Enabled: \"translate-x-5\", Not Enabled: \"translate-x-0\" -->\n    <span \n        class=\"toggle-button-icon-container\"\n        [class.toggle-button-icon-container-false] = \"!value\"\n        [class.toggle-button-icon-container-true] = \"value\">\n        <!-- Enabled: \"opacity-0 ease-out duration-100\", Not Enabled: \"opacity-100 ease-in duration-200\" -->\n        <span \n            [class.toggle-button-container-inner-true]=\"value\"\n            [class.toggle-button-container-inner-false]=\"!value\"\n            class=\"toggle-button-icon-container-inner\"\n            aria-hidden=\"true\">\n            <svg *ngIf=\"icon\" class=\"toggle-button-icon\" fill=\"none\" viewBox=\"0 0 12 12\">\n                <path d=\"M4 8l2-2m0 0l2-2M6 6L4 4m2 2l2 2\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\n            </svg>\n        </span>\n        <!-- Enabled: \"opacity-0 ease-out duration-100\", Not Enabled: \"opacity-100 ease-in duration-200\" -->\n        <span \n            [class.toggle-button-container-inner-true]=\"!value\"\n            [class.toggle-button-container-inner-false]=\"value\"\n            class=\"toggle-button-icon-container-inner\"\n            aria-hidden=\"true\">\n            <svg *ngIf=\"icon\" class=\"toggle-button-icon\" fill=\"currentColor\" viewBox=\"0 0 12 12\">\n                <path d=\"M3.707 5.293a1 1 0 00-1.414 1.414l1.414-1.414zM5 8l-.707.707a1 1 0 001.414 0L5 8zm4.707-3.293a1 1 0 00-1.414-1.414l1.414 1.414zm-7.414 2l2 2 1.414-1.414-2-2-1.414 1.414zm3.414 2l4-4-1.414-1.414-4 4 1.414 1.414z\" />\n            </svg>\n        </span>\n    </span>\n</button>\n<span class=\"ml-3\" id=\"toggle-button-labels\">\n    <div class=\"toggle-button-text\">{{value ? textTrue : textFalse}}</div>\n    <div *ngIf=\"text\" class=\"toggle-button-text\">{{text}}</div>\n    <div *ngIf=\"description\" class=\"toggle-button-description\">{{description}}</div>\n    <div class=\"toggle-button-description\">{{value ? descriptionTrue : descriptionFalse}}</div>\n</span>\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { MenuOption } from '../../types';\n\n\n@Component({\n    selector: 'lib-toggle-buttons-list',\n    templateUrl: './toggle-buttons-list.component.html',\n    standalone: false\n})\nexport class ToggleButtonsListComponent implements OnInit {\n  @Input() icon: string | undefined = undefined;\n  @Input() options: MenuOption[] | undefined;\n  @Input() value: any | undefined;\n  @Input() compact: boolean = true;\n  @Input() dropDownMenuPlaceholder = 'Please select...'; // to set it from the outside\n  @Output() valueChange: EventEmitter<any> = new EventEmitter(undefined);\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n  public selectOption(optionValue: any): void {\n    this.value = optionValue;\n    this.valueChange.emit(optionValue);\n  }\n}\n","<div class=\"relative items-center inline-flex\">\n    <div class=\"toggle-buttons-list-icon-container\" *ngIf=\"icon\">\n        <i [class]=\"icon\"></i>\n    </div>\n    <div class=\"toggle-buttons-list-drop-down-compact-container\" *ngIf=\"compact\">\n        <lib-drop-down-menu class=\"toggle-buttons-list-drop-down\" [(selected)]=\"value\" (selectedChange)=\"selectOption($event)\" [options]=\"options\" [placeholder]=\"dropDownMenuPlaceholder\">\n        </lib-drop-down-menu>\n    </div>\n    <div class=\"toggle-buttons-list\" *ngIf=\"!compact\">\n        <ng-template ngFor let-option [ngForOf]=\"options\" let-i=\"index\">\n            <!-- [tooltip]=\"option.description\" -->\n            <button type=\"button\"\n                    [disabled]=\"option.value === value\"\n                    [class.toggle-buttons-list-button-selected]=\"option.value === value\"\n                    class=\"toggle-buttons-list-button\"\n                    (click)=\"selectOption(option.value)\">\n            <div class=\"toggle-buttons-list-button-icon-container\" *ngIf=\"option.icon\">\n                <i [class]=\"option.icon\"></i>\n            </div>\n            <span class=\"toggle-buttons-list-button-button-text\">{{option.text}}</span>\n            <span *ngIf=\"option.data && option.data.count\"\n                class=\"toggle-buttons-list-button-button-count\">{{option.data.count}}\n            </span>\n            </button>\n        </ng-template>\n    </div>\n</div>\n","import { Component, ContentChild, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList, TemplateRef } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n    selector: 'lib-content-tile-header', template: '<ng-content></ng-content>',\n    standalone: false\n})\nexport class ContentTileHeaderComponent {\n  @ContentChild(TemplateRef) template: any | undefined = undefined;\n  constructor() { }\n}\n\n\n@Component({\n    selector: 'lib-content-tile-item', template: '<ng-content></ng-content>',\n    standalone: false\n})\nexport class ContentTileItemComponent {\n  @Input() title: string | undefined;\n  @ContentChild(TemplateRef) template: any | undefined = undefined;\n  constructor() { }\n}\n\n@Component({\n    selector: 'lib-content-tile',\n    templateUrl: './content-tile.component.html',\n    standalone: false\n})\nexport class ContentTileComponent implements OnInit {\n\n  @Input() title: string | undefined = undefined;\n  @Input() busy = false;\n  @Input('show-action') showAction: boolean | undefined = true;\n  @Input('show-footer') showFooter: boolean | undefined = true;\n  @Input('action-text') actionText: string = 'More';\n  // tslint:disable-next-line:no-output-rename\n  @Output('tile-action') tileAction: EventEmitter<any> = new EventEmitter<any>();\n  public selectedIndex = 0;\n\n  public itemTemplates: any[] = [];\n  @ContentChildren(ContentTileItemComponent, { read: ContentTileItemComponent })\n  set items(refs: QueryList<ContentTileItemComponent>) {\n    if (refs) {\n      this.itemTemplates = refs.toArray();\n    }\n  }\n\n  @ContentChild(ContentTileHeaderComponent) header: ContentTileHeaderComponent | undefined = undefined;\n  constructor(private router: Router) { }\n\n  ngOnInit(): void {\n  }\n\n  public emitTileAction($event: any): boolean {\n    $event.preventDefault();\n    $event.stopPropagation();\n    this.tileAction.emit($event);\n    return false;\n  }\n\n}\n\n","<div class=\"card bg-white\" [class.card-deck-busy]=\"busy\">\n  <div class=\"card-body\">\n    <div class=\"kpi-tile-title-container flex align-top\">\n      <button type=\"button\" *ngIf=\"!header\" class=\"kpi-tile-action text-left flex-1 uppercase\" \n              (click)=\"emitTileAction($event)\">{{(this.itemTemplates[selectedIndex].title ?? title) ?? '-'}}\n        </button>\n      <ng-container *ngIf=\"header && header.template\">\n        <div class=\"flex-1\">\n          <ng-template [ngTemplateOutlet]=\"header.template\"></ng-template>\n        </div>\n      </ng-container>\n      <div *ngIf=\"showAction\" class=\"float-right align-top\">\n        <button type=\"button\" class=\"kpi-tile-action text-xs uppercase\" (click)=\"emitTileAction($event)\">{{actionText}}</button>\n      </div>\n    </div>\n    <div class=\"flex items-center\" *ngIf=\"itemTemplates\">\n      <ng-template [ngTemplateOutlet]=\"itemTemplates[selectedIndex].template\"></ng-template>\n    </div>\n    <div class=\"tile-card-footer opacity-25 hover:opacity-75\" *ngIf=\"itemTemplates && itemTemplates.length>1\">\n      <nav class=\"flex items-center justify-between px-4 sm:px-0\">\n        <div class=\"flex w-0 flex-1\"></div>\n        <div class=\"flex items-center justify-between px-2\">\n          <ng-container *ngFor=\"let item of itemTemplates; index as i\">\n            <button type=\"button\"\n                    title=\"details\"\n                    (click)=\"selectedIndex=i\"\n                    [disabled]=\"selectedIndex===i\"\n                    class=\"tile-card-item-btn\"\n                    [class.tile-card-item-btn-available]=\"selectedIndex!==i\"\n                    [class.tile-card-item-btn-selected]=\"selectedIndex===i\">\n            </button>\n          </ng-container>\n        </div>\n        <div class=\"flex w-0 flex-1 justify-end\"></div>\n      </nav>\n    </div>\n  </div>\n</div>\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n\n@Component({\n    selector: 'lib-stats-grid',\n    templateUrl: './stats-grid.component.html',\n    standalone: false\n})\nexport class StatsGridComponent implements OnChanges {\n  @Input() busy = false;\n  @Input() count = 6;\n  public loader: any[] = ['', '', '', '', '', ''];\n  @Input() mode: string = 'normal';\n  @Input() labels: string[] = ['Online', 'Offline', 'Faulted'];\n  @Input() values: number[] = [10, 20, 30];\n  @Input() colors: string[] = [\n    'rgb(53, 177, 201, 0.6)',\n    'rgb(168, 162, 158, 0.2)',\n    'rgb(233, 96, 96, 0.8)'\n  ];\n\n  constructor() {\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.count) {\n      this.loader = [];\n      for (let i = 0; i <= this.count; i++) {\n        this.loader.push('');\n      }\n    }\n  }\n\n  public isNumber(value: any): boolean {\n    return !isNaN(Number(value));;\n  }\n}\n","<div *ngIf=\"!busy\">\n    <ul role=\"list\" class=\"grid gap-1\"\n        [class.grid-cols-4]=\"mode==='normal'\"\n        [class.grid-flow-col]=\"mode!=='normal'\">\n      <ng-container *ngFor=\"let value of values; index as i\">\n        <li class=\"col-span-1 flex pb-2\" *ngIf=\"mode==='normal'\">\n          <div class=\"grid-cols-1 border-l-2 px-1\" [style]=\"'border-color:' + colors[i]\">\n            <div class=\"text-xs text-ellipsis overflow-hidden\">{{labels[i]}}</div>\n            <div *ngIf=\"isNumber(values[i])\" class=\"font-medium text-sm md:text-lg text-ellipsis overflow-hidden\">{{values[i] | number:'1.0-2':'el'}}</div>\n            <div *ngIf=\"!isNumber(values[i])\" class=\"font-medium text-sm md:text-lg text-ellipsis overflow-hidden\">{{values[i]}}</div>\n          </div>\n        </li>\n        <li class=\"col-span-1 flex pb-2\" *ngIf=\"mode!=='normal'\">\n          <div class=\"grid-cols-1 border-l-2 pl-1 pr-2\" [style]=\"'border-color:' + colors[i]\">\n            <div *ngIf=\"isNumber(values[i])\" class=\"font-medium text-xs lg:text-sm text-ellipsis overflow-hidden\">{{values[i] | number:'1.0-2':'el'}}</div>\n            <div *ngIf=\"!isNumber(values[i])\" class=\"font-medium text-xs lg:text-sm text-ellipsis overflow-hidden\">{{values[i]}}</div>\n            <div class=\"text-xs max-w-18 lg:w-auto truncate text-ellipsis overflow-hidden\">{{labels[i]}}</div>\n          </div>\n        </li>\n      </ng-container>\n    </ul>\n  </div>\n  <div *ngIf=\"busy\">\n    <ul role=\"list\" class=\"grid gap-1\"\n        [class.grid-cols-4]=\"mode==='normal'\"\n        [class.grid-flow-col]=\"mode!=='normal'\">\n      <ng-container *ngFor=\"let value of values; index as i\">\n        <li class=\"animate-pulse col-span-1 flex pb-2\" *ngIf=\"mode==='normal'\">\n          <div class=\"grid-cols-1 border-l-2 px-1\" style=\"border-color:rgb(168, 162, 158, 0.2)\">\n            <div class=\"rounded-md bg-slate-400/25 h-3 w-14\"></div>\n            <div class=\"rounded-md bg-slate-400/25 mt-2 h-4 w-6\"></div>\n          </div>\n        </li>\n        <li class=\"animate-pulse col-span-1 flex pb-2\" *ngIf=\"mode!=='normal'\">\n          <div class=\"grid-cols-1 border-l-2 pl-1 pr-2\" style=\"border-color:rgb(168, 162, 158, 0.2)\">\n            <div class=\"rounded-md bg-slate-400/25 h-3 w-14\"></div>\n            <div class=\"rounded-md bg-slate-400/25 mt-2 h-4 w-6\"></div>\n          </div>\n        </li>\n      </ng-container>\n    </ul>\n  </div>  ","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n@Component({\n    selector: 'lib-progress-bar',\n    templateUrl: './progress-bar.component.html',\n    standalone: false\n})\nexport class ProgressBarComponent implements OnChanges {\n  @Input() value: number = 0;\n  @Input('value-text') valueText: string | undefined;\n  @Input() total: number = 0;\n  @Input('total-text') totalText: string | undefined;\n  @Input() text: string | undefined = undefined;\n  @Input() busy: boolean = false;\n  public percentage: number = 0;\n\n  constructor() {\n  }\n\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.value || changes.total) {\n      this.calcPercentage();\n    }\n  }\n\n  private calcPercentage() {\n    if (this.total > 0) {\n      this.percentage = (this.value / this.total) * 100;\n    } else {\n      this.percentage = 0;\n    }\n  }\n}\n","<div class=\"progress-bar-container\">\n    <div class=\"progress-bar-label\" *ngIf=\"!busy\">{{text}} {{valueText ?? value}}/{{totalText ?? total}}</div>\n    <div class=\"progress-bar-backdrop progress-bar-label w-2/3\" *ngIf=\"busy\"></div>\n    <div class=\"progress-bar-backdrop\">\n      <div class=\"progress-bar-inner\" [style]=\"'width:' + percentage + '%' \"></div>\n    </div>\n</div>\n  ","import { Directive, ViewContainerRef, Input } from '@angular/core';\n\n@Directive({\n    selector: '[appDynamicComponentHost]',\n    standalone: false\n})\nexport class DynamicComponentHostDirective {\n  @Input() hostName: string = '';\n  constructor(public viewContainerRef: ViewContainerRef) {}\n}","import { ComponentRef, ViewRef } from '@angular/core';\n\n/**\n * Holds information about the dynamic content.\n * @remarks\n * `ComponentRef` is undefined in the case content is of `TemplateRef` type.\n */\nexport class ContentRef {\n  constructor(public nodes: any[], public viewRef?: ViewRef, public componentRef?: ComponentRef<any>) {}\n}\n","import {\n  ComponentFactoryResolver,\n  ViewContainerRef,\n  ComponentFactory,\n  Type,\n  ElementRef,\n  StaticProvider,\n  TemplateRef,\n  ComponentRef,\n  ApplicationRef,\n  Injector,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ComponentLoaderOptions } from './component-loader-options.class';\nimport { ContentRef } from './content-ref.class';\n\n/**\n * Provides ways of loading and handling dynamic content.\n *\n * @remarks\n * Do NOT use this directly, create an instance through {@link ComponentLoaderFactory}\n * You can use this loader in two ways:\n * - Attaches a component to `ViewContainerRef`.\n * - Attaches a component to `ViewContainerRef`. The attached component has a `<ng-content>` tag inside its view. The {@link ComponentLoaderOptions.content} will be drawn inside this tag.\n *\n * @internal\n */\nexport class ComponentLoader<T extends object> {\n  /**\n   * Before content is shown event.\n   */\n  onBeforeShow = new Subject();\n  /**\n   * After show content event.\n   * @returns The id of newly created component ref.\n   */\n  onShown = new Subject();\n  /**\n   * Before content is hidden event.\n   * @returns The instance of attached component;\n   */\n  onBeforeHide = new Subject();\n  /**\n   * After content is hidden event.\n   * @returns The id of destroyed component ref.\n   */\n  onHidden = new Subject();\n\n  public instance?: T;\n  public componentRef?: ComponentRef<T>;\n  private componentFactory?: ComponentFactory<T>;\n  private container: string | ElementRef | any;\n  private providers: StaticProvider[] = [];\n  private contentRef?: ContentRef;\n  private containerDefaultSelector = 'body';\n  private innerComponent?: ComponentRef<T>;\n  constructor(\n    private vcr: ViewContainerRef | undefined,\n    private cfr: ComponentFactoryResolver,\n    private applicationRef: ApplicationRef,\n    private injector: Injector\n  ) {}\n\n  /**\n   * Attaches component.\n   * @param componentType - The type component to attach.\n   * @returns Current instance of {@link ComponentLoader}\n   */\n  public attach(componentType: Type<T>): ComponentLoader<T> {\n    this.componentFactory = this.cfr.resolveComponentFactory<T>(componentType);\n    return this;\n  }\n\n  /**\n   * Body will be used in nothing is provided.\n   * @param container - The element in which dynamic content will be drawn inside to. For string case a query to the dom will be executed to find the element.\n   * @returns Current instance of {@link ComponentLoader}\n   */\n  public to(container?: string | ElementRef): ComponentLoader<T> {\n    this.container = container || this.container;\n    return this;\n  }\n\n  /**\n   * Adds provider to the providers array. These providers will be injected to the attached component.\n   *\n   * @see {@link https://angular.io/guide/glossary#di-token | Injection Token}\n   *\n   * @param provider - Provider to inject.\n   * @returns Current instance of {@link ComponentLoader}\n   */\n  public provide(provider: StaticProvider): ComponentLoader<T> {\n    this.providers.push(provider);\n    return this;\n  }\n\n  /**\n   * Attaches attached component to dom and any dynamic content if provided.\n   * @remarks\n   * Also triggers the {@link ComponentLoader.onBeforeShow} and {@link ComponentLoader.onShown} events.\n   *\n   * @param options - {@link ComponentLoaderOptions}.\n   * @returns A reference to the created content.\n   */\n  public show(options: ComponentLoaderOptions = {}): ComponentRef<T> | undefined {\n    if (this.componentRef) {\n      throw Error('Component is already shown');\n    }\n    if (!this.componentFactory) {\n      throw Error('You must attach a component');\n    }\n    this.onBeforeShow.next({});\n\n    if (options.content) {\n      this.contentRef = this.getContentRef(options.content, options.context, options.initialState);\n    }\n    this.createComponentAndAttachToView(options);\n    this.appendContentToContainer();\n    this.markComponentsForCheck();\n\n    this.onShown.next(options.id);\n\n    return this.componentRef;\n  }\n\n  /**\n   * Removes attached component from dom.\n   * @remarks\n   * Also triggers the {@link ComponentLoader.onBeforeHide} and {@link ComponentLoader.onHidden} events.\n   *\n   * @param id - If provided it is returned through the {@link ComponentLoader.onHidden}.\n   * @returns Current instance of {@link ComponentLoader}\n   */\n  public hide(id?: number | string, result?: any): ComponentLoader<T> {\n    if (!this.componentRef) {\n      throw Error('No attached component found to hide');\n    }\n\n    this.onBeforeHide.next(this.componentRef.instance);\n\n    const componentEl = this.componentRef.location.nativeElement;\n    componentEl.parentNode.removeChild(componentEl);\n    if (this.contentRef?.componentRef) {\n      this.contentRef.componentRef.destroy();\n    }\n    if (this.vcr && this.contentRef?.viewRef) {\n      this.vcr.remove(this.vcr.indexOf(this.contentRef.viewRef));\n    }\n    if (this.contentRef?.viewRef) {\n      this.contentRef.viewRef.destroy();\n    }\n    this.contentRef = void 0;\n    this.componentRef = void 0;\n\n    this.onHidden.next(id ? { id, result } : null);\n\n    return this;\n  }\n\n  getInnerComponent(): ComponentRef<T> | undefined {\n    return this.innerComponent;\n  }\n\n  private markComponentsForCheck() {\n    if (this.contentRef?.componentRef) {\n      this.innerComponent = this.contentRef.componentRef.instance;\n      this.contentRef.componentRef.changeDetectorRef.markForCheck();\n      this.contentRef.componentRef.changeDetectorRef.detectChanges();\n    }\n    this.componentRef!.changeDetectorRef.markForCheck();\n    this.componentRef!.changeDetectorRef.detectChanges();\n  }\n\n  private createComponentAndAttachToView(options: ComponentLoaderOptions) {\n    const injector = Injector.create({\n      providers: this.providers,\n      parent: this.injector,\n    });\n    this.componentRef = this.componentFactory!.create(injector, this.contentRef?.nodes);\n    this.applicationRef.attachView(this.componentRef.hostView);\n    this.instance = this.componentRef.instance;\n    Object.assign(this.componentRef.instance, options);\n  }\n\n  private appendContentToContainer() {\n    if (this.container instanceof ElementRef) {\n      this.container.nativeElement.appendChild(this.componentRef?.location.nativeElement);\n    }\n    if (typeof this.container === 'string' && typeof document !== 'undefined') {\n      const selectedElement = document.querySelector(this.container) || document.querySelector(this.containerDefaultSelector);\n      if (!selectedElement) {\n        return;\n      }\n      selectedElement.appendChild(this.componentRef?.location.nativeElement);\n    }\n  }\n\n  private getContentRef(content?: string | TemplateRef<any>, context?: any, initialState?: any): ContentRef {\n    //TemplateRef case\n    if (content instanceof TemplateRef) {\n      if (this.vcr) {\n        const viewRef = this.vcr.createEmbeddedView<TemplateRef<T>>(content, context);\n        viewRef.markForCheck();\n        return new ContentRef([viewRef.rootNodes], viewRef);\n      }\n      const viewRef = content.createEmbeddedView({});\n      this.applicationRef.attachView(viewRef);\n      return new ContentRef([viewRef.rootNodes], viewRef);\n    }\n\n    //Component case\n    if (typeof content === 'function') {\n      const contentCf = this.cfr.resolveComponentFactory(content);\n      const injector = Injector.create({\n        providers: this.providers,\n        parent: this.injector,\n      });\n      const componentRef = contentCf.create(injector);\n      // Object.assign(componentRef.instance, initialState);\n      this.applicationRef.attachView(componentRef.hostView);\n      return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);\n    }\n\n    throw Error('Unsupported content type');\n  }\n}\n","import { ApplicationRef, ComponentFactoryResolver, Injectable, Injector, ViewContainerRef } from '@angular/core';\nimport { ComponentLoader } from './component-loader.class';\n\n/**\n * Use to create instances of {@link ComponentLoader}.\n *\n * @public\n */\n@Injectable({ providedIn: 'root' })\nexport class ComponentLoaderFactory {\n  constructor(\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private injector: Injector,\n    private applicationRef: ApplicationRef\n  ) {}\n\n  /**\n   * Returns a new instance of {@link ComponentLoader}\n   * @param viewContainerRef - The view container the dynamic content will be attached to.\n   * @returns A new instance of {@link ComponentLoader}.\n   *\n   * @public\n   */\n  createLoader<T extends object>(viewContainerRef?: ViewContainerRef): ComponentLoader<T> {\n    return new ComponentLoader<T>(viewContainerRef, this.componentFactoryResolver, this.applicationRef, this.injector);\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { UserSettingKey } from '../types';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class UserSettingsService {\n    private static SETTINGS_KEY = '@indice/ng-components_user-settings';\n\n    private _defaultPreferences: { [key in UserSettingKey]: any } = {\n        'MobileSideBar': true\n    };\n\n    public getAll(): { [key in UserSettingKey]: any } {\n        const settingsJson = localStorage.getItem(UserSettingsService.SETTINGS_KEY);\n        if (settingsJson) {\n            return JSON.parse(settingsJson);\n        }\n        return this._defaultPreferences;\n    }\n\n    public get(key: UserSettingKey): any { \n        const settings = this.getAll();\n        return settings[key];\n    }\n\n    public set(key: UserSettingKey, value: any): void {\n        const settings = this.getAll();\n        settings[key] = value;\n        localStorage.setItem(UserSettingsService.SETTINGS_KEY, JSON.stringify(settings));\n    }\n}\n","import { IShellConfig, NavLink } from './../../../types';\nimport { Component, Inject, Input, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { of } from 'rxjs';\nimport { APP_LINKS } from '../../../tokens';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { share } from 'rxjs/operators';\n\n@Component({\n    selector: 'lib-shell-sidebar',\n    templateUrl: './shell-sidebar.component.html',\n    standalone: false\n})\nexport class ShellSidebarComponent implements OnInit {\n  constructor(\n    @Inject(Router) protected router: Router,\n    @Inject(ActivatedRoute) protected route: ActivatedRoute,\n    @Inject(APP_LINKS) public links: any\n  ) { }\n\n  @Input('section-links') sectionLinksPath = 'main';\n  @Input('config') shellConfig: IShellConfig | undefined = undefined;\n  @Input('sticky') sticky: boolean = false;\n  public sectionLinks: Observable<NavLink[]> = of([]);\n  public activeFragment: any | null = null;\n\n  public get activeNavLinkClass(): string {\n    const linkClasses = 'sidebar ' + (this.sticky ? 'nav-link-active-b' : 'nav-link-active-l') + ' group';\n    console.log('activeNavLinkClass getter ', linkClasses);\n    return linkClasses;\n  }\n\n  public ngOnInit(): void {\n    this.activeFragment = this.route.fragment.pipe(share());\n    this.sectionLinks = this.links[this.sectionLinksPath] as Observable<NavLink[]>;\n  }\n}\n","<!-- Sidebar component, swap this element with another sidebar if you like -->\n<div class=\"shell-sidebar-component-container\">\n  <div class=\"shell-sidebar-component-links-container sidebar\">\n    <lib-nav-links-list [show-icons]=\"true\"\n                        [show-text]=\"!sticky\"\n                        [large-icons]=\"sticky\"\n                        [links]=\"sectionLinks\"\n                        [active-fragment]=\"activeFragment\"\n                        [link-class]=\"'sidebar nav-link group'\"\n                        [link-active-class]=\"'sidebar nav-link-active-b group'\">\n    </lib-nav-links-list>\n  </div>\n</div>","import { MenuOption } from './../../types';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { APP_LANGUAGES } from '../../tokens';\nimport { IAppLanguagesService } from '../../types';\n\n@Component({\n    selector: 'lib-language-selection',\n    templateUrl: './language-selection.component.html',\n    standalone: false\n})\nexport class LanguageSelectionComponent implements OnInit {\n\n  public menuExpanded = false;\n  constructor(@Inject(APP_LANGUAGES) public langsService: IAppLanguagesService | undefined) { }\n\n  ngOnInit(): void {\n  }\n\n  public selectLang(option: MenuOption): void {\n    if (this.langsService?.setSelected) {\n      this.langsService.setSelected(option.value);\n    }\n  }\n\n  public onClickOutside($event: any): void {\n    this.menuExpanded = false;\n  }\n}\n","<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\n  <button class=\"langs-button\" (click)=\"menuExpanded = !menuExpanded\">\n    <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\n    <ng-container *ngFor=\"let lang of langsService?.options | async\">\n      <span *ngIf=\"lang.value === langsService?.selected\">{{lang.text}}</span>\n    </ng-container>\n  </button>\n\n  <div\n    [class]=\"menuExpanded ? 'langs-menu-expanded':'langs-menu-collapsed'\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\n    <div class=\"py-1\" role=\"none\">\n      <ng-container *ngFor=\"let lang of langsService?.options | async\">\n        <a (click)=\"selectLang(lang)\" *ngIf=\"lang.value != langsService?.selected\" class=\"nav-link-profile\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">\n          <i class=\"text-xs mr-1 ms-Icon ms-Icon--GlobeFavorite\"></i>\n          {{lang.description}}\n        </a>\n      </ng-container>\n    </div>\n  </div>\n</div>\n","import { IAppNotifications, NavLink } from './../../types';\nimport { Component, Inject, OnInit, OnDestroy, Input } from '@angular/core';\nimport { Observable, of, Subscription } from 'rxjs';\nimport { APP_LINKS, APP_NOTIFICATIONS } from '../../tokens';\n\n@Component({\n    selector: 'lib-notifications-indicator',\n    templateUrl: './notifications-indicator.component.html',\n    standalone: false\n})\nexport class NotificationsIndicatorComponent implements OnInit, OnDestroy {\n\n  public menuExpanded = false;\n  public unreadCount = 0;\n  public items: any[] = [];\n  public allNotificationsLink?: NavLink;\n  private notificationsSub$: Subscription | undefined;\n  private inboxAction: any | undefined = undefined;\n  @Input() noNotifications: string = 'No new notifications';\n  @Input() showNotificationsText: string = 'Show all notifications';\n  public newArrival = false;\n  constructor(@Inject(APP_NOTIFICATIONS) public notifications?: IAppNotifications, @Inject(APP_LINKS) public links?: any) { }\n\n  ngOnDestroy(): void {\n    if (this.notificationsSub$) {\n      this.notificationsSub$.unsubscribe();\n    }\n  }\n\n  ngOnInit(): void {\n    if(this.links && this.links['notifications']) {\n      (this.links['notifications'] as Observable<NavLink>).subscribe(notificationsLink => {\n        this.allNotificationsLink = notificationsLink;\n      });\n    }\n    if(this.notifications) {\n      this.notificationsSub$ = this.notifications?.messages.subscribe(result => {\n        if (result.items){\n          this.newArrival = true;\n          this.unreadCount = result.count;\n          this.items = result.items;\n          setTimeout( () => { this.newArrival = false; }, 1000 );\n        }\n      });\n    }\n  }\n\n  public doInboxAction(): void {\n    if (this.notifications?.inboxAction) {\n      this.notifications.inboxAction();\n    } else {\n      this.menuExpanded = !this.menuExpanded;\n      this.ngOnDestroy();\n      this.ngOnInit();\n    }\n    this.unreadCount = 0;\n  }\n\n  public removeItem(index:number){\n    this.items.splice(index,1);\n  }\n\n    // this.notificationsSub$ = this.links.notifications?.pipe(map(result => {\n    //   this.allItemsLink = result.allNotifications;\n    //   this.items = result.items;\n    //   this.unreadCount = result.count;\n    // }));\n\n    // [this.notificationsLinksPath] as Observable<NotificationNavLink[]>;\n    // this.allNotificationsLink = this.links[this.allNotificationsLinkPath] as Observable<NavLink>;\n    // this.unreadNotificationsCountObs = this.links[this.notificationsCounterLinksPath] as Observable<number>;\n    // this.getUnreadNotificationsCount();\n\n  // tslint:disable-next-line:typedef\n  public onClickOutside($event: any) {\n    this.menuExpanded = false;\n  }\n\n}\n","<div class=\"relative\"\n(clickOutside)=\"onClickOutside($event)\">\n  <!-- Notifications Button -->\n  <button type=\"button\"\n          (click)=\"doInboxAction()\"\n          aria-expanded=\"false\"\n          aria-haspopup=\"true\">\n    <span class=\"sr-only\">View notifications</span>\n    <span class=\"avatar-container\">\n      <span class=\"avatar-text\">\n        <i class=\"ms-Icon hover:text-blue-400\"\n          [class.ms-Icon--MessageFill]=\"unreadCount > 0\"\n          [class.text-sky-400]=\"unreadCount > 0\"\n          [class.animate-notification]=\"newArrival\"\n          [class.ms-Icon--Message]=\"unreadCount === 0\">\n        </i>\n      </span>\n      <span\n        *ngIf=\"unreadCount > 0\"\n        [class.animate-pulse]=\"newArrival\"\n        class=\"absolute top-0 right-0 inline-flex items-center justify-center -mt-1 ml-1 text-xs leading-none text-gray-100 ordinal\">\n        {{ unreadCount }}\n      </span>\n    </span>\n  </button>\n\n  <!-- Notifications dropdown -->\n  <div tabindex=\"1\" *ngIf=\"menuExpanded\" class=\"header-notifications-dropdown-with-username\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"messages-menu\">\n    <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\n      <ng-container *ngIf=\"!items; else messagesDropDown\" class=\"py-5\">\n        <div class=\"notifications-nav-link hover:bg-transparent\">{{noNotifications}}</div>\n      </ng-container>\n      <ng-template #messagesDropDown>\n        <ul class=\"pr-1.5\">\n          <ng-container *ngIf=\"items; else loading\">\n            <ng-container *ngIf=\"items.length <= 0\" class=\"py-5\">\n              <div class=\"notifications-nav-link hover:bg-transparent\">{{noNotifications}}</div>\n            </ng-container>\n            <ng-container *ngFor=\"let message of items; let i = index\">\n              <li class=\"mb-2\" [ngClass]=\"{ 'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !message.data.isRead }\">\n                <div class=\"flex justify-between\">\n                  <div class=\"flex-grow\">\n                    <a\n                      [routerLink]=\"message.path\"\n                      (click)=\"removeItem(i)\"\n                      class=\"notifications-nav-link grid\"\n                      [ngClass]=\"!message.data.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\"\n                    >\n                      <div class=\"flex flex-col\">\n                        <div class=\"font-thin tracking-tighter\">\n                          {{ message.data.creationDate | date: \"EEE, d MMMM\" }}\n                        </div>\n                        <div class=\"font-bold\">\n                          {{ message.data.text }}\n                        </div>\n                      </div>\n                    </a>\n                  </div>\n                </div>\n              </li>\n            </ng-container>\n          </ng-container>\n\n          <ng-template #loading>\n            <div class=\"h-32 flex items-center justify-center\">\n              <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\n            </div>\n          </ng-template>\n        </ul>\n      </ng-template>\n    </div>\n    <div class=\"p-1 rounded-lg\">\n      <a [routerLink]=\"allNotificationsLink!.path\" (click)=\"onClickOutside($event)\">\n        <button type=\"button\" class=\"header-notifications-dropdown-view-all-button\">{{showNotificationsText}}</button>\n      </a>\n    </div>\n  </div>\n</div>\n","import { Component, Inject, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthService, ImgUserPictureDirective } from '@indice/ng-auth';\nimport { APP_LINKS } from '../../tokens';\nimport { User } from 'oidc-client-ts';\nimport { Subscription } from 'rxjs';\n\n@Component({\n    selector: 'lib-user-profile-menu',\n    templateUrl: './user-profile-menu.component.html',\n    standalone: false\n})\nexport class UserProfileMenuComponent implements OnInit {\n\n  // tslint:disable-next-line:no-input-rename\n  @Input('show-user-name') showUserName: boolean | undefined = false;\n  @Input('show-picture') showPicture: boolean | undefined = false;\n  protected userSub$: Subscription | null = null;\n  protected statusSub$: Subscription | null = null;\n  public user: User | null = null;\n  public avatarName: string | null = null;\n  public userMenuExpanded = false;\n\n  constructor(@Inject(AuthService) protected authService: AuthService,\n              @Inject(Router) protected router: Router,\n              @Inject(APP_LINKS) public links: any) { }\n\n  ngOnInit(): void {\n    this.authService.loadUser().subscribe((user) => {\n      this.setCurrentUser(user);\n    }, error => {\n      console.error(error);\n    });\n    // Detect user changes and display / or not user info accordingly...\n    this.userSub$ = this.authService.user$.subscribe((user: any) => {\n      // console.log('ShellHeaderComponent user subscription');\n      this.setCurrentUser(user);\n    });\n  }\n\n  public signin(event: any | null | undefined): void {\n    if (event) {\n      event.preventDefault();\n    }\n    this.authService.signinRedirect();\n  }\n\n  private setCurrentUser(user: any): void {\n    this.user = user;\n    if (user && user.profile && user.profile.given_name && user.profile.family_name) {\n      this.avatarName = `${user.profile.given_name.charAt(0)}${user.profile.family_name.charAt(0)}`.toUpperCase();\n    }\n  }\n\n  // tslint:disable-next-line:typedef\n  public onClickOutside($event: any) {\n    this.userMenuExpanded = false;\n  }\n\n}\n","<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\n\n  <div class=\"inline-flex\">\n    <!-- Username -->\n    <div [ngClass]=\"{'shell-header-profile': showUserName}\">\n      <div *ngIf=\"user && showUserName\" class=\"shell-header-profile-userName\">\n        {{ user.profile.name }}\n      </div>\n    </div>\n\n    <div [class.ml-2]=\"showUserName\">\n      <button type=\"button\" \n              *ngIf=\"user\"\n              class=\"shell-header-profile-dropdown-button\"\n              id=\"user-menu-authenticated\"\n              aria-expanded=\"false\"\n              aria-haspopup=\"true\"\n              (click)=\"userMenuExpanded = !userMenuExpanded\">\n        <span class=\"sr-only\">Open user menu</span>\n        <span class=\"avatar-container\">\n          <span *ngIf=\"!showPicture\" class=\"avatar-text\">{{this.avatarName}}</span>\n          <img title=\"profile-image\" *ngIf=\"showPicture\" [userPicture]=\"user.profile.sub\" [displayName]=\"user.profile\" [size]=\"32\" />\n        </span>\n      </button>\n\n      <button type=\"button\"\n              *ngIf=\"!user\"\n              (click)=\"signin($event)\"\n              class=\"shell-header-profile-dropdown-button\"\n              id=\"user-menu\"\n              aria-expanded=\"false\"\n              aria-haspopup=\"true\">\n        <span class=\"sr-only\">sign in</span>\n        <span class=\"avatar-container\">\n          <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\n        </span>\n      </button>\n    </div>\n  </div>\n\n  <div [class]=\"userMenuExpanded ?\n    'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-lg shadow-lg bg-white ring-1 ring-black ring-black/5 focus:outline-none'\n    :\n    'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-lg shadow-lg bg-white ring-1 ring-black ring-black/5 focus:outline-none'\"\n    role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\n         <lib-nav-links-list\n            (click)=\"onClickOutside($event)\"\n            [links]=\"links.profile\"\n            [link-class]=\"'nav-link-profile'\"\n            [link-active-class]=\"'nav-link-profile-active'\">\n         </lib-nav-links-list>\n  </div>\n\n</div>\n\n","import { AuthService } from '@indice/ng-auth';\nimport { Component, OnInit, OnDestroy, Inject, Input } from '@angular/core';\nimport { ActivatedRoute, Event, NavigationStart, Router } from '@angular/router';\nimport { filter, share } from 'rxjs/operators';\nimport { NavLink } from '../../../types';\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\nimport { Observable, Subscription, of } from 'rxjs';\nimport { User } from 'oidc-client-ts';\n\n@Component({\n    // tslint:disable-next-line:component-selector\n    selector: 'lib-shell-header',\n    templateUrl: './shell-header.component.html',\n    standalone: false\n})\nexport class ShellHeaderComponent implements OnInit, OnDestroy {\n  // tslint:disable-next-line:no-input-rename\n  @Input('section-links') sectionLinksPath = 'main';\n  // tslint:disable-next-line:no-input-rename\n  @Input('profile-menu') profileMenuVisible = true;\n  // tslint:disable-next-line:no-input-rename\n  @Input('show-userName') showUserNameOnHeader: boolean | undefined = false;\n  // tslint:disable-next-line:no-input-rename\n  @Input('show-picture') showPictureOnHeader: boolean | undefined = true;\n  // tslint:disable-next-line:no-input-rename\n  @Input('show-alerts') showAlerts: boolean | undefined = false;\n  // tslint:disable-next-line:no-input-rename\n  @Input('show-langs') showLangs: boolean | undefined = false;\n  @Input() border = true;\n  @Input() busy: boolean = false;\n  public sectionLinks: Observable<NavLink[]> = of([]);\n  public mobileMenuExpanded = false;\n  public userMenuExpanded = false;\n  protected routeSubject: Observable<Event>;\n  protected routerSub$: Subscription | null = null;\n  protected userSub$: Subscription | null = null;\n  protected statusSub$: Subscription | null = null;\n  public user: User | null = null;\n  public avatarName: string | null = null;\n  public activeFragment: any | null = null;\n\n  constructor(\n    @Inject(AuthService) protected authService: AuthService,\n    @Inject(Router) protected router: Router,\n    @Inject(ActivatedRoute) protected route: ActivatedRoute,\n    @Inject(SHELL_CONFIG) public config: any,\n    @Inject(APP_LINKS) public links: any) {\n    this.routeSubject = this.router.events.pipe(filter((event) => event instanceof NavigationStart));\n  }\n\n  ngOnInit(): void {\n    this.activeFragment = this.route.fragment.pipe(share());\n    this.sectionLinks = this.links[this.sectionLinksPath] as Observable<NavLink[]>;\n    this.routerSub$ = this.routeSubject.subscribe((event) => {\n      this.mobileMenuExpanded = false;\n      this.userMenuExpanded = false;\n    });\n    this.authService.loadUser().subscribe((user) => {\n      this.setCurrentUser(user);\n    }, error => {\n      console.error(error);\n    });\n    // Detect user changes and display / or not user info accordingly...\n    this.userSub$ = this.authService.user$.subscribe((user: any) => {\n      // console.log('ShellHeaderComponent user subscription');\n      this.setCurrentUser(user);\n    });\n  }\n\n  ngOnDestroy(): void {\n\n    if (this.routerSub$) {\n      this.routerSub$.unsubscribe();\n    }\n    // TODO: check authenticated user here before we start polling server status\n    if (this.statusSub$) {\n      this.statusSub$.unsubscribe();\n    }\n    if (this.userSub$) {\n      this.userSub$.unsubscribe();\n    }\n  }\n\n  // tslint:disable-next-line:typedef\n  public onClickOutside($event: any) {\n    this.userMenuExpanded = false;\n  }\n\n  public signin(event: any | null | undefined): void {\n    if (event) {\n      event.preventDefault();\n    }\n    this.authService.signinRedirect();\n  }\n\n  private setCurrentUser(user: any): void {\n    this.user = user;\n    if (user && user.profile && user.profile.given_name && user.profile.given_name !== undefined && user.profile.family_name && user.profile.family_name !== undefined) {\n      this.avatarName = `${user.profile.given_name.charAt(0)}${user.profile.family_name.charAt(0)}`.toUpperCase();\n    }\n  }\n\n}\n\n","<nav>\n  <div class=\"shell-header-paddings\">\n    <div class=\"shell-header-border\">\n      <div class=\"shell-header-menu-container\" [class.busy]=\"busy\">\n        <div class=\"shell-header-logo-container\">\n          <div>\n            <a href=\"#\" [routerLink]=\"['/']\"><img alt=\"app logo\" class=\"app-logo\" [src]=\"config.appLogo\" [alt]=\"config.appLogoAlt\" /></a>\n          </div>\n        </div>\n\n        <div class=\"shell-header-link-container\">\n          <div class=\"shell-header-link-container-inner\">\n            <lib-nav-links-list\n              [links]=\"sectionLinks\"\n              [active-fragment]=\"activeFragment\"\n              [link-class]=\"'nav-link'\"\n              [link-active-class]=\"'nav-link-active'\">\n            </lib-nav-links-list>\n          </div>\n        </div>\n\n        <div class=\"shell-header-md-visible\">\n\n          <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\n\n            <lib-nav-links-list\n              [links]=\"links.profileActions\"\n              [active-fragment]=\"activeFragment\"\n              [link-class]=\"'shell-header-menu-rounded-button'\"\n              [link-active-class]=\"'shell-header-menu-rounded-button-active'\">\n            </lib-nav-links-list>\n\n\n            <!-- Profile dropdown -->\n            <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\n              <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\" [show-picture]=\"showPictureOnHeader\"></lib-user-profile-menu>\n            </div>\n\n            <!-- Notifications dropdown -->\n            <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\n              <lib-notifications-indicator></lib-notifications-indicator>\n            </div>\n\n            <!-- languages dropdown -->\n            <div *ngIf=\"showLangs\" class=\"ml-4\">\n              <lib-language-selection></lib-language-selection>\n            </div>\n          </div>\n        </div>\n\n        <div class=\"mobile-menu-button-container\">\n          <!-- Mobile menu button -->\n          <button type=\"button\"\n                  (click)=\"mobileMenuExpanded = !mobileMenuExpanded\"\n                  class=\"mobile-menu-button\"\n                  aria-controls=\"mobile-menu\"\n                  [attr.aria-expanded]=\"mobileMenuExpanded\">\n            <span class=\"sr-only\">Open main menu</span>\n            <!--Heroicon name: outline/menu  Menu open: \"hidden\", Menu closed: \"block\"-->\n            <svg xmlns=\"http://www.w3.org/2000/svg\"\n                 fill=\"none\"\n                 viewBox=\"0 0 24 24\"\n                 stroke=\"currentColor\"\n                 aria-hidden=\"true\"\n                 [class]=\"mobileMenuExpanded ? 'hidden':'block h-6 w-6'\">\n              <path stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M4 6h16M4 12h16M4 18h16\" />\n            </svg>\n            <!--Heroicon name: outline/x Menu open: \"block\", Menu closed: \"hidden\"-->\n            <svg xmlns=\"http://www.w3.org/2000/svg\"\n                 fill=\"none\"\n                 viewBox=\"0 0 24 24\"\n                 stroke=\"currentColor\"\n                 aria-hidden=\"true\"\n                 [class]=\"mobileMenuExpanded ? 'block h-6 w-6':'hidden'\">\n              <path stroke-linecap=\"round\"\n                    stroke-linejoin=\"round\"\n                    stroke-width=\"2\"\n                    d=\"M6 18L18 6M6 6l12 12\" />\n            </svg>\n          </button>\n        </div>\n      </div>\n    </div>\n  </div>\n  <!-- Mobile menu, show/hide based on menu state. -->\n  <div class=\"mobile-menu-container\" *ngIf=\"mobileMenuExpanded\" id=\"mobile-menu\">\n    <lib-nav-links-list\n      [links]=\"sectionLinks\"\n      [active-fragment]=\"activeFragment\"\n      [link-class]=\"'nav-link-mobile'\"\n      [link-active-class]=\"'nav-link-mobile-active'\"\n      [container-class]=\"'mobile-menu-link-container'\">\n    </lib-nav-links-list>\n\n    <div *ngIf=\"!user\">\n      <a href=\"#\" (click)=\"signin($event)\" class=\"nav-link-mobile\">\n        <i class=\"ms-Icon ms-Icon--Signin mr-2\"></i>Σύνδεση\n      </a>\n    </div>\n\n    <div class=\"mobile-menu-user-info-container\" *ngIf=\"user\">\n      <div class=\"mobile-menu-user-info-container-inner\">\n        <div class=\"flex-shrink-0\">\n          <span class=\"mobile-menu-avatar-container\">\n            <span class=\"mobile-menu-avatar-name\">{{ this.avatarName }}</span>\n          </span>\n        </div>\n        <div class=\"ml-3\">\n          <div class=\"mobile-menu-user-name\">{{ user.profile.name }}</div>\n          <div class=\"mobile-menu-user-email\">{{ user.profile.email }}</div>\n        </div>\n        <!--\n        <button class=\"mobile-menu-rounded-button\">\n          <span class=\"sr-only\">View notifications</span>\n          <svg class=\"mobile-menu-rounded-button-icon-style\"\n               xmlns=\"http://www.w3.org/2000/svg\"\n               fill=\"none\"\n               viewBox=\"0 0 24 24\"\n               stroke=\"currentColor\"\n               aria-hidden=\"true\">\n            <path stroke-linecap=\"round\"\n                  stroke-linejoin=\"round\"\n                  stroke-width=\"2\"\n                  d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\n          </svg>\n        </button>\n        -->\n      </div>\n    </div>\n\n    <lib-nav-links-list\n          [links]=\"links.profile\"\n          [active-fragment]=\"activeFragment\"\n          [link-class]=\"'nav-link-mobile'\"\n          [link-active-class]=\"'nav-link-mobile-active'\"\n          [container-class]=\"'mobile-menu-link-container'\">\n      </lib-nav-links-list>\n  </div>\n</nav>\n","\nimport { AuthService } from '@indice/ng-auth';\nimport { Component, Inject, Input } from '@angular/core';\nimport { ActivatedRoute, Event, NavigationStart, Router } from '@angular/router';\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\nimport { ShellHeaderComponent } from '../shell-header/shell-header.component';\nimport { ShellLayoutType } from '../../../types';\n\n@Component({\n    selector: 'lib-shell-sidebar-header',\n    templateUrl: './shell-sidebar-header.component.html',\n    standalone: false\n})\nexport class ShellSidebarHeaderComponent extends ShellHeaderComponent {\n  constructor(@Inject(AuthService) protected authService: AuthService,\n  @Inject(Router) protected router: Router,\n  @Inject(ActivatedRoute) protected route: ActivatedRoute,\n  @Inject(SHELL_CONFIG) public config: any,\n  @Inject(APP_LINKS) public links: any) {\n    super(authService, router, route, config, links);\n  }\n\n}\n","<div class=\"shell-header-paddings\">\n    <div class=\"shell-header-border\">\n        <div class=\"shell-header-menu-container\">\n            <div class=\"shell-header-md-visible\">\n                <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\n                <!-- Profile dropdown -->\n                <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\n                    <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\" [show-picture]=\"showPictureOnHeader\"></lib-user-profile-menu>\n                </div>\n                <!-- Notifications dropdown -->\n                <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\n                    <lib-notifications-indicator></lib-notifications-indicator>\n                </div>\n                <!-- languages dropdown -->\n                <div *ngIf=\"showLangs\" class=\"ml-4\">\n                    <lib-language-selection></lib-language-selection>\n                </div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>\n \n","import { Component, Inject, Input, OnInit, Optional, TemplateRef } from '@angular/core';\n\nimport { IShellConfig } from '../../../types';\nimport { UserSettingsService } from '../../../services/user-settings.service';\n\n@Component({\n    selector: 'lib-shell-sidebar-layout',\n    templateUrl: './shell-sidebar-layout.component.html',\n    standalone: false\n})\nexport class ShellSidebarLayoutComponent implements OnInit {\n  @Input() config: IShellConfig | undefined;\n  @Input() public sidebarFooterTemplate?: TemplateRef<any>;\n  @Input() busy: boolean = false;\n  \n  constructor(private _userSettings: UserSettingsService) {\n    this.showMobileSidebar = this._userSettings.get('MobileSideBar');\n  }\n\n  public showMobileSidebar: boolean;\n\n  public ngOnInit(): void { }\n\n  public toggleMobileSidebar(): void {\n    this.showMobileSidebar = !this.showMobileSidebar;\n    this._userSettings.set('MobileSideBar', this.showMobileSidebar);\n  }\n}\n","<div>\n  <div class=\"sidebar-off-canvas-menu-container\" role=\"dialog\" aria-modal=\"true\">\n    <div class=\"sidebar-off-canvas-menu-backdrop\"\n         [class.sidebar-off-canvas-menu-backdrop-opacity-100]=\"!showMobileSidebar\">\n    </div>\n    <div class=\"sidebar-off-canvas-menu-container-inner\"\n         [class.sidebar-off-canvas-menu-container-inner-active]=\"!showMobileSidebar\"\n         [class.sidebar-off-canvas-menu-container-inner-not-active]=\"showMobileSidebar\">\n      <div class=\"sidebar-off-canvas-layout-container\">\n        <div class=\"sidebar-off-canvas-toggle-button-container\">\n          <button type=\"button\" class=\"sidebar-off-canvas-toggle-button\" (click)=\"toggleMobileSidebar()\">\n            <span class=\"sr-only\">Close sidebar</span>\n            <svg class=\"h-6 w-6 text-white\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\n            </svg>\n          </button>\n        </div>\n        <div class=\"sidebar-off-canvas-app-logo-container\">\n          <img alt=\"image\" class=\"shell-sidebar-logo\"\n               [src]=\"config?.appLogo\"\n               [alt]=\"config?.appLogoAlt\">\n        </div>\n        <lib-shell-sidebar></lib-shell-sidebar>\n      </div>\n      <div class=\"sidebar-dummy-element\" aria-hidden=\"true\"></div>\n    </div>\n  </div>\n  <div class=\"sidebar-static-menu-outer-container\">\n    <div class=\"sidebar-static-menu-container\"\n         [class.sidebar-static-menu-container-active]=\"!showMobileSidebar\"\n         [class.sidebar-static-menu-container-not-active]=\"showMobileSidebar\">\n      <div class=\"sidebar-static-menu-container-inner\">\n        <div class=\"sidebar-static-menu-app-logo-container\">\n          <img alt=\"image\" *ngIf=\"!showMobileSidebar\" class=\"shell-sidebar-logo\" [src]=\"config?.appLogo\" [alt]=\"config?.appLogoAlt\">\n          <button *ngIf=\"showMobileSidebar\"  type=\"button\" class=\"sidebar-static-menu-toggle-button\" (click)=\"toggleMobileSidebar()\">\n            <span class=\"sr-only\">Toggle sidebar</span>\n            <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\n              <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h7\" />\n            </svg>\n          </button>\n        </div>\n        <lib-shell-sidebar [sticky]=\"showMobileSidebar\"></lib-shell-sidebar>\n      </div>\n      <div class=\"flex flex-shrink-0 bg-gray-700 p-4\" *ngIf=\"!showMobileSidebar && sidebarFooterTemplate\">\n        <div class=\"group block flex-shrink-0\">\n          <div class=\"flex items-center\">\n            <div>\n              <p class=\"text-sm font-medium text-gray-400\">\n                <ng-container [ngTemplateOutlet]=\"sidebarFooterTemplate\"></ng-container>\n              </p>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n  <div class=\"sidebar-static-menu-wrapper\" [class.sidebar-static-menu-wrapper-expanded]=\"!showMobileSidebar\">\n    <div class=\"sidebar-static-menu-sticky-header-container\" [class.busy]=\"busy\" *ngIf=\"config?.showHeader\">\n      <button *ngIf=\"showMobileSidebar\" type=\"button\" class=\"sidebar-static-menu-toggle-button-md\" (click)=\"toggleMobileSidebar()\">\n        <span class=\"sr-only\">Toggle sidebar</span>\n        <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\n          <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h7\" />\n        </svg>\n      </button>\n      <button *ngIf=\"!showMobileSidebar\" type=\"button\" class=\"sidebar-static-menu-toggle-button\" (click)=\"toggleMobileSidebar()\">\n        <span class=\"sr-only\">Toggle sidebar</span>\n        <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\n          <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h7\" />\n        </svg>\n      </button>\n      <div class=\"sidebar-static-menu-header-container\" [class.busy]=\"busy\">\n        <div class=\"sidebar-static-menu-header-near-container\" [class.busy]=\"busy\">\n          <div class=\"sidebar-static-menu-header-app-logo-container\" *ngIf=\"showMobileSidebar\">\n            <img alt=\"image\" class=\"shell-sidebar-logo\" [src]=\"config?.appLogo\" [alt]=\"config?.appLogoAlt\">\n          </div>\n        </div>\n        <div class=\"sidebar-static-menu-header-between-container\" [class.busy]=\"busy\"></div>\n        <div class=\"sidebar-static-menu-header-far-container\" [class.busy]=\"busy\">\n          <lib-shell-sidebar-header [show-userName]=\"config?.showUserNameOnHeader\"\n                                    [show-alerts]=\"config?.showAlertsOnHeader\"\n                                    [show-langs]=\"config?.showLangsOnHeader\"\n                                    [busy]=\"busy\"\n                                    [show-picture]=\"config?.showPictureOnHeader\">\n          </lib-shell-sidebar-header>\n        </div>\n      </div>\n    </div>\n    <div flex-1>\n      <main class=\"shell-content-container-fluid\" [class.busy]=\"busy\">\n        <lib-breadcrumb *ngIf=\"config?.breadcrumb || false\"></lib-breadcrumb>\n        <div class=\"shell-content-container-inner\" [class.busy]=\"busy\">\n          <router-outlet *ngIf=\"(config && config.layout === 'Sidebar')\"></router-outlet>\n        </div>\n      </main>\n    </div>\n  </div>\n</div>","import { Component, Inject } from '@angular/core';\nimport { APP_LINKS } from '../../../tokens';\nimport { IAppLinks } from '../../../types';\n\n@Component({\n    selector: 'lib-shell-footer',\n    templateUrl: './shell-footer.component.html',\n    standalone: false\n})\n\nexport class ShellFooterComponent {\n    constructor(@Inject(APP_LINKS) public links: IAppLinks) {\n    }\n}\n","<footer class=\"shell-footer-component-container\">\n  <div class=\"shell-footer-paddings\">\n    <div class=\"shell-footer-component-container-inner\">\n      <div class=\"shell-footer-sections-container\">\n        <div class=\"shell-footer-section\">\n          <img class=\"shell-footer-logo-h\" src=\"assets/images/branding/indice.png\" alt=\"INDICE logo\" />\n          <nav class=\"mt-4\">\n            <ul class=\"space-y-2\">\n              <ng-container *ngFor=\"let link of links.brand | async\">\n                <li>\n                  <a [href]=\"link.path\" class=\"shell-footer-link\">{{ link.text }}</a>\n                </li>\n              </ng-container>\n            </ul>\n          </nav>\n        </div>\n        <div class=\"shell-footer-section-links\">\n          <h5 class=\"shell-footer-section-title\">Legal</h5>\n          <nav class=\"mt-4\">\n            <ul class=\"grid lg:grid-cols-2\">\n              <ng-container *ngFor=\"let link of links.legal | async\">\n                <li class=\"mb-2\">\n                  <a [href]=\"link.path\" class=\"shell-footer-link\">{{ link.text }}</a>\n                </li>\n              </ng-container>\n            </ul>\n          </nav>\n        </div>\n        <div class=\"shell-footer-section-links\">\n          <h5 class=\"shell-footer-section-title\">Follow us</h5>\n          <nav class=\"mt-4\">\n            <ul class=\"grid lg:grid-cols-2\">\n              <li class=\"mb-2\">\n                <a href=\"#\" class=\"shell-footer-social\">\n                  <svg  class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n                    <path d=\"M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84\"/>\n                  </svg>\n                  <span> Twitter </span>\n                </a>\n              </li>\n              <li class=\"mb-2\">\n                <a href=\"#\" class=\"shell-footer-social\">\n                  <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n                    <path fill-rule=\"evenodd\" d=\"M12.315 2c2.43 0 2.784.013 3.808.06 1.064.049 1.791.218 2.427.465a4.902 4.902 0 011.772 1.153 4.902 4.902 0 011.153 1.772c.247.636.416 1.363.465 2.427.048 1.067.06 1.407.06 4.123v.08c0 2.643-.012 2.987-.06 4.043-.049 1.064-.218 1.791-.465 2.427a4.902 4.902 0 01-1.153 1.772 4.902 4.902 0 01-1.772 1.153c-.636.247-1.363.416-2.427.465-1.067.048-1.407.06-4.123.06h-.08c-2.643 0-2.987-.012-4.043-.06-1.064-.049-1.791-.218-2.427-.465a4.902 4.902 0 01-1.772-1.153 4.902 4.902 0 01-1.153-1.772c-.247-.636-.416-1.363-.465-2.427-.047-1.024-.06-1.379-.06-3.808v-.63c0-2.43.013-2.784.06-3.808.049-1.064.218-1.791.465-2.427a4.902 4.902 0 011.153-1.772A4.902 4.902 0 015.45 2.525c.636-.247 1.363-.416 2.427-.465C8.901 2.013 9.256 2 11.685 2h.63zm-.081 1.802h-.468c-2.456 0-2.784.011-3.807.058-.975.045-1.504.207-1.857.344-.467.182-.8.398-1.15.748-.35.35-.566.683-.748 1.15-.137.353-.3.882-.344 1.857-.047 1.023-.058 1.351-.058 3.807v.468c0 2.456.011 2.784.058 3.807.045.975.207 1.504.344 1.857.182.466.399.8.748 1.15.35.35.683.566 1.15.748.353.137.882.3 1.857.344 1.054.048 1.37.058 4.041.058h.08c2.597 0 2.917-.01 3.96-.058.976-.045 1.505-.207 1.858-.344.466-.182.8-.398 1.15-.748.35-.35.566-.683.748-1.15.137-.353.3-.882.344-1.857.048-1.055.058-1.37.058-4.041v-.08c0-2.597-.01-2.917-.058-3.96-.045-.976-.207-1.505-.344-1.858a3.097 3.097 0 00-.748-1.15 3.098 3.098 0 00-1.15-.748c-.353-.137-.882-.3-1.857-.344-1.023-.047-1.351-.058-3.807-.058zM12 6.865a5.135 5.135 0 110 10.27 5.135 5.135 0 010-10.27zm0 1.802a3.333 3.333 0 100 6.666 3.333 3.333 0 000-6.666zm5.338-3.205a1.2 1.2 0 110 2.4 1.2 1.2 0 010-2.4z\" clip-rule=\"evenodd\"/>\n                  </svg>\n                  <span> Instagram </span>\n                </a>\n              </li>\n              <li class=\"mb-2\">\n                <a href=\"#\" class=\"shell-footer-social\">\n                  <svg class=\"shell-footer-social-icon\" aria-hidden=\"true\" fill=\"currentColor\" viewBox=\"0 0 24 24\" >\n                    <path fill-rule=\"evenodd\" d=\"M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12c0 4.991 3.657 9.128 8.438 9.878v-6.987h-2.54V12h2.54V9.797c0-2.506 1.492-3.89 3.777-3.89 1.094 0 2.238.195 2.238.195v2.46h-1.26c-1.243 0-1.63.771-1.63 1.562V12h2.773l-.443 2.89h-2.33v6.988C18.343 21.128 22 16.991 22 12z\" clip-rule=\"evenodd\"/>\n                  </svg>\n                  <span> Facebook </span>\n                </a>\n              </li>\n            </ul>\n          </nav>\n        </div>\n      </div>\n    </div>\n    <div class=\"shell-footer-copyright\">\n      <!--<nav class=\"flex flex-wrap justify-center space-x-6\">\n      <a href=\"#\" class=\"font-normal text-sm hover:text-gray-100 mb-2\">Cookie settings</a>\n    </nav>-->\n      <p class=\"text-sm text-center sm:text-right\">\n        © 2021 INDICE. All rights reserved.\n      </p>\n    </div>\n  </div>\n</footer>\n","import { Component, Input, OnInit } from '@angular/core';\n\nimport { IShellConfig } from '../../../types';\n\n@Component({\n    selector: 'lib-shell-stacked-layout',\n    templateUrl: './shell-stacked-layout.component.html',\n    standalone: false\n})\nexport class ShellStackedLayoutComponent implements OnInit {\n  constructor() { }\n\n  @Input() config: IShellConfig | undefined;\n  @Input() busy: boolean = false;\n\n  public ngOnInit(): void { }\n}\n","<div class=\"shell-header-container\"\n     *ngIf=\"config?.showHeader\">\n    <div [class]=\"config?.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\n        <ng-container *ngIf=\"config?.customHeaderComponent\">\n            <div appDynamicComponentHost=\"Header\"></div>\n        </ng-container>\n        <lib-shell-header *ngIf=\"!config?.customHeaderComponent\"\n                          [busy]=\"busy\"\n                          [show-userName]=\"config?.showUserNameOnHeader\"\n                          [show-alerts]=\"config?.showAlertsOnHeader\"\n                          [show-langs]=\"config?.showLangsOnHeader\">\n        </lib-shell-header>\n    </div>\n</div>\n<main [class]=\"config?.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\n    <div [class]=\"config?.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\n        <router-outlet *ngIf=\"(!config || config.layout === 'Stacked' || !config.layout)\"></router-outlet>\n    </div>\n</main>\n<div class=\"shell-footer-container\"\n     *ngIf=\"config?.showFooter\">\n    <div [class]=\"config?.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\n        <ng-container *ngIf=\"config?.customFooterComponent\">\n            <div appDynamicComponentHost\n                 hostName=\"Footer\"></div>\n        </ng-container>\n        <lib-shell-footer *ngIf=\"!config?.customFooterComponent\"></lib-shell-footer>\n    </div>\n</div>","import { AfterViewInit, Component, OnInit, OnDestroy, Inject, ViewChildren, QueryList, AfterViewChecked, TemplateRef, Input, ViewChild } from '@angular/core';\nimport { ActivationStart, Router } from '@angular/router';\n\nimport { Subscription } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { SHELL_CONFIG } from './../../../tokens';\nimport { IShellConfig, DefaultShellConfig } from './../../../types';\nimport { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';\nimport { ComponentLoaderFactory } from '../../../services/component-loader/component-loader.factory';\nimport { SidePaneComponent } from '../../../../public-api';\n\n@Component({\n    selector: 'lib-shell-layout', templateUrl: './shell-layout.component.html',\n    standalone: false\n})\nexport class ShellLayoutComponent implements OnInit, OnDestroy, AfterViewInit, AfterViewChecked {\n  @ViewChildren(DynamicComponentHostDirective) private _dynamicComponentHosts: QueryList<DynamicComponentHostDirective> | null = null;\n  @ViewChild('rightPane') rightPane: SidePaneComponent | undefined;\n  @Input() busy: boolean = false;\n  @Input() public sidebarFooterTemplate?: TemplateRef<any>;\n  private _routerSub$: Subscription | null = null;\n  public showRightPaneSM = false;\n  public activeConfig: IShellConfig = new DefaultShellConfig();\n  public loaded = false;\n  public hideSidebar = false;\n\n  constructor(private _router: Router, private _componentLoaderFactory: ComponentLoaderFactory, @Inject(SHELL_CONFIG) private _config: IShellConfig | undefined) {\n    if (!_config) {\n      _config = new DefaultShellConfig();\n    }\n    this.activeConfig = _config;\n  }\n\n  public ngAfterViewChecked(): void {\n    setTimeout(() => { this.loaded = true; }, 200);\n  }\n\n  public ngOnInit(): void {\n    this._routerSub$ = this._router.events.pipe(filter((event) => event instanceof ActivationStart))\n    .subscribe((event) => {\n      if ((event as ActivationStart)?.snapshot) {\n        if ((event as ActivationStart)?.snapshot?.data) {\n          if ((event as ActivationStart)?.snapshot?.data.shell) {\n            this.activeConfig = (event as ActivationStart)?.snapshot.data.shell as IShellConfig;\n            if (this.activeConfig.customHeaderComponent) {\n              this.initCustomComponents();\n            }\n          } else {\n            this.activeConfig = this._config ? this._config : new DefaultShellConfig();\n          }\n        }\n      }\n    });\n  }\n\n  public ngAfterViewInit(): void {\n    this.initCustomComponents();\n  }\n\n  private initCustomComponents(): void {\n    if (this._dynamicComponentHosts && this._dynamicComponentHosts.length > 0) {\n      this.loadCustomComponent(this._dynamicComponentHosts.find((_) => _.hostName === 'Header'));\n    }\n  }\n\n  public ngOnDestroy(): void {\n    if (this._routerSub$) {\n      this._routerSub$.unsubscribe();\n    }\n  }\n\n  private loadCustomComponent(host: DynamicComponentHostDirective | undefined): void {\n    if (host) {\n      const viewContainerRef = host.viewContainerRef;\n      if (viewContainerRef && this.activeConfig.customHeaderComponent) {\n        const clf = this._componentLoaderFactory.createLoader(viewContainerRef);\n        clf.attach(this.activeConfig.customHeaderComponent).to(viewContainerRef.element).show();\n      }\n    }\n  }\n\n  onSidePaneActivated($event: any): void {\n    this.rightPane?.onSidePaneActivated($event);\n  }\n\n  onSidePaneDeactivated($event: any): void {\n    this.rightPane?.onSidePaneDeactivated($event);\n  }\n}\n","<div [class.hidden]=\"!loaded\" [class.block]=\"loaded\">\n  <!-- STACKED LAYOUT -->\n  <div *ngIf=\"(activeConfig.layout === 'Stacked' || !activeConfig.layout)\" class=\"shell-container active-side-pane\">\n    <lib-shell-stacked-layout [config]=\"activeConfig\" [busy]=\"busy\"></lib-shell-stacked-layout>\n  </div>\n  <!-- SIDEBAR LAYOUT -->\n  <div *ngIf=\"activeConfig.layout === 'Sidebar'\" class=\"sidebar shell-container active-side-pane\">\n    <lib-shell-sidebar-layout [config]=\"activeConfig\" [busy]=\"busy\"\n                              [sidebarFooterTemplate]=\"sidebarFooterTemplate\">\n    </lib-shell-sidebar-layout>\n  </div>\n  <lib-side-pane #rightPane>\n    <router-outlet name=\"rightpane\"\n                   (activate)=\"onSidePaneActivated($event)\"\n                   (deactivate)=\"onSidePaneDeactivated($event)\">\n    </router-outlet>\n  </lib-side-pane>\n  <lib-toaster-container></lib-toaster-container>\n</div>","import { SwitchViewAction } from '../../../types';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Component, Input, OnInit, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { HeaderMetaItem, RouterViewAction, ViewAction } from '../../../types';\n\n@Component({\n    selector: 'lib-view-layout',\n    templateUrl: './view-layout.component.html',\n    standalone: false\n})\nexport class ViewLayoutComponent implements OnInit {\n  // tslint:disable-next-line:no-input-rename\n  @ViewChild('search') private searchInput$?: ElementRef;\n  // tslint:disable-next-line:no-input-rename\n  @Input('show-header') header = true;\n  @Input() fluid = false;\n  @Input() title = 'no title';\n  @Input() icon: string | null = null;\n  @Input() actions: ViewAction[] | null = null;\n  @Input() busy = false;\n  // tslint:disable-next-line:no-input-rename\n  @Input('search-placeholder') searchPlaceholder: string | null = 'search';\n  @Input() view: string | null = null;\n  // tslint:disable-next-line:no-input-rename\n  @Input('meta-items') metaItems: HeaderMetaItem[] | null = [];\n  // tslint:disable-next-line:no-output-on-prefix\n  @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\n  // tslint:disable-next-line:no-output-on-prefix\n  @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\n\n  constructor(private route$: ActivatedRoute, private router$: Router) { }\n\n  ngOnInit(): void {\n    if (this.searchInput$?.nativeElement){\n      fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(\n        map((event: any) => {\n          return event.target.value; // Get input value.\n        }),\n        filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\n        // If character length greater than minimumSearchCharacters setting.\n        debounceTime(1000), // Time in milliseconds between key events.\n        distinctUntilChanged() // If previous query is different from current.\n      ).subscribe();\n    }\n  }\n\n  public emitActionClick(action: ViewAction): void {\n    this.onAction.emit(action);\n  }\n\n  public routerLinkActionClick(action: RouterViewAction | any): void {\n    // console.log('routerLinkActionClick', action);\n    if (action.outlet) {\n      this.router$.navigate(['', { outlets: { rightpane: action.link } }]);\n    } else {\n      this.router$.navigate([action.link]);\n    }\n  }\n\n  searchActionClick(action: ViewAction, text: string): void {\n    this.onSearch.emit(text);\n  }\n\n  searchActionType(text: string): void {\n    this.onSearch.emit(this.searchInput$?.nativeElement.value);\n  }\n\n  public handleClear(event: any): void {\n    console.log('handle clear!!!');\n    event.stopPropagation();\n    this.onSearch.emit(event.target?.value);\n  }\n\n  public switchViewActionClick(action: SwitchViewAction | any): void {\n    // console.log('switchViewActionClick', action);\n    this.view = action.param;\n    if (action && action.param) {\n      this.router$.navigate([], { queryParams: { view: action.param }, queryParamsHandling: 'merge', skipLocationChange: false });\n    }\n  }\n}\n","<header *ngIf=\"header\" class=\"view-layout-paddings\">\n  <div class=\"view-layout-title-container\">\n    <div class=\"view-layout-title-container-inner\">\n      \n      <div class=\"flex items-center\">\n        <i *ngIf=\"icon\" [class]=\"icon + ' title-icon'\" aria-hidden=\"true\"></i>\n        <h1 [class]=\"busy ? 'view-layout-title-busy' : 'view-layout-title'\">{{title || ' '}}</h1>\n      </div>\n      \n      <div *ngIf=\"metaItems && metaItems.length > 0\" class=\"meta-container\">\n        <ng-container *ngFor=\"let meta of metaItems\">\n          <div class=\"meta-item-container\">\n            <i *ngIf=\"meta.icon\" [class]=\"meta.icon + ' meta-icon'\" aria-hidden=\"true\"></i>\n            <span class=\"meta-text\">{{meta.text}}</span>\n          </div>\n        </ng-container>\n      </div>\n\n    </div>\n    <div class=\"view-layout-title-container-far\">\n      <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\n\n        <ng-container *ngSwitchCase=\"'search'\">\n          <label for=\"search\" class=\"sr-only\">Search</label>\n          <div class=\"search-container mr-1\">\n            <input id=\"text\"\n                   #search\n                   title=\"search\"\n                   class=\"search-input\"\n                   [placeholder]=\"searchPlaceholder\"\n                   name=\"search\"\n                   (input)=\"searchActionType(search.value)\"\n                   (onsearch)=\"handleClear($event)\">\n            <button type=\"button\"\n                    href=\"#\"\n                    class=\"search-button\"\n                    [title]=\"action.tooltip\"\n                    (click)=\"searchActionClick(action, search.value)\">\n              <i [class]=\"action.icon\"></i>\n            </button>\n          </div>\n        </ng-container>\n\n        <ng-container *ngSwitchCase=\"'switch-view'\">\n          <button [disabled]=\"view === action.param\" type=\"button\" href=\"#\" class=\"p-2 disabled:opacity-75 btn-view-header\" (click)=\"switchViewActionClick(action)\">\n            <span class=\"inline-block relative\">\n              <i [class]=\"action.icon\"></i><span *ngIf=\"view === action.param\" class=\"selected-view-indicator\"></span>\n            </span>\n          </button>\n        </ng-container>\n\n        <ng-container *ngSwitchCase=\"'router-link'\">\n          <button type=\"button\" href=\"#\" class=\"p-2 btn-view-header\" [title]=\"action.tooltip\" (click)=\"routerLinkActionClick(action)\">\n            <i [class]=\"action.icon\" [ngClass]=\"{'pr-1': action.text}\"></i>\n            {{ action.text }}\n          </button>\n        </ng-container>\n\n        <ng-container *ngSwitchDefault>\n          <button type=\"button\" class=\"p-2 btn-view-header\" [title]=\"action.tooltip\" (click)=\"emitActionClick(action)\">\n            <i [class]=\"action.icon\" [ngClass]=\"{'pr-1': action.text}\"></i>\n            {{ action.text }}\n          </button>\n        </ng-container>\n      </ng-container>\n    </div>\n  </div>\n</header>\n<div [class]=\"fluid ? 'view-container-fluid' : 'view-container'\">\n  <ng-content></ng-content>\n</div>","import { Location } from '@angular/common';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { HeaderMetaItem, MenuOption, ViewAction } from '../../../types';\n\n@Component({\n    // tslint:disable-next-line:component-selector\n    selector: 'lib-model-view-layout',\n    templateUrl: './model-view-layout.component.html',\n    standalone: false\n})\nexport class ModelViewLayoutComponent implements OnInit, OnDestroy {\n  public showRightPaneSM = false;\n  @Input() title = 'no title';\n  // tslint:disable-next-line:no-input-rename\n  @Input('primary-links') primary: { type?: string, text: string, link: string, icon?: string, exact? : boolean }[] | null = null;\n  // tslint:disable-next-line:no-input-rename\n  @Input('secondary-links') secondary: { type?: string, text: string, link: string, icon?: string, exact? : boolean }[] | null = null;\n  // tslint:disable-next-line:no-input-rename\n  @Input('meta-items') metaItems: HeaderMetaItem[] | null = [\n    // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }\n  ];\n  @Input() icon: string | null = null;\n  @Input() busy = false;\n  @Input() actions: ViewAction[] | null = null;\n  @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\n  private optionsLoaded = false;\n  private _options: MenuOption[] = [];\n  public selectedTab: any;\n  private selectedTabSub$: Subscription | undefined;\n  public get tabsOptions(): MenuOption[] {\n    if(!this.optionsLoaded) {\n      this.optionsLoaded = true;\n      if(this.primary) {\n        this.primary.forEach(p => {\n          this._options.push(new MenuOption(p.text, p.link, undefined, undefined, p.icon));\n        });\n      }\n\n      if(this.secondary) {\n        this.secondary.forEach(p => {\n          this._options.push(new MenuOption(p.text, p.link, undefined, undefined, p.icon));\n        });\n      }\n      \n      if(this._options && this._options.length > 0) {\n        this.selectedTab = this._options[0].value; \n      }\n    }\n    return this._options;\n  }\n  constructor( private location: Location, private router: Router, private route: ActivatedRoute) { }\n  \n  ngOnInit(): void {\n    this.selectedTabSub$ = this.router.events.subscribe(event => {\n      if(event instanceof NavigationEnd ) {\n        if(event.urlAfterRedirects) {\n          var urlParts = event.urlAfterRedirects.split('/');\n          if(urlParts && urlParts.length > 0) {\n            const lastPart = urlParts[urlParts.length-1];\n            this.selectedTab = lastPart.split('?')[0];\n          }\n        }\n      }\n    });\n  }\n\n  ngOnDestroy(): void {\n    if(this.selectedTabSub$) {\n      this.selectedTabSub$.unsubscribe();\n    }\n  }\n\n\n  public onSidePaneActivated($event: any): void  {\n    this.showRightPaneSM = true;\n  }\n\n  public onSidePaneDeactivated($event: any): void  {\n    this.showRightPaneSM = false;\n  }\n\n  public closeSidePane(): void {\n    this.location.back();\n  }\n\n  public navigateLink(link: any): void {\n    this.router.navigate([link], {relativeTo: this.route});\n  }\n\n  public emitActionClick(action: ViewAction): void {\n    this.onAction.emit(action);\n  }\n}\n","<lib-view-layout [title]=\"title || ' '\" [meta-items]=\"metaItems\" [actions]=\"actions\" (onAction)=\"emitActionClick($event)\" [icon]=\"icon\" [busy]=\"busy\">\n  <main class=\"model-view-container\">\n    <div class=\"model-view-container-inner\">\n      <aside class=\"model-view-aside\">\n        <section aria-labelledby=\"menu\" class=\"details-view-aside-header-section\">\n          <div class=\"model-view-aside-header-container\">\n            <div class=\"model-view-aside-header-container-inner\">\n              <ng-content *ngIf=\"!busy\"></ng-content>\n\n              <ng-container *ngIf=\"busy\">\n                <div class=\"flex items-center p-5\">\n                  <div class=\"w-12 h-14 mr-4 rounded-lg bg-gray-200 animate-pulse\"></div>\n                  <div>\n                    <div class=\"h-6 w-48 bg-gray-200 rounded-lg animate-pulse\"></div>\n                    <div class=\"mt-1 h-4 w-40 bg-gray-200 rounded-lg animate-pulse\"></div>\n                  </div>\n                </div>\n              </ng-container>\n\n            </div>\n            <!-- menu items -->\n            <div class=\"model-view-menu-container-mobile\">\n                <lib-drop-down-menu [options]=\"tabsOptions\" [selected]=\"selectedTab\" (selectedChange)=\"navigateLink($event)\"></lib-drop-down-menu>\n            </div>\n            <div class=\"model-view-menu-container\">\n              <nav class=\"model-view-menu-nav\">\n                <div class=\"model-view-menu-item\">\n                  <ng-container *ngFor=\"let section of primary\">\n                    <div class=\"h-3\" *ngIf=\"section.type === 'separator'\">\n                      \n                    </div>\n                    <a *ngIf=\"section.type !== 'separator'\"\n                       href=\"#\"\n                       [routerLinkActive]=\"['view-nav-link-active']\"\n                       [routerLink]=\"section.link\"\n                       [routerLinkActiveOptions]=\"{ exact: false }\"\n                       class=\"view-nav-link\">\n                      <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\n                      {{section.text}}\n                    </a>\n                  </ng-container>\n                </div>\n                <div class=\"model-view-menu-item-far\">\n                  <ng-container *ngFor=\"let section of secondary\">\n                    <div class=\"h-3\" *ngIf=\"section.type === 'separator'\"></div>\n                    <a *ngIf=\"section.type !== 'separator'\"\n                       [routerLinkActive]=\"['view-nav-link-active']\"\n                       [routerLink]=\"section.link\"\n                       [routerLinkActiveOptions]=\"{ exact: false }\"\n                       class=\"view-nav-link\">\n                      <i *ngIf=\"section.icon\" [class]=\"section.icon + ' mr-2'\"></i>\n                      {{section.text}}\n                    </a>\n                  </ng-container>\n                </div>\n              </nav>\n            </div>\n          </div>\n        </section>\n      </aside>\n      <div class=\"model-view-details-container\">\n        <router-outlet></router-outlet>\n      </div>\n    </div>\n  </main>\n","import { Router } from '@angular/router';\nimport { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { Location } from '@angular/common';\n\n@Component({\n    selector: 'lib-side-view-layout',\n    templateUrl: './side-view-layout.component.html',\n    standalone: false\n})\nexport class SideViewLayoutComponent implements OnInit {\n  @Input() title: string | null = 'Πληροφορίες';\n  @Input() showActions = true;\n  @Input() disabled = false;\n  // tslint:disable-next-line:no-input-rename\n  @Input('return-path') returnPath: string | undefined;\n  // tslint:disable-next-line:no-input-rename\n  @Input('ok-label') okLabel = 'Αποθήκευση';\n  // tslint:disable-next-line:no-input-rename\n  @Input('ok-show') okShow = true;\n  // tslint:disable-next-line:no-input-rename\n  @Input('ok-close-dialog') closeOnOk = true;\n  // tslint:disable-next-line:no-input-rename\n  @Input('cancel-label') cancelLabel = 'Ακύρωση';\n  // tslint:disable-next-line:no-input-rename\n  @Input('cancel-show') cancelShow = true;\n  // tslint:disable-next-line:no-input-rename\n  @Input('force-location-back') forceLocationBack = false;\n  @Input('redirect-on-close') redirectOnClose = true;\n  // @Output() close = new EventEmitter<any>();\n  @Output() cancel: EventEmitter<boolean> = new EventEmitter();\n  @Output() ok: EventEmitter<boolean> = new EventEmitter();\n\n  constructor(private location: Location, private router: Router) { }\n\n  ngOnInit(): void {\n  }\n\n  public closeSidePane(): void {\n    if (this.returnPath) {\n      this.router.navigateByUrl('/', { skipLocationChange: true }).then(() => this.router.navigateByUrl(this.returnPath || '/'));\n    } else {\n      if ((this.router.url.split('/(')[0] !== this.router.url) && !this.forceLocationBack) {\n        this.router.navigateByUrl(this.router.url.split('/(')[0]);\n      } else if ((this.router.url.split('(')[0] !== this.router.url) && !this.forceLocationBack) {\n        this.router.navigateByUrl(this.router.url.split('(')[0]);\n      } else {\n        this.location.back();\n      }\n    }\n  }\n\n  public emitClose(): void {\n    this.cancel.emit(false);\n    if(this.redirectOnClose) {\n      this.closeSidePane();\n    }\n  }\n\n  public emitCancel(): void {\n    this.cancel.emit(false);\n    if(this.redirectOnClose) {\n      this.closeSidePane();\n    }\n  }\n\n  public emitOK(): void {\n    this.ok.emit(true);\n    if (this.closeOnOk && this.redirectOnClose) {\n      this.closeSidePane();\n    }\n  }\n\n}\n","<div class=\"side-view-layout-size-box\">\n  <div class=\"side-view-layout-container\">\n    <div class=\"side-view-layout-container-inner\">\n      <div class=\"side-view-layout-header-margins\">\n        <div class=\"side-view-layout-header-container\">\n          <h2 class=\"side-view-layout-header-title\" id=\"slide-over-title\">\n            {{title}}\n          </h2>\n          <div class=\"side-view-layout-close-button-container\">\n            <button (click)=\"emitClose()\" class=\"side-view-layout-close-button\">\n              <span class=\"sr-only\">Close panel</span>\n              <!-- Heroicon name: outline/x -->\n              <svg class=\"side-view-layout-close-button-icon\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n                <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\" />\n              </svg>\n            </button>\n          </div>\n        </div>\n      </div>\n      <div class=\"side-view-layout-content-container\">\n        <!-- Replace with your content -->\n        <ng-content></ng-content>\n        <!-- /End replace -->\n      </div>\n    </div>\n    <div *ngIf=\"showActions\" class=\"side-view-layout-actions-container\">\n      <button *ngIf=\"cancelShow\" (click)=\"emitCancel()\" type=\"button\" class=\"side-view-layout-action-button-cancel\">\n        {{cancelLabel}}\n      </button>\n      <button *ngIf=\"okShow\" (click)=\"emitOK()\" class=\"side-view-layout-action-button-submit\" [disabled]=\"disabled\">\n        {{okLabel}}\n      </button>\n    </div>\n  </div>\n</div>\n\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs/operators';\nimport { SidePaneComponent } from '../../../controls/side-pane/side-pane.component';\nimport { RouterViewAction, ViewAction } from '../../../types';\n\n@Component({ selector: 'lib-form-layout', templateUrl: './form-layout.component.html', standalone: false })\nexport class FormLayoutComponent implements OnInit {\n  // tslint:disable-next-line:no-input-rename\n  @ViewChild('search') private searchInput$?: ElementRef;\n  @ViewChild('formPane') formPane: SidePaneComponent | undefined;\n  @Input() title: string | null = null;\n  @Input() image: string | null = null;\n  @Input() icon: string | null = null;\n  // tslint:disable-next-line:no-input-rename\n  @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση'\n  @Input() actions: ViewAction[] | null = null;\n  // tslint:disable-next-line:no-input-rename\n  @Input('sub-title') subTitle: string | null = null;\n  // tslint:disable-next-line:no-output-on-prefix\n  @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\n  // tslint:disable-next-line:no-output-on-prefix\n  @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\n  @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n  constructor(private router$: Router) { }\n\n  ngOnInit(): void {\n    if (this.searchInput$?.nativeElement){\n      fromEvent(this.searchInput$.nativeElement, 'keyup').pipe(\n        map((event: any) => {\n          return event.target.value; // Get input value.\n        }),\n        filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\n        // If character length greater than minimumSearchCharacters setting.\n        debounceTime(1000), // Time in milliseconds between key events.\n        distinctUntilChanged() // If previous query is different from current.\n      ).subscribe();\n    }\n  }\n\n  \n  public emitActionClick(action: ViewAction): void {\n    this.onAction.emit(action);\n  }\n\n  searchActionClick(action: ViewAction, text: string): void {\n    this.onSearch.emit(text);\n  }\n\n  searchActionType(text: string): void {\n    this.onSearch.emit(this.searchInput$?.nativeElement.value);\n  }\n\n  public routerLinkActionClick(action: RouterViewAction | any, relative: boolean = false): void {\n    if (action.outlet) {\n      this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);\n    } else {\n      this.router$.navigate([action.link]);\n    }\n  }\n\n  public onSidePaneDeactivated($event: any): void {\n    this.formPane?.onSidePaneDeactivated($event);\n    this.onComplete.emit(true);\n  }\n\n  public onSidePaneActivated($event: any): void {\n    this.formPane?.onSidePaneActivated($event);\n  }\n\n}\n","<div class=\"form-layout-container\">\n  <div class=\"form-header\" *ngIf=\"title || subTitle || actions\">\n    <div class=\"flex\">\n      <div class=\"mr-4 flex-shrink-0\" *ngIf=\"image\">\n        <img alt=\"form tab image\" class=\"form-header-image\" [src]=\"image\">\n      </div>\n      <div class=\"mr-4 flex-shrink-0\" *ngIf=\"icon\">\n        <i [class]=\"icon\" class=\"form-header-icon\"></i>\n      </div>\n      <div class=\"form-header-inner\">\n        <h3 class=\"form-title\">{{ title }}</h3>\n        <p class=\"form-subtitle\">{{ subTitle }}</p>\n      </div>\n    </div>\n    \n    <div class=\"form-header-actions\">\n      <ng-container *ngFor=\"let action of actions\" [ngSwitch]=\"action.type\">\n        <ng-container *ngSwitchCase=\"'search'\">\n          <label for=\"search\" class=\"sr-only\">Search</label>\n          <div class=\"search-container\">\n            <div class=\"pointer-events-none absolute inset-y-0 left-0 pl-3 flex items-center\">\n              <!--<svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n                            <path fill-rule=\"evenodd\" d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\" clip-rule=\"evenodd\" />\n                          </svg>-->\n            </div>\n            <input id=\"search\"\n                   #search\n                   class=\"form-search-input\"\n                   [placeholder]=\"searchPlaceholder\"\n                   type=\"search\"\n                   name=\"search\"\n                   (input)=\"searchActionType(search.value)\">\n          </div>\n          <button type=\"button\"\n                  href=\"#\"\n                  class=\"btn-form-view-header-search\"\n                  [title]=\"action.tooltip\"\n                  (click)=\"searchActionClick(action, search.value)\">\n            <i [class]=\"action.icon\"></i>\n          </button>\n        </ng-container>\n        <ng-container *ngSwitchCase=\"'router-link'\">\n          <button type=\"button\"\n                  href=\"#\"\n                  class=\"ml-1 btn-form-view-header\"\n                  [title]=\"action.tooltip\"\n                  (click)=\"routerLinkActionClick(action)\">\n            <i [class]=\"action.icon\"></i>\n          </button>\n        </ng-container>\n        <ng-container *ngSwitchDefault>\n          <button type=\"button\"\n                  class=\"ml-1 btn-form-view-header\"\n                  [title]=\"action.tooltip\"\n                  (click)=\"emitActionClick(action)\">\n            <i [class]=\"action.icon\"></i>\n          </button>\n        </ng-container>\n      </ng-container>\n    </div>\n  </div>\n  <div class=\"form-content-container\">\n    <div [ngClass]=\"{'form-content-container-inner': actions}\">\n      <ng-content></ng-content>\n    </div>\n  </div>\n  <lib-side-pane #formPane (onComplete)=\"onSidePaneDeactivated($event)\">\n    <router-outlet name=\"formRightPane\"\n                   (activate)=\"onSidePaneActivated($event)\"\n                   (deactivate)=\"onSidePaneDeactivated($event)\"></router-outlet>\n  </lib-side-pane>\n</div>\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AuthService } from '@indice/ng-auth';\n\n@Component({\n    selector: 'lib-auth-callback',\n    templateUrl: './auth-callback.component.html',\n    standalone: false\n})\nexport class AuthCallbackComponent implements OnInit {\n  constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\n\n  public status = 'παρακαλώ περιμένετε...';\n\n  public ngOnInit(): void {\n    this.authService.signinRedirectCallback().subscribe((user) => {\n      if (user) {\n        this.router.navigateByUrl(user.url_state || '/');\n      }\n    });\n  }\n}\n","<lib-view-layout [title]=\"status\" [busy]=\"true\"></lib-view-layout>","import { Component, Inject, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AuthService } from '@indice/ng-auth';\n\n@Component({\n    selector: 'lib-auth-renew',\n    template: '',\n    standalone: false\n})\nexport class AuthRenewComponent implements OnInit {\n  constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\n\n  public ngOnInit(): void {\n    this.authService.signinSilentCallback().subscribe(user => {\n      if (!user) {\n        this.router.navigate(['/unauthorized']);\n      }\n    });\n  }\n}\n","import { AuthService } from '@indice/ng-auth';\nimport { Component, Inject, OnInit } from '@angular/core';\n\n\n@Component({\n    // tslint:disable-next-line:component-selector\n    selector: 'lib-logged-out',\n    templateUrl: './logged-out.component.html',\n    standalone: false\n})\nexport class LoggedOutComponent implements OnInit {\n  constructor(@Inject(AuthService) private authService: AuthService) { }\n\n  public status = 'working on it, please give me a sec...';\n  public finished = false;\n\n  public ngOnInit(): void {\n    this.authService.removeUser().subscribe(() => {\n      this.status = 'Thank you!';\n      this.finished = true;\n    });\n  }\n}\n","<lib-view-layout title=\"Έχετε αποσυνδεθεί με επιτυχία!\"></lib-view-layout>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'lib-error',\n    templateUrl: './error.component.html',\n    standalone: false\n})\nexport class ErrorComponent implements OnInit {\n  public error = 'Error!';\n\n  ngOnInit(): void {\n  }\n\n}\n","<lib-view-layout [show-header]=\"false\" title=\"500 - παρουσιάστηκε σφάλμα!\">\n  <div class=\"bg-gray-600 view-container\">\n    <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\n      <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\n        <span class=\"block\">500</span>\n      </h2>\n      <p class=\"mt-4 text-lg leading-6 text-gray-200\">σφάλμα, κατι δεν πήγε καλά...!</p>\n      <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-lg text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\n        πατήστε εδώ για να επιστρέψετε\n      </a>\n    </div>\n  </div>\n</lib-view-layout>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'lib-page-not-found',\n    templateUrl: './page-not-found.component.html',\n    standalone: false\n})\nexport class PageNotFoundComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","<lib-view-layout [show-header]=\"false\" title=\"404 - δεν βρέθηκε!\">\n  <div class=\"text-gray-900\">\n    <div class=\"max-w-4xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\n      <h2 class=\"text-3xl font-extrabold sm:text-4xl\">\n        <span class=\"block\">404</span>\n      </h2>\n      <p class=\"mt-4 text-lg leading-6 text-gray-800\">δεν βρέθηκε η σελίδα που ζητήσατε!</p>\n      <a href=\"/\"\n         class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-lg text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\n        πατήστε εδώ για να επιστρέψετε\n      </a>\n    </div>\n  </div>\n</lib-view-layout>\n","import { Component, Inject, OnInit } from '@angular/core';\n\n@Component({\n    selector: 'lib-unauthorized',\n    templateUrl: './unauthorized.component.html',\n    standalone: false\n})\nexport class UnauthorizedComponent implements OnInit {\n  constructor() { }\n\n  public ngOnInit(): void { }\n}\n","<lib-view-layout [show-header]=\"false\" title=\"401 - δεν επιτρέπεται η πρόσβαση!\">\n  <div class=\"bg-gray-600 view-container\">\n    <div class=\"max-w-2xl mx-auto text-center py-16 px-4 sm:py-20 sm:px-6 lg:px-8\">\n      <h2 class=\"text-3xl font-extrabold text-white sm:text-4xl\">\n        <span class=\"block\">401</span>\n      </h2>\n      <p class=\"mt-4 text-lg leading-6 text-gray-200\">δεν έχετε τα κατάλληλα δικαιώματα πρόσβασης!</p>\n      <a href=\"/\" class=\"mt-8 inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-sm rounded-lg text-gray-600 bg-white hover:bg-gray-50 sm:w-auto\">\n        πατήστε εδώ για να επιστρέψετε\n      </a>\n    </div>\n  </div>\n  </lib-view-layout>\n\n\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IAddress } from '../types';\n\n@Pipe({\n    name: 'address',\n    pure: false,\n    standalone: false\n})\nexport class AddressPipe implements PipeTransform {\n\n    transform(value: IAddress | undefined): string {\n        if (value === undefined || null || '') {\n            return '';\n        }\n        // tslint:disable-next-line:no-non-null-assertion\n        return `${value.street || ''}${value.streetNumber ? ' ' + value.streetNumber : ''}${value.city ? ', ' + value.city : ''}${+value.postalCode! ? ', ' + +value.postalCode! : ''}`;\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'durationFormat',\n    pure: false,\n    standalone: false\n})\nexport class DurationFormatPipe implements PipeTransform {\n\n  transform(value: any, arg1: any, arg2: any): string {\n\n    let days: any;\n    let seconds: any;\n    let minutes: any;\n    let hours: any;\n\n    if (arg1 === 'ms' && arg2 === 'hhmmss') {\n      seconds = Math.floor((value / 1000) % 60);\n      minutes = Math.floor(((value / (1000 * 60)) % 60));\n      hours = Math.floor((value / (1000 * 60 * 60)));\n      return this.format(arg2, seconds, minutes, hours, days);\n\n    } else if (arg1 === 's' && arg2 === 'hhmmss') {\n      seconds = Math.floor((value % 60));\n      minutes = Math.floor(((value / 60) % 60));\n      hours = Math.floor(((value / 60) / 60));\n      return this.format(arg2, seconds, minutes, hours, days);\n\n    } else if (arg1 === 'ms' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\n      seconds = Math.floor(((value / 1000) % 60));\n      minutes = Math.floor((value / (1000 * 60) % 60));\n      hours = Math.floor((value / (1000 * 60 * 60) % 24));\n      days = Math.floor((value / (1000 * 60 * 60 * 24)));\n      return this.format(arg2, seconds, minutes, hours, days);\n\n    } else if (arg1 === 's' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\n      seconds = Math.floor(value % 60);\n      minutes = Math.floor(((value / 60) % 60));\n      hours = Math.floor(((value / 60) / 60) % 24);\n      days = Math.floor((((value / 60) / 60) / 24));\n      return this.format(arg2, seconds, minutes, hours, days);\n\n    }\n    else {\n      return value;\n    }\n  }\n\n  private format(arg2: string, seconds: any, minutes: any, hours: any, days: any): any {\n    (days < 10) ? days = '0' + days : days;\n    (hours < 10) ? hours = '0' + hours : hours;\n    (minutes < 10) ? minutes = '0' + minutes : minutes;\n    (seconds < 10) ? seconds = '0' + seconds : seconds;\n\n    switch (arg2) {\n      case 'hhmmss':\n        return `${hours}:${minutes}:${seconds}`;\n\n      case 'ddhhmmss':\n        return `${days}d, ${hours}h, ${minutes}m, ${seconds}s`;\n\n      case 'ddhhmmssLong':\n        return `${days} days, ${hours} hours, ${minutes} minutes, ${seconds} seconds`;\n    }\n    return undefined;\n  }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n    name: 'shortNumber',\n    pure: false,\n    standalone: false\n})\nexport class ShortNumberPipe implements PipeTransform {\n\n    transform(number: number, args?: any): any {\n        if (isNaN(number)) return null; // will only work value is a number\n        if (number === null) return null;\n        if (number === 0) return null;\n        let abs = Math.abs(number);\n        const rounder = Math.pow(10, 1);\n        const isNegative = number < 0; // will also work for Negative numbers\n        let key = '';\n\n        const powers = [\n            {key: 'Q', value: Math.pow(10, 15)},\n            {key: 'T', value: Math.pow(10, 12)},\n            {key: 'B', value: Math.pow(10, 9)},\n            {key: 'M', value: Math.pow(10, 6)},\n            {key: 'K', value: 1000}\n        ];\n\n        for (let i = 0; i < powers.length; i++) {\n            let reduced = abs / powers[i].value;\n            reduced = Math.round(reduced * rounder) / rounder;\n            if (reduced >= 1) {\n                abs = reduced;\n                key = powers[i].key;\n                break;\n            }\n        }\n        return (isNegative ? '-' : '') + abs + key;\n    }\n}","import { FilterClause, QueryParameters, SearchOption } from './../controls/advanced-search/models';\nimport { Observable, Subject, Subscription, of } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter } from 'rxjs/operators';\nimport { Component, OnInit, OnDestroy, Inject, Input } from '@angular/core';\nimport { ActivatedRoute, ParamMap, Router } from '@angular/router';\nimport { HeaderMetaItem, IResultSet, MenuOption, RouterViewAction, ViewAction, ListViewType } from '../types';\nimport { Icons } from '../icons';\n\n@Component({\n    template: '',\n    standalone: false\n})\nexport abstract class BaseListComponent<T> implements OnInit, OnDestroy {\n  public items: T[] | null | undefined = null;\n  public view: string = ListViewType.Tiles;\n  public title: string | null = null;\n  public actions: ViewAction[] = [];\n  public loaderItems: any[] = [1, 2, 3, 4, 5];\n  public page = 1;\n  public pageSize = 20;\n  public count = 0;\n  public sort: string | null = '';\n  public sortdir: string | null = '';\n  public search: string | null = '';\n  public filters: FilterClause[] = [];\n  public searchOptions: SearchOption[] = [];\n  public sortOptions: MenuOption[] = [];\n  public metaItems: HeaderMetaItem[] = [];\n  public singularResult = 'result';\n  public pluralResults = 'results';\n  public abstract newItemLink: string | null;\n  public minimumSearchCharacters = 3;\n  public searchDebounceTime = 300;\n  private routeSub$: Subscription | undefined;\n  private loadSub$: Subscription | undefined;\n  private searchSub$: Subscription | undefined;\n  private searchSubject$ = new Subject<string | null>();\n  @Input('auto-load') autoLoad: boolean = true;\n\n  constructor(private route$: ActivatedRoute, private router$: Router) {\n  }\n\n  ngOnDestroy(): void {\n    if (this.routeSub$) {\n      this.routeSub$.unsubscribe();\n    }\n    if (this.loadSub$) {\n      this.loadSub$.unsubscribe();\n    }\n    if (this.searchSub$) {\n      this.searchSub$.unsubscribe();\n    }\n  }\n\n  public getViewActions(): Observable<ViewAction[]> {\n    const actions = [\n      new ViewAction('search', null, null, Icons.Search, 'search'),\n      new ViewAction('refresh', null, null, Icons.Refresh, 'refresh')\n    ];\n    if (this.newItemLink) {\n      actions.push(new RouterViewAction(Icons.Add, this.newItemLink, 'rightpane', 'add a new record'));\n    }\n    return of(actions);\n  }\n\n  ngOnInit(): void {\n    this.getViewActions().subscribe(actions => {\n      this.actions = actions || [];\n    });\n\n    this.metaItems = [\n      { key: 'count', icon: Icons.ItemsCount, text: 'please wait...' }\n    ];\n\n    this.searchSub$ = this.searchSubject$.pipe(\n      filter(value => (value?.length ?? 0) >= this.minimumSearchCharacters || (value?.length ?? 0) === 0),\n      debounceTime(this.searchDebounceTime),\n      distinctUntilChanged()\n    ).subscribe(searchText => {\n      this.executeSearch(searchText);\n    });\n\n    // disabled external route changes monitoring due to sync issues - which is bad :) - refresh from url will not work\n    // until i come up with a solution...\n\n    this.routeSub$ = this.route$.queryParamMap.subscribe(params => {\n      if (params.keys.length === 0) {\n        return;\n      }\n\n      // changing the view mode does not require reloading...\n      this.view = params.get('view') || ListViewType.Tiles;\n      // console.log('route changes ', this.view);\n\n      if (params.get('search') !== null && params.get('search') !== this.search) {\n        this.searchChanged(params.get('search'));\n      }\n\n      const page = +(params.get('page') || 1);\n      if (page !== this.page) {\n        this.page = page;\n      }\n\n      const size = +(params.get('pagesize') || 20);\n      if (this.pageSize !== size) {\n        this.pageSize = size;\n      }\n\n      if (params.get('search') && (params.get('search') !== this.search)) {\n        this.search = params.get('search');\n      }\n\n      if (params.get('sort') && (params.get('sort') !== this.sort)) {\n        this.sort = params.get('sort');\n      }\n\n      if (params.get('dir') && (params.get('dir') !== this.sortdir)) {\n        this.sortdir = params.get('dir');\n      }\n      // initialize filters that may reside in the query string\n      this.filters = this.getFiltersFrom(params);\n    });\n    // just to sync params in query\n    this.setRouteParams(true);\n    if(this.autoLoad) this.load();\n  }\n\n  /**\n * Get filters from a querystring\n * @param queryParamMap\n * @returns filters found from a paramMap\n */\n  private getFiltersFrom(queryParamMap: ParamMap): FilterClause[] {\n    let filterResult: FilterClause[] = [];\n    if (queryParamMap.has(QueryParameters.FILTER) && queryParamMap.get(QueryParameters.FILTER)!.length > 0) {\n      let filterValue = queryParamMap.get(QueryParameters.FILTER);\n      const filterValues = filterValue?.split(\",\"); // we may have multiple filters in filter query param\n      if (filterValues && filterValues.length > 0) {\n        // create the filterClauses derived from the query params\n        for (var index in filterValues) {\n          let filterClause = FilterClause.parse(filterValues[index]);\n          const parsed = new FilterClause(filterClause!.member, filterClause!.value, filterClause!.operator, filterClause!.dataType, this.searchOptions);\n          if (parsed !== undefined) {\n            filterResult.push(parsed);\n          }\n        }\n      }\n    }\n    return filterResult;\n  }\n\n  private setRouteParams(locationChange: boolean = false): void {\n    this.router$.navigate([], {\n      relativeTo: this.route$, queryParams: {\n        view: this.view,\n        page: this.page,\n        pagesize: this.pageSize,\n        search: this.search,\n        sort: this.sort,\n        dir: this.sortdir,\n        filter: this.filterClausesToString(this.filters)\n      }, queryParamsHandling: 'merge', skipLocationChange: locationChange\n    });\n  }\n\n  private filterClausesToString(filters: FilterClause[] | undefined) {\n    return filters?.map((f: FilterClause) => {\n      if (f.dataType === 'datetime') {\n        f.value = (new Date(f.value)).toISOString();\n      }\n      return f.toString();\n    }).join(',');\n  }\n\n  public actionHandler($event: ViewAction): void {\n    // console.log('BaseListComponent actionHandler', $event);\n    if ($event.key === 'refresh') {\n      this.refresh();\n    }\n  }\n\n  private load(): void {\n    // console.log('BaseListComponent LOAD');\n    this.count = 0;\n    this.items = null;\n    this.loadSub$ = this.loadItems().subscribe(result => {\n      this.count = result ? result.count : 0;\n      this.items = result?.items;\n      this.updateHeaderMeta();\n    }, err => {\n      this.count = 0;\n      this.items = null;\n      this.updateHeaderMeta();\n    });\n  }\n\n  private updateHeaderMeta(): void {\n    const count = this.metaItems?.filter(m => m.key === 'count')[0];\n    if (count) {\n      this.count === 1 ? count.text = `${this.count} ${this.singularResult}` : count.text = `${this.count} ${this.pluralResults}`;\n    }\n  }\n\n  public abstract loadItems(): Observable<IResultSet<T> | null | undefined>;\n\n  public clear(): void {\n    this.count = 0;\n    this.page = 1;\n    this.items = null;\n    this.search = null;\n    this.setRouteParams();\n    this.load();\n  }\n\n  public refresh(): void {\n    this.count = 0;\n    this.updateHeaderMeta();\n    this.page = 1;\n    this.items = null;\n    this.setRouteParams();\n    this.load();\n  }\n\n  public pageChanged(page: number): void {\n    if (this.page !== page) {\n      this.page = page;\n      this.setRouteParams();\n      this.load();\n    }\n  }\n\n  public pageSizeChanged(pageSize: number): void {\n    if (this.pageSize !== pageSize) {\n      this.pageSize = pageSize;\n      this.page = 1;\n      this.setRouteParams();\n      this.refresh();\n    }\n  }\n\n  public sortChanged(sort: string): void {\n    // console.log('base-list sortChanged', sort);\n    if (this.sort !== sort) {\n      this.page = 1;\n      this.sort = sort;\n      this.setRouteParams();\n      this.refresh();\n    }\n  }\n\n  public sortdirChanged(sortdir: string): void {\n    if (this.sortdir !== sortdir) {\n      this.page = 1;\n      this.sortdir = sortdir;\n      this.setRouteParams();\n      this.refresh();\n    }\n  }\n\n  public advancedSearchChanged(filters: FilterClause[]): void {\n    this.count = 0;\n    this.page = 1;\n    this.items = null;\n    this.filters = filters;\n    this.setRouteParams();\n    this.load();\n  }\n\n  public searchChanged(searchText: string | null): void {\n    this.searchSubject$.next(searchText);\n  }\n\n  private executeSearch(searchText: string | null): void {\n    this.count = 0;\n    this.page = 1;\n    this.items = null;\n    this.search = searchText;\n    this.setRouteParams();\n    this.load();\n  }\n}\n","export const cssClassNames = {\n  backdrop: 'modal-backdrop',\n  show: 'show',\n  fade: 'fade',\n\tmodalOpen: 'modal-open'\n};\n\nexport const animationTime = {\n  backdrop: 150,\n  modal: 300,\n};\n","import { Component, ElementRef, OnInit, Renderer2, ViewEncapsulation } from '@angular/core';\nimport { ComponentLoader } from '../component-loader/component-loader.class';\nimport { animationTime, cssClassNames } from './modal-styles.class';\n\n/**\n * Background layer for modals.\n * Override class name to theme it.\n * @see {@link cssClassNames}\n * @internal\n */\n@Component({\n    selector: 'lib-modal-backdrop',\n    encapsulation: ViewEncapsulation.None,\n    template: '',\n    host: {\n        class: cssClassNames.backdrop,\n    },\n    standalone: false\n})\nexport class ModalBackdropComponent implements OnInit {\n  private animationsEnabled = false;\n  private backdropLoader: ComponentLoader<ModalBackdropComponent> | undefined;\n  constructor(private element: ElementRef, private renderer: Renderer2) {}\n\n  ngOnInit(): void {\n    if (this.animationsEnabled) {\n      this.renderer.addClass(this.element.nativeElement, cssClassNames.fade);\n      this.reflow(this.element.nativeElement);\n    }\n    this.renderer.addClass(this.element.nativeElement, cssClassNames.show);\n  }\n\n  public hide() {\n    this.renderer.removeClass(this.element.nativeElement, cssClassNames.show);\n    setTimeout(() => this.backdropLoader?.hide(), this.animationsEnabled ? animationTime.backdrop : 0);\n  }\n\n  reflow(element: any): void {\n    ((bs: any): void => bs)(element.offsetHeight);\n  }\n}\n","import { Injectable, InjectionToken, StaticProvider } from '@angular/core';\n\n/**\n * Modals option can be passed to a specific modal from {@link ModalService.show} or\n * set globbaly using the injection token {@link MODAL_CONFIG_DEFAULT_OVERRIDE}.\n * @remarks\n * Modal specific options are merged with global options.\n * @see {@link modalConfigDefaults} for defaults.\n * @public\n */\n@Injectable()\nexport class ModalOptions<T = Record<string, unknown>> {\n  /**\n   *  Id for opened modal. If not set a random one is generated.\n   */\n  id?: number | string;\n  /**\n   * If static is set the modal will not close when clicking outside of modal.\n   * @remarks\n   * Keyboard event (escape key) stills applies. If you must get a result then also set keyboard to false.\n   */\n  backdrop?: boolean | 'static';\n  /**\n   * Closes the modal when escape key is pressed.\n   */\n  keyboard?: boolean;\n  /**\n   * Shows the modal when initialized.\n   */\n  show?: boolean;\n  /**\n   * Ignore the backdrop click. Pretty much the same as backdrop static.\n   */\n  ignoreBackdropClick?: boolean;\n  /**\n   * Css class for opened modal.\n   */\n  class?: string;\n  /**\n   * Toggle animation.\n   */\n  animated?: boolean;\n  /**\n   * Modal initial data.\n   * @remarks\n   * This data must be known properties of content component.\n   */\n  initialState?: Partial<T>;\n  /**\n   * Function to intercept the closure.\n   * @remarks\n   * You can use to catch the close event and even prevent it from closing.\n   */\n  closeInterceptor?: CloseInterceptorFn;\n  /**\n   * Modal static providers.\n   * @see {@link https://angular.io/guide/glossary#di-token | Injection Token}\n   */\n  providers?: StaticProvider[];\n  /**\n   * aria-labelledby attribute value to set on the modal window.\n   */\n  ariaLabelledBy?: string;\n  /**\n   * aria-describedby attribute value to set on the modal window.\n   */\n  ariaDescribedby?: string;\n}\n\n/**\n * Default option values.\n */\nexport const modalConfigDefaults: ModalOptions = {\n  backdrop: true,\n  keyboard: true,\n  show: false,\n  ignoreBackdropClick: false,\n  class: '',\n  animated: true,\n  initialState: {},\n  closeInterceptor: void 0,\n};\n\n/**\n * Use this injection token to set global options.\n */\nexport const MODAL_CONFIG_DEFAULT_OVERRIDE: InjectionToken<ModalOptions> = new InjectionToken<ModalOptions>('override-default-config');\n\n/**\n * Close interceptor promise.\n */\nexport type CloseInterceptorFn = () => Promise<void>;\n","import { Component, ElementRef, HostListener, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { animationTime, cssClassNames } from './modal-styles.class';\nimport { ModalOptions } from './modal-options.class';\nimport { ModalService } from './modal-service';\n\n/**\n * Modal container component.\n * @remarks\n * All dynamic content `TemplateRef` or `Component` case will be drawn inside this.\n * You can override css classes to theme it {@link cssClassNames}\n * @internal\n */\n@Component({\n    selector: 'lib-modal-container',\n    template: `\n    <div [class]=\"'modal-dialog' + (config.class ? ' ' + config.class : '')\" role=\"document\" focusTrap>\n      <div class=\"modal-content\">\n        <ng-content></ng-content>\n      </div>\n    </div>\n  `,\n    host: {\n        class: 'modal',\n        role: 'dialog',\n        tabindex: '-1',\n        '[attr.aria-modal]': 'true',\n        '[attr.aria-labelledby]': 'config.ariaLabelledBy',\n        '[attr.aria-describedby]': 'config.ariaDescribedby',\n    },\n    standalone: false\n})\nexport class ModalContainerComponent implements OnInit, OnDestroy {\n  public level?: number;\n  public config: ModalOptions;\n  public modalService?: ModalService;\n  private isShown = false;\n  private animationsEnabled = false;\n  private isModalHiding = false;\n  private clickStartedInContent = false;\n  constructor(options: ModalOptions, protected _element: ElementRef, private renderer: Renderer2) {\n    this.config = Object.assign({}, options);\n  }\n\n  ngOnInit(): void {\n    if (this.animationsEnabled) {\n      this.renderer.addClass(this._element.nativeElement, cssClassNames.fade);\n    }\n    this.renderer.setStyle(this._element.nativeElement, 'display', 'block');\n    setTimeout(\n      () => {\n        this.isShown = true;\n        this.renderer.addClass(this._element.nativeElement, cssClassNames.show);\n      },\n      this.animationsEnabled ? animationTime.backdrop : 0\n    );\n    if (this._element.nativeElement) {\n      this._element.nativeElement.focus();\n    }\n  }\n\n  @HostListener('mousedown', ['$event'])\n  onClickStarted(event: MouseEvent): void {\n    this.clickStartedInContent = event.target !== this._element.nativeElement;\n  }\n\n  @HostListener('click', ['$event'])\n  onClickStop(event: MouseEvent): void {\n    const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n    if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || !clickedInBackdrop) {\n      this.clickStartedInContent = false;\n      return;\n    }\n    this.hide();\n  }\n\n  @HostListener('window:popstate')\n  onPopState(): void {\n    this.hide();\n  }\n\n  @HostListener('window:keydown.esc', ['$event'])\n  onEsc(event: KeyboardEvent): void {\n    if (!this.isShown) {\n      return;\n    }\n    if (event.keyCode === 27 || event.key === 'Escape' || event.key === 'Esc') {\n      event.preventDefault();\n    }\n    if (this.config.keyboard && this.config.id === this.modalService?.getActiveModal().config.id) {\n      this.hide();\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.isShown) {\n      this._hide();\n    }\n  }\n\n  hide(result?: any): void {\n    if (this.isModalHiding || !this.isShown) {\n      return;\n    }\n    if (this.config.closeInterceptor) {\n      this.config.closeInterceptor().then(\n        () => this._hide(),\n        () => undefined\n      );\n      return;\n    }\n    this._hide(result);\n  }\n\n  private _hide(result?: any): void {\n    this.isModalHiding = true;\n    this.renderer.removeClass(this._element.nativeElement, cssClassNames.show);\n    setTimeout(\n      () => {\n        this.isShown = false;\n        this.modalService?.hide(this.config.id, result);\n        this.isModalHiding = false;\n      },\n      this.animationsEnabled ? animationTime.modal : 0\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n/**\n * Modal class.\n * @remarks\n * This is returned from {@link ModalService.show}.\n * @public\n */\n@Injectable()\nexport class Modal<T = any> {\n  /**\n   * Event that is fired when the modal behind the ref starts hiding.\n   * @returns\n   * Modal component instance.\n   */\n  onBeforeHide?: Subject<unknown>;\n  /**\n   * Event that is fired when the modal behind the ref finishes hiding.\n   * @returns\n   * An object containing the id of the closed modal and result.\n   */\n  onHidden?: Subject<unknown>;\n  /**\n   *  Id of this modal.\n   */\n  id?: number | string;\n\n  /**\n   * Reference to a component inside the modal. Null if modal's been created with TemplateRef.\n   * @remarks\n   * You can use this to do nasty stuff with opened modal instance.\n   */\n  content?: T;\n\n  /**\n   * Hides the modal\n   * @param result - A result to the observers.\n   */\n  hide: (result?: any) => void = () => void 0;\n  /**\n   * Sets new class to modal window.\n   */\n  setClass: (newClass: string) => void = () => void 0;\n}\n","import { ComponentRef, Inject, Injectable, OnDestroy, Optional, Renderer2, RendererFactory2, TemplateRef, DOCUMENT } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { ComponentLoader } from '../component-loader/component-loader.class';\nimport { animationTime, cssClassNames } from './modal-styles.class';\nimport { ModalBackdropComponent } from './modal-backdrop-component';\nimport { ModalContainerComponent } from './modal-container-component';\nimport { modalConfigDefaults, ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE } from './modal-options.class';\nimport { Modal } from './modal.class';\nimport { ComponentLoaderFactory } from '../component-loader/component-loader.factory';\n\n/**\n * A service for using modals.\n *\n * @public\n */\n@Injectable()\nexport class ModalService implements OnDestroy {\n  private onBeforeShow = new Subject();\n  private onShown = new Subject();\n  private onBeforeHide = new Subject();\n  private onHidden = new Subject();\n\n  private backdropRef?: ComponentRef<ModalBackdropComponent>;\n  private defaultConfig: ModalOptions;\n  private backdropLoader: ComponentLoader<ModalBackdropComponent>;\n  private loaders: ComponentLoader<ModalContainerComponent>[] = [];\n  private renderer: Renderer2;\n  private modalsCount = 0;\n  private initialPadding = '0px';\n  constructor(\n    private clf: ComponentLoaderFactory,\n    rendererFactory: RendererFactory2,\n    @Inject(DOCUMENT) private document: any,\n    @Optional() @Inject(MODAL_CONFIG_DEFAULT_OVERRIDE) modalDefaultOption: ModalOptions\n  ) {\n    this.backdropLoader = this.clf.createLoader<ModalBackdropComponent>();\n    this.defaultConfig = { ...modalConfigDefaults, ...modalDefaultOption };\n    this.renderer = rendererFactory.createRenderer(null, null);\n  }\n\n  ngOnDestroy(): void {\n    this.loaders.forEach((loader) => loader.instance?.hide());\n  }\n\n  /**\n   * Opens a new modal.\n   *\n   * @param content - `Component` or `TemplateRef` type.\n   * @param config - Specific {@link ModalOptions | options}  for this modal. Global and specific options are merged.\n   * @returns An instance of {@link Modal}\n   */\n  public show<T>(content: string | TemplateRef<any> | { new (...args: any[]): T }, config?: ModalOptions<T>) {\n    this.modalsCount++;\n    const combinedConfig = { ...this.defaultConfig, ...config };\n    combinedConfig.id = config?.id || new Date().getUTCMilliseconds();\n    console.log('show', combinedConfig);\n    this.createLoaders();\n\n    this.addBodyPadding();\n    if (this.modalsCount === 1) {\n      this.renderer.addClass(this.document.body, cssClassNames.modalOpen);\n    }\n    this.showBackdrop(combinedConfig);\n    return this.showModal<T>(content, combinedConfig);\n  }\n\n  /**\n   * Hide an active modal.\n   * @param id - Id of modal to hide. If not provided all active modals are hidden.\n   * @param result - A result to be sent to observers.\n   */\n  public hide(id?: number | string, result?: any) {\n    if (this.modalsCount === 1 || id == null) {\n      this.hideBackdrop();\n      this.revertScrollbar();\n      this.renderer.removeClass(this.document.body, cssClassNames.modalOpen);\n    }\n    this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;\n    setTimeout(\n      () => {\n        this.hideModal(id, result);\n        this.removeLoaders(id);\n      },\n      //Bug\n      //Should use combined config but for the moment is not possible to pass it this parameter.\n      //If config is an instance variable then every newly opened modal will override the config\n      //resulting in opened modals to get a new configuration\n      this.defaultConfig.animated ? animationTime.backdrop : 0\n    );\n  }\n\n  public getActiveModal(): ModalContainerComponent {\n    return this.loaders[this.modalsCount - 1].instance as ModalContainerComponent;\n  }\n\n  private showModal<T>(content: any, combinedConfig: ModalOptions): Modal<T> {\n    const modalLoader = this.loaders[this.loaders.length - 1];\n    if (combinedConfig && combinedConfig.providers) {\n      combinedConfig.providers.forEach((provider) => modalLoader.provide(provider));\n    }\n\n    const modal = new Modal<any>();\n    const modalContainerRef = modalLoader\n      .provide({ provide: ModalOptions, useValue: combinedConfig })\n      .provide({ provide: Modal, useValue: modal })\n      .attach(ModalContainerComponent)\n      .to('body');\n\n    modal.setClass = (newClass: string) => {\n      if (modalContainerRef.instance) {\n        modalContainerRef.instance.config.class = newClass;\n      }\n    };\n\n    modal.onBeforeHide = new Subject();\n    modal.onHidden = new Subject();\n    this.copyEvent(modalLoader.onBeforeHide, modal.onBeforeHide);\n    this.copyEvent(modalLoader.onHidden, modal.onHidden);\n    modalContainerRef.show({\n      content,\n      animationsEnabled: combinedConfig.animated,\n      initialState: combinedConfig.initialState,\n      modalService: this,\n      id: combinedConfig.id,\n    });\n\n    if (modalContainerRef.instance) {\n      modalContainerRef.instance.level = this.modalsCount;\n      modal.content = modalLoader.getInnerComponent();\n      modal.id = modalContainerRef.instance.config?.id;\n      modal.hide = (res) => modalContainerRef.instance?.hide(res);\n    }\n\n    return modal;\n  }\n\n  private hideModal(id?: number | string, result?: any): void {\n    if (id != null) {\n      const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);\n      const modalLoader = this.loaders[indexToRemove];\n      if (modalLoader) {\n        modalLoader.hide(id, result);\n      }\n    } else {\n      this.loaders.forEach((loader: ComponentLoader<ModalContainerComponent>) => {\n        if (loader.instance) {\n          loader.hide(loader.instance.config.id);\n        }\n      });\n    }\n  }\n\n  private showBackdrop(combinedConfig: ModalOptions): void {\n    const isBackdropEnabled = combinedConfig.backdrop === true || combinedConfig.backdrop === 'static';\n    const isBackdropInDOM = this.backdropRef != null;\n    if (isBackdropEnabled && !isBackdropInDOM) {\n      this.backdropLoader\n        .attach(ModalBackdropComponent)\n        .to('body')\n        .show({ animationsEnabled: combinedConfig.animated, backdropLoader: this.backdropLoader });\n      this.backdropRef = this.backdropLoader.componentRef;\n    }\n  }\n\n  private hideBackdrop(): void {\n    if (!this.backdropRef) {\n      return;\n    }\n    this.backdropRef.instance.hide();\n    this.backdropRef = void 0;\n  }\n\n  private removeLoaders(id?: number | string): void {\n    if (id != null) {\n      const indexToRemove = this.loaders.findIndex((loader) => loader.instance?.config.id === id);\n      if (indexToRemove >= 0) {\n        this.loaders.splice(indexToRemove, 1);\n        this.loaders.forEach((loader: ComponentLoader<ModalContainerComponent>, i: number) => {\n          if (loader.instance) {\n            loader.instance.level = i + 1;\n          }\n        });\n      }\n    } else {\n      this.loaders.splice(0, this.loaders.length);\n    }\n  }\n\n  private addBodyPadding() {\n    if (this.modalsCount === 1) {\n      const width = this.getScrollbarWidth();\n      if (this.isScrollBarPresent(width)) {\n        this.initialPadding = this.document.body.style.paddingRight;\n        const actualPadding = parseFloat(window.getComputedStyle(this.document.body).paddingRight);\n        this.document.body.style.paddingRight = `${actualPadding + width}px`;\n      }\n    }\n  }\n\n  private revertScrollbar() {\n    this.document.body.style.paddingRight = this.initialPadding;\n  }\n\n  private getScrollbarWidth(): number {\n    const measurer = this.document.createElement('div');\n    measurer.className = 'modal-scrollbar-measure';\n\n    const body = this.document.body;\n    body.appendChild(measurer);\n    const width = measurer.getBoundingClientRect().width - measurer.clientWidth;\n    body.removeChild(measurer);\n\n    return width;\n  }\n\n  private isScrollBarPresent(scrollbarWidth: number) {\n    const rect = this.document.body.getBoundingClientRect();\n    const bodyToViewportGap = window.innerWidth - (rect.left + rect.right);\n    const uncertainty = 0.1 * scrollbarWidth;\n    return bodyToViewportGap >= scrollbarWidth - uncertainty;\n  }\n\n  private createLoaders(): void {\n    const loader = this.clf.createLoader<ModalContainerComponent>();\n    this.copyEvent(loader.onBeforeShow, this.onBeforeShow);\n    this.copyEvent(loader.onShown, this.onShown);\n    this.copyEvent(loader.onBeforeHide, this.onBeforeHide);\n    this.copyEvent(loader.onHidden, this.onHidden);\n    this.loaders.push(loader);\n  }\n\n  private copyEvent(from: Subject<unknown>, to: Subject<unknown>) {\n    from.subscribe((data) => {\n      to.next(data);\n    });\n  }\n}\n","import { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NO_ERRORS_SCHEMA , ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { AddressPipe } from './pipes/address.pipe';\nimport { AdvancedSearchComponent } from './controls/advanced-search/advanced-search.component';\nimport { AuthCallbackComponent } from './pages/auth/auth-callback/auth-callback.component';\nimport { AuthRenewComponent } from './pages/auth/auth-renew/auth-renew.component';\nimport { AvatarInitialsComponent } from './controls/avatar-initials/avatar-initials.component';\nimport { BreadcrumbComponent } from './controls/breadcrumb/breadcrumb.component';\nimport { BreadcrumbService } from './services/breadcrumb.service';\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\nimport { CollapsiblePanelComponent } from './controls/collapsible-panel/collapsible-panel.component';\nimport { ComboboxComponent } from './controls/combobox/combobox.component';\nimport { EnhancedComboboxComponent } from './controls/enhanced-combobox/enhanced-combobox.component';\nimport { DatepickerComponent } from './controls/date-picker/date-picker.component';\nimport { DropDownMenuComponent } from './controls/drop-down-menu/drop-down-menu.component';\nimport { DurationFormatPipe } from './pipes/duration-format.pipe';\nimport { DynamicComponentHostDirective } from './directives/dynamic-component-host.directive';\nimport { ErrorComponent } from './pages/http-status/error/error.component';\nimport { FormLayoutComponent } from './layouts/views/form-layout/form-layout.component';\nimport { IndiceAuthModule } from '@indice/ng-auth';\nimport { KpiTileComponent } from './controls/kpi-tile/kpi-tile.component';\nimport { LanguageSelectionComponent } from './controls/language-selection/language-selection.component';\nimport { LibStepComponent } from './controls/stepper/lib-step.component';\nimport { LibStepInfoDirective } from './controls/stepper/lib-step-info.directive';\nimport { LibStepLabelDirective } from './controls/stepper/lib-step-label.directive';\nimport { LibStepperComponent } from './controls/stepper/lib-stepper.component';\nimport { LibTabComponent } from './controls/tabs/lib-tab.component';\nimport { LibTabGroupComponent } from './controls/tabs/lib-tab-group.component';\nimport { ListColumnComponent } from './controls/list-view/list-column.component';\nimport { ListDetailsSectionComponent } from './controls/list-view/list-details-section.component';\nimport { ListTileComponent } from './controls/list-view/list-tile.component';\nimport { ListViewComponent } from './controls/list-view/list-view.component';\nimport { ListViewEmptyStateComponent } from './controls/list-view/list-view-empty-state.component';\nimport { LoggedOutComponent } from './pages/auth/logged-out/logged-out.component';\nimport { ModelViewLayoutComponent } from './layouts/views/model-view-layout/model-view-layout.component';\nimport { NavLinksListComponent } from './controls/nav-links-list/nav-links-list.component';\nimport { NotificationsIndicatorComponent } from './controls/notifications-indicator/notifications-indicator.component';\nimport { PageNotFoundComponent } from './pages/http-status/page-not-found/page-not-found.component';\nimport { PagerComponent } from './controls/pager/pager.component';\nimport { ShellFooterComponent } from './layouts/shell/shell-footer/shell-footer.component';\nimport { ShellHeaderComponent } from './layouts/shell/shell-header/shell-header.component';\nimport { ShellLayoutComponent } from './layouts/shell/shell-layout/shell-layout.component';\nimport { ShellSidebarComponent } from './layouts/shell/shell-sidebar/shell-sidebar.component';\nimport { ShellSidebarHeaderComponent } from './layouts/shell/shell-sidebar-header/shell-sidebar-header.component';\nimport { ShellSidebarLayoutComponent } from './layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component';\nimport { ShellStackedLayoutComponent } from './layouts/shell/shell-stacked-layout/shell-stacked-layout.component';\nimport { SidePaneComponent } from './controls/side-pane/side-pane.component';\nimport { SideViewLayoutComponent } from './layouts/views/side-view-layout/side-view-layout.component';\nimport { SkeletonLoaderComponent } from './controls/skeleton-loader/skeleton-loader.component';\nimport { ToasterComponent } from './controls/toaster/toaster.component';\nimport { ToasterContainerComponent } from './controls/toaster/toaster-container.component';\nimport { ToasterService } from './services/toaster.service';\nimport { ToggleComponent } from './controls/toggle/toggle.component';\nimport { UnauthorizedComponent } from './pages/http-status/unauthorized/unauthorized.component';\nimport { UserProfileMenuComponent } from './controls/user-profile-menu/user-profile-menu.component';\nimport { ViewLayoutComponent } from './layouts/views/view-layout/view-layout.component';\nimport { LibTabLabelDirective, UserSettingsService } from '../public-api';\nimport { ToggleButtonComponent } from './controls/toggle-button/toggle-button.component';\nimport { ToggleButtonsListComponent } from './controls/toggle-buttons-list/toggle-buttons-list.component';\nimport { ContentTileComponent, ContentTileHeaderComponent, ContentTileItemComponent } from './controls/content-tile/content-tile.component';\nimport { ShortNumberPipe } from './pipes/short-number.pipe';\nimport { StatsGridComponent } from './controls/stats-grid/stats-grid.component';\nimport { ProgressBarComponent } from './controls/progress-bar/progress-bar.component';\n\n@NgModule({\n  declarations: [\n    AddressPipe,\n    AdvancedSearchComponent,\n    AuthCallbackComponent,\n    AuthRenewComponent,\n    AvatarInitialsComponent,\n    BreadcrumbComponent,\n    ClickOutsideDirective,\n    CollapsiblePanelComponent,\n    ComboboxComponent,\n    EnhancedComboboxComponent,\n    DatepickerComponent,\n    DropDownMenuComponent,\n    DurationFormatPipe,\n    ShortNumberPipe,\n    DynamicComponentHostDirective,\n    ErrorComponent,\n    FormLayoutComponent,\n    KpiTileComponent,\n    LanguageSelectionComponent,\n    LibStepComponent,\n    LibStepInfoDirective,\n    LibStepLabelDirective,\n    LibStepperComponent,\n    LibTabComponent,\n    LibTabGroupComponent,\n    LibTabLabelDirective,\n    ListColumnComponent,\n    ListDetailsSectionComponent,\n    ListTileComponent,\n    ListViewComponent,\n    ListViewEmptyStateComponent,\n    LoggedOutComponent,\n    ModelViewLayoutComponent,\n    NavLinksListComponent,\n    NotificationsIndicatorComponent,\n    PageNotFoundComponent,\n    PagerComponent,\n    ShellFooterComponent,\n    ShellHeaderComponent,\n    ShellLayoutComponent,\n    ShellSidebarComponent,\n    ShellSidebarHeaderComponent,\n    ShellSidebarLayoutComponent,\n    ShellStackedLayoutComponent,\n    SidePaneComponent,\n    SideViewLayoutComponent,\n    SkeletonLoaderComponent,\n    ToasterComponent,\n    ToasterContainerComponent,\n    ToggleComponent,\n    UnauthorizedComponent,\n    UserProfileMenuComponent,\n    ViewLayoutComponent,\n    ToggleButtonComponent,\n    ToggleButtonsListComponent,\n    ContentTileComponent,\n    ContentTileItemComponent,\n    ContentTileHeaderComponent,\n    StatsGridComponent,\n    ProgressBarComponent\n  ],\n  imports: [\n    CommonModule,\n    RouterModule,\n    IndiceAuthModule,\n    FormsModule\n  ],\n  exports: [\n    RouterModule,\n    AddressPipe,\n    AdvancedSearchComponent,\n    AuthCallbackComponent,\n    AuthRenewComponent,\n    AvatarInitialsComponent,\n    BreadcrumbComponent,\n    ClickOutsideDirective,\n    CollapsiblePanelComponent,\n    ComboboxComponent,\n    EnhancedComboboxComponent,\n    DatepickerComponent,\n    DropDownMenuComponent,\n    DurationFormatPipe,\n    ShortNumberPipe,\n    ErrorComponent,\n    FormLayoutComponent,\n    KpiTileComponent,\n    LibStepComponent,\n    LibStepInfoDirective,\n    LibStepLabelDirective,\n    LibStepperComponent,\n    LibTabComponent,\n    LibTabGroupComponent,\n    LibTabLabelDirective,\n    ListColumnComponent,\n    ListDetailsSectionComponent,\n    ListTileComponent,\n    ListViewComponent,\n    ListViewEmptyStateComponent,\n    LoggedOutComponent,\n    ModelViewLayoutComponent,\n    PageNotFoundComponent,\n    PagerComponent,\n    ShellFooterComponent,\n    ShellHeaderComponent,\n    ShellLayoutComponent,\n    SidePaneComponent,\n    SideViewLayoutComponent,\n    SkeletonLoaderComponent,\n    ToasterComponent,\n    ToasterContainerComponent,\n    ToggleComponent,\n    UnauthorizedComponent,\n    ViewLayoutComponent,\n    ToggleButtonComponent,\n    ToggleButtonsListComponent,\n    ContentTileComponent,\n    ContentTileItemComponent,\n    ContentTileHeaderComponent,\n    StatsGridComponent,\n    ProgressBarComponent\n  ], \n  schemas: [NO_ERRORS_SCHEMA ]\n})\nexport class IndiceComponentsModule {\n  static forRoot(): ModuleWithProviders<IndiceComponentsModule> {\n    return {\n      ngModule: IndiceComponentsModule,\n      providers: [\n        BreadcrumbService,\n        ToasterService,\n        UserSettingsService\n      ]\n    };\n  }\n}\n","// Public API Surface of @indice/ng-components\n// directives\nexport * from './lib/directives/click-outside.directive';\n\n// controls\nexport * from './lib/controls/drop-down-menu/drop-down-menu.component';\nexport * from './lib/controls/pager/pager.component';\nexport * from './lib/controls/breadcrumb/breadcrumb.component';\nexport * from './lib/controls/breadcrumb/breadcrumb-item';\nexport * from './lib/controls/list-view/list-view.component';\nexport * from './lib/controls/list-view/list-column.component';\nexport * from './lib/controls/list-view/list-tile.component';\nexport * from './lib/controls/list-view/list-details-section.component';\nexport * from './lib/controls/list-view/list-view-empty-state.component';\nexport * from './lib/controls/skeleton-loader/skeleton-loader.component';\nexport * from './lib/controls/collapsible-panel/collapsible-panel.component';\nexport * from './lib/controls/kpi-tile/kpi-tile.component';\nexport * from './lib/controls/date-picker/date-picker.component';\nexport * from './lib/controls/toaster/toaster-container.component';\nexport * from './lib/controls/toaster/toaster.component';\nexport * from './lib/controls/avatar-initials/avatar-initials.component';\nexport * from './lib/controls/toggle/toggle.component';\nexport * from './lib/controls/side-pane/side-pane.component';\nexport * from './lib/controls/nav-links-list/nav-links-list.component';\nexport * from './lib/controls/combobox/combobox.component';\nexport * from './lib/controls/enhanced-combobox/enhanced-combobox.component';\nexport * from './lib/controls/tabs/lib-tab.component';\nexport * from './lib/controls/tabs/lib-tab-group.component';\nexport * from './lib/controls/tabs/lib-tab-label.directive';\nexport * from './lib/controls/stepper/lib-stepper.component';\nexport * from './lib/controls/stepper/lib-step.component';\nexport * from './lib/controls/stepper/lib-step-label.directive';\nexport * from './lib/controls/stepper/lib-step-info.directive';\nexport * from './lib/controls/stepper/types/stepper-type';\nexport * from './lib/controls/stepper/types/step-selected-event';\nexport * from './lib/controls/toggle-button/toggle-button.component';\nexport * from './lib/controls/toggle-buttons-list/toggle-buttons-list.component';\nexport * from './lib/controls/content-tile/content-tile.component';\nexport * from './lib/controls/stats-grid/stats-grid.component';\nexport * from './lib/controls/progress-bar/progress-bar.component';\nexport * from './lib/controls/advanced-search/advanced-search.component';\nexport * from './lib/controls/advanced-search/models';\n\n// shell layout\nexport * from './lib/layouts/shell/shell-layout/shell-layout.component';\nexport * from './lib/layouts/shell/shell-header/shell-header.component';\nexport * from './lib/layouts/shell/shell-footer/shell-footer.component';\nexport * from './lib/layouts/shell/shell-sidebar/shell-sidebar.component';\nexport * from './lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component';\n\n// view layouts\nexport * from './lib/layouts/views/view-layout/view-layout.component';\nexport * from './lib/layouts/views/model-view-layout/model-view-layout.component';\nexport * from './lib/layouts/views/side-view-layout/side-view-layout.component';\nexport * from './lib/layouts/views/form-layout/form-layout.component';\n\n// pages\nexport * from './lib/pages/auth/auth-callback/auth-callback.component';\nexport * from './lib/pages/auth/auth-renew/auth-renew.component';\nexport * from './lib/pages/auth/logged-out/logged-out.component';\nexport * from './lib/pages/http-status/error/error.component';\nexport * from './lib/pages/http-status/page-not-found/page-not-found.component';\nexport * from './lib/pages/http-status/unauthorized/unauthorized.component';\n\n\n// pipes\nexport * from './lib/pipes/address.pipe';\nexport * from './lib/pipes/duration-format.pipe';\nexport * from './lib/pipes/short-number.pipe';\n\n// common stuff (tokens, types, helper classes)\nexport * from './lib/tokens';\nexport * from './lib/types';\nexport * from './lib/icons';\nexport * from './lib/helpers/base-list.component';\n\n// services\nexport * from './lib/services/component-loader/component-loader.factory';\nexport * from './lib/services/modal-service/modal-service';\nexport { ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE, CloseInterceptorFn } from './lib/services/modal-service/modal-options.class';\nexport * from './lib/services/modal-service/modal.class';\nexport * from './lib/services/toaster.service';\nexport * from './lib/services/breadcrumb.service';\nexport * from './lib/services/user-settings.service';\n\nexport * from './lib/ng-components.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.ClickOutsideDirective","i1","i2","i3.DropDownMenuComponent","i2.UtilitiesService","i1.BreadcrumbService","i3","i1.ClickOutsideDirective","i3.DatepickerComponent","i4.DropDownMenuComponent","i2.AdvancedSearchComponent","i3.ListViewEmptyStateComponent","i4.PagerComponent","i5.SkeletonLoaderComponent","i1.ToasterService","i3.ToasterComponent","i3.ClickOutsideDirective","debounceTime","distinctUntilChanged","i2.DropDownMenuComponent","i1.NavLinksListComponent","i4.NavLinksListComponent","i4.LanguageSelectionComponent","i5.NavLinksListComponent","i6.NotificationsIndicatorComponent","i7.UserProfileMenuComponent","i3.LanguageSelectionComponent","i4.NotificationsIndicatorComponent","i5.UserProfileMenuComponent","i1.UserSettingsService","i4.BreadcrumbComponent","i5.ShellSidebarComponent","i6.ShellSidebarHeaderComponent","i3.DynamicComponentHostDirective","i4.ShellFooterComponent","i5.ShellHeaderComponent","i4.ShellSidebarLayoutComponent","i5.ShellStackedLayoutComponent","i6.SidePaneComponent","i7.ToasterContainerComponent","i4.ViewLayoutComponent","i3.SidePaneComponent","i2.ViewLayoutComponent","i1.ViewLayoutComponent","i1.ModalOptions","i1.ComponentLoaderFactory"],"mappings":"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"}