UNPKG

@vismaux/ngx-nordic-cool

Version:
1 lines 220 kB
{"version":3,"file":"vismaux-ngx-nordic-cool.mjs","sources":["../../../projects/ngx-nordic-cool/src/lib/utils/utils.ts","../../../projects/ngx-nordic-cool/src/lib/datepicker/adapters/date-struct.adapter.ts","../../../projects/ngx-nordic-cool/src/lib/datepicker/datepicker-parser-formatter.ts","../../../projects/ngx-nordic-cool/src/lib/datepicker/adapters/date-native.adapter.ts","../../../projects/ngx-nordic-cool/src/lib/datepicker/adapters/date-native-utc.adapter.ts","../../../projects/ngx-nordic-cool/src/lib/datepicker/adapters/date-native-utc-iso.adapter.ts","../../../projects/ngx-nordic-cool/src/lib/datepicker/datepicker/datepicker.component.ts","../../../projects/ngx-nordic-cool/src/lib/datepicker/datepicker/datepicker.component.html","../../../projects/ngx-nordic-cool/src/lib/datepicker/datepicker-input/datepicker-input.component.ts","../../../projects/ngx-nordic-cool/src/lib/datepicker/datepicker-input/datepicker-input.component.html","../../../projects/ngx-nordic-cool/src/lib/datepicker/datepicker.module.ts","../../../projects/ngx-nordic-cool/src/lib/select/select-value-accessor.ts","../../../projects/ngx-nordic-cool/src/lib/select/select.templates.directive.ts","../../../projects/ngx-nordic-cool/src/lib/select/option-highlight.directive.ts","../../../projects/ngx-nordic-cool/src/lib/select/select.component.ts","../../../projects/ngx-nordic-cool/src/lib/select/select.component.html","../../../projects/ngx-nordic-cool/src/lib/select/select.module.ts","../../../projects/ngx-nordic-cool/src/lib/common/animations.ts","../../../projects/ngx-nordic-cool/src/lib/sidebar/sidebar-item/sidebar-item.component.ts","../../../projects/ngx-nordic-cool/src/lib/sidebar/sidebar-item/sidebar-item.component.html","../../../projects/ngx-nordic-cool/src/lib/sidebar/sidebar.component.ts","../../../projects/ngx-nordic-cool/src/lib/sidebar/sidebar.component.html","../../../projects/ngx-nordic-cool/src/lib/sidebar/sidebar-group/sidebar-group.component.ts","../../../projects/ngx-nordic-cool/src/lib/sidebar/sidebar-group/sidebar-group.component.html","../../../projects/ngx-nordic-cool/src/lib/sidebar/sidebar.module.ts","../../../projects/ngx-nordic-cool/src/lib/alert/alert.component.ts","../../../projects/ngx-nordic-cool/src/lib/alert/alert.component.html","../../../projects/ngx-nordic-cool/src/lib/alert/alert.module.ts","../../../projects/ngx-nordic-cool/src/lib/spinner/spinner.component.ts","../../../projects/ngx-nordic-cool/src/lib/spinner/spinner.component.html","../../../projects/ngx-nordic-cool/src/lib/spinner/spinner.module.ts","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar.service.ts","../../../projects/ngx-nordic-cool/src/lib/dropdown/dropdown-toggle.directive.ts","../../../projects/ngx-nordic-cool/src/lib/dropdown/dropdown.directive.ts","../../../projects/ngx-nordic-cool/src/lib/dropdown/dropdown-item.directive.ts","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar-brand-option/navbar-brand-option.component.ts","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar-brand-option/navbar-brand-option.component.html","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar.component.ts","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar.component.html","../../../projects/ngx-nordic-cool/src/lib/utils/outside-click.utils.ts","../../../projects/ngx-nordic-cool/src/lib/dropdown/dropdown-menu.directive.ts","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar-brand/navbar-brand.component.ts","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar-brand/navbar-brand.component.html","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar-menu-item/navbar-menu-item.component.ts","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar-menu-item/navbar-menu-item.component.html","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar-menu/navbar-menu.component.ts","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar-menu/navbar-menu.component.html","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar-right-menu/navbar-right-menu.component.ts","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar-right-menu/navbar-right-menu.component.html","../../../projects/ngx-nordic-cool/src/lib/dropdown/outside-click.directive.ts","../../../projects/ngx-nordic-cool/src/lib/dropdown/dropdown.module.ts","../../../projects/ngx-nordic-cool/src/lib/navbar/navbar.module.ts","../../../projects/ngx-nordic-cool/src/lib/tabset/tab.component.ts","../../../projects/ngx-nordic-cool/src/lib/tabset/tab.component.html","../../../projects/ngx-nordic-cool/src/lib/tabset/tabset.component.ts","../../../projects/ngx-nordic-cool/src/lib/tabset/tabset.component.html","../../../projects/ngx-nordic-cool/src/lib/tabset/tabset.module.ts","../../../projects/ngx-nordic-cool/src/lib/tooltip/tooltip.component.ts","../../../projects/ngx-nordic-cool/src/lib/tooltip/tooltip.component.html","../../../projects/ngx-nordic-cool/src/lib/tooltip/tooltip.directive.ts","../../../projects/ngx-nordic-cool/src/lib/tooltip/tooltip.module.ts","../../../projects/ngx-nordic-cool/src/lib/pills/pill/pill.component.ts","../../../projects/ngx-nordic-cool/src/lib/pills/pill/pill.component.html","../../../projects/ngx-nordic-cool/src/lib/pills/pills.component.ts","../../../projects/ngx-nordic-cool/src/lib/pills/pills.component.html","../../../projects/ngx-nordic-cool/src/lib/pills/pills.module.ts","../../../projects/ngx-nordic-cool/src/lib/checkbox/checkbox.component.ts","../../../projects/ngx-nordic-cool/src/lib/checkbox/checkbox.component.html","../../../projects/ngx-nordic-cool/src/lib/checkbox/checkbox.module.ts","../../../projects/ngx-nordic-cool/src/lib/radio/radio-group/radio-group.component.ts","../../../projects/ngx-nordic-cool/src/lib/radio/radio-group/radio-group.component.html","../../../projects/ngx-nordic-cool/src/lib/radio/radio.component.ts","../../../projects/ngx-nordic-cool/src/lib/radio/radio.component.html","../../../projects/ngx-nordic-cool/src/lib/radio/radio.module.ts","../../../projects/ngx-nordic-cool/src/lib/collapsible-list/collapsible-list-base.ts","../../../projects/ngx-nordic-cool/src/lib/collapsible-list/expansion-panel/expansion-panel.component.ts","../../../projects/ngx-nordic-cool/src/lib/collapsible-list/expansion-panel/expansion-panel.component.html","../../../projects/ngx-nordic-cool/src/lib/collapsible-list/collapsible-list.component.ts","../../../projects/ngx-nordic-cool/src/lib/collapsible-list/collapsible-list.component.html","../../../projects/ngx-nordic-cool/src/lib/collapsible-list/panel-title/panel-title.component.ts","../../../projects/ngx-nordic-cool/src/lib/collapsible-list/panel-title/panel-title.component.html","../../../projects/ngx-nordic-cool/src/lib/collapsible-list/collapsible-list.module.ts","../../../projects/ngx-nordic-cool/src/lib/light-dark-switch/light-dark-switch.component.ts","../../../projects/ngx-nordic-cool/src/lib/light-dark-switch/light-dark-switch.component.html","../../../projects/ngx-nordic-cool/src/lib/light-dark-switch/light-dark-switch.module.ts","../../../projects/ngx-nordic-cool/src/lib/error-tooltip/error-messages/error.directive.ts","../../../projects/ngx-nordic-cool/src/lib/error-tooltip/error-messages/errors.component.ts","../../../projects/ngx-nordic-cool/src/lib/error-tooltip/error-messages/global-error-messages.service.ts","../../../projects/ngx-nordic-cool/src/lib/error-tooltip/error-messages/global-errors.component.ts","../../../projects/ngx-nordic-cool/src/lib/error-tooltip/error-tooltip-content.component.ts","../../../projects/ngx-nordic-cool/src/lib/error-tooltip/error-tooltip-content.component.html","../../../projects/ngx-nordic-cool/src/lib/error-tooltip/error-tooltip.directive.ts","../../../projects/ngx-nordic-cool/src/lib/error-tooltip/error-tooltip.module.ts","../../../projects/ngx-nordic-cool/src/lib/nc.module.ts","../../../projects/ngx-nordic-cool/src/lib/modal/modal-ref.ts","../../../projects/ngx-nordic-cool/src/lib/modal/modal-container/modal-container.component.ts","../../../projects/ngx-nordic-cool/src/lib/modal/modal-container/modal-container.component.html","../../../projects/ngx-nordic-cool/src/lib/modal/modal.service.ts","../../../projects/ngx-nordic-cool/src/lib/modal/modal.component.ts","../../../projects/ngx-nordic-cool/src/lib/modal/modal.directives.ts","../../../projects/ngx-nordic-cool/src/lib/modal/modal.module.ts","../../../projects/ngx-nordic-cool/src/public-api.ts","../../../projects/ngx-nordic-cool/src/vismaux-ngx-nordic-cool.ts"],"sourcesContent":["export function isInteger(value: any): boolean {\n  return (\n    typeof value === 'number' && isFinite(value) && Math.floor(value) === value\n  );\n}\n","import { Injectable } from '@angular/core';\nimport { isInteger } from '../../utils/utils';\nimport { NcDateStruct } from '../datepicker.model';\n\nexport function NC_DATE_ADAPTER_FACTORY() {\n  return new NcDateStructAdapter();\n}\n\n/**\n * An abstract service that does the conversion between the internal datepicker `NcDateStruct` model and\n * any provided user date model `D`, ex. a string, a native date, etc.\n *\n * The default datepicker implementation assumes we use `NcDateStruct` as a user model.\n */\n@Injectable({\n  providedIn: 'root',\n  useFactory: NC_DATE_ADAPTER_FACTORY,\n})\nexport abstract class NcDateAdapter<D> {\n  /**\n   * Converts a user-model date of type `D` to an `NcDateStruct` for internal use.\n   */\n  abstract fromModel(value: D | null): NcDateStruct | null;\n\n  /**\n   * Converts an internal `NcDateStruct` date to a user-model date of type `D`.\n   */\n  abstract toModel(date: NcDateStruct | null): D | null;\n}\n\n@Injectable()\nexport class NcDateStructAdapter extends NcDateAdapter<NcDateStruct> {\n  fromModel(date: NcDateStruct | null): NcDateStruct | null {\n    return date &&\n      isInteger(date.year) &&\n      isInteger(date.month) &&\n      isInteger(date.day)\n      ? { year: date.year, month: date.month, day: date.day }\n      : null;\n  }\n\n  toModel(date: NcDateStruct | null): NcDateStruct | null {\n    return date &&\n      isInteger(date.year) &&\n      isInteger(date.month) &&\n      isInteger(date.day)\n      ? { year: date.year, month: date.month, day: date.day }\n      : null;\n  }\n}\n","import { LOCALE_ID, Inject, Injectable } from '@angular/core';\nimport { formatDate } from '@angular/common';\nimport { NcDateStruct } from './datepicker.model';\n\nexport function NC_DATEPICKER_PARSER_FORMATTER_FACTORY(localeId: string) {\n  return new NcDateParserFormatterDefault(localeId);\n}\n\n/**\n * Converts between the internal `NcDateStruct` model presentation and a `string` that is displayed in the\n * input element.\n *\n * When user types something in the input this service attempts to parse it into a `NcDateStruct` object.\n * And vice versa, when users selects a date in the calendar with the mouse, it must be displayed as a `string`\n * in the input.\n *\n * Default implementation uses the ISO 8601 format, but you can provide another implementation via DI\n * to use an alternative string format or a custom parsing logic.\n */\n@Injectable({\n  providedIn: 'root',\n  useFactory: NC_DATEPICKER_PARSER_FORMATTER_FACTORY,\n  deps: [LOCALE_ID],\n})\nexport abstract class NcDateParserFormatter {\n  /**\n   * Parses the given `string` to an `NcDateStruct`.\n   *\n   * Implementations should try their best to provide a result, even\n   * partial. They must return `null` if the value can't be parsed.\n   */\n  abstract parse(value: string): NcDateStruct | null;\n\n  /**\n   * Formats the given `NcDateStruct` to a `string`.\n   *\n   * Implementations should return an empty string if the given date is `null`,\n   * and try their best to provide a partial result if the given date is incomplete or invalid.\n   */\n  abstract format(date: NcDateStruct | null): string;\n}\n\nexport const DATE_INPUT_FORMATS = {\n  'en-US': ['M/d/yy', 'M/d/yyyy', 'M.d.yy', 'M.d.yyyy', 'M-d-yy', 'M-d-yyyy'],\n  'en-GB': ['d/M/yy', 'd/M/yyyy', 'd.M.yy', 'd.M.yyyy', 'd-M-yy', 'd-M-yyyy'],\n  'da-dK': ['d.M.yy', 'd.M.yyyy', 'd/M/yy', 'd/M/yyyy', 'd-M-yy', 'd-M-yyyy'],\n  'fi-FI': ['d.M.yy', 'd.M.yyyy', 'd/M/yy', 'd/M/yyyy', 'd-M-yy', 'd-M-yyyy'],\n  'nb-NO': ['d.M.yy', 'd.M.yyyy', 'd/M/yy', 'd/M/yyyy', 'd-M-yy', 'd-M-yyyy'],\n  'sv-SE': [\n    'yy-M-d',\n    'yyyy-M-d',\n    'yy/M/d',\n    'yyyy/M/d',\n    'yy.M.d',\n    'yyyy.M.d',\n    'yyMMdd',\n    'yyyyMMdd',\n  ],\n} as { [key: string]: string[] };\n\nexport const DATE_OUTPUT_FORMATS = {\n  'en-US': 'MM/dd/yyyy',\n  'en-GB': 'dd/MM/yyyy',\n  'da-DK': 'dd.MM.yyyy',\n  'fi-FI': 'dd.MM.yyyy',\n  'nb-NO': 'dd.MM.yyyy',\n  'sv-SE': 'yyyy-MM-dd',\n} as { [key: string]: string };\n\n@Injectable()\nexport class NcDateParserFormatterDefault extends NcDateParserFormatter {\n  constructor(@Inject(LOCALE_ID) private locale: string) {\n    super();\n  }\n\n  parse(value: string): NcDateStruct {\n    let config: string[] = DATE_INPUT_FORMATS[this.locale];\n\n    if (!config) {\n      this.printUnkownLocaleWarning();\n      config = DATE_INPUT_FORMATS['en-GB'];\n    }\n\n    for (const format of config) {\n      const regexp = this.dateFormatToRegexp(format);\n\n      const match = value.match(regexp);\n      if (match) {\n        const yearIndex = format.indexOf('y');\n        const monthIndex = format.indexOf('M');\n        const dayIndex = format.indexOf('d');\n        const sortedIndexes = [yearIndex, monthIndex, dayIndex].sort();\n        const yearGroup = sortedIndexes.indexOf(yearIndex) + 1;\n        const monthGroup = sortedIndexes.indexOf(monthIndex) + 1;\n        const dayGroup = sortedIndexes.indexOf(dayIndex) + 1;\n        const year = this.addYearPadding(+match[yearGroup]);\n        const month = +match[monthGroup];\n        const day = +match[dayGroup];\n        return { year, month, day };\n      }\n    }\n    return null;\n  }\n\n  format(date: NcDateStruct): string {\n    if (!date) {\n      return '';\n    }\n    const utcDate = new Date(Date.UTC(date.year, date.month - 1, date.day));\n    let format = DATE_OUTPUT_FORMATS[this.locale];\n    if (!format) {\n      this.printUnkownLocaleWarning();\n      format = DATE_OUTPUT_FORMATS['en-GB'];\n    }\n    return formatDate(utcDate, format, this.locale);\n  }\n\n  private dateFormatToRegexp(format: string) {\n    const pattern =\n      '^' +\n      format\n        // / to \\/\n        .replace(/\\//g, '\\\\/')\n        // . to \\.\n        .replace(/\\./g, '\\\\.')\n        .replace(/(d+)/, '(\\\\d{1,2})')\n        .replace(/(yyyy)/, '(\\\\d{4})')\n        .replace(/(yy)/, '(\\\\d{2})')\n        .replace(/(M+)/, '(\\\\d{1,2})') +\n      '$';\n    return new RegExp(pattern);\n  }\n\n  private addYearPadding(year: number) {\n    if (year < 100) {\n      return 2000 + year;\n    }\n    return year;\n  }\n\n  private printUnkownLocaleWarning() {\n    console.warn(\n      `Default datepicker parser-formatter does not have predefined formats for \"${this.locale}\" locale. Please provide custom 'NgbDateParserFormatter' class. Now defaults to \"en-GB\".`\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { isInteger } from '../../utils/utils';\nimport { NcDateStruct } from '../datepicker.model';\nimport { NcDateAdapter } from './date-struct.adapter';\n\n@Injectable()\nexport class NcDateNativeAdapter extends NcDateAdapter<Date> {\n  /**\n   * Converts a native `Date` to a `NcDateStruct`.\n   */\n  fromModel(date: Date | null): NcDateStruct | null {\n    return date instanceof Date && !isNaN(date.getTime())\n      ? this._fromNativeDate(date)\n      : null;\n  }\n\n  /**\n   * Converts a `NcDateStruct` to a native `Date`.\n   */\n  toModel(date: NcDateStruct | null): Date | null {\n    return date &&\n      isInteger(date.year) &&\n      isInteger(date.month) &&\n      isInteger(date.day)\n      ? this._toNativeDate(date)\n      : null;\n  }\n\n  protected _fromNativeDate(date: Date): NcDateStruct {\n    return {\n      year: date.getFullYear(),\n      month: date.getMonth() + 1,\n      day: date.getDate(),\n    };\n  }\n\n  protected _toNativeDate(date: NcDateStruct): Date {\n    const jsDate = new Date(date.year, date.month - 1, date.day, 12);\n    // avoid 30 -> 1930 conversion\n    jsDate.setFullYear(date.year);\n    return jsDate;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { NcDateStruct } from '../datepicker.model';\nimport { NcDateNativeAdapter } from './date-native.adapter';\n\n@Injectable()\nexport class NcDateNativeUTCAdapter extends NcDateNativeAdapter {\n  protected _fromNativeDate(date: Date): NcDateStruct {\n    return {\n      year: date.getUTCFullYear(),\n      month: date.getUTCMonth() + 1,\n      day: date.getUTCDate(),\n    };\n  }\n\n  protected _toNativeDate(date: NcDateStruct): Date {\n    const jsDate = new Date(Date.UTC(date.year, date.month - 1, date.day));\n    // avoid 30 -> 1930 conversion\n    jsDate.setUTCFullYear(date.year);\n    return jsDate;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { NcDateAdapter } from './date-struct.adapter';\nimport { isInteger } from '../../utils/utils';\nimport { NcDateStruct } from '../datepicker.model';\n\n@Injectable()\nexport class NcDateNativeUtcIsoAdapter extends NcDateAdapter<string> {\n  /**\n   * Converts a ISO 8601 date string to a `NcDateStruct`.\n   */\n  fromModel(dateString: string | null): NcDateStruct | null {\n    if (dateString === null) {\n      return null;\n    }\n    const date = new Date(dateString);\n    return date instanceof Date && !isNaN(date.getTime())\n      ? this._fromNativeDate(date)\n      : null;\n  }\n\n  /**\n   * Converts a `NcDateStruct` to a ISO 8601 date string.\n   */\n  toModel(dateStruct: NcDateStruct | null): string | null {\n    return dateStruct &&\n      isInteger(dateStruct.year) &&\n      isInteger(dateStruct.month) &&\n      isInteger(dateStruct.day)\n      ? this._toNativeDate(dateStruct)\n      : null;\n  }\n\n  protected _fromNativeDate(date: Date): NcDateStruct {\n    return {\n      year: date.getUTCFullYear(),\n      month: date.getUTCMonth() + 1,\n      day: date.getUTCDate(),\n    };\n  }\n\n  protected _toNativeDate(date: NcDateStruct): string {\n    const jsDate = new Date(Date.UTC(date.year, date.month - 1, date.day));\n    // avoid 30 -> 1930 conversion\n    jsDate.setUTCFullYear(date.year);\n    return jsDate.toISOString();\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { NcDateAdapter } from '../adapters';\nimport { NcDateStruct } from '../datepicker.model';\n\n@Component({\n  selector: 'nc-datepicker',\n  exportAs: 'ncDatepicker',\n  templateUrl: './datepicker.component.html',\n  styleUrls: ['./datepicker.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class NcDatepickerComponent<T = string> {\n  /** @ignore */\n  private _valueNative: NcDateStruct;\n  /** @ignore */\n  private _minDateNative: NcDateStruct;\n  /** @ignore */\n  private _maxDateNative: NcDateStruct;\n  /** @ignore */\n  private _startDateNative: NcDateStruct;\n\n  @Input() showWeekNumbers = true;\n  @Input() firstDayOfWeek: number;\n  @Input() set value(value: T) {\n    this._valueNative = this.adapter.fromModel(value);\n  }\n  @Input() set startDate(value: T) {\n    this._startDateNative = this.adapter.fromModel(value);\n  }\n  @Input() set minDate(value: T) {\n    this._minDateNative = this.adapter.fromModel(value);\n  }\n  @Input() set maxDate(value: T) {\n    this._maxDateNative = this.adapter.fromModel(value);\n  }\n\n  @Output() dateSelect = new EventEmitter<T>();\n\n  constructor(private adapter: NcDateAdapter<T>) {}\n\n  /** @ignore */\n  get valueNative() {\n    return this._valueNative;\n  }\n\n  /** @ignore */\n  get startDateNative() {\n    return this._startDateNative ?? this._valueNative;\n  }\n\n  /** @ignore */\n  get minDateNative() {\n    return this._minDateNative;\n  }\n\n  /** @ignore */\n  get maxDateNative() {\n    return this._maxDateNative;\n  }\n\n  /** @ignore */\n  onDateSelect(dateStruct: NcDateStruct): void {\n    this.dateSelect.emit(this.adapter.toModel(dateStruct));\n  }\n}\n","<ngb-datepicker\n  [weekdays]=\"true\"\n  [showWeekNumbers]=\"showWeekNumbers\"\n  [firstDayOfWeek]=\"firstDayOfWeek\"\n  [minDate]=\"minDateNative\"\n  [maxDate]=\"maxDateNative\"\n  [startDate]=\"startDateNative\"\n  [ngModel]=\"valueNative\"\n  (dateSelect)=\"onDateSelect($event)\"\n></ngb-datepicker>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n  ViewEncapsulation,\n  Output,\n  EventEmitter,\n  forwardRef,\n  ChangeDetectorRef,\n  ElementRef,\n  OnChanges,\n  SimpleChanges,\n} from '@angular/core';\nimport {\n  NG_VALUE_ACCESSOR,\n  ControlValueAccessor,\n  NG_VALIDATORS,\n  Validator,\n  ValidationErrors,\n  AbstractControl,\n} from '@angular/forms';\nimport { NgbCalendar } from '@ng-bootstrap/ng-bootstrap';\nimport { NcDateParserFormatter } from '../datepicker-parser-formatter';\nimport { NcDateAdapter } from '../adapters/date-struct.adapter';\nimport { NcDateStruct } from '../datepicker.model';\n\n@Component({\n  selector: 'nc-datepicker-input',\n  templateUrl: './datepicker-input.component.html',\n  styleUrls: ['./datepicker-input.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NcDatepickerInputComponent),\n      multi: true,\n    },\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => NcDatepickerInputComponent),\n      multi: true,\n    },\n  ],\n  host: {\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n  },\n})\nexport class NcDatepickerInputComponent<T = string>\n  implements ControlValueAccessor, Validator, OnChanges\n{\n  /** @ignore */\n  private _onChange: (value: T | string) => void;\n  /** @ignore */\n  private _onTouched: () => void;\n  /** @ignore */\n  private _onValidatorChange: () => void;\n  /** @ignore */\n  private _value: T;\n  /** @ignore */\n  private _valueNative: NcDateStruct;\n\n  /** @ignore */\n  isOpen: boolean;\n  /** @ignore */\n  inputValue = '';\n\n  @Input() showWeekNumbers = true;\n  @Input() firstDayOfWeek: number;\n  @Input() minDate: T;\n  @Input() maxDate: T;\n  @Input() placeholder = '';\n  @Input() inputId: string;\n  @Input() disabled: boolean;\n  @Input() startDate: T;\n  @Input() set value(value: T) {\n    this._value = value;\n    this._valueNative = this.adapter.fromModel(value);\n    this.updateViewValue();\n  }\n  /** @ignore */\n  get value() {\n    return this._value;\n  }\n  @Input('aria-label') ariaLabel: string;\n  @Input('aria-labelledby') ariaLabelledby: string;\n\n  @Output() dateChanged = new EventEmitter<T>();\n  @Output() dateInput = new EventEmitter<T>();\n  @Output() touched = new EventEmitter();\n\n  constructor(\n    private elRef: ElementRef,\n    private cdRef: ChangeDetectorRef,\n    private calendar: NgbCalendar,\n    private adapter: NcDateAdapter<T>,\n    private parserFormatter: NcDateParserFormatter\n  ) {}\n\n  /** @ignore */\n  ngOnChanges(changes: SimpleChanges): void {\n    if (changes.minDate || changes.maxDate) {\n      if (this._onValidatorChange) {\n        this._onValidatorChange();\n      }\n    }\n  }\n\n  toggle(): void {\n    this.isOpen = !this.isOpen;\n    this.cdRef.markForCheck();\n  }\n\n  open(): void {\n    this.isOpen = true;\n    this.cdRef.markForCheck();\n  }\n\n  close(): void {\n    this.isOpen = false;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  onManualDateChange(value: string, updateView = false): void {\n    if (value !== this.inputValue) {\n      this.inputValue = value;\n      this._valueNative = this.parserFormatter.parse(value);\n      this._value = this.adapter.toModel(this._valueNative);\n      this.dateInput.emit(this._value);\n      if (this._onChange) {\n        this._onChange(this._value ?? (value || null));\n      }\n    }\n\n    if (updateView) {\n      this.dateChanged.emit(this._value);\n      if (this._valueNative) {\n        this.updateViewValue();\n        this.cdRef.markForCheck();\n      }\n    }\n  }\n\n  /** @ignore */\n  onDateSelect(date: T): void {\n    this.value = date;\n    if (this._onChange) {\n      this._onChange(date);\n    }\n\n    this.dateInput.emit(date);\n    this.dateChanged.emit(date);\n\n    this.onTouched();\n    this.isOpen = false;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  onTouched(): void {\n    if (this._onTouched) {\n      this._onTouched();\n    }\n    this.touched.emit();\n  }\n\n  setToday(): void {\n    const today = this.adapter.toModel(this.calendar.getToday());\n    this.onDateSelect(today);\n  }\n\n  focusInput(): void {\n    this.elRef.nativeElement.querySelector('input').focus();\n  }\n\n  /** @ignore */\n  writeValue(value: T): void {\n    this.value = value;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  registerOnChange(fn: any): void {\n    this._onChange = fn;\n  }\n\n  /** @ignore */\n  registerOnTouched(fn: any): void {\n    this._onTouched = fn;\n  }\n\n  /** @ignore */\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    this.cdRef.markForCheck();\n  }\n\n  /** @ignore */\n  validate(control: AbstractControl): ValidationErrors {\n    const { value } = control;\n    if (value !== null) {\n      if (this._valueNative === null) {\n        return { dateFormat: { actual: control.value } };\n      }\n\n      if (this.minDate) {\n        const minDateNative = this.adapter.fromModel(this.minDate);\n        if (this.dateBefore(this._valueNative, minDateNative)) {\n          return { minDate: { actual: this._value, min: this.minDate } };\n        }\n      }\n\n      if (this.maxDate) {\n        const maxDateNative = this.adapter.fromModel(this.maxDate);\n        if (this.dateAfter(this._valueNative, maxDateNative)) {\n          return { maxDate: { actual: this._value, max: this.maxDate } };\n        }\n      }\n    }\n    return null;\n  }\n\n  /** @ignore */\n  registerOnValidatorChange(fn: () => void): void {\n    this._onValidatorChange = fn;\n  }\n\n  /** @ignore */\n  private updateViewValue(): void {\n    this.inputValue = this.parserFormatter.format(this._valueNative);\n  }\n\n  /** @ignore */\n  private dateBefore(\n    currValue: NcDateStruct,\n    beforeValue: NcDateStruct\n  ): boolean {\n    return (\n      new Date(currValue.year, currValue.month - 1, currValue.day) <\n      new Date(beforeValue.year, beforeValue.month - 1, beforeValue.day)\n    );\n  }\n\n  /** @ignore */\n  private dateAfter(\n    currValue: NcDateStruct,\n    afterValue: NcDateStruct\n  ): boolean {\n    return (\n      new Date(currValue.year, currValue.month - 1, currValue.day) >\n      new Date(afterValue.year, afterValue.month - 1, afterValue.day)\n    );\n  }\n}\n","<input\n  [attr.id]=\"inputId\"\n  type=\"text\"\n  autocomplete=\"off\"\n  [placeholder]=\"placeholder\"\n  [disabled]=\"disabled\"\n  [value]=\"inputValue\"\n  (blur)=\"onTouched()\"\n  (input)=\"onManualDateChange($any($event.target).value)\"\n  (change)=\"onManualDateChange($any($event.target).value, true)\"\n  [attr.aria-label]=\"ariaLabel\"\n  [attr.aria-labelledby]=\"ariaLabelledby\"\n  cdkOverlayOrigin\n  #trigger=\"cdkOverlayOrigin\"\n/>\n\n<button\n  type=\"button\"\n  class=\"nc-datepicker-trigger-btn\"\n  (click)=\"open()\"\n  i18n-aria-label=\"@@nc-datepicker-button\"\n  aria-label=\"Calendar\"\n  [disabled]=\"disabled\"\n  tabindex=\"-1\"\n>\n  <span class=\"vismaicon vismaicon-datepicker\"></span>\n</button>\n\n<ng-template\n  cdkConnectedOverlay\n  [cdkConnectedOverlayOrigin]=\"trigger\"\n  [cdkConnectedOverlayOpen]=\"isOpen\"\n  (overlayOutsideClick)=\"close()\"\n  (detach)=\"close()\"\n>\n  <div\n    class=\"nc-datepicker-wrapper\"\n    cdkTrapFocus\n    [cdkTrapFocusAutoCapture]=\"true\"\n    role=\"dialog\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-labelledby]=\"ariaLabelledby\"\n  >\n    <nc-datepicker\n      [showWeekNumbers]=\"showWeekNumbers\"\n      [firstDayOfWeek]=\"firstDayOfWeek\"\n      [minDate]=\"minDate\"\n      [maxDate]=\"maxDate\"\n      [startDate]=\"startDate\"\n      [value]=\"value\"\n      (dateSelect)=\"onDateSelect($event)\"\n    ></nc-datepicker>\n\n    <div class=\"nc-datepicker-footer\">\n      <button\n        class=\"nc-datepicker-today-btn\"\n        (click)=\"setToday()\"\n        i18n=\"@@nc-datepicker-today\"\n      >\n        Today\n      </button>\n    </div>\n  </div>\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { FormsModule } from '@angular/forms';\nimport { NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';\n\nimport { NcDatepickerInputComponent } from './datepicker-input/datepicker-input.component';\nimport { NcDatepickerComponent } from './datepicker/datepicker.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    FormsModule,\n    NgbDatepickerModule,\n    OverlayModule,\n    A11yModule,\n  ],\n  declarations: [NcDatepickerInputComponent, NcDatepickerComponent],\n  exports: [NcDatepickerInputComponent, NcDatepickerComponent],\n})\nexport class NcDatepickerModule {}\n","import { ControlValueAccessor } from '@angular/forms';\nimport { ChangeDetectorRef } from '@angular/core';\n\nexport class SelectValueAccessor<T> implements ControlValueAccessor {\n  private change: (value: T) => void;\n  private touched: () => void;\n\n  disabled: boolean;\n  value: T;\n\n  constructor(protected cdRef?: ChangeDetectorRef) {}\n\n  writeValue(value: T): void {\n    this.value = value;\n    if (this.cdRef) {\n      this.cdRef.markForCheck();\n    }\n  }\n\n  registerOnChange(fn: any): void {\n    this.change = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.touched = fn;\n  }\n\n  setDisabledState?(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n    if (this.cdRef) {\n      this.cdRef.markForCheck();\n    }\n  }\n\n  onChange(value: T) {\n    this.value = value;\n    if (this.change) {\n      this.change(value);\n    }\n    this.onTouched();\n  }\n\n  onTouched() {\n    if (this.touched) {\n      this.touched();\n    }\n  }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({ selector: '[ncOptionTmp]' })\nexport class NcOptionTemplateDirective {\n  constructor(public template: TemplateRef<any>) {}\n}\n\n@Directive({ selector: '[ncOptGroupTmp]' })\nexport class NcOptGroupTemplateDirective {\n  constructor(public template: TemplateRef<any>) {}\n}\n\n@Directive({ selector: '[ncLabelTmp]' })\nexport class NcLabelTemplateDirective {\n  constructor(public template: TemplateRef<any>) {}\n}\n\n@Directive({ selector: '[ncMultiLabelTmp]' })\nexport class NcMultiLabelTemplateDirective {\n  constructor(public template: TemplateRef<any>) {}\n}\n\n@Directive({ selector: '[ncHeaderTmp]' })\nexport class NcHeaderTemplateDirective {\n  constructor(public template: TemplateRef<any>) {}\n}\n\n@Directive({ selector: '[ncFooterTmp]' })\nexport class NcFooterTemplateDirective {\n  constructor(public template: TemplateRef<any>) {}\n}\n\n@Directive({ selector: '[ncNotfoundTmp]' })\nexport class NcNotFoundTemplateDirective {\n  constructor(public template: TemplateRef<any>) {}\n}\n\n@Directive({ selector: '[ncTypeToSearchTmp]' })\nexport class NcTypeToSearchTemplateDirective {\n  constructor(public template: TemplateRef<any>) {}\n}\n\n@Directive({ selector: '[ncLoadingTextTmp]' })\nexport class NcLoadingTextTemplateDirective {\n  constructor(public template: TemplateRef<any>) {}\n}\n\n@Directive({ selector: '[ncTagTmp]' })\nexport class NcTagTemplateDirective {\n  constructor(public template: TemplateRef<any>) {}\n}\n","import {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  Input,\n  OnChanges,\n  Renderer2,\n} from '@angular/core';\n\n@Directive({\n  selector: '[ncOptionHighlight]',\n})\nexport class NcOptionHighlightDirective implements OnChanges, AfterViewInit {\n  private label: string;\n\n  @Input('ncOptionHighlight') term: string;\n\n  constructor(private elementRef: ElementRef, private renderer: Renderer2) {}\n\n  ngOnChanges() {\n    if (this.canHighlight) {\n      this.highlightLabel();\n    }\n  }\n\n  ngAfterViewInit() {\n    this.label = this.element.innerHTML;\n    if (this.canHighlight) {\n      this.highlightLabel();\n    }\n  }\n\n  private get element() {\n    return this.elementRef.nativeElement;\n  }\n\n  private escapeRegExp(str: string): string {\n    return str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n  }\n\n  private highlightLabel() {\n    const label = this.label;\n    if (!this.term) {\n      this.setInnerHtml(label);\n      return;\n    }\n\n    const alternationString = this.escapeRegExp(this.term).replace(' ', '|');\n    const termRegex = new RegExp(alternationString, 'gi');\n    this.setInnerHtml(\n      label.replace(\n        termRegex,\n        `<span role=\"mark\" class=\"nc-highlighted\">$&</span>`\n      )\n    );\n  }\n\n  private get canHighlight() {\n    return this.isDefined(this.term) && this.isDefined(this.label);\n  }\n\n  private setInnerHtml(html: string) {\n    this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', html);\n  }\n\n  private isDefined(value: any) {\n    return value !== undefined && value !== null;\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChild,\n  EventEmitter,\n  forwardRef,\n  Input,\n  OnInit,\n  Output,\n  TemplateRef,\n  ViewEncapsulation,\n  ViewChild,\n  Renderer2,\n  RendererStyleFlags2,\n  NgZone,\n  OnDestroy,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NgSelectComponent } from '@ng-select/ng-select';\nimport { fromEvent, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { SelectValueAccessor } from './select-value-accessor';\nimport {\n  NcFooterTemplateDirective,\n  NcHeaderTemplateDirective,\n  NcLabelTemplateDirective,\n  NcLoadingTextTemplateDirective,\n  NcMultiLabelTemplateDirective,\n  NcNotFoundTemplateDirective,\n  NcOptGroupTemplateDirective,\n  NcOptionTemplateDirective,\n  NcTagTemplateDirective,\n  NcTypeToSearchTemplateDirective,\n} from './select.templates.directive';\n\n@Component({\n  selector: 'nc-select',\n  templateUrl: './select.component.html',\n  styleUrls: ['./select.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NcSelectComponent),\n      multi: true,\n    },\n  ],\n})\nexport class NcSelectComponent\n  extends SelectValueAccessor<any>\n  implements OnInit, OnDestroy\n{\n  private destroyed$ = new Subject();\n\n  @Input() items: any[];\n  @Input() clearable: boolean;\n  @Input() multiple = false;\n  @Input() loading = false;\n  @Input() placeholder: string;\n  @Input() bindLabel: string;\n  @Input() bindValue: string;\n  @Input() hideSelected: boolean;\n  @Input() appendTo: string;\n  @Input() clearSearchOnAdd: boolean;\n  @Input() clearOnBackspace = true;\n  @Input() markFirst = true;\n  @Input() isOpen: boolean;\n  @Input() closeOnSelect: boolean;\n  @Input() maxSelectedItems: number;\n  @Input() openOnEnter = true;\n  @Input() selectOnTab = false;\n  @Input() addTag: boolean | ((term: string) => any | Promise<any>) = false;\n  @Input() dropdownPosition: 'bottom' | 'top' | 'auto' = 'auto';\n  @Input() groupBy: string | ((value: any) => any);\n  @Input() groupValue: (\n    key: string | object,\n    children: any[]\n  ) => string | object;\n  @Input() typeahead: Subject<string>;\n  @Input() virtualScroll: boolean;\n  @Input() bufferAmount = 4;\n  @Input() selectableGroup = false;\n  @Input() selectableGroupAsModel = true;\n  @Input() searchFn: (term: string, item: any) => boolean = null;\n  @Input() labelForId: string;\n\n  // Custom inputs\n  @Input() autoPanelWidth = false;\n  @Input('disabled') set disabledBinding(value: boolean) {\n    this.disabled = value;\n  }\n  @Input('value') set valueBinding(value: any) {\n    this.value = value;\n  }\n\n  @Output('blur') blurEvent = new EventEmitter();\n  @Output('focus') focusEvent = new EventEmitter();\n  @Output('change') changeEvent = new EventEmitter();\n  @Output('open') openEvent = new EventEmitter();\n  @Output('close') closeEvent = new EventEmitter();\n  @Output('search') searchEvent = new EventEmitter();\n  @Output('clear') clearEvent = new EventEmitter();\n  @Output('add') addEvent = new EventEmitter();\n  @Output('remove') removeEvent = new EventEmitter();\n  @Output('scroll') scrollEvent = new EventEmitter();\n  @Output('scrollToEnd') scrollToEndEvent = new EventEmitter();\n\n  @ContentChild(NcOptionTemplateDirective, { read: TemplateRef })\n  optionTemplate: TemplateRef<any>;\n  @ContentChild(NcOptGroupTemplateDirective, { read: TemplateRef })\n  optgroupTemplate: TemplateRef<any>;\n  @ContentChild(NcLabelTemplateDirective, { read: TemplateRef })\n  labelTemplate: TemplateRef<any>;\n  @ContentChild(NcMultiLabelTemplateDirective, { read: TemplateRef })\n  multiLabelTemplate: TemplateRef<any>;\n  @ContentChild(NcHeaderTemplateDirective, { read: TemplateRef })\n  headerTemplate: TemplateRef<any>;\n  @ContentChild(NcFooterTemplateDirective, { read: TemplateRef })\n  footerTemplate: TemplateRef<any>;\n  @ContentChild(NcNotFoundTemplateDirective, { read: TemplateRef })\n  notFoundTemplate: TemplateRef<any>;\n  @ContentChild(NcTypeToSearchTemplateDirective, { read: TemplateRef })\n  typeToSearchTemplate: TemplateRef<any>;\n  @ContentChild(NcLoadingTextTemplateDirective, { read: TemplateRef })\n  loadingTextTemplate: TemplateRef<any>;\n  @ContentChild(NcTagTemplateDirective, { read: TemplateRef })\n  tagTemplate: TemplateRef<any>;\n\n  @ViewChild(NgSelectComponent, { static: true }) ngSelect: NgSelectComponent;\n\n  constructor(\n    protected cdRef: ChangeDetectorRef,\n    private renderer: Renderer2,\n    private ngZone: NgZone\n  ) {\n    super(cdRef);\n  }\n\n  get searchTerm() {\n    return this.ngSelect.searchTerm;\n  }\n\n  ngOnInit() {\n    if (this.multiple) {\n      this.closeOnSelect = this.defaultValue(this.closeOnSelect, false);\n      this.hideSelected = this.defaultValue(this.hideSelected, true);\n    } else {\n      this.closeOnSelect = this.defaultValue(this.closeOnSelect, true);\n      this.hideSelected = this.defaultValue(this.hideSelected, false);\n    }\n\n    this.clearable = this.defaultValue(this.clearable, true);\n\n    this.ngZone.runOutsideAngular(() => {\n      fromEvent<MouseEvent>(document, 'mouseup')\n        .pipe(\n          filter((event) => {\n            if (!this.ngSelect.isOpen) {\n              return false;\n            }\n            const dropdownPanelElement = this.ngSelect.dropdownPanel\n              .scrollElementRef.nativeElement.parentElement as HTMLElement;\n            return [dropdownPanelElement, this.ngSelect.element].every(\n              (el) => !el.contains(event.target as HTMLElement)\n            );\n          }),\n          takeUntil(this.destroyed$)\n        )\n        .subscribe(() => this.ngZone.run(() => this.ngSelect.close()));\n    });\n  }\n\n  ngOnDestroy() {\n    this.destroyed$.next();\n    this.destroyed$.unsubscribe();\n  }\n\n  onOpen(event: any) {\n    if (this.autoPanelWidth) {\n      Promise.resolve().then(() => {\n        const dropdownPanelEl = this.ngSelect.dropdownPanel.scrollElementRef\n          .nativeElement as HTMLElement;\n        dropdownPanelEl.parentElement.classList.add(\n          'ng-select-auto-panel-width'\n        );\n        const max = this.getDropdownPanelMaxWidth();\n        this.renderer.setStyle(\n          dropdownPanelEl,\n          'max-width',\n          max + 'px',\n          RendererStyleFlags2.Important\n        );\n      });\n    }\n    this.openEvent.emit(event);\n  }\n\n  onChange(value: any) {\n    super.onChange(value);\n    this.changeEvent.emit(value);\n  }\n\n  onClose() {\n    super.onTouched();\n    this.closeEvent.emit();\n  }\n\n  focus() {\n    this.ngSelect.focus();\n  }\n\n  filter(term: string) {\n    this.ngSelect.filter(term);\n  }\n\n  private defaultValue<T>(original: T, value: T) {\n    return original !== undefined ? original : value;\n  }\n\n  private getDropdownPanelMaxWidth() {\n    const rightPadding = 10;\n    const maxWidthLimit = this.ngSelect.element.clientWidth * 2;\n    const clientRect = this.ngSelect.element.getBoundingClientRect();\n    return Math.min(\n      maxWidthLimit,\n      document.body.clientWidth - clientRect.left - rightPadding\n    );\n  }\n}\n","<ng-select\n  [class.ng-select-loading]=\"loading\"\n  [class.ng-select-clearable]=\"clearable\"\n  [items]=\"items\"\n  [ngModel]=\"value\"\n  (ngModelChange)=\"onChange($event)\"\n  [clearable]=\"clearable\"\n  [searchable]=\"true\"\n  [multiple]=\"multiple\"\n  [loading]=\"loading\"\n  [placeholder]=\"placeholder\"\n  [bindLabel]=\"bindLabel\"\n  [bindValue]=\"bindValue\"\n  [hideSelected]=\"hideSelected\"\n  [appendTo]=\"appendTo\"\n  [clearSearchOnAdd]=\"clearSearchOnAdd\"\n  [addTag]=\"addTag\"\n  [clearOnBackspace]=\"clearOnBackspace\"\n  [markFirst]=\"markFirst\"\n  [isOpen]=\"isOpen\"\n  [closeOnSelect]=\"closeOnSelect\"\n  [maxSelectedItems]=\"maxSelectedItems\"\n  [openOnEnter]=\"openOnEnter\"\n  [selectOnTab]=\"selectOnTab\"\n  [dropdownPosition]=\"dropdownPosition\"\n  [groupBy]=\"groupBy\"\n  [groupValue]=\"groupValue\"\n  [typeahead]=\"typeahead\"\n  [virtualScroll]=\"virtualScroll\"\n  [bufferAmount]=\"bufferAmount\"\n  [selectableGroup]=\"selectableGroup\"\n  [selectableGroupAsModel]=\"selectableGroupAsModel\"\n  [searchFn]=\"searchFn\"\n  [labelForId]=\"labelForId\"\n  [disabled]=\"disabled\"\n  (blur)=\"blurEvent.emit($event)\"\n  (focus)=\"focusEvent.emit($event)\"\n  (open)=\"onOpen($event)\"\n  (close)=\"onClose()\"\n  (search)=\"searchEvent.emit($event)\"\n  (clear)=\"clearEvent.emit($event)\"\n  (add)=\"addEvent.emit($event)\"\n  (remove)=\"removeEvent.emit($event)\"\n  (scroll)=\"scrollEvent.emit($event)\"\n  (scrollToEnd)=\"scrollToEndEvent.emit($event)\"\n>\n  <ng-template\n    ng-option-tmp\n    let-item=\"item\"\n    let-item$=\"item$\"\n    let-index=\"index\"\n    let-searchTerm=\"searchTerm\"\n  >\n    <ng-template\n      [ngTemplateOutlet]=\"optionTemplate || defaultOptionTemplate\"\n      [ngTemplateOutletContext]=\"{\n        item: item,\n        item$: item$,\n        index: index,\n        searchTerm: searchTerm\n      }\"\n    ></ng-template>\n  </ng-template>\n\n  <ng-container *ngIf=\"headerTemplate\">\n    <ng-template ng-header-tmp let-searchTerm=\"searchTerm\">\n      <ng-template\n        [ngTemplateOutlet]=\"headerTemplate\"\n        [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\"\n      >\n      </ng-template>\n    </ng-template>\n  </ng-container>\n\n  <ng-container *ngIf=\"labelTemplate\">\n    <ng-template\n      ng-label-tmp\n      let-item=\"item\"\n      let-clear=\"clear\"\n      let-label=\"label\"\n    >\n      <ng-template\n        [ngTemplateOutlet]=\"labelTemplate\"\n        [ngTemplateOutletContext]=\"{ item: item, clear: clear, label: label }\"\n      ></ng-template>\n    </ng-template>\n  </ng-container>\n\n  <ng-container *ngIf=\"footerTemplate\">\n    <ng-template ng-footer-tmp let-searchTerm=\"searchTerm\">\n      <ng-template\n        [ngTemplateOutlet]=\"footerTemplate\"\n        [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\"\n      >\n      </ng-template>\n    </ng-template>\n  </ng-container>\n\n  <ng-container *ngIf=\"notFoundTemplate\">\n    <ng-template ng-notfound-tmp let-searchTerm=\"searchTerm\">\n      <ng-template\n        [ngTemplateOutlet]=\"notFoundTemplate\"\n        [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\"\n      >\n      </ng-template>\n    </ng-template>\n  </ng-container>\n\n  <ng-container *ngIf=\"loadingTextTemplate\">\n    <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n      <ng-template\n        [ngTemplateOutlet]=\"loadingTextTemplate\"\n        [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\"\n      >\n      </ng-template>\n    </ng-template>\n  </ng-container>\n\n  <ng-container *ngIf=\"tagTemplate\">\n    <ng-template ng-loadingtext-tmp let-searchTerm=\"searchTerm\">\n      <ng-template\n        [ngTemplateOutlet]=\"tagTemplate\"\n        [ngTemplateOutletContext]=\"{ searchTerm: searchTerm }\"\n      >\n      </ng-template>\n    </ng-template>\n  </ng-container>\n\n  <ng-container *ngIf=\"typeToSearchTemplate\">\n    <ng-template ng-typetosearch-tmp>\n      <ng-template [ngTemplateOutlet]=\"typeToSearchTemplate\"></ng-template>\n    </ng-template>\n  </ng-container>\n\n  <ng-container *ngIf=\"multiLabelTemplate\">\n    <ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\n      <ng-template\n        [ngTemplateOutlet]=\"multiLabelTemplate\"\n        [ngTemplateOutletContext]=\"{ items: items, clear: clear }\"\n      >\n      </ng-template>\n    </ng-template>\n  </ng-container>\n\n  <ng-container *ngIf=\"optgroupTemplate\">\n    <ng-template\n      ng-optgroup-tmp\n      let-item=\"item\"\n      let-item$=\"item$\"\n      let-index=\"index\"\n      let-searchTerm=\"searchTerm\"\n    >\n      <ng-template\n        [ngTemplateOutlet]=\"optgroupTemplate\"\n        [ngTemplateOutletContext]=\"{\n          item: item,\n          item$: item$,\n          index: index,\n          searchTerm: searchTerm\n        }\"\n      ></ng-template>\n    </ng-template>\n  </ng-container>\n</ng-select>\n\n<ng-template\n  #defaultOptionTemplate\n  let-item$=\"item$\"\n  let-searchTerm=\"searchTerm\"\n>\n  <span class=\"ng-option-label\" [ncOptionHighlight]=\"searchTerm\">{{\n    item$.label\n  }}</span>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { NcSelectComponent } from './select.component';\nimport {\n  NcOptionTemplateDirective,\n  NcOptGroupTemplateDirective,\n  NcLabelTemplateDirective,\n  NcMultiLabelTemplateDirective,\n  NcHeaderTemplateDirective,\n  NcFooterTemplateDirective,\n  NcNotFoundTemplateDirective,\n  NcTypeToSearchTemplateDirective,\n  NcLoadingTextTemplateDirective,\n  NcTagTemplateDirective,\n} from './select.templates.directive';\nimport { NcOptionHighlightDirective } from './option-highlight.directive';\n\n@NgModule({\n  imports: [CommonModule, FormsModule, NgSelectModule],\n  exports: [\n    NcSelectComponent,\n    NcOptionTemplateDirective,\n    NcOptGroupTemplateDirective,\n    NcLabelTemplateDirective,\n    NcMultiLabelTemplateDirective,\n    NcHeaderTemplateDirective,\n    NcFooterTemplateDirective,\n    NcNotFoundTemplateDirective,\n    NcTypeToSearchTemplateDirective,\n    NcLoadingTextTemplateDirective,\n    NcTagTemplateDirective,\n    NcOptionHighlightDirective,\n  ],\n  declarations: [\n    NcSelectComponent,\n    NcOptionTemplateDirective,\n    NcOptGroupTemplateDirective,\n    NcLabelTemplateDirective,\n    NcMultiLabelTemplateDirective,\n    NcHeaderTemplateDirective,\n    NcFooterTemplateDirective,\n    NcNotFoundTemplateDirective,\n    NcTypeToSearchTemplateDirective,\n    NcLoadingTextTemplateDirective,\n    NcTagTemplateDirective,\n    NcOptionHighlightDirective,\n  ],\n  providers: [],\n})\nexport class NcSelectModule {}\n","import {\n  animate,\n  state,\n  style,\n  transition,\n  trigger,\n} from '@angular/animations';\n\nexport const accordion = trigger('accordion', [\n  state(\n    'collapsed, void',\n    style({ height: '0', padding: '0', visibility: 'hidden' })\n  ),\n  state('expanded', style({ height: '*', visibility: 'visible' })),\n  transition('expanded <=> collapsed, void => collapsed', [\n    animate('225ms ease-out'),\n  ]),\n]);\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  TemplateRef,\n  ViewChild,\n  Input,\n  Output,\n  EventEmitter,\n  Optional,\n  Self,\n  ChangeDetectorRef,\n  DoCheck,\n} from '@angular/core';\nimport { Router, RouterLinkActive } from '@angular/router';\n\nexport abstract class NcISidebarItem {\n  contentTpl: TemplateRef<any>;\n}\n\n@Component({\n  selector: 'nc-sidebar-item',\n  templateUrl: './sidebar-item.component.html',\n  providers: [{ provide: NcISidebarItem, useExisting: NcSidebarItemComponent }],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcSidebarItemComponent extends NcISidebarItem implements DoCheck {\n  private _active: boolean;\n  private _routerLinkActive: boolean;\n  private _activeDirty: boolean;\n\n  get activeDirty(): boolean {\n    const activeDirty = this._activeDirty;\n    this._activeDirty = false;\n    return activeDirty;\n  }\n\n  get hasRouterLink(): boolean {\n    return !!this.routerLink && !!this.router;\n  }\n\n  @Input() routerLink: any[] | string | null | undefined;\n  @Input() disabled: boolean;\n  @Input() href: string;\n  @Input()\n  set active(value: boolean) {\n    this._active = value;\n    this._activeDirty = value;\n  }\n  get active(): boolean {\n    return this._active ?? this._routerLinkActive;\n  }\n\n  @Output() readonly click = new EventEmitter<MouseEvent>();\n\n  @ViewChild(TemplateRef) readonly contentTpl: TemplateRef<any>;\n\n  constructor(\n    @Optional() @Self() private activeRouterLink: RouterLinkActive,\n    @Optional() private router: Router,\n    private cdRef: ChangeDetectorRef\n  ) {\n    super();\n  }\n\n  ngDoCheck(): void {\n    // Currently, no other way to get the new value of activeRouterLink.isActive\n    this.checkActiveLink();\n  }\n\n  private checkActiveLink(): void {\n    if (this._routerLinkActive !== this.activeRouterLink?.isActive) {\n      this._routerLinkActive = this.activeRouterLink?.isActive;\n      this._activeDirty = !!this.activeRouterLink?.isActive;\n      this.cdRef.detectChanges();\n    }\n  }\n}\n","<ng-template>\n  <li [class.active]=\"active\" [class.disabled]=\"disabled\">\n    <a *ngIf=\"!hasRouterLink\" [attr.href]=\"href\" (click)=\"click.emit($event)\">\n      <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n    </a>\n\n    <a *ngIf=\"hasRouterLink\" [routerLink]=\"routerLink\">\n      <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n    </a>\n\n    <ng-template #content><ng-content></ng-content></ng-template>\n  </li>\n</ng-template>\n","import {\n  AfterContentInit,\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  Input,\n  Output,\n  QueryList,\n} from '@angular/core';\n\nimport { NcISidebarItem } from './sidebar-item/sidebar-item.component';\n\n@Component({\n  selector: 'nc-sidebar',\n  exportAs: 'ncSidebar',\n  templateUrl: './sidebar.component.html',\n  styleUrls: ['./sidebar.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcSidebarComponent implements AfterContentInit, AfterViewInit {\n  @Input() accordion: boolean;\n  @Input() hiddenMenu: boolean;\n  @Input() secondary: boolean;\n\n  @Output() readonly hiddenMenuChange = new EventEmitter<boolean>();\n\n  @ContentChildren(NcISidebarItem)\n  readonly sidebarItems: QueryList<NcISidebarItem>;\n\n  constructor(private cdRef: ChangeDetectorRef) {}\n\n  ngAfterContentInit(): void {\n    this.sidebarItems.changes.subscribe(() => this.cdRef.markForCheck());\n  }\n\n  ngAfterViewInit(): void {\n    this.cdRef.detectChanges();\n  }\n\n  toggleMenu(): void {\n    this.hiddenMenu = !this.hiddenMenu;\n    this.hiddenMenuChange.emit(this.hiddenMenu);\n  }\n}\n","<div\n  class=\"vertical-nav\"\n  [class.vertical-nav-secondary]=\"secondary\"\n  [class.hidden-menu]=\"hiddenMenu\"\n>\n  <ul>\n    <ng-container\n      *ngFor=\"let item of sidebarItems\"\n      [ngTemplateOutlet]=\"item.contentTpl\"\n    ></ng-container>\n\n    <li class=\"show-nav\">\n      <a (click)=\"toggleMenu()\"></a>\n    </li>\n  </ul>\n</div>\n","import {\n  AfterContentChecked,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  Input,\n  OnDestroy,\n  QueryList,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { animations } from '../../common';\nimport {\n  NcISidebarItem,\n  NcSidebarItemComponent,\n} from '../sidebar-item/sidebar-item.component';\n\nimport { NcSidebarComponent } from '../sidebar.component';\n\n@Component({\n  selector: 'nc-sidebar-group',\n  templateUrl: './sidebar-group.component.html',\n  styleUrls: ['./sidebar-group.component.scss'],\n  providers: [\n    { provide: NcISidebarItem, useExisting: NcSidebarGroupComponent },\n  ],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [animations.accordion],\n})\nexport class NcSidebarGroupComponent\n  extends NcISidebarItem\n  implements OnDestroy, AfterContentChecked\n{\n  private destroyed$ = new Subject();\n  private _isOpen: boolean;\n\n  @Input() disabled: boolean;\n\n  @Input()\n  set isOpen(value: boolean) {\n    this._isOpen = value;\n\n    if (value && this.sidebar.accordion) {\n      this.closeOtherGroups();\n    }\n  }\n  get isOpen(): boolean {\n    return this._isOpen;\n  }\n\n  @ViewChild(TemplateRef)\n  readonly contentTpl: TemplateRef<any>;\n\n  @ContentChildren(NcSidebarItemComponent)\n  readonly sidebarItems: QueryList<NcSidebarItemComponent>;\n\n  constructor(\n    private sidebar: NcSidebarComponent,\n    private cdRef: ChangeDetectorRef\n  ) {\n    super();\n  }\n\n  ngAfterContentChecked(): void {\n    this.sidebarItems.changes\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe(() => this.cdRef.detectChanges());\n\n    const hasActiveDirtyItem = this.sidebarItems?.some((i) => i.activeDirty);\n    if (hasActiveDirtyItem && !this.isOpen) {\n      this.toggle();\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n  }\n\n  toggle() {\n    this.isOpen = !this.isOpen;\n    this.cdRef.detectChanges();\n  }\n\n  private closeOtherGroups() {\n    this.sidebar.sidebarItems\n      ?.filter(\n        (item) => item instanceof NcSidebarGroupComponent && item !== this\n      )\n      .forEach((item: NcSidebarGroupComponent) => (item.isOpen = false));\n  }\n}\n","<ng-template>\n  <li [class.active]=\"isOpen\" [class.disabled]=\"disabled\">\n    <a (click)=\"toggle(); $event.preventDefault()\" href=\"\" draggable=\"false\">\n      <ng-content></ng-content>\n    </a>\n\n    <ul [@accordion]=\"isOpen ? 'expanded' : 'collapsed'\">\n      <ng-container *ngFor=\"let item of sidebarItems\">\n        <ng-container\n          *ngIf=\"item !== $any(this)\"\n          [ngTemplateOutlet]=\"item.contentTpl\"\n        ></ng-container>\n      </ng-container>\n    </ul>\n  </li>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { NcSidebarGroupComponent } from './sidebar-group/sidebar-group.component';\nimport { NcSidebarComponent } from './sidebar.component';\nimport { NcSidebarItemComponent } from './sidebar-item/sidebar-item.component';\n\n@NgModule({\n  imports: [CommonModule, RouterModule],\n  declarations: [\n    NcSidebarComponent,\n    NcSidebarGroupComponent,\n    NcSidebarItemComponent,\n  ],\n  exports: [\n    NcSidebarComponent,\n    NcSidebarGroupComponent,\n    NcSidebarItemComponent,\n  ],\n})\nexport class NcSidebarModule {}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n} from '@angular/core';\n\nexport type NcAlertType = 'success' | 'warning' | 'info' | 'danger';\nexport type NcAlertSize = 'sm' | 'md';\n\n/**\n * An alert is a short and attention-grabbing message providing feedback about some important aspect of the service which may need to be handled by the user.\n * Read more about alerts in the [UX Guidelines](https://ux.visma.com/weblibrary/latest/development/documentation/docs/alerts.php).\n */\n@Component({\n  selector: 'nc-alert',\n  templateUrl: './alert.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcAlertComponent {\n  @Input() type: NcAlertType = 'info';\n  @Input() size: NcAlertSize = 'md';\n  @Input() dismissable: boolean | string = false;\n  @Output() dismiss = new EventEmitter();\n\n  get isDismissable(): boolean {\n    return this.dismissable === '' || this.dismissable === true;\n  }\n}\n","<div\n  class=\"alert\"\n  [class.alert-sm]=\"size === 'sm'\"\n  [class.alert-dismissable]=\"isDismissable\"\n  [ngClass]=\"'alert-' + type\"\n  role=\"alert\"\n>\n  <button\n    *ngIf=\"isDismissable\"\n    type=\"button\"\n    class=\"close\"\n    i18n-aria-label=\"@@nc-alert-close\"\n    aria-label=\"Close\"\n    (click)=\"dismiss.emit()\"\n  ></button>\n  <div>\n    <span\n      class=\"vismaicon vismaicon vismaicon-filled\"\n      [class.vismaicon-sm]=\"size === 'sm'\"\n      [ngClass]=\"'vismaicon-' + type\"\n      aria-hidden=\"true\"\n    ></span>\n    <ng-content></ng-content>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NcAlertComponent } from './alert.component';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [NcAlertComponent],\n  exports: [NcAlertComponent],\n})\nexport class NcAlertModule {}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\nexport type SpinnerType = 'default' | 'primary' | 'secondary';\nexport type SpinnerColor = 'grey' | 'blue' | 'green';\nexport type SpinnerSize = 'small' | 'medium' | 'extra-small' | 'custom';\n\n@Component({\n  selector: 'nc-spinner',\n  templateUrl: './spinner.component.html',\n  styleUrls: ['./spinner.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcSpinnerComponent {\n  @Input() type: SpinnerType = 'default';\n  @Input() color: SpinnerColor = 'blue';\n  @Input() size: SpinnerSize = 'medium';\n\n  get spinnerClass() {\n    return `spinner-${this.type}-${this.color}`;\n  }\n}\n","<span\n  class=\"spinner\"\n  [ngClass]=\"spinnerClass\"\n  [class.spinner-sm]=\"size === 'small'\"\n  [class.spinner-xs]=\"size === 'extra-small'\"\n  [class.spinner-custom]=\"size === 'custom'\"\n  role=\"status\"\n></span>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NcSpinnerComponent } from './spinner.component';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [NcSpinnerComponent],\n  exports: [NcSpinnerComponent],\n})\nexport class NcSpinnerModule {}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class NcNavbarService {\n  readonly isMobile$ = this.breakpointObserver\n    .observe('(max-width: 768px)')\n    .pipe(map(({ matches }) => matches));\n\n  readonly isTablet$ = this.breakpointObserver\n    .observe('(max-width: 992px)')\n    .pipe(map(({ matches }) => matches));\n\n  constructor(private breakpointObserver: BreakpointObserver) {}\n\n  isMobile() {\n    return this.breakpointObserver.isMatched('(max-width: 768px)');\n  }\n}\n","import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n  selector: '[ncDropdownToggle]',\n})\nexport class NcDropdownToggleDirective {\n  constructor(public elRef: ElementRef) {}\n}\n","import { hasModifierKey } from '@angular/cdk/keycodes';\nimport { ContentChild, Directive, HostListener, Input } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { NcDropdownToggleDirective } from './dropdown-toggle.directive';\n\n@Directive({\n  selector: '[ncDropdown]',\n  exportAs: 'ncDropdown',\n})\nexport class NcDropdownDirective {\n  private isOpenSubject = new BehaviorSubject(false);\n\n  readonly isOpen$ = this.isOpenSubject.asObservable();\n\n  @ContentChild(NcDropdownToggleDirective)\n  readonly toggler: NcDropdownToggleDirective;\n\n  @HostListener('keydown', ['$event'])\n  handleKeyDown(event: KeyboardEvent) {\n    if (event.key === 'Escape' && !hasModifierKey(event)) {\n      event.preventDefault();\n      this.close();\n\n      // Don't allow the event to propagate if we've already handled it, or it may\n      // end up reaching other overlays that were opened earlier.\n      event.stopPropagation();\n    }\n  }\n\n  @Input() set isOpen(value: boolean) {\n    if (value === this.isOpen) {\n      return;\n    }\n    this.isOpenSubject.next(value);\n  }\n\n  get isOpen() {\n    return this.isOpenSubject.getValue();\n  }\n\n  toggle() {\n    this.isOpen = !this.isOpen;\n  }\n\n  close() {\n    this.isOpen = false;\n  }\n\n  open() {\n    this.isOpen = true;\n  }\n}\n","import { Directive, HostListener, Input, Optional } from '@angular/core';\nimport { NcDropdownDirective } from './dropdown.directive';\n\n@Directive({\n  selector: '[ncDropdownItem]',\n})\nexport class NcDropdownItemDirective {\n  @Input('ncDropdownItem') explicitDropdown: NcDropdownDirective;\n\n  constructor(@Optional() private implicitDropdown: NcDropdownDirective) {}\n\n  get dropdown() {\n    return this.explicitDropdown || this.implicitDropdown;\n  }\n\n  @HostListener('click') onClick() {\n    this.dropdown?.close();\n  }\n}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  Input,\n  ViewChild,\n  TemplateRef,\n  Output,\n  EventEmitter,\n} from '@angular/core';\nimport { NcNavbarService } from '../navbar.service';\n\n@Component({\n  selector: 'nc-navbar-brand-option',\n  templateUrl: './navbar-brand-option.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcNavbarBrandOptionComponent {\n  @Input() active: boolean;\n  @Input() label: string;\n  @Input() href: string;\n  @Input() logoUrl?: string;\n\n  @Output() readonly click = new EventEmitter<MouseEvent>();\n\n  /** @ignore */\n  @ViewChild(TemplateRef) readonly content: TemplateRef<any>;\n\n  /** @ignore */\n  readonly isMobile$ = this.navbarService.isMobile$;\n\n  constructor(private navbarService: NcNavbarService) {}\n}\n","<ng-template let-dropdown=\"dropdown\">\n  <a\n    role=\"menuitem\"\n    class=\"app-item\"\n    [class.active]=\"active\"\n    [attr.href]=\"href\"\n    [attr.aria-current]=\"active\"\n    [attr.aria-label]=\"label\"\n    [ncDropdownItem]=\"dropdown\"\n    (click)=\"click.emit($event)\"\n  >\n    <img\n      *ngIf=\"logoUrl && (isMobile$ | async) === false\"\n      [src]=\"logoUrl\"\n      [alt]=\"label\"\n      class=\"img-inline\"\n    />\n    {{ label }}</a\n  >\n</ng-template>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ContentChildren,\n  Input,\n  QueryList,\n} from '@angular/core';\nimport { NcNavbarBrandOptionComponent } from './navbar-brand-option/navbar-brand-option.component';\nimport { NcNavbarService } from './navbar.service';\n\nexport type NcNavbarType = 'default' | 'secondary';\n\n@Component({\n  selector: 'nc-navbar',\n  templateUrl: './navbar.component.html',\n  styleUrls: ['./navbar.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  exportAs: 'ncNavbar',\n})\nexport class NcNavbarComponent {\n  @Input() type: NcNavbarType = 'default';\n\n  /** @ignore */\n  readonly isMobile$ = this.navbarService.isMobile$;\n\n  /** @ignore */\n  readonly isTablet$ = this.navbarService.isTablet$;\n\n  /** @ignore */\n  @ContentChildren(NcNavbarBrandOptionComponent, { descendants: true })\n  readonly brandOptions: QueryList<NcNavbarBrandOptionComponent>;\n\n  constructor(private navbarService: NcNavbarService) {}\n\n  /** @ignore */\n  isMobile() {\n    return this.navbarService.isMobile();\n  }\n}\n","<header [class]=\"'navbar navbar-' + type\" [class.is-mobile]=\"isMobile$ | async\">\n  <nav class=\"collapse navbar-collapse\">\n    <ng-container *ngIf=\"(isMobile$ | async) === false\">\n      <ng-content select=\"nc-navbar-brand\"></ng-content>\n    </ng-container>\n\n    <ng-content select=\"nc-navbar-menu\"></ng-content>\n    <ng-content select=\"nc-navbar-right-menu\"></ng-content>\n  </nav>\n</header>\n","import { NgZone } from '@angular/core';\nimport { fromEvent, Observable } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nexport function registerOutsideClick(\n  clickHandler: (e: MouseEvent) => void,\n  excludedElements: HTMLElement[],\n  destroyed$: Observable<any>,\n  ngZone: NgZone\n): void {\n  function containsExcludedElement(element: Element): boolean {\n    return excludedElements.some((el) => el.contains(element));\n  }\n\n  ngZone.runOutsideAngular(() => {\n    fromEvent<MouseEvent>(document, 'mouseup')\n      .pipe(\n        filter(\n          (event) => !containsExcludedElement(event.target as HTMLElement)\n        ),\n        takeUntil(destroyed$)\n      )\n      .subscribe((event) => ngZone.run(() => clickHandler(event)));\n  });\n}\n","import {\n  AfterViewInit,\n  ChangeDetectorRef,\n  Directive,\n  ElementRef,\n  NgZone,\n  OnDestroy,\n} from '@angular/core';\nimport { race, Subject } from 'rxjs';\nimport {\n  distinctUntilChanged,\n  filter,\n  skip,\n  take,\n  takeUntil,\n} from 'rxjs/operators';\nimport { registerOutsideClick } from '../utils/outside-click.utils';\nimport { NcDropdownDirective } from './dropdown.directive';\n\n@Directive({\n  selector: '[ncDropdownMenu]',\n})\nexport class NcDropdownMenuDirective implements AfterViewInit, OnDestroy {\n  private destroyed$ = new Subject();\n\n  constructor(\n    private dropdown: NcDropdownDirective,\n    private el: ElementRef<HTMLElement>,\n    private cdRef: ChangeDetectorRef,\n    private ngZone: NgZone\n  ) {}\n\n  ngAfterViewInit(): void {\n    this.dropdown.isOpen$\n      .pipe(\n        distinctUntilChanged(),\n        filter((isOpen) => isOpen),\n        takeUntil(this.destroyed$)\n      )\n      .subscribe(() => {\n        const closed$ = this.dropdown.isOpen$.pipe(skip(1), take(1));\n\n        registerOutsideClick(\n          () => {\n            this.dropdown.close();\n            this.cdRef.markForCheck();\n          },\n          [this.el.nativeElement, this.dropdown.toggler.elRef.nativeElement],\n          race(closed$, this.destroyed$),\n          this.ngZone\n        );\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n  }\n}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  Host,\n  ChangeDetectorRef,\n  AfterContentInit,\n  OnDestroy,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { NcNavbarComponent } from '../navbar.component';\n\n@Component({\n  selector: 'nc-navbar-brand',\n  templateUrl: './navbar-brand.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcNavbarBrandComponent implements AfterContentInit, OnDestroy {\n  private destroyed$ = new Subject();\n\n  constructor(\n    @Host() public navbar: NcNavbarComponent,\n    private cdRef: ChangeDetectorRef\n  ) {}\n\n  ngAfterContentInit(): void {\n    this.navbar.brandOptions.changes\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe(() => this.cdRef.markForCheck());\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n  }\n}\n","<div class=\"navbar-header\">\n  <div\n    ncDropdown\n    #dropdown=\"ncDropdown\"\n    class=\"navbar-brand dropdown\"\n    [class.open]=\"dropdown.isOpen$ | async\"\n  >\n    <a\n      ncDropdownToggle\n      id=\"nc-navbar-brand-menu\"\n      (click)=\"navbar.brandOptions.length > 0 && dropdown.toggle()\"\n      [class.dropdown-toggle]=\"navbar.brandOptions.length > 0\"\n      [attr.aria-expanded]=\"dropdown.isOpen$ | async\"\n      [attr.aria-haspopup]=\"navbar.brandOptions.length > 0\"\n      role=\"button\"\n      href=\"javascript: void(0)\"\n    >\n      <ng-content></ng-content>\n      <span class=\"caret\"></span>\n    </a>\n    <ul\n      ncDropdownMenu\n      role=\"menu\"\n      class=\"dropdown-menu\"\n      aria-labelledby=\"nc-navbar-brand-menu\"\n    >\n      <li *ngFor=\"let brandOption of navbar.brandOptions\" role=\"none\">\n        <ng-template\n          [ngTemplateOutlet]=\"brandOption.content\"\n          [ngTemplateOutletContext]=\"{ dropdown: dropdown }\"\n        ></ng-template>\n      </li>\n    </ul>\n  </div>\n</div>\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  ElementRef,\n  Input,\n  ViewChild,\n  TemplateRef,\n  EventEmitter,\n  Output,\n  Optional,\n  Self,\n  DoCheck,\n  ChangeDetectorRef,\n  ContentChild,\n} from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\n\n@Component({\n  selector: 'nc-navbar-menu-item',\n  templateUrl: './navbar-menu-item.component.html',\n  styleUrls: ['./navbar-menu-item.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcNavbarMenuItemComponent implements DoCheck {\n  private _routerLinkActive: boolean | null = null;\n\n  @Input() active: boolean | null = null;\n  @Input() label: string;\n  @Input() href: string;\n\n  @Output() readonly click = new EventEmitter<MouseEvent>();\n\n  /** @ignore */\n  @ViewChild('content', { read: TemplateRef })\n  readonly content: TemplateRef<any>;\n\n  @ContentChild(TemplateRef) readonly labelTmp?: TemplateRef<any>;\n\n  get isActive(): boolean {\n    return this.active ?? this._routerLinkActive ?? false;\n  }\n\n  constructor(\n    /** @ignore */\n    public elRef: ElementRef<HTMLElement>,\n    /** @ignore */\n    private cdRef: ChangeDetectorRef,\n    /** @ignore */\n    @Optional() @Self() private routerLinkActive: RouterLinkActive\n  ) {}\n\n  ngDoCheck(): void {\n    if (\n      this.routerLinkActive &&\n      this.routerLinkActive.isActive !== this._routerLinkActive\n    ) {\n      this._routerLinkActive = this.routerLinkActive.isActive;\n      /**\n       * `detectChanges` is needed to avoid `ExpressionChangedAfterItHasBeenCheckedError`,\n       * as `routerLinkActive.isActive` changes its value during the `navbar-menu-item` initialization.\n       */\n      this.cdRef.detectChanges();\n    }\n  }\n}\n","<ng-template #content let-dropdown=\"dropdown\" let-virtual=\"virtual\">\n  <li role=\"none\" [class.active]=\"isActive\" [class.virtual]=\"virtual\">\n    <a\n      class=\"nav-item\"\n      [attr.role]=\"virtual ? 'none' : 'menuitem'\"\n      (click)=\"click.emit($event)\"\n      [attr.href]=\"href\"\n      [attr.aria-current]=\"isActive\"\n      [ncDropdownItem]=\"dropdown\"\n    >\n      <ng-container\n        [ngTemplateOutlet]=\"labelTmp ?? defaultLabelTmp\"\n      ></ng-container>\n      <ng-template #defaultLabelTmp>{{ label }}</ng-template>\n    </a>\n  </li>\n</ng-template>\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  QueryList,\n  ContentChildren,\n  ElementRef,\n  AfterViewInit,\n  OnDestroy,\n  ChangeDetectorRef,\n  Host,\n  NgZone,\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, takeUntil } from 'rxjs/operators';\nimport { NcNavbarMenuItemComponent } from '../navbar-menu-item/navbar-menu-item.component';\nimport { NcNavbarComponent } from '../navbar.component';\n\nconst MORE_ITEM_WIDTH = 100;\n\n@Component({\n  selector: 'nc-navbar-menu',\n  templateUrl: './navbar-menu.component.html',\n  styleUrls: ['./navbar-menu.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcNavbarMenuComponent implements OnDestroy, AfterViewInit {\n  private readonly resized$ = new Subject<void>();\n  private readonly destroyed$ = new Subject<void>();\n  private resizeObserver: any;\n  private menuItemsWidths: number[] = [];\n\n  hiddenMenuItems: boolean[] = [];\n  brandOptionsOpen = false;\n\n  @ContentChildren(NcNavbarMenuItemComponent)\n  menuItems: QueryList<NcNavbarMenuItemComponent>;\n\n  get anyHiddenMenuItem() {\n    return this.hiddenMenuItems.some((i) => i);\n  }\n\n  get activeBrandOption() {\n    return this.navbar.brandOptions.find((n) => n.active);\n  }\n\n  constructor(\n    @Host() public navbar: NcNavbarComponent,\n    private elRef: ElementRef<HTMLElement>,\n    private cdRef: ChangeDetectorRef,\n    private ngZone: NgZone\n  ) {}\n\n  ngAfterViewInit(): void {\n    this.rerenderMenuItems();\n\n    // Re-render menu items whenever projection changes\n    this.menuItems.changes\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe(() => this.rerenderMenuItems());\n\n    // Re-render menu items in case styles completes to load AFTER the initialization of this menu.\n    // Ref issue: #28\n    fromEvent(window, 'load')\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe(() => this.rerenderMenuItems());\n\n    // Attach resize observer if available,\n    // otherwise user will have to use `checkResponsiveness` manually.\n    if (typeof window !== 'undefined' && (window as any).ResizeObserver) {\n      this.resizeObserver = new (window as any).ResizeObserver(() =>\n        this.resized$.next()\n      );\n      this.resizeObserver.observe(this.elRef.nativeElement);\n      this.resized$\n        .pipe(debounceTime(100), takeUntil(this.destroyed$))\n        .subscribe(() => {\n          this.ngZone.run(() => this.checkResponsiveness());\n        });\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n    if (this.resizeObserver) {\n      this.resizeObserver.unobserve(this.elRef.nativeElement);\n    }\n  }\n\n  checkResponsiveness(): void {\n    if (this.navbar.isMobile()) {\n      return;\n    }\n\n    let changed = false;\n    // Check if everything fits well\n    const availableWidth = this.elRef.nativeElement.offsetWidth;\n    const totalMenuItemsWidth = this.menuItemsWidths.reduce((a, b) => a + b, 0);\n    let takenWidth = totalMenuItemsWidth;\n\n    if (availableWidth > takenWidth) {\n      this.menuItems.forEach((_, i) => {\n        if (this.hiddenMenuItems[i]) {\n          this.hiddenMenuItems[i] = false;\n          changed = true;\n        }\n      });\n    } else {\n      takenWidth = MORE_ITEM_WIDTH;\n\n      // Go trough menu items and add ones that fit\n      this.menuItems.forEach((_, i) => {\n        const totalTaken = takenWidth + this.menuItemsWidths[i];\n        const doesNotFit = totalTaken > availableWidth;\n        if (this.hiddenMenuItems[i] !== doesNotFit) {\n          this.hiddenMenuItems[i] = doesNotFit;\n          changed = true;\n        }\n        if (!doesNotFit) {\n          takenWidth += this.menuItemsWidths[i];\n        }\n      });\n    }\n\n    if (changed) {\n      this.cdRef.detectChanges();\n    }\n  }\n\n  rerenderMenuItems(): void {\n    // Reset cached widths\n    this.menuItemsWidths = [];\n    this.hiddenMenuItems = [];\n\n    // Needed for ngTemplateOutlet\n    this.cdRef.detectChanges();\n\n    // Must wait for the menu items to be painted so that the menu can properly\n    // calculate the correct visibility based on the size of the item content.\n    Promise.resolve().then(() => {\n      this.cacheMenuWidths();\n      this.checkResponsiveness();\n    });\n  }\n\n  toggleBrandOptions(): void {\n    this.brandOptionsOpen = !this.brandOptionsOpen;\n    this.cdRef.detectChanges();\n  }\n\n  private cacheMenuWidths(): void {\n    const items = this.elRef.nativeElement.querySelectorAll<HTMLElement>(\n      'ul.first-level > li.virtual > a.nav-item'\n    );\n    this.menuItemsWidths = Array.from(items).map((e) => e.offsetWidth);\n  }\n}\n","<ul class=\"nav first-level\" role=\"menubar\">\n  <!--\n    \"Virtual\" menu items that are always hidden.\n    Used for measurement.\n  -->\n  <ng-container\n    *ngFor=\"let item of menuItems; let i = index\"\n    [ngTemplateOutlet]=\"item.content\"\n    [ngTemplateOutletContext]=\"{ virtual: true }\"\n  ></ng-container>\n\n  <!-- Main menu bar that is visible only for desktop -->\n  <ng-container *ngIf=\"(navbar.isMobile$ | async) === false\">\n    <ng-container *ngFor=\"let item of menuItems; let i = index\">\n      <ng-container\n        *ngIf=\"!hiddenMenuItems[i]\"\n        [ngTemplateOutlet]=\"item.content\"\n      ></ng-container>\n    </ng-container>\n  </ng-container>\n\n  <!-- \"More\" button for opening the hidden menu (visible in both desktop and mobile) -->\n  <li\n    *ngIf=\"(navbar.isMobile$ | async) || anyHiddenMenuItem\"\n    role=\"none\"\n    ncDropdown\n    #dropdown=\"ncDropdown\"\n    class=\"menudrop dropdown\"\n    [class.open]=\"dropdown.isOpen$ | async\"\n  >\n    <a\n      id=\"nc-navbar-more-menu\"\n      ncDropdownToggle\n      role=\"menuitem\"\n      class=\"dropdown-toggle\"\n      data-toggle=\"dropdown\"\n      [attr.aria-expanded]=\"dropdown.isOpen$ | async\"\n      [attr.aria-haspopup]=\"(navbar.isMobile$ | async) || anyHiddenMenuItem\"\n      (click)=\"dropdown.toggle()\"\n      href=\"javascript: void(0)\"\n    >\n      <span [class.hidden]=\"(navbar.isMobile$ | async) === false\" i18n\n        >Menu</span\n      >\n      <i class=\"icon-align-justify\"></i>\n    </a>\n\n    <ul\n      ncDropdownMenu\n      class=\"dropdown-menu dropdown-menu-right\"\n      role=\"menu\"\n      aria-labelledby=\"nc-navbar-more-menu\"\n    >\n      <!-- Brand information that's visible only for mobile -->\n      <ng-container\n        *ngIf=\"(navbar.isMobile$ | async) && navbar.brandOptions.length > 0\"\n      >\n        <li role=\"none\" class=\"navbar-brand\" [class.is-open]=\"brandOptionsOpen\">\n          <a\n            class=\"dropdown-toggle dropped-apps-toggle\"\n            tabindex=\"-1\"\n            role=\"button\"\n            [attr.aria-expanded]=\"brandOptionsOpen\"\n            (click)=\"toggleBrandOptions()\"\n            >{{ activeBrandOption?.label }}<span class=\"caret\"></span\n          ></a>\n        </li>\n\n        <ng-container *ngIf=\"brandOptionsOpen\">\n          <li\n            role=\"none\"\n            *ngFor=\"let brandOption of navbar.brandOptions\"\n            [class.active]=\"brandOption.active\"\n          >\n            <ng-container\n              *ngIf=\"!brandOption.active\"\n              [ngTemplateOutlet]=\"brandOption.content\"\n            ></ng-container>\n          </li>\n        </ng-container>\n      </ng-container>\n\n      <!-- Hidden menu options that didn't fit in the main menu bar -->\n      <ng-container *ngIf=\"!brandOptionsOpen\">\n        <ng-container *ngFor=\"let item of menuItems; let i = index\">\n          <ng-container\n            *ngIf=\"(navbar.isMobile$ | async) || hiddenMenuItems[i]\"\n            [ngTemplateOutlet]=\"item.content\"\n            [ngTemplateOutletContext]=\"{ dropdown: dropdown }\"\n          ></ng-container>\n        </ng-container>\n      </ng-container>\n    </ul>\n  </li>\n</ul>\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n  selector: 'nc-navbar-right-menu',\n  templateUrl: './navbar-right-menu.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcNavbarRightMenuComponent {}\n","<ul class=\"nav navbar-nav navbar-right first-level\">\n  <ng-content></ng-content>\n</ul>\n","import {\n  AfterViewInit,\n  Directive,\n  ElementRef,\n  EventEmitter,\n  Input,\n  NgZone,\n  OnDestroy,\n  Output,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { registerOutsideClick } from '../utils/outside-click.utils';\n\n@Directive({\n  selector: '[ncOutsideClick]',\n})\nexport class NcOutsideClickDirective implements AfterViewInit, OnDestroy {\n  private destroyed$ = new Subject();\n\n  @Input('ncOutsideClickExcluded') excludedElements: HTMLElement[] = [];\n  @Output('ncOutsideClick') outsideClick = new EventEmitter();\n\n  constructor(private el: ElementRef<HTMLElement>, private ngZone: NgZone) {}\n\n  ngAfterViewInit(): void {\n    registerOutsideClick(\n      () => this.outsideClick.emit(),\n      [this.el.nativeElement, ...this.excludedElements],\n      this.destroyed$,\n      this.ngZone\n    );\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NcDropdownDirective } from './dropdown.directive';\nimport { NcDropdownMenuDirective } from './dropdown-menu.directive';\nimport { NcOutsideClickDirective } from './outside-click.directive';\nimport { NcDropdownToggleDirective } from './dropdown-toggle.directive';\nimport { NcDropdownItemDirective } from './dropdown-item.directive';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [\n    NcDropdownDirective,\n    NcDropdownMenuDirective,\n    NcOutsideClickDirective,\n    NcDropdownToggleDirective,\n    NcDropdownItemDirective,\n  ],\n  exports: [\n    NcDropdownDirective,\n    NcDropdownMenuDirective,\n    NcOutsideClickDirective,\n    NcDropdownToggleDirective,\n    NcDropdownItemDirective,\n  ],\n})\nexport class NcDropdownModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NcNavbarComponent } from './navbar.component';\nimport { NcNavbarBrandComponent } from './navbar-brand/navbar-brand.component';\nimport { NcNavbarBrandOptionComponent } from './navbar-brand-option/navbar-brand-option.component';\nimport { NcNavbarMenuComponent } from './navbar-menu/navbar-menu.component';\nimport { NcNavbarMenuItemComponent } from './navbar-menu-item/navbar-menu-item.component';\nimport { NcNavbarRightMenuComponent } from './navbar-right-menu/navbar-right-menu.component';\nimport { NcDropdownModule } from '../dropdown';\nimport { NcNavbarService } from './navbar.service';\n\n@NgModule({\n  imports: [CommonModule, NcDropdownModule],\n  declarations: [\n    NcNavbarComponent,\n    NcNavbarBrandComponent,\n    NcNavbarBrandOptionComponent,\n    NcNavbarMenuComponent,\n    NcNavbarMenuItemComponent,\n    NcNavbarRightMenuComponent,\n  ],\n  exports: [\n    NcDropdownModule,\n    NcNavbarComponent,\n    NcNavbarBrandComponent,\n    NcNavbarBrandOptionComponent,\n    NcNavbarMenuComponent,\n    NcNavbarMenuItemComponent,\n    NcNavbarRightMenuComponent,\n  ],\n  providers: [NcNavbarService],\n})\nexport class NcNavbarModule {}\n","import {\n  Component,\n  ContentChild,\n  Directive,\n  Input,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\n\n@Directive({ selector: 'ng-template[ncTabTitle]' })\nexport class NcTabTitleDirective {}\n\n@Directive({ selector: 'ng-template[ncTabContent]' })\nexport class NcTabContentDirective {}\n\n@Component({\n  selector: 'nc-tab',\n  templateUrl: './tab.component.html',\n})\nexport class NcTabComponent {\n  @Input() title: string;\n  @Input() disabled = false;\n\n  @ContentChild(NcTabContentDirective, { read: TemplateRef, static: true })\n  explicitContent: TemplateRef<any>;\n\n  @ViewChild(TemplateRef, { static: true })\n  implicitContent: TemplateRef<any>;\n\n  @ContentChild(NcTabTitleDirective, { read: TemplateRef, static: true })\n  titleTpl: TemplateRef<any>;\n\n  get contentTpl() {\n    return this.explicitContent || this.implicitContent;\n  }\n}\n","<ng-template><ng-content></ng-content></ng-template>\n","import {\n  AfterContentInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ContentChildren,\n  EventEmitter,\n  Input,\n  Output,\n  QueryList,\n} from '@angular/core';\n\nimport { NcTabComponent } from './tab.component';\n\nexport class NcTabChangeEvent {\n  index: number;\n  tab: NcTabComponent;\n}\n\n@Component({\n  selector: 'nc-tabset',\n  templateUrl: './tabset.component.html',\n  styleUrls: ['./tabset.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcTabsetComponent implements AfterContentInit {\n  private indexToSelect = 0;\n  private _selectedIndex: number;\n\n  selectedTab: NcTabComponent;\n\n  @Input() justified: boolean;\n\n  @Input()\n  set selectedIndex(value: number) {\n    if (this._selectedIndex === value) {\n      return;\n    }\n    this.selectTab(value, false);\n  }\n  get selectedIndex() {\n    return this._selectedIndex;\n  }\n\n  @Output() selectedIndexChange = new EventEmitter<number>(true);\n  @Output() selectedTabChange = new EventEmitter<NcTabChangeEvent>(true);\n\n  @ContentChildren(NcTabComponent) tabs: QueryList<NcTabComponent>;\n\n  constructor(private cdRef: ChangeDetectorRef) {}\n\n  ngAfterContentInit(): void {\n    if (!this.selectedTab) {\n      this.selectTab(this.indexToSelect);\n    }\n\n    this.tabs.changes.subscribe(() => {\n      this.selectTab(this.selectedIndex, true);\n      this.cdRef.markForCheck();\n    });\n  }\n\n  selectTab(index: number, broadcastEvent = false) {\n    if (!this.tabs?.length) {\n      this.indexToSelect = index;\n      return;\n    }\n\n    const clampedTabIndex = this.clampTabIndex(index);\n    const tabAtIndex = this.tabs.find((_, i) => i === clampedTabIndex);\n\n    if (tabAtIndex.disabled) {\n      return;\n    }\n\n    if (clampedTabIndex !== this.selectedIndex) {\n      this._selectedIndex = clampedTabIndex;\n      if (broadcastEvent) {\n        this.selectedIndexChange.emit(clampedTabIndex);\n      }\n    }\n\n    if (tabAtIndex !== this.selectedTab) {\n      this.selectedTab = tabAtIndex;\n      if (broadcastEvent) {\n        this.selectedTabChange.emit({\n          index: clampedTabIndex,\n          tab: tabAtIndex,\n        });\n      }\n    }\n  }\n\n  private clampTabIndex(index: number): number {\n    // Note the `|| 0`, which ensures that values like NaN can't get through\n    return Math.min(this.tabs.length - 1, Math.max(index || 0, 0));\n  }\n}\n","<ul class=\"nav nav-tabs hide-tabdrop\" [class.nav-justified]=\"justified\">\n  <li\n    *ngFor=\"let tab of tabs; let i = index\"\n    class=\"nav-item\"\n    [class.disabled]=\"tab.disabled\"\n    [class.active]=\"i === selectedIndex\"\n    role=\"presentation\"\n  >\n    <a\n      role=\"tab\"\n      href=\"\"\n      [tabindex]=\"tab.disabled ? -1 : undefined\"\n      (click)=\"selectTab(i, true); $event.preventDefault()\"\n    >\n      <ng-template [ngIf]=\"!tab.titleTpl\">{{ tab.title }}</ng-template>\n      <ng-template [ngTemplateOutlet]=\"tab.titleTpl\"></ng-template>\n    </a>\n  </li>\n</ul>\n\n<div class=\"tab-content\">\n  <ng-template [ngTemplateOutlet]=\"selectedTab?.contentTpl\"></ng-template>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport {\n  NcTabContentDirective,\n  NcTabComponent,\n  NcTabTitleDirective,\n} from './tab.component';\nimport { NcTabsetComponent } from './tabset.component';\n\n@NgModule({\n  imports: [CommonModule],\n  exports: [\n    NcTabsetComponent,\n    NcTabComponent,\n    NcTabTitleDirective,\n    NcTabContentDirective,\n  ],\n  declarations: [\n    NcTabsetComponent,\n    NcTabComponent,\n    NcTabTitleDirective,\n    NcTabContentDirective,\n  ],\n})\nexport class NcTabsetModule {}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  HostBinding,\n  HostListener,\n  Input,\n  TemplateRef,\n  Type,\n  ViewChild,\n  ViewContainerRef,\n} from '@angular/core';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { Subject } from 'rxjs';\n\n@Component({\n  selector: 'nc-tooltip',\n  templateUrl: './tooltip.component.html',\n  styleUrls: ['./tooltip.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [\n    trigger('fadeIn', [\n      transition(':enter', [\n        style({ opacity: '0' }),\n        animate('200ms ease-out', style({ opacity: '1' })),\n      ]),\n    ]),\n  ],\n})\nexport class NcTooltipComponent {\n  private mouseLeaveSubject = new Subject();\n  readonly afterMouseLeave = () => this.mouseLeaveSubject.asObservable();\n\n  text: string;\n  template: TemplateRef<any>;\n  mouseOver: boolean = false;\n\n  @ViewChild('content', { read: ViewContainerRef, static: true })\n  readonly contentContainerRef: ViewContainerRef;\n\n  @Input() set content(content: string | TemplateRef<any>) {\n    if (content instanceof TemplateRef) {\n      this.template = content;\n    } else {\n      this.text = content;\n    }\n  }\n\n  @Input() position: string;\n  @Input() offset: number;\n  @Input() style: 'default' | 'error';\n\n  @HostBinding('attr.style') get inlineStyle() {\n    if (!this.position || !this.offset) {\n      return '';\n    }\n\n    return `--offset-${this.position}: -${this.offset}px;`;\n  }\n\n  @HostListener('mouseenter')\n  handleMouseEnter(): void {\n    this.mouseOver = true;\n  }\n\n  @HostListener('mouseleave')\n  handleMouseLeave(): void {\n    this.mouseOver = false;\n    this.mouseLeaveSubject.next();\n  }\n\n  constructor(private cdRef: ChangeDetectorRef) {}\n\n  _markForCheck(): void {\n    this.cdRef.markForCheck();\n  }\n\n  projectComponent<T>(componentType: Type<T>): T {\n    return this.contentContainerRef.createComponent(componentType).instance;\n  }\n}\n","<div\n  class=\"tooltip in\"\n  [class.tooltip-error]=\"style === 'error'\"\n  [ngClass]=\"position\"\n  @fadeIn\n>\n  <div class=\"tooltip-arrow\"></div>\n  <div #content class=\"tooltip-inner\">\n    <ng-container *ngIf=\"text\">{{ text }}</ng-container>\n    <ng-container *ngIf=\"template\" [ngTemplateOutlet]=\"template\"></ng-container>\n  </div>\n</div>\n","import { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport {\n  ConnectedPosition,\n  FlexibleConnectedPositionStrategy,\n  Overlay,\n  OverlayRef,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n  Directive,\n  ElementRef,\n  HostListener,\n  Input,\n  NgZone,\n  OnDestroy,\n  TemplateRef,\n  Type,\n} from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { NcTooltipComponent } from './tooltip.component';\n\nexport type NcTooltipPlacement = 'left' | 'right' | 'top' | 'bottom';\nexport type NcTooltipStyle = 'default' | 'error';\n\n@Directive({\n  selector: '[ncTooltip]',\n  exportAs: 'ncTooltip',\n})\nexport class NcTooltipDirective implements OnDestroy {\n  /** @ignore */\n  protected destroyed$ = new Subject();\n  /** @ignore */\n  private _content: string | TemplateRef<any> | null = null;\n  /** @ignore */\n  private tooltipInstanceDestroyed$: Subject<void>;\n  /** @ignore */\n  private overlayRef: OverlayRef;\n  /** @ignore */\n  private tooltipPortal: ComponentPortal<NcTooltipComponent>;\n  /** @ignore */\n  private tooltipInstance: NcTooltipComponent;\n  /** @ignore */\n  private currentPosition$: Observable<NcTooltipPlacement>;\n  /** @ignore */\n  private _placement: NcTooltipPlacement = 'right';\n  /** @ignore */\n  private _style: NcTooltipStyle;\n  /** @ignore */\n  private _offset: number = 15;\n  /** @ignore */\n  private mouseOver: boolean = false;\n\n  @Input('ncTooltip')\n  set content(value: string | TemplateRef<any> | null) {\n    if (value === this._content) {\n      return;\n    }\n\n    this._content = value;\n\n    // Hide tooltip with empty content\n    if (!this._content && this.overlayRef?.hasAttached()) {\n      this.hide();\n      return;\n    }\n\n    // Update the content in case tooltip is already opened\n    if (this.overlayRef?.hasAttached()) {\n      this.tooltipInstance.content = this._content;\n      this.tooltipInstance._markForCheck();\n    }\n  }\n  get content() {\n    return this._content;\n  }\n  @Input('ncTooltipStyle')\n  set style(value: NcTooltipStyle) {\n    if (value === this._style) {\n      return;\n    }\n\n    this._style = value;\n\n    // Update the content in case tooltip is already opened\n    if (this.overlayRef?.hasAttached()) {\n      this.tooltipInstance.style = this._style;\n      this.tooltipInstance._markForCheck();\n    }\n  }\n  get style() {\n    return this._style;\n  }\n  @Input('ncTooltipDisabled') disabled: boolean;\n  @Input('ncTooltipOffsetSize')\n  set offset(value) {\n    if (value === undefined) {\n      return;\n    }\n\n    if (this._offset === value) {\n      return;\n    }\n\n    this._offset = value;\n\n    this.updateTooltipPlacement();\n  }\n  get offset() {\n    return this._offset;\n  }\n\n  @Input()\n  set placement(value: NcTooltipPlacement) {\n    if (this._placement === value) {\n      return;\n    }\n\n    this._placement = value;\n\n    this.updateTooltipPlacement();\n  }\n  get placement() {\n    return this._placement;\n  }\n\n  constructor(\n    private elementRef: ElementRef,\n    private overlay: Overlay,\n    private ngZone: NgZone\n  ) {}\n\n  /** @ignore */\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.complete();\n    this.overlayRef?.detach();\n    this.overlayRef?.dispose();\n  }\n\n  show(): void {\n    if (this.overlayRef?.hasAttached()) {\n      return;\n    }\n\n    const overlayRef = this.createOverlay();\n    this.tooltipPortal =\n      this.tooltipPortal ?? new ComponentPortal(NcTooltipComponent);\n\n    this.tooltipInstanceDestroyed$ = new Subject();\n    this.tooltipInstance = overlayRef.attach(this.tooltipPortal).instance;\n    this.tooltipInstance.content = this.content;\n    this.tooltipInstance.style = this.style;\n    this.tooltipInstance\n      .afterMouseLeave()\n      .pipe(takeUntil(this.tooltipInstanceDestroyed$))\n      .subscribe(() => setTimeout(() => this.softHide()));\n\n    // Tell the instance current position (left, right, top, bottom)\n    this.currentPosition$\n      .pipe(takeUntil(this.tooltipInstanceDestroyed$))\n      .subscribe((position) => {\n        this.ngZone.run(() => {\n          this.tooltipInstance.position = position;\n          this.tooltipInstance.offset = this.offset;\n          this.tooltipInstance._markForCheck();\n        });\n      });\n  }\n\n  hide(): void {\n    if (!this.overlayRef?.hasAttached()) {\n      return;\n    }\n    this.overlayRef.detach();\n    this.tooltipInstanceDestroyed$.next();\n    this.tooltipInstanceDestroyed$.complete();\n    this.tooltipInstance = null;\n  }\n\n  toggle(): void {\n    if (!this.overlayRef?.hasAttached()) {\n      this.show();\n      return;\n    }\n    this.hide();\n  }\n\n  /** @ignore */\n  projectComponent<T>(componentType: Type<T>): T {\n    if (!this.tooltipInstance) {\n      throw new Error(\n        `Trying to project content into a tooltip that is not yet created.`\n      );\n    }\n\n    return this.tooltipInstance.projectComponent(componentType);\n  }\n\n  /** @ignore */\n  @HostListener('mouseenter')\n  handleMouseEnter(): void {\n    if (this.disabled) {\n      return;\n    }\n    this.mouseOver = true;\n    this.show();\n  }\n\n  /** @ignore */\n  @HostListener('mouseleave')\n  handleMouseLeave(): void {\n    if (this.disabled) {\n      return;\n    }\n    this.mouseOver = false;\n    setTimeout(() => this.softHide());\n  }\n\n  /**\n   * closes only if mouse is not over the host element nor the tooltip itself\n   * @ignore\n   */\n  private softHide() {\n    if (!this.mouseOver && !this.tooltipInstance?.mouseOver) {\n      this.hide();\n    }\n  }\n\n  /** @ignore */\n  private createOverlay(): OverlayRef {\n    if (this.overlayRef) {\n      return this.overlayRef;\n    }\n\n    const positionStrategy = this.overlay\n      .position()\n      .flexibleConnectedTo(this.elementRef);\n    this.currentPosition$ = positionStrategy.positionChanges.pipe(\n      map((pos) => pos.connectionPair.panelClass as NcTooltipPlacement)\n    );\n\n    const scrollStrategy = this.overlay.scrollStrategies.reposition();\n\n    this.overlayRef = this.overlay.create({ positionStrategy, scrollStrategy });\n    this.overlayRef\n      .keydownEvents()\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe((event) => {\n        if (\n          this.overlayRef?.hasAttached() &&\n          event.keyCode === ESCAPE &&\n          !hasModifierKey(event)\n        ) {\n          this.hide();\n        }\n      });\n\n    this.updatePosition();\n\n    return this.overlayRef;\n  }\n\n  /** @ignore */\n  private updateTooltipPlacement(): void {\n    if (this.overlayRef) {\n      this.updatePosition();\n      this.overlayRef.updatePosition();\n    }\n  }\n\n  /** @ignore */\n  private updatePosition(): void {\n    const position = this.overlayRef.getConfig()\n      .positionStrategy as FlexibleConnectedPositionStrategy;\n    const positions = this.getPositions(this._placement);\n    position.withPositions(positions);\n  }\n\n  /** @ignore */\n  private getPositions(\n    preferredPlacement: NcTooltipPlacement\n  ): ConnectedPosition[] {\n    const right: ConnectedPosition = {\n      originX: 'end',\n      originY: 'center',\n      overlayX: 'start',\n      overlayY: 'center',\n      offsetX: this.offset,\n      panelClass: 'right',\n    };\n\n    const left: ConnectedPosition = {\n      originX: 'start',\n      originY: 'center',\n      overlayX: 'end',\n      overlayY: 'center',\n      offsetX: -this.offset,\n      panelClass: 'left',\n    };\n\n    const top: ConnectedPosition = {\n      originX: 'center',\n      originY: 'top',\n      overlayX: 'center',\n      overlayY: 'bottom',\n      offsetY: -this.offset,\n      panelClass: 'top',\n    };\n\n    const bottom: ConnectedPosition = {\n      originX: 'center',\n      originY: 'bottom',\n      overlayX: 'center',\n      overlayY: 'top',\n      offsetY: this.offset,\n      panelClass: 'bottom',\n    };\n\n    switch (preferredPlacement) {\n      case 'right':\n        return [right, left, bottom, top];\n      case 'left':\n        return [left, right, bottom, top];\n      case 'top':\n        return [top, bottom, right, left];\n      case 'bottom':\n        return [bottom, top, right, left];\n      default:\n        throw new SyntaxError(\n          `\"${preferredPlacement}\" value for 'placement' property is not supported. Available options: after, before, top, bottom, left or right.`\n        );\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { NcTooltipComponent } from './tooltip.component';\nimport { NcTooltipDirective } from './tooltip.directive';\n\n@NgModule({\n  imports: [CommonModule, OverlayModule],\n  declarations: [NcTooltipDirective, NcTooltipComponent],\n  exports: [NcTooltipDirective, NcTooltipComponent],\n})\nexport class NcTooltipModule {}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  Input,\n  ViewChild,\n  TemplateRef,\n} from '@angular/core';\n\n@Component({\n  selector: 'nc-pill',\n  templateUrl: './pill.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcPillComponent {\n  @Input() disabled: boolean;\n  @Input() value: any;\n\n  @ViewChild(TemplateRef, { static: true })\n  readonly templateRef: TemplateRef<any>;\n}\n","<ng-template><ng-content></ng-content></ng-template>\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  ContentChildren,\n  QueryList,\n  Input,\n  Output,\n  EventEmitter,\n} from '@angular/core';\nimport { NcPillComponent } from './pill/pill.component';\n\n@Component({\n  selector: 'nc-pills',\n  templateUrl: './pills.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    '[attr.aria-label]': 'null',\n    '[attr.aria-labelledby]': 'null',\n  },\n})\nexport class NcPillsComponent {\n  @Input() color: 'default' | 'primary' = 'default';\n  @Input() selected: any;\n\n  @Input('aria-label') ariaLabel: string | null = null;\n  @Input('aria-labelledby') ariaLabelledby: string | null = null;\n\n  @Output() readonly selectedChange = new EventEmitter<any>();\n\n  /** @ignore */\n  @ContentChildren(NcPillComponent)\n  readonly pills: QueryList<NcPillComponent>;\n\n  /** @ignore */\n  select(value: any) {\n    this.selected = value;\n    this.selectedChange.emit(value);\n  }\n}\n","<div\n  role=\"group\"\n  class=\"nav nav-pills\"\n  [class.nav-pills-primary]=\"color === 'primary'\"\n  [attr.aria-label]=\"ariaLabel\"\n  [attr.aria-labelledby]=\"ariaLabelledby\"\n>\n  <button\n    *ngFor=\"let pill of pills\"\n    type=\"button\"\n    [class.active]=\"pill.value === selected\"\n    [attr.aria-pressed]=\"pill.value === selected\"\n    [disabled]=\"pill.disabled\"\n    (click)=\"select(pill.value)\"\n  >\n    <ng-template [ngTemplateOutlet]=\"pill.templateRef\"></ng-template>\n  </button>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NcPillsComponent } from './pills.component';\nimport { NcPillComponent } from './pill/pill.component';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [NcPillsComponent, NcPillComponent],\n  exports: [NcPillsComponent, NcPillComponent],\n})\nexport class NcPillsModule {}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Injector,\n  Input,\n  Output,\n  Provider,\n  ViewChild,\n} from '@angular/core';\nimport {\n  ControlValueAccessor,\n  NgControl,\n  NG_VALUE_ACCESSOR,\n} from '@angular/forms';\n\nexport const CHECKBOX_CONTROL_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => NcCheckboxComponent),\n  multi: true,\n};\n\n// Increasing integer for generating unique ids for checkbox components.\n// Inspired by @angular/components\nlet nextUniqueId = 0;\n\n@Component({\n  selector: 'nc-checkbox',\n  templateUrl: './checkbox.component.html',\n  styleUrls: ['./checkbox.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR],\n})\nexport class NcCheckboxComponent implements ControlValueAccessor {\n  /** @ignore */\n  private readonly _uniqueId = `nc-checkbox-${++nextUniqueId}`;\n  /** @ignore */\n  private _name: string;\n  /** @ignore */\n  private _id: string;\n  /** @ignore */\n  private _checked = false;\n  /** @ignore */\n  private _disabled = false;\n  /** @ignore */\n  private _indeterminate = false;\n  /** @ignore */\n  private _onTouched: () => any;\n  /** @ignore */\n  private _onModelChanged: (value: any) => void;\n\n  /** The value attribute of the native input element */\n  @Input() value: string;\n\n  @Output() readonly change = new EventEmitter<boolean>();\n  @Output() readonly indeterminateChange = new EventEmitter<boolean>();\n\n  /** @ignore */\n  @ViewChild('input') readonly inputElement: ElementRef<HTMLInputElement>;\n\n  constructor(private cdRef: ChangeDetectorRef, private injector: Injector) {}\n\n  @Input()\n  get name(): string {\n    const ngControl = this.injector.get(NgControl, null);\n    return this._name ?? ngControl?.name?.toString();\n  }\n  set name(value: string) {\n    if (value !== this._name) {\n      this._name = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  @Input()\n  get id(): string {\n    return this._id ?? this._uniqueId;\n  }\n  set id(value: string) {\n    if (value !== this._id) {\n      this._id = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  @Input()\n  get checked(): boolean {\n    return this._checked;\n  }\n  set checked(value: boolean) {\n    if (value !== this.checked) {\n      this._checked = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  @Input()\n  get disabled() {\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    if (value !== this.disabled) {\n      this._disabled = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  @Input()\n  get indeterminate(): boolean {\n    return this._indeterminate;\n  }\n  set indeterminate(value: boolean) {\n    if (value !== this._indeterminate) {\n      this._indeterminate = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /** @ignore */\n  onInputChange(event: Event) {\n    // We always have to stop propagation on the change event.\n    // Otherwise the change event, from the input element, will bubble up and\n    // emit its event object to the `change` output.\n    event.stopPropagation();\n\n    if (this.disabled) {\n      return;\n    }\n\n    this.checked = !this.checked;\n    this.updateModel();\n  }\n\n  /** @ignore */\n  onBlur() {\n    if (this._onTouched) {\n      this._onTouched();\n    }\n  }\n\n  /** @ignore */\n  registerOnChange(fn: (value: any) => void) {\n    this._onModelChanged = fn;\n  }\n\n  /** @ignore */\n  registerOnTouched(fn: any) {\n    this._onTouched = fn;\n  }\n\n  /** @ignore */\n  writeValue(value: any) {\n    this.checked = !!value;\n  }\n\n  /** @ignore */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n\n  /** @ignore */\n  private updateModel() {\n    if (this._onModelChanged) {\n      this._onModelChanged(this.checked);\n    }\n    this.change.emit(this.checked);\n  }\n}\n","<div class=\"checkbox\" [class.disabled]=\"disabled\">\n  <input\n    type=\"checkbox\"\n    [id]=\"id + '-checkbox'\"\n    [name]=\"name\"\n    [checked]=\"checked\"\n    [indeterminate]=\"indeterminate\"\n    [disabled]=\"disabled\"\n    [attr.value]=\"value\"\n    (change)=\"onInputChange($event)\"\n    (blur)=\"onBlur()\"\n  />\n  <label [for]=\"id + '-checkbox'\"><ng-content></ng-content></label>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NcCheckboxComponent } from './checkbox.component';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [NcCheckboxComponent],\n  exports: [NcCheckboxComponent],\n})\nexport class NcCheckboxModule {}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  Input,\n  forwardRef,\n  Provider,\n  ChangeDetectorRef,\n  Output,\n  EventEmitter,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n/**\n * Provider Expression that allows nc-radio-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)] and ngControl.\n */\nexport const RADIO_CONTROL_VALUE_ACCESSOR: Provider = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => NcRadioGroupComponent),\n  multi: true,\n};\n\n// Increasing integer for generating unique ids for radio components.\nlet nextUniqueId = 0;\n\n@Component({\n  selector: 'nc-radio-group',\n  templateUrl: './radio-group.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [RADIO_CONTROL_VALUE_ACCESSOR],\n})\nexport class NcRadioGroupComponent implements ControlValueAccessor {\n  private _uniqueId: string = `nc-radio-group-${nextUniqueId++}`;\n  private _onTouched: () => any;\n  private _onModelChanged: (value: any) => void;\n  private _disabled: boolean = false;\n  private _value?: string;\n\n  /** Name of the radio button group. All radio buttons inside this group will use this name. */\n  @Input() name: string = this._uniqueId;\n\n  /**\n   * Value for the radio-group. Should equal the value of the selected radio button if there is\n   * a corresponding radio button with a matching value. If there is not such a corresponding\n   * radio button, this value persists to be applied in case a new radio button is added with a\n   * matching value.\n   */\n  @Input()\n  get value(): string {\n    return this._value;\n  }\n  set value(value: string) {\n    if (value !== this._value) {\n      this._value = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /** Whether the radio group is disabled */\n  @Input()\n  get disabled(): boolean {\n    return this._disabled;\n  }\n  set disabled(value: boolean) {\n    if (value !== this._disabled) {\n      this._disabled = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /**\n   * Event emitted when the group value changes.\n   * Change events are only emitted when the value changes due to user interaction with\n   * a radio button (the same behavior as `<input type=\"radio\">`).\n   */\n  @Output() valueChange = new EventEmitter<string>();\n\n  constructor(private cdRef: ChangeDetectorRef) {}\n\n  /** @ignore */\n  registerOnChange(fn: (value: any) => void) {\n    this._onModelChanged = fn;\n  }\n\n  /** @ignore */\n  registerOnTouched(fn: any) {\n    this._onTouched = fn;\n  }\n\n  /** @ignore */\n  writeValue(value: any) {\n    this.value = value;\n  }\n\n  /** @ignore */\n  setDisabledState(isDisabled: boolean) {\n    this.disabled = isDisabled;\n  }\n\n  /** @ignore */\n  onValueChange(value: string) {\n    if (this.value === value) {\n      return;\n    }\n    this._value = value;\n    this.valueChange.emit(value);\n    if (this._onModelChanged) {\n      this._onModelChanged(this.value);\n    }\n  }\n\n  /** @ignore */\n  onBlur() {\n    if (this._onTouched) {\n      this._onTouched();\n    }\n  }\n}\n","<ng-content></ng-content>\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  Input,\n  Output,\n  EventEmitter,\n  ChangeDetectorRef,\n  Optional,\n  DoCheck,\n} from '@angular/core';\nimport { NcRadioGroupComponent } from './radio-group/radio-group.component';\n\n// Increasing integer for generating unique ids for radio components.\nlet nextUniqueId = 0;\n\n@Component({\n  selector: 'nc-radio',\n  templateUrl: './radio.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcRadioComponent implements DoCheck {\n  private _uniqueId = `nc-radio-${++nextUniqueId}`;\n  private _name: string;\n  private _inputId: string;\n  private _checked = false;\n  private _disabled = false;\n  private _groupDisabled = false;\n\n  /** The value attribute of the native input element */\n  @Input() value: string;\n\n  /** Name of the radio button group. All radio buttons inside this group will use this name. */\n  @Input()\n  get name(): string {\n    return this.radioGroup?.name ?? this._name ?? this._uniqueId;\n  }\n  set name(value: string) {\n    if (value !== this._name) {\n      this._name = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /** The unique ID for the radio button. */\n  @Input()\n  get id(): string {\n    return this._inputId ?? this._uniqueId;\n  }\n  set id(value: string) {\n    if (value !== this._inputId) {\n      this._inputId = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /** Whether this radio button is checked. */\n  @Input()\n  get checked(): boolean {\n    return this._checked;\n  }\n  set checked(value: boolean) {\n    if (value !== this.checked) {\n      this._checked = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /** Whether this radio button is disabled. */\n  @Input()\n  get disabled() {\n    return this._groupDisabled || this._disabled;\n  }\n  set disabled(value: boolean) {\n    if (value !== this.disabled) {\n      this._disabled = value;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /**\n   * Event emitted when the group value changes.\n   * Change events are only emitted when the value changes due to user interaction with\n   * a radio button (the same behavior as `<input type=\"radio\">`).\n   */\n  @Output() readonly change = new EventEmitter<string>();\n\n  /** @ignore */\n  get inputId() {\n    return (this.id || this._uniqueId) + '-input';\n  }\n\n  constructor(\n    private cdRef: ChangeDetectorRef,\n    @Optional() private radioGroup: NcRadioGroupComponent\n  ) {}\n\n  /** @ignore */\n  ngDoCheck() {\n    const shouldBeChecked = this.radioGroup?.value === this.value;\n    if (this.radioGroup && this.checked !== shouldBeChecked) {\n      this.checked = shouldBeChecked;\n      this.cdRef.markForCheck();\n    }\n\n    if (this.radioGroup?.disabled !== this._groupDisabled) {\n      this._groupDisabled = this.radioGroup?.disabled;\n      this.cdRef.markForCheck();\n    }\n  }\n\n  /** @ignore */\n  onInputChange(event: Event) {\n    // We always have to stop propagation on the change event.\n    // Otherwise the change event, from the input element, will bubble up and\n    // emit its event object to the `change` output.\n    event.stopPropagation();\n\n    if (this.disabled) {\n      return;\n    }\n\n    this.change.emit(this.value);\n    this.radioGroup?.onValueChange(this.value);\n  }\n\n  /** @ignore */\n  onBlur() {\n    this.radioGroup?.onBlur();\n  }\n}\n","<div class=\"radio\" [class.disabled]=\"disabled\">\n  <input\n    type=\"radio\"\n    [attr.id]=\"inputId\"\n    [name]=\"name\"\n    [checked]=\"checked\"\n    [disabled]=\"disabled\"\n    [attr.value]=\"value\"\n    (change)=\"onInputChange($event)\"\n    (blur)=\"onBlur()\"\n  />\n  <label [attr.for]=\"inputId\"><ng-content></ng-content></label>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NcRadioComponent } from './radio.component';\nimport { NcRadioGroupComponent } from './radio-group/radio-group.component';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [NcRadioComponent, NcRadioGroupComponent],\n  exports: [NcRadioComponent, NcRadioGroupComponent],\n})\nexport class NcRadioModule {}\n","import { CdkAccordion } from '@angular/cdk/accordion';\nimport { InjectionToken } from '@angular/core';\n\nexport const NC_COLLAPSIBLE_LIST = new InjectionToken<CdkAccordion>(\n  'NcCollapsibleList'\n);\n","import { CdkAccordion, CdkAccordionItem } from '@angular/cdk/accordion';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  SkipSelf,\n  TemplateRef,\n  ViewChild,\n} from '@angular/core';\nimport { animations } from '../../common';\n\nimport { NC_COLLAPSIBLE_LIST } from '../collapsible-list-base';\n\n@Component({\n  selector: 'nc-expansion-panel',\n  templateUrl: './expansion-panel.component.html',\n  styleUrls: ['./expansion-panel.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  animations: [animations.accordion],\n})\nexport class NcExpansionPanelComponent extends CdkAccordionItem {\n  @ViewChild(TemplateRef, { static: true })\n  readonly templateRef: TemplateRef<any>;\n\n  get headerId() {\n    return this.id + '-header';\n  }\n\n  get panelId() {\n    return this.id + '-panel';\n  }\n\n  constructor(\n    @SkipSelf() @Inject(NC_COLLAPSIBLE_LIST) collapsibleList: CdkAccordion,\n    cdRef: ChangeDetectorRef,\n    expansionDispatcher: UniqueSelectionDispatcher\n  ) {\n    super(collapsibleList, cdRef, expansionDispatcher);\n  }\n}\n","<ng-template>\n  <div class=\"panel panel-default\">\n    <div class=\"panel-heading\" [attr.id]=\"headerId\">\n      <h4 class=\"panel-title\">\n        <a\n          (click)=\"toggle()\"\n          [class.collapsed]=\"!expanded\"\n          data-toggle=\"collapse\"\n          [attr.aria-expanded]=\"expanded\"\n          [attr.aria-controls]=\"panelId\"\n          role=\"button\"\n        >\n          <ng-content select=\"nc-panel-title\"></ng-content>\n          <span class=\"caret caret-large-blue\"></span>\n        </a>\n      </h4>\n    </div>\n\n    <div\n      [attr.id]=\"panelId\"\n      class=\"panel-collapse\"\n      [@accordion]=\"expanded ? 'expanded' : 'collapsed'\"\n      [class.expanded]=\"expanded\"\n      [attr.aria-labelledby]=\"headerId\"\n    >\n      <div class=\"panel-body\">\n        <ng-content></ng-content>\n      </div>\n    </div>\n  </div>\n</ng-template>\n","import { CdkAccordion } from '@angular/cdk/accordion';\nimport {\n  Component,\n  ChangeDetectionStrategy,\n  ContentChildren,\n  QueryList,\n} from '@angular/core';\nimport { NC_COLLAPSIBLE_LIST } from './collapsible-list-base';\nimport { NcExpansionPanelComponent } from './expansion-panel/expansion-panel.component';\n\n@Component({\n  selector: 'nc-collapsible-list',\n  templateUrl: './collapsible-list.component.html',\n  styleUrls: ['./collapsible-list.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  providers: [\n    { provide: NC_COLLAPSIBLE_LIST, useExisting: NcCollapsibleListComponent },\n  ],\n})\nexport class NcCollapsibleListComponent extends CdkAccordion {\n  @ContentChildren(NcExpansionPanelComponent)\n  readonly panels: QueryList<NcExpansionPanelComponent>;\n}\n","<div class=\"panel-group\" role=\"tablist\">\n  <ng-container\n    *ngFor=\"let panel of panels\"\n    [ngTemplateOutlet]=\"panel.templateRef\"\n  ></ng-container>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n  selector: 'nc-panel-title',\n  templateUrl: './panel-title.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcPanelTitleComponent {}\n","<ng-content></ng-content>\n","import { CdkAccordionModule } from '@angular/cdk/accordion';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NcCollapsibleListComponent } from './collapsible-list.component';\nimport { NcExpansionPanelComponent } from './expansion-panel/expansion-panel.component';\nimport { NcPanelTitleComponent } from './panel-title/panel-title.component';\n\n@NgModule({\n  imports: [CommonModule, CdkAccordionModule],\n  declarations: [\n    NcCollapsibleListComponent,\n    NcExpansionPanelComponent,\n    NcPanelTitleComponent,\n  ],\n  exports: [\n    NcCollapsibleListComponent,\n    NcExpansionPanelComponent,\n    NcPanelTitleComponent,\n  ],\n})\nexport class NcCollapsibleListModule {}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  Input,\n  Output,\n  EventEmitter,\n} from '@angular/core';\n\n@Component({\n  selector: 'nc-light-dark-switch',\n  templateUrl: './light-dark-switch.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcLightDarkSwitchComponent {\n  @Input() isDark: boolean = false;\n  @Output() darkChange = new EventEmitter<boolean>();\n}\n","<label class=\"switch switch-label light-dark-toggle\">\n  <b class=\"light\" i18n=\"@@nc-light-mode\">Light mode</b>\n  <input\n    type=\"checkbox\"\n    name=\"option\"\n    [checked]=\"isDark\"\n    (change)=\"darkChange.emit($any($event.target).checked)\"\n  />\n  <span class=\"togglemark\"><b class=\"details\"></b></span>\n  <b class=\"dark\" i18n=\"@@nc-dark-mode\">Dark mode</b>\n</label>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NcLightDarkSwitchComponent } from './light-dark-switch.component';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [NcLightDarkSwitchComponent],\n  exports: [NcLightDarkSwitchComponent],\n})\nexport class NcLightDarkSwitchModule {}\n","import { Directive, Input, TemplateRef } from '@angular/core';\n\n@Directive({ selector: 'ng-template[ncError]' })\nexport class NcErrorDirective {\n  @Input('ncError') errorKey: string;\n\n  constructor(public templateRef: TemplateRef<any>) {}\n}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  ContentChildren,\n  QueryList,\n  AfterContentInit,\n  Renderer2,\n  ElementRef,\n  OnInit,\n  OnDestroy,\n} from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { NcErrorDirective } from './error.directive';\nimport { NcErrorMessages } from './error-messages.model';\n\n@Component({\n  selector: 'nc-errors',\n  exportAs: 'ncErrors',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcErrorsComponent implements OnInit, AfterContentInit, OnDestroy {\n  private destroyed$ = new Subject();\n  private errorsSubject = new BehaviorSubject<NcErrorMessages>({});\n\n  @ContentChildren(NcErrorDirective)\n  readonly errors: QueryList<NcErrorDirective>;\n\n  readonly errors$ = this.errorsSubject.asObservable();\n  readonly getErrors = () => this.errorsSubject.getValue();\n\n  constructor(private renderer: Renderer2, private elRef: ElementRef) {}\n\n  ngOnInit(): void {\n    /**\n     * This is an virtual component only needed to pass-through the error list,\n     * no actual component is needed in the DOM, therefore `hidden` attribute is set.\n     */\n    this.renderer.setAttribute(this.elRef.nativeElement, 'hidden', '');\n  }\n\n  ngAfterContentInit(): void {\n    this.errorsSubject.next(this.getMappedErrors());\n\n    this.errors.changes\n      .pipe(\n        map(() => this.getMappedErrors()),\n        takeUntil(this.destroyed$)\n      )\n      .subscribe(this.errorsSubject);\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.unsubscribe();\n  }\n\n  private getMappedErrors(): NcErrorMessages {\n    return this.errors.reduce(\n      (errors, error) => ({ ...errors, [error.errorKey]: error.templateRef }),\n      {}\n    );\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { NcErrorMessages } from './error-messages.model';\n\n@Injectable({ providedIn: 'root' })\nexport class NcGlobalErrorMessagesService {\n  private errorMessagesSubject = new BehaviorSubject<NcErrorMessages>({});\n\n  readonly errorMessages$ = this.errorMessagesSubject.asObservable();\n  readonly getErrorMessages = () => this.errorMessagesSubject.getValue();\n\n  registerErrorMessages(messages: NcErrorMessages): void {\n    const currentMessages = this.getErrorMessages();\n    this.errorMessagesSubject.next({ ...currentMessages, ...messages });\n  }\n}\n","import {\n  Component,\n  ChangeDetectionStrategy,\n  ContentChildren,\n  QueryList,\n  AfterContentInit,\n  OnInit,\n  Renderer2,\n  ElementRef,\n  OnDestroy,\n} from '@angular/core';\n\nimport { NcErrorDirective } from './error.directive';\nimport { NcErrorMessages } from './error-messages.model';\nimport { NcGlobalErrorMessagesService } from './global-error-messages.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n  selector: 'nc-global-errors',\n  template: '',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcGlobalErrorsComponent\n  implements OnInit, AfterContentInit, OnDestroy\n{\n  private destroyed$ = new Subject();\n\n  @ContentChildren(NcErrorDirective)\n  readonly errors: QueryList<NcErrorDirective>;\n\n  constructor(\n    private renderer: Renderer2,\n    private elRef: ElementRef,\n    private globalErrors: NcGlobalErrorMessagesService\n  ) {}\n\n  ngOnInit(): void {\n    /**\n     * This is an virtual component only needed to pass-through the error list,\n     * no actual component is needed in the DOM, therefore `hidden` attribute is set.\n     */\n    this.renderer.setAttribute(this.elRef.nativeElement, 'hidden', '');\n  }\n\n  ngAfterContentInit(): void {\n    this.updateGlobalErrorMessages();\n\n    this.errors.changes\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe(() => this.updateGlobalErrorMessages());\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.unsubscribe();\n  }\n\n  private updateGlobalErrorMessages(): void {\n    const messages: NcErrorMessages = this.errors.reduce(\n      (errors, error) => ({ ...errors, [error.errorKey]: error.templateRef }),\n      {}\n    );\n    this.globalErrors.registerErrorMessages(messages);\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Input,\n  OnDestroy,\n  OnInit,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport {\n  NcGlobalErrorMessagesService,\n  NcErrorMessages,\n} from './error-messages';\n\n@Component({\n  selector: 'nc-error-tooltip-content',\n  templateUrl: 'error-tooltip-content.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NcErrorTooltipContentComponent implements OnInit, OnDestroy {\n  private destroyed$ = new Subject();\n\n  @Input() errors: { [key: string]: any } = {};\n  @Input() errorMessages: NcErrorMessages = {};\n  @Input() errorMessageId?: string;\n\n  globalErrorMessages: NcErrorMessages = {};\n\n  constructor(\n    public cd: ChangeDetectorRef,\n    private globalErrorMessagesService: NcGlobalErrorMessagesService\n  ) {}\n\n  ngOnInit(): void {\n    this.globalErrorMessagesService.errorMessages$\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe((messages) => {\n        this.globalErrorMessages = messages;\n        this.cd.markForCheck();\n      });\n  }\n\n  ngOnDestroy(): void {\n    this.destroyed$.next();\n    this.destroyed$.unsubscribe();\n  }\n\n  get errorKeys() {\n    return Object.keys(this.errors);\n  }\n}\n","<div [attr.id]=\"errorMessageId\" aria-live=\"assertive\">\n  <div *ngFor=\"let errKey of errorKeys\">\n    <ng-template\n      *ngIf=\"errorMessages[errKey]\"\n      [ngTemplateOutlet]=\"errorMessages[errKey]\"\n      [ngTemplateOutletContext]=\"{\n        $implicit: errors[errKey],\n        error: errors[errKey]\n      }\"\n    ></ng-template>\n\n    <ng-template\n      *ngIf=\"!errorMessages[errKey] && globalErrorMessages[errKey]\"\n      [ngTemplateOutlet]=\"globalErrorMessages[errKey]\"\n      [ngTemplateOutletContext]=\"{\n        $implicit: errors[errKey],\n        error: errors[errKey]\n      }\"\n    ></ng-template>\n\n    <ng-container\n      *ngIf=\"!errorMessages[errKey] && !globalErrorMessages[errKey]\"\n    >\n      Validation error: *{{ errKey }}*.\n    </ng-container>\n  </div>\n</div>\n","import { Overlay } from '@angular/cdk/overlay';\nimport {\n  Directive,\n  ElementRef,\n  HostBinding,\n  HostListener,\n  Input,\n  NgZone,\n  OnChanges,\n  OnInit,\n  Optional,\n  SimpleChanges,\n} from '@angular/core';\nimport { takeUntil } from 'rxjs/operators';\nimport {\n  ControlContainer,\n  FormControl,\n  FormGroupDirective,\n  NgControl,\n  NgForm,\n} from '@angular/forms';\nimport { NcTooltipDirective } from '../tooltip';\nimport { NcErrorTooltipContentComponent } from './error-tooltip-content.component';\nimport { NcErrorMessages, NcErrorsComponent } from './error-messages';\nimport { Observable, Subscription } from 'rxjs';\n\n// Increasing integer for generating unique ids for error message component.\nlet nextErrorMessageId = 0;\n\n@Directive({\n  selector: '[ncErrorTooltip]',\n  exportAs: 'ncErrorTooltip',\n})\nexport class NcErrorTooltipDirective\n  extends NcTooltipDirective\n  implements OnInit, OnChanges\n{\n  private inFocus = false;\n  private formSubmitted = false;\n  private contentInstance: NcErrorTooltipContentComponent | null = null;\n  private _errorMessages: NcErrorMessages | {} = {};\n  private errorMessagesSub = new Subscription();\n\n  @HostBinding('attr.aria-invalid')\n  @HostBinding('class.has-error')\n  hasError: boolean;\n\n  @HostBinding('attr.aria-errormessage')\n  readonly errorMessageId = `nc-error-message-${++nextErrorMessageId}`;\n\n  @Input('ncErrorTooltip') errorMessages: NcErrorsComponent | string = '';\n  @Input('ncErrorTooltipControl') explicitNgControl?: NgControl | FormControl;\n  @Input('ncErrorTooltipCustom') customErrors?: { [key: string]: any } | null =\n    null;\n\n  constructor(\n    elRef: ElementRef<HTMLElement>,\n    overlay: Overlay,\n    ngZone: NgZone,\n    @Optional() private implicitNgControl?: NgControl,\n    @Optional() private ngForm?: NgForm,\n    @Optional() private controlContainer?: ControlContainer\n  ) {\n    super(elRef, overlay, ngZone);\n    this.disabled = true;\n    this.style = 'error';\n    this.content = '';\n  }\n\n  ngOnInit() {\n    if (!this.ngControl) {\n      throw new Error(\n        `[ncErrorTooltip] only works with angular form controls. Make sure [(ngModel)] or [formControl] is used.`\n      );\n    }\n\n    (this.ngControl.statusChanges as Observable<unknown>)\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe(() => this.checkTooltipState());\n\n    this.formContainer?.ngSubmit\n      .pipe(takeUntil(this.destroyed$))\n      .subscribe(() => {\n        this.formSubmitted = true;\n        this.checkTooltipState();\n      });\n  }\n\n  ngDoCheck() {\n    if (\n      this.formContainer &&\n      this.formContainer.submitted !== this.formSubmitted\n    ) {\n      // `NgForm` doesn't provide `reset` observable,\n      // so this must be manually checked on every change-detection run ;(\n      this.formSubmitted = this.formContainer.submitted;\n      this.checkTooltipState();\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    this.checkTooltipState();\n\n    if (changes['errorMessages']) {\n      this.errorMessagesSub?.unsubscribe();\n      if (this.errorMessages instanceof NcErrorsComponent) {\n        this.errorMessagesSub = this.errorMessages.errors$\n          .pipe(takeUntil(this.destroyed$))\n          .subscribe((errorMessages) => {\n            this._errorMessages = errorMessages;\n            this.updateErrorMessages();\n          });\n      } else {\n        this._errorMessages = {};\n        this.updateErrorMessages();\n      }\n    }\n  }\n\n  @HostListener('focusin')\n  onFocus() {\n    this.inFocus = true;\n    this.checkTooltipState();\n  }\n\n  @HostListener('focusout')\n  onBlur() {\n    this.inFocus = false;\n    this.checkTooltipState();\n  }\n\n  hide() {\n    // overriding this method to prevent default tooltip closing behaviour\n  }\n\n  private get ngControl() {\n    if (\n      this.explicitNgControl instanceof NgControl ||\n      this.explicitNgControl instanceof FormControl\n    ) {\n      return this.explicitNgControl;\n    }\n    return this.implicitNgControl;\n  }\n\n  private get formContainer() {\n    if (\n      this.controlContainer &&\n      this.controlContainer.formDirective instanceof FormGroupDirective\n    ) {\n      return this.controlContainer.formDirective;\n    }\n    return this.ngForm;\n  }\n\n  private checkTooltipState() {\n    const hasCustomError = Object.values(this.customErrors ?? {}).some(\n      (e) => e !== null && e !== undefined\n    );\n    this.hasError =\n      (this.ngControl.invalid || hasCustomError) &&\n      ((this.ngControl.touched && this.ngControl.dirty) || this.formSubmitted);\n\n    const shouldBeVisible = this.hasError && this.inFocus;\n    if (shouldBeVisible) {\n      this.show();\n      this.createContentInstance();\n      this.updateErrorMessages();\n    } else {\n      super.hide();\n      this.contentInstance = null;\n    }\n  }\n\n  private createContentInstance() {\n    if (!this.contentInstance) {\n      this.contentInstance = this.projectComponent(\n        NcErrorTooltipContentComponent\n      );\n      this.contentInstance.errorMessageId = this.errorMessageId;\n    }\n    return this.contentInstance;\n  }\n\n  private updateErrorMessages() {\n    if (!this.contentInstance) {\n      return;\n    }\n    this.contentInstance.errors = this.getErrors();\n    this.contentInstance.errorMessages = this._errorMessages;\n    this.contentInstance.cd.detectChanges();\n  }\n\n  private getErrors() {\n    const customErrors = Object.entries(this.customErrors ?? {}).reduce(\n      (l, [key, err]) =>\n        err !== null && err !== undefined ? { ...l, [key]: err } : l,\n      {}\n    );\n\n    return { ...this.ngControl.errors, ...customErrors };\n  }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { NcErrorTooltipDirective } from './error-tooltip.directive';\nimport { NcErrorTooltipContentComponent } from './error-tooltip-content.component';\nimport {\n  NcErrorDirective,\n  NcErrorsComponent,\n  NcGlobalErrorsComponent,\n} from './error-messages';\n\n@NgModule({\n  imports: [CommonModule, OverlayModule, ReactiveFormsModule],\n  declarations: [\n    NcErrorTooltipDirective,\n    NcErrorTooltipContentComponent,\n    NcErrorsComponent,\n    NcErrorDirective,\n    NcGlobalErrorsComponent,\n  ],\n  exports: [\n    NcErrorTooltipDirective,\n    NcErrorsComponent,\n    NcErrorDirective,\n    NcGlobalErrorsComponent,\n  ],\n})\nexport class NcErrorTooltipModule {}\n","import { NgModule } from '@angular/core';\n\nimport { NcDatepickerModule } from './datepicker/datepicker.module';\nimport { NcSelectModule } from './select/select.module';\nimport { NcSidebarModule } from './sidebar/sidebar.module';\nimport { NcAlertModule } from './alert/alert.module';\nimport { NcSpinnerModule } from './spinner/spinner.module';\nimport { NcNavbarModule } from './navbar/navbar.module';\nimport { NcDropdownModule } from './dropdown/dropdown.module';\nimport { NcTabsetModule } from './tabset/tabset.module';\nimport { NcTooltipModule } from './tooltip/tooltip.module';\nimport { NcPillsModule } from './pills/pills.module';\nimport { NcCheckboxModule } from './checkbox/checkbox.module';\nimport { NcRadioModule } from './radio/radio.module';\nimport { NcCollapsibleListModule } from './collapsible-list/collapsible-list.module';\nimport { NcLightDarkSwitchModule } from './light-dark-switch/light-dark-switch.module';\nimport { NcErrorTooltipModule } from './error-tooltip/error-tooltip.module';\n\n@NgModule({\n  exports: [\n    NcDatepickerModule,\n    NcSelectModule,\n    NcSidebarModule,\n    NcSpinnerModule,\n    NcNavbarModule,\n    NcDropdownModule,\n    NcTabsetModule,\n    NcTooltipModule,\n    NcPillsModule,\n    NcCheckboxModule,\n    NcRadioModule,\n    NcCollapsibleListModule,\n    NcAlertModule,\n    NcLightDarkSwitchModule,\n    NcErrorTooltipModule,\n  ],\n})\nexport class NordicCoolModule {}\n","import { hasModifierKey } from '@angular/cdk/keycodes';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { isObservable, Observable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nimport { NcModalComponent } from './modal.component';\n\nexport type NcModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';\nexport type NcDialogType = 'info' | 'error' | 'warning' | 'help' | 'success';\nexport type NcDialogRole = 'dialog' | 'alertdialog';\n\nexport class NcModalOptions {\n  size?: NcModalSize;\n  type?: NcDialogType;\n  role?: NcDialogRole;\n  labelledBy?: string;\n  describedBy?: string;\n  closeOnEscape?: boolean;\n  closeOnOutsideClick?: boolean;\n  closeOnNavigation?: boolean;\n}\n\nexport type ExtractInput<C extends NcModalComponent<any>> =\n  C extends NcModalComponent<infer I, any> ? I : never;\nexport type ExtractOutput<C extends NcModalComponent<any>> =\n  C extends NcModalComponent<any, infer O> ? O : never;\n\nexport class NcModalRef<\n  C extends NcModalComponent<any, any>,\n  O = ExtractOutput<C>\n> {\n  /** @ignore */\n  private closeSubject = new Subject<O>();\n\n  readonly closed$ = this.closeSubject.asObservable();\n\n  componentInstance: C;\n\n  constructor(private overlayRef: OverlayRef, options: NcModalOptions) {\n    overlayRef\n      .keydownEvents()\n      .pipe(\n        filter(\n          (event) =>\n            options.closeOnEscape &&\n            event.key === 'Escape' &&\n            !hasModifierKey(event)\n        )\n      )\n      .subscribe((event) => {\n        event.preventDefault();\n        this.softClose();\n      });\n\n    if (options.closeOnOutsideClick) {\n      overlayRef.backdropClick().subscribe(() => this.softClose());\n    }\n  }\n\n  close(result?: O): void {\n    if (!this.overlayRef.hasAttached()) {\n      return;\n    }\n\n    this.overlayRef.dispose();\n    this.closeSubject.next(result);\n    this.closeSubject.complete();\n  }\n\n  afterClosed(\n    { closeOnUnsubscribe } = { closeOnUnsubscribe: true }\n  ): Observable<O> {\n    return new Observable((observer) => {\n      this.closeSubject.subscribe(observer);\n      return () => closeOnUnsubscribe && this.close();\n    });\n  }\n\n  /** @ignore */\n  private softClose(): void {\n    if (typeof this.componentInstance.onSoftClose !== 'function') {\n      this.close();\n    }\n\n    const shouldClose = this.componentInstance.onSoftClose();\n    if (typeof shouldClose === 'boolean' && shouldClose) {\n      this.close();\n    }\n    if (isObservable(shouldClose)) {\n      shouldClose\n        .pipe(takeUntil(this.closed$))\n        .subscribe((result) => result && this.close());\n    }\n  }\n}\n","import { CdkPortalOutlet, ComponentPortal } from '@angular/cdk/portal';\nimport { Component, ViewChild, Input } from '@angular/core';\nimport { NcModalComponent } from '../modal.component';\nimport { NcModalOptions } from '../modal-ref';\n\n@Component({\n  selector: 'nc-modal-container',\n  templateUrl: './modal-container.component.html',\n  styleUrls: ['./modal-container.component.scss'],\n})\nexport class NcModalContainerComponent {\n  @Input() options: NcModalOptions;\n\n  @ViewChild(CdkPortalOutlet, { static: true })\n  readonly portalOutlet: CdkPortalOutlet;\n\n  constructor() {}\n\n  attachComponentPortal<I, O>(\n    component: ComponentPortal<NcModalComponent<I, O>>,\n    data: I\n  ) {\n    const { instance } = this.portalOutlet.attachComponentPortal(component);\n    instance.data = data;\n    return instance;\n  }\n}\n","<div\n  class=\"modal fade in\"\n  [attr.role]=\"options.role\"\n  [attr.aria-labelledby]=\"options.labelledBy\"\n  [attr.aria-describedby]=\"options.describedBy\"\n  [class.modal-info]=\"options.type === 'info'\"\n  [class.modal-help]=\"options.type === 'help'\"\n  [class.modal-success]=\"options.type === 'success'\"\n  [class.modal-warning]=\"options.type === 'warning'\"\n  [class.modal-error]=\"options.type === 'error'\"\n>\n  <div\n    class=\"modal-dialog\"\n    [class.modal-sm]=\"options.size === 'sm'\"\n    [class.modal-lg]=\"options.size === 'lg'\"\n    [class.modal-xl]=\"options.size === 'xl'\"\n    [class.modal-full]=\"options.size === 'full'\"\n  >\n    <div\n      class=\"modal-content\"\n      [cdkTrapFocus]=\"true\"\n      [cdkTrapFocusAutoCapture]=\"true\"\n    >\n      <ng-template cdkPortalOutlet></ng-template>\n    </div>\n  </div>\n</div>\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal, ComponentType } from '@angular/cdk/portal';\nimport { Injectable, Injector, Optional, SkipSelf } from '@angular/core';\nimport { ExtractInput, NcModalOptions, NcModalRef } from './modal-ref';\nimport { NcModalContainerComponent } from './modal-container/modal-container.component';\nimport { NcModalComponent } from './modal.component';\nimport { ResolveStart, Router } from '@angular/router';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nexport const DEFAULT_MODAL_OPTIONS: NcModalOptions = {\n  size: 'md',\n  role: 'dialog',\n  closeOnEscape: true,\n  closeOnOutsideClick: true,\n  closeOnNavigation: true,\n};\n\n@Injectable()\nexport class NcModalService {\n  /** @ignore */\n  private openModalsAtThisLevel: NcModalRef<any>[] = [];\n\n  get activeModals(): NcModalRef<any>[] {\n    return this.parentModalService\n      ? this.parentModalService.activeModals\n      : this.openModalsAtThisLevel;\n  }\n\n  constructor(\n    private overlay: Overlay,\n    private injector: Injector,\n    @Optional() private router: Router,\n    @Optional() private defaultOptions: NcModalOptions,\n    @Optional() @SkipSelf() private parentModalService: NcModalService\n  ) {}\n\n  open<C extends NcModalComponent<any, any>>(\n    component: ComponentType<C>,\n    data?: ExtractInput<C>,\n    options?: NcModalOptions\n  ) {\n    options = this.applyDefaultOptions(options, this.defaultOptions);\n\n    const overlayRef = this.createOverlay();\n    const container = this.attachContainer(overlayRef, options);\n    return this.attachContent<C>(\n      component,\n      data,\n      container,\n      overlayRef,\n      options\n    );\n  }\n\n  closeAll(): void {\n    while (this.activeModals.length > 0) {\n      this.activeModals.pop().close();\n    }\n  }\n\n  /** @ignore */\n  private attachContainer(\n    overlayRef: OverlayRef,\n    options: NcModalOptions\n  ): NcModalContainerComponent {\n    const containerPortal = new ComponentPortal(\n      NcModalContainerComponent,\n      null,\n      this.injector\n    );\n    const { instance } = overlayRef.attach(containerPortal);\n    instance.options = options;\n    return instance;\n  }\n\n  /** @ignore */\n  private attachContent<C extends NcModalComponent<any, any>>(\n    component: ComponentType<C>,\n    data: ExtractInput<C>,\n    container: NcModalContainerComponent,\n    overlayRef: OverlayRef,\n    options: NcModalOptions\n  ) {\n    const modalRef = new NcModalRef<C>(overlayRef, options);\n    const injector = this.createInjector(modalRef);\n    const componentPortal = new ComponentPortal(component, null, injector);\n    const componentInstance = container.attachComponentPortal(\n      componentPortal,\n      data\n    );\n    modalRef.componentInstance = componentInstance as C;\n    this.activeModals.push(modalRef);\n\n    modalRef.afterClosed({ closeOnUnsubscribe: false }).subscribe(() => {\n      const index = this.activeModals.indexOf(modalRef);\n      if (index > -1) {\n        this.activeModals.splice(index, 1);\n      }\n    });\n\n    if (options.closeOnNavigation && this.router) {\n      this.router.events\n        .pipe(\n          filter((event) => event instanceof ResolveStart),\n          takeUntil(modalRef.closed$)\n        )\n        .subscribe(() => modalRef.close());\n    }\n\n    return modalRef;\n  }\n\n  /** @ignore */\n  private createOverlay(): OverlayRef {\n    const positionStrategy = this.overlay.position().global();\n    const scrollStrategy = this.overlay.scrollStrategies.block();\n    return this.overlay.create({\n      positionStrategy,\n      scrollStrategy,\n      hasBackdrop: true,\n      disposeOnNavigation: false,\n    });\n  }\n\n  /** @ignore */\n  private createInjector<C extends NcModalComponent>(\n    modalRef: NcModalRef<C>\n  ): Injector {\n    return Injector.create({\n      parent: this.injector,\n      providers: [{ provide: NcModalRef, useValue: modalRef }],\n    });\n  }\n\n  /** @ignore */\n  private applyDefaultOptions(\n    options: NcModalOptions,\n    defaultOptions: NcModalOptions\n  ): NcModalOptions {\n    return {\n      ...DEFAULT_MODAL_OPTIONS,\n      ...(defaultOptions ?? {}),\n      ...(options ?? {}),\n    };\n  }\n}\n","import { Observable } from 'rxjs';\n\nexport abstract class NcModalComponent<I = void, O = void> {\n  data: I;\n  result: O;\n\n  /**\n   * \"Soft close\" hook which is called whenever the modal is being closed\n   * by \"Escape\" key or Backdrop click.\n   * Return true to permit closing. False - to refuse.\n   */\n  onSoftClose(): boolean | Observable<boolean> {\n    return true;\n  }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { NcModalRef } from './modal-ref';\n\n@Directive({\n  selector: '[ncModalClose]',\n})\nexport class NcModalCloseDirective {\n  @Input('ncModalClose') modalResult: any;\n\n  constructor(private modalRef: NcModalRef<any>) {}\n\n  @HostListener('click')\n  onClick(): void {\n    this.modalRef.close(this.modalResult);\n  }\n}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NcModalContainerComponent } from './modal-container/modal-container.component';\nimport { NcModalCloseDirective } from './modal.directives';\n\nimport { NcModalService } from './modal.service';\n\n@NgModule({\n  imports: [CommonModule, OverlayModule, PortalModule, A11yModule],\n  declarations: [NcModalContainerComponent, NcModalCloseDirective],\n  exports: [NcModalCloseDirective],\n  providers: [NcModalService],\n})\nexport class NcModalModule {}\n","/*\n * Public API Surface of nordic-cool\n */\n\nexport * from './lib/nc.module';\nexport * from './lib/datepicker/index';\nexport * from './lib/select/index';\nexport * from './lib/sidebar/index';\nexport * from './lib/spinner/index';\nexport * from './lib/navbar/index';\nexport * from './lib/dropdown/index';\nexport * from './lib/utils/index';\nexport * from './lib/tabset/index';\nexport * from './lib/tooltip/index';\nexport * from './lib/pills/index';\nexport * from './lib/checkbox/index';\nexport * from './lib/radio/index';\nexport * from './lib/modal/index';\nexport * from './lib/collapsible-list/index';\nexport * from './lib/alert/index';\nexport * from './lib/light-dark-switch/index';\nexport * from './lib/error-tooltip/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["animations.accordion","nextUniqueId"],"mappings":"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"}