@vismaux/ngx-nordic-cool
Version:
Common Nordic-Cool components for Angular.
1 lines • 220 kB
Source Map (JSON)
{"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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"}