1 line
1.6 MiB
1 line
1.6 MiB
{"ast":null,"code":"import * as i0 from '@angular/core';\nimport { Injectable, inject, ElementRef, NgZone, EventEmitter, Directive, Input, Output, ViewContainerRef, TemplateRef, ContentChild, ChangeDetectorRef, DestroyRef, ContentChildren, NgModule, Component, ChangeDetectionStrategy, ViewEncapsulation, PLATFORM_ID, LOCALE_ID, ViewChild, Injector, forwardRef, ApplicationRef, EnvironmentInjector, createComponent, Attribute, ViewChildren, HostBinding, InjectionToken } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, EMPTY, of, Subject, fromEvent, timer, race, BehaviorSubject, combineLatest, NEVER, zip, merge } from 'rxjs';\nimport { endWith, takeUntil, filter, map, distinctUntilChanged, startWith, switchMap, take, tap, withLatestFrom, delay, mergeMap, skip, finalize } from 'rxjs/operators';\nimport { isPlatformBrowser, NgTemplateOutlet, FormStyle, TranslationWidth, getLocaleMonthNames, getLocaleDayNames, formatDate, DOCUMENT, PercentPipe, getLocaleDayPeriods } from '@angular/common';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\nimport { flip, preventOverflow, arrow, createPopperLite, offset } from '@popperjs/core';\nconst _c0 = [\"*\"];\nfunction NgbAlert_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 1);\n i0.ɵɵlistener(\"click\", function NgbAlert_Conditional_1_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.close());\n });\n i0.ɵɵelementEnd();\n }\n}\nfunction NgbCarousel_For_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 7);\n i0.ɵɵlistener(\"click\", function NgbCarousel_For_2_Template_button_click_0_listener() {\n const slide_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n ctx_r2.focus();\n return i0.ɵɵresetView(ctx_r2.select(slide_r2.id, ctx_r2.NgbSlideEventSource.INDICATOR));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const slide_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"active\", slide_r2.id === ctx_r2.activeId);\n i0.ɵɵattribute(\"aria-labelledby\", \"slide-\" + slide_r2.id)(\"aria-controls\", \"slide-\" + slide_r2.id)(\"aria-selected\", slide_r2.id === ctx_r2.activeId);\n }\n}\nfunction NgbCarousel_For_5_ng_template_3_Template(rf, ctx) {}\nfunction NgbCarousel_For_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 8)(1, \"span\", 9);\n i0.ɵɵi18n(2, 0);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, NgbCarousel_For_5_ng_template_3_Template, 0, 0, \"ng-template\", 10);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const slide_r4 = ctx.$implicit;\n const i_r5 = ctx.$index;\n const c_r6 = ctx.$count;\n i0.ɵɵproperty(\"id\", \"slide-\" + slide_r4.id);\n i0.ɵɵadvance(2);\n i0.ɵɵi18nExp(i_r5 + 1)(c_r6);\n i0.ɵɵi18nApply(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", slide_r4.templateRef);\n }\n}\nfunction NgbCarousel_Conditional_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 11);\n i0.ɵɵlistener(\"click\", function NgbCarousel_Conditional_6_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.arrowLeft());\n });\n i0.ɵɵelement(1, \"span\", 12);\n i0.ɵɵelementStart(2, \"span\", 13);\n i0.ɵɵi18n(3, 1);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"button\", 14);\n i0.ɵɵlistener(\"click\", function NgbCarousel_Conditional_6_Template_button_click_4_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.arrowRight());\n });\n i0.ɵɵelement(5, \"span\", 15);\n i0.ɵɵelementStart(6, \"span\", 13);\n i0.ɵɵi18n(7, 2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"aria-labelledby\", ctx_r2.id + \"-previous\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"id\", ctx_r2.id + \"-previous\");\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"aria-labelledby\", ctx_r2.id + \"-next\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"id\", ctx_r2.id + \"-next\");\n }\n}\nconst _c1 = [\"ngbDatepickerDayView\", \"\"];\nconst _c2 = [\"month\"];\nconst _c3 = [\"year\"];\nfunction NgbDatepickerNavigationSelect_For_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const m_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"value\", m_r2);\n i0.ɵɵattribute(\"aria-label\", ctx_r2.i18n.getMonthFullName(m_r2, ctx_r2.date.year));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r2.i18n.getMonthShortName(m_r2, ctx_r2.date.year));\n }\n}\nfunction NgbDatepickerNavigationSelect_For_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const y_r4 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"value\", y_r4);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r2.i18n.getYearNumerals(y_r4));\n }\n}\nfunction NgbDatepickerNavigation_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ngb-datepicker-navigation-select\", 6);\n i0.ɵɵlistener(\"select\", function NgbDatepickerNavigation_Conditional_3_Template_ngb_datepicker_navigation_select_select_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.select.emit($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"date\", ctx_r1.date)(\"disabled\", ctx_r1.disabled)(\"months\", ctx_r1.selectBoxes.months)(\"years\", ctx_r1.selectBoxes.years);\n }\n}\nfunction NgbDatepickerNavigation_Conditional_4_For_1_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 7);\n }\n}\nfunction NgbDatepickerNavigation_Conditional_4_For_1_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 7);\n }\n}\nfunction NgbDatepickerNavigation_Conditional_4_For_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbDatepickerNavigation_Conditional_4_For_1_Conditional_0_Template, 1, 0, \"div\", 7);\n i0.ɵɵelementStart(1, \"div\", 8);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, NgbDatepickerNavigation_Conditional_4_For_1_Conditional_3_Template, 1, 0, \"div\", 7);\n }\n if (rf & 2) {\n const month_r3 = ctx.$implicit;\n const i_r4 = ctx.$index;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵconditional(0, i_r4 > 0 ? 0 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.i18n.getMonthLabel(month_r3.firstDate), \" \");\n i0.ɵɵadvance();\n i0.ɵɵconditional(3, i_r4 !== ctx_r1.months.length - 1 ? 3 : -1);\n }\n}\nfunction NgbDatepickerNavigation_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, NgbDatepickerNavigation_Conditional_4_For_1_Template, 4, 3, null, null, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵrepeater(ctx_r1.months);\n }\n}\nfunction NgbDatepickerMonth_Conditional_0_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0.i18n.getWeekLabel());\n }\n}\nfunction NgbDatepickerMonth_Conditional_0_For_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const weekday_r2 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(weekday_r2);\n }\n}\nfunction NgbDatepickerMonth_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, NgbDatepickerMonth_Conditional_0_Conditional_1_Template, 2, 1, \"div\", 1);\n i0.ɵɵrepeaterCreate(2, NgbDatepickerMonth_Conditional_0_For_3_Template, 2, 1, \"div\", 2, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx_r0.datepicker.showWeekNumbers ? 1 : -1);\n i0.ɵɵadvance();\n i0.ɵɵrepeater(ctx_r0.viewModel.weekdays);\n }\n}\nfunction NgbDatepickerMonth_For_2_Conditional_0_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const week_r3 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0.i18n.getWeekNumerals(week_r3.number));\n }\n}\nfunction NgbDatepickerMonth_For_2_Conditional_0_For_3_Conditional_1_ng_template_0_Template(rf, ctx) {}\nfunction NgbDatepickerMonth_For_2_Conditional_0_For_3_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbDatepickerMonth_For_2_Conditional_0_For_3_Conditional_1_ng_template_0_Template, 0, 0, \"ng-template\", 7);\n }\n if (rf & 2) {\n const day_r5 = i0.ɵɵnextContext().$implicit;\n const ctx_r0 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.datepicker.dayTemplate)(\"ngTemplateOutletContext\", day_r5.context);\n }\n}\nfunction NgbDatepickerMonth_For_2_Conditional_0_For_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 6);\n i0.ɵɵlistener(\"click\", function NgbDatepickerMonth_For_2_Conditional_0_For_3_Template_div_click_0_listener($event) {\n const day_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r0 = i0.ɵɵnextContext(3);\n ctx_r0.doSelect(day_r5);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵtemplate(1, NgbDatepickerMonth_For_2_Conditional_0_For_3_Conditional_1_Template, 1, 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const day_r5 = ctx.$implicit;\n i0.ɵɵclassProp(\"disabled\", day_r5.context.disabled)(\"hidden\", day_r5.hidden)(\"ngb-dp-today\", day_r5.context.today);\n i0.ɵɵproperty(\"tabindex\", day_r5.tabindex);\n i0.ɵɵattribute(\"aria-label\", day_r5.ariaLabel);\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, !day_r5.hidden ? 1 : -1);\n }\n}\nfunction NgbDatepickerMonth_For_2_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 3);\n i0.ɵɵtemplate(1, NgbDatepickerMonth_For_2_Conditional_0_Conditional_1_Template, 2, 1, \"div\", 4);\n i0.ɵɵrepeaterCreate(2, NgbDatepickerMonth_For_2_Conditional_0_For_3_Template, 2, 9, \"div\", 5, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const week_r3 = i0.ɵɵnextContext().$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx_r0.datepicker.showWeekNumbers ? 1 : -1);\n i0.ɵɵadvance();\n i0.ɵɵrepeater(week_r3.days);\n }\n}\nfunction NgbDatepickerMonth_For_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbDatepickerMonth_For_2_Conditional_0_Template, 4, 1, \"div\", 3);\n }\n if (rf & 2) {\n const week_r3 = ctx.$implicit;\n i0.ɵɵconditional(0, !week_r3.collapsed ? 0 : -1);\n }\n}\nconst _c4 = [\"defaultDayTemplate\"];\nconst _c5 = [\"content\"];\nconst _c6 = a0 => ({\n $implicit: a0\n});\nfunction NgbDatepicker_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 7);\n }\n if (rf & 2) {\n const date_r1 = ctx.date;\n const currentMonth_r2 = ctx.currentMonth;\n const selected_r3 = ctx.selected;\n const disabled_r4 = ctx.disabled;\n const focused_r5 = ctx.focused;\n i0.ɵɵproperty(\"date\", date_r1)(\"currentMonth\", currentMonth_r2)(\"selected\", selected_r3)(\"disabled\", disabled_r4)(\"focused\", focused_r5);\n }\n}\nfunction NgbDatepicker_ng_template_2_For_1_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 9);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const month_r6 = i0.ɵɵnextContext().$implicit;\n const ctx_r6 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r6.i18n.getMonthLabel(month_r6.firstDate), \" \");\n }\n}\nfunction NgbDatepicker_ng_template_2_For_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 8);\n i0.ɵɵtemplate(1, NgbDatepicker_ng_template_2_For_1_Conditional_1_Template, 2, 1, \"div\", 9);\n i0.ɵɵelement(2, \"ngb-datepicker-month\", 10);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const month_r6 = ctx.$implicit;\n const ctx_r6 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx_r6.navigation === \"none\" || ctx_r6.displayMonths > 1 && ctx_r6.navigation === \"select\" ? 1 : -1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"month\", month_r6.firstDate);\n }\n}\nfunction NgbDatepicker_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, NgbDatepicker_ng_template_2_For_1_Template, 3, 2, \"div\", 8, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n const ctx_r6 = i0.ɵɵnextContext();\n i0.ɵɵrepeater(ctx_r6.model.months);\n }\n}\nfunction NgbDatepicker_Conditional_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ngb-datepicker-navigation\", 11);\n i0.ɵɵlistener(\"navigate\", function NgbDatepicker_Conditional_5_Template_ngb_datepicker_navigation_navigate_0_listener($event) {\n i0.ɵɵrestoreView(_r8);\n const ctx_r6 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r6.onNavigateEvent($event));\n })(\"select\", function NgbDatepicker_Conditional_5_Template_ngb_datepicker_navigation_select_0_listener($event) {\n i0.ɵɵrestoreView(_r8);\n const ctx_r6 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r6.onNavigateDateSelect($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r6 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"date\", ctx_r6.model.firstDate)(\"months\", ctx_r6.model.months)(\"disabled\", ctx_r6.model.disabled)(\"showSelect\", ctx_r6.model.navigation === \"select\")(\"prevDisabled\", ctx_r6.model.prevDisabled)(\"nextDisabled\", ctx_r6.model.nextDisabled)(\"selectBoxes\", ctx_r6.model.selectBoxes);\n }\n}\nfunction NgbDatepicker_ng_template_8_Template(rf, ctx) {}\nfunction NgbDatepicker_ng_template_9_Template(rf, ctx) {}\nconst _c7 = [\"dialog\"];\nconst _c8 = [\"ngbNavOutlet\", \"\"];\nfunction NgbNavOutlet_For_1_Conditional_0_ng_template_1_Template(rf, ctx) {}\nfunction NgbNavOutlet_For_1_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵtemplate(1, NgbNavOutlet_For_1_Conditional_0_ng_template_1_Template, 0, 0, \"ng-template\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r1 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"item\", item_r1)(\"nav\", ctx_r1.nav)(\"role\", ctx_r1.paneRole);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (item_r1.contentTpl == null ? null : item_r1.contentTpl.templateRef) || null)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(5, _c6, item_r1.active || ctx_r1.isPanelTransitioning(item_r1)));\n }\n}\nfunction NgbNavOutlet_For_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbNavOutlet_For_1_Conditional_0_Template, 2, 7, \"div\", 0);\n }\n if (rf & 2) {\n const item_r1 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵconditional(0, item_r1.isPanelInDom() || ctx_r1.isPanelTransitioning(item_r1) ? 0 : -1);\n }\n}\nconst _c9 = (a0, a1, a2) => ({\n $implicit: a0,\n pages: a1,\n disabled: a2\n});\nconst _c10 = a0 => ({\n disabled: true,\n currentPage: a0\n});\nconst _c11 = (a0, a1, a2) => ({\n disabled: a0,\n $implicit: a1,\n currentPage: a2\n});\nconst _c12 = (a0, a1) => ({\n disabled: a0,\n currentPage: a1\n});\nconst _c13 = a0 => ({\n disabled: a0\n});\nfunction NgbPagination_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 13);\n i0.ɵɵi18n(1, 7);\n i0.ɵɵelementEnd();\n }\n}\nfunction NgbPagination_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 13);\n i0.ɵɵi18n(1, 8);\n i0.ɵɵelementEnd();\n }\n}\nfunction NgbPagination_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 13);\n i0.ɵɵi18n(1, 9);\n i0.ɵɵelementEnd();\n }\n}\nfunction NgbPagination_ng_template_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 13);\n i0.ɵɵi18n(1, 10);\n i0.ɵɵelementEnd();\n }\n}\nfunction NgbPagination_ng_template_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0, \"...\");\n }\n}\nfunction NgbPagination_ng_template_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const page_r1 = ctx.$implicit;\n i0.ɵɵtextInterpolate(page_r1);\n }\n}\nfunction NgbPagination_ng_template_12_For_1_Conditional_1_ng_template_1_Template(rf, ctx) {}\nfunction NgbPagination_ng_template_12_For_1_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"a\", 14);\n i0.ɵɵtemplate(1, NgbPagination_ng_template_12_For_1_Conditional_1_ng_template_1_Template, 0, 0, \"ng-template\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const page_r2 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n const ellipsis_r4 = i0.ɵɵreference(9);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r2.tplEllipsis == null ? null : ctx_r2.tplEllipsis.templateRef) || ellipsis_r4)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c10, page_r2));\n }\n}\nfunction NgbPagination_ng_template_12_For_1_Conditional_2_ng_template_1_Template(rf, ctx) {}\nfunction NgbPagination_ng_template_12_For_1_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"a\", 15);\n i0.ɵɵlistener(\"click\", function NgbPagination_ng_template_12_For_1_Conditional_2_Template_a_click_0_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const pageNumber_r6 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n ctx_r2.selectPage(pageNumber_r6);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵtemplate(1, NgbPagination_ng_template_12_For_1_Conditional_2_ng_template_1_Template, 0, 0, \"ng-template\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const pageNumber_r6 = i0.ɵɵnextContext().$implicit;\n const ctx_r6 = i0.ɵɵnextContext();\n const page_r2 = ctx_r6.$implicit;\n const disabled_r8 = ctx_r6.disabled;\n const ctx_r2 = i0.ɵɵnextContext();\n const defaultNumber_r9 = i0.ɵɵreference(11);\n i0.ɵɵattribute(\"tabindex\", disabled_r8 ? \"-1\" : null)(\"aria-disabled\", disabled_r8 ? \"true\" : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r2.tplNumber == null ? null : ctx_r2.tplNumber.templateRef) || defaultNumber_r9)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction3(4, _c11, disabled_r8, pageNumber_r6, page_r2));\n }\n}\nfunction NgbPagination_ng_template_12_For_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 11);\n i0.ɵɵtemplate(1, NgbPagination_ng_template_12_For_1_Conditional_1_Template, 2, 4, \"a\", 14)(2, NgbPagination_ng_template_12_For_1_Conditional_2_Template, 2, 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const pageNumber_r6 = ctx.$implicit;\n const ctx_r6 = i0.ɵɵnextContext();\n const page_r2 = ctx_r6.$implicit;\n const disabled_r8 = ctx_r6.disabled;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"active\", pageNumber_r6 === page_r2)(\"disabled\", ctx_r2.isEllipsis(pageNumber_r6) || disabled_r8);\n i0.ɵɵattribute(\"aria-current\", pageNumber_r6 === page_r2 ? \"page\" : null);\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx_r2.isEllipsis(pageNumber_r6) ? 1 : 2);\n }\n}\nfunction NgbPagination_ng_template_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, NgbPagination_ng_template_12_For_1_Template, 3, 6, \"li\", 11, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n const pages_r10 = ctx.pages;\n i0.ɵɵrepeater(pages_r10);\n }\n}\nfunction NgbPagination_Conditional_15_ng_template_2_Template(rf, ctx) {}\nfunction NgbPagination_Conditional_15_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 11)(1, \"a\", 16);\n i0.ɵɵlistener(\"click\", function NgbPagination_Conditional_15_Template_a_click_1_listener($event) {\n i0.ɵɵrestoreView(_r11);\n const ctx_r2 = i0.ɵɵnextContext();\n ctx_r2.selectPage(1);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵtemplate(2, NgbPagination_Conditional_15_ng_template_2_Template, 0, 0, \"ng-template\", 12);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n const first_r12 = i0.ɵɵreference(1);\n i0.ɵɵclassProp(\"disabled\", ctx_r2.previousDisabled());\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"tabindex\", ctx_r2.previousDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r2.previousDisabled() ? \"true\" : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r2.tplFirst == null ? null : ctx_r2.tplFirst.templateRef) || first_r12)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(6, _c12, ctx_r2.previousDisabled(), ctx_r2.page));\n }\n}\nfunction NgbPagination_Conditional_16_ng_template_2_Template(rf, ctx) {}\nfunction NgbPagination_Conditional_16_Template(rf, ctx) {\n if (rf & 1) {\n const _r13 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 11)(1, \"a\", 17);\n i0.ɵɵlistener(\"click\", function NgbPagination_Conditional_16_Template_a_click_1_listener($event) {\n i0.ɵɵrestoreView(_r13);\n const ctx_r2 = i0.ɵɵnextContext();\n ctx_r2.selectPage(ctx_r2.page - 1);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵtemplate(2, NgbPagination_Conditional_16_ng_template_2_Template, 0, 0, \"ng-template\", 12);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n const previous_r14 = i0.ɵɵreference(3);\n i0.ɵɵclassProp(\"disabled\", ctx_r2.previousDisabled());\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"tabindex\", ctx_r2.previousDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r2.previousDisabled() ? \"true\" : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r2.tplPrevious == null ? null : ctx_r2.tplPrevious.templateRef) || previous_r14)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(6, _c13, ctx_r2.previousDisabled()));\n }\n}\nfunction NgbPagination_ng_template_17_Template(rf, ctx) {}\nfunction NgbPagination_Conditional_18_ng_template_2_Template(rf, ctx) {}\nfunction NgbPagination_Conditional_18_Template(rf, ctx) {\n if (rf & 1) {\n const _r15 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 11)(1, \"a\", 18);\n i0.ɵɵlistener(\"click\", function NgbPagination_Conditional_18_Template_a_click_1_listener($event) {\n i0.ɵɵrestoreView(_r15);\n const ctx_r2 = i0.ɵɵnextContext();\n ctx_r2.selectPage(ctx_r2.page + 1);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵtemplate(2, NgbPagination_Conditional_18_ng_template_2_Template, 0, 0, \"ng-template\", 12);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n const next_r16 = i0.ɵɵreference(5);\n i0.ɵɵclassProp(\"disabled\", ctx_r2.nextDisabled());\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"tabindex\", ctx_r2.nextDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r2.nextDisabled() ? \"true\" : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r2.tplNext == null ? null : ctx_r2.tplNext.templateRef) || next_r16)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(6, _c12, ctx_r2.nextDisabled(), ctx_r2.page));\n }\n}\nfunction NgbPagination_Conditional_19_ng_template_2_Template(rf, ctx) {}\nfunction NgbPagination_Conditional_19_Template(rf, ctx) {\n if (rf & 1) {\n const _r17 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 11)(1, \"a\", 19);\n i0.ɵɵlistener(\"click\", function NgbPagination_Conditional_19_Template_a_click_1_listener($event) {\n i0.ɵɵrestoreView(_r17);\n const ctx_r2 = i0.ɵɵnextContext();\n ctx_r2.selectPage(ctx_r2.pageCount);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵtemplate(2, NgbPagination_Conditional_19_ng_template_2_Template, 0, 0, \"ng-template\", 12);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n const last_r18 = i0.ɵɵreference(7);\n i0.ɵɵclassProp(\"disabled\", ctx_r2.nextDisabled());\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"tabindex\", ctx_r2.nextDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r2.nextDisabled() ? \"true\" : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r2.tplLast == null ? null : ctx_r2.tplLast.templateRef) || last_r18)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(6, _c12, ctx_r2.nextDisabled(), ctx_r2.page));\n }\n}\nfunction NgbPopoverWindow_Conditional_1_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵtextInterpolate(ctx_r0.title);\n }\n}\nfunction NgbPopoverWindow_Conditional_1_ng_template_3_Template(rf, ctx) {}\nfunction NgbPopoverWindow_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"h3\", 2);\n i0.ɵɵtemplate(1, NgbPopoverWindow_Conditional_1_ng_template_1_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor)(3, NgbPopoverWindow_Conditional_1_ng_template_3_Template, 0, 0, \"ng-template\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const simpleTitle_r2 = i0.ɵɵreference(2);\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.isTitleTemplate() ? ctx_r0.title : simpleTitle_r2)(\"ngTemplateOutletContext\", ctx_r0.context);\n }\n}\nfunction NgbProgressbar_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵi18n(1, 0);\n i0.ɵɵpipe(2, \"percent\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵi18nExp(i0.ɵɵpipeBind1(2, 1, ctx_r0.getValue() / ctx_r0.max));\n i0.ɵɵi18nApply(1);\n }\n}\nfunction NgbRating_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const fill_r1 = ctx.fill;\n i0.ɵɵtextInterpolate(fill_r1 === 100 ? \"\\u2605\" : \"\\u2606\");\n }\n}\nfunction NgbRating_For_3_ng_template_3_Template(rf, ctx) {}\nfunction NgbRating_For_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 1);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"span\", 2);\n i0.ɵɵlistener(\"mouseenter\", function NgbRating_For_3_Template_span_mouseenter_2_listener() {\n const index_r3 = i0.ɵɵrestoreView(_r2).$index;\n const ctx_r3 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r3.enter(index_r3 + 1));\n })(\"click\", function NgbRating_For_3_Template_span_click_2_listener() {\n const index_r3 = i0.ɵɵrestoreView(_r2).$index;\n const ctx_r3 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r3.handleClick(index_r3 + 1));\n });\n i0.ɵɵtemplate(3, NgbRating_For_3_ng_template_3_Template, 0, 0, \"ng-template\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const index_r3 = ctx.$index;\n const ctx_r3 = i0.ɵɵnextContext();\n const t_r5 = i0.ɵɵreference(1);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"(\", index_r3 < ctx_r3.nextRate ? \"*\" : \" \", \")\");\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"cursor\", ctx_r3.isInteractive() ? \"pointer\" : \"default\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.starTemplate || ctx_r3.starTemplateFromContent || t_r5)(\"ngTemplateOutletContext\", ctx_r3.contexts[index_r3]);\n }\n}\nfunction NgbTimepicker_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 15);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_3_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changeHour(ctx_r1.hourStep));\n });\n i0.ɵɵelement(1, \"span\", 16);\n i0.ɵɵelementStart(2, \"span\", 17);\n i0.ɵɵi18n(3, 0);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"btn-sm\", ctx_r1.isSmallSize)(\"btn-lg\", ctx_r1.isLargeSize)(\"disabled\", ctx_r1.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r1.disabled);\n }\n}\nfunction NgbTimepicker_Conditional_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 15);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_5_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changeHour(-ctx_r1.hourStep));\n });\n i0.ɵɵelement(1, \"span\", 18);\n i0.ɵɵelementStart(2, \"span\", 17);\n i0.ɵɵi18n(3, 1);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"btn-sm\", ctx_r1.isSmallSize)(\"btn-lg\", ctx_r1.isLargeSize)(\"disabled\", ctx_r1.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r1.disabled);\n }\n}\nfunction NgbTimepicker_Conditional_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 15);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_9_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changeMinute(ctx_r1.minuteStep));\n });\n i0.ɵɵelement(1, \"span\", 16);\n i0.ɵɵelementStart(2, \"span\", 17);\n i0.ɵɵi18n(3, 2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"btn-sm\", ctx_r1.isSmallSize)(\"btn-lg\", ctx_r1.isLargeSize)(\"disabled\", ctx_r1.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r1.disabled);\n }\n}\nfunction NgbTimepicker_Conditional_11_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 15);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_11_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.changeMinute(-ctx_r1.minuteStep));\n });\n i0.ɵɵelement(1, \"span\", 18);\n i0.ɵɵelementStart(2, \"span\", 17);\n i0.ɵɵi18n(3, 3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"btn-sm\", ctx_r1.isSmallSize)(\"btn-lg\", ctx_r1.isLargeSize)(\"disabled\", ctx_r1.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r1.disabled);\n }\n}\nfunction NgbTimepicker_Conditional_12_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 15);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_12_Conditional_3_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.changeSecond(ctx_r1.secondStep));\n });\n i0.ɵɵelement(1, \"span\", 16);\n i0.ɵɵelementStart(2, \"span\", 17);\n i0.ɵɵi18n(3, 4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"btn-sm\", ctx_r1.isSmallSize)(\"btn-lg\", ctx_r1.isLargeSize)(\"disabled\", ctx_r1.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r1.disabled);\n }\n}\nfunction NgbTimepicker_Conditional_12_Conditional_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 15);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_12_Conditional_5_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r8);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.changeSecond(-ctx_r1.secondStep));\n });\n i0.ɵɵelement(1, \"span\", 18);\n i0.ɵɵelementStart(2, \"span\", 17);\n i0.ɵɵi18n(3, 5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"btn-sm\", ctx_r1.isSmallSize)(\"btn-lg\", ctx_r1.isLargeSize)(\"disabled\", ctx_r1.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r1.disabled);\n }\n}\nfunction NgbTimepicker_Conditional_12_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 12);\n i0.ɵɵtext(1, \":\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"div\", 19);\n i0.ɵɵtemplate(3, NgbTimepicker_Conditional_12_Conditional_3_Template, 4, 7, \"button\", 10);\n i0.ɵɵelementStart(4, \"input\", 20);\n i0.ɵɵlistener(\"change\", function NgbTimepicker_Conditional_12_Template_input_change_4_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.updateSecond($event.target.value));\n })(\"blur\", function NgbTimepicker_Conditional_12_Template_input_blur_4_listener() {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.handleBlur());\n })(\"input\", function NgbTimepicker_Conditional_12_Template_input_input_4_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.formatInput($event.target));\n })(\"keydown.ArrowUp\", function NgbTimepicker_Conditional_12_Template_input_keydown_ArrowUp_4_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext();\n ctx_r1.changeSecond(ctx_r1.secondStep);\n return i0.ɵɵresetView($event.preventDefault());\n })(\"keydown.ArrowDown\", function NgbTimepicker_Conditional_12_Template_input_keydown_ArrowDown_4_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext();\n ctx_r1.changeSecond(-ctx_r1.secondStep);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, NgbTimepicker_Conditional_12_Conditional_5_Template, 4, 7, \"button\", 10);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(3);\n i0.ɵɵconditional(3, ctx_r1.spinners ? 3 : -1);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"form-control-sm\", ctx_r1.isSmallSize)(\"form-control-lg\", ctx_r1.isLargeSize);\n i0.ɵɵproperty(\"value\", ctx_r1.formatMinSec(ctx_r1.model == null ? null : ctx_r1.model.second))(\"readOnly\", ctx_r1.readonlyInputs)(\"disabled\", ctx_r1.disabled);\n i0.ɵɵadvance();\n i0.ɵɵconditional(5, ctx_r1.spinners ? 5 : -1);\n }\n}\nfunction NgbTimepicker_Conditional_13_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵi18n(1, 6);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵi18nExp(ctx_r1.i18n.getAfternoonPeriod());\n i0.ɵɵi18nApply(1);\n }\n}\nfunction NgbTimepicker_Conditional_13_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.i18n.getMorningPeriod());\n }\n}\nfunction NgbTimepicker_Conditional_13_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelement(0, \"div\", 12);\n i0.ɵɵelementStart(1, \"div\", 21)(2, \"button\", 22);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_13_Template_button_click_2_listener() {\n i0.ɵɵrestoreView(_r9);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.toggleMeridian());\n });\n i0.ɵɵtemplate(3, NgbTimepicker_Conditional_13_Conditional_3_Template, 2, 1, \"ng-container\")(4, NgbTimepicker_Conditional_13_Conditional_4_Template, 2, 1);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"btn-sm\", ctx_r1.isSmallSize)(\"btn-lg\", ctx_r1.isLargeSize)(\"disabled\", ctx_r1.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r1.disabled);\n i0.ɵɵadvance();\n i0.ɵɵconditional(3, ctx_r1.model && ctx_r1.model.hour >= 12 ? 3 : 4);\n }\n}\nfunction NgbToast_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"strong\", 3);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0.header);\n }\n}\nfunction NgbToast_Conditional_2_ng_template_1_Template(rf, ctx) {}\nfunction NgbToast_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵtemplate(1, NgbToast_Conditional_2_ng_template_1_Template, 0, 0, \"ng-template\", 4);\n i0.ɵɵelementStart(2, \"button\", 5);\n i0.ɵɵlistener(\"click\", function NgbToast_Conditional_2_Template_button_click_2_listener() {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r0.hide());\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n const headerTpl_r3 = i0.ɵɵreference(1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.contentHeaderTpl || headerTpl_r3);\n }\n}\nfunction NgbHighlight_For_1_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const part_r1 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r1.highlightClass);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(part_r1);\n }\n}\nfunction NgbHighlight_For_1_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const part_r1 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(part_r1);\n }\n}\nfunction NgbHighlight_For_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbHighlight_For_1_Conditional_0_Template, 2, 4, \"span\")(1, NgbHighlight_For_1_Conditional_1_Template, 2, 1);\n }\n if (rf & 2) {\n const ɵ$index_1_r3 = ctx.$index;\n i0.ɵɵconditional(0, ɵ$index_1_r3 % 2 !== 0 ? 0 : 1);\n }\n}\nconst _c14 = (a0, a1, a2) => ({\n result: a0,\n term: a1,\n formatter: a2\n});\nfunction NgbTypeaheadWindow_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"ngb-highlight\", 2);\n }\n if (rf & 2) {\n const result_r1 = ctx.result;\n const term_r2 = ctx.term;\n const formatter_r3 = ctx.formatter;\n i0.ɵɵproperty(\"result\", formatter_r3(result_r1))(\"term\", term_r2);\n }\n}\nfunction NgbTypeaheadWindow_For_3_ng_template_1_Template(rf, ctx) {}\nfunction NgbTypeaheadWindow_For_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 3);\n i0.ɵɵlistener(\"mouseenter\", function NgbTypeaheadWindow_For_3_Template_button_mouseenter_0_listener() {\n const idx_r5 = i0.ɵɵrestoreView(_r4).$index;\n const ctx_r5 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r5.markActive(idx_r5));\n })(\"click\", function NgbTypeaheadWindow_For_3_Template_button_click_0_listener() {\n const result_r7 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r5 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r5.select(result_r7));\n });\n i0.ɵɵtemplate(1, NgbTypeaheadWindow_For_3_ng_template_1_Template, 0, 0, \"ng-template\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const result_r7 = ctx.$implicit;\n const idx_r5 = ctx.$index;\n const ctx_r5 = i0.ɵɵnextContext();\n const rt_r8 = i0.ɵɵreference(1);\n i0.ɵɵclassProp(\"active\", idx_r5 === ctx_r5.activeIdx);\n i0.ɵɵproperty(\"id\", ctx_r5.id + \"-\" + idx_r5);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r5.resultTemplate || rt_r8)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction3(5, _c14, result_r7, ctx_r5.term, ctx_r5.formatter));\n }\n}\nconst environment = {\n animation: true,\n transitionTimerDelayMs: 5\n};\n\n/**\n * Global ng-bootstrap config\n *\n * @since 8.0.0\n */\nclass NgbConfig {\n constructor() {\n this.animation = environment.animation;\n }\n static #_ = this.ɵfac = function NgbConfig_Factory(t) {\n return new (t || NgbConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbConfig,\n factory: NgbConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbAccordionDirective`](#/components/accordion/api#NgbAccordionDirective).\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all accordions used in the application.\n */\nclass NgbAccordionConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.closeOthers = false;\n this.destroyOnHide = true;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static #_ = this.ɵfac = function NgbAccordionConfig_Factory(t) {\n return new (t || NgbAccordionConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbAccordionConfig,\n factory: NgbAccordionConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nfunction getTransitionDurationMs(element) {\n const {\n transitionDelay,\n transitionDuration\n } = window.getComputedStyle(element);\n const transitionDelaySec = parseFloat(transitionDelay);\n const transitionDurationSec = parseFloat(transitionDuration);\n return (transitionDelaySec + transitionDurationSec) * 1000;\n}\nfunction toInteger(value) {\n return parseInt(`${value}`, 10);\n}\nfunction toString(value) {\n return value !== undefined && value !== null ? `${value}` : '';\n}\nfunction getValueInRange(value, max, min = 0) {\n return Math.max(Math.min(value, max), min);\n}\nfunction isString(value) {\n return typeof value === 'string';\n}\nfunction isNumber(value) {\n return !isNaN(toInteger(value));\n}\nfunction isInteger(value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isPromise(v) {\n return v && v.then;\n}\nfunction padNumber(value) {\n if (isNumber(value)) {\n return `0${value}`.slice(-2);\n } else {\n return '';\n }\n}\nfunction regExpEscape(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\nfunction closest(element, selector) {\n if (!selector) {\n return null;\n }\n /*\n * In certain browsers (e.g. Edge 44.18362.449.0) HTMLDocument does\n * not support `Element.prototype.closest`. To emulate the correct behaviour\n * we return null when the method is missing.\n *\n * Note that in evergreen browsers `closest(document.documentElement, 'html')`\n * will return the document element whilst in Edge null will be returned. This\n * compromise was deemed good enough.\n */\n if (typeof element.closest === 'undefined') {\n return null;\n }\n return element.closest(selector);\n}\n/**\n * Force a browser reflow\n * @param element element where to apply the reflow\n */\nfunction reflow(element) {\n return (element || document.body).getBoundingClientRect();\n}\n/**\n * Creates an observable where all callbacks are executed inside a given zone\n *\n * @param zone\n */\nfunction runInZone(zone) {\n return source => {\n return new Observable(observer => {\n const next = value => zone.run(() => observer.next(value));\n const error = e => zone.run(() => observer.error(e));\n const complete = () => zone.run(() => observer.complete());\n return source.subscribe({\n next,\n error,\n complete\n });\n });\n };\n}\nfunction removeAccents(str) {\n return str.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n}\n/**\n * Returns the active element in the given root.\n * If the active element is inside a shadow root, it is searched recursively.\n */\nfunction getActiveElement(root = document) {\n const activeEl = root?.activeElement;\n if (!activeEl) {\n return null;\n }\n return activeEl.shadowRoot ? getActiveElement(activeEl.shadowRoot) : activeEl;\n}\nconst noopFn = () => {};\nconst {\n transitionTimerDelayMs\n} = environment;\nconst runningTransitions = new Map();\nconst ngbRunTransition = (zone, element, startFn, options) => {\n // Getting initial context from options\n let context = options.context || {};\n // Checking if there are already running transitions on the given element.\n const running = runningTransitions.get(element);\n if (running) {\n switch (options.runningTransition) {\n // If there is one running and we want for it to 'continue' to run, we have to cancel the new one.\n // We're not emitting any values, but simply completing the observable (EMPTY).\n case 'continue':\n return EMPTY;\n // If there is one running and we want for it to 'stop', we have to complete the running one.\n // We're simply completing the running one and not emitting any values and merging newly provided context\n // with the one coming from currently running transition.\n case 'stop':\n zone.run(() => running.transition$.complete());\n context = Object.assign(running.context, context);\n runningTransitions.delete(element);\n }\n }\n // Running the start function\n const endFn = startFn(element, options.animation, context) || noopFn;\n // If 'prefer-reduced-motion' is enabled, the 'transition' will be set to 'none'.\n // If animations are disabled, we have to emit a value and complete the observable\n // In this case we have to call the end function, but can finish immediately by emitting a value,\n // completing the observable and executing end functions synchronously.\n if (!options.animation || window.getComputedStyle(element).transitionProperty === 'none') {\n zone.run(() => endFn());\n return of(undefined).pipe(runInZone(zone));\n }\n // Starting a new transition\n const transition$ = new Subject();\n const finishTransition$ = new Subject();\n const stop$ = transition$.pipe(endWith(true));\n runningTransitions.set(element, {\n transition$,\n complete: () => {\n finishTransition$.next();\n finishTransition$.complete();\n },\n context\n });\n const transitionDurationMs = getTransitionDurationMs(element);\n // 1. We have to both listen for the 'transitionend' event and have a 'just-in-case' timer,\n // because 'transitionend' event might not be fired in some browsers, if the transitioning\n // element becomes invisible (ex. when scrolling, making browser tab inactive, etc.). The timer\n // guarantees, that we'll release the DOM element and complete 'ngbRunTransition'.\n // 2. We need to filter transition end events, because they might bubble from shorter transitions\n // on inner DOM elements. We're only interested in the transition on the 'element' itself.\n zone.runOutsideAngular(() => {\n const transitionEnd$ = fromEvent(element, 'transitionend').pipe(takeUntil(stop$), filter(({\n target\n }) => target === element));\n const timer$ = timer(transitionDurationMs + transitionTimerDelayMs).pipe(takeUntil(stop$));\n race(timer$, transitionEnd$, finishTransition$).pipe(takeUntil(stop$)).subscribe(() => {\n runningTransitions.delete(element);\n zone.run(() => {\n endFn();\n transition$.next();\n transition$.complete();\n });\n });\n });\n return transition$.asObservable();\n};\nconst ngbCompleteTransition = element => {\n runningTransitions.get(element)?.complete();\n};\nfunction measureCollapsingElementDimensionPx(element, dimension) {\n // SSR fix for without injecting the PlatformId\n if (typeof navigator === 'undefined') {\n return '0px';\n }\n const {\n classList\n } = element;\n const hasShownClass = classList.contains('show');\n if (!hasShownClass) {\n classList.add('show');\n }\n element.style[dimension] = '';\n const dimensionSize = element.getBoundingClientRect()[dimension] + 'px';\n if (!hasShownClass) {\n classList.remove('show');\n }\n return dimensionSize;\n}\nconst ngbCollapsingTransition = (element, animation, context) => {\n let {\n direction,\n maxSize,\n dimension\n } = context;\n const {\n classList\n } = element;\n function setInitialClasses() {\n classList.add('collapse');\n if (direction === 'show') {\n classList.add('show');\n } else {\n classList.remove('show');\n }\n }\n // without animations we just need to set initial classes\n if (!animation) {\n setInitialClasses();\n return;\n }\n // No maxHeight -> running the transition for the first time\n if (!maxSize) {\n maxSize = measureCollapsingElementDimensionPx(element, dimension);\n context.maxSize = maxSize;\n // Fix the height before starting the animation\n element.style[dimension] = direction !== 'show' ? maxSize : '0px';\n classList.remove('collapse');\n classList.remove('collapsing');\n classList.remove('show');\n reflow(element);\n // Start the animation\n classList.add('collapsing');\n }\n // Start or revert the animation\n element.style[dimension] = direction === 'show' ? maxSize : '0px';\n return () => {\n setInitialClasses();\n classList.remove('collapsing');\n element.style[dimension] = '';\n };\n};\n\n/**\n * A configuration service for the [NgbCollapse](#/components/collapse/api#NgbCollapse) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all collapses used in the application.\n */\nclass NgbCollapseConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.horizontal = false;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static #_ = this.ɵfac = function NgbCollapseConfig_Factory(t) {\n return new (t || NgbCollapseConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCollapseConfig,\n factory: NgbCollapseConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCollapseConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A directive to provide a simple way of hiding and showing elements on the\n * page.\n */\nclass NgbCollapse {\n constructor() {\n this._config = inject(NgbCollapseConfig);\n this._element = inject(ElementRef);\n this._zone = inject(NgZone);\n /**\n * If `true`, collapse will be animated.\n *\n * Animation is triggered only when clicked on triggering element\n * or via the `.toggle()` function\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * Flag used to track if the collapse setter is invoked during initialization\n * or not. This distinction is made in order to avoid running the transition during initialization.\n */\n this._afterInit = false;\n this._isCollapsed = false;\n this.ngbCollapseChange = new EventEmitter();\n /**\n * If `true`, will collapse horizontally.\n *\n * @since 13.1.0\n */\n this.horizontal = this._config.horizontal;\n /**\n * An event emitted when the collapse element is shown, after the transition.\n * It has no payload.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the collapse element is hidden, after the transition.\n * It has no payload.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n }\n /**\n * If `true`, will collapse the element or show it otherwise.\n */\n set collapsed(isCollapsed) {\n if (this._isCollapsed !== isCollapsed) {\n this._isCollapsed = isCollapsed;\n if (this._afterInit) {\n this._runTransitionWithEvents(isCollapsed, this.animation);\n }\n }\n }\n ngOnInit() {\n this._runTransition(this._isCollapsed, false);\n this._afterInit = true;\n }\n /**\n * Triggers collapsing programmatically.\n *\n * If there is a collapsing transition running already, it will be reversed.\n * If the animations are turned off this happens synchronously.\n *\n * @since 8.0.0\n */\n toggle(open = this._isCollapsed) {\n this.collapsed = !open;\n this.ngbCollapseChange.next(this._isCollapsed);\n }\n _runTransition(collapsed, animation) {\n return ngbRunTransition(this._zone, this._element.nativeElement, ngbCollapsingTransition, {\n animation,\n runningTransition: 'stop',\n context: {\n direction: collapsed ? 'hide' : 'show',\n dimension: this.horizontal ? 'width' : 'height'\n }\n });\n }\n _runTransitionWithEvents(collapsed, animation) {\n this._runTransition(collapsed, animation).subscribe(() => {\n if (collapsed) {\n this.hidden.emit();\n } else {\n this.shown.emit();\n }\n });\n }\n static #_ = this.ɵfac = function NgbCollapse_Factory(t) {\n return new (t || NgbCollapse)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbCollapse,\n selectors: [[\"\", \"ngbCollapse\", \"\"]],\n hostVars: 2,\n hostBindings: function NgbCollapse_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"collapse-horizontal\", ctx.horizontal);\n }\n },\n inputs: {\n animation: \"animation\",\n collapsed: [i0.ɵɵInputFlags.None, \"ngbCollapse\", \"collapsed\"],\n horizontal: \"horizontal\"\n },\n outputs: {\n ngbCollapseChange: \"ngbCollapseChange\",\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbCollapse\"],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCollapse, [{\n type: Directive,\n args: [{\n selector: '[ngbCollapse]',\n exportAs: 'ngbCollapse',\n standalone: true,\n host: {\n '[class.collapse-horizontal]': 'horizontal'\n }\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n collapsed: [{\n type: Input,\n args: ['ngbCollapse']\n }],\n ngbCollapseChange: [{\n type: Output\n }],\n horizontal: [{\n type: Input\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }]\n });\n})();\nlet nextId$3 = 0;\n/**\n * A directive that wraps the content of an accordion item's collapsible body.\n *\n * The actual content is provided in a child `ng-template` element.\n * Depending on the state of the accordion, the template will be either inserted or removed from the DOM.\n *\n * @since 14.1.0\n */\nclass NgbAccordionBody {\n constructor() {\n this._vcr = inject(ViewContainerRef);\n this._element = inject(ElementRef).nativeElement;\n this._item = inject(NgbAccordionItem);\n this._viewRef = null;\n }\n ngAfterContentChecked() {\n if (this._bodyTpl) {\n if (this._item._shouldBeInDOM) {\n this._createViewIfNotExists();\n } else {\n this._destroyViewIfExists();\n }\n }\n }\n ngOnDestroy() {\n this._destroyViewIfExists();\n }\n _destroyViewIfExists() {\n if (this._viewRef) {\n this._viewRef.destroy();\n this._viewRef = null;\n }\n }\n _createViewIfNotExists() {\n if (!this._viewRef) {\n this._viewRef = this._vcr.createEmbeddedView(this._bodyTpl);\n this._viewRef.detectChanges();\n for (const node of this._viewRef.rootNodes) {\n this._element.appendChild(node);\n }\n }\n }\n static #_ = this.ɵfac = function NgbAccordionBody_Factory(t) {\n return new (t || NgbAccordionBody)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionBody,\n selectors: [[\"\", \"ngbAccordionBody\", \"\"]],\n contentQueries: function NgbAccordionBody_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, TemplateRef, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._bodyTpl = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function NgbAccordionBody_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"accordion-body\", true);\n }\n },\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionBody, [{\n type: Directive,\n args: [{\n selector: '[ngbAccordionBody]',\n standalone: true,\n host: {\n '[class.accordion-body]': 'true'\n }\n }]\n }], null, {\n _bodyTpl: [{\n type: ContentChild,\n args: [TemplateRef, {\n static: true\n }]\n }]\n });\n})();\n/**\n * A directive that wraps the collapsible item's content of the accordion.\n *\n * Internally it reuses the [`NgbCollapse` directive](#/components/collapse)\n *\n * @since 14.1.0\n */\nclass NgbAccordionCollapse {\n constructor() {\n this.item = inject(NgbAccordionItem);\n this.ngbCollapse = inject(NgbCollapse);\n }\n static #_ = this.ɵfac = function NgbAccordionCollapse_Factory(t) {\n return new (t || NgbAccordionCollapse)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionCollapse,\n selectors: [[\"\", \"ngbAccordionCollapse\", \"\"]],\n hostAttrs: [\"role\", \"region\"],\n hostVars: 4,\n hostBindings: function NgbAccordionCollapse_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.item.collapseId);\n i0.ɵɵattribute(\"aria-labelledby\", ctx.item.toggleId);\n i0.ɵɵclassProp(\"accordion-collapse\", true);\n }\n },\n exportAs: [\"ngbAccordionCollapse\"],\n standalone: true,\n features: [i0.ɵɵHostDirectivesFeature([NgbCollapse])]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionCollapse, [{\n type: Directive,\n args: [{\n exportAs: 'ngbAccordionCollapse',\n standalone: true,\n selector: '[ngbAccordionCollapse]',\n host: {\n role: 'region',\n '[class.accordion-collapse]': 'true',\n '[id]': 'item.collapseId',\n '[attr.aria-labelledby]': 'item.toggleId'\n },\n hostDirectives: [NgbCollapse]\n }]\n }], null, null);\n})();\n/**\n * A directive to put on a toggling element inside the accordion item's header.\n * It will register click handlers that toggle the associated panel and will handle accessibility attributes.\n *\n * This directive is used internally by the [`NgbAccordionButton` directive](#/components/accordion/api#NgbAccordionButton).\n *\n * @since 14.1.0\n */\nclass NgbAccordionToggle {\n constructor() {\n this.item = inject(NgbAccordionItem);\n this.accordion = inject(NgbAccordionDirective);\n }\n static #_ = this.ɵfac = function NgbAccordionToggle_Factory(t) {\n return new (t || NgbAccordionToggle)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionToggle,\n selectors: [[\"\", \"ngbAccordionToggle\", \"\"]],\n hostVars: 5,\n hostBindings: function NgbAccordionToggle_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function NgbAccordionToggle_click_HostBindingHandler() {\n return !ctx.item.disabled && ctx.accordion.toggle(ctx.item.id);\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.item.toggleId);\n i0.ɵɵattribute(\"aria-controls\", ctx.item.collapseId)(\"aria-expanded\", !ctx.item.collapsed);\n i0.ɵɵclassProp(\"collapsed\", ctx.item.collapsed);\n }\n },\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionToggle, [{\n type: Directive,\n args: [{\n selector: '[ngbAccordionToggle]',\n standalone: true,\n host: {\n '[id]': 'item.toggleId',\n '[class.collapsed]': 'item.collapsed',\n '[attr.aria-controls]': 'item.collapseId',\n '[attr.aria-expanded]': '!item.collapsed',\n '(click)': '!item.disabled && accordion.toggle(item.id)'\n }\n }]\n }], null, null);\n})();\n/**\n * A directive to put on a button element inside an accordion item's header.\n *\n * If you want a custom markup for the header, you can also use the [`NgbAccordionToggle` directive](#/components/accordion/api#NgbAccordionToggle).\n *\n * @since 14.1.0\n */\nclass NgbAccordionButton {\n constructor() {\n this.item = inject(NgbAccordionItem);\n }\n static #_ = this.ɵfac = function NgbAccordionButton_Factory(t) {\n return new (t || NgbAccordionButton)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionButton,\n selectors: [[\"button\", \"ngbAccordionButton\", \"\"]],\n hostAttrs: [\"type\", \"button\"],\n hostVars: 3,\n hostBindings: function NgbAccordionButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"disabled\", ctx.item.disabled);\n i0.ɵɵclassProp(\"accordion-button\", true);\n }\n },\n standalone: true,\n features: [i0.ɵɵHostDirectivesFeature([NgbAccordionToggle])]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionButton, [{\n type: Directive,\n args: [{\n selector: 'button[ngbAccordionButton]',\n standalone: true,\n host: {\n '[disabled]': 'item.disabled',\n '[class.accordion-button]': 'true',\n type: 'button'\n },\n hostDirectives: [NgbAccordionToggle]\n }]\n }], null, null);\n})();\n/**\n * A directive that wraps an accordion item's header.\n *\n * @since 14.1.0\n */\nclass NgbAccordionHeader {\n constructor() {\n this.item = inject(NgbAccordionItem);\n }\n static #_ = this.ɵfac = function NgbAccordionHeader_Factory(t) {\n return new (t || NgbAccordionHeader)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionHeader,\n selectors: [[\"\", \"ngbAccordionHeader\", \"\"]],\n hostAttrs: [\"role\", \"heading\"],\n hostVars: 4,\n hostBindings: function NgbAccordionHeader_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"accordion-header\", true)(\"collapsed\", ctx.item.collapsed);\n }\n },\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionHeader, [{\n type: Directive,\n args: [{\n selector: '[ngbAccordionHeader]',\n standalone: true,\n host: {\n role: 'heading',\n '[class.accordion-header]': 'true',\n '[class.collapsed]': 'item.collapsed'\n }\n }]\n }], null, null);\n})();\n/**\n * A directive that wraps an accordion item: a toggleable header + body that collapses.\n *\n * You can get hold of the `NgbAccordionItem` instance in the template with `#item=\"ngbAccordionItem\"`.\n * It allows to check if the item is collapsed or not, toggle the collapse state, etc.\n *\n * Every accordion item has a string ID that is automatically generated in the `ngb-accordion-item-XX` format, unless provided explicitly.\n *\n * @since 14.1.0\n */\nclass NgbAccordionItem {\n constructor() {\n this._accordion = inject(NgbAccordionDirective);\n this._cd = inject(ChangeDetectorRef);\n this._destroyRef = inject(DestroyRef);\n this._collapsed = true;\n this._id = `ngb-accordion-item-${nextId$3++}`;\n this._collapseAnimationRunning = false;\n /**\n * If `true`, the accordion item will be disabled.\n * It won't react to user's clicks, but still will be toggelable programmatically.\n */\n this.disabled = false;\n /**\n * Event emitted before the expanding animation starts. It has no payload.\n *\n * @since 15.1.0\n */\n this.show = new EventEmitter();\n /**\n * Event emitted when the expanding animation is finished. It has no payload.\n */\n this.shown = new EventEmitter();\n /**\n * Event emitted before the collapsing animation starts. It has no payload.\n *\n * @since 15.1.0\n */\n this.hide = new EventEmitter();\n /**\n * Event emitted when the collapsing animation is finished and before the content is removed from DOM.\n * It has no payload.\n */\n this.hidden = new EventEmitter();\n }\n /**\n * Sets the custom ID of the accordion item. It must be unique for the document.\n *\n * @param id The ID of the accordion item, must be a non-empty string\n */\n set id(id) {\n if (isString(id) && id !== '') {\n this._id = id;\n }\n }\n /**\n * If `true`, the content of the accordion item's body will be removed from the DOM. It will be just hidden otherwise.\n *\n * This property can also be set up on the parent [`NgbAccordion` directive](#/components/accordion/api#NgbAccordionDirective).\n */\n set destroyOnHide(destroyOnHide) {\n this._destroyOnHide = destroyOnHide;\n }\n get destroyOnHide() {\n return this._destroyOnHide === undefined ? this._accordion.destroyOnHide : this._destroyOnHide;\n }\n /**\n *\tIf `true`, the accordion item will be collapsed. Otherwise, it will be expanded.\n *\n * @param collapsed New state of the accordion item.\n */\n set collapsed(collapsed) {\n if (collapsed) {\n this.collapse();\n } else {\n this.expand();\n }\n }\n get collapsed() {\n return this._collapsed;\n }\n get id() {\n return `${this._id}`;\n }\n get toggleId() {\n return `${this.id}-toggle`;\n }\n get collapseId() {\n return `${this.id}-collapse`;\n }\n get _shouldBeInDOM() {\n return !this.collapsed || this._collapseAnimationRunning || !this.destroyOnHide;\n }\n ngAfterContentInit() {\n const {\n ngbCollapse\n } = this._collapse;\n // we need to disable the animation for the first init\n ngbCollapse.animation = false;\n ngbCollapse.collapsed = this.collapsed;\n // we set the animation to the default of the accordion\n ngbCollapse.animation = this._accordion.animation;\n // event forwarding from 'ngbCollapse' to 'ngbAccordion'\n ngbCollapse.hidden.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n // when the animation finishes we can remove the template from DOM\n this._collapseAnimationRunning = false;\n this.hidden.emit();\n this._accordion.hidden.emit(this.id);\n });\n ngbCollapse.shown.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this.shown.emit();\n this._accordion.shown.emit(this.id);\n });\n }\n /**\n * Toggles an accordion item.\n */\n toggle() {\n this.collapsed = !this.collapsed;\n }\n /**\n * Expands an accordion item.\n */\n expand() {\n if (this.collapsed) {\n // checking if accordion allows to expand the panel in respect to 'closeOthers' flag\n if (!this._accordion._ensureCanExpand(this)) {\n return;\n }\n this._collapsed = false;\n // need if the accordion is used inside a component having OnPush change detection strategy\n this._cd.markForCheck();\n // we need force CD to get template into DOM before starting animation to calculate its height correctly\n // this will synchronously put the item body into DOM, because `this._collapsed` was flipped to `false`\n this._cd.detectChanges();\n // firing events before starting animations\n this.show.emit();\n this._accordion.show.emit(this.id);\n // we also need to make sure 'animation' flag is up-to- date\n this._collapse.ngbCollapse.animation = this._accordion.animation;\n this._collapse.ngbCollapse.collapsed = false;\n }\n }\n /**\n * Collapses an accordion item.\n */\n collapse() {\n if (!this.collapsed) {\n this._collapsed = true;\n this._collapseAnimationRunning = true;\n // need if the accordion is used inside a component having OnPush change detection strategy\n this._cd.markForCheck();\n // firing events before starting animations\n this.hide.emit();\n this._accordion.hide.emit(this.id);\n // we also need to make sure 'animation' flag is up-to- date\n this._collapse.ngbCollapse.animation = this._accordion.animation;\n this._collapse.ngbCollapse.collapsed = true;\n }\n }\n static #_ = this.ɵfac = function NgbAccordionItem_Factory(t) {\n return new (t || NgbAccordionItem)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionItem,\n selectors: [[\"\", \"ngbAccordionItem\", \"\"]],\n contentQueries: function NgbAccordionItem_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbAccordionCollapse, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._collapse = _t.first);\n }\n },\n hostVars: 3,\n hostBindings: function NgbAccordionItem_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵclassProp(\"accordion-item\", true);\n }\n },\n inputs: {\n id: [i0.ɵɵInputFlags.None, \"ngbAccordionItem\", \"id\"],\n destroyOnHide: \"destroyOnHide\",\n disabled: \"disabled\",\n collapsed: \"collapsed\"\n },\n outputs: {\n show: \"show\",\n shown: \"shown\",\n hide: \"hide\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbAccordionItem\"],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionItem, [{\n type: Directive,\n args: [{\n selector: '[ngbAccordionItem]',\n exportAs: 'ngbAccordionItem',\n standalone: true,\n host: {\n '[class.accordion-item]': 'true',\n '[id]': 'id'\n }\n }]\n }], null, {\n _collapse: [{\n type: ContentChild,\n args: [NgbAccordionCollapse, {\n static: true\n }]\n }],\n id: [{\n type: Input,\n args: ['ngbAccordionItem']\n }],\n destroyOnHide: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n collapsed: [{\n type: Input\n }],\n show: [{\n type: Output\n }],\n shown: [{\n type: Output\n }],\n hide: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }]\n });\n})();\n/**\n * Accordion is a stack of cards that have a header and collapsible body.\n *\n * This directive is a container for these items and provides an API to handle them.\n *\n * @since 14.1.0\n */\nclass NgbAccordionDirective {\n constructor() {\n this._config = inject(NgbAccordionConfig);\n this._anItemWasAlreadyExpandedDuringInitialisation = false;\n /**\n * If `true`, accordion will be animated.\n */\n this.animation = this._config.animation;\n /**\n * If `true`, only one item at the time can stay open.\n */\n this.closeOthers = this._config.closeOthers;\n /**\n * If `true`, the content of the accordion items body will be removed from the DOM. It will be just hidden otherwise.\n *\n * This property can be overwritten at the [`NgbAccordionItem`](#/components/accordion/api#NgbAccordionItem) level\n */\n this.destroyOnHide = this._config.destroyOnHide;\n /**\n * Event emitted before expanding animation starts. The payload is the id of shown accordion item.\n *\n * @since 15.1.0\n */\n this.show = new EventEmitter();\n /**\n * Event emitted when the expanding animation is finished. The payload is the id of shown accordion item.\n */\n this.shown = new EventEmitter();\n /**\n * Event emitted before the collapsing animation starts. The payload is the id of hidden accordion item.\n *\n * @since 15.1.0\n */\n this.hide = new EventEmitter();\n /**\n * Event emitted when the collapsing animation is finished and before the content is removed from DOM.\n * The payload is the id of hidden accordion item.\n */\n this.hidden = new EventEmitter();\n }\n /**\n * Toggles an item with the given id.\n *\n * It will toggle an item, even if it is disabled.\n *\n * @param itemId The id of the item to toggle.\n */\n toggle(itemId) {\n this._getItem(itemId)?.toggle();\n }\n /**\n * Expands an item with the given id.\n *\n * If `closeOthers` is `true`, it will collapse other panels.\n *\n * @param itemId The id of the item to expand.\n */\n expand(itemId) {\n this._getItem(itemId)?.expand();\n }\n /**\n * Expands all items.\n *\n * If `closeOthers` is `true` and all items are closed, it will open the first one. Otherwise, it will keep the opened one.\n */\n expandAll() {\n if (this._items) {\n if (this.closeOthers) {\n // we check if there is an item open and if it is not we can expand the first item\n // (otherwise we toggle nothing)\n if (!this._items.find(item => !item.collapsed)) {\n this._items.first.expand();\n }\n } else {\n this._items.forEach(item => item.expand());\n }\n }\n }\n /**\n * Collapses an item with the given id.\n *\n * Has no effect if the `itemId` does not correspond to any item.\n *\n * @param itemId The id of the item to collapse.\n */\n collapse(itemId) {\n this._getItem(itemId)?.collapse();\n }\n /**\n * Collapses all items.\n */\n collapseAll() {\n this._items?.forEach(item => item.collapse());\n }\n /**\n * Checks if an item with the given id is expanded.\n *\n * If the `itemId` does not correspond to any item, it returns `false`.\n *\n * @param itemId The id of the item to check.\n */\n isExpanded(itemId) {\n const item = this._getItem(itemId);\n return item ? !item.collapsed : false;\n }\n /**\n * It checks, if the item can be expanded in the current state of the accordion.\n * With `closeOthers` there can be only one expanded item at a time.\n *\n * @internal\n */\n _ensureCanExpand(toExpand) {\n if (!this.closeOthers) {\n return true;\n }\n // special case during the initialization of the [collapse]=\"false\" inputs\n // `this._items` QueryList is not yet initialized, but we need to ensure only one item can be expanded at a time\n if (!this._items) {\n if (!this._anItemWasAlreadyExpandedDuringInitialisation) {\n this._anItemWasAlreadyExpandedDuringInitialisation = true;\n return true;\n }\n return false;\n }\n // if there is an expanded item, we need to collapse it first\n this._items.find(item => !item.collapsed && toExpand !== item)?.collapse();\n return true;\n }\n _getItem(itemId) {\n return this._items?.find(item => item.id === itemId);\n }\n static #_ = this.ɵfac = function NgbAccordionDirective_Factory(t) {\n return new (t || NgbAccordionDirective)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionDirective,\n selectors: [[\"\", \"ngbAccordion\", \"\"]],\n contentQueries: function NgbAccordionDirective_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbAccordionItem, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._items = _t);\n }\n },\n hostVars: 2,\n hostBindings: function NgbAccordionDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"accordion\", true);\n }\n },\n inputs: {\n animation: \"animation\",\n closeOthers: \"closeOthers\",\n destroyOnHide: \"destroyOnHide\"\n },\n outputs: {\n show: \"show\",\n shown: \"shown\",\n hide: \"hide\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbAccordion\"],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionDirective, [{\n type: Directive,\n args: [{\n selector: '[ngbAccordion]',\n standalone: true,\n exportAs: 'ngbAccordion',\n host: {\n '[class.accordion]': 'true'\n }\n }]\n }], null, {\n _items: [{\n type: ContentChildren,\n args: [NgbAccordionItem, {\n descendants: false\n }]\n }],\n animation: [{\n type: Input\n }],\n closeOthers: [{\n type: Input\n }],\n destroyOnHide: [{\n type: Input\n }],\n show: [{\n type: Output\n }],\n shown: [{\n type: Output\n }],\n hide: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }]\n });\n})();\nconst NGB_ACCORDION_DIRECTIVES = [NgbAccordionButton, NgbAccordionDirective, NgbAccordionItem, NgbAccordionHeader, NgbAccordionToggle, NgbAccordionBody, NgbAccordionCollapse];\nclass NgbAccordionModule {\n static #_ = this.ɵfac = function NgbAccordionModule_Factory(t) {\n return new (t || NgbAccordionModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbAccordionModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionModule, [{\n type: NgModule,\n args: [{\n imports: NGB_ACCORDION_DIRECTIVES,\n exports: NGB_ACCORDION_DIRECTIVES\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [NgbAlert](#/components/alert/api#NgbAlert) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all alerts used in the application.\n */\nclass NgbAlertConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.dismissible = true;\n this.type = 'warning';\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static #_ = this.ɵfac = function NgbAlertConfig_Factory(t) {\n return new (t || NgbAlertConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbAlertConfig,\n factory: NgbAlertConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAlertConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nconst ngbAlertFadingTransition = ({\n classList\n}) => {\n classList.remove('show');\n};\n\n/**\n * Alert is a component to provide contextual feedback messages for user.\n *\n * It supports several alert types and can be dismissed.\n */\nclass NgbAlert {\n constructor() {\n this._config = inject(NgbAlertConfig);\n this._elementRef = inject(ElementRef);\n this._zone = inject(NgZone);\n /**\n * If `true`, alert closing will be animated.\n *\n * Animation is triggered only when clicked on the close button (×)\n * or via the `.close()` function\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * If `true`, alert can be dismissed by the user.\n *\n * The close button (×) will be displayed and you can be notified\n * of the event with the `(closed)` output.\n */\n this.dismissible = this._config.dismissible;\n /**\n * Type of the alert.\n *\n * Bootstrap provides styles for the following types: `'success'`, `'info'`, `'warning'`, `'danger'`, `'primary'`,\n * `'secondary'`, `'light'` and `'dark'`.\n */\n this.type = this._config.type;\n /**\n * An event emitted when the close button is clicked. It has no payload and only relevant for dismissible alerts.\n *\n * @since 8.0.0\n */\n this.closed = new EventEmitter();\n }\n /**\n * Triggers alert closing programmatically (same as clicking on the close button (×)).\n *\n * The returned observable will emit and be completed once the closing transition has finished.\n * If the animations are turned off this happens synchronously.\n *\n * Alternatively you could listen or subscribe to the `(closed)` output\n *\n * @since 8.0.0\n */\n close() {\n const transition = ngbRunTransition(this._zone, this._elementRef.nativeElement, ngbAlertFadingTransition, {\n animation: this.animation,\n runningTransition: 'continue'\n });\n transition.subscribe(() => this.closed.emit());\n return transition;\n }\n static #_ = this.ɵfac = function NgbAlert_Factory(t) {\n return new (t || NgbAlert)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbAlert,\n selectors: [[\"ngb-alert\"]],\n hostAttrs: [\"role\", \"alert\"],\n hostVars: 6,\n hostBindings: function NgbAlert_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassMap(\"alert show\" + (ctx.type ? \" alert-\" + ctx.type : \"\"));\n i0.ɵɵclassProp(\"fade\", ctx.animation)(\"alert-dismissible\", ctx.dismissible);\n }\n },\n inputs: {\n animation: \"animation\",\n dismissible: \"dismissible\",\n type: \"type\"\n },\n outputs: {\n closed: \"closed\"\n },\n exportAs: [\"ngbAlert\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 2,\n vars: 1,\n consts: () => {\n let i18n_0;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_0 = goog.getMsg(\"Close\");\n i18n_0 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_0;\n } else {\n i18n_0 = $localize`:@@ngb.alert.close:Close`;\n }\n return [[\"type\", \"button\", \"aria-label\", i18n_0, 1, \"btn-close\"], [\"type\", \"button\", \"aria-label\", i18n_0, 1, \"btn-close\", 3, \"click\"]];\n },\n template: function NgbAlert_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n i0.ɵɵtemplate(1, NgbAlert_Conditional_1_Template, 1, 0, \"button\", 0);\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx.dismissible ? 1 : -1);\n }\n },\n styles: [\"ngb-alert{display:block}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAlert, [{\n type: Component,\n args: [{\n selector: 'ngb-alert',\n exportAs: 'ngbAlert',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'alert',\n '[class]': '\"alert show\" + (type ? \" alert-\" + type : \"\")',\n '[class.fade]': 'animation',\n '[class.alert-dismissible]': 'dismissible'\n },\n template: `\n\t\t<ng-content />\n\t\t@if (dismissible) {\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"btn-close\"\n\t\t\t\taria-label=\"Close\"\n\t\t\t\ti18n-aria-label=\"@@ngb.alert.close\"\n\t\t\t\t(click)=\"close()\"\n\t\t\t></button>\n\t\t}\n\t`,\n styles: [\"ngb-alert{display:block}\\n\"]\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n dismissible: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n closed: [{\n type: Output\n }]\n });\n})();\nclass NgbAlertModule {\n static #_ = this.ɵfac = function NgbAlertModule_Factory(t) {\n return new (t || NgbAlertModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbAlertModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAlertModule, [{\n type: NgModule,\n args: [{\n imports: [NgbAlert],\n exports: [NgbAlert]\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [NgbCarousel](#/components/carousel/api#NgbCarousel) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all carousels used in the application.\n */\nclass NgbCarouselConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.interval = 5000;\n this.wrap = true;\n this.keyboard = true;\n this.pauseOnHover = true;\n this.pauseOnFocus = true;\n this.showNavigationArrows = true;\n this.showNavigationIndicators = true;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static #_ = this.ɵfac = function NgbCarouselConfig_Factory(t) {\n return new (t || NgbCarouselConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCarouselConfig,\n factory: NgbCarouselConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCarouselConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * Defines the carousel slide transition direction.\n */\nvar NgbSlideEventDirection;\n(function (NgbSlideEventDirection) {\n NgbSlideEventDirection[\"START\"] = \"start\";\n NgbSlideEventDirection[\"END\"] = \"end\";\n})(NgbSlideEventDirection || (NgbSlideEventDirection = {}));\nconst isBeingAnimated = ({\n classList\n}) => {\n return classList.contains('carousel-item-start') || classList.contains('carousel-item-end');\n};\nconst removeDirectionClasses = classList => {\n classList.remove('carousel-item-start');\n classList.remove('carousel-item-end');\n};\nconst removeClasses = classList => {\n removeDirectionClasses(classList);\n classList.remove('carousel-item-prev');\n classList.remove('carousel-item-next');\n};\nconst ngbCarouselTransitionIn = (element, animation, {\n direction\n}) => {\n const {\n classList\n } = element;\n if (!animation) {\n removeDirectionClasses(classList);\n removeClasses(classList);\n classList.add('active');\n return;\n }\n if (isBeingAnimated(element)) {\n // Revert the transition\n removeDirectionClasses(classList);\n } else {\n // For the 'in' transition, a 'pre-class' is applied to the element to ensure its visibility\n classList.add('carousel-item-' + (direction === NgbSlideEventDirection.START ? 'next' : 'prev'));\n reflow(element);\n classList.add('carousel-item-' + direction);\n }\n return () => {\n removeClasses(classList);\n classList.add('active');\n };\n};\nconst ngbCarouselTransitionOut = (element, animation, {\n direction\n}) => {\n const {\n classList\n } = element;\n if (!animation) {\n removeDirectionClasses(classList);\n removeClasses(classList);\n classList.remove('active');\n return;\n }\n // direction is left or right, depending on the way the slide goes out.\n if (isBeingAnimated(element)) {\n // Revert the transition\n removeDirectionClasses(classList);\n } else {\n classList.add('carousel-item-' + direction);\n }\n return () => {\n removeClasses(classList);\n classList.remove('active');\n };\n};\nlet nextId$2 = 0;\nlet carouselId = 0;\n/**\n * A directive that wraps the individual carousel slide.\n */\nclass NgbSlide {\n constructor() {\n this.templateRef = inject(TemplateRef);\n /**\n * Slide id that must be unique for the entire document.\n *\n * If not provided, will be generated in the `ngb-slide-xx` format.\n */\n this.id = `ngb-slide-${nextId$2++}`;\n /**\n * An event emitted when the slide transition is finished\n *\n * @since 8.0.0\n */\n this.slid = new EventEmitter();\n }\n static #_ = this.ɵfac = function NgbSlide_Factory(t) {\n return new (t || NgbSlide)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbSlide,\n selectors: [[\"ng-template\", \"ngbSlide\", \"\"]],\n inputs: {\n id: \"id\"\n },\n outputs: {\n slid: \"slid\"\n },\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbSlide, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbSlide]',\n standalone: true\n }]\n }], null, {\n id: [{\n type: Input\n }],\n slid: [{\n type: Output\n }]\n });\n})();\n/**\n * Carousel is a component to easily create and control slideshows.\n *\n * Allows to set intervals, change the way user interacts with the slides and provides a programmatic API.\n */\nclass NgbCarousel {\n constructor() {\n this.NgbSlideEventSource = NgbSlideEventSource;\n this._config = inject(NgbCarouselConfig);\n this._platformId = inject(PLATFORM_ID);\n this._ngZone = inject(NgZone);\n this._cd = inject(ChangeDetectorRef);\n this._container = inject(ElementRef);\n this._destroyRef = inject(DestroyRef);\n this._interval$ = new BehaviorSubject(this._config.interval);\n this._mouseHover$ = new BehaviorSubject(false);\n this._focused$ = new BehaviorSubject(false);\n this._pauseOnHover$ = new BehaviorSubject(this._config.pauseOnHover);\n this._pauseOnFocus$ = new BehaviorSubject(this._config.pauseOnFocus);\n this._pause$ = new BehaviorSubject(false);\n this._wrap$ = new BehaviorSubject(this._config.wrap);\n this.id = `ngb-carousel-${carouselId++}`;\n /**\n * A flag to enable/disable the animations.\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * If `true`, allows to interact with carousel using keyboard 'arrow left' and 'arrow right'.\n */\n this.keyboard = this._config.keyboard;\n /**\n * If `true`, 'previous' and 'next' navigation arrows will be visible on the slide.\n *\n * @since 2.2.0\n */\n this.showNavigationArrows = this._config.showNavigationArrows;\n /**\n * If `true`, navigation indicators at the bottom of the slide will be visible.\n *\n * @since 2.2.0\n */\n this.showNavigationIndicators = this._config.showNavigationIndicators;\n /**\n * An event emitted just before the slide transition starts.\n *\n * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details.\n */\n this.slide = new EventEmitter();\n /**\n * An event emitted right after the slide transition is completed.\n *\n * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details.\n *\n * @since 8.0.0\n */\n this.slid = new EventEmitter();\n /*\n * Keep the ids of the panels currently transitionning\n * in order to allow only the transition revertion\n */\n this._transitionIds = null;\n }\n /**\n * Time in milliseconds before the next slide is shown.\n */\n set interval(value) {\n this._interval$.next(value);\n }\n get interval() {\n return this._interval$.value;\n }\n /**\n * If `true`, will 'wrap' the carousel by switching from the last slide back to the first.\n */\n set wrap(value) {\n this._wrap$.next(value);\n }\n get wrap() {\n return this._wrap$.value;\n }\n /**\n * If `true`, will pause slide switching when mouse cursor hovers the slide.\n *\n * @since 2.2.0\n */\n set pauseOnHover(value) {\n this._pauseOnHover$.next(value);\n }\n get pauseOnHover() {\n return this._pauseOnHover$.value;\n }\n /**\n * If `true`, will pause slide switching when the focus is inside the carousel.\n */\n set pauseOnFocus(value) {\n this._pauseOnFocus$.next(value);\n }\n get pauseOnFocus() {\n return this._pauseOnFocus$.value;\n }\n set mouseHover(value) {\n this._mouseHover$.next(value);\n }\n get mouseHover() {\n return this._mouseHover$.value;\n }\n set focused(value) {\n this._focused$.next(value);\n }\n get focused() {\n return this._focused$.value;\n }\n arrowLeft() {\n this.focus();\n this.prev(NgbSlideEventSource.ARROW_LEFT);\n }\n arrowRight() {\n this.focus();\n this.next(NgbSlideEventSource.ARROW_RIGHT);\n }\n ngAfterContentInit() {\n // setInterval() doesn't play well with SSR and protractor,\n // so we should run it in the browser and outside Angular\n if (isPlatformBrowser(this._platformId)) {\n this._ngZone.runOutsideAngular(() => {\n const hasNextSlide$ = combineLatest([this.slide.pipe(map(slideEvent => slideEvent.current), startWith(this.activeId)), this._wrap$, this.slides.changes.pipe(startWith(null))]).pipe(map(([currentSlideId, wrap]) => {\n const slideArr = this.slides.toArray();\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n return wrap ? slideArr.length > 1 : currentSlideIdx < slideArr.length - 1;\n }), distinctUntilChanged());\n combineLatest([this._pause$, this._pauseOnHover$, this._mouseHover$, this._pauseOnFocus$, this._focused$, this._interval$, hasNextSlide$]).pipe(map(([pause, pauseOnHover, mouseHover, pauseOnFocus, focused, interval, hasNextSlide]) => pause || pauseOnHover && mouseHover || pauseOnFocus && focused || !hasNextSlide ? 0 : interval), distinctUntilChanged(), switchMap(interval => interval > 0 ? timer(interval, interval) : NEVER), takeUntilDestroyed(this._destroyRef)).subscribe(() => this._ngZone.run(() => this.next(NgbSlideEventSource.TIMER)));\n });\n }\n this.slides.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._transitionIds?.forEach(id => ngbCompleteTransition(this._getSlideElement(id)));\n this._transitionIds = null;\n this._cd.markForCheck();\n // The following code need to be done asynchronously, after the dom becomes stable,\n // otherwise all changes will be undone.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n for (const {\n id\n } of this.slides) {\n const element = this._getSlideElement(id);\n if (id === this.activeId) {\n element.classList.add('active');\n } else {\n element.classList.remove('active');\n }\n }\n });\n });\n }\n ngAfterContentChecked() {\n let activeSlide = this._getSlideById(this.activeId);\n this.activeId = activeSlide ? activeSlide.id : this.slides.length ? this.slides.first.id : '';\n }\n ngAfterViewInit() {\n // Initialize the 'active' class (not managed by the template)\n if (this.activeId) {\n const element = this._getSlideElement(this.activeId);\n if (element) {\n element.classList.add('active');\n }\n }\n }\n /**\n * Navigates to a slide with the specified identifier.\n */\n select(slideId, source) {\n this._cycleToSelected(slideId, this._getSlideEventDirection(this.activeId, slideId), source);\n }\n /**\n * Navigates to the previous slide.\n */\n prev(source) {\n this._cycleToSelected(this._getPrevSlide(this.activeId), NgbSlideEventDirection.END, source);\n }\n /**\n * Navigates to the next slide.\n */\n next(source) {\n this._cycleToSelected(this._getNextSlide(this.activeId), NgbSlideEventDirection.START, source);\n }\n /**\n * Pauses cycling through the slides.\n */\n pause() {\n this._pause$.next(true);\n }\n /**\n * Restarts cycling through the slides from start to end.\n */\n cycle() {\n this._pause$.next(false);\n }\n /**\n * Set the focus on the carousel.\n */\n focus() {\n this._container.nativeElement.focus();\n }\n _cycleToSelected(slideIdx, direction, source) {\n const transitionIds = this._transitionIds;\n if (transitionIds && (transitionIds[0] !== slideIdx || transitionIds[1] !== this.activeId)) {\n // Revert prevented\n return;\n }\n let selectedSlide = this._getSlideById(slideIdx);\n if (selectedSlide && selectedSlide.id !== this.activeId) {\n this._transitionIds = [this.activeId, slideIdx];\n this.slide.emit({\n prev: this.activeId,\n current: selectedSlide.id,\n direction: direction,\n paused: this._pause$.value,\n source\n });\n const options = {\n animation: this.animation,\n runningTransition: 'stop',\n context: {\n direction\n }\n };\n const transitions = [];\n const activeSlide = this._getSlideById(this.activeId);\n if (activeSlide) {\n const activeSlideTransition = ngbRunTransition(this._ngZone, this._getSlideElement(activeSlide.id), ngbCarouselTransitionOut, options);\n activeSlideTransition.subscribe(() => {\n activeSlide.slid.emit({\n isShown: false,\n direction,\n source\n });\n });\n transitions.push(activeSlideTransition);\n }\n const previousId = this.activeId;\n this.activeId = selectedSlide.id;\n const nextSlide = this._getSlideById(this.activeId);\n const transition = ngbRunTransition(this._ngZone, this._getSlideElement(selectedSlide.id), ngbCarouselTransitionIn, options);\n transition.subscribe(() => {\n nextSlide?.slid.emit({\n isShown: true,\n direction,\n source\n });\n });\n transitions.push(transition);\n zip(...transitions).pipe(take(1)).subscribe(() => {\n this._transitionIds = null;\n this.slid.emit({\n prev: previousId,\n current: selectedSlide.id,\n direction: direction,\n paused: this._pause$.value,\n source\n });\n });\n }\n // we get here after the interval fires or any external API call like next(), prev() or select()\n this._cd.markForCheck();\n }\n _getSlideEventDirection(currentActiveSlideId, nextActiveSlideId) {\n const currentActiveSlideIdx = this._getSlideIdxById(currentActiveSlideId);\n const nextActiveSlideIdx = this._getSlideIdxById(nextActiveSlideId);\n return currentActiveSlideIdx > nextActiveSlideIdx ? NgbSlideEventDirection.END : NgbSlideEventDirection.START;\n }\n _getSlideById(slideId) {\n return this.slides.find(slide => slide.id === slideId) || null;\n }\n _getSlideIdxById(slideId) {\n const slide = this._getSlideById(slideId);\n return slide != null ? this.slides.toArray().indexOf(slide) : -1;\n }\n _getNextSlide(currentSlideId) {\n const slideArr = this.slides.toArray();\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n const isLastSlide = currentSlideIdx === slideArr.length - 1;\n return isLastSlide ? this.wrap ? slideArr[0].id : slideArr[slideArr.length - 1].id : slideArr[currentSlideIdx + 1].id;\n }\n _getPrevSlide(currentSlideId) {\n const slideArr = this.slides.toArray();\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n const isFirstSlide = currentSlideIdx === 0;\n return isFirstSlide ? this.wrap ? slideArr[slideArr.length - 1].id : slideArr[0].id : slideArr[currentSlideIdx - 1].id;\n }\n _getSlideElement(slideId) {\n return this._container.nativeElement.querySelector(`#slide-${slideId}`);\n }\n static #_ = this.ɵfac = function NgbCarousel_Factory(t) {\n return new (t || NgbCarousel)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbCarousel,\n selectors: [[\"ngb-carousel\"]],\n contentQueries: function NgbCarousel_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbSlide, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slides = _t);\n }\n },\n hostAttrs: [\"tabIndex\", \"0\", 1, \"carousel\", \"slide\"],\n hostVars: 3,\n hostBindings: function NgbCarousel_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown.arrowLeft\", function NgbCarousel_keydown_arrowLeft_HostBindingHandler() {\n return ctx.keyboard && ctx.arrowLeft();\n })(\"keydown.arrowRight\", function NgbCarousel_keydown_arrowRight_HostBindingHandler() {\n return ctx.keyboard && ctx.arrowRight();\n })(\"mouseenter\", function NgbCarousel_mouseenter_HostBindingHandler() {\n return ctx.mouseHover = true;\n })(\"mouseleave\", function NgbCarousel_mouseleave_HostBindingHandler() {\n return ctx.mouseHover = false;\n })(\"focusin\", function NgbCarousel_focusin_HostBindingHandler() {\n return ctx.focused = true;\n })(\"focusout\", function NgbCarousel_focusout_HostBindingHandler() {\n return ctx.focused = false;\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-activedescendant\", \"slide-\" + ctx.activeId);\n i0.ɵɵstyleProp(\"display\", \"block\");\n }\n },\n inputs: {\n animation: \"animation\",\n activeId: \"activeId\",\n interval: \"interval\",\n wrap: \"wrap\",\n keyboard: \"keyboard\",\n pauseOnHover: \"pauseOnHover\",\n pauseOnFocus: \"pauseOnFocus\",\n showNavigationArrows: \"showNavigationArrows\",\n showNavigationIndicators: \"showNavigationIndicators\"\n },\n outputs: {\n slide: \"slide\",\n slid: \"slid\"\n },\n exportAs: [\"ngbCarousel\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 7,\n vars: 3,\n consts: () => {\n let i18n_1;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc Currently selected slide number read by screen reader\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_1 = goog.getMsg(\" Slide {$interpolation} of {$interpolation_1} \", {\n \"interpolation\": \"\\uFFFD0\\uFFFD\",\n \"interpolation_1\": \"\\uFFFD1\\uFFFD\"\n }, {\n original_code: {\n \"interpolation\": \"{{ i + 1 }}\",\n \"interpolation_1\": \"{{ c }}\"\n }\n });\n i18n_1 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_1;\n } else {\n i18n_1 = $localize`:Currently selected slide number read by screen reader@@ngb.carousel.slide-number: Slide ${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION: of ${\"\\uFFFD1\\uFFFD\"}:INTERPOLATION_1: `;\n }\n let i18n_2;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_2 = goog.getMsg(\"Previous\");\n i18n_2 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_2;\n } else {\n i18n_2 = $localize`:@@ngb.carousel.previous:Previous`;\n }\n let i18n_3;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_3 = goog.getMsg(\"Next\");\n i18n_3 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_3;\n } else {\n i18n_3 = $localize`:@@ngb.carousel.next:Next`;\n }\n return [i18n_1, i18n_2, i18n_3, [\"role\", \"tablist\", 1, \"carousel-indicators\"], [\"type\", \"button\", \"data-bs-target\", \"\", \"role\", \"tab\"], [1, \"carousel-inner\"], [\"role\", \"tabpanel\", 1, \"carousel-item\"], [\"type\", \"button\", \"data-bs-target\", \"\", \"role\", \"tab\", 3, \"click\"], [\"role\", \"tabpanel\", 1, \"carousel-item\", 3, \"id\"], [1, \"visually-hidden\"], [3, \"ngTemplateOutlet\"], [\"type\", \"button\", 1, \"carousel-control-prev\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"carousel-control-prev-icon\"], [1, \"visually-hidden\", 3, \"id\"], [\"type\", \"button\", 1, \"carousel-control-next\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"carousel-control-next-icon\"]];\n },\n template: function NgbCarousel_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 3);\n i0.ɵɵrepeaterCreate(1, NgbCarousel_For_2_Template, 1, 5, \"button\", 4, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 5);\n i0.ɵɵrepeaterCreate(4, NgbCarousel_For_5_Template, 4, 4, \"div\", 6, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, NgbCarousel_Conditional_6_Template, 8, 4);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"visually-hidden\", !ctx.showNavigationIndicators);\n i0.ɵɵadvance();\n i0.ɵɵrepeater(ctx.slides);\n i0.ɵɵadvance(3);\n i0.ɵɵrepeater(ctx.slides);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(6, ctx.showNavigationArrows ? 6 : -1);\n }\n },\n dependencies: [NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCarousel, [{\n type: Component,\n args: [{\n selector: 'ngb-carousel',\n exportAs: 'ngbCarousel',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'carousel slide',\n '[style.display]': '\"block\"',\n tabIndex: '0',\n '(keydown.arrowLeft)': 'keyboard && arrowLeft()',\n '(keydown.arrowRight)': 'keyboard && arrowRight()',\n '(mouseenter)': 'mouseHover = true',\n '(mouseleave)': 'mouseHover = false',\n '(focusin)': 'focused = true',\n '(focusout)': 'focused = false',\n '[attr.aria-activedescendant]': `'slide-' + activeId`\n },\n template: `\n\t\t<div class=\"carousel-indicators\" [class.visually-hidden]=\"!showNavigationIndicators\" role=\"tablist\">\n\t\t\t@for (slide of slides; track slide) {\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tdata-bs-target\n\t\t\t\t\t[class.active]=\"slide.id === activeId\"\n\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t[attr.aria-labelledby]=\"'slide-' + slide.id\"\n\t\t\t\t\t[attr.aria-controls]=\"'slide-' + slide.id\"\n\t\t\t\t\t[attr.aria-selected]=\"slide.id === activeId\"\n\t\t\t\t\t(click)=\"focus(); select(slide.id, NgbSlideEventSource.INDICATOR)\"\n\t\t\t\t></button>\n\t\t\t}\n\t\t</div>\n\t\t<div class=\"carousel-inner\">\n\t\t\t@for (slide of slides; track slide; let i = $index; let c = $count) {\n\t\t\t\t<div class=\"carousel-item\" [id]=\"'slide-' + slide.id\" role=\"tabpanel\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"visually-hidden\"\n\t\t\t\t\t\ti18n=\"Currently selected slide number read by screen reader@@ngb.carousel.slide-number\"\n\t\t\t\t\t>\n\t\t\t\t\t\tSlide {{ i + 1 }} of {{ c }}\n\t\t\t\t\t</span>\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"slide.templateRef\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t\t@if (showNavigationArrows) {\n\t\t\t<button\n\t\t\t\tclass=\"carousel-control-prev\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t(click)=\"arrowLeft()\"\n\t\t\t\t[attr.aria-labelledby]=\"id + '-previous'\"\n\t\t\t>\n\t\t\t\t<span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.carousel.previous\" [id]=\"id + '-previous'\">Previous</span>\n\t\t\t</button>\n\t\t\t<button class=\"carousel-control-next\" type=\"button\" (click)=\"arrowRight()\" [attr.aria-labelledby]=\"id + '-next'\">\n\t\t\t\t<span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.carousel.next\" [id]=\"id + '-next'\">Next</span>\n\t\t\t</button>\n\t\t}\n\t`\n }]\n }], null, {\n slides: [{\n type: ContentChildren,\n args: [NgbSlide]\n }],\n animation: [{\n type: Input\n }],\n activeId: [{\n type: Input\n }],\n interval: [{\n type: Input\n }],\n wrap: [{\n type: Input\n }],\n keyboard: [{\n type: Input\n }],\n pauseOnHover: [{\n type: Input\n }],\n pauseOnFocus: [{\n type: Input\n }],\n showNavigationArrows: [{\n type: Input\n }],\n showNavigationIndicators: [{\n type: Input\n }],\n slide: [{\n type: Output\n }],\n slid: [{\n type: Output\n }]\n });\n})();\nvar NgbSlideEventSource;\n(function (NgbSlideEventSource) {\n NgbSlideEventSource[\"TIMER\"] = \"timer\";\n NgbSlideEventSource[\"ARROW_LEFT\"] = \"arrowLeft\";\n NgbSlideEventSource[\"ARROW_RIGHT\"] = \"arrowRight\";\n NgbSlideEventSource[\"INDICATOR\"] = \"indicator\";\n})(NgbSlideEventSource || (NgbSlideEventSource = {}));\nclass NgbCarouselModule {\n static #_ = this.ɵfac = function NgbCarouselModule_Factory(t) {\n return new (t || NgbCarouselModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbCarouselModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCarouselModule, [{\n type: NgModule,\n args: [{\n imports: [NgbCarousel, NgbSlide],\n exports: [NgbCarousel, NgbSlide]\n }]\n }], null, null);\n})();\nclass NgbCollapseModule {\n static #_ = this.ɵfac = function NgbCollapseModule_Factory(t) {\n return new (t || NgbCollapseModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbCollapseModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCollapseModule, [{\n type: NgModule,\n args: [{\n imports: [NgbCollapse],\n exports: [NgbCollapse]\n }]\n }], null, null);\n})();\n\n/**\n * A simple class that represents a date that datepicker also uses internally.\n *\n * It is the implementation of the `NgbDateStruct` interface that adds some convenience methods,\n * like `.equals()`, `.before()`, etc.\n *\n * All datepicker APIs consume `NgbDateStruct`, but return `NgbDate`.\n *\n * In many cases it is simpler to manipulate these objects together with\n * [`NgbCalendar`](#/components/datepicker/api#NgbCalendar) than native JS Dates.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\n *\n * @since 3.0.0\n */\nclass NgbDate {\n /**\n * A **static method** that creates a new date object from the `NgbDateStruct`,\n *\n * ex. `NgbDate.from({year: 2000, month: 5, day: 1})`.\n *\n * If the `date` is already of `NgbDate` type, the method will return the same object.\n */\n static from(date) {\n if (date instanceof NgbDate) {\n return date;\n }\n return date ? new NgbDate(date.year, date.month, date.day) : null;\n }\n constructor(year, month, day) {\n this.year = isInteger(year) ? year : null;\n this.month = isInteger(month) ? month : null;\n this.day = isInteger(day) ? day : null;\n }\n /**\n * Checks if the current date is equal to another date.\n */\n equals(other) {\n return other != null && this.year === other.year && this.month === other.month && this.day === other.day;\n }\n /**\n * Checks if the current date is before another date.\n */\n before(other) {\n if (!other) {\n return false;\n }\n if (this.year === other.year) {\n if (this.month === other.month) {\n return this.day === other.day ? false : this.day < other.day;\n } else {\n return this.month < other.month;\n }\n } else {\n return this.year < other.year;\n }\n }\n /**\n * Checks if the current date is after another date.\n */\n after(other) {\n if (!other) {\n return false;\n }\n if (this.year === other.year) {\n if (this.month === other.month) {\n return this.day === other.day ? false : this.day > other.day;\n } else {\n return this.month > other.month;\n }\n } else {\n return this.year > other.year;\n }\n }\n}\nfunction fromJSDate(jsDate) {\n return new NgbDate(jsDate.getFullYear(), jsDate.getMonth() + 1, jsDate.getDate());\n}\nfunction toJSDate(date) {\n const jsDate = new Date(date.year, date.month - 1, date.day, 12);\n // this is done avoid 30 -> 1930 conversion\n if (!isNaN(jsDate.getTime())) {\n jsDate.setFullYear(date.year);\n }\n return jsDate;\n}\nfunction NGB_DATEPICKER_CALENDAR_FACTORY() {\n return new NgbCalendarGregorian();\n}\n/**\n * A service that represents the calendar used by the datepicker.\n *\n * The default implementation uses the Gregorian calendar. You can inject it in your own\n * implementations if necessary to simplify `NgbDate` calculations.\n */\nclass NgbCalendar {\n static #_ = this.ɵfac = function NgbCalendar_Factory(t) {\n return new (t || NgbCalendar)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendar,\n factory: () => NGB_DATEPICKER_CALENDAR_FACTORY(),\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendar, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: NGB_DATEPICKER_CALENDAR_FACTORY\n }]\n }], null, null);\n})();\nclass NgbCalendarGregorian extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths() {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n getWeeksPerMonth() {\n return 6;\n }\n getNext(date, period = 'd', number = 1) {\n let jsDate = toJSDate(date);\n let checkMonth = true;\n let expectedMonth = jsDate.getMonth();\n switch (period) {\n case 'y':\n jsDate.setFullYear(jsDate.getFullYear() + number);\n break;\n case 'm':\n expectedMonth += number;\n jsDate.setMonth(expectedMonth);\n expectedMonth = expectedMonth % 12;\n if (expectedMonth < 0) {\n expectedMonth = expectedMonth + 12;\n }\n break;\n case 'd':\n jsDate.setDate(jsDate.getDate() + number);\n checkMonth = false;\n break;\n default:\n return date;\n }\n if (checkMonth && jsDate.getMonth() !== expectedMonth) {\n // this means the destination month has less days than the initial month\n // let's go back to the end of the previous month:\n jsDate.setDate(0);\n }\n return fromJSDate(jsDate);\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n let jsDate = toJSDate(date);\n let day = jsDate.getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n let date = week[thursdayIndex];\n const jsDate = toJSDate(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n jsDate.setMonth(0); // Compare with Jan 1\n jsDate.setDate(1);\n return Math.floor(Math.round((time - jsDate.getTime()) / 86400000) / 7) + 1;\n }\n getToday() {\n return fromJSDate(new Date());\n }\n isValid(date) {\n if (!date || !isInteger(date.year) || !isInteger(date.month) || !isInteger(date.day)) {\n return false;\n }\n // year 0 doesn't exist in Gregorian calendar\n if (date.year === 0) {\n return false;\n }\n const jsDate = toJSDate(date);\n return !isNaN(jsDate.getTime()) && jsDate.getFullYear() === date.year && jsDate.getMonth() + 1 === date.month && jsDate.getDate() === date.day;\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarGregorian_BaseFactory;\n return function NgbCalendarGregorian_Factory(t) {\n return (ɵNgbCalendarGregorian_BaseFactory || (ɵNgbCalendarGregorian_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarGregorian)))(t || NgbCalendarGregorian);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarGregorian,\n factory: NgbCalendarGregorian.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarGregorian, [{\n type: Injectable\n }], null, null);\n})();\nfunction isChangedDate(prev, next) {\n return !dateComparator(prev, next);\n}\nfunction isChangedMonth(prev, next) {\n return !prev && !next ? false : !prev || !next ? true : prev.year !== next.year || prev.month !== next.month;\n}\nfunction dateComparator(prev, next) {\n return !prev && !next || !!prev && !!next && prev.equals(next);\n}\nfunction checkMinBeforeMax(minDate, maxDate) {\n if (maxDate && minDate && maxDate.before(minDate)) {\n throw new Error(`'maxDate' ${maxDate} should be greater than 'minDate' ${minDate}`);\n }\n}\nfunction checkDateInRange(date, minDate, maxDate) {\n if (date && minDate && date.before(minDate)) {\n return minDate;\n }\n if (date && maxDate && date.after(maxDate)) {\n return maxDate;\n }\n return date || null;\n}\nfunction isDateSelectable(date, state) {\n const {\n minDate,\n maxDate,\n disabled,\n markDisabled\n } = state;\n return !(date === null || date === undefined || disabled || markDisabled && markDisabled(date, {\n year: date.year,\n month: date.month\n }) || minDate && date.before(minDate) || maxDate && date.after(maxDate));\n}\nfunction generateSelectBoxMonths(calendar, date, minDate, maxDate) {\n if (!date) {\n return [];\n }\n let months = calendar.getMonths(date.year);\n if (minDate && date.year === minDate.year) {\n const index = months.findIndex(month => month === minDate.month);\n months = months.slice(index);\n }\n if (maxDate && date.year === maxDate.year) {\n const index = months.findIndex(month => month === maxDate.month);\n months = months.slice(0, index + 1);\n }\n return months;\n}\nfunction generateSelectBoxYears(date, minDate, maxDate) {\n if (!date) {\n return [];\n }\n const start = minDate ? Math.max(minDate.year, date.year - 500) : date.year - 10;\n const end = maxDate ? Math.min(maxDate.year, date.year + 500) : date.year + 10;\n const length = end - start + 1;\n const numbers = Array(length);\n for (let i = 0; i < length; i++) {\n numbers[i] = start + i;\n }\n return numbers;\n}\nfunction nextMonthDisabled(calendar, date, maxDate) {\n const nextDate = Object.assign(calendar.getNext(date, 'm'), {\n day: 1\n });\n return maxDate != null && nextDate.after(maxDate);\n}\nfunction prevMonthDisabled(calendar, date, minDate) {\n const prevDate = Object.assign(calendar.getPrev(date, 'm'), {\n day: 1\n });\n return minDate != null && (prevDate.year === minDate.year && prevDate.month < minDate.month || prevDate.year < minDate.year && minDate.month === 1);\n}\nfunction buildMonths(calendar, date, state, i18n, force) {\n const {\n displayMonths,\n months\n } = state;\n // move old months to a temporary array\n const monthsToReuse = months.splice(0, months.length);\n // generate new first dates, nullify or reuse months\n const firstDates = Array.from({\n length: displayMonths\n }, (_, i) => {\n const firstDate = Object.assign(calendar.getNext(date, 'm', i), {\n day: 1\n });\n months[i] = null;\n if (!force) {\n const reusedIndex = monthsToReuse.findIndex(month => month.firstDate.equals(firstDate));\n // move reused month back to months\n if (reusedIndex !== -1) {\n months[i] = monthsToReuse.splice(reusedIndex, 1)[0];\n }\n }\n return firstDate;\n });\n // rebuild nullified months\n firstDates.forEach((firstDate, i) => {\n if (months[i] === null) {\n months[i] = buildMonth(calendar, firstDate, state, i18n, monthsToReuse.shift() || {});\n }\n });\n return months;\n}\nfunction buildMonth(calendar, date, state, i18n, month = {}) {\n const {\n dayTemplateData,\n minDate,\n maxDate,\n firstDayOfWeek,\n markDisabled,\n outsideDays,\n weekdayWidth,\n weekdaysVisible\n } = state;\n const calendarToday = calendar.getToday();\n month.firstDate = null;\n month.lastDate = null;\n month.number = date.month;\n month.year = date.year;\n month.weeks = month.weeks || [];\n month.weekdays = month.weekdays || [];\n date = getFirstViewDate(calendar, date, firstDayOfWeek);\n // clearing weekdays, if not visible\n if (!weekdaysVisible) {\n month.weekdays.length = 0;\n }\n // month has weeks\n for (let week = 0; week < calendar.getWeeksPerMonth(); week++) {\n let weekObject = month.weeks[week];\n if (!weekObject) {\n weekObject = month.weeks[week] = {\n number: 0,\n days: [],\n collapsed: true\n };\n }\n const days = weekObject.days;\n // week has days\n for (let day = 0; day < calendar.getDaysPerWeek(); day++) {\n if (week === 0 && weekdaysVisible) {\n month.weekdays[day] = i18n.getWeekdayLabel(calendar.getWeekday(date), weekdayWidth);\n }\n const newDate = new NgbDate(date.year, date.month, date.day);\n const nextDate = calendar.getNext(newDate);\n const ariaLabel = i18n.getDayAriaLabel(newDate);\n // marking date as disabled\n let disabled = !!(minDate && newDate.before(minDate) || maxDate && newDate.after(maxDate));\n if (!disabled && markDisabled) {\n disabled = markDisabled(newDate, {\n month: month.number,\n year: month.year\n });\n }\n // today\n let today = newDate.equals(calendarToday);\n // adding user-provided data to the context\n let contextUserData = dayTemplateData ? dayTemplateData(newDate, {\n month: month.number,\n year: month.year\n }) : undefined;\n // saving first date of the month\n if (month.firstDate === null && newDate.month === month.number) {\n month.firstDate = newDate;\n }\n // saving last date of the month\n if (newDate.month === month.number && nextDate.month !== month.number) {\n month.lastDate = newDate;\n }\n let dayObject = days[day];\n if (!dayObject) {\n dayObject = days[day] = {};\n }\n dayObject.date = newDate;\n dayObject.context = Object.assign(dayObject.context || {}, {\n $implicit: newDate,\n date: newDate,\n data: contextUserData,\n currentMonth: month.number,\n currentYear: month.year,\n disabled,\n focused: false,\n selected: false,\n today\n });\n dayObject.tabindex = -1;\n dayObject.ariaLabel = ariaLabel;\n dayObject.hidden = false;\n date = nextDate;\n }\n weekObject.number = calendar.getWeekNumber(days.map(day => day.date), firstDayOfWeek);\n // marking week as collapsed\n weekObject.collapsed = outsideDays === 'collapsed' && days[0].date.month !== month.number && days[days.length - 1].date.month !== month.number;\n }\n return month;\n}\nfunction getFirstViewDate(calendar, date, firstDayOfWeek) {\n const daysPerWeek = calendar.getDaysPerWeek();\n const firstMonthDate = new NgbDate(date.year, date.month, 1);\n const dayOfWeek = calendar.getWeekday(firstMonthDate) % daysPerWeek;\n return calendar.getPrev(firstMonthDate, 'd', (daysPerWeek + dayOfWeek - firstDayOfWeek) % daysPerWeek);\n}\n\n/**\n * A service supplying i18n data to the datepicker component.\n *\n * The default implementation of this service uses the Angular locale and registered locale data for\n * weekdays and month names (as explained in the Angular i18n guide).\n *\n * It also provides a way to i18n data that depends on calendar calculations, like aria labels, day, week and year\n * numerals. For other static labels the datepicker uses the default Angular i18n.\n *\n * See the [i18n demo](#/components/datepicker/examples#i18n) and\n * [Hebrew calendar demo](#/components/datepicker/calendars#hebrew) on how to extend this class and define\n * a custom provider for i18n.\n */\nclass NgbDatepickerI18n {\n /**\n * Returns the text label to display above the day view.\n *\n * @since 9.1.0\n */\n getMonthLabel(date) {\n return `${this.getMonthFullName(date.month, date.year)} ${this.getYearNumerals(date.year)}`;\n }\n /**\n * Returns the textual representation of a day that is rendered in a day cell.\n *\n * @since 3.0.0\n */\n getDayNumerals(date) {\n return `${date.day}`;\n }\n /**\n * Returns the textual representation of a week number rendered by datepicker.\n *\n * @since 3.0.0\n */\n getWeekNumerals(weekNumber) {\n return `${weekNumber}`;\n }\n /**\n * Returns the textual representation of a year that is rendered in the datepicker year select box.\n *\n * @since 3.0.0\n */\n getYearNumerals(year) {\n return `${year}`;\n }\n /**\n * Returns the week label to display in the heading of the month view.\n *\n * @since 9.1.0\n */\n getWeekLabel() {\n return '';\n }\n static #_ = this.ɵfac = function NgbDatepickerI18n_Factory(t) {\n return new (t || NgbDatepickerI18n)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerI18n,\n factory: () => (() => new NgbDatepickerI18nDefault())(),\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerI18n, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: () => new NgbDatepickerI18nDefault()\n }]\n }], null, null);\n})();\n/**\n * A service providing default implementation for the datepicker i18n.\n * It can be used as a base implementation if necessary.\n *\n * @since 9.1.0\n */\nclass NgbDatepickerI18nDefault extends NgbDatepickerI18n {\n constructor() {\n super(...arguments);\n this._locale = inject(LOCALE_ID);\n this._monthsShort = getLocaleMonthNames(this._locale, FormStyle.Standalone, TranslationWidth.Abbreviated);\n this._monthsFull = getLocaleMonthNames(this._locale, FormStyle.Standalone, TranslationWidth.Wide);\n }\n getWeekdayLabel(weekday, width) {\n const weekdaysStartingOnSunday = getLocaleDayNames(this._locale, FormStyle.Standalone, width === undefined ? TranslationWidth.Short : width);\n const weekdays = weekdaysStartingOnSunday.map((day, index) => weekdaysStartingOnSunday[(index + 1) % 7]);\n return weekdays[weekday - 1] || '';\n }\n getMonthShortName(month) {\n return this._monthsShort[month - 1] || '';\n }\n getMonthFullName(month) {\n return this._monthsFull[month - 1] || '';\n }\n getDayAriaLabel(date) {\n const jsDate = new Date(date.year, date.month - 1, date.day);\n return formatDate(jsDate, 'fullDate', this._locale);\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDatepickerI18nDefault_BaseFactory;\n return function NgbDatepickerI18nDefault_Factory(t) {\n return (ɵNgbDatepickerI18nDefault_BaseFactory || (ɵNgbDatepickerI18nDefault_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDatepickerI18nDefault)))(t || NgbDatepickerI18nDefault);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerI18nDefault,\n factory: NgbDatepickerI18nDefault.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerI18nDefault, [{\n type: Injectable\n }], null, null);\n})();\nclass NgbDatepickerService {\n constructor() {\n this._VALIDATORS = {\n dayTemplateData: dayTemplateData => {\n if (this._state.dayTemplateData !== dayTemplateData) {\n return {\n dayTemplateData\n };\n }\n },\n displayMonths: displayMonths => {\n displayMonths = toInteger(displayMonths);\n if (isInteger(displayMonths) && displayMonths > 0 && this._state.displayMonths !== displayMonths) {\n return {\n displayMonths\n };\n }\n },\n disabled: disabled => {\n if (this._state.disabled !== disabled) {\n return {\n disabled\n };\n }\n },\n firstDayOfWeek: firstDayOfWeek => {\n firstDayOfWeek = toInteger(firstDayOfWeek);\n if (isInteger(firstDayOfWeek) && firstDayOfWeek >= 0 && this._state.firstDayOfWeek !== firstDayOfWeek) {\n return {\n firstDayOfWeek\n };\n }\n },\n focusVisible: focusVisible => {\n if (this._state.focusVisible !== focusVisible && !this._state.disabled) {\n return {\n focusVisible\n };\n }\n },\n markDisabled: markDisabled => {\n if (this._state.markDisabled !== markDisabled) {\n return {\n markDisabled\n };\n }\n },\n maxDate: date => {\n const maxDate = this.toValidDate(date, null);\n if (isChangedDate(this._state.maxDate, maxDate)) {\n return {\n maxDate\n };\n }\n },\n minDate: date => {\n const minDate = this.toValidDate(date, null);\n if (isChangedDate(this._state.minDate, minDate)) {\n return {\n minDate\n };\n }\n },\n navigation: navigation => {\n if (this._state.navigation !== navigation) {\n return {\n navigation\n };\n }\n },\n outsideDays: outsideDays => {\n if (this._state.outsideDays !== outsideDays) {\n return {\n outsideDays\n };\n }\n },\n weekdays: weekdays => {\n const weekdayWidth = weekdays === true || weekdays === false ? TranslationWidth.Short : weekdays;\n const weekdaysVisible = weekdays === true || weekdays === false ? weekdays : true;\n if (this._state.weekdayWidth !== weekdayWidth || this._state.weekdaysVisible !== weekdaysVisible) {\n return {\n weekdayWidth,\n weekdaysVisible\n };\n }\n }\n };\n this._calendar = inject(NgbCalendar);\n this._i18n = inject(NgbDatepickerI18n);\n this._model$ = new Subject();\n this._dateSelect$ = new Subject();\n this._state = {\n dayTemplateData: null,\n markDisabled: null,\n maxDate: null,\n minDate: null,\n disabled: false,\n displayMonths: 1,\n firstDate: null,\n firstDayOfWeek: 1,\n lastDate: null,\n focusDate: null,\n focusVisible: false,\n months: [],\n navigation: 'select',\n outsideDays: 'visible',\n prevDisabled: false,\n nextDisabled: false,\n selectedDate: null,\n selectBoxes: {\n years: [],\n months: []\n },\n weekdayWidth: TranslationWidth.Short,\n weekdaysVisible: true\n };\n }\n get model$() {\n return this._model$.pipe(filter(model => model.months.length > 0));\n }\n get dateSelect$() {\n return this._dateSelect$.pipe(filter(date => date !== null));\n }\n set(options) {\n let patch = Object.keys(options).map(key => this._VALIDATORS[key](options[key])).reduce((obj, part) => ({\n ...obj,\n ...part\n }), {});\n if (Object.keys(patch).length > 0) {\n this._nextState(patch);\n }\n }\n focus(date) {\n const focusedDate = this.toValidDate(date, null);\n if (focusedDate != null && !this._state.disabled && isChangedDate(this._state.focusDate, focusedDate)) {\n this._nextState({\n focusDate: date\n });\n }\n }\n focusSelect() {\n if (isDateSelectable(this._state.focusDate, this._state)) {\n this.select(this._state.focusDate, {\n emitEvent: true\n });\n }\n }\n open(date) {\n const firstDate = this.toValidDate(date, this._calendar.getToday());\n if (firstDate != null && !this._state.disabled && (!this._state.firstDate || isChangedMonth(this._state.firstDate, firstDate))) {\n this._nextState({\n firstDate\n });\n }\n }\n select(date, options = {}) {\n const selectedDate = this.toValidDate(date, null);\n if (selectedDate != null && !this._state.disabled) {\n if (isChangedDate(this._state.selectedDate, selectedDate)) {\n this._nextState({\n selectedDate\n });\n }\n if (options.emitEvent && isDateSelectable(selectedDate, this._state)) {\n this._dateSelect$.next(selectedDate);\n }\n }\n }\n toValidDate(date, defaultValue) {\n const ngbDate = NgbDate.from(date);\n if (defaultValue === undefined) {\n defaultValue = this._calendar.getToday();\n }\n return this._calendar.isValid(ngbDate) ? ngbDate : defaultValue;\n }\n getMonth(struct) {\n for (let month of this._state.months) {\n if (struct.month === month.number && struct.year === month.year) {\n return month;\n }\n }\n throw new Error(`month ${struct.month} of year ${struct.year} not found`);\n }\n _nextState(patch) {\n const newState = this._updateState(patch);\n this._patchContexts(newState);\n this._state = newState;\n this._model$.next(this._state);\n }\n _patchContexts(state) {\n const {\n months,\n displayMonths,\n selectedDate,\n focusDate,\n focusVisible,\n disabled,\n outsideDays\n } = state;\n state.months.forEach(month => {\n month.weeks.forEach(week => {\n week.days.forEach(day => {\n // patch focus flag\n if (focusDate) {\n day.context.focused = focusDate.equals(day.date) && focusVisible;\n }\n // calculating tabindex\n day.tabindex = !disabled && focusDate && day.date.equals(focusDate) && focusDate.month === month.number ? 0 : -1;\n // override context disabled\n if (disabled === true) {\n day.context.disabled = true;\n }\n // patch selection flag\n if (selectedDate !== undefined) {\n day.context.selected = selectedDate !== null && selectedDate.equals(day.date);\n }\n // visibility\n if (month.number !== day.date.month) {\n day.hidden = outsideDays === 'hidden' || outsideDays === 'collapsed' || displayMonths > 1 && day.date.after(months[0].firstDate) && day.date.before(months[displayMonths - 1].lastDate);\n }\n });\n });\n });\n }\n _updateState(patch) {\n // patching fields\n const state = Object.assign({}, this._state, patch);\n let startDate = state.firstDate;\n // min/max dates changed\n if ('minDate' in patch || 'maxDate' in patch) {\n checkMinBeforeMax(state.minDate, state.maxDate);\n state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate);\n state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate);\n startDate = state.focusDate;\n }\n // disabled\n if ('disabled' in patch) {\n state.focusVisible = false;\n }\n // initial rebuild via 'select()'\n if ('selectedDate' in patch && this._state.months.length === 0) {\n startDate = state.selectedDate;\n }\n // terminate early if only focus visibility was changed\n if ('focusVisible' in patch) {\n return state;\n }\n // focus date changed\n if ('focusDate' in patch) {\n state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate);\n startDate = state.focusDate;\n // nothing to rebuild if only focus changed and it is still visible\n if (state.months.length !== 0 && state.focusDate && !state.focusDate.before(state.firstDate) && !state.focusDate.after(state.lastDate)) {\n return state;\n }\n }\n // first date changed\n if ('firstDate' in patch) {\n state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate);\n startDate = state.firstDate;\n }\n // rebuilding months\n if (startDate) {\n const forceRebuild = 'dayTemplateData' in patch || 'firstDayOfWeek' in patch || 'markDisabled' in patch || 'minDate' in patch || 'maxDate' in patch || 'disabled' in patch || 'outsideDays' in patch || 'weekdaysVisible' in patch;\n const months = buildMonths(this._calendar, startDate, state, this._i18n, forceRebuild);\n // updating months and boundary dates\n state.months = months;\n state.firstDate = months[0].firstDate;\n state.lastDate = months[months.length - 1].lastDate;\n // reset selected date if 'markDisabled' returns true\n if ('selectedDate' in patch && !isDateSelectable(state.selectedDate, state)) {\n state.selectedDate = null;\n }\n // adjusting focus after months were built\n if ('firstDate' in patch) {\n if (!state.focusDate || state.focusDate.before(state.firstDate) || state.focusDate.after(state.lastDate)) {\n state.focusDate = startDate;\n }\n }\n // adjusting months/years for the select box navigation\n const yearChanged = !this._state.firstDate || this._state.firstDate.year !== state.firstDate.year;\n const monthChanged = !this._state.firstDate || this._state.firstDate.month !== state.firstDate.month;\n if (state.navigation === 'select') {\n // years -> boundaries (min/max were changed)\n if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.years.length === 0 || yearChanged) {\n state.selectBoxes.years = generateSelectBoxYears(state.firstDate, state.minDate, state.maxDate);\n }\n // months -> when current year or boundaries change\n if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.months.length === 0 || yearChanged) {\n state.selectBoxes.months = generateSelectBoxMonths(this._calendar, state.firstDate, state.minDate, state.maxDate);\n }\n } else {\n state.selectBoxes = {\n years: [],\n months: []\n };\n }\n // updating navigation arrows -> boundaries change (min/max) or month/year changes\n if ((state.navigation === 'arrows' || state.navigation === 'select') && (monthChanged || yearChanged || 'minDate' in patch || 'maxDate' in patch || 'disabled' in patch)) {\n state.prevDisabled = state.disabled || prevMonthDisabled(this._calendar, state.firstDate, state.minDate);\n state.nextDisabled = state.disabled || nextMonthDisabled(this._calendar, state.lastDate, state.maxDate);\n }\n }\n return state;\n }\n static #_ = this.ɵfac = function NgbDatepickerService_Factory(t) {\n return new (t || NgbDatepickerService)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerService,\n factory: NgbDatepickerService.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerService, [{\n type: Injectable\n }], null, null);\n})();\nvar NavigationEvent;\n(function (NavigationEvent) {\n NavigationEvent[NavigationEvent[\"PREV\"] = 0] = \"PREV\";\n NavigationEvent[NavigationEvent[\"NEXT\"] = 1] = \"NEXT\";\n})(NavigationEvent || (NavigationEvent = {}));\n\n/**\n * A configuration service for the [`NgbDatepicker`](#/components/datepicker/api#NgbDatepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the datepickers used in the application.\n */\nclass NgbDatepickerConfig {\n constructor() {\n this.displayMonths = 1;\n this.firstDayOfWeek = 1;\n this.navigation = 'select';\n this.outsideDays = 'visible';\n this.showWeekNumbers = false;\n this.weekdays = TranslationWidth.Short;\n }\n static #_ = this.ɵfac = function NgbDatepickerConfig_Factory(t) {\n return new (t || NgbDatepickerConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerConfig,\n factory: NgbDatepickerConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nfunction NGB_DATEPICKER_DATE_ADAPTER_FACTORY() {\n return new NgbDateStructAdapter();\n}\n/**\n * An abstract service that does the conversion between the internal datepicker `NgbDateStruct` model and\n * any provided user date model `D`, ex. a string, a native date, etc.\n *\n * The adapter is used **only** for conversion when binding datepicker to a form control,\n * ex. `[(ngModel)]=\"userDateModel\"`. Here `userDateModel` can be of any type.\n *\n * The default datepicker implementation assumes we use `NgbDateStruct` as a user model.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details\n * and the [custom adapter demo](#/components/datepicker/examples#adapter) for an example.\n */\nclass NgbDateAdapter {\n static #_ = this.ɵfac = function NgbDateAdapter_Factory(t) {\n return new (t || NgbDateAdapter)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDateAdapter,\n factory: () => NGB_DATEPICKER_DATE_ADAPTER_FACTORY(),\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDateAdapter, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY\n }]\n }], null, null);\n})();\nclass NgbDateStructAdapter extends NgbDateAdapter {\n /**\n * Converts a NgbDateStruct value into NgbDateStruct value\n */\n fromModel(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) ? {\n year: date.year,\n month: date.month,\n day: date.day\n } : null;\n }\n /**\n * Converts a NgbDateStruct value into NgbDateStruct value\n */\n toModel(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) ? {\n year: date.year,\n month: date.month,\n day: date.day\n } : null;\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDateStructAdapter_BaseFactory;\n return function NgbDateStructAdapter_Factory(t) {\n return (ɵNgbDateStructAdapter_BaseFactory || (ɵNgbDateStructAdapter_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDateStructAdapter)))(t || NgbDateStructAdapter);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDateStructAdapter,\n factory: NgbDateStructAdapter.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDateStructAdapter, [{\n type: Injectable\n }], null, null);\n})();\nvar Key;\n(function (Key) {\n Key[Key[\"Tab\"] = 9] = \"Tab\";\n Key[Key[\"Enter\"] = 13] = \"Enter\";\n Key[Key[\"Escape\"] = 27] = \"Escape\";\n Key[Key[\"Space\"] = 32] = \"Space\";\n Key[Key[\"PageUp\"] = 33] = \"PageUp\";\n Key[Key[\"PageDown\"] = 34] = \"PageDown\";\n Key[Key[\"End\"] = 35] = \"End\";\n Key[Key[\"Home\"] = 36] = \"Home\";\n Key[Key[\"ArrowLeft\"] = 37] = \"ArrowLeft\";\n Key[Key[\"ArrowUp\"] = 38] = \"ArrowUp\";\n Key[Key[\"ArrowRight\"] = 39] = \"ArrowRight\";\n Key[Key[\"ArrowDown\"] = 40] = \"ArrowDown\";\n})(Key || (Key = {}));\n\n/**\n * A service that represents the keyboard navigation.\n *\n * Default keyboard shortcuts [are documented in the overview](#/components/datepicker/overview#keyboard-shortcuts)\n *\n * @since 5.2.0\n */\nclass NgbDatepickerKeyboardService {\n /**\n * Processes a keyboard event.\n */\n processKey(event, datepicker) {\n const {\n state,\n calendar\n } = datepicker;\n /* eslint-disable-next-line deprecation/deprecation */\n switch (event.which) {\n case Key.PageUp:\n datepicker.focusDate(calendar.getPrev(state.focusedDate, event.shiftKey ? 'y' : 'm', 1));\n break;\n case Key.PageDown:\n datepicker.focusDate(calendar.getNext(state.focusedDate, event.shiftKey ? 'y' : 'm', 1));\n break;\n case Key.End:\n datepicker.focusDate(event.shiftKey ? state.maxDate : state.lastDate);\n break;\n case Key.Home:\n datepicker.focusDate(event.shiftKey ? state.minDate : state.firstDate);\n break;\n case Key.ArrowLeft:\n datepicker.focusDate(calendar.getPrev(state.focusedDate, 'd', 1));\n break;\n case Key.ArrowUp:\n datepicker.focusDate(calendar.getPrev(state.focusedDate, 'd', calendar.getDaysPerWeek()));\n break;\n case Key.ArrowRight:\n datepicker.focusDate(calendar.getNext(state.focusedDate, 'd', 1));\n break;\n case Key.ArrowDown:\n datepicker.focusDate(calendar.getNext(state.focusedDate, 'd', calendar.getDaysPerWeek()));\n break;\n case Key.Enter:\n case Key.Space:\n datepicker.focusSelect();\n break;\n default:\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n }\n static #_ = this.ɵfac = function NgbDatepickerKeyboardService_Factory(t) {\n return new (t || NgbDatepickerKeyboardService)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerKeyboardService,\n factory: NgbDatepickerKeyboardService.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerKeyboardService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nclass NgbDatepickerDayView {\n constructor() {\n this.i18n = inject(NgbDatepickerI18n);\n }\n isMuted() {\n return !this.selected && (this.date.month !== this.currentMonth || this.disabled);\n }\n static #_ = this.ɵfac = function NgbDatepickerDayView_Factory(t) {\n return new (t || NgbDatepickerDayView)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbDatepickerDayView,\n selectors: [[\"\", \"ngbDatepickerDayView\", \"\"]],\n hostAttrs: [1, \"btn-light\"],\n hostVars: 10,\n hostBindings: function NgbDatepickerDayView_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"bg-primary\", ctx.selected)(\"text-white\", ctx.selected)(\"text-muted\", ctx.isMuted())(\"outside\", ctx.isMuted())(\"active\", ctx.focused);\n }\n },\n inputs: {\n currentMonth: \"currentMonth\",\n date: \"date\",\n disabled: \"disabled\",\n focused: \"focused\",\n selected: \"selected\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c1,\n decls: 1,\n vars: 1,\n template: function NgbDatepickerDayView_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n i0.ɵɵtextInterpolate(ctx.i18n.getDayNumerals(ctx.date));\n }\n },\n styles: [\"[ngbDatepickerDayView]{text-align:center;width:2rem;height:2rem;line-height:2rem;border-radius:.25rem;background:transparent}[ngbDatepickerDayView]:hover:not(.bg-primary),[ngbDatepickerDayView].active:not(.bg-primary){background-color:var(--bs-tertiary-bg);outline:1px solid var(--bs-border-color)}[ngbDatepickerDayView].outside{opacity:.5}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerDayView, [{\n type: Component,\n args: [{\n selector: '[ngbDatepickerDayView]',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'btn-light',\n '[class.bg-primary]': 'selected',\n '[class.text-white]': 'selected',\n '[class.text-muted]': 'isMuted()',\n '[class.outside]': 'isMuted()',\n '[class.active]': 'focused'\n },\n template: `{{ i18n.getDayNumerals(date) }}`,\n styles: [\"[ngbDatepickerDayView]{text-align:center;width:2rem;height:2rem;line-height:2rem;border-radius:.25rem;background:transparent}[ngbDatepickerDayView]:hover:not(.bg-primary),[ngbDatepickerDayView].active:not(.bg-primary){background-color:var(--bs-tertiary-bg);outline:1px solid var(--bs-border-color)}[ngbDatepickerDayView].outside{opacity:.5}\\n\"]\n }]\n }], null, {\n currentMonth: [{\n type: Input\n }],\n date: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n focused: [{\n type: Input\n }],\n selected: [{\n type: Input\n }]\n });\n})();\nclass NgbDatepickerNavigationSelect {\n constructor() {\n this._month = -1;\n this._year = -1;\n this.i18n = inject(NgbDatepickerI18n);\n this.select = new EventEmitter();\n }\n changeMonth(month) {\n this.select.emit(new NgbDate(this.date.year, toInteger(month), 1));\n }\n changeYear(year) {\n this.select.emit(new NgbDate(toInteger(year), this.date.month, 1));\n }\n ngAfterViewChecked() {\n if (this.date) {\n if (this.date.month !== this._month) {\n this._month = this.date.month;\n this.monthSelect.nativeElement.value = `${this._month}`;\n }\n if (this.date.year !== this._year) {\n this._year = this.date.year;\n this.yearSelect.nativeElement.value = `${this._year}`;\n }\n }\n }\n static #_ = this.ɵfac = function NgbDatepickerNavigationSelect_Factory(t) {\n return new (t || NgbDatepickerNavigationSelect)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbDatepickerNavigationSelect,\n selectors: [[\"ngb-datepicker-navigation-select\"]],\n viewQuery: function NgbDatepickerNavigationSelect_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c2, 7, ElementRef);\n i0.ɵɵviewQuery(_c3, 7, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.monthSelect = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.yearSelect = _t.first);\n }\n },\n inputs: {\n date: \"date\",\n disabled: \"disabled\",\n months: \"months\",\n years: \"years\"\n },\n outputs: {\n select: \"select\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 8,\n vars: 2,\n consts: () => {\n let i18n_4;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_4 = goog.getMsg(\"Select month\");\n i18n_4 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_4;\n } else {\n i18n_4 = $localize`:@@ngb.datepicker.select-month:Select month`;\n }\n let i18n_5;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_5 = goog.getMsg(\"Select month\");\n i18n_5 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_5;\n } else {\n i18n_5 = $localize`:@@ngb.datepicker.select-month:Select month`;\n }\n let i18n_6;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_6 = goog.getMsg(\"Select year\");\n i18n_6 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_6;\n } else {\n i18n_6 = $localize`:@@ngb.datepicker.select-year:Select year`;\n }\n let i18n_7;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_7 = goog.getMsg(\"Select year\");\n i18n_7 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_7;\n } else {\n i18n_7 = $localize`:@@ngb.datepicker.select-year:Select year`;\n }\n return [[\"month\", \"\"], [\"year\", \"\"], [\"aria-label\", i18n_4, \"title\", i18n_5, 1, \"form-select\", 3, \"change\", \"disabled\"], [\"aria-label\", i18n_6, \"title\", i18n_7, 1, \"form-select\", 3, \"change\", \"disabled\"], [3, \"value\"]];\n },\n template: function NgbDatepickerNavigationSelect_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"select\", 2, 0);\n i0.ɵɵlistener(\"change\", function NgbDatepickerNavigationSelect_Template_select_change_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.changeMonth($event.target.value));\n });\n i0.ɵɵrepeaterCreate(2, NgbDatepickerNavigationSelect_For_3_Template, 2, 3, \"option\", null, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"select\", 3, 1);\n i0.ɵɵlistener(\"change\", function NgbDatepickerNavigationSelect_Template_select_change_4_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.changeYear($event.target.value));\n });\n i0.ɵɵrepeaterCreate(6, NgbDatepickerNavigationSelect_For_7_Template, 2, 2, \"option\", null, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"disabled\", ctx.disabled);\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx.months);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"disabled\", ctx.disabled);\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx.years);\n }\n },\n styles: [\"ngb-datepicker-navigation-select>.form-select{flex:1 1 auto;padding:0 .5rem;font-size:.875rem;height:1.85rem}ngb-datepicker-navigation-select>.form-select:focus{z-index:1}ngb-datepicker-navigation-select>.form-select::-ms-value{background-color:transparent!important}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerNavigationSelect, [{\n type: Component,\n args: [{\n selector: 'ngb-datepicker-navigation-select',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n\t\t<select\n\t\t\t#month\n\t\t\t[disabled]=\"disabled\"\n\t\t\tclass=\"form-select\"\n\t\t\ti18n-aria-label=\"@@ngb.datepicker.select-month\"\n\t\t\taria-label=\"Select month\"\n\t\t\ti18n-title=\"@@ngb.datepicker.select-month\"\n\t\t\ttitle=\"Select month\"\n\t\t\t(change)=\"changeMonth($any($event).target.value)\"\n\t\t>\n\t\t\t@for (m of months; track m) {\n\t\t\t\t<option [attr.aria-label]=\"i18n.getMonthFullName(m, date.year)\" [value]=\"m\">{{\n\t\t\t\t\ti18n.getMonthShortName(m, date.year)\n\t\t\t\t}}</option>\n\t\t\t}</select\n\t\t><select\n\t\t\t#year\n\t\t\t[disabled]=\"disabled\"\n\t\t\tclass=\"form-select\"\n\t\t\ti18n-aria-label=\"@@ngb.datepicker.select-year\"\n\t\t\taria-label=\"Select year\"\n\t\t\ti18n-title=\"@@ngb.datepicker.select-year\"\n\t\t\ttitle=\"Select year\"\n\t\t\t(change)=\"changeYear($any($event).target.value)\"\n\t\t>\n\t\t\t@for (y of years; track y) {\n\t\t\t\t<option [value]=\"y\">{{ i18n.getYearNumerals(y) }}</option>\n\t\t\t}\n\t\t</select>\n\t`,\n styles: [\"ngb-datepicker-navigation-select>.form-select{flex:1 1 auto;padding:0 .5rem;font-size:.875rem;height:1.85rem}ngb-datepicker-navigation-select>.form-select:focus{z-index:1}ngb-datepicker-navigation-select>.form-select::-ms-value{background-color:transparent!important}\\n\"]\n }]\n }], null, {\n date: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n months: [{\n type: Input\n }],\n years: [{\n type: Input\n }],\n select: [{\n type: Output\n }],\n monthSelect: [{\n type: ViewChild,\n args: ['month', {\n static: true,\n read: ElementRef\n }]\n }],\n yearSelect: [{\n type: ViewChild,\n args: ['year', {\n static: true,\n read: ElementRef\n }]\n }]\n });\n})();\nclass NgbDatepickerNavigation {\n constructor() {\n this.navigation = NavigationEvent;\n this.i18n = inject(NgbDatepickerI18n);\n this.months = [];\n this.navigate = new EventEmitter();\n this.select = new EventEmitter();\n }\n onClickPrev(event) {\n event.currentTarget.focus();\n this.navigate.emit(this.navigation.PREV);\n }\n onClickNext(event) {\n event.currentTarget.focus();\n this.navigate.emit(this.navigation.NEXT);\n }\n static #_ = this.ɵfac = function NgbDatepickerNavigation_Factory(t) {\n return new (t || NgbDatepickerNavigation)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbDatepickerNavigation,\n selectors: [[\"ngb-datepicker-navigation\"]],\n inputs: {\n date: \"date\",\n disabled: \"disabled\",\n months: \"months\",\n showSelect: \"showSelect\",\n prevDisabled: \"prevDisabled\",\n nextDisabled: \"nextDisabled\",\n selectBoxes: \"selectBoxes\"\n },\n outputs: {\n navigate: \"navigate\",\n select: \"select\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 8,\n vars: 4,\n consts: () => {\n let i18n_8;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_8 = goog.getMsg(\"Previous month\");\n i18n_8 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_8;\n } else {\n i18n_8 = $localize`:@@ngb.datepicker.previous-month:Previous month`;\n }\n let i18n_9;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_9 = goog.getMsg(\"Previous month\");\n i18n_9 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_9;\n } else {\n i18n_9 = $localize`:@@ngb.datepicker.previous-month:Previous month`;\n }\n let i18n_10;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_10 = goog.getMsg(\"Next month\");\n i18n_10 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_10;\n } else {\n i18n_10 = $localize`:@@ngb.datepicker.next-month:Next month`;\n }\n let i18n_11;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_11 = goog.getMsg(\"Next month\");\n i18n_11 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_11;\n } else {\n i18n_11 = $localize`:@@ngb.datepicker.next-month:Next month`;\n }\n return [[1, \"ngb-dp-arrow\", \"ngb-dp-arrow-prev\"], [\"type\", \"button\", \"aria-label\", i18n_8, \"title\", i18n_9, 1, \"btn\", \"btn-link\", \"ngb-dp-arrow-btn\", 3, \"click\", \"disabled\"], [1, \"ngb-dp-navigation-chevron\"], [1, \"ngb-dp-navigation-select\"], [1, \"ngb-dp-arrow\", \"ngb-dp-arrow-next\"], [\"type\", \"button\", \"aria-label\", i18n_10, \"title\", i18n_11, 1, \"btn\", \"btn-link\", \"ngb-dp-arrow-btn\", 3, \"click\", \"disabled\"], [1, \"ngb-dp-navigation-select\", 3, \"select\", \"date\", \"disabled\", \"months\", \"years\"], [1, \"ngb-dp-arrow\"], [1, \"ngb-dp-month-name\"]];\n },\n template: function NgbDatepickerNavigation_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"button\", 1);\n i0.ɵɵlistener(\"click\", function NgbDatepickerNavigation_Template_button_click_1_listener($event) {\n return ctx.onClickPrev($event);\n });\n i0.ɵɵelement(2, \"span\", 2);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(3, NgbDatepickerNavigation_Conditional_3_Template, 1, 4, \"ngb-datepicker-navigation-select\", 3)(4, NgbDatepickerNavigation_Conditional_4_Template, 2, 0);\n i0.ɵɵelementStart(5, \"div\", 4)(6, \"button\", 5);\n i0.ɵɵlistener(\"click\", function NgbDatepickerNavigation_Template_button_click_6_listener($event) {\n return ctx.onClickNext($event);\n });\n i0.ɵɵelement(7, \"span\", 2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"disabled\", ctx.prevDisabled);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(3, ctx.showSelect ? 3 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(4, !ctx.showSelect ? 4 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"disabled\", ctx.nextDisabled);\n }\n },\n dependencies: [NgbDatepickerNavigationSelect],\n styles: [\"ngb-datepicker-navigation{display:flex;align-items:center}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;width:.75em;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg)}.ngb-dp-arrow{display:flex;flex:1 1 auto;padding-right:0;padding-left:0;margin:0;width:2rem;height:2rem}.ngb-dp-arrow-next{justify-content:flex-end}.ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(45deg);margin-left:.15em;margin-right:.25em}.ngb-dp-arrow-btn{padding:0 .25rem;margin:0 .5rem;border:none;background-color:transparent;z-index:1}.ngb-dp-arrow-btn:focus{outline-width:1px;outline-style:auto}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{display:flex;flex:1 1 9rem}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerNavigation, [{\n type: Component,\n args: [{\n selector: 'ngb-datepicker-navigation',\n standalone: true,\n imports: [NgbDatepickerNavigationSelect],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n\t\t<div class=\"ngb-dp-arrow ngb-dp-arrow-prev\">\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"btn btn-link ngb-dp-arrow-btn\"\n\t\t\t\t(click)=\"onClickPrev($event)\"\n\t\t\t\t[disabled]=\"prevDisabled\"\n\t\t\t\ti18n-aria-label=\"@@ngb.datepicker.previous-month\"\n\t\t\t\taria-label=\"Previous month\"\n\t\t\t\ti18n-title=\"@@ngb.datepicker.previous-month\"\n\t\t\t\ttitle=\"Previous month\"\n\t\t\t>\n\t\t\t\t<span class=\"ngb-dp-navigation-chevron\"></span>\n\t\t\t</button>\n\t\t</div>\n\t\t@if (showSelect) {\n\t\t\t<ngb-datepicker-navigation-select\n\t\t\t\tclass=\"ngb-dp-navigation-select\"\n\t\t\t\t[date]=\"date\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[months]=\"selectBoxes.months\"\n\t\t\t\t[years]=\"selectBoxes.years\"\n\t\t\t\t(select)=\"select.emit($event)\"\n\t\t\t/>\n\t\t}\n\n\t\t@if (!showSelect) {\n\t\t\t@for (month of months; track month; let i = $index) {\n\t\t\t\t@if (i > 0) {\n\t\t\t\t\t<div class=\"ngb-dp-arrow\"></div>\n\t\t\t\t}\n\t\t\t\t<div class=\"ngb-dp-month-name\">\n\t\t\t\t\t{{ i18n.getMonthLabel(month.firstDate) }}\n\t\t\t\t</div>\n\t\t\t\t@if (i !== months.length - 1) {\n\t\t\t\t\t<div class=\"ngb-dp-arrow\"></div>\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t<div class=\"ngb-dp-arrow ngb-dp-arrow-next\">\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"btn btn-link ngb-dp-arrow-btn\"\n\t\t\t\t(click)=\"onClickNext($event)\"\n\t\t\t\t[disabled]=\"nextDisabled\"\n\t\t\t\ti18n-aria-label=\"@@ngb.datepicker.next-month\"\n\t\t\t\taria-label=\"Next month\"\n\t\t\t\ti18n-title=\"@@ngb.datepicker.next-month\"\n\t\t\t\ttitle=\"Next month\"\n\t\t\t>\n\t\t\t\t<span class=\"ngb-dp-navigation-chevron\"></span>\n\t\t\t</button>\n\t\t</div>\n\t`,\n styles: [\"ngb-datepicker-navigation{display:flex;align-items:center}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;width:.75em;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg)}.ngb-dp-arrow{display:flex;flex:1 1 auto;padding-right:0;padding-left:0;margin:0;width:2rem;height:2rem}.ngb-dp-arrow-next{justify-content:flex-end}.ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(45deg);margin-left:.15em;margin-right:.25em}.ngb-dp-arrow-btn{padding:0 .25rem;margin:0 .5rem;border:none;background-color:transparent;z-index:1}.ngb-dp-arrow-btn:focus{outline-width:1px;outline-style:auto}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{display:flex;flex:1 1 9rem}\\n\"]\n }]\n }], null, {\n date: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n months: [{\n type: Input\n }],\n showSelect: [{\n type: Input\n }],\n prevDisabled: [{\n type: Input\n }],\n nextDisabled: [{\n type: Input\n }],\n selectBoxes: [{\n type: Input\n }],\n navigate: [{\n type: Output\n }],\n select: [{\n type: Output\n }]\n });\n})();\n\n/**\n * A directive that marks the content template that customizes the way datepicker months are displayed\n *\n * @since 5.3.0\n */\nclass NgbDatepickerContent {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static #_ = this.ɵfac = function NgbDatepickerContent_Factory(t) {\n return new (t || NgbDatepickerContent)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDatepickerContent,\n selectors: [[\"ng-template\", \"ngbDatepickerContent\", \"\"]],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerContent, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbDatepickerContent]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A component that renders one month including all the days, weekdays and week numbers. Can be used inside\n * the `<ng-template ngbDatepickerMonths></ng-template>` when you want to customize months layout.\n *\n * For a usage example, see [custom month layout demo](#/components/datepicker/examples#custommonth)\n *\n * @since 5.3.0\n */\nclass NgbDatepickerMonth {\n constructor() {\n this._keyboardService = inject(NgbDatepickerKeyboardService);\n this._service = inject(NgbDatepickerService);\n this.i18n = inject(NgbDatepickerI18n);\n this.datepicker = inject(NgbDatepicker);\n }\n /**\n * The first date of month to be rendered.\n *\n * This month must one of the months present in the\n * [datepicker state](#/components/datepicker/api#NgbDatepickerState).\n */\n set month(month) {\n this.viewModel = this._service.getMonth(month);\n }\n onKeyDown(event) {\n this._keyboardService.processKey(event, this.datepicker);\n }\n doSelect(day) {\n if (!day.context.disabled && !day.hidden) {\n this.datepicker.onDateSelect(day.date);\n }\n }\n static #_ = this.ɵfac = function NgbDatepickerMonth_Factory(t) {\n return new (t || NgbDatepickerMonth)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbDatepickerMonth,\n selectors: [[\"ngb-datepicker-month\"]],\n hostAttrs: [\"role\", \"grid\"],\n hostBindings: function NgbDatepickerMonth_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function NgbDatepickerMonth_keydown_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n });\n }\n },\n inputs: {\n month: \"month\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 1,\n consts: [[\"role\", \"row\", 1, \"ngb-dp-week\", \"ngb-dp-weekdays\"], [1, \"ngb-dp-weekday\", \"ngb-dp-showweek\", \"small\"], [\"role\", \"columnheader\", 1, \"ngb-dp-weekday\", \"small\"], [\"role\", \"row\", 1, \"ngb-dp-week\"], [1, \"ngb-dp-week-number\", \"small\", \"text-muted\"], [\"role\", \"gridcell\", 1, \"ngb-dp-day\"], [\"role\", \"gridcell\", 1, \"ngb-dp-day\", 3, \"click\", \"tabindex\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgbDatepickerMonth_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbDatepickerMonth_Conditional_0_Template, 4, 1, \"div\", 0);\n i0.ɵɵrepeaterCreate(1, NgbDatepickerMonth_For_2_Template, 1, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n i0.ɵɵconditional(0, ctx.viewModel.weekdays.length > 0 ? 0 : -1);\n i0.ɵɵadvance();\n i0.ɵɵrepeater(ctx.viewModel.weeks);\n }\n },\n dependencies: [NgTemplateOutlet],\n styles: [\"ngb-datepicker-month{display:block}.ngb-dp-weekday,.ngb-dp-week-number{line-height:2rem;text-align:center;font-style:italic}.ngb-dp-weekday{color:var(--bs-info)}.ngb-dp-week{border-radius:.25rem;display:flex}.ngb-dp-weekdays{border-bottom:1px solid var(--bs-border-color);border-radius:0;background-color:var(--bs-tertiary-bg)}.ngb-dp-day,.ngb-dp-weekday,.ngb-dp-week-number{width:2rem;height:2rem}.ngb-dp-day{cursor:pointer}.ngb-dp-day.disabled,.ngb-dp-day.hidden{cursor:default;pointer-events:none}.ngb-dp-day[tabindex=\\\"0\\\"]{z-index:1}\\n\"],\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerMonth, [{\n type: Component,\n args: [{\n selector: 'ngb-datepicker-month',\n standalone: true,\n imports: [NgTemplateOutlet],\n host: {\n role: 'grid',\n '(keydown)': 'onKeyDown($event)'\n },\n encapsulation: ViewEncapsulation.None,\n template: `\n\t\t@if (viewModel.weekdays.length > 0) {\n\t\t\t<div class=\"ngb-dp-week ngb-dp-weekdays\" role=\"row\">\n\t\t\t\t@if (datepicker.showWeekNumbers) {\n\t\t\t\t\t<div class=\"ngb-dp-weekday ngb-dp-showweek small\">{{ i18n.getWeekLabel() }}</div>\n\t\t\t\t}\n\t\t\t\t@for (weekday of viewModel.weekdays; track weekday) {\n\t\t\t\t\t<div class=\"ngb-dp-weekday small\" role=\"columnheader\">{{ weekday }}</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t\t@for (week of viewModel.weeks; track week) {\n\t\t\t@if (!week.collapsed) {\n\t\t\t\t<div class=\"ngb-dp-week\" role=\"row\">\n\t\t\t\t\t@if (datepicker.showWeekNumbers) {\n\t\t\t\t\t\t<div class=\"ngb-dp-week-number small text-muted\">{{ i18n.getWeekNumerals(week.number) }}</div>\n\t\t\t\t\t}\n\t\t\t\t\t@for (day of week.days; track day) {\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t(click)=\"doSelect(day); $event.preventDefault()\"\n\t\t\t\t\t\t\tclass=\"ngb-dp-day\"\n\t\t\t\t\t\t\trole=\"gridcell\"\n\t\t\t\t\t\t\t[class.disabled]=\"day.context.disabled\"\n\t\t\t\t\t\t\t[tabindex]=\"day.tabindex\"\n\t\t\t\t\t\t\t[class.hidden]=\"day.hidden\"\n\t\t\t\t\t\t\t[class.ngb-dp-today]=\"day.context.today\"\n\t\t\t\t\t\t\t[attr.aria-label]=\"day.ariaLabel\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t@if (!day.hidden) {\n\t\t\t\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"datepicker.dayTemplate\" [ngTemplateOutletContext]=\"day.context\" />\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t}\n\t`,\n styles: [\"ngb-datepicker-month{display:block}.ngb-dp-weekday,.ngb-dp-week-number{line-height:2rem;text-align:center;font-style:italic}.ngb-dp-weekday{color:var(--bs-info)}.ngb-dp-week{border-radius:.25rem;display:flex}.ngb-dp-weekdays{border-bottom:1px solid var(--bs-border-color);border-radius:0;background-color:var(--bs-tertiary-bg)}.ngb-dp-day,.ngb-dp-weekday,.ngb-dp-week-number{width:2rem;height:2rem}.ngb-dp-day{cursor:pointer}.ngb-dp-day.disabled,.ngb-dp-day.hidden{cursor:default;pointer-events:none}.ngb-dp-day[tabindex=\\\"0\\\"]{z-index:1}\\n\"]\n }]\n }], null, {\n month: [{\n type: Input\n }]\n });\n})();\n/**\n * A highly configurable component that helps you with selecting calendar dates.\n *\n * `NgbDatepicker` is meant to be displayed inline on a page or put inside a popup.\n */\nclass NgbDatepicker {\n constructor() {\n this.injector = inject(Injector);\n this._service = inject(NgbDatepickerService);\n this._calendar = inject(NgbCalendar);\n this._i18n = inject(NgbDatepickerI18n);\n this._config = inject(NgbDatepickerConfig);\n this._nativeElement = inject(ElementRef).nativeElement;\n this._ngbDateAdapter = inject(NgbDateAdapter);\n this._ngZone = inject(NgZone);\n this._destroyRef = inject(DestroyRef);\n this._controlValue = null;\n this._publicState = {};\n /**\n * The reference to a custom template for the day.\n *\n * Allows to completely override the way a day 'cell' in the calendar is displayed.\n *\n * See [`DayTemplateContext`](#/components/datepicker/api#DayTemplateContext) for the data you get inside.\n */\n this.dayTemplate = this._config.dayTemplate;\n /**\n * The callback to pass any arbitrary data to the template cell via the\n * [`DayTemplateContext`](#/components/datepicker/api#DayTemplateContext)'s `data` parameter.\n *\n * `current` is the month that is currently displayed by the datepicker.\n *\n * @since 3.3.0\n */\n this.dayTemplateData = this._config.dayTemplateData;\n /**\n * The number of months to display.\n */\n this.displayMonths = this._config.displayMonths;\n /**\n * The first day of the week.\n *\n * With default calendar we use ISO 8601: 'weekday' is 1=Mon ... 7=Sun.\n */\n this.firstDayOfWeek = this._config.firstDayOfWeek;\n /**\n * The reference to the custom template for the datepicker footer.\n *\n * @since 3.3.0\n */\n this.footerTemplate = this._config.footerTemplate;\n /**\n * The callback to mark some dates as disabled.\n *\n * It is called for each new date when navigating to a different month.\n *\n * `current` is the month that is currently displayed by the datepicker.\n */\n this.markDisabled = this._config.markDisabled;\n /**\n * The latest date that can be displayed or selected.\n *\n * If not provided, 'year' select box will display 10 years after the current month.\n */\n this.maxDate = this._config.maxDate;\n /**\n * The earliest date that can be displayed or selected.\n *\n * If not provided, 'year' select box will display 10 years before the current month.\n */\n this.minDate = this._config.minDate;\n /**\n * Navigation type.\n *\n * * `\"select\"` - select boxes for month and navigation arrows\n * * `\"arrows\"` - only navigation arrows\n * * `\"none\"` - no navigation visible at all\n */\n this.navigation = this._config.navigation;\n /**\n * The way of displaying days that don't belong to the current month.\n *\n * * `\"visible\"` - days are visible\n * * `\"hidden\"` - days are hidden, white space preserved\n * * `\"collapsed\"` - days are collapsed, so the datepicker height might change between months\n *\n * For the 2+ months view, days in between months are never shown.\n */\n this.outsideDays = this._config.outsideDays;\n /**\n * If `true`, week numbers will be displayed.\n */\n this.showWeekNumbers = this._config.showWeekNumbers;\n /**\n * The date to open calendar with.\n *\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n * If nothing or invalid date is provided, calendar will open with current month.\n *\n * You could use `navigateTo(date)` method as an alternative.\n */\n this.startDate = this._config.startDate;\n /**\n * The way weekdays should be displayed.\n *\n * * `true` - weekdays are displayed using default width\n * * `false` - weekdays are not displayed\n * * `TranslationWidth` - weekdays are displayed using specified width\n *\n * @since 9.1.0\n */\n this.weekdays = this._config.weekdays;\n /**\n * An event emitted right before the navigation happens and displayed month changes.\n *\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\n */\n this.navigate = new EventEmitter();\n /**\n * An event emitted when user selects a date using keyboard or mouse.\n *\n * The payload of the event is currently selected `NgbDate`.\n *\n * @since 5.2.0\n */\n this.dateSelect = new EventEmitter();\n this.onChange = _ => {};\n this.onTouched = () => {};\n const cd = inject(ChangeDetectorRef);\n this._service.dateSelect$.pipe(takeUntilDestroyed()).subscribe(date => {\n this.dateSelect.emit(date);\n });\n this._service.model$.pipe(takeUntilDestroyed()).subscribe(model => {\n const newDate = model.firstDate;\n const oldDate = this.model ? this.model.firstDate : null;\n // update public state\n this._publicState = {\n maxDate: model.maxDate,\n minDate: model.minDate,\n firstDate: model.firstDate,\n lastDate: model.lastDate,\n focusedDate: model.focusDate,\n months: model.months.map(viewModel => viewModel.firstDate)\n };\n let navigationPrevented = false;\n // emitting navigation event if the first month changes\n if (!newDate.equals(oldDate)) {\n this.navigate.emit({\n current: oldDate ? {\n year: oldDate.year,\n month: oldDate.month\n } : null,\n next: {\n year: newDate.year,\n month: newDate.month\n },\n preventDefault: () => navigationPrevented = true\n });\n // can't prevent the very first navigation\n if (navigationPrevented && oldDate !== null) {\n this._service.open(oldDate);\n return;\n }\n }\n const newSelectedDate = model.selectedDate;\n const newFocusedDate = model.focusDate;\n const oldFocusedDate = this.model ? this.model.focusDate : null;\n this.model = model;\n // handling selection change\n if (isChangedDate(newSelectedDate, this._controlValue)) {\n this._controlValue = newSelectedDate;\n this.onTouched();\n this.onChange(this._ngbDateAdapter.toModel(newSelectedDate));\n }\n // handling focus change\n if (isChangedDate(newFocusedDate, oldFocusedDate) && oldFocusedDate && model.focusVisible) {\n this.focus();\n }\n cd.markForCheck();\n });\n }\n /**\n * Returns the readonly public state of the datepicker\n *\n * @since 5.2.0\n */\n get state() {\n return this._publicState;\n }\n /**\n * Returns the calendar service used in the specific datepicker instance.\n *\n * @since 5.3.0\n */\n get calendar() {\n return this._calendar;\n }\n /**\n * Returns the i18n service used in the specific datepicker instance.\n *\n * @since 14.2.0\n */\n get i18n() {\n return this._i18n;\n }\n /**\n * Focuses on given date.\n */\n focusDate(date) {\n this._service.focus(NgbDate.from(date));\n }\n /**\n * Selects focused date.\n */\n focusSelect() {\n this._service.focusSelect();\n }\n focus() {\n this._ngZone.onStable.asObservable().pipe(take(1)).subscribe(() => this._nativeElement.querySelector('div.ngb-dp-day[tabindex=\"0\"]')?.focus());\n }\n /**\n * Navigates to the provided date.\n *\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n * If nothing or invalid date provided calendar will open current month.\n *\n * Use the `[startDate]` input as an alternative.\n */\n navigateTo(date) {\n this._service.open(NgbDate.from(date ? date.day ? date : {\n ...date,\n day: 1\n } : null));\n }\n ngAfterViewInit() {\n this._ngZone.runOutsideAngular(() => {\n const focusIns$ = fromEvent(this._contentEl.nativeElement, 'focusin');\n const focusOuts$ = fromEvent(this._contentEl.nativeElement, 'focusout');\n // we're changing 'focusVisible' only when entering or leaving months view\n // and ignoring all focus events where both 'target' and 'related' target are day cells\n merge(focusIns$, focusOuts$).pipe(filter(focusEvent => {\n const target = focusEvent.target;\n const relatedTarget = focusEvent.relatedTarget;\n return !(target?.classList.contains('ngb-dp-day') && relatedTarget?.classList.contains('ngb-dp-day') && this._nativeElement.contains(target) && this._nativeElement.contains(relatedTarget));\n }), takeUntilDestroyed(this._destroyRef)).subscribe(({\n type\n }) => this._ngZone.run(() => this._service.set({\n focusVisible: type === 'focusin'\n })));\n });\n }\n ngOnInit() {\n if (this.model === undefined) {\n const inputs = {};\n ['dayTemplateData', 'displayMonths', 'markDisabled', 'firstDayOfWeek', 'navigation', 'minDate', 'maxDate', 'outsideDays', 'weekdays'].forEach(name => inputs[name] = this[name]);\n this._service.set(inputs);\n this.navigateTo(this.startDate);\n }\n if (!this.dayTemplate) {\n this.dayTemplate = this._defaultDayTemplate;\n }\n }\n ngOnChanges(changes) {\n const inputs = {};\n ['dayTemplateData', 'displayMonths', 'markDisabled', 'firstDayOfWeek', 'navigation', 'minDate', 'maxDate', 'outsideDays', 'weekdays'].filter(name => name in changes).forEach(name => inputs[name] = this[name]);\n this._service.set(inputs);\n if ('startDate' in changes) {\n const {\n currentValue,\n previousValue\n } = changes.startDate;\n if (isChangedMonth(previousValue, currentValue)) {\n this.navigateTo(this.startDate);\n }\n }\n }\n onDateSelect(date) {\n this._service.focus(date);\n this._service.select(date, {\n emitEvent: true\n });\n }\n onNavigateDateSelect(date) {\n this._service.open(date);\n }\n onNavigateEvent(event) {\n switch (event) {\n case NavigationEvent.PREV:\n this._service.open(this._calendar.getPrev(this.model.firstDate, 'm', 1));\n break;\n case NavigationEvent.NEXT:\n this._service.open(this._calendar.getNext(this.model.firstDate, 'm', 1));\n break;\n }\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n setDisabledState(disabled) {\n this._service.set({\n disabled\n });\n }\n writeValue(value) {\n this._controlValue = NgbDate.from(this._ngbDateAdapter.fromModel(value));\n this._service.select(this._controlValue);\n }\n static #_ = this.ɵfac = function NgbDatepicker_Factory(t) {\n return new (t || NgbDatepicker)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbDatepicker,\n selectors: [[\"ngb-datepicker\"]],\n contentQueries: function NgbDatepicker_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbDatepickerContent, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplateFromContent = _t.first);\n }\n },\n viewQuery: function NgbDatepicker_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c4, 7);\n i0.ɵɵviewQuery(_c5, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._defaultDayTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._contentEl = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function NgbDatepicker_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"disabled\", ctx.model.disabled);\n }\n },\n inputs: {\n contentTemplate: \"contentTemplate\",\n dayTemplate: \"dayTemplate\",\n dayTemplateData: \"dayTemplateData\",\n displayMonths: \"displayMonths\",\n firstDayOfWeek: \"firstDayOfWeek\",\n footerTemplate: \"footerTemplate\",\n markDisabled: \"markDisabled\",\n maxDate: \"maxDate\",\n minDate: \"minDate\",\n navigation: \"navigation\",\n outsideDays: \"outsideDays\",\n showWeekNumbers: \"showWeekNumbers\",\n startDate: \"startDate\",\n weekdays: \"weekdays\"\n },\n outputs: {\n navigate: \"navigate\",\n dateSelect: \"dateSelect\"\n },\n exportAs: [\"ngbDatepicker\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbDatepicker),\n multi: true\n }, NgbDatepickerService]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 10,\n vars: 9,\n consts: [[\"defaultDayTemplate\", \"\"], [\"defaultContentTemplate\", \"\"], [\"content\", \"\"], [1, \"ngb-dp-header\"], [1, \"ngb-dp-content\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", \"ngTemplateOutletInjector\"], [3, \"ngTemplateOutlet\"], [\"ngbDatepickerDayView\", \"\", 3, \"date\", \"currentMonth\", \"selected\", \"disabled\", \"focused\"], [1, \"ngb-dp-month\"], [1, \"ngb-dp-month-name\"], [3, \"month\"], [3, \"navigate\", \"select\", \"date\", \"months\", \"disabled\", \"showSelect\", \"prevDisabled\", \"nextDisabled\", \"selectBoxes\"]],\n template: function NgbDatepicker_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbDatepicker_ng_template_0_Template, 1, 5, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor)(2, NgbDatepicker_ng_template_2_Template, 2, 0, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementStart(4, \"div\", 3);\n i0.ɵɵtemplate(5, NgbDatepicker_Conditional_5_Template, 1, 7, \"ngb-datepicker-navigation\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"div\", 4, 2);\n i0.ɵɵtemplate(8, NgbDatepicker_ng_template_8_Template, 0, 0, \"ng-template\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(9, NgbDatepicker_ng_template_9_Template, 0, 0, \"ng-template\", 6);\n }\n if (rf & 2) {\n const defaultContentTemplate_r9 = i0.ɵɵreference(3);\n i0.ɵɵadvance(5);\n i0.ɵɵconditional(5, ctx.navigation !== \"none\" ? 5 : -1);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"ngb-dp-months\", !ctx.contentTemplate);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.contentTemplate || (ctx.contentTemplateFromContent == null ? null : ctx.contentTemplateFromContent.templateRef) || defaultContentTemplate_r9)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(7, _c6, ctx))(\"ngTemplateOutletInjector\", ctx.injector);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.footerTemplate);\n }\n },\n dependencies: [NgTemplateOutlet, NgbDatepickerDayView, NgbDatepickerMonth, NgbDatepickerNavigation],\n styles: [\"ngb-datepicker{border:1px solid var(--bs-border-color);border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}ngb-datepicker.disabled .ngb-dp-weekday,ngb-datepicker.disabled .ngb-dp-week-number,ngb-datepicker.disabled .ngb-dp-month-name{color:var(--bs-text-muted)}.ngb-dp-body{z-index:1055}.ngb-dp-header{border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem;background-color:var(--bs-tertiary-bg)}.ngb-dp-months{display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center;background-color:var(--bs-tertiary-bg)}.ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,.ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-left:1rem}.ngb-dp-month:last-child .ngb-dp-week{padding-right:.25rem}.ngb-dp-month:first-child .ngb-dp-week{padding-left:.25rem}.ngb-dp-month .ngb-dp-week:last-child{padding-bottom:.25rem}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepicker, [{\n type: Component,\n args: [{\n exportAs: 'ngbDatepicker',\n selector: 'ngb-datepicker',\n standalone: true,\n imports: [NgTemplateOutlet, NgbDatepickerDayView, NgbDatepickerMonth, NgbDatepickerNavigation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.disabled]': 'model.disabled'\n },\n template: `\n\t\t<ng-template\n\t\t\t#defaultDayTemplate\n\t\t\tlet-date=\"date\"\n\t\t\tlet-currentMonth=\"currentMonth\"\n\t\t\tlet-selected=\"selected\"\n\t\t\tlet-disabled=\"disabled\"\n\t\t\tlet-focused=\"focused\"\n\t\t>\n\t\t\t<div\n\t\t\t\tngbDatepickerDayView\n\t\t\t\t[date]=\"date\"\n\t\t\t\t[currentMonth]=\"currentMonth\"\n\t\t\t\t[selected]=\"selected\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[focused]=\"focused\"\n\t\t\t>\n\t\t\t</div>\n\t\t</ng-template>\n\n\t\t<ng-template #defaultContentTemplate>\n\t\t\t@for (month of model.months; track month; let i = $index) {\n\t\t\t\t<div class=\"ngb-dp-month\">\n\t\t\t\t\t@if (navigation === 'none' || (displayMonths > 1 && navigation === 'select')) {\n\t\t\t\t\t\t<div class=\"ngb-dp-month-name\">\n\t\t\t\t\t\t\t{{ i18n.getMonthLabel(month.firstDate) }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\t<ngb-datepicker-month [month]=\"month.firstDate\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-template>\n\n\t\t<div class=\"ngb-dp-header\">\n\t\t\t@if (navigation !== 'none') {\n\t\t\t\t<ngb-datepicker-navigation\n\t\t\t\t\t[date]=\"model.firstDate!\"\n\t\t\t\t\t[months]=\"model.months\"\n\t\t\t\t\t[disabled]=\"model.disabled\"\n\t\t\t\t\t[showSelect]=\"model.navigation === 'select'\"\n\t\t\t\t\t[prevDisabled]=\"model.prevDisabled\"\n\t\t\t\t\t[nextDisabled]=\"model.nextDisabled\"\n\t\t\t\t\t[selectBoxes]=\"model.selectBoxes\"\n\t\t\t\t\t(navigate)=\"onNavigateEvent($event)\"\n\t\t\t\t\t(select)=\"onNavigateDateSelect($event)\"\n\t\t\t\t/>\n\t\t\t}\n\t\t</div>\n\n\t\t<div class=\"ngb-dp-content\" [class.ngb-dp-months]=\"!contentTemplate\" #content>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"contentTemplate || contentTemplateFromContent?.templateRef || defaultContentTemplate\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: this }\"\n\t\t\t\t[ngTemplateOutletInjector]=\"injector\"\n\t\t\t/>\n\t\t</div>\n\n\t\t<ng-template [ngTemplateOutlet]=\"footerTemplate\" />\n\t`,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbDatepicker),\n multi: true\n }, NgbDatepickerService],\n styles: [\"ngb-datepicker{border:1px solid var(--bs-border-color);border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}ngb-datepicker.disabled .ngb-dp-weekday,ngb-datepicker.disabled .ngb-dp-week-number,ngb-datepicker.disabled .ngb-dp-month-name{color:var(--bs-text-muted)}.ngb-dp-body{z-index:1055}.ngb-dp-header{border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem;background-color:var(--bs-tertiary-bg)}.ngb-dp-months{display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center;background-color:var(--bs-tertiary-bg)}.ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,.ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-left:1rem}.ngb-dp-month:last-child .ngb-dp-week{padding-right:.25rem}.ngb-dp-month:first-child .ngb-dp-week{padding-left:.25rem}.ngb-dp-month .ngb-dp-week:last-child{padding-bottom:.25rem}\\n\"]\n }]\n }], () => [], {\n _defaultDayTemplate: [{\n type: ViewChild,\n args: ['defaultDayTemplate', {\n static: true\n }]\n }],\n _contentEl: [{\n type: ViewChild,\n args: ['content', {\n static: true\n }]\n }],\n contentTemplate: [{\n type: Input\n }],\n contentTemplateFromContent: [{\n type: ContentChild,\n args: [NgbDatepickerContent, {\n static: true\n }]\n }],\n dayTemplate: [{\n type: Input\n }],\n dayTemplateData: [{\n type: Input\n }],\n displayMonths: [{\n type: Input\n }],\n firstDayOfWeek: [{\n type: Input\n }],\n footerTemplate: [{\n type: Input\n }],\n markDisabled: [{\n type: Input\n }],\n maxDate: [{\n type: Input\n }],\n minDate: [{\n type: Input\n }],\n navigation: [{\n type: Input\n }],\n outsideDays: [{\n type: Input\n }],\n showWeekNumbers: [{\n type: Input\n }],\n startDate: [{\n type: Input\n }],\n weekdays: [{\n type: Input\n }],\n navigate: [{\n type: Output\n }],\n dateSelect: [{\n type: Output\n }]\n });\n})();\nconst isContainedIn = (element, array) => array ? array.some(item => item.contains(element)) : false;\nconst matchesSelectorIfAny = (element, selector) => !selector || closest(element, selector) != null;\n// we have to add a more significant delay to avoid re-opening when handling (click) on a toggling element\n// TODO: use proper Angular platform detection when NgbAutoClose becomes a service and we can inject PLATFORM_ID\nconst isMobile = (() => {\n const isIOS = () => /iPad|iPhone|iPod/.test(navigator.userAgent) || /Macintosh/.test(navigator.userAgent) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2;\n const isAndroid = () => /Android/.test(navigator.userAgent);\n return typeof navigator !== 'undefined' ? !!navigator.userAgent && (isIOS() || isAndroid()) : false;\n})();\n// setting 'ngbAutoClose' synchronously on mobile results in immediate popup closing\n// when tapping on the triggering element\nconst wrapAsyncForMobile = fn => isMobile ? () => setTimeout(() => fn(), 100) : fn;\nfunction ngbAutoClose(zone, document, type, close, closed$, insideElements, ignoreElements, insideSelector) {\n // closing on ESC and outside clicks\n if (type) {\n zone.runOutsideAngular(wrapAsyncForMobile(() => {\n const shouldCloseOnClick = event => {\n const element = event.target;\n if (event.button === 2 || isContainedIn(element, ignoreElements)) {\n return false;\n }\n if (type === 'inside') {\n return isContainedIn(element, insideElements) && matchesSelectorIfAny(element, insideSelector);\n } else if (type === 'outside') {\n return !isContainedIn(element, insideElements);\n } /* if (type === true) */else {\n return matchesSelectorIfAny(element, insideSelector) || !isContainedIn(element, insideElements);\n }\n };\n const escapes$ = fromEvent(document, 'keydown').pipe(takeUntil(closed$), /* eslint-disable-next-line deprecation/deprecation */\n filter(e => e.which === Key.Escape), tap(e => e.preventDefault()));\n // we have to pre-calculate 'shouldCloseOnClick' on 'mousedown',\n // because on 'mouseup' DOM nodes might be detached\n const mouseDowns$ = fromEvent(document, 'mousedown').pipe(map(shouldCloseOnClick), takeUntil(closed$));\n const closeableClicks$ = fromEvent(document, 'mouseup').pipe(withLatestFrom(mouseDowns$), filter(([_, shouldClose]) => shouldClose), delay(0), takeUntil(closed$));\n race([escapes$.pipe(map(_ => 0 /* SOURCE.ESCAPE */)), closeableClicks$.pipe(map(_ => 1 /* SOURCE.CLICK */))]).subscribe(source => zone.run(() => close(source)));\n }));\n }\n}\nconst FOCUSABLE_ELEMENTS_SELECTOR = ['a[href]', 'button:not([disabled])', 'input:not([disabled]):not([type=\"hidden\"])', 'select:not([disabled])', 'textarea:not([disabled])', '[contenteditable]', '[tabindex]:not([tabindex=\"-1\"])'].join(', ');\n/**\n * Returns first and last focusable elements inside of a given element based on specific CSS selector\n */\nfunction getFocusableBoundaryElements(element) {\n const list = Array.from(element.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR)).filter(el => el.tabIndex !== -1);\n return [list[0], list[list.length - 1]];\n}\n/**\n * Function that enforces browser focus to be trapped inside a DOM element.\n *\n * Works only for clicks inside the element and navigation with 'Tab', ignoring clicks outside of the element\n *\n * @param zone Angular zone\n * @param element The element around which focus will be trapped inside\n * @param stopFocusTrap$ The observable stream. When completed the focus trap will clean up listeners\n * and free internal resources\n * @param refocusOnClick Put the focus back to the last focused element whenever a click occurs on element (default to\n * false)\n */\nconst ngbFocusTrap = (zone, element, stopFocusTrap$, refocusOnClick = false) => {\n zone.runOutsideAngular(() => {\n // last focused element\n const lastFocusedElement$ = fromEvent(element, 'focusin').pipe(takeUntil(stopFocusTrap$), map(e => e.target));\n // 'tab' / 'shift+tab' stream\n fromEvent(element, 'keydown').pipe(takeUntil(stopFocusTrap$), /* eslint-disable-next-line deprecation/deprecation */\n filter(e => e.which === Key.Tab), withLatestFrom(lastFocusedElement$)).subscribe(([tabEvent, focusedElement]) => {\n const [first, last] = getFocusableBoundaryElements(element);\n if ((focusedElement === first || focusedElement === element) && tabEvent.shiftKey) {\n last.focus();\n tabEvent.preventDefault();\n }\n if (focusedElement === last && !tabEvent.shiftKey) {\n first.focus();\n tabEvent.preventDefault();\n }\n });\n // inside click\n if (refocusOnClick) {\n fromEvent(element, 'click').pipe(takeUntil(stopFocusTrap$), withLatestFrom(lastFocusedElement$), map(arr => arr[1])).subscribe(lastFocusedElement => lastFocusedElement.focus());\n }\n });\n};\nclass NgbRTL {\n constructor() {\n this._element = inject(DOCUMENT).documentElement;\n }\n isRTL() {\n return (this._element.getAttribute('dir') || '').toLowerCase() === 'rtl';\n }\n static #_ = this.ɵfac = function NgbRTL_Factory(t) {\n return new (t || NgbRTL)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbRTL,\n factory: NgbRTL.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbRTL, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nconst placementSeparator = /\\s+/;\nconst spacesRegExp = / +/gi;\n/**\n * Matching classes from the Bootstrap ones to the poppers ones.\n * The first index of each array is used for the left to right direction,\n * the second one is used for the right to left, defaulting to the first index (when LTR and RTL lead to the same class)\n *\n * See [Bootstrap alignments](https://getbootstrap.com/docs/5.1/components/dropdowns/#alignment-options)\n * and [Popper placements](https://popper.js.org/docs/v2/constructors/#options)\n */\nconst bootstrapPopperMatches = {\n top: ['top'],\n bottom: ['bottom'],\n start: ['left', 'right'],\n left: ['left'],\n end: ['right', 'left'],\n right: ['right'],\n 'top-start': ['top-start', 'top-end'],\n 'top-left': ['top-start'],\n 'top-end': ['top-end', 'top-start'],\n 'top-right': ['top-end'],\n 'bottom-start': ['bottom-start', 'bottom-end'],\n 'bottom-left': ['bottom-start'],\n 'bottom-end': ['bottom-end', 'bottom-start'],\n 'bottom-right': ['bottom-end'],\n 'start-top': ['left-start', 'right-start'],\n 'left-top': ['left-start'],\n 'start-bottom': ['left-end', 'right-end'],\n 'left-bottom': ['left-end'],\n 'end-top': ['right-start', 'left-start'],\n 'right-top': ['right-start'],\n 'end-bottom': ['right-end', 'left-end'],\n 'right-bottom': ['right-end']\n};\nfunction getPopperClassPlacement(placement, isRTL) {\n const [leftClass, rightClass] = bootstrapPopperMatches[placement];\n return isRTL ? rightClass || leftClass : leftClass;\n}\nconst popperStartPrimaryPlacement = /^left/;\nconst popperEndPrimaryPlacement = /^right/;\nconst popperStartSecondaryPlacement = /^start/;\nconst popperEndSecondaryPlacement = /^end/;\nfunction getBootstrapBaseClassPlacement(baseClass, placement) {\n let [primary, secondary] = placement.split('-');\n const newPrimary = primary.replace(popperStartPrimaryPlacement, 'start').replace(popperEndPrimaryPlacement, 'end');\n let classnames = [newPrimary];\n if (secondary) {\n let newSecondary = secondary;\n if (primary === 'left' || primary === 'right') {\n newSecondary = newSecondary.replace(popperStartSecondaryPlacement, 'top').replace(popperEndSecondaryPlacement, 'bottom');\n }\n classnames.push(`${newPrimary}-${newSecondary}`);\n }\n if (baseClass) {\n classnames = classnames.map(classname => `${baseClass}-${classname}`);\n }\n return classnames.join(' ');\n}\n/*\n * Accept the placement array and applies the appropriate placement dependent on the viewport.\n * Returns the applied placement.\n * In case of auto placement, placements are selected in order\n * 'top', 'bottom', 'start', 'end',\n * 'top-start', 'top-end',\n * 'bottom-start', 'bottom-end',\n * 'start-top', 'start-bottom',\n * 'end-top', 'end-bottom'.\n * */\nfunction getPopperOptions({\n placement,\n baseClass\n}, rtl) {\n let placementVals = Array.isArray(placement) ? placement : placement.split(placementSeparator);\n // No need to consider left and right here, as start and end are enough, and it is used for 'auto' placement only\n const allowedPlacements = ['top', 'bottom', 'start', 'end', 'top-start', 'top-end', 'bottom-start', 'bottom-end', 'start-top', 'start-bottom', 'end-top', 'end-bottom'];\n // replace auto placement with other placements\n let hasAuto = placementVals.findIndex(val => val === 'auto');\n if (hasAuto >= 0) {\n allowedPlacements.forEach(function (obj) {\n if (placementVals.find(val => val.search('^' + obj) !== -1) == null) {\n placementVals.splice(hasAuto++, 1, obj);\n }\n });\n }\n const popperPlacements = placementVals.map(_placement => {\n return getPopperClassPlacement(_placement, rtl.isRTL());\n });\n let mainPlacement = popperPlacements.shift();\n const bsModifier = {\n name: 'bootstrapClasses',\n enabled: !!baseClass,\n phase: 'write',\n fn({\n state\n }) {\n const bsClassRegExp = new RegExp(baseClass + '(-[a-z]+)*', 'gi');\n const popperElement = state.elements.popper;\n const popperPlacement = state.placement;\n let className = popperElement.className;\n // Remove old bootstrap classes\n className = className.replace(bsClassRegExp, '');\n // Add current placements\n className += ` ${getBootstrapBaseClassPlacement(baseClass, popperPlacement)}`;\n // Remove multiple spaces\n className = className.trim().replace(spacesRegExp, ' ');\n // Reassign\n popperElement.className = className;\n }\n };\n return {\n placement: mainPlacement,\n modifiers: [bsModifier, flip, preventOverflow, arrow, {\n enabled: true,\n name: 'flip',\n options: {\n fallbackPlacements: popperPlacements\n }\n }, {\n enabled: true,\n name: 'preventOverflow',\n phase: 'main',\n fn: function () {}\n }]\n };\n}\nfunction noop(arg) {\n return arg;\n}\nfunction ngbPositioning() {\n const rtl = inject(NgbRTL);\n let popperInstance = null;\n return {\n createPopper(positioningOption) {\n if (!popperInstance) {\n const updatePopperOptions = positioningOption.updatePopperOptions || noop;\n let popperOptions = updatePopperOptions(getPopperOptions(positioningOption, rtl));\n popperInstance = createPopperLite(positioningOption.hostElement, positioningOption.targetElement, popperOptions);\n }\n },\n update() {\n if (popperInstance) {\n popperInstance.update();\n }\n },\n setOptions(positioningOption) {\n if (popperInstance) {\n const updatePopperOptions = positioningOption.updatePopperOptions || noop;\n let popperOptions = updatePopperOptions(getPopperOptions(positioningOption, rtl));\n popperInstance.setOptions(popperOptions);\n }\n },\n destroy() {\n if (popperInstance) {\n popperInstance.destroy();\n popperInstance = null;\n }\n }\n };\n}\nfunction NGB_DATEPICKER_PARSER_FORMATTER_FACTORY() {\n return new NgbDateISOParserFormatter();\n}\n/**\n * An abstract service for parsing and formatting dates for the\n * [`NgbInputDatepicker`](#/components/datepicker/api#NgbInputDatepicker) directive.\n * Converts between the internal `NgbDateStruct` 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 `NgbDateStruct` 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 * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\n */\nclass NgbDateParserFormatter {\n static #_ = this.ɵfac = function NgbDateParserFormatter_Factory(t) {\n return new (t || NgbDateParserFormatter)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDateParserFormatter,\n factory: () => NGB_DATEPICKER_PARSER_FORMATTER_FACTORY(),\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDateParserFormatter, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY\n }]\n }], null, null);\n})();\nclass NgbDateISOParserFormatter extends NgbDateParserFormatter {\n parse(value) {\n if (value != null) {\n const dateParts = value.trim().split('-');\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\n return {\n year: toInteger(dateParts[0]),\n month: null,\n day: null\n };\n } else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\n return {\n year: toInteger(dateParts[0]),\n month: toInteger(dateParts[1]),\n day: null\n };\n } else if (dateParts.length === 3 && isNumber(dateParts[0]) && isNumber(dateParts[1]) && isNumber(dateParts[2])) {\n return {\n year: toInteger(dateParts[0]),\n month: toInteger(dateParts[1]),\n day: toInteger(dateParts[2])\n };\n }\n }\n return null;\n }\n format(date) {\n return date ? `${date.year}-${isNumber(date.month) ? padNumber(date.month) : ''}-${isNumber(date.day) ? padNumber(date.day) : ''}` : '';\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDateISOParserFormatter_BaseFactory;\n return function NgbDateISOParserFormatter_Factory(t) {\n return (ɵNgbDateISOParserFormatter_BaseFactory || (ɵNgbDateISOParserFormatter_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDateISOParserFormatter)))(t || NgbDateISOParserFormatter);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDateISOParserFormatter,\n factory: NgbDateISOParserFormatter.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDateISOParserFormatter, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbDatepickerInput`](#/components/datepicker/api#NgbDatepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the datepicker inputs used in the application.\n *\n * @since 5.2.0\n */\nclass NgbInputDatepickerConfig extends NgbDatepickerConfig {\n constructor() {\n super(...arguments);\n this.autoClose = true;\n this.placement = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];\n this.popperOptions = options => options;\n this.restoreFocus = true;\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbInputDatepickerConfig_BaseFactory;\n return function NgbInputDatepickerConfig_Factory(t) {\n return (ɵNgbInputDatepickerConfig_BaseFactory || (ɵNgbInputDatepickerConfig_BaseFactory = i0.ɵɵgetInheritedFactory(NgbInputDatepickerConfig)))(t || NgbInputDatepickerConfig);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbInputDatepickerConfig,\n factory: NgbInputDatepickerConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbInputDatepickerConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nfunction addPopperOffset(offset$1) {\n return options => {\n options.modifiers.push(offset, {\n name: 'offset',\n options: {\n offset: () => offset$1\n }\n });\n return options;\n };\n}\n\n/**\n * A directive that allows to stick a datepicker popup to an input field.\n *\n * Manages interaction with the input field itself, does value formatting and provides forms integration.\n */\nclass NgbInputDatepicker {\n constructor() {\n this._parserFormatter = inject(NgbDateParserFormatter);\n this._elRef = inject(ElementRef);\n this._vcRef = inject(ViewContainerRef);\n this._ngZone = inject(NgZone);\n this._calendar = inject(NgbCalendar);\n this._dateAdapter = inject(NgbDateAdapter);\n this._document = inject(DOCUMENT);\n this._changeDetector = inject(ChangeDetectorRef);\n this._config = inject(NgbInputDatepickerConfig);\n this._cRef = null;\n this._disabled = false;\n this._elWithFocus = null;\n this._model = null;\n this._positioning = ngbPositioning();\n this._destroyCloseHandlers$ = new Subject();\n /**\n * Indicates whether the datepicker popup should be closed automatically after date selection / outside click or not.\n *\n * * `true` - the popup will close on both date selection and outside click.\n * * `false` - the popup can only be closed manually via `close()` or `toggle()` methods.\n * * `\"inside\"` - the popup will close on date selection, but not outside clicks.\n * * `\"outside\"` - the popup will close only on the outside click and not on date selection/inside clicks.\n *\n * @since 3.0.0\n */\n this.autoClose = this._config.autoClose;\n /**\n * The preferred placement of the datepicker popup, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"bottom-start bottom-end top-start top-end\"`\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the popup.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * A selector specifying the element the datepicker popup should be appended to.\n *\n * Currently only supports `\"body\"`.\n */\n this.container = this._config.container;\n /**\n * A css selector or html element specifying the element the datepicker popup should be positioned against.\n *\n * By default the input is used as a target.\n *\n * @since 4.2.0\n */\n this.positionTarget = this._config.positionTarget;\n /**\n * An event emitted when user selects a date using keyboard or mouse.\n *\n * The payload of the event is currently selected `NgbDate`.\n *\n * @since 1.1.1\n */\n this.dateSelect = new EventEmitter();\n /**\n * Event emitted right after the navigation happens and displayed month changes.\n *\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\n */\n this.navigate = new EventEmitter();\n /**\n * An event fired after closing datepicker window.\n *\n * @since 4.2.0\n */\n this.closed = new EventEmitter();\n this._onChange = _ => {};\n this._onTouched = () => {};\n this._validatorChange = () => {};\n }\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value === '' || value && value !== 'false';\n if (this.isOpen()) {\n this._cRef.instance.setDisabledState(this._disabled);\n }\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n registerOnValidatorChange(fn) {\n this._validatorChange = fn;\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n validate(c) {\n const {\n value\n } = c;\n if (value != null) {\n const ngbDate = this._fromDateStruct(this._dateAdapter.fromModel(value));\n if (!ngbDate) {\n return {\n ngbDate: {\n invalid: value\n }\n };\n }\n if (this.minDate && ngbDate.before(NgbDate.from(this.minDate))) {\n return {\n ngbDate: {\n minDate: {\n minDate: this.minDate,\n actual: value\n }\n }\n };\n }\n if (this.maxDate && ngbDate.after(NgbDate.from(this.maxDate))) {\n return {\n ngbDate: {\n maxDate: {\n maxDate: this.maxDate,\n actual: value\n }\n }\n };\n }\n }\n return null;\n }\n writeValue(value) {\n this._model = this._fromDateStruct(this._dateAdapter.fromModel(value));\n this._writeModelValue(this._model);\n }\n manualDateChange(value, updateView = false) {\n const inputValueChanged = value !== this._inputValue;\n if (inputValueChanged) {\n this._inputValue = value;\n this._model = this._fromDateStruct(this._parserFormatter.parse(value));\n }\n if (inputValueChanged || !updateView) {\n this._onChange(this._model ? this._dateAdapter.toModel(this._model) : value === '' ? null : value);\n }\n if (updateView && this._model) {\n this._writeModelValue(this._model);\n }\n }\n isOpen() {\n return !!this._cRef;\n }\n /**\n * Opens the datepicker popup.\n *\n * If the related form control contains a valid date, the corresponding month will be opened.\n */\n open() {\n if (!this.isOpen()) {\n this._cRef = this._vcRef.createComponent(NgbDatepicker);\n this._applyPopupStyling(this._cRef.location.nativeElement);\n this._applyDatepickerInputs(this._cRef);\n this._subscribeForDatepickerOutputs(this._cRef.instance);\n this._cRef.instance.ngOnInit();\n this._cRef.instance.writeValue(this._dateAdapter.toModel(this._model));\n // date selection event handling\n this._cRef.instance.registerOnChange(selectedDate => {\n this.writeValue(selectedDate);\n this._onChange(selectedDate);\n this._onTouched();\n });\n this._cRef.changeDetectorRef.detectChanges();\n this._cRef.instance.setDisabledState(this.disabled);\n if (this.container === 'body') {\n this._document.querySelector(this.container)?.appendChild(this._cRef.location.nativeElement);\n }\n // focus handling\n this._elWithFocus = this._document.activeElement;\n ngbFocusTrap(this._ngZone, this._cRef.location.nativeElement, this.closed, true);\n setTimeout(() => this._cRef?.instance.focus());\n let hostElement;\n if (isString(this.positionTarget)) {\n hostElement = this._document.querySelector(this.positionTarget);\n } else if (this.positionTarget instanceof HTMLElement) {\n hostElement = this.positionTarget;\n } else {\n hostElement = this._elRef.nativeElement;\n }\n if (this.positionTarget && !hostElement) {\n throw new Error('ngbDatepicker could not find element declared in [positionTarget] to position against.');\n }\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n if (this._cRef && hostElement) {\n this._positioning.createPopper({\n hostElement,\n targetElement: this._cRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n updatePopperOptions: options => this.popperOptions(addPopperOffset([0, 2])(options))\n });\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n }\n });\n this._setCloseHandlers();\n }\n }\n /**\n * Closes the datepicker popup.\n */\n close() {\n if (this.isOpen()) {\n this._vcRef.remove(this._vcRef.indexOf(this._cRef.hostView));\n this._cRef = null;\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this._destroyCloseHandlers$.next();\n this.closed.emit();\n this._changeDetector.markForCheck();\n // restore focus\n let elementToFocus = this._elWithFocus;\n if (isString(this.restoreFocus)) {\n elementToFocus = this._document.querySelector(this.restoreFocus);\n } else if (this.restoreFocus !== undefined) {\n elementToFocus = this.restoreFocus;\n }\n // in IE document.activeElement can contain an object without 'focus()' sometimes\n if (elementToFocus && elementToFocus['focus']) {\n elementToFocus.focus();\n } else {\n this._document.body.focus();\n }\n }\n }\n /**\n * Toggles the datepicker popup.\n */\n toggle() {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n /**\n * Navigates to the provided date.\n *\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n * If nothing or invalid date provided calendar will open current month.\n *\n * Use the `[startDate]` input as an alternative.\n */\n navigateTo(date) {\n if (this.isOpen()) {\n this._cRef.instance.navigateTo(date);\n }\n }\n onBlur() {\n this._onTouched();\n }\n onFocus() {\n this._elWithFocus = this._elRef.nativeElement;\n }\n ngOnChanges(changes) {\n if (changes['minDate'] || changes['maxDate']) {\n this._validatorChange();\n if (this.isOpen()) {\n if (changes['minDate']) {\n this._cRef.setInput('minDate', this.minDate);\n }\n if (changes['maxDate']) {\n this._cRef.setInput('maxDate', this.maxDate);\n }\n }\n }\n if (changes['datepickerClass']) {\n const {\n currentValue,\n previousValue\n } = changes['datepickerClass'];\n this._applyPopupClass(currentValue, previousValue);\n }\n if (changes['autoClose'] && this.isOpen()) {\n this._setCloseHandlers();\n }\n }\n ngOnDestroy() {\n this.close();\n }\n _applyDatepickerInputs(datepickerComponentRef) {\n ['contentTemplate', 'dayTemplate', 'dayTemplateData', 'displayMonths', 'firstDayOfWeek', 'footerTemplate', 'markDisabled', 'minDate', 'maxDate', 'navigation', 'outsideDays', 'showNavigation', 'showWeekNumbers', 'weekdays'].forEach(inputName => {\n if (this[inputName] !== undefined) {\n datepickerComponentRef.setInput(inputName, this[inputName]);\n }\n });\n datepickerComponentRef.setInput('startDate', this.startDate || this._model);\n }\n _applyPopupClass(newClass, oldClass) {\n const popupEl = this._cRef?.location.nativeElement;\n if (popupEl) {\n if (newClass) {\n popupEl.classList.add(newClass);\n }\n if (oldClass) {\n popupEl.classList.remove(oldClass);\n }\n }\n }\n _applyPopupStyling(nativeElement) {\n nativeElement.classList.add('dropdown-menu', 'show');\n if (this.container === 'body') {\n nativeElement.classList.add('ngb-dp-body');\n }\n this._applyPopupClass(this.datepickerClass);\n }\n _subscribeForDatepickerOutputs(datepickerInstance) {\n datepickerInstance.navigate.subscribe(navigateEvent => this.navigate.emit(navigateEvent));\n datepickerInstance.dateSelect.subscribe(date => {\n this.dateSelect.emit(date);\n if (this.autoClose === true || this.autoClose === 'inside') {\n this.close();\n }\n });\n }\n _writeModelValue(model) {\n const value = this._parserFormatter.format(model);\n this._inputValue = value;\n this._elRef.nativeElement.value = value;\n if (this.isOpen()) {\n this._cRef.instance.writeValue(this._dateAdapter.toModel(model));\n this._onTouched();\n }\n }\n _fromDateStruct(date) {\n const ngbDate = date ? new NgbDate(date.year, date.month, date.day) : null;\n return this._calendar.isValid(ngbDate) ? ngbDate : null;\n }\n _setCloseHandlers() {\n this._destroyCloseHandlers$.next();\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this._destroyCloseHandlers$, [], [this._elRef.nativeElement, this._cRef.location.nativeElement]);\n }\n static #_ = this.ɵfac = function NgbInputDatepicker_Factory(t) {\n return new (t || NgbInputDatepicker)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbInputDatepicker,\n selectors: [[\"input\", \"ngbDatepicker\", \"\"]],\n hostVars: 1,\n hostBindings: function NgbInputDatepicker_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"input\", function NgbInputDatepicker_input_HostBindingHandler($event) {\n return ctx.manualDateChange($event.target.value);\n })(\"change\", function NgbInputDatepicker_change_HostBindingHandler($event) {\n return ctx.manualDateChange($event.target.value, true);\n })(\"focus\", function NgbInputDatepicker_focus_HostBindingHandler() {\n return ctx.onFocus();\n })(\"blur\", function NgbInputDatepicker_blur_HostBindingHandler() {\n return ctx.onBlur();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"disabled\", ctx.disabled);\n }\n },\n inputs: {\n autoClose: \"autoClose\",\n contentTemplate: \"contentTemplate\",\n datepickerClass: \"datepickerClass\",\n dayTemplate: \"dayTemplate\",\n dayTemplateData: \"dayTemplateData\",\n displayMonths: \"displayMonths\",\n firstDayOfWeek: \"firstDayOfWeek\",\n footerTemplate: \"footerTemplate\",\n markDisabled: \"markDisabled\",\n minDate: \"minDate\",\n maxDate: \"maxDate\",\n navigation: \"navigation\",\n outsideDays: \"outsideDays\",\n placement: \"placement\",\n popperOptions: \"popperOptions\",\n restoreFocus: \"restoreFocus\",\n showWeekNumbers: \"showWeekNumbers\",\n startDate: \"startDate\",\n container: \"container\",\n positionTarget: \"positionTarget\",\n weekdays: \"weekdays\",\n disabled: \"disabled\"\n },\n outputs: {\n dateSelect: \"dateSelect\",\n navigate: \"navigate\",\n closed: \"closed\"\n },\n exportAs: [\"ngbDatepicker\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbInputDatepicker),\n multi: true\n }, {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NgbInputDatepicker),\n multi: true\n }, {\n provide: NgbDatepickerConfig,\n useExisting: NgbInputDatepickerConfig\n }]), i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbInputDatepicker, [{\n type: Directive,\n args: [{\n selector: 'input[ngbDatepicker]',\n exportAs: 'ngbDatepicker',\n standalone: true,\n host: {\n '(input)': 'manualDateChange($event.target.value)',\n '(change)': 'manualDateChange($event.target.value, true)',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '[disabled]': 'disabled'\n },\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbInputDatepicker),\n multi: true\n }, {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NgbInputDatepicker),\n multi: true\n }, {\n provide: NgbDatepickerConfig,\n useExisting: NgbInputDatepickerConfig\n }]\n }]\n }], null, {\n autoClose: [{\n type: Input\n }],\n contentTemplate: [{\n type: Input\n }],\n datepickerClass: [{\n type: Input\n }],\n dayTemplate: [{\n type: Input\n }],\n dayTemplateData: [{\n type: Input\n }],\n displayMonths: [{\n type: Input\n }],\n firstDayOfWeek: [{\n type: Input\n }],\n footerTemplate: [{\n type: Input\n }],\n markDisabled: [{\n type: Input\n }],\n minDate: [{\n type: Input\n }],\n maxDate: [{\n type: Input\n }],\n navigation: [{\n type: Input\n }],\n outsideDays: [{\n type: Input\n }],\n placement: [{\n type: Input\n }],\n popperOptions: [{\n type: Input\n }],\n restoreFocus: [{\n type: Input\n }],\n showWeekNumbers: [{\n type: Input\n }],\n startDate: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n positionTarget: [{\n type: Input\n }],\n weekdays: [{\n type: Input\n }],\n dateSelect: [{\n type: Output\n }],\n navigate: [{\n type: Output\n }],\n closed: [{\n type: Output\n }],\n disabled: [{\n type: Input\n }]\n });\n})();\nclass NgbCalendarHijri extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths() {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n getWeeksPerMonth() {\n return 6;\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date = this._setYear(date, date.year + number);\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = this._setMonth(date, date.month + number);\n date.day = 1;\n return date;\n case 'd':\n return this._setDay(date, date.day + number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const day = this.toGregorian(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n const date = week[thursdayIndex];\n const jsDate = this.toGregorian(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n const MuhDate = this.toGregorian(new NgbDate(date.year, 1, 1)); // Compare with Muharram 1\n return Math.floor(Math.round((time - MuhDate.getTime()) / 86400000) / 7) + 1;\n }\n getToday() {\n return this.fromGregorian(new Date());\n }\n isValid(date) {\n return date != null && isNumber(date.year) && isNumber(date.month) && isNumber(date.day) && !isNaN(this.toGregorian(date).getTime());\n }\n _setDay(date, day) {\n day = +day;\n let mDays = this.getDaysPerMonth(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = this._setMonth(date, date.month - 1);\n mDays = this.getDaysPerMonth(date.month, date.year);\n day += mDays;\n }\n } else if (day > mDays) {\n while (day > mDays) {\n day -= mDays;\n date = this._setMonth(date, date.month + 1);\n mDays = this.getDaysPerMonth(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n }\n _setMonth(date, month) {\n month = +month;\n date.year = date.year + Math.floor((month - 1) / 12);\n date.month = Math.floor(((month - 1) % 12 + 12) % 12) + 1;\n return date;\n }\n _setYear(date, year) {\n date.year = +year;\n return date;\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarHijri_BaseFactory;\n return function NgbCalendarHijri_Factory(t) {\n return (ɵNgbCalendarHijri_BaseFactory || (ɵNgbCalendarHijri_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarHijri)))(t || NgbCalendarHijri);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarHijri,\n factory: NgbCalendarHijri.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarHijri, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * Checks if islamic year is a leap year\n */\nfunction isIslamicLeapYear(hYear) {\n return (14 + 11 * hYear) % 30 < 11;\n}\n/**\n * Checks if gregorian years is a leap year\n */\nfunction isGregorianLeapYear$1(gDate) {\n const year = gDate.getFullYear();\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\n/**\n * Returns the start of Hijri Month.\n * `hMonth` is 0 for Muharram, 1 for Safar, etc.\n * `hYear` is any Hijri hYear.\n */\nfunction getIslamicMonthStart(hYear, hMonth) {\n return Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30.0);\n}\n/**\n * Returns the start of Hijri year.\n * `year` is any Hijri year.\n */\nfunction getIslamicYearStart(year) {\n return (year - 1) * 354 + Math.floor((3 + 11 * year) / 30.0);\n}\nfunction mod$1(a, b) {\n return a - b * Math.floor(a / b);\n}\n/**\n * The civil calendar is one type of Hijri calendars used in islamic countries.\n * Uses a fixed cycle of alternating 29- and 30-day months,\n * with a leap day added to the last month of 11 out of every 30 years.\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\n * All the calculations here are based on the equations from \"Calendrical Calculations\" By Edward M. Reingold, Nachum\n * Dershowitz.\n */\nconst GREGORIAN_EPOCH$1 = 1721425.5;\nconst ISLAMIC_EPOCH = 1948439.5;\nclass NgbCalendarIslamicCivil extends NgbCalendarHijri {\n /**\n * Returns the equivalent islamic(civil) date value for a give input Gregorian date.\n * `gDate` is a JS Date to be converted to Hijri.\n */\n fromGregorian(gDate) {\n const gYear = gDate.getFullYear(),\n gMonth = gDate.getMonth(),\n gDay = gDate.getDate();\n let julianDay = GREGORIAN_EPOCH$1 - 1 + 365 * (gYear - 1) + Math.floor((gYear - 1) / 4) + -Math.floor((gYear - 1) / 100) + Math.floor((gYear - 1) / 400) + Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear$1(gDate) ? -1 : -2) + gDay);\n julianDay = Math.floor(julianDay) + 0.5;\n const days = julianDay - ISLAMIC_EPOCH;\n const hYear = Math.floor((30 * days + 10646) / 10631.0);\n let hMonth = Math.ceil((days - 29 - getIslamicYearStart(hYear)) / 29.5);\n hMonth = Math.min(hMonth, 11);\n const hDay = Math.ceil(days - getIslamicMonthStart(hYear, hMonth)) + 1;\n return new NgbDate(hYear, hMonth + 1, hDay);\n }\n /**\n * Returns the equivalent JS date value for a give input islamic(civil) date.\n * `hDate` is an islamic(civil) date to be converted to Gregorian.\n */\n toGregorian(hDate) {\n const hYear = hDate.year;\n const hMonth = hDate.month - 1;\n const hDay = hDate.day;\n const julianDay = hDay + Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30) + ISLAMIC_EPOCH - 1;\n const wjd = Math.floor(julianDay - 0.5) + 0.5,\n depoch = wjd - GREGORIAN_EPOCH$1,\n quadricent = Math.floor(depoch / 146097),\n dqc = mod$1(depoch, 146097),\n cent = Math.floor(dqc / 36524),\n dcent = mod$1(dqc, 36524),\n quad = Math.floor(dcent / 1461),\n dquad = mod$1(dcent, 1461),\n yindex = Math.floor(dquad / 365);\n let year = quadricent * 400 + cent * 100 + quad * 4 + yindex;\n if (!(cent === 4 || yindex === 4)) {\n year++;\n }\n const gYearStart = GREGORIAN_EPOCH$1 + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) + Math.floor((year - 1) / 400);\n const yearday = wjd - gYearStart;\n const tjd = GREGORIAN_EPOCH$1 - 1 + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) + Math.floor((year - 1) / 400) + Math.floor(739 / 12 + (isGregorianLeapYear$1(new Date(year, 3, 1)) ? -1 : -2) + 1);\n const leapadj = wjd < tjd ? 0 : isGregorianLeapYear$1(new Date(year, 3, 1)) ? 1 : 2;\n const month = Math.floor(((yearday + leapadj) * 12 + 373) / 367);\n const tjd2 = GREGORIAN_EPOCH$1 - 1 + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) + Math.floor((year - 1) / 400) + Math.floor((367 * month - 362) / 12 + (month <= 2 ? 0 : isGregorianLeapYear$1(new Date(year, month - 1, 1)) ? -1 : -2) + 1);\n const day = wjd - tjd2 + 1;\n return new Date(year, month - 1, day);\n }\n /**\n * Returns the number of days in a specific Hijri month.\n * `month` is 1 for Muharram, 2 for Safar, etc.\n * `year` is any Hijri year.\n */\n getDaysPerMonth(month, year) {\n year = year + Math.floor(month / 13);\n month = (month - 1) % 12 + 1;\n let length = 29 + month % 2;\n if (month === 12 && isIslamicLeapYear(year)) {\n length++;\n }\n return length;\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarIslamicCivil_BaseFactory;\n return function NgbCalendarIslamicCivil_Factory(t) {\n return (ɵNgbCalendarIslamicCivil_BaseFactory || (ɵNgbCalendarIslamicCivil_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarIslamicCivil)))(t || NgbCalendarIslamicCivil);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarIslamicCivil,\n factory: NgbCalendarIslamicCivil.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarIslamicCivil, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * Umalqura calendar is one type of Hijri calendars used in islamic countries.\n * This Calendar is used by Saudi Arabia for administrative purpose.\n * Unlike tabular calendars, the algorithm involves astronomical calculation, but it's still deterministic.\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\n */\nconst GREGORIAN_FIRST_DATE = new Date(1882, 10, 12);\nconst GREGORIAN_LAST_DATE = new Date(2174, 10, 25);\nconst HIJRI_BEGIN = 1300;\nconst HIJRI_END = 1600;\nconst ONE_DAY = 1000 * 60 * 60 * 24;\nconst MONTH_LENGTH = [\n// 1300-1304\n'101010101010', '110101010100', '111011001001', '011011010100', '011011101010',\n// 1305-1309\n'001101101100', '101010101101', '010101010101', '011010101001', '011110010010',\n// 1310-1314\n'101110101001', '010111010100', '101011011010', '010101011100', '110100101101',\n// 1315-1319\n'011010010101', '011101001010', '101101010100', '101101101010', '010110101101',\n// 1320-1324\n'010010101110', '101001001111', '010100010111', '011010001011', '011010100101',\n// 1325-1329\n'101011010101', '001011010110', '100101011011', '010010011101', '101001001101',\n// 1330-1334\n'110100100110', '110110010101', '010110101100', '100110110110', '001010111010',\n// 1335-1339\n'101001011011', '010100101011', '101010010101', '011011001010', '101011101001',\n// 1340-1344\n'001011110100', '100101110110', '001010110110', '100101010110', '101011001010',\n// 1345-1349\n'101110100100', '101111010010', '010111011001', '001011011100', '100101101101',\n// 1350-1354\n'010101001101', '101010100101', '101101010010', '101110100101', '010110110100',\n// 1355-1359\n'100110110110', '010101010111', '001010010111', '010101001011', '011010100011',\n// 1360-1364\n'011101010010', '101101100101', '010101101010', '101010101011', '010100101011',\n// 1365-1369\n'110010010101', '110101001010', '110110100101', '010111001010', '101011010110',\n// 1370-1374\n'100101010111', '010010101011', '100101001011', '101010100101', '101101010010',\n// 1375-1379\n'101101101010', '010101110101', '001001110110', '100010110111', '010001011011',\n// 1380-1384\n'010101010101', '010110101001', '010110110100', '100111011010', '010011011101',\n// 1385-1389\n'001001101110', '100100110110', '101010101010', '110101010100', '110110110010',\n// 1390-1394\n'010111010101', '001011011010', '100101011011', '010010101011', '101001010101',\n// 1395-1399\n'101101001001', '101101100100', '101101110001', '010110110100', '101010110101',\n// 1400-1404\n'101001010101', '110100100101', '111010010010', '111011001001', '011011010100',\n// 1405-1409\n'101011101001', '100101101011', '010010101011', '101010010011', '110101001001',\n// 1410-1414\n'110110100100', '110110110010', '101010111001', '010010111010', '101001011011',\n// 1415-1419\n'010100101011', '101010010101', '101100101010', '101101010101', '010101011100',\n// 1420-1424\n'010010111101', '001000111101', '100100011101', '101010010101', '101101001010',\n// 1425-1429\n'101101011010', '010101101101', '001010110110', '100100111011', '010010011011',\n// 1430-1434\n'011001010101', '011010101001', '011101010100', '101101101010', '010101101100',\n// 1435-1439\n'101010101101', '010101010101', '101100101001', '101110010010', '101110101001',\n// 1440-1444\n'010111010100', '101011011010', '010101011010', '101010101011', '010110010101',\n// 1445-1449\n'011101001001', '011101100100', '101110101010', '010110110101', '001010110110',\n// 1450-1454\n'101001010110', '111001001101', '101100100101', '101101010010', '101101101010',\n// 1455-1459\n'010110101101', '001010101110', '100100101111', '010010010111', '011001001011',\n// 1460-1464\n'011010100101', '011010101100', '101011010110', '010101011101', '010010011101',\n// 1465-1469\n'101001001101', '110100010110', '110110010101', '010110101010', '010110110101',\n// 1470-1474\n'001011011010', '100101011011', '010010101101', '010110010101', '011011001010',\n// 1475-1479\n'011011100100', '101011101010', '010011110101', '001010110110', '100101010110',\n// 1480-1484\n'101010101010', '101101010100', '101111010010', '010111011001', '001011101010',\n// 1485-1489\n'100101101101', '010010101101', '101010010101', '101101001010', '101110100101',\n// 1490-1494\n'010110110010', '100110110101', '010011010110', '101010010111', '010101000111',\n// 1495-1499\n'011010010011', '011101001001', '101101010101', '010101101010', '101001101011',\n// 1500-1504\n'010100101011', '101010001011', '110101000110', '110110100011', '010111001010',\n// 1505-1509\n'101011010110', '010011011011', '001001101011', '100101001011', '101010100101',\n// 1510-1514\n'101101010010', '101101101001', '010101110101', '000101110110', '100010110111',\n// 1515-1519\n'001001011011', '010100101011', '010101100101', '010110110100', '100111011010',\n// 1520-1524\n'010011101101', '000101101101', '100010110110', '101010100110', '110101010010',\n// 1525-1529\n'110110101001', '010111010100', '101011011010', '100101011011', '010010101011',\n// 1530-1534\n'011001010011', '011100101001', '011101100010', '101110101001', '010110110010',\n// 1535-1539\n'101010110101', '010101010101', '101100100101', '110110010010', '111011001001',\n// 1540-1544\n'011011010010', '101011101001', '010101101011', '010010101011', '101001010101',\n// 1545-1549\n'110100101001', '110101010100', '110110101010', '100110110101', '010010111010',\n// 1550-1554\n'101000111011', '010010011011', '101001001101', '101010101010', '101011010101',\n// 1555-1559\n'001011011010', '100101011101', '010001011110', '101000101110', '110010011010',\n// 1560-1564\n'110101010101', '011010110010', '011010111001', '010010111010', '101001011101',\n// 1565-1569\n'010100101101', '101010010101', '101101010010', '101110101000', '101110110100',\n// 1570-1574\n'010110111001', '001011011010', '100101011010', '101101001010', '110110100100',\n// 1575-1579\n'111011010001', '011011101000', '101101101010', '010101101101', '010100110101',\n// 1580-1584\n'011010010101', '110101001010', '110110101000', '110111010100', '011011011010',\n// 1585-1589\n'010101011011', '001010011101', '011000101011', '101100010101', '101101001010',\n// 1590-1594\n'101110010101', '010110101010', '101010101110', '100100101110', '110010001111',\n// 1595-1599\n'010100100111', '011010010101', '011010101010', '101011010110', '010101011101',\n// 1600\n'001010011101'];\nfunction getDaysDiff(date1, date2) {\n // Ignores the time part in date1 and date2:\n const time1 = Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate());\n const time2 = Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate());\n const diff = Math.abs(time1 - time2);\n return Math.round(diff / ONE_DAY);\n}\nclass NgbCalendarIslamicUmalqura extends NgbCalendarIslamicCivil {\n /**\n * Returns the equivalent islamic(Umalqura) date value for a give input Gregorian date.\n * `gdate` is s JS Date to be converted to Hijri.\n */\n fromGregorian(gDate) {\n let hDay = 1,\n hMonth = 0,\n hYear = 1300;\n let daysDiff = getDaysDiff(gDate, GREGORIAN_FIRST_DATE);\n if (gDate.getTime() - GREGORIAN_FIRST_DATE.getTime() >= 0 && gDate.getTime() - GREGORIAN_LAST_DATE.getTime() <= 0) {\n let year = 1300;\n for (let i = 0; i < MONTH_LENGTH.length; i++, year++) {\n for (let j = 0; j < 12; j++) {\n let numOfDays = +MONTH_LENGTH[i][j] + 29;\n if (daysDiff <= numOfDays) {\n hDay = daysDiff + 1;\n if (hDay > numOfDays) {\n hDay = 1;\n j++;\n }\n if (j > 11) {\n j = 0;\n year++;\n }\n hMonth = j;\n hYear = year;\n return new NgbDate(hYear, hMonth + 1, hDay);\n }\n daysDiff = daysDiff - numOfDays;\n }\n }\n return null;\n } else {\n return super.fromGregorian(gDate);\n }\n }\n /**\n * Converts the current Hijri date to Gregorian.\n */\n toGregorian(hDate) {\n const hYear = hDate.year;\n const hMonth = hDate.month - 1;\n const hDay = hDate.day;\n let gDate = new Date(GREGORIAN_FIRST_DATE);\n let dayDiff = hDay - 1;\n if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) {\n for (let y = 0; y < hYear - HIJRI_BEGIN; y++) {\n for (let m = 0; m < 12; m++) {\n dayDiff += +MONTH_LENGTH[y][m] + 29;\n }\n }\n for (let m = 0; m < hMonth; m++) {\n dayDiff += +MONTH_LENGTH[hYear - HIJRI_BEGIN][m] + 29;\n }\n gDate.setDate(GREGORIAN_FIRST_DATE.getDate() + dayDiff);\n } else {\n gDate = super.toGregorian(hDate);\n }\n return gDate;\n }\n /**\n * Returns the number of days in a specific Hijri hMonth.\n * `hMonth` is 1 for Muharram, 2 for Safar, etc.\n * `hYear` is any Hijri hYear.\n */\n getDaysPerMonth(hMonth, hYear) {\n if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) {\n const pos = hYear - HIJRI_BEGIN;\n return +MONTH_LENGTH[pos][hMonth - 1] + 29;\n }\n return super.getDaysPerMonth(hMonth, hYear);\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarIslamicUmalqura_BaseFactory;\n return function NgbCalendarIslamicUmalqura_Factory(t) {\n return (ɵNgbCalendarIslamicUmalqura_BaseFactory || (ɵNgbCalendarIslamicUmalqura_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarIslamicUmalqura)))(t || NgbCalendarIslamicUmalqura);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarIslamicUmalqura,\n factory: NgbCalendarIslamicUmalqura.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarIslamicUmalqura, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * Returns the equivalent JS date value for a give input Jalali date.\n * `jalaliDate` is an Jalali date to be converted to Gregorian.\n */\nfunction toGregorian$3(jalaliDate) {\n let jdn = jalaliToJulian(jalaliDate.year, jalaliDate.month, jalaliDate.day);\n let date = julianToGregorian$1(jdn);\n date.setHours(6, 30, 3, 200);\n return date;\n}\n/**\n * Returns the equivalent jalali date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to jalali.\n * utc to local\n */\nfunction fromGregorian$3(gdate) {\n let g2d = gregorianToJulian$1(gdate.getFullYear(), gdate.getMonth() + 1, gdate.getDate());\n return julianToJalali(g2d);\n}\nfunction setJalaliYear(date, yearValue) {\n date.year = +yearValue;\n return date;\n}\nfunction setJalaliMonth(date, month) {\n month = +month;\n date.year = date.year + Math.floor((month - 1) / 12);\n date.month = Math.floor(((month - 1) % 12 + 12) % 12) + 1;\n return date;\n}\nfunction setJalaliDay(date, day) {\n let mDays = getDaysPerMonth$1(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = setJalaliMonth(date, date.month - 1);\n mDays = getDaysPerMonth$1(date.month, date.year);\n day += mDays;\n }\n } else if (day > mDays) {\n while (day > mDays) {\n day -= mDays;\n date = setJalaliMonth(date, date.month + 1);\n mDays = getDaysPerMonth$1(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n}\nfunction mod(a, b) {\n return a - b * Math.floor(a / b);\n}\nfunction div(a, b) {\n return Math.trunc(a / b);\n}\n/*\n This function determines if the Jalali (Persian) year is\n leap (366-day long) or is the common year (365 days), and\n finds the day in March (Gregorian calendar) of the first\n day of the Jalali year (jalaliYear).\n @param jalaliYear Jalali calendar year (-61 to 3177)\n @return\n leap: number of years since the last leap year (0 to 4)\n gYear: Gregorian year of the beginning of Jalali year\n march: the March day of Farvardin the 1st (1st day of jalaliYear)\n @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm\n @see: http://www.fourmilab.ch/documents/calendar/\n */\nfunction jalCal(jalaliYear) {\n // Jalali years starting the 33-year rule.\n let breaks = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178];\n const breaksLength = breaks.length;\n const gYear = jalaliYear + 621;\n let leapJ = -14;\n let jp = breaks[0];\n if (jalaliYear < jp || jalaliYear >= breaks[breaksLength - 1]) {\n throw new Error('Invalid Jalali year ' + jalaliYear);\n }\n // Find the limiting years for the Jalali year jalaliYear.\n let jump;\n for (let i = 1; i < breaksLength; i += 1) {\n const jm = breaks[i];\n jump = jm - jp;\n if (jalaliYear < jm) {\n break;\n }\n leapJ = leapJ + div(jump, 33) * 8 + div(mod(jump, 33), 4);\n jp = jm;\n }\n let n = jalaliYear - jp;\n // Find the number of leap years from AD 621 to the beginning\n // of the current Jalali year in the Persian calendar.\n leapJ = leapJ + div(n, 33) * 8 + div(mod(n, 33) + 3, 4);\n if (mod(jump, 33) === 4 && jump - n === 4) {\n leapJ += 1;\n }\n // And the same in the Gregorian calendar (until the year gYear).\n const leapG = div(gYear, 4) - div((div(gYear, 100) + 1) * 3, 4) - 150;\n // Determine the Gregorian date of Farvardin the 1st.\n const march = 20 + leapJ - leapG;\n // Find how many years have passed since the last leap year.\n if (jump - n < 6) {\n n = n - jump + div(jump + 4, 33) * 33;\n }\n let leap = mod(mod(n + 1, 33) - 1, 4);\n if (leap === -1) {\n leap = 4;\n }\n return {\n leap: leap,\n gy: gYear,\n march: march\n };\n}\n/*\n Calculates Gregorian and Julian calendar dates from the Julian Day number\n (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both\n calendars) to some millions years ahead of the present.\n @param jdn Julian Day number\n @return\n gYear: Calendar year (years BC numbered 0, -1, -2, ...)\n gMonth: Calendar month (1 to 12)\n gDay: Calendar day of the month M (1 to 28/29/30/31)\n */\nfunction julianToGregorian$1(julianDayNumber) {\n let j = 4 * julianDayNumber + 139361631;\n j = j + div(div(4 * julianDayNumber + 183187720, 146097) * 3, 4) * 4 - 3908;\n const i = div(mod(j, 1461), 4) * 5 + 308;\n const gDay = div(mod(i, 153), 5) + 1;\n const gMonth = mod(div(i, 153), 12) + 1;\n const gYear = div(j, 1461) - 100100 + div(8 - gMonth, 6);\n return new Date(gYear, gMonth - 1, gDay);\n}\n/*\n Converts a date of the Jalali calendar to the Julian Day number.\n @param jy Jalali year (1 to 3100)\n @param jm Jalali month (1 to 12)\n @param jd Jalali day (1 to 29/31)\n @return Julian Day number\n */\nfunction gregorianToJulian$1(gy, gm, gd) {\n let d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4) + div(153 * mod(gm + 9, 12) + 2, 5) + gd - 34840408;\n d = d - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752;\n return d;\n}\n/*\n Converts the Julian Day number to a date in the Jalali calendar.\n @param julianDayNumber Julian Day number\n @return\n jalaliYear: Jalali year (1 to 3100)\n jalaliMonth: Jalali month (1 to 12)\n jalaliDay: Jalali day (1 to 29/31)\n */\nfunction julianToJalali(julianDayNumber) {\n let gy = julianToGregorian$1(julianDayNumber).getFullYear(),\n // Calculate Gregorian year (gy).\n jalaliYear = gy - 621,\n r = jalCal(jalaliYear),\n gregorianDay = gregorianToJulian$1(gy, 3, r.march),\n jalaliDay,\n jalaliMonth,\n numberOfDays;\n // Find number of days that passed since 1 Farvardin.\n numberOfDays = julianDayNumber - gregorianDay;\n if (numberOfDays >= 0) {\n if (numberOfDays <= 185) {\n // The first 6 months.\n jalaliMonth = 1 + div(numberOfDays, 31);\n jalaliDay = mod(numberOfDays, 31) + 1;\n return new NgbDate(jalaliYear, jalaliMonth, jalaliDay);\n } else {\n // The remaining months.\n numberOfDays -= 186;\n }\n } else {\n // Previous Jalali year.\n jalaliYear -= 1;\n numberOfDays += 179;\n if (r.leap === 1) {\n numberOfDays += 1;\n }\n }\n jalaliMonth = 7 + div(numberOfDays, 30);\n jalaliDay = mod(numberOfDays, 30) + 1;\n return new NgbDate(jalaliYear, jalaliMonth, jalaliDay);\n}\n/*\n Converts a date of the Jalali calendar to the Julian Day number.\n @param jYear Jalali year (1 to 3100)\n @param jMonth Jalali month (1 to 12)\n @param jDay Jalali day (1 to 29/31)\n @return Julian Day number\n */\nfunction jalaliToJulian(jYear, jMonth, jDay) {\n let r = jalCal(jYear);\n return gregorianToJulian$1(r.gy, 3, r.march) + (jMonth - 1) * 31 - div(jMonth, 7) * (jMonth - 7) + jDay - 1;\n}\n/**\n * Returns the number of days in a specific jalali month.\n */\nfunction getDaysPerMonth$1(month, year) {\n if (month <= 6) {\n return 31;\n }\n if (month <= 11) {\n return 30;\n }\n if (jalCal(year).leap === 0) {\n return 30;\n }\n return 29;\n}\nclass NgbCalendarPersian extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths() {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n getWeeksPerMonth() {\n return 6;\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date = setJalaliYear(date, date.year + number);\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = setJalaliMonth(date, date.month + number);\n date.day = 1;\n return date;\n case 'd':\n return setJalaliDay(date, date.day + number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const day = toGregorian$3(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n const date = week[thursdayIndex];\n const jsDate = toGregorian$3(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n const startDate = toGregorian$3(new NgbDate(date.year, 1, 1));\n return Math.floor(Math.round((time - startDate.getTime()) / 86400000) / 7) + 1;\n }\n getToday() {\n return fromGregorian$3(new Date());\n }\n isValid(date) {\n return date != null && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) && !isNaN(toGregorian$3(date).getTime());\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarPersian_BaseFactory;\n return function NgbCalendarPersian_Factory(t) {\n return (ɵNgbCalendarPersian_BaseFactory || (ɵNgbCalendarPersian_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarPersian)))(t || NgbCalendarPersian);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarPersian,\n factory: NgbCalendarPersian.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarPersian, [{\n type: Injectable\n }], null, null);\n})();\nconst PARTS_PER_HOUR = 1080;\nconst PARTS_PER_DAY = 24 * PARTS_PER_HOUR;\nconst PARTS_FRACTIONAL_MONTH = 12 * PARTS_PER_HOUR + 793;\nconst PARTS_PER_MONTH = 29 * PARTS_PER_DAY + PARTS_FRACTIONAL_MONTH;\nconst BAHARAD = 11 * PARTS_PER_HOUR + 204;\nconst HEBREW_DAY_ON_JAN_1_1970 = 2092591;\nconst GREGORIAN_EPOCH = 1721425.5;\nfunction isGregorianLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\nfunction numberOfFirstDayInYear(year) {\n let monthsBeforeYear = Math.floor((235 * year - 234) / 19);\n let fractionalMonthsBeforeYear = monthsBeforeYear * PARTS_FRACTIONAL_MONTH + BAHARAD;\n let dayNumber = monthsBeforeYear * 29 + Math.floor(fractionalMonthsBeforeYear / PARTS_PER_DAY);\n let timeOfDay = fractionalMonthsBeforeYear % PARTS_PER_DAY;\n let dayOfWeek = dayNumber % 7; // 0 == Monday\n if (dayOfWeek === 2 || dayOfWeek === 4 || dayOfWeek === 6) {\n dayNumber++;\n dayOfWeek = dayNumber % 7;\n }\n if (dayOfWeek === 1 && timeOfDay > 15 * PARTS_PER_HOUR + 204 && !isHebrewLeapYear(year)) {\n dayNumber += 2;\n } else if (dayOfWeek === 0 && timeOfDay > 21 * PARTS_PER_HOUR + 589 && isHebrewLeapYear(year - 1)) {\n dayNumber++;\n }\n return dayNumber;\n}\nfunction getDaysInGregorianMonth(month, year) {\n let days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (isGregorianLeapYear(year)) {\n days[1]++;\n }\n return days[month - 1];\n}\nfunction getHebrewMonths(year) {\n return isHebrewLeapYear(year) ? 13 : 12;\n}\n/**\n * Returns the number of days in a specific Hebrew year.\n * `year` is any Hebrew year.\n */\nfunction getDaysInHebrewYear(year) {\n return numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year);\n}\nfunction isHebrewLeapYear(year) {\n if (year != null) {\n let b = (year * 12 + 17) % 19;\n return b >= (b < 0 ? -7 : 12);\n }\n return false;\n}\n/**\n * Returns the number of days in a specific Hebrew month.\n * `month` is 1 for Nisan, 2 for Iyar etc. Note: Hebrew leap year contains 13 months.\n * `year` is any Hebrew year.\n */\nfunction getDaysInHebrewMonth(month, year) {\n let yearLength = numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year);\n let yearType = (yearLength <= 380 ? yearLength : yearLength - 30) - 353;\n let leapYear = isHebrewLeapYear(year);\n let daysInMonth = leapYear ? [30, 29, 29, 29, 30, 30, 29, 30, 29, 30, 29, 30, 29] : [30, 29, 29, 29, 30, 29, 30, 29, 30, 29, 30, 29];\n if (yearType > 0) {\n daysInMonth[2]++; // Kislev gets an extra day in normal or complete years.\n }\n if (yearType > 1) {\n daysInMonth[1]++; // Heshvan gets an extra day in complete years only.\n }\n return daysInMonth[month - 1];\n}\nfunction getDayNumberInHebrewYear(date) {\n let numberOfDay = 0;\n for (let i = 1; i < date.month; i++) {\n numberOfDay += getDaysInHebrewMonth(i, date.year);\n }\n return numberOfDay + date.day;\n}\nfunction setHebrewMonth(date, val) {\n let after = val >= 0;\n if (!after) {\n val = -val;\n }\n while (val > 0) {\n if (after) {\n if (val > getHebrewMonths(date.year) - date.month) {\n val -= getHebrewMonths(date.year) - date.month + 1;\n date.year++;\n date.month = 1;\n } else {\n date.month += val;\n val = 0;\n }\n } else {\n if (val >= date.month) {\n date.year--;\n val -= date.month;\n date.month = getHebrewMonths(date.year);\n } else {\n date.month -= val;\n val = 0;\n }\n }\n }\n return date;\n}\nfunction setHebrewDay(date, val) {\n let after = val >= 0;\n if (!after) {\n val = -val;\n }\n while (val > 0) {\n if (after) {\n if (val > getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date)) {\n val -= getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date) + 1;\n date.year++;\n date.month = 1;\n date.day = 1;\n } else if (val > getDaysInHebrewMonth(date.month, date.year) - date.day) {\n val -= getDaysInHebrewMonth(date.month, date.year) - date.day + 1;\n date.month++;\n date.day = 1;\n } else {\n date.day += val;\n val = 0;\n }\n } else {\n if (val >= date.day) {\n val -= date.day;\n date.month--;\n if (date.month === 0) {\n date.year--;\n date.month = getHebrewMonths(date.year);\n }\n date.day = getDaysInHebrewMonth(date.month, date.year);\n } else {\n date.day -= val;\n val = 0;\n }\n }\n }\n return date;\n}\n/**\n * Returns the equivalent Hebrew date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to Hebrew date.\n */\nfunction fromGregorian$2(gdate) {\n const date = new Date(gdate);\n const gYear = date.getFullYear(),\n gMonth = date.getMonth(),\n gDay = date.getDate();\n let julianDay = GREGORIAN_EPOCH - 1 + 365 * (gYear - 1) + Math.floor((gYear - 1) / 4) - Math.floor((gYear - 1) / 100) + Math.floor((gYear - 1) / 400) + Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear(gYear) ? -1 : -2) + gDay);\n julianDay = Math.floor(julianDay + 0.5);\n let daysSinceHebEpoch = julianDay - 347997;\n let monthsSinceHebEpoch = Math.floor(daysSinceHebEpoch * PARTS_PER_DAY / PARTS_PER_MONTH);\n let hYear = Math.floor((monthsSinceHebEpoch * 19 + 234) / 235) + 1;\n let firstDayOfThisYear = numberOfFirstDayInYear(hYear);\n let dayOfYear = daysSinceHebEpoch - firstDayOfThisYear;\n while (dayOfYear < 1) {\n hYear--;\n firstDayOfThisYear = numberOfFirstDayInYear(hYear);\n dayOfYear = daysSinceHebEpoch - firstDayOfThisYear;\n }\n let hMonth = 1;\n let hDay = dayOfYear;\n while (hDay > getDaysInHebrewMonth(hMonth, hYear)) {\n hDay -= getDaysInHebrewMonth(hMonth, hYear);\n hMonth++;\n }\n return new NgbDate(hYear, hMonth, hDay);\n}\n/**\n * Returns the equivalent JS date value for a given Hebrew date.\n * `hebrewDate` is an Hebrew date to be converted to Gregorian.\n */\nfunction toGregorian$2(hebrewDate) {\n const hYear = hebrewDate.year;\n const hMonth = hebrewDate.month;\n const hDay = hebrewDate.day;\n let days = numberOfFirstDayInYear(hYear);\n for (let i = 1; i < hMonth; i++) {\n days += getDaysInHebrewMonth(i, hYear);\n }\n days += hDay;\n let diffDays = days - HEBREW_DAY_ON_JAN_1_1970;\n let after = diffDays >= 0;\n if (!after) {\n diffDays = -diffDays;\n }\n let gYear = 1970;\n let gMonth = 1;\n let gDay = 1;\n while (diffDays > 0) {\n if (after) {\n if (diffDays >= (isGregorianLeapYear(gYear) ? 366 : 365)) {\n diffDays -= isGregorianLeapYear(gYear) ? 366 : 365;\n gYear++;\n } else if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) {\n diffDays -= getDaysInGregorianMonth(gMonth, gYear);\n gMonth++;\n } else {\n gDay += diffDays;\n diffDays = 0;\n }\n } else {\n if (diffDays >= (isGregorianLeapYear(gYear - 1) ? 366 : 365)) {\n diffDays -= isGregorianLeapYear(gYear - 1) ? 366 : 365;\n gYear--;\n } else {\n if (gMonth > 1) {\n gMonth--;\n } else {\n gMonth = 12;\n gYear--;\n }\n if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) {\n diffDays -= getDaysInGregorianMonth(gMonth, gYear);\n } else {\n gDay = getDaysInGregorianMonth(gMonth, gYear) - diffDays + 1;\n diffDays = 0;\n }\n }\n }\n }\n return new Date(gYear, gMonth - 1, gDay);\n}\nfunction hebrewNumerals(numerals) {\n if (!numerals) {\n return '';\n }\n const hArray0_9 = ['', '\\u05d0', '\\u05d1', '\\u05d2', '\\u05d3', '\\u05d4', '\\u05d5', '\\u05d6', '\\u05d7', '\\u05d8'];\n const hArray10_19 = ['\\u05d9', '\\u05d9\\u05d0', '\\u05d9\\u05d1', '\\u05d9\\u05d2', '\\u05d9\\u05d3', '\\u05d8\\u05d5', '\\u05d8\\u05d6', '\\u05d9\\u05d6', '\\u05d9\\u05d7', '\\u05d9\\u05d8'];\n const hArray20_90 = ['', '', '\\u05db', '\\u05dc', '\\u05de', '\\u05e0', '\\u05e1', '\\u05e2', '\\u05e4', '\\u05e6'];\n const hArray100_900 = ['', '\\u05e7', '\\u05e8', '\\u05e9', '\\u05ea', '\\u05ea\\u05e7', '\\u05ea\\u05e8', '\\u05ea\\u05e9', '\\u05ea\\u05ea', '\\u05ea\\u05ea\\u05e7'];\n const hArray1000_9000 = ['', '\\u05d0', '\\u05d1', '\\u05d1\\u05d0', '\\u05d1\\u05d1', '\\u05d4', '\\u05d4\\u05d0', '\\u05d4\\u05d1', '\\u05d4\\u05d1\\u05d0', '\\u05d4\\u05d1\\u05d1'];\n const geresh = '\\u05f3',\n gershaim = '\\u05f4';\n let mem = 0;\n let result = [];\n let step = 0;\n while (numerals > 0) {\n let m = numerals % 10;\n if (step === 0) {\n mem = m;\n } else if (step === 1) {\n if (m !== 1) {\n result.unshift(hArray20_90[m], hArray0_9[mem]);\n } else {\n result.unshift(hArray10_19[mem]);\n }\n } else if (step === 2) {\n result.unshift(hArray100_900[m]);\n } else {\n if (m !== 5) {\n result.unshift(hArray1000_9000[m], geresh, ' ');\n }\n break;\n }\n numerals = Math.floor(numerals / 10);\n if (step === 0 && numerals === 0) {\n result.unshift(hArray0_9[m]);\n }\n step++;\n }\n result = result.join('').split('');\n if (result.length === 1) {\n result.push(geresh);\n } else if (result.length > 1) {\n result.splice(result.length - 1, 0, gershaim);\n }\n return result.join('');\n}\n\n/**\n * @since 3.2.0\n */\nclass NgbCalendarHebrew extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths(year) {\n if (year && isHebrewLeapYear(year)) {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];\n } else {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n }\n getWeeksPerMonth() {\n return 6;\n }\n isValid(date) {\n if (date != null) {\n let b = isNumber(date.year) && isNumber(date.month) && isNumber(date.day);\n b = b && date.month > 0 && date.month <= (isHebrewLeapYear(date.year) ? 13 : 12);\n b = b && date.day > 0 && date.day <= getDaysInHebrewMonth(date.month, date.year);\n return b && !isNaN(toGregorian$2(date).getTime());\n }\n return false;\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date.year += number;\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = setHebrewMonth(date, number);\n date.day = 1;\n return date;\n case 'd':\n return setHebrewDay(date, number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const day = toGregorian$2(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n const date = week[week.length - 1];\n return Math.ceil(getDayNumberInHebrewYear(date) / 7);\n }\n getToday() {\n return fromGregorian$2(new Date());\n }\n /**\n * @since 3.4.0\n */\n toGregorian(date) {\n return fromJSDate(toGregorian$2(date));\n }\n /**\n * @since 3.4.0\n */\n fromGregorian(date) {\n return fromGregorian$2(toJSDate(date));\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarHebrew_BaseFactory;\n return function NgbCalendarHebrew_Factory(t) {\n return (ɵNgbCalendarHebrew_BaseFactory || (ɵNgbCalendarHebrew_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarHebrew)))(t || NgbCalendarHebrew);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarHebrew,\n factory: NgbCalendarHebrew.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarHebrew, [{\n type: Injectable\n }], null, null);\n})();\nconst WEEKDAYS$1 = ['שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת', 'ראשון'];\nconst MONTHS$1 = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];\nconst MONTHS_LEAP = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר א׳', 'אדר ב׳', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];\n/**\n * @since 3.2.0\n */\nclass NgbDatepickerI18nHebrew extends NgbDatepickerI18n {\n getMonthShortName(month, year) {\n return this.getMonthFullName(month, year);\n }\n getMonthFullName(month, year) {\n return isHebrewLeapYear(year) ? MONTHS_LEAP[month - 1] || '' : MONTHS$1[month - 1] || '';\n }\n getWeekdayLabel(weekday, width) {\n return WEEKDAYS$1[weekday - 1] || '';\n }\n getDayAriaLabel(date) {\n return `${hebrewNumerals(date.day)} ${this.getMonthFullName(date.month, date.year)} ${hebrewNumerals(date.year)}`;\n }\n getDayNumerals(date) {\n return hebrewNumerals(date.day);\n }\n getWeekNumerals(weekNumber) {\n return hebrewNumerals(weekNumber);\n }\n getYearNumerals(year) {\n return hebrewNumerals(year);\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDatepickerI18nHebrew_BaseFactory;\n return function NgbDatepickerI18nHebrew_Factory(t) {\n return (ɵNgbDatepickerI18nHebrew_BaseFactory || (ɵNgbDatepickerI18nHebrew_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDatepickerI18nHebrew)))(t || NgbDatepickerI18nHebrew);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerI18nHebrew,\n factory: NgbDatepickerI18nHebrew.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerI18nHebrew, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * Returns the equivalent JS date value for a give input Buddhist date.\n * `date` is an Buddhist date to be converted to Gregorian.\n */\nfunction toGregorian$1(date) {\n return new Date(date.year - 543, date.month - 1, date.day);\n}\n/**\n * Returns the equivalent Buddhist date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to Buddhist.\n * utc to local\n */\nfunction fromGregorian$1(gdate) {\n return new NgbDate(gdate.getFullYear() + 543, gdate.getMonth() + 1, gdate.getDate());\n}\n\n/**\n * @since 9.1.0\n */\nclass NgbCalendarBuddhist extends NgbCalendarGregorian {\n getToday() {\n return fromGregorian$1(new Date());\n }\n getNext(date, period = 'd', number = 1) {\n let jsDate = toGregorian$1(date);\n let checkMonth = true;\n let expectedMonth = jsDate.getMonth();\n switch (period) {\n case 'y':\n jsDate.setFullYear(jsDate.getFullYear() + number);\n break;\n case 'm':\n expectedMonth += number;\n jsDate.setMonth(expectedMonth);\n expectedMonth = expectedMonth % 12;\n if (expectedMonth < 0) {\n expectedMonth = expectedMonth + 12;\n }\n break;\n case 'd':\n jsDate.setDate(jsDate.getDate() + number);\n checkMonth = false;\n break;\n default:\n return date;\n }\n if (checkMonth && jsDate.getMonth() !== expectedMonth) {\n // this means the destination month has less days than the initial month\n // let's go back to the end of the previous month:\n jsDate.setDate(0);\n }\n return fromGregorian$1(jsDate);\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n let jsDate = toGregorian$1(date);\n let day = jsDate.getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n let date = week[thursdayIndex];\n const jsDate = toGregorian$1(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n jsDate.setMonth(0); // Compare with Jan 1\n jsDate.setDate(1);\n return Math.floor(Math.round((time - jsDate.getTime()) / 86400000) / 7) + 1;\n }\n isValid(date) {\n if (!date || !isInteger(date.year) || !isInteger(date.month) || !isInteger(date.day)) {\n return false;\n }\n // year 0 doesn't exist in Gregorian calendar\n if (date.year === 0) {\n return false;\n }\n const jsDate = toGregorian$1(date);\n return !isNaN(jsDate.getTime()) && jsDate.getFullYear() === date.year - 543 && jsDate.getMonth() + 1 === date.month && jsDate.getDate() === date.day;\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarBuddhist_BaseFactory;\n return function NgbCalendarBuddhist_Factory(t) {\n return (ɵNgbCalendarBuddhist_BaseFactory || (ɵNgbCalendarBuddhist_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarBuddhist)))(t || NgbCalendarBuddhist);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarBuddhist,\n factory: NgbCalendarBuddhist.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarBuddhist, [{\n type: Injectable\n }], null, null);\n})();\nconst JD_EPOCH = 1724220.5;\nconst DAYSPERMONTH = [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5];\n/**\n * Determine whether this date is in a leap year.\n * * `year` is the year to examine\n * returns boolean - true if this is a leap year, false if not\n * */\nfunction isEthiopianLeapYear(year) {\n if (year != null) {\n return year % 4 == 3 || year % 4 == -1;\n }\n return false;\n}\n/**\n * Sets the Ethiopian year.\n * * `date` is Ethiopian date\n * * `yearValue` incremented year\n * returns NgbDate - ethiopian date\n * */\nfunction setEthiopianYear(date, yearValue) {\n date.year = +yearValue;\n return date;\n}\n/**\n * Sets the Ethiopian month.\n * * `date` is Ethiopian date\n * * `val` incremented month\n * returns NgbDate - Ethiopian date\n * */\nfunction setEthiopianMonth(date, val) {\n val = +val;\n date.year = date.year + Math.floor((val - 1) / 13);\n date.month = Math.floor(((val - 1) % 13 + 13) % 13) + 1;\n return date;\n}\n/**\n * Sets the Ethiopian day.\n * * `date` is Ethiopian date\n * * `day` incremented day\n * returns NgbDate - Ethiopian date\n * */\nfunction setEthiopianDay(date, day) {\n let mDays = getDaysPerMonth(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = setEthiopianMonth(date, date.month - 1);\n mDays = getDaysPerMonth(date.month, date.year);\n day += mDays;\n }\n } else if (day > mDays) {\n while (day > mDays) {\n day -= mDays;\n date = setEthiopianMonth(date, date.month + 1);\n mDays = getDaysPerMonth(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n}\nfunction getDaysPerMonth(month, year) {\n let leapYear = isEthiopianLeapYear(year);\n return DAYSPERMONTH[month - 1] + (month === 13 && leapYear ? 1 : 0);\n}\nfunction toGregorian(ethiopianDate) {\n let jdn = ethiopianToJulian(ethiopianDate.year, ethiopianDate.month, ethiopianDate.day);\n let date = julianToGregorian(jdn);\n date.setHours(6, 30, 3, 200);\n return date;\n}\nfunction fromGregorian(gdate) {\n let g2d = gregorianToJulian(gdate.getFullYear(), gdate.getMonth() + 1, gdate.getDate());\n return juilianToEthiopia(g2d);\n}\nfunction ethiopianToJulian(year, month, day) {\n if (year < 0) {\n year++;\n } // No year zero\n return day + (month - 1) * 30 + (year - 1) * 365 + Math.floor(year / 4) + JD_EPOCH - 1;\n}\nfunction juilianToEthiopia(jd) {\n let c = Math.floor(jd) + 0.5 - JD_EPOCH;\n let year = Math.floor((c - Math.floor((c + 366) / 1461)) / 365) + 1;\n if (year <= 0) {\n year--;\n } // No year zero\n c = Math.floor(jd) + 0.5 - ethiopianToJulian(year, 1, 1);\n let month = Math.floor(c / 30) + 1;\n let day = c - (month - 1) * 30 + 1;\n return new NgbDate(year, month, day);\n}\nfunction julianToGregorian(jd) {\n let z = Math.floor(jd + 0.5);\n let a = Math.floor((z - 1867216.25) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n let b = a + 1524;\n let c = Math.floor((b - 122.1) / 365.25);\n let d = Math.floor(365.25 * c);\n let e = Math.floor((b - d) / 30.6001);\n let day = b - d - Math.floor(e * 30.6001);\n let month = e - (e > 13.5 ? 13 : 1);\n let year = c - (month > 2.5 ? 4716 : 4715);\n if (year <= 0) {\n year--;\n } // No year zero\n return new Date(year, month, day);\n}\nfunction gregorianToJulian(year, month, day) {\n if (year < 0) {\n year++;\n } // No year zero\n // Jean Meeus algorithm, \"Astronomical Algorithms\", 1991\n if (month < 3) {\n month += 12;\n year--;\n }\n let a = Math.floor(year / 100);\n let b = 2 - a + Math.floor(a / 4);\n return Math.floor(365.25 * (year + 4716)) + Math.floor(30.6001 * (month + 1)) + day + b - 1524.5;\n}\n\n/**\n * @since 16.0.0\n */\nclass NgbCalendarEthiopian extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths(year) {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date = setEthiopianYear(date, date.year + number);\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = setEthiopianMonth(date, date.month + number);\n date.day = 1;\n return date;\n case 'd':\n return setEthiopianDay(date, date.day + number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const dt = Math.floor(ethiopianToJulian(date.year, date.month, date.day) + 3) % 7;\n return dt === 0 ? 7 : dt;\n }\n getWeekNumber(week, firstDayOfWeek) {\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n const date = week[thursdayIndex];\n const jsDate = toGregorian(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n const startDate = toGregorian(new NgbDate(date.year, 1, 1));\n return Math.floor(Math.round((time - startDate.getTime()) / 86400000) / 7) + 1;\n }\n getWeeksPerMonth() {\n return 6;\n }\n getToday() {\n return fromGregorian(new Date());\n }\n isValid(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) && !isNaN(toGregorian(date).getTime());\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarEthiopian_BaseFactory;\n return function NgbCalendarEthiopian_Factory(t) {\n return (ɵNgbCalendarEthiopian_BaseFactory || (ɵNgbCalendarEthiopian_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarEthiopian)))(t || NgbCalendarEthiopian);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarEthiopian,\n factory: NgbCalendarEthiopian.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarEthiopian, [{\n type: Injectable\n }], null, null);\n})();\nconst WEEKDAYS = ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', 'ሓሙስ', 'ዓርብ', 'ቅዳሜ'];\nconst MONTHS = ['መስከረም', 'ጥቅምት', 'ኅዳር', 'ታህሣሥ', 'ጥር', 'የካቲት', 'መጋቢት', 'ሚያዝያ', 'ግንቦት', 'ሰኔ', 'ሐምሌ', 'ነሐሴ', 'ጳጉሜ'];\n/**\n * @since 16.0.0\n */\nclass NgbDatepickerI18nAmharic extends NgbDatepickerI18n {\n getMonthShortName(month, year) {\n return this.getMonthFullName(month, year);\n }\n getMonthFullName(month, year) {\n return MONTHS[month - 1];\n }\n getWeekdayLabel(weekday, width) {\n return WEEKDAYS[weekday - 1];\n }\n getDayAriaLabel(date) {\n return `${date.day} ${this.getMonthFullName(date.month, date.year)} ${date.year}`;\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDatepickerI18nAmharic_BaseFactory;\n return function NgbDatepickerI18nAmharic_Factory(t) {\n return (ɵNgbDatepickerI18nAmharic_BaseFactory || (ɵNgbDatepickerI18nAmharic_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDatepickerI18nAmharic)))(t || NgbDatepickerI18nAmharic);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerI18nAmharic,\n factory: NgbDatepickerI18nAmharic.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerI18nAmharic, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * [`NgbDateAdapter`](#/components/datepicker/api#NgbDateAdapter) implementation that uses\n * native javascript dates as a user date model.\n */\nclass NgbDateNativeAdapter extends NgbDateAdapter {\n /**\n * Converts a native `Date` to a `NgbDateStruct`.\n */\n fromModel(date) {\n return date instanceof Date && !isNaN(date.getTime()) ? this._fromNativeDate(date) : null;\n }\n /**\n * Converts a `NgbDateStruct` to a native `Date`.\n */\n toModel(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) ? this._toNativeDate(date) : null;\n }\n _fromNativeDate(date) {\n return {\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate()\n };\n }\n _toNativeDate(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 static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDateNativeAdapter_BaseFactory;\n return function NgbDateNativeAdapter_Factory(t) {\n return (ɵNgbDateNativeAdapter_BaseFactory || (ɵNgbDateNativeAdapter_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDateNativeAdapter)))(t || NgbDateNativeAdapter);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDateNativeAdapter,\n factory: NgbDateNativeAdapter.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDateNativeAdapter, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * Same as [`NgbDateNativeAdapter`](#/components/datepicker/api#NgbDateNativeAdapter), but with UTC dates.\n *\n * @since 3.2.0\n */\nclass NgbDateNativeUTCAdapter extends NgbDateNativeAdapter {\n _fromNativeDate(date) {\n return {\n year: date.getUTCFullYear(),\n month: date.getUTCMonth() + 1,\n day: date.getUTCDate()\n };\n }\n _toNativeDate(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 static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDateNativeUTCAdapter_BaseFactory;\n return function NgbDateNativeUTCAdapter_Factory(t) {\n return (ɵNgbDateNativeUTCAdapter_BaseFactory || (ɵNgbDateNativeUTCAdapter_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDateNativeUTCAdapter)))(t || NgbDateNativeUTCAdapter);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDateNativeUTCAdapter,\n factory: NgbDateNativeUTCAdapter.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDateNativeUTCAdapter, [{\n type: Injectable\n }], null, null);\n})();\nconst NGB_DATEPICKER_DIRECTIVES = [NgbDatepicker, NgbDatepickerContent, NgbInputDatepicker, NgbDatepickerMonth];\nclass NgbDatepickerModule {\n static #_ = this.ɵfac = function NgbDatepickerModule_Factory(t) {\n return new (t || NgbDatepickerModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbDatepickerModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerModule, [{\n type: NgModule,\n args: [{\n exports: NGB_DATEPICKER_DIRECTIVES,\n imports: NGB_DATEPICKER_DIRECTIVES\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbDropdown`](#/components/dropdown/api#NgbDropdown) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the dropdowns used in the application.\n */\nclass NgbDropdownConfig {\n constructor() {\n this.autoClose = true;\n this.placement = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];\n this.popperOptions = options => options;\n this.container = null;\n }\n static #_ = this.ɵfac = function NgbDropdownConfig_Factory(t) {\n return new (t || NgbDropdownConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDropdownConfig,\n factory: NgbDropdownConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A directive you should put on a dropdown item to enable keyboard navigation.\n * Arrow keys will move focus between items marked with this directive.\n *\n * @since 4.1.0\n */\nclass NgbDropdownItem {\n constructor() {\n this._disabled = false;\n this.nativeElement = inject(ElementRef).nativeElement;\n this.tabindex = 0;\n }\n set disabled(value) {\n this._disabled = value === '' || value === true; // accept an empty attribute as true\n }\n get disabled() {\n return this._disabled;\n }\n static #_ = this.ɵfac = function NgbDropdownItem_Factory(t) {\n return new (t || NgbDropdownItem)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDropdownItem,\n selectors: [[\"\", \"ngbDropdownItem\", \"\"]],\n hostAttrs: [1, \"dropdown-item\"],\n hostVars: 3,\n hostBindings: function NgbDropdownItem_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"tabIndex\", ctx.disabled ? -1 : ctx.tabindex);\n i0.ɵɵclassProp(\"disabled\", ctx.disabled);\n }\n },\n inputs: {\n tabindex: \"tabindex\",\n disabled: \"disabled\"\n },\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownItem, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownItem]',\n standalone: true,\n host: {\n class: 'dropdown-item',\n '[class.disabled]': 'disabled',\n '[tabIndex]': 'disabled ? -1 : tabindex'\n }\n }]\n }], null, {\n tabindex: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }]\n });\n})();\n/**\n * A directive that will be applied if dropdown item is a button.\n * It will only set the disabled property.\n */\nclass NgbDropdownButtonItem {\n constructor() {\n this.item = inject(NgbDropdownItem);\n }\n static #_ = this.ɵfac = function NgbDropdownButtonItem_Factory(t) {\n return new (t || NgbDropdownButtonItem)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDropdownButtonItem,\n selectors: [[\"button\", \"ngbDropdownItem\", \"\"]],\n hostVars: 1,\n hostBindings: function NgbDropdownButtonItem_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"disabled\", ctx.item.disabled);\n }\n },\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownButtonItem, [{\n type: Directive,\n args: [{\n selector: 'button[ngbDropdownItem]',\n standalone: true,\n host: {\n '[disabled]': 'item.disabled'\n }\n }]\n }], null, null);\n})();\n/**\n * A directive that wraps dropdown menu content and dropdown items.\n */\nclass NgbDropdownMenu {\n constructor() {\n this.dropdown = inject(NgbDropdown);\n this.nativeElement = inject(ElementRef).nativeElement;\n }\n static #_ = this.ɵfac = function NgbDropdownMenu_Factory(t) {\n return new (t || NgbDropdownMenu)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDropdownMenu,\n selectors: [[\"\", \"ngbDropdownMenu\", \"\"]],\n contentQueries: function NgbDropdownMenu_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbDropdownItem, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.menuItems = _t);\n }\n },\n hostVars: 4,\n hostBindings: function NgbDropdownMenu_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown.ArrowUp\", function NgbDropdownMenu_keydown_ArrowUp_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.ArrowDown\", function NgbDropdownMenu_keydown_ArrowDown_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Home\", function NgbDropdownMenu_keydown_Home_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.End\", function NgbDropdownMenu_keydown_End_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Enter\", function NgbDropdownMenu_keydown_Enter_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Space\", function NgbDropdownMenu_keydown_Space_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Tab\", function NgbDropdownMenu_keydown_Tab_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Shift.Tab\", function NgbDropdownMenu_keydown_Shift_Tab_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"dropdown-menu\", true)(\"show\", ctx.dropdown.isOpen());\n }\n },\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownMenu, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownMenu]',\n standalone: true,\n host: {\n '[class.dropdown-menu]': 'true',\n '[class.show]': 'dropdown.isOpen()',\n '(keydown.ArrowUp)': 'dropdown.onKeyDown($event)',\n '(keydown.ArrowDown)': 'dropdown.onKeyDown($event)',\n '(keydown.Home)': 'dropdown.onKeyDown($event)',\n '(keydown.End)': 'dropdown.onKeyDown($event)',\n '(keydown.Enter)': 'dropdown.onKeyDown($event)',\n '(keydown.Space)': 'dropdown.onKeyDown($event)',\n '(keydown.Tab)': 'dropdown.onKeyDown($event)',\n '(keydown.Shift.Tab)': 'dropdown.onKeyDown($event)'\n }\n }]\n }], null, {\n menuItems: [{\n type: ContentChildren,\n args: [NgbDropdownItem]\n }]\n });\n})();\n/**\n * A directive to mark an element to which dropdown menu will be anchored.\n *\n * This is a simple version of the `NgbDropdownToggle` directive.\n * It plays the same role, but doesn't listen to click events to toggle dropdown menu thus enabling support\n * for events other than click.\n *\n * @since 1.1.0\n */\nclass NgbDropdownAnchor {\n constructor() {\n this.dropdown = inject(NgbDropdown);\n this.nativeElement = inject(ElementRef).nativeElement;\n }\n static #_ = this.ɵfac = function NgbDropdownAnchor_Factory(t) {\n return new (t || NgbDropdownAnchor)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDropdownAnchor,\n selectors: [[\"\", \"ngbDropdownAnchor\", \"\"]],\n hostAttrs: [1, \"dropdown-toggle\"],\n hostVars: 3,\n hostBindings: function NgbDropdownAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-expanded\", ctx.dropdown.isOpen());\n i0.ɵɵclassProp(\"show\", ctx.dropdown.isOpen());\n }\n },\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownAnchor, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownAnchor]',\n standalone: true,\n host: {\n class: 'dropdown-toggle',\n '[class.show]': 'dropdown.isOpen()',\n '[attr.aria-expanded]': 'dropdown.isOpen()'\n }\n }]\n }], null, null);\n})();\n/**\n * A directive to mark an element that will toggle dropdown via the `click` event.\n *\n * You can also use `NgbDropdownAnchor` as an alternative.\n */\nclass NgbDropdownToggle extends NgbDropdownAnchor {\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDropdownToggle_BaseFactory;\n return function NgbDropdownToggle_Factory(t) {\n return (ɵNgbDropdownToggle_BaseFactory || (ɵNgbDropdownToggle_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDropdownToggle)))(t || NgbDropdownToggle);\n };\n })();\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDropdownToggle,\n selectors: [[\"\", \"ngbDropdownToggle\", \"\"]],\n hostAttrs: [1, \"dropdown-toggle\"],\n hostVars: 3,\n hostBindings: function NgbDropdownToggle_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function NgbDropdownToggle_click_HostBindingHandler() {\n return ctx.dropdown.toggle();\n })(\"keydown.ArrowUp\", function NgbDropdownToggle_keydown_ArrowUp_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.ArrowDown\", function NgbDropdownToggle_keydown_ArrowDown_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Home\", function NgbDropdownToggle_keydown_Home_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.End\", function NgbDropdownToggle_keydown_End_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Tab\", function NgbDropdownToggle_keydown_Tab_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Shift.Tab\", function NgbDropdownToggle_keydown_Shift_Tab_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-expanded\", ctx.dropdown.isOpen());\n i0.ɵɵclassProp(\"show\", ctx.dropdown.isOpen());\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NgbDropdownAnchor,\n useExisting: forwardRef(() => NgbDropdownToggle)\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownToggle, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownToggle]',\n standalone: true,\n host: {\n class: 'dropdown-toggle',\n '[class.show]': 'dropdown.isOpen()',\n '[attr.aria-expanded]': 'dropdown.isOpen()',\n '(click)': 'dropdown.toggle()',\n '(keydown.ArrowUp)': 'dropdown.onKeyDown($event)',\n '(keydown.ArrowDown)': 'dropdown.onKeyDown($event)',\n '(keydown.Home)': 'dropdown.onKeyDown($event)',\n '(keydown.End)': 'dropdown.onKeyDown($event)',\n '(keydown.Tab)': 'dropdown.onKeyDown($event)',\n '(keydown.Shift.Tab)': 'dropdown.onKeyDown($event)'\n },\n providers: [{\n provide: NgbDropdownAnchor,\n useExisting: forwardRef(() => NgbDropdownToggle)\n }]\n }]\n }], null, null);\n})();\n/**\n * A directive that provides contextual overlays for displaying lists of links and more.\n */\nclass NgbDropdown {\n constructor() {\n this._changeDetector = inject(ChangeDetectorRef);\n this._config = inject(NgbDropdownConfig);\n this._document = inject(DOCUMENT);\n this._ngZone = inject(NgZone);\n this._nativeElement = inject(ElementRef).nativeElement;\n this._destroyCloseHandlers$ = new Subject();\n this._bodyContainer = null;\n this._positioning = ngbPositioning();\n /**\n * Indicates whether the dropdown should be closed when clicking one of dropdown items or pressing ESC.\n *\n * * `true` - the dropdown will close on both outside and inside (menu) clicks.\n * * `false` - the dropdown can only be closed manually via `close()` or `toggle()` methods.\n * * `\"inside\"` - the dropdown will close on inside menu clicks, but not outside clicks.\n * * `\"outside\"` - the dropdown will close only on the outside clicks and not on menu clicks.\n */\n this.autoClose = this._config.autoClose;\n /**\n * Defines whether or not the dropdown menu is opened initially.\n */\n this._open = false;\n /**\n * The preferred placement of the dropdown, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"bottom-start bottom-end top-start top-end\"`\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the dropdown.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * A selector specifying the element the dropdown should be appended to.\n * Currently only supports \"body\".\n *\n * @since 4.1.0\n */\n this.container = this._config.container;\n /**\n * An event fired when the dropdown is opened or closed.\n *\n * The event payload is a `boolean`:\n * * `true` - the dropdown was opened\n * * `false` - the dropdown was closed\n */\n this.openChange = new EventEmitter();\n }\n ngOnInit() {\n if (!this.display) {\n this.display = this._nativeElement.closest('.navbar') ? 'static' : 'dynamic';\n }\n }\n ngAfterContentInit() {\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n this._applyPlacementClasses();\n if (this._open) {\n this._setCloseHandlers();\n }\n });\n }\n ngOnChanges(changes) {\n if (changes.container && this._open) {\n this._applyContainer(this.container);\n }\n if (changes.placement && !changes.placement.firstChange) {\n this._positioning.setOptions({\n hostElement: this._anchor.nativeElement,\n targetElement: this._bodyContainer || this._menu.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body'\n });\n this._applyPlacementClasses();\n }\n if (changes.dropdownClass) {\n const {\n currentValue,\n previousValue\n } = changes.dropdownClass;\n this._applyCustomDropdownClass(currentValue, previousValue);\n }\n if (changes.autoClose && this._open) {\n this.autoClose = changes.autoClose.currentValue;\n this._setCloseHandlers();\n }\n }\n /**\n * Checks if the dropdown menu is open.\n */\n isOpen() {\n return this._open;\n }\n /**\n * Opens the dropdown menu.\n */\n open() {\n if (!this._open) {\n this._open = true;\n this._applyContainer(this.container);\n this.openChange.emit(true);\n this._setCloseHandlers();\n if (this._anchor) {\n this._anchor.nativeElement.focus();\n if (this.display === 'dynamic') {\n this._ngZone.runOutsideAngular(() => {\n this._positioning.createPopper({\n hostElement: this._anchor.nativeElement,\n targetElement: this._bodyContainer || this._menu.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n updatePopperOptions: options => this.popperOptions(addPopperOffset([0, 2])(options))\n });\n this._applyPlacementClasses();\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positionMenu());\n });\n }\n }\n }\n }\n _setCloseHandlers() {\n this._destroyCloseHandlers$.next(); // destroy any existing close handlers\n ngbAutoClose(this._ngZone, this._document, this.autoClose, source => {\n this.close();\n if (source === 0 /* SOURCE.ESCAPE */) {\n this._anchor.nativeElement.focus();\n }\n }, this._destroyCloseHandlers$, this._menu ? [this._menu.nativeElement] : [], this._anchor ? [this._anchor.nativeElement] : [], '.dropdown-item,.dropdown-divider');\n }\n /**\n * Closes the dropdown menu.\n */\n close() {\n if (this._open) {\n this._open = false;\n this._resetContainer();\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this._destroyCloseHandlers$.next();\n this.openChange.emit(false);\n this._changeDetector.markForCheck();\n }\n }\n /**\n * Toggles the dropdown menu.\n */\n toggle() {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n ngOnDestroy() {\n this.close();\n }\n onKeyDown(event) {\n /* eslint-disable-next-line deprecation/deprecation */\n const key = event.which;\n const itemElements = this._getMenuElements();\n let position = -1;\n let itemElement = null;\n const isEventFromToggle = this._isEventFromToggle(event);\n if (!isEventFromToggle && itemElements.length) {\n itemElements.forEach((item, index) => {\n if (item.contains(event.target)) {\n itemElement = item;\n }\n if (item === getActiveElement(this._document)) {\n position = index;\n }\n });\n }\n // closing on Enter / Space\n if (key === Key.Space || key === Key.Enter) {\n if (itemElement && (this.autoClose === true || this.autoClose === 'inside')) {\n // Item is either a button or a link, so click will be triggered by the browser on Enter or Space.\n // So we have to register a one-time click handler that will fire after any user defined click handlers\n // to close the dropdown\n fromEvent(itemElement, 'click').pipe(take(1)).subscribe(() => this.close());\n }\n return;\n }\n if (key === Key.Tab) {\n if (event.target && this.isOpen() && this.autoClose) {\n if (this._anchor.nativeElement === event.target) {\n if (this.container === 'body' && !event.shiftKey) {\n /* This case is special: user is using [Tab] from the anchor/toggle.\n User expects the next focusable element in the dropdown menu to get focus.\n But the menu is not a sibling to anchor/toggle, it is at the end of the body.\n Trick is to synchronously focus the menu element, and let the [keydown.Tab] go\n so that browser will focus the proper element (first one focusable in the menu) */\n this._menu.nativeElement.setAttribute('tabindex', '0');\n this._menu.nativeElement.focus();\n this._menu.nativeElement.removeAttribute('tabindex');\n } else if (event.shiftKey) {\n this.close();\n }\n return;\n } else if (this.container === 'body') {\n const focusableElements = this._menu.nativeElement.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR);\n if (event.shiftKey && event.target === focusableElements[0]) {\n this._anchor.nativeElement.focus();\n event.preventDefault();\n } else if (!event.shiftKey && event.target === focusableElements[focusableElements.length - 1]) {\n this._anchor.nativeElement.focus();\n this.close();\n }\n } else {\n fromEvent(event.target, 'focusout').pipe(take(1)).subscribe(({\n relatedTarget\n }) => {\n if (!this._nativeElement.contains(relatedTarget)) {\n this.close();\n }\n });\n }\n }\n return;\n }\n // opening / navigating\n if (isEventFromToggle || itemElement) {\n this.open();\n if (itemElements.length) {\n switch (key) {\n case Key.ArrowDown:\n position = Math.min(position + 1, itemElements.length - 1);\n break;\n case Key.ArrowUp:\n if (this._isDropup() && position === -1) {\n position = itemElements.length - 1;\n break;\n }\n position = Math.max(position - 1, 0);\n break;\n case Key.Home:\n position = 0;\n break;\n case Key.End:\n position = itemElements.length - 1;\n break;\n }\n itemElements[position].focus();\n }\n event.preventDefault();\n }\n }\n _isDropup() {\n return this._nativeElement.classList.contains('dropup');\n }\n _isEventFromToggle(event) {\n return this._anchor.nativeElement.contains(event.target);\n }\n _getMenuElements() {\n return this._menu ? this._menu.menuItems.filter(({\n disabled\n }) => !disabled).map(({\n nativeElement\n }) => nativeElement) : [];\n }\n _positionMenu() {\n const menu = this._menu;\n if (this.isOpen() && menu) {\n if (this.display === 'dynamic') {\n this._positioning.update();\n this._applyPlacementClasses();\n } else {\n this._applyPlacementClasses(this._getFirstPlacement(this.placement));\n }\n }\n }\n _getFirstPlacement(placement) {\n return Array.isArray(placement) ? placement[0] : placement.split(' ')[0];\n }\n _resetContainer() {\n if (this._menu) {\n this._nativeElement.appendChild(this._menu.nativeElement);\n }\n if (this._bodyContainer) {\n this._document.body.removeChild(this._bodyContainer);\n this._bodyContainer = null;\n }\n }\n _applyContainer(container = null) {\n this._resetContainer();\n if (container === 'body') {\n const dropdownMenuElement = this._menu.nativeElement;\n const bodyContainer = this._bodyContainer = this._bodyContainer || this._document.createElement('div');\n // Override some styles to have the positioning working\n bodyContainer.style.position = 'absolute';\n dropdownMenuElement.style.position = 'static';\n bodyContainer.style.zIndex = '1055';\n bodyContainer.appendChild(dropdownMenuElement);\n this._document.body.appendChild(bodyContainer);\n }\n this._applyCustomDropdownClass(this.dropdownClass);\n }\n _applyCustomDropdownClass(newClass, oldClass) {\n const targetElement = this.container === 'body' ? this._bodyContainer : this._nativeElement;\n if (targetElement) {\n if (oldClass) {\n targetElement.classList.remove(oldClass);\n }\n if (newClass) {\n targetElement.classList.add(newClass);\n }\n }\n }\n _applyPlacementClasses(placement) {\n if (this._menu) {\n if (!placement) {\n placement = this._getFirstPlacement(this.placement);\n }\n // remove the current placement classes\n this._nativeElement.classList.remove('dropup', 'dropdown');\n if (this.display === 'static') {\n this._menu.nativeElement.setAttribute('data-bs-popper', 'static');\n } else {\n this._menu.nativeElement.removeAttribute('data-bs-popper');\n }\n /*\n * apply the new placement\n * in case of top use up-arrow or down-arrow otherwise\n */\n const dropdownClass = placement.search('^top') !== -1 ? 'dropup' : 'dropdown';\n this._nativeElement.classList.add(dropdownClass);\n if (this._bodyContainer) {\n this._bodyContainer.classList.remove('dropup', 'dropdown');\n this._bodyContainer.classList.add(dropdownClass);\n }\n }\n }\n static #_ = this.ɵfac = function NgbDropdown_Factory(t) {\n return new (t || NgbDropdown)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDropdown,\n selectors: [[\"\", \"ngbDropdown\", \"\"]],\n contentQueries: function NgbDropdown_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbDropdownMenu, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbDropdownAnchor, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._menu = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._anchor = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function NgbDropdown_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"show\", ctx.isOpen());\n }\n },\n inputs: {\n autoClose: \"autoClose\",\n dropdownClass: \"dropdownClass\",\n _open: [i0.ɵɵInputFlags.None, \"open\", \"_open\"],\n placement: \"placement\",\n popperOptions: \"popperOptions\",\n container: \"container\",\n display: \"display\"\n },\n outputs: {\n openChange: \"openChange\"\n },\n exportAs: [\"ngbDropdown\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdown, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdown]',\n exportAs: 'ngbDropdown',\n standalone: true,\n host: {\n '[class.show]': 'isOpen()'\n }\n }]\n }], null, {\n _menu: [{\n type: ContentChild,\n args: [NgbDropdownMenu, {\n static: false\n }]\n }],\n _anchor: [{\n type: ContentChild,\n args: [NgbDropdownAnchor, {\n static: false\n }]\n }],\n autoClose: [{\n type: Input\n }],\n dropdownClass: [{\n type: Input\n }],\n _open: [{\n type: Input,\n args: ['open']\n }],\n placement: [{\n type: Input\n }],\n popperOptions: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n display: [{\n type: Input\n }],\n openChange: [{\n type: Output\n }]\n });\n})();\nconst NGB_DROPDOWN_DIRECTIVES = [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbDropdownButtonItem];\nclass NgbDropdownModule {\n static #_ = this.ɵfac = function NgbDropdownModule_Factory(t) {\n return new (t || NgbDropdownModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbDropdownModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownModule, [{\n type: NgModule,\n args: [{\n imports: NGB_DROPDOWN_DIRECTIVES,\n exports: NGB_DROPDOWN_DIRECTIVES\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbModal`](#/components/modal/api#NgbModal) service.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all modals used in the application.\n *\n * @since 3.1.0\n */\nclass NgbModalConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.backdrop = true;\n this.fullscreen = false;\n this.keyboard = true;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static #_ = this.ɵfac = function NgbModalConfig_Factory(t) {\n return new (t || NgbModalConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbModalConfig,\n factory: NgbModalConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModalConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nclass ContentRef {\n constructor(nodes, viewRef, componentRef) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\nclass PopupService {\n constructor(_componentType) {\n this._componentType = _componentType;\n this._windowRef = null;\n this._contentRef = null;\n this._document = inject(DOCUMENT);\n this._applicationRef = inject(ApplicationRef);\n this._injector = inject(Injector);\n this._viewContainerRef = inject(ViewContainerRef);\n this._ngZone = inject(NgZone);\n }\n open(content, templateContext, animation = false) {\n if (!this._windowRef) {\n this._contentRef = this._getContentRef(content, templateContext);\n this._windowRef = this._viewContainerRef.createComponent(this._componentType, {\n injector: this._injector,\n projectableNodes: this._contentRef.nodes\n });\n }\n const {\n nativeElement\n } = this._windowRef.location;\n const transition$ = this._ngZone.onStable.pipe(take(1), mergeMap(() => ngbRunTransition(this._ngZone, nativeElement, ({\n classList\n }) => classList.add('show'), {\n animation,\n runningTransition: 'continue'\n })));\n return {\n windowRef: this._windowRef,\n transition$\n };\n }\n close(animation = false) {\n if (!this._windowRef) {\n return of(undefined);\n }\n return ngbRunTransition(this._ngZone, this._windowRef.location.nativeElement, ({\n classList\n }) => classList.remove('show'), {\n animation,\n runningTransition: 'stop'\n }).pipe(tap(() => {\n if (this._windowRef) {\n // this is required because of the container='body' option\n this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView));\n this._windowRef = null;\n }\n if (this._contentRef?.viewRef) {\n this._applicationRef.detachView(this._contentRef.viewRef);\n this._contentRef.viewRef.destroy();\n this._contentRef = null;\n }\n }));\n }\n _getContentRef(content, templateContext) {\n if (!content) {\n return new ContentRef([]);\n } else if (content instanceof TemplateRef) {\n const viewRef = content.createEmbeddedView(templateContext);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n } else {\n return new ContentRef([[this._document.createTextNode(`${content}`)]]);\n }\n }\n}\n\n/**\n * Utility to handle the scrollbar.\n *\n * It allows to hide the scrollbar and compensate the lack of a vertical scrollbar\n * by adding an equivalent padding on the right of the body, and to revert this change.\n */\nclass ScrollBar {\n constructor() {\n this._document = inject(DOCUMENT);\n }\n /**\n * To be called to hide a potential vertical scrollbar:\n * - if a scrollbar is there and has a width greater than 0, adds some compensation\n * padding to the body to keep the same layout as when the scrollbar is there\n * - adds overflow: hidden\n *\n * @return a callback used to revert the change\n */\n hide() {\n const scrollbarWidth = Math.abs(window.innerWidth - this._document.documentElement.clientWidth);\n const body = this._document.body;\n const bodyStyle = body.style;\n const {\n overflow,\n paddingRight\n } = bodyStyle;\n if (scrollbarWidth > 0) {\n const actualPadding = parseFloat(window.getComputedStyle(body).paddingRight);\n bodyStyle.paddingRight = `${actualPadding + scrollbarWidth}px`;\n }\n bodyStyle.overflow = 'hidden';\n return () => {\n if (scrollbarWidth > 0) {\n bodyStyle.paddingRight = paddingRight;\n }\n bodyStyle.overflow = overflow;\n };\n }\n static #_ = this.ɵfac = function ScrollBar_Factory(t) {\n return new (t || ScrollBar)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ScrollBar,\n factory: ScrollBar.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ScrollBar, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nclass NgbModalBackdrop {\n constructor() {\n this._nativeElement = inject(ElementRef).nativeElement;\n this._zone = inject(NgZone);\n }\n ngOnInit() {\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n ngbRunTransition(this._zone, this._nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n }, {\n animation: this.animation,\n runningTransition: 'continue'\n });\n });\n }\n hide() {\n return ngbRunTransition(this._zone, this._nativeElement, ({\n classList\n }) => classList.remove('show'), {\n animation: this.animation,\n runningTransition: 'stop'\n });\n }\n static #_ = this.ɵfac = function NgbModalBackdrop_Factory(t) {\n return new (t || NgbModalBackdrop)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbModalBackdrop,\n selectors: [[\"ngb-modal-backdrop\"]],\n hostAttrs: [2, \"z-index\", \"1055\"],\n hostVars: 6,\n hostBindings: function NgbModalBackdrop_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassMap(\"modal-backdrop\" + (ctx.backdropClass ? \" \" + ctx.backdropClass : \"\"));\n i0.ɵɵclassProp(\"show\", !ctx.animation)(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n backdropClass: \"backdropClass\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function NgbModalBackdrop_Template(rf, ctx) {},\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModalBackdrop, [{\n type: Component,\n args: [{\n selector: 'ngb-modal-backdrop',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n template: '',\n host: {\n '[class]': '\"modal-backdrop\" + (backdropClass ? \" \" + backdropClass : \"\")',\n '[class.show]': '!animation',\n '[class.fade]': 'animation',\n style: 'z-index: 1055'\n }\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n backdropClass: [{\n type: Input\n }]\n });\n})();\n\n/**\n * A reference to the currently opened (active) modal.\n *\n * Instances of this class can be injected into your component passed as modal content.\n * So you can `.update()`, `.close()` or `.dismiss()` the modal window from your component.\n */\nclass NgbActiveModal {\n /**\n * Updates options of an opened modal.\n *\n * @since 14.2.0\n */\n update(options) {}\n /**\n * Closes the modal with an optional `result` value.\n *\n * The `NgbModalRef.result` promise will be resolved with the provided value.\n */\n close(result) {}\n /**\n * Dismisses the modal with an optional `reason` value.\n *\n * The `NgbModalRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) {}\n}\nconst WINDOW_ATTRIBUTES = ['animation', 'ariaLabelledBy', 'ariaDescribedBy', 'backdrop', 'centered', 'fullscreen', 'keyboard', 'scrollable', 'size', 'windowClass', 'modalDialogClass'];\nconst BACKDROP_ATTRIBUTES = ['animation', 'backdropClass'];\n/**\n * A reference to the newly opened modal returned by the `NgbModal.open()` method.\n */\nclass NgbModalRef {\n _applyWindowOptions(windowInstance, options) {\n WINDOW_ATTRIBUTES.forEach(optionName => {\n if (isDefined(options[optionName])) {\n windowInstance[optionName] = options[optionName];\n }\n });\n }\n _applyBackdropOptions(backdropInstance, options) {\n BACKDROP_ATTRIBUTES.forEach(optionName => {\n if (isDefined(options[optionName])) {\n backdropInstance[optionName] = options[optionName];\n }\n });\n }\n /**\n * Updates options of an opened modal.\n *\n * @since 14.2.0\n */\n update(options) {\n this._applyWindowOptions(this._windowCmptRef.instance, options);\n if (this._backdropCmptRef && this._backdropCmptRef.instance) {\n this._applyBackdropOptions(this._backdropCmptRef.instance, options);\n }\n }\n /**\n * The instance of a component used for the modal content.\n *\n * When a `TemplateRef` is used as the content or when the modal is closed, will return `undefined`.\n */\n get componentInstance() {\n if (this._contentRef && this._contentRef.componentRef) {\n return this._contentRef.componentRef.instance;\n }\n }\n /**\n * The observable that emits when the modal is closed via the `.close()` method.\n *\n * It will emit the result passed to the `.close()` method.\n *\n * @since 8.0.0\n */\n get closed() {\n return this._closed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when the modal is dismissed via the `.dismiss()` method.\n *\n * It will emit the reason passed to the `.dismissed()` method by the user, or one of the internal\n * reasons like backdrop click or ESC key press.\n *\n * @since 8.0.0\n */\n get dismissed() {\n return this._dismissed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when both modal window and backdrop are closed and animations were finished.\n * At this point modal and backdrop elements will be removed from the DOM tree.\n *\n * This observable will be completed after emitting.\n *\n * @since 8.0.0\n */\n get hidden() {\n return this._hidden.asObservable();\n }\n /**\n * The observable that emits when modal is fully visible and animation was finished.\n * Modal DOM element is always available synchronously after calling 'modal.open()' service.\n *\n * This observable will be completed after emitting.\n * It will not emit, if modal is closed before open animation is finished.\n *\n * @since 8.0.0\n */\n get shown() {\n return this._windowCmptRef.instance.shown.asObservable();\n }\n constructor(_windowCmptRef, _contentRef, _backdropCmptRef, _beforeDismiss) {\n this._windowCmptRef = _windowCmptRef;\n this._contentRef = _contentRef;\n this._backdropCmptRef = _backdropCmptRef;\n this._beforeDismiss = _beforeDismiss;\n this._closed = new Subject();\n this._dismissed = new Subject();\n this._hidden = new Subject();\n _windowCmptRef.instance.dismissEvent.subscribe(reason => {\n this.dismiss(reason);\n });\n this.result = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n this.result.then(null, () => {});\n }\n /**\n * Closes the modal with an optional `result` value.\n *\n * The `NgbMobalRef.result` promise will be resolved with the provided value.\n */\n close(result) {\n if (this._windowCmptRef) {\n this._closed.next(result);\n this._resolve(result);\n this._removeModalElements();\n }\n }\n _dismiss(reason) {\n this._dismissed.next(reason);\n this._reject(reason);\n this._removeModalElements();\n }\n /**\n * Dismisses the modal with an optional `reason` value.\n *\n * The `NgbModalRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) {\n if (this._windowCmptRef) {\n if (!this._beforeDismiss) {\n this._dismiss(reason);\n } else {\n const dismiss = this._beforeDismiss();\n if (isPromise(dismiss)) {\n dismiss.then(result => {\n if (result !== false) {\n this._dismiss(reason);\n }\n }, () => {});\n } else if (dismiss !== false) {\n this._dismiss(reason);\n }\n }\n }\n }\n _removeModalElements() {\n const windowTransition$ = this._windowCmptRef.instance.hide();\n const backdropTransition$ = this._backdropCmptRef ? this._backdropCmptRef.instance.hide() : of(undefined);\n // hiding window\n windowTransition$.subscribe(() => {\n const {\n nativeElement\n } = this._windowCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._windowCmptRef.destroy();\n if (this._contentRef && this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n this._windowCmptRef = null;\n this._contentRef = null;\n });\n // hiding backdrop\n backdropTransition$.subscribe(() => {\n if (this._backdropCmptRef) {\n const {\n nativeElement\n } = this._backdropCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._backdropCmptRef.destroy();\n this._backdropCmptRef = null;\n }\n });\n // all done\n zip(windowTransition$, backdropTransition$).subscribe(() => {\n this._hidden.next();\n this._hidden.complete();\n });\n }\n}\nvar ModalDismissReasons;\n(function (ModalDismissReasons) {\n ModalDismissReasons[ModalDismissReasons[\"BACKDROP_CLICK\"] = 0] = \"BACKDROP_CLICK\";\n ModalDismissReasons[ModalDismissReasons[\"ESC\"] = 1] = \"ESC\";\n})(ModalDismissReasons || (ModalDismissReasons = {}));\nclass NgbModalWindow {\n constructor() {\n this._document = inject(DOCUMENT);\n this._elRef = inject(ElementRef);\n this._zone = inject(NgZone);\n this._closed$ = new Subject();\n this._elWithFocus = null; // element that is focused prior to modal opening\n this.backdrop = true;\n this.keyboard = true;\n this.dismissEvent = new EventEmitter();\n this.shown = new Subject();\n this.hidden = new Subject();\n }\n get fullscreenClass() {\n return this.fullscreen === true ? ' modal-fullscreen' : isString(this.fullscreen) ? ` modal-fullscreen-${this.fullscreen}-down` : '';\n }\n dismiss(reason) {\n this.dismissEvent.emit(reason);\n }\n ngOnInit() {\n this._elWithFocus = this._document.activeElement;\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n this._show();\n });\n }\n ngOnDestroy() {\n this._disableEventHandling();\n }\n hide() {\n const {\n nativeElement\n } = this._elRef;\n const context = {\n animation: this.animation,\n runningTransition: 'stop'\n };\n const windowTransition$ = ngbRunTransition(this._zone, nativeElement, () => nativeElement.classList.remove('show'), context);\n const dialogTransition$ = ngbRunTransition(this._zone, this._dialogEl.nativeElement, () => {}, context);\n const transitions$ = zip(windowTransition$, dialogTransition$);\n transitions$.subscribe(() => {\n this.hidden.next();\n this.hidden.complete();\n });\n this._disableEventHandling();\n this._restoreFocus();\n return transitions$;\n }\n _show() {\n const context = {\n animation: this.animation,\n runningTransition: 'continue'\n };\n const windowTransition$ = ngbRunTransition(this._zone, this._elRef.nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n }, context);\n const dialogTransition$ = ngbRunTransition(this._zone, this._dialogEl.nativeElement, () => {}, context);\n zip(windowTransition$, dialogTransition$).subscribe(() => {\n this.shown.next();\n this.shown.complete();\n });\n this._enableEventHandling();\n this._setFocus();\n }\n _enableEventHandling() {\n const {\n nativeElement\n } = this._elRef;\n this._zone.runOutsideAngular(() => {\n fromEvent(nativeElement, 'keydown').pipe(takeUntil(this._closed$), /* eslint-disable-next-line deprecation/deprecation */\n filter(e => e.which === Key.Escape)).subscribe(event => {\n if (this.keyboard) {\n requestAnimationFrame(() => {\n if (!event.defaultPrevented) {\n this._zone.run(() => this.dismiss(ModalDismissReasons.ESC));\n }\n });\n } else if (this.backdrop === 'static') {\n this._bumpBackdrop();\n }\n });\n // We're listening to 'mousedown' and 'mouseup' to prevent modal from closing when pressing the mouse\n // inside the modal dialog and releasing it outside\n let preventClose = false;\n fromEvent(this._dialogEl.nativeElement, 'mousedown').pipe(takeUntil(this._closed$), tap(() => preventClose = false), switchMap(() => fromEvent(nativeElement, 'mouseup').pipe(takeUntil(this._closed$), take(1))), filter(({\n target\n }) => nativeElement === target)).subscribe(() => {\n preventClose = true;\n });\n // We're listening to 'click' to dismiss modal on modal window click, except when:\n // 1. clicking on modal dialog itself\n // 2. closing was prevented by mousedown/up handlers\n // 3. clicking on scrollbar when the viewport is too small and modal doesn't fit (click is not triggered at all)\n fromEvent(nativeElement, 'click').pipe(takeUntil(this._closed$)).subscribe(({\n target\n }) => {\n if (nativeElement === target) {\n if (this.backdrop === 'static') {\n this._bumpBackdrop();\n } else if (this.backdrop === true && !preventClose) {\n this._zone.run(() => this.dismiss(ModalDismissReasons.BACKDROP_CLICK));\n }\n }\n preventClose = false;\n });\n });\n }\n _disableEventHandling() {\n this._closed$.next();\n }\n _setFocus() {\n const {\n nativeElement\n } = this._elRef;\n if (!nativeElement.contains(document.activeElement)) {\n const autoFocusable = nativeElement.querySelector(`[ngbAutofocus]`);\n const firstFocusable = getFocusableBoundaryElements(nativeElement)[0];\n const elementToFocus = autoFocusable || firstFocusable || nativeElement;\n elementToFocus.focus();\n }\n }\n _restoreFocus() {\n const body = this._document.body;\n const elWithFocus = this._elWithFocus;\n let elementToFocus;\n if (elWithFocus && elWithFocus['focus'] && body.contains(elWithFocus)) {\n elementToFocus = elWithFocus;\n } else {\n elementToFocus = body;\n }\n this._zone.runOutsideAngular(() => {\n setTimeout(() => elementToFocus.focus());\n this._elWithFocus = null;\n });\n }\n _bumpBackdrop() {\n if (this.backdrop === 'static') {\n ngbRunTransition(this._zone, this._elRef.nativeElement, ({\n classList\n }) => {\n classList.add('modal-static');\n return () => classList.remove('modal-static');\n }, {\n animation: this.animation,\n runningTransition: 'continue'\n });\n }\n }\n static #_ = this.ɵfac = function NgbModalWindow_Factory(t) {\n return new (t || NgbModalWindow)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbModalWindow,\n selectors: [[\"ngb-modal-window\"]],\n viewQuery: function NgbModalWindow_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c7, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._dialogEl = _t.first);\n }\n },\n hostAttrs: [\"role\", \"dialog\", \"tabindex\", \"-1\"],\n hostVars: 7,\n hostBindings: function NgbModalWindow_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-modal\", true)(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-describedby\", ctx.ariaDescribedBy);\n i0.ɵɵclassMap(\"modal d-block\" + (ctx.windowClass ? \" \" + ctx.windowClass : \"\"));\n i0.ɵɵclassProp(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n ariaLabelledBy: \"ariaLabelledBy\",\n ariaDescribedBy: \"ariaDescribedBy\",\n backdrop: \"backdrop\",\n centered: \"centered\",\n fullscreen: \"fullscreen\",\n keyboard: \"keyboard\",\n scrollable: \"scrollable\",\n size: \"size\",\n windowClass: \"windowClass\",\n modalDialogClass: \"modalDialogClass\"\n },\n outputs: {\n dismissEvent: \"dismiss\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 4,\n vars: 2,\n consts: [[\"dialog\", \"\"], [\"role\", \"document\"], [1, \"modal-content\"]],\n template: function NgbModalWindow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 1, 0)(2, \"div\", 2);\n i0.ɵɵprojection(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(\"modal-dialog\" + (ctx.size ? \" modal-\" + ctx.size : \"\") + (ctx.centered ? \" modal-dialog-centered\" : \"\") + ctx.fullscreenClass + (ctx.scrollable ? \" modal-dialog-scrollable\" : \"\") + (ctx.modalDialogClass ? \" \" + ctx.modalDialogClass : \"\"));\n }\n },\n styles: [\"ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\\n\"],\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModalWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-modal-window',\n standalone: true,\n host: {\n '[class]': '\"modal d-block\" + (windowClass ? \" \" + windowClass : \"\")',\n '[class.fade]': 'animation',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.aria-describedby]': 'ariaDescribedBy'\n },\n template: `\n\t\t<div\n\t\t\t#dialog\n\t\t\t[class]=\"\n\t\t\t\t'modal-dialog' +\n\t\t\t\t(size ? ' modal-' + size : '') +\n\t\t\t\t(centered ? ' modal-dialog-centered' : '') +\n\t\t\t\tfullscreenClass +\n\t\t\t\t(scrollable ? ' modal-dialog-scrollable' : '') +\n\t\t\t\t(modalDialogClass ? ' ' + modalDialogClass : '')\n\t\t\t\"\n\t\t\trole=\"document\"\n\t\t>\n\t\t\t<div class=\"modal-content\"><ng-content /></div>\n\t\t</div>\n\t`,\n encapsulation: ViewEncapsulation.None,\n styles: [\"ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\\n\"]\n }]\n }], null, {\n _dialogEl: [{\n type: ViewChild,\n args: ['dialog', {\n static: true\n }]\n }],\n animation: [{\n type: Input\n }],\n ariaLabelledBy: [{\n type: Input\n }],\n ariaDescribedBy: [{\n type: Input\n }],\n backdrop: [{\n type: Input\n }],\n centered: [{\n type: Input\n }],\n fullscreen: [{\n type: Input\n }],\n keyboard: [{\n type: Input\n }],\n scrollable: [{\n type: Input\n }],\n size: [{\n type: Input\n }],\n windowClass: [{\n type: Input\n }],\n modalDialogClass: [{\n type: Input\n }],\n dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }]\n });\n})();\nclass NgbModalStack {\n constructor() {\n this._applicationRef = inject(ApplicationRef);\n this._injector = inject(Injector);\n this._environmentInjector = inject(EnvironmentInjector);\n this._document = inject(DOCUMENT);\n this._scrollBar = inject(ScrollBar);\n this._activeWindowCmptHasChanged = new Subject();\n this._ariaHiddenValues = new Map();\n this._scrollBarRestoreFn = null;\n this._modalRefs = [];\n this._windowCmpts = [];\n this._activeInstances = new EventEmitter();\n const ngZone = inject(NgZone);\n // Trap focus on active WindowCmpt\n this._activeWindowCmptHasChanged.subscribe(() => {\n if (this._windowCmpts.length) {\n const activeWindowCmpt = this._windowCmpts[this._windowCmpts.length - 1];\n ngbFocusTrap(ngZone, activeWindowCmpt.location.nativeElement, this._activeWindowCmptHasChanged);\n this._revertAriaHidden();\n this._setAriaHidden(activeWindowCmpt.location.nativeElement);\n }\n });\n }\n _restoreScrollBar() {\n const scrollBarRestoreFn = this._scrollBarRestoreFn;\n if (scrollBarRestoreFn) {\n this._scrollBarRestoreFn = null;\n scrollBarRestoreFn();\n }\n }\n _hideScrollBar() {\n if (!this._scrollBarRestoreFn) {\n this._scrollBarRestoreFn = this._scrollBar.hide();\n }\n }\n open(contentInjector, content, options) {\n const containerEl = options.container instanceof HTMLElement ? options.container : isDefined(options.container) ? this._document.querySelector(options.container) : this._document.body;\n if (!containerEl) {\n throw new Error(`The specified modal container \"${options.container || 'body'}\" was not found in the DOM.`);\n }\n this._hideScrollBar();\n const activeModal = new NgbActiveModal();\n contentInjector = options.injector || contentInjector;\n const environmentInjector = contentInjector.get(EnvironmentInjector, null) || this._environmentInjector;\n const contentRef = this._getContentRef(contentInjector, environmentInjector, content, activeModal, options);\n let backdropCmptRef = options.backdrop !== false ? this._attachBackdrop(containerEl) : undefined;\n let windowCmptRef = this._attachWindowComponent(containerEl, contentRef.nodes);\n let ngbModalRef = new NgbModalRef(windowCmptRef, contentRef, backdropCmptRef, options.beforeDismiss);\n this._registerModalRef(ngbModalRef);\n this._registerWindowCmpt(windowCmptRef);\n // We have to cleanup DOM after the last modal when BOTH 'hidden' was emitted and 'result' promise was resolved:\n // - with animations OFF, 'hidden' emits synchronously, then 'result' is resolved asynchronously\n // - with animations ON, 'result' is resolved asynchronously, then 'hidden' emits asynchronously\n ngbModalRef.hidden.pipe(take(1)).subscribe(() => Promise.resolve(true).then(() => {\n if (!this._modalRefs.length) {\n this._document.body.classList.remove('modal-open');\n this._restoreScrollBar();\n this._revertAriaHidden();\n }\n }));\n activeModal.close = result => {\n ngbModalRef.close(result);\n };\n activeModal.dismiss = reason => {\n ngbModalRef.dismiss(reason);\n };\n activeModal.update = options => {\n ngbModalRef.update(options);\n };\n ngbModalRef.update(options);\n if (this._modalRefs.length === 1) {\n this._document.body.classList.add('modal-open');\n }\n if (backdropCmptRef && backdropCmptRef.instance) {\n backdropCmptRef.changeDetectorRef.detectChanges();\n }\n windowCmptRef.changeDetectorRef.detectChanges();\n return ngbModalRef;\n }\n get activeInstances() {\n return this._activeInstances;\n }\n dismissAll(reason) {\n this._modalRefs.forEach(ngbModalRef => ngbModalRef.dismiss(reason));\n }\n hasOpenModals() {\n return this._modalRefs.length > 0;\n }\n _attachBackdrop(containerEl) {\n let backdropCmptRef = createComponent(NgbModalBackdrop, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector\n });\n this._applicationRef.attachView(backdropCmptRef.hostView);\n containerEl.appendChild(backdropCmptRef.location.nativeElement);\n return backdropCmptRef;\n }\n _attachWindowComponent(containerEl, projectableNodes) {\n let windowCmptRef = createComponent(NgbModalWindow, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector,\n projectableNodes\n });\n this._applicationRef.attachView(windowCmptRef.hostView);\n containerEl.appendChild(windowCmptRef.location.nativeElement);\n return windowCmptRef;\n }\n _getContentRef(contentInjector, environmentInjector, content, activeModal, options) {\n if (!content) {\n return new ContentRef([]);\n } else if (content instanceof TemplateRef) {\n return this._createFromTemplateRef(content, activeModal);\n } else if (isString(content)) {\n return this._createFromString(content);\n } else {\n return this._createFromComponent(contentInjector, environmentInjector, content, activeModal, options);\n }\n }\n _createFromTemplateRef(templateRef, activeModal) {\n const context = {\n $implicit: activeModal,\n close(result) {\n activeModal.close(result);\n },\n dismiss(reason) {\n activeModal.dismiss(reason);\n }\n };\n const viewRef = templateRef.createEmbeddedView(context);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n _createFromString(content) {\n const component = this._document.createTextNode(`${content}`);\n return new ContentRef([[component]]);\n }\n _createFromComponent(contentInjector, environmentInjector, componentType, context, options) {\n const elementInjector = Injector.create({\n providers: [{\n provide: NgbActiveModal,\n useValue: context\n }],\n parent: contentInjector\n });\n const componentRef = createComponent(componentType, {\n environmentInjector,\n elementInjector\n });\n const componentNativeEl = componentRef.location.nativeElement;\n if (options.scrollable) {\n componentNativeEl.classList.add('component-host-scrollable');\n }\n this._applicationRef.attachView(componentRef.hostView);\n // FIXME: we should here get rid of the component nativeElement\n // and use `[Array.from(componentNativeEl.childNodes)]` instead and remove the above CSS class.\n return new ContentRef([[componentNativeEl]], componentRef.hostView, componentRef);\n }\n _setAriaHidden(element) {\n const parent = element.parentElement;\n if (parent && element !== this._document.body) {\n Array.from(parent.children).forEach(sibling => {\n if (sibling !== element && sibling.nodeName !== 'SCRIPT') {\n this._ariaHiddenValues.set(sibling, sibling.getAttribute('aria-hidden'));\n sibling.setAttribute('aria-hidden', 'true');\n }\n });\n this._setAriaHidden(parent);\n }\n }\n _revertAriaHidden() {\n this._ariaHiddenValues.forEach((value, element) => {\n if (value) {\n element.setAttribute('aria-hidden', value);\n } else {\n element.removeAttribute('aria-hidden');\n }\n });\n this._ariaHiddenValues.clear();\n }\n _registerModalRef(ngbModalRef) {\n const unregisterModalRef = () => {\n const index = this._modalRefs.indexOf(ngbModalRef);\n if (index > -1) {\n this._modalRefs.splice(index, 1);\n this._activeInstances.emit(this._modalRefs);\n }\n };\n this._modalRefs.push(ngbModalRef);\n this._activeInstances.emit(this._modalRefs);\n ngbModalRef.result.then(unregisterModalRef, unregisterModalRef);\n }\n _registerWindowCmpt(ngbWindowCmpt) {\n this._windowCmpts.push(ngbWindowCmpt);\n this._activeWindowCmptHasChanged.next();\n ngbWindowCmpt.onDestroy(() => {\n const index = this._windowCmpts.indexOf(ngbWindowCmpt);\n if (index > -1) {\n this._windowCmpts.splice(index, 1);\n this._activeWindowCmptHasChanged.next();\n }\n });\n }\n static #_ = this.ɵfac = function NgbModalStack_Factory(t) {\n return new (t || NgbModalStack)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbModalStack,\n factory: NgbModalStack.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModalStack, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [], null);\n})();\n\n/**\n * A service for opening modal windows.\n *\n * Creating a modal is straightforward: create a component or a template and pass it as an argument to\n * the `.open()` method.\n */\nclass NgbModal {\n constructor() {\n this._injector = inject(Injector);\n this._modalStack = inject(NgbModalStack);\n this._config = inject(NgbModalConfig);\n }\n /**\n * Opens a new modal window with the specified content and supplied options.\n *\n * Content can be provided as a `TemplateRef` or a component type. If you pass a component type as content,\n * then instances of those components can be injected with an instance of the `NgbActiveModal` class. You can then\n * use `NgbActiveModal` methods to close / dismiss modals from \"inside\" of your component.\n *\n * Also see the [`NgbModalOptions`](#/components/modal/api#NgbModalOptions) for the list of supported options.\n */\n open(content, options = {}) {\n const combinedOptions = {\n ...this._config,\n animation: this._config.animation,\n ...options\n };\n return this._modalStack.open(this._injector, content, combinedOptions);\n }\n /**\n * Returns an observable that holds the active modal instances.\n */\n get activeInstances() {\n return this._modalStack.activeInstances;\n }\n /**\n * Dismisses all currently displayed modal windows with the supplied reason.\n *\n * @since 3.1.0\n */\n dismissAll(reason) {\n this._modalStack.dismissAll(reason);\n }\n /**\n * Indicates if there are currently any open modal windows in the application.\n *\n * @since 3.3.0\n */\n hasOpenModals() {\n return this._modalStack.hasOpenModals();\n }\n static #_ = this.ɵfac = function NgbModal_Factory(t) {\n return new (t || NgbModal)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbModal,\n factory: NgbModal.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModal, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nclass NgbModalModule {\n static #_ = this.ɵfac = function NgbModalModule_Factory(t) {\n return new (t || NgbModalModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbModalModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [NgbModal]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModalModule, [{\n type: NgModule,\n args: [{\n providers: [NgbModal]\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbNav`](#/components/nav/api#NgbNav) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the navs used in the application.\n *\n * @since 5.2.0\n */\nclass NgbNavConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.destroyOnHide = true;\n this.orientation = 'horizontal';\n this.roles = 'tablist';\n this.keyboard = true;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static #_ = this.ɵfac = function NgbNavConfig_Factory(t) {\n return new (t || NgbNavConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbNavConfig,\n factory: NgbNavConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nconst isValidNavId = id => isDefined(id) && id !== '';\nlet navCounter = 0;\n/**\n * This directive must be used to wrap content to be displayed in the nav.\n *\n * @since 5.2.0\n */\nclass NgbNavContent {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static #_ = this.ɵfac = function NgbNavContent_Factory(t) {\n return new (t || NgbNavContent)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavContent,\n selectors: [[\"ng-template\", \"ngbNavContent\", \"\"]],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavContent, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbNavContent]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * This directive applies a specific role on a non-container based ngbNavItem.\n *\n * @since 14.1.0\n */\nclass NgbNavItemRole {\n constructor(role) {\n this.role = role;\n this.nav = inject(NgbNav);\n }\n static #_ = this.ɵfac = function NgbNavItemRole_Factory(t) {\n return new (t || NgbNavItemRole)(i0.ɵɵinjectAttribute('role'));\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavItemRole,\n selectors: [[\"\", \"ngbNavItem\", \"\", 5, \"ng-container\"]],\n hostVars: 1,\n hostBindings: function NgbNavItemRole_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx.role ? ctx.role : ctx.nav.roles ? \"presentation\" : undefined);\n }\n },\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavItemRole, [{\n type: Directive,\n args: [{\n selector: '[ngbNavItem]:not(ng-container)',\n standalone: true,\n host: {\n '[attr.role]': `role ? role : nav.roles ? 'presentation' : undefined`\n }\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['role']\n }]\n }], null);\n})();\n/**\n * The directive used to group nav link and related nav content. As well as set nav identifier and some options.\n *\n * @since 5.2.0\n */\nclass NgbNavItem {\n constructor() {\n this._nav = inject(NgbNav);\n this._nativeElement = inject(ElementRef).nativeElement;\n /**\n * If `true`, the current nav item is disabled and can't be toggled by user.\n *\n * Nevertheless disabled nav can be selected programmatically via the `.select()` method and the `[activeId]` binding.\n */\n this.disabled = false;\n /**\n * An event emitted when the fade in transition is finished on the related nav content\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the fade out transition is finished on the related nav content\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n }\n ngAfterContentChecked() {\n // We are using @ContentChildren instead of @ContentChild as in the Angular version being used\n // only @ContentChildren allows us to specify the {descendants: false} option.\n // Without {descendants: false} we are hitting bugs described in:\n // https://github.com/ng-bootstrap/ng-bootstrap/issues/2240\n this.contentTpl = this.contentTpls.first;\n }\n ngOnInit() {\n if (!isDefined(this.domId)) {\n this.domId = `ngb-nav-${navCounter++}`;\n }\n }\n get active() {\n return this._nav.activeId === this.id;\n }\n get id() {\n return isValidNavId(this._id) ? this._id : this.domId;\n }\n get panelDomId() {\n return `${this.domId}-panel`;\n }\n isPanelInDom() {\n return (isDefined(this.destroyOnHide) ? !this.destroyOnHide : !this._nav.destroyOnHide) || this.active;\n }\n /**\n * @internal\n */\n isNgContainer() {\n return this._nativeElement.nodeType === Node.COMMENT_NODE;\n }\n static #_ = this.ɵfac = function NgbNavItem_Factory(t) {\n return new (t || NgbNavItem)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavItem,\n selectors: [[\"\", \"ngbNavItem\", \"\"]],\n contentQueries: function NgbNavItem_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbNavContent, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTpls = _t);\n }\n },\n hostVars: 2,\n hostBindings: function NgbNavItem_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"nav-item\", true);\n }\n },\n inputs: {\n destroyOnHide: \"destroyOnHide\",\n disabled: \"disabled\",\n domId: \"domId\",\n _id: [i0.ɵɵInputFlags.None, \"ngbNavItem\", \"_id\"]\n },\n outputs: {\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbNavItem\"],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavItem, [{\n type: Directive,\n args: [{\n selector: '[ngbNavItem]',\n exportAs: 'ngbNavItem',\n standalone: true,\n host: {\n '[class.nav-item]': 'true'\n }\n }]\n }], null, {\n destroyOnHide: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n domId: [{\n type: Input\n }],\n _id: [{\n type: Input,\n args: ['ngbNavItem']\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n contentTpls: [{\n type: ContentChildren,\n args: [NgbNavContent, {\n descendants: false\n }]\n }]\n });\n})();\n/**\n * A nav directive that helps with implementing tabbed navigation components.\n *\n * @since 5.2.0\n */\nclass NgbNav {\n constructor(role) {\n this.role = role;\n this._config = inject(NgbNavConfig);\n this._cd = inject(ChangeDetectorRef);\n this._document = inject(DOCUMENT);\n this._nativeElement = inject(ElementRef).nativeElement;\n this.destroyRef = inject(DestroyRef);\n this._navigatingWithKeyboard = false;\n /**\n * The event emitted after the active nav changes\n * The payload of the event is the newly active nav id\n *\n * If you want to prevent nav change, you should use `(navChange)` event\n */\n this.activeIdChange = new EventEmitter();\n /**\n * If `true`, nav change will be animated.\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * If `true`, non-active nav content will be removed from DOM\n * Otherwise it will just be hidden\n */\n this.destroyOnHide = this._config.destroyOnHide;\n /**\n * The orientation of navs.\n *\n * Using `vertical` will also add the `aria-orientation` attribute\n */\n this.orientation = this._config.orientation;\n /**\n * Role attribute generating strategy:\n * - `false` - no role attributes will be generated\n * - `'tablist'` - 'tablist', 'tab' and 'tabpanel' will be generated (default)\n */\n this.roles = this._config.roles;\n /**\n * Keyboard support for nav focus/selection using arrow keys.\n *\n * * `true` - navs will be focused using keyboard arrow keys\n * * `false` - no keyboard support\n * * `'changeWithArrows'` - nav will be selected using keyboard arrow keys\n *\n * See the [list of available keyboard shortcuts](#/components/nav/overview#keyboard-shortcuts).\n *\n * @since 6.1.0\n */\n this.keyboard = this._config.keyboard;\n /**\n * An event emitted when the fade in transition is finished for one of the items.\n *\n * Payload of the event is the nav id that was just shown.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the fade out transition is finished for one of the items.\n *\n * Payload of the event is the nav id that was just hidden.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n this.navItemChange$ = new Subject();\n /**\n * The nav change event emitted right before the nav change happens on user click.\n *\n * This event won't be emitted if nav is changed programmatically via `[activeId]` or `.select()`.\n *\n * See [`NgbNavChangeEvent`](#/components/nav/api#NgbNavChangeEvent) for payload details.\n */\n this.navChange = new EventEmitter();\n }\n click(item) {\n if (!item.disabled) {\n this._updateActiveId(item.id);\n }\n }\n onFocusout({\n relatedTarget\n }) {\n if (!this._nativeElement.contains(relatedTarget)) {\n this._navigatingWithKeyboard = false;\n }\n }\n onKeyDown(event) {\n if (this.roles !== 'tablist' || !this.keyboard) {\n return;\n }\n /* eslint-disable-next-line deprecation/deprecation */\n const key = event.which;\n const enabledLinks = this.links.filter(link => !link.navItem.disabled);\n const {\n length\n } = enabledLinks;\n let position = -1;\n enabledLinks.forEach((link, index) => {\n if (link.nativeElement === this._document.activeElement) {\n position = index;\n }\n });\n if (length) {\n switch (key) {\n case Key.ArrowUp:\n case Key.ArrowLeft:\n position = (position - 1 + length) % length;\n break;\n case Key.ArrowRight:\n case Key.ArrowDown:\n position = (position + 1) % length;\n break;\n case Key.Home:\n position = 0;\n break;\n case Key.End:\n position = length - 1;\n break;\n }\n if (this.keyboard === 'changeWithArrows') {\n this.select(enabledLinks[position].navItem.id);\n }\n enabledLinks[position].nativeElement.focus();\n this._navigatingWithKeyboard = true;\n event.preventDefault();\n }\n }\n /**\n * Selects the nav with the given id and shows its associated pane.\n * Any other nav that was previously selected becomes unselected and its associated pane is hidden.\n */\n select(id) {\n this._updateActiveId(id, false);\n }\n ngAfterContentInit() {\n if (!isDefined(this.activeId)) {\n const nextId = this.items.first ? this.items.first.id : null;\n if (isValidNavId(nextId)) {\n this._updateActiveId(nextId, false);\n this._cd.detectChanges();\n }\n }\n this.items.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this._notifyItemChanged(this.activeId));\n }\n ngOnChanges({\n activeId\n }) {\n if (activeId && !activeId.firstChange) {\n this._notifyItemChanged(activeId.currentValue);\n }\n }\n _updateActiveId(nextId, emitNavChange = true) {\n if (this.activeId !== nextId) {\n let defaultPrevented = false;\n if (emitNavChange) {\n this.navChange.emit({\n activeId: this.activeId,\n nextId,\n preventDefault: () => {\n defaultPrevented = true;\n }\n });\n }\n if (!defaultPrevented) {\n this.activeId = nextId;\n this.activeIdChange.emit(nextId);\n this._notifyItemChanged(nextId);\n }\n }\n }\n _notifyItemChanged(nextItemId) {\n this.navItemChange$.next(this._getItemById(nextItemId));\n }\n _getItemById(itemId) {\n return this.items && this.items.find(item => item.id === itemId) || null;\n }\n static #_ = this.ɵfac = function NgbNav_Factory(t) {\n return new (t || NgbNav)(i0.ɵɵinjectAttribute('role'));\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNav,\n selectors: [[\"\", \"ngbNav\", \"\"]],\n contentQueries: function NgbNav_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbNavItem, 4);\n i0.ɵɵcontentQuery(dirIndex, NgbNavLinkBase, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.items = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.links = _t);\n }\n },\n hostVars: 6,\n hostBindings: function NgbNav_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown.arrowLeft\", function NgbNav_keydown_arrowLeft_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n })(\"keydown.arrowRight\", function NgbNav_keydown_arrowRight_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n })(\"keydown.arrowDown\", function NgbNav_keydown_arrowDown_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n })(\"keydown.arrowUp\", function NgbNav_keydown_arrowUp_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n })(\"keydown.Home\", function NgbNav_keydown_Home_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n })(\"keydown.End\", function NgbNav_keydown_End_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n })(\"focusout\", function NgbNav_focusout_HostBindingHandler($event) {\n return ctx.onFocusout($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-orientation\", ctx.orientation === \"vertical\" && ctx.roles === \"tablist\" ? \"vertical\" : undefined)(\"role\", ctx.role ? ctx.role : ctx.roles ? \"tablist\" : undefined);\n i0.ɵɵclassProp(\"nav\", true)(\"flex-column\", ctx.orientation === \"vertical\");\n }\n },\n inputs: {\n activeId: \"activeId\",\n animation: \"animation\",\n destroyOnHide: \"destroyOnHide\",\n orientation: \"orientation\",\n roles: \"roles\",\n keyboard: \"keyboard\"\n },\n outputs: {\n activeIdChange: \"activeIdChange\",\n shown: \"shown\",\n hidden: \"hidden\",\n navChange: \"navChange\"\n },\n exportAs: [\"ngbNav\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNav, [{\n type: Directive,\n args: [{\n selector: '[ngbNav]',\n exportAs: 'ngbNav',\n standalone: true,\n host: {\n '[class.nav]': 'true',\n '[class.flex-column]': `orientation === 'vertical'`,\n '[attr.aria-orientation]': `orientation === 'vertical' && roles === 'tablist' ? 'vertical' : undefined`,\n '[attr.role]': `role ? role : roles ? 'tablist' : undefined`,\n '(keydown.arrowLeft)': 'onKeyDown($event)',\n '(keydown.arrowRight)': 'onKeyDown($event)',\n '(keydown.arrowDown)': 'onKeyDown($event)',\n '(keydown.arrowUp)': 'onKeyDown($event)',\n '(keydown.Home)': 'onKeyDown($event)',\n '(keydown.End)': 'onKeyDown($event)',\n '(focusout)': 'onFocusout($event)'\n }\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['role']\n }]\n }], {\n activeId: [{\n type: Input\n }],\n activeIdChange: [{\n type: Output\n }],\n animation: [{\n type: Input\n }],\n destroyOnHide: [{\n type: Input\n }],\n orientation: [{\n type: Input\n }],\n roles: [{\n type: Input\n }],\n keyboard: [{\n type: Input\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n items: [{\n type: ContentChildren,\n args: [NgbNavItem]\n }],\n links: [{\n type: ContentChildren,\n args: [forwardRef(() => NgbNavLinkBase), {\n descendants: true\n }]\n }],\n navChange: [{\n type: Output\n }]\n });\n})();\nclass NgbNavLinkBase {\n constructor(role) {\n this.role = role;\n this.navItem = inject(NgbNavItem);\n this.nav = inject(NgbNav);\n this.nativeElement = inject(ElementRef).nativeElement;\n }\n get tabindex() {\n if (this.nav.keyboard === false) {\n return this.navItem.disabled ? -1 : undefined;\n }\n if (this.nav._navigatingWithKeyboard) {\n return -1;\n }\n return this.navItem.disabled || !this.navItem.active ? -1 : undefined;\n }\n static #_ = this.ɵfac = function NgbNavLinkBase_Factory(t) {\n return new (t || NgbNavLinkBase)(i0.ɵɵinjectAttribute('role'));\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavLinkBase,\n selectors: [[\"\", \"ngbNavLink\", \"\"]],\n hostVars: 14,\n hostBindings: function NgbNavLinkBase_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.navItem.domId);\n i0.ɵɵattribute(\"role\", ctx.role ? ctx.role : ctx.nav.roles ? \"tab\" : undefined)(\"tabindex\", ctx.tabindex)(\"aria-controls\", ctx.navItem.isPanelInDom() ? ctx.navItem.panelDomId : null)(\"aria-selected\", ctx.navItem.active)(\"aria-disabled\", ctx.navItem.disabled);\n i0.ɵɵclassProp(\"nav-link\", true)(\"nav-item\", ctx.navItem.isNgContainer())(\"active\", ctx.navItem.active)(\"disabled\", ctx.navItem.disabled);\n }\n },\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavLinkBase, [{\n type: Directive,\n args: [{\n selector: '[ngbNavLink]',\n standalone: true,\n host: {\n '[id]': 'navItem.domId',\n '[class.nav-link]': 'true',\n '[class.nav-item]': 'navItem.isNgContainer()',\n '[attr.role]': `role ? role : nav.roles ? 'tab' : undefined`,\n '[class.active]': 'navItem.active',\n '[class.disabled]': 'navItem.disabled',\n '[attr.tabindex]': 'tabindex',\n '[attr.aria-controls]': 'navItem.isPanelInDom() ? navItem.panelDomId : null',\n '[attr.aria-selected]': 'navItem.active',\n '[attr.aria-disabled]': 'navItem.disabled'\n }\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['role']\n }]\n }], null);\n})();\n/**\n * A directive to mark the nav link when used on a button element.\n */\nclass NgbNavLinkButton extends NgbNavLinkBase {\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbNavLinkButton_BaseFactory;\n return function NgbNavLinkButton_Factory(t) {\n return (ɵNgbNavLinkButton_BaseFactory || (ɵNgbNavLinkButton_BaseFactory = i0.ɵɵgetInheritedFactory(NgbNavLinkButton)))(t || NgbNavLinkButton);\n };\n })();\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavLinkButton,\n selectors: [[\"button\", \"ngbNavLink\", \"\"]],\n hostAttrs: [\"type\", \"button\"],\n hostVars: 1,\n hostBindings: function NgbNavLinkButton_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function NgbNavLinkButton_click_HostBindingHandler() {\n return ctx.nav.click(ctx.navItem);\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"disabled\", ctx.navItem.disabled);\n }\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavLinkButton, [{\n type: Directive,\n args: [{\n selector: 'button[ngbNavLink]',\n standalone: true,\n host: {\n type: 'button',\n '[disabled]': 'navItem.disabled',\n '(click)': 'nav.click(navItem)'\n }\n }]\n }], null, null);\n})();\n/**\n * A directive to mark the nav link when used on a link element.\n *\n * @since 5.2.0\n */\nclass NgbNavLink extends NgbNavLinkBase {\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbNavLink_BaseFactory;\n return function NgbNavLink_Factory(t) {\n return (ɵNgbNavLink_BaseFactory || (ɵNgbNavLink_BaseFactory = i0.ɵɵgetInheritedFactory(NgbNavLink)))(t || NgbNavLink);\n };\n })();\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavLink,\n selectors: [[\"a\", \"ngbNavLink\", \"\"]],\n hostAttrs: [\"href\", \"\"],\n hostBindings: function NgbNavLink_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function NgbNavLink_click_HostBindingHandler($event) {\n ctx.nav.click(ctx.navItem);\n return $event.preventDefault();\n });\n }\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavLink, [{\n type: Directive,\n args: [{\n selector: 'a[ngbNavLink]',\n standalone: true,\n host: {\n href: '',\n '(click)': 'nav.click(navItem); $event.preventDefault()'\n }\n }]\n }], null, null);\n})();\nconst ngbNavFadeOutTransition = ({\n classList\n}) => {\n classList.remove('show');\n return () => classList.remove('active');\n};\nconst ngbNavFadeInTransition = (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n};\nclass NgbNavPane {\n constructor() {\n this.nativeElement = inject(ElementRef).nativeElement;\n }\n static #_ = this.ɵfac = function NgbNavPane_Factory(t) {\n return new (t || NgbNavPane)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavPane,\n selectors: [[\"\", \"ngbNavPane\", \"\"]],\n hostAttrs: [1, \"tab-pane\"],\n hostVars: 5,\n hostBindings: function NgbNavPane_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.item.panelDomId);\n i0.ɵɵattribute(\"role\", ctx.role ? ctx.role : ctx.nav.roles ? \"tabpanel\" : undefined)(\"aria-labelledby\", ctx.item.domId);\n i0.ɵɵclassProp(\"fade\", ctx.nav.animation);\n }\n },\n inputs: {\n item: \"item\",\n nav: \"nav\",\n role: \"role\"\n },\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavPane, [{\n type: Directive,\n args: [{\n selector: '[ngbNavPane]',\n standalone: true,\n host: {\n '[id]': 'item.panelDomId',\n class: 'tab-pane',\n '[class.fade]': 'nav.animation',\n '[attr.role]': 'role ? role : nav.roles ? \"tabpanel\" : undefined',\n '[attr.aria-labelledby]': 'item.domId'\n }\n }]\n }], null, {\n item: [{\n type: Input\n }],\n nav: [{\n type: Input\n }],\n role: [{\n type: Input\n }]\n });\n})();\n/**\n * The outlet where currently active nav content will be displayed.\n *\n * @since 5.2.0\n */\nclass NgbNavOutlet {\n constructor() {\n this._cd = inject(ChangeDetectorRef);\n this._ngZone = inject(NgZone);\n this._activePane = null;\n }\n isPanelTransitioning(item) {\n return this._activePane?.item === item;\n }\n ngAfterViewInit() {\n // initial display\n this._updateActivePane();\n // this will be emitted for all 3 types of nav changes: .select(), [activeId] or (click)\n this.nav.navItemChange$.pipe(takeUntilDestroyed(this.nav.destroyRef), startWith(this._activePane?.item || null), distinctUntilChanged(), skip(1)).subscribe(nextItem => {\n const options = {\n animation: this.nav.animation,\n runningTransition: 'stop'\n };\n // next panel we're switching to will only appear in DOM after the change detection is done\n // and `this._panes` will be updated\n this._cd.detectChanges();\n // fading out\n if (this._activePane) {\n ngbRunTransition(this._ngZone, this._activePane.nativeElement, ngbNavFadeOutTransition, options).subscribe(() => {\n const activeItem = this._activePane?.item;\n this._activePane = this._getPaneForItem(nextItem);\n // mark for check when transition finishes as outlet or parent containers might be OnPush\n // without this the panes that have \"faded out\" will stay in DOM\n this._cd.markForCheck();\n // fading in\n if (this._activePane) {\n // we have to add the '.active' class before running the transition,\n // because it should be in place before `ngbRunTransition` does `reflow()`\n this._activePane.nativeElement.classList.add('active');\n ngbRunTransition(this._ngZone, this._activePane.nativeElement, ngbNavFadeInTransition, options).subscribe(() => {\n if (nextItem) {\n nextItem.shown.emit();\n this.nav.shown.emit(nextItem.id);\n }\n });\n }\n if (activeItem) {\n activeItem.hidden.emit();\n this.nav.hidden.emit(activeItem.id);\n }\n });\n } else {\n this._updateActivePane();\n }\n });\n }\n _updateActivePane() {\n this._activePane = this._getActivePane();\n this._activePane?.nativeElement.classList.add('show');\n this._activePane?.nativeElement.classList.add('active');\n }\n _getPaneForItem(item) {\n return this._panes && this._panes.find(pane => pane.item === item) || null;\n }\n _getActivePane() {\n return this._panes && this._panes.find(pane => pane.item.active) || null;\n }\n static #_ = this.ɵfac = function NgbNavOutlet_Factory(t) {\n return new (t || NgbNavOutlet)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbNavOutlet,\n selectors: [[\"\", \"ngbNavOutlet\", \"\"]],\n viewQuery: function NgbNavOutlet_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(NgbNavPane, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._panes = _t);\n }\n },\n hostVars: 2,\n hostBindings: function NgbNavOutlet_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"tab-content\", true);\n }\n },\n inputs: {\n paneRole: \"paneRole\",\n nav: [i0.ɵɵInputFlags.None, \"ngbNavOutlet\", \"nav\"]\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c8,\n decls: 2,\n vars: 0,\n consts: [[\"ngbNavPane\", \"\"], [\"ngbNavPane\", \"\", 3, \"item\", \"nav\", \"role\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgbNavOutlet_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, NgbNavOutlet_For_1_Template, 1, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n i0.ɵɵrepeater(ctx.nav.items);\n }\n },\n dependencies: [NgbNavPane, NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavOutlet, [{\n type: Component,\n args: [{\n selector: '[ngbNavOutlet]',\n standalone: true,\n imports: [NgbNavPane, NgTemplateOutlet],\n host: {\n '[class.tab-content]': 'true'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n\t\t@for (item of nav.items; track item) {\n\t\t\t@if (item.isPanelInDom() || isPanelTransitioning(item)) {\n\t\t\t\t<div ngbNavPane [item]=\"item\" [nav]=\"nav\" [role]=\"paneRole\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"item.contentTpl?.templateRef || null\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: item.active || isPanelTransitioning(item) }\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t}\n\t\t}\n\t`\n }]\n }], null, {\n _panes: [{\n type: ViewChildren,\n args: [NgbNavPane]\n }],\n paneRole: [{\n type: Input\n }],\n nav: [{\n type: Input,\n args: ['ngbNavOutlet']\n }]\n });\n})();\nconst NGB_NAV_DIRECTIVES = [NgbNavContent, NgbNav, NgbNavItem, NgbNavItemRole, NgbNavLink, NgbNavLinkButton, NgbNavLinkBase, NgbNavOutlet, NgbNavPane];\nclass NgbNavModule {\n static #_ = this.ɵfac = function NgbNavModule_Factory(t) {\n return new (t || NgbNavModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbNavModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavModule, [{\n type: NgModule,\n args: [{\n imports: NGB_NAV_DIRECTIVES,\n exports: NGB_NAV_DIRECTIVES\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbPagination`](#/components/pagination/api#NgbPagination) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the paginations used in the application.\n */\nclass NgbPaginationConfig {\n constructor() {\n this.disabled = false;\n this.boundaryLinks = false;\n this.directionLinks = true;\n this.ellipses = true;\n this.maxSize = 0;\n this.pageSize = 10;\n this.rotate = false;\n }\n static #_ = this.ɵfac = function NgbPaginationConfig_Factory(t) {\n return new (t || NgbPaginationConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbPaginationConfig,\n factory: NgbPaginationConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A directive to match the 'ellipsis' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationEllipsis {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static #_ = this.ɵfac = function NgbPaginationEllipsis_Factory(t) {\n return new (t || NgbPaginationEllipsis)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationEllipsis,\n selectors: [[\"ng-template\", \"ngbPaginationEllipsis\", \"\"]],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationEllipsis, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationEllipsis]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A directive to match the 'first' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationFirst {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static #_ = this.ɵfac = function NgbPaginationFirst_Factory(t) {\n return new (t || NgbPaginationFirst)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationFirst,\n selectors: [[\"ng-template\", \"ngbPaginationFirst\", \"\"]],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationFirst, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationFirst]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A directive to match the 'last' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationLast {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static #_ = this.ɵfac = function NgbPaginationLast_Factory(t) {\n return new (t || NgbPaginationLast)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationLast,\n selectors: [[\"ng-template\", \"ngbPaginationLast\", \"\"]],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationLast, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationLast]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A directive to match the 'next' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationNext {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static #_ = this.ɵfac = function NgbPaginationNext_Factory(t) {\n return new (t || NgbPaginationNext)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationNext,\n selectors: [[\"ng-template\", \"ngbPaginationNext\", \"\"]],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationNext, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationNext]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A directive to match the page 'number' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationNumber {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static #_ = this.ɵfac = function NgbPaginationNumber_Factory(t) {\n return new (t || NgbPaginationNumber)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationNumber,\n selectors: [[\"ng-template\", \"ngbPaginationNumber\", \"\"]],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationNumber, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationNumber]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A directive to match the 'previous' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationPrevious {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static #_ = this.ɵfac = function NgbPaginationPrevious_Factory(t) {\n return new (t || NgbPaginationPrevious)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationPrevious,\n selectors: [[\"ng-template\", \"ngbPaginationPrevious\", \"\"]],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationPrevious, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationPrevious]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A directive to match the 'pages' whole content\n *\n * @since 9.1.0\n */\nclass NgbPaginationPages {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static #_ = this.ɵfac = function NgbPaginationPages_Factory(t) {\n return new (t || NgbPaginationPages)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationPages,\n selectors: [[\"ng-template\", \"ngbPaginationPages\", \"\"]],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationPages, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationPages]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A component that displays page numbers and allows to customize them in several ways.\n */\nclass NgbPagination {\n constructor() {\n this._config = inject(NgbPaginationConfig);\n this.pageCount = 0;\n this.pages = [];\n /**\n * If `true`, pagination links will be disabled.\n */\n this.disabled = this._config.disabled;\n /**\n * If `true`, the \"First\" and \"Last\" page links are shown.\n */\n this.boundaryLinks = this._config.boundaryLinks;\n /**\n * If `true`, the \"Next\" and \"Previous\" page links are shown.\n */\n this.directionLinks = this._config.directionLinks;\n /**\n * If `true`, the ellipsis symbols and first/last page numbers will be shown when `maxSize` > number of pages.\n */\n this.ellipses = this._config.ellipses;\n /**\n * Whether to rotate pages when `maxSize` > number of pages.\n *\n * The current page always stays in the middle if `true`.\n */\n this.rotate = this._config.rotate;\n /**\n * The maximum number of pages to display.\n */\n this.maxSize = this._config.maxSize;\n /**\n * The current page.\n *\n * Page numbers start with `1`.\n */\n this.page = 1;\n /**\n * The number of items per page.\n */\n this.pageSize = this._config.pageSize;\n /**\n * An event fired when the page is changed. Will fire only if collection size is set and all values are valid.\n *\n * Event payload is the number of the newly selected page.\n *\n * Page numbers start with `1`.\n */\n this.pageChange = new EventEmitter(true);\n /**\n * The pagination display size.\n *\n * Bootstrap currently supports small and large sizes.\n *\n * If the passed value is a string (ex. 'custom'), it will just add the `pagination-custom` css class\n */\n this.size = this._config.size;\n }\n hasPrevious() {\n return this.page > 1;\n }\n hasNext() {\n return this.page < this.pageCount;\n }\n nextDisabled() {\n return !this.hasNext() || this.disabled;\n }\n previousDisabled() {\n return !this.hasPrevious() || this.disabled;\n }\n selectPage(pageNumber) {\n this._updatePages(pageNumber);\n }\n ngOnChanges(changes) {\n this._updatePages(this.page);\n }\n isEllipsis(pageNumber) {\n return pageNumber === -1;\n }\n /**\n * Appends ellipses and first/last page number to the displayed pages\n */\n _applyEllipses(start, end) {\n if (this.ellipses) {\n if (start > 0) {\n // The first page will always be included. If the displayed range\n // starts after the third page, then add ellipsis. But if the range\n // starts on the third page, then add the second page instead of\n // an ellipsis, because the ellipsis would only hide a single page.\n if (start > 2) {\n this.pages.unshift(-1);\n } else if (start === 2) {\n this.pages.unshift(2);\n }\n this.pages.unshift(1);\n }\n if (end < this.pageCount) {\n // The last page will always be included. If the displayed range\n // ends before the third-last page, then add ellipsis. But if the range\n // ends on third-last page, then add the second-last page instead of\n // an ellipsis, because the ellipsis would only hide a single page.\n if (end < this.pageCount - 2) {\n this.pages.push(-1);\n } else if (end === this.pageCount - 2) {\n this.pages.push(this.pageCount - 1);\n }\n this.pages.push(this.pageCount);\n }\n }\n }\n /**\n * Rotates page numbers based on maxSize items visible.\n * Currently selected page stays in the middle:\n *\n * Ex. for selected page = 6:\n * [5,*6*,7] for maxSize = 3\n * [4,5,*6*,7] for maxSize = 4\n */\n _applyRotation() {\n let start = 0;\n let end = this.pageCount;\n let leftOffset = Math.floor(this.maxSize / 2);\n let rightOffset = this.maxSize % 2 === 0 ? leftOffset - 1 : leftOffset;\n if (this.page <= leftOffset) {\n // very beginning, no rotation -> [0..maxSize]\n end = this.maxSize;\n } else if (this.pageCount - this.page < leftOffset) {\n // very end, no rotation -> [len-maxSize..len]\n start = this.pageCount - this.maxSize;\n } else {\n // rotate\n start = this.page - leftOffset - 1;\n end = this.page + rightOffset;\n }\n return [start, end];\n }\n /**\n * Paginates page numbers based on maxSize items per page.\n */\n _applyPagination() {\n let page = Math.ceil(this.page / this.maxSize) - 1;\n let start = page * this.maxSize;\n let end = start + this.maxSize;\n return [start, end];\n }\n _setPageInRange(newPageNo) {\n const prevPageNo = this.page;\n this.page = getValueInRange(newPageNo, this.pageCount, 1);\n if (this.page !== prevPageNo && isNumber(this.collectionSize)) {\n this.pageChange.emit(this.page);\n }\n }\n _updatePages(newPage) {\n this.pageCount = Math.ceil(this.collectionSize / this.pageSize);\n if (!isNumber(this.pageCount)) {\n this.pageCount = 0;\n }\n // fill-in model needed to render pages\n this.pages.length = 0;\n for (let i = 1; i <= this.pageCount; i++) {\n this.pages.push(i);\n }\n // set page within 1..max range\n this._setPageInRange(newPage);\n // apply maxSize if necessary\n if (this.maxSize > 0 && this.pageCount > this.maxSize) {\n let start = 0;\n let end = this.pageCount;\n // either paginating or rotating page numbers\n if (this.rotate) {\n [start, end] = this._applyRotation();\n } else {\n [start, end] = this._applyPagination();\n }\n this.pages = this.pages.slice(start, end);\n // adding ellipses\n this._applyEllipses(start, end);\n }\n }\n static #_ = this.ɵfac = function NgbPagination_Factory(t) {\n return new (t || NgbPagination)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbPagination,\n selectors: [[\"ngb-pagination\"]],\n contentQueries: function NgbPagination_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationEllipsis, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationFirst, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationLast, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationNext, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationNumber, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationPrevious, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationPages, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplEllipsis = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplFirst = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplLast = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplNext = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplNumber = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplPrevious = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplPages = _t.first);\n }\n },\n hostAttrs: [\"role\", \"navigation\"],\n inputs: {\n disabled: \"disabled\",\n boundaryLinks: \"boundaryLinks\",\n directionLinks: \"directionLinks\",\n ellipses: \"ellipses\",\n rotate: \"rotate\",\n collectionSize: \"collectionSize\",\n maxSize: \"maxSize\",\n page: \"page\",\n pageSize: \"pageSize\",\n size: \"size\"\n },\n outputs: {\n pageChange: \"pageChange\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 20,\n vars: 12,\n consts: () => {\n let i18n_12;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_12 = goog.getMsg(\"\\xAB\\xAB\");\n i18n_12 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_12;\n } else {\n i18n_12 = $localize`:@@ngb.pagination.first:««`;\n }\n let i18n_13;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_13 = goog.getMsg(\"\\xAB\");\n i18n_13 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_13;\n } else {\n i18n_13 = $localize`:@@ngb.pagination.previous:«`;\n }\n let i18n_14;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_14 = goog.getMsg(\"\\xBB\");\n i18n_14 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_14;\n } else {\n i18n_14 = $localize`:@@ngb.pagination.next:»`;\n }\n let i18n_15;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_15 = goog.getMsg(\"\\xBB\\xBB\");\n i18n_15 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_15;\n } else {\n i18n_15 = $localize`:@@ngb.pagination.last:»»`;\n }\n let i18n_16;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_16 = goog.getMsg(\"First\");\n i18n_16 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_16;\n } else {\n i18n_16 = $localize`:@@ngb.pagination.first-aria:First`;\n }\n let i18n_17;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_17 = goog.getMsg(\"Previous\");\n i18n_17 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_17;\n } else {\n i18n_17 = $localize`:@@ngb.pagination.previous-aria:Previous`;\n }\n let i18n_18;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_18 = goog.getMsg(\"Next\");\n i18n_18 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_18;\n } else {\n i18n_18 = $localize`:@@ngb.pagination.next-aria:Next`;\n }\n let i18n_19;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_19 = goog.getMsg(\"Last\");\n i18n_19 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_19;\n } else {\n i18n_19 = $localize`:@@ngb.pagination.last-aria:Last`;\n }\n return [[\"first\", \"\"], [\"previous\", \"\"], [\"next\", \"\"], [\"last\", \"\"], [\"ellipsis\", \"\"], [\"defaultNumber\", \"\"], [\"defaultPages\", \"\"], i18n_12, i18n_13, i18n_14, i18n_15, [1, \"page-item\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"aria-hidden\", \"true\"], [\"tabindex\", \"-1\", \"aria-disabled\", \"true\", 1, \"page-link\"], [\"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_16, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_17, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_18, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_19, \"href\", \"\", 1, \"page-link\", 3, \"click\"]];\n },\n template: function NgbPagination_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbPagination_ng_template_0_Template, 2, 0, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor)(2, NgbPagination_ng_template_2_Template, 2, 0, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor)(4, NgbPagination_ng_template_4_Template, 2, 0, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor)(6, NgbPagination_ng_template_6_Template, 2, 0, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor)(8, NgbPagination_ng_template_8_Template, 1, 0, \"ng-template\", null, 4, i0.ɵɵtemplateRefExtractor)(10, NgbPagination_ng_template_10_Template, 1, 1, \"ng-template\", null, 5, i0.ɵɵtemplateRefExtractor)(12, NgbPagination_ng_template_12_Template, 2, 0, \"ng-template\", null, 6, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementStart(14, \"ul\");\n i0.ɵɵtemplate(15, NgbPagination_Conditional_15_Template, 3, 9, \"li\", 11)(16, NgbPagination_Conditional_16_Template, 3, 8, \"li\", 11)(17, NgbPagination_ng_template_17_Template, 0, 0, \"ng-template\", 12)(18, NgbPagination_Conditional_18_Template, 3, 9, \"li\", 11)(19, NgbPagination_Conditional_19_Template, 3, 9, \"li\", 11);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const defaultPages_r19 = i0.ɵɵreference(13);\n i0.ɵɵadvance(14);\n i0.ɵɵclassMap(\"pagination\" + (ctx.size ? \" pagination-\" + ctx.size : \"\"));\n i0.ɵɵadvance();\n i0.ɵɵconditional(15, ctx.boundaryLinks ? 15 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(16, ctx.directionLinks ? 16 : -1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx.tplPages == null ? null : ctx.tplPages.templateRef) || defaultPages_r19)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction3(8, _c9, ctx.page, ctx.pages, ctx.disabled));\n i0.ɵɵadvance();\n i0.ɵɵconditional(18, ctx.directionLinks ? 18 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(19, ctx.boundaryLinks ? 19 : -1);\n }\n },\n dependencies: [NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPagination, [{\n type: Component,\n args: [{\n selector: 'ngb-pagination',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'navigation'\n },\n template: `\n\t\t<ng-template #first><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.first\">««</span></ng-template>\n\t\t<ng-template #previous><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.previous\">«</span></ng-template>\n\t\t<ng-template #next><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.next\">»</span></ng-template>\n\t\t<ng-template #last><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.last\">»»</span></ng-template>\n\t\t<ng-template #ellipsis>...</ng-template>\n\t\t<ng-template #defaultNumber let-page let-currentPage=\"currentPage\">{{ page }}</ng-template>\n\t\t<ng-template #defaultPages let-page let-pages=\"pages\" let-disabled=\"disabled\">\n\t\t\t@for (pageNumber of pages; track pageNumber) {\n\t\t\t\t<li\n\t\t\t\t\tclass=\"page-item\"\n\t\t\t\t\t[class.active]=\"pageNumber === page\"\n\t\t\t\t\t[class.disabled]=\"isEllipsis(pageNumber) || disabled\"\n\t\t\t\t\t[attr.aria-current]=\"pageNumber === page ? 'page' : null\"\n\t\t\t\t>\n\t\t\t\t\t@if (isEllipsis(pageNumber)) {\n\t\t\t\t\t\t<a class=\"page-link\" tabindex=\"-1\" aria-disabled=\"true\">\n\t\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplEllipsis?.templateRef || ellipsis\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: true, currentPage: page }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\t\thref\n\t\t\t\t\t\t\t(click)=\"selectPage(pageNumber); $event.preventDefault()\"\n\t\t\t\t\t\t\t[attr.tabindex]=\"disabled ? '-1' : null\"\n\t\t\t\t\t\t\t[attr.aria-disabled]=\"disabled ? 'true' : null\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplNumber?.templateRef || defaultNumber\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: disabled, $implicit: pageNumber, currentPage: page }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t}\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ng-template>\n\t\t<ul [class]=\"'pagination' + (size ? ' pagination-' + size : '')\">\n\t\t\t@if (boundaryLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"previousDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"First\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.first-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(1); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"previousDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"previousDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplFirst?.templateRef || first\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: previousDisabled(), currentPage: page }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t\t@if (directionLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"previousDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"Previous\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.previous-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(page - 1); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"previousDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"previousDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplPrevious?.templateRef || previous\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: previousDisabled() }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"tplPages?.templateRef || defaultPages\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: page, pages: pages, disabled: disabled }\"\n\t\t\t/>\n\t\t\t@if (directionLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"nextDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"Next\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.next-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(page + 1); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"nextDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"nextDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplNext?.templateRef || next\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: nextDisabled(), currentPage: page }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t\t@if (boundaryLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"nextDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"Last\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.last-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(pageCount); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"nextDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"nextDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplLast?.templateRef || last\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: nextDisabled(), currentPage: page }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t`\n }]\n }], null, {\n tplEllipsis: [{\n type: ContentChild,\n args: [NgbPaginationEllipsis, {\n static: false\n }]\n }],\n tplFirst: [{\n type: ContentChild,\n args: [NgbPaginationFirst, {\n static: false\n }]\n }],\n tplLast: [{\n type: ContentChild,\n args: [NgbPaginationLast, {\n static: false\n }]\n }],\n tplNext: [{\n type: ContentChild,\n args: [NgbPaginationNext, {\n static: false\n }]\n }],\n tplNumber: [{\n type: ContentChild,\n args: [NgbPaginationNumber, {\n static: false\n }]\n }],\n tplPrevious: [{\n type: ContentChild,\n args: [NgbPaginationPrevious, {\n static: false\n }]\n }],\n tplPages: [{\n type: ContentChild,\n args: [NgbPaginationPages, {\n static: false\n }]\n }],\n disabled: [{\n type: Input\n }],\n boundaryLinks: [{\n type: Input\n }],\n directionLinks: [{\n type: Input\n }],\n ellipses: [{\n type: Input\n }],\n rotate: [{\n type: Input\n }],\n collectionSize: [{\n type: Input,\n args: [{\n required: true\n }]\n }],\n maxSize: [{\n type: Input\n }],\n page: [{\n type: Input\n }],\n pageSize: [{\n type: Input\n }],\n pageChange: [{\n type: Output\n }],\n size: [{\n type: Input\n }]\n });\n})();\nconst NGB_PAGINATION_DIRECTIVES = [NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious, NgbPaginationPages];\nclass NgbPaginationModule {\n static #_ = this.ɵfac = function NgbPaginationModule_Factory(t) {\n return new (t || NgbPaginationModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbPaginationModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationModule, [{\n type: NgModule,\n args: [{\n imports: NGB_PAGINATION_DIRECTIVES,\n exports: NGB_PAGINATION_DIRECTIVES\n }]\n }], null, null);\n})();\nconst ALIASES = {\n hover: ['mouseenter', 'mouseleave'],\n focus: ['focusin', 'focusout']\n};\nfunction parseTriggers(triggers) {\n const trimmedTriggers = (triggers || '').trim();\n if (trimmedTriggers.length === 0) {\n return [];\n }\n const parsedTriggers = trimmedTriggers.split(/\\s+/).map(trigger => trigger.split(':')).map(triggerPair => ALIASES[triggerPair[0]] || triggerPair);\n const manualTriggers = parsedTriggers.filter(triggerPair => triggerPair.includes('manual'));\n if (manualTriggers.length > 1) {\n throw `Triggers parse error: only one manual trigger is allowed`;\n }\n if (manualTriggers.length === 1 && parsedTriggers.length > 1) {\n throw `Triggers parse error: manual trigger can't be mixed with other triggers`;\n }\n return manualTriggers.length ? [] : parsedTriggers;\n}\nfunction listenToTriggers(element, triggers, isOpenedFn, openFn, closeFn, openDelayMs = 0, closeDelayMs = 0) {\n const parsedTriggers = parseTriggers(triggers);\n if (parsedTriggers.length === 0) {\n return () => {};\n }\n const activeOpenTriggers = new Set();\n const cleanupFns = [];\n let timeout;\n function addEventListener(name, listener) {\n element.addEventListener(name, listener);\n cleanupFns.push(() => element.removeEventListener(name, listener));\n }\n function withDelay(fn, delayMs) {\n clearTimeout(timeout);\n if (delayMs > 0) {\n timeout = setTimeout(fn, delayMs);\n } else {\n fn();\n }\n }\n for (const [openTrigger, closeTrigger] of parsedTriggers) {\n if (!closeTrigger) {\n addEventListener(openTrigger, () => isOpenedFn() ? withDelay(closeFn, closeDelayMs) : withDelay(openFn, openDelayMs));\n } else {\n addEventListener(openTrigger, () => {\n activeOpenTriggers.add(openTrigger);\n withDelay(() => activeOpenTriggers.size > 0 && openFn(), openDelayMs);\n });\n addEventListener(closeTrigger, () => {\n activeOpenTriggers.delete(openTrigger);\n withDelay(() => activeOpenTriggers.size === 0 && closeFn(), closeDelayMs);\n });\n }\n }\n return () => cleanupFns.forEach(cleanupFn => cleanupFn());\n}\n\n/**\n * A configuration service for the [`NgbPopover`](#/components/popover/api#NgbPopover) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the popovers used in the application.\n */\nclass NgbPopoverConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.autoClose = true;\n this.placement = 'auto';\n this.popperOptions = options => options;\n this.triggers = 'click';\n this.disablePopover = false;\n this.openDelay = 0;\n this.closeDelay = 0;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static #_ = this.ɵfac = function NgbPopoverConfig_Factory(t) {\n return new (t || NgbPopoverConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbPopoverConfig,\n factory: NgbPopoverConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPopoverConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nlet nextId$1 = 0;\nclass NgbPopoverWindow {\n isTitleTemplate() {\n return this.title instanceof TemplateRef;\n }\n static #_ = this.ɵfac = function NgbPopoverWindow_Factory(t) {\n return new (t || NgbPopoverWindow)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbPopoverWindow,\n selectors: [[\"ngb-popover-window\"]],\n hostAttrs: [\"role\", \"tooltip\", 2, \"position\", \"absolute\"],\n hostVars: 5,\n hostBindings: function NgbPopoverWindow_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵclassMap(\"popover\" + (ctx.popoverClass ? \" \" + ctx.popoverClass : \"\"));\n i0.ɵɵclassProp(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n title: \"title\",\n id: \"id\",\n popoverClass: \"popoverClass\",\n context: \"context\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 4,\n vars: 1,\n consts: [[\"simpleTitle\", \"\"], [\"data-popper-arrow\", \"\", 1, \"popover-arrow\"], [1, \"popover-header\"], [1, \"popover-body\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgbPopoverWindow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"div\", 1);\n i0.ɵɵtemplate(1, NgbPopoverWindow_Conditional_1_Template, 4, 2, \"h3\", 2);\n i0.ɵɵelementStart(2, \"div\", 3);\n i0.ɵɵprojection(3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx.title ? 1 : -1);\n }\n },\n dependencies: [NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPopoverWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-popover-window',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"popover\" + (popoverClass ? \" \" + popoverClass : \"\")',\n '[class.fade]': 'animation',\n role: 'tooltip',\n '[id]': 'id',\n style: 'position: absolute;'\n },\n template: `\n\t\t<div class=\"popover-arrow\" data-popper-arrow></div>\n\t\t@if (title) {\n\t\t\t<h3 class=\"popover-header\">\n\t\t\t\t<ng-template #simpleTitle>{{ title }}</ng-template>\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"isTitleTemplate() ? $any(title) : simpleTitle\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"context\"\n\t\t\t\t/>\n\t\t\t</h3>\n\t\t}\n\t\t<div class=\"popover-body\">\n\t\t\t<ng-content />\n\t\t</div>\n\t`\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n title: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n popoverClass: [{\n type: Input\n }],\n context: [{\n type: Input\n }]\n });\n})();\n/**\n * A lightweight and extensible directive for fancy popover creation.\n */\nclass NgbPopover {\n constructor() {\n this._config = inject(NgbPopoverConfig);\n /**\n * If `true`, popover opening and closing will be animated.\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * Indicates whether the popover should be closed on `Escape` key and inside/outside clicks:\n *\n * * `true` - closes on both outside and inside clicks as well as `Escape` presses\n * * `false` - disables the autoClose feature (NB: triggers still apply)\n * * `\"inside\"` - closes on inside clicks as well as Escape presses\n * * `\"outside\"` - closes on outside clicks (sometimes also achievable through triggers)\n * as well as `Escape` presses\n *\n * @since 3.0.0\n */\n this.autoClose = this._config.autoClose;\n /**\n * The preferred placement of the popover, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"auto\"`.\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the popover.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * Specifies events that should trigger the tooltip.\n *\n * Supports a space separated list of event names.\n * For more details see the [triggers demo](#/components/popover/examples#triggers).\n */\n this.triggers = this._config.triggers;\n /**\n * A selector specifying the element the popover should be appended to.\n *\n * Currently only supports `body`.\n */\n this.container = this._config.container;\n /**\n * If `true`, popover is disabled and won't be displayed.\n *\n * @since 1.1.0\n */\n this.disablePopover = this._config.disablePopover;\n /**\n * An optional class applied to the popover window element.\n *\n * @since 2.2.0\n */\n this.popoverClass = this._config.popoverClass;\n /**\n * The opening delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n *\n * @since 4.1.0\n */\n this.openDelay = this._config.openDelay;\n /**\n * The closing delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n *\n * @since 4.1.0\n */\n this.closeDelay = this._config.closeDelay;\n /**\n * An event emitted when the popover opening animation has finished. Contains no payload.\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the popover closing animation has finished. Contains no payload.\n *\n * At this point popover is not in the DOM anymore.\n */\n this.hidden = new EventEmitter();\n this._nativeElement = inject(ElementRef).nativeElement;\n this._ngZone = inject(NgZone);\n this._document = inject(DOCUMENT);\n this._changeDetector = inject(ChangeDetectorRef);\n this._ngbPopoverWindowId = `ngb-popover-${nextId$1++}`;\n this._popupService = new PopupService(NgbPopoverWindow);\n this._windowRef = null;\n this._positioning = ngbPositioning();\n }\n /**\n * Opens the popover.\n *\n * This is considered to be a \"manual\" triggering.\n * The `context` is an optional value to be injected into the popover template when it is created.\n */\n open(context) {\n if (!this._windowRef && !this._isDisabled()) {\n // this type assertion is safe because otherwise _isDisabled would return true\n const {\n windowRef,\n transition$\n } = this._popupService.open(this.ngbPopover, context ?? this.popoverContext, this.animation);\n this._windowRef = windowRef;\n this._windowRef.setInput('animation', this.animation);\n this._windowRef.setInput('title', this.popoverTitle);\n this._windowRef.setInput('context', context ?? this.popoverContext);\n this._windowRef.setInput('popoverClass', this.popoverClass);\n this._windowRef.setInput('id', this._ngbPopoverWindowId);\n this._getPositionTargetElement().setAttribute('aria-describedby', this._ngbPopoverWindowId);\n if (this.container === 'body') {\n this._document.body.appendChild(this._windowRef.location.nativeElement);\n }\n // We need to detect changes, because we don't know where .open() might be called from.\n // Ex. opening popover from one of lifecycle hooks that run after the CD\n // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception\n this._windowRef.changeDetectorRef.detectChanges();\n // We need to mark for check, because popover won't work inside the OnPush component.\n // Ex. when we use expression like `{{ popover.isOpen() : 'opened' : 'closed' }}`\n // inside the template of an OnPush component and we change the popover from\n // open -> closed, the expression in question won't be updated unless we explicitly\n // mark the parent component to be checked.\n this._windowRef.changeDetectorRef.markForCheck();\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n this._positioning.createPopper({\n hostElement: this._getPositionTargetElement(),\n targetElement: this._windowRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n baseClass: 'bs-popover',\n updatePopperOptions: options => this.popperOptions(addPopperOffset([0, 8])(options))\n });\n Promise.resolve().then(() => {\n // This update is required for correct arrow placement\n this._positioning.update();\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n });\n });\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [this._windowRef.location.nativeElement]);\n transition$.subscribe(() => this.shown.emit());\n }\n }\n /**\n * Closes the popover.\n *\n * This is considered to be a \"manual\" triggering of the popover.\n */\n close(animation = this.animation) {\n if (this._windowRef) {\n this._getPositionTargetElement().removeAttribute('aria-describedby');\n this._popupService.close(animation).subscribe(() => {\n this._windowRef = null;\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this.hidden.emit();\n this._changeDetector.markForCheck();\n });\n }\n }\n /**\n * Toggles the popover.\n *\n * This is considered to be a \"manual\" triggering of the popover.\n */\n toggle() {\n if (this._windowRef) {\n this.close();\n } else {\n this.open();\n }\n }\n /**\n * Returns `true`, if the popover is currently shown.\n */\n isOpen() {\n return this._windowRef != null;\n }\n ngOnInit() {\n this._unregisterListenersFn = listenToTriggers(this._nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay);\n }\n ngOnChanges({\n ngbPopover,\n popoverTitle,\n disablePopover,\n popoverClass\n }) {\n if (popoverClass && this.isOpen()) {\n this._windowRef.setInput('popoverClass', popoverClass.currentValue);\n }\n // close popover if title and content become empty, or disablePopover set to true\n if ((ngbPopover || popoverTitle || disablePopover) && this._isDisabled()) {\n this.close();\n }\n }\n ngOnDestroy() {\n this.close(false);\n // This check is needed as it might happen that ngOnDestroy is called before ngOnInit\n // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199\n this._unregisterListenersFn?.();\n }\n _isDisabled() {\n return this.disablePopover ? true : !this.ngbPopover && !this.popoverTitle;\n }\n _getPositionTargetElement() {\n return (isString(this.positionTarget) ? this._document.querySelector(this.positionTarget) : this.positionTarget) || this._nativeElement;\n }\n static #_ = this.ɵfac = function NgbPopover_Factory(t) {\n return new (t || NgbPopover)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPopover,\n selectors: [[\"\", \"ngbPopover\", \"\"]],\n inputs: {\n animation: \"animation\",\n autoClose: \"autoClose\",\n ngbPopover: \"ngbPopover\",\n popoverTitle: \"popoverTitle\",\n placement: \"placement\",\n popperOptions: \"popperOptions\",\n triggers: \"triggers\",\n positionTarget: \"positionTarget\",\n container: \"container\",\n disablePopover: \"disablePopover\",\n popoverClass: \"popoverClass\",\n popoverContext: \"popoverContext\",\n openDelay: \"openDelay\",\n closeDelay: \"closeDelay\"\n },\n outputs: {\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbPopover\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPopover, [{\n type: Directive,\n args: [{\n selector: '[ngbPopover]',\n exportAs: 'ngbPopover',\n standalone: true\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n autoClose: [{\n type: Input\n }],\n ngbPopover: [{\n type: Input\n }],\n popoverTitle: [{\n type: Input\n }],\n placement: [{\n type: Input\n }],\n popperOptions: [{\n type: Input\n }],\n triggers: [{\n type: Input\n }],\n positionTarget: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n disablePopover: [{\n type: Input\n }],\n popoverClass: [{\n type: Input\n }],\n popoverContext: [{\n type: Input\n }],\n openDelay: [{\n type: Input\n }],\n closeDelay: [{\n type: Input\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }]\n });\n})();\nclass NgbPopoverModule {\n static #_ = this.ɵfac = function NgbPopoverModule_Factory(t) {\n return new (t || NgbPopoverModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbPopoverModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPopoverModule, [{\n type: NgModule,\n args: [{\n imports: [NgbPopover],\n exports: [NgbPopover]\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbProgressbar`](#/components/progressbar/api#NgbProgressbar) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the progress bars used in the application.\n */\nclass NgbProgressbarConfig {\n constructor() {\n this.max = 100;\n this.animated = false;\n this.ariaLabel = 'progress bar';\n this.striped = false;\n this.showValue = false;\n }\n static #_ = this.ɵfac = function NgbProgressbarConfig_Factory(t) {\n return new (t || NgbProgressbarConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbProgressbarConfig,\n factory: NgbProgressbarConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbProgressbarConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A directive that provides feedback on the progress of a workflow or an action.\n */\nclass NgbProgressbar {\n /**\n * The maximal value to be displayed in the progress bar.\n *\n * Should be a positive number. Will default to 100 otherwise.\n */\n set max(max) {\n this._max = !isNumber(max) || max <= 0 ? 100 : max;\n }\n get max() {\n return this._max;\n }\n constructor() {\n this._config = inject(NgbProgressbarConfig);\n this.stacked = inject(NgbProgressbarStacked, {\n optional: true\n });\n /**\n * If `true`, the stripes on the progress bar are animated.\n *\n * Takes effect only for browsers supporting CSS3 animations, and if `striped` is `true`.\n */\n this.animated = this._config.animated;\n /**\n * The accessible progress bar name.\n *\n * @since 13.1.0\n */\n this.ariaLabel = this._config.ariaLabel;\n /**\n * If `true`, the progress bars will be displayed as striped.\n */\n this.striped = this._config.striped;\n /**\n * If `true`, the current percentage will be shown in the `xx%` format.\n */\n this.showValue = this._config.showValue;\n /**\n * Optional text variant type of the progress bar.\n *\n * Supports types based on Bootstrap background color variants, like:\n * `\"success\"`, `\"info\"`, `\"warning\"`, `\"danger\"`, `\"primary\"`, `\"secondary\"`, `\"dark\"` and so on.\n *\n * @since 5.2.0\n */\n this.textType = this._config.textType;\n /**\n * The type of the progress bar.\n *\n * Supports types based on Bootstrap background color variants, like:\n * `\"success\"`, `\"info\"`, `\"warning\"`, `\"danger\"`, `\"primary\"`, `\"secondary\"`, `\"dark\"` and so on.\n */\n this.type = this._config.type;\n /**\n * The current value for the progress bar.\n *\n * Should be in the `[0, max]` range.\n */\n this.value = 0;\n /**\n * The height of the progress bar.\n *\n * Accepts any valid CSS height values, ex. `\"2rem\"`\n */\n this.height = this._config.height;\n this.max = this._config.max;\n }\n getValue() {\n return getValueInRange(this.value, this.max);\n }\n getPercentValue() {\n return 100 * this.getValue() / this.max;\n }\n static #_ = this.ɵfac = function NgbProgressbar_Factory(t) {\n return new (t || NgbProgressbar)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbProgressbar,\n selectors: [[\"ngb-progressbar\"]],\n hostAttrs: [\"role\", \"progressbar\", \"aria-valuemin\", \"0\", 1, \"progress\"],\n hostVars: 7,\n hostBindings: function NgbProgressbar_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuenow\", ctx.getValue())(\"aria-valuemax\", ctx.max)(\"aria-label\", ctx.ariaLabel);\n i0.ɵɵstyleProp(\"width\", ctx.stacked ? ctx.getPercentValue() : null, \"%\")(\"height\", ctx.height);\n }\n },\n inputs: {\n max: \"max\",\n animated: \"animated\",\n ariaLabel: \"ariaLabel\",\n striped: \"striped\",\n showValue: \"showValue\",\n textType: \"textType\",\n type: \"type\",\n value: \"value\",\n height: \"height\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 3,\n vars: 11,\n consts: () => {\n let i18n_20;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_20 = goog.getMsg(\"{$interpolation}\", {\n \"interpolation\": \"\\uFFFD0\\uFFFD\"\n }, {\n original_code: {\n \"interpolation\": \"{{ getValue() / max | percent }}\"\n }\n });\n i18n_20 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_20;\n } else {\n i18n_20 = $localize`:@@ngb.progressbar.value:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n }\n return [i18n_20];\n },\n template: function NgbProgressbar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, NgbProgressbar_Conditional_1_Template, 3, 3, \"span\");\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassMapInterpolate2(\"progress-bar\", ctx.type ? ctx.textType ? \" bg-\" + ctx.type : \" text-bg-\" + ctx.type : \"\", \"\", ctx.textType ? \" text-\" + ctx.textType : \"\", \"\");\n i0.ɵɵstyleProp(\"width\", !ctx.stacked ? ctx.getPercentValue() : null, \"%\");\n i0.ɵɵclassProp(\"progress-bar-animated\", ctx.animated)(\"progress-bar-striped\", ctx.striped);\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx.showValue ? 1 : -1);\n }\n },\n dependencies: [PercentPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbProgressbar, [{\n type: Component,\n args: [{\n selector: 'ngb-progressbar',\n standalone: true,\n imports: [PercentPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'progress',\n role: 'progressbar',\n '[attr.aria-valuenow]': 'getValue()',\n 'aria-valuemin': '0',\n '[attr.aria-valuemax]': 'max',\n '[attr.aria-label]': 'ariaLabel',\n '[style.width.%]': 'stacked ? getPercentValue() : null'\n },\n template: `\n\t\t<div\n\t\t\tclass=\"progress-bar{{ type ? (textType ? ' bg-' + type : ' text-bg-' + type) : '' }}{{\n\t\t\t\ttextType ? ' text-' + textType : ''\n\t\t\t}}\"\n\t\t\t[class.progress-bar-animated]=\"animated\"\n\t\t\t[class.progress-bar-striped]=\"striped\"\n\t\t\t[style.width.%]=\"!stacked ? getPercentValue() : null\"\n\t\t>\n\t\t\t@if (showValue) {\n\t\t\t\t<span i18n=\"@@ngb.progressbar.value\">{{ getValue() / max | percent }}</span>\n\t\t\t}\n\t\t\t<ng-content />\n\t\t</div>\n\t`\n }]\n }], () => [], {\n max: [{\n type: Input\n }],\n animated: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input\n }],\n striped: [{\n type: Input\n }],\n showValue: [{\n type: Input\n }],\n textType: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n value: [{\n type: Input,\n args: [{\n required: true\n }]\n }],\n height: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['style.height']\n }]\n });\n})();\n/**\n * A directive that allow to stack progress bars.\n *\n * @since 16.0.0\n */\nclass NgbProgressbarStacked {\n static #_ = this.ɵfac = function NgbProgressbarStacked_Factory(t) {\n return new (t || NgbProgressbarStacked)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbProgressbarStacked,\n selectors: [[\"ngb-progressbar-stacked\"]],\n hostAttrs: [1, \"progress-stacked\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function NgbProgressbarStacked_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbProgressbarStacked, [{\n type: Component,\n args: [{\n selector: 'ngb-progressbar-stacked',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'progress-stacked'\n },\n template: `<ng-content></ng-content>`\n }]\n }], null, null);\n})();\nclass NgbProgressbarModule {\n static #_ = this.ɵfac = function NgbProgressbarModule_Factory(t) {\n return new (t || NgbProgressbarModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbProgressbarModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbProgressbarModule, [{\n type: NgModule,\n args: [{\n imports: [NgbProgressbar, NgbProgressbarStacked],\n exports: [NgbProgressbar, NgbProgressbarStacked]\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbRating`](#/components/rating/api#NgbRating) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the ratings used in the application.\n */\nclass NgbRatingConfig {\n constructor() {\n this.max = 10;\n this.readonly = false;\n this.resettable = false;\n this.tabindex = 0;\n }\n static #_ = this.ɵfac = function NgbRatingConfig_Factory(t) {\n return new (t || NgbRatingConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbRatingConfig,\n factory: NgbRatingConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbRatingConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A directive that helps visualising and interacting with a star rating bar.\n */\nclass NgbRating {\n constructor() {\n this.contexts = [];\n this._config = inject(NgbRatingConfig);\n this._changeDetectorRef = inject(ChangeDetectorRef);\n /**\n * If `true`, the rating can't be changed or focused.\n */\n this.disabled = false;\n /**\n * The maximal rating that can be given.\n */\n this.max = this._config.max;\n /**\n * If `true`, the rating can't be changed.\n */\n this.readonly = this._config.readonly;\n /**\n * If `true`, the rating can be reset to `0` by mouse clicking currently set rating.\n */\n this.resettable = this._config.resettable;\n /**\n * Allows setting a custom rating tabindex.\n * If the component is disabled, `tabindex` will still be set to `-1`.\n *\n * @since 13.1.0\n */\n this.tabindex = this._config.tabindex;\n /**\n * An event emitted when the user is hovering over a given rating.\n *\n * Event payload equals to the rating being hovered over.\n */\n this.hover = new EventEmitter();\n /**\n * An event emitted when the user stops hovering over a given rating.\n *\n * Event payload equals to the rating of the last item being hovered over.\n */\n this.leave = new EventEmitter();\n /**\n * An event emitted when the rating is changed.\n *\n * Event payload equals to the newly selected rating.\n */\n this.rateChange = new EventEmitter(true);\n this.onChange = _ => {};\n this.onTouched = () => {};\n }\n /**\n * Allows to provide a function to set a custom aria-valuetext\n *\n * @since 14.1.0\n */\n ariaValueText(current, max) {\n return `${current} out of ${max}`;\n }\n isInteractive() {\n return !this.readonly && !this.disabled;\n }\n enter(value) {\n if (this.isInteractive()) {\n this._updateState(value);\n }\n this.hover.emit(value);\n }\n handleBlur() {\n this.onTouched();\n }\n handleClick(value) {\n if (this.isInteractive()) {\n this.update(this.resettable && this.rate === value ? 0 : value);\n }\n }\n handleKeyDown(event) {\n /* eslint-disable-next-line deprecation/deprecation */\n switch (event.which) {\n case Key.ArrowDown:\n case Key.ArrowLeft:\n this.update(this.rate - 1);\n break;\n case Key.ArrowUp:\n case Key.ArrowRight:\n this.update(this.rate + 1);\n break;\n case Key.Home:\n this.update(0);\n break;\n case Key.End:\n this.update(this.max);\n break;\n default:\n return;\n }\n // note 'return' in default case\n event.preventDefault();\n }\n ngOnChanges(changes) {\n if (changes['rate']) {\n this.update(this.rate);\n }\n if (changes['max']) {\n this._updateMax();\n }\n }\n ngOnInit() {\n this._setupContexts();\n this._updateState(this.rate);\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n reset() {\n this.leave.emit(this.nextRate);\n this._updateState(this.rate);\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n update(value, internalChange = true) {\n const newRate = getValueInRange(value, this.max, 0);\n if (this.isInteractive() && this.rate !== newRate) {\n this.rate = newRate;\n this.rateChange.emit(this.rate);\n }\n if (internalChange) {\n this.onChange(this.rate);\n this.onTouched();\n }\n this._updateState(this.rate);\n }\n writeValue(value) {\n this.update(value, false);\n this._changeDetectorRef.markForCheck();\n }\n _updateState(nextValue) {\n this.nextRate = nextValue;\n this.contexts.forEach((context, index) => context.fill = Math.round(getValueInRange(nextValue - index, 1, 0) * 100));\n }\n _updateMax() {\n if (this.max > 0) {\n this._setupContexts();\n this.update(this.rate);\n }\n }\n _setupContexts() {\n this.contexts = Array.from({\n length: this.max\n }, (v, k) => ({\n fill: 0,\n index: k\n }));\n }\n static #_ = this.ɵfac = function NgbRating_Factory(t) {\n return new (t || NgbRating)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbRating,\n selectors: [[\"ngb-rating\"]],\n contentQueries: function NgbRating_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.starTemplateFromContent = _t.first);\n }\n },\n hostAttrs: [\"role\", \"slider\", \"aria-valuemin\", \"0\", 1, \"d-inline-flex\"],\n hostVars: 6,\n hostBindings: function NgbRating_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"blur\", function NgbRating_blur_HostBindingHandler() {\n return ctx.handleBlur();\n })(\"keydown\", function NgbRating_keydown_HostBindingHandler($event) {\n return ctx.handleKeyDown($event);\n })(\"mouseleave\", function NgbRating_mouseleave_HostBindingHandler() {\n return ctx.reset();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"tabindex\", ctx.disabled ? -1 : ctx.tabindex);\n i0.ɵɵattribute(\"aria-valuemax\", ctx.max)(\"aria-valuenow\", ctx.nextRate)(\"aria-valuetext\", ctx.ariaValueText(ctx.nextRate, ctx.max))(\"aria-readonly\", ctx.readonly && !ctx.disabled ? true : null)(\"aria-disabled\", ctx.disabled ? true : null);\n }\n },\n inputs: {\n disabled: \"disabled\",\n max: \"max\",\n rate: \"rate\",\n readonly: \"readonly\",\n resettable: \"resettable\",\n starTemplate: \"starTemplate\",\n tabindex: \"tabindex\",\n ariaValueText: \"ariaValueText\"\n },\n outputs: {\n hover: \"hover\",\n leave: \"leave\",\n rateChange: \"rateChange\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbRating),\n multi: true\n }]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 4,\n vars: 0,\n consts: [[\"t\", \"\"], [1, \"visually-hidden\"], [3, \"mouseenter\", \"click\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgbRating_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbRating_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵrepeaterCreate(2, NgbRating_For_3_Template, 4, 5, null, null, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx.contexts);\n }\n },\n dependencies: [NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbRating, [{\n type: Component,\n args: [{\n selector: 'ngb-rating',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'd-inline-flex',\n '[tabindex]': 'disabled ? -1 : tabindex',\n role: 'slider',\n 'aria-valuemin': '0',\n '[attr.aria-valuemax]': 'max',\n '[attr.aria-valuenow]': 'nextRate',\n '[attr.aria-valuetext]': 'ariaValueText(nextRate, max)',\n '[attr.aria-readonly]': 'readonly && !disabled ? true : null',\n '[attr.aria-disabled]': 'disabled ? true : null',\n '(blur)': 'handleBlur()',\n '(keydown)': 'handleKeyDown($event)',\n '(mouseleave)': 'reset()'\n },\n template: `\n\t\t<ng-template #t let-fill=\"fill\">{{ fill === 100 ? '★' : '☆' }}</ng-template>\n\t\t@for (_ of contexts; track _; let index = $index) {\n\t\t\t<span class=\"visually-hidden\">({{ index < nextRate ? '*' : ' ' }})</span>\n\t\t\t<span\n\t\t\t\t(mouseenter)=\"enter(index + 1)\"\n\t\t\t\t(click)=\"handleClick(index + 1)\"\n\t\t\t\t[style.cursor]=\"isInteractive() ? 'pointer' : 'default'\"\n\t\t\t>\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"starTemplate || starTemplateFromContent || t\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"contexts[index]\"\n\t\t\t\t/>\n\t\t\t</span>\n\t\t}\n\t`,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbRating),\n multi: true\n }]\n }]\n }], null, {\n disabled: [{\n type: Input\n }],\n max: [{\n type: Input\n }],\n rate: [{\n type: Input\n }],\n readonly: [{\n type: Input\n }],\n resettable: [{\n type: Input\n }],\n starTemplate: [{\n type: Input\n }],\n starTemplateFromContent: [{\n type: ContentChild,\n args: [TemplateRef, {\n static: false\n }]\n }],\n tabindex: [{\n type: Input\n }],\n ariaValueText: [{\n type: Input\n }],\n hover: [{\n type: Output\n }],\n leave: [{\n type: Output\n }],\n rateChange: [{\n type: Output\n }]\n });\n})();\nclass NgbRatingModule {\n static #_ = this.ɵfac = function NgbRatingModule_Factory(t) {\n return new (t || NgbRatingModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbRatingModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbRatingModule, [{\n type: NgModule,\n args: [{\n imports: [NgbRating],\n exports: [NgbRating]\n }]\n }], null, null);\n})();\nfunction toFragmentElement(container, id) {\n if (!container || id == null) {\n return null;\n }\n return isString(id) ? container.querySelector(`#${CSS.escape(id)}`) : id;\n}\nfunction getOrderedFragments(container, fragments) {\n const selector = [...fragments].map(({\n id\n }) => `#${CSS.escape(id)}`).join(',');\n return Array.from(container.querySelectorAll(selector));\n}\nconst defaultProcessChanges = (state, changeActive, ctx) => {\n const {\n rootElement,\n fragments,\n scrollSpy,\n options,\n entries\n } = state;\n const orderedFragments = getOrderedFragments(rootElement, fragments);\n if (!ctx.initialized) {\n ctx.initialized = true;\n ctx.gapFragment = null;\n ctx.visibleFragments = new Set();\n // special case when one of the fragments was pre-selected\n const preSelectedFragment = toFragmentElement(rootElement, options?.initialFragment);\n if (preSelectedFragment) {\n scrollSpy.scrollTo(preSelectedFragment);\n return;\n }\n }\n for (const entry of entries) {\n const {\n isIntersecting,\n target: fragment\n } = entry;\n // 1. an entry became visible\n if (isIntersecting) {\n // if we were in-between two elements, we have to clear it up\n if (ctx.gapFragment) {\n ctx.visibleFragments.delete(ctx.gapFragment);\n ctx.gapFragment = null;\n }\n ctx.visibleFragments.add(fragment);\n }\n // 2. an entry became invisible\n else {\n ctx.visibleFragments.delete(fragment);\n // nothing is visible anymore, but something just was actually\n if (ctx.visibleFragments.size === 0 && scrollSpy.active !== '') {\n // 2.1 scrolling down - keeping the same element\n if (entry.boundingClientRect.top < entry.rootBounds.top) {\n ctx.gapFragment = fragment;\n ctx.visibleFragments.add(ctx.gapFragment);\n }\n // 2.2 scrolling up - getting the previous element\n else {\n // scrolling up and no more fragments above\n if (fragment === orderedFragments[0]) {\n ctx.gapFragment = null;\n ctx.visibleFragments.clear();\n changeActive('');\n return;\n }\n // getting previous fragment\n else {\n const fragmentIndex = orderedFragments.indexOf(fragment);\n ctx.gapFragment = orderedFragments[fragmentIndex - 1] || null;\n if (ctx.gapFragment) {\n ctx.visibleFragments.add(ctx.gapFragment);\n }\n }\n }\n }\n }\n }\n // getting the first visible element in the DOM order of the fragments\n for (const fragment of orderedFragments) {\n if (ctx.visibleFragments.has(fragment)) {\n changeActive(fragment.id);\n break;\n }\n }\n};\n\n/**\n * A configuration service for the [`NgbScrollSpyService`](#/components/scrollspy/api#NgbScrollSpyService).\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all scrollspies used in the application.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyConfig {\n constructor() {\n this.scrollBehavior = 'smooth';\n this.processChanges = defaultProcessChanges;\n }\n static #_ = this.ɵfac = function NgbScrollSpyConfig_Factory(t) {\n return new (t || NgbScrollSpyConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbScrollSpyConfig,\n factory: NgbScrollSpyConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpyConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nconst MATCH_THRESHOLD = 3;\n/**\n * A scrollspy service that allows tracking of elements scrolling in and out of view.\n *\n * It can be instantiated manually, or automatically by the `ngbScrollSpy` directive.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyService {\n constructor() {\n this._observer = null;\n this._containerElement = null;\n this._fragments = new Set();\n this._preRegisteredFragments = new Set();\n this._active$ = new Subject();\n this._distinctActive$ = this._active$.pipe(distinctUntilChanged());\n this._active = '';\n this._config = inject(NgbScrollSpyConfig);\n this._document = inject(DOCUMENT);\n this._platformId = inject(PLATFORM_ID);\n this._scrollBehavior = this._config.scrollBehavior;\n this._diChangeDetectorRef = inject(ChangeDetectorRef, {\n optional: true\n });\n this._changeDetectorRef = this._diChangeDetectorRef;\n this._zone = inject(NgZone);\n this._distinctActive$.pipe(takeUntilDestroyed()).subscribe(active => {\n this._active = active;\n this._changeDetectorRef?.markForCheck();\n });\n }\n /**\n * Getter for the currently active fragment id. Returns empty string if none.\n */\n get active() {\n return this._active;\n }\n /**\n * An observable emitting the currently active fragment. Emits empty string if none.\n */\n get active$() {\n return this._distinctActive$;\n }\n /**\n * Starts the scrollspy service and observes specified fragments.\n *\n * You can specify a list of options to pass, like the root element, initial fragment, scroll behavior, etc.\n * See the [`NgbScrollSpyOptions`](#/components/scrollspy/api#NgbScrollSpyOptions) interface for more details.\n */\n start(options) {\n if (isPlatformBrowser(this._platformId)) {\n this._cleanup();\n const {\n root,\n rootMargin,\n scrollBehavior,\n threshold,\n fragments,\n changeDetectorRef,\n processChanges\n } = {\n ...options\n };\n this._containerElement = root ?? this._document.documentElement;\n this._changeDetectorRef = changeDetectorRef ?? this._diChangeDetectorRef;\n this._scrollBehavior = scrollBehavior ?? this._config.scrollBehavior;\n const processChangesFn = processChanges ?? this._config.processChanges;\n const context = {};\n this._observer = new IntersectionObserver(entries => processChangesFn({\n entries,\n rootElement: this._containerElement,\n fragments: this._fragments,\n scrollSpy: this,\n options: {\n ...options\n }\n }, active => this._active$.next(active), context), {\n root: root ?? this._document,\n ...(rootMargin && {\n rootMargin\n }),\n ...(threshold && {\n threshold\n })\n });\n // merging fragments added before starting and the ones passed as options\n for (const element of [...this._preRegisteredFragments, ...(fragments ?? [])]) {\n this.observe(element);\n }\n this._preRegisteredFragments.clear();\n }\n }\n /**\n * Stops the service and unobserves all fragments.\n */\n stop() {\n this._cleanup();\n this._active$.next('');\n }\n /**\n * Scrolls to a fragment, it must be known to the service and contained in the root element.\n * An id or an element reference can be passed.\n *\n * [`NgbScrollToOptions`](#/components/scrollspy/api#NgbScrollToOptions) can be passed.\n */\n scrollTo(fragment, options) {\n const {\n behavior\n } = {\n behavior: this._scrollBehavior,\n ...options\n };\n if (this._containerElement) {\n const fragmentElement = toFragmentElement(this._containerElement, fragment);\n if (fragmentElement) {\n const heightPx = fragmentElement.offsetTop - this._containerElement.offsetTop;\n this._containerElement.scrollTo({\n top: heightPx,\n behavior\n });\n let lastOffset = this._containerElement.scrollTop;\n let matchCounter = 0;\n // we should update the active section only after scrolling is finished\n // and there is no clean way to do it at the moment\n const containerElement = this._containerElement;\n this._zone.runOutsideAngular(() => {\n const updateActiveWhenScrollingIsFinished = () => {\n const sameOffsetAsLastTime = lastOffset === containerElement.scrollTop;\n if (sameOffsetAsLastTime) {\n matchCounter++;\n } else {\n matchCounter = 0;\n }\n if (!sameOffsetAsLastTime || sameOffsetAsLastTime && matchCounter < MATCH_THRESHOLD) {\n lastOffset = containerElement.scrollTop;\n requestAnimationFrame(updateActiveWhenScrollingIsFinished);\n } else {\n this._zone.run(() => this._active$.next(fragmentElement.id));\n }\n };\n requestAnimationFrame(updateActiveWhenScrollingIsFinished);\n });\n }\n }\n }\n /**\n * Adds a fragment to observe. It must be contained in the root element.\n * An id or an element reference can be passed.\n */\n observe(fragment) {\n if (!this._observer) {\n this._preRegisteredFragments.add(fragment);\n return;\n }\n const fragmentElement = toFragmentElement(this._containerElement, fragment);\n if (fragmentElement && !this._fragments.has(fragmentElement)) {\n this._fragments.add(fragmentElement);\n this._observer.observe(fragmentElement);\n }\n }\n /**\n * Unobserves a fragment.\n * An id or an element reference can be passed.\n */\n unobserve(fragment) {\n if (!this._observer) {\n this._preRegisteredFragments.delete(fragment);\n return;\n }\n const fragmentElement = toFragmentElement(this._containerElement, fragment);\n if (fragmentElement) {\n this._fragments.delete(fragmentElement);\n // we're removing and re-adding all current fragments to recompute active one\n this._observer.disconnect();\n for (const fragment of this._fragments) {\n this._observer.observe(fragment);\n }\n }\n }\n ngOnDestroy() {\n this._cleanup();\n }\n _cleanup() {\n this._fragments.clear();\n this._observer?.disconnect();\n this._changeDetectorRef = this._diChangeDetectorRef;\n this._scrollBehavior = this._config.scrollBehavior;\n this._observer = null;\n this._containerElement = null;\n }\n static #_ = this.ɵfac = function NgbScrollSpyService_Factory(t) {\n return new (t || NgbScrollSpyService)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbScrollSpyService,\n factory: NgbScrollSpyService.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpyService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [], null);\n})();\n\n/**\n * A helper directive to that links menu items and fragments together.\n *\n * It will automatically add the `.active` class to the menu item when the associated fragment becomes active.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyItem {\n constructor() {\n this._changeDetector = inject(ChangeDetectorRef);\n this._scrollSpyMenu = inject(NgbScrollSpyMenu, {\n optional: true\n });\n this._scrollSpyAPI = this._scrollSpyMenu ?? inject(NgbScrollSpyService);\n this._destroyRef = inject(DestroyRef);\n this._isActive = false;\n }\n /**\n * References the scroll spy directive, the id of the associated fragment and the parent menu item.\n *\n * Can be used like:\n * - `ngbScrollSpyItem=\"fragmentId\"`\n * - `[ngbScrollSpyItem]=\"scrollSpy\" fragment=\"fragmentId\"\n * - `[ngbScrollSpyItem]=\"[scrollSpy, 'fragmentId']\"` parent=\"parentId\"`\n * - `[ngbScrollSpyItem]=\"[scrollSpy, 'fragmentId', 'parentId']\"`\n *\n * As well as together with `[fragment]` and `[parent]` inputs.\n */\n set data(data) {\n if (Array.isArray(data)) {\n this._scrollSpyAPI = data[0];\n this.fragment = data[1];\n this.parent ??= data[2];\n } else if (data instanceof NgbScrollSpy) {\n this._scrollSpyAPI = data;\n } else if (isString(data)) {\n this.fragment = data;\n }\n }\n ngOnInit() {\n // if it is not a part of a bigger menu, it should handle activation itself\n if (!this._scrollSpyMenu) {\n this._scrollSpyAPI.active$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(active => {\n if (active === this.fragment) {\n this._activate();\n } else {\n this._deactivate();\n }\n this._changeDetector.markForCheck();\n });\n }\n }\n /**\n * @internal\n */\n _activate() {\n this._isActive = true;\n if (this._scrollSpyMenu) {\n this._scrollSpyMenu.getItem(this.parent ?? '')?._activate();\n }\n }\n /**\n * @internal\n */\n _deactivate() {\n this._isActive = false;\n if (this._scrollSpyMenu) {\n this._scrollSpyMenu.getItem(this.parent ?? '')?._deactivate();\n }\n }\n /**\n * Returns `true`, if the associated fragment is active.\n */\n isActive() {\n return this._isActive;\n }\n /**\n * Scrolls to the associated fragment.\n */\n scrollTo(options) {\n this._scrollSpyAPI.scrollTo(this.fragment, options);\n }\n static #_ = this.ɵfac = function NgbScrollSpyItem_Factory(t) {\n return new (t || NgbScrollSpyItem)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbScrollSpyItem,\n selectors: [[\"\", \"ngbScrollSpyItem\", \"\"]],\n hostVars: 2,\n hostBindings: function NgbScrollSpyItem_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function NgbScrollSpyItem_click_HostBindingHandler() {\n return ctx.scrollTo();\n });\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"active\", ctx.isActive());\n }\n },\n inputs: {\n data: [i0.ɵɵInputFlags.None, \"ngbScrollSpyItem\", \"data\"],\n fragment: \"fragment\",\n parent: \"parent\"\n },\n exportAs: [\"ngbScrollSpyItem\"],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpyItem, [{\n type: Directive,\n args: [{\n selector: '[ngbScrollSpyItem]',\n standalone: true,\n exportAs: 'ngbScrollSpyItem',\n host: {\n '[class.active]': 'isActive()',\n '(click)': 'scrollTo();'\n }\n }]\n }], null, {\n data: [{\n type: Input,\n args: ['ngbScrollSpyItem']\n }],\n fragment: [{\n type: Input\n }],\n parent: [{\n type: Input\n }]\n });\n})();\n/**\n * An optional scroll spy menu directive to build hierarchical menus\n * and simplify the [`NgbScrollSpyItem`](#/components/scrollspy/api#NgbScrollSpyItem) configuration.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyMenu {\n constructor() {\n this._scrollSpyRef = inject(NgbScrollSpyService);\n this._destroyRef = inject(DestroyRef);\n this._map = new Map();\n this._lastActiveItem = null;\n }\n set scrollSpy(scrollSpy) {\n this._scrollSpyRef = scrollSpy;\n }\n get active() {\n return this._scrollSpyRef.active;\n }\n get active$() {\n return this._scrollSpyRef.active$;\n }\n scrollTo(fragment, options) {\n this._scrollSpyRef.scrollTo(fragment, options);\n }\n getItem(id) {\n return this._map.get(id);\n }\n ngAfterViewInit() {\n this._items.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this._rebuildMap());\n this._rebuildMap();\n this._scrollSpyRef.active$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(activeId => {\n this._lastActiveItem?._deactivate();\n const item = this._map.get(activeId);\n if (item) {\n item._activate();\n this._lastActiveItem = item;\n }\n });\n }\n _rebuildMap() {\n this._map.clear();\n for (let item of this._items) {\n this._map.set(item.fragment, item);\n }\n }\n static #_ = this.ɵfac = function NgbScrollSpyMenu_Factory(t) {\n return new (t || NgbScrollSpyMenu)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbScrollSpyMenu,\n selectors: [[\"\", \"ngbScrollSpyMenu\", \"\"]],\n contentQueries: function NgbScrollSpyMenu_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbScrollSpyItem, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._items = _t);\n }\n },\n inputs: {\n scrollSpy: [i0.ɵɵInputFlags.None, \"ngbScrollSpyMenu\", \"scrollSpy\"]\n },\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpyMenu, [{\n type: Directive,\n args: [{\n selector: '[ngbScrollSpyMenu]',\n standalone: true\n }]\n }], null, {\n _items: [{\n type: ContentChildren,\n args: [NgbScrollSpyItem, {\n descendants: true\n }]\n }],\n scrollSpy: [{\n type: Input,\n args: ['ngbScrollSpyMenu']\n }]\n });\n})();\n/**\n * A directive to put on a scrollable container.\n *\n * It will instantiate a [`NgbScrollSpyService`](#/components/scrollspy/api#NgbScrollSpyService).\n *\n * @since 15.1.0\n */\nclass NgbScrollSpy {\n constructor() {\n this._initialFragment = null;\n this._service = inject(NgbScrollSpyService);\n this._nativeElement = inject(ElementRef).nativeElement;\n /**\n * An event raised when the active section changes.\n *\n * Payload is the id of the new active section, empty string if none.\n */\n this.activeChange = this._service.active$;\n }\n set active(fragment) {\n this._initialFragment = fragment;\n this.scrollTo(fragment);\n }\n /**\n * Getter/setter for the currently active fragment id.\n */\n get active() {\n return this._service.active;\n }\n /**\n * Returns an observable that emits currently active section id.\n */\n get active$() {\n return this._service.active$;\n }\n ngAfterViewInit() {\n this._service.start({\n processChanges: this.processChanges,\n root: this._nativeElement,\n rootMargin: this.rootMargin,\n threshold: this.threshold,\n ...(this._initialFragment && {\n initialFragment: this._initialFragment\n })\n });\n }\n /**\n * @internal\n */\n _registerFragment(fragment) {\n this._service.observe(fragment.id);\n }\n /**\n * @internal\n */\n _unregisterFragment(fragment) {\n this._service.unobserve(fragment.id);\n }\n /**\n * Scrolls to a fragment that is identified by the `ngbScrollSpyFragment` directive.\n * An id or an element reference can be passed.\n */\n scrollTo(fragment, options) {\n this._service.scrollTo(fragment, {\n ...(this.scrollBehavior && {\n behavior: this.scrollBehavior\n }),\n ...options\n });\n }\n static #_ = this.ɵfac = function NgbScrollSpy_Factory(t) {\n return new (t || NgbScrollSpy)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbScrollSpy,\n selectors: [[\"\", \"ngbScrollSpy\", \"\"]],\n hostAttrs: [\"tabindex\", \"0\", 2, \"overflow-y\", \"auto\"],\n inputs: {\n processChanges: \"processChanges\",\n rootMargin: \"rootMargin\",\n scrollBehavior: \"scrollBehavior\",\n threshold: \"threshold\",\n active: \"active\"\n },\n outputs: {\n activeChange: \"activeChange\"\n },\n exportAs: [\"ngbScrollSpy\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([NgbScrollSpyService])]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpy, [{\n type: Directive,\n args: [{\n selector: '[ngbScrollSpy]',\n standalone: true,\n exportAs: 'ngbScrollSpy',\n host: {\n tabindex: '0',\n style: 'overflow-y: auto'\n },\n providers: [NgbScrollSpyService]\n }]\n }], null, {\n processChanges: [{\n type: Input\n }],\n rootMargin: [{\n type: Input\n }],\n scrollBehavior: [{\n type: Input\n }],\n threshold: [{\n type: Input\n }],\n active: [{\n type: Input\n }],\n activeChange: [{\n type: Output\n }]\n });\n})();\n/**\n * A directive to put on a fragment observed inside a scrollspy container.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyFragment {\n constructor() {\n this._destroyRef = inject(DestroyRef);\n this._scrollSpy = inject(NgbScrollSpy);\n }\n ngAfterViewInit() {\n this._scrollSpy._registerFragment(this);\n this._destroyRef.onDestroy(() => this._scrollSpy._unregisterFragment(this));\n }\n static #_ = this.ɵfac = function NgbScrollSpyFragment_Factory(t) {\n return new (t || NgbScrollSpyFragment)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbScrollSpyFragment,\n selectors: [[\"\", \"ngbScrollSpyFragment\", \"\"]],\n hostVars: 1,\n hostBindings: function NgbScrollSpyFragment_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n }\n },\n inputs: {\n id: [i0.ɵɵInputFlags.None, \"ngbScrollSpyFragment\", \"id\"]\n },\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpyFragment, [{\n type: Directive,\n args: [{\n selector: '[ngbScrollSpyFragment]',\n standalone: true,\n host: {\n '[id]': 'id'\n }\n }]\n }], null, {\n id: [{\n type: Input,\n args: ['ngbScrollSpyFragment']\n }]\n });\n})();\nclass NgbScrollSpyModule {\n static #_ = this.ɵfac = function NgbScrollSpyModule_Factory(t) {\n return new (t || NgbScrollSpyModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbScrollSpyModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpyModule, [{\n type: NgModule,\n args: [{\n imports: [NgbScrollSpy, NgbScrollSpyItem, NgbScrollSpyFragment, NgbScrollSpyMenu],\n exports: [NgbScrollSpy, NgbScrollSpyItem, NgbScrollSpyFragment, NgbScrollSpyMenu]\n }]\n }], null, null);\n})();\nclass NgbTime {\n constructor(hour, minute, second) {\n this.hour = toInteger(hour);\n this.minute = toInteger(minute);\n this.second = toInteger(second);\n }\n changeHour(step = 1) {\n this.updateHour((isNaN(this.hour) ? 0 : this.hour) + step);\n }\n updateHour(hour) {\n if (isNumber(hour)) {\n this.hour = (hour < 0 ? 24 + hour : hour) % 24;\n } else {\n this.hour = NaN;\n }\n }\n changeMinute(step = 1) {\n this.updateMinute((isNaN(this.minute) ? 0 : this.minute) + step);\n }\n updateMinute(minute) {\n if (isNumber(minute)) {\n this.minute = minute % 60 < 0 ? 60 + minute % 60 : minute % 60;\n this.changeHour(Math.floor(minute / 60));\n } else {\n this.minute = NaN;\n }\n }\n changeSecond(step = 1) {\n this.updateSecond((isNaN(this.second) ? 0 : this.second) + step);\n }\n updateSecond(second) {\n if (isNumber(second)) {\n this.second = second < 0 ? 60 + second % 60 : second % 60;\n this.changeMinute(Math.floor(second / 60));\n } else {\n this.second = NaN;\n }\n }\n isValid(checkSecs = true) {\n return isNumber(this.hour) && isNumber(this.minute) && (checkSecs ? isNumber(this.second) : true);\n }\n toString() {\n return `${this.hour || 0}:${this.minute || 0}:${this.second || 0}`;\n }\n}\n\n/**\n * A configuration service for the [`NgbTimepicker`](#/components/timepicker/api#NgbTimepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the timepickers used in the application.\n */\nclass NgbTimepickerConfig {\n constructor() {\n this.meridian = false;\n this.spinners = true;\n this.seconds = false;\n this.hourStep = 1;\n this.minuteStep = 1;\n this.secondStep = 1;\n this.disabled = false;\n this.readonlyInputs = false;\n this.size = 'medium';\n }\n static #_ = this.ɵfac = function NgbTimepickerConfig_Factory(t) {\n return new (t || NgbTimepickerConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTimepickerConfig,\n factory: NgbTimepickerConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimepickerConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nfunction NGB_DATEPICKER_TIME_ADAPTER_FACTORY() {\n return new NgbTimeStructAdapter();\n}\n/**\n * An abstract service that does the conversion between the internal timepicker `NgbTimeStruct` model and\n * any provided user time model `T`, ex. a string, a native date, etc.\n *\n * The adapter is used **only** for conversion when binding timepicker to a form control,\n * ex. `[(ngModel)]=\"userTimeModel\"`. Here `userTimeModel` can be of any type.\n *\n * The default timepicker implementation assumes we use `NgbTimeStruct` as a user model.\n *\n * See the [custom time adapter demo](#/components/timepicker/examples#adapter) for an example.\n *\n * @since 2.2.0\n */\nclass NgbTimeAdapter {\n static #_ = this.ɵfac = function NgbTimeAdapter_Factory(t) {\n return new (t || NgbTimeAdapter)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTimeAdapter,\n factory: () => NGB_DATEPICKER_TIME_ADAPTER_FACTORY(),\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimeAdapter, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY\n }]\n }], null, null);\n})();\nclass NgbTimeStructAdapter extends NgbTimeAdapter {\n /**\n * Converts a NgbTimeStruct value into NgbTimeStruct value\n */\n fromModel(time) {\n return time && isInteger(time.hour) && isInteger(time.minute) ? {\n hour: time.hour,\n minute: time.minute,\n second: isInteger(time.second) ? time.second : null\n } : null;\n }\n /**\n * Converts a NgbTimeStruct value into NgbTimeStruct value\n */\n toModel(time) {\n return time && isInteger(time.hour) && isInteger(time.minute) ? {\n hour: time.hour,\n minute: time.minute,\n second: isInteger(time.second) ? time.second : null\n } : null;\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbTimeStructAdapter_BaseFactory;\n return function NgbTimeStructAdapter_Factory(t) {\n return (ɵNgbTimeStructAdapter_BaseFactory || (ɵNgbTimeStructAdapter_BaseFactory = i0.ɵɵgetInheritedFactory(NgbTimeStructAdapter)))(t || NgbTimeStructAdapter);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTimeStructAdapter,\n factory: NgbTimeStructAdapter.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimeStructAdapter, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * Type of the service supplying day periods (for example, 'AM' and 'PM') to NgbTimepicker component.\n * The default implementation of this service honors the Angular locale, and uses the registered locale data,\n * as explained in the Angular i18n guide.\n */\nclass NgbTimepickerI18n {\n static #_ = this.ɵfac = function NgbTimepickerI18n_Factory(t) {\n return new (t || NgbTimepickerI18n)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTimepickerI18n,\n factory: () => (() => new NgbTimepickerI18nDefault())(),\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimepickerI18n, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: () => new NgbTimepickerI18nDefault()\n }]\n }], null, null);\n})();\nclass NgbTimepickerI18nDefault extends NgbTimepickerI18n {\n constructor() {\n super(...arguments);\n this._periods = getLocaleDayPeriods(inject(LOCALE_ID), FormStyle.Standalone, TranslationWidth.Narrow);\n }\n getMorningPeriod() {\n return this._periods[0];\n }\n getAfternoonPeriod() {\n return this._periods[1];\n }\n static #_ = this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbTimepickerI18nDefault_BaseFactory;\n return function NgbTimepickerI18nDefault_Factory(t) {\n return (ɵNgbTimepickerI18nDefault_BaseFactory || (ɵNgbTimepickerI18nDefault_BaseFactory = i0.ɵɵgetInheritedFactory(NgbTimepickerI18nDefault)))(t || NgbTimepickerI18nDefault);\n };\n })();\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTimepickerI18nDefault,\n factory: NgbTimepickerI18nDefault.ɵfac\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimepickerI18nDefault, [{\n type: Injectable\n }], null, null);\n})();\nconst FILTER_REGEX = /[^0-9]/g;\n/**\n * A directive that helps with wth picking hours, minutes and seconds.\n */\nclass NgbTimepicker {\n /**\n * The number of hours to add/subtract when clicking hour spinners.\n */\n set hourStep(step) {\n this._hourStep = isInteger(step) ? step : this._config.hourStep;\n }\n get hourStep() {\n return this._hourStep;\n }\n /**\n * The number of minutes to add/subtract when clicking minute spinners.\n */\n set minuteStep(step) {\n this._minuteStep = isInteger(step) ? step : this._config.minuteStep;\n }\n get minuteStep() {\n return this._minuteStep;\n }\n /**\n * The number of seconds to add/subtract when clicking second spinners.\n */\n set secondStep(step) {\n this._secondStep = isInteger(step) ? step : this._config.secondStep;\n }\n get secondStep() {\n return this._secondStep;\n }\n constructor(_config, _ngbTimeAdapter, _cd, i18n) {\n this._config = _config;\n this._ngbTimeAdapter = _ngbTimeAdapter;\n this._cd = _cd;\n this.i18n = i18n;\n this.onChange = _ => {};\n this.onTouched = () => {};\n this.meridian = _config.meridian;\n this.spinners = _config.spinners;\n this.seconds = _config.seconds;\n this.hourStep = _config.hourStep;\n this.minuteStep = _config.minuteStep;\n this.secondStep = _config.secondStep;\n this.disabled = _config.disabled;\n this.readonlyInputs = _config.readonlyInputs;\n this.size = _config.size;\n }\n writeValue(value) {\n const structValue = this._ngbTimeAdapter.fromModel(value);\n this.model = structValue ? new NgbTime(structValue.hour, structValue.minute, structValue.second) : new NgbTime();\n if (!this.seconds && (!structValue || !isNumber(structValue.second))) {\n this.model.second = 0;\n }\n this._cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * Increments the hours by the given step.\n */\n changeHour(step) {\n this.model?.changeHour(step);\n this.propagateModelChange();\n }\n /**\n * Increments the minutes by the given step.\n */\n changeMinute(step) {\n this.model?.changeMinute(step);\n this.propagateModelChange();\n }\n /**\n * Increments the seconds by the given step.\n */\n changeSecond(step) {\n this.model?.changeSecond(step);\n this.propagateModelChange();\n }\n /**\n * Update hours with the new value.\n */\n updateHour(newVal) {\n const isPM = this.model ? this.model.hour >= 12 : false;\n const enteredHour = toInteger(newVal);\n if (this.meridian && (isPM && enteredHour < 12 || !isPM && enteredHour === 12)) {\n this.model?.updateHour(enteredHour + 12);\n } else {\n this.model?.updateHour(enteredHour);\n }\n this.propagateModelChange();\n }\n /**\n * Update minutes with the new value.\n */\n updateMinute(newVal) {\n this.model?.updateMinute(toInteger(newVal));\n this.propagateModelChange();\n }\n /**\n * Update seconds with the new value.\n */\n updateSecond(newVal) {\n this.model?.updateSecond(toInteger(newVal));\n this.propagateModelChange();\n }\n toggleMeridian() {\n if (this.meridian) {\n this.changeHour(12);\n }\n }\n formatInput(input) {\n input.value = input.value.replace(FILTER_REGEX, '');\n }\n formatHour(value) {\n if (isNumber(value)) {\n if (this.meridian) {\n return padNumber(value % 12 === 0 ? 12 : value % 12);\n } else {\n return padNumber(value % 24);\n }\n } else {\n return padNumber(NaN);\n }\n }\n formatMinSec(value) {\n return padNumber(isNumber(value) ? value : NaN);\n }\n handleBlur() {\n this.onTouched();\n }\n get isSmallSize() {\n return this.size === 'small';\n }\n get isLargeSize() {\n return this.size === 'large';\n }\n ngOnChanges(changes) {\n if (changes['seconds'] && !this.seconds && this.model && !isNumber(this.model.second)) {\n this.model.second = 0;\n this.propagateModelChange(false);\n }\n }\n propagateModelChange(touched = true) {\n if (touched) {\n this.onTouched();\n }\n if (this.model?.isValid(this.seconds)) {\n this.onChange(this._ngbTimeAdapter.toModel({\n hour: this.model.hour,\n minute: this.model.minute,\n second: this.model.second\n }));\n } else {\n this.onChange(this._ngbTimeAdapter.toModel(null));\n }\n }\n static #_ = this.ɵfac = function NgbTimepicker_Factory(t) {\n return new (t || NgbTimepicker)(i0.ɵɵdirectiveInject(NgbTimepickerConfig), i0.ɵɵdirectiveInject(NgbTimeAdapter), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(NgbTimepickerI18n));\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbTimepicker,\n selectors: [[\"ngb-timepicker\"]],\n inputs: {\n meridian: \"meridian\",\n spinners: \"spinners\",\n seconds: \"seconds\",\n hourStep: \"hourStep\",\n minuteStep: \"minuteStep\",\n secondStep: \"secondStep\",\n readonlyInputs: \"readonlyInputs\",\n size: \"size\"\n },\n exportAs: [\"ngbTimepicker\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbTimepicker),\n multi: true\n }]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 14,\n vars: 23,\n consts: () => {\n let i18n_21;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_21 = goog.getMsg(\"HH\");\n i18n_21 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_21;\n } else {\n i18n_21 = $localize`:@@ngb.timepicker.HH:HH`;\n }\n let i18n_22;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_22 = goog.getMsg(\"Hours\");\n i18n_22 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_22;\n } else {\n i18n_22 = $localize`:@@ngb.timepicker.hours:Hours`;\n }\n let i18n_23;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_23 = goog.getMsg(\"MM\");\n i18n_23 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_23;\n } else {\n i18n_23 = $localize`:@@ngb.timepicker.MM:MM`;\n }\n let i18n_24;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_24 = goog.getMsg(\"Minutes\");\n i18n_24 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_24;\n } else {\n i18n_24 = $localize`:@@ngb.timepicker.minutes:Minutes`;\n }\n let i18n_25;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_25 = goog.getMsg(\"Increment hours\");\n i18n_25 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_25;\n } else {\n i18n_25 = $localize`:@@ngb.timepicker.increment-hours:Increment hours`;\n }\n let i18n_26;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_26 = goog.getMsg(\"Decrement hours\");\n i18n_26 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_26;\n } else {\n i18n_26 = $localize`:@@ngb.timepicker.decrement-hours:Decrement hours`;\n }\n let i18n_27;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_27 = goog.getMsg(\"Increment minutes\");\n i18n_27 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_27;\n } else {\n i18n_27 = $localize`:@@ngb.timepicker.increment-minutes:Increment minutes`;\n }\n let i18n_28;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_28 = goog.getMsg(\"Decrement minutes\");\n i18n_28 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_28;\n } else {\n i18n_28 = $localize`:@@ngb.timepicker.decrement-minutes:Decrement minutes`;\n }\n let i18n_29;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_29 = goog.getMsg(\"SS\");\n i18n_29 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_29;\n } else {\n i18n_29 = $localize`:@@ngb.timepicker.SS:SS`;\n }\n let i18n_30;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_30 = goog.getMsg(\"Seconds\");\n i18n_30 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_30;\n } else {\n i18n_30 = $localize`:@@ngb.timepicker.seconds:Seconds`;\n }\n let i18n_31;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_31 = goog.getMsg(\"Increment seconds\");\n i18n_31 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_31;\n } else {\n i18n_31 = $localize`:@@ngb.timepicker.increment-seconds:Increment seconds`;\n }\n let i18n_32;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_32 = goog.getMsg(\"Decrement seconds\");\n i18n_32 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_32;\n } else {\n i18n_32 = $localize`:@@ngb.timepicker.decrement-seconds:Decrement seconds`;\n }\n let i18n_33;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_33 = goog.getMsg(\"{$interpolation}\", {\n \"interpolation\": \"\\uFFFD0\\uFFFD\"\n }, {\n original_code: {\n \"interpolation\": \"{{ i18n.getAfternoonPeriod() }}\"\n }\n });\n i18n_33 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_33;\n } else {\n i18n_33 = $localize`:@@ngb.timepicker.PM:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n }\n return [i18n_25, i18n_26, i18n_27, i18n_28, i18n_31, i18n_32, i18n_33, [3, \"disabled\"], [1, \"ngb-tp\"], [1, \"ngb-tp-input-container\", \"ngb-tp-hour\"], [\"tabindex\", \"-1\", \"type\", \"button\", 1, \"btn\", \"btn-link\"], [\"type\", \"text\", \"maxlength\", \"2\", \"inputmode\", \"numeric\", \"placeholder\", i18n_21, \"aria-label\", i18n_22, 1, \"ngb-tp-input\", \"form-control\", 3, \"change\", \"blur\", \"input\", \"keydown.ArrowUp\", \"keydown.ArrowDown\", \"value\", \"readOnly\", \"disabled\"], [1, \"ngb-tp-spacer\"], [1, \"ngb-tp-input-container\", \"ngb-tp-minute\"], [\"type\", \"text\", \"maxlength\", \"2\", \"inputmode\", \"numeric\", \"placeholder\", i18n_23, \"aria-label\", i18n_24, 1, \"ngb-tp-input\", \"form-control\", 3, \"change\", \"blur\", \"input\", \"keydown.ArrowUp\", \"keydown.ArrowDown\", \"value\", \"readOnly\", \"disabled\"], [\"tabindex\", \"-1\", \"type\", \"button\", 1, \"btn\", \"btn-link\", 3, \"click\", \"disabled\"], [1, \"chevron\", \"ngb-tp-chevron\"], [1, \"visually-hidden\"], [1, \"chevron\", \"ngb-tp-chevron\", \"bottom\"], [1, \"ngb-tp-input-container\", \"ngb-tp-second\"], [\"type\", \"text\", \"maxlength\", \"2\", \"inputmode\", \"numeric\", \"placeholder\", i18n_29, \"aria-label\", i18n_30, 1, \"ngb-tp-input\", \"form-control\", 3, \"change\", \"blur\", \"input\", \"keydown.ArrowUp\", \"keydown.ArrowDown\", \"value\", \"readOnly\", \"disabled\"], [1, \"ngb-tp-meridian\"], [\"type\", \"button\", 1, \"btn\", \"btn-outline-primary\", 3, \"click\", \"disabled\"]];\n },\n template: function NgbTimepicker_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"fieldset\", 7)(1, \"div\", 8)(2, \"div\", 9);\n i0.ɵɵtemplate(3, NgbTimepicker_Conditional_3_Template, 4, 7, \"button\", 10);\n i0.ɵɵelementStart(4, \"input\", 11);\n i0.ɵɵlistener(\"change\", function NgbTimepicker_Template_input_change_4_listener($event) {\n return ctx.updateHour($event.target.value);\n })(\"blur\", function NgbTimepicker_Template_input_blur_4_listener() {\n return ctx.handleBlur();\n })(\"input\", function NgbTimepicker_Template_input_input_4_listener($event) {\n return ctx.formatInput($event.target);\n })(\"keydown.ArrowUp\", function NgbTimepicker_Template_input_keydown_ArrowUp_4_listener($event) {\n ctx.changeHour(ctx.hourStep);\n return $event.preventDefault();\n })(\"keydown.ArrowDown\", function NgbTimepicker_Template_input_keydown_ArrowDown_4_listener($event) {\n ctx.changeHour(-ctx.hourStep);\n return $event.preventDefault();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, NgbTimepicker_Conditional_5_Template, 4, 7, \"button\", 10);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"div\", 12);\n i0.ɵɵtext(7, \":\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"div\", 13);\n i0.ɵɵtemplate(9, NgbTimepicker_Conditional_9_Template, 4, 7, \"button\", 10);\n i0.ɵɵelementStart(10, \"input\", 14);\n i0.ɵɵlistener(\"change\", function NgbTimepicker_Template_input_change_10_listener($event) {\n return ctx.updateMinute($event.target.value);\n })(\"blur\", function NgbTimepicker_Template_input_blur_10_listener() {\n return ctx.handleBlur();\n })(\"input\", function NgbTimepicker_Template_input_input_10_listener($event) {\n return ctx.formatInput($event.target);\n })(\"keydown.ArrowUp\", function NgbTimepicker_Template_input_keydown_ArrowUp_10_listener($event) {\n ctx.changeMinute(ctx.minuteStep);\n return $event.preventDefault();\n })(\"keydown.ArrowDown\", function NgbTimepicker_Template_input_keydown_ArrowDown_10_listener($event) {\n ctx.changeMinute(-ctx.minuteStep);\n return $event.preventDefault();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(11, NgbTimepicker_Conditional_11_Template, 4, 7, \"button\", 10);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(12, NgbTimepicker_Conditional_12_Template, 6, 9)(13, NgbTimepicker_Conditional_13_Template, 5, 8);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"disabled\", ctx.disabled);\n i0.ɵɵproperty(\"disabled\", ctx.disabled);\n i0.ɵɵadvance(3);\n i0.ɵɵconditional(3, ctx.spinners ? 3 : -1);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"form-control-sm\", ctx.isSmallSize)(\"form-control-lg\", ctx.isLargeSize);\n i0.ɵɵproperty(\"value\", ctx.formatHour(ctx.model == null ? null : ctx.model.hour))(\"readOnly\", ctx.readonlyInputs)(\"disabled\", ctx.disabled);\n i0.ɵɵadvance();\n i0.ɵɵconditional(5, ctx.spinners ? 5 : -1);\n i0.ɵɵadvance(4);\n i0.ɵɵconditional(9, ctx.spinners ? 9 : -1);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"form-control-sm\", ctx.isSmallSize)(\"form-control-lg\", ctx.isLargeSize);\n i0.ɵɵproperty(\"value\", ctx.formatMinSec(ctx.model == null ? null : ctx.model.minute))(\"readOnly\", ctx.readonlyInputs)(\"disabled\", ctx.disabled);\n i0.ɵɵadvance();\n i0.ɵɵconditional(11, ctx.spinners ? 11 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(12, ctx.seconds ? 12 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(13, ctx.meridian ? 13 : -1);\n }\n },\n styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{display:flex;align-items:center}.ngb-tp-input-container{width:4em}.ngb-tp-chevron:before{border-style:solid;border-width:.29em .29em 0 0;content:\\\"\\\";display:inline-block;height:.69em;left:.05em;position:relative;top:.15em;transform:rotate(-45deg);vertical-align:middle;width:.69em}.ngb-tp-chevron.bottom:before{top:-.3em;transform:rotate(135deg)}.ngb-tp-input{text-align:center}.ngb-tp-hour,.ngb-tp-minute,.ngb-tp-second,.ngb-tp-meridian{display:flex;flex-direction:column;align-items:center;justify-content:space-around}.ngb-tp-spacer{width:1em;text-align:center}\\n\"],\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimepicker, [{\n type: Component,\n args: [{\n exportAs: 'ngbTimepicker',\n selector: 'ngb-timepicker',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n template: `\n\t\t<fieldset [disabled]=\"disabled\" [class.disabled]=\"disabled\">\n\t\t\t<div class=\"ngb-tp\">\n\t\t\t\t<div class=\"ngb-tp-input-container ngb-tp-hour\">\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeHour(hourStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.increment-hours\">Increment hours</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tclass=\"ngb-tp-input form-control\"\n\t\t\t\t\t\t[class.form-control-sm]=\"isSmallSize\"\n\t\t\t\t\t\t[class.form-control-lg]=\"isLargeSize\"\n\t\t\t\t\t\tmaxlength=\"2\"\n\t\t\t\t\t\tinputmode=\"numeric\"\n\t\t\t\t\t\tplaceholder=\"HH\"\n\t\t\t\t\t\ti18n-placeholder=\"@@ngb.timepicker.HH\"\n\t\t\t\t\t\t[value]=\"formatHour(model?.hour)\"\n\t\t\t\t\t\t(change)=\"updateHour($any($event).target.value)\"\n\t\t\t\t\t\t[readOnly]=\"readonlyInputs\"\n\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\taria-label=\"Hours\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.timepicker.hours\"\n\t\t\t\t\t\t(blur)=\"handleBlur()\"\n\t\t\t\t\t\t(input)=\"formatInput($any($event).target)\"\n\t\t\t\t\t\t(keydown.ArrowUp)=\"changeHour(hourStep); $event.preventDefault()\"\n\t\t\t\t\t\t(keydown.ArrowDown)=\"changeHour(-hourStep); $event.preventDefault()\"\n\t\t\t\t\t/>\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeHour(-hourStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron bottom\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.decrement-hours\">Decrement hours</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ngb-tp-spacer\">:</div>\n\t\t\t\t<div class=\"ngb-tp-input-container ngb-tp-minute\">\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeMinute(minuteStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.increment-minutes\">Increment minutes</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tclass=\"ngb-tp-input form-control\"\n\t\t\t\t\t\t[class.form-control-sm]=\"isSmallSize\"\n\t\t\t\t\t\t[class.form-control-lg]=\"isLargeSize\"\n\t\t\t\t\t\tmaxlength=\"2\"\n\t\t\t\t\t\tinputmode=\"numeric\"\n\t\t\t\t\t\tplaceholder=\"MM\"\n\t\t\t\t\t\ti18n-placeholder=\"@@ngb.timepicker.MM\"\n\t\t\t\t\t\t[value]=\"formatMinSec(model?.minute)\"\n\t\t\t\t\t\t(change)=\"updateMinute($any($event).target.value)\"\n\t\t\t\t\t\t[readOnly]=\"readonlyInputs\"\n\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\taria-label=\"Minutes\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.timepicker.minutes\"\n\t\t\t\t\t\t(blur)=\"handleBlur()\"\n\t\t\t\t\t\t(input)=\"formatInput($any($event).target)\"\n\t\t\t\t\t\t(keydown.ArrowUp)=\"changeMinute(minuteStep); $event.preventDefault()\"\n\t\t\t\t\t\t(keydown.ArrowDown)=\"changeMinute(-minuteStep); $event.preventDefault()\"\n\t\t\t\t\t/>\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeMinute(-minuteStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron bottom\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.decrement-minutes\">Decrement minutes</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t\t@if (seconds) {\n\t\t\t\t\t<div class=\"ngb-tp-spacer\">:</div>\n\t\t\t\t\t<div class=\"ngb-tp-input-container ngb-tp-second\">\n\t\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t(click)=\"changeSecond(secondStep)\"\n\t\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron\"></span>\n\t\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.increment-seconds\">Increment seconds</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tclass=\"ngb-tp-input form-control\"\n\t\t\t\t\t\t\t[class.form-control-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.form-control-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\tmaxlength=\"2\"\n\t\t\t\t\t\t\tinputmode=\"numeric\"\n\t\t\t\t\t\t\tplaceholder=\"SS\"\n\t\t\t\t\t\t\ti18n-placeholder=\"@@ngb.timepicker.SS\"\n\t\t\t\t\t\t\t[value]=\"formatMinSec(model?.second)\"\n\t\t\t\t\t\t\t(change)=\"updateSecond($any($event).target.value)\"\n\t\t\t\t\t\t\t[readOnly]=\"readonlyInputs\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\taria-label=\"Seconds\"\n\t\t\t\t\t\t\ti18n-aria-label=\"@@ngb.timepicker.seconds\"\n\t\t\t\t\t\t\t(blur)=\"handleBlur()\"\n\t\t\t\t\t\t\t(input)=\"formatInput($any($event).target)\"\n\t\t\t\t\t\t\t(keydown.ArrowUp)=\"changeSecond(secondStep); $event.preventDefault()\"\n\t\t\t\t\t\t\t(keydown.ArrowDown)=\"changeSecond(-secondStep); $event.preventDefault()\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t(click)=\"changeSecond(-secondStep)\"\n\t\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron bottom\"></span>\n\t\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.decrement-seconds\">Decrement seconds</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (meridian) {\n\t\t\t\t\t<div class=\"ngb-tp-spacer\"></div>\n\t\t\t\t\t<div class=\"ngb-tp-meridian\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-primary\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t(click)=\"toggleMeridian()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t@if (model && model.hour >= 12) {\n\t\t\t\t\t\t\t\t<ng-container i18n=\"@@ngb.timepicker.PM\">{{ i18n.getAfternoonPeriod() }}</ng-container>\n\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t<ng-container>{{ i18n.getMorningPeriod() }}</ng-container>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</fieldset>\n\t`,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbTimepicker),\n multi: true\n }],\n styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{display:flex;align-items:center}.ngb-tp-input-container{width:4em}.ngb-tp-chevron:before{border-style:solid;border-width:.29em .29em 0 0;content:\\\"\\\";display:inline-block;height:.69em;left:.05em;position:relative;top:.15em;transform:rotate(-45deg);vertical-align:middle;width:.69em}.ngb-tp-chevron.bottom:before{top:-.3em;transform:rotate(135deg)}.ngb-tp-input{text-align:center}.ngb-tp-hour,.ngb-tp-minute,.ngb-tp-second,.ngb-tp-meridian{display:flex;flex-direction:column;align-items:center;justify-content:space-around}.ngb-tp-spacer{width:1em;text-align:center}\\n\"]\n }]\n }], () => [{\n type: NgbTimepickerConfig\n }, {\n type: NgbTimeAdapter\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: NgbTimepickerI18n\n }], {\n meridian: [{\n type: Input\n }],\n spinners: [{\n type: Input\n }],\n seconds: [{\n type: Input\n }],\n hourStep: [{\n type: Input\n }],\n minuteStep: [{\n type: Input\n }],\n secondStep: [{\n type: Input\n }],\n readonlyInputs: [{\n type: Input\n }],\n size: [{\n type: Input\n }]\n });\n})();\nclass NgbTimepickerModule {\n static #_ = this.ɵfac = function NgbTimepickerModule_Factory(t) {\n return new (t || NgbTimepickerModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbTimepickerModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimepickerModule, [{\n type: NgModule,\n args: [{\n imports: [NgbTimepicker],\n exports: [NgbTimepicker]\n }]\n }], null, null);\n})();\n\n/**\n * Configuration service for the NgbToast component. You can inject this service, typically in your root component,\n * and customize the values of its properties in order to provide default values for all the toasts used in the\n * application.\n *\n * @since 5.0.0\n */\nclass NgbToastConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.autohide = true;\n this.delay = 5000;\n this.ariaLive = 'polite';\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static #_ = this.ɵfac = function NgbToastConfig_Factory(t) {\n return new (t || NgbToastConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbToastConfig,\n factory: NgbToastConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbToastConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nconst ngbToastFadeInTransition = (element, animation) => {\n const {\n classList\n } = element;\n if (animation) {\n classList.add('fade');\n } else {\n classList.add('show');\n return;\n }\n reflow(element);\n classList.add('show', 'showing');\n return () => {\n classList.remove('showing');\n };\n};\nconst ngbToastFadeOutTransition = ({\n classList\n}) => {\n classList.add('showing');\n return () => {\n classList.remove('show', 'showing');\n };\n};\n\n/**\n * This directive allows the usage of HTML markup or other directives\n * inside of the toast's header.\n *\n * @since 5.0.0\n */\nclass NgbToastHeader {\n static #_ = this.ɵfac = function NgbToastHeader_Factory(t) {\n return new (t || NgbToastHeader)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbToastHeader,\n selectors: [[\"\", \"ngbToastHeader\", \"\"]],\n standalone: true\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbToastHeader, [{\n type: Directive,\n args: [{\n selector: '[ngbToastHeader]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * Toasts provide feedback messages as notifications to the user.\n * Goal is to mimic the push notifications available both on mobile and desktop operating systems.\n *\n * @since 5.0.0\n */\nclass NgbToast {\n constructor(ariaLive) {\n this.ariaLive = ariaLive;\n this._config = inject(NgbToastConfig);\n this._zone = inject(NgZone);\n this._element = inject(ElementRef);\n /**\n * If `true`, toast opening and closing will be animated.\n *\n * Animation is triggered only when the `.hide()` or `.show()` functions are called\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * Delay after which the toast will hide (ms).\n * default: `500` (ms) (inherited from NgbToastConfig)\n */\n this.delay = this._config.delay;\n /**\n * Auto hide the toast after a delay in ms.\n * default: `true` (inherited from NgbToastConfig)\n */\n this.autohide = this._config.autohide;\n /**\n * A template like `<ng-template ngbToastHeader></ng-template>` can be\n * used in the projected content to allow markup usage.\n */\n this.contentHeaderTpl = null;\n /**\n * An event fired after the animation triggered by calling `.show()` method has finished.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event fired after the animation triggered by calling `.hide()` method has finished.\n *\n * It can only occur in 2 different scenarios:\n * - `autohide` timeout fires\n * - user clicks on a closing cross\n *\n * Additionally this output is purely informative. The toast won't be removed from DOM automatically, it's up\n * to the user to take care of that.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n this.ariaLive ??= this._config.ariaLive;\n }\n ngAfterContentInit() {\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n this._init();\n this.show();\n });\n }\n ngOnChanges(changes) {\n if ('autohide' in changes) {\n this._clearTimeout();\n this._init();\n }\n }\n /**\n * Triggers toast closing programmatically.\n *\n * The returned observable will emit and be completed once the closing transition has finished.\n * If the animations are turned off this happens synchronously.\n *\n * Alternatively you could listen or subscribe to the `(hidden)` output\n *\n * @since 8.0.0\n */\n hide() {\n this._clearTimeout();\n const transition = ngbRunTransition(this._zone, this._element.nativeElement, ngbToastFadeOutTransition, {\n animation: this.animation,\n runningTransition: 'stop'\n });\n transition.subscribe(() => {\n this.hidden.emit();\n });\n return transition;\n }\n /**\n * Triggers toast opening programmatically.\n *\n * The returned observable will emit and be completed once the opening transition has finished.\n * If the animations are turned off this happens synchronously.\n *\n * Alternatively you could listen or subscribe to the `(shown)` output\n *\n * @since 8.0.0\n */\n show() {\n const transition = ngbRunTransition(this._zone, this._element.nativeElement, ngbToastFadeInTransition, {\n animation: this.animation,\n runningTransition: 'continue'\n });\n transition.subscribe(() => {\n this.shown.emit();\n });\n return transition;\n }\n _init() {\n if (this.autohide && !this._timeoutID) {\n this._timeoutID = setTimeout(() => this.hide(), this.delay);\n }\n }\n _clearTimeout() {\n if (this._timeoutID) {\n clearTimeout(this._timeoutID);\n this._timeoutID = null;\n }\n }\n static #_ = this.ɵfac = function NgbToast_Factory(t) {\n return new (t || NgbToast)(i0.ɵɵinjectAttribute('aria-live'));\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbToast,\n selectors: [[\"ngb-toast\"]],\n contentQueries: function NgbToast_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbToastHeader, 7, TemplateRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentHeaderTpl = _t.first);\n }\n },\n hostAttrs: [\"role\", \"alert\", \"aria-atomic\", \"true\", 1, \"toast\"],\n hostVars: 3,\n hostBindings: function NgbToast_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-live\", ctx.ariaLive);\n i0.ɵɵclassProp(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n delay: \"delay\",\n autohide: \"autohide\",\n header: \"header\"\n },\n outputs: {\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbToast\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 5,\n vars: 1,\n consts: () => {\n let i18n_34;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_34 = goog.getMsg(\"Close\");\n i18n_34 = MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_34;\n } else {\n i18n_34 = $localize`:@@ngb.toast.close-aria:Close`;\n }\n return [[\"headerTpl\", \"\"], [1, \"toast-header\"], [1, \"toast-body\"], [1, \"me-auto\"], [3, \"ngTemplateOutlet\"], [\"type\", \"button\", \"aria-label\", i18n_34, 1, \"btn-close\", 3, \"click\"]];\n },\n template: function NgbToast_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, NgbToast_ng_template_0_Template, 2, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor)(2, NgbToast_Conditional_2_Template, 3, 1, \"div\", 1);\n i0.ɵɵelementStart(3, \"div\", 2);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(2, ctx.contentHeaderTpl || ctx.header ? 2 : -1);\n }\n },\n dependencies: [NgTemplateOutlet],\n styles: [\"ngb-toast{display:block}ngb-toast .toast-header .close{margin-left:auto;margin-bottom:.25rem}\\n\"],\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbToast, [{\n type: Component,\n args: [{\n selector: 'ngb-toast',\n exportAs: 'ngbToast',\n standalone: true,\n imports: [NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'alert',\n '[attr.aria-live]': 'ariaLive',\n 'aria-atomic': 'true',\n class: 'toast',\n '[class.fade]': 'animation'\n },\n template: `\n\t\t<ng-template #headerTpl>\n\t\t\t<strong class=\"me-auto\">{{ header }}</strong>\n\t\t</ng-template>\n\t\t@if (contentHeaderTpl || header) {\n\t\t\t<div class=\"toast-header\">\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"contentHeaderTpl || headerTpl\" />\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"btn-close\"\n\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\ti18n-aria-label=\"@@ngb.toast.close-aria\"\n\t\t\t\t\t(click)=\"hide()\"\n\t\t\t\t>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t}\n\t\t<div class=\"toast-body\">\n\t\t\t<ng-content />\n\t\t</div>\n\t`,\n styles: [\"ngb-toast{display:block}ngb-toast .toast-header .close{margin-left:auto;margin-bottom:.25rem}\\n\"]\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['aria-live']\n }]\n }], {\n animation: [{\n type: Input\n }],\n delay: [{\n type: Input\n }],\n autohide: [{\n type: Input\n }],\n header: [{\n type: Input\n }],\n contentHeaderTpl: [{\n type: ContentChild,\n args: [NgbToastHeader, {\n read: TemplateRef,\n static: true\n }]\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }]\n });\n})();\nclass NgbToastModule {\n static #_ = this.ɵfac = function NgbToastModule_Factory(t) {\n return new (t || NgbToastModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbToastModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbToastModule, [{\n type: NgModule,\n args: [{\n imports: [NgbToast, NgbToastHeader],\n exports: [NgbToast, NgbToastHeader]\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbTooltip`](#/components/tooltip/api#NgbTooltip) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the tooltips used in the application.\n */\nclass NgbTooltipConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.autoClose = true;\n this.placement = 'auto';\n this.popperOptions = options => options;\n this.triggers = 'hover focus';\n this.disableTooltip = false;\n this.openDelay = 0;\n this.closeDelay = 0;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static #_ = this.ɵfac = function NgbTooltipConfig_Factory(t) {\n return new (t || NgbTooltipConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTooltipConfig,\n factory: NgbTooltipConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTooltipConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nlet nextId = 0;\nclass NgbTooltipWindow {\n static #_ = this.ɵfac = function NgbTooltipWindow_Factory(t) {\n return new (t || NgbTooltipWindow)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbTooltipWindow,\n selectors: [[\"ngb-tooltip-window\"]],\n hostAttrs: [\"role\", \"tooltip\"],\n hostVars: 5,\n hostBindings: function NgbTooltipWindow_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵclassMap(\"tooltip\" + (ctx.tooltipClass ? \" \" + ctx.tooltipClass : \"\"));\n i0.ɵɵclassProp(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n id: \"id\",\n tooltipClass: \"tooltipClass\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 3,\n vars: 0,\n consts: [[\"data-popper-arrow\", \"\", 1, \"tooltip-arrow\"], [1, \"tooltip-inner\"]],\n template: function NgbTooltipWindow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"div\", 0);\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n }\n },\n styles: [\"ngb-tooltip-window{pointer-events:none;position:absolute}ngb-tooltip-window .tooltip-inner{pointer-events:auto}ngb-tooltip-window.bs-tooltip-top,ngb-tooltip-window.bs-tooltip-bottom{padding-left:0;padding-right:0}ngb-tooltip-window.bs-tooltip-start,ngb-tooltip-window.bs-tooltip-end{padding-top:0;padding-bottom:0}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTooltipWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-tooltip-window',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"tooltip\" + (tooltipClass ? \" \" + tooltipClass : \"\")',\n '[class.fade]': 'animation',\n role: 'tooltip',\n '[id]': 'id'\n },\n template: `\n\t\t<div class=\"tooltip-arrow\" data-popper-arrow></div>\n\t\t<div class=\"tooltip-inner\">\n\t\t\t<ng-content />\n\t\t</div>\n\t`,\n styles: [\"ngb-tooltip-window{pointer-events:none;position:absolute}ngb-tooltip-window .tooltip-inner{pointer-events:auto}ngb-tooltip-window.bs-tooltip-top,ngb-tooltip-window.bs-tooltip-bottom{padding-left:0;padding-right:0}ngb-tooltip-window.bs-tooltip-start,ngb-tooltip-window.bs-tooltip-end{padding-top:0;padding-bottom:0}\\n\"]\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n tooltipClass: [{\n type: Input\n }]\n });\n})();\n/**\n * A lightweight and extensible directive for fancy tooltip creation.\n */\nclass NgbTooltip {\n constructor() {\n this._config = inject(NgbTooltipConfig);\n /**\n * If `true`, tooltip opening and closing will be animated.\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * Indicates whether the tooltip should be closed on `Escape` key and inside/outside clicks:\n *\n * * `true` - closes on both outside and inside clicks as well as `Escape` presses\n * * `false` - disables the autoClose feature (NB: triggers still apply)\n * * `\"inside\"` - closes on inside clicks as well as Escape presses\n * * `\"outside\"` - closes on outside clicks (sometimes also achievable through triggers)\n * as well as `Escape` presses\n *\n * @since 3.0.0\n */\n this.autoClose = this._config.autoClose;\n /**\n * The preferred placement of the tooltip, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"auto\"`.\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the tooltip.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * Specifies events that should trigger the tooltip.\n *\n * Supports a space separated list of event names.\n * For more details see the [triggers demo](#/components/tooltip/examples#triggers).\n */\n this.triggers = this._config.triggers;\n /**\n * A selector specifying the element the tooltip should be appended to.\n *\n * Currently only supports `\"body\"`.\n */\n this.container = this._config.container;\n /**\n * If `true`, tooltip is disabled and won't be displayed.\n *\n * @since 1.1.0\n */\n this.disableTooltip = this._config.disableTooltip;\n /**\n * An optional class applied to the tooltip window element.\n *\n * @since 3.2.0\n */\n this.tooltipClass = this._config.tooltipClass;\n /**\n * The opening delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n *\n * @since 4.1.0\n */\n this.openDelay = this._config.openDelay;\n /**\n * The closing delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n *\n * @since 4.1.0\n */\n this.closeDelay = this._config.closeDelay;\n /**\n * An event emitted when the tooltip opening animation has finished. Contains no payload.\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the tooltip closing animation has finished. Contains no payload.\n */\n this.hidden = new EventEmitter();\n this._nativeElement = inject(ElementRef).nativeElement;\n this._ngZone = inject(NgZone);\n this._document = inject(DOCUMENT);\n this._changeDetector = inject(ChangeDetectorRef);\n this._ngbTooltipWindowId = `ngb-tooltip-${nextId++}`;\n this._popupService = new PopupService(NgbTooltipWindow);\n this._windowRef = null;\n this._positioning = ngbPositioning();\n }\n /**\n * The string content or a `TemplateRef` for the content to be displayed in the tooltip.\n *\n * If the content if falsy, the tooltip won't open.\n */\n set ngbTooltip(value) {\n this._ngbTooltip = value;\n if (!value && this._windowRef) {\n this.close();\n }\n }\n get ngbTooltip() {\n return this._ngbTooltip;\n }\n /**\n * Opens the tooltip.\n *\n * This is considered to be a \"manual\" triggering.\n * The `context` is an optional value to be injected into the tooltip template when it is created.\n */\n open(context) {\n if (!this._windowRef && this._ngbTooltip && !this.disableTooltip) {\n const {\n windowRef,\n transition$\n } = this._popupService.open(this._ngbTooltip, context ?? this.tooltipContext, this.animation);\n this._windowRef = windowRef;\n this._windowRef.setInput('animation', this.animation);\n this._windowRef.setInput('tooltipClass', this.tooltipClass);\n this._windowRef.setInput('id', this._ngbTooltipWindowId);\n this._getPositionTargetElement().setAttribute('aria-describedby', this._ngbTooltipWindowId);\n if (this.container === 'body') {\n this._document.body.appendChild(this._windowRef.location.nativeElement);\n }\n // We need to detect changes, because we don't know where .open() might be called from.\n // Ex. opening tooltip from one of lifecycle hooks that run after the CD\n // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception\n this._windowRef.changeDetectorRef.detectChanges();\n // We need to mark for check, because tooltip won't work inside the OnPush component.\n // Ex. when we use expression like `{{ tooltip.isOpen() : 'opened' : 'closed' }}`\n // inside the template of an OnPush component and we change the tooltip from\n // open -> closed, the expression in question won't be updated unless we explicitly\n // mark the parent component to be checked.\n this._windowRef.changeDetectorRef.markForCheck();\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n this._positioning.createPopper({\n hostElement: this._getPositionTargetElement(),\n targetElement: this._windowRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n baseClass: 'bs-tooltip',\n updatePopperOptions: options => this.popperOptions(addPopperOffset([0, 6])(options))\n });\n Promise.resolve().then(() => {\n // This update is required for correct arrow placement\n this._positioning.update();\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n });\n });\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [this._windowRef.location.nativeElement], [this._nativeElement]);\n transition$.subscribe(() => this.shown.emit());\n }\n }\n /**\n * Closes the tooltip.\n *\n * This is considered to be a \"manual\" triggering of the tooltip.\n */\n close(animation = this.animation) {\n if (this._windowRef != null) {\n this._getPositionTargetElement().removeAttribute('aria-describedby');\n this._popupService.close(animation).subscribe(() => {\n this._windowRef = null;\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this.hidden.emit();\n this._changeDetector.markForCheck();\n });\n }\n }\n /**\n * Toggles the tooltip.\n *\n * This is considered to be a \"manual\" triggering of the tooltip.\n */\n toggle() {\n if (this._windowRef) {\n this.close();\n } else {\n this.open();\n }\n }\n /**\n * Returns `true`, if the popover is currently shown.\n */\n isOpen() {\n return this._windowRef != null;\n }\n ngOnInit() {\n this._unregisterListenersFn = listenToTriggers(this._nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay);\n }\n ngOnChanges({\n tooltipClass\n }) {\n if (tooltipClass && this.isOpen()) {\n this._windowRef.setInput('tooltipClass', tooltipClass.currentValue);\n }\n }\n ngOnDestroy() {\n this.close(false);\n // This check is needed as it might happen that ngOnDestroy is called before ngOnInit\n // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199\n this._unregisterListenersFn?.();\n }\n _getPositionTargetElement() {\n return (isString(this.positionTarget) ? this._document.querySelector(this.positionTarget) : this.positionTarget) || this._nativeElement;\n }\n static #_ = this.ɵfac = function NgbTooltip_Factory(t) {\n return new (t || NgbTooltip)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbTooltip,\n selectors: [[\"\", \"ngbTooltip\", \"\"]],\n inputs: {\n animation: \"animation\",\n autoClose: \"autoClose\",\n placement: \"placement\",\n popperOptions: \"popperOptions\",\n triggers: \"triggers\",\n positionTarget: \"positionTarget\",\n container: \"container\",\n disableTooltip: \"disableTooltip\",\n tooltipClass: \"tooltipClass\",\n tooltipContext: \"tooltipContext\",\n openDelay: \"openDelay\",\n closeDelay: \"closeDelay\",\n ngbTooltip: \"ngbTooltip\"\n },\n outputs: {\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbTooltip\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTooltip, [{\n type: Directive,\n args: [{\n selector: '[ngbTooltip]',\n standalone: true,\n exportAs: 'ngbTooltip'\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n autoClose: [{\n type: Input\n }],\n placement: [{\n type: Input\n }],\n popperOptions: [{\n type: Input\n }],\n triggers: [{\n type: Input\n }],\n positionTarget: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n disableTooltip: [{\n type: Input\n }],\n tooltipClass: [{\n type: Input\n }],\n tooltipContext: [{\n type: Input\n }],\n openDelay: [{\n type: Input\n }],\n closeDelay: [{\n type: Input\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n ngbTooltip: [{\n type: Input\n }]\n });\n})();\nclass NgbTooltipModule {\n static #_ = this.ɵfac = function NgbTooltipModule_Factory(t) {\n return new (t || NgbTooltipModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbTooltipModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTooltipModule, [{\n type: NgModule,\n args: [{\n imports: [NgbTooltip],\n exports: [NgbTooltip]\n }]\n }], null, null);\n})();\n\n/**\n * A component that helps with text highlighting.\n *\n * It splits the `result` text into parts that contain the searched `term` and generates the HTML markup to simplify\n * highlighting:\n *\n * Ex. `result=\"Alaska\"` and `term=\"as\"` will produce `Al<span class=\"ngb-highlight\">as</span>ka`.\n */\nclass NgbHighlight {\n constructor() {\n /**\n * The CSS class for `<span>` elements wrapping the `term` inside the `result`.\n */\n this.highlightClass = 'ngb-highlight';\n /**\n * Boolean option to determine if the highlighting should be sensitive to accents or not.\n *\n * This feature is only available for browsers that implement the `String.normalize` function\n * (typically not Internet Explorer).\n * If you want to use this feature in a browser that does not implement `String.normalize`,\n * you will have to include a polyfill in your application (`unorm` for example).\n *\n * @since 9.1.0\n */\n this.accentSensitive = true;\n }\n ngOnChanges(changes) {\n if (!this.accentSensitive && !String.prototype.normalize) {\n console.warn('The `accentSensitive` input in `ngb-highlight` cannot be set to `false` in a browser ' + 'that does not implement the `String.normalize` function. ' + 'You will have to include a polyfill in your application to use this feature in the current browser.');\n this.accentSensitive = true;\n }\n const result = toString(this.result);\n const terms = Array.isArray(this.term) ? this.term : [this.term];\n const prepareTerm = term => this.accentSensitive ? term : removeAccents(term);\n const escapedTerms = terms.map(term => regExpEscape(prepareTerm(toString(term)))).filter(term => term);\n const toSplit = this.accentSensitive ? result : removeAccents(result);\n const parts = escapedTerms.length ? toSplit.split(new RegExp(`(${escapedTerms.join('|')})`, 'gmi')) : [result];\n if (this.accentSensitive) {\n this.parts = parts;\n } else {\n let offset = 0;\n this.parts = parts.map(part => result.substring(offset, offset += part.length));\n }\n }\n static #_ = this.ɵfac = function NgbHighlight_Factory(t) {\n return new (t || NgbHighlight)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbHighlight,\n selectors: [[\"ngb-highlight\"]],\n inputs: {\n highlightClass: \"highlightClass\",\n result: \"result\",\n term: \"term\",\n accentSensitive: \"accentSensitive\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 0,\n template: function NgbHighlight_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, NgbHighlight_For_1_Template, 2, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n i0.ɵɵrepeater(ctx.parts);\n }\n },\n styles: [\".ngb-highlight{font-weight:700}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbHighlight, [{\n type: Component,\n args: [{\n selector: 'ngb-highlight',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n\t\t@for (part of parts; track part; let odd = $odd) {\n\t\t\t@if (odd) {\n\t\t\t\t<span class=\"{{ highlightClass }}\">{{ part }}</span>\n\t\t\t} @else {\n\t\t\t\t<ng-container>{{ part }}</ng-container>\n\t\t\t}\n\t\t}\n\t`,\n styles: [\".ngb-highlight{font-weight:700}\\n\"]\n }]\n }], null, {\n highlightClass: [{\n type: Input\n }],\n result: [{\n type: Input,\n args: [{\n required: true\n }]\n }],\n term: [{\n type: Input,\n args: [{\n required: true\n }]\n }],\n accentSensitive: [{\n type: Input\n }]\n });\n})();\nconst ARIA_LIVE_DELAY = new InjectionToken('live announcer delay', {\n providedIn: 'root',\n factory: () => 100\n});\nfunction getLiveElement(document, lazyCreate = false) {\n let element = document.body.querySelector('#ngb-live');\n if (element == null && lazyCreate) {\n element = document.createElement('div');\n element.setAttribute('id', 'ngb-live');\n element.setAttribute('aria-live', 'polite');\n element.setAttribute('aria-atomic', 'true');\n element.classList.add('visually-hidden');\n document.body.appendChild(element);\n }\n return element;\n}\nclass Live {\n constructor() {\n this._document = inject(DOCUMENT);\n this._delay = inject(ARIA_LIVE_DELAY);\n }\n ngOnDestroy() {\n const element = getLiveElement(this._document);\n if (element) {\n // if exists, it will always be attached to the <body>\n element.parentElement.removeChild(element);\n }\n }\n say(message) {\n const element = getLiveElement(this._document, true);\n const delay = this._delay;\n if (element != null) {\n element.textContent = '';\n const setText = () => element.textContent = message;\n if (delay === null) {\n setText();\n } else {\n setTimeout(setText, delay);\n }\n }\n }\n static #_ = this.ɵfac = function Live_Factory(t) {\n return new (t || Live)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Live,\n factory: Live.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Live, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbTypeahead`](#/components/typeahead/api#NgbTypeahead) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the typeaheads used in the application.\n */\nclass NgbTypeaheadConfig {\n constructor() {\n this.editable = true;\n this.focusFirst = true;\n this.selectOnExact = false;\n this.showHint = false;\n this.placement = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];\n this.popperOptions = options => options;\n }\n static #_ = this.ɵfac = function NgbTypeaheadConfig_Factory(t) {\n return new (t || NgbTypeaheadConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTypeaheadConfig,\n factory: NgbTypeaheadConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTypeaheadConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nclass NgbTypeaheadWindow {\n constructor() {\n this.activeIdx = 0;\n /**\n * Flag indicating if the first row should be active initially\n */\n this.focusFirst = true;\n /**\n * A function used to format a given result before display. This function should return a formatted string without any\n * HTML markup\n */\n this.formatter = toString;\n /**\n * Event raised when user selects a particular result row\n */\n this.selectEvent = new EventEmitter();\n this.activeChangeEvent = new EventEmitter();\n }\n hasActive() {\n return this.activeIdx > -1 && this.activeIdx < this.results.length;\n }\n getActive() {\n return this.results[this.activeIdx];\n }\n markActive(activeIdx) {\n this.activeIdx = activeIdx;\n this._activeChanged();\n }\n next() {\n if (this.activeIdx === this.results.length - 1) {\n this.activeIdx = this.focusFirst ? (this.activeIdx + 1) % this.results.length : -1;\n } else {\n this.activeIdx++;\n }\n this._activeChanged();\n }\n prev() {\n if (this.activeIdx < 0) {\n this.activeIdx = this.results.length - 1;\n } else if (this.activeIdx === 0) {\n this.activeIdx = this.focusFirst ? this.results.length - 1 : -1;\n } else {\n this.activeIdx--;\n }\n this._activeChanged();\n }\n resetActive() {\n this.activeIdx = this.focusFirst ? 0 : -1;\n this._activeChanged();\n }\n select(item) {\n this.selectEvent.emit(item);\n }\n ngOnInit() {\n this.resetActive();\n }\n _activeChanged() {\n this.activeChangeEvent.emit(this.activeIdx >= 0 ? this.id + '-' + this.activeIdx : undefined);\n }\n static #_ = this.ɵfac = function NgbTypeaheadWindow_Factory(t) {\n return new (t || NgbTypeaheadWindow)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbTypeaheadWindow,\n selectors: [[\"ngb-typeahead-window\"]],\n hostAttrs: [\"role\", \"listbox\"],\n hostVars: 3,\n hostBindings: function NgbTypeaheadWindow_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mousedown\", function NgbTypeaheadWindow_mousedown_HostBindingHandler($event) {\n return $event.preventDefault();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵclassMap(\"dropdown-menu show\" + (ctx.popupClass ? \" \" + ctx.popupClass : \"\"));\n }\n },\n inputs: {\n id: \"id\",\n focusFirst: \"focusFirst\",\n results: \"results\",\n term: \"term\",\n formatter: \"formatter\",\n resultTemplate: \"resultTemplate\",\n popupClass: \"popupClass\"\n },\n outputs: {\n selectEvent: \"select\",\n activeChangeEvent: \"activeChange\"\n },\n exportAs: [\"ngbTypeaheadWindow\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 4,\n vars: 0,\n consts: [[\"rt\", \"\"], [\"type\", \"button\", \"role\", \"option\", 1, \"dropdown-item\"], [3, \"result\", \"term\"], [\"type\", \"button\", \"role\", \"option\", 1, \"dropdown-item\", 3, \"mouseenter\", \"click\", \"id\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgbTypeaheadWindow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbTypeaheadWindow_ng_template_0_Template, 1, 2, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵrepeaterCreate(2, NgbTypeaheadWindow_For_3_Template, 2, 9, \"button\", 1, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx.results);\n }\n },\n dependencies: [NgbHighlight, NgTemplateOutlet],\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTypeaheadWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-typeahead-window',\n exportAs: 'ngbTypeaheadWindow',\n standalone: true,\n imports: [NgbHighlight, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n host: {\n '(mousedown)': '$event.preventDefault()',\n '[class]': '\"dropdown-menu show\" + (popupClass ? \" \" + popupClass : \"\")',\n role: 'listbox',\n '[id]': 'id'\n },\n template: `\n\t\t<ng-template #rt let-result=\"result\" let-term=\"term\" let-formatter=\"formatter\">\n\t\t\t<ngb-highlight [result]=\"formatter(result)\" [term]=\"term\" />\n\t\t</ng-template>\n\t\t@for (result of results; track result; let idx = $index) {\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"dropdown-item\"\n\t\t\t\trole=\"option\"\n\t\t\t\t[id]=\"id + '-' + idx\"\n\t\t\t\t[class.active]=\"idx === activeIdx\"\n\t\t\t\t(mouseenter)=\"markActive(idx)\"\n\t\t\t\t(click)=\"select(result)\"\n\t\t\t>\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"resultTemplate || rt\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ result: result, term: term, formatter: formatter }\"\n\t\t\t\t/>\n\t\t\t</button>\n\t\t}\n\t`\n }]\n }], null, {\n id: [{\n type: Input\n }],\n focusFirst: [{\n type: Input\n }],\n results: [{\n type: Input\n }],\n term: [{\n type: Input\n }],\n formatter: [{\n type: Input\n }],\n resultTemplate: [{\n type: Input\n }],\n popupClass: [{\n type: Input\n }],\n selectEvent: [{\n type: Output,\n args: ['select']\n }],\n activeChangeEvent: [{\n type: Output,\n args: ['activeChange']\n }]\n });\n})();\nlet nextWindowId = 0;\n/**\n * A directive providing a simple way of creating powerful typeaheads from any text input.\n */\nclass NgbTypeahead {\n constructor() {\n this._nativeElement = inject(ElementRef).nativeElement;\n this._config = inject(NgbTypeaheadConfig);\n this._live = inject(Live);\n this._document = inject(DOCUMENT);\n this._ngZone = inject(NgZone);\n this._changeDetector = inject(ChangeDetectorRef);\n this._popupService = new PopupService(NgbTypeaheadWindow);\n this._positioning = ngbPositioning();\n this._subscription = null;\n this._closed$ = new Subject();\n this._inputValueBackup = null;\n this._inputValueForSelectOnExact = null;\n this._valueChanges$ = fromEvent(this._nativeElement, 'input').pipe(map($event => $event.target.value));\n this._resubscribeTypeahead$ = new BehaviorSubject(null);\n this._windowRef = null;\n /**\n * The value for the `autocomplete` attribute for the `<input>` element.\n *\n * Defaults to `\"off\"` to disable the native browser autocomplete, but you can override it if necessary.\n *\n * @since 2.1.0\n */\n this.autocomplete = 'off';\n /**\n * A selector specifying the element the typeahead popup will be appended to.\n *\n * Currently only supports `\"body\"`.\n */\n this.container = this._config.container;\n /**\n * If `true`, model values will not be restricted only to items selected from the popup.\n */\n this.editable = this._config.editable;\n /**\n * If `true`, the first item in the result list will always stay focused while typing.\n */\n this.focusFirst = this._config.focusFirst;\n /**\n * If `true`, automatically selects the item when it is the only one that exactly matches the user input\n *\n * @since 14.2.0\n */\n this.selectOnExact = this._config.selectOnExact;\n /**\n * If `true`, will show the hint in the `<input>` when an item in the result list matches.\n */\n this.showHint = this._config.showHint;\n /**\n * The preferred placement of the typeahead, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"bottom-start bottom-end top-start top-end\"`\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the typeahead.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * An event emitted right before an item is selected from the result list.\n *\n * Event payload is of type [`NgbTypeaheadSelectItemEvent`](#/components/typeahead/api#NgbTypeaheadSelectItemEvent).\n */\n this.selectItem = new EventEmitter();\n this.activeDescendant = null;\n this.popupId = `ngb-typeahead-${nextWindowId++}`;\n this._onTouched = () => {};\n this._onChange = _ => {};\n }\n ngOnInit() {\n this._subscribeToUserInput();\n }\n ngOnChanges({\n ngbTypeahead\n }) {\n if (ngbTypeahead && !ngbTypeahead.firstChange) {\n this._unsubscribeFromUserInput();\n this._subscribeToUserInput();\n }\n }\n ngOnDestroy() {\n this._closePopup();\n this._unsubscribeFromUserInput();\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n writeValue(value) {\n this._writeInputValue(this._formatItemForInput(value));\n if (this.showHint) {\n this._inputValueBackup = value;\n }\n }\n setDisabledState(isDisabled) {\n this._nativeElement.disabled = isDisabled;\n }\n /**\n * Dismisses typeahead popup window\n */\n dismissPopup() {\n if (this.isPopupOpen()) {\n this._resubscribeTypeahead$.next(null);\n this._closePopup();\n if (this.showHint && this._inputValueBackup !== null) {\n this._writeInputValue(this._inputValueBackup);\n }\n this._changeDetector.markForCheck();\n }\n }\n /**\n * Returns true if the typeahead popup window is displayed\n */\n isPopupOpen() {\n return this._windowRef != null;\n }\n handleBlur() {\n this._resubscribeTypeahead$.next(null);\n this._onTouched();\n }\n handleKeyDown(event) {\n if (!this.isPopupOpen()) {\n return;\n }\n /* eslint-disable-next-line deprecation/deprecation */\n switch (event.which) {\n case Key.ArrowDown:\n event.preventDefault();\n this._windowRef.instance.next();\n this._showHint();\n break;\n case Key.ArrowUp:\n event.preventDefault();\n this._windowRef.instance.prev();\n this._showHint();\n break;\n case Key.Enter:\n case Key.Tab:\n {\n const result = this._windowRef.instance.getActive();\n if (isDefined(result)) {\n event.preventDefault();\n event.stopPropagation();\n this._selectResult(result);\n }\n this._closePopup();\n break;\n }\n }\n }\n _openPopup() {\n if (!this.isPopupOpen()) {\n this._inputValueBackup = this._nativeElement.value;\n const {\n windowRef\n } = this._popupService.open();\n this._windowRef = windowRef;\n this._windowRef.setInput('id', this.popupId);\n this._windowRef.setInput('popupClass', this.popupClass);\n this._windowRef.instance.selectEvent.subscribe(result => this._selectResultClosePopup(result));\n this._windowRef.instance.activeChangeEvent.subscribe(activeId => this.activeDescendant = activeId);\n if (this.container === 'body') {\n this._windowRef.location.nativeElement.style.zIndex = '1055';\n this._document.body.appendChild(this._windowRef.location.nativeElement);\n }\n this._changeDetector.markForCheck();\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n if (this._windowRef) {\n this._positioning.createPopper({\n hostElement: this._nativeElement,\n targetElement: this._windowRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n updatePopperOptions: options => this.popperOptions(addPopperOffset([0, 2])(options))\n });\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n }\n });\n ngbAutoClose(this._ngZone, this._document, 'outside', () => this.dismissPopup(), this._closed$, [this._nativeElement, this._windowRef.location.nativeElement]);\n }\n }\n _closePopup() {\n this._popupService.close().subscribe(() => {\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this._closed$.next();\n this._windowRef = null;\n this.activeDescendant = null;\n });\n }\n _selectResult(result) {\n let defaultPrevented = false;\n this.selectItem.emit({\n item: result,\n preventDefault: () => {\n defaultPrevented = true;\n }\n });\n this._resubscribeTypeahead$.next(null);\n if (!defaultPrevented) {\n this.writeValue(result);\n this._onChange(result);\n }\n }\n _selectResultClosePopup(result) {\n this._selectResult(result);\n this._closePopup();\n }\n _showHint() {\n if (this.showHint && this._windowRef?.instance.hasActive() && this._inputValueBackup != null) {\n const userInputLowerCase = this._inputValueBackup.toLowerCase();\n const formattedVal = this._formatItemForInput(this._windowRef.instance.getActive());\n if (userInputLowerCase === formattedVal.substring(0, this._inputValueBackup.length).toLowerCase()) {\n this._writeInputValue(this._inputValueBackup + formattedVal.substring(this._inputValueBackup.length));\n this._nativeElement['setSelectionRange'].apply(this._nativeElement, [this._inputValueBackup.length, formattedVal.length]);\n } else {\n this._writeInputValue(formattedVal);\n }\n }\n }\n _formatItemForInput(item) {\n return item != null && this.inputFormatter ? this.inputFormatter(item) : toString(item);\n }\n _writeInputValue(value) {\n this._nativeElement.value = toString(value);\n }\n _subscribeToUserInput() {\n const results$ = this._valueChanges$.pipe(tap(value => {\n this._inputValueBackup = this.showHint ? value : null;\n this._inputValueForSelectOnExact = this.selectOnExact ? value : null;\n this._onChange(this.editable ? value : undefined);\n }), this.ngbTypeahead ? this.ngbTypeahead : () => of([]));\n this._subscription = this._resubscribeTypeahead$.pipe(switchMap(() => results$)).subscribe(results => {\n if (!results || results.length === 0) {\n this._closePopup();\n } else {\n // when there is only one result and this matches the input value\n if (this.selectOnExact && results.length === 1 && this._formatItemForInput(results[0]) === this._inputValueForSelectOnExact) {\n this._selectResult(results[0]);\n this._closePopup();\n } else {\n this._openPopup();\n this._windowRef.setInput('focusFirst', this.focusFirst);\n this._windowRef.setInput('results', results);\n this._windowRef.setInput('term', this._nativeElement.value);\n if (this.resultFormatter) {\n this._windowRef.setInput('formatter', this.resultFormatter);\n }\n if (this.resultTemplate) {\n this._windowRef.setInput('resultTemplate', this.resultTemplate);\n }\n this._windowRef.instance.resetActive();\n // The observable stream we are subscribing to might have async steps\n // and if a component containing typeahead is using the OnPush strategy\n // the change detection turn wouldn't be invoked automatically.\n this._windowRef.changeDetectorRef.detectChanges();\n this._showHint();\n }\n }\n // live announcer\n const count = results ? results.length : 0;\n this._live.say(count === 0 ? 'No results available' : `${count} result${count === 1 ? '' : 's'} available`);\n });\n }\n _unsubscribeFromUserInput() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n this._subscription = null;\n }\n static #_ = this.ɵfac = function NgbTypeahead_Factory(t) {\n return new (t || NgbTypeahead)();\n };\n static #_2 = this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbTypeahead,\n selectors: [[\"input\", \"ngbTypeahead\", \"\"]],\n hostAttrs: [\"autocapitalize\", \"off\", \"autocorrect\", \"off\", \"role\", \"combobox\"],\n hostVars: 7,\n hostBindings: function NgbTypeahead_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"blur\", function NgbTypeahead_blur_HostBindingHandler() {\n return ctx.handleBlur();\n })(\"keydown\", function NgbTypeahead_keydown_HostBindingHandler($event) {\n return ctx.handleKeyDown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"autocomplete\", ctx.autocomplete);\n i0.ɵɵattribute(\"aria-autocomplete\", ctx.showHint ? \"both\" : \"list\")(\"aria-activedescendant\", ctx.activeDescendant)(\"aria-owns\", ctx.isPopupOpen() ? ctx.popupId : null)(\"aria-expanded\", ctx.isPopupOpen());\n i0.ɵɵclassProp(\"open\", ctx.isPopupOpen());\n }\n },\n inputs: {\n autocomplete: \"autocomplete\",\n container: \"container\",\n editable: \"editable\",\n focusFirst: \"focusFirst\",\n inputFormatter: \"inputFormatter\",\n ngbTypeahead: \"ngbTypeahead\",\n resultFormatter: \"resultFormatter\",\n resultTemplate: \"resultTemplate\",\n selectOnExact: \"selectOnExact\",\n showHint: \"showHint\",\n placement: \"placement\",\n popperOptions: \"popperOptions\",\n popupClass: \"popupClass\"\n },\n outputs: {\n selectItem: \"selectItem\"\n },\n exportAs: [\"ngbTypeahead\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbTypeahead),\n multi: true\n }]), i0.ɵɵNgOnChangesFeature]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTypeahead, [{\n type: Directive,\n args: [{\n selector: 'input[ngbTypeahead]',\n exportAs: 'ngbTypeahead',\n standalone: true,\n host: {\n '(blur)': 'handleBlur()',\n '[class.open]': 'isPopupOpen()',\n '(keydown)': 'handleKeyDown($event)',\n '[autocomplete]': 'autocomplete',\n autocapitalize: 'off',\n autocorrect: 'off',\n role: 'combobox',\n '[attr.aria-autocomplete]': 'showHint ? \"both\" : \"list\"',\n '[attr.aria-activedescendant]': 'activeDescendant',\n '[attr.aria-owns]': 'isPopupOpen() ? popupId : null',\n '[attr.aria-expanded]': 'isPopupOpen()'\n },\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbTypeahead),\n multi: true\n }]\n }]\n }], null, {\n autocomplete: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n editable: [{\n type: Input\n }],\n focusFirst: [{\n type: Input\n }],\n inputFormatter: [{\n type: Input\n }],\n ngbTypeahead: [{\n type: Input\n }],\n resultFormatter: [{\n type: Input\n }],\n resultTemplate: [{\n type: Input\n }],\n selectOnExact: [{\n type: Input\n }],\n showHint: [{\n type: Input\n }],\n placement: [{\n type: Input\n }],\n popperOptions: [{\n type: Input\n }],\n popupClass: [{\n type: Input\n }],\n selectItem: [{\n type: Output\n }]\n });\n})();\nclass NgbTypeaheadModule {\n static #_ = this.ɵfac = function NgbTypeaheadModule_Factory(t) {\n return new (t || NgbTypeaheadModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbTypeaheadModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTypeaheadModule, [{\n type: NgModule,\n args: [{\n imports: [NgbHighlight, NgbTypeahead],\n exports: [NgbHighlight, NgbTypeahead]\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbOffcanvas`](#/components/offcanvas/api#NgbOffcanvas) service.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all offcanvases used in the application.\n *\n * @since 12.1.0\n */\nclass NgbOffcanvasConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.backdrop = true;\n this.keyboard = true;\n this.position = 'start';\n this.scroll = false;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static #_ = this.ɵfac = function NgbOffcanvasConfig_Factory(t) {\n return new (t || NgbOffcanvasConfig)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbOffcanvasConfig,\n factory: NgbOffcanvasConfig.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbOffcanvasConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A reference to the currently opened (active) offcanvas.\n *\n * Instances of this class can be injected into your component passed as offcanvas content.\n * So you can `.close()` or `.dismiss()` the offcanvas window from your component.\n *\n * @since 12.1.0\n */\nclass NgbActiveOffcanvas {\n /**\n * Closes the offcanvas with an optional `result` value.\n *\n * The `NgbOffcanvasRef.result` promise will be resolved with the provided value.\n */\n close(result) {}\n /**\n * Dismisses the offcanvas with an optional `reason` value.\n *\n * The `NgbOffcanvasRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) {}\n}\n/**\n * A reference to the newly opened offcanvas returned by the `NgbOffcanvas.open()` method.\n *\n * @since 12.1.0\n */\nclass NgbOffcanvasRef {\n /**\n * The instance of a component used for the offcanvas content.\n *\n * When a `TemplateRef` is used as the content or when the offcanvas is closed, will return `undefined`.\n */\n get componentInstance() {\n if (this._contentRef && this._contentRef.componentRef) {\n return this._contentRef.componentRef.instance;\n }\n }\n /**\n * The observable that emits when the offcanvas is closed via the `.close()` method.\n *\n * It will emit the result passed to the `.close()` method.\n */\n get closed() {\n return this._closed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when the offcanvas is dismissed via the `.dismiss()` method.\n *\n * It will emit the reason passed to the `.dismissed()` method by the user, or one of the internal\n * reasons like backdrop click or ESC key press.\n */\n get dismissed() {\n return this._dismissed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when both offcanvas window and backdrop are closed and animations were finished.\n * At this point offcanvas and backdrop elements will be removed from the DOM tree.\n *\n * This observable will be completed after emitting.\n */\n get hidden() {\n return this._hidden.asObservable();\n }\n /**\n * The observable that emits when offcanvas is fully visible and animation was finished.\n * The offcanvas DOM element is always available synchronously after calling 'offcanvas.open()' service.\n *\n * This observable will be completed after emitting.\n * It will not emit, if offcanvas is closed before open animation is finished.\n */\n get shown() {\n return this._panelCmptRef.instance.shown.asObservable();\n }\n constructor(_panelCmptRef, _contentRef, _backdropCmptRef, _beforeDismiss) {\n this._panelCmptRef = _panelCmptRef;\n this._contentRef = _contentRef;\n this._backdropCmptRef = _backdropCmptRef;\n this._beforeDismiss = _beforeDismiss;\n this._closed = new Subject();\n this._dismissed = new Subject();\n this._hidden = new Subject();\n _panelCmptRef.instance.dismissEvent.subscribe(reason => {\n this.dismiss(reason);\n });\n if (_backdropCmptRef) {\n _backdropCmptRef.instance.dismissEvent.subscribe(reason => {\n this.dismiss(reason);\n });\n }\n this.result = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n this.result.then(null, () => {});\n }\n /**\n * Closes the offcanvas with an optional `result` value.\n *\n * The `NgbMobalRef.result` promise will be resolved with the provided value.\n */\n close(result) {\n if (this._panelCmptRef) {\n this._closed.next(result);\n this._resolve(result);\n this._removeOffcanvasElements();\n }\n }\n _dismiss(reason) {\n this._dismissed.next(reason);\n this._reject(reason);\n this._removeOffcanvasElements();\n }\n /**\n * Dismisses the offcanvas with an optional `reason` value.\n *\n * The `NgbOffcanvasRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) {\n if (this._panelCmptRef) {\n if (!this._beforeDismiss) {\n this._dismiss(reason);\n } else {\n const dismiss = this._beforeDismiss();\n if (isPromise(dismiss)) {\n dismiss.then(result => {\n if (result !== false) {\n this._dismiss(reason);\n }\n }, () => {});\n } else if (dismiss !== false) {\n this._dismiss(reason);\n }\n }\n }\n }\n _removeOffcanvasElements() {\n const panelTransition$ = this._panelCmptRef.instance.hide();\n const backdropTransition$ = this._backdropCmptRef ? this._backdropCmptRef.instance.hide() : of(undefined);\n // hiding panel\n panelTransition$.subscribe(() => {\n const {\n nativeElement\n } = this._panelCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._panelCmptRef.destroy();\n if (this._contentRef && this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n this._panelCmptRef = null;\n this._contentRef = null;\n });\n // hiding backdrop\n backdropTransition$.subscribe(() => {\n if (this._backdropCmptRef) {\n const {\n nativeElement\n } = this._backdropCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._backdropCmptRef.destroy();\n this._backdropCmptRef = null;\n }\n });\n // all done\n zip(panelTransition$, backdropTransition$).subscribe(() => {\n this._hidden.next();\n this._hidden.complete();\n });\n }\n}\nvar OffcanvasDismissReasons;\n(function (OffcanvasDismissReasons) {\n OffcanvasDismissReasons[OffcanvasDismissReasons[\"BACKDROP_CLICK\"] = 0] = \"BACKDROP_CLICK\";\n OffcanvasDismissReasons[OffcanvasDismissReasons[\"ESC\"] = 1] = \"ESC\";\n})(OffcanvasDismissReasons || (OffcanvasDismissReasons = {}));\nclass NgbOffcanvasBackdrop {\n constructor() {\n this._nativeElement = inject(ElementRef).nativeElement;\n this._zone = inject(NgZone);\n this.dismissEvent = new EventEmitter();\n }\n ngOnInit() {\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n ngbRunTransition(this._zone, this._nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n }, {\n animation: this.animation,\n runningTransition: 'continue'\n });\n });\n }\n hide() {\n return ngbRunTransition(this._zone, this._nativeElement, ({\n classList\n }) => classList.remove('show'), {\n animation: this.animation,\n runningTransition: 'stop'\n });\n }\n dismiss() {\n if (!this.static) {\n this.dismissEvent.emit(OffcanvasDismissReasons.BACKDROP_CLICK);\n }\n }\n static #_ = this.ɵfac = function NgbOffcanvasBackdrop_Factory(t) {\n return new (t || NgbOffcanvasBackdrop)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbOffcanvasBackdrop,\n selectors: [[\"ngb-offcanvas-backdrop\"]],\n hostVars: 6,\n hostBindings: function NgbOffcanvasBackdrop_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mousedown\", function NgbOffcanvasBackdrop_mousedown_HostBindingHandler() {\n return ctx.dismiss();\n });\n }\n if (rf & 2) {\n i0.ɵɵclassMap(\"offcanvas-backdrop\" + (ctx.backdropClass ? \" \" + ctx.backdropClass : \"\"));\n i0.ɵɵclassProp(\"show\", !ctx.animation)(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n backdropClass: \"backdropClass\",\n static: \"static\"\n },\n outputs: {\n dismissEvent: \"dismiss\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function NgbOffcanvasBackdrop_Template(rf, ctx) {},\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbOffcanvasBackdrop, [{\n type: Component,\n args: [{\n selector: 'ngb-offcanvas-backdrop',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n template: '',\n host: {\n '[class]': '\"offcanvas-backdrop\" + (backdropClass ? \" \" + backdropClass : \"\")',\n '[class.show]': '!animation',\n '[class.fade]': 'animation',\n '(mousedown)': 'dismiss()'\n }\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n backdropClass: [{\n type: Input\n }],\n static: [{\n type: Input\n }],\n dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }]\n });\n})();\nclass NgbOffcanvasPanel {\n constructor() {\n this._document = inject(DOCUMENT);\n this._elRef = inject(ElementRef);\n this._zone = inject(NgZone);\n this._closed$ = new Subject();\n this._elWithFocus = null; // element that is focused prior to offcanvas opening\n this.keyboard = true;\n this.position = 'start';\n this.dismissEvent = new EventEmitter();\n this.shown = new Subject();\n this.hidden = new Subject();\n }\n dismiss(reason) {\n this.dismissEvent.emit(reason);\n }\n ngOnInit() {\n this._elWithFocus = this._document.activeElement;\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n this._show();\n });\n }\n ngOnDestroy() {\n this._disableEventHandling();\n }\n hide() {\n const context = {\n animation: this.animation,\n runningTransition: 'stop'\n };\n const offcanvasTransition$ = ngbRunTransition(this._zone, this._elRef.nativeElement, element => {\n element.classList.remove('showing');\n element.classList.add('hiding');\n return () => element.classList.remove('show', 'hiding');\n }, context);\n offcanvasTransition$.subscribe(() => {\n this.hidden.next();\n this.hidden.complete();\n });\n this._disableEventHandling();\n this._restoreFocus();\n return offcanvasTransition$;\n }\n _show() {\n const context = {\n animation: this.animation,\n runningTransition: 'continue'\n };\n const offcanvasTransition$ = ngbRunTransition(this._zone, this._elRef.nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show', 'showing');\n return () => element.classList.remove('showing');\n }, context);\n offcanvasTransition$.subscribe(() => {\n this.shown.next();\n this.shown.complete();\n });\n this._enableEventHandling();\n this._setFocus();\n }\n _enableEventHandling() {\n const {\n nativeElement\n } = this._elRef;\n this._zone.runOutsideAngular(() => {\n fromEvent(nativeElement, 'keydown').pipe(takeUntil(this._closed$), /* eslint-disable-next-line deprecation/deprecation */\n filter(e => e.which === Key.Escape)).subscribe(event => {\n if (this.keyboard) {\n requestAnimationFrame(() => {\n if (!event.defaultPrevented) {\n this._zone.run(() => this.dismiss(OffcanvasDismissReasons.ESC));\n }\n });\n }\n });\n });\n }\n _disableEventHandling() {\n this._closed$.next();\n }\n _setFocus() {\n const {\n nativeElement\n } = this._elRef;\n if (!nativeElement.contains(document.activeElement)) {\n const autoFocusable = nativeElement.querySelector(`[ngbAutofocus]`);\n const firstFocusable = getFocusableBoundaryElements(nativeElement)[0];\n const elementToFocus = autoFocusable || firstFocusable || nativeElement;\n elementToFocus.focus();\n }\n }\n _restoreFocus() {\n const body = this._document.body;\n const elWithFocus = this._elWithFocus;\n let elementToFocus;\n if (elWithFocus && elWithFocus['focus'] && body.contains(elWithFocus)) {\n elementToFocus = elWithFocus;\n } else {\n elementToFocus = body;\n }\n this._zone.runOutsideAngular(() => {\n setTimeout(() => elementToFocus.focus());\n this._elWithFocus = null;\n });\n }\n static #_ = this.ɵfac = function NgbOffcanvasPanel_Factory(t) {\n return new (t || NgbOffcanvasPanel)();\n };\n static #_2 = this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbOffcanvasPanel,\n selectors: [[\"ngb-offcanvas-panel\"]],\n hostAttrs: [\"role\", \"dialog\", \"tabindex\", \"-1\"],\n hostVars: 5,\n hostBindings: function NgbOffcanvasPanel_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-modal\", true)(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-describedby\", ctx.ariaDescribedBy);\n i0.ɵɵclassMap(\"offcanvas offcanvas-\" + ctx.position + (ctx.panelClass ? \" \" + ctx.panelClass : \"\"));\n }\n },\n inputs: {\n animation: \"animation\",\n ariaLabelledBy: \"ariaLabelledBy\",\n ariaDescribedBy: \"ariaDescribedBy\",\n keyboard: \"keyboard\",\n panelClass: \"panelClass\",\n position: \"position\"\n },\n outputs: {\n dismissEvent: \"dismiss\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function NgbOffcanvasPanel_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbOffcanvasPanel, [{\n type: Component,\n args: [{\n selector: 'ngb-offcanvas-panel',\n standalone: true,\n template: '<ng-content />',\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"offcanvas offcanvas-\" + position + (panelClass ? \" \" + panelClass : \"\")',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.aria-describedby]': 'ariaDescribedBy'\n }\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n ariaLabelledBy: [{\n type: Input\n }],\n ariaDescribedBy: [{\n type: Input\n }],\n keyboard: [{\n type: Input\n }],\n panelClass: [{\n type: Input\n }],\n position: [{\n type: Input\n }],\n dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }]\n });\n})();\nclass NgbOffcanvasStack {\n constructor() {\n this._applicationRef = inject(ApplicationRef);\n this._injector = inject(Injector);\n this._document = inject(DOCUMENT);\n this._scrollBar = inject(ScrollBar);\n this._activePanelCmptHasChanged = new Subject();\n this._scrollBarRestoreFn = null;\n this._backdropAttributes = ['animation', 'backdropClass'];\n this._panelAttributes = ['animation', 'ariaDescribedBy', 'ariaLabelledBy', 'keyboard', 'panelClass', 'position'];\n this._activeInstance = new EventEmitter();\n const ngZone = inject(NgZone);\n // Trap focus on active PanelCmpt\n this._activePanelCmptHasChanged.subscribe(() => {\n if (this._panelCmpt) {\n ngbFocusTrap(ngZone, this._panelCmpt.location.nativeElement, this._activePanelCmptHasChanged);\n }\n });\n }\n _restoreScrollBar() {\n const scrollBarRestoreFn = this._scrollBarRestoreFn;\n if (scrollBarRestoreFn) {\n this._scrollBarRestoreFn = null;\n scrollBarRestoreFn();\n }\n }\n _hideScrollBar() {\n if (!this._scrollBarRestoreFn) {\n this._scrollBarRestoreFn = this._scrollBar.hide();\n }\n }\n open(contentInjector, content, options) {\n const containerEl = options.container instanceof HTMLElement ? options.container : isDefined(options.container) ? this._document.querySelector(options.container) : this._document.body;\n if (!containerEl) {\n throw new Error(`The specified offcanvas container \"${options.container || 'body'}\" was not found in the DOM.`);\n }\n if (!options.scroll) {\n this._hideScrollBar();\n }\n const activeOffcanvas = new NgbActiveOffcanvas();\n const contentRef = this._getContentRef(options.injector || contentInjector, content, activeOffcanvas);\n let backdropCmptRef = options.backdrop !== false ? this._attachBackdrop(containerEl) : undefined;\n let panelCmptRef = this._attachWindowComponent(containerEl, contentRef.nodes);\n let ngbOffcanvasRef = new NgbOffcanvasRef(panelCmptRef, contentRef, backdropCmptRef, options.beforeDismiss);\n this._registerOffcanvasRef(ngbOffcanvasRef);\n this._registerPanelCmpt(panelCmptRef);\n ngbOffcanvasRef.hidden.pipe(finalize(() => this._restoreScrollBar())).subscribe();\n activeOffcanvas.close = result => {\n ngbOffcanvasRef.close(result);\n };\n activeOffcanvas.dismiss = reason => {\n ngbOffcanvasRef.dismiss(reason);\n };\n this._applyPanelOptions(panelCmptRef.instance, options);\n if (backdropCmptRef && backdropCmptRef.instance) {\n this._applyBackdropOptions(backdropCmptRef.instance, options);\n backdropCmptRef.changeDetectorRef.detectChanges();\n }\n panelCmptRef.changeDetectorRef.detectChanges();\n return ngbOffcanvasRef;\n }\n get activeInstance() {\n return this._activeInstance;\n }\n dismiss(reason) {\n this._offcanvasRef?.dismiss(reason);\n }\n hasOpenOffcanvas() {\n return !!this._offcanvasRef;\n }\n _attachBackdrop(containerEl) {\n let backdropCmptRef = createComponent(NgbOffcanvasBackdrop, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector\n });\n this._applicationRef.attachView(backdropCmptRef.hostView);\n containerEl.appendChild(backdropCmptRef.location.nativeElement);\n return backdropCmptRef;\n }\n _attachWindowComponent(containerEl, projectableNodes) {\n let panelCmptRef = createComponent(NgbOffcanvasPanel, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector,\n projectableNodes\n });\n this._applicationRef.attachView(panelCmptRef.hostView);\n containerEl.appendChild(panelCmptRef.location.nativeElement);\n return panelCmptRef;\n }\n _applyPanelOptions(windowInstance, options) {\n this._panelAttributes.forEach(optionName => {\n if (isDefined(options[optionName])) {\n windowInstance[optionName] = options[optionName];\n }\n });\n }\n _applyBackdropOptions(backdropInstance, options) {\n this._backdropAttributes.forEach(optionName => {\n if (isDefined(options[optionName])) {\n backdropInstance[optionName] = options[optionName];\n }\n });\n backdropInstance.static = options.backdrop === 'static';\n }\n _getContentRef(contentInjector, content, activeOffcanvas) {\n if (!content) {\n return new ContentRef([]);\n } else if (content instanceof TemplateRef) {\n return this._createFromTemplateRef(content, activeOffcanvas);\n } else if (isString(content)) {\n return this._createFromString(content);\n } else {\n return this._createFromComponent(contentInjector, content, activeOffcanvas);\n }\n }\n _createFromTemplateRef(templateRef, activeOffcanvas) {\n const context = {\n $implicit: activeOffcanvas,\n close(result) {\n activeOffcanvas.close(result);\n },\n dismiss(reason) {\n activeOffcanvas.dismiss(reason);\n }\n };\n const viewRef = templateRef.createEmbeddedView(context);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n _createFromString(content) {\n const component = this._document.createTextNode(`${content}`);\n return new ContentRef([[component]]);\n }\n _createFromComponent(contentInjector, componentType, context) {\n const elementInjector = Injector.create({\n providers: [{\n provide: NgbActiveOffcanvas,\n useValue: context\n }],\n parent: contentInjector\n });\n const componentRef = createComponent(componentType, {\n environmentInjector: this._applicationRef.injector,\n elementInjector\n });\n const componentNativeEl = componentRef.location.nativeElement;\n this._applicationRef.attachView(componentRef.hostView);\n return new ContentRef([[componentNativeEl]], componentRef.hostView, componentRef);\n }\n _registerOffcanvasRef(ngbOffcanvasRef) {\n const unregisterOffcanvasRef = () => {\n this._offcanvasRef = undefined;\n this._activeInstance.emit(this._offcanvasRef);\n };\n this._offcanvasRef = ngbOffcanvasRef;\n this._activeInstance.emit(this._offcanvasRef);\n ngbOffcanvasRef.result.then(unregisterOffcanvasRef, unregisterOffcanvasRef);\n }\n _registerPanelCmpt(ngbPanelCmpt) {\n this._panelCmpt = ngbPanelCmpt;\n this._activePanelCmptHasChanged.next();\n ngbPanelCmpt.onDestroy(() => {\n this._panelCmpt = undefined;\n this._activePanelCmptHasChanged.next();\n });\n }\n static #_ = this.ɵfac = function NgbOffcanvasStack_Factory(t) {\n return new (t || NgbOffcanvasStack)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbOffcanvasStack,\n factory: NgbOffcanvasStack.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbOffcanvasStack, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [], null);\n})();\n\n/**\n * A service for opening an offcanvas.\n *\n * Creating an offcanvas is straightforward: create a component or a template and pass it as an argument to\n * the `.open()` method.\n *\n * @since 12.1.0\n */\nclass NgbOffcanvas {\n constructor() {\n this._injector = inject(Injector);\n this._offcanvasStack = inject(NgbOffcanvasStack);\n this._config = inject(NgbOffcanvasConfig);\n }\n /**\n * Opens a new offcanvas panel with the specified content and supplied options.\n *\n * Content can be provided as a `TemplateRef` or a component type. If you pass a component type as content,\n * then instances of those components can be injected with an instance of the `NgbActiveOffcanvas` class. You can then\n * use `NgbActiveOffcanvas` methods to close / dismiss offcanvas from \"inside\" of your component.\n *\n * Also see the [`NgbOffcanvasOptions`](#/components/offcanvas/api#NgbOffcanvasOptions) for the list of supported\n * options.\n */\n open(content, options = {}) {\n const combinedOptions = {\n ...this._config,\n animation: this._config.animation,\n ...options\n };\n return this._offcanvasStack.open(this._injector, content, combinedOptions);\n }\n /**\n * Returns an observable that holds the active offcanvas instance.\n */\n get activeInstance() {\n return this._offcanvasStack.activeInstance;\n }\n /**\n * Dismisses the currently displayed offcanvas with the supplied reason.\n */\n dismiss(reason) {\n this._offcanvasStack.dismiss(reason);\n }\n /**\n * Indicates if there is currently an open offcanvas in the application.\n */\n hasOpenOffcanvas() {\n return this._offcanvasStack.hasOpenOffcanvas();\n }\n static #_ = this.ɵfac = function NgbOffcanvas_Factory(t) {\n return new (t || NgbOffcanvas)();\n };\n static #_2 = this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbOffcanvas,\n factory: NgbOffcanvas.ɵfac,\n providedIn: 'root'\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbOffcanvas, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nclass NgbOffcanvasModule {\n static #_ = this.ɵfac = function NgbOffcanvasModule_Factory(t) {\n return new (t || NgbOffcanvasModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbOffcanvasModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbOffcanvasModule, [{\n type: NgModule,\n args: [{}]\n }], null, null);\n})();\nconst NGB_MODULES = [NgbAccordionModule, NgbAlertModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbOffcanvasModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbScrollSpyModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule];\nclass NgbModule {\n static #_ = this.ɵfac = function NgbModule_Factory(t) {\n return new (t || NgbModule)();\n };\n static #_2 = this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbModule\n });\n static #_3 = this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [NGB_MODULES, NgbAccordionModule, NgbAlertModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbOffcanvasModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbScrollSpyModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule]\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModule, [{\n type: NgModule,\n args: [{\n imports: NGB_MODULES,\n exports: NGB_MODULES\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ModalDismissReasons, NgbAccordionBody, NgbAccordionButton, NgbAccordionCollapse, NgbAccordionConfig, NgbAccordionDirective, NgbAccordionHeader, NgbAccordionItem, NgbAccordionModule, NgbAccordionToggle, NgbActiveModal, NgbActiveOffcanvas, NgbAlert, NgbAlertConfig, NgbAlertModule, NgbCalendar, NgbCalendarBuddhist, NgbCalendarEthiopian, NgbCalendarGregorian, NgbCalendarHebrew, NgbCalendarIslamicCivil, NgbCalendarIslamicUmalqura, NgbCalendarPersian, NgbCarousel, NgbCarouselConfig, NgbCarouselModule, NgbCollapse, NgbCollapseConfig, NgbCollapseModule, NgbConfig, NgbDate, NgbDateAdapter, NgbDateNativeAdapter, NgbDateNativeUTCAdapter, NgbDateParserFormatter, NgbDateStructAdapter, NgbDatepicker, NgbDatepickerConfig, NgbDatepickerContent, NgbDatepickerI18n, NgbDatepickerI18nAmharic, NgbDatepickerI18nDefault, NgbDatepickerI18nHebrew, NgbDatepickerKeyboardService, NgbDatepickerModule, NgbDatepickerMonth, NgbDropdown, NgbDropdownAnchor, NgbDropdownButtonItem, NgbDropdownConfig, NgbDropdownItem, NgbDropdownMenu, NgbDropdownModule, NgbDropdownToggle, NgbHighlight, NgbInputDatepicker, NgbInputDatepickerConfig, NgbModal, NgbModalConfig, NgbModalModule, NgbModalRef, NgbModule, NgbNav, NgbNavConfig, NgbNavContent, NgbNavItem, NgbNavItemRole, NgbNavLink, NgbNavLinkBase, NgbNavLinkButton, NgbNavModule, NgbNavOutlet, NgbNavPane, NgbOffcanvas, NgbOffcanvasConfig, NgbOffcanvasModule, NgbOffcanvasRef, NgbPagination, NgbPaginationConfig, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationModule, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPages, NgbPaginationPrevious, NgbPopover, NgbPopoverConfig, NgbPopoverModule, NgbProgressbar, NgbProgressbarConfig, NgbProgressbarModule, NgbProgressbarStacked, NgbRating, NgbRatingConfig, NgbRatingModule, NgbScrollSpy, NgbScrollSpyConfig, NgbScrollSpyFragment, NgbScrollSpyItem, NgbScrollSpyMenu, NgbScrollSpyModule, NgbScrollSpyService, NgbSlide, NgbSlideEventDirection, NgbSlideEventSource, NgbTimeAdapter, NgbTimepicker, NgbTimepickerConfig, NgbTimepickerI18n, NgbTimepickerModule, NgbToast, NgbToastConfig, NgbToastHeader, NgbToastModule, NgbTooltip, NgbTooltipConfig, NgbTooltipModule, NgbTypeahead, NgbTypeaheadConfig, NgbTypeaheadModule, OffcanvasDismissReasons };","map":{"version":3,"names":["i0","Injectable","inject","ElementRef","NgZone","EventEmitter","Directive","Input","Output","ViewContainerRef","TemplateRef","ContentChild","ChangeDetectorRef","DestroyRef","ContentChildren","NgModule","Component","ChangeDetectionStrategy","ViewEncapsulation","PLATFORM_ID","LOCALE_ID","ViewChild","Injector","forwardRef","ApplicationRef","EnvironmentInjector","createComponent","Attribute","ViewChildren","HostBinding","InjectionToken","takeUntilDestroyed","Observable","EMPTY","of","Subject","fromEvent","timer","race","BehaviorSubject","combineLatest","NEVER","zip","merge","endWith","takeUntil","filter","map","distinctUntilChanged","startWith","switchMap","take","tap","withLatestFrom","delay","mergeMap","skip","finalize","isPlatformBrowser","NgTemplateOutlet","FormStyle","TranslationWidth","getLocaleMonthNames","getLocaleDayNames","formatDate","DOCUMENT","PercentPipe","getLocaleDayPeriods","NG_VALUE_ACCESSOR","NG_VALIDATORS","flip","preventOverflow","arrow","createPopperLite","offset","_c0","NgbAlert_Conditional_1_Template","rf","ctx","_r1","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","NgbAlert_Conditional_1_Template_button_click_0_listener","ɵɵrestoreView","ctx_r1","ɵɵnextContext","ɵɵresetView","close","ɵɵelementEnd","NgbCarousel_For_2_Template","NgbCarousel_For_2_Template_button_click_0_listener","slide_r2","$implicit","ctx_r2","focus","select","id","NgbSlideEventSource","INDICATOR","ɵɵclassProp","activeId","ɵɵattribute","NgbCarousel_For_5_ng_template_3_Template","NgbCarousel_For_5_Template","ɵɵi18n","ɵɵtemplate","slide_r4","i_r5","$index","c_r6","$count","ɵɵproperty","ɵɵadvance","ɵɵi18nExp","ɵɵi18nApply","templateRef","NgbCarousel_Conditional_6_Template","_r7","NgbCarousel_Conditional_6_Template_button_click_0_listener","arrowLeft","ɵɵelement","NgbCarousel_Conditional_6_Template_button_click_4_listener","arrowRight","_c1","_c2","_c3","NgbDatepickerNavigationSelect_For_3_Template","ɵɵtext","m_r2","i18n","getMonthFullName","date","year","ɵɵtextInterpolate","getMonthShortName","NgbDatepickerNavigationSelect_For_7_Template","y_r4","getYearNumerals","NgbDatepickerNavigation_Conditional_3_Template","NgbDatepickerNavigation_Conditional_3_Template_ngb_datepicker_navigation_select_select_0_listener","$event","emit","disabled","selectBoxes","months","years","NgbDatepickerNavigation_Conditional_4_For_1_Conditional_0_Template","NgbDatepickerNavigation_Conditional_4_For_1_Conditional_3_Template","NgbDatepickerNavigation_Conditional_4_For_1_Template","month_r3","i_r4","ɵɵconditional","ɵɵtextInterpolate1","getMonthLabel","firstDate","length","NgbDatepickerNavigation_Conditional_4_Template","ɵɵrepeaterCreate","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","NgbDatepickerMonth_Conditional_0_Conditional_1_Template","ctx_r0","getWeekLabel","NgbDatepickerMonth_Conditional_0_For_3_Template","weekday_r2","NgbDatepickerMonth_Conditional_0_Template","datepicker","showWeekNumbers","viewModel","weekdays","NgbDatepickerMonth_For_2_Conditional_0_Conditional_1_Template","week_r3","getWeekNumerals","number","NgbDatepickerMonth_For_2_Conditional_0_For_3_Conditional_1_ng_template_0_Template","NgbDatepickerMonth_For_2_Conditional_0_For_3_Conditional_1_Template","day_r5","dayTemplate","context","NgbDatepickerMonth_For_2_Conditional_0_For_3_Template","_r4","NgbDatepickerMonth_For_2_Conditional_0_For_3_Template_div_click_0_listener","doSelect","preventDefault","hidden","today","tabindex","ariaLabel","NgbDatepickerMonth_For_2_Conditional_0_Template","days","NgbDatepickerMonth_For_2_Template","collapsed","_c4","_c5","_c6","a0","NgbDatepicker_ng_template_0_Template","date_r1","currentMonth_r2","currentMonth","selected_r3","selected","disabled_r4","focused_r5","focused","NgbDatepicker_ng_template_2_For_1_Conditional_1_Template","month_r6","ctx_r6","NgbDatepicker_ng_template_2_For_1_Template","navigation","displayMonths","NgbDatepicker_ng_template_2_Template","model","NgbDatepicker_Conditional_5_Template","_r8","NgbDatepicker_Conditional_5_Template_ngb_datepicker_navigation_navigate_0_listener","onNavigateEvent","NgbDatepicker_Conditional_5_Template_ngb_datepicker_navigation_select_0_listener","onNavigateDateSelect","prevDisabled","nextDisabled","NgbDatepicker_ng_template_8_Template","NgbDatepicker_ng_template_9_Template","_c7","_c8","NgbNavOutlet_For_1_Conditional_0_ng_template_1_Template","NgbNavOutlet_For_1_Conditional_0_Template","item_r1","nav","paneRole","contentTpl","ɵɵpureFunction1","active","isPanelTransitioning","NgbNavOutlet_For_1_Template","isPanelInDom","_c9","a1","a2","pages","_c10","currentPage","_c11","_c12","_c13","NgbPagination_ng_template_0_Template","NgbPagination_ng_template_2_Template","NgbPagination_ng_template_4_Template","NgbPagination_ng_template_6_Template","NgbPagination_ng_template_8_Template","NgbPagination_ng_template_10_Template","page_r1","NgbPagination_ng_template_12_For_1_Conditional_1_ng_template_1_Template","NgbPagination_ng_template_12_For_1_Conditional_1_Template","page_r2","ellipsis_r4","ɵɵreference","tplEllipsis","NgbPagination_ng_template_12_For_1_Conditional_2_ng_template_1_Template","NgbPagination_ng_template_12_For_1_Conditional_2_Template","_r5","NgbPagination_ng_template_12_For_1_Conditional_2_Template_a_click_0_listener","pageNumber_r6","selectPage","disabled_r8","defaultNumber_r9","tplNumber","ɵɵpureFunction3","NgbPagination_ng_template_12_For_1_Template","isEllipsis","NgbPagination_ng_template_12_Template","pages_r10","NgbPagination_Conditional_15_ng_template_2_Template","NgbPagination_Conditional_15_Template","_r11","NgbPagination_Conditional_15_Template_a_click_1_listener","first_r12","previousDisabled","tplFirst","ɵɵpureFunction2","page","NgbPagination_Conditional_16_ng_template_2_Template","NgbPagination_Conditional_16_Template","_r13","NgbPagination_Conditional_16_Template_a_click_1_listener","previous_r14","tplPrevious","NgbPagination_ng_template_17_Template","NgbPagination_Conditional_18_ng_template_2_Template","NgbPagination_Conditional_18_Template","_r15","NgbPagination_Conditional_18_Template_a_click_1_listener","next_r16","tplNext","NgbPagination_Conditional_19_ng_template_2_Template","NgbPagination_Conditional_19_Template","_r17","NgbPagination_Conditional_19_Template_a_click_1_listener","pageCount","last_r18","tplLast","NgbPopoverWindow_Conditional_1_ng_template_1_Template","title","NgbPopoverWindow_Conditional_1_ng_template_3_Template","NgbPopoverWindow_Conditional_1_Template","ɵɵtemplateRefExtractor","simpleTitle_r2","isTitleTemplate","NgbProgressbar_Conditional_1_Template","ɵɵpipe","ɵɵpipeBind1","getValue","max","NgbRating_ng_template_0_Template","fill_r1","fill","NgbRating_For_3_ng_template_3_Template","NgbRating_For_3_Template","_r2","NgbRating_For_3_Template_span_mouseenter_2_listener","index_r3","ctx_r3","enter","NgbRating_For_3_Template_span_click_2_listener","handleClick","t_r5","nextRate","ɵɵstyleProp","isInteractive","starTemplate","starTemplateFromContent","contexts","NgbTimepicker_Conditional_3_Template","NgbTimepicker_Conditional_3_Template_button_click_0_listener","changeHour","hourStep","isSmallSize","isLargeSize","NgbTimepicker_Conditional_5_Template","_r3","NgbTimepicker_Conditional_5_Template_button_click_0_listener","NgbTimepicker_Conditional_9_Template","NgbTimepicker_Conditional_9_Template_button_click_0_listener","changeMinute","minuteStep","NgbTimepicker_Conditional_11_Template","NgbTimepicker_Conditional_11_Template_button_click_0_listener","NgbTimepicker_Conditional_12_Conditional_3_Template","NgbTimepicker_Conditional_12_Conditional_3_Template_button_click_0_listener","changeSecond","secondStep","NgbTimepicker_Conditional_12_Conditional_5_Template","NgbTimepicker_Conditional_12_Conditional_5_Template_button_click_0_listener","NgbTimepicker_Conditional_12_Template","_r6","NgbTimepicker_Conditional_12_Template_input_change_4_listener","updateSecond","target","value","NgbTimepicker_Conditional_12_Template_input_blur_4_listener","handleBlur","NgbTimepicker_Conditional_12_Template_input_input_4_listener","formatInput","NgbTimepicker_Conditional_12_Template_input_keydown_ArrowUp_4_listener","NgbTimepicker_Conditional_12_Template_input_keydown_ArrowDown_4_listener","spinners","formatMinSec","second","readonlyInputs","NgbTimepicker_Conditional_13_Conditional_3_Template","ɵɵelementContainerStart","ɵɵelementContainerEnd","getAfternoonPeriod","NgbTimepicker_Conditional_13_Conditional_4_Template","getMorningPeriod","NgbTimepicker_Conditional_13_Template","_r9","NgbTimepicker_Conditional_13_Template_button_click_2_listener","toggleMeridian","hour","NgbToast_ng_template_0_Template","header","NgbToast_Conditional_2_ng_template_1_Template","NgbToast_Conditional_2_Template","NgbToast_Conditional_2_Template_button_click_2_listener","hide","headerTpl_r3","contentHeaderTpl","NgbHighlight_For_1_Conditional_0_Template","part_r1","ɵɵclassMap","highlightClass","NgbHighlight_For_1_Conditional_1_Template","NgbHighlight_For_1_Template","ɵ$index_1_r3","_c14","result","term","formatter","NgbTypeaheadWindow_ng_template_0_Template","result_r1","term_r2","formatter_r3","NgbTypeaheadWindow_For_3_ng_template_1_Template","NgbTypeaheadWindow_For_3_Template","NgbTypeaheadWindow_For_3_Template_button_mouseenter_0_listener","idx_r5","ctx_r5","markActive","NgbTypeaheadWindow_For_3_Template_button_click_0_listener","result_r7","rt_r8","activeIdx","resultTemplate","environment","animation","transitionTimerDelayMs","NgbConfig","constructor","_","ɵfac","NgbConfig_Factory","t","_2","ɵprov","ɵɵdefineInjectable","token","factory","providedIn","ngDevMode","ɵsetClassMetadata","type","args","NgbAccordionConfig","_ngbConfig","closeOthers","destroyOnHide","_animation","NgbAccordionConfig_Factory","getTransitionDurationMs","element","transitionDelay","transitionDuration","window","getComputedStyle","transitionDelaySec","parseFloat","transitionDurationSec","toInteger","parseInt","toString","undefined","getValueInRange","min","Math","isString","isNumber","isNaN","isInteger","isFinite","floor","isDefined","isPromise","v","then","padNumber","slice","regExpEscape","text","replace","closest","selector","reflow","document","body","getBoundingClientRect","runInZone","zone","source","observer","next","run","error","e","complete","subscribe","removeAccents","str","normalize","getActiveElement","root","activeEl","activeElement","shadowRoot","noopFn","runningTransitions","Map","ngbRunTransition","startFn","options","running","get","runningTransition","transition$","Object","assign","delete","endFn","transitionProperty","pipe","finishTransition$","stop$","set","transitionDurationMs","runOutsideAngular","transitionEnd$","timer$","asObservable","ngbCompleteTransition","measureCollapsingElementDimensionPx","dimension","navigator","classList","hasShownClass","contains","add","style","dimensionSize","remove","ngbCollapsingTransition","direction","maxSize","setInitialClasses","NgbCollapseConfig","horizontal","NgbCollapseConfig_Factory","NgbCollapse","_config","_element","_zone","_afterInit","_isCollapsed","ngbCollapseChange","shown","isCollapsed","_runTransitionWithEvents","ngOnInit","_runTransition","toggle","open","nativeElement","NgbCollapse_Factory","ɵdir","ɵɵdefineDirective","selectors","hostVars","hostBindings","NgbCollapse_HostBindings","inputs","ɵɵInputFlags","None","outputs","exportAs","standalone","host","nextId$3","NgbAccordionBody","_vcr","_item","NgbAccordionItem","_viewRef","ngAfterContentChecked","_bodyTpl","_shouldBeInDOM","_createViewIfNotExists","_destroyViewIfExists","ngOnDestroy","destroy","createEmbeddedView","detectChanges","node","rootNodes","appendChild","NgbAccordionBody_Factory","contentQueries","NgbAccordionBody_ContentQueries","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","first","NgbAccordionBody_HostBindings","static","NgbAccordionCollapse","item","ngbCollapse","NgbAccordionCollapse_Factory","hostAttrs","NgbAccordionCollapse_HostBindings","ɵɵhostProperty","collapseId","toggleId","features","ɵɵHostDirectivesFeature","role","hostDirectives","NgbAccordionToggle","accordion","NgbAccordionDirective","NgbAccordionToggle_Factory","NgbAccordionToggle_HostBindings","NgbAccordionToggle_click_HostBindingHandler","NgbAccordionButton","NgbAccordionButton_Factory","NgbAccordionButton_HostBindings","NgbAccordionHeader","NgbAccordionHeader_Factory","NgbAccordionHeader_HostBindings","_accordion","_cd","_destroyRef","_collapsed","_id","_collapseAnimationRunning","show","_destroyOnHide","collapse","expand","ngAfterContentInit","_collapse","_ensureCanExpand","markForCheck","NgbAccordionItem_Factory","NgbAccordionItem_ContentQueries","NgbAccordionItem_HostBindings","_anItemWasAlreadyExpandedDuringInitialisation","itemId","_getItem","expandAll","_items","find","forEach","collapseAll","isExpanded","toExpand","NgbAccordionDirective_Factory","NgbAccordionDirective_ContentQueries","NgbAccordionDirective_HostBindings","descendants","NGB_ACCORDION_DIRECTIVES","NgbAccordionModule","NgbAccordionModule_Factory","ɵmod","ɵɵdefineNgModule","_3","ɵinj","ɵɵdefineInjector","imports","exports","NgbAlertConfig","dismissible","NgbAlertConfig_Factory","ngbAlertFadingTransition","NgbAlert","_elementRef","closed","transition","NgbAlert_Factory","ɵcmp","ɵɵdefineComponent","NgbAlert_HostBindings","ɵɵStandaloneFeature","ngContentSelectors","decls","vars","consts","i18n_0","ngI18nClosureMode","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_0","goog.getMsg","$localize","template","NgbAlert_Template","ɵɵprojectionDef","ɵɵprojection","styles","encapsulation","changeDetection","OnPush","NgbAlertModule","NgbAlertModule_Factory","NgbCarouselConfig","interval","wrap","keyboard","pauseOnHover","pauseOnFocus","showNavigationArrows","showNavigationIndicators","NgbCarouselConfig_Factory","NgbSlideEventDirection","isBeingAnimated","removeDirectionClasses","removeClasses","ngbCarouselTransitionIn","START","ngbCarouselTransitionOut","nextId$2","carouselId","NgbSlide","slid","NgbSlide_Factory","NgbCarousel","_platformId","_ngZone","_container","_interval$","_mouseHover$","_focused$","_pauseOnHover$","_pauseOnFocus$","_pause$","_wrap$","slide","_transitionIds","mouseHover","prev","ARROW_LEFT","ARROW_RIGHT","hasNextSlide$","slideEvent","current","slides","changes","currentSlideId","slideArr","toArray","currentSlideIdx","_getSlideIdxById","pause","hasNextSlide","TIMER","_getSlideElement","onStable","activeSlide","_getSlideById","ngAfterViewInit","slideId","_cycleToSelected","_getSlideEventDirection","_getPrevSlide","END","_getNextSlide","cycle","slideIdx","transitionIds","selectedSlide","paused","transitions","activeSlideTransition","isShown","push","previousId","nextSlide","currentActiveSlideId","nextActiveSlideId","currentActiveSlideIdx","nextActiveSlideIdx","indexOf","isLastSlide","isFirstSlide","querySelector","NgbCarousel_Factory","NgbCarousel_ContentQueries","NgbCarousel_HostBindings","NgbCarousel_keydown_arrowLeft_HostBindingHandler","NgbCarousel_keydown_arrowRight_HostBindingHandler","NgbCarousel_mouseenter_HostBindingHandler","NgbCarousel_mouseleave_HostBindingHandler","NgbCarousel_focusin_HostBindingHandler","NgbCarousel_focusout_HostBindingHandler","i18n_1","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_1","original_code","i18n_2","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_2","i18n_3","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_3","NgbCarousel_Template","dependencies","class","tabIndex","NgbCarouselModule","NgbCarouselModule_Factory","NgbCollapseModule","NgbCollapseModule_Factory","NgbDate","from","month","day","equals","other","before","after","fromJSDate","jsDate","getFullYear","getMonth","getDate","toJSDate","Date","getTime","setFullYear","NGB_DATEPICKER_CALENDAR_FACTORY","NgbCalendarGregorian","NgbCalendar","NgbCalendar_Factory","useFactory","getDaysPerWeek","getMonths","getWeeksPerMonth","getNext","period","checkMonth","expectedMonth","setMonth","setDate","getPrev","getWeekday","getDay","getWeekNumber","week","firstDayOfWeek","thursdayIndex","time","round","getToday","isValid","ɵNgbCalendarGregorian_BaseFactory","NgbCalendarGregorian_Factory","ɵɵgetInheritedFactory","isChangedDate","dateComparator","isChangedMonth","checkMinBeforeMax","minDate","maxDate","Error","checkDateInRange","isDateSelectable","state","markDisabled","generateSelectBoxMonths","calendar","index","findIndex","generateSelectBoxYears","start","end","numbers","Array","i","nextMonthDisabled","nextDate","prevMonthDisabled","prevDate","buildMonths","force","monthsToReuse","splice","firstDates","reusedIndex","buildMonth","shift","dayTemplateData","outsideDays","weekdayWidth","weekdaysVisible","calendarToday","lastDate","weeks","getFirstViewDate","weekObject","getWeekdayLabel","newDate","getDayAriaLabel","contextUserData","dayObject","data","currentYear","daysPerWeek","firstMonthDate","dayOfWeek","NgbDatepickerI18n","getDayNumerals","weekNumber","NgbDatepickerI18n_Factory","NgbDatepickerI18nDefault","arguments","_locale","_monthsShort","Standalone","Abbreviated","_monthsFull","Wide","weekday","width","weekdaysStartingOnSunday","Short","ɵNgbDatepickerI18nDefault_BaseFactory","NgbDatepickerI18nDefault_Factory","NgbDatepickerService","_VALIDATORS","_state","focusVisible","toValidDate","_calendar","_i18n","_model$","_dateSelect$","focusDate","selectedDate","model$","dateSelect$","patch","keys","key","reduce","obj","part","_nextState","focusedDate","focusSelect","emitEvent","defaultValue","ngbDate","struct","newState","_updateState","_patchContexts","startDate","forceRebuild","yearChanged","monthChanged","NgbDatepickerService_Factory","NavigationEvent","NgbDatepickerConfig","NgbDatepickerConfig_Factory","NGB_DATEPICKER_DATE_ADAPTER_FACTORY","NgbDateStructAdapter","NgbDateAdapter","NgbDateAdapter_Factory","fromModel","toModel","ɵNgbDateStructAdapter_BaseFactory","NgbDateStructAdapter_Factory","Key","NgbDatepickerKeyboardService","processKey","event","which","PageUp","shiftKey","PageDown","End","Home","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Enter","Space","stopPropagation","NgbDatepickerKeyboardService_Factory","NgbDatepickerDayView","isMuted","NgbDatepickerDayView_Factory","NgbDatepickerDayView_HostBindings","attrs","NgbDatepickerDayView_Template","NgbDatepickerNavigationSelect","_month","_year","changeMonth","changeYear","ngAfterViewChecked","monthSelect","yearSelect","NgbDatepickerNavigationSelect_Factory","viewQuery","NgbDatepickerNavigationSelect_Query","ɵɵviewQuery","i18n_4","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_4","i18n_5","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_5","i18n_6","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_6","i18n_7","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_7","NgbDatepickerNavigationSelect_Template","NgbDatepickerNavigationSelect_Template_select_change_0_listener","NgbDatepickerNavigationSelect_Template_select_change_4_listener","read","NgbDatepickerNavigation","navigate","onClickPrev","currentTarget","PREV","onClickNext","NEXT","NgbDatepickerNavigation_Factory","showSelect","i18n_8","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_8","i18n_9","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_9","i18n_10","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_10","i18n_11","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_11","NgbDatepickerNavigation_Template","NgbDatepickerNavigation_Template_button_click_1_listener","NgbDatepickerNavigation_Template_button_click_6_listener","NgbDatepickerContent","NgbDatepickerContent_Factory","NgbDatepickerMonth","_keyboardService","_service","NgbDatepicker","onKeyDown","onDateSelect","NgbDatepickerMonth_Factory","NgbDatepickerMonth_HostBindings","NgbDatepickerMonth_keydown_HostBindingHandler","NgbDatepickerMonth_Template","injector","_nativeElement","_ngbDateAdapter","_controlValue","_publicState","footerTemplate","dateSelect","onChange","onTouched","cd","oldDate","navigationPrevented","newSelectedDate","newFocusedDate","oldFocusedDate","navigateTo","focusIns$","_contentEl","focusOuts$","focusEvent","relatedTarget","name","_defaultDayTemplate","ngOnChanges","currentValue","previousValue","registerOnChange","fn","registerOnTouched","setDisabledState","writeValue","NgbDatepicker_Factory","NgbDatepicker_ContentQueries","contentTemplateFromContent","NgbDatepicker_Query","NgbDatepicker_HostBindings","contentTemplate","ɵɵProvidersFeature","provide","useExisting","multi","ɵɵNgOnChangesFeature","NgbDatepicker_Template","defaultContentTemplate_r9","providers","isContainedIn","array","some","matchesSelectorIfAny","isMobile","isIOS","test","userAgent","maxTouchPoints","isAndroid","wrapAsyncForMobile","setTimeout","ngbAutoClose","closed$","insideElements","ignoreElements","insideSelector","shouldCloseOnClick","button","escapes$","Escape","mouseDowns$","closeableClicks$","shouldClose","FOCUSABLE_ELEMENTS_SELECTOR","join","getFocusableBoundaryElements","list","querySelectorAll","el","ngbFocusTrap","stopFocusTrap$","refocusOnClick","lastFocusedElement$","Tab","tabEvent","focusedElement","last","arr","lastFocusedElement","NgbRTL","documentElement","isRTL","getAttribute","toLowerCase","NgbRTL_Factory","placementSeparator","spacesRegExp","bootstrapPopperMatches","top","bottom","left","right","getPopperClassPlacement","placement","leftClass","rightClass","popperStartPrimaryPlacement","popperEndPrimaryPlacement","popperStartSecondaryPlacement","popperEndSecondaryPlacement","getBootstrapBaseClassPlacement","baseClass","primary","secondary","split","newPrimary","classnames","newSecondary","classname","getPopperOptions","rtl","placementVals","isArray","allowedPlacements","hasAuto","val","search","popperPlacements","_placement","mainPlacement","bsModifier","enabled","phase","bsClassRegExp","RegExp","popperElement","elements","popper","popperPlacement","className","trim","modifiers","fallbackPlacements","noop","arg","ngbPositioning","popperInstance","createPopper","positioningOption","updatePopperOptions","popperOptions","hostElement","targetElement","update","setOptions","NGB_DATEPICKER_PARSER_FORMATTER_FACTORY","NgbDateISOParserFormatter","NgbDateParserFormatter","NgbDateParserFormatter_Factory","parse","dateParts","format","ɵNgbDateISOParserFormatter_BaseFactory","NgbDateISOParserFormatter_Factory","NgbInputDatepickerConfig","autoClose","restoreFocus","ɵNgbInputDatepickerConfig_BaseFactory","NgbInputDatepickerConfig_Factory","addPopperOffset","offset$1","NgbInputDatepicker","_parserFormatter","_elRef","_vcRef","_dateAdapter","_document","_changeDetector","_cRef","_disabled","_elWithFocus","_model","_positioning","_destroyCloseHandlers$","container","positionTarget","_onChange","_onTouched","_validatorChange","isOpen","instance","registerOnValidatorChange","isDisabled","validate","c","_fromDateStruct","invalid","actual","_writeModelValue","manualDateChange","updateView","inputValueChanged","_inputValue","_applyPopupStyling","location","_applyDatepickerInputs","_subscribeForDatepickerOutputs","changeDetectorRef","HTMLElement","appendToBody","_zoneSubscription","_setCloseHandlers","hostView","unsubscribe","elementToFocus","onBlur","onFocus","setInput","_applyPopupClass","datepickerComponentRef","inputName","newClass","oldClass","popupEl","datepickerClass","datepickerInstance","navigateEvent","NgbInputDatepicker_Factory","NgbInputDatepicker_HostBindings","NgbInputDatepicker_input_HostBindingHandler","NgbInputDatepicker_change_HostBindingHandler","NgbInputDatepicker_focus_HostBindingHandler","NgbInputDatepicker_blur_HostBindingHandler","NgbCalendarHijri","_setYear","_setMonth","_setDay","toGregorian","MuhDate","fromGregorian","mDays","getDaysPerMonth","ɵNgbCalendarHijri_BaseFactory","NgbCalendarHijri_Factory","isIslamicLeapYear","hYear","isGregorianLeapYear$1","gDate","getIslamicMonthStart","hMonth","ceil","getIslamicYearStart","mod$1","a","b","GREGORIAN_EPOCH$1","ISLAMIC_EPOCH","NgbCalendarIslamicCivil","gYear","gMonth","gDay","julianDay","hDay","hDate","wjd","depoch","quadricent","dqc","cent","dcent","quad","dquad","yindex","gYearStart","yearday","tjd","leapadj","tjd2","ɵNgbCalendarIslamicCivil_BaseFactory","NgbCalendarIslamicCivil_Factory","GREGORIAN_FIRST_DATE","GREGORIAN_LAST_DATE","HIJRI_BEGIN","HIJRI_END","ONE_DAY","MONTH_LENGTH","getDaysDiff","date1","date2","time1","UTC","time2","diff","abs","NgbCalendarIslamicUmalqura","daysDiff","j","numOfDays","dayDiff","y","m","pos","ɵNgbCalendarIslamicUmalqura_BaseFactory","NgbCalendarIslamicUmalqura_Factory","toGregorian$3","jalaliDate","jdn","jalaliToJulian","julianToGregorian$1","setHours","fromGregorian$3","gdate","g2d","gregorianToJulian$1","julianToJalali","setJalaliYear","yearValue","setJalaliMonth","setJalaliDay","getDaysPerMonth$1","mod","div","trunc","jalCal","jalaliYear","breaks","breaksLength","leapJ","jp","jump","jm","n","leapG","march","leap","gy","julianDayNumber","gm","gd","d","r","gregorianDay","jalaliDay","jalaliMonth","numberOfDays","jYear","jMonth","jDay","NgbCalendarPersian","ɵNgbCalendarPersian_BaseFactory","NgbCalendarPersian_Factory","PARTS_PER_HOUR","PARTS_PER_DAY","PARTS_FRACTIONAL_MONTH","PARTS_PER_MONTH","BAHARAD","HEBREW_DAY_ON_JAN_1_1970","GREGORIAN_EPOCH","isGregorianLeapYear","numberOfFirstDayInYear","monthsBeforeYear","fractionalMonthsBeforeYear","dayNumber","timeOfDay","isHebrewLeapYear","getDaysInGregorianMonth","getHebrewMonths","getDaysInHebrewYear","getDaysInHebrewMonth","yearLength","yearType","leapYear","daysInMonth","getDayNumberInHebrewYear","numberOfDay","setHebrewMonth","setHebrewDay","fromGregorian$2","daysSinceHebEpoch","monthsSinceHebEpoch","firstDayOfThisYear","dayOfYear","toGregorian$2","hebrewDate","diffDays","hebrewNumerals","numerals","hArray0_9","hArray10_19","hArray20_90","hArray100_900","hArray1000_9000","geresh","gershaim","mem","step","unshift","NgbCalendarHebrew","ɵNgbCalendarHebrew_BaseFactory","NgbCalendarHebrew_Factory","WEEKDAYS$1","MONTHS$1","MONTHS_LEAP","NgbDatepickerI18nHebrew","ɵNgbDatepickerI18nHebrew_BaseFactory","NgbDatepickerI18nHebrew_Factory","toGregorian$1","fromGregorian$1","NgbCalendarBuddhist","ɵNgbCalendarBuddhist_BaseFactory","NgbCalendarBuddhist_Factory","JD_EPOCH","DAYSPERMONTH","isEthiopianLeapYear","setEthiopianYear","setEthiopianMonth","setEthiopianDay","ethiopianDate","ethiopianToJulian","julianToGregorian","gregorianToJulian","juilianToEthiopia","jd","z","NgbCalendarEthiopian","dt","ɵNgbCalendarEthiopian_BaseFactory","NgbCalendarEthiopian_Factory","WEEKDAYS","MONTHS","NgbDatepickerI18nAmharic","ɵNgbDatepickerI18nAmharic_BaseFactory","NgbDatepickerI18nAmharic_Factory","NgbDateNativeAdapter","_fromNativeDate","_toNativeDate","ɵNgbDateNativeAdapter_BaseFactory","NgbDateNativeAdapter_Factory","NgbDateNativeUTCAdapter","getUTCFullYear","getUTCMonth","getUTCDate","setUTCFullYear","ɵNgbDateNativeUTCAdapter_BaseFactory","NgbDateNativeUTCAdapter_Factory","NGB_DATEPICKER_DIRECTIVES","NgbDatepickerModule","NgbDatepickerModule_Factory","NgbDropdownConfig","NgbDropdownConfig_Factory","NgbDropdownItem","NgbDropdownItem_Factory","NgbDropdownItem_HostBindings","NgbDropdownButtonItem","NgbDropdownButtonItem_Factory","NgbDropdownButtonItem_HostBindings","NgbDropdownMenu","dropdown","NgbDropdown","NgbDropdownMenu_Factory","NgbDropdownMenu_ContentQueries","menuItems","NgbDropdownMenu_HostBindings","NgbDropdownMenu_keydown_ArrowUp_HostBindingHandler","NgbDropdownMenu_keydown_ArrowDown_HostBindingHandler","NgbDropdownMenu_keydown_Home_HostBindingHandler","NgbDropdownMenu_keydown_End_HostBindingHandler","NgbDropdownMenu_keydown_Enter_HostBindingHandler","NgbDropdownMenu_keydown_Space_HostBindingHandler","NgbDropdownMenu_keydown_Tab_HostBindingHandler","NgbDropdownMenu_keydown_Shift_Tab_HostBindingHandler","NgbDropdownAnchor","NgbDropdownAnchor_Factory","NgbDropdownAnchor_HostBindings","NgbDropdownToggle","ɵNgbDropdownToggle_BaseFactory","NgbDropdownToggle_Factory","NgbDropdownToggle_HostBindings","NgbDropdownToggle_click_HostBindingHandler","NgbDropdownToggle_keydown_ArrowUp_HostBindingHandler","NgbDropdownToggle_keydown_ArrowDown_HostBindingHandler","NgbDropdownToggle_keydown_Home_HostBindingHandler","NgbDropdownToggle_keydown_End_HostBindingHandler","NgbDropdownToggle_keydown_Tab_HostBindingHandler","NgbDropdownToggle_keydown_Shift_Tab_HostBindingHandler","ɵɵInheritDefinitionFeature","_bodyContainer","_open","openChange","display","_applyPlacementClasses","_applyContainer","firstChange","_anchor","_menu","dropdownClass","_applyCustomDropdownClass","_positionMenu","_resetContainer","itemElements","_getMenuElements","position","itemElement","isEventFromToggle","_isEventFromToggle","setAttribute","removeAttribute","focusableElements","_isDropup","menu","_getFirstPlacement","removeChild","dropdownMenuElement","bodyContainer","createElement","zIndex","NgbDropdown_Factory","NgbDropdown_ContentQueries","NgbDropdown_HostBindings","NGB_DROPDOWN_DIRECTIVES","NgbDropdownModule","NgbDropdownModule_Factory","NgbModalConfig","backdrop","fullscreen","NgbModalConfig_Factory","ContentRef","nodes","viewRef","componentRef","PopupService","_componentType","_windowRef","_contentRef","_applicationRef","_injector","_viewContainerRef","content","templateContext","_getContentRef","projectableNodes","windowRef","detachView","attachView","createTextNode","ScrollBar","scrollbarWidth","innerWidth","clientWidth","bodyStyle","overflow","paddingRight","actualPadding","ScrollBar_Factory","NgbModalBackdrop","NgbModalBackdrop_Factory","NgbModalBackdrop_HostBindings","backdropClass","NgbModalBackdrop_Template","NgbActiveModal","dismiss","reason","WINDOW_ATTRIBUTES","BACKDROP_ATTRIBUTES","NgbModalRef","_applyWindowOptions","windowInstance","optionName","_applyBackdropOptions","backdropInstance","_windowCmptRef","_backdropCmptRef","componentInstance","_closed","_hidden","dismissed","_dismissed","_beforeDismiss","dismissEvent","Promise","resolve","reject","_resolve","_reject","_removeModalElements","_dismiss","windowTransition$","backdropTransition$","parentNode","ModalDismissReasons","NgbModalWindow","_closed$","fullscreenClass","_show","_disableEventHandling","dialogTransition$","_dialogEl","transitions$","_restoreFocus","_enableEventHandling","_setFocus","requestAnimationFrame","defaultPrevented","ESC","_bumpBackdrop","preventClose","BACKDROP_CLICK","autoFocusable","firstFocusable","elWithFocus","NgbModalWindow_Factory","NgbModalWindow_Query","NgbModalWindow_HostBindings","ariaLabelledBy","ariaDescribedBy","windowClass","centered","scrollable","size","modalDialogClass","NgbModalWindow_Template","NgbModalStack","_environmentInjector","_scrollBar","_activeWindowCmptHasChanged","_ariaHiddenValues","_scrollBarRestoreFn","_modalRefs","_windowCmpts","_activeInstances","ngZone","activeWindowCmpt","_revertAriaHidden","_setAriaHidden","_restoreScrollBar","scrollBarRestoreFn","_hideScrollBar","contentInjector","containerEl","activeModal","environmentInjector","contentRef","backdropCmptRef","_attachBackdrop","windowCmptRef","_attachWindowComponent","ngbModalRef","beforeDismiss","_registerModalRef","_registerWindowCmpt","activeInstances","dismissAll","hasOpenModals","elementInjector","_createFromTemplateRef","_createFromString","_createFromComponent","component","componentType","create","useValue","parent","componentNativeEl","parentElement","children","sibling","nodeName","clear","unregisterModalRef","ngbWindowCmpt","onDestroy","NgbModalStack_Factory","NgbModal","_modalStack","combinedOptions","NgbModal_Factory","NgbModalModule","NgbModalModule_Factory","NgbNavConfig","orientation","roles","NgbNavConfig_Factory","isValidNavId","navCounter","NgbNavContent","NgbNavContent_Factory","NgbNavItemRole","NgbNav","NgbNavItemRole_Factory","ɵɵinjectAttribute","NgbNavItemRole_HostBindings","decorators","NgbNavItem","_nav","contentTpls","domId","panelDomId","isNgContainer","nodeType","Node","COMMENT_NODE","NgbNavItem_Factory","NgbNavItem_ContentQueries","NgbNavItem_HostBindings","destroyRef","_navigatingWithKeyboard","activeIdChange","navItemChange$","navChange","click","_updateActiveId","onFocusout","enabledLinks","links","link","navItem","nextId","items","_notifyItemChanged","emitNavChange","nextItemId","_getItemById","NgbNav_Factory","NgbNav_ContentQueries","NgbNavLinkBase","NgbNav_HostBindings","NgbNav_keydown_arrowLeft_HostBindingHandler","NgbNav_keydown_arrowRight_HostBindingHandler","NgbNav_keydown_arrowDown_HostBindingHandler","NgbNav_keydown_arrowUp_HostBindingHandler","NgbNav_keydown_Home_HostBindingHandler","NgbNav_keydown_End_HostBindingHandler","NgbNav_focusout_HostBindingHandler","NgbNavLinkBase_Factory","NgbNavLinkBase_HostBindings","NgbNavLinkButton","ɵNgbNavLinkButton_BaseFactory","NgbNavLinkButton_Factory","NgbNavLinkButton_HostBindings","NgbNavLinkButton_click_HostBindingHandler","NgbNavLink","ɵNgbNavLink_BaseFactory","NgbNavLink_Factory","NgbNavLink_HostBindings","NgbNavLink_click_HostBindingHandler","href","ngbNavFadeOutTransition","ngbNavFadeInTransition","NgbNavPane","NgbNavPane_Factory","NgbNavPane_HostBindings","NgbNavOutlet","_activePane","_updateActivePane","nextItem","activeItem","_getPaneForItem","_getActivePane","_panes","pane","NgbNavOutlet_Factory","NgbNavOutlet_Query","NgbNavOutlet_HostBindings","NgbNavOutlet_Template","NGB_NAV_DIRECTIVES","NgbNavModule","NgbNavModule_Factory","NgbPaginationConfig","boundaryLinks","directionLinks","ellipses","pageSize","rotate","NgbPaginationConfig_Factory","NgbPaginationEllipsis","NgbPaginationEllipsis_Factory","NgbPaginationFirst","NgbPaginationFirst_Factory","NgbPaginationLast","NgbPaginationLast_Factory","NgbPaginationNext","NgbPaginationNext_Factory","NgbPaginationNumber","NgbPaginationNumber_Factory","NgbPaginationPrevious","NgbPaginationPrevious_Factory","NgbPaginationPages","NgbPaginationPages_Factory","NgbPagination","pageChange","hasPrevious","hasNext","pageNumber","_updatePages","_applyEllipses","_applyRotation","leftOffset","rightOffset","_applyPagination","_setPageInRange","newPageNo","prevPageNo","collectionSize","newPage","NgbPagination_Factory","NgbPagination_ContentQueries","tplPages","i18n_12","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_12","i18n_13","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_13","i18n_14","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_14","i18n_15","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_15","i18n_16","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_16","i18n_17","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_17","i18n_18","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_18","i18n_19","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_19","NgbPagination_Template","defaultPages_r19","required","NGB_PAGINATION_DIRECTIVES","NgbPaginationModule","NgbPaginationModule_Factory","ALIASES","hover","parseTriggers","triggers","trimmedTriggers","parsedTriggers","trigger","triggerPair","manualTriggers","includes","listenToTriggers","isOpenedFn","openFn","closeFn","openDelayMs","closeDelayMs","activeOpenTriggers","Set","cleanupFns","timeout","addEventListener","listener","removeEventListener","withDelay","delayMs","clearTimeout","openTrigger","closeTrigger","cleanupFn","NgbPopoverConfig","disablePopover","openDelay","closeDelay","NgbPopoverConfig_Factory","nextId$1","NgbPopoverWindow","NgbPopoverWindow_Factory","NgbPopoverWindow_HostBindings","popoverClass","NgbPopoverWindow_Template","NgbPopover","_ngbPopoverWindowId","_popupService","_isDisabled","ngbPopover","popoverContext","popoverTitle","_getPositionTargetElement","_unregisterListenersFn","bind","NgbPopover_Factory","NgbPopoverModule","NgbPopoverModule_Factory","NgbProgressbarConfig","animated","striped","showValue","NgbProgressbarConfig_Factory","NgbProgressbar","_max","stacked","NgbProgressbarStacked","optional","textType","height","getPercentValue","NgbProgressbar_Factory","NgbProgressbar_HostBindings","i18n_20","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_20","NgbProgressbar_Template","ɵɵclassMapInterpolate2","NgbProgressbarStacked_Factory","NgbProgressbarStacked_Template","NgbProgressbarModule","NgbProgressbarModule_Factory","NgbRatingConfig","readonly","resettable","NgbRatingConfig_Factory","NgbRating","_changeDetectorRef","leave","rateChange","ariaValueText","rate","handleKeyDown","_updateMax","_setupContexts","reset","internalChange","newRate","nextValue","k","NgbRating_Factory","NgbRating_ContentQueries","NgbRating_HostBindings","NgbRating_blur_HostBindingHandler","NgbRating_keydown_HostBindingHandler","NgbRating_mouseleave_HostBindingHandler","NgbRating_Template","NgbRatingModule","NgbRatingModule_Factory","toFragmentElement","CSS","escape","getOrderedFragments","fragments","defaultProcessChanges","changeActive","rootElement","scrollSpy","entries","orderedFragments","initialized","gapFragment","visibleFragments","preSelectedFragment","initialFragment","scrollTo","entry","isIntersecting","fragment","boundingClientRect","rootBounds","fragmentIndex","has","NgbScrollSpyConfig","scrollBehavior","processChanges","NgbScrollSpyConfig_Factory","MATCH_THRESHOLD","NgbScrollSpyService","_observer","_containerElement","_fragments","_preRegisteredFragments","_active$","_distinctActive$","_active","_scrollBehavior","_diChangeDetectorRef","active$","_cleanup","rootMargin","threshold","processChangesFn","IntersectionObserver","observe","stop","behavior","fragmentElement","heightPx","offsetTop","lastOffset","scrollTop","matchCounter","containerElement","updateActiveWhenScrollingIsFinished","sameOffsetAsLastTime","unobserve","disconnect","NgbScrollSpyService_Factory","NgbScrollSpyItem","_scrollSpyMenu","NgbScrollSpyMenu","_scrollSpyAPI","_isActive","NgbScrollSpy","_activate","_deactivate","getItem","isActive","NgbScrollSpyItem_Factory","NgbScrollSpyItem_HostBindings","NgbScrollSpyItem_click_HostBindingHandler","_scrollSpyRef","_map","_lastActiveItem","_rebuildMap","NgbScrollSpyMenu_Factory","NgbScrollSpyMenu_ContentQueries","_initialFragment","activeChange","_registerFragment","_unregisterFragment","NgbScrollSpy_Factory","NgbScrollSpyFragment","_scrollSpy","NgbScrollSpyFragment_Factory","NgbScrollSpyFragment_HostBindings","NgbScrollSpyModule","NgbScrollSpyModule_Factory","NgbTime","minute","updateHour","NaN","updateMinute","checkSecs","NgbTimepickerConfig","meridian","seconds","NgbTimepickerConfig_Factory","NGB_DATEPICKER_TIME_ADAPTER_FACTORY","NgbTimeStructAdapter","NgbTimeAdapter","NgbTimeAdapter_Factory","ɵNgbTimeStructAdapter_BaseFactory","NgbTimeStructAdapter_Factory","NgbTimepickerI18n","NgbTimepickerI18n_Factory","NgbTimepickerI18nDefault","_periods","Narrow","ɵNgbTimepickerI18nDefault_BaseFactory","NgbTimepickerI18nDefault_Factory","FILTER_REGEX","NgbTimepicker","_hourStep","_minuteStep","_secondStep","_ngbTimeAdapter","structValue","propagateModelChange","newVal","isPM","enteredHour","input","formatHour","touched","NgbTimepicker_Factory","ɵɵdirectiveInject","i18n_21","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_21","i18n_22","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_22","i18n_23","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_23","i18n_24","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_24","i18n_25","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_25","i18n_26","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_26","i18n_27","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_27","i18n_28","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_28","i18n_29","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_29","i18n_30","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_30","i18n_31","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_31","i18n_32","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_32","i18n_33","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_33","NgbTimepicker_Template","NgbTimepicker_Template_input_change_4_listener","NgbTimepicker_Template_input_blur_4_listener","NgbTimepicker_Template_input_input_4_listener","NgbTimepicker_Template_input_keydown_ArrowUp_4_listener","NgbTimepicker_Template_input_keydown_ArrowDown_4_listener","NgbTimepicker_Template_input_change_10_listener","NgbTimepicker_Template_input_blur_10_listener","NgbTimepicker_Template_input_input_10_listener","NgbTimepicker_Template_input_keydown_ArrowUp_10_listener","NgbTimepicker_Template_input_keydown_ArrowDown_10_listener","NgbTimepickerModule","NgbTimepickerModule_Factory","NgbToastConfig","autohide","ariaLive","NgbToastConfig_Factory","ngbToastFadeInTransition","ngbToastFadeOutTransition","NgbToastHeader","NgbToastHeader_Factory","NgbToast","_init","_clearTimeout","_timeoutID","NgbToast_Factory","NgbToast_ContentQueries","NgbToast_HostBindings","i18n_34","MSG_E__TEKH_VISUAL_STUDIO_WEBUSERMANAGER_DIGITALDATA_USERMANAGER_NGWEBUI_CLIENTAPP_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_34","NgbToast_Template","NgbToastModule","NgbToastModule_Factory","NgbTooltipConfig","disableTooltip","NgbTooltipConfig_Factory","NgbTooltipWindow","NgbTooltipWindow_Factory","NgbTooltipWindow_HostBindings","tooltipClass","NgbTooltipWindow_Template","NgbTooltip","_ngbTooltipWindowId","ngbTooltip","_ngbTooltip","tooltipContext","NgbTooltip_Factory","NgbTooltipModule","NgbTooltipModule_Factory","NgbHighlight","accentSensitive","String","prototype","console","warn","terms","prepareTerm","escapedTerms","toSplit","parts","substring","NgbHighlight_Factory","NgbHighlight_Template","ARIA_LIVE_DELAY","getLiveElement","lazyCreate","Live","_delay","say","message","textContent","setText","Live_Factory","NgbTypeaheadConfig","editable","focusFirst","selectOnExact","showHint","NgbTypeaheadConfig_Factory","NgbTypeaheadWindow","selectEvent","activeChangeEvent","hasActive","results","getActive","_activeChanged","resetActive","NgbTypeaheadWindow_Factory","NgbTypeaheadWindow_HostBindings","NgbTypeaheadWindow_mousedown_HostBindingHandler","popupClass","NgbTypeaheadWindow_Template","nextWindowId","NgbTypeahead","_live","_subscription","_inputValueBackup","_inputValueForSelectOnExact","_valueChanges$","_resubscribeTypeahead$","autocomplete","selectItem","activeDescendant","popupId","_subscribeToUserInput","ngbTypeahead","_unsubscribeFromUserInput","_closePopup","_writeInputValue","_formatItemForInput","dismissPopup","isPopupOpen","_showHint","_selectResult","_openPopup","_selectResultClosePopup","userInputLowerCase","formattedVal","apply","inputFormatter","results$","resultFormatter","count","NgbTypeahead_Factory","NgbTypeahead_HostBindings","NgbTypeahead_blur_HostBindingHandler","NgbTypeahead_keydown_HostBindingHandler","autocapitalize","autocorrect","NgbTypeaheadModule","NgbTypeaheadModule_Factory","NgbOffcanvasConfig","scroll","NgbOffcanvasConfig_Factory","NgbActiveOffcanvas","NgbOffcanvasRef","_panelCmptRef","_removeOffcanvasElements","panelTransition$","OffcanvasDismissReasons","NgbOffcanvasBackdrop","NgbOffcanvasBackdrop_Factory","NgbOffcanvasBackdrop_HostBindings","NgbOffcanvasBackdrop_mousedown_HostBindingHandler","NgbOffcanvasBackdrop_Template","NgbOffcanvasPanel","offcanvasTransition$","NgbOffcanvasPanel_Factory","NgbOffcanvasPanel_HostBindings","panelClass","NgbOffcanvasPanel_Template","NgbOffcanvasStack","_activePanelCmptHasChanged","_backdropAttributes","_panelAttributes","_activeInstance","_panelCmpt","activeOffcanvas","panelCmptRef","ngbOffcanvasRef","_registerOffcanvasRef","_registerPanelCmpt","_applyPanelOptions","activeInstance","_offcanvasRef","hasOpenOffcanvas","unregisterOffcanvasRef","ngbPanelCmpt","NgbOffcanvasStack_Factory","NgbOffcanvas","_offcanvasStack","NgbOffcanvas_Factory","NgbOffcanvasModule","NgbOffcanvasModule_Factory","NGB_MODULES","NgbModule","NgbModule_Factory"],"sources":["E:/TekH/Visual Studio/WebUserManager/DigitalData.UserManager.NgWebUI/ClientApp/node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable, inject, ElementRef, NgZone, EventEmitter, Directive, Input, Output, ViewContainerRef, TemplateRef, ContentChild, ChangeDetectorRef, DestroyRef, ContentChildren, NgModule, Component, ChangeDetectionStrategy, ViewEncapsulation, PLATFORM_ID, LOCALE_ID, ViewChild, Injector, forwardRef, ApplicationRef, EnvironmentInjector, createComponent, Attribute, ViewChildren, HostBinding, InjectionToken } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, EMPTY, of, Subject, fromEvent, timer, race, BehaviorSubject, combineLatest, NEVER, zip, merge } from 'rxjs';\nimport { endWith, takeUntil, filter, map, distinctUntilChanged, startWith, switchMap, take, tap, withLatestFrom, delay, mergeMap, skip, finalize } from 'rxjs/operators';\nimport { isPlatformBrowser, NgTemplateOutlet, FormStyle, TranslationWidth, getLocaleMonthNames, getLocaleDayNames, formatDate, DOCUMENT, PercentPipe, getLocaleDayPeriods } from '@angular/common';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\nimport { flip, preventOverflow, arrow, createPopperLite, offset } from '@popperjs/core';\n\nconst environment = {\n animation: true,\n transitionTimerDelayMs: 5,\n};\n\n/**\n * Global ng-bootstrap config\n *\n * @since 8.0.0\n */\nclass NgbConfig {\n constructor() {\n this.animation = environment.animation;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A configuration service for the [`NgbAccordionDirective`](#/components/accordion/api#NgbAccordionDirective).\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all accordions used in the application.\n */\nclass NgbAccordionConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.closeOthers = false;\n this.destroyOnHide = true;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nfunction getTransitionDurationMs(element) {\n const { transitionDelay, transitionDuration } = window.getComputedStyle(element);\n const transitionDelaySec = parseFloat(transitionDelay);\n const transitionDurationSec = parseFloat(transitionDuration);\n return (transitionDelaySec + transitionDurationSec) * 1000;\n}\n\nfunction toInteger(value) {\n return parseInt(`${value}`, 10);\n}\nfunction toString(value) {\n return value !== undefined && value !== null ? `${value}` : '';\n}\nfunction getValueInRange(value, max, min = 0) {\n return Math.max(Math.min(value, max), min);\n}\nfunction isString(value) {\n return typeof value === 'string';\n}\nfunction isNumber(value) {\n return !isNaN(toInteger(value));\n}\nfunction isInteger(value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isPromise(v) {\n return v && v.then;\n}\nfunction padNumber(value) {\n if (isNumber(value)) {\n return `0${value}`.slice(-2);\n }\n else {\n return '';\n }\n}\nfunction regExpEscape(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\nfunction closest(element, selector) {\n if (!selector) {\n return null;\n }\n /*\n * In certain browsers (e.g. Edge 44.18362.449.0) HTMLDocument does\n * not support `Element.prototype.closest`. To emulate the correct behaviour\n * we return null when the method is missing.\n *\n * Note that in evergreen browsers `closest(document.documentElement, 'html')`\n * will return the document element whilst in Edge null will be returned. This\n * compromise was deemed good enough.\n */\n if (typeof element.closest === 'undefined') {\n return null;\n }\n return element.closest(selector);\n}\n/**\n * Force a browser reflow\n * @param element element where to apply the reflow\n */\nfunction reflow(element) {\n return (element || document.body).getBoundingClientRect();\n}\n/**\n * Creates an observable where all callbacks are executed inside a given zone\n *\n * @param zone\n */\nfunction runInZone(zone) {\n return (source) => {\n return new Observable((observer) => {\n const next = (value) => zone.run(() => observer.next(value));\n const error = (e) => zone.run(() => observer.error(e));\n const complete = () => zone.run(() => observer.complete());\n return source.subscribe({ next, error, complete });\n });\n };\n}\nfunction removeAccents(str) {\n return str.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n}\n/**\n * Returns the active element in the given root.\n * If the active element is inside a shadow root, it is searched recursively.\n */\nfunction getActiveElement(root = document) {\n const activeEl = root?.activeElement;\n if (!activeEl) {\n return null;\n }\n return activeEl.shadowRoot ? getActiveElement(activeEl.shadowRoot) : activeEl;\n}\n\nconst noopFn = () => { };\nconst { transitionTimerDelayMs } = environment;\nconst runningTransitions = new Map();\nconst ngbRunTransition = (zone, element, startFn, options) => {\n // Getting initial context from options\n let context = options.context || {};\n // Checking if there are already running transitions on the given element.\n const running = runningTransitions.get(element);\n if (running) {\n switch (options.runningTransition) {\n // If there is one running and we want for it to 'continue' to run, we have to cancel the new one.\n // We're not emitting any values, but simply completing the observable (EMPTY).\n case 'continue':\n return EMPTY;\n // If there is one running and we want for it to 'stop', we have to complete the running one.\n // We're simply completing the running one and not emitting any values and merging newly provided context\n // with the one coming from currently running transition.\n case 'stop':\n zone.run(() => running.transition$.complete());\n context = Object.assign(running.context, context);\n runningTransitions.delete(element);\n }\n }\n // Running the start function\n const endFn = startFn(element, options.animation, context) || noopFn;\n // If 'prefer-reduced-motion' is enabled, the 'transition' will be set to 'none'.\n // If animations are disabled, we have to emit a value and complete the observable\n // In this case we have to call the end function, but can finish immediately by emitting a value,\n // completing the observable and executing end functions synchronously.\n if (!options.animation || window.getComputedStyle(element).transitionProperty === 'none') {\n zone.run(() => endFn());\n return of(undefined).pipe(runInZone(zone));\n }\n // Starting a new transition\n const transition$ = new Subject();\n const finishTransition$ = new Subject();\n const stop$ = transition$.pipe(endWith(true));\n runningTransitions.set(element, {\n transition$,\n complete: () => {\n finishTransition$.next();\n finishTransition$.complete();\n },\n context,\n });\n const transitionDurationMs = getTransitionDurationMs(element);\n // 1. We have to both listen for the 'transitionend' event and have a 'just-in-case' timer,\n // because 'transitionend' event might not be fired in some browsers, if the transitioning\n // element becomes invisible (ex. when scrolling, making browser tab inactive, etc.). The timer\n // guarantees, that we'll release the DOM element and complete 'ngbRunTransition'.\n // 2. We need to filter transition end events, because they might bubble from shorter transitions\n // on inner DOM elements. We're only interested in the transition on the 'element' itself.\n zone.runOutsideAngular(() => {\n const transitionEnd$ = fromEvent(element, 'transitionend').pipe(takeUntil(stop$), filter(({ target }) => target === element));\n const timer$ = timer(transitionDurationMs + transitionTimerDelayMs).pipe(takeUntil(stop$));\n race(timer$, transitionEnd$, finishTransition$)\n .pipe(takeUntil(stop$))\n .subscribe(() => {\n runningTransitions.delete(element);\n zone.run(() => {\n endFn();\n transition$.next();\n transition$.complete();\n });\n });\n });\n return transition$.asObservable();\n};\nconst ngbCompleteTransition = (element) => {\n runningTransitions.get(element)?.complete();\n};\n\nfunction measureCollapsingElementDimensionPx(element, dimension) {\n // SSR fix for without injecting the PlatformId\n if (typeof navigator === 'undefined') {\n return '0px';\n }\n const { classList } = element;\n const hasShownClass = classList.contains('show');\n if (!hasShownClass) {\n classList.add('show');\n }\n element.style[dimension] = '';\n const dimensionSize = element.getBoundingClientRect()[dimension] + 'px';\n if (!hasShownClass) {\n classList.remove('show');\n }\n return dimensionSize;\n}\nconst ngbCollapsingTransition = (element, animation, context) => {\n let { direction, maxSize, dimension } = context;\n const { classList } = element;\n function setInitialClasses() {\n classList.add('collapse');\n if (direction === 'show') {\n classList.add('show');\n }\n else {\n classList.remove('show');\n }\n }\n // without animations we just need to set initial classes\n if (!animation) {\n setInitialClasses();\n return;\n }\n // No maxHeight -> running the transition for the first time\n if (!maxSize) {\n maxSize = measureCollapsingElementDimensionPx(element, dimension);\n context.maxSize = maxSize;\n // Fix the height before starting the animation\n element.style[dimension] = direction !== 'show' ? maxSize : '0px';\n classList.remove('collapse');\n classList.remove('collapsing');\n classList.remove('show');\n reflow(element);\n // Start the animation\n classList.add('collapsing');\n }\n // Start or revert the animation\n element.style[dimension] = direction === 'show' ? maxSize : '0px';\n return () => {\n setInitialClasses();\n classList.remove('collapsing');\n element.style[dimension] = '';\n };\n};\n\n/**\n * A configuration service for the [NgbCollapse](#/components/collapse/api#NgbCollapse) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all collapses used in the application.\n */\nclass NgbCollapseConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.horizontal = false;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCollapseConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCollapseConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCollapseConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A directive to provide a simple way of hiding and showing elements on the\n * page.\n */\nclass NgbCollapse {\n constructor() {\n this._config = inject(NgbCollapseConfig);\n this._element = inject(ElementRef);\n this._zone = inject(NgZone);\n /**\n * If `true`, collapse will be animated.\n *\n * Animation is triggered only when clicked on triggering element\n * or via the `.toggle()` function\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * Flag used to track if the collapse setter is invoked during initialization\n * or not. This distinction is made in order to avoid running the transition during initialization.\n */\n this._afterInit = false;\n this._isCollapsed = false;\n this.ngbCollapseChange = new EventEmitter();\n /**\n * If `true`, will collapse horizontally.\n *\n * @since 13.1.0\n */\n this.horizontal = this._config.horizontal;\n /**\n * An event emitted when the collapse element is shown, after the transition.\n * It has no payload.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the collapse element is hidden, after the transition.\n * It has no payload.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n }\n /**\n * If `true`, will collapse the element or show it otherwise.\n */\n set collapsed(isCollapsed) {\n if (this._isCollapsed !== isCollapsed) {\n this._isCollapsed = isCollapsed;\n if (this._afterInit) {\n this._runTransitionWithEvents(isCollapsed, this.animation);\n }\n }\n }\n ngOnInit() {\n this._runTransition(this._isCollapsed, false);\n this._afterInit = true;\n }\n /**\n * Triggers collapsing programmatically.\n *\n * If there is a collapsing transition running already, it will be reversed.\n * If the animations are turned off this happens synchronously.\n *\n * @since 8.0.0\n */\n toggle(open = this._isCollapsed) {\n this.collapsed = !open;\n this.ngbCollapseChange.next(this._isCollapsed);\n }\n _runTransition(collapsed, animation) {\n return ngbRunTransition(this._zone, this._element.nativeElement, ngbCollapsingTransition, {\n animation,\n runningTransition: 'stop',\n context: { direction: collapsed ? 'hide' : 'show', dimension: this.horizontal ? 'width' : 'height' },\n });\n }\n _runTransitionWithEvents(collapsed, animation) {\n this._runTransition(collapsed, animation).subscribe(() => {\n if (collapsed) {\n this.hidden.emit();\n }\n else {\n this.shown.emit();\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCollapse, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbCollapse, isStandalone: true, selector: \"[ngbCollapse]\", inputs: { animation: \"animation\", collapsed: [\"ngbCollapse\", \"collapsed\"], horizontal: \"horizontal\" }, outputs: { ngbCollapseChange: \"ngbCollapseChange\", shown: \"shown\", hidden: \"hidden\" }, host: { properties: { \"class.collapse-horizontal\": \"horizontal\" } }, exportAs: [\"ngbCollapse\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCollapse, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbCollapse]',\n exportAs: 'ngbCollapse',\n standalone: true,\n host: {\n '[class.collapse-horizontal]': 'horizontal',\n },\n }]\n }], propDecorators: { animation: [{\n type: Input\n }], collapsed: [{\n type: Input,\n args: ['ngbCollapse']\n }], ngbCollapseChange: [{\n type: Output\n }], horizontal: [{\n type: Input\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }] } });\n\nlet nextId$3 = 0;\n/**\n * A directive that wraps the content of an accordion item's collapsible body.\n *\n * The actual content is provided in a child `ng-template` element.\n * Depending on the state of the accordion, the template will be either inserted or removed from the DOM.\n *\n * @since 14.1.0\n */\nclass NgbAccordionBody {\n constructor() {\n this._vcr = inject(ViewContainerRef);\n this._element = inject((ElementRef)).nativeElement;\n this._item = inject(NgbAccordionItem);\n this._viewRef = null;\n }\n ngAfterContentChecked() {\n if (this._bodyTpl) {\n if (this._item._shouldBeInDOM) {\n this._createViewIfNotExists();\n }\n else {\n this._destroyViewIfExists();\n }\n }\n }\n ngOnDestroy() {\n this._destroyViewIfExists();\n }\n _destroyViewIfExists() {\n if (this._viewRef) {\n this._viewRef.destroy();\n this._viewRef = null;\n }\n }\n _createViewIfNotExists() {\n if (!this._viewRef) {\n this._viewRef = this._vcr.createEmbeddedView(this._bodyTpl);\n this._viewRef.detectChanges();\n for (const node of this._viewRef.rootNodes) {\n this._element.appendChild(node);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionBody, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbAccordionBody, isStandalone: true, selector: \"[ngbAccordionBody]\", host: { properties: { \"class.accordion-body\": \"true\" } }, queries: [{ propertyName: \"_bodyTpl\", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionBody, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbAccordionBody]',\n standalone: true,\n host: { '[class.accordion-body]': 'true' },\n }]\n }], propDecorators: { _bodyTpl: [{\n type: ContentChild,\n args: [TemplateRef, { static: true }]\n }] } });\n/**\n * A directive that wraps the collapsible item's content of the accordion.\n *\n * Internally it reuses the [`NgbCollapse` directive](#/components/collapse)\n *\n * @since 14.1.0\n */\nclass NgbAccordionCollapse {\n constructor() {\n this.item = inject(NgbAccordionItem);\n this.ngbCollapse = inject(NgbCollapse);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionCollapse, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbAccordionCollapse, isStandalone: true, selector: \"[ngbAccordionCollapse]\", host: { attributes: { \"role\": \"region\" }, properties: { \"class.accordion-collapse\": \"true\", \"id\": \"item.collapseId\", \"attr.aria-labelledby\": \"item.toggleId\" } }, exportAs: [\"ngbAccordionCollapse\"], hostDirectives: [{ directive: NgbCollapse }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionCollapse, decorators: [{\n type: Directive,\n args: [{\n exportAs: 'ngbAccordionCollapse',\n standalone: true,\n selector: '[ngbAccordionCollapse]',\n host: {\n role: 'region',\n '[class.accordion-collapse]': 'true',\n '[id]': 'item.collapseId',\n '[attr.aria-labelledby]': 'item.toggleId',\n },\n hostDirectives: [NgbCollapse],\n }]\n }] });\n/**\n * A directive to put on a toggling element inside the accordion item's header.\n * It will register click handlers that toggle the associated panel and will handle accessibility attributes.\n *\n * This directive is used internally by the [`NgbAccordionButton` directive](#/components/accordion/api#NgbAccordionButton).\n *\n * @since 14.1.0\n */\nclass NgbAccordionToggle {\n constructor() {\n this.item = inject(NgbAccordionItem);\n this.accordion = inject(NgbAccordionDirective);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionToggle, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbAccordionToggle, isStandalone: true, selector: \"[ngbAccordionToggle]\", host: { listeners: { \"click\": \"!item.disabled && accordion.toggle(item.id)\" }, properties: { \"id\": \"item.toggleId\", \"class.collapsed\": \"item.collapsed\", \"attr.aria-controls\": \"item.collapseId\", \"attr.aria-expanded\": \"!item.collapsed\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionToggle, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbAccordionToggle]',\n standalone: true,\n host: {\n '[id]': 'item.toggleId',\n '[class.collapsed]': 'item.collapsed',\n '[attr.aria-controls]': 'item.collapseId',\n '[attr.aria-expanded]': '!item.collapsed',\n '(click)': '!item.disabled && accordion.toggle(item.id)',\n },\n }]\n }] });\n/**\n * A directive to put on a button element inside an accordion item's header.\n *\n * If you want a custom markup for the header, you can also use the [`NgbAccordionToggle` directive](#/components/accordion/api#NgbAccordionToggle).\n *\n * @since 14.1.0\n */\nclass NgbAccordionButton {\n constructor() {\n this.item = inject(NgbAccordionItem);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionButton, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbAccordionButton, isStandalone: true, selector: \"button[ngbAccordionButton]\", host: { attributes: { \"type\": \"button\" }, properties: { \"disabled\": \"item.disabled\", \"class.accordion-button\": \"true\" } }, hostDirectives: [{ directive: NgbAccordionToggle }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionButton, decorators: [{\n type: Directive,\n args: [{\n selector: 'button[ngbAccordionButton]',\n standalone: true,\n host: {\n '[disabled]': 'item.disabled',\n '[class.accordion-button]': 'true',\n type: 'button',\n },\n hostDirectives: [NgbAccordionToggle],\n }]\n }] });\n/**\n * A directive that wraps an accordion item's header.\n *\n * @since 14.1.0\n */\nclass NgbAccordionHeader {\n constructor() {\n this.item = inject(NgbAccordionItem);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbAccordionHeader, isStandalone: true, selector: \"[ngbAccordionHeader]\", host: { attributes: { \"role\": \"heading\" }, properties: { \"class.accordion-header\": \"true\", \"class.collapsed\": \"item.collapsed\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionHeader, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbAccordionHeader]',\n standalone: true,\n host: {\n role: 'heading',\n '[class.accordion-header]': 'true',\n '[class.collapsed]': 'item.collapsed',\n },\n }]\n }] });\n/**\n * A directive that wraps an accordion item: a toggleable header + body that collapses.\n *\n * You can get hold of the `NgbAccordionItem` instance in the template with `#item=\"ngbAccordionItem\"`.\n * It allows to check if the item is collapsed or not, toggle the collapse state, etc.\n *\n * Every accordion item has a string ID that is automatically generated in the `ngb-accordion-item-XX` format, unless provided explicitly.\n *\n * @since 14.1.0\n */\nclass NgbAccordionItem {\n constructor() {\n this._accordion = inject(NgbAccordionDirective);\n this._cd = inject(ChangeDetectorRef);\n this._destroyRef = inject(DestroyRef);\n this._collapsed = true;\n this._id = `ngb-accordion-item-${nextId$3++}`;\n this._collapseAnimationRunning = false;\n /**\n * If `true`, the accordion item will be disabled.\n * It won't react to user's clicks, but still will be toggelable programmatically.\n */\n this.disabled = false;\n /**\n * Event emitted before the expanding animation starts. It has no payload.\n *\n * @since 15.1.0\n */\n this.show = new EventEmitter();\n /**\n * Event emitted when the expanding animation is finished. It has no payload.\n */\n this.shown = new EventEmitter();\n /**\n * Event emitted before the collapsing animation starts. It has no payload.\n *\n * @since 15.1.0\n */\n this.hide = new EventEmitter();\n /**\n * Event emitted when the collapsing animation is finished and before the content is removed from DOM.\n * It has no payload.\n */\n this.hidden = new EventEmitter();\n }\n /**\n * Sets the custom ID of the accordion item. It must be unique for the document.\n *\n * @param id The ID of the accordion item, must be a non-empty string\n */\n set id(id) {\n if (isString(id) && id !== '') {\n this._id = id;\n }\n }\n /**\n * If `true`, the content of the accordion item's body will be removed from the DOM. It will be just hidden otherwise.\n *\n * This property can also be set up on the parent [`NgbAccordion` directive](#/components/accordion/api#NgbAccordionDirective).\n */\n set destroyOnHide(destroyOnHide) {\n this._destroyOnHide = destroyOnHide;\n }\n get destroyOnHide() {\n return this._destroyOnHide === undefined ? this._accordion.destroyOnHide : this._destroyOnHide;\n }\n /**\n *\tIf `true`, the accordion item will be collapsed. Otherwise, it will be expanded.\n *\n * @param collapsed New state of the accordion item.\n */\n set collapsed(collapsed) {\n if (collapsed) {\n this.collapse();\n }\n else {\n this.expand();\n }\n }\n get collapsed() {\n return this._collapsed;\n }\n get id() {\n return `${this._id}`;\n }\n get toggleId() {\n return `${this.id}-toggle`;\n }\n get collapseId() {\n return `${this.id}-collapse`;\n }\n get _shouldBeInDOM() {\n return !this.collapsed || this._collapseAnimationRunning || !this.destroyOnHide;\n }\n ngAfterContentInit() {\n const { ngbCollapse } = this._collapse;\n // we need to disable the animation for the first init\n ngbCollapse.animation = false;\n ngbCollapse.collapsed = this.collapsed;\n // we set the animation to the default of the accordion\n ngbCollapse.animation = this._accordion.animation;\n // event forwarding from 'ngbCollapse' to 'ngbAccordion'\n ngbCollapse.hidden.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n // when the animation finishes we can remove the template from DOM\n this._collapseAnimationRunning = false;\n this.hidden.emit();\n this._accordion.hidden.emit(this.id);\n });\n ngbCollapse.shown.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this.shown.emit();\n this._accordion.shown.emit(this.id);\n });\n }\n /**\n * Toggles an accordion item.\n */\n toggle() {\n this.collapsed = !this.collapsed;\n }\n /**\n * Expands an accordion item.\n */\n expand() {\n if (this.collapsed) {\n // checking if accordion allows to expand the panel in respect to 'closeOthers' flag\n if (!this._accordion._ensureCanExpand(this)) {\n return;\n }\n this._collapsed = false;\n // need if the accordion is used inside a component having OnPush change detection strategy\n this._cd.markForCheck();\n // we need force CD to get template into DOM before starting animation to calculate its height correctly\n // this will synchronously put the item body into DOM, because `this._collapsed` was flipped to `false`\n this._cd.detectChanges();\n // firing events before starting animations\n this.show.emit();\n this._accordion.show.emit(this.id);\n // we also need to make sure 'animation' flag is up-to- date\n this._collapse.ngbCollapse.animation = this._accordion.animation;\n this._collapse.ngbCollapse.collapsed = false;\n }\n }\n /**\n * Collapses an accordion item.\n */\n collapse() {\n if (!this.collapsed) {\n this._collapsed = true;\n this._collapseAnimationRunning = true;\n // need if the accordion is used inside a component having OnPush change detection strategy\n this._cd.markForCheck();\n // firing events before starting animations\n this.hide.emit();\n this._accordion.hide.emit(this.id);\n // we also need to make sure 'animation' flag is up-to- date\n this._collapse.ngbCollapse.animation = this._accordion.animation;\n this._collapse.ngbCollapse.collapsed = true;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbAccordionItem, isStandalone: true, selector: \"[ngbAccordionItem]\", inputs: { id: [\"ngbAccordionItem\", \"id\"], destroyOnHide: \"destroyOnHide\", disabled: \"disabled\", collapsed: \"collapsed\" }, outputs: { show: \"show\", shown: \"shown\", hide: \"hide\", hidden: \"hidden\" }, host: { properties: { \"class.accordion-item\": \"true\", \"id\": \"id\" } }, queries: [{ propertyName: \"_collapse\", first: true, predicate: NgbAccordionCollapse, descendants: true, static: true }], exportAs: [\"ngbAccordionItem\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionItem, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbAccordionItem]',\n exportAs: 'ngbAccordionItem',\n standalone: true,\n host: {\n '[class.accordion-item]': 'true',\n '[id]': 'id',\n },\n }]\n }], propDecorators: { _collapse: [{\n type: ContentChild,\n args: [NgbAccordionCollapse, { static: true }]\n }], id: [{\n type: Input,\n args: ['ngbAccordionItem']\n }], destroyOnHide: [{\n type: Input\n }], disabled: [{\n type: Input\n }], collapsed: [{\n type: Input\n }], show: [{\n type: Output\n }], shown: [{\n type: Output\n }], hide: [{\n type: Output\n }], hidden: [{\n type: Output\n }] } });\n/**\n * Accordion is a stack of cards that have a header and collapsible body.\n *\n * This directive is a container for these items and provides an API to handle them.\n *\n * @since 14.1.0\n */\nclass NgbAccordionDirective {\n constructor() {\n this._config = inject(NgbAccordionConfig);\n this._anItemWasAlreadyExpandedDuringInitialisation = false;\n /**\n * If `true`, accordion will be animated.\n */\n this.animation = this._config.animation;\n /**\n * If `true`, only one item at the time can stay open.\n */\n this.closeOthers = this._config.closeOthers;\n /**\n * If `true`, the content of the accordion items body will be removed from the DOM. It will be just hidden otherwise.\n *\n * This property can be overwritten at the [`NgbAccordionItem`](#/components/accordion/api#NgbAccordionItem) level\n */\n this.destroyOnHide = this._config.destroyOnHide;\n /**\n * Event emitted before expanding animation starts. The payload is the id of shown accordion item.\n *\n * @since 15.1.0\n */\n this.show = new EventEmitter();\n /**\n * Event emitted when the expanding animation is finished. The payload is the id of shown accordion item.\n */\n this.shown = new EventEmitter();\n /**\n * Event emitted before the collapsing animation starts. The payload is the id of hidden accordion item.\n *\n * @since 15.1.0\n */\n this.hide = new EventEmitter();\n /**\n * Event emitted when the collapsing animation is finished and before the content is removed from DOM.\n * The payload is the id of hidden accordion item.\n */\n this.hidden = new EventEmitter();\n }\n /**\n * Toggles an item with the given id.\n *\n * It will toggle an item, even if it is disabled.\n *\n * @param itemId The id of the item to toggle.\n */\n toggle(itemId) {\n this._getItem(itemId)?.toggle();\n }\n /**\n * Expands an item with the given id.\n *\n * If `closeOthers` is `true`, it will collapse other panels.\n *\n * @param itemId The id of the item to expand.\n */\n expand(itemId) {\n this._getItem(itemId)?.expand();\n }\n /**\n * Expands all items.\n *\n * If `closeOthers` is `true` and all items are closed, it will open the first one. Otherwise, it will keep the opened one.\n */\n expandAll() {\n if (this._items) {\n if (this.closeOthers) {\n // we check if there is an item open and if it is not we can expand the first item\n // (otherwise we toggle nothing)\n if (!this._items.find((item) => !item.collapsed)) {\n this._items.first.expand();\n }\n }\n else {\n this._items.forEach((item) => item.expand());\n }\n }\n }\n /**\n * Collapses an item with the given id.\n *\n * Has no effect if the `itemId` does not correspond to any item.\n *\n * @param itemId The id of the item to collapse.\n */\n collapse(itemId) {\n this._getItem(itemId)?.collapse();\n }\n /**\n * Collapses all items.\n */\n collapseAll() {\n this._items?.forEach((item) => item.collapse());\n }\n /**\n * Checks if an item with the given id is expanded.\n *\n * If the `itemId` does not correspond to any item, it returns `false`.\n *\n * @param itemId The id of the item to check.\n */\n isExpanded(itemId) {\n const item = this._getItem(itemId);\n return item ? !item.collapsed : false;\n }\n /**\n * It checks, if the item can be expanded in the current state of the accordion.\n * With `closeOthers` there can be only one expanded item at a time.\n *\n * @internal\n */\n _ensureCanExpand(toExpand) {\n if (!this.closeOthers) {\n return true;\n }\n // special case during the initialization of the [collapse]=\"false\" inputs\n // `this._items` QueryList is not yet initialized, but we need to ensure only one item can be expanded at a time\n if (!this._items) {\n if (!this._anItemWasAlreadyExpandedDuringInitialisation) {\n this._anItemWasAlreadyExpandedDuringInitialisation = true;\n return true;\n }\n return false;\n }\n // if there is an expanded item, we need to collapse it first\n this._items.find((item) => !item.collapsed && toExpand !== item)?.collapse();\n return true;\n }\n _getItem(itemId) {\n return this._items?.find((item) => item.id === itemId);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbAccordionDirective, isStandalone: true, selector: \"[ngbAccordion]\", inputs: { animation: \"animation\", closeOthers: \"closeOthers\", destroyOnHide: \"destroyOnHide\" }, outputs: { show: \"show\", shown: \"shown\", hide: \"hide\", hidden: \"hidden\" }, host: { properties: { \"class.accordion\": \"true\" } }, queries: [{ propertyName: \"_items\", predicate: NgbAccordionItem }], exportAs: [\"ngbAccordion\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbAccordion]',\n standalone: true,\n exportAs: 'ngbAccordion',\n host: { '[class.accordion]': 'true' },\n }]\n }], propDecorators: { _items: [{\n type: ContentChildren,\n args: [NgbAccordionItem, { descendants: false }]\n }], animation: [{\n type: Input\n }], closeOthers: [{\n type: Input\n }], destroyOnHide: [{\n type: Input\n }], show: [{\n type: Output\n }], shown: [{\n type: Output\n }], hide: [{\n type: Output\n }], hidden: [{\n type: Output\n }] } });\n\nconst NGB_ACCORDION_DIRECTIVES = [\n NgbAccordionButton,\n NgbAccordionDirective,\n NgbAccordionItem,\n NgbAccordionHeader,\n NgbAccordionToggle,\n NgbAccordionBody,\n NgbAccordionCollapse,\n];\nclass NgbAccordionModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionModule, imports: [NgbAccordionButton,\n NgbAccordionDirective,\n NgbAccordionItem,\n NgbAccordionHeader,\n NgbAccordionToggle,\n NgbAccordionBody,\n NgbAccordionCollapse], exports: [NgbAccordionButton,\n NgbAccordionDirective,\n NgbAccordionItem,\n NgbAccordionHeader,\n NgbAccordionToggle,\n NgbAccordionBody,\n NgbAccordionCollapse] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAccordionModule, decorators: [{\n type: NgModule,\n args: [{\n imports: NGB_ACCORDION_DIRECTIVES,\n exports: NGB_ACCORDION_DIRECTIVES,\n }]\n }] });\n\n/**\n * A configuration service for the [NgbAlert](#/components/alert/api#NgbAlert) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all alerts used in the application.\n */\nclass NgbAlertConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.dismissible = true;\n this.type = 'warning';\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAlertConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAlertConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAlertConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nconst ngbAlertFadingTransition = ({ classList }) => {\n classList.remove('show');\n};\n\n/**\n * Alert is a component to provide contextual feedback messages for user.\n *\n * It supports several alert types and can be dismissed.\n */\nclass NgbAlert {\n constructor() {\n this._config = inject(NgbAlertConfig);\n this._elementRef = inject((ElementRef));\n this._zone = inject(NgZone);\n /**\n * If `true`, alert closing will be animated.\n *\n * Animation is triggered only when clicked on the close button (×)\n * or via the `.close()` function\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * If `true`, alert can be dismissed by the user.\n *\n * The close button (×) will be displayed and you can be notified\n * of the event with the `(closed)` output.\n */\n this.dismissible = this._config.dismissible;\n /**\n * Type of the alert.\n *\n * Bootstrap provides styles for the following types: `'success'`, `'info'`, `'warning'`, `'danger'`, `'primary'`,\n * `'secondary'`, `'light'` and `'dark'`.\n */\n this.type = this._config.type;\n /**\n * An event emitted when the close button is clicked. It has no payload and only relevant for dismissible alerts.\n *\n * @since 8.0.0\n */\n this.closed = new EventEmitter();\n }\n /**\n * Triggers alert closing programmatically (same as clicking on the close button (×)).\n *\n * The returned observable will emit and be completed once the closing transition has finished.\n * If the animations are turned off this happens synchronously.\n *\n * Alternatively you could listen or subscribe to the `(closed)` output\n *\n * @since 8.0.0\n */\n close() {\n const transition = ngbRunTransition(this._zone, this._elementRef.nativeElement, ngbAlertFadingTransition, {\n animation: this.animation,\n runningTransition: 'continue',\n });\n transition.subscribe(() => this.closed.emit());\n return transition;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAlert, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbAlert, isStandalone: true, selector: \"ngb-alert\", inputs: { animation: \"animation\", dismissible: \"dismissible\", type: \"type\" }, outputs: { closed: \"closed\" }, host: { attributes: { \"role\": \"alert\" }, properties: { \"class\": \"\\\"alert show\\\" + (type ? \\\" alert-\\\" + type : \\\"\\\")\", \"class.fade\": \"animation\", \"class.alert-dismissible\": \"dismissible\" } }, exportAs: [\"ngbAlert\"], ngImport: i0, template: `\n\t\t<ng-content />\n\t\t@if (dismissible) {\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"btn-close\"\n\t\t\t\taria-label=\"Close\"\n\t\t\t\ti18n-aria-label=\"@@ngb.alert.close\"\n\t\t\t\t(click)=\"close()\"\n\t\t\t></button>\n\t\t}\n\t`, isInline: true, styles: [\"ngb-alert{display:block}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAlert, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-alert', exportAs: 'ngbAlert', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n role: 'alert',\n '[class]': '\"alert show\" + (type ? \" alert-\" + type : \"\")',\n '[class.fade]': 'animation',\n '[class.alert-dismissible]': 'dismissible',\n }, template: `\n\t\t<ng-content />\n\t\t@if (dismissible) {\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"btn-close\"\n\t\t\t\taria-label=\"Close\"\n\t\t\t\ti18n-aria-label=\"@@ngb.alert.close\"\n\t\t\t\t(click)=\"close()\"\n\t\t\t></button>\n\t\t}\n\t`, styles: [\"ngb-alert{display:block}\\n\"] }]\n }], propDecorators: { animation: [{\n type: Input\n }], dismissible: [{\n type: Input\n }], type: [{\n type: Input\n }], closed: [{\n type: Output\n }] } });\n\nclass NgbAlertModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAlertModule, imports: [NgbAlert], exports: [NgbAlert] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAlertModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbAlertModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [NgbAlert],\n exports: [NgbAlert],\n }]\n }] });\n\n/**\n * A configuration service for the [NgbCarousel](#/components/carousel/api#NgbCarousel) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all carousels used in the application.\n */\nclass NgbCarouselConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.interval = 5000;\n this.wrap = true;\n this.keyboard = true;\n this.pauseOnHover = true;\n this.pauseOnFocus = true;\n this.showNavigationArrows = true;\n this.showNavigationIndicators = true;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCarouselConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCarouselConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCarouselConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * Defines the carousel slide transition direction.\n */\nvar NgbSlideEventDirection;\n(function (NgbSlideEventDirection) {\n NgbSlideEventDirection[\"START\"] = \"start\";\n NgbSlideEventDirection[\"END\"] = \"end\";\n})(NgbSlideEventDirection || (NgbSlideEventDirection = {}));\nconst isBeingAnimated = ({ classList }) => {\n return classList.contains('carousel-item-start') || classList.contains('carousel-item-end');\n};\nconst removeDirectionClasses = (classList) => {\n classList.remove('carousel-item-start');\n classList.remove('carousel-item-end');\n};\nconst removeClasses = (classList) => {\n removeDirectionClasses(classList);\n classList.remove('carousel-item-prev');\n classList.remove('carousel-item-next');\n};\nconst ngbCarouselTransitionIn = (element, animation, { direction }) => {\n const { classList } = element;\n if (!animation) {\n removeDirectionClasses(classList);\n removeClasses(classList);\n classList.add('active');\n return;\n }\n if (isBeingAnimated(element)) {\n // Revert the transition\n removeDirectionClasses(classList);\n }\n else {\n // For the 'in' transition, a 'pre-class' is applied to the element to ensure its visibility\n classList.add('carousel-item-' + (direction === NgbSlideEventDirection.START ? 'next' : 'prev'));\n reflow(element);\n classList.add('carousel-item-' + direction);\n }\n return () => {\n removeClasses(classList);\n classList.add('active');\n };\n};\nconst ngbCarouselTransitionOut = (element, animation, { direction }) => {\n const { classList } = element;\n if (!animation) {\n removeDirectionClasses(classList);\n removeClasses(classList);\n classList.remove('active');\n return;\n }\n // direction is left or right, depending on the way the slide goes out.\n if (isBeingAnimated(element)) {\n // Revert the transition\n removeDirectionClasses(classList);\n }\n else {\n classList.add('carousel-item-' + direction);\n }\n return () => {\n removeClasses(classList);\n classList.remove('active');\n };\n};\n\nlet nextId$2 = 0;\nlet carouselId = 0;\n/**\n * A directive that wraps the individual carousel slide.\n */\nclass NgbSlide {\n constructor() {\n this.templateRef = inject(TemplateRef);\n /**\n * Slide id that must be unique for the entire document.\n *\n * If not provided, will be generated in the `ngb-slide-xx` format.\n */\n this.id = `ngb-slide-${nextId$2++}`;\n /**\n * An event emitted when the slide transition is finished\n *\n * @since 8.0.0\n */\n this.slid = new EventEmitter();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbSlide, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbSlide, isStandalone: true, selector: \"ng-template[ngbSlide]\", inputs: { id: \"id\" }, outputs: { slid: \"slid\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbSlide, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbSlide]', standalone: true }]\n }], propDecorators: { id: [{\n type: Input\n }], slid: [{\n type: Output\n }] } });\n/**\n * Carousel is a component to easily create and control slideshows.\n *\n * Allows to set intervals, change the way user interacts with the slides and provides a programmatic API.\n */\nclass NgbCarousel {\n constructor() {\n this.NgbSlideEventSource = NgbSlideEventSource;\n this._config = inject(NgbCarouselConfig);\n this._platformId = inject(PLATFORM_ID);\n this._ngZone = inject(NgZone);\n this._cd = inject(ChangeDetectorRef);\n this._container = inject(ElementRef);\n this._destroyRef = inject(DestroyRef);\n this._interval$ = new BehaviorSubject(this._config.interval);\n this._mouseHover$ = new BehaviorSubject(false);\n this._focused$ = new BehaviorSubject(false);\n this._pauseOnHover$ = new BehaviorSubject(this._config.pauseOnHover);\n this._pauseOnFocus$ = new BehaviorSubject(this._config.pauseOnFocus);\n this._pause$ = new BehaviorSubject(false);\n this._wrap$ = new BehaviorSubject(this._config.wrap);\n this.id = `ngb-carousel-${carouselId++}`;\n /**\n * A flag to enable/disable the animations.\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * If `true`, allows to interact with carousel using keyboard 'arrow left' and 'arrow right'.\n */\n this.keyboard = this._config.keyboard;\n /**\n * If `true`, 'previous' and 'next' navigation arrows will be visible on the slide.\n *\n * @since 2.2.0\n */\n this.showNavigationArrows = this._config.showNavigationArrows;\n /**\n * If `true`, navigation indicators at the bottom of the slide will be visible.\n *\n * @since 2.2.0\n */\n this.showNavigationIndicators = this._config.showNavigationIndicators;\n /**\n * An event emitted just before the slide transition starts.\n *\n * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details.\n */\n this.slide = new EventEmitter();\n /**\n * An event emitted right after the slide transition is completed.\n *\n * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details.\n *\n * @since 8.0.0\n */\n this.slid = new EventEmitter();\n /*\n * Keep the ids of the panels currently transitionning\n * in order to allow only the transition revertion\n */\n this._transitionIds = null;\n }\n /**\n * Time in milliseconds before the next slide is shown.\n */\n set interval(value) {\n this._interval$.next(value);\n }\n get interval() {\n return this._interval$.value;\n }\n /**\n * If `true`, will 'wrap' the carousel by switching from the last slide back to the first.\n */\n set wrap(value) {\n this._wrap$.next(value);\n }\n get wrap() {\n return this._wrap$.value;\n }\n /**\n * If `true`, will pause slide switching when mouse cursor hovers the slide.\n *\n * @since 2.2.0\n */\n set pauseOnHover(value) {\n this._pauseOnHover$.next(value);\n }\n get pauseOnHover() {\n return this._pauseOnHover$.value;\n }\n /**\n * If `true`, will pause slide switching when the focus is inside the carousel.\n */\n set pauseOnFocus(value) {\n this._pauseOnFocus$.next(value);\n }\n get pauseOnFocus() {\n return this._pauseOnFocus$.value;\n }\n set mouseHover(value) {\n this._mouseHover$.next(value);\n }\n get mouseHover() {\n return this._mouseHover$.value;\n }\n set focused(value) {\n this._focused$.next(value);\n }\n get focused() {\n return this._focused$.value;\n }\n arrowLeft() {\n this.focus();\n this.prev(NgbSlideEventSource.ARROW_LEFT);\n }\n arrowRight() {\n this.focus();\n this.next(NgbSlideEventSource.ARROW_RIGHT);\n }\n ngAfterContentInit() {\n // setInterval() doesn't play well with SSR and protractor,\n // so we should run it in the browser and outside Angular\n if (isPlatformBrowser(this._platformId)) {\n this._ngZone.runOutsideAngular(() => {\n const hasNextSlide$ = combineLatest([\n this.slide.pipe(map((slideEvent) => slideEvent.current), startWith(this.activeId)),\n this._wrap$,\n this.slides.changes.pipe(startWith(null)),\n ]).pipe(map(([currentSlideId, wrap]) => {\n const slideArr = this.slides.toArray();\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n return wrap ? slideArr.length > 1 : currentSlideIdx < slideArr.length - 1;\n }), distinctUntilChanged());\n combineLatest([\n this._pause$,\n this._pauseOnHover$,\n this._mouseHover$,\n this._pauseOnFocus$,\n this._focused$,\n this._interval$,\n hasNextSlide$,\n ])\n .pipe(map(([pause, pauseOnHover, mouseHover, pauseOnFocus, focused, interval, hasNextSlide]) => pause || (pauseOnHover && mouseHover) || (pauseOnFocus && focused) || !hasNextSlide ? 0 : interval), distinctUntilChanged(), switchMap((interval) => (interval > 0 ? timer(interval, interval) : NEVER)), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => this._ngZone.run(() => this.next(NgbSlideEventSource.TIMER)));\n });\n }\n this.slides.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._transitionIds?.forEach((id) => ngbCompleteTransition(this._getSlideElement(id)));\n this._transitionIds = null;\n this._cd.markForCheck();\n // The following code need to be done asynchronously, after the dom becomes stable,\n // otherwise all changes will be undone.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n for (const { id } of this.slides) {\n const element = this._getSlideElement(id);\n if (id === this.activeId) {\n element.classList.add('active');\n }\n else {\n element.classList.remove('active');\n }\n }\n });\n });\n }\n ngAfterContentChecked() {\n let activeSlide = this._getSlideById(this.activeId);\n this.activeId = activeSlide ? activeSlide.id : this.slides.length ? this.slides.first.id : '';\n }\n ngAfterViewInit() {\n // Initialize the 'active' class (not managed by the template)\n if (this.activeId) {\n const element = this._getSlideElement(this.activeId);\n if (element) {\n element.classList.add('active');\n }\n }\n }\n /**\n * Navigates to a slide with the specified identifier.\n */\n select(slideId, source) {\n this._cycleToSelected(slideId, this._getSlideEventDirection(this.activeId, slideId), source);\n }\n /**\n * Navigates to the previous slide.\n */\n prev(source) {\n this._cycleToSelected(this._getPrevSlide(this.activeId), NgbSlideEventDirection.END, source);\n }\n /**\n * Navigates to the next slide.\n */\n next(source) {\n this._cycleToSelected(this._getNextSlide(this.activeId), NgbSlideEventDirection.START, source);\n }\n /**\n * Pauses cycling through the slides.\n */\n pause() {\n this._pause$.next(true);\n }\n /**\n * Restarts cycling through the slides from start to end.\n */\n cycle() {\n this._pause$.next(false);\n }\n /**\n * Set the focus on the carousel.\n */\n focus() {\n this._container.nativeElement.focus();\n }\n _cycleToSelected(slideIdx, direction, source) {\n const transitionIds = this._transitionIds;\n if (transitionIds && (transitionIds[0] !== slideIdx || transitionIds[1] !== this.activeId)) {\n // Revert prevented\n return;\n }\n let selectedSlide = this._getSlideById(slideIdx);\n if (selectedSlide && selectedSlide.id !== this.activeId) {\n this._transitionIds = [this.activeId, slideIdx];\n this.slide.emit({\n prev: this.activeId,\n current: selectedSlide.id,\n direction: direction,\n paused: this._pause$.value,\n source,\n });\n const options = {\n animation: this.animation,\n runningTransition: 'stop',\n context: { direction },\n };\n const transitions = [];\n const activeSlide = this._getSlideById(this.activeId);\n if (activeSlide) {\n const activeSlideTransition = ngbRunTransition(this._ngZone, this._getSlideElement(activeSlide.id), ngbCarouselTransitionOut, options);\n activeSlideTransition.subscribe(() => {\n activeSlide.slid.emit({ isShown: false, direction, source });\n });\n transitions.push(activeSlideTransition);\n }\n const previousId = this.activeId;\n this.activeId = selectedSlide.id;\n const nextSlide = this._getSlideById(this.activeId);\n const transition = ngbRunTransition(this._ngZone, this._getSlideElement(selectedSlide.id), ngbCarouselTransitionIn, options);\n transition.subscribe(() => {\n nextSlide?.slid.emit({ isShown: true, direction, source });\n });\n transitions.push(transition);\n zip(...transitions)\n .pipe(take(1))\n .subscribe(() => {\n this._transitionIds = null;\n this.slid.emit({\n prev: previousId,\n current: selectedSlide.id,\n direction: direction,\n paused: this._pause$.value,\n source,\n });\n });\n }\n // we get here after the interval fires or any external API call like next(), prev() or select()\n this._cd.markForCheck();\n }\n _getSlideEventDirection(currentActiveSlideId, nextActiveSlideId) {\n const currentActiveSlideIdx = this._getSlideIdxById(currentActiveSlideId);\n const nextActiveSlideIdx = this._getSlideIdxById(nextActiveSlideId);\n return currentActiveSlideIdx > nextActiveSlideIdx ? NgbSlideEventDirection.END : NgbSlideEventDirection.START;\n }\n _getSlideById(slideId) {\n return this.slides.find((slide) => slide.id === slideId) || null;\n }\n _getSlideIdxById(slideId) {\n const slide = this._getSlideById(slideId);\n return slide != null ? this.slides.toArray().indexOf(slide) : -1;\n }\n _getNextSlide(currentSlideId) {\n const slideArr = this.slides.toArray();\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n const isLastSlide = currentSlideIdx === slideArr.length - 1;\n return isLastSlide\n ? this.wrap\n ? slideArr[0].id\n : slideArr[slideArr.length - 1].id\n : slideArr[currentSlideIdx + 1].id;\n }\n _getPrevSlide(currentSlideId) {\n const slideArr = this.slides.toArray();\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n const isFirstSlide = currentSlideIdx === 0;\n return isFirstSlide\n ? this.wrap\n ? slideArr[slideArr.length - 1].id\n : slideArr[0].id\n : slideArr[currentSlideIdx - 1].id;\n }\n _getSlideElement(slideId) {\n return this._container.nativeElement.querySelector(`#slide-${slideId}`);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCarousel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbCarousel, isStandalone: true, selector: \"ngb-carousel\", inputs: { animation: \"animation\", activeId: \"activeId\", interval: \"interval\", wrap: \"wrap\", keyboard: \"keyboard\", pauseOnHover: \"pauseOnHover\", pauseOnFocus: \"pauseOnFocus\", showNavigationArrows: \"showNavigationArrows\", showNavigationIndicators: \"showNavigationIndicators\" }, outputs: { slide: \"slide\", slid: \"slid\" }, host: { attributes: { \"tabIndex\": \"0\" }, listeners: { \"keydown.arrowLeft\": \"keyboard && arrowLeft()\", \"keydown.arrowRight\": \"keyboard && arrowRight()\", \"mouseenter\": \"mouseHover = true\", \"mouseleave\": \"mouseHover = false\", \"focusin\": \"focused = true\", \"focusout\": \"focused = false\" }, properties: { \"style.display\": \"\\\"block\\\"\", \"attr.aria-activedescendant\": \"'slide-' + activeId\" }, classAttribute: \"carousel slide\" }, queries: [{ propertyName: \"slides\", predicate: NgbSlide }], exportAs: [\"ngbCarousel\"], ngImport: i0, template: `\n\t\t<div class=\"carousel-indicators\" [class.visually-hidden]=\"!showNavigationIndicators\" role=\"tablist\">\n\t\t\t@for (slide of slides; track slide) {\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tdata-bs-target\n\t\t\t\t\t[class.active]=\"slide.id === activeId\"\n\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t[attr.aria-labelledby]=\"'slide-' + slide.id\"\n\t\t\t\t\t[attr.aria-controls]=\"'slide-' + slide.id\"\n\t\t\t\t\t[attr.aria-selected]=\"slide.id === activeId\"\n\t\t\t\t\t(click)=\"focus(); select(slide.id, NgbSlideEventSource.INDICATOR)\"\n\t\t\t\t></button>\n\t\t\t}\n\t\t</div>\n\t\t<div class=\"carousel-inner\">\n\t\t\t@for (slide of slides; track slide; let i = $index; let c = $count) {\n\t\t\t\t<div class=\"carousel-item\" [id]=\"'slide-' + slide.id\" role=\"tabpanel\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"visually-hidden\"\n\t\t\t\t\t\ti18n=\"Currently selected slide number read by screen reader@@ngb.carousel.slide-number\"\n\t\t\t\t\t>\n\t\t\t\t\t\tSlide {{ i + 1 }} of {{ c }}\n\t\t\t\t\t</span>\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"slide.templateRef\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t\t@if (showNavigationArrows) {\n\t\t\t<button\n\t\t\t\tclass=\"carousel-control-prev\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t(click)=\"arrowLeft()\"\n\t\t\t\t[attr.aria-labelledby]=\"id + '-previous'\"\n\t\t\t>\n\t\t\t\t<span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.carousel.previous\" [id]=\"id + '-previous'\">Previous</span>\n\t\t\t</button>\n\t\t\t<button class=\"carousel-control-next\" type=\"button\" (click)=\"arrowRight()\" [attr.aria-labelledby]=\"id + '-next'\">\n\t\t\t\t<span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.carousel.next\" [id]=\"id + '-next'\">Next</span>\n\t\t\t</button>\n\t\t}\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCarousel, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-carousel',\n exportAs: 'ngbCarousel',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'carousel slide',\n '[style.display]': '\"block\"',\n tabIndex: '0',\n '(keydown.arrowLeft)': 'keyboard && arrowLeft()',\n '(keydown.arrowRight)': 'keyboard && arrowRight()',\n '(mouseenter)': 'mouseHover = true',\n '(mouseleave)': 'mouseHover = false',\n '(focusin)': 'focused = true',\n '(focusout)': 'focused = false',\n '[attr.aria-activedescendant]': `'slide-' + activeId`,\n },\n template: `\n\t\t<div class=\"carousel-indicators\" [class.visually-hidden]=\"!showNavigationIndicators\" role=\"tablist\">\n\t\t\t@for (slide of slides; track slide) {\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tdata-bs-target\n\t\t\t\t\t[class.active]=\"slide.id === activeId\"\n\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t[attr.aria-labelledby]=\"'slide-' + slide.id\"\n\t\t\t\t\t[attr.aria-controls]=\"'slide-' + slide.id\"\n\t\t\t\t\t[attr.aria-selected]=\"slide.id === activeId\"\n\t\t\t\t\t(click)=\"focus(); select(slide.id, NgbSlideEventSource.INDICATOR)\"\n\t\t\t\t></button>\n\t\t\t}\n\t\t</div>\n\t\t<div class=\"carousel-inner\">\n\t\t\t@for (slide of slides; track slide; let i = $index; let c = $count) {\n\t\t\t\t<div class=\"carousel-item\" [id]=\"'slide-' + slide.id\" role=\"tabpanel\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"visually-hidden\"\n\t\t\t\t\t\ti18n=\"Currently selected slide number read by screen reader@@ngb.carousel.slide-number\"\n\t\t\t\t\t>\n\t\t\t\t\t\tSlide {{ i + 1 }} of {{ c }}\n\t\t\t\t\t</span>\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"slide.templateRef\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t\t@if (showNavigationArrows) {\n\t\t\t<button\n\t\t\t\tclass=\"carousel-control-prev\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t(click)=\"arrowLeft()\"\n\t\t\t\t[attr.aria-labelledby]=\"id + '-previous'\"\n\t\t\t>\n\t\t\t\t<span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.carousel.previous\" [id]=\"id + '-previous'\">Previous</span>\n\t\t\t</button>\n\t\t\t<button class=\"carousel-control-next\" type=\"button\" (click)=\"arrowRight()\" [attr.aria-labelledby]=\"id + '-next'\">\n\t\t\t\t<span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.carousel.next\" [id]=\"id + '-next'\">Next</span>\n\t\t\t</button>\n\t\t}\n\t`,\n }]\n }], propDecorators: { slides: [{\n type: ContentChildren,\n args: [NgbSlide]\n }], animation: [{\n type: Input\n }], activeId: [{\n type: Input\n }], interval: [{\n type: Input\n }], wrap: [{\n type: Input\n }], keyboard: [{\n type: Input\n }], pauseOnHover: [{\n type: Input\n }], pauseOnFocus: [{\n type: Input\n }], showNavigationArrows: [{\n type: Input\n }], showNavigationIndicators: [{\n type: Input\n }], slide: [{\n type: Output\n }], slid: [{\n type: Output\n }] } });\nvar NgbSlideEventSource;\n(function (NgbSlideEventSource) {\n NgbSlideEventSource[\"TIMER\"] = \"timer\";\n NgbSlideEventSource[\"ARROW_LEFT\"] = \"arrowLeft\";\n NgbSlideEventSource[\"ARROW_RIGHT\"] = \"arrowRight\";\n NgbSlideEventSource[\"INDICATOR\"] = \"indicator\";\n})(NgbSlideEventSource || (NgbSlideEventSource = {}));\n\nclass NgbCarouselModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCarouselModule, imports: [NgbCarousel, NgbSlide], exports: [NgbCarousel, NgbSlide] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCarouselModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCarouselModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [NgbCarousel, NgbSlide],\n exports: [NgbCarousel, NgbSlide],\n }]\n }] });\n\nclass NgbCollapseModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCollapseModule, imports: [NgbCollapse], exports: [NgbCollapse] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCollapseModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCollapseModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [NgbCollapse],\n exports: [NgbCollapse],\n }]\n }] });\n\n/**\n * A simple class that represents a date that datepicker also uses internally.\n *\n * It is the implementation of the `NgbDateStruct` interface that adds some convenience methods,\n * like `.equals()`, `.before()`, etc.\n *\n * All datepicker APIs consume `NgbDateStruct`, but return `NgbDate`.\n *\n * In many cases it is simpler to manipulate these objects together with\n * [`NgbCalendar`](#/components/datepicker/api#NgbCalendar) than native JS Dates.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\n *\n * @since 3.0.0\n */\nclass NgbDate {\n /**\n * A **static method** that creates a new date object from the `NgbDateStruct`,\n *\n * ex. `NgbDate.from({year: 2000, month: 5, day: 1})`.\n *\n * If the `date` is already of `NgbDate` type, the method will return the same object.\n */\n static from(date) {\n if (date instanceof NgbDate) {\n return date;\n }\n return date ? new NgbDate(date.year, date.month, date.day) : null;\n }\n constructor(year, month, day) {\n this.year = isInteger(year) ? year : null;\n this.month = isInteger(month) ? month : null;\n this.day = isInteger(day) ? day : null;\n }\n /**\n * Checks if the current date is equal to another date.\n */\n equals(other) {\n return other != null && this.year === other.year && this.month === other.month && this.day === other.day;\n }\n /**\n * Checks if the current date is before another date.\n */\n before(other) {\n if (!other) {\n return false;\n }\n if (this.year === other.year) {\n if (this.month === other.month) {\n return this.day === other.day ? false : this.day < other.day;\n }\n else {\n return this.month < other.month;\n }\n }\n else {\n return this.year < other.year;\n }\n }\n /**\n * Checks if the current date is after another date.\n */\n after(other) {\n if (!other) {\n return false;\n }\n if (this.year === other.year) {\n if (this.month === other.month) {\n return this.day === other.day ? false : this.day > other.day;\n }\n else {\n return this.month > other.month;\n }\n }\n else {\n return this.year > other.year;\n }\n }\n}\n\nfunction fromJSDate(jsDate) {\n return new NgbDate(jsDate.getFullYear(), jsDate.getMonth() + 1, jsDate.getDate());\n}\nfunction toJSDate(date) {\n const jsDate = new Date(date.year, date.month - 1, date.day, 12);\n // this is done avoid 30 -> 1930 conversion\n if (!isNaN(jsDate.getTime())) {\n jsDate.setFullYear(date.year);\n }\n return jsDate;\n}\nfunction NGB_DATEPICKER_CALENDAR_FACTORY() {\n return new NgbCalendarGregorian();\n}\n/**\n * A service that represents the calendar used by the datepicker.\n *\n * The default implementation uses the Gregorian calendar. You can inject it in your own\n * implementations if necessary to simplify `NgbDate` calculations.\n */\nclass NgbCalendar {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendar, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendar, providedIn: 'root', useFactory: NGB_DATEPICKER_CALENDAR_FACTORY }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendar, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_CALENDAR_FACTORY }]\n }] });\nclass NgbCalendarGregorian extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths() {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n getWeeksPerMonth() {\n return 6;\n }\n getNext(date, period = 'd', number = 1) {\n let jsDate = toJSDate(date);\n let checkMonth = true;\n let expectedMonth = jsDate.getMonth();\n switch (period) {\n case 'y':\n jsDate.setFullYear(jsDate.getFullYear() + number);\n break;\n case 'm':\n expectedMonth += number;\n jsDate.setMonth(expectedMonth);\n expectedMonth = expectedMonth % 12;\n if (expectedMonth < 0) {\n expectedMonth = expectedMonth + 12;\n }\n break;\n case 'd':\n jsDate.setDate(jsDate.getDate() + number);\n checkMonth = false;\n break;\n default:\n return date;\n }\n if (checkMonth && jsDate.getMonth() !== expectedMonth) {\n // this means the destination month has less days than the initial month\n // let's go back to the end of the previous month:\n jsDate.setDate(0);\n }\n return fromJSDate(jsDate);\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n let jsDate = toJSDate(date);\n let day = jsDate.getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n let date = week[thursdayIndex];\n const jsDate = toJSDate(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n jsDate.setMonth(0); // Compare with Jan 1\n jsDate.setDate(1);\n return Math.floor(Math.round((time - jsDate.getTime()) / 86400000) / 7) + 1;\n }\n getToday() {\n return fromJSDate(new Date());\n }\n isValid(date) {\n if (!date || !isInteger(date.year) || !isInteger(date.month) || !isInteger(date.day)) {\n return false;\n }\n // year 0 doesn't exist in Gregorian calendar\n if (date.year === 0) {\n return false;\n }\n const jsDate = toJSDate(date);\n return (!isNaN(jsDate.getTime()) &&\n jsDate.getFullYear() === date.year &&\n jsDate.getMonth() + 1 === date.month &&\n jsDate.getDate() === date.day);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarGregorian, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarGregorian }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarGregorian, decorators: [{\n type: Injectable\n }] });\n\nfunction isChangedDate(prev, next) {\n return !dateComparator(prev, next);\n}\nfunction isChangedMonth(prev, next) {\n return !prev && !next ? false : !prev || !next ? true : prev.year !== next.year || prev.month !== next.month;\n}\nfunction dateComparator(prev, next) {\n return (!prev && !next) || (!!prev && !!next && prev.equals(next));\n}\nfunction checkMinBeforeMax(minDate, maxDate) {\n if (maxDate && minDate && maxDate.before(minDate)) {\n throw new Error(`'maxDate' ${maxDate} should be greater than 'minDate' ${minDate}`);\n }\n}\nfunction checkDateInRange(date, minDate, maxDate) {\n if (date && minDate && date.before(minDate)) {\n return minDate;\n }\n if (date && maxDate && date.after(maxDate)) {\n return maxDate;\n }\n return date || null;\n}\nfunction isDateSelectable(date, state) {\n const { minDate, maxDate, disabled, markDisabled } = state;\n return !(date === null ||\n date === undefined ||\n disabled ||\n (markDisabled && markDisabled(date, { year: date.year, month: date.month })) ||\n (minDate && date.before(minDate)) ||\n (maxDate && date.after(maxDate)));\n}\nfunction generateSelectBoxMonths(calendar, date, minDate, maxDate) {\n if (!date) {\n return [];\n }\n let months = calendar.getMonths(date.year);\n if (minDate && date.year === minDate.year) {\n const index = months.findIndex((month) => month === minDate.month);\n months = months.slice(index);\n }\n if (maxDate && date.year === maxDate.year) {\n const index = months.findIndex((month) => month === maxDate.month);\n months = months.slice(0, index + 1);\n }\n return months;\n}\nfunction generateSelectBoxYears(date, minDate, maxDate) {\n if (!date) {\n return [];\n }\n const start = minDate ? Math.max(minDate.year, date.year - 500) : date.year - 10;\n const end = maxDate ? Math.min(maxDate.year, date.year + 500) : date.year + 10;\n const length = end - start + 1;\n const numbers = Array(length);\n for (let i = 0; i < length; i++) {\n numbers[i] = start + i;\n }\n return numbers;\n}\nfunction nextMonthDisabled(calendar, date, maxDate) {\n const nextDate = Object.assign(calendar.getNext(date, 'm'), { day: 1 });\n return maxDate != null && nextDate.after(maxDate);\n}\nfunction prevMonthDisabled(calendar, date, minDate) {\n const prevDate = Object.assign(calendar.getPrev(date, 'm'), { day: 1 });\n return (minDate != null &&\n ((prevDate.year === minDate.year && prevDate.month < minDate.month) ||\n (prevDate.year < minDate.year && minDate.month === 1)));\n}\nfunction buildMonths(calendar, date, state, i18n, force) {\n const { displayMonths, months } = state;\n // move old months to a temporary array\n const monthsToReuse = months.splice(0, months.length);\n // generate new first dates, nullify or reuse months\n const firstDates = Array.from({ length: displayMonths }, (_, i) => {\n const firstDate = Object.assign(calendar.getNext(date, 'm', i), { day: 1 });\n months[i] = null;\n if (!force) {\n const reusedIndex = monthsToReuse.findIndex((month) => month.firstDate.equals(firstDate));\n // move reused month back to months\n if (reusedIndex !== -1) {\n months[i] = monthsToReuse.splice(reusedIndex, 1)[0];\n }\n }\n return firstDate;\n });\n // rebuild nullified months\n firstDates.forEach((firstDate, i) => {\n if (months[i] === null) {\n months[i] = buildMonth(calendar, firstDate, state, i18n, monthsToReuse.shift() || {});\n }\n });\n return months;\n}\nfunction buildMonth(calendar, date, state, i18n, month = {}) {\n const { dayTemplateData, minDate, maxDate, firstDayOfWeek, markDisabled, outsideDays, weekdayWidth, weekdaysVisible, } = state;\n const calendarToday = calendar.getToday();\n month.firstDate = null;\n month.lastDate = null;\n month.number = date.month;\n month.year = date.year;\n month.weeks = month.weeks || [];\n month.weekdays = month.weekdays || [];\n date = getFirstViewDate(calendar, date, firstDayOfWeek);\n // clearing weekdays, if not visible\n if (!weekdaysVisible) {\n month.weekdays.length = 0;\n }\n // month has weeks\n for (let week = 0; week < calendar.getWeeksPerMonth(); week++) {\n let weekObject = month.weeks[week];\n if (!weekObject) {\n weekObject = month.weeks[week] = { number: 0, days: [], collapsed: true };\n }\n const days = weekObject.days;\n // week has days\n for (let day = 0; day < calendar.getDaysPerWeek(); day++) {\n if (week === 0 && weekdaysVisible) {\n month.weekdays[day] = i18n.getWeekdayLabel(calendar.getWeekday(date), weekdayWidth);\n }\n const newDate = new NgbDate(date.year, date.month, date.day);\n const nextDate = calendar.getNext(newDate);\n const ariaLabel = i18n.getDayAriaLabel(newDate);\n // marking date as disabled\n let disabled = !!((minDate && newDate.before(minDate)) || (maxDate && newDate.after(maxDate)));\n if (!disabled && markDisabled) {\n disabled = markDisabled(newDate, { month: month.number, year: month.year });\n }\n // today\n let today = newDate.equals(calendarToday);\n // adding user-provided data to the context\n let contextUserData = dayTemplateData\n ? dayTemplateData(newDate, { month: month.number, year: month.year })\n : undefined;\n // saving first date of the month\n if (month.firstDate === null && newDate.month === month.number) {\n month.firstDate = newDate;\n }\n // saving last date of the month\n if (newDate.month === month.number && nextDate.month !== month.number) {\n month.lastDate = newDate;\n }\n let dayObject = days[day];\n if (!dayObject) {\n dayObject = days[day] = {};\n }\n dayObject.date = newDate;\n dayObject.context = Object.assign(dayObject.context || {}, {\n $implicit: newDate,\n date: newDate,\n data: contextUserData,\n currentMonth: month.number,\n currentYear: month.year,\n disabled,\n focused: false,\n selected: false,\n today,\n });\n dayObject.tabindex = -1;\n dayObject.ariaLabel = ariaLabel;\n dayObject.hidden = false;\n date = nextDate;\n }\n weekObject.number = calendar.getWeekNumber(days.map((day) => day.date), firstDayOfWeek);\n // marking week as collapsed\n weekObject.collapsed =\n outsideDays === 'collapsed' &&\n days[0].date.month !== month.number &&\n days[days.length - 1].date.month !== month.number;\n }\n return month;\n}\nfunction getFirstViewDate(calendar, date, firstDayOfWeek) {\n const daysPerWeek = calendar.getDaysPerWeek();\n const firstMonthDate = new NgbDate(date.year, date.month, 1);\n const dayOfWeek = calendar.getWeekday(firstMonthDate) % daysPerWeek;\n return calendar.getPrev(firstMonthDate, 'd', (daysPerWeek + dayOfWeek - firstDayOfWeek) % daysPerWeek);\n}\n\n/**\n * A service supplying i18n data to the datepicker component.\n *\n * The default implementation of this service uses the Angular locale and registered locale data for\n * weekdays and month names (as explained in the Angular i18n guide).\n *\n * It also provides a way to i18n data that depends on calendar calculations, like aria labels, day, week and year\n * numerals. For other static labels the datepicker uses the default Angular i18n.\n *\n * See the [i18n demo](#/components/datepicker/examples#i18n) and\n * [Hebrew calendar demo](#/components/datepicker/calendars#hebrew) on how to extend this class and define\n * a custom provider for i18n.\n */\nclass NgbDatepickerI18n {\n /**\n * Returns the text label to display above the day view.\n *\n * @since 9.1.0\n */\n getMonthLabel(date) {\n return `${this.getMonthFullName(date.month, date.year)} ${this.getYearNumerals(date.year)}`;\n }\n /**\n * Returns the textual representation of a day that is rendered in a day cell.\n *\n * @since 3.0.0\n */\n getDayNumerals(date) {\n return `${date.day}`;\n }\n /**\n * Returns the textual representation of a week number rendered by datepicker.\n *\n * @since 3.0.0\n */\n getWeekNumerals(weekNumber) {\n return `${weekNumber}`;\n }\n /**\n * Returns the textual representation of a year that is rendered in the datepicker year select box.\n *\n * @since 3.0.0\n */\n getYearNumerals(year) {\n return `${year}`;\n }\n /**\n * Returns the week label to display in the heading of the month view.\n *\n * @since 9.1.0\n */\n getWeekLabel() {\n return '';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerI18n, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerI18n, providedIn: 'root', useFactory: () => new NgbDatepickerI18nDefault() }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerI18n, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: () => new NgbDatepickerI18nDefault(),\n }]\n }] });\n/**\n * A service providing default implementation for the datepicker i18n.\n * It can be used as a base implementation if necessary.\n *\n * @since 9.1.0\n */\nclass NgbDatepickerI18nDefault extends NgbDatepickerI18n {\n constructor() {\n super(...arguments);\n this._locale = inject(LOCALE_ID);\n this._monthsShort = getLocaleMonthNames(this._locale, FormStyle.Standalone, TranslationWidth.Abbreviated);\n this._monthsFull = getLocaleMonthNames(this._locale, FormStyle.Standalone, TranslationWidth.Wide);\n }\n getWeekdayLabel(weekday, width) {\n const weekdaysStartingOnSunday = getLocaleDayNames(this._locale, FormStyle.Standalone, width === undefined ? TranslationWidth.Short : width);\n const weekdays = weekdaysStartingOnSunday.map((day, index) => weekdaysStartingOnSunday[(index + 1) % 7]);\n return weekdays[weekday - 1] || '';\n }\n getMonthShortName(month) {\n return this._monthsShort[month - 1] || '';\n }\n getMonthFullName(month) {\n return this._monthsFull[month - 1] || '';\n }\n getDayAriaLabel(date) {\n const jsDate = new Date(date.year, date.month - 1, date.day);\n return formatDate(jsDate, 'fullDate', this._locale);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerI18nDefault, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerI18nDefault }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerI18nDefault, decorators: [{\n type: Injectable\n }] });\n\nclass NgbDatepickerService {\n constructor() {\n this._VALIDATORS = {\n dayTemplateData: (dayTemplateData) => {\n if (this._state.dayTemplateData !== dayTemplateData) {\n return { dayTemplateData };\n }\n },\n displayMonths: (displayMonths) => {\n displayMonths = toInteger(displayMonths);\n if (isInteger(displayMonths) && displayMonths > 0 && this._state.displayMonths !== displayMonths) {\n return { displayMonths };\n }\n },\n disabled: (disabled) => {\n if (this._state.disabled !== disabled) {\n return { disabled };\n }\n },\n firstDayOfWeek: (firstDayOfWeek) => {\n firstDayOfWeek = toInteger(firstDayOfWeek);\n if (isInteger(firstDayOfWeek) && firstDayOfWeek >= 0 && this._state.firstDayOfWeek !== firstDayOfWeek) {\n return { firstDayOfWeek };\n }\n },\n focusVisible: (focusVisible) => {\n if (this._state.focusVisible !== focusVisible && !this._state.disabled) {\n return { focusVisible };\n }\n },\n markDisabled: (markDisabled) => {\n if (this._state.markDisabled !== markDisabled) {\n return { markDisabled };\n }\n },\n maxDate: (date) => {\n const maxDate = this.toValidDate(date, null);\n if (isChangedDate(this._state.maxDate, maxDate)) {\n return { maxDate };\n }\n },\n minDate: (date) => {\n const minDate = this.toValidDate(date, null);\n if (isChangedDate(this._state.minDate, minDate)) {\n return { minDate };\n }\n },\n navigation: (navigation) => {\n if (this._state.navigation !== navigation) {\n return { navigation };\n }\n },\n outsideDays: (outsideDays) => {\n if (this._state.outsideDays !== outsideDays) {\n return { outsideDays };\n }\n },\n weekdays: (weekdays) => {\n const weekdayWidth = weekdays === true || weekdays === false ? TranslationWidth.Short : weekdays;\n const weekdaysVisible = weekdays === true || weekdays === false ? weekdays : true;\n if (this._state.weekdayWidth !== weekdayWidth || this._state.weekdaysVisible !== weekdaysVisible) {\n return { weekdayWidth, weekdaysVisible };\n }\n },\n };\n this._calendar = inject(NgbCalendar);\n this._i18n = inject(NgbDatepickerI18n);\n this._model$ = new Subject();\n this._dateSelect$ = new Subject();\n this._state = {\n dayTemplateData: null,\n markDisabled: null,\n maxDate: null,\n minDate: null,\n disabled: false,\n displayMonths: 1,\n firstDate: null,\n firstDayOfWeek: 1,\n lastDate: null,\n focusDate: null,\n focusVisible: false,\n months: [],\n navigation: 'select',\n outsideDays: 'visible',\n prevDisabled: false,\n nextDisabled: false,\n selectedDate: null,\n selectBoxes: { years: [], months: [] },\n weekdayWidth: TranslationWidth.Short,\n weekdaysVisible: true,\n };\n }\n get model$() {\n return this._model$.pipe(filter((model) => model.months.length > 0));\n }\n get dateSelect$() {\n return this._dateSelect$.pipe(filter((date) => date !== null));\n }\n set(options) {\n let patch = Object.keys(options)\n .map((key) => this._VALIDATORS[key](options[key]))\n .reduce((obj, part) => ({ ...obj, ...part }), {});\n if (Object.keys(patch).length > 0) {\n this._nextState(patch);\n }\n }\n focus(date) {\n const focusedDate = this.toValidDate(date, null);\n if (focusedDate != null && !this._state.disabled && isChangedDate(this._state.focusDate, focusedDate)) {\n this._nextState({ focusDate: date });\n }\n }\n focusSelect() {\n if (isDateSelectable(this._state.focusDate, this._state)) {\n this.select(this._state.focusDate, { emitEvent: true });\n }\n }\n open(date) {\n const firstDate = this.toValidDate(date, this._calendar.getToday());\n if (firstDate != null &&\n !this._state.disabled &&\n (!this._state.firstDate || isChangedMonth(this._state.firstDate, firstDate))) {\n this._nextState({ firstDate });\n }\n }\n select(date, options = {}) {\n const selectedDate = this.toValidDate(date, null);\n if (selectedDate != null && !this._state.disabled) {\n if (isChangedDate(this._state.selectedDate, selectedDate)) {\n this._nextState({ selectedDate });\n }\n if (options.emitEvent && isDateSelectable(selectedDate, this._state)) {\n this._dateSelect$.next(selectedDate);\n }\n }\n }\n toValidDate(date, defaultValue) {\n const ngbDate = NgbDate.from(date);\n if (defaultValue === undefined) {\n defaultValue = this._calendar.getToday();\n }\n return this._calendar.isValid(ngbDate) ? ngbDate : defaultValue;\n }\n getMonth(struct) {\n for (let month of this._state.months) {\n if (struct.month === month.number && struct.year === month.year) {\n return month;\n }\n }\n throw new Error(`month ${struct.month} of year ${struct.year} not found`);\n }\n _nextState(patch) {\n const newState = this._updateState(patch);\n this._patchContexts(newState);\n this._state = newState;\n this._model$.next(this._state);\n }\n _patchContexts(state) {\n const { months, displayMonths, selectedDate, focusDate, focusVisible, disabled, outsideDays } = state;\n state.months.forEach((month) => {\n month.weeks.forEach((week) => {\n week.days.forEach((day) => {\n // patch focus flag\n if (focusDate) {\n day.context.focused = focusDate.equals(day.date) && focusVisible;\n }\n // calculating tabindex\n day.tabindex =\n !disabled && focusDate && day.date.equals(focusDate) && focusDate.month === month.number ? 0 : -1;\n // override context disabled\n if (disabled === true) {\n day.context.disabled = true;\n }\n // patch selection flag\n if (selectedDate !== undefined) {\n day.context.selected = selectedDate !== null && selectedDate.equals(day.date);\n }\n // visibility\n if (month.number !== day.date.month) {\n day.hidden =\n outsideDays === 'hidden' ||\n outsideDays === 'collapsed' ||\n (displayMonths > 1 &&\n day.date.after(months[0].firstDate) &&\n day.date.before(months[displayMonths - 1].lastDate));\n }\n });\n });\n });\n }\n _updateState(patch) {\n // patching fields\n const state = Object.assign({}, this._state, patch);\n let startDate = state.firstDate;\n // min/max dates changed\n if ('minDate' in patch || 'maxDate' in patch) {\n checkMinBeforeMax(state.minDate, state.maxDate);\n state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate);\n state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate);\n startDate = state.focusDate;\n }\n // disabled\n if ('disabled' in patch) {\n state.focusVisible = false;\n }\n // initial rebuild via 'select()'\n if ('selectedDate' in patch && this._state.months.length === 0) {\n startDate = state.selectedDate;\n }\n // terminate early if only focus visibility was changed\n if ('focusVisible' in patch) {\n return state;\n }\n // focus date changed\n if ('focusDate' in patch) {\n state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate);\n startDate = state.focusDate;\n // nothing to rebuild if only focus changed and it is still visible\n if (state.months.length !== 0 &&\n state.focusDate &&\n !state.focusDate.before(state.firstDate) &&\n !state.focusDate.after(state.lastDate)) {\n return state;\n }\n }\n // first date changed\n if ('firstDate' in patch) {\n state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate);\n startDate = state.firstDate;\n }\n // rebuilding months\n if (startDate) {\n const forceRebuild = 'dayTemplateData' in patch ||\n 'firstDayOfWeek' in patch ||\n 'markDisabled' in patch ||\n 'minDate' in patch ||\n 'maxDate' in patch ||\n 'disabled' in patch ||\n 'outsideDays' in patch ||\n 'weekdaysVisible' in patch;\n const months = buildMonths(this._calendar, startDate, state, this._i18n, forceRebuild);\n // updating months and boundary dates\n state.months = months;\n state.firstDate = months[0].firstDate;\n state.lastDate = months[months.length - 1].lastDate;\n // reset selected date if 'markDisabled' returns true\n if ('selectedDate' in patch && !isDateSelectable(state.selectedDate, state)) {\n state.selectedDate = null;\n }\n // adjusting focus after months were built\n if ('firstDate' in patch) {\n if (!state.focusDate || state.focusDate.before(state.firstDate) || state.focusDate.after(state.lastDate)) {\n state.focusDate = startDate;\n }\n }\n // adjusting months/years for the select box navigation\n const yearChanged = !this._state.firstDate || this._state.firstDate.year !== state.firstDate.year;\n const monthChanged = !this._state.firstDate || this._state.firstDate.month !== state.firstDate.month;\n if (state.navigation === 'select') {\n // years -> boundaries (min/max were changed)\n if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.years.length === 0 || yearChanged) {\n state.selectBoxes.years = generateSelectBoxYears(state.firstDate, state.minDate, state.maxDate);\n }\n // months -> when current year or boundaries change\n if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.months.length === 0 || yearChanged) {\n state.selectBoxes.months = generateSelectBoxMonths(this._calendar, state.firstDate, state.minDate, state.maxDate);\n }\n }\n else {\n state.selectBoxes = { years: [], months: [] };\n }\n // updating navigation arrows -> boundaries change (min/max) or month/year changes\n if ((state.navigation === 'arrows' || state.navigation === 'select') &&\n (monthChanged || yearChanged || 'minDate' in patch || 'maxDate' in patch || 'disabled' in patch)) {\n state.prevDisabled = state.disabled || prevMonthDisabled(this._calendar, state.firstDate, state.minDate);\n state.nextDisabled = state.disabled || nextMonthDisabled(this._calendar, state.lastDate, state.maxDate);\n }\n }\n return state;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerService, decorators: [{\n type: Injectable\n }] });\n\nvar NavigationEvent;\n(function (NavigationEvent) {\n NavigationEvent[NavigationEvent[\"PREV\"] = 0] = \"PREV\";\n NavigationEvent[NavigationEvent[\"NEXT\"] = 1] = \"NEXT\";\n})(NavigationEvent || (NavigationEvent = {}));\n\n/**\n * A configuration service for the [`NgbDatepicker`](#/components/datepicker/api#NgbDatepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the datepickers used in the application.\n */\nclass NgbDatepickerConfig {\n constructor() {\n this.displayMonths = 1;\n this.firstDayOfWeek = 1;\n this.navigation = 'select';\n this.outsideDays = 'visible';\n this.showWeekNumbers = false;\n this.weekdays = TranslationWidth.Short;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nfunction NGB_DATEPICKER_DATE_ADAPTER_FACTORY() {\n return new NgbDateStructAdapter();\n}\n/**\n * An abstract service that does the conversion between the internal datepicker `NgbDateStruct` model and\n * any provided user date model `D`, ex. a string, a native date, etc.\n *\n * The adapter is used **only** for conversion when binding datepicker to a form control,\n * ex. `[(ngModel)]=\"userDateModel\"`. Here `userDateModel` can be of any type.\n *\n * The default datepicker implementation assumes we use `NgbDateStruct` as a user model.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details\n * and the [custom adapter demo](#/components/datepicker/examples#adapter) for an example.\n */\nclass NgbDateAdapter {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateAdapter, providedIn: 'root', useFactory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateAdapter, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY }]\n }] });\nclass NgbDateStructAdapter extends NgbDateAdapter {\n /**\n * Converts a NgbDateStruct value into NgbDateStruct value\n */\n fromModel(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day)\n ? { year: date.year, month: date.month, day: date.day }\n : null;\n }\n /**\n * Converts a NgbDateStruct value into NgbDateStruct value\n */\n toModel(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day)\n ? { year: date.year, month: date.month, day: date.day }\n : null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateStructAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateStructAdapter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateStructAdapter, decorators: [{\n type: Injectable\n }] });\n\nvar Key;\n(function (Key) {\n Key[Key[\"Tab\"] = 9] = \"Tab\";\n Key[Key[\"Enter\"] = 13] = \"Enter\";\n Key[Key[\"Escape\"] = 27] = \"Escape\";\n Key[Key[\"Space\"] = 32] = \"Space\";\n Key[Key[\"PageUp\"] = 33] = \"PageUp\";\n Key[Key[\"PageDown\"] = 34] = \"PageDown\";\n Key[Key[\"End\"] = 35] = \"End\";\n Key[Key[\"Home\"] = 36] = \"Home\";\n Key[Key[\"ArrowLeft\"] = 37] = \"ArrowLeft\";\n Key[Key[\"ArrowUp\"] = 38] = \"ArrowUp\";\n Key[Key[\"ArrowRight\"] = 39] = \"ArrowRight\";\n Key[Key[\"ArrowDown\"] = 40] = \"ArrowDown\";\n})(Key || (Key = {}));\n\n/**\n * A service that represents the keyboard navigation.\n *\n * Default keyboard shortcuts [are documented in the overview](#/components/datepicker/overview#keyboard-shortcuts)\n *\n * @since 5.2.0\n */\nclass NgbDatepickerKeyboardService {\n /**\n * Processes a keyboard event.\n */\n processKey(event, datepicker) {\n const { state, calendar } = datepicker;\n /* eslint-disable-next-line deprecation/deprecation */\n switch (event.which) {\n case Key.PageUp:\n datepicker.focusDate(calendar.getPrev(state.focusedDate, event.shiftKey ? 'y' : 'm', 1));\n break;\n case Key.PageDown:\n datepicker.focusDate(calendar.getNext(state.focusedDate, event.shiftKey ? 'y' : 'm', 1));\n break;\n case Key.End:\n datepicker.focusDate(event.shiftKey ? state.maxDate : state.lastDate);\n break;\n case Key.Home:\n datepicker.focusDate(event.shiftKey ? state.minDate : state.firstDate);\n break;\n case Key.ArrowLeft:\n datepicker.focusDate(calendar.getPrev(state.focusedDate, 'd', 1));\n break;\n case Key.ArrowUp:\n datepicker.focusDate(calendar.getPrev(state.focusedDate, 'd', calendar.getDaysPerWeek()));\n break;\n case Key.ArrowRight:\n datepicker.focusDate(calendar.getNext(state.focusedDate, 'd', 1));\n break;\n case Key.ArrowDown:\n datepicker.focusDate(calendar.getNext(state.focusedDate, 'd', calendar.getDaysPerWeek()));\n break;\n case Key.Enter:\n case Key.Space:\n datepicker.focusSelect();\n break;\n default:\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerKeyboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerKeyboardService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerKeyboardService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass NgbDatepickerDayView {\n constructor() {\n this.i18n = inject(NgbDatepickerI18n);\n }\n isMuted() {\n return !this.selected && (this.date.month !== this.currentMonth || this.disabled);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerDayView, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbDatepickerDayView, isStandalone: true, selector: \"[ngbDatepickerDayView]\", inputs: { currentMonth: \"currentMonth\", date: \"date\", disabled: \"disabled\", focused: \"focused\", selected: \"selected\" }, host: { properties: { \"class.bg-primary\": \"selected\", \"class.text-white\": \"selected\", \"class.text-muted\": \"isMuted()\", \"class.outside\": \"isMuted()\", \"class.active\": \"focused\" }, classAttribute: \"btn-light\" }, ngImport: i0, template: `{{ i18n.getDayNumerals(date) }}`, isInline: true, styles: [\"[ngbDatepickerDayView]{text-align:center;width:2rem;height:2rem;line-height:2rem;border-radius:.25rem;background:transparent}[ngbDatepickerDayView]:hover:not(.bg-primary),[ngbDatepickerDayView].active:not(.bg-primary){background-color:var(--bs-tertiary-bg);outline:1px solid var(--bs-border-color)}[ngbDatepickerDayView].outside{opacity:.5}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerDayView, decorators: [{\n type: Component,\n args: [{ selector: '[ngbDatepickerDayView]', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n class: 'btn-light',\n '[class.bg-primary]': 'selected',\n '[class.text-white]': 'selected',\n '[class.text-muted]': 'isMuted()',\n '[class.outside]': 'isMuted()',\n '[class.active]': 'focused',\n }, template: `{{ i18n.getDayNumerals(date) }}`, styles: [\"[ngbDatepickerDayView]{text-align:center;width:2rem;height:2rem;line-height:2rem;border-radius:.25rem;background:transparent}[ngbDatepickerDayView]:hover:not(.bg-primary),[ngbDatepickerDayView].active:not(.bg-primary){background-color:var(--bs-tertiary-bg);outline:1px solid var(--bs-border-color)}[ngbDatepickerDayView].outside{opacity:.5}\\n\"] }]\n }], propDecorators: { currentMonth: [{\n type: Input\n }], date: [{\n type: Input\n }], disabled: [{\n type: Input\n }], focused: [{\n type: Input\n }], selected: [{\n type: Input\n }] } });\n\nclass NgbDatepickerNavigationSelect {\n constructor() {\n this._month = -1;\n this._year = -1;\n this.i18n = inject(NgbDatepickerI18n);\n this.select = new EventEmitter();\n }\n changeMonth(month) {\n this.select.emit(new NgbDate(this.date.year, toInteger(month), 1));\n }\n changeYear(year) {\n this.select.emit(new NgbDate(toInteger(year), this.date.month, 1));\n }\n ngAfterViewChecked() {\n if (this.date) {\n if (this.date.month !== this._month) {\n this._month = this.date.month;\n this.monthSelect.nativeElement.value = `${this._month}`;\n }\n if (this.date.year !== this._year) {\n this._year = this.date.year;\n this.yearSelect.nativeElement.value = `${this._year}`;\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerNavigationSelect, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbDatepickerNavigationSelect, isStandalone: true, selector: \"ngb-datepicker-navigation-select\", inputs: { date: \"date\", disabled: \"disabled\", months: \"months\", years: \"years\" }, outputs: { select: \"select\" }, viewQueries: [{ propertyName: \"monthSelect\", first: true, predicate: [\"month\"], descendants: true, read: ElementRef, static: true }, { propertyName: \"yearSelect\", first: true, predicate: [\"year\"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: `\n\t\t<select\n\t\t\t#month\n\t\t\t[disabled]=\"disabled\"\n\t\t\tclass=\"form-select\"\n\t\t\ti18n-aria-label=\"@@ngb.datepicker.select-month\"\n\t\t\taria-label=\"Select month\"\n\t\t\ti18n-title=\"@@ngb.datepicker.select-month\"\n\t\t\ttitle=\"Select month\"\n\t\t\t(change)=\"changeMonth($any($event).target.value)\"\n\t\t>\n\t\t\t@for (m of months; track m) {\n\t\t\t\t<option [attr.aria-label]=\"i18n.getMonthFullName(m, date.year)\" [value]=\"m\">{{\n\t\t\t\t\ti18n.getMonthShortName(m, date.year)\n\t\t\t\t}}</option>\n\t\t\t}</select\n\t\t><select\n\t\t\t#year\n\t\t\t[disabled]=\"disabled\"\n\t\t\tclass=\"form-select\"\n\t\t\ti18n-aria-label=\"@@ngb.datepicker.select-year\"\n\t\t\taria-label=\"Select year\"\n\t\t\ti18n-title=\"@@ngb.datepicker.select-year\"\n\t\t\ttitle=\"Select year\"\n\t\t\t(change)=\"changeYear($any($event).target.value)\"\n\t\t>\n\t\t\t@for (y of years; track y) {\n\t\t\t\t<option [value]=\"y\">{{ i18n.getYearNumerals(y) }}</option>\n\t\t\t}\n\t\t</select>\n\t`, isInline: true, styles: [\"ngb-datepicker-navigation-select>.form-select{flex:1 1 auto;padding:0 .5rem;font-size:.875rem;height:1.85rem}ngb-datepicker-navigation-select>.form-select:focus{z-index:1}ngb-datepicker-navigation-select>.form-select::-ms-value{background-color:transparent!important}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerNavigationSelect, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-datepicker-navigation-select', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `\n\t\t<select\n\t\t\t#month\n\t\t\t[disabled]=\"disabled\"\n\t\t\tclass=\"form-select\"\n\t\t\ti18n-aria-label=\"@@ngb.datepicker.select-month\"\n\t\t\taria-label=\"Select month\"\n\t\t\ti18n-title=\"@@ngb.datepicker.select-month\"\n\t\t\ttitle=\"Select month\"\n\t\t\t(change)=\"changeMonth($any($event).target.value)\"\n\t\t>\n\t\t\t@for (m of months; track m) {\n\t\t\t\t<option [attr.aria-label]=\"i18n.getMonthFullName(m, date.year)\" [value]=\"m\">{{\n\t\t\t\t\ti18n.getMonthShortName(m, date.year)\n\t\t\t\t}}</option>\n\t\t\t}</select\n\t\t><select\n\t\t\t#year\n\t\t\t[disabled]=\"disabled\"\n\t\t\tclass=\"form-select\"\n\t\t\ti18n-aria-label=\"@@ngb.datepicker.select-year\"\n\t\t\taria-label=\"Select year\"\n\t\t\ti18n-title=\"@@ngb.datepicker.select-year\"\n\t\t\ttitle=\"Select year\"\n\t\t\t(change)=\"changeYear($any($event).target.value)\"\n\t\t>\n\t\t\t@for (y of years; track y) {\n\t\t\t\t<option [value]=\"y\">{{ i18n.getYearNumerals(y) }}</option>\n\t\t\t}\n\t\t</select>\n\t`, styles: [\"ngb-datepicker-navigation-select>.form-select{flex:1 1 auto;padding:0 .5rem;font-size:.875rem;height:1.85rem}ngb-datepicker-navigation-select>.form-select:focus{z-index:1}ngb-datepicker-navigation-select>.form-select::-ms-value{background-color:transparent!important}\\n\"] }]\n }], propDecorators: { date: [{\n type: Input\n }], disabled: [{\n type: Input\n }], months: [{\n type: Input\n }], years: [{\n type: Input\n }], select: [{\n type: Output\n }], monthSelect: [{\n type: ViewChild,\n args: ['month', { static: true, read: ElementRef }]\n }], yearSelect: [{\n type: ViewChild,\n args: ['year', { static: true, read: ElementRef }]\n }] } });\n\nclass NgbDatepickerNavigation {\n constructor() {\n this.navigation = NavigationEvent;\n this.i18n = inject(NgbDatepickerI18n);\n this.months = [];\n this.navigate = new EventEmitter();\n this.select = new EventEmitter();\n }\n onClickPrev(event) {\n event.currentTarget.focus();\n this.navigate.emit(this.navigation.PREV);\n }\n onClickNext(event) {\n event.currentTarget.focus();\n this.navigate.emit(this.navigation.NEXT);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerNavigation, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbDatepickerNavigation, isStandalone: true, selector: \"ngb-datepicker-navigation\", inputs: { date: \"date\", disabled: \"disabled\", months: \"months\", showSelect: \"showSelect\", prevDisabled: \"prevDisabled\", nextDisabled: \"nextDisabled\", selectBoxes: \"selectBoxes\" }, outputs: { navigate: \"navigate\", select: \"select\" }, ngImport: i0, template: `\n\t\t<div class=\"ngb-dp-arrow ngb-dp-arrow-prev\">\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"btn btn-link ngb-dp-arrow-btn\"\n\t\t\t\t(click)=\"onClickPrev($event)\"\n\t\t\t\t[disabled]=\"prevDisabled\"\n\t\t\t\ti18n-aria-label=\"@@ngb.datepicker.previous-month\"\n\t\t\t\taria-label=\"Previous month\"\n\t\t\t\ti18n-title=\"@@ngb.datepicker.previous-month\"\n\t\t\t\ttitle=\"Previous month\"\n\t\t\t>\n\t\t\t\t<span class=\"ngb-dp-navigation-chevron\"></span>\n\t\t\t</button>\n\t\t</div>\n\t\t@if (showSelect) {\n\t\t\t<ngb-datepicker-navigation-select\n\t\t\t\tclass=\"ngb-dp-navigation-select\"\n\t\t\t\t[date]=\"date\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[months]=\"selectBoxes.months\"\n\t\t\t\t[years]=\"selectBoxes.years\"\n\t\t\t\t(select)=\"select.emit($event)\"\n\t\t\t/>\n\t\t}\n\n\t\t@if (!showSelect) {\n\t\t\t@for (month of months; track month; let i = $index) {\n\t\t\t\t@if (i > 0) {\n\t\t\t\t\t<div class=\"ngb-dp-arrow\"></div>\n\t\t\t\t}\n\t\t\t\t<div class=\"ngb-dp-month-name\">\n\t\t\t\t\t{{ i18n.getMonthLabel(month.firstDate) }}\n\t\t\t\t</div>\n\t\t\t\t@if (i !== months.length - 1) {\n\t\t\t\t\t<div class=\"ngb-dp-arrow\"></div>\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t<div class=\"ngb-dp-arrow ngb-dp-arrow-next\">\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"btn btn-link ngb-dp-arrow-btn\"\n\t\t\t\t(click)=\"onClickNext($event)\"\n\t\t\t\t[disabled]=\"nextDisabled\"\n\t\t\t\ti18n-aria-label=\"@@ngb.datepicker.next-month\"\n\t\t\t\taria-label=\"Next month\"\n\t\t\t\ti18n-title=\"@@ngb.datepicker.next-month\"\n\t\t\t\ttitle=\"Next month\"\n\t\t\t>\n\t\t\t\t<span class=\"ngb-dp-navigation-chevron\"></span>\n\t\t\t</button>\n\t\t</div>\n\t`, isInline: true, styles: [\"ngb-datepicker-navigation{display:flex;align-items:center}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;width:.75em;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg)}.ngb-dp-arrow{display:flex;flex:1 1 auto;padding-right:0;padding-left:0;margin:0;width:2rem;height:2rem}.ngb-dp-arrow-next{justify-content:flex-end}.ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(45deg);margin-left:.15em;margin-right:.25em}.ngb-dp-arrow-btn{padding:0 .25rem;margin:0 .5rem;border:none;background-color:transparent;z-index:1}.ngb-dp-arrow-btn:focus{outline-width:1px;outline-style:auto}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{display:flex;flex:1 1 9rem}\\n\"], dependencies: [{ kind: \"component\", type: NgbDatepickerNavigationSelect, selector: \"ngb-datepicker-navigation-select\", inputs: [\"date\", \"disabled\", \"months\", \"years\"], outputs: [\"select\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerNavigation, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-datepicker-navigation', standalone: true, imports: [NgbDatepickerNavigationSelect], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `\n\t\t<div class=\"ngb-dp-arrow ngb-dp-arrow-prev\">\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"btn btn-link ngb-dp-arrow-btn\"\n\t\t\t\t(click)=\"onClickPrev($event)\"\n\t\t\t\t[disabled]=\"prevDisabled\"\n\t\t\t\ti18n-aria-label=\"@@ngb.datepicker.previous-month\"\n\t\t\t\taria-label=\"Previous month\"\n\t\t\t\ti18n-title=\"@@ngb.datepicker.previous-month\"\n\t\t\t\ttitle=\"Previous month\"\n\t\t\t>\n\t\t\t\t<span class=\"ngb-dp-navigation-chevron\"></span>\n\t\t\t</button>\n\t\t</div>\n\t\t@if (showSelect) {\n\t\t\t<ngb-datepicker-navigation-select\n\t\t\t\tclass=\"ngb-dp-navigation-select\"\n\t\t\t\t[date]=\"date\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[months]=\"selectBoxes.months\"\n\t\t\t\t[years]=\"selectBoxes.years\"\n\t\t\t\t(select)=\"select.emit($event)\"\n\t\t\t/>\n\t\t}\n\n\t\t@if (!showSelect) {\n\t\t\t@for (month of months; track month; let i = $index) {\n\t\t\t\t@if (i > 0) {\n\t\t\t\t\t<div class=\"ngb-dp-arrow\"></div>\n\t\t\t\t}\n\t\t\t\t<div class=\"ngb-dp-month-name\">\n\t\t\t\t\t{{ i18n.getMonthLabel(month.firstDate) }}\n\t\t\t\t</div>\n\t\t\t\t@if (i !== months.length - 1) {\n\t\t\t\t\t<div class=\"ngb-dp-arrow\"></div>\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t<div class=\"ngb-dp-arrow ngb-dp-arrow-next\">\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"btn btn-link ngb-dp-arrow-btn\"\n\t\t\t\t(click)=\"onClickNext($event)\"\n\t\t\t\t[disabled]=\"nextDisabled\"\n\t\t\t\ti18n-aria-label=\"@@ngb.datepicker.next-month\"\n\t\t\t\taria-label=\"Next month\"\n\t\t\t\ti18n-title=\"@@ngb.datepicker.next-month\"\n\t\t\t\ttitle=\"Next month\"\n\t\t\t>\n\t\t\t\t<span class=\"ngb-dp-navigation-chevron\"></span>\n\t\t\t</button>\n\t\t</div>\n\t`, styles: [\"ngb-datepicker-navigation{display:flex;align-items:center}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;width:.75em;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg)}.ngb-dp-arrow{display:flex;flex:1 1 auto;padding-right:0;padding-left:0;margin:0;width:2rem;height:2rem}.ngb-dp-arrow-next{justify-content:flex-end}.ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(45deg);margin-left:.15em;margin-right:.25em}.ngb-dp-arrow-btn{padding:0 .25rem;margin:0 .5rem;border:none;background-color:transparent;z-index:1}.ngb-dp-arrow-btn:focus{outline-width:1px;outline-style:auto}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{display:flex;flex:1 1 9rem}\\n\"] }]\n }], propDecorators: { date: [{\n type: Input\n }], disabled: [{\n type: Input\n }], months: [{\n type: Input\n }], showSelect: [{\n type: Input\n }], prevDisabled: [{\n type: Input\n }], nextDisabled: [{\n type: Input\n }], selectBoxes: [{\n type: Input\n }], navigate: [{\n type: Output\n }], select: [{\n type: Output\n }] } });\n\n/**\n * A directive that marks the content template that customizes the way datepicker months are displayed\n *\n * @since 5.3.0\n */\nclass NgbDatepickerContent {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbDatepickerContent, isStandalone: true, selector: \"ng-template[ngbDatepickerContent]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerContent, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbDatepickerContent]', standalone: true }]\n }] });\n/**\n * A component that renders one month including all the days, weekdays and week numbers. Can be used inside\n * the `<ng-template ngbDatepickerMonths></ng-template>` when you want to customize months layout.\n *\n * For a usage example, see [custom month layout demo](#/components/datepicker/examples#custommonth)\n *\n * @since 5.3.0\n */\nclass NgbDatepickerMonth {\n constructor() {\n this._keyboardService = inject(NgbDatepickerKeyboardService);\n this._service = inject(NgbDatepickerService);\n this.i18n = inject(NgbDatepickerI18n);\n this.datepicker = inject(NgbDatepicker);\n }\n /**\n * The first date of month to be rendered.\n *\n * This month must one of the months present in the\n * [datepicker state](#/components/datepicker/api#NgbDatepickerState).\n */\n set month(month) {\n this.viewModel = this._service.getMonth(month);\n }\n onKeyDown(event) {\n this._keyboardService.processKey(event, this.datepicker);\n }\n doSelect(day) {\n if (!day.context.disabled && !day.hidden) {\n this.datepicker.onDateSelect(day.date);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerMonth, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbDatepickerMonth, isStandalone: true, selector: \"ngb-datepicker-month\", inputs: { month: \"month\" }, host: { attributes: { \"role\": \"grid\" }, listeners: { \"keydown\": \"onKeyDown($event)\" } }, ngImport: i0, template: `\n\t\t@if (viewModel.weekdays.length > 0) {\n\t\t\t<div class=\"ngb-dp-week ngb-dp-weekdays\" role=\"row\">\n\t\t\t\t@if (datepicker.showWeekNumbers) {\n\t\t\t\t\t<div class=\"ngb-dp-weekday ngb-dp-showweek small\">{{ i18n.getWeekLabel() }}</div>\n\t\t\t\t}\n\t\t\t\t@for (weekday of viewModel.weekdays; track weekday) {\n\t\t\t\t\t<div class=\"ngb-dp-weekday small\" role=\"columnheader\">{{ weekday }}</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t\t@for (week of viewModel.weeks; track week) {\n\t\t\t@if (!week.collapsed) {\n\t\t\t\t<div class=\"ngb-dp-week\" role=\"row\">\n\t\t\t\t\t@if (datepicker.showWeekNumbers) {\n\t\t\t\t\t\t<div class=\"ngb-dp-week-number small text-muted\">{{ i18n.getWeekNumerals(week.number) }}</div>\n\t\t\t\t\t}\n\t\t\t\t\t@for (day of week.days; track day) {\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t(click)=\"doSelect(day); $event.preventDefault()\"\n\t\t\t\t\t\t\tclass=\"ngb-dp-day\"\n\t\t\t\t\t\t\trole=\"gridcell\"\n\t\t\t\t\t\t\t[class.disabled]=\"day.context.disabled\"\n\t\t\t\t\t\t\t[tabindex]=\"day.tabindex\"\n\t\t\t\t\t\t\t[class.hidden]=\"day.hidden\"\n\t\t\t\t\t\t\t[class.ngb-dp-today]=\"day.context.today\"\n\t\t\t\t\t\t\t[attr.aria-label]=\"day.ariaLabel\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t@if (!day.hidden) {\n\t\t\t\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"datepicker.dayTemplate\" [ngTemplateOutletContext]=\"day.context\" />\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t}\n\t`, isInline: true, styles: [\"ngb-datepicker-month{display:block}.ngb-dp-weekday,.ngb-dp-week-number{line-height:2rem;text-align:center;font-style:italic}.ngb-dp-weekday{color:var(--bs-info)}.ngb-dp-week{border-radius:.25rem;display:flex}.ngb-dp-weekdays{border-bottom:1px solid var(--bs-border-color);border-radius:0;background-color:var(--bs-tertiary-bg)}.ngb-dp-day,.ngb-dp-weekday,.ngb-dp-week-number{width:2rem;height:2rem}.ngb-dp-day{cursor:pointer}.ngb-dp-day.disabled,.ngb-dp-day.hidden{cursor:default;pointer-events:none}.ngb-dp-day[tabindex=\\\"0\\\"]{z-index:1}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerMonth, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-datepicker-month', standalone: true, imports: [NgTemplateOutlet], host: {\n role: 'grid',\n '(keydown)': 'onKeyDown($event)',\n }, encapsulation: ViewEncapsulation.None, template: `\n\t\t@if (viewModel.weekdays.length > 0) {\n\t\t\t<div class=\"ngb-dp-week ngb-dp-weekdays\" role=\"row\">\n\t\t\t\t@if (datepicker.showWeekNumbers) {\n\t\t\t\t\t<div class=\"ngb-dp-weekday ngb-dp-showweek small\">{{ i18n.getWeekLabel() }}</div>\n\t\t\t\t}\n\t\t\t\t@for (weekday of viewModel.weekdays; track weekday) {\n\t\t\t\t\t<div class=\"ngb-dp-weekday small\" role=\"columnheader\">{{ weekday }}</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t\t@for (week of viewModel.weeks; track week) {\n\t\t\t@if (!week.collapsed) {\n\t\t\t\t<div class=\"ngb-dp-week\" role=\"row\">\n\t\t\t\t\t@if (datepicker.showWeekNumbers) {\n\t\t\t\t\t\t<div class=\"ngb-dp-week-number small text-muted\">{{ i18n.getWeekNumerals(week.number) }}</div>\n\t\t\t\t\t}\n\t\t\t\t\t@for (day of week.days; track day) {\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t(click)=\"doSelect(day); $event.preventDefault()\"\n\t\t\t\t\t\t\tclass=\"ngb-dp-day\"\n\t\t\t\t\t\t\trole=\"gridcell\"\n\t\t\t\t\t\t\t[class.disabled]=\"day.context.disabled\"\n\t\t\t\t\t\t\t[tabindex]=\"day.tabindex\"\n\t\t\t\t\t\t\t[class.hidden]=\"day.hidden\"\n\t\t\t\t\t\t\t[class.ngb-dp-today]=\"day.context.today\"\n\t\t\t\t\t\t\t[attr.aria-label]=\"day.ariaLabel\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t@if (!day.hidden) {\n\t\t\t\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"datepicker.dayTemplate\" [ngTemplateOutletContext]=\"day.context\" />\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t}\n\t`, styles: [\"ngb-datepicker-month{display:block}.ngb-dp-weekday,.ngb-dp-week-number{line-height:2rem;text-align:center;font-style:italic}.ngb-dp-weekday{color:var(--bs-info)}.ngb-dp-week{border-radius:.25rem;display:flex}.ngb-dp-weekdays{border-bottom:1px solid var(--bs-border-color);border-radius:0;background-color:var(--bs-tertiary-bg)}.ngb-dp-day,.ngb-dp-weekday,.ngb-dp-week-number{width:2rem;height:2rem}.ngb-dp-day{cursor:pointer}.ngb-dp-day.disabled,.ngb-dp-day.hidden{cursor:default;pointer-events:none}.ngb-dp-day[tabindex=\\\"0\\\"]{z-index:1}\\n\"] }]\n }], propDecorators: { month: [{\n type: Input\n }] } });\n/**\n * A highly configurable component that helps you with selecting calendar dates.\n *\n * `NgbDatepicker` is meant to be displayed inline on a page or put inside a popup.\n */\nclass NgbDatepicker {\n constructor() {\n this.injector = inject(Injector);\n this._service = inject(NgbDatepickerService);\n this._calendar = inject(NgbCalendar);\n this._i18n = inject(NgbDatepickerI18n);\n this._config = inject(NgbDatepickerConfig);\n this._nativeElement = inject(ElementRef).nativeElement;\n this._ngbDateAdapter = inject((NgbDateAdapter));\n this._ngZone = inject(NgZone);\n this._destroyRef = inject(DestroyRef);\n this._controlValue = null;\n this._publicState = {};\n /**\n * The reference to a custom template for the day.\n *\n * Allows to completely override the way a day 'cell' in the calendar is displayed.\n *\n * See [`DayTemplateContext`](#/components/datepicker/api#DayTemplateContext) for the data you get inside.\n */\n this.dayTemplate = this._config.dayTemplate;\n /**\n * The callback to pass any arbitrary data to the template cell via the\n * [`DayTemplateContext`](#/components/datepicker/api#DayTemplateContext)'s `data` parameter.\n *\n * `current` is the month that is currently displayed by the datepicker.\n *\n * @since 3.3.0\n */\n this.dayTemplateData = this._config.dayTemplateData;\n /**\n * The number of months to display.\n */\n this.displayMonths = this._config.displayMonths;\n /**\n * The first day of the week.\n *\n * With default calendar we use ISO 8601: 'weekday' is 1=Mon ... 7=Sun.\n */\n this.firstDayOfWeek = this._config.firstDayOfWeek;\n /**\n * The reference to the custom template for the datepicker footer.\n *\n * @since 3.3.0\n */\n this.footerTemplate = this._config.footerTemplate;\n /**\n * The callback to mark some dates as disabled.\n *\n * It is called for each new date when navigating to a different month.\n *\n * `current` is the month that is currently displayed by the datepicker.\n */\n this.markDisabled = this._config.markDisabled;\n /**\n * The latest date that can be displayed or selected.\n *\n * If not provided, 'year' select box will display 10 years after the current month.\n */\n this.maxDate = this._config.maxDate;\n /**\n * The earliest date that can be displayed or selected.\n *\n * If not provided, 'year' select box will display 10 years before the current month.\n */\n this.minDate = this._config.minDate;\n /**\n * Navigation type.\n *\n * * `\"select\"` - select boxes for month and navigation arrows\n * * `\"arrows\"` - only navigation arrows\n * * `\"none\"` - no navigation visible at all\n */\n this.navigation = this._config.navigation;\n /**\n * The way of displaying days that don't belong to the current month.\n *\n * * `\"visible\"` - days are visible\n * * `\"hidden\"` - days are hidden, white space preserved\n * * `\"collapsed\"` - days are collapsed, so the datepicker height might change between months\n *\n * For the 2+ months view, days in between months are never shown.\n */\n this.outsideDays = this._config.outsideDays;\n /**\n * If `true`, week numbers will be displayed.\n */\n this.showWeekNumbers = this._config.showWeekNumbers;\n /**\n * The date to open calendar with.\n *\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n * If nothing or invalid date is provided, calendar will open with current month.\n *\n * You could use `navigateTo(date)` method as an alternative.\n */\n this.startDate = this._config.startDate;\n /**\n * The way weekdays should be displayed.\n *\n * * `true` - weekdays are displayed using default width\n * * `false` - weekdays are not displayed\n * * `TranslationWidth` - weekdays are displayed using specified width\n *\n * @since 9.1.0\n */\n this.weekdays = this._config.weekdays;\n /**\n * An event emitted right before the navigation happens and displayed month changes.\n *\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\n */\n this.navigate = new EventEmitter();\n /**\n * An event emitted when user selects a date using keyboard or mouse.\n *\n * The payload of the event is currently selected `NgbDate`.\n *\n * @since 5.2.0\n */\n this.dateSelect = new EventEmitter();\n this.onChange = (_) => { };\n this.onTouched = () => { };\n const cd = inject(ChangeDetectorRef);\n this._service.dateSelect$.pipe(takeUntilDestroyed()).subscribe((date) => {\n this.dateSelect.emit(date);\n });\n this._service.model$.pipe(takeUntilDestroyed()).subscribe((model) => {\n const newDate = model.firstDate;\n const oldDate = this.model ? this.model.firstDate : null;\n // update public state\n this._publicState = {\n maxDate: model.maxDate,\n minDate: model.minDate,\n firstDate: model.firstDate,\n lastDate: model.lastDate,\n focusedDate: model.focusDate,\n months: model.months.map((viewModel) => viewModel.firstDate),\n };\n let navigationPrevented = false;\n // emitting navigation event if the first month changes\n if (!newDate.equals(oldDate)) {\n this.navigate.emit({\n current: oldDate ? { year: oldDate.year, month: oldDate.month } : null,\n next: { year: newDate.year, month: newDate.month },\n preventDefault: () => (navigationPrevented = true),\n });\n // can't prevent the very first navigation\n if (navigationPrevented && oldDate !== null) {\n this._service.open(oldDate);\n return;\n }\n }\n const newSelectedDate = model.selectedDate;\n const newFocusedDate = model.focusDate;\n const oldFocusedDate = this.model ? this.model.focusDate : null;\n this.model = model;\n // handling selection change\n if (isChangedDate(newSelectedDate, this._controlValue)) {\n this._controlValue = newSelectedDate;\n this.onTouched();\n this.onChange(this._ngbDateAdapter.toModel(newSelectedDate));\n }\n // handling focus change\n if (isChangedDate(newFocusedDate, oldFocusedDate) && oldFocusedDate && model.focusVisible) {\n this.focus();\n }\n cd.markForCheck();\n });\n }\n /**\n * Returns the readonly public state of the datepicker\n *\n * @since 5.2.0\n */\n get state() {\n return this._publicState;\n }\n /**\n * Returns the calendar service used in the specific datepicker instance.\n *\n * @since 5.3.0\n */\n get calendar() {\n return this._calendar;\n }\n /**\n * Returns the i18n service used in the specific datepicker instance.\n *\n * @since 14.2.0\n */\n get i18n() {\n return this._i18n;\n }\n /**\n * Focuses on given date.\n */\n focusDate(date) {\n this._service.focus(NgbDate.from(date));\n }\n /**\n * Selects focused date.\n */\n focusSelect() {\n this._service.focusSelect();\n }\n focus() {\n this._ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => this._nativeElement.querySelector('div.ngb-dp-day[tabindex=\"0\"]')?.focus());\n }\n /**\n * Navigates to the provided date.\n *\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n * If nothing or invalid date provided calendar will open current month.\n *\n * Use the `[startDate]` input as an alternative.\n */\n navigateTo(date) {\n this._service.open(NgbDate.from(date ? (date.day ? date : { ...date, day: 1 }) : null));\n }\n ngAfterViewInit() {\n this._ngZone.runOutsideAngular(() => {\n const focusIns$ = fromEvent(this._contentEl.nativeElement, 'focusin');\n const focusOuts$ = fromEvent(this._contentEl.nativeElement, 'focusout');\n // we're changing 'focusVisible' only when entering or leaving months view\n // and ignoring all focus events where both 'target' and 'related' target are day cells\n merge(focusIns$, focusOuts$)\n .pipe(filter((focusEvent) => {\n const target = focusEvent.target;\n const relatedTarget = focusEvent.relatedTarget;\n return !(target?.classList.contains('ngb-dp-day') &&\n relatedTarget?.classList.contains('ngb-dp-day') &&\n this._nativeElement.contains(target) &&\n this._nativeElement.contains(relatedTarget));\n }), takeUntilDestroyed(this._destroyRef))\n .subscribe(({ type }) => this._ngZone.run(() => this._service.set({ focusVisible: type === 'focusin' })));\n });\n }\n ngOnInit() {\n if (this.model === undefined) {\n const inputs = {};\n [\n 'dayTemplateData',\n 'displayMonths',\n 'markDisabled',\n 'firstDayOfWeek',\n 'navigation',\n 'minDate',\n 'maxDate',\n 'outsideDays',\n 'weekdays',\n ].forEach((name) => (inputs[name] = this[name]));\n this._service.set(inputs);\n this.navigateTo(this.startDate);\n }\n if (!this.dayTemplate) {\n this.dayTemplate = this._defaultDayTemplate;\n }\n }\n ngOnChanges(changes) {\n const inputs = {};\n [\n 'dayTemplateData',\n 'displayMonths',\n 'markDisabled',\n 'firstDayOfWeek',\n 'navigation',\n 'minDate',\n 'maxDate',\n 'outsideDays',\n 'weekdays',\n ]\n .filter((name) => name in changes)\n .forEach((name) => (inputs[name] = this[name]));\n this._service.set(inputs);\n if ('startDate' in changes) {\n const { currentValue, previousValue } = changes.startDate;\n if (isChangedMonth(previousValue, currentValue)) {\n this.navigateTo(this.startDate);\n }\n }\n }\n onDateSelect(date) {\n this._service.focus(date);\n this._service.select(date, { emitEvent: true });\n }\n onNavigateDateSelect(date) {\n this._service.open(date);\n }\n onNavigateEvent(event) {\n switch (event) {\n case NavigationEvent.PREV:\n this._service.open(this._calendar.getPrev(this.model.firstDate, 'm', 1));\n break;\n case NavigationEvent.NEXT:\n this._service.open(this._calendar.getNext(this.model.firstDate, 'm', 1));\n break;\n }\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n setDisabledState(disabled) {\n this._service.set({ disabled });\n }\n writeValue(value) {\n this._controlValue = NgbDate.from(this._ngbDateAdapter.fromModel(value));\n this._service.select(this._controlValue);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepicker, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbDatepicker, isStandalone: true, selector: \"ngb-datepicker\", inputs: { contentTemplate: \"contentTemplate\", dayTemplate: \"dayTemplate\", dayTemplateData: \"dayTemplateData\", displayMonths: \"displayMonths\", firstDayOfWeek: \"firstDayOfWeek\", footerTemplate: \"footerTemplate\", markDisabled: \"markDisabled\", maxDate: \"maxDate\", minDate: \"minDate\", navigation: \"navigation\", outsideDays: \"outsideDays\", showWeekNumbers: \"showWeekNumbers\", startDate: \"startDate\", weekdays: \"weekdays\" }, outputs: { navigate: \"navigate\", dateSelect: \"dateSelect\" }, host: { properties: { \"class.disabled\": \"model.disabled\" } }, providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbDatepicker), multi: true },\n NgbDatepickerService,\n ], queries: [{ propertyName: \"contentTemplateFromContent\", first: true, predicate: NgbDatepickerContent, descendants: true, static: true }], viewQueries: [{ propertyName: \"_defaultDayTemplate\", first: true, predicate: [\"defaultDayTemplate\"], descendants: true, static: true }, { propertyName: \"_contentEl\", first: true, predicate: [\"content\"], descendants: true, static: true }], exportAs: [\"ngbDatepicker\"], usesOnChanges: true, ngImport: i0, template: `\n\t\t<ng-template\n\t\t\t#defaultDayTemplate\n\t\t\tlet-date=\"date\"\n\t\t\tlet-currentMonth=\"currentMonth\"\n\t\t\tlet-selected=\"selected\"\n\t\t\tlet-disabled=\"disabled\"\n\t\t\tlet-focused=\"focused\"\n\t\t>\n\t\t\t<div\n\t\t\t\tngbDatepickerDayView\n\t\t\t\t[date]=\"date\"\n\t\t\t\t[currentMonth]=\"currentMonth\"\n\t\t\t\t[selected]=\"selected\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[focused]=\"focused\"\n\t\t\t>\n\t\t\t</div>\n\t\t</ng-template>\n\n\t\t<ng-template #defaultContentTemplate>\n\t\t\t@for (month of model.months; track month; let i = $index) {\n\t\t\t\t<div class=\"ngb-dp-month\">\n\t\t\t\t\t@if (navigation === 'none' || (displayMonths > 1 && navigation === 'select')) {\n\t\t\t\t\t\t<div class=\"ngb-dp-month-name\">\n\t\t\t\t\t\t\t{{ i18n.getMonthLabel(month.firstDate) }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\t<ngb-datepicker-month [month]=\"month.firstDate\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-template>\n\n\t\t<div class=\"ngb-dp-header\">\n\t\t\t@if (navigation !== 'none') {\n\t\t\t\t<ngb-datepicker-navigation\n\t\t\t\t\t[date]=\"model.firstDate!\"\n\t\t\t\t\t[months]=\"model.months\"\n\t\t\t\t\t[disabled]=\"model.disabled\"\n\t\t\t\t\t[showSelect]=\"model.navigation === 'select'\"\n\t\t\t\t\t[prevDisabled]=\"model.prevDisabled\"\n\t\t\t\t\t[nextDisabled]=\"model.nextDisabled\"\n\t\t\t\t\t[selectBoxes]=\"model.selectBoxes\"\n\t\t\t\t\t(navigate)=\"onNavigateEvent($event)\"\n\t\t\t\t\t(select)=\"onNavigateDateSelect($event)\"\n\t\t\t\t/>\n\t\t\t}\n\t\t</div>\n\n\t\t<div class=\"ngb-dp-content\" [class.ngb-dp-months]=\"!contentTemplate\" #content>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"contentTemplate || contentTemplateFromContent?.templateRef || defaultContentTemplate\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: this }\"\n\t\t\t\t[ngTemplateOutletInjector]=\"injector\"\n\t\t\t/>\n\t\t</div>\n\n\t\t<ng-template [ngTemplateOutlet]=\"footerTemplate\" />\n\t`, isInline: true, styles: [\"ngb-datepicker{border:1px solid var(--bs-border-color);border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}ngb-datepicker.disabled .ngb-dp-weekday,ngb-datepicker.disabled .ngb-dp-week-number,ngb-datepicker.disabled .ngb-dp-month-name{color:var(--bs-text-muted)}.ngb-dp-body{z-index:1055}.ngb-dp-header{border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem;background-color:var(--bs-tertiary-bg)}.ngb-dp-months{display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center;background-color:var(--bs-tertiary-bg)}.ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,.ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-left:1rem}.ngb-dp-month:last-child .ngb-dp-week{padding-right:.25rem}.ngb-dp-month:first-child .ngb-dp-week{padding-left:.25rem}.ngb-dp-month .ngb-dp-week:last-child{padding-bottom:.25rem}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: NgbDatepickerDayView, selector: \"[ngbDatepickerDayView]\", inputs: [\"currentMonth\", \"date\", \"disabled\", \"focused\", \"selected\"] }, { kind: \"component\", type: NgbDatepickerMonth, selector: \"ngb-datepicker-month\", inputs: [\"month\"] }, { kind: \"component\", type: NgbDatepickerNavigation, selector: \"ngb-datepicker-navigation\", inputs: [\"date\", \"disabled\", \"months\", \"showSelect\", \"prevDisabled\", \"nextDisabled\", \"selectBoxes\"], outputs: [\"navigate\", \"select\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepicker, decorators: [{\n type: Component,\n args: [{ exportAs: 'ngbDatepicker', selector: 'ngb-datepicker', standalone: true, imports: [NgTemplateOutlet, NgbDatepickerDayView, NgbDatepickerMonth, NgbDatepickerNavigation], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n '[class.disabled]': 'model.disabled',\n }, template: `\n\t\t<ng-template\n\t\t\t#defaultDayTemplate\n\t\t\tlet-date=\"date\"\n\t\t\tlet-currentMonth=\"currentMonth\"\n\t\t\tlet-selected=\"selected\"\n\t\t\tlet-disabled=\"disabled\"\n\t\t\tlet-focused=\"focused\"\n\t\t>\n\t\t\t<div\n\t\t\t\tngbDatepickerDayView\n\t\t\t\t[date]=\"date\"\n\t\t\t\t[currentMonth]=\"currentMonth\"\n\t\t\t\t[selected]=\"selected\"\n\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t[focused]=\"focused\"\n\t\t\t>\n\t\t\t</div>\n\t\t</ng-template>\n\n\t\t<ng-template #defaultContentTemplate>\n\t\t\t@for (month of model.months; track month; let i = $index) {\n\t\t\t\t<div class=\"ngb-dp-month\">\n\t\t\t\t\t@if (navigation === 'none' || (displayMonths > 1 && navigation === 'select')) {\n\t\t\t\t\t\t<div class=\"ngb-dp-month-name\">\n\t\t\t\t\t\t\t{{ i18n.getMonthLabel(month.firstDate) }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t}\n\t\t\t\t\t<ngb-datepicker-month [month]=\"month.firstDate\" />\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-template>\n\n\t\t<div class=\"ngb-dp-header\">\n\t\t\t@if (navigation !== 'none') {\n\t\t\t\t<ngb-datepicker-navigation\n\t\t\t\t\t[date]=\"model.firstDate!\"\n\t\t\t\t\t[months]=\"model.months\"\n\t\t\t\t\t[disabled]=\"model.disabled\"\n\t\t\t\t\t[showSelect]=\"model.navigation === 'select'\"\n\t\t\t\t\t[prevDisabled]=\"model.prevDisabled\"\n\t\t\t\t\t[nextDisabled]=\"model.nextDisabled\"\n\t\t\t\t\t[selectBoxes]=\"model.selectBoxes\"\n\t\t\t\t\t(navigate)=\"onNavigateEvent($event)\"\n\t\t\t\t\t(select)=\"onNavigateDateSelect($event)\"\n\t\t\t\t/>\n\t\t\t}\n\t\t</div>\n\n\t\t<div class=\"ngb-dp-content\" [class.ngb-dp-months]=\"!contentTemplate\" #content>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"contentTemplate || contentTemplateFromContent?.templateRef || defaultContentTemplate\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: this }\"\n\t\t\t\t[ngTemplateOutletInjector]=\"injector\"\n\t\t\t/>\n\t\t</div>\n\n\t\t<ng-template [ngTemplateOutlet]=\"footerTemplate\" />\n\t`, providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbDatepicker), multi: true },\n NgbDatepickerService,\n ], styles: [\"ngb-datepicker{border:1px solid var(--bs-border-color);border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}ngb-datepicker.disabled .ngb-dp-weekday,ngb-datepicker.disabled .ngb-dp-week-number,ngb-datepicker.disabled .ngb-dp-month-name{color:var(--bs-text-muted)}.ngb-dp-body{z-index:1055}.ngb-dp-header{border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem;background-color:var(--bs-tertiary-bg)}.ngb-dp-months{display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center;background-color:var(--bs-tertiary-bg)}.ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,.ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-left:1rem}.ngb-dp-month:last-child .ngb-dp-week{padding-right:.25rem}.ngb-dp-month:first-child .ngb-dp-week{padding-left:.25rem}.ngb-dp-month .ngb-dp-week:last-child{padding-bottom:.25rem}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { _defaultDayTemplate: [{\n type: ViewChild,\n args: ['defaultDayTemplate', { static: true }]\n }], _contentEl: [{\n type: ViewChild,\n args: ['content', { static: true }]\n }], contentTemplate: [{\n type: Input\n }], contentTemplateFromContent: [{\n type: ContentChild,\n args: [NgbDatepickerContent, { static: true }]\n }], dayTemplate: [{\n type: Input\n }], dayTemplateData: [{\n type: Input\n }], displayMonths: [{\n type: Input\n }], firstDayOfWeek: [{\n type: Input\n }], footerTemplate: [{\n type: Input\n }], markDisabled: [{\n type: Input\n }], maxDate: [{\n type: Input\n }], minDate: [{\n type: Input\n }], navigation: [{\n type: Input\n }], outsideDays: [{\n type: Input\n }], showWeekNumbers: [{\n type: Input\n }], startDate: [{\n type: Input\n }], weekdays: [{\n type: Input\n }], navigate: [{\n type: Output\n }], dateSelect: [{\n type: Output\n }] } });\n\nconst isContainedIn = (element, array) => array ? array.some((item) => item.contains(element)) : false;\nconst matchesSelectorIfAny = (element, selector) => !selector || closest(element, selector) != null;\n// we have to add a more significant delay to avoid re-opening when handling (click) on a toggling element\n// TODO: use proper Angular platform detection when NgbAutoClose becomes a service and we can inject PLATFORM_ID\nconst isMobile = (() => {\n const isIOS = () => /iPad|iPhone|iPod/.test(navigator.userAgent) ||\n (/Macintosh/.test(navigator.userAgent) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2);\n const isAndroid = () => /Android/.test(navigator.userAgent);\n return typeof navigator !== 'undefined' ? !!navigator.userAgent && (isIOS() || isAndroid()) : false;\n})();\n// setting 'ngbAutoClose' synchronously on mobile results in immediate popup closing\n// when tapping on the triggering element\nconst wrapAsyncForMobile = (fn) => (isMobile ? () => setTimeout(() => fn(), 100) : fn);\nfunction ngbAutoClose(zone, document, type, close, closed$, insideElements, ignoreElements, insideSelector) {\n // closing on ESC and outside clicks\n if (type) {\n zone.runOutsideAngular(wrapAsyncForMobile(() => {\n const shouldCloseOnClick = (event) => {\n const element = event.target;\n if (event.button === 2 || isContainedIn(element, ignoreElements)) {\n return false;\n }\n if (type === 'inside') {\n return isContainedIn(element, insideElements) && matchesSelectorIfAny(element, insideSelector);\n }\n else if (type === 'outside') {\n return !isContainedIn(element, insideElements);\n } /* if (type === true) */\n else {\n return matchesSelectorIfAny(element, insideSelector) || !isContainedIn(element, insideElements);\n }\n };\n const escapes$ = fromEvent(document, 'keydown').pipe(takeUntil(closed$), \n /* eslint-disable-next-line deprecation/deprecation */\n filter((e) => e.which === Key.Escape), tap((e) => e.preventDefault()));\n // we have to pre-calculate 'shouldCloseOnClick' on 'mousedown',\n // because on 'mouseup' DOM nodes might be detached\n const mouseDowns$ = fromEvent(document, 'mousedown').pipe(map(shouldCloseOnClick), takeUntil(closed$));\n const closeableClicks$ = fromEvent(document, 'mouseup').pipe(withLatestFrom(mouseDowns$), filter(([_, shouldClose]) => shouldClose), delay(0), takeUntil(closed$));\n race([escapes$.pipe(map((_) => 0 /* SOURCE.ESCAPE */)), closeableClicks$.pipe(map((_) => 1 /* SOURCE.CLICK */))]).subscribe((source) => zone.run(() => close(source)));\n }));\n }\n}\n\nconst FOCUSABLE_ELEMENTS_SELECTOR = [\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled]):not([type=\"hidden\"])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n '[contenteditable]',\n '[tabindex]:not([tabindex=\"-1\"])',\n].join(', ');\n/**\n * Returns first and last focusable elements inside of a given element based on specific CSS selector\n */\nfunction getFocusableBoundaryElements(element) {\n const list = Array.from(element.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR)).filter((el) => el.tabIndex !== -1);\n return [list[0], list[list.length - 1]];\n}\n/**\n * Function that enforces browser focus to be trapped inside a DOM element.\n *\n * Works only for clicks inside the element and navigation with 'Tab', ignoring clicks outside of the element\n *\n * @param zone Angular zone\n * @param element The element around which focus will be trapped inside\n * @param stopFocusTrap$ The observable stream. When completed the focus trap will clean up listeners\n * and free internal resources\n * @param refocusOnClick Put the focus back to the last focused element whenever a click occurs on element (default to\n * false)\n */\nconst ngbFocusTrap = (zone, element, stopFocusTrap$, refocusOnClick = false) => {\n zone.runOutsideAngular(() => {\n // last focused element\n const lastFocusedElement$ = fromEvent(element, 'focusin').pipe(takeUntil(stopFocusTrap$), map((e) => e.target));\n // 'tab' / 'shift+tab' stream\n fromEvent(element, 'keydown')\n .pipe(takeUntil(stopFocusTrap$), \n /* eslint-disable-next-line deprecation/deprecation */\n filter((e) => e.which === Key.Tab), withLatestFrom(lastFocusedElement$))\n .subscribe(([tabEvent, focusedElement]) => {\n const [first, last] = getFocusableBoundaryElements(element);\n if ((focusedElement === first || focusedElement === element) && tabEvent.shiftKey) {\n last.focus();\n tabEvent.preventDefault();\n }\n if (focusedElement === last && !tabEvent.shiftKey) {\n first.focus();\n tabEvent.preventDefault();\n }\n });\n // inside click\n if (refocusOnClick) {\n fromEvent(element, 'click')\n .pipe(takeUntil(stopFocusTrap$), withLatestFrom(lastFocusedElement$), map((arr) => arr[1]))\n .subscribe((lastFocusedElement) => lastFocusedElement.focus());\n }\n });\n};\n\nclass NgbRTL {\n constructor() {\n this._element = inject(DOCUMENT).documentElement;\n }\n isRTL() {\n return (this._element.getAttribute('dir') || '').toLowerCase() === 'rtl';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbRTL, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbRTL, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbRTL, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nconst placementSeparator = /\\s+/;\nconst spacesRegExp = / +/gi;\n/**\n * Matching classes from the Bootstrap ones to the poppers ones.\n * The first index of each array is used for the left to right direction,\n * the second one is used for the right to left, defaulting to the first index (when LTR and RTL lead to the same class)\n *\n * See [Bootstrap alignments](https://getbootstrap.com/docs/5.1/components/dropdowns/#alignment-options)\n * and [Popper placements](https://popper.js.org/docs/v2/constructors/#options)\n */\nconst bootstrapPopperMatches = {\n top: ['top'],\n bottom: ['bottom'],\n start: ['left', 'right'],\n left: ['left'],\n end: ['right', 'left'],\n right: ['right'],\n 'top-start': ['top-start', 'top-end'],\n 'top-left': ['top-start'],\n 'top-end': ['top-end', 'top-start'],\n 'top-right': ['top-end'],\n 'bottom-start': ['bottom-start', 'bottom-end'],\n 'bottom-left': ['bottom-start'],\n 'bottom-end': ['bottom-end', 'bottom-start'],\n 'bottom-right': ['bottom-end'],\n 'start-top': ['left-start', 'right-start'],\n 'left-top': ['left-start'],\n 'start-bottom': ['left-end', 'right-end'],\n 'left-bottom': ['left-end'],\n 'end-top': ['right-start', 'left-start'],\n 'right-top': ['right-start'],\n 'end-bottom': ['right-end', 'left-end'],\n 'right-bottom': ['right-end'],\n};\nfunction getPopperClassPlacement(placement, isRTL) {\n const [leftClass, rightClass] = bootstrapPopperMatches[placement];\n return isRTL ? rightClass || leftClass : leftClass;\n}\nconst popperStartPrimaryPlacement = /^left/;\nconst popperEndPrimaryPlacement = /^right/;\nconst popperStartSecondaryPlacement = /^start/;\nconst popperEndSecondaryPlacement = /^end/;\nfunction getBootstrapBaseClassPlacement(baseClass, placement) {\n let [primary, secondary] = placement.split('-');\n const newPrimary = primary.replace(popperStartPrimaryPlacement, 'start').replace(popperEndPrimaryPlacement, 'end');\n let classnames = [newPrimary];\n if (secondary) {\n let newSecondary = secondary;\n if (primary === 'left' || primary === 'right') {\n newSecondary = newSecondary\n .replace(popperStartSecondaryPlacement, 'top')\n .replace(popperEndSecondaryPlacement, 'bottom');\n }\n classnames.push(`${newPrimary}-${newSecondary}`);\n }\n if (baseClass) {\n classnames = classnames.map((classname) => `${baseClass}-${classname}`);\n }\n return classnames.join(' ');\n}\n/*\n * Accept the placement array and applies the appropriate placement dependent on the viewport.\n * Returns the applied placement.\n * In case of auto placement, placements are selected in order\n * 'top', 'bottom', 'start', 'end',\n * 'top-start', 'top-end',\n * 'bottom-start', 'bottom-end',\n * 'start-top', 'start-bottom',\n * 'end-top', 'end-bottom'.\n * */\nfunction getPopperOptions({ placement, baseClass }, rtl) {\n let placementVals = Array.isArray(placement)\n ? placement\n : placement.split(placementSeparator);\n // No need to consider left and right here, as start and end are enough, and it is used for 'auto' placement only\n const allowedPlacements = [\n 'top',\n 'bottom',\n 'start',\n 'end',\n 'top-start',\n 'top-end',\n 'bottom-start',\n 'bottom-end',\n 'start-top',\n 'start-bottom',\n 'end-top',\n 'end-bottom',\n ];\n // replace auto placement with other placements\n let hasAuto = placementVals.findIndex((val) => val === 'auto');\n if (hasAuto >= 0) {\n allowedPlacements.forEach(function (obj) {\n if (placementVals.find((val) => val.search('^' + obj) !== -1) == null) {\n placementVals.splice(hasAuto++, 1, obj);\n }\n });\n }\n const popperPlacements = placementVals.map((_placement) => {\n return getPopperClassPlacement(_placement, rtl.isRTL());\n });\n let mainPlacement = popperPlacements.shift();\n const bsModifier = {\n name: 'bootstrapClasses',\n enabled: !!baseClass,\n phase: 'write',\n fn({ state }) {\n const bsClassRegExp = new RegExp(baseClass + '(-[a-z]+)*', 'gi');\n const popperElement = state.elements.popper;\n const popperPlacement = state.placement;\n let className = popperElement.className;\n // Remove old bootstrap classes\n className = className.replace(bsClassRegExp, '');\n // Add current placements\n className += ` ${getBootstrapBaseClassPlacement(baseClass, popperPlacement)}`;\n // Remove multiple spaces\n className = className.trim().replace(spacesRegExp, ' ');\n // Reassign\n popperElement.className = className;\n },\n };\n return {\n placement: mainPlacement,\n modifiers: [\n bsModifier,\n flip,\n preventOverflow,\n arrow,\n {\n enabled: true,\n name: 'flip',\n options: {\n fallbackPlacements: popperPlacements,\n },\n },\n {\n enabled: true,\n name: 'preventOverflow',\n phase: 'main',\n fn: function () { },\n },\n ],\n };\n}\nfunction noop(arg) {\n return arg;\n}\nfunction ngbPositioning() {\n const rtl = inject(NgbRTL);\n let popperInstance = null;\n return {\n createPopper(positioningOption) {\n if (!popperInstance) {\n const updatePopperOptions = positioningOption.updatePopperOptions || noop;\n let popperOptions = updatePopperOptions(getPopperOptions(positioningOption, rtl));\n popperInstance = createPopperLite(positioningOption.hostElement, positioningOption.targetElement, popperOptions);\n }\n },\n update() {\n if (popperInstance) {\n popperInstance.update();\n }\n },\n setOptions(positioningOption) {\n if (popperInstance) {\n const updatePopperOptions = positioningOption.updatePopperOptions || noop;\n let popperOptions = updatePopperOptions(getPopperOptions(positioningOption, rtl));\n popperInstance.setOptions(popperOptions);\n }\n },\n destroy() {\n if (popperInstance) {\n popperInstance.destroy();\n popperInstance = null;\n }\n },\n };\n}\n\nfunction NGB_DATEPICKER_PARSER_FORMATTER_FACTORY() {\n return new NgbDateISOParserFormatter();\n}\n/**\n * An abstract service for parsing and formatting dates for the\n * [`NgbInputDatepicker`](#/components/datepicker/api#NgbInputDatepicker) directive.\n * Converts between the internal `NgbDateStruct` 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 `NgbDateStruct` 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 * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\n */\nclass NgbDateParserFormatter {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateParserFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateParserFormatter, providedIn: 'root', useFactory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateParserFormatter, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY }]\n }] });\nclass NgbDateISOParserFormatter extends NgbDateParserFormatter {\n parse(value) {\n if (value != null) {\n const dateParts = value.trim().split('-');\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\n return { year: toInteger(dateParts[0]), month: null, day: null };\n }\n else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\n return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: null };\n }\n else if (dateParts.length === 3 && isNumber(dateParts[0]) && isNumber(dateParts[1]) && isNumber(dateParts[2])) {\n return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: toInteger(dateParts[2]) };\n }\n }\n return null;\n }\n format(date) {\n return date\n ? `${date.year}-${isNumber(date.month) ? padNumber(date.month) : ''}-${isNumber(date.day) ? padNumber(date.day) : ''}`\n : '';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateISOParserFormatter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateISOParserFormatter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateISOParserFormatter, decorators: [{\n type: Injectable\n }] });\n\n/**\n * A configuration service for the [`NgbDatepickerInput`](#/components/datepicker/api#NgbDatepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the datepicker inputs used in the application.\n *\n * @since 5.2.0\n */\nclass NgbInputDatepickerConfig extends NgbDatepickerConfig {\n constructor() {\n super(...arguments);\n this.autoClose = true;\n this.placement = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];\n this.popperOptions = (options) => options;\n this.restoreFocus = true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbInputDatepickerConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbInputDatepickerConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbInputDatepickerConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nfunction addPopperOffset(offset$1) {\n return (options) => {\n options.modifiers.push(offset, {\n name: 'offset',\n options: {\n offset: () => offset$1,\n },\n });\n return options;\n };\n}\n\n/**\n * A directive that allows to stick a datepicker popup to an input field.\n *\n * Manages interaction with the input field itself, does value formatting and provides forms integration.\n */\nclass NgbInputDatepicker {\n constructor() {\n this._parserFormatter = inject(NgbDateParserFormatter);\n this._elRef = inject((ElementRef));\n this._vcRef = inject(ViewContainerRef);\n this._ngZone = inject(NgZone);\n this._calendar = inject(NgbCalendar);\n this._dateAdapter = inject((NgbDateAdapter));\n this._document = inject(DOCUMENT);\n this._changeDetector = inject(ChangeDetectorRef);\n this._config = inject(NgbInputDatepickerConfig);\n this._cRef = null;\n this._disabled = false;\n this._elWithFocus = null;\n this._model = null;\n this._positioning = ngbPositioning();\n this._destroyCloseHandlers$ = new Subject();\n /**\n * Indicates whether the datepicker popup should be closed automatically after date selection / outside click or not.\n *\n * * `true` - the popup will close on both date selection and outside click.\n * * `false` - the popup can only be closed manually via `close()` or `toggle()` methods.\n * * `\"inside\"` - the popup will close on date selection, but not outside clicks.\n * * `\"outside\"` - the popup will close only on the outside click and not on date selection/inside clicks.\n *\n * @since 3.0.0\n */\n this.autoClose = this._config.autoClose;\n /**\n * The preferred placement of the datepicker popup, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"bottom-start bottom-end top-start top-end\"`\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the popup.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * A selector specifying the element the datepicker popup should be appended to.\n *\n * Currently only supports `\"body\"`.\n */\n this.container = this._config.container;\n /**\n * A css selector or html element specifying the element the datepicker popup should be positioned against.\n *\n * By default the input is used as a target.\n *\n * @since 4.2.0\n */\n this.positionTarget = this._config.positionTarget;\n /**\n * An event emitted when user selects a date using keyboard or mouse.\n *\n * The payload of the event is currently selected `NgbDate`.\n *\n * @since 1.1.1\n */\n this.dateSelect = new EventEmitter();\n /**\n * Event emitted right after the navigation happens and displayed month changes.\n *\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\n */\n this.navigate = new EventEmitter();\n /**\n * An event fired after closing datepicker window.\n *\n * @since 4.2.0\n */\n this.closed = new EventEmitter();\n this._onChange = (_) => { };\n this._onTouched = () => { };\n this._validatorChange = () => { };\n }\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value === '' || (value && value !== 'false');\n if (this.isOpen()) {\n this._cRef.instance.setDisabledState(this._disabled);\n }\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n registerOnValidatorChange(fn) {\n this._validatorChange = fn;\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n validate(c) {\n const { value } = c;\n if (value != null) {\n const ngbDate = this._fromDateStruct(this._dateAdapter.fromModel(value));\n if (!ngbDate) {\n return { ngbDate: { invalid: value } };\n }\n if (this.minDate && ngbDate.before(NgbDate.from(this.minDate))) {\n return { ngbDate: { minDate: { minDate: this.minDate, actual: value } } };\n }\n if (this.maxDate && ngbDate.after(NgbDate.from(this.maxDate))) {\n return { ngbDate: { maxDate: { maxDate: this.maxDate, actual: value } } };\n }\n }\n return null;\n }\n writeValue(value) {\n this._model = this._fromDateStruct(this._dateAdapter.fromModel(value));\n this._writeModelValue(this._model);\n }\n manualDateChange(value, updateView = false) {\n const inputValueChanged = value !== this._inputValue;\n if (inputValueChanged) {\n this._inputValue = value;\n this._model = this._fromDateStruct(this._parserFormatter.parse(value));\n }\n if (inputValueChanged || !updateView) {\n this._onChange(this._model ? this._dateAdapter.toModel(this._model) : value === '' ? null : value);\n }\n if (updateView && this._model) {\n this._writeModelValue(this._model);\n }\n }\n isOpen() {\n return !!this._cRef;\n }\n /**\n * Opens the datepicker popup.\n *\n * If the related form control contains a valid date, the corresponding month will be opened.\n */\n open() {\n if (!this.isOpen()) {\n this._cRef = this._vcRef.createComponent(NgbDatepicker);\n this._applyPopupStyling(this._cRef.location.nativeElement);\n this._applyDatepickerInputs(this._cRef);\n this._subscribeForDatepickerOutputs(this._cRef.instance);\n this._cRef.instance.ngOnInit();\n this._cRef.instance.writeValue(this._dateAdapter.toModel(this._model));\n // date selection event handling\n this._cRef.instance.registerOnChange((selectedDate) => {\n this.writeValue(selectedDate);\n this._onChange(selectedDate);\n this._onTouched();\n });\n this._cRef.changeDetectorRef.detectChanges();\n this._cRef.instance.setDisabledState(this.disabled);\n if (this.container === 'body') {\n this._document.querySelector(this.container)?.appendChild(this._cRef.location.nativeElement);\n }\n // focus handling\n this._elWithFocus = this._document.activeElement;\n ngbFocusTrap(this._ngZone, this._cRef.location.nativeElement, this.closed, true);\n setTimeout(() => this._cRef?.instance.focus());\n let hostElement;\n if (isString(this.positionTarget)) {\n hostElement = this._document.querySelector(this.positionTarget);\n }\n else if (this.positionTarget instanceof HTMLElement) {\n hostElement = this.positionTarget;\n }\n else {\n hostElement = this._elRef.nativeElement;\n }\n if (this.positionTarget && !hostElement) {\n throw new Error('ngbDatepicker could not find element declared in [positionTarget] to position against.');\n }\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n if (this._cRef && hostElement) {\n this._positioning.createPopper({\n hostElement,\n targetElement: this._cRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n updatePopperOptions: (options) => this.popperOptions(addPopperOffset([0, 2])(options)),\n });\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n }\n });\n this._setCloseHandlers();\n }\n }\n /**\n * Closes the datepicker popup.\n */\n close() {\n if (this.isOpen()) {\n this._vcRef.remove(this._vcRef.indexOf(this._cRef.hostView));\n this._cRef = null;\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this._destroyCloseHandlers$.next();\n this.closed.emit();\n this._changeDetector.markForCheck();\n // restore focus\n let elementToFocus = this._elWithFocus;\n if (isString(this.restoreFocus)) {\n elementToFocus = this._document.querySelector(this.restoreFocus);\n }\n else if (this.restoreFocus !== undefined) {\n elementToFocus = this.restoreFocus;\n }\n // in IE document.activeElement can contain an object without 'focus()' sometimes\n if (elementToFocus && elementToFocus['focus']) {\n elementToFocus.focus();\n }\n else {\n this._document.body.focus();\n }\n }\n }\n /**\n * Toggles the datepicker popup.\n */\n toggle() {\n if (this.isOpen()) {\n this.close();\n }\n else {\n this.open();\n }\n }\n /**\n * Navigates to the provided date.\n *\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n * If nothing or invalid date provided calendar will open current month.\n *\n * Use the `[startDate]` input as an alternative.\n */\n navigateTo(date) {\n if (this.isOpen()) {\n this._cRef.instance.navigateTo(date);\n }\n }\n onBlur() {\n this._onTouched();\n }\n onFocus() {\n this._elWithFocus = this._elRef.nativeElement;\n }\n ngOnChanges(changes) {\n if (changes['minDate'] || changes['maxDate']) {\n this._validatorChange();\n if (this.isOpen()) {\n if (changes['minDate']) {\n this._cRef.setInput('minDate', this.minDate);\n }\n if (changes['maxDate']) {\n this._cRef.setInput('maxDate', this.maxDate);\n }\n }\n }\n if (changes['datepickerClass']) {\n const { currentValue, previousValue } = changes['datepickerClass'];\n this._applyPopupClass(currentValue, previousValue);\n }\n if (changes['autoClose'] && this.isOpen()) {\n this._setCloseHandlers();\n }\n }\n ngOnDestroy() {\n this.close();\n }\n _applyDatepickerInputs(datepickerComponentRef) {\n [\n 'contentTemplate',\n 'dayTemplate',\n 'dayTemplateData',\n 'displayMonths',\n 'firstDayOfWeek',\n 'footerTemplate',\n 'markDisabled',\n 'minDate',\n 'maxDate',\n 'navigation',\n 'outsideDays',\n 'showNavigation',\n 'showWeekNumbers',\n 'weekdays',\n ].forEach((inputName) => {\n if (this[inputName] !== undefined) {\n datepickerComponentRef.setInput(inputName, this[inputName]);\n }\n });\n datepickerComponentRef.setInput('startDate', this.startDate || this._model);\n }\n _applyPopupClass(newClass, oldClass) {\n const popupEl = this._cRef?.location.nativeElement;\n if (popupEl) {\n if (newClass) {\n popupEl.classList.add(newClass);\n }\n if (oldClass) {\n popupEl.classList.remove(oldClass);\n }\n }\n }\n _applyPopupStyling(nativeElement) {\n nativeElement.classList.add('dropdown-menu', 'show');\n if (this.container === 'body') {\n nativeElement.classList.add('ngb-dp-body');\n }\n this._applyPopupClass(this.datepickerClass);\n }\n _subscribeForDatepickerOutputs(datepickerInstance) {\n datepickerInstance.navigate.subscribe((navigateEvent) => this.navigate.emit(navigateEvent));\n datepickerInstance.dateSelect.subscribe((date) => {\n this.dateSelect.emit(date);\n if (this.autoClose === true || this.autoClose === 'inside') {\n this.close();\n }\n });\n }\n _writeModelValue(model) {\n const value = this._parserFormatter.format(model);\n this._inputValue = value;\n this._elRef.nativeElement.value = value;\n if (this.isOpen()) {\n this._cRef.instance.writeValue(this._dateAdapter.toModel(model));\n this._onTouched();\n }\n }\n _fromDateStruct(date) {\n const ngbDate = date ? new NgbDate(date.year, date.month, date.day) : null;\n return this._calendar.isValid(ngbDate) ? ngbDate : null;\n }\n _setCloseHandlers() {\n this._destroyCloseHandlers$.next();\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this._destroyCloseHandlers$, [], [this._elRef.nativeElement, this._cRef.location.nativeElement]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbInputDatepicker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbInputDatepicker, isStandalone: true, selector: \"input[ngbDatepicker]\", inputs: { autoClose: \"autoClose\", contentTemplate: \"contentTemplate\", datepickerClass: \"datepickerClass\", dayTemplate: \"dayTemplate\", dayTemplateData: \"dayTemplateData\", displayMonths: \"displayMonths\", firstDayOfWeek: \"firstDayOfWeek\", footerTemplate: \"footerTemplate\", markDisabled: \"markDisabled\", minDate: \"minDate\", maxDate: \"maxDate\", navigation: \"navigation\", outsideDays: \"outsideDays\", placement: \"placement\", popperOptions: \"popperOptions\", restoreFocus: \"restoreFocus\", showWeekNumbers: \"showWeekNumbers\", startDate: \"startDate\", container: \"container\", positionTarget: \"positionTarget\", weekdays: \"weekdays\", disabled: \"disabled\" }, outputs: { dateSelect: \"dateSelect\", navigate: \"navigate\", closed: \"closed\" }, host: { listeners: { \"input\": \"manualDateChange($event.target.value)\", \"change\": \"manualDateChange($event.target.value, true)\", \"focus\": \"onFocus()\", \"blur\": \"onBlur()\" }, properties: { \"disabled\": \"disabled\" } }, providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbInputDatepicker), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => NgbInputDatepicker), multi: true },\n { provide: NgbDatepickerConfig, useExisting: NgbInputDatepickerConfig },\n ], exportAs: [\"ngbDatepicker\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbInputDatepicker, decorators: [{\n type: Directive,\n args: [{\n selector: 'input[ngbDatepicker]',\n exportAs: 'ngbDatepicker',\n standalone: true,\n host: {\n '(input)': 'manualDateChange($event.target.value)',\n '(change)': 'manualDateChange($event.target.value, true)',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '[disabled]': 'disabled',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbInputDatepicker), multi: true },\n { provide: NG_VALIDATORS, useExisting: forwardRef(() => NgbInputDatepicker), multi: true },\n { provide: NgbDatepickerConfig, useExisting: NgbInputDatepickerConfig },\n ],\n }]\n }], propDecorators: { autoClose: [{\n type: Input\n }], contentTemplate: [{\n type: Input\n }], datepickerClass: [{\n type: Input\n }], dayTemplate: [{\n type: Input\n }], dayTemplateData: [{\n type: Input\n }], displayMonths: [{\n type: Input\n }], firstDayOfWeek: [{\n type: Input\n }], footerTemplate: [{\n type: Input\n }], markDisabled: [{\n type: Input\n }], minDate: [{\n type: Input\n }], maxDate: [{\n type: Input\n }], navigation: [{\n type: Input\n }], outsideDays: [{\n type: Input\n }], placement: [{\n type: Input\n }], popperOptions: [{\n type: Input\n }], restoreFocus: [{\n type: Input\n }], showWeekNumbers: [{\n type: Input\n }], startDate: [{\n type: Input\n }], container: [{\n type: Input\n }], positionTarget: [{\n type: Input\n }], weekdays: [{\n type: Input\n }], dateSelect: [{\n type: Output\n }], navigate: [{\n type: Output\n }], closed: [{\n type: Output\n }], disabled: [{\n type: Input\n }] } });\n\nclass NgbCalendarHijri extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths() {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n getWeeksPerMonth() {\n return 6;\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date = this._setYear(date, date.year + number);\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = this._setMonth(date, date.month + number);\n date.day = 1;\n return date;\n case 'd':\n return this._setDay(date, date.day + number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const day = this.toGregorian(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n const date = week[thursdayIndex];\n const jsDate = this.toGregorian(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n const MuhDate = this.toGregorian(new NgbDate(date.year, 1, 1)); // Compare with Muharram 1\n return Math.floor(Math.round((time - MuhDate.getTime()) / 86400000) / 7) + 1;\n }\n getToday() {\n return this.fromGregorian(new Date());\n }\n isValid(date) {\n return (date != null &&\n isNumber(date.year) &&\n isNumber(date.month) &&\n isNumber(date.day) &&\n !isNaN(this.toGregorian(date).getTime()));\n }\n _setDay(date, day) {\n day = +day;\n let mDays = this.getDaysPerMonth(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = this._setMonth(date, date.month - 1);\n mDays = this.getDaysPerMonth(date.month, date.year);\n day += mDays;\n }\n }\n else if (day > mDays) {\n while (day > mDays) {\n day -= mDays;\n date = this._setMonth(date, date.month + 1);\n mDays = this.getDaysPerMonth(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n }\n _setMonth(date, month) {\n month = +month;\n date.year = date.year + Math.floor((month - 1) / 12);\n date.month = Math.floor((((month - 1) % 12) + 12) % 12) + 1;\n return date;\n }\n _setYear(date, year) {\n date.year = +year;\n return date;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarHijri, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarHijri }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarHijri, decorators: [{\n type: Injectable\n }] });\n\n/**\n * Checks if islamic year is a leap year\n */\nfunction isIslamicLeapYear(hYear) {\n return (14 + 11 * hYear) % 30 < 11;\n}\n/**\n * Checks if gregorian years is a leap year\n */\nfunction isGregorianLeapYear$1(gDate) {\n const year = gDate.getFullYear();\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n/**\n * Returns the start of Hijri Month.\n * `hMonth` is 0 for Muharram, 1 for Safar, etc.\n * `hYear` is any Hijri hYear.\n */\nfunction getIslamicMonthStart(hYear, hMonth) {\n return Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30.0);\n}\n/**\n * Returns the start of Hijri year.\n * `year` is any Hijri year.\n */\nfunction getIslamicYearStart(year) {\n return (year - 1) * 354 + Math.floor((3 + 11 * year) / 30.0);\n}\nfunction mod$1(a, b) {\n return a - b * Math.floor(a / b);\n}\n/**\n * The civil calendar is one type of Hijri calendars used in islamic countries.\n * Uses a fixed cycle of alternating 29- and 30-day months,\n * with a leap day added to the last month of 11 out of every 30 years.\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\n * All the calculations here are based on the equations from \"Calendrical Calculations\" By Edward M. Reingold, Nachum\n * Dershowitz.\n */\nconst GREGORIAN_EPOCH$1 = 1721425.5;\nconst ISLAMIC_EPOCH = 1948439.5;\nclass NgbCalendarIslamicCivil extends NgbCalendarHijri {\n /**\n * Returns the equivalent islamic(civil) date value for a give input Gregorian date.\n * `gDate` is a JS Date to be converted to Hijri.\n */\n fromGregorian(gDate) {\n const gYear = gDate.getFullYear(), gMonth = gDate.getMonth(), gDay = gDate.getDate();\n let julianDay = GREGORIAN_EPOCH$1 -\n 1 +\n 365 * (gYear - 1) +\n Math.floor((gYear - 1) / 4) +\n -Math.floor((gYear - 1) / 100) +\n Math.floor((gYear - 1) / 400) +\n Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear$1(gDate) ? -1 : -2) + gDay);\n julianDay = Math.floor(julianDay) + 0.5;\n const days = julianDay - ISLAMIC_EPOCH;\n const hYear = Math.floor((30 * days + 10646) / 10631.0);\n let hMonth = Math.ceil((days - 29 - getIslamicYearStart(hYear)) / 29.5);\n hMonth = Math.min(hMonth, 11);\n const hDay = Math.ceil(days - getIslamicMonthStart(hYear, hMonth)) + 1;\n return new NgbDate(hYear, hMonth + 1, hDay);\n }\n /**\n * Returns the equivalent JS date value for a give input islamic(civil) date.\n * `hDate` is an islamic(civil) date to be converted to Gregorian.\n */\n toGregorian(hDate) {\n const hYear = hDate.year;\n const hMonth = hDate.month - 1;\n const hDay = hDate.day;\n const julianDay = hDay + Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30) + ISLAMIC_EPOCH - 1;\n const wjd = Math.floor(julianDay - 0.5) + 0.5, depoch = wjd - GREGORIAN_EPOCH$1, quadricent = Math.floor(depoch / 146097), dqc = mod$1(depoch, 146097), cent = Math.floor(dqc / 36524), dcent = mod$1(dqc, 36524), quad = Math.floor(dcent / 1461), dquad = mod$1(dcent, 1461), yindex = Math.floor(dquad / 365);\n let year = quadricent * 400 + cent * 100 + quad * 4 + yindex;\n if (!(cent === 4 || yindex === 4)) {\n year++;\n }\n const gYearStart = GREGORIAN_EPOCH$1 +\n 365 * (year - 1) +\n Math.floor((year - 1) / 4) -\n Math.floor((year - 1) / 100) +\n Math.floor((year - 1) / 400);\n const yearday = wjd - gYearStart;\n const tjd = GREGORIAN_EPOCH$1 -\n 1 +\n 365 * (year - 1) +\n Math.floor((year - 1) / 4) -\n Math.floor((year - 1) / 100) +\n Math.floor((year - 1) / 400) +\n Math.floor(739 / 12 + (isGregorianLeapYear$1(new Date(year, 3, 1)) ? -1 : -2) + 1);\n const leapadj = wjd < tjd ? 0 : isGregorianLeapYear$1(new Date(year, 3, 1)) ? 1 : 2;\n const month = Math.floor(((yearday + leapadj) * 12 + 373) / 367);\n const tjd2 = GREGORIAN_EPOCH$1 -\n 1 +\n 365 * (year - 1) +\n Math.floor((year - 1) / 4) -\n Math.floor((year - 1) / 100) +\n Math.floor((year - 1) / 400) +\n Math.floor((367 * month - 362) / 12 + (month <= 2 ? 0 : isGregorianLeapYear$1(new Date(year, month - 1, 1)) ? -1 : -2) + 1);\n const day = wjd - tjd2 + 1;\n return new Date(year, month - 1, day);\n }\n /**\n * Returns the number of days in a specific Hijri month.\n * `month` is 1 for Muharram, 2 for Safar, etc.\n * `year` is any Hijri year.\n */\n getDaysPerMonth(month, year) {\n year = year + Math.floor(month / 13);\n month = ((month - 1) % 12) + 1;\n let length = 29 + (month % 2);\n if (month === 12 && isIslamicLeapYear(year)) {\n length++;\n }\n return length;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarIslamicCivil, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarIslamicCivil }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarIslamicCivil, decorators: [{\n type: Injectable\n }] });\n\n/**\n * Umalqura calendar is one type of Hijri calendars used in islamic countries.\n * This Calendar is used by Saudi Arabia for administrative purpose.\n * Unlike tabular calendars, the algorithm involves astronomical calculation, but it's still deterministic.\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\n */\nconst GREGORIAN_FIRST_DATE = new Date(1882, 10, 12);\nconst GREGORIAN_LAST_DATE = new Date(2174, 10, 25);\nconst HIJRI_BEGIN = 1300;\nconst HIJRI_END = 1600;\nconst ONE_DAY = 1000 * 60 * 60 * 24;\nconst MONTH_LENGTH = [\n // 1300-1304\n '101010101010',\n '110101010100',\n '111011001001',\n '011011010100',\n '011011101010',\n // 1305-1309\n '001101101100',\n '101010101101',\n '010101010101',\n '011010101001',\n '011110010010',\n // 1310-1314\n '101110101001',\n '010111010100',\n '101011011010',\n '010101011100',\n '110100101101',\n // 1315-1319\n '011010010101',\n '011101001010',\n '101101010100',\n '101101101010',\n '010110101101',\n // 1320-1324\n '010010101110',\n '101001001111',\n '010100010111',\n '011010001011',\n '011010100101',\n // 1325-1329\n '101011010101',\n '001011010110',\n '100101011011',\n '010010011101',\n '101001001101',\n // 1330-1334\n '110100100110',\n '110110010101',\n '010110101100',\n '100110110110',\n '001010111010',\n // 1335-1339\n '101001011011',\n '010100101011',\n '101010010101',\n '011011001010',\n '101011101001',\n // 1340-1344\n '001011110100',\n '100101110110',\n '001010110110',\n '100101010110',\n '101011001010',\n // 1345-1349\n '101110100100',\n '101111010010',\n '010111011001',\n '001011011100',\n '100101101101',\n // 1350-1354\n '010101001101',\n '101010100101',\n '101101010010',\n '101110100101',\n '010110110100',\n // 1355-1359\n '100110110110',\n '010101010111',\n '001010010111',\n '010101001011',\n '011010100011',\n // 1360-1364\n '011101010010',\n '101101100101',\n '010101101010',\n '101010101011',\n '010100101011',\n // 1365-1369\n '110010010101',\n '110101001010',\n '110110100101',\n '010111001010',\n '101011010110',\n // 1370-1374\n '100101010111',\n '010010101011',\n '100101001011',\n '101010100101',\n '101101010010',\n // 1375-1379\n '101101101010',\n '010101110101',\n '001001110110',\n '100010110111',\n '010001011011',\n // 1380-1384\n '010101010101',\n '010110101001',\n '010110110100',\n '100111011010',\n '010011011101',\n // 1385-1389\n '001001101110',\n '100100110110',\n '101010101010',\n '110101010100',\n '110110110010',\n // 1390-1394\n '010111010101',\n '001011011010',\n '100101011011',\n '010010101011',\n '101001010101',\n // 1395-1399\n '101101001001',\n '101101100100',\n '101101110001',\n '010110110100',\n '101010110101',\n // 1400-1404\n '101001010101',\n '110100100101',\n '111010010010',\n '111011001001',\n '011011010100',\n // 1405-1409\n '101011101001',\n '100101101011',\n '010010101011',\n '101010010011',\n '110101001001',\n // 1410-1414\n '110110100100',\n '110110110010',\n '101010111001',\n '010010111010',\n '101001011011',\n // 1415-1419\n '010100101011',\n '101010010101',\n '101100101010',\n '101101010101',\n '010101011100',\n // 1420-1424\n '010010111101',\n '001000111101',\n '100100011101',\n '101010010101',\n '101101001010',\n // 1425-1429\n '101101011010',\n '010101101101',\n '001010110110',\n '100100111011',\n '010010011011',\n // 1430-1434\n '011001010101',\n '011010101001',\n '011101010100',\n '101101101010',\n '010101101100',\n // 1435-1439\n '101010101101',\n '010101010101',\n '101100101001',\n '101110010010',\n '101110101001',\n // 1440-1444\n '010111010100',\n '101011011010',\n '010101011010',\n '101010101011',\n '010110010101',\n // 1445-1449\n '011101001001',\n '011101100100',\n '101110101010',\n '010110110101',\n '001010110110',\n // 1450-1454\n '101001010110',\n '111001001101',\n '101100100101',\n '101101010010',\n '101101101010',\n // 1455-1459\n '010110101101',\n '001010101110',\n '100100101111',\n '010010010111',\n '011001001011',\n // 1460-1464\n '011010100101',\n '011010101100',\n '101011010110',\n '010101011101',\n '010010011101',\n // 1465-1469\n '101001001101',\n '110100010110',\n '110110010101',\n '010110101010',\n '010110110101',\n // 1470-1474\n '001011011010',\n '100101011011',\n '010010101101',\n '010110010101',\n '011011001010',\n // 1475-1479\n '011011100100',\n '101011101010',\n '010011110101',\n '001010110110',\n '100101010110',\n // 1480-1484\n '101010101010',\n '101101010100',\n '101111010010',\n '010111011001',\n '001011101010',\n // 1485-1489\n '100101101101',\n '010010101101',\n '101010010101',\n '101101001010',\n '101110100101',\n // 1490-1494\n '010110110010',\n '100110110101',\n '010011010110',\n '101010010111',\n '010101000111',\n // 1495-1499\n '011010010011',\n '011101001001',\n '101101010101',\n '010101101010',\n '101001101011',\n // 1500-1504\n '010100101011',\n '101010001011',\n '110101000110',\n '110110100011',\n '010111001010',\n // 1505-1509\n '101011010110',\n '010011011011',\n '001001101011',\n '100101001011',\n '101010100101',\n // 1510-1514\n '101101010010',\n '101101101001',\n '010101110101',\n '000101110110',\n '100010110111',\n // 1515-1519\n '001001011011',\n '010100101011',\n '010101100101',\n '010110110100',\n '100111011010',\n // 1520-1524\n '010011101101',\n '000101101101',\n '100010110110',\n '101010100110',\n '110101010010',\n // 1525-1529\n '110110101001',\n '010111010100',\n '101011011010',\n '100101011011',\n '010010101011',\n // 1530-1534\n '011001010011',\n '011100101001',\n '011101100010',\n '101110101001',\n '010110110010',\n // 1535-1539\n '101010110101',\n '010101010101',\n '101100100101',\n '110110010010',\n '111011001001',\n // 1540-1544\n '011011010010',\n '101011101001',\n '010101101011',\n '010010101011',\n '101001010101',\n // 1545-1549\n '110100101001',\n '110101010100',\n '110110101010',\n '100110110101',\n '010010111010',\n // 1550-1554\n '101000111011',\n '010010011011',\n '101001001101',\n '101010101010',\n '101011010101',\n // 1555-1559\n '001011011010',\n '100101011101',\n '010001011110',\n '101000101110',\n '110010011010',\n // 1560-1564\n '110101010101',\n '011010110010',\n '011010111001',\n '010010111010',\n '101001011101',\n // 1565-1569\n '010100101101',\n '101010010101',\n '101101010010',\n '101110101000',\n '101110110100',\n // 1570-1574\n '010110111001',\n '001011011010',\n '100101011010',\n '101101001010',\n '110110100100',\n // 1575-1579\n '111011010001',\n '011011101000',\n '101101101010',\n '010101101101',\n '010100110101',\n // 1580-1584\n '011010010101',\n '110101001010',\n '110110101000',\n '110111010100',\n '011011011010',\n // 1585-1589\n '010101011011',\n '001010011101',\n '011000101011',\n '101100010101',\n '101101001010',\n // 1590-1594\n '101110010101',\n '010110101010',\n '101010101110',\n '100100101110',\n '110010001111',\n // 1595-1599\n '010100100111',\n '011010010101',\n '011010101010',\n '101011010110',\n '010101011101',\n // 1600\n '001010011101',\n];\nfunction getDaysDiff(date1, date2) {\n // Ignores the time part in date1 and date2:\n const time1 = Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate());\n const time2 = Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate());\n const diff = Math.abs(time1 - time2);\n return Math.round(diff / ONE_DAY);\n}\nclass NgbCalendarIslamicUmalqura extends NgbCalendarIslamicCivil {\n /**\n * Returns the equivalent islamic(Umalqura) date value for a give input Gregorian date.\n * `gdate` is s JS Date to be converted to Hijri.\n */\n fromGregorian(gDate) {\n let hDay = 1, hMonth = 0, hYear = 1300;\n let daysDiff = getDaysDiff(gDate, GREGORIAN_FIRST_DATE);\n if (gDate.getTime() - GREGORIAN_FIRST_DATE.getTime() >= 0 && gDate.getTime() - GREGORIAN_LAST_DATE.getTime() <= 0) {\n let year = 1300;\n for (let i = 0; i < MONTH_LENGTH.length; i++, year++) {\n for (let j = 0; j < 12; j++) {\n let numOfDays = +MONTH_LENGTH[i][j] + 29;\n if (daysDiff <= numOfDays) {\n hDay = daysDiff + 1;\n if (hDay > numOfDays) {\n hDay = 1;\n j++;\n }\n if (j > 11) {\n j = 0;\n year++;\n }\n hMonth = j;\n hYear = year;\n return new NgbDate(hYear, hMonth + 1, hDay);\n }\n daysDiff = daysDiff - numOfDays;\n }\n }\n return null;\n }\n else {\n return super.fromGregorian(gDate);\n }\n }\n /**\n * Converts the current Hijri date to Gregorian.\n */\n toGregorian(hDate) {\n const hYear = hDate.year;\n const hMonth = hDate.month - 1;\n const hDay = hDate.day;\n let gDate = new Date(GREGORIAN_FIRST_DATE);\n let dayDiff = hDay - 1;\n if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) {\n for (let y = 0; y < hYear - HIJRI_BEGIN; y++) {\n for (let m = 0; m < 12; m++) {\n dayDiff += +MONTH_LENGTH[y][m] + 29;\n }\n }\n for (let m = 0; m < hMonth; m++) {\n dayDiff += +MONTH_LENGTH[hYear - HIJRI_BEGIN][m] + 29;\n }\n gDate.setDate(GREGORIAN_FIRST_DATE.getDate() + dayDiff);\n }\n else {\n gDate = super.toGregorian(hDate);\n }\n return gDate;\n }\n /**\n * Returns the number of days in a specific Hijri hMonth.\n * `hMonth` is 1 for Muharram, 2 for Safar, etc.\n * `hYear` is any Hijri hYear.\n */\n getDaysPerMonth(hMonth, hYear) {\n if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) {\n const pos = hYear - HIJRI_BEGIN;\n return +MONTH_LENGTH[pos][hMonth - 1] + 29;\n }\n return super.getDaysPerMonth(hMonth, hYear);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarIslamicUmalqura, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarIslamicUmalqura }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarIslamicUmalqura, decorators: [{\n type: Injectable\n }] });\n\n/**\n * Returns the equivalent JS date value for a give input Jalali date.\n * `jalaliDate` is an Jalali date to be converted to Gregorian.\n */\nfunction toGregorian$3(jalaliDate) {\n let jdn = jalaliToJulian(jalaliDate.year, jalaliDate.month, jalaliDate.day);\n let date = julianToGregorian$1(jdn);\n date.setHours(6, 30, 3, 200);\n return date;\n}\n/**\n * Returns the equivalent jalali date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to jalali.\n * utc to local\n */\nfunction fromGregorian$3(gdate) {\n let g2d = gregorianToJulian$1(gdate.getFullYear(), gdate.getMonth() + 1, gdate.getDate());\n return julianToJalali(g2d);\n}\nfunction setJalaliYear(date, yearValue) {\n date.year = +yearValue;\n return date;\n}\nfunction setJalaliMonth(date, month) {\n month = +month;\n date.year = date.year + Math.floor((month - 1) / 12);\n date.month = Math.floor((((month - 1) % 12) + 12) % 12) + 1;\n return date;\n}\nfunction setJalaliDay(date, day) {\n let mDays = getDaysPerMonth$1(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = setJalaliMonth(date, date.month - 1);\n mDays = getDaysPerMonth$1(date.month, date.year);\n day += mDays;\n }\n }\n else if (day > mDays) {\n while (day > mDays) {\n day -= mDays;\n date = setJalaliMonth(date, date.month + 1);\n mDays = getDaysPerMonth$1(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n}\nfunction mod(a, b) {\n return a - b * Math.floor(a / b);\n}\nfunction div(a, b) {\n return Math.trunc(a / b);\n}\n/*\n This function determines if the Jalali (Persian) year is\n leap (366-day long) or is the common year (365 days), and\n finds the day in March (Gregorian calendar) of the first\n day of the Jalali year (jalaliYear).\n @param jalaliYear Jalali calendar year (-61 to 3177)\n @return\n leap: number of years since the last leap year (0 to 4)\n gYear: Gregorian year of the beginning of Jalali year\n march: the March day of Farvardin the 1st (1st day of jalaliYear)\n @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm\n @see: http://www.fourmilab.ch/documents/calendar/\n */\nfunction jalCal(jalaliYear) {\n // Jalali years starting the 33-year rule.\n let breaks = [\n -61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178,\n ];\n const breaksLength = breaks.length;\n const gYear = jalaliYear + 621;\n let leapJ = -14;\n let jp = breaks[0];\n if (jalaliYear < jp || jalaliYear >= breaks[breaksLength - 1]) {\n throw new Error('Invalid Jalali year ' + jalaliYear);\n }\n // Find the limiting years for the Jalali year jalaliYear.\n let jump;\n for (let i = 1; i < breaksLength; i += 1) {\n const jm = breaks[i];\n jump = jm - jp;\n if (jalaliYear < jm) {\n break;\n }\n leapJ = leapJ + div(jump, 33) * 8 + div(mod(jump, 33), 4);\n jp = jm;\n }\n let n = jalaliYear - jp;\n // Find the number of leap years from AD 621 to the beginning\n // of the current Jalali year in the Persian calendar.\n leapJ = leapJ + div(n, 33) * 8 + div(mod(n, 33) + 3, 4);\n if (mod(jump, 33) === 4 && jump - n === 4) {\n leapJ += 1;\n }\n // And the same in the Gregorian calendar (until the year gYear).\n const leapG = div(gYear, 4) - div((div(gYear, 100) + 1) * 3, 4) - 150;\n // Determine the Gregorian date of Farvardin the 1st.\n const march = 20 + leapJ - leapG;\n // Find how many years have passed since the last leap year.\n if (jump - n < 6) {\n n = n - jump + div(jump + 4, 33) * 33;\n }\n let leap = mod(mod(n + 1, 33) - 1, 4);\n if (leap === -1) {\n leap = 4;\n }\n return { leap: leap, gy: gYear, march: march };\n}\n/*\n Calculates Gregorian and Julian calendar dates from the Julian Day number\n (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both\n calendars) to some millions years ahead of the present.\n @param jdn Julian Day number\n @return\n gYear: Calendar year (years BC numbered 0, -1, -2, ...)\n gMonth: Calendar month (1 to 12)\n gDay: Calendar day of the month M (1 to 28/29/30/31)\n */\nfunction julianToGregorian$1(julianDayNumber) {\n let j = 4 * julianDayNumber + 139361631;\n j = j + div(div(4 * julianDayNumber + 183187720, 146097) * 3, 4) * 4 - 3908;\n const i = div(mod(j, 1461), 4) * 5 + 308;\n const gDay = div(mod(i, 153), 5) + 1;\n const gMonth = mod(div(i, 153), 12) + 1;\n const gYear = div(j, 1461) - 100100 + div(8 - gMonth, 6);\n return new Date(gYear, gMonth - 1, gDay);\n}\n/*\n Converts a date of the Jalali calendar to the Julian Day number.\n @param jy Jalali year (1 to 3100)\n @param jm Jalali month (1 to 12)\n @param jd Jalali day (1 to 29/31)\n @return Julian Day number\n */\nfunction gregorianToJulian$1(gy, gm, gd) {\n let d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4) + div(153 * mod(gm + 9, 12) + 2, 5) + gd - 34840408;\n d = d - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752;\n return d;\n}\n/*\n Converts the Julian Day number to a date in the Jalali calendar.\n @param julianDayNumber Julian Day number\n @return\n jalaliYear: Jalali year (1 to 3100)\n jalaliMonth: Jalali month (1 to 12)\n jalaliDay: Jalali day (1 to 29/31)\n */\nfunction julianToJalali(julianDayNumber) {\n let gy = julianToGregorian$1(julianDayNumber).getFullYear(), // Calculate Gregorian year (gy).\n jalaliYear = gy - 621, r = jalCal(jalaliYear), gregorianDay = gregorianToJulian$1(gy, 3, r.march), jalaliDay, jalaliMonth, numberOfDays;\n // Find number of days that passed since 1 Farvardin.\n numberOfDays = julianDayNumber - gregorianDay;\n if (numberOfDays >= 0) {\n if (numberOfDays <= 185) {\n // The first 6 months.\n jalaliMonth = 1 + div(numberOfDays, 31);\n jalaliDay = mod(numberOfDays, 31) + 1;\n return new NgbDate(jalaliYear, jalaliMonth, jalaliDay);\n }\n else {\n // The remaining months.\n numberOfDays -= 186;\n }\n }\n else {\n // Previous Jalali year.\n jalaliYear -= 1;\n numberOfDays += 179;\n if (r.leap === 1) {\n numberOfDays += 1;\n }\n }\n jalaliMonth = 7 + div(numberOfDays, 30);\n jalaliDay = mod(numberOfDays, 30) + 1;\n return new NgbDate(jalaliYear, jalaliMonth, jalaliDay);\n}\n/*\n Converts a date of the Jalali calendar to the Julian Day number.\n @param jYear Jalali year (1 to 3100)\n @param jMonth Jalali month (1 to 12)\n @param jDay Jalali day (1 to 29/31)\n @return Julian Day number\n */\nfunction jalaliToJulian(jYear, jMonth, jDay) {\n let r = jalCal(jYear);\n return gregorianToJulian$1(r.gy, 3, r.march) + (jMonth - 1) * 31 - div(jMonth, 7) * (jMonth - 7) + jDay - 1;\n}\n/**\n * Returns the number of days in a specific jalali month.\n */\nfunction getDaysPerMonth$1(month, year) {\n if (month <= 6) {\n return 31;\n }\n if (month <= 11) {\n return 30;\n }\n if (jalCal(year).leap === 0) {\n return 30;\n }\n return 29;\n}\n\nclass NgbCalendarPersian extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths() {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n getWeeksPerMonth() {\n return 6;\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date = setJalaliYear(date, date.year + number);\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = setJalaliMonth(date, date.month + number);\n date.day = 1;\n return date;\n case 'd':\n return setJalaliDay(date, date.day + number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const day = toGregorian$3(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n const date = week[thursdayIndex];\n const jsDate = toGregorian$3(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n const startDate = toGregorian$3(new NgbDate(date.year, 1, 1));\n return Math.floor(Math.round((time - startDate.getTime()) / 86400000) / 7) + 1;\n }\n getToday() {\n return fromGregorian$3(new Date());\n }\n isValid(date) {\n return (date != null &&\n isInteger(date.year) &&\n isInteger(date.month) &&\n isInteger(date.day) &&\n !isNaN(toGregorian$3(date).getTime()));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarPersian, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarPersian }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarPersian, decorators: [{\n type: Injectable\n }] });\n\nconst PARTS_PER_HOUR = 1080;\nconst PARTS_PER_DAY = 24 * PARTS_PER_HOUR;\nconst PARTS_FRACTIONAL_MONTH = 12 * PARTS_PER_HOUR + 793;\nconst PARTS_PER_MONTH = 29 * PARTS_PER_DAY + PARTS_FRACTIONAL_MONTH;\nconst BAHARAD = 11 * PARTS_PER_HOUR + 204;\nconst HEBREW_DAY_ON_JAN_1_1970 = 2092591;\nconst GREGORIAN_EPOCH = 1721425.5;\nfunction isGregorianLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\nfunction numberOfFirstDayInYear(year) {\n let monthsBeforeYear = Math.floor((235 * year - 234) / 19);\n let fractionalMonthsBeforeYear = monthsBeforeYear * PARTS_FRACTIONAL_MONTH + BAHARAD;\n let dayNumber = monthsBeforeYear * 29 + Math.floor(fractionalMonthsBeforeYear / PARTS_PER_DAY);\n let timeOfDay = fractionalMonthsBeforeYear % PARTS_PER_DAY;\n let dayOfWeek = dayNumber % 7; // 0 == Monday\n if (dayOfWeek === 2 || dayOfWeek === 4 || dayOfWeek === 6) {\n dayNumber++;\n dayOfWeek = dayNumber % 7;\n }\n if (dayOfWeek === 1 && timeOfDay > 15 * PARTS_PER_HOUR + 204 && !isHebrewLeapYear(year)) {\n dayNumber += 2;\n }\n else if (dayOfWeek === 0 && timeOfDay > 21 * PARTS_PER_HOUR + 589 && isHebrewLeapYear(year - 1)) {\n dayNumber++;\n }\n return dayNumber;\n}\nfunction getDaysInGregorianMonth(month, year) {\n let days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (isGregorianLeapYear(year)) {\n days[1]++;\n }\n return days[month - 1];\n}\nfunction getHebrewMonths(year) {\n return isHebrewLeapYear(year) ? 13 : 12;\n}\n/**\n * Returns the number of days in a specific Hebrew year.\n * `year` is any Hebrew year.\n */\nfunction getDaysInHebrewYear(year) {\n return numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year);\n}\nfunction isHebrewLeapYear(year) {\n if (year != null) {\n let b = (year * 12 + 17) % 19;\n return b >= (b < 0 ? -7 : 12);\n }\n return false;\n}\n/**\n * Returns the number of days in a specific Hebrew month.\n * `month` is 1 for Nisan, 2 for Iyar etc. Note: Hebrew leap year contains 13 months.\n * `year` is any Hebrew year.\n */\nfunction getDaysInHebrewMonth(month, year) {\n let yearLength = numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year);\n let yearType = (yearLength <= 380 ? yearLength : yearLength - 30) - 353;\n let leapYear = isHebrewLeapYear(year);\n let daysInMonth = leapYear\n ? [30, 29, 29, 29, 30, 30, 29, 30, 29, 30, 29, 30, 29]\n : [30, 29, 29, 29, 30, 29, 30, 29, 30, 29, 30, 29];\n if (yearType > 0) {\n daysInMonth[2]++; // Kislev gets an extra day in normal or complete years.\n }\n if (yearType > 1) {\n daysInMonth[1]++; // Heshvan gets an extra day in complete years only.\n }\n return daysInMonth[month - 1];\n}\nfunction getDayNumberInHebrewYear(date) {\n let numberOfDay = 0;\n for (let i = 1; i < date.month; i++) {\n numberOfDay += getDaysInHebrewMonth(i, date.year);\n }\n return numberOfDay + date.day;\n}\nfunction setHebrewMonth(date, val) {\n let after = val >= 0;\n if (!after) {\n val = -val;\n }\n while (val > 0) {\n if (after) {\n if (val > getHebrewMonths(date.year) - date.month) {\n val -= getHebrewMonths(date.year) - date.month + 1;\n date.year++;\n date.month = 1;\n }\n else {\n date.month += val;\n val = 0;\n }\n }\n else {\n if (val >= date.month) {\n date.year--;\n val -= date.month;\n date.month = getHebrewMonths(date.year);\n }\n else {\n date.month -= val;\n val = 0;\n }\n }\n }\n return date;\n}\nfunction setHebrewDay(date, val) {\n let after = val >= 0;\n if (!after) {\n val = -val;\n }\n while (val > 0) {\n if (after) {\n if (val > getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date)) {\n val -= getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date) + 1;\n date.year++;\n date.month = 1;\n date.day = 1;\n }\n else if (val > getDaysInHebrewMonth(date.month, date.year) - date.day) {\n val -= getDaysInHebrewMonth(date.month, date.year) - date.day + 1;\n date.month++;\n date.day = 1;\n }\n else {\n date.day += val;\n val = 0;\n }\n }\n else {\n if (val >= date.day) {\n val -= date.day;\n date.month--;\n if (date.month === 0) {\n date.year--;\n date.month = getHebrewMonths(date.year);\n }\n date.day = getDaysInHebrewMonth(date.month, date.year);\n }\n else {\n date.day -= val;\n val = 0;\n }\n }\n }\n return date;\n}\n/**\n * Returns the equivalent Hebrew date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to Hebrew date.\n */\nfunction fromGregorian$2(gdate) {\n const date = new Date(gdate);\n const gYear = date.getFullYear(), gMonth = date.getMonth(), gDay = date.getDate();\n let julianDay = GREGORIAN_EPOCH -\n 1 +\n 365 * (gYear - 1) +\n Math.floor((gYear - 1) / 4) -\n Math.floor((gYear - 1) / 100) +\n Math.floor((gYear - 1) / 400) +\n Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear(gYear) ? -1 : -2) + gDay);\n julianDay = Math.floor(julianDay + 0.5);\n let daysSinceHebEpoch = julianDay - 347997;\n let monthsSinceHebEpoch = Math.floor((daysSinceHebEpoch * PARTS_PER_DAY) / PARTS_PER_MONTH);\n let hYear = Math.floor((monthsSinceHebEpoch * 19 + 234) / 235) + 1;\n let firstDayOfThisYear = numberOfFirstDayInYear(hYear);\n let dayOfYear = daysSinceHebEpoch - firstDayOfThisYear;\n while (dayOfYear < 1) {\n hYear--;\n firstDayOfThisYear = numberOfFirstDayInYear(hYear);\n dayOfYear = daysSinceHebEpoch - firstDayOfThisYear;\n }\n let hMonth = 1;\n let hDay = dayOfYear;\n while (hDay > getDaysInHebrewMonth(hMonth, hYear)) {\n hDay -= getDaysInHebrewMonth(hMonth, hYear);\n hMonth++;\n }\n return new NgbDate(hYear, hMonth, hDay);\n}\n/**\n * Returns the equivalent JS date value for a given Hebrew date.\n * `hebrewDate` is an Hebrew date to be converted to Gregorian.\n */\nfunction toGregorian$2(hebrewDate) {\n const hYear = hebrewDate.year;\n const hMonth = hebrewDate.month;\n const hDay = hebrewDate.day;\n let days = numberOfFirstDayInYear(hYear);\n for (let i = 1; i < hMonth; i++) {\n days += getDaysInHebrewMonth(i, hYear);\n }\n days += hDay;\n let diffDays = days - HEBREW_DAY_ON_JAN_1_1970;\n let after = diffDays >= 0;\n if (!after) {\n diffDays = -diffDays;\n }\n let gYear = 1970;\n let gMonth = 1;\n let gDay = 1;\n while (diffDays > 0) {\n if (after) {\n if (diffDays >= (isGregorianLeapYear(gYear) ? 366 : 365)) {\n diffDays -= isGregorianLeapYear(gYear) ? 366 : 365;\n gYear++;\n }\n else if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) {\n diffDays -= getDaysInGregorianMonth(gMonth, gYear);\n gMonth++;\n }\n else {\n gDay += diffDays;\n diffDays = 0;\n }\n }\n else {\n if (diffDays >= (isGregorianLeapYear(gYear - 1) ? 366 : 365)) {\n diffDays -= isGregorianLeapYear(gYear - 1) ? 366 : 365;\n gYear--;\n }\n else {\n if (gMonth > 1) {\n gMonth--;\n }\n else {\n gMonth = 12;\n gYear--;\n }\n if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) {\n diffDays -= getDaysInGregorianMonth(gMonth, gYear);\n }\n else {\n gDay = getDaysInGregorianMonth(gMonth, gYear) - diffDays + 1;\n diffDays = 0;\n }\n }\n }\n }\n return new Date(gYear, gMonth - 1, gDay);\n}\nfunction hebrewNumerals(numerals) {\n if (!numerals) {\n return '';\n }\n const hArray0_9 = ['', '\\u05d0', '\\u05d1', '\\u05d2', '\\u05d3', '\\u05d4', '\\u05d5', '\\u05d6', '\\u05d7', '\\u05d8'];\n const hArray10_19 = [\n '\\u05d9',\n '\\u05d9\\u05d0',\n '\\u05d9\\u05d1',\n '\\u05d9\\u05d2',\n '\\u05d9\\u05d3',\n '\\u05d8\\u05d5',\n '\\u05d8\\u05d6',\n '\\u05d9\\u05d6',\n '\\u05d9\\u05d7',\n '\\u05d9\\u05d8',\n ];\n const hArray20_90 = ['', '', '\\u05db', '\\u05dc', '\\u05de', '\\u05e0', '\\u05e1', '\\u05e2', '\\u05e4', '\\u05e6'];\n const hArray100_900 = [\n '',\n '\\u05e7',\n '\\u05e8',\n '\\u05e9',\n '\\u05ea',\n '\\u05ea\\u05e7',\n '\\u05ea\\u05e8',\n '\\u05ea\\u05e9',\n '\\u05ea\\u05ea',\n '\\u05ea\\u05ea\\u05e7',\n ];\n const hArray1000_9000 = [\n '',\n '\\u05d0',\n '\\u05d1',\n '\\u05d1\\u05d0',\n '\\u05d1\\u05d1',\n '\\u05d4',\n '\\u05d4\\u05d0',\n '\\u05d4\\u05d1',\n '\\u05d4\\u05d1\\u05d0',\n '\\u05d4\\u05d1\\u05d1',\n ];\n const geresh = '\\u05f3', gershaim = '\\u05f4';\n let mem = 0;\n let result = [];\n let step = 0;\n while (numerals > 0) {\n let m = numerals % 10;\n if (step === 0) {\n mem = m;\n }\n else if (step === 1) {\n if (m !== 1) {\n result.unshift(hArray20_90[m], hArray0_9[mem]);\n }\n else {\n result.unshift(hArray10_19[mem]);\n }\n }\n else if (step === 2) {\n result.unshift(hArray100_900[m]);\n }\n else {\n if (m !== 5) {\n result.unshift(hArray1000_9000[m], geresh, ' ');\n }\n break;\n }\n numerals = Math.floor(numerals / 10);\n if (step === 0 && numerals === 0) {\n result.unshift(hArray0_9[m]);\n }\n step++;\n }\n result = result.join('').split('');\n if (result.length === 1) {\n result.push(geresh);\n }\n else if (result.length > 1) {\n result.splice(result.length - 1, 0, gershaim);\n }\n return result.join('');\n}\n\n/**\n * @since 3.2.0\n */\nclass NgbCalendarHebrew extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths(year) {\n if (year && isHebrewLeapYear(year)) {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];\n }\n else {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n }\n getWeeksPerMonth() {\n return 6;\n }\n isValid(date) {\n if (date != null) {\n let b = isNumber(date.year) && isNumber(date.month) && isNumber(date.day);\n b = b && date.month > 0 && date.month <= (isHebrewLeapYear(date.year) ? 13 : 12);\n b = b && date.day > 0 && date.day <= getDaysInHebrewMonth(date.month, date.year);\n return b && !isNaN(toGregorian$2(date).getTime());\n }\n return false;\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date.year += number;\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = setHebrewMonth(date, number);\n date.day = 1;\n return date;\n case 'd':\n return setHebrewDay(date, number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const day = toGregorian$2(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n const date = week[week.length - 1];\n return Math.ceil(getDayNumberInHebrewYear(date) / 7);\n }\n getToday() {\n return fromGregorian$2(new Date());\n }\n /**\n * @since 3.4.0\n */\n toGregorian(date) {\n return fromJSDate(toGregorian$2(date));\n }\n /**\n * @since 3.4.0\n */\n fromGregorian(date) {\n return fromGregorian$2(toJSDate(date));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarHebrew, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarHebrew }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarHebrew, decorators: [{\n type: Injectable\n }] });\n\nconst WEEKDAYS$1 = ['שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת', 'ראשון'];\nconst MONTHS$1 = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];\nconst MONTHS_LEAP = [\n 'תשרי',\n 'חשון',\n 'כסלו',\n 'טבת',\n 'שבט',\n 'אדר א׳',\n 'אדר ב׳',\n 'ניסן',\n 'אייר',\n 'סיון',\n 'תמוז',\n 'אב',\n 'אלול',\n];\n/**\n * @since 3.2.0\n */\nclass NgbDatepickerI18nHebrew extends NgbDatepickerI18n {\n getMonthShortName(month, year) {\n return this.getMonthFullName(month, year);\n }\n getMonthFullName(month, year) {\n return isHebrewLeapYear(year) ? MONTHS_LEAP[month - 1] || '' : MONTHS$1[month - 1] || '';\n }\n getWeekdayLabel(weekday, width) {\n return WEEKDAYS$1[weekday - 1] || '';\n }\n getDayAriaLabel(date) {\n return `${hebrewNumerals(date.day)} ${this.getMonthFullName(date.month, date.year)} ${hebrewNumerals(date.year)}`;\n }\n getDayNumerals(date) {\n return hebrewNumerals(date.day);\n }\n getWeekNumerals(weekNumber) {\n return hebrewNumerals(weekNumber);\n }\n getYearNumerals(year) {\n return hebrewNumerals(year);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerI18nHebrew, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerI18nHebrew }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerI18nHebrew, decorators: [{\n type: Injectable\n }] });\n\n/**\n * Returns the equivalent JS date value for a give input Buddhist date.\n * `date` is an Buddhist date to be converted to Gregorian.\n */\nfunction toGregorian$1(date) {\n return new Date(date.year - 543, date.month - 1, date.day);\n}\n/**\n * Returns the equivalent Buddhist date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to Buddhist.\n * utc to local\n */\nfunction fromGregorian$1(gdate) {\n return new NgbDate(gdate.getFullYear() + 543, gdate.getMonth() + 1, gdate.getDate());\n}\n\n/**\n * @since 9.1.0\n */\nclass NgbCalendarBuddhist extends NgbCalendarGregorian {\n getToday() {\n return fromGregorian$1(new Date());\n }\n getNext(date, period = 'd', number = 1) {\n let jsDate = toGregorian$1(date);\n let checkMonth = true;\n let expectedMonth = jsDate.getMonth();\n switch (period) {\n case 'y':\n jsDate.setFullYear(jsDate.getFullYear() + number);\n break;\n case 'm':\n expectedMonth += number;\n jsDate.setMonth(expectedMonth);\n expectedMonth = expectedMonth % 12;\n if (expectedMonth < 0) {\n expectedMonth = expectedMonth + 12;\n }\n break;\n case 'd':\n jsDate.setDate(jsDate.getDate() + number);\n checkMonth = false;\n break;\n default:\n return date;\n }\n if (checkMonth && jsDate.getMonth() !== expectedMonth) {\n // this means the destination month has less days than the initial month\n // let's go back to the end of the previous month:\n jsDate.setDate(0);\n }\n return fromGregorian$1(jsDate);\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n let jsDate = toGregorian$1(date);\n let day = jsDate.getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n let date = week[thursdayIndex];\n const jsDate = toGregorian$1(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n jsDate.setMonth(0); // Compare with Jan 1\n jsDate.setDate(1);\n return Math.floor(Math.round((time - jsDate.getTime()) / 86400000) / 7) + 1;\n }\n isValid(date) {\n if (!date || !isInteger(date.year) || !isInteger(date.month) || !isInteger(date.day)) {\n return false;\n }\n // year 0 doesn't exist in Gregorian calendar\n if (date.year === 0) {\n return false;\n }\n const jsDate = toGregorian$1(date);\n return (!isNaN(jsDate.getTime()) &&\n jsDate.getFullYear() === date.year - 543 &&\n jsDate.getMonth() + 1 === date.month &&\n jsDate.getDate() === date.day);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarBuddhist, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarBuddhist }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarBuddhist, decorators: [{\n type: Injectable\n }] });\n\nconst JD_EPOCH = 1724220.5;\nconst DAYSPERMONTH = [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5];\n/**\n * Determine whether this date is in a leap year.\n * * `year` is the year to examine\n * returns boolean - true if this is a leap year, false if not\n * */\nfunction isEthiopianLeapYear(year) {\n if (year != null) {\n return year % 4 == 3 || year % 4 == -1;\n }\n return false;\n}\n/**\n * Sets the Ethiopian year.\n * * `date` is Ethiopian date\n * * `yearValue` incremented year\n * returns NgbDate - ethiopian date\n * */\nfunction setEthiopianYear(date, yearValue) {\n date.year = +yearValue;\n return date;\n}\n/**\n * Sets the Ethiopian month.\n * * `date` is Ethiopian date\n * * `val` incremented month\n * returns NgbDate - Ethiopian date\n * */\nfunction setEthiopianMonth(date, val) {\n val = +val;\n date.year = date.year + Math.floor((val - 1) / 13);\n date.month = Math.floor((((val - 1) % 13) + 13) % 13) + 1;\n return date;\n}\n/**\n * Sets the Ethiopian day.\n * * `date` is Ethiopian date\n * * `day` incremented day\n * returns NgbDate - Ethiopian date\n * */\nfunction setEthiopianDay(date, day) {\n let mDays = getDaysPerMonth(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = setEthiopianMonth(date, date.month - 1);\n mDays = getDaysPerMonth(date.month, date.year);\n day += mDays;\n }\n }\n else if (day > mDays) {\n while (day > mDays) {\n day -= mDays;\n date = setEthiopianMonth(date, date.month + 1);\n mDays = getDaysPerMonth(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n}\nfunction getDaysPerMonth(month, year) {\n let leapYear = isEthiopianLeapYear(year);\n return DAYSPERMONTH[month - 1] + (month === 13 && leapYear ? 1 : 0);\n}\nfunction toGregorian(ethiopianDate) {\n let jdn = ethiopianToJulian(ethiopianDate.year, ethiopianDate.month, ethiopianDate.day);\n let date = julianToGregorian(jdn);\n date.setHours(6, 30, 3, 200);\n return date;\n}\nfunction fromGregorian(gdate) {\n let g2d = gregorianToJulian(gdate.getFullYear(), gdate.getMonth() + 1, gdate.getDate());\n return juilianToEthiopia(g2d);\n}\nfunction ethiopianToJulian(year, month, day) {\n if (year < 0) {\n year++;\n } // No year zero\n return day + (month - 1) * 30 + (year - 1) * 365 + Math.floor(year / 4) + JD_EPOCH - 1;\n}\nfunction juilianToEthiopia(jd) {\n let c = Math.floor(jd) + 0.5 - JD_EPOCH;\n let year = Math.floor((c - Math.floor((c + 366) / 1461)) / 365) + 1;\n if (year <= 0) {\n year--;\n } // No year zero\n c = Math.floor(jd) + 0.5 - ethiopianToJulian(year, 1, 1);\n let month = Math.floor(c / 30) + 1;\n let day = c - (month - 1) * 30 + 1;\n return new NgbDate(year, month, day);\n}\nfunction julianToGregorian(jd) {\n let z = Math.floor(jd + 0.5);\n let a = Math.floor((z - 1867216.25) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n let b = a + 1524;\n let c = Math.floor((b - 122.1) / 365.25);\n let d = Math.floor(365.25 * c);\n let e = Math.floor((b - d) / 30.6001);\n let day = b - d - Math.floor(e * 30.6001);\n let month = e - (e > 13.5 ? 13 : 1);\n let year = c - (month > 2.5 ? 4716 : 4715);\n if (year <= 0) {\n year--;\n } // No year zero\n return new Date(year, month, day);\n}\nfunction gregorianToJulian(year, month, day) {\n if (year < 0) {\n year++;\n } // No year zero\n // Jean Meeus algorithm, \"Astronomical Algorithms\", 1991\n if (month < 3) {\n month += 12;\n year--;\n }\n let a = Math.floor(year / 100);\n let b = 2 - a + Math.floor(a / 4);\n return Math.floor(365.25 * (year + 4716)) + Math.floor(30.6001 * (month + 1)) + day + b - 1524.5;\n}\n\n/**\n * @since 16.0.0\n */\nclass NgbCalendarEthiopian extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths(year) {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date = setEthiopianYear(date, date.year + number);\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = setEthiopianMonth(date, date.month + number);\n date.day = 1;\n return date;\n case 'd':\n return setEthiopianDay(date, date.day + number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const dt = Math.floor(ethiopianToJulian(date.year, date.month, date.day) + 3) % 7;\n return dt === 0 ? 7 : dt;\n }\n getWeekNumber(week, firstDayOfWeek) {\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n const date = week[thursdayIndex];\n const jsDate = toGregorian(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n const startDate = toGregorian(new NgbDate(date.year, 1, 1));\n return Math.floor(Math.round((time - startDate.getTime()) / 86400000) / 7) + 1;\n }\n getWeeksPerMonth() {\n return 6;\n }\n getToday() {\n return fromGregorian(new Date());\n }\n isValid(date) {\n return (date &&\n isInteger(date.year) &&\n isInteger(date.month) &&\n isInteger(date.day) &&\n !isNaN(toGregorian(date).getTime()));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarEthiopian, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarEthiopian }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbCalendarEthiopian, decorators: [{\n type: Injectable\n }] });\n\nconst WEEKDAYS = ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', 'ሓሙስ', 'ዓርብ', 'ቅዳሜ'];\nconst MONTHS = ['መስከረም', 'ጥቅምት', 'ኅዳር', 'ታህሣሥ', 'ጥር', 'የካቲት', 'መጋቢት', 'ሚያዝያ', 'ግንቦት', 'ሰኔ', 'ሐምሌ', 'ነሐሴ', 'ጳጉሜ'];\n/**\n * @since 16.0.0\n */\nclass NgbDatepickerI18nAmharic extends NgbDatepickerI18n {\n getMonthShortName(month, year) {\n return this.getMonthFullName(month, year);\n }\n getMonthFullName(month, year) {\n return MONTHS[month - 1];\n }\n getWeekdayLabel(weekday, width) {\n return WEEKDAYS[weekday - 1];\n }\n getDayAriaLabel(date) {\n return `${date.day} ${this.getMonthFullName(date.month, date.year)} ${date.year}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerI18nAmharic, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerI18nAmharic }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerI18nAmharic, decorators: [{\n type: Injectable\n }] });\n\n/**\n * [`NgbDateAdapter`](#/components/datepicker/api#NgbDateAdapter) implementation that uses\n * native javascript dates as a user date model.\n */\nclass NgbDateNativeAdapter extends NgbDateAdapter {\n /**\n * Converts a native `Date` to a `NgbDateStruct`.\n */\n fromModel(date) {\n return date instanceof Date && !isNaN(date.getTime()) ? this._fromNativeDate(date) : null;\n }\n /**\n * Converts a `NgbDateStruct` to a native `Date`.\n */\n toModel(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day)\n ? this._toNativeDate(date)\n : null;\n }\n _fromNativeDate(date) {\n return { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() };\n }\n _toNativeDate(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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateNativeAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateNativeAdapter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateNativeAdapter, decorators: [{\n type: Injectable\n }] });\n\n/**\n * Same as [`NgbDateNativeAdapter`](#/components/datepicker/api#NgbDateNativeAdapter), but with UTC dates.\n *\n * @since 3.2.0\n */\nclass NgbDateNativeUTCAdapter extends NgbDateNativeAdapter {\n _fromNativeDate(date) {\n return { year: date.getUTCFullYear(), month: date.getUTCMonth() + 1, day: date.getUTCDate() };\n }\n _toNativeDate(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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateNativeUTCAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateNativeUTCAdapter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDateNativeUTCAdapter, decorators: [{\n type: Injectable\n }] });\n\nconst NGB_DATEPICKER_DIRECTIVES = [NgbDatepicker, NgbDatepickerContent, NgbInputDatepicker, NgbDatepickerMonth];\nclass NgbDatepickerModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerModule, imports: [NgbDatepicker, NgbDatepickerContent, NgbInputDatepicker, NgbDatepickerMonth], exports: [NgbDatepicker, NgbDatepickerContent, NgbInputDatepicker, NgbDatepickerMonth] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDatepickerModule, decorators: [{\n type: NgModule,\n args: [{\n exports: NGB_DATEPICKER_DIRECTIVES,\n imports: NGB_DATEPICKER_DIRECTIVES,\n }]\n }] });\n\n/**\n * A configuration service for the [`NgbDropdown`](#/components/dropdown/api#NgbDropdown) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the dropdowns used in the application.\n */\nclass NgbDropdownConfig {\n constructor() {\n this.autoClose = true;\n this.placement = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];\n this.popperOptions = (options) => options;\n this.container = null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A directive you should put on a dropdown item to enable keyboard navigation.\n * Arrow keys will move focus between items marked with this directive.\n *\n * @since 4.1.0\n */\nclass NgbDropdownItem {\n constructor() {\n this._disabled = false;\n this.nativeElement = inject(ElementRef).nativeElement;\n this.tabindex = 0;\n }\n set disabled(value) {\n this._disabled = value === '' || value === true; // accept an empty attribute as true\n }\n get disabled() {\n return this._disabled;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbDropdownItem, isStandalone: true, selector: \"[ngbDropdownItem]\", inputs: { tabindex: \"tabindex\", disabled: \"disabled\" }, host: { properties: { \"class.disabled\": \"disabled\", \"tabIndex\": \"disabled ? -1 : tabindex\" }, classAttribute: \"dropdown-item\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownItem, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownItem]',\n standalone: true,\n host: {\n class: 'dropdown-item',\n '[class.disabled]': 'disabled',\n '[tabIndex]': 'disabled ? -1 : tabindex',\n },\n }]\n }], propDecorators: { tabindex: [{\n type: Input\n }], disabled: [{\n type: Input\n }] } });\n/**\n * A directive that will be applied if dropdown item is a button.\n * It will only set the disabled property.\n */\nclass NgbDropdownButtonItem {\n constructor() {\n this.item = inject(NgbDropdownItem);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownButtonItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbDropdownButtonItem, isStandalone: true, selector: \"button[ngbDropdownItem]\", host: { properties: { \"disabled\": \"item.disabled\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownButtonItem, decorators: [{\n type: Directive,\n args: [{\n selector: 'button[ngbDropdownItem]',\n standalone: true,\n host: { '[disabled]': 'item.disabled' },\n }]\n }] });\n/**\n * A directive that wraps dropdown menu content and dropdown items.\n */\nclass NgbDropdownMenu {\n constructor() {\n this.dropdown = inject(NgbDropdown);\n this.nativeElement = inject(ElementRef).nativeElement;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbDropdownMenu, isStandalone: true, selector: \"[ngbDropdownMenu]\", host: { listeners: { \"keydown.ArrowUp\": \"dropdown.onKeyDown($event)\", \"keydown.ArrowDown\": \"dropdown.onKeyDown($event)\", \"keydown.Home\": \"dropdown.onKeyDown($event)\", \"keydown.End\": \"dropdown.onKeyDown($event)\", \"keydown.Enter\": \"dropdown.onKeyDown($event)\", \"keydown.Space\": \"dropdown.onKeyDown($event)\", \"keydown.Tab\": \"dropdown.onKeyDown($event)\", \"keydown.Shift.Tab\": \"dropdown.onKeyDown($event)\" }, properties: { \"class.dropdown-menu\": \"true\", \"class.show\": \"dropdown.isOpen()\" } }, queries: [{ propertyName: \"menuItems\", predicate: NgbDropdownItem }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownMenu, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownMenu]',\n standalone: true,\n host: {\n '[class.dropdown-menu]': 'true',\n '[class.show]': 'dropdown.isOpen()',\n '(keydown.ArrowUp)': 'dropdown.onKeyDown($event)',\n '(keydown.ArrowDown)': 'dropdown.onKeyDown($event)',\n '(keydown.Home)': 'dropdown.onKeyDown($event)',\n '(keydown.End)': 'dropdown.onKeyDown($event)',\n '(keydown.Enter)': 'dropdown.onKeyDown($event)',\n '(keydown.Space)': 'dropdown.onKeyDown($event)',\n '(keydown.Tab)': 'dropdown.onKeyDown($event)',\n '(keydown.Shift.Tab)': 'dropdown.onKeyDown($event)',\n },\n }]\n }], propDecorators: { menuItems: [{\n type: ContentChildren,\n args: [NgbDropdownItem]\n }] } });\n/**\n * A directive to mark an element to which dropdown menu will be anchored.\n *\n * This is a simple version of the `NgbDropdownToggle` directive.\n * It plays the same role, but doesn't listen to click events to toggle dropdown menu thus enabling support\n * for events other than click.\n *\n * @since 1.1.0\n */\nclass NgbDropdownAnchor {\n constructor() {\n this.dropdown = inject(NgbDropdown);\n this.nativeElement = inject(ElementRef).nativeElement;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownAnchor, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbDropdownAnchor, isStandalone: true, selector: \"[ngbDropdownAnchor]\", host: { properties: { \"class.show\": \"dropdown.isOpen()\", \"attr.aria-expanded\": \"dropdown.isOpen()\" }, classAttribute: \"dropdown-toggle\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownAnchor, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownAnchor]',\n standalone: true,\n host: {\n class: 'dropdown-toggle',\n '[class.show]': 'dropdown.isOpen()',\n '[attr.aria-expanded]': 'dropdown.isOpen()',\n },\n }]\n }] });\n/**\n * A directive to mark an element that will toggle dropdown via the `click` event.\n *\n * You can also use `NgbDropdownAnchor` as an alternative.\n */\nclass NgbDropdownToggle extends NgbDropdownAnchor {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownToggle, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbDropdownToggle, isStandalone: true, selector: \"[ngbDropdownToggle]\", host: { listeners: { \"click\": \"dropdown.toggle()\", \"keydown.ArrowUp\": \"dropdown.onKeyDown($event)\", \"keydown.ArrowDown\": \"dropdown.onKeyDown($event)\", \"keydown.Home\": \"dropdown.onKeyDown($event)\", \"keydown.End\": \"dropdown.onKeyDown($event)\", \"keydown.Tab\": \"dropdown.onKeyDown($event)\", \"keydown.Shift.Tab\": \"dropdown.onKeyDown($event)\" }, properties: { \"class.show\": \"dropdown.isOpen()\", \"attr.aria-expanded\": \"dropdown.isOpen()\" }, classAttribute: \"dropdown-toggle\" }, providers: [{ provide: NgbDropdownAnchor, useExisting: forwardRef(() => NgbDropdownToggle) }], usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownToggle, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownToggle]',\n standalone: true,\n host: {\n class: 'dropdown-toggle',\n '[class.show]': 'dropdown.isOpen()',\n '[attr.aria-expanded]': 'dropdown.isOpen()',\n '(click)': 'dropdown.toggle()',\n '(keydown.ArrowUp)': 'dropdown.onKeyDown($event)',\n '(keydown.ArrowDown)': 'dropdown.onKeyDown($event)',\n '(keydown.Home)': 'dropdown.onKeyDown($event)',\n '(keydown.End)': 'dropdown.onKeyDown($event)',\n '(keydown.Tab)': 'dropdown.onKeyDown($event)',\n '(keydown.Shift.Tab)': 'dropdown.onKeyDown($event)',\n },\n providers: [{ provide: NgbDropdownAnchor, useExisting: forwardRef(() => NgbDropdownToggle) }],\n }]\n }] });\n/**\n * A directive that provides contextual overlays for displaying lists of links and more.\n */\nclass NgbDropdown {\n constructor() {\n this._changeDetector = inject(ChangeDetectorRef);\n this._config = inject(NgbDropdownConfig);\n this._document = inject(DOCUMENT);\n this._ngZone = inject(NgZone);\n this._nativeElement = inject(ElementRef).nativeElement;\n this._destroyCloseHandlers$ = new Subject();\n this._bodyContainer = null;\n this._positioning = ngbPositioning();\n /**\n * Indicates whether the dropdown should be closed when clicking one of dropdown items or pressing ESC.\n *\n * * `true` - the dropdown will close on both outside and inside (menu) clicks.\n * * `false` - the dropdown can only be closed manually via `close()` or `toggle()` methods.\n * * `\"inside\"` - the dropdown will close on inside menu clicks, but not outside clicks.\n * * `\"outside\"` - the dropdown will close only on the outside clicks and not on menu clicks.\n */\n this.autoClose = this._config.autoClose;\n /**\n * Defines whether or not the dropdown menu is opened initially.\n */\n this._open = false;\n /**\n * The preferred placement of the dropdown, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"bottom-start bottom-end top-start top-end\"`\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the dropdown.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * A selector specifying the element the dropdown should be appended to.\n * Currently only supports \"body\".\n *\n * @since 4.1.0\n */\n this.container = this._config.container;\n /**\n * An event fired when the dropdown is opened or closed.\n *\n * The event payload is a `boolean`:\n * * `true` - the dropdown was opened\n * * `false` - the dropdown was closed\n */\n this.openChange = new EventEmitter();\n }\n ngOnInit() {\n if (!this.display) {\n this.display = this._nativeElement.closest('.navbar') ? 'static' : 'dynamic';\n }\n }\n ngAfterContentInit() {\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n this._applyPlacementClasses();\n if (this._open) {\n this._setCloseHandlers();\n }\n });\n }\n ngOnChanges(changes) {\n if (changes.container && this._open) {\n this._applyContainer(this.container);\n }\n if (changes.placement && !changes.placement.firstChange) {\n this._positioning.setOptions({\n hostElement: this._anchor.nativeElement,\n targetElement: this._bodyContainer || this._menu.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n });\n this._applyPlacementClasses();\n }\n if (changes.dropdownClass) {\n const { currentValue, previousValue } = changes.dropdownClass;\n this._applyCustomDropdownClass(currentValue, previousValue);\n }\n if (changes.autoClose && this._open) {\n this.autoClose = changes.autoClose.currentValue;\n this._setCloseHandlers();\n }\n }\n /**\n * Checks if the dropdown menu is open.\n */\n isOpen() {\n return this._open;\n }\n /**\n * Opens the dropdown menu.\n */\n open() {\n if (!this._open) {\n this._open = true;\n this._applyContainer(this.container);\n this.openChange.emit(true);\n this._setCloseHandlers();\n if (this._anchor) {\n this._anchor.nativeElement.focus();\n if (this.display === 'dynamic') {\n this._ngZone.runOutsideAngular(() => {\n this._positioning.createPopper({\n hostElement: this._anchor.nativeElement,\n targetElement: this._bodyContainer || this._menu.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n updatePopperOptions: (options) => this.popperOptions(addPopperOffset([0, 2])(options)),\n });\n this._applyPlacementClasses();\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positionMenu());\n });\n }\n }\n }\n }\n _setCloseHandlers() {\n this._destroyCloseHandlers$.next(); // destroy any existing close handlers\n ngbAutoClose(this._ngZone, this._document, this.autoClose, (source) => {\n this.close();\n if (source === 0 /* SOURCE.ESCAPE */) {\n this._anchor.nativeElement.focus();\n }\n }, this._destroyCloseHandlers$, this._menu ? [this._menu.nativeElement] : [], this._anchor ? [this._anchor.nativeElement] : [], '.dropdown-item,.dropdown-divider');\n }\n /**\n * Closes the dropdown menu.\n */\n close() {\n if (this._open) {\n this._open = false;\n this._resetContainer();\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this._destroyCloseHandlers$.next();\n this.openChange.emit(false);\n this._changeDetector.markForCheck();\n }\n }\n /**\n * Toggles the dropdown menu.\n */\n toggle() {\n if (this.isOpen()) {\n this.close();\n }\n else {\n this.open();\n }\n }\n ngOnDestroy() {\n this.close();\n }\n onKeyDown(event) {\n /* eslint-disable-next-line deprecation/deprecation */\n const key = event.which;\n const itemElements = this._getMenuElements();\n let position = -1;\n let itemElement = null;\n const isEventFromToggle = this._isEventFromToggle(event);\n if (!isEventFromToggle && itemElements.length) {\n itemElements.forEach((item, index) => {\n if (item.contains(event.target)) {\n itemElement = item;\n }\n if (item === getActiveElement(this._document)) {\n position = index;\n }\n });\n }\n // closing on Enter / Space\n if (key === Key.Space || key === Key.Enter) {\n if (itemElement && (this.autoClose === true || this.autoClose === 'inside')) {\n // Item is either a button or a link, so click will be triggered by the browser on Enter or Space.\n // So we have to register a one-time click handler that will fire after any user defined click handlers\n // to close the dropdown\n fromEvent(itemElement, 'click')\n .pipe(take(1))\n .subscribe(() => this.close());\n }\n return;\n }\n if (key === Key.Tab) {\n if (event.target && this.isOpen() && this.autoClose) {\n if (this._anchor.nativeElement === event.target) {\n if (this.container === 'body' && !event.shiftKey) {\n /* This case is special: user is using [Tab] from the anchor/toggle.\n User expects the next focusable element in the dropdown menu to get focus.\n But the menu is not a sibling to anchor/toggle, it is at the end of the body.\n Trick is to synchronously focus the menu element, and let the [keydown.Tab] go\n so that browser will focus the proper element (first one focusable in the menu) */\n this._menu.nativeElement.setAttribute('tabindex', '0');\n this._menu.nativeElement.focus();\n this._menu.nativeElement.removeAttribute('tabindex');\n }\n else if (event.shiftKey) {\n this.close();\n }\n return;\n }\n else if (this.container === 'body') {\n const focusableElements = this._menu.nativeElement.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR);\n if (event.shiftKey && event.target === focusableElements[0]) {\n this._anchor.nativeElement.focus();\n event.preventDefault();\n }\n else if (!event.shiftKey && event.target === focusableElements[focusableElements.length - 1]) {\n this._anchor.nativeElement.focus();\n this.close();\n }\n }\n else {\n fromEvent(event.target, 'focusout')\n .pipe(take(1))\n .subscribe(({ relatedTarget }) => {\n if (!this._nativeElement.contains(relatedTarget)) {\n this.close();\n }\n });\n }\n }\n return;\n }\n // opening / navigating\n if (isEventFromToggle || itemElement) {\n this.open();\n if (itemElements.length) {\n switch (key) {\n case Key.ArrowDown:\n position = Math.min(position + 1, itemElements.length - 1);\n break;\n case Key.ArrowUp:\n if (this._isDropup() && position === -1) {\n position = itemElements.length - 1;\n break;\n }\n position = Math.max(position - 1, 0);\n break;\n case Key.Home:\n position = 0;\n break;\n case Key.End:\n position = itemElements.length - 1;\n break;\n }\n itemElements[position].focus();\n }\n event.preventDefault();\n }\n }\n _isDropup() {\n return this._nativeElement.classList.contains('dropup');\n }\n _isEventFromToggle(event) {\n return this._anchor.nativeElement.contains(event.target);\n }\n _getMenuElements() {\n return this._menu\n ? this._menu.menuItems.filter(({ disabled }) => !disabled).map(({ nativeElement }) => nativeElement)\n : [];\n }\n _positionMenu() {\n const menu = this._menu;\n if (this.isOpen() && menu) {\n if (this.display === 'dynamic') {\n this._positioning.update();\n this._applyPlacementClasses();\n }\n else {\n this._applyPlacementClasses(this._getFirstPlacement(this.placement));\n }\n }\n }\n _getFirstPlacement(placement) {\n return Array.isArray(placement) ? placement[0] : placement.split(' ')[0];\n }\n _resetContainer() {\n if (this._menu) {\n this._nativeElement.appendChild(this._menu.nativeElement);\n }\n if (this._bodyContainer) {\n this._document.body.removeChild(this._bodyContainer);\n this._bodyContainer = null;\n }\n }\n _applyContainer(container = null) {\n this._resetContainer();\n if (container === 'body') {\n const dropdownMenuElement = this._menu.nativeElement;\n const bodyContainer = (this._bodyContainer = this._bodyContainer || this._document.createElement('div'));\n // Override some styles to have the positioning working\n bodyContainer.style.position = 'absolute';\n dropdownMenuElement.style.position = 'static';\n bodyContainer.style.zIndex = '1055';\n bodyContainer.appendChild(dropdownMenuElement);\n this._document.body.appendChild(bodyContainer);\n }\n this._applyCustomDropdownClass(this.dropdownClass);\n }\n _applyCustomDropdownClass(newClass, oldClass) {\n const targetElement = this.container === 'body' ? this._bodyContainer : this._nativeElement;\n if (targetElement) {\n if (oldClass) {\n targetElement.classList.remove(oldClass);\n }\n if (newClass) {\n targetElement.classList.add(newClass);\n }\n }\n }\n _applyPlacementClasses(placement) {\n if (this._menu) {\n if (!placement) {\n placement = this._getFirstPlacement(this.placement);\n }\n // remove the current placement classes\n this._nativeElement.classList.remove('dropup', 'dropdown');\n if (this.display === 'static') {\n this._menu.nativeElement.setAttribute('data-bs-popper', 'static');\n }\n else {\n this._menu.nativeElement.removeAttribute('data-bs-popper');\n }\n /*\n * apply the new placement\n * in case of top use up-arrow or down-arrow otherwise\n */\n const dropdownClass = placement.search('^top') !== -1 ? 'dropup' : 'dropdown';\n this._nativeElement.classList.add(dropdownClass);\n if (this._bodyContainer) {\n this._bodyContainer.classList.remove('dropup', 'dropdown');\n this._bodyContainer.classList.add(dropdownClass);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdown, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbDropdown, isStandalone: true, selector: \"[ngbDropdown]\", inputs: { autoClose: \"autoClose\", dropdownClass: \"dropdownClass\", _open: [\"open\", \"_open\"], placement: \"placement\", popperOptions: \"popperOptions\", container: \"container\", display: \"display\" }, outputs: { openChange: \"openChange\" }, host: { properties: { \"class.show\": \"isOpen()\" } }, queries: [{ propertyName: \"_menu\", first: true, predicate: NgbDropdownMenu, descendants: true }, { propertyName: \"_anchor\", first: true, predicate: NgbDropdownAnchor, descendants: true }], exportAs: [\"ngbDropdown\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdown, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbDropdown]',\n exportAs: 'ngbDropdown',\n standalone: true,\n host: { '[class.show]': 'isOpen()' },\n }]\n }], propDecorators: { _menu: [{\n type: ContentChild,\n args: [NgbDropdownMenu, { static: false }]\n }], _anchor: [{\n type: ContentChild,\n args: [NgbDropdownAnchor, { static: false }]\n }], autoClose: [{\n type: Input\n }], dropdownClass: [{\n type: Input\n }], _open: [{\n type: Input,\n args: ['open']\n }], placement: [{\n type: Input\n }], popperOptions: [{\n type: Input\n }], container: [{\n type: Input\n }], display: [{\n type: Input\n }], openChange: [{\n type: Output\n }] } });\n\nconst NGB_DROPDOWN_DIRECTIVES = [\n NgbDropdown,\n NgbDropdownAnchor,\n NgbDropdownToggle,\n NgbDropdownMenu,\n NgbDropdownItem,\n NgbDropdownButtonItem,\n];\nclass NgbDropdownModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownModule, imports: [NgbDropdown,\n NgbDropdownAnchor,\n NgbDropdownToggle,\n NgbDropdownMenu,\n NgbDropdownItem,\n NgbDropdownButtonItem], exports: [NgbDropdown,\n NgbDropdownAnchor,\n NgbDropdownToggle,\n NgbDropdownMenu,\n NgbDropdownItem,\n NgbDropdownButtonItem] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbDropdownModule, decorators: [{\n type: NgModule,\n args: [{\n imports: NGB_DROPDOWN_DIRECTIVES,\n exports: NGB_DROPDOWN_DIRECTIVES,\n }]\n }] });\n\n/**\n * A configuration service for the [`NgbModal`](#/components/modal/api#NgbModal) service.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all modals used in the application.\n *\n * @since 3.1.0\n */\nclass NgbModalConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.backdrop = true;\n this.fullscreen = false;\n this.keyboard = true;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass ContentRef {\n constructor(nodes, viewRef, componentRef) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\nclass PopupService {\n constructor(_componentType) {\n this._componentType = _componentType;\n this._windowRef = null;\n this._contentRef = null;\n this._document = inject(DOCUMENT);\n this._applicationRef = inject(ApplicationRef);\n this._injector = inject(Injector);\n this._viewContainerRef = inject(ViewContainerRef);\n this._ngZone = inject(NgZone);\n }\n open(content, templateContext, animation = false) {\n if (!this._windowRef) {\n this._contentRef = this._getContentRef(content, templateContext);\n this._windowRef = this._viewContainerRef.createComponent(this._componentType, {\n injector: this._injector,\n projectableNodes: this._contentRef.nodes,\n });\n }\n const { nativeElement } = this._windowRef.location;\n const transition$ = this._ngZone.onStable.pipe(take(1), mergeMap(() => ngbRunTransition(this._ngZone, nativeElement, ({ classList }) => classList.add('show'), {\n animation,\n runningTransition: 'continue',\n })));\n return { windowRef: this._windowRef, transition$ };\n }\n close(animation = false) {\n if (!this._windowRef) {\n return of(undefined);\n }\n return ngbRunTransition(this._ngZone, this._windowRef.location.nativeElement, ({ classList }) => classList.remove('show'), { animation, runningTransition: 'stop' }).pipe(tap(() => {\n if (this._windowRef) {\n // this is required because of the container='body' option\n this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView));\n this._windowRef = null;\n }\n if (this._contentRef?.viewRef) {\n this._applicationRef.detachView(this._contentRef.viewRef);\n this._contentRef.viewRef.destroy();\n this._contentRef = null;\n }\n }));\n }\n _getContentRef(content, templateContext) {\n if (!content) {\n return new ContentRef([]);\n }\n else if (content instanceof TemplateRef) {\n const viewRef = content.createEmbeddedView(templateContext);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n else {\n return new ContentRef([[this._document.createTextNode(`${content}`)]]);\n }\n }\n}\n\n/**\n * Utility to handle the scrollbar.\n *\n * It allows to hide the scrollbar and compensate the lack of a vertical scrollbar\n * by adding an equivalent padding on the right of the body, and to revert this change.\n */\nclass ScrollBar {\n constructor() {\n this._document = inject(DOCUMENT);\n }\n /**\n * To be called to hide a potential vertical scrollbar:\n * - if a scrollbar is there and has a width greater than 0, adds some compensation\n * padding to the body to keep the same layout as when the scrollbar is there\n * - adds overflow: hidden\n *\n * @return a callback used to revert the change\n */\n hide() {\n const scrollbarWidth = Math.abs(window.innerWidth - this._document.documentElement.clientWidth);\n const body = this._document.body;\n const bodyStyle = body.style;\n const { overflow, paddingRight } = bodyStyle;\n if (scrollbarWidth > 0) {\n const actualPadding = parseFloat(window.getComputedStyle(body).paddingRight);\n bodyStyle.paddingRight = `${actualPadding + scrollbarWidth}px`;\n }\n bodyStyle.overflow = 'hidden';\n return () => {\n if (scrollbarWidth > 0) {\n bodyStyle.paddingRight = paddingRight;\n }\n bodyStyle.overflow = overflow;\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: ScrollBar, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: ScrollBar, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: ScrollBar, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass NgbModalBackdrop {\n constructor() {\n this._nativeElement = inject(ElementRef).nativeElement;\n this._zone = inject(NgZone);\n }\n ngOnInit() {\n this._zone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n ngbRunTransition(this._zone, this._nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n }, { animation: this.animation, runningTransition: 'continue' });\n });\n }\n hide() {\n return ngbRunTransition(this._zone, this._nativeElement, ({ classList }) => classList.remove('show'), {\n animation: this.animation,\n runningTransition: 'stop',\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalBackdrop, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbModalBackdrop, isStandalone: true, selector: \"ngb-modal-backdrop\", inputs: { animation: \"animation\", backdropClass: \"backdropClass\" }, host: { properties: { \"class\": \"\\\"modal-backdrop\\\" + (backdropClass ? \\\" \\\" + backdropClass : \\\"\\\")\", \"class.show\": \"!animation\", \"class.fade\": \"animation\" }, styleAttribute: \"z-index: 1055\" }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalBackdrop, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-modal-backdrop',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n template: '',\n host: {\n '[class]': '\"modal-backdrop\" + (backdropClass ? \" \" + backdropClass : \"\")',\n '[class.show]': '!animation',\n '[class.fade]': 'animation',\n style: 'z-index: 1055',\n },\n }]\n }], propDecorators: { animation: [{\n type: Input\n }], backdropClass: [{\n type: Input\n }] } });\n\n/**\n * A reference to the currently opened (active) modal.\n *\n * Instances of this class can be injected into your component passed as modal content.\n * So you can `.update()`, `.close()` or `.dismiss()` the modal window from your component.\n */\nclass NgbActiveModal {\n /**\n * Updates options of an opened modal.\n *\n * @since 14.2.0\n */\n update(options) { }\n /**\n * Closes the modal with an optional `result` value.\n *\n * The `NgbModalRef.result` promise will be resolved with the provided value.\n */\n close(result) { }\n /**\n * Dismisses the modal with an optional `reason` value.\n *\n * The `NgbModalRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) { }\n}\nconst WINDOW_ATTRIBUTES = [\n 'animation',\n 'ariaLabelledBy',\n 'ariaDescribedBy',\n 'backdrop',\n 'centered',\n 'fullscreen',\n 'keyboard',\n 'scrollable',\n 'size',\n 'windowClass',\n 'modalDialogClass',\n];\nconst BACKDROP_ATTRIBUTES = ['animation', 'backdropClass'];\n/**\n * A reference to the newly opened modal returned by the `NgbModal.open()` method.\n */\nclass NgbModalRef {\n _applyWindowOptions(windowInstance, options) {\n WINDOW_ATTRIBUTES.forEach((optionName) => {\n if (isDefined(options[optionName])) {\n windowInstance[optionName] = options[optionName];\n }\n });\n }\n _applyBackdropOptions(backdropInstance, options) {\n BACKDROP_ATTRIBUTES.forEach((optionName) => {\n if (isDefined(options[optionName])) {\n backdropInstance[optionName] = options[optionName];\n }\n });\n }\n /**\n * Updates options of an opened modal.\n *\n * @since 14.2.0\n */\n update(options) {\n this._applyWindowOptions(this._windowCmptRef.instance, options);\n if (this._backdropCmptRef && this._backdropCmptRef.instance) {\n this._applyBackdropOptions(this._backdropCmptRef.instance, options);\n }\n }\n /**\n * The instance of a component used for the modal content.\n *\n * When a `TemplateRef` is used as the content or when the modal is closed, will return `undefined`.\n */\n get componentInstance() {\n if (this._contentRef && this._contentRef.componentRef) {\n return this._contentRef.componentRef.instance;\n }\n }\n /**\n * The observable that emits when the modal is closed via the `.close()` method.\n *\n * It will emit the result passed to the `.close()` method.\n *\n * @since 8.0.0\n */\n get closed() {\n return this._closed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when the modal is dismissed via the `.dismiss()` method.\n *\n * It will emit the reason passed to the `.dismissed()` method by the user, or one of the internal\n * reasons like backdrop click or ESC key press.\n *\n * @since 8.0.0\n */\n get dismissed() {\n return this._dismissed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when both modal window and backdrop are closed and animations were finished.\n * At this point modal and backdrop elements will be removed from the DOM tree.\n *\n * This observable will be completed after emitting.\n *\n * @since 8.0.0\n */\n get hidden() {\n return this._hidden.asObservable();\n }\n /**\n * The observable that emits when modal is fully visible and animation was finished.\n * Modal DOM element is always available synchronously after calling 'modal.open()' service.\n *\n * This observable will be completed after emitting.\n * It will not emit, if modal is closed before open animation is finished.\n *\n * @since 8.0.0\n */\n get shown() {\n return this._windowCmptRef.instance.shown.asObservable();\n }\n constructor(_windowCmptRef, _contentRef, _backdropCmptRef, _beforeDismiss) {\n this._windowCmptRef = _windowCmptRef;\n this._contentRef = _contentRef;\n this._backdropCmptRef = _backdropCmptRef;\n this._beforeDismiss = _beforeDismiss;\n this._closed = new Subject();\n this._dismissed = new Subject();\n this._hidden = new Subject();\n _windowCmptRef.instance.dismissEvent.subscribe((reason) => {\n this.dismiss(reason);\n });\n this.result = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n this.result.then(null, () => { });\n }\n /**\n * Closes the modal with an optional `result` value.\n *\n * The `NgbMobalRef.result` promise will be resolved with the provided value.\n */\n close(result) {\n if (this._windowCmptRef) {\n this._closed.next(result);\n this._resolve(result);\n this._removeModalElements();\n }\n }\n _dismiss(reason) {\n this._dismissed.next(reason);\n this._reject(reason);\n this._removeModalElements();\n }\n /**\n * Dismisses the modal with an optional `reason` value.\n *\n * The `NgbModalRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) {\n if (this._windowCmptRef) {\n if (!this._beforeDismiss) {\n this._dismiss(reason);\n }\n else {\n const dismiss = this._beforeDismiss();\n if (isPromise(dismiss)) {\n dismiss.then((result) => {\n if (result !== false) {\n this._dismiss(reason);\n }\n }, () => { });\n }\n else if (dismiss !== false) {\n this._dismiss(reason);\n }\n }\n }\n }\n _removeModalElements() {\n const windowTransition$ = this._windowCmptRef.instance.hide();\n const backdropTransition$ = this._backdropCmptRef ? this._backdropCmptRef.instance.hide() : of(undefined);\n // hiding window\n windowTransition$.subscribe(() => {\n const { nativeElement } = this._windowCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._windowCmptRef.destroy();\n if (this._contentRef && this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n this._windowCmptRef = null;\n this._contentRef = null;\n });\n // hiding backdrop\n backdropTransition$.subscribe(() => {\n if (this._backdropCmptRef) {\n const { nativeElement } = this._backdropCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._backdropCmptRef.destroy();\n this._backdropCmptRef = null;\n }\n });\n // all done\n zip(windowTransition$, backdropTransition$).subscribe(() => {\n this._hidden.next();\n this._hidden.complete();\n });\n }\n}\n\nvar ModalDismissReasons;\n(function (ModalDismissReasons) {\n ModalDismissReasons[ModalDismissReasons[\"BACKDROP_CLICK\"] = 0] = \"BACKDROP_CLICK\";\n ModalDismissReasons[ModalDismissReasons[\"ESC\"] = 1] = \"ESC\";\n})(ModalDismissReasons || (ModalDismissReasons = {}));\n\nclass NgbModalWindow {\n constructor() {\n this._document = inject(DOCUMENT);\n this._elRef = inject((ElementRef));\n this._zone = inject(NgZone);\n this._closed$ = new Subject();\n this._elWithFocus = null; // element that is focused prior to modal opening\n this.backdrop = true;\n this.keyboard = true;\n this.dismissEvent = new EventEmitter();\n this.shown = new Subject();\n this.hidden = new Subject();\n }\n get fullscreenClass() {\n return this.fullscreen === true\n ? ' modal-fullscreen'\n : isString(this.fullscreen)\n ? ` modal-fullscreen-${this.fullscreen}-down`\n : '';\n }\n dismiss(reason) {\n this.dismissEvent.emit(reason);\n }\n ngOnInit() {\n this._elWithFocus = this._document.activeElement;\n this._zone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this._show();\n });\n }\n ngOnDestroy() {\n this._disableEventHandling();\n }\n hide() {\n const { nativeElement } = this._elRef;\n const context = { animation: this.animation, runningTransition: 'stop' };\n const windowTransition$ = ngbRunTransition(this._zone, nativeElement, () => nativeElement.classList.remove('show'), context);\n const dialogTransition$ = ngbRunTransition(this._zone, this._dialogEl.nativeElement, () => { }, context);\n const transitions$ = zip(windowTransition$, dialogTransition$);\n transitions$.subscribe(() => {\n this.hidden.next();\n this.hidden.complete();\n });\n this._disableEventHandling();\n this._restoreFocus();\n return transitions$;\n }\n _show() {\n const context = { animation: this.animation, runningTransition: 'continue' };\n const windowTransition$ = ngbRunTransition(this._zone, this._elRef.nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n }, context);\n const dialogTransition$ = ngbRunTransition(this._zone, this._dialogEl.nativeElement, () => { }, context);\n zip(windowTransition$, dialogTransition$).subscribe(() => {\n this.shown.next();\n this.shown.complete();\n });\n this._enableEventHandling();\n this._setFocus();\n }\n _enableEventHandling() {\n const { nativeElement } = this._elRef;\n this._zone.runOutsideAngular(() => {\n fromEvent(nativeElement, 'keydown')\n .pipe(takeUntil(this._closed$), \n /* eslint-disable-next-line deprecation/deprecation */\n filter((e) => e.which === Key.Escape))\n .subscribe((event) => {\n if (this.keyboard) {\n requestAnimationFrame(() => {\n if (!event.defaultPrevented) {\n this._zone.run(() => this.dismiss(ModalDismissReasons.ESC));\n }\n });\n }\n else if (this.backdrop === 'static') {\n this._bumpBackdrop();\n }\n });\n // We're listening to 'mousedown' and 'mouseup' to prevent modal from closing when pressing the mouse\n // inside the modal dialog and releasing it outside\n let preventClose = false;\n fromEvent(this._dialogEl.nativeElement, 'mousedown')\n .pipe(takeUntil(this._closed$), tap(() => (preventClose = false)), switchMap(() => fromEvent(nativeElement, 'mouseup').pipe(takeUntil(this._closed$), take(1))), filter(({ target }) => nativeElement === target))\n .subscribe(() => {\n preventClose = true;\n });\n // We're listening to 'click' to dismiss modal on modal window click, except when:\n // 1. clicking on modal dialog itself\n // 2. closing was prevented by mousedown/up handlers\n // 3. clicking on scrollbar when the viewport is too small and modal doesn't fit (click is not triggered at all)\n fromEvent(nativeElement, 'click')\n .pipe(takeUntil(this._closed$))\n .subscribe(({ target }) => {\n if (nativeElement === target) {\n if (this.backdrop === 'static') {\n this._bumpBackdrop();\n }\n else if (this.backdrop === true && !preventClose) {\n this._zone.run(() => this.dismiss(ModalDismissReasons.BACKDROP_CLICK));\n }\n }\n preventClose = false;\n });\n });\n }\n _disableEventHandling() {\n this._closed$.next();\n }\n _setFocus() {\n const { nativeElement } = this._elRef;\n if (!nativeElement.contains(document.activeElement)) {\n const autoFocusable = nativeElement.querySelector(`[ngbAutofocus]`);\n const firstFocusable = getFocusableBoundaryElements(nativeElement)[0];\n const elementToFocus = autoFocusable || firstFocusable || nativeElement;\n elementToFocus.focus();\n }\n }\n _restoreFocus() {\n const body = this._document.body;\n const elWithFocus = this._elWithFocus;\n let elementToFocus;\n if (elWithFocus && elWithFocus['focus'] && body.contains(elWithFocus)) {\n elementToFocus = elWithFocus;\n }\n else {\n elementToFocus = body;\n }\n this._zone.runOutsideAngular(() => {\n setTimeout(() => elementToFocus.focus());\n this._elWithFocus = null;\n });\n }\n _bumpBackdrop() {\n if (this.backdrop === 'static') {\n ngbRunTransition(this._zone, this._elRef.nativeElement, ({ classList }) => {\n classList.add('modal-static');\n return () => classList.remove('modal-static');\n }, { animation: this.animation, runningTransition: 'continue' });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalWindow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbModalWindow, isStandalone: true, selector: \"ngb-modal-window\", inputs: { animation: \"animation\", ariaLabelledBy: \"ariaLabelledBy\", ariaDescribedBy: \"ariaDescribedBy\", backdrop: \"backdrop\", centered: \"centered\", fullscreen: \"fullscreen\", keyboard: \"keyboard\", scrollable: \"scrollable\", size: \"size\", windowClass: \"windowClass\", modalDialogClass: \"modalDialogClass\" }, outputs: { dismissEvent: \"dismiss\" }, host: { attributes: { \"role\": \"dialog\", \"tabindex\": \"-1\" }, properties: { \"class\": \"\\\"modal d-block\\\" + (windowClass ? \\\" \\\" + windowClass : \\\"\\\")\", \"class.fade\": \"animation\", \"attr.aria-modal\": \"true\", \"attr.aria-labelledby\": \"ariaLabelledBy\", \"attr.aria-describedby\": \"ariaDescribedBy\" } }, viewQueries: [{ propertyName: \"_dialogEl\", first: true, predicate: [\"dialog\"], descendants: true, static: true }], ngImport: i0, template: `\n\t\t<div\n\t\t\t#dialog\n\t\t\t[class]=\"\n\t\t\t\t'modal-dialog' +\n\t\t\t\t(size ? ' modal-' + size : '') +\n\t\t\t\t(centered ? ' modal-dialog-centered' : '') +\n\t\t\t\tfullscreenClass +\n\t\t\t\t(scrollable ? ' modal-dialog-scrollable' : '') +\n\t\t\t\t(modalDialogClass ? ' ' + modalDialogClass : '')\n\t\t\t\"\n\t\t\trole=\"document\"\n\t\t>\n\t\t\t<div class=\"modal-content\"><ng-content /></div>\n\t\t</div>\n\t`, isInline: true, styles: [\"ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\\n\"], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalWindow, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-modal-window', standalone: true, host: {\n '[class]': '\"modal d-block\" + (windowClass ? \" \" + windowClass : \"\")',\n '[class.fade]': 'animation',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.aria-describedby]': 'ariaDescribedBy',\n }, template: `\n\t\t<div\n\t\t\t#dialog\n\t\t\t[class]=\"\n\t\t\t\t'modal-dialog' +\n\t\t\t\t(size ? ' modal-' + size : '') +\n\t\t\t\t(centered ? ' modal-dialog-centered' : '') +\n\t\t\t\tfullscreenClass +\n\t\t\t\t(scrollable ? ' modal-dialog-scrollable' : '') +\n\t\t\t\t(modalDialogClass ? ' ' + modalDialogClass : '')\n\t\t\t\"\n\t\t\trole=\"document\"\n\t\t>\n\t\t\t<div class=\"modal-content\"><ng-content /></div>\n\t\t</div>\n\t`, encapsulation: ViewEncapsulation.None, styles: [\"ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\\n\"] }]\n }], propDecorators: { _dialogEl: [{\n type: ViewChild,\n args: ['dialog', { static: true }]\n }], animation: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaDescribedBy: [{\n type: Input\n }], backdrop: [{\n type: Input\n }], centered: [{\n type: Input\n }], fullscreen: [{\n type: Input\n }], keyboard: [{\n type: Input\n }], scrollable: [{\n type: Input\n }], size: [{\n type: Input\n }], windowClass: [{\n type: Input\n }], modalDialogClass: [{\n type: Input\n }], dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }] } });\n\nclass NgbModalStack {\n constructor() {\n this._applicationRef = inject(ApplicationRef);\n this._injector = inject(Injector);\n this._environmentInjector = inject(EnvironmentInjector);\n this._document = inject(DOCUMENT);\n this._scrollBar = inject(ScrollBar);\n this._activeWindowCmptHasChanged = new Subject();\n this._ariaHiddenValues = new Map();\n this._scrollBarRestoreFn = null;\n this._modalRefs = [];\n this._windowCmpts = [];\n this._activeInstances = new EventEmitter();\n const ngZone = inject(NgZone);\n // Trap focus on active WindowCmpt\n this._activeWindowCmptHasChanged.subscribe(() => {\n if (this._windowCmpts.length) {\n const activeWindowCmpt = this._windowCmpts[this._windowCmpts.length - 1];\n ngbFocusTrap(ngZone, activeWindowCmpt.location.nativeElement, this._activeWindowCmptHasChanged);\n this._revertAriaHidden();\n this._setAriaHidden(activeWindowCmpt.location.nativeElement);\n }\n });\n }\n _restoreScrollBar() {\n const scrollBarRestoreFn = this._scrollBarRestoreFn;\n if (scrollBarRestoreFn) {\n this._scrollBarRestoreFn = null;\n scrollBarRestoreFn();\n }\n }\n _hideScrollBar() {\n if (!this._scrollBarRestoreFn) {\n this._scrollBarRestoreFn = this._scrollBar.hide();\n }\n }\n open(contentInjector, content, options) {\n const containerEl = options.container instanceof HTMLElement\n ? options.container\n : isDefined(options.container)\n ? this._document.querySelector(options.container)\n : this._document.body;\n if (!containerEl) {\n throw new Error(`The specified modal container \"${options.container || 'body'}\" was not found in the DOM.`);\n }\n this._hideScrollBar();\n const activeModal = new NgbActiveModal();\n contentInjector = options.injector || contentInjector;\n const environmentInjector = contentInjector.get(EnvironmentInjector, null) || this._environmentInjector;\n const contentRef = this._getContentRef(contentInjector, environmentInjector, content, activeModal, options);\n let backdropCmptRef = options.backdrop !== false ? this._attachBackdrop(containerEl) : undefined;\n let windowCmptRef = this._attachWindowComponent(containerEl, contentRef.nodes);\n let ngbModalRef = new NgbModalRef(windowCmptRef, contentRef, backdropCmptRef, options.beforeDismiss);\n this._registerModalRef(ngbModalRef);\n this._registerWindowCmpt(windowCmptRef);\n // We have to cleanup DOM after the last modal when BOTH 'hidden' was emitted and 'result' promise was resolved:\n // - with animations OFF, 'hidden' emits synchronously, then 'result' is resolved asynchronously\n // - with animations ON, 'result' is resolved asynchronously, then 'hidden' emits asynchronously\n ngbModalRef.hidden.pipe(take(1)).subscribe(() => Promise.resolve(true).then(() => {\n if (!this._modalRefs.length) {\n this._document.body.classList.remove('modal-open');\n this._restoreScrollBar();\n this._revertAriaHidden();\n }\n }));\n activeModal.close = (result) => {\n ngbModalRef.close(result);\n };\n activeModal.dismiss = (reason) => {\n ngbModalRef.dismiss(reason);\n };\n activeModal.update = (options) => {\n ngbModalRef.update(options);\n };\n ngbModalRef.update(options);\n if (this._modalRefs.length === 1) {\n this._document.body.classList.add('modal-open');\n }\n if (backdropCmptRef && backdropCmptRef.instance) {\n backdropCmptRef.changeDetectorRef.detectChanges();\n }\n windowCmptRef.changeDetectorRef.detectChanges();\n return ngbModalRef;\n }\n get activeInstances() {\n return this._activeInstances;\n }\n dismissAll(reason) {\n this._modalRefs.forEach((ngbModalRef) => ngbModalRef.dismiss(reason));\n }\n hasOpenModals() {\n return this._modalRefs.length > 0;\n }\n _attachBackdrop(containerEl) {\n let backdropCmptRef = createComponent(NgbModalBackdrop, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector,\n });\n this._applicationRef.attachView(backdropCmptRef.hostView);\n containerEl.appendChild(backdropCmptRef.location.nativeElement);\n return backdropCmptRef;\n }\n _attachWindowComponent(containerEl, projectableNodes) {\n let windowCmptRef = createComponent(NgbModalWindow, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector,\n projectableNodes,\n });\n this._applicationRef.attachView(windowCmptRef.hostView);\n containerEl.appendChild(windowCmptRef.location.nativeElement);\n return windowCmptRef;\n }\n _getContentRef(contentInjector, environmentInjector, content, activeModal, options) {\n if (!content) {\n return new ContentRef([]);\n }\n else if (content instanceof TemplateRef) {\n return this._createFromTemplateRef(content, activeModal);\n }\n else if (isString(content)) {\n return this._createFromString(content);\n }\n else {\n return this._createFromComponent(contentInjector, environmentInjector, content, activeModal, options);\n }\n }\n _createFromTemplateRef(templateRef, activeModal) {\n const context = {\n $implicit: activeModal,\n close(result) {\n activeModal.close(result);\n },\n dismiss(reason) {\n activeModal.dismiss(reason);\n },\n };\n const viewRef = templateRef.createEmbeddedView(context);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n _createFromString(content) {\n const component = this._document.createTextNode(`${content}`);\n return new ContentRef([[component]]);\n }\n _createFromComponent(contentInjector, environmentInjector, componentType, context, options) {\n const elementInjector = Injector.create({\n providers: [{ provide: NgbActiveModal, useValue: context }],\n parent: contentInjector,\n });\n const componentRef = createComponent(componentType, {\n environmentInjector,\n elementInjector,\n });\n const componentNativeEl = componentRef.location.nativeElement;\n if (options.scrollable) {\n componentNativeEl.classList.add('component-host-scrollable');\n }\n this._applicationRef.attachView(componentRef.hostView);\n // FIXME: we should here get rid of the component nativeElement\n // and use `[Array.from(componentNativeEl.childNodes)]` instead and remove the above CSS class.\n return new ContentRef([[componentNativeEl]], componentRef.hostView, componentRef);\n }\n _setAriaHidden(element) {\n const parent = element.parentElement;\n if (parent && element !== this._document.body) {\n Array.from(parent.children).forEach((sibling) => {\n if (sibling !== element && sibling.nodeName !== 'SCRIPT') {\n this._ariaHiddenValues.set(sibling, sibling.getAttribute('aria-hidden'));\n sibling.setAttribute('aria-hidden', 'true');\n }\n });\n this._setAriaHidden(parent);\n }\n }\n _revertAriaHidden() {\n this._ariaHiddenValues.forEach((value, element) => {\n if (value) {\n element.setAttribute('aria-hidden', value);\n }\n else {\n element.removeAttribute('aria-hidden');\n }\n });\n this._ariaHiddenValues.clear();\n }\n _registerModalRef(ngbModalRef) {\n const unregisterModalRef = () => {\n const index = this._modalRefs.indexOf(ngbModalRef);\n if (index > -1) {\n this._modalRefs.splice(index, 1);\n this._activeInstances.emit(this._modalRefs);\n }\n };\n this._modalRefs.push(ngbModalRef);\n this._activeInstances.emit(this._modalRefs);\n ngbModalRef.result.then(unregisterModalRef, unregisterModalRef);\n }\n _registerWindowCmpt(ngbWindowCmpt) {\n this._windowCmpts.push(ngbWindowCmpt);\n this._activeWindowCmptHasChanged.next();\n ngbWindowCmpt.onDestroy(() => {\n const index = this._windowCmpts.indexOf(ngbWindowCmpt);\n if (index > -1) {\n this._windowCmpts.splice(index, 1);\n this._activeWindowCmptHasChanged.next();\n }\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalStack, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalStack, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalStack, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n\n/**\n * A service for opening modal windows.\n *\n * Creating a modal is straightforward: create a component or a template and pass it as an argument to\n * the `.open()` method.\n */\nclass NgbModal {\n constructor() {\n this._injector = inject(Injector);\n this._modalStack = inject(NgbModalStack);\n this._config = inject(NgbModalConfig);\n }\n /**\n * Opens a new modal window with the specified content and supplied options.\n *\n * Content can be provided as a `TemplateRef` or a component type. If you pass a component type as content,\n * then instances of those components can be injected with an instance of the `NgbActiveModal` class. You can then\n * use `NgbActiveModal` methods to close / dismiss modals from \"inside\" of your component.\n *\n * Also see the [`NgbModalOptions`](#/components/modal/api#NgbModalOptions) for the list of supported options.\n */\n open(content, options = {}) {\n const combinedOptions = { ...this._config, animation: this._config.animation, ...options };\n return this._modalStack.open(this._injector, content, combinedOptions);\n }\n /**\n * Returns an observable that holds the active modal instances.\n */\n get activeInstances() {\n return this._modalStack.activeInstances;\n }\n /**\n * Dismisses all currently displayed modal windows with the supplied reason.\n *\n * @since 3.1.0\n */\n dismissAll(reason) {\n this._modalStack.dismissAll(reason);\n }\n /**\n * Indicates if there are currently any open modal windows in the application.\n *\n * @since 3.3.0\n */\n hasOpenModals() {\n return this._modalStack.hasOpenModals();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModal, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModal, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModal, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass NgbModalModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalModule, providers: [NgbModal] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModalModule, decorators: [{\n type: NgModule,\n args: [{ providers: [NgbModal] }]\n }] });\n\n/**\n * A configuration service for the [`NgbNav`](#/components/nav/api#NgbNav) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the navs used in the application.\n *\n * @since 5.2.0\n */\nclass NgbNavConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.destroyOnHide = true;\n this.orientation = 'horizontal';\n this.roles = 'tablist';\n this.keyboard = true;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nconst isValidNavId = (id) => isDefined(id) && id !== '';\nlet navCounter = 0;\n/**\n * This directive must be used to wrap content to be displayed in the nav.\n *\n * @since 5.2.0\n */\nclass NgbNavContent {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbNavContent, isStandalone: true, selector: \"ng-template[ngbNavContent]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavContent, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbNavContent]', standalone: true }]\n }] });\n/**\n * This directive applies a specific role on a non-container based ngbNavItem.\n *\n * @since 14.1.0\n */\nclass NgbNavItemRole {\n constructor(role) {\n this.role = role;\n this.nav = inject(NgbNav);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavItemRole, deps: [{ token: 'role', attribute: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbNavItemRole, isStandalone: true, selector: \"[ngbNavItem]:not(ng-container)\", host: { properties: { \"attr.role\": \"role ? role : nav.roles ? 'presentation' : undefined\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavItemRole, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbNavItem]:not(ng-container)',\n standalone: true,\n host: {\n '[attr.role]': `role ? role : nav.roles ? 'presentation' : undefined`,\n },\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['role']\n }] }] });\n/**\n * The directive used to group nav link and related nav content. As well as set nav identifier and some options.\n *\n * @since 5.2.0\n */\nclass NgbNavItem {\n constructor() {\n this._nav = inject(NgbNav);\n this._nativeElement = inject(ElementRef).nativeElement;\n /**\n * If `true`, the current nav item is disabled and can't be toggled by user.\n *\n * Nevertheless disabled nav can be selected programmatically via the `.select()` method and the `[activeId]` binding.\n */\n this.disabled = false;\n /**\n * An event emitted when the fade in transition is finished on the related nav content\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the fade out transition is finished on the related nav content\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n }\n ngAfterContentChecked() {\n // We are using @ContentChildren instead of @ContentChild as in the Angular version being used\n // only @ContentChildren allows us to specify the {descendants: false} option.\n // Without {descendants: false} we are hitting bugs described in:\n // https://github.com/ng-bootstrap/ng-bootstrap/issues/2240\n this.contentTpl = this.contentTpls.first;\n }\n ngOnInit() {\n if (!isDefined(this.domId)) {\n this.domId = `ngb-nav-${navCounter++}`;\n }\n }\n get active() {\n return this._nav.activeId === this.id;\n }\n get id() {\n return isValidNavId(this._id) ? this._id : this.domId;\n }\n get panelDomId() {\n return `${this.domId}-panel`;\n }\n isPanelInDom() {\n return (isDefined(this.destroyOnHide) ? !this.destroyOnHide : !this._nav.destroyOnHide) || this.active;\n }\n /**\n * @internal\n */\n isNgContainer() {\n return this._nativeElement.nodeType === Node.COMMENT_NODE;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbNavItem, isStandalone: true, selector: \"[ngbNavItem]\", inputs: { destroyOnHide: \"destroyOnHide\", disabled: \"disabled\", domId: \"domId\", _id: [\"ngbNavItem\", \"_id\"] }, outputs: { shown: \"shown\", hidden: \"hidden\" }, host: { properties: { \"class.nav-item\": \"true\" } }, queries: [{ propertyName: \"contentTpls\", predicate: NgbNavContent }], exportAs: [\"ngbNavItem\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavItem, decorators: [{\n type: Directive,\n args: [{ selector: '[ngbNavItem]', exportAs: 'ngbNavItem', standalone: true, host: { '[class.nav-item]': 'true' } }]\n }], propDecorators: { destroyOnHide: [{\n type: Input\n }], disabled: [{\n type: Input\n }], domId: [{\n type: Input\n }], _id: [{\n type: Input,\n args: ['ngbNavItem']\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], contentTpls: [{\n type: ContentChildren,\n args: [NgbNavContent, { descendants: false }]\n }] } });\n/**\n * A nav directive that helps with implementing tabbed navigation components.\n *\n * @since 5.2.0\n */\nclass NgbNav {\n constructor(role) {\n this.role = role;\n this._config = inject(NgbNavConfig);\n this._cd = inject(ChangeDetectorRef);\n this._document = inject(DOCUMENT);\n this._nativeElement = inject(ElementRef).nativeElement;\n this.destroyRef = inject(DestroyRef);\n this._navigatingWithKeyboard = false;\n /**\n * The event emitted after the active nav changes\n * The payload of the event is the newly active nav id\n *\n * If you want to prevent nav change, you should use `(navChange)` event\n */\n this.activeIdChange = new EventEmitter();\n /**\n * If `true`, nav change will be animated.\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * If `true`, non-active nav content will be removed from DOM\n * Otherwise it will just be hidden\n */\n this.destroyOnHide = this._config.destroyOnHide;\n /**\n * The orientation of navs.\n *\n * Using `vertical` will also add the `aria-orientation` attribute\n */\n this.orientation = this._config.orientation;\n /**\n * Role attribute generating strategy:\n * - `false` - no role attributes will be generated\n * - `'tablist'` - 'tablist', 'tab' and 'tabpanel' will be generated (default)\n */\n this.roles = this._config.roles;\n /**\n * Keyboard support for nav focus/selection using arrow keys.\n *\n * * `true` - navs will be focused using keyboard arrow keys\n * * `false` - no keyboard support\n * * `'changeWithArrows'` - nav will be selected using keyboard arrow keys\n *\n * See the [list of available keyboard shortcuts](#/components/nav/overview#keyboard-shortcuts).\n *\n * @since 6.1.0\n */\n this.keyboard = this._config.keyboard;\n /**\n * An event emitted when the fade in transition is finished for one of the items.\n *\n * Payload of the event is the nav id that was just shown.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the fade out transition is finished for one of the items.\n *\n * Payload of the event is the nav id that was just hidden.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n this.navItemChange$ = new Subject();\n /**\n * The nav change event emitted right before the nav change happens on user click.\n *\n * This event won't be emitted if nav is changed programmatically via `[activeId]` or `.select()`.\n *\n * See [`NgbNavChangeEvent`](#/components/nav/api#NgbNavChangeEvent) for payload details.\n */\n this.navChange = new EventEmitter();\n }\n click(item) {\n if (!item.disabled) {\n this._updateActiveId(item.id);\n }\n }\n onFocusout({ relatedTarget }) {\n if (!this._nativeElement.contains(relatedTarget)) {\n this._navigatingWithKeyboard = false;\n }\n }\n onKeyDown(event) {\n if (this.roles !== 'tablist' || !this.keyboard) {\n return;\n }\n /* eslint-disable-next-line deprecation/deprecation */\n const key = event.which;\n const enabledLinks = this.links.filter((link) => !link.navItem.disabled);\n const { length } = enabledLinks;\n let position = -1;\n enabledLinks.forEach((link, index) => {\n if (link.nativeElement === this._document.activeElement) {\n position = index;\n }\n });\n if (length) {\n switch (key) {\n case Key.ArrowUp:\n case Key.ArrowLeft:\n position = (position - 1 + length) % length;\n break;\n case Key.ArrowRight:\n case Key.ArrowDown:\n position = (position + 1) % length;\n break;\n case Key.Home:\n position = 0;\n break;\n case Key.End:\n position = length - 1;\n break;\n }\n if (this.keyboard === 'changeWithArrows') {\n this.select(enabledLinks[position].navItem.id);\n }\n enabledLinks[position].nativeElement.focus();\n this._navigatingWithKeyboard = true;\n event.preventDefault();\n }\n }\n /**\n * Selects the nav with the given id and shows its associated pane.\n * Any other nav that was previously selected becomes unselected and its associated pane is hidden.\n */\n select(id) {\n this._updateActiveId(id, false);\n }\n ngAfterContentInit() {\n if (!isDefined(this.activeId)) {\n const nextId = this.items.first ? this.items.first.id : null;\n if (isValidNavId(nextId)) {\n this._updateActiveId(nextId, false);\n this._cd.detectChanges();\n }\n }\n this.items.changes\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this._notifyItemChanged(this.activeId));\n }\n ngOnChanges({ activeId }) {\n if (activeId && !activeId.firstChange) {\n this._notifyItemChanged(activeId.currentValue);\n }\n }\n _updateActiveId(nextId, emitNavChange = true) {\n if (this.activeId !== nextId) {\n let defaultPrevented = false;\n if (emitNavChange) {\n this.navChange.emit({\n activeId: this.activeId,\n nextId,\n preventDefault: () => {\n defaultPrevented = true;\n },\n });\n }\n if (!defaultPrevented) {\n this.activeId = nextId;\n this.activeIdChange.emit(nextId);\n this._notifyItemChanged(nextId);\n }\n }\n }\n _notifyItemChanged(nextItemId) {\n this.navItemChange$.next(this._getItemById(nextItemId));\n }\n _getItemById(itemId) {\n return (this.items && this.items.find((item) => item.id === itemId)) || null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNav, deps: [{ token: 'role', attribute: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbNav, isStandalone: true, selector: \"[ngbNav]\", inputs: { activeId: \"activeId\", animation: \"animation\", destroyOnHide: \"destroyOnHide\", orientation: \"orientation\", roles: \"roles\", keyboard: \"keyboard\" }, outputs: { activeIdChange: \"activeIdChange\", shown: \"shown\", hidden: \"hidden\", navChange: \"navChange\" }, host: { listeners: { \"keydown.arrowLeft\": \"onKeyDown($event)\", \"keydown.arrowRight\": \"onKeyDown($event)\", \"keydown.arrowDown\": \"onKeyDown($event)\", \"keydown.arrowUp\": \"onKeyDown($event)\", \"keydown.Home\": \"onKeyDown($event)\", \"keydown.End\": \"onKeyDown($event)\", \"focusout\": \"onFocusout($event)\" }, properties: { \"class.nav\": \"true\", \"class.flex-column\": \"orientation === 'vertical'\", \"attr.aria-orientation\": \"orientation === 'vertical' && roles === 'tablist' ? 'vertical' : undefined\", \"attr.role\": \"role ? role : roles ? 'tablist' : undefined\" } }, queries: [{ propertyName: \"items\", predicate: NgbNavItem }, { propertyName: \"links\", predicate: i0.forwardRef(() => NgbNavLinkBase), descendants: true }], exportAs: [\"ngbNav\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNav, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbNav]',\n exportAs: 'ngbNav',\n standalone: true,\n host: {\n '[class.nav]': 'true',\n '[class.flex-column]': `orientation === 'vertical'`,\n '[attr.aria-orientation]': `orientation === 'vertical' && roles === 'tablist' ? 'vertical' : undefined`,\n '[attr.role]': `role ? role : roles ? 'tablist' : undefined`,\n '(keydown.arrowLeft)': 'onKeyDown($event)',\n '(keydown.arrowRight)': 'onKeyDown($event)',\n '(keydown.arrowDown)': 'onKeyDown($event)',\n '(keydown.arrowUp)': 'onKeyDown($event)',\n '(keydown.Home)': 'onKeyDown($event)',\n '(keydown.End)': 'onKeyDown($event)',\n '(focusout)': 'onFocusout($event)',\n },\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['role']\n }] }], propDecorators: { activeId: [{\n type: Input\n }], activeIdChange: [{\n type: Output\n }], animation: [{\n type: Input\n }], destroyOnHide: [{\n type: Input\n }], orientation: [{\n type: Input\n }], roles: [{\n type: Input\n }], keyboard: [{\n type: Input\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], items: [{\n type: ContentChildren,\n args: [NgbNavItem]\n }], links: [{\n type: ContentChildren,\n args: [forwardRef(() => NgbNavLinkBase), { descendants: true }]\n }], navChange: [{\n type: Output\n }] } });\nclass NgbNavLinkBase {\n constructor(role) {\n this.role = role;\n this.navItem = inject(NgbNavItem);\n this.nav = inject(NgbNav);\n this.nativeElement = inject(ElementRef).nativeElement;\n }\n get tabindex() {\n if (this.nav.keyboard === false) {\n return this.navItem.disabled ? -1 : undefined;\n }\n if (this.nav._navigatingWithKeyboard) {\n return -1;\n }\n return this.navItem.disabled || !this.navItem.active ? -1 : undefined;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavLinkBase, deps: [{ token: 'role', attribute: true }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbNavLinkBase, isStandalone: true, selector: \"[ngbNavLink]\", host: { properties: { \"id\": \"navItem.domId\", \"class.nav-link\": \"true\", \"class.nav-item\": \"navItem.isNgContainer()\", \"attr.role\": \"role ? role : nav.roles ? 'tab' : undefined\", \"class.active\": \"navItem.active\", \"class.disabled\": \"navItem.disabled\", \"attr.tabindex\": \"tabindex\", \"attr.aria-controls\": \"navItem.isPanelInDom() ? navItem.panelDomId : null\", \"attr.aria-selected\": \"navItem.active\", \"attr.aria-disabled\": \"navItem.disabled\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavLinkBase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbNavLink]',\n standalone: true,\n host: {\n '[id]': 'navItem.domId',\n '[class.nav-link]': 'true',\n '[class.nav-item]': 'navItem.isNgContainer()',\n '[attr.role]': `role ? role : nav.roles ? 'tab' : undefined`,\n '[class.active]': 'navItem.active',\n '[class.disabled]': 'navItem.disabled',\n '[attr.tabindex]': 'tabindex',\n '[attr.aria-controls]': 'navItem.isPanelInDom() ? navItem.panelDomId : null',\n '[attr.aria-selected]': 'navItem.active',\n '[attr.aria-disabled]': 'navItem.disabled',\n },\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['role']\n }] }] });\n/**\n * A directive to mark the nav link when used on a button element.\n */\nclass NgbNavLinkButton extends NgbNavLinkBase {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavLinkButton, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbNavLinkButton, isStandalone: true, selector: \"button[ngbNavLink]\", host: { attributes: { \"type\": \"button\" }, listeners: { \"click\": \"nav.click(navItem)\" }, properties: { \"disabled\": \"navItem.disabled\" } }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavLinkButton, decorators: [{\n type: Directive,\n args: [{\n selector: 'button[ngbNavLink]',\n standalone: true,\n host: {\n type: 'button',\n '[disabled]': 'navItem.disabled',\n '(click)': 'nav.click(navItem)',\n },\n }]\n }] });\n/**\n * A directive to mark the nav link when used on a link element.\n *\n * @since 5.2.0\n */\nclass NgbNavLink extends NgbNavLinkBase {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavLink, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbNavLink, isStandalone: true, selector: \"a[ngbNavLink]\", host: { attributes: { \"href\": \"\" }, listeners: { \"click\": \"nav.click(navItem); $event.preventDefault()\" } }, usesInheritance: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavLink, decorators: [{\n type: Directive,\n args: [{\n selector: 'a[ngbNavLink]',\n standalone: true,\n host: {\n href: '',\n '(click)': 'nav.click(navItem); $event.preventDefault()',\n },\n }]\n }] });\n\nconst ngbNavFadeOutTransition = ({ classList }) => {\n classList.remove('show');\n return () => classList.remove('active');\n};\nconst ngbNavFadeInTransition = (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n};\n\nclass NgbNavPane {\n constructor() {\n this.nativeElement = inject(ElementRef).nativeElement;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavPane, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbNavPane, isStandalone: true, selector: \"[ngbNavPane]\", inputs: { item: \"item\", nav: \"nav\", role: \"role\" }, host: { properties: { \"id\": \"item.panelDomId\", \"class.fade\": \"nav.animation\", \"attr.role\": \"role ? role : nav.roles ? \\\"tabpanel\\\" : undefined\", \"attr.aria-labelledby\": \"item.domId\" }, classAttribute: \"tab-pane\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavPane, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbNavPane]',\n standalone: true,\n host: {\n '[id]': 'item.panelDomId',\n class: 'tab-pane',\n '[class.fade]': 'nav.animation',\n '[attr.role]': 'role ? role : nav.roles ? \"tabpanel\" : undefined',\n '[attr.aria-labelledby]': 'item.domId',\n },\n }]\n }], propDecorators: { item: [{\n type: Input\n }], nav: [{\n type: Input\n }], role: [{\n type: Input\n }] } });\n/**\n * The outlet where currently active nav content will be displayed.\n *\n * @since 5.2.0\n */\nclass NgbNavOutlet {\n constructor() {\n this._cd = inject(ChangeDetectorRef);\n this._ngZone = inject(NgZone);\n this._activePane = null;\n }\n isPanelTransitioning(item) {\n return this._activePane?.item === item;\n }\n ngAfterViewInit() {\n // initial display\n this._updateActivePane();\n // this will be emitted for all 3 types of nav changes: .select(), [activeId] or (click)\n this.nav.navItemChange$\n .pipe(takeUntilDestroyed(this.nav.destroyRef), startWith(this._activePane?.item || null), distinctUntilChanged(), skip(1))\n .subscribe((nextItem) => {\n const options = { animation: this.nav.animation, runningTransition: 'stop' };\n // next panel we're switching to will only appear in DOM after the change detection is done\n // and `this._panes` will be updated\n this._cd.detectChanges();\n // fading out\n if (this._activePane) {\n ngbRunTransition(this._ngZone, this._activePane.nativeElement, ngbNavFadeOutTransition, options).subscribe(() => {\n const activeItem = this._activePane?.item;\n this._activePane = this._getPaneForItem(nextItem);\n // mark for check when transition finishes as outlet or parent containers might be OnPush\n // without this the panes that have \"faded out\" will stay in DOM\n this._cd.markForCheck();\n // fading in\n if (this._activePane) {\n // we have to add the '.active' class before running the transition,\n // because it should be in place before `ngbRunTransition` does `reflow()`\n this._activePane.nativeElement.classList.add('active');\n ngbRunTransition(this._ngZone, this._activePane.nativeElement, ngbNavFadeInTransition, options).subscribe(() => {\n if (nextItem) {\n nextItem.shown.emit();\n this.nav.shown.emit(nextItem.id);\n }\n });\n }\n if (activeItem) {\n activeItem.hidden.emit();\n this.nav.hidden.emit(activeItem.id);\n }\n });\n }\n else {\n this._updateActivePane();\n }\n });\n }\n _updateActivePane() {\n this._activePane = this._getActivePane();\n this._activePane?.nativeElement.classList.add('show');\n this._activePane?.nativeElement.classList.add('active');\n }\n _getPaneForItem(item) {\n return (this._panes && this._panes.find((pane) => pane.item === item)) || null;\n }\n _getActivePane() {\n return (this._panes && this._panes.find((pane) => pane.item.active)) || null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavOutlet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbNavOutlet, isStandalone: true, selector: \"[ngbNavOutlet]\", inputs: { paneRole: \"paneRole\", nav: [\"ngbNavOutlet\", \"nav\"] }, host: { properties: { \"class.tab-content\": \"true\" } }, viewQueries: [{ propertyName: \"_panes\", predicate: NgbNavPane, descendants: true }], ngImport: i0, template: `\n\t\t@for (item of nav.items; track item) {\n\t\t\t@if (item.isPanelInDom() || isPanelTransitioning(item)) {\n\t\t\t\t<div ngbNavPane [item]=\"item\" [nav]=\"nav\" [role]=\"paneRole\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"item.contentTpl?.templateRef || null\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: item.active || isPanelTransitioning(item) }\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t}\n\t\t}\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgbNavPane, selector: \"[ngbNavPane]\", inputs: [\"item\", \"nav\", \"role\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavOutlet, decorators: [{\n type: Component,\n args: [{\n selector: '[ngbNavOutlet]',\n standalone: true,\n imports: [NgbNavPane, NgTemplateOutlet],\n host: {\n '[class.tab-content]': 'true',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n\t\t@for (item of nav.items; track item) {\n\t\t\t@if (item.isPanelInDom() || isPanelTransitioning(item)) {\n\t\t\t\t<div ngbNavPane [item]=\"item\" [nav]=\"nav\" [role]=\"paneRole\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"item.contentTpl?.templateRef || null\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: item.active || isPanelTransitioning(item) }\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t}\n\t\t}\n\t`,\n }]\n }], propDecorators: { _panes: [{\n type: ViewChildren,\n args: [NgbNavPane]\n }], paneRole: [{\n type: Input\n }], nav: [{\n type: Input,\n args: ['ngbNavOutlet']\n }] } });\n\nconst NGB_NAV_DIRECTIVES = [\n NgbNavContent,\n NgbNav,\n NgbNavItem,\n NgbNavItemRole,\n NgbNavLink,\n NgbNavLinkButton,\n NgbNavLinkBase,\n NgbNavOutlet,\n NgbNavPane,\n];\nclass NgbNavModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavModule, imports: [NgbNavContent,\n NgbNav,\n NgbNavItem,\n NgbNavItemRole,\n NgbNavLink,\n NgbNavLinkButton,\n NgbNavLinkBase,\n NgbNavOutlet,\n NgbNavPane], exports: [NgbNavContent,\n NgbNav,\n NgbNavItem,\n NgbNavItemRole,\n NgbNavLink,\n NgbNavLinkButton,\n NgbNavLinkBase,\n NgbNavOutlet,\n NgbNavPane] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbNavModule, decorators: [{\n type: NgModule,\n args: [{\n imports: NGB_NAV_DIRECTIVES,\n exports: NGB_NAV_DIRECTIVES,\n }]\n }] });\n\n/**\n * A configuration service for the [`NgbPagination`](#/components/pagination/api#NgbPagination) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the paginations used in the application.\n */\nclass NgbPaginationConfig {\n constructor() {\n this.disabled = false;\n this.boundaryLinks = false;\n this.directionLinks = true;\n this.ellipses = true;\n this.maxSize = 0;\n this.pageSize = 10;\n this.rotate = false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A directive to match the 'ellipsis' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationEllipsis {\n constructor() {\n this.templateRef = inject((TemplateRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationEllipsis, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbPaginationEllipsis, isStandalone: true, selector: \"ng-template[ngbPaginationEllipsis]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationEllipsis, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationEllipsis]', standalone: true }]\n }] });\n/**\n * A directive to match the 'first' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationFirst {\n constructor() {\n this.templateRef = inject((TemplateRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationFirst, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbPaginationFirst, isStandalone: true, selector: \"ng-template[ngbPaginationFirst]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationFirst, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationFirst]', standalone: true }]\n }] });\n/**\n * A directive to match the 'last' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationLast {\n constructor() {\n this.templateRef = inject((TemplateRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationLast, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbPaginationLast, isStandalone: true, selector: \"ng-template[ngbPaginationLast]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationLast, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationLast]', standalone: true }]\n }] });\n/**\n * A directive to match the 'next' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationNext {\n constructor() {\n this.templateRef = inject((TemplateRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationNext, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbPaginationNext, isStandalone: true, selector: \"ng-template[ngbPaginationNext]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationNext, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationNext]', standalone: true }]\n }] });\n/**\n * A directive to match the page 'number' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationNumber {\n constructor() {\n this.templateRef = inject((TemplateRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationNumber, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbPaginationNumber, isStandalone: true, selector: \"ng-template[ngbPaginationNumber]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationNumber, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationNumber]', standalone: true }]\n }] });\n/**\n * A directive to match the 'previous' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationPrevious {\n constructor() {\n this.templateRef = inject((TemplateRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationPrevious, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbPaginationPrevious, isStandalone: true, selector: \"ng-template[ngbPaginationPrevious]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationPrevious, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationPrevious]', standalone: true }]\n }] });\n/**\n * A directive to match the 'pages' whole content\n *\n * @since 9.1.0\n */\nclass NgbPaginationPages {\n constructor() {\n this.templateRef = inject((TemplateRef));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationPages, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbPaginationPages, isStandalone: true, selector: \"ng-template[ngbPaginationPages]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationPages, decorators: [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationPages]', standalone: true }]\n }] });\n/**\n * A component that displays page numbers and allows to customize them in several ways.\n */\nclass NgbPagination {\n constructor() {\n this._config = inject(NgbPaginationConfig);\n this.pageCount = 0;\n this.pages = [];\n /**\n * If `true`, pagination links will be disabled.\n */\n this.disabled = this._config.disabled;\n /**\n * If `true`, the \"First\" and \"Last\" page links are shown.\n */\n this.boundaryLinks = this._config.boundaryLinks;\n /**\n * If `true`, the \"Next\" and \"Previous\" page links are shown.\n */\n this.directionLinks = this._config.directionLinks;\n /**\n * If `true`, the ellipsis symbols and first/last page numbers will be shown when `maxSize` > number of pages.\n */\n this.ellipses = this._config.ellipses;\n /**\n * Whether to rotate pages when `maxSize` > number of pages.\n *\n * The current page always stays in the middle if `true`.\n */\n this.rotate = this._config.rotate;\n /**\n * The maximum number of pages to display.\n */\n this.maxSize = this._config.maxSize;\n /**\n * The current page.\n *\n * Page numbers start with `1`.\n */\n this.page = 1;\n /**\n * The number of items per page.\n */\n this.pageSize = this._config.pageSize;\n /**\n * An event fired when the page is changed. Will fire only if collection size is set and all values are valid.\n *\n * Event payload is the number of the newly selected page.\n *\n * Page numbers start with `1`.\n */\n this.pageChange = new EventEmitter(true);\n /**\n * The pagination display size.\n *\n * Bootstrap currently supports small and large sizes.\n *\n * If the passed value is a string (ex. 'custom'), it will just add the `pagination-custom` css class\n */\n this.size = this._config.size;\n }\n hasPrevious() {\n return this.page > 1;\n }\n hasNext() {\n return this.page < this.pageCount;\n }\n nextDisabled() {\n return !this.hasNext() || this.disabled;\n }\n previousDisabled() {\n return !this.hasPrevious() || this.disabled;\n }\n selectPage(pageNumber) {\n this._updatePages(pageNumber);\n }\n ngOnChanges(changes) {\n this._updatePages(this.page);\n }\n isEllipsis(pageNumber) {\n return pageNumber === -1;\n }\n /**\n * Appends ellipses and first/last page number to the displayed pages\n */\n _applyEllipses(start, end) {\n if (this.ellipses) {\n if (start > 0) {\n // The first page will always be included. If the displayed range\n // starts after the third page, then add ellipsis. But if the range\n // starts on the third page, then add the second page instead of\n // an ellipsis, because the ellipsis would only hide a single page.\n if (start > 2) {\n this.pages.unshift(-1);\n }\n else if (start === 2) {\n this.pages.unshift(2);\n }\n this.pages.unshift(1);\n }\n if (end < this.pageCount) {\n // The last page will always be included. If the displayed range\n // ends before the third-last page, then add ellipsis. But if the range\n // ends on third-last page, then add the second-last page instead of\n // an ellipsis, because the ellipsis would only hide a single page.\n if (end < this.pageCount - 2) {\n this.pages.push(-1);\n }\n else if (end === this.pageCount - 2) {\n this.pages.push(this.pageCount - 1);\n }\n this.pages.push(this.pageCount);\n }\n }\n }\n /**\n * Rotates page numbers based on maxSize items visible.\n * Currently selected page stays in the middle:\n *\n * Ex. for selected page = 6:\n * [5,*6*,7] for maxSize = 3\n * [4,5,*6*,7] for maxSize = 4\n */\n _applyRotation() {\n let start = 0;\n let end = this.pageCount;\n let leftOffset = Math.floor(this.maxSize / 2);\n let rightOffset = this.maxSize % 2 === 0 ? leftOffset - 1 : leftOffset;\n if (this.page <= leftOffset) {\n // very beginning, no rotation -> [0..maxSize]\n end = this.maxSize;\n }\n else if (this.pageCount - this.page < leftOffset) {\n // very end, no rotation -> [len-maxSize..len]\n start = this.pageCount - this.maxSize;\n }\n else {\n // rotate\n start = this.page - leftOffset - 1;\n end = this.page + rightOffset;\n }\n return [start, end];\n }\n /**\n * Paginates page numbers based on maxSize items per page.\n */\n _applyPagination() {\n let page = Math.ceil(this.page / this.maxSize) - 1;\n let start = page * this.maxSize;\n let end = start + this.maxSize;\n return [start, end];\n }\n _setPageInRange(newPageNo) {\n const prevPageNo = this.page;\n this.page = getValueInRange(newPageNo, this.pageCount, 1);\n if (this.page !== prevPageNo && isNumber(this.collectionSize)) {\n this.pageChange.emit(this.page);\n }\n }\n _updatePages(newPage) {\n this.pageCount = Math.ceil(this.collectionSize / this.pageSize);\n if (!isNumber(this.pageCount)) {\n this.pageCount = 0;\n }\n // fill-in model needed to render pages\n this.pages.length = 0;\n for (let i = 1; i <= this.pageCount; i++) {\n this.pages.push(i);\n }\n // set page within 1..max range\n this._setPageInRange(newPage);\n // apply maxSize if necessary\n if (this.maxSize > 0 && this.pageCount > this.maxSize) {\n let start = 0;\n let end = this.pageCount;\n // either paginating or rotating page numbers\n if (this.rotate) {\n [start, end] = this._applyRotation();\n }\n else {\n [start, end] = this._applyPagination();\n }\n this.pages = this.pages.slice(start, end);\n // adding ellipses\n this._applyEllipses(start, end);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPagination, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbPagination, isStandalone: true, selector: \"ngb-pagination\", inputs: { disabled: \"disabled\", boundaryLinks: \"boundaryLinks\", directionLinks: \"directionLinks\", ellipses: \"ellipses\", rotate: \"rotate\", collectionSize: \"collectionSize\", maxSize: \"maxSize\", page: \"page\", pageSize: \"pageSize\", size: \"size\" }, outputs: { pageChange: \"pageChange\" }, host: { attributes: { \"role\": \"navigation\" } }, queries: [{ propertyName: \"tplEllipsis\", first: true, predicate: NgbPaginationEllipsis, descendants: true }, { propertyName: \"tplFirst\", first: true, predicate: NgbPaginationFirst, descendants: true }, { propertyName: \"tplLast\", first: true, predicate: NgbPaginationLast, descendants: true }, { propertyName: \"tplNext\", first: true, predicate: NgbPaginationNext, descendants: true }, { propertyName: \"tplNumber\", first: true, predicate: NgbPaginationNumber, descendants: true }, { propertyName: \"tplPrevious\", first: true, predicate: NgbPaginationPrevious, descendants: true }, { propertyName: \"tplPages\", first: true, predicate: NgbPaginationPages, descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n\t\t<ng-template #first><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.first\">««</span></ng-template>\n\t\t<ng-template #previous><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.previous\">«</span></ng-template>\n\t\t<ng-template #next><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.next\">»</span></ng-template>\n\t\t<ng-template #last><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.last\">»»</span></ng-template>\n\t\t<ng-template #ellipsis>...</ng-template>\n\t\t<ng-template #defaultNumber let-page let-currentPage=\"currentPage\">{{ page }}</ng-template>\n\t\t<ng-template #defaultPages let-page let-pages=\"pages\" let-disabled=\"disabled\">\n\t\t\t@for (pageNumber of pages; track pageNumber) {\n\t\t\t\t<li\n\t\t\t\t\tclass=\"page-item\"\n\t\t\t\t\t[class.active]=\"pageNumber === page\"\n\t\t\t\t\t[class.disabled]=\"isEllipsis(pageNumber) || disabled\"\n\t\t\t\t\t[attr.aria-current]=\"pageNumber === page ? 'page' : null\"\n\t\t\t\t>\n\t\t\t\t\t@if (isEllipsis(pageNumber)) {\n\t\t\t\t\t\t<a class=\"page-link\" tabindex=\"-1\" aria-disabled=\"true\">\n\t\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplEllipsis?.templateRef || ellipsis\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: true, currentPage: page }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\t\thref\n\t\t\t\t\t\t\t(click)=\"selectPage(pageNumber); $event.preventDefault()\"\n\t\t\t\t\t\t\t[attr.tabindex]=\"disabled ? '-1' : null\"\n\t\t\t\t\t\t\t[attr.aria-disabled]=\"disabled ? 'true' : null\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplNumber?.templateRef || defaultNumber\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: disabled, $implicit: pageNumber, currentPage: page }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t}\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ng-template>\n\t\t<ul [class]=\"'pagination' + (size ? ' pagination-' + size : '')\">\n\t\t\t@if (boundaryLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"previousDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"First\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.first-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(1); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"previousDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"previousDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplFirst?.templateRef || first\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: previousDisabled(), currentPage: page }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t\t@if (directionLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"previousDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"Previous\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.previous-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(page - 1); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"previousDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"previousDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplPrevious?.templateRef || previous\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: previousDisabled() }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"tplPages?.templateRef || defaultPages\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: page, pages: pages, disabled: disabled }\"\n\t\t\t/>\n\t\t\t@if (directionLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"nextDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"Next\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.next-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(page + 1); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"nextDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"nextDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplNext?.templateRef || next\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: nextDisabled(), currentPage: page }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t\t@if (boundaryLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"nextDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"Last\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.last-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(pageCount); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"nextDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"nextDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplLast?.templateRef || last\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: nextDisabled(), currentPage: page }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPagination, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-pagination',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'navigation',\n },\n template: `\n\t\t<ng-template #first><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.first\">««</span></ng-template>\n\t\t<ng-template #previous><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.previous\">«</span></ng-template>\n\t\t<ng-template #next><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.next\">»</span></ng-template>\n\t\t<ng-template #last><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.last\">»»</span></ng-template>\n\t\t<ng-template #ellipsis>...</ng-template>\n\t\t<ng-template #defaultNumber let-page let-currentPage=\"currentPage\">{{ page }}</ng-template>\n\t\t<ng-template #defaultPages let-page let-pages=\"pages\" let-disabled=\"disabled\">\n\t\t\t@for (pageNumber of pages; track pageNumber) {\n\t\t\t\t<li\n\t\t\t\t\tclass=\"page-item\"\n\t\t\t\t\t[class.active]=\"pageNumber === page\"\n\t\t\t\t\t[class.disabled]=\"isEllipsis(pageNumber) || disabled\"\n\t\t\t\t\t[attr.aria-current]=\"pageNumber === page ? 'page' : null\"\n\t\t\t\t>\n\t\t\t\t\t@if (isEllipsis(pageNumber)) {\n\t\t\t\t\t\t<a class=\"page-link\" tabindex=\"-1\" aria-disabled=\"true\">\n\t\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplEllipsis?.templateRef || ellipsis\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: true, currentPage: page }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\t\thref\n\t\t\t\t\t\t\t(click)=\"selectPage(pageNumber); $event.preventDefault()\"\n\t\t\t\t\t\t\t[attr.tabindex]=\"disabled ? '-1' : null\"\n\t\t\t\t\t\t\t[attr.aria-disabled]=\"disabled ? 'true' : null\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplNumber?.templateRef || defaultNumber\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: disabled, $implicit: pageNumber, currentPage: page }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t}\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ng-template>\n\t\t<ul [class]=\"'pagination' + (size ? ' pagination-' + size : '')\">\n\t\t\t@if (boundaryLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"previousDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"First\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.first-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(1); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"previousDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"previousDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplFirst?.templateRef || first\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: previousDisabled(), currentPage: page }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t\t@if (directionLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"previousDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"Previous\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.previous-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(page - 1); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"previousDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"previousDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplPrevious?.templateRef || previous\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: previousDisabled() }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"tplPages?.templateRef || defaultPages\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: page, pages: pages, disabled: disabled }\"\n\t\t\t/>\n\t\t\t@if (directionLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"nextDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"Next\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.next-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(page + 1); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"nextDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"nextDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplNext?.templateRef || next\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: nextDisabled(), currentPage: page }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t\t@if (boundaryLinks) {\n\t\t\t\t<li class=\"page-item\" [class.disabled]=\"nextDisabled()\">\n\t\t\t\t\t<a\n\t\t\t\t\t\taria-label=\"Last\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.pagination.last-aria\"\n\t\t\t\t\t\tclass=\"page-link\"\n\t\t\t\t\t\thref\n\t\t\t\t\t\t(click)=\"selectPage(pageCount); $event.preventDefault()\"\n\t\t\t\t\t\t[attr.tabindex]=\"nextDisabled() ? '-1' : null\"\n\t\t\t\t\t\t[attr.aria-disabled]=\"nextDisabled() ? 'true' : null\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"tplLast?.templateRef || last\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ disabled: nextDisabled(), currentPage: page }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ul>\n\t`,\n }]\n }], propDecorators: { tplEllipsis: [{\n type: ContentChild,\n args: [NgbPaginationEllipsis, { static: false }]\n }], tplFirst: [{\n type: ContentChild,\n args: [NgbPaginationFirst, { static: false }]\n }], tplLast: [{\n type: ContentChild,\n args: [NgbPaginationLast, { static: false }]\n }], tplNext: [{\n type: ContentChild,\n args: [NgbPaginationNext, { static: false }]\n }], tplNumber: [{\n type: ContentChild,\n args: [NgbPaginationNumber, { static: false }]\n }], tplPrevious: [{\n type: ContentChild,\n args: [NgbPaginationPrevious, { static: false }]\n }], tplPages: [{\n type: ContentChild,\n args: [NgbPaginationPages, { static: false }]\n }], disabled: [{\n type: Input\n }], boundaryLinks: [{\n type: Input\n }], directionLinks: [{\n type: Input\n }], ellipses: [{\n type: Input\n }], rotate: [{\n type: Input\n }], collectionSize: [{\n type: Input,\n args: [{ required: true }]\n }], maxSize: [{\n type: Input\n }], page: [{\n type: Input\n }], pageSize: [{\n type: Input\n }], pageChange: [{\n type: Output\n }], size: [{\n type: Input\n }] } });\n\nconst NGB_PAGINATION_DIRECTIVES = [\n NgbPagination,\n NgbPaginationEllipsis,\n NgbPaginationFirst,\n NgbPaginationLast,\n NgbPaginationNext,\n NgbPaginationNumber,\n NgbPaginationPrevious,\n NgbPaginationPages,\n];\nclass NgbPaginationModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationModule, imports: [NgbPagination,\n NgbPaginationEllipsis,\n NgbPaginationFirst,\n NgbPaginationLast,\n NgbPaginationNext,\n NgbPaginationNumber,\n NgbPaginationPrevious,\n NgbPaginationPages], exports: [NgbPagination,\n NgbPaginationEllipsis,\n NgbPaginationFirst,\n NgbPaginationLast,\n NgbPaginationNext,\n NgbPaginationNumber,\n NgbPaginationPrevious,\n NgbPaginationPages] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPaginationModule, decorators: [{\n type: NgModule,\n args: [{\n imports: NGB_PAGINATION_DIRECTIVES,\n exports: NGB_PAGINATION_DIRECTIVES,\n }]\n }] });\n\nconst ALIASES = {\n hover: ['mouseenter', 'mouseleave'],\n focus: ['focusin', 'focusout'],\n};\nfunction parseTriggers(triggers) {\n const trimmedTriggers = (triggers || '').trim();\n if (trimmedTriggers.length === 0) {\n return [];\n }\n const parsedTriggers = trimmedTriggers\n .split(/\\s+/)\n .map((trigger) => trigger.split(':'))\n .map((triggerPair) => (ALIASES[triggerPair[0]] || triggerPair));\n const manualTriggers = parsedTriggers.filter((triggerPair) => triggerPair.includes('manual'));\n if (manualTriggers.length > 1) {\n throw `Triggers parse error: only one manual trigger is allowed`;\n }\n if (manualTriggers.length === 1 && parsedTriggers.length > 1) {\n throw `Triggers parse error: manual trigger can't be mixed with other triggers`;\n }\n return manualTriggers.length ? [] : parsedTriggers;\n}\nfunction listenToTriggers(element, triggers, isOpenedFn, openFn, closeFn, openDelayMs = 0, closeDelayMs = 0) {\n const parsedTriggers = parseTriggers(triggers);\n if (parsedTriggers.length === 0) {\n return () => { };\n }\n const activeOpenTriggers = new Set();\n const cleanupFns = [];\n let timeout;\n function addEventListener(name, listener) {\n element.addEventListener(name, listener);\n cleanupFns.push(() => element.removeEventListener(name, listener));\n }\n function withDelay(fn, delayMs) {\n clearTimeout(timeout);\n if (delayMs > 0) {\n timeout = setTimeout(fn, delayMs);\n }\n else {\n fn();\n }\n }\n for (const [openTrigger, closeTrigger] of parsedTriggers) {\n if (!closeTrigger) {\n addEventListener(openTrigger, () => isOpenedFn() ? withDelay(closeFn, closeDelayMs) : withDelay(openFn, openDelayMs));\n }\n else {\n addEventListener(openTrigger, () => {\n activeOpenTriggers.add(openTrigger);\n withDelay(() => activeOpenTriggers.size > 0 && openFn(), openDelayMs);\n });\n addEventListener(closeTrigger, () => {\n activeOpenTriggers.delete(openTrigger);\n withDelay(() => activeOpenTriggers.size === 0 && closeFn(), closeDelayMs);\n });\n }\n }\n return () => cleanupFns.forEach((cleanupFn) => cleanupFn());\n}\n\n/**\n * A configuration service for the [`NgbPopover`](#/components/popover/api#NgbPopover) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the popovers used in the application.\n */\nclass NgbPopoverConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.autoClose = true;\n this.placement = 'auto';\n this.popperOptions = (options) => options;\n this.triggers = 'click';\n this.disablePopover = false;\n this.openDelay = 0;\n this.closeDelay = 0;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPopoverConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPopoverConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPopoverConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nlet nextId$1 = 0;\nclass NgbPopoverWindow {\n isTitleTemplate() {\n return this.title instanceof TemplateRef;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPopoverWindow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbPopoverWindow, isStandalone: true, selector: \"ngb-popover-window\", inputs: { animation: \"animation\", title: \"title\", id: \"id\", popoverClass: \"popoverClass\", context: \"context\" }, host: { attributes: { \"role\": \"tooltip\" }, properties: { \"class\": \"\\\"popover\\\" + (popoverClass ? \\\" \\\" + popoverClass : \\\"\\\")\", \"class.fade\": \"animation\", \"id\": \"id\" }, styleAttribute: \"position: absolute;\" }, ngImport: i0, template: `\n\t\t<div class=\"popover-arrow\" data-popper-arrow></div>\n\t\t@if (title) {\n\t\t\t<h3 class=\"popover-header\">\n\t\t\t\t<ng-template #simpleTitle>{{ title }}</ng-template>\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"isTitleTemplate() ? $any(title) : simpleTitle\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"context\"\n\t\t\t\t/>\n\t\t\t</h3>\n\t\t}\n\t\t<div class=\"popover-body\">\n\t\t\t<ng-content />\n\t\t</div>\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPopoverWindow, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-popover-window',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"popover\" + (popoverClass ? \" \" + popoverClass : \"\")',\n '[class.fade]': 'animation',\n role: 'tooltip',\n '[id]': 'id',\n style: 'position: absolute;',\n },\n template: `\n\t\t<div class=\"popover-arrow\" data-popper-arrow></div>\n\t\t@if (title) {\n\t\t\t<h3 class=\"popover-header\">\n\t\t\t\t<ng-template #simpleTitle>{{ title }}</ng-template>\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"isTitleTemplate() ? $any(title) : simpleTitle\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"context\"\n\t\t\t\t/>\n\t\t\t</h3>\n\t\t}\n\t\t<div class=\"popover-body\">\n\t\t\t<ng-content />\n\t\t</div>\n\t`,\n }]\n }], propDecorators: { animation: [{\n type: Input\n }], title: [{\n type: Input\n }], id: [{\n type: Input\n }], popoverClass: [{\n type: Input\n }], context: [{\n type: Input\n }] } });\n/**\n * A lightweight and extensible directive for fancy popover creation.\n */\nclass NgbPopover {\n constructor() {\n this._config = inject(NgbPopoverConfig);\n /**\n * If `true`, popover opening and closing will be animated.\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * Indicates whether the popover should be closed on `Escape` key and inside/outside clicks:\n *\n * * `true` - closes on both outside and inside clicks as well as `Escape` presses\n * * `false` - disables the autoClose feature (NB: triggers still apply)\n * * `\"inside\"` - closes on inside clicks as well as Escape presses\n * * `\"outside\"` - closes on outside clicks (sometimes also achievable through triggers)\n * as well as `Escape` presses\n *\n * @since 3.0.0\n */\n this.autoClose = this._config.autoClose;\n /**\n * The preferred placement of the popover, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"auto\"`.\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the popover.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * Specifies events that should trigger the tooltip.\n *\n * Supports a space separated list of event names.\n * For more details see the [triggers demo](#/components/popover/examples#triggers).\n */\n this.triggers = this._config.triggers;\n /**\n * A selector specifying the element the popover should be appended to.\n *\n * Currently only supports `body`.\n */\n this.container = this._config.container;\n /**\n * If `true`, popover is disabled and won't be displayed.\n *\n * @since 1.1.0\n */\n this.disablePopover = this._config.disablePopover;\n /**\n * An optional class applied to the popover window element.\n *\n * @since 2.2.0\n */\n this.popoverClass = this._config.popoverClass;\n /**\n * The opening delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n *\n * @since 4.1.0\n */\n this.openDelay = this._config.openDelay;\n /**\n * The closing delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n *\n * @since 4.1.0\n */\n this.closeDelay = this._config.closeDelay;\n /**\n * An event emitted when the popover opening animation has finished. Contains no payload.\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the popover closing animation has finished. Contains no payload.\n *\n * At this point popover is not in the DOM anymore.\n */\n this.hidden = new EventEmitter();\n this._nativeElement = inject(ElementRef).nativeElement;\n this._ngZone = inject(NgZone);\n this._document = inject(DOCUMENT);\n this._changeDetector = inject(ChangeDetectorRef);\n this._ngbPopoverWindowId = `ngb-popover-${nextId$1++}`;\n this._popupService = new PopupService(NgbPopoverWindow);\n this._windowRef = null;\n this._positioning = ngbPositioning();\n }\n /**\n * Opens the popover.\n *\n * This is considered to be a \"manual\" triggering.\n * The `context` is an optional value to be injected into the popover template when it is created.\n */\n open(context) {\n if (!this._windowRef && !this._isDisabled()) {\n // this type assertion is safe because otherwise _isDisabled would return true\n const { windowRef, transition$ } = this._popupService.open(this.ngbPopover, context ?? this.popoverContext, this.animation);\n this._windowRef = windowRef;\n this._windowRef.setInput('animation', this.animation);\n this._windowRef.setInput('title', this.popoverTitle);\n this._windowRef.setInput('context', context ?? this.popoverContext);\n this._windowRef.setInput('popoverClass', this.popoverClass);\n this._windowRef.setInput('id', this._ngbPopoverWindowId);\n this._getPositionTargetElement().setAttribute('aria-describedby', this._ngbPopoverWindowId);\n if (this.container === 'body') {\n this._document.body.appendChild(this._windowRef.location.nativeElement);\n }\n // We need to detect changes, because we don't know where .open() might be called from.\n // Ex. opening popover from one of lifecycle hooks that run after the CD\n // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception\n this._windowRef.changeDetectorRef.detectChanges();\n // We need to mark for check, because popover won't work inside the OnPush component.\n // Ex. when we use expression like `{{ popover.isOpen() : 'opened' : 'closed' }}`\n // inside the template of an OnPush component and we change the popover from\n // open -> closed, the expression in question won't be updated unless we explicitly\n // mark the parent component to be checked.\n this._windowRef.changeDetectorRef.markForCheck();\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n this._positioning.createPopper({\n hostElement: this._getPositionTargetElement(),\n targetElement: this._windowRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n baseClass: 'bs-popover',\n updatePopperOptions: (options) => this.popperOptions(addPopperOffset([0, 8])(options)),\n });\n Promise.resolve().then(() => {\n // This update is required for correct arrow placement\n this._positioning.update();\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n });\n });\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [\n this._windowRef.location.nativeElement,\n ]);\n transition$.subscribe(() => this.shown.emit());\n }\n }\n /**\n * Closes the popover.\n *\n * This is considered to be a \"manual\" triggering of the popover.\n */\n close(animation = this.animation) {\n if (this._windowRef) {\n this._getPositionTargetElement().removeAttribute('aria-describedby');\n this._popupService.close(animation).subscribe(() => {\n this._windowRef = null;\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this.hidden.emit();\n this._changeDetector.markForCheck();\n });\n }\n }\n /**\n * Toggles the popover.\n *\n * This is considered to be a \"manual\" triggering of the popover.\n */\n toggle() {\n if (this._windowRef) {\n this.close();\n }\n else {\n this.open();\n }\n }\n /**\n * Returns `true`, if the popover is currently shown.\n */\n isOpen() {\n return this._windowRef != null;\n }\n ngOnInit() {\n this._unregisterListenersFn = listenToTriggers(this._nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay);\n }\n ngOnChanges({ ngbPopover, popoverTitle, disablePopover, popoverClass }) {\n if (popoverClass && this.isOpen()) {\n this._windowRef.setInput('popoverClass', popoverClass.currentValue);\n }\n // close popover if title and content become empty, or disablePopover set to true\n if ((ngbPopover || popoverTitle || disablePopover) && this._isDisabled()) {\n this.close();\n }\n }\n ngOnDestroy() {\n this.close(false);\n // This check is needed as it might happen that ngOnDestroy is called before ngOnInit\n // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199\n this._unregisterListenersFn?.();\n }\n _isDisabled() {\n return this.disablePopover ? true : !this.ngbPopover && !this.popoverTitle;\n }\n _getPositionTargetElement() {\n return ((isString(this.positionTarget) ? this._document.querySelector(this.positionTarget) : this.positionTarget) ||\n this._nativeElement);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPopover, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbPopover, isStandalone: true, selector: \"[ngbPopover]\", inputs: { animation: \"animation\", autoClose: \"autoClose\", ngbPopover: \"ngbPopover\", popoverTitle: \"popoverTitle\", placement: \"placement\", popperOptions: \"popperOptions\", triggers: \"triggers\", positionTarget: \"positionTarget\", container: \"container\", disablePopover: \"disablePopover\", popoverClass: \"popoverClass\", popoverContext: \"popoverContext\", openDelay: \"openDelay\", closeDelay: \"closeDelay\" }, outputs: { shown: \"shown\", hidden: \"hidden\" }, exportAs: [\"ngbPopover\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPopover, decorators: [{\n type: Directive,\n args: [{ selector: '[ngbPopover]', exportAs: 'ngbPopover', standalone: true }]\n }], propDecorators: { animation: [{\n type: Input\n }], autoClose: [{\n type: Input\n }], ngbPopover: [{\n type: Input\n }], popoverTitle: [{\n type: Input\n }], placement: [{\n type: Input\n }], popperOptions: [{\n type: Input\n }], triggers: [{\n type: Input\n }], positionTarget: [{\n type: Input\n }], container: [{\n type: Input\n }], disablePopover: [{\n type: Input\n }], popoverClass: [{\n type: Input\n }], popoverContext: [{\n type: Input\n }], openDelay: [{\n type: Input\n }], closeDelay: [{\n type: Input\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }] } });\n\nclass NgbPopoverModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPopoverModule, imports: [NgbPopover], exports: [NgbPopover] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPopoverModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbPopoverModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [NgbPopover],\n exports: [NgbPopover],\n }]\n }] });\n\n/**\n * A configuration service for the [`NgbProgressbar`](#/components/progressbar/api#NgbProgressbar) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the progress bars used in the application.\n */\nclass NgbProgressbarConfig {\n constructor() {\n this.max = 100;\n this.animated = false;\n this.ariaLabel = 'progress bar';\n this.striped = false;\n this.showValue = false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbProgressbarConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbProgressbarConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbProgressbarConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A directive that provides feedback on the progress of a workflow or an action.\n */\nclass NgbProgressbar {\n /**\n * The maximal value to be displayed in the progress bar.\n *\n * Should be a positive number. Will default to 100 otherwise.\n */\n set max(max) {\n this._max = !isNumber(max) || max <= 0 ? 100 : max;\n }\n get max() {\n return this._max;\n }\n constructor() {\n this._config = inject(NgbProgressbarConfig);\n this.stacked = inject(NgbProgressbarStacked, { optional: true });\n /**\n * If `true`, the stripes on the progress bar are animated.\n *\n * Takes effect only for browsers supporting CSS3 animations, and if `striped` is `true`.\n */\n this.animated = this._config.animated;\n /**\n * The accessible progress bar name.\n *\n * @since 13.1.0\n */\n this.ariaLabel = this._config.ariaLabel;\n /**\n * If `true`, the progress bars will be displayed as striped.\n */\n this.striped = this._config.striped;\n /**\n * If `true`, the current percentage will be shown in the `xx%` format.\n */\n this.showValue = this._config.showValue;\n /**\n * Optional text variant type of the progress bar.\n *\n * Supports types based on Bootstrap background color variants, like:\n * `\"success\"`, `\"info\"`, `\"warning\"`, `\"danger\"`, `\"primary\"`, `\"secondary\"`, `\"dark\"` and so on.\n *\n * @since 5.2.0\n */\n this.textType = this._config.textType;\n /**\n * The type of the progress bar.\n *\n * Supports types based on Bootstrap background color variants, like:\n * `\"success\"`, `\"info\"`, `\"warning\"`, `\"danger\"`, `\"primary\"`, `\"secondary\"`, `\"dark\"` and so on.\n */\n this.type = this._config.type;\n /**\n * The current value for the progress bar.\n *\n * Should be in the `[0, max]` range.\n */\n this.value = 0;\n /**\n * The height of the progress bar.\n *\n * Accepts any valid CSS height values, ex. `\"2rem\"`\n */\n this.height = this._config.height;\n this.max = this._config.max;\n }\n getValue() {\n return getValueInRange(this.value, this.max);\n }\n getPercentValue() {\n return (100 * this.getValue()) / this.max;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbProgressbar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbProgressbar, isStandalone: true, selector: \"ngb-progressbar\", inputs: { max: \"max\", animated: \"animated\", ariaLabel: \"ariaLabel\", striped: \"striped\", showValue: \"showValue\", textType: \"textType\", type: \"type\", value: \"value\", height: \"height\" }, host: { attributes: { \"role\": \"progressbar\", \"aria-valuemin\": \"0\" }, properties: { \"attr.aria-valuenow\": \"getValue()\", \"attr.aria-valuemax\": \"max\", \"attr.aria-label\": \"ariaLabel\", \"style.width.%\": \"stacked ? getPercentValue() : null\", \"style.height\": \"this.height\" }, classAttribute: \"progress\" }, ngImport: i0, template: `\n\t\t<div\n\t\t\tclass=\"progress-bar{{ type ? (textType ? ' bg-' + type : ' text-bg-' + type) : '' }}{{\n\t\t\t\ttextType ? ' text-' + textType : ''\n\t\t\t}}\"\n\t\t\t[class.progress-bar-animated]=\"animated\"\n\t\t\t[class.progress-bar-striped]=\"striped\"\n\t\t\t[style.width.%]=\"!stacked ? getPercentValue() : null\"\n\t\t>\n\t\t\t@if (showValue) {\n\t\t\t\t<span i18n=\"@@ngb.progressbar.value\">{{ getValue() / max | percent }}</span>\n\t\t\t}\n\t\t\t<ng-content />\n\t\t</div>\n\t`, isInline: true, dependencies: [{ kind: \"pipe\", type: PercentPipe, name: \"percent\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbProgressbar, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-progressbar',\n standalone: true,\n imports: [PercentPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'progress',\n role: 'progressbar',\n '[attr.aria-valuenow]': 'getValue()',\n 'aria-valuemin': '0',\n '[attr.aria-valuemax]': 'max',\n '[attr.aria-label]': 'ariaLabel',\n '[style.width.%]': 'stacked ? getPercentValue() : null',\n },\n template: `\n\t\t<div\n\t\t\tclass=\"progress-bar{{ type ? (textType ? ' bg-' + type : ' text-bg-' + type) : '' }}{{\n\t\t\t\ttextType ? ' text-' + textType : ''\n\t\t\t}}\"\n\t\t\t[class.progress-bar-animated]=\"animated\"\n\t\t\t[class.progress-bar-striped]=\"striped\"\n\t\t\t[style.width.%]=\"!stacked ? getPercentValue() : null\"\n\t\t>\n\t\t\t@if (showValue) {\n\t\t\t\t<span i18n=\"@@ngb.progressbar.value\">{{ getValue() / max | percent }}</span>\n\t\t\t}\n\t\t\t<ng-content />\n\t\t</div>\n\t`,\n }]\n }], ctorParameters: () => [], propDecorators: { max: [{\n type: Input\n }], animated: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], striped: [{\n type: Input\n }], showValue: [{\n type: Input\n }], textType: [{\n type: Input\n }], type: [{\n type: Input\n }], value: [{\n type: Input,\n args: [{ required: true }]\n }], height: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['style.height']\n }] } });\n/**\n * A directive that allow to stack progress bars.\n *\n * @since 16.0.0\n */\nclass NgbProgressbarStacked {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbProgressbarStacked, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbProgressbarStacked, isStandalone: true, selector: \"ngb-progressbar-stacked\", host: { classAttribute: \"progress-stacked\" }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbProgressbarStacked, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-progressbar-stacked',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'progress-stacked',\n },\n template: `<ng-content></ng-content>`,\n }]\n }] });\n\nclass NgbProgressbarModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbProgressbarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbProgressbarModule, imports: [NgbProgressbar, NgbProgressbarStacked], exports: [NgbProgressbar, NgbProgressbarStacked] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbProgressbarModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbProgressbarModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [NgbProgressbar, NgbProgressbarStacked],\n exports: [NgbProgressbar, NgbProgressbarStacked],\n }]\n }] });\n\n/**\n * A configuration service for the [`NgbRating`](#/components/rating/api#NgbRating) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the ratings used in the application.\n */\nclass NgbRatingConfig {\n constructor() {\n this.max = 10;\n this.readonly = false;\n this.resettable = false;\n this.tabindex = 0;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbRatingConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbRatingConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbRatingConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A directive that helps visualising and interacting with a star rating bar.\n */\nclass NgbRating {\n constructor() {\n this.contexts = [];\n this._config = inject(NgbRatingConfig);\n this._changeDetectorRef = inject(ChangeDetectorRef);\n /**\n * If `true`, the rating can't be changed or focused.\n */\n this.disabled = false;\n /**\n * The maximal rating that can be given.\n */\n this.max = this._config.max;\n /**\n * If `true`, the rating can't be changed.\n */\n this.readonly = this._config.readonly;\n /**\n * If `true`, the rating can be reset to `0` by mouse clicking currently set rating.\n */\n this.resettable = this._config.resettable;\n /**\n * Allows setting a custom rating tabindex.\n * If the component is disabled, `tabindex` will still be set to `-1`.\n *\n * @since 13.1.0\n */\n this.tabindex = this._config.tabindex;\n /**\n * An event emitted when the user is hovering over a given rating.\n *\n * Event payload equals to the rating being hovered over.\n */\n this.hover = new EventEmitter();\n /**\n * An event emitted when the user stops hovering over a given rating.\n *\n * Event payload equals to the rating of the last item being hovered over.\n */\n this.leave = new EventEmitter();\n /**\n * An event emitted when the rating is changed.\n *\n * Event payload equals to the newly selected rating.\n */\n this.rateChange = new EventEmitter(true);\n this.onChange = (_) => { };\n this.onTouched = () => { };\n }\n /**\n * Allows to provide a function to set a custom aria-valuetext\n *\n * @since 14.1.0\n */\n ariaValueText(current, max) {\n return `${current} out of ${max}`;\n }\n isInteractive() {\n return !this.readonly && !this.disabled;\n }\n enter(value) {\n if (this.isInteractive()) {\n this._updateState(value);\n }\n this.hover.emit(value);\n }\n handleBlur() {\n this.onTouched();\n }\n handleClick(value) {\n if (this.isInteractive()) {\n this.update(this.resettable && this.rate === value ? 0 : value);\n }\n }\n handleKeyDown(event) {\n /* eslint-disable-next-line deprecation/deprecation */\n switch (event.which) {\n case Key.ArrowDown:\n case Key.ArrowLeft:\n this.update(this.rate - 1);\n break;\n case Key.ArrowUp:\n case Key.ArrowRight:\n this.update(this.rate + 1);\n break;\n case Key.Home:\n this.update(0);\n break;\n case Key.End:\n this.update(this.max);\n break;\n default:\n return;\n }\n // note 'return' in default case\n event.preventDefault();\n }\n ngOnChanges(changes) {\n if (changes['rate']) {\n this.update(this.rate);\n }\n if (changes['max']) {\n this._updateMax();\n }\n }\n ngOnInit() {\n this._setupContexts();\n this._updateState(this.rate);\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n reset() {\n this.leave.emit(this.nextRate);\n this._updateState(this.rate);\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n update(value, internalChange = true) {\n const newRate = getValueInRange(value, this.max, 0);\n if (this.isInteractive() && this.rate !== newRate) {\n this.rate = newRate;\n this.rateChange.emit(this.rate);\n }\n if (internalChange) {\n this.onChange(this.rate);\n this.onTouched();\n }\n this._updateState(this.rate);\n }\n writeValue(value) {\n this.update(value, false);\n this._changeDetectorRef.markForCheck();\n }\n _updateState(nextValue) {\n this.nextRate = nextValue;\n this.contexts.forEach((context, index) => (context.fill = Math.round(getValueInRange(nextValue - index, 1, 0) * 100)));\n }\n _updateMax() {\n if (this.max > 0) {\n this._setupContexts();\n this.update(this.rate);\n }\n }\n _setupContexts() {\n this.contexts = Array.from({ length: this.max }, (v, k) => ({ fill: 0, index: k }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbRating, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbRating, isStandalone: true, selector: \"ngb-rating\", inputs: { disabled: \"disabled\", max: \"max\", rate: \"rate\", readonly: \"readonly\", resettable: \"resettable\", starTemplate: \"starTemplate\", tabindex: \"tabindex\", ariaValueText: \"ariaValueText\" }, outputs: { hover: \"hover\", leave: \"leave\", rateChange: \"rateChange\" }, host: { attributes: { \"role\": \"slider\", \"aria-valuemin\": \"0\" }, listeners: { \"blur\": \"handleBlur()\", \"keydown\": \"handleKeyDown($event)\", \"mouseleave\": \"reset()\" }, properties: { \"tabindex\": \"disabled ? -1 : tabindex\", \"attr.aria-valuemax\": \"max\", \"attr.aria-valuenow\": \"nextRate\", \"attr.aria-valuetext\": \"ariaValueText(nextRate, max)\", \"attr.aria-readonly\": \"readonly && !disabled ? true : null\", \"attr.aria-disabled\": \"disabled ? true : null\" }, classAttribute: \"d-inline-flex\" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbRating), multi: true }], queries: [{ propertyName: \"starTemplateFromContent\", first: true, predicate: TemplateRef, descendants: true }], usesOnChanges: true, ngImport: i0, template: `\n\t\t<ng-template #t let-fill=\"fill\">{{ fill === 100 ? '★' : '☆' }}</ng-template>\n\t\t@for (_ of contexts; track _; let index = $index) {\n\t\t\t<span class=\"visually-hidden\">({{ index < nextRate ? '*' : ' ' }})</span>\n\t\t\t<span\n\t\t\t\t(mouseenter)=\"enter(index + 1)\"\n\t\t\t\t(click)=\"handleClick(index + 1)\"\n\t\t\t\t[style.cursor]=\"isInteractive() ? 'pointer' : 'default'\"\n\t\t\t>\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"starTemplate || starTemplateFromContent || t\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"contexts[index]\"\n\t\t\t\t/>\n\t\t\t</span>\n\t\t}\n\t`, isInline: true, dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbRating, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-rating',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'd-inline-flex',\n '[tabindex]': 'disabled ? -1 : tabindex',\n role: 'slider',\n 'aria-valuemin': '0',\n '[attr.aria-valuemax]': 'max',\n '[attr.aria-valuenow]': 'nextRate',\n '[attr.aria-valuetext]': 'ariaValueText(nextRate, max)',\n '[attr.aria-readonly]': 'readonly && !disabled ? true : null',\n '[attr.aria-disabled]': 'disabled ? true : null',\n '(blur)': 'handleBlur()',\n '(keydown)': 'handleKeyDown($event)',\n '(mouseleave)': 'reset()',\n },\n template: `\n\t\t<ng-template #t let-fill=\"fill\">{{ fill === 100 ? '★' : '☆' }}</ng-template>\n\t\t@for (_ of contexts; track _; let index = $index) {\n\t\t\t<span class=\"visually-hidden\">({{ index < nextRate ? '*' : ' ' }})</span>\n\t\t\t<span\n\t\t\t\t(mouseenter)=\"enter(index + 1)\"\n\t\t\t\t(click)=\"handleClick(index + 1)\"\n\t\t\t\t[style.cursor]=\"isInteractive() ? 'pointer' : 'default'\"\n\t\t\t>\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"starTemplate || starTemplateFromContent || t\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"contexts[index]\"\n\t\t\t\t/>\n\t\t\t</span>\n\t\t}\n\t`,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbRating), multi: true }],\n }]\n }], propDecorators: { disabled: [{\n type: Input\n }], max: [{\n type: Input\n }], rate: [{\n type: Input\n }], readonly: [{\n type: Input\n }], resettable: [{\n type: Input\n }], starTemplate: [{\n type: Input\n }], starTemplateFromContent: [{\n type: ContentChild,\n args: [TemplateRef, { static: false }]\n }], tabindex: [{\n type: Input\n }], ariaValueText: [{\n type: Input\n }], hover: [{\n type: Output\n }], leave: [{\n type: Output\n }], rateChange: [{\n type: Output\n }] } });\n\nclass NgbRatingModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbRatingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbRatingModule, imports: [NgbRating], exports: [NgbRating] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbRatingModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbRatingModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [NgbRating],\n exports: [NgbRating],\n }]\n }] });\n\nfunction toFragmentElement(container, id) {\n if (!container || id == null) {\n return null;\n }\n return isString(id) ? container.querySelector(`#${CSS.escape(id)}`) : id;\n}\nfunction getOrderedFragments(container, fragments) {\n const selector = [...fragments].map(({ id }) => `#${CSS.escape(id)}`).join(',');\n return Array.from(container.querySelectorAll(selector));\n}\nconst defaultProcessChanges = (state, changeActive, ctx) => {\n const { rootElement, fragments, scrollSpy, options, entries } = state;\n const orderedFragments = getOrderedFragments(rootElement, fragments);\n if (!ctx.initialized) {\n ctx.initialized = true;\n ctx.gapFragment = null;\n ctx.visibleFragments = new Set();\n // special case when one of the fragments was pre-selected\n const preSelectedFragment = toFragmentElement(rootElement, options?.initialFragment);\n if (preSelectedFragment) {\n scrollSpy.scrollTo(preSelectedFragment);\n return;\n }\n }\n for (const entry of entries) {\n const { isIntersecting, target: fragment } = entry;\n // 1. an entry became visible\n if (isIntersecting) {\n // if we were in-between two elements, we have to clear it up\n if (ctx.gapFragment) {\n ctx.visibleFragments.delete(ctx.gapFragment);\n ctx.gapFragment = null;\n }\n ctx.visibleFragments.add(fragment);\n }\n // 2. an entry became invisible\n else {\n ctx.visibleFragments.delete(fragment);\n // nothing is visible anymore, but something just was actually\n if (ctx.visibleFragments.size === 0 && scrollSpy.active !== '') {\n // 2.1 scrolling down - keeping the same element\n if (entry.boundingClientRect.top < entry.rootBounds.top) {\n ctx.gapFragment = fragment;\n ctx.visibleFragments.add(ctx.gapFragment);\n }\n // 2.2 scrolling up - getting the previous element\n else {\n // scrolling up and no more fragments above\n if (fragment === orderedFragments[0]) {\n ctx.gapFragment = null;\n ctx.visibleFragments.clear();\n changeActive('');\n return;\n }\n // getting previous fragment\n else {\n const fragmentIndex = orderedFragments.indexOf(fragment);\n ctx.gapFragment = orderedFragments[fragmentIndex - 1] || null;\n if (ctx.gapFragment) {\n ctx.visibleFragments.add(ctx.gapFragment);\n }\n }\n }\n }\n }\n }\n // getting the first visible element in the DOM order of the fragments\n for (const fragment of orderedFragments) {\n if (ctx.visibleFragments.has(fragment)) {\n changeActive(fragment.id);\n break;\n }\n }\n};\n\n/**\n * A configuration service for the [`NgbScrollSpyService`](#/components/scrollspy/api#NgbScrollSpyService).\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all scrollspies used in the application.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyConfig {\n constructor() {\n this.scrollBehavior = 'smooth';\n this.processChanges = defaultProcessChanges;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nconst MATCH_THRESHOLD = 3;\n/**\n * A scrollspy service that allows tracking of elements scrolling in and out of view.\n *\n * It can be instantiated manually, or automatically by the `ngbScrollSpy` directive.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyService {\n constructor() {\n this._observer = null;\n this._containerElement = null;\n this._fragments = new Set();\n this._preRegisteredFragments = new Set();\n this._active$ = new Subject();\n this._distinctActive$ = this._active$.pipe(distinctUntilChanged());\n this._active = '';\n this._config = inject(NgbScrollSpyConfig);\n this._document = inject(DOCUMENT);\n this._platformId = inject(PLATFORM_ID);\n this._scrollBehavior = this._config.scrollBehavior;\n this._diChangeDetectorRef = inject(ChangeDetectorRef, { optional: true });\n this._changeDetectorRef = this._diChangeDetectorRef;\n this._zone = inject(NgZone);\n this._distinctActive$.pipe(takeUntilDestroyed()).subscribe((active) => {\n this._active = active;\n this._changeDetectorRef?.markForCheck();\n });\n }\n /**\n * Getter for the currently active fragment id. Returns empty string if none.\n */\n get active() {\n return this._active;\n }\n /**\n * An observable emitting the currently active fragment. Emits empty string if none.\n */\n get active$() {\n return this._distinctActive$;\n }\n /**\n * Starts the scrollspy service and observes specified fragments.\n *\n * You can specify a list of options to pass, like the root element, initial fragment, scroll behavior, etc.\n * See the [`NgbScrollSpyOptions`](#/components/scrollspy/api#NgbScrollSpyOptions) interface for more details.\n */\n start(options) {\n if (isPlatformBrowser(this._platformId)) {\n this._cleanup();\n const { root, rootMargin, scrollBehavior, threshold, fragments, changeDetectorRef, processChanges } = {\n ...options,\n };\n this._containerElement = root ?? this._document.documentElement;\n this._changeDetectorRef = changeDetectorRef ?? this._diChangeDetectorRef;\n this._scrollBehavior = scrollBehavior ?? this._config.scrollBehavior;\n const processChangesFn = processChanges ?? this._config.processChanges;\n const context = {};\n this._observer = new IntersectionObserver((entries) => processChangesFn({\n entries,\n rootElement: this._containerElement,\n fragments: this._fragments,\n scrollSpy: this,\n options: { ...options },\n }, (active) => this._active$.next(active), context), {\n root: root ?? this._document,\n ...(rootMargin && { rootMargin }),\n ...(threshold && { threshold }),\n });\n // merging fragments added before starting and the ones passed as options\n for (const element of [...this._preRegisteredFragments, ...(fragments ?? [])]) {\n this.observe(element);\n }\n this._preRegisteredFragments.clear();\n }\n }\n /**\n * Stops the service and unobserves all fragments.\n */\n stop() {\n this._cleanup();\n this._active$.next('');\n }\n /**\n * Scrolls to a fragment, it must be known to the service and contained in the root element.\n * An id or an element reference can be passed.\n *\n * [`NgbScrollToOptions`](#/components/scrollspy/api#NgbScrollToOptions) can be passed.\n */\n scrollTo(fragment, options) {\n const { behavior } = { behavior: this._scrollBehavior, ...options };\n if (this._containerElement) {\n const fragmentElement = toFragmentElement(this._containerElement, fragment);\n if (fragmentElement) {\n const heightPx = fragmentElement.offsetTop - this._containerElement.offsetTop;\n this._containerElement.scrollTo({ top: heightPx, behavior });\n let lastOffset = this._containerElement.scrollTop;\n let matchCounter = 0;\n // we should update the active section only after scrolling is finished\n // and there is no clean way to do it at the moment\n const containerElement = this._containerElement;\n this._zone.runOutsideAngular(() => {\n const updateActiveWhenScrollingIsFinished = () => {\n const sameOffsetAsLastTime = lastOffset === containerElement.scrollTop;\n if (sameOffsetAsLastTime) {\n matchCounter++;\n }\n else {\n matchCounter = 0;\n }\n if (!sameOffsetAsLastTime || (sameOffsetAsLastTime && matchCounter < MATCH_THRESHOLD)) {\n lastOffset = containerElement.scrollTop;\n requestAnimationFrame(updateActiveWhenScrollingIsFinished);\n }\n else {\n this._zone.run(() => this._active$.next(fragmentElement.id));\n }\n };\n requestAnimationFrame(updateActiveWhenScrollingIsFinished);\n });\n }\n }\n }\n /**\n * Adds a fragment to observe. It must be contained in the root element.\n * An id or an element reference can be passed.\n */\n observe(fragment) {\n if (!this._observer) {\n this._preRegisteredFragments.add(fragment);\n return;\n }\n const fragmentElement = toFragmentElement(this._containerElement, fragment);\n if (fragmentElement && !this._fragments.has(fragmentElement)) {\n this._fragments.add(fragmentElement);\n this._observer.observe(fragmentElement);\n }\n }\n /**\n * Unobserves a fragment.\n * An id or an element reference can be passed.\n */\n unobserve(fragment) {\n if (!this._observer) {\n this._preRegisteredFragments.delete(fragment);\n return;\n }\n const fragmentElement = toFragmentElement(this._containerElement, fragment);\n if (fragmentElement) {\n this._fragments.delete(fragmentElement);\n // we're removing and re-adding all current fragments to recompute active one\n this._observer.disconnect();\n for (const fragment of this._fragments) {\n this._observer.observe(fragment);\n }\n }\n }\n ngOnDestroy() {\n this._cleanup();\n }\n _cleanup() {\n this._fragments.clear();\n this._observer?.disconnect();\n this._changeDetectorRef = this._diChangeDetectorRef;\n this._scrollBehavior = this._config.scrollBehavior;\n this._observer = null;\n this._containerElement = null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n\n/**\n * A helper directive to that links menu items and fragments together.\n *\n * It will automatically add the `.active` class to the menu item when the associated fragment becomes active.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyItem {\n constructor() {\n this._changeDetector = inject(ChangeDetectorRef);\n this._scrollSpyMenu = inject(NgbScrollSpyMenu, { optional: true });\n this._scrollSpyAPI = this._scrollSpyMenu ?? inject(NgbScrollSpyService);\n this._destroyRef = inject(DestroyRef);\n this._isActive = false;\n }\n /**\n * References the scroll spy directive, the id of the associated fragment and the parent menu item.\n *\n * Can be used like:\n * - `ngbScrollSpyItem=\"fragmentId\"`\n * - `[ngbScrollSpyItem]=\"scrollSpy\" fragment=\"fragmentId\"\n * - `[ngbScrollSpyItem]=\"[scrollSpy, 'fragmentId']\"` parent=\"parentId\"`\n * - `[ngbScrollSpyItem]=\"[scrollSpy, 'fragmentId', 'parentId']\"`\n *\n * As well as together with `[fragment]` and `[parent]` inputs.\n */\n set data(data) {\n if (Array.isArray(data)) {\n this._scrollSpyAPI = data[0];\n this.fragment = data[1];\n this.parent ??= data[2];\n }\n else if (data instanceof NgbScrollSpy) {\n this._scrollSpyAPI = data;\n }\n else if (isString(data)) {\n this.fragment = data;\n }\n }\n ngOnInit() {\n // if it is not a part of a bigger menu, it should handle activation itself\n if (!this._scrollSpyMenu) {\n this._scrollSpyAPI.active$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((active) => {\n if (active === this.fragment) {\n this._activate();\n }\n else {\n this._deactivate();\n }\n this._changeDetector.markForCheck();\n });\n }\n }\n /**\n * @internal\n */\n _activate() {\n this._isActive = true;\n if (this._scrollSpyMenu) {\n this._scrollSpyMenu.getItem(this.parent ?? '')?._activate();\n }\n }\n /**\n * @internal\n */\n _deactivate() {\n this._isActive = false;\n if (this._scrollSpyMenu) {\n this._scrollSpyMenu.getItem(this.parent ?? '')?._deactivate();\n }\n }\n /**\n * Returns `true`, if the associated fragment is active.\n */\n isActive() {\n return this._isActive;\n }\n /**\n * Scrolls to the associated fragment.\n */\n scrollTo(options) {\n this._scrollSpyAPI.scrollTo(this.fragment, options);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbScrollSpyItem, isStandalone: true, selector: \"[ngbScrollSpyItem]\", inputs: { data: [\"ngbScrollSpyItem\", \"data\"], fragment: \"fragment\", parent: \"parent\" }, host: { listeners: { \"click\": \"scrollTo();\" }, properties: { \"class.active\": \"isActive()\" } }, exportAs: [\"ngbScrollSpyItem\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyItem, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbScrollSpyItem]',\n standalone: true,\n exportAs: 'ngbScrollSpyItem',\n host: {\n '[class.active]': 'isActive()',\n '(click)': 'scrollTo();',\n },\n }]\n }], propDecorators: { data: [{\n type: Input,\n args: ['ngbScrollSpyItem']\n }], fragment: [{\n type: Input\n }], parent: [{\n type: Input\n }] } });\n/**\n * An optional scroll spy menu directive to build hierarchical menus\n * and simplify the [`NgbScrollSpyItem`](#/components/scrollspy/api#NgbScrollSpyItem) configuration.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyMenu {\n constructor() {\n this._scrollSpyRef = inject(NgbScrollSpyService);\n this._destroyRef = inject(DestroyRef);\n this._map = new Map();\n this._lastActiveItem = null;\n }\n set scrollSpy(scrollSpy) {\n this._scrollSpyRef = scrollSpy;\n }\n get active() {\n return this._scrollSpyRef.active;\n }\n get active$() {\n return this._scrollSpyRef.active$;\n }\n scrollTo(fragment, options) {\n this._scrollSpyRef.scrollTo(fragment, options);\n }\n getItem(id) {\n return this._map.get(id);\n }\n ngAfterViewInit() {\n this._items.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this._rebuildMap());\n this._rebuildMap();\n this._scrollSpyRef.active$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((activeId) => {\n this._lastActiveItem?._deactivate();\n const item = this._map.get(activeId);\n if (item) {\n item._activate();\n this._lastActiveItem = item;\n }\n });\n }\n _rebuildMap() {\n this._map.clear();\n for (let item of this._items) {\n this._map.set(item.fragment, item);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyMenu, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbScrollSpyMenu, isStandalone: true, selector: \"[ngbScrollSpyMenu]\", inputs: { scrollSpy: [\"ngbScrollSpyMenu\", \"scrollSpy\"] }, queries: [{ propertyName: \"_items\", predicate: NgbScrollSpyItem, descendants: true }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyMenu, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbScrollSpyMenu]',\n standalone: true,\n }]\n }], propDecorators: { _items: [{\n type: ContentChildren,\n args: [NgbScrollSpyItem, { descendants: true }]\n }], scrollSpy: [{\n type: Input,\n args: ['ngbScrollSpyMenu']\n }] } });\n/**\n * A directive to put on a scrollable container.\n *\n * It will instantiate a [`NgbScrollSpyService`](#/components/scrollspy/api#NgbScrollSpyService).\n *\n * @since 15.1.0\n */\nclass NgbScrollSpy {\n constructor() {\n this._initialFragment = null;\n this._service = inject(NgbScrollSpyService);\n this._nativeElement = inject(ElementRef).nativeElement;\n /**\n * An event raised when the active section changes.\n *\n * Payload is the id of the new active section, empty string if none.\n */\n this.activeChange = this._service.active$;\n }\n set active(fragment) {\n this._initialFragment = fragment;\n this.scrollTo(fragment);\n }\n /**\n * Getter/setter for the currently active fragment id.\n */\n get active() {\n return this._service.active;\n }\n /**\n * Returns an observable that emits currently active section id.\n */\n get active$() {\n return this._service.active$;\n }\n ngAfterViewInit() {\n this._service.start({\n processChanges: this.processChanges,\n root: this._nativeElement,\n rootMargin: this.rootMargin,\n threshold: this.threshold,\n ...(this._initialFragment && { initialFragment: this._initialFragment }),\n });\n }\n /**\n * @internal\n */\n _registerFragment(fragment) {\n this._service.observe(fragment.id);\n }\n /**\n * @internal\n */\n _unregisterFragment(fragment) {\n this._service.unobserve(fragment.id);\n }\n /**\n * Scrolls to a fragment that is identified by the `ngbScrollSpyFragment` directive.\n * An id or an element reference can be passed.\n */\n scrollTo(fragment, options) {\n this._service.scrollTo(fragment, {\n ...(this.scrollBehavior && { behavior: this.scrollBehavior }),\n ...options,\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpy, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbScrollSpy, isStandalone: true, selector: \"[ngbScrollSpy]\", inputs: { processChanges: \"processChanges\", rootMargin: \"rootMargin\", scrollBehavior: \"scrollBehavior\", threshold: \"threshold\", active: \"active\" }, outputs: { activeChange: \"activeChange\" }, host: { attributes: { \"tabindex\": \"0\" }, styleAttribute: \"overflow-y: auto\" }, providers: [NgbScrollSpyService], exportAs: [\"ngbScrollSpy\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpy, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbScrollSpy]',\n standalone: true,\n exportAs: 'ngbScrollSpy',\n host: {\n tabindex: '0',\n style: 'overflow-y: auto',\n },\n providers: [NgbScrollSpyService],\n }]\n }], propDecorators: { processChanges: [{\n type: Input\n }], rootMargin: [{\n type: Input\n }], scrollBehavior: [{\n type: Input\n }], threshold: [{\n type: Input\n }], active: [{\n type: Input\n }], activeChange: [{\n type: Output\n }] } });\n/**\n * A directive to put on a fragment observed inside a scrollspy container.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyFragment {\n constructor() {\n this._destroyRef = inject(DestroyRef);\n this._scrollSpy = inject(NgbScrollSpy);\n }\n ngAfterViewInit() {\n this._scrollSpy._registerFragment(this);\n this._destroyRef.onDestroy(() => this._scrollSpy._unregisterFragment(this));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyFragment, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbScrollSpyFragment, isStandalone: true, selector: \"[ngbScrollSpyFragment]\", inputs: { id: [\"ngbScrollSpyFragment\", \"id\"] }, host: { properties: { \"id\": \"id\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyFragment, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngbScrollSpyFragment]',\n standalone: true,\n host: {\n '[id]': 'id',\n },\n }]\n }], propDecorators: { id: [{\n type: Input,\n args: ['ngbScrollSpyFragment']\n }] } });\n\nclass NgbScrollSpyModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyModule, imports: [NgbScrollSpy, NgbScrollSpyItem, NgbScrollSpyFragment, NgbScrollSpyMenu], exports: [NgbScrollSpy, NgbScrollSpyItem, NgbScrollSpyFragment, NgbScrollSpyMenu] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbScrollSpyModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [NgbScrollSpy, NgbScrollSpyItem, NgbScrollSpyFragment, NgbScrollSpyMenu],\n exports: [NgbScrollSpy, NgbScrollSpyItem, NgbScrollSpyFragment, NgbScrollSpyMenu],\n }]\n }] });\n\nclass NgbTime {\n constructor(hour, minute, second) {\n this.hour = toInteger(hour);\n this.minute = toInteger(minute);\n this.second = toInteger(second);\n }\n changeHour(step = 1) {\n this.updateHour((isNaN(this.hour) ? 0 : this.hour) + step);\n }\n updateHour(hour) {\n if (isNumber(hour)) {\n this.hour = (hour < 0 ? 24 + hour : hour) % 24;\n }\n else {\n this.hour = NaN;\n }\n }\n changeMinute(step = 1) {\n this.updateMinute((isNaN(this.minute) ? 0 : this.minute) + step);\n }\n updateMinute(minute) {\n if (isNumber(minute)) {\n this.minute = minute % 60 < 0 ? 60 + (minute % 60) : minute % 60;\n this.changeHour(Math.floor(minute / 60));\n }\n else {\n this.minute = NaN;\n }\n }\n changeSecond(step = 1) {\n this.updateSecond((isNaN(this.second) ? 0 : this.second) + step);\n }\n updateSecond(second) {\n if (isNumber(second)) {\n this.second = second < 0 ? 60 + (second % 60) : second % 60;\n this.changeMinute(Math.floor(second / 60));\n }\n else {\n this.second = NaN;\n }\n }\n isValid(checkSecs = true) {\n return isNumber(this.hour) && isNumber(this.minute) && (checkSecs ? isNumber(this.second) : true);\n }\n toString() {\n return `${this.hour || 0}:${this.minute || 0}:${this.second || 0}`;\n }\n}\n\n/**\n * A configuration service for the [`NgbTimepicker`](#/components/timepicker/api#NgbTimepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the timepickers used in the application.\n */\nclass NgbTimepickerConfig {\n constructor() {\n this.meridian = false;\n this.spinners = true;\n this.seconds = false;\n this.hourStep = 1;\n this.minuteStep = 1;\n this.secondStep = 1;\n this.disabled = false;\n this.readonlyInputs = false;\n this.size = 'medium';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepickerConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepickerConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepickerConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nfunction NGB_DATEPICKER_TIME_ADAPTER_FACTORY() {\n return new NgbTimeStructAdapter();\n}\n/**\n * An abstract service that does the conversion between the internal timepicker `NgbTimeStruct` model and\n * any provided user time model `T`, ex. a string, a native date, etc.\n *\n * The adapter is used **only** for conversion when binding timepicker to a form control,\n * ex. `[(ngModel)]=\"userTimeModel\"`. Here `userTimeModel` can be of any type.\n *\n * The default timepicker implementation assumes we use `NgbTimeStruct` as a user model.\n *\n * See the [custom time adapter demo](#/components/timepicker/examples#adapter) for an example.\n *\n * @since 2.2.0\n */\nclass NgbTimeAdapter {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimeAdapter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimeAdapter, providedIn: 'root', useFactory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimeAdapter, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY }]\n }] });\nclass NgbTimeStructAdapter extends NgbTimeAdapter {\n /**\n * Converts a NgbTimeStruct value into NgbTimeStruct value\n */\n fromModel(time) {\n return time && isInteger(time.hour) && isInteger(time.minute)\n ? { hour: time.hour, minute: time.minute, second: isInteger(time.second) ? time.second : null }\n : null;\n }\n /**\n * Converts a NgbTimeStruct value into NgbTimeStruct value\n */\n toModel(time) {\n return time && isInteger(time.hour) && isInteger(time.minute)\n ? { hour: time.hour, minute: time.minute, second: isInteger(time.second) ? time.second : null }\n : null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimeStructAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimeStructAdapter }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimeStructAdapter, decorators: [{\n type: Injectable\n }] });\n\n/**\n * Type of the service supplying day periods (for example, 'AM' and 'PM') to NgbTimepicker component.\n * The default implementation of this service honors the Angular locale, and uses the registered locale data,\n * as explained in the Angular i18n guide.\n */\nclass NgbTimepickerI18n {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepickerI18n, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepickerI18n, providedIn: 'root', useFactory: () => new NgbTimepickerI18nDefault() }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepickerI18n, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: () => new NgbTimepickerI18nDefault(),\n }]\n }] });\nclass NgbTimepickerI18nDefault extends NgbTimepickerI18n {\n constructor() {\n super(...arguments);\n this._periods = getLocaleDayPeriods(inject(LOCALE_ID), FormStyle.Standalone, TranslationWidth.Narrow);\n }\n getMorningPeriod() {\n return this._periods[0];\n }\n getAfternoonPeriod() {\n return this._periods[1];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepickerI18nDefault, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepickerI18nDefault }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepickerI18nDefault, decorators: [{\n type: Injectable\n }] });\n\nconst FILTER_REGEX = /[^0-9]/g;\n/**\n * A directive that helps with wth picking hours, minutes and seconds.\n */\nclass NgbTimepicker {\n /**\n * The number of hours to add/subtract when clicking hour spinners.\n */\n set hourStep(step) {\n this._hourStep = isInteger(step) ? step : this._config.hourStep;\n }\n get hourStep() {\n return this._hourStep;\n }\n /**\n * The number of minutes to add/subtract when clicking minute spinners.\n */\n set minuteStep(step) {\n this._minuteStep = isInteger(step) ? step : this._config.minuteStep;\n }\n get minuteStep() {\n return this._minuteStep;\n }\n /**\n * The number of seconds to add/subtract when clicking second spinners.\n */\n set secondStep(step) {\n this._secondStep = isInteger(step) ? step : this._config.secondStep;\n }\n get secondStep() {\n return this._secondStep;\n }\n constructor(_config, _ngbTimeAdapter, _cd, i18n) {\n this._config = _config;\n this._ngbTimeAdapter = _ngbTimeAdapter;\n this._cd = _cd;\n this.i18n = i18n;\n this.onChange = (_) => { };\n this.onTouched = () => { };\n this.meridian = _config.meridian;\n this.spinners = _config.spinners;\n this.seconds = _config.seconds;\n this.hourStep = _config.hourStep;\n this.minuteStep = _config.minuteStep;\n this.secondStep = _config.secondStep;\n this.disabled = _config.disabled;\n this.readonlyInputs = _config.readonlyInputs;\n this.size = _config.size;\n }\n writeValue(value) {\n const structValue = this._ngbTimeAdapter.fromModel(value);\n this.model = structValue ? new NgbTime(structValue.hour, structValue.minute, structValue.second) : new NgbTime();\n if (!this.seconds && (!structValue || !isNumber(structValue.second))) {\n this.model.second = 0;\n }\n this._cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * Increments the hours by the given step.\n */\n changeHour(step) {\n this.model?.changeHour(step);\n this.propagateModelChange();\n }\n /**\n * Increments the minutes by the given step.\n */\n changeMinute(step) {\n this.model?.changeMinute(step);\n this.propagateModelChange();\n }\n /**\n * Increments the seconds by the given step.\n */\n changeSecond(step) {\n this.model?.changeSecond(step);\n this.propagateModelChange();\n }\n /**\n * Update hours with the new value.\n */\n updateHour(newVal) {\n const isPM = this.model ? this.model.hour >= 12 : false;\n const enteredHour = toInteger(newVal);\n if (this.meridian && ((isPM && enteredHour < 12) || (!isPM && enteredHour === 12))) {\n this.model?.updateHour(enteredHour + 12);\n }\n else {\n this.model?.updateHour(enteredHour);\n }\n this.propagateModelChange();\n }\n /**\n * Update minutes with the new value.\n */\n updateMinute(newVal) {\n this.model?.updateMinute(toInteger(newVal));\n this.propagateModelChange();\n }\n /**\n * Update seconds with the new value.\n */\n updateSecond(newVal) {\n this.model?.updateSecond(toInteger(newVal));\n this.propagateModelChange();\n }\n toggleMeridian() {\n if (this.meridian) {\n this.changeHour(12);\n }\n }\n formatInput(input) {\n input.value = input.value.replace(FILTER_REGEX, '');\n }\n formatHour(value) {\n if (isNumber(value)) {\n if (this.meridian) {\n return padNumber(value % 12 === 0 ? 12 : value % 12);\n }\n else {\n return padNumber(value % 24);\n }\n }\n else {\n return padNumber(NaN);\n }\n }\n formatMinSec(value) {\n return padNumber(isNumber(value) ? value : NaN);\n }\n handleBlur() {\n this.onTouched();\n }\n get isSmallSize() {\n return this.size === 'small';\n }\n get isLargeSize() {\n return this.size === 'large';\n }\n ngOnChanges(changes) {\n if (changes['seconds'] && !this.seconds && this.model && !isNumber(this.model.second)) {\n this.model.second = 0;\n this.propagateModelChange(false);\n }\n }\n propagateModelChange(touched = true) {\n if (touched) {\n this.onTouched();\n }\n if (this.model?.isValid(this.seconds)) {\n this.onChange(this._ngbTimeAdapter.toModel({ hour: this.model.hour, minute: this.model.minute, second: this.model.second }));\n }\n else {\n this.onChange(this._ngbTimeAdapter.toModel(null));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepicker, deps: [{ token: NgbTimepickerConfig }, { token: NgbTimeAdapter }, { token: i0.ChangeDetectorRef }, { token: NgbTimepickerI18n }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbTimepicker, isStandalone: true, selector: \"ngb-timepicker\", inputs: { meridian: \"meridian\", spinners: \"spinners\", seconds: \"seconds\", hourStep: \"hourStep\", minuteStep: \"minuteStep\", secondStep: \"secondStep\", readonlyInputs: \"readonlyInputs\", size: \"size\" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbTimepicker), multi: true }], exportAs: [\"ngbTimepicker\"], usesOnChanges: true, ngImport: i0, template: `\n\t\t<fieldset [disabled]=\"disabled\" [class.disabled]=\"disabled\">\n\t\t\t<div class=\"ngb-tp\">\n\t\t\t\t<div class=\"ngb-tp-input-container ngb-tp-hour\">\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeHour(hourStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.increment-hours\">Increment hours</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tclass=\"ngb-tp-input form-control\"\n\t\t\t\t\t\t[class.form-control-sm]=\"isSmallSize\"\n\t\t\t\t\t\t[class.form-control-lg]=\"isLargeSize\"\n\t\t\t\t\t\tmaxlength=\"2\"\n\t\t\t\t\t\tinputmode=\"numeric\"\n\t\t\t\t\t\tplaceholder=\"HH\"\n\t\t\t\t\t\ti18n-placeholder=\"@@ngb.timepicker.HH\"\n\t\t\t\t\t\t[value]=\"formatHour(model?.hour)\"\n\t\t\t\t\t\t(change)=\"updateHour($any($event).target.value)\"\n\t\t\t\t\t\t[readOnly]=\"readonlyInputs\"\n\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\taria-label=\"Hours\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.timepicker.hours\"\n\t\t\t\t\t\t(blur)=\"handleBlur()\"\n\t\t\t\t\t\t(input)=\"formatInput($any($event).target)\"\n\t\t\t\t\t\t(keydown.ArrowUp)=\"changeHour(hourStep); $event.preventDefault()\"\n\t\t\t\t\t\t(keydown.ArrowDown)=\"changeHour(-hourStep); $event.preventDefault()\"\n\t\t\t\t\t/>\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeHour(-hourStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron bottom\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.decrement-hours\">Decrement hours</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ngb-tp-spacer\">:</div>\n\t\t\t\t<div class=\"ngb-tp-input-container ngb-tp-minute\">\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeMinute(minuteStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.increment-minutes\">Increment minutes</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tclass=\"ngb-tp-input form-control\"\n\t\t\t\t\t\t[class.form-control-sm]=\"isSmallSize\"\n\t\t\t\t\t\t[class.form-control-lg]=\"isLargeSize\"\n\t\t\t\t\t\tmaxlength=\"2\"\n\t\t\t\t\t\tinputmode=\"numeric\"\n\t\t\t\t\t\tplaceholder=\"MM\"\n\t\t\t\t\t\ti18n-placeholder=\"@@ngb.timepicker.MM\"\n\t\t\t\t\t\t[value]=\"formatMinSec(model?.minute)\"\n\t\t\t\t\t\t(change)=\"updateMinute($any($event).target.value)\"\n\t\t\t\t\t\t[readOnly]=\"readonlyInputs\"\n\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\taria-label=\"Minutes\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.timepicker.minutes\"\n\t\t\t\t\t\t(blur)=\"handleBlur()\"\n\t\t\t\t\t\t(input)=\"formatInput($any($event).target)\"\n\t\t\t\t\t\t(keydown.ArrowUp)=\"changeMinute(minuteStep); $event.preventDefault()\"\n\t\t\t\t\t\t(keydown.ArrowDown)=\"changeMinute(-minuteStep); $event.preventDefault()\"\n\t\t\t\t\t/>\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeMinute(-minuteStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron bottom\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.decrement-minutes\">Decrement minutes</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t\t@if (seconds) {\n\t\t\t\t\t<div class=\"ngb-tp-spacer\">:</div>\n\t\t\t\t\t<div class=\"ngb-tp-input-container ngb-tp-second\">\n\t\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t(click)=\"changeSecond(secondStep)\"\n\t\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron\"></span>\n\t\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.increment-seconds\">Increment seconds</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tclass=\"ngb-tp-input form-control\"\n\t\t\t\t\t\t\t[class.form-control-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.form-control-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\tmaxlength=\"2\"\n\t\t\t\t\t\t\tinputmode=\"numeric\"\n\t\t\t\t\t\t\tplaceholder=\"SS\"\n\t\t\t\t\t\t\ti18n-placeholder=\"@@ngb.timepicker.SS\"\n\t\t\t\t\t\t\t[value]=\"formatMinSec(model?.second)\"\n\t\t\t\t\t\t\t(change)=\"updateSecond($any($event).target.value)\"\n\t\t\t\t\t\t\t[readOnly]=\"readonlyInputs\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\taria-label=\"Seconds\"\n\t\t\t\t\t\t\ti18n-aria-label=\"@@ngb.timepicker.seconds\"\n\t\t\t\t\t\t\t(blur)=\"handleBlur()\"\n\t\t\t\t\t\t\t(input)=\"formatInput($any($event).target)\"\n\t\t\t\t\t\t\t(keydown.ArrowUp)=\"changeSecond(secondStep); $event.preventDefault()\"\n\t\t\t\t\t\t\t(keydown.ArrowDown)=\"changeSecond(-secondStep); $event.preventDefault()\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t(click)=\"changeSecond(-secondStep)\"\n\t\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron bottom\"></span>\n\t\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.decrement-seconds\">Decrement seconds</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (meridian) {\n\t\t\t\t\t<div class=\"ngb-tp-spacer\"></div>\n\t\t\t\t\t<div class=\"ngb-tp-meridian\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-primary\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t(click)=\"toggleMeridian()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t@if (model && model.hour >= 12) {\n\t\t\t\t\t\t\t\t<ng-container i18n=\"@@ngb.timepicker.PM\">{{ i18n.getAfternoonPeriod() }}</ng-container>\n\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t<ng-container>{{ i18n.getMorningPeriod() }}</ng-container>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</fieldset>\n\t`, isInline: true, styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{display:flex;align-items:center}.ngb-tp-input-container{width:4em}.ngb-tp-chevron:before{border-style:solid;border-width:.29em .29em 0 0;content:\\\"\\\";display:inline-block;height:.69em;left:.05em;position:relative;top:.15em;transform:rotate(-45deg);vertical-align:middle;width:.69em}.ngb-tp-chevron.bottom:before{top:-.3em;transform:rotate(135deg)}.ngb-tp-input{text-align:center}.ngb-tp-hour,.ngb-tp-minute,.ngb-tp-second,.ngb-tp-meridian{display:flex;flex-direction:column;align-items:center;justify-content:space-around}.ngb-tp-spacer{width:1em;text-align:center}\\n\"], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepicker, decorators: [{\n type: Component,\n args: [{ exportAs: 'ngbTimepicker', selector: 'ngb-timepicker', standalone: true, encapsulation: ViewEncapsulation.None, template: `\n\t\t<fieldset [disabled]=\"disabled\" [class.disabled]=\"disabled\">\n\t\t\t<div class=\"ngb-tp\">\n\t\t\t\t<div class=\"ngb-tp-input-container ngb-tp-hour\">\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeHour(hourStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.increment-hours\">Increment hours</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tclass=\"ngb-tp-input form-control\"\n\t\t\t\t\t\t[class.form-control-sm]=\"isSmallSize\"\n\t\t\t\t\t\t[class.form-control-lg]=\"isLargeSize\"\n\t\t\t\t\t\tmaxlength=\"2\"\n\t\t\t\t\t\tinputmode=\"numeric\"\n\t\t\t\t\t\tplaceholder=\"HH\"\n\t\t\t\t\t\ti18n-placeholder=\"@@ngb.timepicker.HH\"\n\t\t\t\t\t\t[value]=\"formatHour(model?.hour)\"\n\t\t\t\t\t\t(change)=\"updateHour($any($event).target.value)\"\n\t\t\t\t\t\t[readOnly]=\"readonlyInputs\"\n\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\taria-label=\"Hours\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.timepicker.hours\"\n\t\t\t\t\t\t(blur)=\"handleBlur()\"\n\t\t\t\t\t\t(input)=\"formatInput($any($event).target)\"\n\t\t\t\t\t\t(keydown.ArrowUp)=\"changeHour(hourStep); $event.preventDefault()\"\n\t\t\t\t\t\t(keydown.ArrowDown)=\"changeHour(-hourStep); $event.preventDefault()\"\n\t\t\t\t\t/>\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeHour(-hourStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron bottom\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.decrement-hours\">Decrement hours</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ngb-tp-spacer\">:</div>\n\t\t\t\t<div class=\"ngb-tp-input-container ngb-tp-minute\">\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeMinute(minuteStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.increment-minutes\">Increment minutes</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\tclass=\"ngb-tp-input form-control\"\n\t\t\t\t\t\t[class.form-control-sm]=\"isSmallSize\"\n\t\t\t\t\t\t[class.form-control-lg]=\"isLargeSize\"\n\t\t\t\t\t\tmaxlength=\"2\"\n\t\t\t\t\t\tinputmode=\"numeric\"\n\t\t\t\t\t\tplaceholder=\"MM\"\n\t\t\t\t\t\ti18n-placeholder=\"@@ngb.timepicker.MM\"\n\t\t\t\t\t\t[value]=\"formatMinSec(model?.minute)\"\n\t\t\t\t\t\t(change)=\"updateMinute($any($event).target.value)\"\n\t\t\t\t\t\t[readOnly]=\"readonlyInputs\"\n\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\taria-label=\"Minutes\"\n\t\t\t\t\t\ti18n-aria-label=\"@@ngb.timepicker.minutes\"\n\t\t\t\t\t\t(blur)=\"handleBlur()\"\n\t\t\t\t\t\t(input)=\"formatInput($any($event).target)\"\n\t\t\t\t\t\t(keydown.ArrowUp)=\"changeMinute(minuteStep); $event.preventDefault()\"\n\t\t\t\t\t\t(keydown.ArrowDown)=\"changeMinute(-minuteStep); $event.preventDefault()\"\n\t\t\t\t\t/>\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t(click)=\"changeMinute(-minuteStep)\"\n\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron bottom\"></span>\n\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.decrement-minutes\">Decrement minutes</span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t\t@if (seconds) {\n\t\t\t\t\t<div class=\"ngb-tp-spacer\">:</div>\n\t\t\t\t\t<div class=\"ngb-tp-input-container ngb-tp-second\">\n\t\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t(click)=\"changeSecond(secondStep)\"\n\t\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron\"></span>\n\t\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.increment-seconds\">Increment seconds</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tclass=\"ngb-tp-input form-control\"\n\t\t\t\t\t\t\t[class.form-control-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.form-control-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\tmaxlength=\"2\"\n\t\t\t\t\t\t\tinputmode=\"numeric\"\n\t\t\t\t\t\t\tplaceholder=\"SS\"\n\t\t\t\t\t\t\ti18n-placeholder=\"@@ngb.timepicker.SS\"\n\t\t\t\t\t\t\t[value]=\"formatMinSec(model?.second)\"\n\t\t\t\t\t\t\t(change)=\"updateSecond($any($event).target.value)\"\n\t\t\t\t\t\t\t[readOnly]=\"readonlyInputs\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\taria-label=\"Seconds\"\n\t\t\t\t\t\t\ti18n-aria-label=\"@@ngb.timepicker.seconds\"\n\t\t\t\t\t\t\t(blur)=\"handleBlur()\"\n\t\t\t\t\t\t\t(input)=\"formatInput($any($event).target)\"\n\t\t\t\t\t\t\t(keydown.ArrowUp)=\"changeSecond(secondStep); $event.preventDefault()\"\n\t\t\t\t\t\t\t(keydown.ArrowDown)=\"changeSecond(-secondStep); $event.preventDefault()\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t(click)=\"changeSecond(-secondStep)\"\n\t\t\t\t\t\t\t\tclass=\"btn btn-link\"\n\t\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"chevron ngb-tp-chevron bottom\"></span>\n\t\t\t\t\t\t\t\t<span class=\"visually-hidden\" i18n=\"@@ngb.timepicker.decrement-seconds\">Decrement seconds</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (meridian) {\n\t\t\t\t\t<div class=\"ngb-tp-spacer\"></div>\n\t\t\t\t\t<div class=\"ngb-tp-meridian\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclass=\"btn btn-outline-primary\"\n\t\t\t\t\t\t\t[class.btn-sm]=\"isSmallSize\"\n\t\t\t\t\t\t\t[class.btn-lg]=\"isLargeSize\"\n\t\t\t\t\t\t\t[disabled]=\"disabled\"\n\t\t\t\t\t\t\t[class.disabled]=\"disabled\"\n\t\t\t\t\t\t\t(click)=\"toggleMeridian()\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t@if (model && model.hour >= 12) {\n\t\t\t\t\t\t\t\t<ng-container i18n=\"@@ngb.timepicker.PM\">{{ i18n.getAfternoonPeriod() }}</ng-container>\n\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t<ng-container>{{ i18n.getMorningPeriod() }}</ng-container>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</fieldset>\n\t`, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbTimepicker), multi: true }], styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{display:flex;align-items:center}.ngb-tp-input-container{width:4em}.ngb-tp-chevron:before{border-style:solid;border-width:.29em .29em 0 0;content:\\\"\\\";display:inline-block;height:.69em;left:.05em;position:relative;top:.15em;transform:rotate(-45deg);vertical-align:middle;width:.69em}.ngb-tp-chevron.bottom:before{top:-.3em;transform:rotate(135deg)}.ngb-tp-input{text-align:center}.ngb-tp-hour,.ngb-tp-minute,.ngb-tp-second,.ngb-tp-meridian{display:flex;flex-direction:column;align-items:center;justify-content:space-around}.ngb-tp-spacer{width:1em;text-align:center}\\n\"] }]\n }], ctorParameters: () => [{ type: NgbTimepickerConfig }, { type: NgbTimeAdapter }, { type: i0.ChangeDetectorRef }, { type: NgbTimepickerI18n }], propDecorators: { meridian: [{\n type: Input\n }], spinners: [{\n type: Input\n }], seconds: [{\n type: Input\n }], hourStep: [{\n type: Input\n }], minuteStep: [{\n type: Input\n }], secondStep: [{\n type: Input\n }], readonlyInputs: [{\n type: Input\n }], size: [{\n type: Input\n }] } });\n\nclass NgbTimepickerModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepickerModule, imports: [NgbTimepicker], exports: [NgbTimepicker] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepickerModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTimepickerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [NgbTimepicker],\n exports: [NgbTimepicker],\n }]\n }] });\n\n/**\n * Configuration service for the NgbToast component. You can inject this service, typically in your root component,\n * and customize the values of its properties in order to provide default values for all the toasts used in the\n * application.\n *\n * @since 5.0.0\n */\nclass NgbToastConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.autohide = true;\n this.delay = 5000;\n this.ariaLive = 'polite';\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbToastConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbToastConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbToastConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nconst ngbToastFadeInTransition = (element, animation) => {\n const { classList } = element;\n if (animation) {\n classList.add('fade');\n }\n else {\n classList.add('show');\n return;\n }\n reflow(element);\n classList.add('show', 'showing');\n return () => {\n classList.remove('showing');\n };\n};\nconst ngbToastFadeOutTransition = ({ classList }) => {\n classList.add('showing');\n return () => {\n classList.remove('show', 'showing');\n };\n};\n\n/**\n * This directive allows the usage of HTML markup or other directives\n * inside of the toast's header.\n *\n * @since 5.0.0\n */\nclass NgbToastHeader {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbToastHeader, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbToastHeader, isStandalone: true, selector: \"[ngbToastHeader]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbToastHeader, decorators: [{\n type: Directive,\n args: [{ selector: '[ngbToastHeader]', standalone: true }]\n }] });\n/**\n * Toasts provide feedback messages as notifications to the user.\n * Goal is to mimic the push notifications available both on mobile and desktop operating systems.\n *\n * @since 5.0.0\n */\nclass NgbToast {\n constructor(ariaLive) {\n this.ariaLive = ariaLive;\n this._config = inject(NgbToastConfig);\n this._zone = inject(NgZone);\n this._element = inject(ElementRef);\n /**\n * If `true`, toast opening and closing will be animated.\n *\n * Animation is triggered only when the `.hide()` or `.show()` functions are called\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * Delay after which the toast will hide (ms).\n * default: `500` (ms) (inherited from NgbToastConfig)\n */\n this.delay = this._config.delay;\n /**\n * Auto hide the toast after a delay in ms.\n * default: `true` (inherited from NgbToastConfig)\n */\n this.autohide = this._config.autohide;\n /**\n * A template like `<ng-template ngbToastHeader></ng-template>` can be\n * used in the projected content to allow markup usage.\n */\n this.contentHeaderTpl = null;\n /**\n * An event fired after the animation triggered by calling `.show()` method has finished.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event fired after the animation triggered by calling `.hide()` method has finished.\n *\n * It can only occur in 2 different scenarios:\n * - `autohide` timeout fires\n * - user clicks on a closing cross\n *\n * Additionally this output is purely informative. The toast won't be removed from DOM automatically, it's up\n * to the user to take care of that.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n this.ariaLive ??= this._config.ariaLive;\n }\n ngAfterContentInit() {\n this._zone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this._init();\n this.show();\n });\n }\n ngOnChanges(changes) {\n if ('autohide' in changes) {\n this._clearTimeout();\n this._init();\n }\n }\n /**\n * Triggers toast closing programmatically.\n *\n * The returned observable will emit and be completed once the closing transition has finished.\n * If the animations are turned off this happens synchronously.\n *\n * Alternatively you could listen or subscribe to the `(hidden)` output\n *\n * @since 8.0.0\n */\n hide() {\n this._clearTimeout();\n const transition = ngbRunTransition(this._zone, this._element.nativeElement, ngbToastFadeOutTransition, {\n animation: this.animation,\n runningTransition: 'stop',\n });\n transition.subscribe(() => {\n this.hidden.emit();\n });\n return transition;\n }\n /**\n * Triggers toast opening programmatically.\n *\n * The returned observable will emit and be completed once the opening transition has finished.\n * If the animations are turned off this happens synchronously.\n *\n * Alternatively you could listen or subscribe to the `(shown)` output\n *\n * @since 8.0.0\n */\n show() {\n const transition = ngbRunTransition(this._zone, this._element.nativeElement, ngbToastFadeInTransition, {\n animation: this.animation,\n runningTransition: 'continue',\n });\n transition.subscribe(() => {\n this.shown.emit();\n });\n return transition;\n }\n _init() {\n if (this.autohide && !this._timeoutID) {\n this._timeoutID = setTimeout(() => this.hide(), this.delay);\n }\n }\n _clearTimeout() {\n if (this._timeoutID) {\n clearTimeout(this._timeoutID);\n this._timeoutID = null;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbToast, deps: [{ token: 'aria-live', attribute: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbToast, isStandalone: true, selector: \"ngb-toast\", inputs: { animation: \"animation\", delay: \"delay\", autohide: \"autohide\", header: \"header\" }, outputs: { shown: \"shown\", hidden: \"hidden\" }, host: { attributes: { \"role\": \"alert\", \"aria-atomic\": \"true\" }, properties: { \"attr.aria-live\": \"ariaLive\", \"class.fade\": \"animation\" }, classAttribute: \"toast\" }, queries: [{ propertyName: \"contentHeaderTpl\", first: true, predicate: NgbToastHeader, descendants: true, read: TemplateRef, static: true }], exportAs: [\"ngbToast\"], usesOnChanges: true, ngImport: i0, template: `\n\t\t<ng-template #headerTpl>\n\t\t\t<strong class=\"me-auto\">{{ header }}</strong>\n\t\t</ng-template>\n\t\t@if (contentHeaderTpl || header) {\n\t\t\t<div class=\"toast-header\">\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"contentHeaderTpl || headerTpl\" />\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"btn-close\"\n\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\ti18n-aria-label=\"@@ngb.toast.close-aria\"\n\t\t\t\t\t(click)=\"hide()\"\n\t\t\t\t>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t}\n\t\t<div class=\"toast-body\">\n\t\t\t<ng-content />\n\t\t</div>\n\t`, isInline: true, styles: [\"ngb-toast{display:block}ngb-toast .toast-header .close{margin-left:auto;margin-bottom:.25rem}\\n\"], dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbToast, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-toast', exportAs: 'ngbToast', standalone: true, imports: [NgTemplateOutlet], encapsulation: ViewEncapsulation.None, host: {\n role: 'alert',\n '[attr.aria-live]': 'ariaLive',\n 'aria-atomic': 'true',\n class: 'toast',\n '[class.fade]': 'animation',\n }, template: `\n\t\t<ng-template #headerTpl>\n\t\t\t<strong class=\"me-auto\">{{ header }}</strong>\n\t\t</ng-template>\n\t\t@if (contentHeaderTpl || header) {\n\t\t\t<div class=\"toast-header\">\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"contentHeaderTpl || headerTpl\" />\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"btn-close\"\n\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\ti18n-aria-label=\"@@ngb.toast.close-aria\"\n\t\t\t\t\t(click)=\"hide()\"\n\t\t\t\t>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t}\n\t\t<div class=\"toast-body\">\n\t\t\t<ng-content />\n\t\t</div>\n\t`, styles: [\"ngb-toast{display:block}ngb-toast .toast-header .close{margin-left:auto;margin-bottom:.25rem}\\n\"] }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['aria-live']\n }] }], propDecorators: { animation: [{\n type: Input\n }], delay: [{\n type: Input\n }], autohide: [{\n type: Input\n }], header: [{\n type: Input\n }], contentHeaderTpl: [{\n type: ContentChild,\n args: [NgbToastHeader, { read: TemplateRef, static: true }]\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }] } });\n\nclass NgbToastModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbToastModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbToastModule, imports: [NgbToast, NgbToastHeader], exports: [NgbToast, NgbToastHeader] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbToastModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbToastModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [NgbToast, NgbToastHeader],\n exports: [NgbToast, NgbToastHeader],\n }]\n }] });\n\n/**\n * A configuration service for the [`NgbTooltip`](#/components/tooltip/api#NgbTooltip) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the tooltips used in the application.\n */\nclass NgbTooltipConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.autoClose = true;\n this.placement = 'auto';\n this.popperOptions = (options) => options;\n this.triggers = 'hover focus';\n this.disableTooltip = false;\n this.openDelay = 0;\n this.closeDelay = 0;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTooltipConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTooltipConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTooltipConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nlet nextId = 0;\nclass NgbTooltipWindow {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTooltipWindow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbTooltipWindow, isStandalone: true, selector: \"ngb-tooltip-window\", inputs: { animation: \"animation\", id: \"id\", tooltipClass: \"tooltipClass\" }, host: { attributes: { \"role\": \"tooltip\" }, properties: { \"class\": \"\\\"tooltip\\\" + (tooltipClass ? \\\" \\\" + tooltipClass : \\\"\\\")\", \"class.fade\": \"animation\", \"id\": \"id\" } }, ngImport: i0, template: `\n\t\t<div class=\"tooltip-arrow\" data-popper-arrow></div>\n\t\t<div class=\"tooltip-inner\">\n\t\t\t<ng-content />\n\t\t</div>\n\t`, isInline: true, styles: [\"ngb-tooltip-window{pointer-events:none;position:absolute}ngb-tooltip-window .tooltip-inner{pointer-events:auto}ngb-tooltip-window.bs-tooltip-top,ngb-tooltip-window.bs-tooltip-bottom{padding-left:0;padding-right:0}ngb-tooltip-window.bs-tooltip-start,ngb-tooltip-window.bs-tooltip-end{padding-top:0;padding-bottom:0}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTooltipWindow, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-tooltip-window', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n '[class]': '\"tooltip\" + (tooltipClass ? \" \" + tooltipClass : \"\")',\n '[class.fade]': 'animation',\n role: 'tooltip',\n '[id]': 'id',\n }, template: `\n\t\t<div class=\"tooltip-arrow\" data-popper-arrow></div>\n\t\t<div class=\"tooltip-inner\">\n\t\t\t<ng-content />\n\t\t</div>\n\t`, styles: [\"ngb-tooltip-window{pointer-events:none;position:absolute}ngb-tooltip-window .tooltip-inner{pointer-events:auto}ngb-tooltip-window.bs-tooltip-top,ngb-tooltip-window.bs-tooltip-bottom{padding-left:0;padding-right:0}ngb-tooltip-window.bs-tooltip-start,ngb-tooltip-window.bs-tooltip-end{padding-top:0;padding-bottom:0}\\n\"] }]\n }], propDecorators: { animation: [{\n type: Input\n }], id: [{\n type: Input\n }], tooltipClass: [{\n type: Input\n }] } });\n/**\n * A lightweight and extensible directive for fancy tooltip creation.\n */\nclass NgbTooltip {\n constructor() {\n this._config = inject(NgbTooltipConfig);\n /**\n * If `true`, tooltip opening and closing will be animated.\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * Indicates whether the tooltip should be closed on `Escape` key and inside/outside clicks:\n *\n * * `true` - closes on both outside and inside clicks as well as `Escape` presses\n * * `false` - disables the autoClose feature (NB: triggers still apply)\n * * `\"inside\"` - closes on inside clicks as well as Escape presses\n * * `\"outside\"` - closes on outside clicks (sometimes also achievable through triggers)\n * as well as `Escape` presses\n *\n * @since 3.0.0\n */\n this.autoClose = this._config.autoClose;\n /**\n * The preferred placement of the tooltip, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"auto\"`.\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the tooltip.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * Specifies events that should trigger the tooltip.\n *\n * Supports a space separated list of event names.\n * For more details see the [triggers demo](#/components/tooltip/examples#triggers).\n */\n this.triggers = this._config.triggers;\n /**\n * A selector specifying the element the tooltip should be appended to.\n *\n * Currently only supports `\"body\"`.\n */\n this.container = this._config.container;\n /**\n * If `true`, tooltip is disabled and won't be displayed.\n *\n * @since 1.1.0\n */\n this.disableTooltip = this._config.disableTooltip;\n /**\n * An optional class applied to the tooltip window element.\n *\n * @since 3.2.0\n */\n this.tooltipClass = this._config.tooltipClass;\n /**\n * The opening delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n *\n * @since 4.1.0\n */\n this.openDelay = this._config.openDelay;\n /**\n * The closing delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n *\n * @since 4.1.0\n */\n this.closeDelay = this._config.closeDelay;\n /**\n * An event emitted when the tooltip opening animation has finished. Contains no payload.\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the tooltip closing animation has finished. Contains no payload.\n */\n this.hidden = new EventEmitter();\n this._nativeElement = inject(ElementRef).nativeElement;\n this._ngZone = inject(NgZone);\n this._document = inject(DOCUMENT);\n this._changeDetector = inject(ChangeDetectorRef);\n this._ngbTooltipWindowId = `ngb-tooltip-${nextId++}`;\n this._popupService = new PopupService(NgbTooltipWindow);\n this._windowRef = null;\n this._positioning = ngbPositioning();\n }\n /**\n * The string content or a `TemplateRef` for the content to be displayed in the tooltip.\n *\n * If the content if falsy, the tooltip won't open.\n */\n set ngbTooltip(value) {\n this._ngbTooltip = value;\n if (!value && this._windowRef) {\n this.close();\n }\n }\n get ngbTooltip() {\n return this._ngbTooltip;\n }\n /**\n * Opens the tooltip.\n *\n * This is considered to be a \"manual\" triggering.\n * The `context` is an optional value to be injected into the tooltip template when it is created.\n */\n open(context) {\n if (!this._windowRef && this._ngbTooltip && !this.disableTooltip) {\n const { windowRef, transition$ } = this._popupService.open(this._ngbTooltip, context ?? this.tooltipContext, this.animation);\n this._windowRef = windowRef;\n this._windowRef.setInput('animation', this.animation);\n this._windowRef.setInput('tooltipClass', this.tooltipClass);\n this._windowRef.setInput('id', this._ngbTooltipWindowId);\n this._getPositionTargetElement().setAttribute('aria-describedby', this._ngbTooltipWindowId);\n if (this.container === 'body') {\n this._document.body.appendChild(this._windowRef.location.nativeElement);\n }\n // We need to detect changes, because we don't know where .open() might be called from.\n // Ex. opening tooltip from one of lifecycle hooks that run after the CD\n // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception\n this._windowRef.changeDetectorRef.detectChanges();\n // We need to mark for check, because tooltip won't work inside the OnPush component.\n // Ex. when we use expression like `{{ tooltip.isOpen() : 'opened' : 'closed' }}`\n // inside the template of an OnPush component and we change the tooltip from\n // open -> closed, the expression in question won't be updated unless we explicitly\n // mark the parent component to be checked.\n this._windowRef.changeDetectorRef.markForCheck();\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n this._positioning.createPopper({\n hostElement: this._getPositionTargetElement(),\n targetElement: this._windowRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n baseClass: 'bs-tooltip',\n updatePopperOptions: (options) => this.popperOptions(addPopperOffset([0, 6])(options)),\n });\n Promise.resolve().then(() => {\n // This update is required for correct arrow placement\n this._positioning.update();\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n });\n });\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [this._windowRef.location.nativeElement], [this._nativeElement]);\n transition$.subscribe(() => this.shown.emit());\n }\n }\n /**\n * Closes the tooltip.\n *\n * This is considered to be a \"manual\" triggering of the tooltip.\n */\n close(animation = this.animation) {\n if (this._windowRef != null) {\n this._getPositionTargetElement().removeAttribute('aria-describedby');\n this._popupService.close(animation).subscribe(() => {\n this._windowRef = null;\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this.hidden.emit();\n this._changeDetector.markForCheck();\n });\n }\n }\n /**\n * Toggles the tooltip.\n *\n * This is considered to be a \"manual\" triggering of the tooltip.\n */\n toggle() {\n if (this._windowRef) {\n this.close();\n }\n else {\n this.open();\n }\n }\n /**\n * Returns `true`, if the popover is currently shown.\n */\n isOpen() {\n return this._windowRef != null;\n }\n ngOnInit() {\n this._unregisterListenersFn = listenToTriggers(this._nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay);\n }\n ngOnChanges({ tooltipClass }) {\n if (tooltipClass && this.isOpen()) {\n this._windowRef.setInput('tooltipClass', tooltipClass.currentValue);\n }\n }\n ngOnDestroy() {\n this.close(false);\n // This check is needed as it might happen that ngOnDestroy is called before ngOnInit\n // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199\n this._unregisterListenersFn?.();\n }\n _getPositionTargetElement() {\n return ((isString(this.positionTarget) ? this._document.querySelector(this.positionTarget) : this.positionTarget) ||\n this._nativeElement);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTooltip, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbTooltip, isStandalone: true, selector: \"[ngbTooltip]\", inputs: { animation: \"animation\", autoClose: \"autoClose\", placement: \"placement\", popperOptions: \"popperOptions\", triggers: \"triggers\", positionTarget: \"positionTarget\", container: \"container\", disableTooltip: \"disableTooltip\", tooltipClass: \"tooltipClass\", tooltipContext: \"tooltipContext\", openDelay: \"openDelay\", closeDelay: \"closeDelay\", ngbTooltip: \"ngbTooltip\" }, outputs: { shown: \"shown\", hidden: \"hidden\" }, exportAs: [\"ngbTooltip\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTooltip, decorators: [{\n type: Directive,\n args: [{ selector: '[ngbTooltip]', standalone: true, exportAs: 'ngbTooltip' }]\n }], propDecorators: { animation: [{\n type: Input\n }], autoClose: [{\n type: Input\n }], placement: [{\n type: Input\n }], popperOptions: [{\n type: Input\n }], triggers: [{\n type: Input\n }], positionTarget: [{\n type: Input\n }], container: [{\n type: Input\n }], disableTooltip: [{\n type: Input\n }], tooltipClass: [{\n type: Input\n }], tooltipContext: [{\n type: Input\n }], openDelay: [{\n type: Input\n }], closeDelay: [{\n type: Input\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], ngbTooltip: [{\n type: Input\n }] } });\n\nclass NgbTooltipModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTooltipModule, imports: [NgbTooltip], exports: [NgbTooltip] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTooltipModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTooltipModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [NgbTooltip],\n exports: [NgbTooltip],\n }]\n }] });\n\n/**\n * A component that helps with text highlighting.\n *\n * It splits the `result` text into parts that contain the searched `term` and generates the HTML markup to simplify\n * highlighting:\n *\n * Ex. `result=\"Alaska\"` and `term=\"as\"` will produce `Al<span class=\"ngb-highlight\">as</span>ka`.\n */\nclass NgbHighlight {\n constructor() {\n /**\n * The CSS class for `<span>` elements wrapping the `term` inside the `result`.\n */\n this.highlightClass = 'ngb-highlight';\n /**\n * Boolean option to determine if the highlighting should be sensitive to accents or not.\n *\n * This feature is only available for browsers that implement the `String.normalize` function\n * (typically not Internet Explorer).\n * If you want to use this feature in a browser that does not implement `String.normalize`,\n * you will have to include a polyfill in your application (`unorm` for example).\n *\n * @since 9.1.0\n */\n this.accentSensitive = true;\n }\n ngOnChanges(changes) {\n if (!this.accentSensitive && !String.prototype.normalize) {\n console.warn('The `accentSensitive` input in `ngb-highlight` cannot be set to `false` in a browser ' +\n 'that does not implement the `String.normalize` function. ' +\n 'You will have to include a polyfill in your application to use this feature in the current browser.');\n this.accentSensitive = true;\n }\n const result = toString(this.result);\n const terms = Array.isArray(this.term) ? this.term : [this.term];\n const prepareTerm = (term) => (this.accentSensitive ? term : removeAccents(term));\n const escapedTerms = terms.map((term) => regExpEscape(prepareTerm(toString(term)))).filter((term) => term);\n const toSplit = this.accentSensitive ? result : removeAccents(result);\n const parts = escapedTerms.length ? toSplit.split(new RegExp(`(${escapedTerms.join('|')})`, 'gmi')) : [result];\n if (this.accentSensitive) {\n this.parts = parts;\n }\n else {\n let offset = 0;\n this.parts = parts.map((part) => result.substring(offset, (offset += part.length)));\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbHighlight, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbHighlight, isStandalone: true, selector: \"ngb-highlight\", inputs: { highlightClass: \"highlightClass\", result: \"result\", term: \"term\", accentSensitive: \"accentSensitive\" }, usesOnChanges: true, ngImport: i0, template: `\n\t\t@for (part of parts; track part; let odd = $odd) {\n\t\t\t@if (odd) {\n\t\t\t\t<span class=\"{{ highlightClass }}\">{{ part }}</span>\n\t\t\t} @else {\n\t\t\t\t<ng-container>{{ part }}</ng-container>\n\t\t\t}\n\t\t}\n\t`, isInline: true, styles: [\".ngb-highlight{font-weight:700}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbHighlight, decorators: [{\n type: Component,\n args: [{ selector: 'ngb-highlight', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `\n\t\t@for (part of parts; track part; let odd = $odd) {\n\t\t\t@if (odd) {\n\t\t\t\t<span class=\"{{ highlightClass }}\">{{ part }}</span>\n\t\t\t} @else {\n\t\t\t\t<ng-container>{{ part }}</ng-container>\n\t\t\t}\n\t\t}\n\t`, styles: [\".ngb-highlight{font-weight:700}\\n\"] }]\n }], propDecorators: { highlightClass: [{\n type: Input\n }], result: [{\n type: Input,\n args: [{ required: true }]\n }], term: [{\n type: Input,\n args: [{ required: true }]\n }], accentSensitive: [{\n type: Input\n }] } });\n\nconst ARIA_LIVE_DELAY = new InjectionToken('live announcer delay', {\n providedIn: 'root',\n factory: () => 100,\n});\nfunction getLiveElement(document, lazyCreate = false) {\n let element = document.body.querySelector('#ngb-live');\n if (element == null && lazyCreate) {\n element = document.createElement('div');\n element.setAttribute('id', 'ngb-live');\n element.setAttribute('aria-live', 'polite');\n element.setAttribute('aria-atomic', 'true');\n element.classList.add('visually-hidden');\n document.body.appendChild(element);\n }\n return element;\n}\nclass Live {\n constructor() {\n this._document = inject(DOCUMENT);\n this._delay = inject(ARIA_LIVE_DELAY);\n }\n ngOnDestroy() {\n const element = getLiveElement(this._document);\n if (element) {\n // if exists, it will always be attached to the <body>\n element.parentElement.removeChild(element);\n }\n }\n say(message) {\n const element = getLiveElement(this._document, true);\n const delay = this._delay;\n if (element != null) {\n element.textContent = '';\n const setText = () => (element.textContent = message);\n if (delay === null) {\n setText();\n }\n else {\n setTimeout(setText, delay);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: Live, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: Live, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: Live, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A configuration service for the [`NgbTypeahead`](#/components/typeahead/api#NgbTypeahead) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the typeaheads used in the application.\n */\nclass NgbTypeaheadConfig {\n constructor() {\n this.editable = true;\n this.focusFirst = true;\n this.selectOnExact = false;\n this.showHint = false;\n this.placement = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];\n this.popperOptions = (options) => options;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTypeaheadConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTypeaheadConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTypeaheadConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass NgbTypeaheadWindow {\n constructor() {\n this.activeIdx = 0;\n /**\n * Flag indicating if the first row should be active initially\n */\n this.focusFirst = true;\n /**\n * A function used to format a given result before display. This function should return a formatted string without any\n * HTML markup\n */\n this.formatter = toString;\n /**\n * Event raised when user selects a particular result row\n */\n this.selectEvent = new EventEmitter();\n this.activeChangeEvent = new EventEmitter();\n }\n hasActive() {\n return this.activeIdx > -1 && this.activeIdx < this.results.length;\n }\n getActive() {\n return this.results[this.activeIdx];\n }\n markActive(activeIdx) {\n this.activeIdx = activeIdx;\n this._activeChanged();\n }\n next() {\n if (this.activeIdx === this.results.length - 1) {\n this.activeIdx = this.focusFirst ? (this.activeIdx + 1) % this.results.length : -1;\n }\n else {\n this.activeIdx++;\n }\n this._activeChanged();\n }\n prev() {\n if (this.activeIdx < 0) {\n this.activeIdx = this.results.length - 1;\n }\n else if (this.activeIdx === 0) {\n this.activeIdx = this.focusFirst ? this.results.length - 1 : -1;\n }\n else {\n this.activeIdx--;\n }\n this._activeChanged();\n }\n resetActive() {\n this.activeIdx = this.focusFirst ? 0 : -1;\n this._activeChanged();\n }\n select(item) {\n this.selectEvent.emit(item);\n }\n ngOnInit() {\n this.resetActive();\n }\n _activeChanged() {\n this.activeChangeEvent.emit(this.activeIdx >= 0 ? this.id + '-' + this.activeIdx : undefined);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTypeaheadWindow, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"17.0.0\", type: NgbTypeaheadWindow, isStandalone: true, selector: \"ngb-typeahead-window\", inputs: { id: \"id\", focusFirst: \"focusFirst\", results: \"results\", term: \"term\", formatter: \"formatter\", resultTemplate: \"resultTemplate\", popupClass: \"popupClass\" }, outputs: { selectEvent: \"select\", activeChangeEvent: \"activeChange\" }, host: { attributes: { \"role\": \"listbox\" }, listeners: { \"mousedown\": \"$event.preventDefault()\" }, properties: { \"class\": \"\\\"dropdown-menu show\\\" + (popupClass ? \\\" \\\" + popupClass : \\\"\\\")\", \"id\": \"id\" } }, exportAs: [\"ngbTypeaheadWindow\"], ngImport: i0, template: `\n\t\t<ng-template #rt let-result=\"result\" let-term=\"term\" let-formatter=\"formatter\">\n\t\t\t<ngb-highlight [result]=\"formatter(result)\" [term]=\"term\" />\n\t\t</ng-template>\n\t\t@for (result of results; track result; let idx = $index) {\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"dropdown-item\"\n\t\t\t\trole=\"option\"\n\t\t\t\t[id]=\"id + '-' + idx\"\n\t\t\t\t[class.active]=\"idx === activeIdx\"\n\t\t\t\t(mouseenter)=\"markActive(idx)\"\n\t\t\t\t(click)=\"select(result)\"\n\t\t\t>\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"resultTemplate || rt\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ result: result, term: term, formatter: formatter }\"\n\t\t\t\t/>\n\t\t\t</button>\n\t\t}\n\t`, isInline: true, dependencies: [{ kind: \"component\", type: NgbHighlight, selector: \"ngb-highlight\", inputs: [\"highlightClass\", \"result\", \"term\", \"accentSensitive\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTypeaheadWindow, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-typeahead-window',\n exportAs: 'ngbTypeaheadWindow',\n standalone: true,\n imports: [NgbHighlight, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n host: {\n '(mousedown)': '$event.preventDefault()',\n '[class]': '\"dropdown-menu show\" + (popupClass ? \" \" + popupClass : \"\")',\n role: 'listbox',\n '[id]': 'id',\n },\n template: `\n\t\t<ng-template #rt let-result=\"result\" let-term=\"term\" let-formatter=\"formatter\">\n\t\t\t<ngb-highlight [result]=\"formatter(result)\" [term]=\"term\" />\n\t\t</ng-template>\n\t\t@for (result of results; track result; let idx = $index) {\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"dropdown-item\"\n\t\t\t\trole=\"option\"\n\t\t\t\t[id]=\"id + '-' + idx\"\n\t\t\t\t[class.active]=\"idx === activeIdx\"\n\t\t\t\t(mouseenter)=\"markActive(idx)\"\n\t\t\t\t(click)=\"select(result)\"\n\t\t\t>\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"resultTemplate || rt\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ result: result, term: term, formatter: formatter }\"\n\t\t\t\t/>\n\t\t\t</button>\n\t\t}\n\t`,\n }]\n }], propDecorators: { id: [{\n type: Input\n }], focusFirst: [{\n type: Input\n }], results: [{\n type: Input\n }], term: [{\n type: Input\n }], formatter: [{\n type: Input\n }], resultTemplate: [{\n type: Input\n }], popupClass: [{\n type: Input\n }], selectEvent: [{\n type: Output,\n args: ['select']\n }], activeChangeEvent: [{\n type: Output,\n args: ['activeChange']\n }] } });\n\nlet nextWindowId = 0;\n/**\n * A directive providing a simple way of creating powerful typeaheads from any text input.\n */\nclass NgbTypeahead {\n constructor() {\n this._nativeElement = inject(ElementRef).nativeElement;\n this._config = inject(NgbTypeaheadConfig);\n this._live = inject(Live);\n this._document = inject(DOCUMENT);\n this._ngZone = inject(NgZone);\n this._changeDetector = inject(ChangeDetectorRef);\n this._popupService = new PopupService(NgbTypeaheadWindow);\n this._positioning = ngbPositioning();\n this._subscription = null;\n this._closed$ = new Subject();\n this._inputValueBackup = null;\n this._inputValueForSelectOnExact = null;\n this._valueChanges$ = fromEvent(this._nativeElement, 'input').pipe(map(($event) => $event.target.value));\n this._resubscribeTypeahead$ = new BehaviorSubject(null);\n this._windowRef = null;\n /**\n * The value for the `autocomplete` attribute for the `<input>` element.\n *\n * Defaults to `\"off\"` to disable the native browser autocomplete, but you can override it if necessary.\n *\n * @since 2.1.0\n */\n this.autocomplete = 'off';\n /**\n * A selector specifying the element the typeahead popup will be appended to.\n *\n * Currently only supports `\"body\"`.\n */\n this.container = this._config.container;\n /**\n * If `true`, model values will not be restricted only to items selected from the popup.\n */\n this.editable = this._config.editable;\n /**\n * If `true`, the first item in the result list will always stay focused while typing.\n */\n this.focusFirst = this._config.focusFirst;\n /**\n * If `true`, automatically selects the item when it is the only one that exactly matches the user input\n *\n * @since 14.2.0\n */\n this.selectOnExact = this._config.selectOnExact;\n /**\n * If `true`, will show the hint in the `<input>` when an item in the result list matches.\n */\n this.showHint = this._config.showHint;\n /**\n * The preferred placement of the typeahead, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"bottom-start bottom-end top-start top-end\"`\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the typeahead.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * An event emitted right before an item is selected from the result list.\n *\n * Event payload is of type [`NgbTypeaheadSelectItemEvent`](#/components/typeahead/api#NgbTypeaheadSelectItemEvent).\n */\n this.selectItem = new EventEmitter();\n this.activeDescendant = null;\n this.popupId = `ngb-typeahead-${nextWindowId++}`;\n this._onTouched = () => { };\n this._onChange = (_) => { };\n }\n ngOnInit() {\n this._subscribeToUserInput();\n }\n ngOnChanges({ ngbTypeahead }) {\n if (ngbTypeahead && !ngbTypeahead.firstChange) {\n this._unsubscribeFromUserInput();\n this._subscribeToUserInput();\n }\n }\n ngOnDestroy() {\n this._closePopup();\n this._unsubscribeFromUserInput();\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n writeValue(value) {\n this._writeInputValue(this._formatItemForInput(value));\n if (this.showHint) {\n this._inputValueBackup = value;\n }\n }\n setDisabledState(isDisabled) {\n this._nativeElement.disabled = isDisabled;\n }\n /**\n * Dismisses typeahead popup window\n */\n dismissPopup() {\n if (this.isPopupOpen()) {\n this._resubscribeTypeahead$.next(null);\n this._closePopup();\n if (this.showHint && this._inputValueBackup !== null) {\n this._writeInputValue(this._inputValueBackup);\n }\n this._changeDetector.markForCheck();\n }\n }\n /**\n * Returns true if the typeahead popup window is displayed\n */\n isPopupOpen() {\n return this._windowRef != null;\n }\n handleBlur() {\n this._resubscribeTypeahead$.next(null);\n this._onTouched();\n }\n handleKeyDown(event) {\n if (!this.isPopupOpen()) {\n return;\n }\n /* eslint-disable-next-line deprecation/deprecation */\n switch (event.which) {\n case Key.ArrowDown:\n event.preventDefault();\n this._windowRef.instance.next();\n this._showHint();\n break;\n case Key.ArrowUp:\n event.preventDefault();\n this._windowRef.instance.prev();\n this._showHint();\n break;\n case Key.Enter:\n case Key.Tab: {\n const result = this._windowRef.instance.getActive();\n if (isDefined(result)) {\n event.preventDefault();\n event.stopPropagation();\n this._selectResult(result);\n }\n this._closePopup();\n break;\n }\n }\n }\n _openPopup() {\n if (!this.isPopupOpen()) {\n this._inputValueBackup = this._nativeElement.value;\n const { windowRef } = this._popupService.open();\n this._windowRef = windowRef;\n this._windowRef.setInput('id', this.popupId);\n this._windowRef.setInput('popupClass', this.popupClass);\n this._windowRef.instance.selectEvent.subscribe((result) => this._selectResultClosePopup(result));\n this._windowRef.instance.activeChangeEvent.subscribe((activeId) => (this.activeDescendant = activeId));\n if (this.container === 'body') {\n this._windowRef.location.nativeElement.style.zIndex = '1055';\n this._document.body.appendChild(this._windowRef.location.nativeElement);\n }\n this._changeDetector.markForCheck();\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n if (this._windowRef) {\n this._positioning.createPopper({\n hostElement: this._nativeElement,\n targetElement: this._windowRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n updatePopperOptions: (options) => this.popperOptions(addPopperOffset([0, 2])(options)),\n });\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n }\n });\n ngbAutoClose(this._ngZone, this._document, 'outside', () => this.dismissPopup(), this._closed$, [\n this._nativeElement,\n this._windowRef.location.nativeElement,\n ]);\n }\n }\n _closePopup() {\n this._popupService.close().subscribe(() => {\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this._closed$.next();\n this._windowRef = null;\n this.activeDescendant = null;\n });\n }\n _selectResult(result) {\n let defaultPrevented = false;\n this.selectItem.emit({\n item: result,\n preventDefault: () => {\n defaultPrevented = true;\n },\n });\n this._resubscribeTypeahead$.next(null);\n if (!defaultPrevented) {\n this.writeValue(result);\n this._onChange(result);\n }\n }\n _selectResultClosePopup(result) {\n this._selectResult(result);\n this._closePopup();\n }\n _showHint() {\n if (this.showHint && this._windowRef?.instance.hasActive() && this._inputValueBackup != null) {\n const userInputLowerCase = this._inputValueBackup.toLowerCase();\n const formattedVal = this._formatItemForInput(this._windowRef.instance.getActive());\n if (userInputLowerCase === formattedVal.substring(0, this._inputValueBackup.length).toLowerCase()) {\n this._writeInputValue(this._inputValueBackup + formattedVal.substring(this._inputValueBackup.length));\n this._nativeElement['setSelectionRange'].apply(this._nativeElement, [\n this._inputValueBackup.length,\n formattedVal.length,\n ]);\n }\n else {\n this._writeInputValue(formattedVal);\n }\n }\n }\n _formatItemForInput(item) {\n return item != null && this.inputFormatter ? this.inputFormatter(item) : toString(item);\n }\n _writeInputValue(value) {\n this._nativeElement.value = toString(value);\n }\n _subscribeToUserInput() {\n const results$ = this._valueChanges$.pipe(tap((value) => {\n this._inputValueBackup = this.showHint ? value : null;\n this._inputValueForSelectOnExact = this.selectOnExact ? value : null;\n this._onChange(this.editable ? value : undefined);\n }), this.ngbTypeahead ? this.ngbTypeahead : () => of([]));\n this._subscription = this._resubscribeTypeahead$.pipe(switchMap(() => results$)).subscribe((results) => {\n if (!results || results.length === 0) {\n this._closePopup();\n }\n else {\n // when there is only one result and this matches the input value\n if (this.selectOnExact &&\n results.length === 1 &&\n this._formatItemForInput(results[0]) === this._inputValueForSelectOnExact) {\n this._selectResult(results[0]);\n this._closePopup();\n }\n else {\n this._openPopup();\n this._windowRef.setInput('focusFirst', this.focusFirst);\n this._windowRef.setInput('results', results);\n this._windowRef.setInput('term', this._nativeElement.value);\n if (this.resultFormatter) {\n this._windowRef.setInput('formatter', this.resultFormatter);\n }\n if (this.resultTemplate) {\n this._windowRef.setInput('resultTemplate', this.resultTemplate);\n }\n this._windowRef.instance.resetActive();\n // The observable stream we are subscribing to might have async steps\n // and if a component containing typeahead is using the OnPush strategy\n // the change detection turn wouldn't be invoked automatically.\n this._windowRef.changeDetectorRef.detectChanges();\n this._showHint();\n }\n }\n // live announcer\n const count = results ? results.length : 0;\n this._live.say(count === 0 ? 'No results available' : `${count} result${count === 1 ? '' : 's'} available`);\n });\n }\n _unsubscribeFromUserInput() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n this._subscription = null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTypeahead, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbTypeahead, isStandalone: true, selector: \"input[ngbTypeahead]\", inputs: { autocomplete: \"autocomplete\", container: \"container\", editable: \"editable\", focusFirst: \"focusFirst\", inputFormatter: \"inputFormatter\", ngbTypeahead: \"ngbTypeahead\", resultFormatter: \"resultFormatter\", resultTemplate: \"resultTemplate\", selectOnExact: \"selectOnExact\", showHint: \"showHint\", placement: \"placement\", popperOptions: \"popperOptions\", popupClass: \"popupClass\" }, outputs: { selectItem: \"selectItem\" }, host: { attributes: { \"autocapitalize\": \"off\", \"autocorrect\": \"off\", \"role\": \"combobox\" }, listeners: { \"blur\": \"handleBlur()\", \"keydown\": \"handleKeyDown($event)\" }, properties: { \"class.open\": \"isPopupOpen()\", \"autocomplete\": \"autocomplete\", \"attr.aria-autocomplete\": \"showHint ? \\\"both\\\" : \\\"list\\\"\", \"attr.aria-activedescendant\": \"activeDescendant\", \"attr.aria-owns\": \"isPopupOpen() ? popupId : null\", \"attr.aria-expanded\": \"isPopupOpen()\" } }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbTypeahead), multi: true }], exportAs: [\"ngbTypeahead\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTypeahead, decorators: [{\n type: Directive,\n args: [{\n selector: 'input[ngbTypeahead]',\n exportAs: 'ngbTypeahead',\n standalone: true,\n host: {\n '(blur)': 'handleBlur()',\n '[class.open]': 'isPopupOpen()',\n '(keydown)': 'handleKeyDown($event)',\n '[autocomplete]': 'autocomplete',\n autocapitalize: 'off',\n autocorrect: 'off',\n role: 'combobox',\n '[attr.aria-autocomplete]': 'showHint ? \"both\" : \"list\"',\n '[attr.aria-activedescendant]': 'activeDescendant',\n '[attr.aria-owns]': 'isPopupOpen() ? popupId : null',\n '[attr.aria-expanded]': 'isPopupOpen()',\n },\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbTypeahead), multi: true }],\n }]\n }], propDecorators: { autocomplete: [{\n type: Input\n }], container: [{\n type: Input\n }], editable: [{\n type: Input\n }], focusFirst: [{\n type: Input\n }], inputFormatter: [{\n type: Input\n }], ngbTypeahead: [{\n type: Input\n }], resultFormatter: [{\n type: Input\n }], resultTemplate: [{\n type: Input\n }], selectOnExact: [{\n type: Input\n }], showHint: [{\n type: Input\n }], placement: [{\n type: Input\n }], popperOptions: [{\n type: Input\n }], popupClass: [{\n type: Input\n }], selectItem: [{\n type: Output\n }] } });\n\nclass NgbTypeaheadModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTypeaheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTypeaheadModule, imports: [NgbHighlight, NgbTypeahead], exports: [NgbHighlight, NgbTypeahead] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTypeaheadModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbTypeaheadModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [NgbHighlight, NgbTypeahead],\n exports: [NgbHighlight, NgbTypeahead],\n }]\n }] });\n\n/**\n * A configuration service for the [`NgbOffcanvas`](#/components/offcanvas/api#NgbOffcanvas) service.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all offcanvases used in the application.\n *\n * @since 12.1.0\n */\nclass NgbOffcanvasConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.backdrop = true;\n this.keyboard = true;\n this.position = 'start';\n this.scroll = false;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasConfig, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasConfig, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * A reference to the currently opened (active) offcanvas.\n *\n * Instances of this class can be injected into your component passed as offcanvas content.\n * So you can `.close()` or `.dismiss()` the offcanvas window from your component.\n *\n * @since 12.1.0\n */\nclass NgbActiveOffcanvas {\n /**\n * Closes the offcanvas with an optional `result` value.\n *\n * The `NgbOffcanvasRef.result` promise will be resolved with the provided value.\n */\n close(result) { }\n /**\n * Dismisses the offcanvas with an optional `reason` value.\n *\n * The `NgbOffcanvasRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) { }\n}\n/**\n * A reference to the newly opened offcanvas returned by the `NgbOffcanvas.open()` method.\n *\n * @since 12.1.0\n */\nclass NgbOffcanvasRef {\n /**\n * The instance of a component used for the offcanvas content.\n *\n * When a `TemplateRef` is used as the content or when the offcanvas is closed, will return `undefined`.\n */\n get componentInstance() {\n if (this._contentRef && this._contentRef.componentRef) {\n return this._contentRef.componentRef.instance;\n }\n }\n /**\n * The observable that emits when the offcanvas is closed via the `.close()` method.\n *\n * It will emit the result passed to the `.close()` method.\n */\n get closed() {\n return this._closed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when the offcanvas is dismissed via the `.dismiss()` method.\n *\n * It will emit the reason passed to the `.dismissed()` method by the user, or one of the internal\n * reasons like backdrop click or ESC key press.\n */\n get dismissed() {\n return this._dismissed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when both offcanvas window and backdrop are closed and animations were finished.\n * At this point offcanvas and backdrop elements will be removed from the DOM tree.\n *\n * This observable will be completed after emitting.\n */\n get hidden() {\n return this._hidden.asObservable();\n }\n /**\n * The observable that emits when offcanvas is fully visible and animation was finished.\n * The offcanvas DOM element is always available synchronously after calling 'offcanvas.open()' service.\n *\n * This observable will be completed after emitting.\n * It will not emit, if offcanvas is closed before open animation is finished.\n */\n get shown() {\n return this._panelCmptRef.instance.shown.asObservable();\n }\n constructor(_panelCmptRef, _contentRef, _backdropCmptRef, _beforeDismiss) {\n this._panelCmptRef = _panelCmptRef;\n this._contentRef = _contentRef;\n this._backdropCmptRef = _backdropCmptRef;\n this._beforeDismiss = _beforeDismiss;\n this._closed = new Subject();\n this._dismissed = new Subject();\n this._hidden = new Subject();\n _panelCmptRef.instance.dismissEvent.subscribe((reason) => {\n this.dismiss(reason);\n });\n if (_backdropCmptRef) {\n _backdropCmptRef.instance.dismissEvent.subscribe((reason) => {\n this.dismiss(reason);\n });\n }\n this.result = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n this.result.then(null, () => { });\n }\n /**\n * Closes the offcanvas with an optional `result` value.\n *\n * The `NgbMobalRef.result` promise will be resolved with the provided value.\n */\n close(result) {\n if (this._panelCmptRef) {\n this._closed.next(result);\n this._resolve(result);\n this._removeOffcanvasElements();\n }\n }\n _dismiss(reason) {\n this._dismissed.next(reason);\n this._reject(reason);\n this._removeOffcanvasElements();\n }\n /**\n * Dismisses the offcanvas with an optional `reason` value.\n *\n * The `NgbOffcanvasRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) {\n if (this._panelCmptRef) {\n if (!this._beforeDismiss) {\n this._dismiss(reason);\n }\n else {\n const dismiss = this._beforeDismiss();\n if (isPromise(dismiss)) {\n dismiss.then((result) => {\n if (result !== false) {\n this._dismiss(reason);\n }\n }, () => { });\n }\n else if (dismiss !== false) {\n this._dismiss(reason);\n }\n }\n }\n }\n _removeOffcanvasElements() {\n const panelTransition$ = this._panelCmptRef.instance.hide();\n const backdropTransition$ = this._backdropCmptRef ? this._backdropCmptRef.instance.hide() : of(undefined);\n // hiding panel\n panelTransition$.subscribe(() => {\n const { nativeElement } = this._panelCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._panelCmptRef.destroy();\n if (this._contentRef && this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n this._panelCmptRef = null;\n this._contentRef = null;\n });\n // hiding backdrop\n backdropTransition$.subscribe(() => {\n if (this._backdropCmptRef) {\n const { nativeElement } = this._backdropCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._backdropCmptRef.destroy();\n this._backdropCmptRef = null;\n }\n });\n // all done\n zip(panelTransition$, backdropTransition$).subscribe(() => {\n this._hidden.next();\n this._hidden.complete();\n });\n }\n}\n\nvar OffcanvasDismissReasons;\n(function (OffcanvasDismissReasons) {\n OffcanvasDismissReasons[OffcanvasDismissReasons[\"BACKDROP_CLICK\"] = 0] = \"BACKDROP_CLICK\";\n OffcanvasDismissReasons[OffcanvasDismissReasons[\"ESC\"] = 1] = \"ESC\";\n})(OffcanvasDismissReasons || (OffcanvasDismissReasons = {}));\n\nclass NgbOffcanvasBackdrop {\n constructor() {\n this._nativeElement = inject(ElementRef).nativeElement;\n this._zone = inject(NgZone);\n this.dismissEvent = new EventEmitter();\n }\n ngOnInit() {\n this._zone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n ngbRunTransition(this._zone, this._nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n }, { animation: this.animation, runningTransition: 'continue' });\n });\n }\n hide() {\n return ngbRunTransition(this._zone, this._nativeElement, ({ classList }) => classList.remove('show'), {\n animation: this.animation,\n runningTransition: 'stop',\n });\n }\n dismiss() {\n if (!this.static) {\n this.dismissEvent.emit(OffcanvasDismissReasons.BACKDROP_CLICK);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasBackdrop, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbOffcanvasBackdrop, isStandalone: true, selector: \"ngb-offcanvas-backdrop\", inputs: { animation: \"animation\", backdropClass: \"backdropClass\", static: \"static\" }, outputs: { dismissEvent: \"dismiss\" }, host: { listeners: { \"mousedown\": \"dismiss()\" }, properties: { \"class\": \"\\\"offcanvas-backdrop\\\" + (backdropClass ? \\\" \\\" + backdropClass : \\\"\\\")\", \"class.show\": \"!animation\", \"class.fade\": \"animation\" } }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasBackdrop, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-offcanvas-backdrop',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n template: '',\n host: {\n '[class]': '\"offcanvas-backdrop\" + (backdropClass ? \" \" + backdropClass : \"\")',\n '[class.show]': '!animation',\n '[class.fade]': 'animation',\n '(mousedown)': 'dismiss()',\n },\n }]\n }], propDecorators: { animation: [{\n type: Input\n }], backdropClass: [{\n type: Input\n }], static: [{\n type: Input\n }], dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }] } });\n\nclass NgbOffcanvasPanel {\n constructor() {\n this._document = inject(DOCUMENT);\n this._elRef = inject((ElementRef));\n this._zone = inject(NgZone);\n this._closed$ = new Subject();\n this._elWithFocus = null; // element that is focused prior to offcanvas opening\n this.keyboard = true;\n this.position = 'start';\n this.dismissEvent = new EventEmitter();\n this.shown = new Subject();\n this.hidden = new Subject();\n }\n dismiss(reason) {\n this.dismissEvent.emit(reason);\n }\n ngOnInit() {\n this._elWithFocus = this._document.activeElement;\n this._zone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this._show();\n });\n }\n ngOnDestroy() {\n this._disableEventHandling();\n }\n hide() {\n const context = { animation: this.animation, runningTransition: 'stop' };\n const offcanvasTransition$ = ngbRunTransition(this._zone, this._elRef.nativeElement, (element) => {\n element.classList.remove('showing');\n element.classList.add('hiding');\n return () => element.classList.remove('show', 'hiding');\n }, context);\n offcanvasTransition$.subscribe(() => {\n this.hidden.next();\n this.hidden.complete();\n });\n this._disableEventHandling();\n this._restoreFocus();\n return offcanvasTransition$;\n }\n _show() {\n const context = { animation: this.animation, runningTransition: 'continue' };\n const offcanvasTransition$ = ngbRunTransition(this._zone, this._elRef.nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show', 'showing');\n return () => element.classList.remove('showing');\n }, context);\n offcanvasTransition$.subscribe(() => {\n this.shown.next();\n this.shown.complete();\n });\n this._enableEventHandling();\n this._setFocus();\n }\n _enableEventHandling() {\n const { nativeElement } = this._elRef;\n this._zone.runOutsideAngular(() => {\n fromEvent(nativeElement, 'keydown')\n .pipe(takeUntil(this._closed$), \n /* eslint-disable-next-line deprecation/deprecation */\n filter((e) => e.which === Key.Escape))\n .subscribe((event) => {\n if (this.keyboard) {\n requestAnimationFrame(() => {\n if (!event.defaultPrevented) {\n this._zone.run(() => this.dismiss(OffcanvasDismissReasons.ESC));\n }\n });\n }\n });\n });\n }\n _disableEventHandling() {\n this._closed$.next();\n }\n _setFocus() {\n const { nativeElement } = this._elRef;\n if (!nativeElement.contains(document.activeElement)) {\n const autoFocusable = nativeElement.querySelector(`[ngbAutofocus]`);\n const firstFocusable = getFocusableBoundaryElements(nativeElement)[0];\n const elementToFocus = autoFocusable || firstFocusable || nativeElement;\n elementToFocus.focus();\n }\n }\n _restoreFocus() {\n const body = this._document.body;\n const elWithFocus = this._elWithFocus;\n let elementToFocus;\n if (elWithFocus && elWithFocus['focus'] && body.contains(elWithFocus)) {\n elementToFocus = elWithFocus;\n }\n else {\n elementToFocus = body;\n }\n this._zone.runOutsideAngular(() => {\n setTimeout(() => elementToFocus.focus());\n this._elWithFocus = null;\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasPanel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"17.0.0\", type: NgbOffcanvasPanel, isStandalone: true, selector: \"ngb-offcanvas-panel\", inputs: { animation: \"animation\", ariaLabelledBy: \"ariaLabelledBy\", ariaDescribedBy: \"ariaDescribedBy\", keyboard: \"keyboard\", panelClass: \"panelClass\", position: \"position\" }, outputs: { dismissEvent: \"dismiss\" }, host: { attributes: { \"role\": \"dialog\", \"tabindex\": \"-1\" }, properties: { \"class\": \"\\\"offcanvas offcanvas-\\\" + position + (panelClass ? \\\" \\\" + panelClass : \\\"\\\")\", \"attr.aria-modal\": \"true\", \"attr.aria-labelledby\": \"ariaLabelledBy\", \"attr.aria-describedby\": \"ariaDescribedBy\" } }, ngImport: i0, template: '<ng-content />', isInline: true, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasPanel, decorators: [{\n type: Component,\n args: [{\n selector: 'ngb-offcanvas-panel',\n standalone: true,\n template: '<ng-content />',\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"offcanvas offcanvas-\" + position + (panelClass ? \" \" + panelClass : \"\")',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.aria-describedby]': 'ariaDescribedBy',\n },\n }]\n }], propDecorators: { animation: [{\n type: Input\n }], ariaLabelledBy: [{\n type: Input\n }], ariaDescribedBy: [{\n type: Input\n }], keyboard: [{\n type: Input\n }], panelClass: [{\n type: Input\n }], position: [{\n type: Input\n }], dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }] } });\n\nclass NgbOffcanvasStack {\n constructor() {\n this._applicationRef = inject(ApplicationRef);\n this._injector = inject(Injector);\n this._document = inject(DOCUMENT);\n this._scrollBar = inject(ScrollBar);\n this._activePanelCmptHasChanged = new Subject();\n this._scrollBarRestoreFn = null;\n this._backdropAttributes = ['animation', 'backdropClass'];\n this._panelAttributes = ['animation', 'ariaDescribedBy', 'ariaLabelledBy', 'keyboard', 'panelClass', 'position'];\n this._activeInstance = new EventEmitter();\n const ngZone = inject(NgZone);\n // Trap focus on active PanelCmpt\n this._activePanelCmptHasChanged.subscribe(() => {\n if (this._panelCmpt) {\n ngbFocusTrap(ngZone, this._panelCmpt.location.nativeElement, this._activePanelCmptHasChanged);\n }\n });\n }\n _restoreScrollBar() {\n const scrollBarRestoreFn = this._scrollBarRestoreFn;\n if (scrollBarRestoreFn) {\n this._scrollBarRestoreFn = null;\n scrollBarRestoreFn();\n }\n }\n _hideScrollBar() {\n if (!this._scrollBarRestoreFn) {\n this._scrollBarRestoreFn = this._scrollBar.hide();\n }\n }\n open(contentInjector, content, options) {\n const containerEl = options.container instanceof HTMLElement\n ? options.container\n : isDefined(options.container)\n ? this._document.querySelector(options.container)\n : this._document.body;\n if (!containerEl) {\n throw new Error(`The specified offcanvas container \"${options.container || 'body'}\" was not found in the DOM.`);\n }\n if (!options.scroll) {\n this._hideScrollBar();\n }\n const activeOffcanvas = new NgbActiveOffcanvas();\n const contentRef = this._getContentRef(options.injector || contentInjector, content, activeOffcanvas);\n let backdropCmptRef = options.backdrop !== false ? this._attachBackdrop(containerEl) : undefined;\n let panelCmptRef = this._attachWindowComponent(containerEl, contentRef.nodes);\n let ngbOffcanvasRef = new NgbOffcanvasRef(panelCmptRef, contentRef, backdropCmptRef, options.beforeDismiss);\n this._registerOffcanvasRef(ngbOffcanvasRef);\n this._registerPanelCmpt(panelCmptRef);\n ngbOffcanvasRef.hidden.pipe(finalize(() => this._restoreScrollBar())).subscribe();\n activeOffcanvas.close = (result) => {\n ngbOffcanvasRef.close(result);\n };\n activeOffcanvas.dismiss = (reason) => {\n ngbOffcanvasRef.dismiss(reason);\n };\n this._applyPanelOptions(panelCmptRef.instance, options);\n if (backdropCmptRef && backdropCmptRef.instance) {\n this._applyBackdropOptions(backdropCmptRef.instance, options);\n backdropCmptRef.changeDetectorRef.detectChanges();\n }\n panelCmptRef.changeDetectorRef.detectChanges();\n return ngbOffcanvasRef;\n }\n get activeInstance() {\n return this._activeInstance;\n }\n dismiss(reason) {\n this._offcanvasRef?.dismiss(reason);\n }\n hasOpenOffcanvas() {\n return !!this._offcanvasRef;\n }\n _attachBackdrop(containerEl) {\n let backdropCmptRef = createComponent(NgbOffcanvasBackdrop, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector,\n });\n this._applicationRef.attachView(backdropCmptRef.hostView);\n containerEl.appendChild(backdropCmptRef.location.nativeElement);\n return backdropCmptRef;\n }\n _attachWindowComponent(containerEl, projectableNodes) {\n let panelCmptRef = createComponent(NgbOffcanvasPanel, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector,\n projectableNodes,\n });\n this._applicationRef.attachView(panelCmptRef.hostView);\n containerEl.appendChild(panelCmptRef.location.nativeElement);\n return panelCmptRef;\n }\n _applyPanelOptions(windowInstance, options) {\n this._panelAttributes.forEach((optionName) => {\n if (isDefined(options[optionName])) {\n windowInstance[optionName] = options[optionName];\n }\n });\n }\n _applyBackdropOptions(backdropInstance, options) {\n this._backdropAttributes.forEach((optionName) => {\n if (isDefined(options[optionName])) {\n backdropInstance[optionName] = options[optionName];\n }\n });\n backdropInstance.static = options.backdrop === 'static';\n }\n _getContentRef(contentInjector, content, activeOffcanvas) {\n if (!content) {\n return new ContentRef([]);\n }\n else if (content instanceof TemplateRef) {\n return this._createFromTemplateRef(content, activeOffcanvas);\n }\n else if (isString(content)) {\n return this._createFromString(content);\n }\n else {\n return this._createFromComponent(contentInjector, content, activeOffcanvas);\n }\n }\n _createFromTemplateRef(templateRef, activeOffcanvas) {\n const context = {\n $implicit: activeOffcanvas,\n close(result) {\n activeOffcanvas.close(result);\n },\n dismiss(reason) {\n activeOffcanvas.dismiss(reason);\n },\n };\n const viewRef = templateRef.createEmbeddedView(context);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n _createFromString(content) {\n const component = this._document.createTextNode(`${content}`);\n return new ContentRef([[component]]);\n }\n _createFromComponent(contentInjector, componentType, context) {\n const elementInjector = Injector.create({\n providers: [{ provide: NgbActiveOffcanvas, useValue: context }],\n parent: contentInjector,\n });\n const componentRef = createComponent(componentType, {\n environmentInjector: this._applicationRef.injector,\n elementInjector,\n });\n const componentNativeEl = componentRef.location.nativeElement;\n this._applicationRef.attachView(componentRef.hostView);\n return new ContentRef([[componentNativeEl]], componentRef.hostView, componentRef);\n }\n _registerOffcanvasRef(ngbOffcanvasRef) {\n const unregisterOffcanvasRef = () => {\n this._offcanvasRef = undefined;\n this._activeInstance.emit(this._offcanvasRef);\n };\n this._offcanvasRef = ngbOffcanvasRef;\n this._activeInstance.emit(this._offcanvasRef);\n ngbOffcanvasRef.result.then(unregisterOffcanvasRef, unregisterOffcanvasRef);\n }\n _registerPanelCmpt(ngbPanelCmpt) {\n this._panelCmpt = ngbPanelCmpt;\n this._activePanelCmptHasChanged.next();\n ngbPanelCmpt.onDestroy(() => {\n this._panelCmpt = undefined;\n this._activePanelCmptHasChanged.next();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasStack, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasStack, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasStack, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n\n/**\n * A service for opening an offcanvas.\n *\n * Creating an offcanvas is straightforward: create a component or a template and pass it as an argument to\n * the `.open()` method.\n *\n * @since 12.1.0\n */\nclass NgbOffcanvas {\n constructor() {\n this._injector = inject(Injector);\n this._offcanvasStack = inject(NgbOffcanvasStack);\n this._config = inject(NgbOffcanvasConfig);\n }\n /**\n * Opens a new offcanvas panel with the specified content and supplied options.\n *\n * Content can be provided as a `TemplateRef` or a component type. If you pass a component type as content,\n * then instances of those components can be injected with an instance of the `NgbActiveOffcanvas` class. You can then\n * use `NgbActiveOffcanvas` methods to close / dismiss offcanvas from \"inside\" of your component.\n *\n * Also see the [`NgbOffcanvasOptions`](#/components/offcanvas/api#NgbOffcanvasOptions) for the list of supported\n * options.\n */\n open(content, options = {}) {\n const combinedOptions = { ...this._config, animation: this._config.animation, ...options };\n return this._offcanvasStack.open(this._injector, content, combinedOptions);\n }\n /**\n * Returns an observable that holds the active offcanvas instance.\n */\n get activeInstance() {\n return this._offcanvasStack.activeInstance;\n }\n /**\n * Dismisses the currently displayed offcanvas with the supplied reason.\n */\n dismiss(reason) {\n this._offcanvasStack.dismiss(reason);\n }\n /**\n * Indicates if there is currently an open offcanvas in the application.\n */\n hasOpenOffcanvas() {\n return this._offcanvasStack.hasOpenOffcanvas();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvas, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvas, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvas, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass NgbOffcanvasModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbOffcanvasModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n\nconst NGB_MODULES = [\n NgbAccordionModule,\n NgbAlertModule,\n NgbCarouselModule,\n NgbCollapseModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbModalModule,\n NgbNavModule,\n NgbOffcanvasModule,\n NgbPaginationModule,\n NgbPopoverModule,\n NgbProgressbarModule,\n NgbRatingModule,\n NgbScrollSpyModule,\n NgbTimepickerModule,\n NgbToastModule,\n NgbTooltipModule,\n NgbTypeaheadModule,\n];\nclass NgbModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModule, imports: [NgbAccordionModule,\n NgbAlertModule,\n NgbCarouselModule,\n NgbCollapseModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbModalModule,\n NgbNavModule,\n NgbOffcanvasModule,\n NgbPaginationModule,\n NgbPopoverModule,\n NgbProgressbarModule,\n NgbRatingModule,\n NgbScrollSpyModule,\n NgbTimepickerModule,\n NgbToastModule,\n NgbTooltipModule,\n NgbTypeaheadModule], exports: [NgbAccordionModule,\n NgbAlertModule,\n NgbCarouselModule,\n NgbCollapseModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbModalModule,\n NgbNavModule,\n NgbOffcanvasModule,\n NgbPaginationModule,\n NgbPopoverModule,\n NgbProgressbarModule,\n NgbRatingModule,\n NgbScrollSpyModule,\n NgbTimepickerModule,\n NgbToastModule,\n NgbTooltipModule,\n NgbTypeaheadModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModule, imports: [NGB_MODULES, NgbAccordionModule,\n NgbAlertModule,\n NgbCarouselModule,\n NgbCollapseModule,\n NgbDatepickerModule,\n NgbDropdownModule,\n NgbModalModule,\n NgbNavModule,\n NgbOffcanvasModule,\n NgbPaginationModule,\n NgbPopoverModule,\n NgbProgressbarModule,\n NgbRatingModule,\n NgbScrollSpyModule,\n NgbTimepickerModule,\n NgbToastModule,\n NgbTooltipModule,\n NgbTypeaheadModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.0\", ngImport: i0, type: NgbModule, decorators: [{\n type: NgModule,\n args: [{ imports: NGB_MODULES, exports: NGB_MODULES }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ModalDismissReasons, NgbAccordionBody, NgbAccordionButton, NgbAccordionCollapse, NgbAccordionConfig, NgbAccordionDirective, NgbAccordionHeader, NgbAccordionItem, NgbAccordionModule, NgbAccordionToggle, NgbActiveModal, NgbActiveOffcanvas, NgbAlert, NgbAlertConfig, NgbAlertModule, NgbCalendar, NgbCalendarBuddhist, NgbCalendarEthiopian, NgbCalendarGregorian, NgbCalendarHebrew, NgbCalendarIslamicCivil, NgbCalendarIslamicUmalqura, NgbCalendarPersian, NgbCarousel, NgbCarouselConfig, NgbCarouselModule, NgbCollapse, NgbCollapseConfig, NgbCollapseModule, NgbConfig, NgbDate, NgbDateAdapter, NgbDateNativeAdapter, NgbDateNativeUTCAdapter, NgbDateParserFormatter, NgbDateStructAdapter, NgbDatepicker, NgbDatepickerConfig, NgbDatepickerContent, NgbDatepickerI18n, NgbDatepickerI18nAmharic, NgbDatepickerI18nDefault, NgbDatepickerI18nHebrew, NgbDatepickerKeyboardService, NgbDatepickerModule, NgbDatepickerMonth, NgbDropdown, NgbDropdownAnchor, NgbDropdownButtonItem, NgbDropdownConfig, NgbDropdownItem, NgbDropdownMenu, NgbDropdownModule, NgbDropdownToggle, NgbHighlight, NgbInputDatepicker, NgbInputDatepickerConfig, NgbModal, NgbModalConfig, NgbModalModule, NgbModalRef, NgbModule, NgbNav, NgbNavConfig, NgbNavContent, NgbNavItem, NgbNavItemRole, NgbNavLink, NgbNavLinkBase, NgbNavLinkButton, NgbNavModule, NgbNavOutlet, NgbNavPane, NgbOffcanvas, NgbOffcanvasConfig, NgbOffcanvasModule, NgbOffcanvasRef, NgbPagination, NgbPaginationConfig, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationModule, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPages, NgbPaginationPrevious, NgbPopover, NgbPopoverConfig, NgbPopoverModule, NgbProgressbar, NgbProgressbarConfig, NgbProgressbarModule, NgbProgressbarStacked, NgbRating, NgbRatingConfig, NgbRatingModule, NgbScrollSpy, NgbScrollSpyConfig, NgbScrollSpyFragment, NgbScrollSpyItem, NgbScrollSpyMenu, NgbScrollSpyModule, NgbScrollSpyService, NgbSlide, NgbSlideEventDirection, NgbSlideEventSource, NgbTimeAdapter, NgbTimepicker, NgbTimepickerConfig, NgbTimepickerI18n, NgbTimepickerModule, NgbToast, NgbToastConfig, NgbToastHeader, NgbToastModule, NgbTooltip, NgbTooltipConfig, NgbTooltipModule, NgbTypeahead, NgbTypeaheadConfig, NgbTypeaheadModule, OffcanvasDismissReasons };\n"],"mappings":"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cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc;AACd;AACA,cAAc,EACd,cAAc,EACd,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AA;IAAAC,eAAA;EAAA,EAA+K;AAC7P;AACA;EAAA,QAAAnQ,SAAA,oBAAAA,SAAA,KA7hRoG9a,EAAE,CAAA+a,iBAAA,CA6hRX+2C,aAAa,EAAc,CAAC;IAC3G92C,IAAI,EAAEha,SAAS;IACfia,IAAI,EAAE,CAAC;MACCuC,QAAQ,EAAE,gBAAgB;MAC1B4F,UAAU,EAAE,IAAI;MAChB+F,OAAO,EAAE,CAACxlB,gBAAgB,CAAC;MAC3BsnB,eAAe,EAAEhqB,uBAAuB,CAACiqB,MAAM;MAC/C7H,IAAI,EAAE;QACFyC,IAAI,EAAE;MACV,CAAC;MACD6E,QAAQ,EAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACgB,CAAC;EACT,CAAC,CAAC,QAAkB;IAAEza,WAAW,EAAE,CAAC;MAC5B8K,IAAI,EAAEra,YAAY;MAClBsa,IAAI,EAAE,CAAC+1C,qBAAqB,EAAE;QAAE9rC,MAAM,EAAE;MAAM,CAAC;IACnD,CAAC,CAAC;IAAE3T,QAAQ,EAAE,CAAC;MACXyJ,IAAI,EAAEra,YAAY;MAClBsa,IAAI,EAAE,CAACi2C,kBAAkB,EAAE;QAAEhsC,MAAM,E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A,SAAA,KAjrVoG9a,EAAE,CAAA+a,iBAAA,CAirVXinD,aAAa,EAAc,CAAC;IAC3GhnD,IAAI,EAAEha,SAAS;IACfia,IAAI,EAAE,CAAC;MAAEkI,QAAQ,EAAE,eAAe;MAAE3F,QAAQ,EAAE,gBAAgB;MAAE4F,UAAU,EAAE,IAAI;MAAE4H,aAAa,EAAE9pB,iBAAiB,CAAC+hB,IAAI;MAAE0H,QAAQ,EAAG;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;MAAE+Y,SAAS,EAAE,CAAC;QAAEN,OAAO,EAA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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |