mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 12:37:53 +00:00
1 line
1.7 MiB
1 line
1.7 MiB
{"ast":null,"code":"import { ɵɵdefineInjectable, Injectable, ɵɵinject, Directive, TemplateRef, EventEmitter, Input, Output, ContentChildren, Component, ViewEncapsulation, ElementRef, NgZone, ChangeDetectorRef, Optional, Host, NgModule, ChangeDetectionStrategy, Renderer2, forwardRef, Inject, PLATFORM_ID, LOCALE_ID, ViewChild, ContentChild, ViewContainerRef, ComponentFactoryResolver, Injector, ApplicationRef, INJECTOR, RendererFactory2, Attribute, ViewChildren, HostBinding, InjectionToken } from '@angular/core';\nimport { CommonModule, isPlatformBrowser, getLocaleMonthNames, FormStyle, TranslationWidth, getLocaleDayNames, formatDate, DOCUMENT, getLocaleDayPeriods } from '@angular/common';\nimport { Observable, EMPTY, of, Subject, fromEvent, timer, race, BehaviorSubject, combineLatest, NEVER, zip, merge } from 'rxjs';\nimport { endWith, takeUntil, filter, take, map, startWith, distinctUntilChanged, switchMap, tap, withLatestFrom, delay, mergeMap, skip, share } from 'rxjs/operators';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule } from '@angular/forms';\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\nimport * as ɵngcc2 from '@angular/forms';\nfunction NgbAccordion_ng_template_0_ng_template_2_Template(rf, ctx) {}\nfunction NgbAccordion_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"button\", 3);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵtemplate(2, NgbAccordion_ng_template_0_ng_template_2_Template, 0, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const panel_r3 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngbPanelToggle\", panel_r3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", panel_r3.title, \"\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", panel_r3.titleTpl == null ? null : panel_r3.titleTpl.templateRef);\n }\n}\nfunction NgbAccordion_ng_template_2_ng_template_2_Template(rf, ctx) {}\nfunction NgbAccordion_ng_template_2_div_3_ng_template_2_Template(rf, ctx) {}\nfunction NgbAccordion_ng_template_2_div_3_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 8)(1, \"div\", 9);\n ɵngcc0.ɵɵtemplate(2, NgbAccordion_ng_template_2_div_3_ng_template_2_Template, 0, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const panel_r5 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵpropertyInterpolate(\"id\", panel_r5.id);\n ɵngcc0.ɵɵattribute(\"aria-labelledby\", panel_r5.id + \"-header\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (panel_r5.contentTpl == null ? null : panel_r5.contentTpl.templateRef) || null);\n }\n}\nconst _c0 = function (a0, a1) {\n return {\n $implicit: a0,\n opened: a1\n };\n};\nfunction NgbAccordion_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\")(1, \"div\", 5);\n ɵngcc0.ɵɵtemplate(2, NgbAccordion_ng_template_2_ng_template_2_Template, 0, 0, \"ng-template\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, NgbAccordion_ng_template_2_div_3_Template, 3, 3, \"div\", 7);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const panel_r5 = ctx.$implicit;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵclassMap(\"card \" + (panel_r5.cardClass || \"\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassMap(\"card-header \" + (panel_r5.type ? \"bg-\" + panel_r5.type : ctx_r2.type ? \"bg-\" + ctx_r2.type : \"\"));\n ɵngcc0.ɵɵpropertyInterpolate1(\"id\", \"\", panel_r5.id, \"-header\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (panel_r5.headerTpl == null ? null : panel_r5.headerTpl.templateRef) || _r0)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(8, _c0, panel_r5, panel_r5.isOpen));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r2.destroyOnHide || panel_r5.isOpen || panel_r5.transitionRunning);\n }\n}\nfunction NgbAlert_button_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 1);\n ɵngcc0.ɵɵlistener(\"click\", function NgbAlert_button_1_Template_button_click_0_listener() {\n ɵngcc0.ɵɵrestoreView(_r2);\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r1.close());\n });\n ɵngcc0.ɵɵelementStart(1, \"span\", 2);\n ɵngcc0.ɵɵtext(2, \"\\u00D7\");\n ɵngcc0.ɵɵelementEnd()();\n }\n}\nconst _c3 = [\"*\"];\nfunction NgbCarousel_li_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function NgbCarousel_li_1_Template_li_click_0_listener() {\n const restoredCtx = ɵngcc0.ɵɵrestoreView(_r6);\n const slide_r4 = restoredCtx.$implicit;\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ctx_r5.focus();\n return ɵngcc0.ɵɵresetView(ctx_r5.select(slide_r4.id, ctx_r5.NgbSlideEventSource.INDICATOR));\n });\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const slide_r4 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"active\", slide_r4.id === ctx_r0.activeId);\n ɵngcc0.ɵɵattribute(\"aria-labelledby\", \"slide-\" + slide_r4.id)(\"aria-controls\", \"slide-\" + slide_r4.id)(\"aria-selected\", slide_r4.id === ctx_r0.activeId);\n }\n}\nfunction NgbCarousel_div_3_ng_template_3_Template(rf, ctx) {}\nfunction NgbCarousel_div_3_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 7)(1, \"span\", 8);\n ɵngcc0.ɵɵi18n(2, 9);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, NgbCarousel_div_3_ng_template_3_Template, 0, 0, \"ng-template\", 10);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const slide_r7 = ctx.$implicit;\n const i_r8 = ctx.index;\n const c_r9 = ctx.count;\n ɵngcc0.ɵɵproperty(\"id\", \"slide-\" + slide_r7.id);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵi18nExp(i_r8 + 1)(c_r9);\n ɵngcc0.ɵɵi18nApply(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", slide_r7.tplRef);\n }\n}\nfunction NgbCarousel_a_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbCarousel_a_4_Template_a_click_0_listener() {\n ɵngcc0.ɵɵrestoreView(_r12);\n const ctx_r11 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r11.arrowLeft());\n });\n ɵngcc0.ɵɵelement(1, \"span\", 12);\n ɵngcc0.ɵɵelementStart(2, \"span\", 8);\n ɵngcc0.ɵɵi18n(3, 13);\n ɵngcc0.ɵɵelementEnd()();\n }\n}\nfunction NgbCarousel_a_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r14 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 14);\n ɵngcc0.ɵɵlistener(\"click\", function NgbCarousel_a_5_Template_a_click_0_listener() {\n ɵngcc0.ɵɵrestoreView(_r14);\n const ctx_r13 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r13.arrowRight());\n });\n ɵngcc0.ɵɵelement(1, \"span\", 15);\n ɵngcc0.ɵɵelementStart(2, \"span\", 8);\n ɵngcc0.ɵɵi18n(3, 16);\n ɵngcc0.ɵɵelementEnd()();\n }\n}\nconst _c10 = [\"defaultDayTemplate\"];\nconst _c11 = [\"content\"];\nfunction NgbDatepicker_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 7);\n }\n if (rf & 2) {\n const date_r8 = ctx.date;\n const currentMonth_r9 = ctx.currentMonth;\n const selected_r10 = ctx.selected;\n const disabled_r11 = ctx.disabled;\n const focused_r12 = ctx.focused;\n ɵngcc0.ɵɵproperty(\"date\", date_r8)(\"currentMonth\", currentMonth_r9)(\"selected\", selected_r10)(\"disabled\", disabled_r11)(\"focused\", focused_r12);\n }\n}\nfunction NgbDatepicker_ng_template_2_div_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 12);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const month_r14 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r16 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r16.i18n.getMonthLabel(month_r14.firstDate), \" \");\n }\n}\nfunction NgbDatepicker_ng_template_2_div_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 9);\n ɵngcc0.ɵɵtemplate(1, NgbDatepicker_ng_template_2_div_0_div_1_Template, 2, 1, \"div\", 10);\n ɵngcc0.ɵɵelement(2, \"ngb-datepicker-month\", 11);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const month_r14 = ctx.$implicit;\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r13.navigation === \"none\" || ctx_r13.displayMonths > 1 && ctx_r13.navigation === \"select\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"month\", month_r14.firstDate);\n }\n}\nfunction NgbDatepicker_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepicker_ng_template_2_div_0_Template, 3, 2, \"div\", 8);\n }\n if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r3.model.months);\n }\n}\nfunction NgbDatepicker_ngb_datepicker_navigation_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r19 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"ngb-datepicker-navigation\", 13);\n ɵngcc0.ɵɵlistener(\"navigate\", function NgbDatepicker_ngb_datepicker_navigation_5_Template_ngb_datepicker_navigation_navigate_0_listener($event) {\n ɵngcc0.ɵɵrestoreView(_r19);\n const ctx_r18 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r18.onNavigateEvent($event));\n })(\"select\", function NgbDatepicker_ngb_datepicker_navigation_5_Template_ngb_datepicker_navigation_select_0_listener($event) {\n ɵngcc0.ɵɵrestoreView(_r19);\n const ctx_r20 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r20.onNavigateDateSelect($event));\n });\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"date\", ctx_r4.model.firstDate)(\"months\", ctx_r4.model.months)(\"disabled\", ctx_r4.model.disabled)(\"showSelect\", ctx_r4.model.navigation === \"select\")(\"prevDisabled\", ctx_r4.model.prevDisabled)(\"nextDisabled\", ctx_r4.model.nextDisabled)(\"selectBoxes\", ctx_r4.model.selectBoxes);\n }\n}\nfunction NgbDatepicker_ng_template_8_Template(rf, ctx) {}\nfunction NgbDatepicker_ng_template_9_Template(rf, ctx) {}\nfunction NgbDatepickerMonth_div_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 5);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r2.i18n.getWeekLabel());\n }\n}\nfunction NgbDatepickerMonth_div_0_div_2_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 6);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const weekday_r4 = ctx.$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(weekday_r4);\n }\n}\nfunction NgbDatepickerMonth_div_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 2);\n ɵngcc0.ɵɵtemplate(1, NgbDatepickerMonth_div_0_div_1_Template, 2, 1, \"div\", 3);\n ɵngcc0.ɵɵtemplate(2, NgbDatepickerMonth_div_0_div_2_Template, 2, 1, \"div\", 4);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.datepicker.showWeekNumbers);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.viewModel.weekdays);\n }\n}\nfunction NgbDatepickerMonth_ng_template_1_div_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 11);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const week_r5 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r7.i18n.getWeekNumerals(week_r5.number));\n }\n}\nfunction NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_ng_template_0_Template(rf, ctx) {}\nfunction NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_ng_template_0_Template, 0, 0, \"ng-template\", 14);\n }\n if (rf & 2) {\n const day_r10 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r11 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r11.datepicker.dayTemplate)(\"ngTemplateOutletContext\", day_r10.context);\n }\n}\nfunction NgbDatepickerMonth_ng_template_1_div_0_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r15 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 12);\n ɵngcc0.ɵɵlistener(\"click\", function NgbDatepickerMonth_ng_template_1_div_0_div_2_Template_div_click_0_listener($event) {\n const restoredCtx = ɵngcc0.ɵɵrestoreView(_r15);\n const day_r10 = restoredCtx.$implicit;\n const ctx_r14 = ɵngcc0.ɵɵnextContext(3);\n ctx_r14.doSelect(day_r10);\n return ɵngcc0.ɵɵresetView($event.preventDefault());\n });\n ɵngcc0.ɵɵtemplate(1, NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_Template, 1, 2, \"ng-template\", 13);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const day_r10 = ctx.$implicit;\n ɵngcc0.ɵɵclassProp(\"disabled\", day_r10.context.disabled)(\"hidden\", day_r10.hidden)(\"ngb-dp-today\", day_r10.context.today);\n ɵngcc0.ɵɵproperty(\"tabindex\", day_r10.tabindex);\n ɵngcc0.ɵɵattribute(\"aria-label\", day_r10.ariaLabel);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !day_r10.hidden);\n }\n}\nfunction NgbDatepickerMonth_ng_template_1_div_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 8);\n ɵngcc0.ɵɵtemplate(1, NgbDatepickerMonth_ng_template_1_div_0_div_1_Template, 2, 1, \"div\", 9);\n ɵngcc0.ɵɵtemplate(2, NgbDatepickerMonth_ng_template_1_div_0_div_2_Template, 2, 9, \"div\", 10);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const week_r5 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.datepicker.showWeekNumbers);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", week_r5.days);\n }\n}\nfunction NgbDatepickerMonth_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerMonth_ng_template_1_div_0_Template, 3, 2, \"div\", 7);\n }\n if (rf & 2) {\n const week_r5 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngIf\", !week_r5.collapsed);\n }\n}\nfunction NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"ngb-datepicker-navigation-select\", 7);\n ɵngcc0.ɵɵlistener(\"select\", function NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template_ngb_datepicker_navigation_select_select_0_listener($event) {\n ɵngcc0.ɵɵrestoreView(_r3);\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r2.select.emit($event));\n });\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"date\", ctx_r0.date)(\"disabled\", ctx_r0.disabled)(\"months\", ctx_r0.selectBoxes.months)(\"years\", ctx_r0.selectBoxes.years);\n }\n}\nfunction NgbDatepickerNavigation_4_ng_template_0_div_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n }\n}\nfunction NgbDatepickerNavigation_4_ng_template_0_div_3_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n }\n}\nfunction NgbDatepickerNavigation_4_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerNavigation_4_ng_template_0_div_0_Template, 1, 0, \"div\", 9);\n ɵngcc0.ɵɵelementStart(1, \"div\", 10);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, NgbDatepickerNavigation_4_ng_template_0_div_3_Template, 1, 0, \"div\", 9);\n }\n if (rf & 2) {\n const month_r5 = ctx.$implicit;\n const i_r6 = ctx.index;\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", i_r6 > 0);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r4.i18n.getMonthLabel(month_r5.firstDate), \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", i_r6 !== ctx_r4.months.length - 1);\n }\n}\nfunction NgbDatepickerNavigation_4_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerNavigation_4_ng_template_0_Template, 4, 3, \"ng-template\", 8);\n }\n if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r1.months);\n }\n}\nconst _c20 = [\"ngbDatepickerDayView\", \"\"];\nconst _c21 = [\"month\"];\nconst _c22 = [\"year\"];\nfunction NgbDatepickerNavigationSelect_option_2_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 5);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const m_r4 = ctx.$implicit;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"value\", m_r4);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r1.i18n.getMonthFullName(m_r4, ctx_r1.date == null ? null : ctx_r1.date.year));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r1.i18n.getMonthShortName(m_r4, ctx_r1.date == null ? null : ctx_r1.date.year));\n }\n}\nfunction NgbDatepickerNavigationSelect_option_5_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 5);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const y_r5 = ctx.$implicit;\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"value\", y_r5);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r3.i18n.getYearNumerals(y_r5));\n }\n}\nconst _c31 = [\"dialog\"];\nconst _c32 = [\"ngbNavOutlet\", \"\"];\nfunction NgbNavOutlet_ng_template_0_div_0_ng_template_1_Template(rf, ctx) {}\nconst _c33 = function (a0) {\n return {\n $implicit: a0\n };\n};\nfunction NgbNavOutlet_ng_template_0_div_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 2);\n ɵngcc0.ɵɵtemplate(1, NgbNavOutlet_ng_template_0_div_0_ng_template_1_Template, 0, 0, \"ng-template\", 3);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r1 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"item\", item_r1)(\"nav\", ctx_r2.nav)(\"role\", ctx_r2.paneRole);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (item_r1.contentTpl == null ? null : item_r1.contentTpl.templateRef) || null)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(5, _c33, item_r1.active || ctx_r2.isPanelTransitioning(item_r1)));\n }\n}\nfunction NgbNavOutlet_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbNavOutlet_ng_template_0_div_0_Template, 2, 7, \"div\", 1);\n }\n if (rf & 2) {\n const item_r1 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", item_r1.isPanelInDom() || ctx_r0.isPanelTransitioning(item_r1));\n }\n}\nfunction NgbPagination_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵi18n(1, 10);\n ɵngcc0.ɵɵelementEnd();\n }\n}\nfunction NgbPagination_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵi18n(1, 11);\n ɵngcc0.ɵɵelementEnd();\n }\n}\nfunction NgbPagination_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵi18n(1, 12);\n ɵngcc0.ɵɵelementEnd();\n }\n}\nfunction NgbPagination_ng_template_6_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵi18n(1, 13);\n ɵngcc0.ɵɵelementEnd();\n }\n}\nfunction NgbPagination_ng_template_8_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtext(0, \"...\");\n }\n}\nfunction NgbPagination_ng_template_10_span_1_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 15);\n ɵngcc0.ɵɵtext(1, \"(current)\");\n ɵngcc0.ɵɵelementEnd();\n }\n}\nfunction NgbPagination_ng_template_10_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n ɵngcc0.ɵɵtemplate(1, NgbPagination_ng_template_10_span_1_Template, 2, 0, \"span\", 14);\n }\n if (rf & 2) {\n const page_r19 = ctx.$implicit;\n const currentPage_r20 = ctx.currentPage;\n ɵngcc0.ɵɵtextInterpolate1(\" \", page_r19, \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", page_r19 === currentPage_r20);\n }\n}\nfunction NgbPagination_ng_template_12_li_0_a_1_ng_template_1_Template(rf, ctx) {}\nconst _c42 = function (a1) {\n return {\n disabled: true,\n currentPage: a1\n };\n};\nfunction NgbPagination_ng_template_12_li_0_a_1_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"a\", 20);\n ɵngcc0.ɵɵtemplate(1, NgbPagination_ng_template_12_li_0_a_1_ng_template_1_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const page_r22 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r27 = ɵngcc0.ɵɵnextContext();\n const _r8 = ɵngcc0.ɵɵreference(9);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r27.tplEllipsis == null ? null : ctx_r27.tplEllipsis.templateRef) || _r8)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(2, _c42, page_r22));\n }\n}\nfunction NgbPagination_ng_template_12_li_0_a_2_ng_template_1_Template(rf, ctx) {}\nconst _c43 = function (a0, a1, a2) {\n return {\n disabled: a0,\n $implicit: a1,\n currentPage: a2\n };\n};\nfunction NgbPagination_ng_template_12_li_0_a_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r34 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 21);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_ng_template_12_li_0_a_2_Template_a_click_0_listener($event) {\n ɵngcc0.ɵɵrestoreView(_r34);\n const pageNumber_r26 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r32 = ɵngcc0.ɵɵnextContext(2);\n ctx_r32.selectPage(pageNumber_r26);\n return ɵngcc0.ɵɵresetView($event.preventDefault());\n });\n ɵngcc0.ɵɵtemplate(1, NgbPagination_ng_template_12_li_0_a_2_ng_template_1_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const pageNumber_r26 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r35 = ɵngcc0.ɵɵnextContext();\n const disabled_r24 = ctx_r35.disabled;\n const page_r22 = ctx_r35.$implicit;\n const ctx_r28 = ɵngcc0.ɵɵnextContext();\n const _r10 = ɵngcc0.ɵɵreference(11);\n ɵngcc0.ɵɵattribute(\"tabindex\", disabled_r24 ? \"-1\" : null)(\"aria-disabled\", disabled_r24 ? \"true\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r28.tplNumber == null ? null : ctx_r28.tplNumber.templateRef) || _r10)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(4, _c43, disabled_r24, pageNumber_r26, page_r22));\n }\n}\nfunction NgbPagination_ng_template_12_li_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 17);\n ɵngcc0.ɵɵtemplate(1, NgbPagination_ng_template_12_li_0_a_1_Template, 2, 4, \"a\", 18);\n ɵngcc0.ɵɵtemplate(2, NgbPagination_ng_template_12_li_0_a_2_Template, 2, 8, \"a\", 19);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const pageNumber_r26 = ctx.$implicit;\n const ctx_r37 = ɵngcc0.ɵɵnextContext();\n const page_r22 = ctx_r37.$implicit;\n const disabled_r24 = ctx_r37.disabled;\n const ctx_r25 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"active\", pageNumber_r26 === page_r22)(\"disabled\", ctx_r25.isEllipsis(pageNumber_r26) || disabled_r24);\n ɵngcc0.ɵɵattribute(\"aria-current\", pageNumber_r26 === page_r22 ? \"page\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r25.isEllipsis(pageNumber_r26));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r25.isEllipsis(pageNumber_r26));\n }\n}\nfunction NgbPagination_ng_template_12_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbPagination_ng_template_12_li_0_Template, 3, 7, \"li\", 16);\n }\n if (rf & 2) {\n const pages_r23 = ctx.pages;\n ɵngcc0.ɵɵproperty(\"ngForOf\", pages_r23);\n }\n}\nfunction NgbPagination_li_15_ng_template_2_Template(rf, ctx) {}\nconst _c46 = function (a0, a1) {\n return {\n disabled: a0,\n currentPage: a1\n };\n};\nfunction NgbPagination_li_15_Template(rf, ctx) {\n if (rf & 1) {\n const _r40 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 17)(1, \"a\", 22);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_li_15_Template_a_click_1_listener($event) {\n ɵngcc0.ɵɵrestoreView(_r40);\n const ctx_r39 = ɵngcc0.ɵɵnextContext();\n ctx_r39.selectPage(1);\n return ɵngcc0.ɵɵresetView($event.preventDefault());\n });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_15_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r14 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx_r14.previousDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx_r14.previousDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r14.previousDisabled() ? \"true\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r14.tplFirst == null ? null : ctx_r14.tplFirst.templateRef) || _r0)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(6, _c46, ctx_r14.previousDisabled(), ctx_r14.page));\n }\n}\nfunction NgbPagination_li_16_ng_template_2_Template(rf, ctx) {}\nconst _c49 = function (a0) {\n return {\n disabled: a0\n };\n};\nfunction NgbPagination_li_16_Template(rf, ctx) {\n if (rf & 1) {\n const _r43 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 17)(1, \"a\", 23);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_li_16_Template_a_click_1_listener($event) {\n ɵngcc0.ɵɵrestoreView(_r43);\n const ctx_r42 = ɵngcc0.ɵɵnextContext();\n ctx_r42.selectPage(ctx_r42.page - 1);\n return ɵngcc0.ɵɵresetView($event.preventDefault());\n });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_16_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r15 = ɵngcc0.ɵɵnextContext();\n const _r2 = ɵngcc0.ɵɵreference(3);\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx_r15.previousDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx_r15.previousDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r15.previousDisabled() ? \"true\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r15.tplPrevious == null ? null : ctx_r15.tplPrevious.templateRef) || _r2)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(6, _c49, ctx_r15.previousDisabled()));\n }\n}\nfunction NgbPagination_ng_template_17_Template(rf, ctx) {}\nfunction NgbPagination_li_18_ng_template_2_Template(rf, ctx) {}\nfunction NgbPagination_li_18_Template(rf, ctx) {\n if (rf & 1) {\n const _r46 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 17)(1, \"a\", 24);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_li_18_Template_a_click_1_listener($event) {\n ɵngcc0.ɵɵrestoreView(_r46);\n const ctx_r45 = ɵngcc0.ɵɵnextContext();\n ctx_r45.selectPage(ctx_r45.page + 1);\n return ɵngcc0.ɵɵresetView($event.preventDefault());\n });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_18_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r17 = ɵngcc0.ɵɵnextContext();\n const _r4 = ɵngcc0.ɵɵreference(5);\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx_r17.nextDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx_r17.nextDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r17.nextDisabled() ? \"true\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r17.tplNext == null ? null : ctx_r17.tplNext.templateRef) || _r4)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(6, _c46, ctx_r17.nextDisabled(), ctx_r17.page));\n }\n}\nfunction NgbPagination_li_19_ng_template_2_Template(rf, ctx) {}\nfunction NgbPagination_li_19_Template(rf, ctx) {\n if (rf & 1) {\n const _r49 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 17)(1, \"a\", 25);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_li_19_Template_a_click_1_listener($event) {\n ɵngcc0.ɵɵrestoreView(_r49);\n const ctx_r48 = ɵngcc0.ɵɵnextContext();\n ctx_r48.selectPage(ctx_r48.pageCount);\n return ɵngcc0.ɵɵresetView($event.preventDefault());\n });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_19_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r18 = ɵngcc0.ɵɵnextContext();\n const _r6 = ɵngcc0.ɵɵreference(7);\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx_r18.nextDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx_r18.nextDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r18.nextDisabled() ? \"true\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r18.tplLast == null ? null : ctx_r18.tplLast.templateRef) || _r6)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(6, _c46, ctx_r18.nextDisabled(), ctx_r18.page));\n }\n}\nconst _c54 = function (a0, a1, a2) {\n return {\n $implicit: a0,\n pages: a1,\n disabled: a2\n };\n};\nfunction NgbPopoverWindow_h3_1_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n }\n if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r2.title);\n }\n}\nfunction NgbPopoverWindow_h3_1_ng_template_3_Template(rf, ctx) {}\nfunction NgbPopoverWindow_h3_1_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"h3\", 3);\n ɵngcc0.ɵɵtemplate(1, NgbPopoverWindow_h3_1_ng_template_1_Template, 1, 1, \"ng-template\", null, 4, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(3, NgbPopoverWindow_h3_1_ng_template_3_Template, 0, 0, \"ng-template\", 5);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const _r1 = ɵngcc0.ɵɵreference(2);\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.isTitleTemplate() ? ctx_r0.title : _r1)(\"ngTemplateOutletContext\", ctx_r0.context);\n }\n}\nfunction NgbProgressbar_span_1_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\");\n ɵngcc0.ɵɵi18n(1, 2);\n ɵngcc0.ɵɵpipe(2, \"percent\");\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵi18nExp(ɵngcc0.ɵɵpipeBind1(2, 1, ctx_r0.getValue() / ctx_r0.max));\n ɵngcc0.ɵɵi18nApply(1);\n }\n}\nfunction NgbRating_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n }\n if (rf & 2) {\n const fill_r3 = ctx.fill;\n ɵngcc0.ɵɵtextInterpolate(fill_r3 === 100 ? \"\\u2605\" : \"\\u2606\");\n }\n}\nfunction NgbRating_ng_template_2_ng_template_3_Template(rf, ctx) {}\nfunction NgbRating_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 2);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"span\", 3);\n ɵngcc0.ɵɵlistener(\"mouseenter\", function NgbRating_ng_template_2_Template_span_mouseenter_2_listener() {\n const restoredCtx = ɵngcc0.ɵɵrestoreView(_r7);\n const index_r4 = restoredCtx.index;\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r6.enter(index_r4 + 1));\n })(\"click\", function NgbRating_ng_template_2_Template_span_click_2_listener() {\n const restoredCtx = ɵngcc0.ɵɵrestoreView(_r7);\n const index_r4 = restoredCtx.index;\n const ctx_r8 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r8.handleClick(index_r4 + 1));\n });\n ɵngcc0.ɵɵtemplate(3, NgbRating_ng_template_2_ng_template_3_Template, 0, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const index_r4 = ctx.index;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\"(\", index_r4 < ctx_r2.nextRate ? \"*\" : \" \", \")\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"cursor\", ctx_r2.isInteractive() ? \"pointer\" : \"default\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.starTemplate || ctx_r2.starTemplateFromContent || _r0)(\"ngTemplateOutletContext\", ctx_r2.contexts[index_r4]);\n }\n}\nfunction NgbTimepicker_button_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_button_3_Template_button_click_0_listener() {\n ɵngcc0.ɵɵrestoreView(_r9);\n const ctx_r8 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r8.changeHour(ctx_r8.hourStep));\n });\n ɵngcc0.ɵɵelement(1, \"span\", 12);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 14);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r0.isSmallSize)(\"btn-lg\", ctx_r0.isLargeSize)(\"disabled\", ctx_r0.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r0.disabled);\n }\n}\nfunction NgbTimepicker_button_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_button_5_Template_button_click_0_listener() {\n ɵngcc0.ɵɵrestoreView(_r11);\n const ctx_r10 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r10.changeHour(-ctx_r10.hourStep));\n });\n ɵngcc0.ɵɵelement(1, \"span\", 15);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 16);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r1.isSmallSize)(\"btn-lg\", ctx_r1.isLargeSize)(\"disabled\", ctx_r1.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r1.disabled);\n }\n}\nfunction NgbTimepicker_button_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r13 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_button_9_Template_button_click_0_listener() {\n ɵngcc0.ɵɵrestoreView(_r13);\n const ctx_r12 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r12.changeMinute(ctx_r12.minuteStep));\n });\n ɵngcc0.ɵɵelement(1, \"span\", 12);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 17);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r2.isSmallSize)(\"btn-lg\", ctx_r2.isLargeSize)(\"disabled\", ctx_r2.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r2.disabled);\n }\n}\nfunction NgbTimepicker_button_11_Template(rf, ctx) {\n if (rf & 1) {\n const _r15 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_button_11_Template_button_click_0_listener() {\n ɵngcc0.ɵɵrestoreView(_r15);\n const ctx_r14 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r14.changeMinute(-ctx_r14.minuteStep));\n });\n ɵngcc0.ɵɵelement(1, \"span\", 15);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 18);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r3.isSmallSize)(\"btn-lg\", ctx_r3.isLargeSize)(\"disabled\", ctx_r3.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r3.disabled);\n }\n}\nfunction NgbTimepicker_div_12_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 5);\n ɵngcc0.ɵɵtext(1, \":\");\n ɵngcc0.ɵɵelementEnd();\n }\n}\nfunction NgbTimepicker_div_13_button_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r19 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_div_13_button_1_Template_button_click_0_listener() {\n ɵngcc0.ɵɵrestoreView(_r19);\n const ctx_r18 = ɵngcc0.ɵɵnextContext(2);\n return ɵngcc0.ɵɵresetView(ctx_r18.changeSecond(ctx_r18.secondStep));\n });\n ɵngcc0.ɵɵelement(1, \"span\", 12);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 21);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r16 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r16.isSmallSize)(\"btn-lg\", ctx_r16.isLargeSize)(\"disabled\", ctx_r16.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r16.disabled);\n }\n}\nfunction NgbTimepicker_div_13_button_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r21 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_div_13_button_3_Template_button_click_0_listener() {\n ɵngcc0.ɵɵrestoreView(_r21);\n const ctx_r20 = ɵngcc0.ɵɵnextContext(2);\n return ɵngcc0.ɵɵresetView(ctx_r20.changeSecond(-ctx_r20.secondStep));\n });\n ɵngcc0.ɵɵelement(1, \"span\", 15);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 22);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r17 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r17.isSmallSize)(\"btn-lg\", ctx_r17.isLargeSize)(\"disabled\", ctx_r17.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r17.disabled);\n }\n}\nfunction NgbTimepicker_div_13_Template(rf, ctx) {\n if (rf & 1) {\n const _r23 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 19);\n ɵngcc0.ɵɵtemplate(1, NgbTimepicker_div_13_button_1_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementStart(2, \"input\", 20);\n ɵngcc0.ɵɵlistener(\"change\", function NgbTimepicker_div_13_Template_input_change_2_listener($event) {\n ɵngcc0.ɵɵrestoreView(_r23);\n const ctx_r22 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r22.updateSecond($event.target.value));\n })(\"blur\", function NgbTimepicker_div_13_Template_input_blur_2_listener() {\n ɵngcc0.ɵɵrestoreView(_r23);\n const ctx_r24 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r24.handleBlur());\n })(\"input\", function NgbTimepicker_div_13_Template_input_input_2_listener($event) {\n ɵngcc0.ɵɵrestoreView(_r23);\n const ctx_r25 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r25.formatInput($event.target));\n })(\"keydown.ArrowUp\", function NgbTimepicker_div_13_Template_input_keydown_ArrowUp_2_listener($event) {\n ɵngcc0.ɵɵrestoreView(_r23);\n const ctx_r26 = ɵngcc0.ɵɵnextContext();\n ctx_r26.changeSecond(ctx_r26.secondStep);\n return ɵngcc0.ɵɵresetView($event.preventDefault());\n })(\"keydown.ArrowDown\", function NgbTimepicker_div_13_Template_input_keydown_ArrowDown_2_listener($event) {\n ɵngcc0.ɵɵrestoreView(_r23);\n const ctx_r27 = ɵngcc0.ɵɵnextContext();\n ctx_r27.changeSecond(-ctx_r27.secondStep);\n return ɵngcc0.ɵɵresetView($event.preventDefault());\n });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, NgbTimepicker_div_13_button_3_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r5.spinners);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"form-control-sm\", ctx_r5.isSmallSize)(\"form-control-lg\", ctx_r5.isLargeSize);\n ɵngcc0.ɵɵproperty(\"value\", ctx_r5.formatMinSec(ctx_r5.model == null ? null : ctx_r5.model.second))(\"readOnly\", ctx_r5.readonlyInputs)(\"disabled\", ctx_r5.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r5.spinners);\n }\n}\nfunction NgbTimepicker_div_14_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 5);\n }\n}\nfunction NgbTimepicker_div_15_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵi18n(1, 27);\n ɵngcc0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r28 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵi18nExp(ctx_r28.i18n.getAfternoonPeriod());\n ɵngcc0.ɵɵi18nApply(1);\n }\n}\nfunction NgbTimepicker_div_15_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵi18n(0, 28);\n }\n if (rf & 2) {\n const ctx_r30 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵi18nExp(ctx_r30.i18n.getMorningPeriod());\n ɵngcc0.ɵɵi18nApply(0);\n }\n}\nfunction NgbTimepicker_div_15_Template(rf, ctx) {\n if (rf & 1) {\n const _r32 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 23)(1, \"button\", 24);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_div_15_Template_button_click_1_listener() {\n ɵngcc0.ɵɵrestoreView(_r32);\n const ctx_r31 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r31.toggleMeridian());\n });\n ɵngcc0.ɵɵtemplate(2, NgbTimepicker_div_15_ng_container_2_Template, 2, 1, \"ng-container\", 25);\n ɵngcc0.ɵɵtemplate(3, NgbTimepicker_div_15_ng_template_3_Template, 1, 1, \"ng-template\", null, 26, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const _r29 = ɵngcc0.ɵɵreference(4);\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r7.isSmallSize)(\"btn-lg\", ctx_r7.isLargeSize)(\"disabled\", ctx_r7.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r7.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r7.model && ctx_r7.model.hour >= 12)(\"ngIfElse\", _r29);\n }\n}\nfunction NgbToast_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"strong\", 3);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r1.header);\n }\n}\nfunction NgbToast_ng_template_2_ng_template_1_Template(rf, ctx) {}\nfunction NgbToast_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 4);\n ɵngcc0.ɵɵtemplate(1, NgbToast_ng_template_2_ng_template_1_Template, 0, 0, \"ng-template\", 5);\n ɵngcc0.ɵɵelementStart(2, \"button\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function NgbToast_ng_template_2_Template_button_click_2_listener() {\n ɵngcc0.ɵɵrestoreView(_r5);\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r4.hide());\n });\n ɵngcc0.ɵɵelementStart(3, \"span\", 7);\n ɵngcc0.ɵɵtext(4, \"\\u00D7\");\n ɵngcc0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.contentHeaderTpl || _r0);\n }\n}\nfunction NgbHighlight_ng_template_0_span_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const part_r1 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassMap(ctx_r3.highlightClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(part_r1);\n }\n}\nfunction NgbHighlight_ng_template_0_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n }\n if (rf & 2) {\n const part_r1 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵtextInterpolate(part_r1);\n }\n}\nfunction NgbHighlight_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbHighlight_ng_template_0_span_0_Template, 2, 3, \"span\", 1);\n ɵngcc0.ɵɵtemplate(1, NgbHighlight_ng_template_0_ng_template_1_Template, 1, 1, \"ng-template\", null, 2, ɵngcc0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const isOdd_r2 = ctx.odd;\n const _r4 = ɵngcc0.ɵɵreference(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", isOdd_r2)(\"ngIfElse\", _r4);\n }\n}\nfunction NgbTypeaheadWindow_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"ngb-highlight\", 2);\n }\n if (rf & 2) {\n const result_r3 = ctx.result;\n const term_r4 = ctx.term;\n const formatter_r5 = ctx.formatter;\n ɵngcc0.ɵɵproperty(\"result\", formatter_r5(result_r3))(\"term\", term_r4);\n }\n}\nfunction NgbTypeaheadWindow_ng_template_2_ng_template_1_Template(rf, ctx) {}\nconst _c87 = function (a0, a1, a2) {\n return {\n result: a0,\n term: a1,\n formatter: a2\n };\n};\nfunction NgbTypeaheadWindow_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 3);\n ɵngcc0.ɵɵlistener(\"mouseenter\", function NgbTypeaheadWindow_ng_template_2_Template_button_mouseenter_0_listener() {\n const restoredCtx = ɵngcc0.ɵɵrestoreView(_r10);\n const idx_r7 = restoredCtx.index;\n const ctx_r9 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r9.markActive(idx_r7));\n })(\"click\", function NgbTypeaheadWindow_ng_template_2_Template_button_click_0_listener() {\n const restoredCtx = ɵngcc0.ɵɵrestoreView(_r10);\n const result_r6 = restoredCtx.$implicit;\n const ctx_r11 = ɵngcc0.ɵɵnextContext();\n return ɵngcc0.ɵɵresetView(ctx_r11.select(result_r6));\n });\n ɵngcc0.ɵɵtemplate(1, NgbTypeaheadWindow_ng_template_2_ng_template_1_Template, 0, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const result_r6 = ctx.$implicit;\n const idx_r7 = ctx.index;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵclassProp(\"active\", idx_r7 === ctx_r2.activeIdx);\n ɵngcc0.ɵɵproperty(\"id\", ctx_r2.id + \"-\" + idx_r7);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.resultTemplate || _r0)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(5, _c87, result_r6, ctx_r2.term, ctx_r2.formatter));\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 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 hasClassName(element, className) {\n return element && element.className && element.className.split && element.className.split(/\\s+/).indexOf(className) >= 0;\n}\nif (typeof Element !== 'undefined' && !Element.prototype.closest) {\n // Polyfill for ie10+\n if (!Element.prototype.matches) {\n // IE uses the non-standard name: msMatchesSelector\n Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n }\n Element.prototype.closest = function (s) {\n let el = this;\n if (!document.documentElement.contains(el)) {\n return null;\n }\n do {\n if (el.matches(s)) {\n return el;\n }\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n}\nfunction closest(element, selector) {\n if (!selector) {\n return null;\n }\n /*\r\n * In certain browsers (e.g. Edge 44.18362.449.0) HTMLDocument does\r\n * not support `Element.prototype.closest`. To emulate the correct behaviour\r\n * we return null when the method is missing.\r\n *\r\n * Note that in evergreen browsers `closest(document.documentElement, 'html')`\r\n * will return the document element whilst in Edge null will be returned. This\r\n * compromise was deemed good enough.\r\n */\n if (typeof element.closest === 'undefined') {\n return null;\n }\n return element.closest(selector);\n}\n/**\r\n * Force a browser reflow\r\n * @param element element where to apply the reflow\r\n */\nfunction reflow(element) {\n return (element || document.body).getBoundingClientRect();\n}\n/**\r\n * Creates an observable where all callbacks are executed inside a given zone\r\n *\r\n * @param zone\r\n */\nfunction runInZone(zone) {\n return source => {\n return new Observable(observer => {\n const onNext = value => zone.run(() => observer.next(value));\n const onError = e => zone.run(() => observer.error(e));\n const onComplete = () => zone.run(() => observer.complete());\n return source.subscribe(onNext, onError, onComplete);\n });\n };\n}\nfunction removeAccents(str) {\n return str.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n}\nconst environment = {\n animation: true,\n transitionTimerDelayMs: 5\n};\n\n/**\r\n * Global ng-bootstrap config\r\n *\r\n * @since 8.0.0\r\n */\nclass NgbConfig {\n constructor() {\n this.animation = environment.animation;\n }\n}\nNgbConfig.ɵfac = function NgbConfig_Factory(t) {\n return new (t || NgbConfig)();\n};\nNgbConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbConfig_Factory() {\n return new NgbConfig();\n },\n token: NgbConfig,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [];\n }, null);\n})();\n\n/**\r\n * A configuration service for the [NgbAccordion](#/components/accordion/api#NgbAccordion) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize its properties\r\n * to provide default values for all accordions used in the application.\r\n */\nclass NgbAccordionConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.closeOthers = false;\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbAccordionConfig.ɵfac = function NgbAccordionConfig_Factory(t) {\n return new (t || NgbAccordionConfig)(ɵngcc0.ɵɵinject(NgbConfig));\n};\nNgbAccordionConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbAccordionConfig_Factory() {\n return new NgbAccordionConfig(ɵɵinject(NgbConfig));\n },\n token: NgbAccordionConfig,\n providedIn: \"root\"\n});\nNgbAccordionConfig.ctorParameters = () => [{\n type: NgbConfig\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAccordionConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: NgbConfig\n }];\n }, 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}\nconst noopFn = () => {};\nconst ɵ0 = 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 var _a;\n (_a = runningTransitions.get(element)) === null || _a === void 0 ? void 0 : _a.complete();\n};\nfunction measureCollapsingElementHeightPx(element) {\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.height = '';\n const height = element.getBoundingClientRect().height + 'px';\n if (!hasShownClass) {\n classList.remove('show');\n }\n return height;\n}\nconst ngbCollapsingTransition = (element, animation, context) => {\n let {\n direction,\n maxHeight\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 (!maxHeight) {\n maxHeight = measureCollapsingElementHeightPx(element);\n context.maxHeight = maxHeight;\n // Fix the height before starting the animation\n element.style.height = direction !== 'show' ? maxHeight : '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.height = direction === 'show' ? maxHeight : '0px';\n return () => {\n setInitialClasses();\n classList.remove('collapsing');\n element.style.height = '';\n };\n};\nlet nextId = 0;\n/**\r\n * A directive that wraps an accordion panel header with any HTML markup and a toggling button\r\n * marked with [`NgbPanelToggle`](#/components/accordion/api#NgbPanelToggle).\r\n * See the [header customization demo](#/components/accordion/examples#header) for more details.\r\n *\r\n * You can also use [`NgbPanelTitle`](#/components/accordion/api#NgbPanelTitle) to customize only the panel title.\r\n *\r\n * @since 4.1.0\r\n */\nclass NgbPanelHeader {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPanelHeader.ɵfac = function NgbPanelHeader_Factory(t) {\n return new (t || NgbPanelHeader)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef));\n};\nNgbPanelHeader.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbPanelHeader,\n selectors: [[\"ng-template\", \"ngbPanelHeader\", \"\"]]\n});\nNgbPanelHeader.ctorParameters = () => [{\n type: TemplateRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanelHeader, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPanelHeader]'\n }]\n }], function () {\n return [{\n type: ɵngcc0.TemplateRef\n }];\n }, null);\n})();\n/**\r\n * A directive that wraps only the panel title with HTML markup inside.\r\n *\r\n * You can also use [`NgbPanelHeader`](#/components/accordion/api#NgbPanelHeader) to customize the full panel header.\r\n */\nclass NgbPanelTitle {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPanelTitle.ɵfac = function NgbPanelTitle_Factory(t) {\n return new (t || NgbPanelTitle)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef));\n};\nNgbPanelTitle.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbPanelTitle,\n selectors: [[\"ng-template\", \"ngbPanelTitle\", \"\"]]\n});\nNgbPanelTitle.ctorParameters = () => [{\n type: TemplateRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanelTitle, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPanelTitle]'\n }]\n }], function () {\n return [{\n type: ɵngcc0.TemplateRef\n }];\n }, null);\n})();\n/**\r\n * A directive that wraps the accordion panel content.\r\n */\nclass NgbPanelContent {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPanelContent.ɵfac = function NgbPanelContent_Factory(t) {\n return new (t || NgbPanelContent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef));\n};\nNgbPanelContent.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbPanelContent,\n selectors: [[\"ng-template\", \"ngbPanelContent\", \"\"]]\n});\nNgbPanelContent.ctorParameters = () => [{\n type: TemplateRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanelContent, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPanelContent]'\n }]\n }], function () {\n return [{\n type: ɵngcc0.TemplateRef\n }];\n }, null);\n})();\n/**\r\n * A directive that wraps an individual accordion panel with title and collapsible content.\r\n */\nclass NgbPanel {\n constructor() {\n /**\r\n * If `true`, the panel is disabled an can't be toggled.\r\n */\n this.disabled = false;\n /**\r\n * An optional id for the panel that must be unique on the page.\r\n *\r\n * If not provided, it will be auto-generated in the `ngb-panel-xxx` format.\r\n */\n this.id = `ngb-panel-${nextId++}`;\n this.isOpen = false;\n /* A flag to specified that the transition panel classes have been initialized */\n this.initClassDone = false;\n /* A flag to specified if the panel is currently being animated, to ensure its presence in the dom */\n this.transitionRunning = false;\n /**\r\n * An event emitted when the panel is shown, after the transition. It has no payload.\r\n *\r\n * @since 8.0.0\r\n */\n this.shown = new EventEmitter();\n /**\r\n * An event emitted when the panel is hidden, after the transition. It has no payload.\r\n *\r\n * @since 8.0.0\r\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.titleTpl = this.titleTpls.first;\n this.headerTpl = this.headerTpls.first;\n this.contentTpl = this.contentTpls.first;\n }\n}\nNgbPanel.ɵfac = function NgbPanel_Factory(t) {\n return new (t || NgbPanel)();\n};\nNgbPanel.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbPanel,\n selectors: [[\"ngb-panel\"]],\n contentQueries: function NgbPanel_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanelTitle, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanelHeader, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanelContent, 4);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.titleTpls = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTpls = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentTpls = _t);\n }\n },\n inputs: {\n disabled: \"disabled\",\n id: \"id\",\n title: \"title\",\n type: \"type\",\n cardClass: \"cardClass\"\n },\n outputs: {\n shown: \"shown\",\n hidden: \"hidden\"\n }\n});\nNgbPanel.propDecorators = {\n disabled: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n title: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n cardClass: [{\n type: Input\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n titleTpls: [{\n type: ContentChildren,\n args: [NgbPanelTitle, {\n descendants: false\n }]\n }],\n headerTpls: [{\n type: ContentChildren,\n args: [NgbPanelHeader, {\n descendants: false\n }]\n }],\n contentTpls: [{\n type: ContentChildren,\n args: [NgbPanelContent, {\n descendants: false\n }]\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanel, [{\n type: Directive,\n args: [{\n selector: 'ngb-panel'\n }]\n }], function () {\n return [];\n }, {\n disabled: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n title: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n cardClass: [{\n type: Input\n }],\n titleTpls: [{\n type: ContentChildren,\n args: [NgbPanelTitle, {\n descendants: false\n }]\n }],\n headerTpls: [{\n type: ContentChildren,\n args: [NgbPanelHeader, {\n descendants: false\n }]\n }],\n contentTpls: [{\n type: ContentChildren,\n args: [NgbPanelContent, {\n descendants: false\n }]\n }]\n });\n})();\n/**\r\n * Accordion is a collection of collapsible panels (bootstrap cards).\r\n *\r\n * It can ensure only one panel is opened at a time and allows to customize panel\r\n * headers.\r\n */\nclass NgbAccordion {\n constructor(config, _element, _ngZone, _changeDetector) {\n this._element = _element;\n this._ngZone = _ngZone;\n this._changeDetector = _changeDetector;\n /**\r\n * An array or comma separated strings of panel ids that should be opened **initially**.\r\n *\r\n * For subsequent changes use methods like `expand()`, `collapse()`, etc. and\r\n * the `(panelChange)` event.\r\n */\n this.activeIds = [];\n /**\r\n * If `true`, panel content will be detached from DOM and not simply hidden when the panel is collapsed.\r\n */\n this.destroyOnHide = true;\n /**\r\n * Event emitted right before the panel toggle happens.\r\n *\r\n * See [NgbPanelChangeEvent](#/components/accordion/api#NgbPanelChangeEvent) for payload details.\r\n */\n this.panelChange = new EventEmitter();\n /**\r\n * An event emitted when the expanding animation is finished on the panel. The payload is the panel id.\r\n *\r\n * @since 8.0.0\r\n */\n this.shown = new EventEmitter();\n /**\r\n * An event emitted when the collapsing animation is finished on the panel, and before the panel element is removed.\r\n * The payload is the panel id.\r\n *\r\n * @since 8.0.0\r\n */\n this.hidden = new EventEmitter();\n this.animation = config.animation;\n this.type = config.type;\n this.closeOtherPanels = config.closeOthers;\n }\n /**\r\n * Checks if a panel with a given id is expanded.\r\n */\n isExpanded(panelId) {\n return this.activeIds.indexOf(panelId) > -1;\n }\n /**\r\n * Expands a panel with a given id.\r\n *\r\n * Has no effect if the panel is already expanded or disabled.\r\n */\n expand(panelId) {\n this._changeOpenState(this._findPanelById(panelId), true);\n }\n /**\r\n * Expands all panels, if `[closeOthers]` is `false`.\r\n *\r\n * If `[closeOthers]` is `true`, it will expand the first panel, unless there is already a panel opened.\r\n */\n expandAll() {\n if (this.closeOtherPanels) {\n if (this.activeIds.length === 0 && this.panels.length) {\n this._changeOpenState(this.panels.first, true);\n }\n } else {\n this.panels.forEach(panel => this._changeOpenState(panel, true));\n }\n }\n /**\r\n * Collapses a panel with the given id.\r\n *\r\n * Has no effect if the panel is already collapsed or disabled.\r\n */\n collapse(panelId) {\n this._changeOpenState(this._findPanelById(panelId), false);\n }\n /**\r\n * Collapses all opened panels.\r\n */\n collapseAll() {\n this.panels.forEach(panel => {\n this._changeOpenState(panel, false);\n });\n }\n /**\r\n * Toggles a panel with the given id.\r\n *\r\n * Has no effect if the panel is disabled.\r\n */\n toggle(panelId) {\n const panel = this._findPanelById(panelId);\n if (panel) {\n this._changeOpenState(panel, !panel.isOpen);\n }\n }\n ngAfterContentChecked() {\n // active id updates\n if (isString(this.activeIds)) {\n this.activeIds = this.activeIds.split(/\\s*,\\s*/);\n }\n // update panels open states\n this.panels.forEach(panel => {\n panel.isOpen = !panel.disabled && this.activeIds.indexOf(panel.id) > -1;\n });\n // closeOthers updates\n if (this.activeIds.length > 1 && this.closeOtherPanels) {\n this._closeOthers(this.activeIds[0], false);\n this._updateActiveIds();\n }\n // Setup the initial classes here\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.panels.forEach(panel => {\n const panelElement = this._getPanelElement(panel.id);\n if (panelElement) {\n if (!panel.initClassDone) {\n panel.initClassDone = true;\n ngbRunTransition(this._ngZone, panelElement, ngbCollapsingTransition, {\n animation: false,\n runningTransition: 'continue',\n context: {\n direction: panel.isOpen ? 'show' : 'hide'\n }\n });\n }\n } else {\n // Classes must be initialized next time it will be in the dom\n panel.initClassDone = false;\n }\n });\n });\n }\n _changeOpenState(panel, nextState) {\n if (panel != null && !panel.disabled && panel.isOpen !== nextState) {\n let defaultPrevented = false;\n this.panelChange.emit({\n panelId: panel.id,\n nextState: nextState,\n preventDefault: () => {\n defaultPrevented = true;\n }\n });\n if (!defaultPrevented) {\n panel.isOpen = nextState;\n panel.transitionRunning = true;\n if (nextState && this.closeOtherPanels) {\n this._closeOthers(panel.id);\n }\n this._updateActiveIds();\n this._runTransitions(this.animation);\n }\n }\n }\n _closeOthers(panelId, enableTransition = true) {\n this.panels.forEach(panel => {\n if (panel.id !== panelId && panel.isOpen) {\n panel.isOpen = false;\n panel.transitionRunning = enableTransition;\n }\n });\n }\n _findPanelById(panelId) {\n return this.panels.find(p => p.id === panelId) || null;\n }\n _updateActiveIds() {\n this.activeIds = this.panels.filter(panel => panel.isOpen && !panel.disabled).map(panel => panel.id);\n }\n _runTransitions(animation) {\n // detectChanges is performed to ensure that all panels are in the dom (via transitionRunning = true)\n // before starting the animation\n this._changeDetector.detectChanges();\n this.panels.forEach(panel => {\n // When panel.transitionRunning is true, the transition needs to be started OR reversed,\n // The direction (show or hide) is choosen by each panel.isOpen state\n if (panel.transitionRunning) {\n const panelElement = this._getPanelElement(panel.id);\n ngbRunTransition(this._ngZone, panelElement, ngbCollapsingTransition, {\n animation,\n runningTransition: 'stop',\n context: {\n direction: panel.isOpen ? 'show' : 'hide'\n }\n }).subscribe(() => {\n panel.transitionRunning = false;\n const {\n id\n } = panel;\n if (panel.isOpen) {\n panel.shown.emit();\n this.shown.emit(id);\n } else {\n panel.hidden.emit();\n this.hidden.emit(id);\n }\n });\n }\n });\n }\n _getPanelElement(panelId) {\n return this._element.nativeElement.querySelector('#' + panelId);\n }\n}\nNgbAccordion.ɵfac = function NgbAccordion_Factory(t) {\n return new (t || NgbAccordion)(ɵngcc0.ɵɵdirectiveInject(NgbAccordionConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef));\n};\nNgbAccordion.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbAccordion,\n selectors: [[\"ngb-accordion\"]],\n contentQueries: function NgbAccordion_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanel, 4);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.panels = _t);\n }\n },\n hostAttrs: [\"role\", \"tablist\", 1, \"accordion\"],\n hostVars: 1,\n hostBindings: function NgbAccordion_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-multiselectable\", !ctx.closeOtherPanels);\n }\n },\n inputs: {\n activeIds: \"activeIds\",\n destroyOnHide: \"destroyOnHide\",\n animation: \"animation\",\n type: \"type\",\n closeOtherPanels: [\"closeOthers\", \"closeOtherPanels\"]\n },\n outputs: {\n panelChange: \"panelChange\",\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbAccordion\"],\n decls: 3,\n vars: 1,\n consts: [[\"ngbPanelHeader\", \"\"], [\"t\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [1, \"btn\", \"btn-link\", 3, \"ngbPanelToggle\"], [3, \"ngTemplateOutlet\"], [\"role\", \"tab\", 3, \"id\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"role\", \"tabpanel\", 3, \"id\", 4, \"ngIf\"], [\"role\", \"tabpanel\", 3, \"id\"], [1, \"card-body\"]],\n template: function NgbAccordion_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbAccordion_ng_template_0_Template, 3, 3, \"ng-template\", 0, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbAccordion_ng_template_2_Template, 4, 11, \"ng-template\", 2);\n }\n if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.panels);\n }\n },\n dependencies: function () {\n return [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, NgbPanelHeader, NgbPanelToggle];\n },\n encapsulation: 2\n});\nNgbAccordion.ctorParameters = () => [{\n type: NgbAccordionConfig\n}, {\n type: ElementRef\n}, {\n type: NgZone\n}, {\n type: ChangeDetectorRef\n}];\nNgbAccordion.propDecorators = {\n panels: [{\n type: ContentChildren,\n args: [NgbPanel]\n }],\n animation: [{\n type: Input\n }],\n activeIds: [{\n type: Input\n }],\n closeOtherPanels: [{\n type: Input,\n args: ['closeOthers']\n }],\n destroyOnHide: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n panelChange: [{\n type: Output\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAccordion, [{\n type: Component,\n args: [{\n selector: 'ngb-accordion',\n exportAs: 'ngbAccordion',\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'accordion',\n 'role': 'tablist',\n '[attr.aria-multiselectable]': '!closeOtherPanels'\n },\n template: `\n <ng-template #t ngbPanelHeader let-panel>\n <button class=\"btn btn-link\" [ngbPanelToggle]=\"panel\">\n {{panel.title}}<ng-template [ngTemplateOutlet]=\"panel.titleTpl?.templateRef\"></ng-template>\n </button>\n </ng-template>\n <ng-template ngFor let-panel [ngForOf]=\"panels\">\n <div [class]=\"'card ' + (panel.cardClass || '')\">\n <div role=\"tab\" id=\"{{panel.id}}-header\" [class]=\"'card-header ' + (panel.type ? 'bg-'+panel.type: type ? 'bg-'+type : '')\">\n <ng-template [ngTemplateOutlet]=\"panel.headerTpl?.templateRef || t\"\n [ngTemplateOutletContext]=\"{$implicit: panel, opened: panel.isOpen}\"></ng-template>\n </div>\n <div id=\"{{panel.id}}\" role=\"tabpanel\" [attr.aria-labelledby]=\"panel.id + '-header'\"\n *ngIf=\"!destroyOnHide || panel.isOpen || panel.transitionRunning\">\n <div class=\"card-body\">\n <ng-template [ngTemplateOutlet]=\"panel.contentTpl?.templateRef || null\"></ng-template>\n </div>\n </div>\n </div>\n </ng-template>\n `\n }]\n }], function () {\n return [{\n type: NgbAccordionConfig\n }, {\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc0.NgZone\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }];\n }, {\n activeIds: [{\n type: Input\n }],\n destroyOnHide: [{\n type: Input\n }],\n panelChange: [{\n type: Output\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n animation: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n closeOtherPanels: [{\n type: Input,\n args: ['closeOthers']\n }],\n panels: [{\n type: ContentChildren,\n args: [NgbPanel]\n }]\n });\n})();\n/**\r\n * A directive to put on a button that toggles panel opening and closing.\r\n *\r\n * To be used inside the [`NgbPanelHeader`](#/components/accordion/api#NgbPanelHeader)\r\n *\r\n * @since 4.1.0\r\n */\nclass NgbPanelToggle {\n constructor(accordion, panel) {\n this.accordion = accordion;\n this.panel = panel;\n }\n set ngbPanelToggle(panel) {\n if (panel) {\n this.panel = panel;\n }\n }\n}\nNgbPanelToggle.ɵfac = function NgbPanelToggle_Factory(t) {\n return new (t || NgbPanelToggle)(ɵngcc0.ɵɵdirectiveInject(NgbAccordion), ɵngcc0.ɵɵdirectiveInject(NgbPanel, 9));\n};\nNgbPanelToggle.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbPanelToggle,\n selectors: [[\"button\", \"ngbPanelToggle\", \"\"]],\n hostAttrs: [\"type\", \"button\"],\n hostVars: 5,\n hostBindings: function NgbPanelToggle_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function NgbPanelToggle_click_HostBindingHandler() {\n return ctx.accordion.toggle(ctx.panel.id);\n });\n }\n if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"disabled\", ctx.panel.disabled);\n ɵngcc0.ɵɵattribute(\"aria-expanded\", ctx.panel.isOpen)(\"aria-controls\", ctx.panel.id);\n ɵngcc0.ɵɵclassProp(\"collapsed\", !ctx.panel.isOpen);\n }\n },\n inputs: {\n ngbPanelToggle: \"ngbPanelToggle\"\n }\n});\nNgbPanelToggle.ctorParameters = () => [{\n type: NgbAccordion\n}, {\n type: NgbPanel,\n decorators: [{\n type: Optional\n }, {\n type: Host\n }]\n}];\nNgbPanelToggle.propDecorators = {\n ngbPanelToggle: [{\n type: Input\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanelToggle, [{\n type: Directive,\n args: [{\n selector: 'button[ngbPanelToggle]',\n host: {\n 'type': 'button',\n '[disabled]': 'panel.disabled',\n '[class.collapsed]': '!panel.isOpen',\n '[attr.aria-expanded]': 'panel.isOpen',\n '[attr.aria-controls]': 'panel.id',\n '(click)': 'accordion.toggle(panel.id)'\n }\n }]\n }], function () {\n return [{\n type: NgbAccordion\n }, {\n type: NgbPanel,\n decorators: [{\n type: Optional\n }, {\n type: Host\n }]\n }];\n }, {\n ngbPanelToggle: [{\n type: Input\n }]\n });\n})();\nconst NGB_ACCORDION_DIRECTIVES = [NgbAccordion, NgbPanel, NgbPanelTitle, NgbPanelContent, NgbPanelHeader, NgbPanelToggle];\nclass NgbAccordionModule {}\nNgbAccordionModule.ɵfac = function NgbAccordionModule_Factory(t) {\n return new (t || NgbAccordionModule)();\n};\nNgbAccordionModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbAccordionModule\n});\nNgbAccordionModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [CommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAccordionModule, [{\n type: NgModule,\n args: [{\n declarations: NGB_ACCORDION_DIRECTIVES,\n exports: NGB_ACCORDION_DIRECTIVES,\n imports: [CommonModule]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbAccordionModule, {\n declarations: function () {\n return [NgbAccordion, NgbPanel, NgbPanelTitle, NgbPanelContent, NgbPanelHeader, NgbPanelToggle];\n },\n imports: function () {\n return [CommonModule];\n },\n exports: function () {\n return [NgbAccordion, NgbPanel, NgbPanelTitle, NgbPanelContent, NgbPanelHeader, NgbPanelToggle];\n }\n });\n})();\n\n/**\r\n * A configuration service for the [NgbAlert](#/components/alert/api#NgbAlert) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize its properties\r\n * to provide default values for all alerts used in the application.\r\n */\nclass NgbAlertConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.dismissible = true;\n this.type = 'warning';\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbAlertConfig.ɵfac = function NgbAlertConfig_Factory(t) {\n return new (t || NgbAlertConfig)(ɵngcc0.ɵɵinject(NgbConfig));\n};\nNgbAlertConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbAlertConfig_Factory() {\n return new NgbAlertConfig(ɵɵinject(NgbConfig));\n },\n token: NgbAlertConfig,\n providedIn: \"root\"\n});\nNgbAlertConfig.ctorParameters = () => [{\n type: NgbConfig\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAlertConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: NgbConfig\n }];\n }, null);\n})();\nconst ngbAlertFadingTransition = ({\n classList\n}) => {\n classList.remove('show');\n};\n\n/**\r\n * Alert is a component to provide contextual feedback messages for user.\r\n *\r\n * It supports several alert types and can be dismissed.\r\n */\nclass NgbAlert {\n constructor(config, _renderer, _element, _zone) {\n this._renderer = _renderer;\n this._element = _element;\n this._zone = _zone;\n /**\r\n * An event emitted when the close button is clicked. It has no payload and only relevant for dismissible alerts.\r\n *\r\n * @since 8.0.0\r\n */\n this.closed = new EventEmitter();\n this.dismissible = config.dismissible;\n this.type = config.type;\n this.animation = config.animation;\n }\n /**\r\n * Triggers alert closing programmatically (same as clicking on the close button (×)).\r\n *\r\n * The returned observable will emit and be completed once the closing transition has finished.\r\n * If the animations are turned off this happens synchronously.\r\n *\r\n * Alternatively you could listen or subscribe to the `(closed)` output\r\n *\r\n * @since 8.0.0\r\n */\n close() {\n const transition = ngbRunTransition(this._zone, this._element.nativeElement, ngbAlertFadingTransition, {\n animation: this.animation,\n runningTransition: 'continue'\n });\n transition.subscribe(() => this.closed.emit());\n return transition;\n }\n ngOnChanges(changes) {\n const typeChange = changes['type'];\n if (typeChange && !typeChange.firstChange) {\n this._renderer.removeClass(this._element.nativeElement, `alert-${typeChange.previousValue}`);\n this._renderer.addClass(this._element.nativeElement, `alert-${typeChange.currentValue}`);\n }\n }\n ngOnInit() {\n this._renderer.addClass(this._element.nativeElement, `alert-${this.type}`);\n }\n}\nNgbAlert.ɵfac = function NgbAlert_Factory(t) {\n return new (t || NgbAlert)(ɵngcc0.ɵɵdirectiveInject(NgbAlertConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone));\n};\nNgbAlert.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbAlert,\n selectors: [[\"ngb-alert\"]],\n hostAttrs: [\"role\", \"alert\", 1, \"alert\", \"show\"],\n hostVars: 4,\n hostBindings: function NgbAlert_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"fade\", ctx.animation)(\"alert-dismissible\", ctx.dismissible);\n }\n },\n inputs: {\n dismissible: \"dismissible\",\n type: \"type\",\n animation: \"animation\"\n },\n outputs: {\n closed: \"closed\"\n },\n exportAs: [\"ngbAlert\"],\n features: [ɵngcc0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c3,\n decls: 2,\n vars: 1,\n consts: function () {\n let i18n_1;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_alert_close$$FESM2015_NG_BOOTSTRAP_JS_2 = goog.getMsg(\"Close\");\n i18n_1 = MSG_EXTERNAL_ngb_alert_close$$FESM2015_NG_BOOTSTRAP_JS_2;\n } else {\n i18n_1 = $localize`:@@ngb.alert.close␟f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8␟7819314041543176992:Close`;\n }\n return [[\"type\", \"button\", \"class\", \"close\", \"aria-label\", i18n_1, 3, \"click\", 4, \"ngIf\"], [\"type\", \"button\", \"aria-label\", i18n_1, 1, \"close\", 3, \"click\"], [\"aria-hidden\", \"true\"]];\n },\n template: function NgbAlert_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n ɵngcc0.ɵɵtemplate(1, NgbAlert_button_1_Template, 3, 0, \"button\", 0);\n }\n if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.dismissible);\n }\n },\n dependencies: [ɵngcc1.NgIf],\n styles: [\"ngb-alert{display:block}\"],\n encapsulation: 2,\n changeDetection: 0\n});\nNgbAlert.ctorParameters = () => [{\n type: NgbAlertConfig\n}, {\n type: Renderer2\n}, {\n type: ElementRef\n}, {\n type: NgZone\n}];\nNgbAlert.propDecorators = {\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAlert, [{\n type: Component,\n args: [{\n selector: 'ngb-alert',\n exportAs: 'ngbAlert',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'role': 'alert',\n 'class': 'alert show',\n '[class.fade]': 'animation',\n '[class.alert-dismissible]': 'dismissible'\n },\n template: `\n <ng-content></ng-content>\n <button *ngIf=\"dismissible\" type=\"button\" class=\"close\" aria-label=\"Close\" i18n-aria-label=\"@@ngb.alert.close\"\n (click)=\"close()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n `,\n styles: [\"ngb-alert{display:block}\"]\n }]\n }], function () {\n return [{\n type: NgbAlertConfig\n }, {\n type: ɵngcc0.Renderer2\n }, {\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc0.NgZone\n }];\n }, {\n closed: [{\n type: Output\n }],\n dismissible: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n animation: [{\n type: Input\n }]\n });\n})();\nclass NgbAlertModule {}\nNgbAlertModule.ɵfac = function NgbAlertModule_Factory(t) {\n return new (t || NgbAlertModule)();\n};\nNgbAlertModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbAlertModule\n});\nNgbAlertModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [CommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAlertModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbAlert],\n exports: [NgbAlert],\n imports: [CommonModule],\n entryComponents: [NgbAlert]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbAlertModule, {\n declarations: function () {\n return [NgbAlert];\n },\n imports: function () {\n return [CommonModule];\n },\n exports: function () {\n return [NgbAlert];\n }\n });\n})();\nclass NgbButtonLabel {}\nNgbButtonLabel.ɵfac = function NgbButtonLabel_Factory(t) {\n return new (t || NgbButtonLabel)();\n};\nNgbButtonLabel.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbButtonLabel,\n selectors: [[\"\", \"ngbButtonLabel\", \"\"]],\n hostVars: 8,\n hostBindings: function NgbButtonLabel_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"btn\", true)(\"active\", ctx.active)(\"disabled\", ctx.disabled)(\"focus\", ctx.focused);\n }\n }\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbButtonLabel, [{\n type: Directive,\n args: [{\n selector: '[ngbButtonLabel]',\n host: {\n '[class.btn]': 'true',\n '[class.active]': 'active',\n '[class.disabled]': 'disabled',\n '[class.focus]': 'focused'\n }\n }]\n }], null, null);\n})();\n\n/**\r\n * Allows to easily create Bootstrap-style checkbox buttons.\r\n *\r\n * Integrates with forms, so the value of a checked button is bound to the underlying form control\r\n * either in a reactive or template-driven way.\r\n */\nclass NgbCheckBox {\n constructor(_label, _cd) {\n this._label = _label;\n this._cd = _cd;\n /**\r\n * If `true`, the checkbox button will be disabled\r\n */\n this.disabled = false;\n /**\r\n * The form control value when the checkbox is checked.\r\n */\n this.valueChecked = true;\n /**\r\n * The form control value when the checkbox is unchecked.\r\n */\n this.valueUnChecked = false;\n this.onChange = _ => {};\n this.onTouched = () => {};\n }\n set focused(isFocused) {\n this._label.focused = isFocused;\n if (!isFocused) {\n this.onTouched();\n }\n }\n onInputChange($event) {\n const modelToPropagate = $event.target.checked ? this.valueChecked : this.valueUnChecked;\n this.onChange(modelToPropagate);\n this.onTouched();\n this.writeValue(modelToPropagate);\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 this._label.disabled = isDisabled;\n }\n writeValue(value) {\n this.checked = value === this.valueChecked;\n this._label.active = this.checked;\n // label won't be updated, if it is inside the OnPush component when [ngModel] changes\n this._cd.markForCheck();\n }\n}\nNgbCheckBox.ɵfac = function NgbCheckBox_Factory(t) {\n return new (t || NgbCheckBox)(ɵngcc0.ɵɵdirectiveInject(NgbButtonLabel), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef));\n};\nNgbCheckBox.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbCheckBox,\n selectors: [[\"\", \"ngbButton\", \"\", \"type\", \"checkbox\"]],\n hostVars: 2,\n hostBindings: function NgbCheckBox_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"change\", function NgbCheckBox_change_HostBindingHandler($event) {\n return ctx.onInputChange($event);\n })(\"focus\", function NgbCheckBox_focus_HostBindingHandler() {\n return ctx.focused = true;\n })(\"blur\", function NgbCheckBox_blur_HostBindingHandler() {\n return ctx.focused = false;\n });\n }\n if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"checked\", ctx.checked)(\"disabled\", ctx.disabled);\n }\n },\n inputs: {\n disabled: \"disabled\",\n valueChecked: \"valueChecked\",\n valueUnChecked: \"valueUnChecked\"\n },\n features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbCheckBox),\n multi: true\n }])]\n});\nNgbCheckBox.ctorParameters = () => [{\n type: NgbButtonLabel\n}, {\n type: ChangeDetectorRef\n}];\nNgbCheckBox.propDecorators = {\n disabled: [{\n type: Input\n }],\n valueChecked: [{\n type: Input\n }],\n valueUnChecked: [{\n type: Input\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCheckBox, [{\n type: Directive,\n args: [{\n selector: '[ngbButton][type=checkbox]',\n host: {\n '[checked]': 'checked',\n '[disabled]': 'disabled',\n '(change)': 'onInputChange($event)',\n '(focus)': 'focused = true',\n '(blur)': 'focused = false'\n },\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbCheckBox),\n multi: true\n }]\n }]\n }], function () {\n return [{\n type: NgbButtonLabel\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }];\n }, {\n disabled: [{\n type: Input\n }],\n valueChecked: [{\n type: Input\n }],\n valueUnChecked: [{\n type: Input\n }]\n });\n})();\nlet nextId$1 = 0;\n/**\r\n * Allows to easily create Bootstrap-style radio buttons.\r\n *\r\n * Integrates with forms, so the value of a checked button is bound to the underlying form control\r\n * either in a reactive or template-driven way.\r\n */\nclass NgbRadioGroup {\n constructor() {\n this._radios = new Set();\n this._value = null;\n /**\r\n * Name of the radio group applied to radio input elements.\r\n *\r\n * Will be applied to all radio input elements inside the group,\r\n * unless [`NgbRadio`](#/components/buttons/api#NgbRadio)'s specify names themselves.\r\n *\r\n * If not provided, will be generated in the `ngb-radio-xx` format.\r\n */\n this.name = `ngb-radio-${nextId$1++}`;\n this.onChange = _ => {};\n this.onTouched = () => {};\n }\n get disabled() {\n return this._disabled;\n }\n set disabled(isDisabled) {\n this.setDisabledState(isDisabled);\n }\n onRadioChange(radio) {\n this.writeValue(radio.value);\n this.onChange(radio.value);\n }\n onRadioValueUpdate() {\n this._updateRadiosValue();\n }\n register(radio) {\n this._radios.add(radio);\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 this._updateRadiosDisabled();\n }\n unregister(radio) {\n this._radios.delete(radio);\n }\n writeValue(value) {\n this._value = value;\n this._updateRadiosValue();\n }\n _updateRadiosValue() {\n this._radios.forEach(radio => radio.updateValue(this._value));\n }\n _updateRadiosDisabled() {\n this._radios.forEach(radio => radio.updateDisabled());\n }\n}\nNgbRadioGroup.ɵfac = function NgbRadioGroup_Factory(t) {\n return new (t || NgbRadioGroup)();\n};\nNgbRadioGroup.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbRadioGroup,\n selectors: [[\"\", \"ngbRadioGroup\", \"\"]],\n hostAttrs: [\"role\", \"radiogroup\"],\n inputs: {\n name: \"name\"\n },\n features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbRadioGroup),\n multi: true\n }])]\n});\nNgbRadioGroup.propDecorators = {\n name: [{\n type: Input\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRadioGroup, [{\n type: Directive,\n args: [{\n selector: '[ngbRadioGroup]',\n host: {\n 'role': 'radiogroup'\n },\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbRadioGroup),\n multi: true\n }]\n }]\n }], function () {\n return [];\n }, {\n name: [{\n type: Input\n }]\n });\n})();\n/**\r\n * A directive that marks an input of type \"radio\" as a part of the\r\n * [`NgbRadioGroup`](#/components/buttons/api#NgbRadioGroup).\r\n */\nclass NgbRadio {\n constructor(_group, _label, _renderer, _element, _cd) {\n this._group = _group;\n this._label = _label;\n this._renderer = _renderer;\n this._element = _element;\n this._cd = _cd;\n this._value = null;\n this._group.register(this);\n this.updateDisabled();\n }\n /**\r\n * The form control value when current radio button is checked.\r\n */\n set value(value) {\n this._value = value;\n const stringValue = value ? value.toString() : '';\n this._renderer.setProperty(this._element.nativeElement, 'value', stringValue);\n this._group.onRadioValueUpdate();\n }\n /**\r\n * If `true`, current radio button will be disabled.\r\n */\n set disabled(isDisabled) {\n this._disabled = isDisabled !== false;\n this.updateDisabled();\n }\n set focused(isFocused) {\n if (this._label) {\n this._label.focused = isFocused;\n }\n if (!isFocused) {\n this._group.onTouched();\n }\n }\n get checked() {\n return this._checked;\n }\n get disabled() {\n return this._group.disabled || this._disabled;\n }\n get value() {\n return this._value;\n }\n get nameAttr() {\n return this.name || this._group.name;\n }\n ngOnDestroy() {\n this._group.unregister(this);\n }\n onChange() {\n this._group.onRadioChange(this);\n }\n updateValue(value) {\n // label won't be updated, if it is inside the OnPush component when [ngModel] changes\n if (this.value !== value) {\n this._cd.markForCheck();\n }\n this._checked = this.value === value;\n this._label.active = this._checked;\n }\n updateDisabled() {\n this._label.disabled = this.disabled;\n }\n}\nNgbRadio.ɵfac = function NgbRadio_Factory(t) {\n return new (t || NgbRadio)(ɵngcc0.ɵɵdirectiveInject(NgbRadioGroup), ɵngcc0.ɵɵdirectiveInject(NgbButtonLabel), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef));\n};\nNgbRadio.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbRadio,\n selectors: [[\"\", \"ngbButton\", \"\", \"type\", \"radio\"]],\n hostVars: 3,\n hostBindings: function NgbRadio_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"change\", function NgbRadio_change_HostBindingHandler() {\n return ctx.onChange();\n })(\"focus\", function NgbRadio_focus_HostBindingHandler() {\n return ctx.focused = true;\n })(\"blur\", function NgbRadio_blur_HostBindingHandler() {\n return ctx.focused = false;\n });\n }\n if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"checked\", ctx.checked)(\"disabled\", ctx.disabled)(\"name\", ctx.nameAttr);\n }\n },\n inputs: {\n value: \"value\",\n disabled: \"disabled\",\n name: \"name\"\n }\n});\nNgbRadio.ctorParameters = () => [{\n type: NgbRadioGroup\n}, {\n type: NgbButtonLabel\n}, {\n type: Renderer2\n}, {\n type: ElementRef\n}, {\n type: ChangeDetectorRef\n}];\nNgbRadio.propDecorators = {\n name: [{\n type: Input\n }],\n value: [{\n type: Input,\n args: ['value']\n }],\n disabled: [{\n type: Input,\n args: ['disabled']\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRadio, [{\n type: Directive,\n args: [{\n selector: '[ngbButton][type=radio]',\n host: {\n '[checked]': 'checked',\n '[disabled]': 'disabled',\n '[name]': 'nameAttr',\n '(change)': 'onChange()',\n '(focus)': 'focused = true',\n '(blur)': 'focused = false'\n }\n }]\n }], function () {\n return [{\n type: NgbRadioGroup\n }, {\n type: NgbButtonLabel\n }, {\n type: ɵngcc0.Renderer2\n }, {\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }];\n }, {\n value: [{\n type: Input,\n args: ['value']\n }],\n disabled: [{\n type: Input,\n args: ['disabled']\n }],\n name: [{\n type: Input\n }]\n });\n})();\nconst NGB_BUTTON_DIRECTIVES = [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio];\nclass NgbButtonsModule {}\nNgbButtonsModule.ɵfac = function NgbButtonsModule_Factory(t) {\n return new (t || NgbButtonsModule)();\n};\nNgbButtonsModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbButtonsModule\n});\nNgbButtonsModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbButtonsModule, [{\n type: NgModule,\n args: [{\n declarations: NGB_BUTTON_DIRECTIVES,\n exports: NGB_BUTTON_DIRECTIVES\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbButtonsModule, {\n declarations: [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio],\n exports: [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio]\n });\n})();\n\n/**\r\n * A configuration service for the [NgbCarousel](#/components/carousel/api#NgbCarousel) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize its properties\r\n * to provide default values for all carousels used in the application.\r\n */\nclass NgbCarouselConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _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 === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbCarouselConfig.ɵfac = function NgbCarouselConfig_Factory(t) {\n return new (t || NgbCarouselConfig)(ɵngcc0.ɵɵinject(NgbConfig));\n};\nNgbCarouselConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbCarouselConfig_Factory() {\n return new NgbCarouselConfig(ɵɵinject(NgbConfig));\n },\n token: NgbCarouselConfig,\n providedIn: \"root\"\n});\nNgbCarouselConfig.ctorParameters = () => [{\n type: NgbConfig\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCarouselConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: NgbConfig\n }];\n }, null);\n})();\n\n/**\r\n * Defines the carousel slide transition direction.\r\n */\nvar NgbSlideEventDirection;\n(function (NgbSlideEventDirection) {\n NgbSlideEventDirection[\"LEFT\"] = \"left\";\n NgbSlideEventDirection[\"RIGHT\"] = \"right\";\n})(NgbSlideEventDirection || (NgbSlideEventDirection = {}));\nconst isBeingAnimated = ({\n classList\n}) => {\n return classList.contains('carousel-item-left') || classList.contains('carousel-item-right');\n};\nconst ɵ0$1 = isBeingAnimated;\nconst removeDirectionClasses = classList => {\n classList.remove('carousel-item-left');\n classList.remove('carousel-item-right');\n};\nconst ɵ1 = removeDirectionClasses;\nconst removeClasses = classList => {\n removeDirectionClasses(classList);\n classList.remove('carousel-item-prev');\n classList.remove('carousel-item-next');\n};\nconst ɵ2 = removeClasses;\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.LEFT ? '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;\n/**\r\n * A directive that wraps the individual carousel slide.\r\n */\nclass NgbSlide {\n constructor(tplRef) {\n this.tplRef = tplRef;\n /**\r\n * Slide id that must be unique for the entire document.\r\n *\r\n * If not provided, will be generated in the `ngb-slide-xx` format.\r\n */\n this.id = `ngb-slide-${nextId$2++}`;\n /**\r\n * An event emitted when the slide transition is finished\r\n *\r\n * @since 8.0.0\r\n */\n this.slid = new EventEmitter();\n }\n}\nNgbSlide.ɵfac = function NgbSlide_Factory(t) {\n return new (t || NgbSlide)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef));\n};\nNgbSlide.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbSlide,\n selectors: [[\"ng-template\", \"ngbSlide\", \"\"]],\n inputs: {\n id: \"id\"\n },\n outputs: {\n slid: \"slid\"\n }\n});\nNgbSlide.ctorParameters = () => [{\n type: TemplateRef\n}];\nNgbSlide.propDecorators = {\n id: [{\n type: Input\n }],\n slid: [{\n type: Output\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbSlide, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbSlide]'\n }]\n }], function () {\n return [{\n type: ɵngcc0.TemplateRef\n }];\n }, {\n id: [{\n type: Input\n }],\n slid: [{\n type: Output\n }]\n });\n})();\n/**\r\n * Carousel is a component to easily create and control slideshows.\r\n *\r\n * Allows to set intervals, change the way user interacts with the slides and provides a programmatic API.\r\n */\nclass NgbCarousel {\n constructor(config, _platformId, _ngZone, _cd, _container) {\n this._platformId = _platformId;\n this._ngZone = _ngZone;\n this._cd = _cd;\n this._container = _container;\n this.NgbSlideEventSource = NgbSlideEventSource;\n this._destroy$ = new Subject();\n this._interval$ = new BehaviorSubject(0);\n this._mouseHover$ = new BehaviorSubject(false);\n this._focused$ = new BehaviorSubject(false);\n this._pauseOnHover$ = new BehaviorSubject(false);\n this._pauseOnFocus$ = new BehaviorSubject(false);\n this._pause$ = new BehaviorSubject(false);\n this._wrap$ = new BehaviorSubject(false);\n /**\r\n * An event emitted just before the slide transition starts.\r\n *\r\n * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details.\r\n */\n this.slide = new EventEmitter();\n /**\r\n * An event emitted right after the slide transition is completed.\r\n *\r\n * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details.\r\n *\r\n * @since 8.0.0\r\n */\n this.slid = new EventEmitter();\n /*\r\n * Keep the ids of the panels currently transitionning\r\n * in order to allow only the transition revertion\r\n */\n this._transitionIds = null;\n this.animation = config.animation;\n this.interval = config.interval;\n this.wrap = config.wrap;\n this.keyboard = config.keyboard;\n this.pauseOnHover = config.pauseOnHover;\n this.pauseOnFocus = config.pauseOnFocus;\n this.showNavigationArrows = config.showNavigationArrows;\n this.showNavigationIndicators = config.showNavigationIndicators;\n }\n /**\r\n * Time in milliseconds before the next slide is shown.\r\n */\n set interval(value) {\n this._interval$.next(value);\n }\n get interval() {\n return this._interval$.value;\n }\n /**\r\n * If `true`, will 'wrap' the carousel by switching from the last slide back to the first.\r\n */\n set wrap(value) {\n this._wrap$.next(value);\n }\n get wrap() {\n return this._wrap$.value;\n }\n /**\r\n * If `true`, will pause slide switching when mouse cursor hovers the slide.\r\n *\r\n * @since 2.2.0\r\n */\n set pauseOnHover(value) {\n this._pauseOnHover$.next(value);\n }\n get pauseOnHover() {\n return this._pauseOnHover$.value;\n }\n /**\r\n * If `true`, will pause slide switching when the focus is inside the carousel.\r\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), takeUntil(this._destroy$)).subscribe(() => this._ngZone.run(() => this.next(NgbSlideEventSource.TIMER)));\n });\n }\n this.slides.changes.pipe(takeUntil(this._destroy$)).subscribe(() => {\n var _a;\n (_a = this._transitionIds) === null || _a === void 0 ? void 0 : _a.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 ngOnDestroy() {\n this._destroy$.next();\n }\n /**\r\n * Navigates to a slide with the specified identifier.\r\n */\n select(slideId, source) {\n this._cycleToSelected(slideId, this._getSlideEventDirection(this.activeId, slideId), source);\n }\n /**\r\n * Navigates to the previous slide.\r\n */\n prev(source) {\n this._cycleToSelected(this._getPrevSlide(this.activeId), NgbSlideEventDirection.RIGHT, source);\n }\n /**\r\n * Navigates to the next slide.\r\n */\n next(source) {\n this._cycleToSelected(this._getNextSlide(this.activeId), NgbSlideEventDirection.LEFT, source);\n }\n /**\r\n * Pauses cycling through the slides.\r\n */\n pause() {\n this._pause$.next(true);\n }\n /**\r\n * Restarts cycling through the slides from left to right.\r\n */\n cycle() {\n this._pause$.next(false);\n }\n /**\r\n * Set the focus on the carousel.\r\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 === null || nextSlide === void 0 ? void 0 : 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.RIGHT : NgbSlideEventDirection.LEFT;\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}\nNgbCarousel.ɵfac = function NgbCarousel_Factory(t) {\n return new (t || NgbCarousel)(ɵngcc0.ɵɵdirectiveInject(NgbCarouselConfig), ɵngcc0.ɵɵdirectiveInject(PLATFORM_ID), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef));\n};\nNgbCarousel.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbCarousel,\n selectors: [[\"ngb-carousel\"]],\n contentQueries: function NgbCarousel_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbSlide, 4);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵ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 ɵngcc0.ɵɵ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 ɵngcc0.ɵɵattribute(\"aria-activedescendant\", \"slide-\" + ctx.activeId);\n ɵngcc0.ɵɵstyleProp(\"display\", \"block\");\n }\n },\n inputs: {\n animation: \"animation\",\n interval: \"interval\",\n wrap: \"wrap\",\n keyboard: \"keyboard\",\n pauseOnHover: \"pauseOnHover\",\n pauseOnFocus: \"pauseOnFocus\",\n showNavigationArrows: \"showNavigationArrows\",\n showNavigationIndicators: \"showNavigationIndicators\",\n activeId: \"activeId\"\n },\n outputs: {\n slide: \"slide\",\n slid: \"slid\"\n },\n exportAs: [\"ngbCarousel\"],\n decls: 6,\n vars: 6,\n consts: function () {\n let i18n_4;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc Currently selected slide number read by screen reader\n */\n const MSG_EXTERNAL_ngb_carousel_slide_number$$FESM2015_NG_BOOTSTRAP_JS__5 = 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_4 = MSG_EXTERNAL_ngb_carousel_slide_number$$FESM2015_NG_BOOTSTRAP_JS__5;\n } else {\n i18n_4 = $localize`:Currently selected slide number read by screen reader@@ngb.carousel.slide-number␟a65b1b49aa7dd8c4f3004da6a8c2241814dae621␟783273603869937627: Slide ${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION: of ${\"\\uFFFD1\\uFFFD\"}:INTERPOLATION_1: `;\n }\n let i18n_6;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_carousel_previous$$FESM2015_NG_BOOTSTRAP_JS__7 = goog.getMsg(\"Previous\");\n i18n_6 = MSG_EXTERNAL_ngb_carousel_previous$$FESM2015_NG_BOOTSTRAP_JS__7;\n } else {\n i18n_6 = $localize`:@@ngb.carousel.previous␟680d5c75b7fd8d37961083608b9fcdc4167b4c43␟4452427314943113135:Previous`;\n }\n let i18n_8;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_carousel_next$$FESM2015_NG_BOOTSTRAP_JS__9 = goog.getMsg(\"Next\");\n i18n_8 = MSG_EXTERNAL_ngb_carousel_next$$FESM2015_NG_BOOTSTRAP_JS__9;\n } else {\n i18n_8 = $localize`:@@ngb.carousel.next␟f732c304c7433e5a83ffcd862c3dce709a0f4982␟3885497195825665706:Next`;\n }\n return [[\"role\", \"tablist\", 1, \"carousel-indicators\"], [\"role\", \"tab\", 3, \"active\", \"click\", 4, \"ngFor\", \"ngForOf\"], [1, \"carousel-inner\"], [\"class\", \"carousel-item\", \"role\", \"tabpanel\", 3, \"id\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"carousel-control-prev\", \"role\", \"button\", 3, \"click\", 4, \"ngIf\"], [\"class\", \"carousel-control-next\", \"role\", \"button\", 3, \"click\", 4, \"ngIf\"], [\"role\", \"tab\", 3, \"click\"], [\"role\", \"tabpanel\", 1, \"carousel-item\", 3, \"id\"], [1, \"sr-only\"], i18n_4, [3, \"ngTemplateOutlet\"], [\"role\", \"button\", 1, \"carousel-control-prev\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"carousel-control-prev-icon\"], i18n_6, [\"role\", \"button\", 1, \"carousel-control-next\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"carousel-control-next-icon\"], i18n_8];\n },\n template: function NgbCarousel_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"ol\", 0);\n ɵngcc0.ɵɵtemplate(1, NgbCarousel_li_1_Template, 1, 5, \"li\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"div\", 2);\n ɵngcc0.ɵɵtemplate(3, NgbCarousel_div_3_Template, 4, 4, \"div\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(4, NgbCarousel_a_4_Template, 4, 0, \"a\", 4);\n ɵngcc0.ɵɵtemplate(5, NgbCarousel_a_5_Template, 4, 0, \"a\", 5);\n }\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"sr-only\", !ctx.showNavigationIndicators);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.slides);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.slides);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showNavigationArrows);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showNavigationArrows);\n }\n },\n dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n});\nNgbCarousel.ctorParameters = () => [{\n type: NgbCarouselConfig\n}, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }]\n}, {\n type: NgZone\n}, {\n type: ChangeDetectorRef\n}, {\n type: ElementRef\n}];\nNgbCarousel.propDecorators = {\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCarousel, [{\n type: Component,\n args: [{\n selector: 'ngb-carousel',\n exportAs: 'ngbCarousel',\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 <ol class=\"carousel-indicators\" [class.sr-only]=\"!showNavigationIndicators\" role=\"tablist\">\n <li *ngFor=\"let slide of slides\" [class.active]=\"slide.id === activeId\"\n role=\"tab\" [attr.aria-labelledby]=\"'slide-' + slide.id\" [attr.aria-controls]=\"'slide-' + slide.id\"\n [attr.aria-selected]=\"slide.id === activeId\"\n (click)=\"focus();select(slide.id, NgbSlideEventSource.INDICATOR);\"></li>\n </ol>\n <div class=\"carousel-inner\">\n <div *ngFor=\"let slide of slides; index as i; count as c\" class=\"carousel-item\" [id]=\"'slide-' + slide.id\" role=\"tabpanel\">\n <span class=\"sr-only\" i18n=\"Currently selected slide number read by screen reader@@ngb.carousel.slide-number\">\n Slide {{i + 1}} of {{c}}\n </span>\n <ng-template [ngTemplateOutlet]=\"slide.tplRef\"></ng-template>\n </div>\n </div>\n <a class=\"carousel-control-prev\" role=\"button\" (click)=\"arrowLeft()\" *ngIf=\"showNavigationArrows\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n <span class=\"sr-only\" i18n=\"@@ngb.carousel.previous\">Previous</span>\n </a>\n <a class=\"carousel-control-next\" role=\"button\" (click)=\"arrowRight()\" *ngIf=\"showNavigationArrows\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n <span class=\"sr-only\" i18n=\"@@ngb.carousel.next\">Next</span>\n </a>\n `\n }]\n }], function () {\n return [{\n type: NgbCarouselConfig\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }]\n }, {\n type: ɵngcc0.NgZone\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }, {\n type: ɵngcc0.ElementRef\n }];\n }, {\n slide: [{\n type: Output\n }],\n slid: [{\n type: Output\n }],\n animation: [{\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 activeId: [{\n type: Input\n }],\n slides: [{\n type: ContentChildren,\n args: [NgbSlide]\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 = {}));\nconst NGB_CAROUSEL_DIRECTIVES = [NgbCarousel, NgbSlide];\nclass NgbCarouselModule {}\nNgbCarouselModule.ɵfac = function NgbCarouselModule_Factory(t) {\n return new (t || NgbCarouselModule)();\n};\nNgbCarouselModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbCarouselModule\n});\nNgbCarouselModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [CommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCarouselModule, [{\n type: NgModule,\n args: [{\n declarations: NGB_CAROUSEL_DIRECTIVES,\n exports: NGB_CAROUSEL_DIRECTIVES,\n imports: [CommonModule]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbCarouselModule, {\n declarations: function () {\n return [NgbCarousel, NgbSlide];\n },\n imports: function () {\n return [CommonModule];\n },\n exports: function () {\n return [NgbCarousel, NgbSlide];\n }\n });\n})();\n\n/**\r\n * A configuration service for the [NgbCollapse](#/components/collapse/api#NgbCollapse) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize its properties\r\n * to provide default values for all collapses used in the application.\r\n */\nclass NgbCollapseConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbCollapseConfig.ɵfac = function NgbCollapseConfig_Factory(t) {\n return new (t || NgbCollapseConfig)(ɵngcc0.ɵɵinject(NgbConfig));\n};\nNgbCollapseConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbCollapseConfig_Factory() {\n return new NgbCollapseConfig(ɵɵinject(NgbConfig));\n },\n token: NgbCollapseConfig,\n providedIn: \"root\"\n});\nNgbCollapseConfig.ctorParameters = () => [{\n type: NgbConfig\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCollapseConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: NgbConfig\n }];\n }, null);\n})();\n\n/**\r\n * A directive to provide a simple way of hiding and showing elements on the page.\r\n */\nclass NgbCollapse {\n constructor(_element, config, _zone) {\n this._element = _element;\n this._zone = _zone;\n /**\r\n * If `true`, will collapse the element or show it otherwise.\r\n */\n this.collapsed = false;\n this.ngbCollapseChange = new EventEmitter();\n /**\r\n * An event emitted when the collapse element is shown, after the transition. It has no payload.\r\n *\r\n * @since 8.0.0\r\n */\n this.shown = new EventEmitter();\n /**\r\n * An event emitted when the collapse element is hidden, after the transition. It has no payload.\r\n *\r\n * @since 8.0.0\r\n */\n this.hidden = new EventEmitter();\n this.animation = config.animation;\n }\n ngOnInit() {\n this._runTransition(this.collapsed, false);\n }\n ngOnChanges({\n collapsed\n }) {\n if (!collapsed.firstChange) {\n this._runTransitionWithEvents(this.collapsed, this.animation);\n }\n }\n /**\r\n * Triggers collapsing programmatically.\r\n *\r\n * If there is a collapsing transition running already, it will be reversed.\r\n * If the animations are turned off this happens synchronously.\r\n *\r\n * @since 8.0.0\r\n */\n toggle(open = this.collapsed) {\n this.collapsed = !open;\n this.ngbCollapseChange.next(this.collapsed);\n this._runTransitionWithEvents(this.collapsed, this.animation);\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 }\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}\nNgbCollapse.ɵfac = function NgbCollapse_Factory(t) {\n return new (t || NgbCollapse)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(NgbCollapseConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone));\n};\nNgbCollapse.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbCollapse,\n selectors: [[\"\", \"ngbCollapse\", \"\"]],\n inputs: {\n collapsed: [\"ngbCollapse\", \"collapsed\"],\n animation: \"animation\"\n },\n outputs: {\n ngbCollapseChange: \"ngbCollapseChange\",\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbCollapse\"],\n features: [ɵngcc0.ɵɵNgOnChangesFeature]\n});\nNgbCollapse.ctorParameters = () => [{\n type: ElementRef\n}, {\n type: NgbCollapseConfig\n}, {\n type: NgZone\n}];\nNgbCollapse.propDecorators = {\n animation: [{\n type: Input\n }],\n collapsed: [{\n type: Input,\n args: ['ngbCollapse']\n }],\n ngbCollapseChange: [{\n type: Output\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCollapse, [{\n type: Directive,\n args: [{\n selector: '[ngbCollapse]',\n exportAs: 'ngbCollapse'\n }]\n }], function () {\n return [{\n type: ɵngcc0.ElementRef\n }, {\n type: NgbCollapseConfig\n }, {\n type: ɵngcc0.NgZone\n }];\n }, {\n collapsed: [{\n type: Input,\n args: ['ngbCollapse']\n }],\n ngbCollapseChange: [{\n type: Output\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n animation: [{\n type: Input\n }]\n });\n})();\nclass NgbCollapseModule {}\nNgbCollapseModule.ɵfac = function NgbCollapseModule_Factory(t) {\n return new (t || NgbCollapseModule)();\n};\nNgbCollapseModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbCollapseModule\n});\nNgbCollapseModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCollapseModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbCollapse],\n exports: [NgbCollapse]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbCollapseModule, {\n declarations: [NgbCollapse],\n exports: [NgbCollapse]\n });\n})();\n\n/**\r\n * A simple class that represents a date that datepicker also uses internally.\r\n *\r\n * It is the implementation of the `NgbDateStruct` interface that adds some convenience methods,\r\n * like `.equals()`, `.before()`, etc.\r\n *\r\n * All datepicker APIs consume `NgbDateStruct`, but return `NgbDate`.\r\n *\r\n * In many cases it is simpler to manipulate these objects together with\r\n * [`NgbCalendar`](#/components/datepicker/api#NgbCalendar) than native JS Dates.\r\n *\r\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\r\n *\r\n * @since 3.0.0\r\n */\nclass NgbDate {\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 /**\r\n * A **static method** that creates a new date object from the `NgbDateStruct`,\r\n *\r\n * ex. `NgbDate.from({year: 2000, month: 5, day: 1})`.\r\n *\r\n * If the `date` is already of `NgbDate` type, the method will return the same object.\r\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 /**\r\n * Checks if the current date is equal to another date.\r\n */\n equals(other) {\n return other != null && this.year === other.year && this.month === other.month && this.day === other.day;\n }\n /**\r\n * Checks if the current date is before another date.\r\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 /**\r\n * Checks if the current date is after another date.\r\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/**\r\n * A service that represents the calendar used by the datepicker.\r\n *\r\n * The default implementation uses the Gregorian calendar. You can inject it in your own\r\n * implementations if necessary to simplify `NgbDate` calculations.\r\n */\nclass NgbCalendar {}\nNgbCalendar.ɵfac = function NgbCalendar_Factory(t) {\n return new (t || NgbCalendar)();\n};\nNgbCalendar.ɵprov = ɵɵdefineInjectable({\n factory: NGB_DATEPICKER_CALENDAR_FACTORY,\n token: NgbCalendar,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵ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}\nNgbCalendarGregorian.ɵfac = /*@__PURE__*/function () {\n let ɵNgbCalendarGregorian_BaseFactory;\n return function NgbCalendarGregorian_Factory(t) {\n return (ɵNgbCalendarGregorian_BaseFactory || (ɵNgbCalendarGregorian_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarGregorian)))(t || NgbCalendarGregorian);\n };\n}();\nNgbCalendarGregorian.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbCalendarGregorian,\n factory: NgbCalendarGregorian.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵ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 // clang-format off\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 // clang-format on\n}\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}\nfunction NGB_DATEPICKER_18N_FACTORY(locale) {\n return new NgbDatepickerI18nDefault(locale);\n}\n/**\r\n * A service supplying i18n data to the datepicker component.\r\n *\r\n * The default implementation of this service uses the Angular locale and registered locale data for\r\n * weekdays and month names (as explained in the Angular i18n guide).\r\n *\r\n * It also provides a way to i18n data that depends on calendar calculations, like aria labels, day, week and year\r\n * numerals. For other static labels the datepicker uses the default Angular i18n.\r\n *\r\n * See the [i18n demo](#/components/datepicker/examples#i18n) and\r\n * [Hebrew calendar demo](#/components/datepicker/calendars#hebrew) on how to extend this class and define\r\n * a custom provider for i18n.\r\n */\nclass NgbDatepickerI18n {\n /**\r\n * Returns the weekday label using specified width\r\n *\r\n * @since 9.1.0\r\n */\n getWeekdayLabel(weekday, width) {\n return this.getWeekdayShortName(weekday);\n }\n /**\r\n * Returns the text label to display above the day view.\r\n *\r\n * @since 9.1.0\r\n */\n getMonthLabel(date) {\n return `${this.getMonthFullName(date.month, date.year)} ${this.getYearNumerals(date.year)}`;\n }\n /**\r\n * Returns the textual representation of a day that is rendered in a day cell.\r\n *\r\n * @since 3.0.0\r\n */\n getDayNumerals(date) {\n return `${date.day}`;\n }\n /**\r\n * Returns the textual representation of a week number rendered by datepicker.\r\n *\r\n * @since 3.0.0\r\n */\n getWeekNumerals(weekNumber) {\n return `${weekNumber}`;\n }\n /**\r\n * Returns the textual representation of a year that is rendered in the datepicker year select box.\r\n *\r\n * @since 3.0.0\r\n */\n getYearNumerals(year) {\n return `${year}`;\n }\n /**\r\n * Returns the week label to display in the heading of the month view.\r\n *\r\n * @since 9.1.0\r\n */\n getWeekLabel() {\n return '';\n }\n}\nNgbDatepickerI18n.ɵfac = function NgbDatepickerI18n_Factory(t) {\n return new (t || NgbDatepickerI18n)();\n};\nNgbDatepickerI18n.ɵprov = ɵɵdefineInjectable({\n factory: function NgbDatepickerI18n_Factory() {\n return NGB_DATEPICKER_18N_FACTORY(ɵɵinject(LOCALE_ID));\n },\n token: NgbDatepickerI18n,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerI18n, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: NGB_DATEPICKER_18N_FACTORY,\n deps: [LOCALE_ID]\n }]\n }], null, null);\n})();\n/**\r\n * A service providing default implementation for the datepicker i18n.\r\n * It can be used as a base implementation if necessary.\r\n *\r\n * @since 9.1.0\r\n */\nclass NgbDatepickerI18nDefault extends NgbDatepickerI18n {\n constructor(_locale) {\n super();\n this._locale = _locale;\n this._monthsShort = getLocaleMonthNames(_locale, FormStyle.Standalone, TranslationWidth.Abbreviated);\n this._monthsFull = getLocaleMonthNames(_locale, FormStyle.Standalone, TranslationWidth.Wide);\n }\n getWeekdayShortName(weekday) {\n return this.getWeekdayLabel(weekday, TranslationWidth.Short);\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}\nNgbDatepickerI18nDefault.ɵfac = function NgbDatepickerI18nDefault_Factory(t) {\n return new (t || NgbDatepickerI18nDefault)(ɵngcc0.ɵɵinject(LOCALE_ID));\n};\nNgbDatepickerI18nDefault.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbDatepickerI18nDefault,\n factory: NgbDatepickerI18nDefault.ɵfac\n});\nNgbDatepickerI18nDefault.ctorParameters = () => [{\n type: String,\n decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }]\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerI18nDefault, [{\n type: Injectable\n }], function () {\n return [{\n type: String,\n decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }]\n }];\n }, null);\n})();\nclass NgbDatepickerService {\n constructor(_calendar, _i18n) {\n this._calendar = _calendar;\n this._i18n = _i18n;\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._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) => Object.assign(Object.assign({}, 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({\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}\nNgbDatepickerService.ɵfac = function NgbDatepickerService_Factory(t) {\n return new (t || NgbDatepickerService)(ɵngcc0.ɵɵinject(NgbCalendar), ɵngcc0.ɵɵinject(NgbDatepickerI18n));\n};\nNgbDatepickerService.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbDatepickerService,\n factory: NgbDatepickerService.ɵfac\n});\nNgbDatepickerService.ctorParameters = () => [{\n type: NgbCalendar\n}, {\n type: NgbDatepickerI18n\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerService, [{\n type: Injectable\n }], function () {\n return [{\n type: NgbCalendar\n }, {\n type: NgbDatepickerI18n\n }];\n }, null);\n})();\n\n// clang-format on\nvar NavigationEvent;\n(function (NavigationEvent) {\n NavigationEvent[NavigationEvent[\"PREV\"] = 0] = \"PREV\";\n NavigationEvent[NavigationEvent[\"NEXT\"] = 1] = \"NEXT\";\n})(NavigationEvent || (NavigationEvent = {}));\n\n/**\r\n * A configuration service for the [`NgbDatepicker`](#/components/datepicker/api#NgbDatepicker) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the datepickers used in the application.\r\n */\nclass NgbDatepickerConfig {\n constructor() {\n this.displayMonths = 1;\n this.firstDayOfWeek = 1;\n this.navigation = 'select';\n this.outsideDays = 'visible';\n this.showWeekdays = true;\n this.showWeekNumbers = false;\n this.weekdays = TranslationWidth.Short;\n }\n}\nNgbDatepickerConfig.ɵfac = function NgbDatepickerConfig_Factory(t) {\n return new (t || NgbDatepickerConfig)();\n};\nNgbDatepickerConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbDatepickerConfig_Factory() {\n return new NgbDatepickerConfig();\n },\n token: NgbDatepickerConfig,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [];\n }, null);\n})();\nfunction NGB_DATEPICKER_DATE_ADAPTER_FACTORY() {\n return new NgbDateStructAdapter();\n}\n/**\r\n * An abstract service that does the conversion between the internal datepicker `NgbDateStruct` model and\r\n * any provided user date model `D`, ex. a string, a native date, etc.\r\n *\r\n * The adapter is used **only** for conversion when binding datepicker to a form control,\r\n * ex. `[(ngModel)]=\"userDateModel\"`. Here `userDateModel` can be of any type.\r\n *\r\n * The default datepicker implementation assumes we use `NgbDateStruct` as a user model.\r\n *\r\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details\r\n * and the [custom adapter demo](#/components/datepicker/examples#adapter) for an example.\r\n */\nclass NgbDateAdapter {}\nNgbDateAdapter.ɵfac = function NgbDateAdapter_Factory(t) {\n return new (t || NgbDateAdapter)();\n};\nNgbDateAdapter.ɵprov = ɵɵdefineInjectable({\n factory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY,\n token: NgbDateAdapter,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵ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 /**\r\n * Converts a NgbDateStruct value into NgbDateStruct value\r\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 /**\r\n * Converts a NgbDateStruct value into NgbDateStruct value\r\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}\nNgbDateStructAdapter.ɵfac = /*@__PURE__*/function () {\n let ɵNgbDateStructAdapter_BaseFactory;\n return function NgbDateStructAdapter_Factory(t) {\n return (ɵNgbDateStructAdapter_BaseFactory || (ɵNgbDateStructAdapter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDateStructAdapter)))(t || NgbDateStructAdapter);\n };\n}();\nNgbDateStructAdapter.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbDateStructAdapter,\n factory: NgbDateStructAdapter.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateStructAdapter, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\r\n * A directive that marks the content template that customizes the way datepicker months are displayed\r\n *\r\n * @since 5.3.0\r\n */\nclass NgbDatepickerContent {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbDatepickerContent.ɵfac = function NgbDatepickerContent_Factory(t) {\n return new (t || NgbDatepickerContent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef));\n};\nNgbDatepickerContent.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbDatepickerContent,\n selectors: [[\"ng-template\", \"ngbDatepickerContent\", \"\"]]\n});\nNgbDatepickerContent.ctorParameters = () => [{\n type: TemplateRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerContent, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbDatepickerContent]'\n }]\n }], function () {\n return [{\n type: ɵngcc0.TemplateRef\n }];\n }, null);\n})();\n/**\r\n * A highly configurable component that helps you with selecting calendar dates.\r\n *\r\n * `NgbDatepicker` is meant to be displayed inline on a page or put inside a popup.\r\n */\nclass NgbDatepicker {\n constructor(_service, _calendar, i18n, config, cd, _elementRef, _ngbDateAdapter, _ngZone) {\n this._service = _service;\n this._calendar = _calendar;\n this.i18n = i18n;\n this._elementRef = _elementRef;\n this._ngbDateAdapter = _ngbDateAdapter;\n this._ngZone = _ngZone;\n this._controlValue = null;\n this._destroyed$ = new Subject();\n this._publicState = {};\n /**\r\n * An event emitted right before the navigation happens and displayed month changes.\r\n *\r\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\r\n */\n this.navigate = new EventEmitter();\n /**\r\n * An event emitted when user selects a date using keyboard or mouse.\r\n *\r\n * The payload of the event is currently selected `NgbDate`.\r\n *\r\n * @since 5.2.0\r\n */\n this.dateSelect = new EventEmitter();\n this.onChange = _ => {};\n this.onTouched = () => {};\n ['dayTemplate', 'dayTemplateData', 'displayMonths', 'firstDayOfWeek', 'footerTemplate', 'markDisabled', 'minDate', 'maxDate', 'navigation', 'outsideDays', 'showWeekdays', 'showWeekNumbers', 'startDate', 'weekdays'].forEach(input => this[input] = config[input]);\n _service.dateSelect$.pipe(takeUntil(this._destroyed$)).subscribe(date => {\n this.dateSelect.emit(date);\n });\n _service.model$.pipe(takeUntil(this._destroyed$)).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 /**\r\n * If `true`, weekdays will be displayed.\r\n *\r\n * @deprecated 9.1.0, please use 'weekdays' instead\r\n */\n set showWeekdays(weekdays) {\n this.weekdays = weekdays;\n this._showWeekdays = weekdays;\n }\n get showWeekdays() {\n return this._showWeekdays;\n }\n /**\r\n * Returns the readonly public state of the datepicker\r\n *\r\n * @since 5.2.0\r\n */\n get state() {\n return this._publicState;\n }\n /**\r\n * Returns the calendar service used in the specific datepicker instance.\r\n *\r\n * @since 5.3.0\r\n */\n get calendar() {\n return this._calendar;\n }\n /**\r\n * Focuses on given date.\r\n */\n focusDate(date) {\n this._service.focus(NgbDate.from(date));\n }\n /**\r\n * Selects focused date.\r\n */\n focusSelect() {\n this._service.focusSelect();\n }\n focus() {\n this._ngZone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n const elementToFocus = this._elementRef.nativeElement.querySelector('div.ngb-dp-day[tabindex=\"0\"]');\n if (elementToFocus) {\n elementToFocus.focus();\n }\n });\n }\n /**\r\n * Navigates to the provided date.\r\n *\r\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\r\n * If nothing or invalid date provided calendar will open current month.\r\n *\r\n * Use the `[startDate]` input as an alternative.\r\n */\n navigateTo(date) {\n this._service.open(NgbDate.from(date ? date.day ? date : Object.assign(Object.assign({}, 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 const {\n nativeElement\n } = this._elementRef;\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(({\n target,\n relatedTarget\n }) => !(hasClassName(target, 'ngb-dp-day') && hasClassName(relatedTarget, 'ngb-dp-day') && nativeElement.contains(target) && nativeElement.contains(relatedTarget))), takeUntil(this._destroyed$)).subscribe(({\n type\n }) => this._ngZone.run(() => this._service.set({\n focusVisible: type === 'focusin'\n })));\n });\n }\n ngOnDestroy() {\n this._destroyed$.next();\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 if (changes.showWeekdays) {\n inputs['weekdays'] = this.weekdays;\n }\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}\nNgbDatepicker.ɵfac = function NgbDatepicker_Factory(t) {\n return new (t || NgbDatepicker)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerService), ɵngcc0.ɵɵdirectiveInject(NgbCalendar), ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n), ɵngcc0.ɵɵdirectiveInject(NgbDatepickerConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(NgbDateAdapter), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone));\n};\nNgbDatepicker.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbDatepicker,\n selectors: [[\"ngb-datepicker\"]],\n contentQueries: function NgbDatepicker_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDatepickerContent, 7);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n }\n },\n viewQuery: function NgbDatepicker_Query(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c10, 7);\n ɵngcc0.ɵɵviewQuery(_c11, 7);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._defaultDayTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._contentEl = _t.first);\n }\n },\n inputs: {\n showWeekdays: \"showWeekdays\",\n weekdays: \"weekdays\",\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 },\n outputs: {\n navigate: \"navigate\",\n dateSelect: \"dateSelect\"\n },\n exportAs: [\"ngbDatepicker\"],\n features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbDatepicker),\n multi: true\n }, NgbDatepickerService]), ɵngcc0.ɵɵNgOnChangesFeature],\n decls: 10,\n vars: 5,\n consts: [[\"defaultDayTemplate\", \"\"], [\"defaultContentTemplate\", \"\"], [1, \"ngb-dp-header\"], [3, \"date\", \"months\", \"disabled\", \"showSelect\", \"prevDisabled\", \"nextDisabled\", \"selectBoxes\", \"navigate\", \"select\", 4, \"ngIf\"], [1, \"ngb-dp-content\"], [\"content\", \"\"], [3, \"ngTemplateOutlet\"], [\"ngbDatepickerDayView\", \"\", 3, \"date\", \"currentMonth\", \"selected\", \"disabled\", \"focused\"], [\"class\", \"ngb-dp-month\", 4, \"ngFor\", \"ngForOf\"], [1, \"ngb-dp-month\"], [\"class\", \"ngb-dp-month-name\", 4, \"ngIf\"], [3, \"month\"], [1, \"ngb-dp-month-name\"], [3, \"date\", \"months\", \"disabled\", \"showSelect\", \"prevDisabled\", \"nextDisabled\", \"selectBoxes\", \"navigate\", \"select\"]],\n template: function NgbDatepicker_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepicker_ng_template_0_Template, 1, 5, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbDatepicker_ng_template_2_Template, 1, 1, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementStart(4, \"div\", 2);\n ɵngcc0.ɵɵtemplate(5, NgbDatepicker_ngb_datepicker_navigation_5_Template, 1, 7, \"ngb-datepicker-navigation\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(6, \"div\", 4, 5);\n ɵngcc0.ɵɵtemplate(8, NgbDatepicker_ng_template_8_Template, 0, 0, \"ng-template\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(9, NgbDatepicker_ng_template_9_Template, 0, 0, \"ng-template\", 6);\n }\n if (rf & 2) {\n const _r2 = ɵngcc0.ɵɵreference(3);\n ɵngcc0.ɵɵadvance(5);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.navigation !== \"none\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"ngb-dp-months\", !ctx.contentTemplate);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx.contentTemplate == null ? null : ctx.contentTemplate.templateRef) || _r2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.footerTemplate);\n }\n },\n dependencies: function () {\n return [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, NgbDatepickerMonth, NgbDatepickerNavigation, NgbDatepickerDayView];\n },\n styles: [\"ngb-datepicker{border:1px solid #dfdfdf;border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}.ngb-dp-body{z-index:1050}.ngb-dp-header{background-color:#f8f9fa;background-color:var(--light);border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem}.ngb-dp-months{display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{background-color:#f8f9fa;background-color:var(--light);font-size:larger;height:2rem;line-height:2rem;text-align:center}.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 encapsulation: 2,\n changeDetection: 0\n});\nNgbDatepicker.ctorParameters = () => [{\n type: NgbDatepickerService\n}, {\n type: NgbCalendar\n}, {\n type: NgbDatepickerI18n\n}, {\n type: NgbDatepickerConfig\n}, {\n type: ChangeDetectorRef\n}, {\n type: ElementRef\n}, {\n type: NgbDateAdapter\n}, {\n type: NgZone\n}];\nNgbDatepicker.propDecorators = {\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: 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 showWeekdays: [{\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepicker, [{\n type: Component,\n args: [{\n exportAs: 'ngbDatepicker',\n selector: 'ngb-datepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <ng-template #defaultDayTemplate let-date=\"date\" let-currentMonth=\"currentMonth\" let-selected=\"selected\"\n let-disabled=\"disabled\" let-focused=\"focused\">\n <div ngbDatepickerDayView\n [date]=\"date\"\n [currentMonth]=\"currentMonth\"\n [selected]=\"selected\"\n [disabled]=\"disabled\"\n [focused]=\"focused\">\n </div>\n </ng-template>\n\n <ng-template #defaultContentTemplate>\n <div *ngFor=\"let month of model.months; let i = index;\" class=\"ngb-dp-month\">\n <div *ngIf=\"navigation === 'none' || (displayMonths > 1 && navigation === 'select')\" class=\"ngb-dp-month-name\">\n {{ i18n.getMonthLabel(month.firstDate) }}\n </div>\n <ngb-datepicker-month [month]=\"month.firstDate\"></ngb-datepicker-month>\n </div>\n </ng-template>\n\n <div class=\"ngb-dp-header\">\n <ngb-datepicker-navigation *ngIf=\"navigation !== 'none'\"\n [date]=\"model.firstDate!\"\n [months]=\"model.months\"\n [disabled]=\"model.disabled\"\n [showSelect]=\"model.navigation === 'select'\"\n [prevDisabled]=\"model.prevDisabled\"\n [nextDisabled]=\"model.nextDisabled\"\n [selectBoxes]=\"model.selectBoxes\"\n (navigate)=\"onNavigateEvent($event)\"\n (select)=\"onNavigateDateSelect($event)\">\n </ngb-datepicker-navigation>\n </div>\n\n <div class=\"ngb-dp-content\" [class.ngb-dp-months]=\"!contentTemplate\" #content>\n <ng-template [ngTemplateOutlet]=\"contentTemplate?.templateRef || defaultContentTemplate\"></ng-template>\n </div>\n\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n `,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbDatepicker),\n multi: true\n }, NgbDatepickerService],\n styles: [\"ngb-datepicker{border:1px solid #dfdfdf;border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}.ngb-dp-body{z-index:1050}.ngb-dp-header{background-color:#f8f9fa;background-color:var(--light);border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem}.ngb-dp-months{display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{background-color:#f8f9fa;background-color:var(--light);font-size:larger;height:2rem;line-height:2rem;text-align:center}.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 }], function () {\n return [{\n type: NgbDatepickerService\n }, {\n type: NgbCalendar\n }, {\n type: NgbDatepickerI18n\n }, {\n type: NgbDatepickerConfig\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }, {\n type: ɵngcc0.ElementRef\n }, {\n type: NgbDateAdapter\n }, {\n type: ɵngcc0.NgZone\n }];\n }, {\n navigate: [{\n type: Output\n }],\n dateSelect: [{\n type: Output\n }],\n showWeekdays: [{\n type: Input\n }],\n weekdays: [{\n type: Input\n }],\n dayTemplate: [{\n type: Input\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: ContentChild,\n args: [NgbDatepickerContent, {\n static: true\n }]\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 });\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/**\r\n * A service that represents the keyboard navigation.\r\n *\r\n * Default keyboard shortcuts [are documented in the overview](#/components/datepicker/overview#keyboard-shortcuts)\r\n *\r\n * @since 5.2.0\r\n */\nclass NgbDatepickerKeyboardService {\n /**\r\n * Processes a keyboard event.\r\n */\n processKey(event, datepicker) {\n const {\n state,\n calendar\n } = datepicker;\n // tslint:disable-next-line: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}\nNgbDatepickerKeyboardService.ɵfac = function NgbDatepickerKeyboardService_Factory(t) {\n return new (t || NgbDatepickerKeyboardService)();\n};\nNgbDatepickerKeyboardService.ɵprov = ɵɵdefineInjectable({\n factory: function NgbDatepickerKeyboardService_Factory() {\n return new NgbDatepickerKeyboardService();\n },\n token: NgbDatepickerKeyboardService,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerKeyboardService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\r\n * A component that renders one month including all the days, weekdays and week numbers. Can be used inside\r\n * the `<ng-template ngbDatepickerMonths></ng-template>` when you want to customize months layout.\r\n *\r\n * For a usage example, see [custom month layout demo](#/components/datepicker/examples#custommonth)\r\n *\r\n * @since 5.3.0\r\n */\nclass NgbDatepickerMonth {\n constructor(i18n, datepicker, _keyboardService, _service) {\n this.i18n = i18n;\n this.datepicker = datepicker;\n this._keyboardService = _keyboardService;\n this._service = _service;\n }\n /**\r\n * The first date of month to be rendered.\r\n *\r\n * This month must one of the months present in the\r\n * [datepicker state](#/components/datepicker/api#NgbDatepickerState).\r\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}\nNgbDatepickerMonth.ɵfac = function NgbDatepickerMonth_Factory(t) {\n return new (t || NgbDatepickerMonth)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n), ɵngcc0.ɵɵdirectiveInject(NgbDatepicker), ɵngcc0.ɵɵdirectiveInject(NgbDatepickerKeyboardService), ɵngcc0.ɵɵdirectiveInject(NgbDatepickerService));\n};\nNgbDatepickerMonth.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵ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 ɵngcc0.ɵɵlistener(\"keydown\", function NgbDatepickerMonth_keydown_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n });\n }\n },\n inputs: {\n month: \"month\"\n },\n decls: 2,\n vars: 2,\n consts: [[\"class\", \"ngb-dp-week ngb-dp-weekdays\", \"role\", \"row\", 4, \"ngIf\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [\"role\", \"row\", 1, \"ngb-dp-week\", \"ngb-dp-weekdays\"], [\"class\", \"ngb-dp-weekday ngb-dp-showweek small\", 4, \"ngIf\"], [\"class\", \"ngb-dp-weekday small\", \"role\", \"columnheader\", 4, \"ngFor\", \"ngForOf\"], [1, \"ngb-dp-weekday\", \"ngb-dp-showweek\", \"small\"], [\"role\", \"columnheader\", 1, \"ngb-dp-weekday\", \"small\"], [\"class\", \"ngb-dp-week\", \"role\", \"row\", 4, \"ngIf\"], [\"role\", \"row\", 1, \"ngb-dp-week\"], [\"class\", \"ngb-dp-week-number small text-muted\", 4, \"ngIf\"], [\"class\", \"ngb-dp-day\", \"role\", \"gridcell\", 3, \"disabled\", \"tabindex\", \"hidden\", \"ngb-dp-today\", \"click\", 4, \"ngFor\", \"ngForOf\"], [1, \"ngb-dp-week-number\", \"small\", \"text-muted\"], [\"role\", \"gridcell\", 1, \"ngb-dp-day\", 3, \"tabindex\", \"click\"], [3, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgbDatepickerMonth_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerMonth_div_0_Template, 3, 2, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, NgbDatepickerMonth_ng_template_1_Template, 1, 1, \"ng-template\", 1);\n }\n if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.viewModel.weekdays.length > 0);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.viewModel.weeks);\n }\n },\n dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet],\n styles: [\"ngb-datepicker-month{display:block}.ngb-dp-week-number,.ngb-dp-weekday{font-style:italic;line-height:2rem;text-align:center}.ngb-dp-weekday{color:#5bc0de;color:var(--info)}.ngb-dp-week{border-radius:.25rem;display:flex}.ngb-dp-weekdays{background-color:#f8f9fa;background-color:var(--light);border-bottom:1px solid rgba(0,0,0,.125);border-radius:0}.ngb-dp-day,.ngb-dp-week-number,.ngb-dp-weekday{height:2rem;width: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 encapsulation: 2\n});\nNgbDatepickerMonth.ctorParameters = () => [{\n type: NgbDatepickerI18n\n}, {\n type: NgbDatepicker\n}, {\n type: NgbDatepickerKeyboardService\n}, {\n type: NgbDatepickerService\n}];\nNgbDatepickerMonth.propDecorators = {\n month: [{\n type: Input\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerMonth, [{\n type: Component,\n args: [{\n selector: 'ngb-datepicker-month',\n host: {\n 'role': 'grid',\n '(keydown)': 'onKeyDown($event)'\n },\n encapsulation: ViewEncapsulation.None,\n template: `\n <div *ngIf=\"viewModel.weekdays.length > 0\" class=\"ngb-dp-week ngb-dp-weekdays\" role=\"row\">\n <div *ngIf=\"datepicker.showWeekNumbers\" class=\"ngb-dp-weekday ngb-dp-showweek small\">{{ i18n.getWeekLabel() }}</div>\n <div *ngFor=\"let weekday of viewModel.weekdays\" class=\"ngb-dp-weekday small\" role=\"columnheader\">{{ weekday }}</div>\n </div>\n <ng-template ngFor let-week [ngForOf]=\"viewModel.weeks\">\n <div *ngIf=\"!week.collapsed\" class=\"ngb-dp-week\" role=\"row\">\n <div *ngIf=\"datepicker.showWeekNumbers\" class=\"ngb-dp-week-number small text-muted\">{{ i18n.getWeekNumerals(week.number) }}</div>\n <div *ngFor=\"let day of week.days\" (click)=\"doSelect(day); $event.preventDefault()\" class=\"ngb-dp-day\" role=\"gridcell\"\n [class.disabled]=\"day.context.disabled\"\n [tabindex]=\"day.tabindex\"\n [class.hidden]=\"day.hidden\"\n [class.ngb-dp-today]=\"day.context.today\"\n [attr.aria-label]=\"day.ariaLabel\">\n <ng-template [ngIf]=\"!day.hidden\">\n <ng-template [ngTemplateOutlet]=\"datepicker.dayTemplate\" [ngTemplateOutletContext]=\"day.context\"></ng-template>\n </ng-template>\n </div>\n </div>\n </ng-template>\n `,\n styles: [\"ngb-datepicker-month{display:block}.ngb-dp-week-number,.ngb-dp-weekday{font-style:italic;line-height:2rem;text-align:center}.ngb-dp-weekday{color:#5bc0de;color:var(--info)}.ngb-dp-week{border-radius:.25rem;display:flex}.ngb-dp-weekdays{background-color:#f8f9fa;background-color:var(--light);border-bottom:1px solid rgba(0,0,0,.125);border-radius:0}.ngb-dp-day,.ngb-dp-week-number,.ngb-dp-weekday{height:2rem;width: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 }], function () {\n return [{\n type: NgbDatepickerI18n\n }, {\n type: NgbDatepicker\n }, {\n type: NgbDatepickerKeyboardService\n }, {\n type: NgbDatepickerService\n }];\n }, {\n month: [{\n type: Input\n }]\n });\n})();\nclass NgbDatepickerNavigation {\n constructor(i18n) {\n this.i18n = i18n;\n this.navigation = NavigationEvent;\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}\nNgbDatepickerNavigation.ɵfac = function NgbDatepickerNavigation_Factory(t) {\n return new (t || NgbDatepickerNavigation)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n));\n};\nNgbDatepickerNavigation.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbDatepickerNavigation,\n selectors: [[\"ngb-datepicker-navigation\"]],\n inputs: {\n months: \"months\",\n date: \"date\",\n disabled: \"disabled\",\n showSelect: \"showSelect\",\n prevDisabled: \"prevDisabled\",\n nextDisabled: \"nextDisabled\",\n selectBoxes: \"selectBoxes\"\n },\n outputs: {\n navigate: \"navigate\",\n select: \"select\"\n },\n decls: 8,\n vars: 4,\n consts: function () {\n let i18n_12;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_13 = goog.getMsg(\"Previous month\");\n i18n_12 = MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_13;\n } else {\n i18n_12 = $localize`:@@ngb.datepicker.previous-month␟c3b08b07b5ab98e7cdcf18df39355690ab7d3884␟8586908745456864217:Previous month`;\n }\n let i18n_14;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_15 = goog.getMsg(\"Previous month\");\n i18n_14 = MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_15;\n } else {\n i18n_14 = $localize`:@@ngb.datepicker.previous-month␟c3b08b07b5ab98e7cdcf18df39355690ab7d3884␟8586908745456864217:Previous month`;\n }\n let i18n_16;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_17 = goog.getMsg(\"Next month\");\n i18n_16 = MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_17;\n } else {\n i18n_16 = $localize`:@@ngb.datepicker.next-month␟4bd046985cfe13040d5ef0cd881edce0968a111a␟3628374603023447227:Next month`;\n }\n let i18n_18;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_19 = goog.getMsg(\"Next month\");\n i18n_18 = MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_19;\n } else {\n i18n_18 = $localize`:@@ngb.datepicker.next-month␟4bd046985cfe13040d5ef0cd881edce0968a111a␟3628374603023447227:Next month`;\n }\n return [[1, \"ngb-dp-arrow\"], [\"type\", \"button\", \"aria-label\", i18n_12, \"title\", i18n_14, 1, \"btn\", \"btn-link\", \"ngb-dp-arrow-btn\", 3, \"disabled\", \"click\"], [1, \"ngb-dp-navigation-chevron\"], [\"class\", \"ngb-dp-navigation-select\", 3, \"date\", \"disabled\", \"months\", \"years\", \"select\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"ngb-dp-arrow\", \"right\"], [\"type\", \"button\", \"aria-label\", i18n_16, \"title\", i18n_18, 1, \"btn\", \"btn-link\", \"ngb-dp-arrow-btn\", 3, \"disabled\", \"click\"], [1, \"ngb-dp-navigation-select\", 3, \"date\", \"disabled\", \"months\", \"years\", \"select\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [\"class\", \"ngb-dp-arrow\", 4, \"ngIf\"], [1, \"ngb-dp-month-name\"]];\n },\n template: function NgbDatepickerNavigation_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0)(1, \"button\", 1);\n ɵngcc0.ɵɵlistener(\"click\", function NgbDatepickerNavigation_Template_button_click_1_listener($event) {\n return ctx.onClickPrev($event);\n });\n ɵngcc0.ɵɵelement(2, \"span\", 2);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵtemplate(3, NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template, 1, 4, \"ngb-datepicker-navigation-select\", 3);\n ɵngcc0.ɵɵtemplate(4, NgbDatepickerNavigation_4_Template, 1, 1, null, 4);\n ɵngcc0.ɵɵelementStart(5, \"div\", 5)(6, \"button\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function NgbDatepickerNavigation_Template_button_click_6_listener($event) {\n return ctx.onClickNext($event);\n });\n ɵngcc0.ɵɵelement(7, \"span\", 2);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.prevDisabled);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showSelect);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.showSelect);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.nextDisabled);\n }\n },\n dependencies: function () {\n return [ɵngcc1.NgForOf, ɵngcc1.NgIf, NgbDatepickerNavigationSelect];\n },\n styles: [\"ngb-datepicker-navigation{align-items:center;display:flex}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg);width:.75em}.ngb-dp-arrow{display:flex;flex:1 1 auto;height:2rem;margin:0;padding-left:0;padding-right:0;width:2rem}.ngb-dp-arrow.right{justify-content:flex-end}.ngb-dp-arrow.right .ngb-dp-navigation-chevron{margin-left:.15em;margin-right:.25em;transform:rotate(45deg)}.ngb-dp-arrow-btn{background-color:transparent;border:none;margin:0 .5rem;padding:0 .25rem;z-index:1}.ngb-dp-arrow-btn:focus{outline-style:auto;outline-width:1px}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.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 encapsulation: 2,\n changeDetection: 0\n});\nNgbDatepickerNavigation.ctorParameters = () => [{\n type: NgbDatepickerI18n\n}];\nNgbDatepickerNavigation.propDecorators = {\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerNavigation, [{\n type: Component,\n args: [{\n selector: 'ngb-datepicker-navigation',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <div class=\"ngb-dp-arrow\">\n <button type=\"button\" class=\"btn btn-link ngb-dp-arrow-btn\" (click)=\"onClickPrev($event)\" [disabled]=\"prevDisabled\"\n i18n-aria-label=\"@@ngb.datepicker.previous-month\" aria-label=\"Previous month\"\n i18n-title=\"@@ngb.datepicker.previous-month\" title=\"Previous month\">\n <span class=\"ngb-dp-navigation-chevron\"></span>\n </button>\n </div>\n <ngb-datepicker-navigation-select *ngIf=\"showSelect\" class=\"ngb-dp-navigation-select\"\n [date]=\"date\"\n [disabled] = \"disabled\"\n [months]=\"selectBoxes.months\"\n [years]=\"selectBoxes.years\"\n (select)=\"select.emit($event)\">\n </ngb-datepicker-navigation-select>\n\n <ng-template *ngIf=\"!showSelect\" ngFor let-month [ngForOf]=\"months\" let-i=\"index\">\n <div class=\"ngb-dp-arrow\" *ngIf=\"i > 0\"></div>\n <div class=\"ngb-dp-month-name\">\n {{ i18n.getMonthLabel(month.firstDate) }}\n </div>\n <div class=\"ngb-dp-arrow\" *ngIf=\"i !== months.length - 1\"></div>\n </ng-template>\n <div class=\"ngb-dp-arrow right\">\n <button type=\"button\" class=\"btn btn-link ngb-dp-arrow-btn\" (click)=\"onClickNext($event)\" [disabled]=\"nextDisabled\"\n i18n-aria-label=\"@@ngb.datepicker.next-month\" aria-label=\"Next month\"\n i18n-title=\"@@ngb.datepicker.next-month\" title=\"Next month\">\n <span class=\"ngb-dp-navigation-chevron\"></span>\n </button>\n </div>\n `,\n styles: [\"ngb-datepicker-navigation{align-items:center;display:flex}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg);width:.75em}.ngb-dp-arrow{display:flex;flex:1 1 auto;height:2rem;margin:0;padding-left:0;padding-right:0;width:2rem}.ngb-dp-arrow.right{justify-content:flex-end}.ngb-dp-arrow.right .ngb-dp-navigation-chevron{margin-left:.15em;margin-right:.25em;transform:rotate(45deg)}.ngb-dp-arrow-btn{background-color:transparent;border:none;margin:0 .5rem;padding:0 .25rem;z-index:1}.ngb-dp-arrow-btn:focus{outline-style:auto;outline-width:1px}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.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 }], function () {\n return [{\n type: NgbDatepickerI18n\n }];\n }, {\n months: [{\n type: Input\n }],\n navigate: [{\n type: Output\n }],\n select: [{\n type: Output\n }],\n date: [{\n type: Input\n }],\n disabled: [{\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 });\n})();\nconst isContainedIn = (element, array) => array ? array.some(item => item.contains(element)) : false;\nconst ɵ0$2 = isContainedIn;\nconst matchesSelectorIfAny = (element, selector) => !selector || closest(element, selector) != null;\nconst ɵ1$1 = matchesSelectorIfAny;\nconst ɵ2$1 = () => {\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// 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 = ɵ2$1();\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;\nconst ɵ3 = wrapAsyncForMobile;\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 } else /* if (type === true) */{\n return matchesSelectorIfAny(element, insideSelector) || !isContainedIn(element, insideElements);\n }\n };\n const escapes$ = fromEvent(document, 'keydown').pipe(takeUntil(closed$),\n // tslint:disable-next-line: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 /* ESCAPE */)), closeableClicks$.pipe(map(_ => 1 /* 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/**\r\n * Returns first and last focusable elements inside of a given element based on specific CSS selector\r\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/**\r\n * Function that enforces browser focus to be trapped inside a DOM element.\r\n *\r\n * Works only for clicks inside the element and navigation with 'Tab', ignoring clicks outside of the element\r\n *\r\n * @param zone Angular zone\r\n * @param element The element around which focus will be trapped inside\r\n * @param stopFocusTrap$ The observable stream. When completed the focus trap will clean up listeners\r\n * and free internal resources\r\n * @param refocusOnClick Put the focus back to the last focused element whenever a click occurs on element (default to\r\n * false)\r\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$),\n // tslint:disable:deprecation\n filter(e => e.which === Key.Tab),\n // tslint:enable:deprecation\n 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};\n\n// previous version:\n// https://github.com/angular-ui/bootstrap/blob/07c31d0731f7cb068a1932b8e01d2312b796b4ec/src/position/position.js\nclass Positioning {\n getAllStyles(element) {\n return window.getComputedStyle(element);\n }\n getStyle(element, prop) {\n return this.getAllStyles(element)[prop];\n }\n isStaticPositioned(element) {\n return (this.getStyle(element, 'position') || 'static') === 'static';\n }\n offsetParent(element) {\n let offsetParentEl = element.offsetParent || document.documentElement;\n while (offsetParentEl && offsetParentEl !== document.documentElement && this.isStaticPositioned(offsetParentEl)) {\n offsetParentEl = offsetParentEl.offsetParent;\n }\n return offsetParentEl || document.documentElement;\n }\n position(element, round = true) {\n let elPosition;\n let parentOffset = {\n width: 0,\n height: 0,\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n };\n if (this.getStyle(element, 'position') === 'fixed') {\n elPosition = element.getBoundingClientRect();\n elPosition = {\n top: elPosition.top,\n bottom: elPosition.bottom,\n left: elPosition.left,\n right: elPosition.right,\n height: elPosition.height,\n width: elPosition.width\n };\n } else {\n const offsetParentEl = this.offsetParent(element);\n elPosition = this.offset(element, false);\n if (offsetParentEl !== document.documentElement) {\n parentOffset = this.offset(offsetParentEl, false);\n }\n parentOffset.top += offsetParentEl.clientTop;\n parentOffset.left += offsetParentEl.clientLeft;\n }\n elPosition.top -= parentOffset.top;\n elPosition.bottom -= parentOffset.top;\n elPosition.left -= parentOffset.left;\n elPosition.right -= parentOffset.left;\n if (round) {\n elPosition.top = Math.round(elPosition.top);\n elPosition.bottom = Math.round(elPosition.bottom);\n elPosition.left = Math.round(elPosition.left);\n elPosition.right = Math.round(elPosition.right);\n }\n return elPosition;\n }\n offset(element, round = true) {\n const elBcr = element.getBoundingClientRect();\n const viewportOffset = {\n top: window.pageYOffset - document.documentElement.clientTop,\n left: window.pageXOffset - document.documentElement.clientLeft\n };\n let elOffset = {\n height: elBcr.height || element.offsetHeight,\n width: elBcr.width || element.offsetWidth,\n top: elBcr.top + viewportOffset.top,\n bottom: elBcr.bottom + viewportOffset.top,\n left: elBcr.left + viewportOffset.left,\n right: elBcr.right + viewportOffset.left\n };\n if (round) {\n elOffset.height = Math.round(elOffset.height);\n elOffset.width = Math.round(elOffset.width);\n elOffset.top = Math.round(elOffset.top);\n elOffset.bottom = Math.round(elOffset.bottom);\n elOffset.left = Math.round(elOffset.left);\n elOffset.right = Math.round(elOffset.right);\n }\n return elOffset;\n }\n /*\r\n Return false if the element to position is outside the viewport\r\n */\n positionElements(hostElement, targetElement, placement, appendToBody) {\n const [placementPrimary = 'top', placementSecondary = 'center'] = placement.split('-');\n const hostElPosition = appendToBody ? this.offset(hostElement, false) : this.position(hostElement, false);\n const targetElStyles = this.getAllStyles(targetElement);\n const marginTop = parseFloat(targetElStyles.marginTop);\n const marginBottom = parseFloat(targetElStyles.marginBottom);\n const marginLeft = parseFloat(targetElStyles.marginLeft);\n const marginRight = parseFloat(targetElStyles.marginRight);\n let topPosition = 0;\n let leftPosition = 0;\n switch (placementPrimary) {\n case 'top':\n topPosition = hostElPosition.top - (targetElement.offsetHeight + marginTop + marginBottom);\n break;\n case 'bottom':\n topPosition = hostElPosition.top + hostElPosition.height;\n break;\n case 'left':\n leftPosition = hostElPosition.left - (targetElement.offsetWidth + marginLeft + marginRight);\n break;\n case 'right':\n leftPosition = hostElPosition.left + hostElPosition.width;\n break;\n }\n switch (placementSecondary) {\n case 'top':\n topPosition = hostElPosition.top;\n break;\n case 'bottom':\n topPosition = hostElPosition.top + hostElPosition.height - targetElement.offsetHeight;\n break;\n case 'left':\n leftPosition = hostElPosition.left;\n break;\n case 'right':\n leftPosition = hostElPosition.left + hostElPosition.width - targetElement.offsetWidth;\n break;\n case 'center':\n if (placementPrimary === 'top' || placementPrimary === 'bottom') {\n leftPosition = hostElPosition.left + hostElPosition.width / 2 - targetElement.offsetWidth / 2;\n } else {\n topPosition = hostElPosition.top + hostElPosition.height / 2 - targetElement.offsetHeight / 2;\n }\n break;\n }\n /// The translate3d/gpu acceleration render a blurry text on chrome, the next line is commented until a browser fix\n // targetElement.style.transform = `translate3d(${Math.round(leftPosition)}px, ${Math.floor(topPosition)}px, 0px)`;\n targetElement.style.transform = `translate(${Math.round(leftPosition)}px, ${Math.round(topPosition)}px)`;\n // Check if the targetElement is inside the viewport\n const targetElBCR = targetElement.getBoundingClientRect();\n const html = document.documentElement;\n const windowHeight = window.innerHeight || html.clientHeight;\n const windowWidth = window.innerWidth || html.clientWidth;\n return targetElBCR.left >= 0 && targetElBCR.top >= 0 && targetElBCR.right <= windowWidth && targetElBCR.bottom <= windowHeight;\n }\n}\nconst placementSeparator = /\\s+/;\nconst positionService = new Positioning();\n/*\r\n * Accept the placement array and applies the appropriate placement dependent on the viewport.\r\n * Returns the applied placement.\r\n * In case of auto placement, placements are selected in order\r\n * 'top', 'bottom', 'left', 'right',\r\n * 'top-left', 'top-right',\r\n * 'bottom-left', 'bottom-right',\r\n * 'left-top', 'left-bottom',\r\n * 'right-top', 'right-bottom'.\r\n * */\nfunction positionElements(hostElement, targetElement, placement, appendToBody, baseClass) {\n let placementVals = Array.isArray(placement) ? placement : placement.split(placementSeparator);\n const allowedPlacements = ['top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right', 'left-top', 'left-bottom', 'right-top', 'right-bottom'];\n const classList = targetElement.classList;\n const addClassesToTarget = targetPlacement => {\n const [primary, secondary] = targetPlacement.split('-');\n const classes = [];\n if (baseClass) {\n classes.push(`${baseClass}-${primary}`);\n if (secondary) {\n classes.push(`${baseClass}-${primary}-${secondary}`);\n }\n classes.forEach(classname => {\n classList.add(classname);\n });\n }\n return classes;\n };\n // Remove old placement classes to avoid issues\n if (baseClass) {\n allowedPlacements.forEach(placementToRemove => {\n classList.remove(`${baseClass}-${placementToRemove}`);\n });\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 // coordinates where to position\n // Required for transform:\n const style = targetElement.style;\n style.position = 'absolute';\n style.top = '0';\n style.left = '0';\n style['will-change'] = 'transform';\n let testPlacement = null;\n let isInViewport = false;\n for (testPlacement of placementVals) {\n let addedClasses = addClassesToTarget(testPlacement);\n if (positionService.positionElements(hostElement, targetElement, testPlacement, appendToBody)) {\n isInViewport = true;\n break;\n }\n // Remove the baseClasses for further calculation\n if (baseClass) {\n addedClasses.forEach(classname => {\n classList.remove(classname);\n });\n }\n }\n if (!isInViewport) {\n // If nothing match, the first placement is the default one\n testPlacement = placementVals[0];\n addClassesToTarget(testPlacement);\n positionService.positionElements(hostElement, targetElement, testPlacement, appendToBody);\n }\n return testPlacement;\n}\nfunction NGB_DATEPICKER_PARSER_FORMATTER_FACTORY() {\n return new NgbDateISOParserFormatter();\n}\n/**\r\n * An abstract service for parsing and formatting dates for the\r\n * [`NgbInputDatepicker`](#/components/datepicker/api#NgbInputDatepicker) directive.\r\n * Converts between the internal `NgbDateStruct` model presentation and a `string` that is displayed in the\r\n * input element.\r\n *\r\n * When user types something in the input this service attempts to parse it into a `NgbDateStruct` object.\r\n * And vice versa, when users selects a date in the calendar with the mouse, it must be displayed as a `string`\r\n * in the input.\r\n *\r\n * Default implementation uses the ISO 8601 format, but you can provide another implementation via DI\r\n * to use an alternative string format or a custom parsing logic.\r\n *\r\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\r\n */\nclass NgbDateParserFormatter {}\nNgbDateParserFormatter.ɵfac = function NgbDateParserFormatter_Factory(t) {\n return new (t || NgbDateParserFormatter)();\n};\nNgbDateParserFormatter.ɵprov = ɵɵdefineInjectable({\n factory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY,\n token: NgbDateParserFormatter,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵ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}\nNgbDateISOParserFormatter.ɵfac = /*@__PURE__*/function () {\n let ɵNgbDateISOParserFormatter_BaseFactory;\n return function NgbDateISOParserFormatter_Factory(t) {\n return (ɵNgbDateISOParserFormatter_BaseFactory || (ɵNgbDateISOParserFormatter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDateISOParserFormatter)))(t || NgbDateISOParserFormatter);\n };\n}();\nNgbDateISOParserFormatter.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbDateISOParserFormatter,\n factory: NgbDateISOParserFormatter.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateISOParserFormatter, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\r\n * A configuration service for the [`NgbDatepickerInput`](#/components/datepicker/api#NgbDatepicker) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the datepicker inputs used in the application.\r\n *\r\n * @since 5.2.0\r\n */\nclass NgbInputDatepickerConfig extends NgbDatepickerConfig {\n constructor() {\n super(...arguments);\n this.autoClose = true;\n this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right'];\n this.restoreFocus = true;\n }\n}\nNgbInputDatepickerConfig.ɵfac = /*@__PURE__*/function () {\n let ɵNgbInputDatepickerConfig_BaseFactory;\n return function NgbInputDatepickerConfig_Factory(t) {\n return (ɵNgbInputDatepickerConfig_BaseFactory || (ɵNgbInputDatepickerConfig_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbInputDatepickerConfig)))(t || NgbInputDatepickerConfig);\n };\n}();\nNgbInputDatepickerConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbInputDatepickerConfig_Factory() {\n return new NgbInputDatepickerConfig();\n },\n token: NgbInputDatepickerConfig,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbInputDatepickerConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\r\n * A directive that allows to stick a datepicker popup to an input field.\r\n *\r\n * Manages interaction with the input field itself, does value formatting and provides forms integration.\r\n */\nclass NgbInputDatepicker {\n constructor(_parserFormatter, _elRef, _vcRef, _renderer, _cfr, _ngZone, _calendar, _dateAdapter, _document, _changeDetector, config) {\n this._parserFormatter = _parserFormatter;\n this._elRef = _elRef;\n this._vcRef = _vcRef;\n this._renderer = _renderer;\n this._cfr = _cfr;\n this._ngZone = _ngZone;\n this._calendar = _calendar;\n this._dateAdapter = _dateAdapter;\n this._document = _document;\n this._changeDetector = _changeDetector;\n this._cRef = null;\n this._disabled = false;\n this._elWithFocus = null;\n this._model = null;\n /**\r\n * An event emitted when user selects a date using keyboard or mouse.\r\n *\r\n * The payload of the event is currently selected `NgbDate`.\r\n *\r\n * @since 1.1.1\r\n */\n this.dateSelect = new EventEmitter();\n /**\r\n * Event emitted right after the navigation happens and displayed month changes.\r\n *\r\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\r\n */\n this.navigate = new EventEmitter();\n /**\r\n * An event fired after closing datepicker window.\r\n *\r\n * @since 4.2.0\r\n */\n this.closed = new EventEmitter();\n this._onChange = _ => {};\n this._onTouched = () => {};\n this._validatorChange = () => {};\n ['autoClose', 'container', 'positionTarget', 'placement'].forEach(input => this[input] = config[input]);\n this._zoneSubscription = _ngZone.onStable.subscribe(() => this._updatePopupPosition());\n }\n /**\r\n * If `true`, weekdays will be displayed.\r\n *\r\n * @deprecated 9.1.0, please use 'weekdays' instead\r\n */\n set showWeekdays(weekdays) {\n this.weekdays = weekdays;\n this._showWeekdays = weekdays;\n }\n get showWeekdays() {\n return this._showWeekdays;\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 /**\r\n * Opens the datepicker popup.\r\n *\r\n * If the related form control contains a valid date, the corresponding month will be opened.\r\n */\n open() {\n if (!this.isOpen()) {\n const cf = this._cfr.resolveComponentFactory(NgbDatepicker);\n this._cRef = this._vcRef.createComponent(cf);\n this._applyPopupStyling(this._cRef.location.nativeElement);\n this._applyDatepickerInputs(this._cRef.instance);\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 this._cRef.instance.focus();\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.closed, [], [this._elRef.nativeElement, this._cRef.location.nativeElement]);\n }\n }\n /**\r\n * Closes the datepicker popup.\r\n */\n close() {\n if (this.isOpen()) {\n this._vcRef.remove(this._vcRef.indexOf(this._cRef.hostView));\n this._cRef = null;\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 /**\r\n * Toggles the datepicker popup.\r\n */\n toggle() {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n /**\r\n * Navigates to the provided date.\r\n *\r\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\r\n * If nothing or invalid date provided calendar will open current month.\r\n *\r\n * Use the `[startDate]` input as an alternative.\r\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.instance.minDate = this.minDate;\n }\n if (changes['maxDate']) {\n this._cRef.instance.maxDate = this.maxDate;\n }\n this._cRef.instance.ngOnChanges(changes);\n }\n }\n if (changes['datepickerClass']) {\n const {\n currentValue,\n previousValue\n } = changes['datepickerClass'];\n this._applyPopupClass(currentValue, previousValue);\n }\n }\n ngOnDestroy() {\n this.close();\n this._zoneSubscription.unsubscribe();\n }\n _applyDatepickerInputs(datepickerInstance) {\n ['dayTemplate', 'dayTemplateData', 'displayMonths', 'firstDayOfWeek', 'footerTemplate', 'markDisabled', 'minDate', 'maxDate', 'navigation', 'outsideDays', 'showNavigation', 'showWeekNumbers', 'weekdays'].forEach(optionName => {\n if (this[optionName] !== undefined) {\n datepickerInstance[optionName] = this[optionName];\n }\n });\n datepickerInstance.startDate = this.startDate || this._model;\n }\n _applyPopupClass(newClass, oldClass) {\n var _a;\n const popupEl = (_a = this._cRef) === null || _a === void 0 ? void 0 : _a.location.nativeElement;\n if (popupEl) {\n if (newClass) {\n this._renderer.addClass(popupEl, newClass);\n }\n if (oldClass) {\n this._renderer.removeClass(popupEl, oldClass);\n }\n }\n }\n _applyPopupStyling(nativeElement) {\n this._renderer.addClass(nativeElement, 'dropdown-menu');\n this._renderer.addClass(nativeElement, 'show');\n if (this.container === 'body') {\n this._renderer.addClass(nativeElement, '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._renderer.setProperty(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 _updatePopupPosition() {\n if (!this._cRef) {\n return;\n }\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 positionElements(hostElement, this._cRef.location.nativeElement, this.placement, this.container === 'body');\n }\n}\nNgbInputDatepicker.ɵfac = function NgbInputDatepicker_Factory(t) {\n return new (t || NgbInputDatepicker)(ɵngcc0.ɵɵdirectiveInject(NgbDateParserFormatter), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(NgbCalendar), ɵngcc0.ɵɵdirectiveInject(NgbDateAdapter), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(NgbInputDatepickerConfig));\n};\nNgbInputDatepicker.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbInputDatepicker,\n selectors: [[\"input\", \"ngbDatepicker\", \"\"]],\n hostVars: 1,\n hostBindings: function NgbInputDatepicker_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵ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 ɵngcc0.ɵɵhostProperty(\"disabled\", ctx.disabled);\n }\n },\n inputs: {\n showWeekdays: \"showWeekdays\",\n weekdays: \"weekdays\",\n disabled: \"disabled\",\n autoClose: \"autoClose\",\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 restoreFocus: \"restoreFocus\",\n showWeekNumbers: \"showWeekNumbers\",\n startDate: \"startDate\",\n container: \"container\",\n positionTarget: \"positionTarget\"\n },\n outputs: {\n dateSelect: \"dateSelect\",\n navigate: \"navigate\",\n closed: \"closed\"\n },\n exportAs: [\"ngbDatepicker\"],\n features: [ɵngcc0.ɵɵ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 }]), ɵngcc0.ɵɵNgOnChangesFeature]\n});\nNgbInputDatepicker.ctorParameters = () => [{\n type: NgbDateParserFormatter\n}, {\n type: ElementRef\n}, {\n type: ViewContainerRef\n}, {\n type: Renderer2\n}, {\n type: ComponentFactoryResolver\n}, {\n type: NgZone\n}, {\n type: NgbCalendar\n}, {\n type: NgbDateAdapter\n}, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n}, {\n type: ChangeDetectorRef\n}, {\n type: NgbInputDatepickerConfig\n}];\nNgbInputDatepicker.propDecorators = {\n autoClose: [{\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 restoreFocus: [{\n type: Input\n }],\n showWeekdays: [{\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbInputDatepicker, [{\n type: Directive,\n args: [{\n selector: 'input[ngbDatepicker]',\n exportAs: 'ngbDatepicker',\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 }], function () {\n return [{\n type: NgbDateParserFormatter\n }, {\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc0.ViewContainerRef\n }, {\n type: ɵngcc0.Renderer2\n }, {\n type: ɵngcc0.ComponentFactoryResolver\n }, {\n type: ɵngcc0.NgZone\n }, {\n type: NgbCalendar\n }, {\n type: NgbDateAdapter\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }, {\n type: NgbInputDatepickerConfig\n }];\n }, {\n dateSelect: [{\n type: Output\n }],\n navigate: [{\n type: Output\n }],\n closed: [{\n type: Output\n }],\n showWeekdays: [{\n type: Input\n }],\n weekdays: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n autoClose: [{\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 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 });\n})();\nclass NgbDatepickerDayView {\n constructor(i18n) {\n this.i18n = i18n;\n }\n isMuted() {\n return !this.selected && (this.date.month !== this.currentMonth || this.disabled);\n }\n}\nNgbDatepickerDayView.ɵfac = function NgbDatepickerDayView_Factory(t) {\n return new (t || NgbDatepickerDayView)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n));\n};\nNgbDatepickerDayView.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵ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 ɵngcc0.ɵɵ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 attrs: _c20,\n decls: 1,\n vars: 1,\n template: function NgbDatepickerDayView_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n }\n if (rf & 2) {\n ɵngcc0.ɵɵtextInterpolate(ctx.i18n.getDayNumerals(ctx.date));\n }\n },\n styles: [\"[ngbDatepickerDayView]{background:transparent;border-radius:.25rem;height:2rem;line-height:2rem;text-align:center;width:2rem}[ngbDatepickerDayView].outside{opacity:.5}\"],\n encapsulation: 2,\n changeDetection: 0\n});\nNgbDatepickerDayView.ctorParameters = () => [{\n type: NgbDatepickerI18n\n}];\nNgbDatepickerDayView.propDecorators = {\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerDayView, [{\n type: Component,\n args: [{\n selector: '[ngbDatepickerDayView]',\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]{background:transparent;border-radius:.25rem;height:2rem;line-height:2rem;text-align:center;width:2rem}[ngbDatepickerDayView].outside{opacity:.5}\"]\n }]\n }], function () {\n return [{\n type: NgbDatepickerI18n\n }];\n }, {\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(i18n, _renderer) {\n this.i18n = i18n;\n this._renderer = _renderer;\n this.select = new EventEmitter();\n this._month = -1;\n this._year = -1;\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._renderer.setProperty(this.monthSelect.nativeElement, 'value', this._month);\n }\n if (this.date.year !== this._year) {\n this._year = this.date.year;\n this._renderer.setProperty(this.yearSelect.nativeElement, 'value', this._year);\n }\n }\n }\n}\nNgbDatepickerNavigationSelect.ɵfac = function NgbDatepickerNavigationSelect_Factory(t) {\n return new (t || NgbDatepickerNavigationSelect)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2));\n};\nNgbDatepickerNavigationSelect.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbDatepickerNavigationSelect,\n selectors: [[\"ngb-datepicker-navigation-select\"]],\n viewQuery: function NgbDatepickerNavigationSelect_Query(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c21, 7, ElementRef);\n ɵngcc0.ɵɵviewQuery(_c22, 7, ElementRef);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.monthSelect = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵ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 decls: 6,\n vars: 4,\n consts: function () {\n let i18n_23;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_24 = goog.getMsg(\"Select month\");\n i18n_23 = MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_24;\n } else {\n i18n_23 = $localize`:@@ngb.datepicker.select-month␟1dbc84807f35518112f62e5775d1daebd3d8462b␟2253869508135064750:Select month`;\n }\n let i18n_25;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_26 = goog.getMsg(\"Select month\");\n i18n_25 = MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_26;\n } else {\n i18n_25 = $localize`:@@ngb.datepicker.select-month␟1dbc84807f35518112f62e5775d1daebd3d8462b␟2253869508135064750:Select month`;\n }\n let i18n_27;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_28 = goog.getMsg(\"Select year\");\n i18n_27 = MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_28;\n } else {\n i18n_27 = $localize`:@@ngb.datepicker.select-year␟8ceb09d002bf0c5d1cac171dfbffe1805d2b3962␟8852264961585484321:Select year`;\n }\n let i18n_29;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_30 = goog.getMsg(\"Select year\");\n i18n_29 = MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_30;\n } else {\n i18n_29 = $localize`:@@ngb.datepicker.select-year␟8ceb09d002bf0c5d1cac171dfbffe1805d2b3962␟8852264961585484321:Select year`;\n }\n return [[\"aria-label\", i18n_23, \"title\", i18n_25, 1, \"custom-select\", 3, \"disabled\", \"change\"], [\"month\", \"\"], [3, \"value\", 4, \"ngFor\", \"ngForOf\"], [\"aria-label\", i18n_27, \"title\", i18n_29, 1, \"custom-select\", 3, \"disabled\", \"change\"], [\"year\", \"\"], [3, \"value\"]];\n },\n template: function NgbDatepickerNavigationSelect_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"select\", 0, 1);\n ɵngcc0.ɵɵlistener(\"change\", function NgbDatepickerNavigationSelect_Template_select_change_0_listener($event) {\n return ctx.changeMonth($event.target.value);\n });\n ɵngcc0.ɵɵtemplate(2, NgbDatepickerNavigationSelect_option_2_Template, 2, 3, \"option\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"select\", 3, 4);\n ɵngcc0.ɵɵlistener(\"change\", function NgbDatepickerNavigationSelect_Template_select_change_3_listener($event) {\n return ctx.changeYear($event.target.value);\n });\n ɵngcc0.ɵɵtemplate(5, NgbDatepickerNavigationSelect_option_5_Template, 2, 2, \"option\", 2);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.months);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.years);\n }\n },\n dependencies: [ɵngcc1.NgForOf, ɵngcc2.NgSelectOption, ɵngcc2.ɵNgSelectMultipleOption],\n styles: [\"ngb-datepicker-navigation-select>.custom-select{flex:1 1 auto;font-size:.875rem;height:1.85rem;padding:0 .5rem}ngb-datepicker-navigation-select>.custom-select:focus{z-index:1}ngb-datepicker-navigation-select>.custom-select::-ms-value{background-color:transparent!important}\"],\n encapsulation: 2,\n changeDetection: 0\n});\nNgbDatepickerNavigationSelect.ctorParameters = () => [{\n type: NgbDatepickerI18n\n}, {\n type: Renderer2\n}];\nNgbDatepickerNavigationSelect.propDecorators = {\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerNavigationSelect, [{\n type: Component,\n args: [{\n selector: 'ngb-datepicker-navigation-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n <select #month\n [disabled]=\"disabled\"\n class=\"custom-select\"\n i18n-aria-label=\"@@ngb.datepicker.select-month\" aria-label=\"Select month\"\n i18n-title=\"@@ngb.datepicker.select-month\" title=\"Select month\"\n (change)=\"changeMonth($any($event).target.value)\">\n <option *ngFor=\"let m of months\" [attr.aria-label]=\"i18n.getMonthFullName(m, date?.year)\"\n [value]=\"m\">{{ i18n.getMonthShortName(m, date?.year) }}</option>\n </select><select #year\n [disabled]=\"disabled\"\n class=\"custom-select\"\n i18n-aria-label=\"@@ngb.datepicker.select-year\" aria-label=\"Select year\"\n i18n-title=\"@@ngb.datepicker.select-year\" title=\"Select year\"\n (change)=\"changeYear($any($event).target.value)\">\n <option *ngFor=\"let y of years\" [value]=\"y\">{{ i18n.getYearNumerals(y) }}</option>\n </select>\n `,\n styles: [\"ngb-datepicker-navigation-select>.custom-select{flex:1 1 auto;font-size:.875rem;height:1.85rem;padding:0 .5rem}ngb-datepicker-navigation-select>.custom-select:focus{z-index:1}ngb-datepicker-navigation-select>.custom-select::-ms-value{background-color:transparent!important}\"]\n }]\n }], function () {\n return [{\n type: NgbDatepickerI18n\n }, {\n type: ɵngcc0.Renderer2\n }];\n }, {\n select: [{\n type: Output\n }],\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 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 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}\nNgbCalendarHijri.ɵfac = /*@__PURE__*/function () {\n let ɵNgbCalendarHijri_BaseFactory;\n return function NgbCalendarHijri_Factory(t) {\n return (ɵNgbCalendarHijri_BaseFactory || (ɵNgbCalendarHijri_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarHijri)))(t || NgbCalendarHijri);\n };\n}();\nNgbCalendarHijri.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbCalendarHijri,\n factory: NgbCalendarHijri.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarHijri, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\r\n * Checks if islamic year is a leap year\r\n */\nfunction isIslamicLeapYear(hYear) {\n return (14 + 11 * hYear) % 30 < 11;\n}\n/**\r\n * Checks if gregorian years is a leap year\r\n */\nfunction isGregorianLeapYear(gDate) {\n const year = gDate.getFullYear();\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\n/**\r\n * Returns the start of Hijri Month.\r\n * `hMonth` is 0 for Muharram, 1 for Safar, etc.\r\n * `hYear` is any Hijri hYear.\r\n */\nfunction getIslamicMonthStart(hYear, hMonth) {\n return Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30.0);\n}\n/**\r\n * Returns the start of Hijri year.\r\n * `year` is any Hijri year.\r\n */\nfunction getIslamicYearStart(year) {\n return (year - 1) * 354 + Math.floor((3 + 11 * year) / 30.0);\n}\nfunction mod(a, b) {\n return a - b * Math.floor(a / b);\n}\n/**\r\n * The civil calendar is one type of Hijri calendars used in islamic countries.\r\n * Uses a fixed cycle of alternating 29- and 30-day months,\r\n * with a leap day added to the last month of 11 out of every 30 years.\r\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\r\n * All the calculations here are based on the equations from \"Calendrical Calculations\" By Edward M. Reingold, Nachum\r\n * Dershowitz.\r\n */\nconst GREGORIAN_EPOCH = 1721425.5;\nconst ISLAMIC_EPOCH = 1948439.5;\nclass NgbCalendarIslamicCivil extends NgbCalendarHijri {\n /**\r\n * Returns the equivalent islamic(civil) date value for a give input Gregorian date.\r\n * `gDate` is a JS Date to be converted to Hijri.\r\n */\n fromGregorian(gDate) {\n const gYear = gDate.getFullYear(),\n gMonth = gDate.getMonth(),\n gDay = gDate.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(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 /**\r\n * Returns the equivalent JS date value for a give input islamic(civil) date.\r\n * `hDate` is an islamic(civil) date to be converted to Gregorian.\r\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,\n quadricent = Math.floor(depoch / 146097),\n dqc = mod(depoch, 146097),\n cent = Math.floor(dqc / 36524),\n dcent = mod(dqc, 36524),\n quad = Math.floor(dcent / 1461),\n dquad = mod(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 + 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 + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) + Math.floor((year - 1) / 400) + Math.floor(739 / 12 + (isGregorianLeapYear(new Date(year, 3, 1)) ? -1 : -2) + 1);\n const leapadj = wjd < tjd ? 0 : isGregorianLeapYear(new Date(year, 3, 1)) ? 1 : 2;\n const month = Math.floor(((yearday + leapadj) * 12 + 373) / 367);\n const tjd2 = GREGORIAN_EPOCH - 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(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 /**\r\n * Returns the number of days in a specific Hijri month.\r\n * `month` is 1 for Muharram, 2 for Safar, etc.\r\n * `year` is any Hijri year.\r\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}\nNgbCalendarIslamicCivil.ɵfac = /*@__PURE__*/function () {\n let ɵNgbCalendarIslamicCivil_BaseFactory;\n return function NgbCalendarIslamicCivil_Factory(t) {\n return (ɵNgbCalendarIslamicCivil_BaseFactory || (ɵNgbCalendarIslamicCivil_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarIslamicCivil)))(t || NgbCalendarIslamicCivil);\n };\n}();\nNgbCalendarIslamicCivil.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbCalendarIslamicCivil,\n factory: NgbCalendarIslamicCivil.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarIslamicCivil, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\r\n * Umalqura calendar is one type of Hijri calendars used in islamic countries.\r\n * This Calendar is used by Saudi Arabia for administrative purpose.\r\n * Unlike tabular calendars, the algorithm involves astronomical calculation, but it's still deterministic.\r\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\r\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 /**\r\n * Returns the equivalent islamic(Umalqura) date value for a give input Gregorian date.\r\n * `gdate` is s JS Date to be converted to Hijri.\r\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 /**\r\n * Converts the current Hijri date to Gregorian.\r\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 /**\r\n * Returns the number of days in a specific Hijri hMonth.\r\n * `hMonth` is 1 for Muharram, 2 for Safar, etc.\r\n * `hYear` is any Hijri hYear.\r\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}\nNgbCalendarIslamicUmalqura.ɵfac = /*@__PURE__*/function () {\n let ɵNgbCalendarIslamicUmalqura_BaseFactory;\n return function NgbCalendarIslamicUmalqura_Factory(t) {\n return (ɵNgbCalendarIslamicUmalqura_BaseFactory || (ɵNgbCalendarIslamicUmalqura_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarIslamicUmalqura)))(t || NgbCalendarIslamicUmalqura);\n };\n}();\nNgbCalendarIslamicUmalqura.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbCalendarIslamicUmalqura,\n factory: NgbCalendarIslamicUmalqura.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarIslamicUmalqura, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\r\n * Returns the equivalent JS date value for a give input Jalali date.\r\n * `jalaliDate` is an Jalali date to be converted to Gregorian.\r\n */\nfunction toGregorian(jalaliDate) {\n let jdn = jalaliToJulian(jalaliDate.year, jalaliDate.month, jalaliDate.day);\n let date = julianToGregorian(jdn);\n date.setHours(6, 30, 3, 200);\n return date;\n}\n/**\r\n * Returns the equivalent jalali date value for a give input Gregorian date.\r\n * `gdate` is a JS Date to be converted to jalali.\r\n * utc to local\r\n */\nfunction fromGregorian(gdate) {\n let g2d = gregorianToJulian(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(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = setJalaliMonth(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 = setJalaliMonth(date, date.month + 1);\n mDays = getDaysPerMonth(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n}\nfunction mod$1(a, b) {\n return a - b * Math.floor(a / b);\n}\nfunction div(a, b) {\n return Math.trunc(a / b);\n}\n/*\r\n This function determines if the Jalali (Persian) year is\r\n leap (366-day long) or is the common year (365 days), and\r\n finds the day in March (Gregorian calendar) of the first\r\n day of the Jalali year (jalaliYear).\r\n @param jalaliYear Jalali calendar year (-61 to 3177)\r\n @return\r\n leap: number of years since the last leap year (0 to 4)\r\n gYear: Gregorian year of the beginning of Jalali year\r\n march: the March day of Farvardin the 1st (1st day of jalaliYear)\r\n @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm\r\n @see: http://www.fourmilab.ch/documents/calendar/\r\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$1(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$1(n, 33) + 3, 4);\n if (mod$1(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$1(mod$1(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/*\r\n Calculates Gregorian and Julian calendar dates from the Julian Day number\r\n (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both\r\n calendars) to some millions years ahead of the present.\r\n @param jdn Julian Day number\r\n @return\r\n gYear: Calendar year (years BC numbered 0, -1, -2, ...)\r\n gMonth: Calendar month (1 to 12)\r\n gDay: Calendar day of the month M (1 to 28/29/30/31)\r\n */\nfunction julianToGregorian(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$1(j, 1461), 4) * 5 + 308;\n const gDay = div(mod$1(i, 153), 5) + 1;\n const gMonth = mod$1(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/*\r\n Converts a date of the Jalali calendar to the Julian Day number.\r\n @param jy Jalali year (1 to 3100)\r\n @param jm Jalali month (1 to 12)\r\n @param jd Jalali day (1 to 29/31)\r\n @return Julian Day number\r\n */\nfunction gregorianToJulian(gy, gm, gd) {\n let d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4) + div(153 * mod$1(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/*\r\n Converts the Julian Day number to a date in the Jalali calendar.\r\n @param julianDayNumber Julian Day number\r\n @return\r\n jalaliYear: Jalali year (1 to 3100)\r\n jalaliMonth: Jalali month (1 to 12)\r\n jalaliDay: Jalali day (1 to 29/31)\r\n */\nfunction julianToJalali(julianDayNumber) {\n let gy = julianToGregorian(julianDayNumber).getFullYear() // Calculate Gregorian year (gy).\n ,\n jalaliYear = gy - 621,\n r = jalCal(jalaliYear),\n gregorianDay = gregorianToJulian(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$1(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$1(numberOfDays, 30) + 1;\n return new NgbDate(jalaliYear, jalaliMonth, jalaliDay);\n}\n/*\r\n Converts a date of the Jalali calendar to the Julian Day number.\r\n @param jYear Jalali year (1 to 3100)\r\n @param jMonth Jalali month (1 to 12)\r\n @param jDay Jalali day (1 to 29/31)\r\n @return Julian Day number\r\n */\nfunction jalaliToJulian(jYear, jMonth, jDay) {\n let r = jalCal(jYear);\n return gregorianToJulian(r.gy, 3, r.march) + (jMonth - 1) * 31 - div(jMonth, 7) * (jMonth - 7) + jDay - 1;\n}\n/**\r\n * Returns the number of days in a specific jalali month.\r\n */\nfunction getDaysPerMonth(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(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(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 getToday() {\n return fromGregorian(new Date());\n }\n isValid(date) {\n return date != null && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) && !isNaN(toGregorian(date).getTime());\n }\n}\nNgbCalendarPersian.ɵfac = /*@__PURE__*/function () {\n let ɵNgbCalendarPersian_BaseFactory;\n return function NgbCalendarPersian_Factory(t) {\n return (ɵNgbCalendarPersian_BaseFactory || (ɵNgbCalendarPersian_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarPersian)))(t || NgbCalendarPersian);\n };\n}();\nNgbCalendarPersian.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbCalendarPersian,\n factory: NgbCalendarPersian.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵ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$1 = 1721425.5;\nfunction isGregorianLeapYear$1(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$1(year)) {\n days[1]++;\n }\n return days[month - 1];\n}\nfunction getHebrewMonths(year) {\n return isHebrewLeapYear(year) ? 13 : 12;\n}\n/**\r\n * Returns the number of days in a specific Hebrew year.\r\n * `year` is any Hebrew year.\r\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/**\r\n * Returns the number of days in a specific Hebrew month.\r\n * `month` is 1 for Nisan, 2 for Iyar etc. Note: Hebrew leap year contains 13 months.\r\n * `year` is any Hebrew year.\r\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\n if (yearType > 1) {\n daysInMonth[1]++; // Heshvan gets an extra day in complete years only.\n }\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/**\r\n * Returns the equivalent Hebrew date value for a give input Gregorian date.\r\n * `gdate` is a JS Date to be converted to Hebrew date.\r\n */\nfunction fromGregorian$1(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 - 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(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/**\r\n * Returns the equivalent JS date value for a given Hebrew date.\r\n * `hebrewDate` is an Hebrew date to be converted to Gregorian.\r\n */\nfunction toGregorian$1(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$1(gYear) ? 366 : 365)) {\n diffDays -= isGregorianLeapYear$1(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$1(gYear - 1) ? 366 : 365)) {\n diffDays -= isGregorianLeapYear$1(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/**\r\n * @since 3.2.0\r\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$1(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$1(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$1(new Date());\n }\n /**\r\n * @since 3.4.0\r\n */\n toGregorian(date) {\n return fromJSDate(toGregorian$1(date));\n }\n /**\r\n * @since 3.4.0\r\n */\n fromGregorian(date) {\n return fromGregorian$1(toJSDate(date));\n }\n}\nNgbCalendarHebrew.ɵfac = /*@__PURE__*/function () {\n let ɵNgbCalendarHebrew_BaseFactory;\n return function NgbCalendarHebrew_Factory(t) {\n return (ɵNgbCalendarHebrew_BaseFactory || (ɵNgbCalendarHebrew_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarHebrew)))(t || NgbCalendarHebrew);\n };\n}();\nNgbCalendarHebrew.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbCalendarHebrew,\n factory: NgbCalendarHebrew.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarHebrew, [{\n type: Injectable\n }], null, null);\n})();\nconst WEEKDAYS = ['שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת', 'ראשון'];\nconst MONTHS = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];\nconst MONTHS_LEAP = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר א׳', 'אדר ב׳', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];\n/**\r\n * @since 3.2.0\r\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[month - 1] || '';\n }\n getWeekdayShortName(weekday) {\n return WEEKDAYS[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}\nNgbDatepickerI18nHebrew.ɵfac = /*@__PURE__*/function () {\n let ɵNgbDatepickerI18nHebrew_BaseFactory;\n return function NgbDatepickerI18nHebrew_Factory(t) {\n return (ɵNgbDatepickerI18nHebrew_BaseFactory || (ɵNgbDatepickerI18nHebrew_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDatepickerI18nHebrew)))(t || NgbDatepickerI18nHebrew);\n };\n}();\nNgbDatepickerI18nHebrew.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbDatepickerI18nHebrew,\n factory: NgbDatepickerI18nHebrew.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerI18nHebrew, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\r\n * Returns the equivalent JS date value for a give input Buddhist date.\r\n * `date` is an Buddhist date to be converted to Gregorian.\r\n */\nfunction toGregorian$2(date) {\n return new Date(date.year - 543, date.month - 1, date.day);\n}\n/**\r\n * Returns the equivalent Buddhist date value for a give input Gregorian date.\r\n * `gdate` is a JS Date to be converted to Buddhist.\r\n * utc to local\r\n */\nfunction fromGregorian$2(gdate) {\n return new NgbDate(gdate.getFullYear() + 543, gdate.getMonth() + 1, gdate.getDate());\n}\n\n/**\r\n * @since 9.1.0\r\n */\nclass NgbCalendarBuddhist extends NgbCalendarGregorian {\n getToday() {\n return fromGregorian$2(new Date());\n }\n getNext(date, period = 'd', number = 1) {\n let jsDate = toGregorian$2(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$2(jsDate);\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n let jsDate = toGregorian$2(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$2(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$2(date);\n return !isNaN(jsDate.getTime()) && jsDate.getFullYear() === date.year - 543 && jsDate.getMonth() + 1 === date.month && jsDate.getDate() === date.day;\n }\n}\nNgbCalendarBuddhist.ɵfac = /*@__PURE__*/function () {\n let ɵNgbCalendarBuddhist_BaseFactory;\n return function NgbCalendarBuddhist_Factory(t) {\n return (ɵNgbCalendarBuddhist_BaseFactory || (ɵNgbCalendarBuddhist_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarBuddhist)))(t || NgbCalendarBuddhist);\n };\n}();\nNgbCalendarBuddhist.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbCalendarBuddhist,\n factory: NgbCalendarBuddhist.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarBuddhist, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\r\n * [`NgbDateAdapter`](#/components/datepicker/api#NgbDateAdapter) implementation that uses\r\n * native javascript dates as a user date model.\r\n */\nclass NgbDateNativeAdapter extends NgbDateAdapter {\n /**\r\n * Converts a native `Date` to a `NgbDateStruct`.\r\n */\n fromModel(date) {\n return date instanceof Date && !isNaN(date.getTime()) ? this._fromNativeDate(date) : null;\n }\n /**\r\n * Converts a `NgbDateStruct` to a native `Date`.\r\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}\nNgbDateNativeAdapter.ɵfac = /*@__PURE__*/function () {\n let ɵNgbDateNativeAdapter_BaseFactory;\n return function NgbDateNativeAdapter_Factory(t) {\n return (ɵNgbDateNativeAdapter_BaseFactory || (ɵNgbDateNativeAdapter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDateNativeAdapter)))(t || NgbDateNativeAdapter);\n };\n}();\nNgbDateNativeAdapter.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbDateNativeAdapter,\n factory: NgbDateNativeAdapter.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateNativeAdapter, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\r\n * Same as [`NgbDateNativeAdapter`](#/components/datepicker/api#NgbDateNativeAdapter), but with UTC dates.\r\n *\r\n * @since 3.2.0\r\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}\nNgbDateNativeUTCAdapter.ɵfac = /*@__PURE__*/function () {\n let ɵNgbDateNativeUTCAdapter_BaseFactory;\n return function NgbDateNativeUTCAdapter_Factory(t) {\n return (ɵNgbDateNativeUTCAdapter_BaseFactory || (ɵNgbDateNativeUTCAdapter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDateNativeUTCAdapter)))(t || NgbDateNativeUTCAdapter);\n };\n}();\nNgbDateNativeUTCAdapter.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbDateNativeUTCAdapter,\n factory: NgbDateNativeUTCAdapter.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateNativeUTCAdapter, [{\n type: Injectable\n }], null, null);\n})();\nclass NgbDatepickerModule {}\nNgbDatepickerModule.ɵfac = function NgbDatepickerModule_Factory(t) {\n return new (t || NgbDatepickerModule)();\n};\nNgbDatepickerModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbDatepickerModule\n});\nNgbDatepickerModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [CommonModule, FormsModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbDatepicker, NgbDatepickerContent, NgbDatepickerMonth, NgbDatepickerNavigation, NgbDatepickerNavigationSelect, NgbDatepickerDayView, NgbInputDatepicker],\n exports: [NgbDatepicker, NgbDatepickerContent, NgbInputDatepicker, NgbDatepickerMonth],\n imports: [CommonModule, FormsModule],\n entryComponents: [NgbDatepicker]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbDatepickerModule, {\n declarations: function () {\n return [NgbDatepicker, NgbDatepickerContent, NgbDatepickerMonth, NgbDatepickerNavigation, NgbDatepickerNavigationSelect, NgbDatepickerDayView, NgbInputDatepicker];\n },\n imports: function () {\n return [CommonModule, FormsModule];\n },\n exports: function () {\n return [NgbDatepicker, NgbDatepickerContent, NgbInputDatepicker, NgbDatepickerMonth];\n }\n });\n})();\n\n/**\r\n * A configuration service for the [`NgbDropdown`](#/components/dropdown/api#NgbDropdown) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the dropdowns used in the application.\r\n */\nclass NgbDropdownConfig {\n constructor() {\n this.autoClose = true;\n this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right'];\n }\n}\nNgbDropdownConfig.ɵfac = function NgbDropdownConfig_Factory(t) {\n return new (t || NgbDropdownConfig)();\n};\nNgbDropdownConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbDropdownConfig_Factory() {\n return new NgbDropdownConfig();\n },\n token: NgbDropdownConfig,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [];\n }, null);\n})();\nclass NgbNavbar {}\nNgbNavbar.ɵfac = function NgbNavbar_Factory(t) {\n return new (t || NgbNavbar)();\n};\nNgbNavbar.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbNavbar,\n selectors: [[\"\", 8, \"navbar\"]]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavbar, [{\n type: Directive,\n args: [{\n selector: '.navbar'\n }]\n }], null, null);\n})();\n/**\r\n * A directive you should put on a dropdown item to enable keyboard navigation.\r\n * Arrow keys will move focus between items marked with this directive.\r\n *\r\n * @since 4.1.0\r\n */\nclass NgbDropdownItem {\n constructor(elementRef) {\n this.elementRef = elementRef;\n this._disabled = false;\n }\n set disabled(value) {\n this._disabled = value === '' || value === true; // accept an empty attribute as true\n }\n\n get disabled() {\n return this._disabled;\n }\n}\nNgbDropdownItem.ɵfac = function NgbDropdownItem_Factory(t) {\n return new (t || NgbDropdownItem)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef));\n};\nNgbDropdownItem.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbDropdownItem,\n selectors: [[\"\", \"ngbDropdownItem\", \"\"]],\n hostAttrs: [1, \"dropdown-item\"],\n hostVars: 2,\n hostBindings: function NgbDropdownItem_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx.disabled);\n }\n },\n inputs: {\n disabled: \"disabled\"\n }\n});\nNgbDropdownItem.ctorParameters = () => [{\n type: ElementRef\n}];\nNgbDropdownItem.propDecorators = {\n disabled: [{\n type: Input\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownItem, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownItem]',\n host: {\n 'class': 'dropdown-item',\n '[class.disabled]': 'disabled'\n }\n }]\n }], function () {\n return [{\n type: ɵngcc0.ElementRef\n }];\n }, {\n disabled: [{\n type: Input\n }]\n });\n})();\n/**\r\n * A directive that wraps dropdown menu content and dropdown items.\r\n */\nclass NgbDropdownMenu {\n constructor(dropdown, _elementRef) {\n this.dropdown = dropdown;\n this.placement = 'bottom';\n this.isOpen = false;\n this.nativeElement = _elementRef.nativeElement;\n }\n}\nNgbDropdownMenu.ɵfac = function NgbDropdownMenu_Factory(t) {\n return new (t || NgbDropdownMenu)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => NgbDropdown)), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef));\n};\nNgbDropdownMenu.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbDropdownMenu,\n selectors: [[\"\", \"ngbDropdownMenu\", \"\"]],\n contentQueries: function NgbDropdownMenu_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDropdownItem, 4);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.menuItems = _t);\n }\n },\n hostVars: 5,\n hostBindings: function NgbDropdownMenu_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵ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 ɵngcc0.ɵɵattribute(\"x-placement\", ctx.placement);\n ɵngcc0.ɵɵclassProp(\"dropdown-menu\", true)(\"show\", ctx.dropdown.isOpen());\n }\n }\n});\nNgbDropdownMenu.ctorParameters = () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }]\n}, {\n type: ElementRef\n}];\nNgbDropdownMenu.propDecorators = {\n menuItems: [{\n type: ContentChildren,\n args: [NgbDropdownItem]\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownMenu, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownMenu]',\n host: {\n '[class.dropdown-menu]': 'true',\n '[class.show]': 'dropdown.isOpen()',\n '[attr.x-placement]': 'placement',\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 }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }]\n }, {\n type: ɵngcc0.ElementRef\n }];\n }, {\n menuItems: [{\n type: ContentChildren,\n args: [NgbDropdownItem]\n }]\n });\n})();\n/**\r\n * A directive to mark an element to which dropdown menu will be anchored.\r\n *\r\n * This is a simple version of the `NgbDropdownToggle` directive.\r\n * It plays the same role, but doesn't listen to click events to toggle dropdown menu thus enabling support\r\n * for events other than click.\r\n *\r\n * @since 1.1.0\r\n */\nclass NgbDropdownAnchor {\n constructor(dropdown, _elementRef) {\n this.dropdown = dropdown;\n this.nativeElement = _elementRef.nativeElement;\n }\n}\nNgbDropdownAnchor.ɵfac = function NgbDropdownAnchor_Factory(t) {\n return new (t || NgbDropdownAnchor)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => NgbDropdown)), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef));\n};\nNgbDropdownAnchor.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbDropdownAnchor,\n selectors: [[\"\", \"ngbDropdownAnchor\", \"\"]],\n hostAttrs: [1, \"dropdown-toggle\"],\n hostVars: 1,\n hostBindings: function NgbDropdownAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-expanded\", ctx.dropdown.isOpen());\n }\n }\n});\nNgbDropdownAnchor.ctorParameters = () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }]\n}, {\n type: ElementRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownAnchor, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownAnchor]',\n host: {\n 'class': 'dropdown-toggle',\n '[attr.aria-expanded]': 'dropdown.isOpen()'\n }\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }]\n }, {\n type: ɵngcc0.ElementRef\n }];\n }, null);\n})();\n/**\r\n * A directive to mark an element that will toggle dropdown via the `click` event.\r\n *\r\n * You can also use `NgbDropdownAnchor` as an alternative.\r\n */\nclass NgbDropdownToggle extends NgbDropdownAnchor {\n constructor(dropdown, elementRef) {\n super(dropdown, elementRef);\n }\n}\nNgbDropdownToggle.ɵfac = function NgbDropdownToggle_Factory(t) {\n return new (t || NgbDropdownToggle)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => NgbDropdown)), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef));\n};\nNgbDropdownToggle.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbDropdownToggle,\n selectors: [[\"\", \"ngbDropdownToggle\", \"\"]],\n hostAttrs: [1, \"dropdown-toggle\"],\n hostVars: 1,\n hostBindings: function NgbDropdownToggle_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵ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 ɵngcc0.ɵɵattribute(\"aria-expanded\", ctx.dropdown.isOpen());\n }\n },\n features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: NgbDropdownAnchor,\n useExisting: forwardRef(() => NgbDropdownToggle)\n }]), ɵngcc0.ɵɵInheritDefinitionFeature]\n});\nNgbDropdownToggle.ctorParameters = () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }]\n}, {\n type: ElementRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownToggle, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownToggle]',\n host: {\n 'class': 'dropdown-toggle',\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 }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }]\n }, {\n type: ɵngcc0.ElementRef\n }];\n }, null);\n})();\n/**\r\n * A directive that provides contextual overlays for displaying lists of links and more.\r\n */\nclass NgbDropdown {\n constructor(_changeDetector, config, _document, _ngZone, _elementRef, _renderer, ngbNavbar) {\n this._changeDetector = _changeDetector;\n this._document = _document;\n this._ngZone = _ngZone;\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._closed$ = new Subject();\n this._bodyContainer = null;\n /**\r\n * Defines whether or not the dropdown menu is opened initially.\r\n */\n this._open = false;\n /**\r\n * An event fired when the dropdown is opened or closed.\r\n *\r\n * The event payload is a `boolean`:\r\n * * `true` - the dropdown was opened\r\n * * `false` - the dropdown was closed\r\n */\n this.openChange = new EventEmitter();\n this.placement = config.placement;\n this.container = config.container;\n this.autoClose = config.autoClose;\n this.display = ngbNavbar ? 'static' : 'dynamic';\n this._zoneSubscription = _ngZone.onStable.subscribe(() => {\n this._positionMenu();\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.isFirstChange) {\n this._applyPlacementClasses();\n }\n if (changes.dropdownClass) {\n const {\n currentValue,\n previousValue\n } = changes.dropdownClass;\n this._applyCustomDropdownClass(currentValue, previousValue);\n }\n }\n /**\r\n * Checks if the dropdown menu is open.\r\n */\n isOpen() {\n return this._open;\n }\n /**\r\n * Opens the dropdown menu.\r\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 }\n }\n }\n _setCloseHandlers() {\n ngbAutoClose(this._ngZone, this._document, this.autoClose, source => {\n this.close();\n if (source === 0 /* ESCAPE */) {\n this._anchor.nativeElement.focus();\n }\n }, this._closed$, this._menu ? [this._menu.nativeElement] : [], this._anchor ? [this._anchor.nativeElement] : [], '.dropdown-item,.dropdown-divider');\n }\n /**\r\n * Closes the dropdown menu.\r\n */\n close() {\n if (this._open) {\n this._open = false;\n this._resetContainer();\n this._closed$.next();\n this.openChange.emit(false);\n this._changeDetector.markForCheck();\n }\n }\n /**\r\n * Toggles the dropdown menu.\r\n */\n toggle() {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n ngOnDestroy() {\n this._resetContainer();\n this._closed$.next();\n this._zoneSubscription.unsubscribe();\n }\n onKeyDown(event) {\n // tslint:disable-next-line: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 === this._document.activeElement) {\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.\r\n User expects the next focusable element in the dropdown menu to get focus.\r\n But the menu is not a sibling to anchor/toggle, it is at the end of the body.\r\n Trick is to synchronously focus the menu element, and let the [keydown.Tab] go\r\n so that browser will focus the proper element (first one focusable in the menu) */\n this._renderer.setAttribute(this._menu.nativeElement, 'tabindex', '0');\n this._menu.nativeElement.focus();\n this._renderer.removeAttribute(this._menu.nativeElement, '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._elementRef.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._elementRef.nativeElement.classList.contains('dropup');\n }\n _isEventFromToggle(event) {\n return this._anchor.nativeElement.contains(event.target);\n }\n _getMenuElements() {\n const menu = this._menu;\n if (menu == null) {\n return [];\n }\n return menu.menuItems.filter(item => !item.disabled).map(item => item.elementRef.nativeElement);\n }\n _positionMenu() {\n const menu = this._menu;\n if (this.isOpen() && menu) {\n this._applyPlacementClasses(this.display === 'dynamic' ? positionElements(this._anchor.nativeElement, this._bodyContainer || this._menu.nativeElement, this.placement, this.container === 'body') : this._getFirstPlacement(this.placement));\n }\n }\n _getFirstPlacement(placement) {\n return Array.isArray(placement) ? placement[0] : placement.split(' ')[0];\n }\n _resetContainer() {\n const renderer = this._renderer;\n if (this._menu) {\n const dropdownElement = this._elementRef.nativeElement;\n const dropdownMenuElement = this._menu.nativeElement;\n renderer.appendChild(dropdownElement, dropdownMenuElement);\n renderer.removeStyle(dropdownMenuElement, 'position');\n renderer.removeStyle(dropdownMenuElement, 'transform');\n }\n if (this._bodyContainer) {\n renderer.removeChild(this._document.body, this._bodyContainer);\n this._bodyContainer = null;\n }\n }\n _applyContainer(container = null) {\n this._resetContainer();\n if (container === 'body') {\n const renderer = this._renderer;\n const dropdownMenuElement = this._menu.nativeElement;\n const bodyContainer = this._bodyContainer = this._bodyContainer || renderer.createElement('div');\n // Override some styles to have the positioning working\n renderer.setStyle(bodyContainer, 'position', 'absolute');\n renderer.setStyle(dropdownMenuElement, 'position', 'static');\n renderer.setStyle(bodyContainer, 'z-index', '1050');\n renderer.appendChild(bodyContainer, dropdownMenuElement);\n renderer.appendChild(this._document.body, bodyContainer);\n }\n this._applyCustomDropdownClass(this.dropdownClass);\n }\n _applyCustomDropdownClass(newClass, oldClass) {\n const targetElement = this.container === 'body' ? this._bodyContainer : this._elementRef.nativeElement;\n if (targetElement) {\n if (oldClass) {\n this._renderer.removeClass(targetElement, oldClass);\n }\n if (newClass) {\n this._renderer.addClass(targetElement, newClass);\n }\n }\n }\n _applyPlacementClasses(placement) {\n const menu = this._menu;\n if (menu) {\n if (!placement) {\n placement = this._getFirstPlacement(this.placement);\n }\n const renderer = this._renderer;\n const dropdownElement = this._elementRef.nativeElement;\n // remove the current placement classes\n renderer.removeClass(dropdownElement, 'dropup');\n renderer.removeClass(dropdownElement, 'dropdown');\n menu.placement = this.display === 'static' ? null : placement;\n /*\r\n * apply the new placement\r\n * in case of top use up-arrow or down-arrow otherwise\r\n */\n const dropdownClass = placement.search('^top') !== -1 ? 'dropup' : 'dropdown';\n renderer.addClass(dropdownElement, dropdownClass);\n const bodyContainer = this._bodyContainer;\n if (bodyContainer) {\n renderer.removeClass(bodyContainer, 'dropup');\n renderer.removeClass(bodyContainer, 'dropdown');\n renderer.addClass(bodyContainer, dropdownClass);\n }\n }\n }\n}\nNgbDropdown.ɵfac = function NgbDropdown_Factory(t) {\n return new (t || NgbDropdown)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(NgbDropdownConfig), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(NgbNavbar, 8));\n};\nNgbDropdown.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbDropdown,\n selectors: [[\"\", \"ngbDropdown\", \"\"]],\n contentQueries: function NgbDropdown_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDropdownMenu, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDropdownAnchor, 5);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._menu = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._anchor = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function NgbDropdown_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"show\", ctx.isOpen());\n }\n },\n inputs: {\n _open: [\"open\", \"_open\"],\n placement: \"placement\",\n container: \"container\",\n autoClose: \"autoClose\",\n display: \"display\",\n dropdownClass: \"dropdownClass\"\n },\n outputs: {\n openChange: \"openChange\"\n },\n exportAs: [\"ngbDropdown\"],\n features: [ɵngcc0.ɵɵNgOnChangesFeature]\n});\nNgbDropdown.ctorParameters = () => [{\n type: ChangeDetectorRef\n}, {\n type: NgbDropdownConfig\n}, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n}, {\n type: NgZone\n}, {\n type: ElementRef\n}, {\n type: Renderer2\n}, {\n type: NgbNavbar,\n decorators: [{\n type: Optional\n }]\n}];\nNgbDropdown.propDecorators = {\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 container: [{\n type: Input\n }],\n display: [{\n type: Input\n }],\n openChange: [{\n type: Output\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdown, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdown]',\n exportAs: 'ngbDropdown',\n host: {\n '[class.show]': 'isOpen()'\n }\n }]\n }], function () {\n return [{\n type: ɵngcc0.ChangeDetectorRef\n }, {\n type: NgbDropdownConfig\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: ɵngcc0.NgZone\n }, {\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc0.Renderer2\n }, {\n type: NgbNavbar,\n decorators: [{\n type: Optional\n }]\n }];\n }, {\n _open: [{\n type: Input,\n args: ['open']\n }],\n openChange: [{\n type: Output\n }],\n placement: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n autoClose: [{\n type: Input\n }],\n display: [{\n type: Input\n }],\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 dropdownClass: [{\n type: Input\n }]\n });\n})();\nconst NGB_DROPDOWN_DIRECTIVES = [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar];\nclass NgbDropdownModule {}\nNgbDropdownModule.ɵfac = function NgbDropdownModule_Factory(t) {\n return new (t || NgbDropdownModule)();\n};\nNgbDropdownModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbDropdownModule\n});\nNgbDropdownModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownModule, [{\n type: NgModule,\n args: [{\n declarations: NGB_DROPDOWN_DIRECTIVES,\n exports: NGB_DROPDOWN_DIRECTIVES\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbDropdownModule, {\n declarations: [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar],\n exports: [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar]\n });\n})();\n\n/**\r\n * A configuration service for the [`NgbModal`](#/components/modal/api#NgbModal) service.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all modals used in the application.\r\n*\r\n* @since 3.1.0\r\n*/\nclass NgbModalConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.backdrop = true;\n this.keyboard = true;\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbModalConfig.ɵfac = function NgbModalConfig_Factory(t) {\n return new (t || NgbModalConfig)(ɵngcc0.ɵɵinject(NgbConfig));\n};\nNgbModalConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbModalConfig_Factory() {\n return new NgbModalConfig(ɵɵinject(NgbConfig));\n },\n token: NgbModalConfig,\n providedIn: \"root\"\n});\nNgbModalConfig.ctorParameters = () => [{\n type: NgbConfig\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: NgbConfig\n }];\n }, 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(_type, _injector, _viewContainerRef, _renderer, _ngZone, _componentFactoryResolver, _applicationRef) {\n this._type = _type;\n this._injector = _injector;\n this._viewContainerRef = _viewContainerRef;\n this._renderer = _renderer;\n this._ngZone = _ngZone;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._applicationRef = _applicationRef;\n this._windowRef = null;\n this._contentRef = null;\n }\n open(content, context, animation = false) {\n if (!this._windowRef) {\n this._contentRef = this._getContentRef(content, context);\n this._windowRef = this._viewContainerRef.createComponent(this._componentFactoryResolver.resolveComponentFactory(this._type), this._viewContainerRef.length, this._injector, this._contentRef.nodes);\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 var _a;\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 ((_a = this._contentRef) === null || _a === void 0 ? void 0 : _a.viewRef) {\n this._applicationRef.detachView(this._contentRef.viewRef);\n this._contentRef.viewRef.destroy();\n this._contentRef = null;\n }\n }));\n }\n _getContentRef(content, context) {\n if (!content) {\n return new ContentRef([]);\n } else if (content instanceof TemplateRef) {\n const viewRef = content.createEmbeddedView(context);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n } else {\n return new ContentRef([[this._renderer.createText(`${content}`)]]);\n }\n }\n}\nconst noop = () => {};\nconst ɵ0$3 = noop;\n/**\r\n * Utility to handle the scrollbar.\r\n *\r\n * It allows to compensate the lack of a vertical scrollbar by adding an\r\n * equivalent padding on the right of the body, and to remove this compensation.\r\n */\nclass ScrollBar {\n constructor(_document) {\n this._document = _document;\n }\n /**\r\n * To be called right before a potential vertical scrollbar would be removed:\r\n *\r\n * - if there was a scrollbar, adds some compensation padding to the body\r\n * to keep the same layout as when the scrollbar is there\r\n * - if there was none, there is nothing to do\r\n *\r\n * @return a callback used to revert the compensation (noop if there was none,\r\n * otherwise a function removing the padding)\r\n */\n compensate() {\n const width = this._getWidth();\n return !this._isPresent(width) ? noop : this._adjustBody(width);\n }\n /**\r\n * Adds a padding of the given width on the right of the body.\r\n *\r\n * @return a callback used to revert the padding to its previous value\r\n */\n _adjustBody(scrollbarWidth) {\n const body = this._document.body;\n const userSetPaddingStyle = body.style.paddingRight;\n const actualPadding = parseFloat(window.getComputedStyle(body)['padding-right']);\n body.style['padding-right'] = `${actualPadding + scrollbarWidth}px`;\n return () => body.style['padding-right'] = userSetPaddingStyle;\n }\n /**\r\n * Tells whether a scrollbar is currently present on the body.\r\n *\r\n * @return true if scrollbar is present, false otherwise\r\n */\n _isPresent(scrollbarWidth) {\n const rect = this._document.body.getBoundingClientRect();\n const bodyToViewportGap = window.innerWidth - (rect.left + rect.right);\n const uncertainty = 0.1 * scrollbarWidth;\n return bodyToViewportGap >= scrollbarWidth - uncertainty;\n }\n /**\r\n * Calculates and returns the width of a scrollbar.\r\n *\r\n * @return the width of a scrollbar on this page\r\n */\n _getWidth() {\n const measurer = this._document.createElement('div');\n measurer.className = 'modal-scrollbar-measure';\n const body = this._document.body;\n body.appendChild(measurer);\n const width = measurer.getBoundingClientRect().width - measurer.clientWidth;\n body.removeChild(measurer);\n return width;\n }\n}\nScrollBar.ɵfac = function ScrollBar_Factory(t) {\n return new (t || ScrollBar)(ɵngcc0.ɵɵinject(DOCUMENT));\n};\nScrollBar.ɵprov = ɵɵdefineInjectable({\n factory: function ScrollBar_Factory() {\n return new ScrollBar(ɵɵinject(DOCUMENT));\n },\n token: ScrollBar,\n providedIn: \"root\"\n});\nScrollBar.ctorParameters = () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ScrollBar, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\nclass NgbModalBackdrop {\n constructor(_el, _zone) {\n this._el = _el;\n this._zone = _zone;\n }\n ngOnInit() {\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n ngbRunTransition(this._zone, this._el.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._el.nativeElement, ({\n classList\n }) => classList.remove('show'), {\n animation: this.animation,\n runningTransition: 'stop'\n });\n }\n}\nNgbModalBackdrop.ɵfac = function NgbModalBackdrop_Factory(t) {\n return new (t || NgbModalBackdrop)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone));\n};\nNgbModalBackdrop.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbModalBackdrop,\n selectors: [[\"ngb-modal-backdrop\"]],\n hostAttrs: [2, \"z-index\", \"1050\"],\n hostVars: 6,\n hostBindings: function NgbModalBackdrop_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassMap(\"modal-backdrop\" + (ctx.backdropClass ? \" \" + ctx.backdropClass : \"\"));\n ɵngcc0.ɵɵclassProp(\"show\", !ctx.animation)(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n backdropClass: \"backdropClass\"\n },\n decls: 0,\n vars: 0,\n template: function NgbModalBackdrop_Template(rf, ctx) {},\n encapsulation: 2\n});\nNgbModalBackdrop.ctorParameters = () => [{\n type: ElementRef\n}, {\n type: NgZone\n}];\nNgbModalBackdrop.propDecorators = {\n animation: [{\n type: Input\n }],\n backdropClass: [{\n type: Input\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalBackdrop, [{\n type: Component,\n args: [{\n selector: 'ngb-modal-backdrop',\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: 1050'\n }\n }]\n }], function () {\n return [{\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc0.NgZone\n }];\n }, {\n animation: [{\n type: Input\n }],\n backdropClass: [{\n type: Input\n }]\n });\n})();\n\n/**\r\n * A reference to the currently opened (active) modal.\r\n *\r\n * Instances of this class can be injected into your component passed as modal content.\r\n * So you can `.close()` or `.dismiss()` the modal window from your component.\r\n */\nclass NgbActiveModal {\n /**\r\n * Closes the modal with an optional `result` value.\r\n *\r\n * The `NgbModalRef.result` promise will be resolved with the provided value.\r\n */\n close(result) {}\n /**\r\n * Dismisses the modal with an optional `reason` value.\r\n *\r\n * The `NgbModalRef.result` promise will be rejected with the provided value.\r\n */\n dismiss(reason) {}\n}\n/**\r\n * A reference to the newly opened modal returned by the `NgbModal.open()` method.\r\n */\nclass NgbModalRef {\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 /**\r\n * The instance of a component used for the modal content.\r\n *\r\n * When a `TemplateRef` is used as the content or when the modal is closed, will return `undefined`.\r\n */\n get componentInstance() {\n if (this._contentRef && this._contentRef.componentRef) {\n return this._contentRef.componentRef.instance;\n }\n }\n /**\r\n * The observable that emits when the modal is closed via the `.close()` method.\r\n *\r\n * It will emit the result passed to the `.close()` method.\r\n *\r\n * @since 8.0.0\r\n */\n get closed() {\n return this._closed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\r\n * The observable that emits when the modal is dismissed via the `.dismiss()` method.\r\n *\r\n * It will emit the reason passed to the `.dismissed()` method by the user, or one of the internal\r\n * reasons like backdrop click or ESC key press.\r\n *\r\n * @since 8.0.0\r\n */\n get dismissed() {\n return this._dismissed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\r\n * The observable that emits when both modal window and backdrop are closed and animations were finished.\r\n * At this point modal and backdrop elements will be removed from the DOM tree.\r\n *\r\n * This observable will be completed after emitting.\r\n *\r\n * @since 8.0.0\r\n */\n get hidden() {\n return this._hidden.asObservable();\n }\n /**\r\n * The observable that emits when modal is fully visible and animation was finished.\r\n * Modal DOM element is always available synchronously after calling 'modal.open()' service.\r\n *\r\n * This observable will be completed after emitting.\r\n * It will not emit, if modal is closed before open animation is finished.\r\n *\r\n * @since 8.0.0\r\n */\n get shown() {\n return this._windowCmptRef.instance.shown.asObservable();\n }\n /**\r\n * Closes the modal with an optional `result` value.\r\n *\r\n * The `NgbMobalRef.result` promise will be resolved with the provided value.\r\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 /**\r\n * Dismisses the modal with an optional `reason` value.\r\n *\r\n * The `NgbModalRef.result` promise will be rejected with the provided value.\r\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 (dismiss && dismiss.then) {\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(_document, _elRef, _zone) {\n this._document = _document;\n this._elRef = _elRef;\n this._zone = _zone;\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 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$),\n // tslint:disable-next-line: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}\nNgbModalWindow.ɵfac = function NgbModalWindow_Factory(t) {\n return new (t || NgbModalWindow)(ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone));\n};\nNgbModalWindow.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbModalWindow,\n selectors: [[\"ngb-modal-window\"]],\n viewQuery: function NgbModalWindow_Query(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c31, 7);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵ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 ɵngcc0.ɵɵattribute(\"aria-modal\", true)(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-describedby\", ctx.ariaDescribedBy);\n ɵngcc0.ɵɵclassMap(\"modal d-block\" + (ctx.windowClass ? \" \" + ctx.windowClass : \"\"));\n ɵngcc0.ɵɵclassProp(\"fade\", ctx.animation);\n }\n },\n inputs: {\n backdrop: \"backdrop\",\n keyboard: \"keyboard\",\n animation: \"animation\",\n ariaLabelledBy: \"ariaLabelledBy\",\n ariaDescribedBy: \"ariaDescribedBy\",\n centered: \"centered\",\n scrollable: \"scrollable\",\n size: \"size\",\n windowClass: \"windowClass\",\n modalDialogClass: \"modalDialogClass\"\n },\n outputs: {\n dismissEvent: \"dismiss\"\n },\n ngContentSelectors: _c3,\n decls: 4,\n vars: 2,\n consts: [[\"role\", \"document\"], [\"dialog\", \"\"], [1, \"modal-content\"]],\n template: function NgbModalWindow_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0, 1)(2, \"div\", 2);\n ɵngcc0.ɵɵprojection(3);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n ɵngcc0.ɵɵclassMap(\"modal-dialog\" + (ctx.size ? \" modal-\" + ctx.size : \"\") + (ctx.centered ? \" modal-dialog-centered\" : \"\") + (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 encapsulation: 2\n});\nNgbModalWindow.ctorParameters = () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n}, {\n type: ElementRef\n}, {\n type: NgZone\n}];\nNgbModalWindow.propDecorators = {\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 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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-modal-window',\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 <div #dialog [class]=\"'modal-dialog' + (size ? ' modal-' + size : '') + (centered ? ' modal-dialog-centered' : '') +\n (scrollable ? ' modal-dialog-scrollable' : '') + (modalDialogClass ? ' ' + modalDialogClass : '')\" role=\"document\">\n <div class=\"modal-content\"><ng-content></ng-content></div>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n styles: [\"ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\"]\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc0.NgZone\n }];\n }, {\n backdrop: [{\n type: Input\n }],\n keyboard: [{\n type: Input\n }],\n dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }],\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 centered: [{\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 });\n})();\nclass NgbModalStack {\n constructor(_applicationRef, _injector, _document, _scrollBar, _rendererFactory, _ngZone) {\n this._applicationRef = _applicationRef;\n this._injector = _injector;\n this._document = _document;\n this._scrollBar = _scrollBar;\n this._rendererFactory = _rendererFactory;\n this._ngZone = _ngZone;\n this._activeWindowCmptHasChanged = new Subject();\n this._ariaHiddenValues = new Map();\n this._backdropAttributes = ['animation', 'backdropClass'];\n this._modalRefs = [];\n this._windowAttributes = ['animation', 'ariaLabelledBy', 'ariaDescribedBy', 'backdrop', 'centered', 'keyboard', 'scrollable', 'size', 'windowClass', 'modalDialogClass'];\n this._windowCmpts = [];\n this._activeInstances = new EventEmitter();\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(this._ngZone, activeWindowCmpt.location.nativeElement, this._activeWindowCmptHasChanged);\n this._revertAriaHidden();\n this._setAriaHidden(activeWindowCmpt.location.nativeElement);\n }\n });\n }\n open(moduleCFR, contentInjector, content, options) {\n const containerEl = options.container instanceof HTMLElement ? options.container : isDefined(options.container) ? this._document.querySelector(options.container) : this._document.body;\n const renderer = this._rendererFactory.createRenderer(null, null);\n const revertPaddingForScrollBar = this._scrollBar.compensate();\n const removeBodyClass = () => {\n if (!this._modalRefs.length) {\n renderer.removeClass(this._document.body, 'modal-open');\n this._revertAriaHidden();\n }\n };\n if (!containerEl) {\n throw new Error(`The specified modal container \"${options.container || 'body'}\" was not found in the DOM.`);\n }\n const activeModal = new NgbActiveModal();\n const contentRef = this._getContentRef(moduleCFR, options.injector || contentInjector, content, activeModal, options);\n let backdropCmptRef = options.backdrop !== false ? this._attachBackdrop(moduleCFR, containerEl) : undefined;\n let windowCmptRef = this._attachWindowComponent(moduleCFR, containerEl, contentRef);\n let ngbModalRef = new NgbModalRef(windowCmptRef, contentRef, backdropCmptRef, options.beforeDismiss);\n this._registerModalRef(ngbModalRef);\n this._registerWindowCmpt(windowCmptRef);\n ngbModalRef.result.then(revertPaddingForScrollBar, revertPaddingForScrollBar);\n ngbModalRef.result.then(removeBodyClass, removeBodyClass);\n activeModal.close = result => {\n ngbModalRef.close(result);\n };\n activeModal.dismiss = reason => {\n ngbModalRef.dismiss(reason);\n };\n this._applyWindowOptions(windowCmptRef.instance, options);\n if (this._modalRefs.length === 1) {\n renderer.addClass(this._document.body, 'modal-open');\n }\n if (backdropCmptRef && backdropCmptRef.instance) {\n this._applyBackdropOptions(backdropCmptRef.instance, options);\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(moduleCFR, containerEl) {\n let backdropFactory = moduleCFR.resolveComponentFactory(NgbModalBackdrop);\n let backdropCmptRef = backdropFactory.create(this._injector);\n this._applicationRef.attachView(backdropCmptRef.hostView);\n containerEl.appendChild(backdropCmptRef.location.nativeElement);\n return backdropCmptRef;\n }\n _attachWindowComponent(moduleCFR, containerEl, contentRef) {\n let windowFactory = moduleCFR.resolveComponentFactory(NgbModalWindow);\n let windowCmptRef = windowFactory.create(this._injector, contentRef.nodes);\n this._applicationRef.attachView(windowCmptRef.hostView);\n containerEl.appendChild(windowCmptRef.location.nativeElement);\n return windowCmptRef;\n }\n _applyWindowOptions(windowInstance, options) {\n this._windowAttributes.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 }\n _getContentRef(moduleCFR, contentInjector, 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(moduleCFR, contentInjector, content, activeModal, options);\n }\n }\n _createFromTemplateRef(content, 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 = content.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(moduleCFR, contentInjector, content, context, options) {\n const contentCmptFactory = moduleCFR.resolveComponentFactory(content);\n const modalContentInjector = Injector.create({\n providers: [{\n provide: NgbActiveModal,\n useValue: context\n }],\n parent: contentInjector\n });\n const componentRef = contentCmptFactory.create(modalContentInjector);\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}\nNgbModalStack.ɵfac = function NgbModalStack_Factory(t) {\n return new (t || NgbModalStack)(ɵngcc0.ɵɵinject(ɵngcc0.ApplicationRef), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(DOCUMENT), ɵngcc0.ɵɵinject(ScrollBar), ɵngcc0.ɵɵinject(ɵngcc0.RendererFactory2), ɵngcc0.ɵɵinject(ɵngcc0.NgZone));\n};\nNgbModalStack.ɵprov = ɵɵdefineInjectable({\n factory: function NgbModalStack_Factory() {\n return new NgbModalStack(ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT), ɵɵinject(ScrollBar), ɵɵinject(RendererFactory2), ɵɵinject(NgZone));\n },\n token: NgbModalStack,\n providedIn: \"root\"\n});\nNgbModalStack.ctorParameters = () => [{\n type: ApplicationRef\n}, {\n type: Injector\n}, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n}, {\n type: ScrollBar\n}, {\n type: RendererFactory2\n}, {\n type: NgZone\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalStack, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: ɵngcc0.ApplicationRef\n }, {\n type: ɵngcc0.Injector\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: ScrollBar\n }, {\n type: ɵngcc0.RendererFactory2\n }, {\n type: ɵngcc0.NgZone\n }];\n }, null);\n})();\n\n/**\r\n * A service for opening modal windows.\r\n *\r\n * Creating a modal is straightforward: create a component or a template and pass it as an argument to\r\n * the `.open()` method.\r\n */\nclass NgbModal {\n constructor(_moduleCFR, _injector, _modalStack, _config) {\n this._moduleCFR = _moduleCFR;\n this._injector = _injector;\n this._modalStack = _modalStack;\n this._config = _config;\n }\n /**\r\n * Opens a new modal window with the specified content and supplied options.\r\n *\r\n * Content can be provided as a `TemplateRef` or a component type. If you pass a component type as content,\r\n * then instances of those components can be injected with an instance of the `NgbActiveModal` class. You can then\r\n * use `NgbActiveModal` methods to close / dismiss modals from \"inside\" of your component.\r\n *\r\n * Also see the [`NgbModalOptions`](#/components/modal/api#NgbModalOptions) for the list of supported options.\r\n */\n open(content, options = {}) {\n const combinedOptions = Object.assign(Object.assign(Object.assign({}, this._config), {\n animation: this._config.animation\n }), options);\n return this._modalStack.open(this._moduleCFR, this._injector, content, combinedOptions);\n }\n /**\r\n * Returns an observable that holds the active modal instances.\r\n */\n get activeInstances() {\n return this._modalStack.activeInstances;\n }\n /**\r\n * Dismisses all currently displayed modal windows with the supplied reason.\r\n *\r\n * @since 3.1.0\r\n */\n dismissAll(reason) {\n this._modalStack.dismissAll(reason);\n }\n /**\r\n * Indicates if there are currently any open modal windows in the application.\r\n *\r\n * @since 3.3.0\r\n */\n hasOpenModals() {\n return this._modalStack.hasOpenModals();\n }\n}\nNgbModal.ɵfac = function NgbModal_Factory(t) {\n return new (t || NgbModal)(ɵngcc0.ɵɵinject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(NgbModalStack), ɵngcc0.ɵɵinject(NgbModalConfig));\n};\nNgbModal.ɵprov = ɵɵdefineInjectable({\n factory: function NgbModal_Factory() {\n return new NgbModal(ɵɵinject(ComponentFactoryResolver), ɵɵinject(INJECTOR), ɵɵinject(NgbModalStack), ɵɵinject(NgbModalConfig));\n },\n token: NgbModal,\n providedIn: \"root\"\n});\nNgbModal.ctorParameters = () => [{\n type: ComponentFactoryResolver\n}, {\n type: Injector\n}, {\n type: NgbModalStack\n}, {\n type: NgbModalConfig\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModal, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: ɵngcc0.ComponentFactoryResolver\n }, {\n type: ɵngcc0.Injector\n }, {\n type: NgbModalStack\n }, {\n type: NgbModalConfig\n }];\n }, null);\n})();\nclass NgbModalModule {}\nNgbModalModule.ɵfac = function NgbModalModule_Factory(t) {\n return new (t || NgbModalModule)();\n};\nNgbModalModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbModalModule\n});\nNgbModalModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n providers: [NgbModal]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbModalBackdrop, NgbModalWindow],\n entryComponents: [NgbModalBackdrop, NgbModalWindow],\n providers: [NgbModal]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbModalModule, {\n declarations: [NgbModalBackdrop, NgbModalWindow]\n });\n})();\n\n/**\r\n * A configuration service for the [`NgbNav`](#/components/nav/api#NgbNav) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the navs used in the application.\r\n *\r\n * @since 5.2.0\r\n */\nclass NgbNavConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.destroyOnHide = true;\n this.orientation = 'horizontal';\n this.roles = 'tablist';\n this.keyboard = false;\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbNavConfig.ɵfac = function NgbNavConfig_Factory(t) {\n return new (t || NgbNavConfig)(ɵngcc0.ɵɵinject(NgbConfig));\n};\nNgbNavConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbNavConfig_Factory() {\n return new NgbNavConfig(ɵɵinject(NgbConfig));\n },\n token: NgbNavConfig,\n providedIn: \"root\"\n});\nNgbNavConfig.ctorParameters = () => [{\n type: NgbConfig\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: NgbConfig\n }];\n }, null);\n})();\nconst isValidNavId = id => isDefined(id) && id !== '';\nconst ɵ0$4 = isValidNavId;\nlet navCounter = 0;\n/**\r\n * This directive must be used to wrap content to be displayed in the nav.\r\n *\r\n * @since 5.2.0\r\n */\nclass NgbNavContent {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbNavContent.ɵfac = function NgbNavContent_Factory(t) {\n return new (t || NgbNavContent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef));\n};\nNgbNavContent.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbNavContent,\n selectors: [[\"ng-template\", \"ngbNavContent\", \"\"]]\n});\nNgbNavContent.ctorParameters = () => [{\n type: TemplateRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavContent, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbNavContent]'\n }]\n }], function () {\n return [{\n type: ɵngcc0.TemplateRef\n }];\n }, null);\n})();\n/**\r\n * The directive used to group nav link and related nav content. As well as set nav identifier and some options.\r\n *\r\n * @since 5.2.0\r\n */\nclass NgbNavItem {\n constructor(nav, elementRef) {\n this.elementRef = elementRef;\n /**\r\n * If `true`, the current nav item is disabled and can't be toggled by user.\r\n *\r\n * Nevertheless disabled nav can be selected programmatically via the `.select()` method and the `[activeId]` binding.\r\n */\n this.disabled = false;\n /**\r\n * An event emitted when the fade in transition is finished on the related nav content\r\n *\r\n * @since 8.0.0\r\n */\n this.shown = new EventEmitter();\n /**\r\n * An event emitted when the fade out transition is finished on the related nav content\r\n *\r\n * @since 8.0.0\r\n */\n this.hidden = new EventEmitter();\n // TODO: cf https://github.com/angular/angular/issues/30106\n this._nav = nav;\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}\nNgbNavItem.ɵfac = function NgbNavItem_Factory(t) {\n return new (t || NgbNavItem)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => NgbNav)), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef));\n};\nNgbNavItem.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbNavItem,\n selectors: [[\"\", \"ngbNavItem\", \"\"]],\n contentQueries: function NgbNavItem_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbNavContent, 4);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentTpls = _t);\n }\n },\n hostVars: 2,\n hostBindings: function NgbNavItem_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"nav-item\", true);\n }\n },\n inputs: {\n disabled: \"disabled\",\n domId: \"domId\",\n destroyOnHide: \"destroyOnHide\",\n _id: [\"ngbNavItem\", \"_id\"]\n },\n outputs: {\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbNavItem\"]\n});\nNgbNavItem.ctorParameters = () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbNav)]\n }]\n}, {\n type: ElementRef\n}];\nNgbNavItem.propDecorators = {\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavItem, [{\n type: Directive,\n args: [{\n selector: '[ngbNavItem]',\n exportAs: 'ngbNavItem',\n host: {\n '[class.nav-item]': 'true'\n }\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbNav)]\n }]\n }, {\n type: ɵngcc0.ElementRef\n }];\n }, {\n disabled: [{\n type: Input\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n domId: [{\n type: Input\n }],\n destroyOnHide: [{\n type: Input\n }],\n _id: [{\n type: Input,\n args: ['ngbNavItem']\n }],\n contentTpls: [{\n type: ContentChildren,\n args: [NgbNavContent, {\n descendants: false\n }]\n }]\n });\n})();\n/**\r\n * A nav directive that helps with implementing tabbed navigation components.\r\n *\r\n * @since 5.2.0\r\n */\nclass NgbNav {\n constructor(role, config, _cd, _document) {\n this.role = role;\n this._cd = _cd;\n this._document = _document;\n /**\r\n * The event emitted after the active nav changes\r\n * The payload of the event is the newly active nav id\r\n *\r\n * If you want to prevent nav change, you should use `(navChange)` event\r\n */\n this.activeIdChange = new EventEmitter();\n /**\r\n * An event emitted when the fade in transition is finished for one of the items.\r\n *\r\n * Payload of the event is the nav id that was just shown.\r\n *\r\n * @since 8.0.0\r\n */\n this.shown = new EventEmitter();\n /**\r\n * An event emitted when the fade out transition is finished for one of the items.\r\n *\r\n * Payload of the event is the nav id that was just hidden.\r\n *\r\n * @since 8.0.0\r\n */\n this.hidden = new EventEmitter();\n this.destroy$ = new Subject();\n this.navItemChange$ = new Subject();\n /**\r\n * The nav change event emitted right before the nav change happens on user click.\r\n *\r\n * This event won't be emitted if nav is changed programmatically via `[activeId]` or `.select()`.\r\n *\r\n * See [`NgbNavChangeEvent`](#/components/nav/api#NgbNavChangeEvent) for payload details.\r\n */\n this.navChange = new EventEmitter();\n this.animation = config.animation;\n this.destroyOnHide = config.destroyOnHide;\n this.orientation = config.orientation;\n this.roles = config.roles;\n this.keyboard = config.keyboard;\n }\n click(item) {\n if (!item.disabled) {\n this._updateActiveId(item.id);\n }\n }\n onKeyDown(event) {\n if (this.roles !== 'tablist' || !this.keyboard) {\n return;\n }\n // tslint:disable-next-line: 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.elRef.nativeElement === this._document.activeElement) {\n position = index;\n }\n });\n if (length) {\n switch (key) {\n case Key.ArrowLeft:\n if (this.orientation === 'vertical') {\n return;\n }\n position = (position - 1 + length) % length;\n break;\n case Key.ArrowRight:\n if (this.orientation === 'vertical') {\n return;\n }\n position = (position + 1) % length;\n break;\n case Key.ArrowDown:\n if (this.orientation === 'horizontal') {\n return;\n }\n position = (position + 1) % length;\n break;\n case Key.ArrowUp:\n if (this.orientation === 'horizontal') {\n return;\n }\n position = (position - 1 + length) % 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].elRef.nativeElement.focus();\n event.preventDefault();\n }\n }\n /**\r\n * Selects the nav with the given id and shows its associated pane.\r\n * Any other nav that was previously selected becomes unselected and its associated pane is hidden.\r\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(takeUntil(this.destroy$)).subscribe(() => this._notifyItemChanged(this.activeId));\n }\n ngOnChanges({\n activeId\n }) {\n if (activeId && !activeId.firstChange) {\n this._notifyItemChanged(activeId.currentValue);\n }\n }\n ngOnDestroy() {\n this.destroy$.next();\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}\nNgbNav.ɵfac = function NgbNav_Factory(t) {\n return new (t || NgbNav)(ɵngcc0.ɵɵinjectAttribute('role'), ɵngcc0.ɵɵdirectiveInject(NgbNavConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(DOCUMENT));\n};\nNgbNav.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbNav,\n selectors: [[\"\", \"ngbNav\", \"\"]],\n contentQueries: function NgbNav_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbNavItem, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbNavLink, 5);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.items = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.links = _t);\n }\n },\n hostVars: 6,\n hostBindings: function NgbNav_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵ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 });\n }\n if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-orientation\", ctx.orientation === \"vertical\" && ctx.roles === \"tablist\" ? \"vertical\" : undefined)(\"role\", ctx.role ? ctx.role : ctx.roles ? \"tablist\" : undefined);\n ɵngcc0.ɵɵclassProp(\"nav\", true)(\"flex-column\", ctx.orientation === \"vertical\");\n }\n },\n inputs: {\n animation: \"animation\",\n destroyOnHide: \"destroyOnHide\",\n orientation: \"orientation\",\n roles: \"roles\",\n keyboard: \"keyboard\",\n activeId: \"activeId\"\n },\n outputs: {\n activeIdChange: \"activeIdChange\",\n shown: \"shown\",\n hidden: \"hidden\",\n navChange: \"navChange\"\n },\n exportAs: [\"ngbNav\"],\n features: [ɵngcc0.ɵɵNgOnChangesFeature]\n});\nNgbNav.ctorParameters = () => [{\n type: String,\n decorators: [{\n type: Attribute,\n args: ['role']\n }]\n}, {\n type: NgbNavConfig\n}, {\n type: ChangeDetectorRef\n}, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n}];\nNgbNav.propDecorators = {\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(() => NgbNavLink), {\n descendants: true\n }]\n }],\n navChange: [{\n type: Output\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNav, [{\n type: Directive,\n args: [{\n selector: '[ngbNav]',\n exportAs: 'ngbNav',\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 }\n }]\n }], function () {\n return [{\n type: String,\n decorators: [{\n type: Attribute,\n args: ['role']\n }]\n }, {\n type: NgbNavConfig\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, {\n activeIdChange: [{\n type: Output\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n navChange: [{\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 activeId: [{\n type: Input\n }],\n items: [{\n type: ContentChildren,\n args: [NgbNavItem]\n }],\n links: [{\n type: ContentChildren,\n args: [forwardRef(() => NgbNavLink), {\n descendants: true\n }]\n }]\n });\n})();\n/**\r\n * A directive to put on the nav link.\r\n *\r\n * @since 5.2.0\r\n */\nclass NgbNavLink {\n constructor(role, navItem, nav, elRef) {\n this.role = role;\n this.navItem = navItem;\n this.nav = nav;\n this.elRef = elRef;\n }\n hasNavItemClass() {\n // with alternative markup we have to add `.nav-item` class, because `ngbNavItem` is on the ng-container\n return this.navItem.elementRef.nativeElement.nodeType === Node.COMMENT_NODE;\n }\n}\nNgbNavLink.ɵfac = function NgbNavLink_Factory(t) {\n return new (t || NgbNavLink)(ɵngcc0.ɵɵinjectAttribute('role'), ɵngcc0.ɵɵdirectiveInject(NgbNavItem), ɵngcc0.ɵɵdirectiveInject(NgbNav), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef));\n};\nNgbNavLink.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbNavLink,\n selectors: [[\"a\", \"ngbNavLink\", \"\"]],\n hostAttrs: [\"href\", \"\"],\n hostVars: 14,\n hostBindings: function NgbNavLink_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function NgbNavLink_click_HostBindingHandler($event) {\n ctx.nav.click(ctx.navItem);\n return $event.preventDefault();\n });\n }\n if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.navItem.domId);\n ɵngcc0.ɵɵattribute(\"role\", ctx.role ? ctx.role : ctx.nav.roles ? \"tab\" : undefined)(\"tabindex\", ctx.navItem.disabled ? -1 : undefined)(\"aria-controls\", ctx.navItem.isPanelInDom() ? ctx.navItem.panelDomId : null)(\"aria-selected\", ctx.navItem.active)(\"aria-disabled\", ctx.navItem.disabled);\n ɵngcc0.ɵɵclassProp(\"nav-link\", true)(\"nav-item\", ctx.hasNavItemClass())(\"active\", ctx.navItem.active)(\"disabled\", ctx.navItem.disabled);\n }\n }\n});\nNgbNavLink.ctorParameters = () => [{\n type: String,\n decorators: [{\n type: Attribute,\n args: ['role']\n }]\n}, {\n type: NgbNavItem\n}, {\n type: NgbNav\n}, {\n type: ElementRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavLink, [{\n type: Directive,\n args: [{\n selector: 'a[ngbNavLink]',\n host: {\n '[id]': 'navItem.domId',\n '[class.nav-link]': 'true',\n '[class.nav-item]': 'hasNavItemClass()',\n '[attr.role]': `role ? role : nav.roles ? 'tab' : undefined`,\n 'href': '',\n '[class.active]': 'navItem.active',\n '[class.disabled]': 'navItem.disabled',\n '[attr.tabindex]': 'navItem.disabled ? -1 : undefined',\n '[attr.aria-controls]': 'navItem.isPanelInDom() ? navItem.panelDomId : null',\n '[attr.aria-selected]': 'navItem.active',\n '[attr.aria-disabled]': 'navItem.disabled',\n '(click)': 'nav.click(navItem); $event.preventDefault()'\n }\n }]\n }], function () {\n return [{\n type: String,\n decorators: [{\n type: Attribute,\n args: ['role']\n }]\n }, {\n type: NgbNavItem\n }, {\n type: NgbNav\n }, {\n type: ɵngcc0.ElementRef\n }];\n }, 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(elRef) {\n this.elRef = elRef;\n }\n}\nNgbNavPane.ɵfac = function NgbNavPane_Factory(t) {\n return new (t || NgbNavPane)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef));\n};\nNgbNavPane.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵ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 ɵngcc0.ɵɵhostProperty(\"id\", ctx.item.panelDomId);\n ɵngcc0.ɵɵattribute(\"role\", ctx.role ? ctx.role : ctx.nav.roles ? \"tabpanel\" : undefined)(\"aria-labelledby\", ctx.item.domId);\n ɵngcc0.ɵɵclassProp(\"fade\", ctx.nav.animation);\n }\n },\n inputs: {\n item: \"item\",\n nav: \"nav\",\n role: \"role\"\n }\n});\nNgbNavPane.ctorParameters = () => [{\n type: ElementRef\n}];\nNgbNavPane.propDecorators = {\n item: [{\n type: Input\n }],\n nav: [{\n type: Input\n }],\n role: [{\n type: Input\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavPane, [{\n type: Directive,\n args: [{\n selector: '[ngbNavPane]',\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 }], function () {\n return [{\n type: ɵngcc0.ElementRef\n }];\n }, {\n item: [{\n type: Input\n }],\n nav: [{\n type: Input\n }],\n role: [{\n type: Input\n }]\n });\n})();\n/**\r\n * The outlet where currently active nav content will be displayed.\r\n *\r\n * @since 5.2.0\r\n */\nclass NgbNavOutlet {\n constructor(_cd, _ngZone) {\n this._cd = _cd;\n this._ngZone = _ngZone;\n this._activePane = null;\n }\n isPanelTransitioning(item) {\n var _a;\n return ((_a = this._activePane) === null || _a === void 0 ? void 0 : _a.item) === item;\n }\n ngAfterViewInit() {\n var _a;\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(takeUntil(this.nav.destroy$), startWith(((_a = this._activePane) === null || _a === void 0 ? void 0 : _a.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.elRef.nativeElement, ngbNavFadeOutTransition, options).subscribe(() => {\n var _a;\n const activeItem = (_a = this._activePane) === null || _a === void 0 ? void 0 : _a.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.elRef.nativeElement.classList.add('active');\n ngbRunTransition(this._ngZone, this._activePane.elRef.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 var _a, _b;\n this._activePane = this._getActivePane();\n (_a = this._activePane) === null || _a === void 0 ? void 0 : _a.elRef.nativeElement.classList.add('show');\n (_b = this._activePane) === null || _b === void 0 ? void 0 : _b.elRef.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}\nNgbNavOutlet.ɵfac = function NgbNavOutlet_Factory(t) {\n return new (t || NgbNavOutlet)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone));\n};\nNgbNavOutlet.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbNavOutlet,\n selectors: [[\"\", \"ngbNavOutlet\", \"\"]],\n viewQuery: function NgbNavOutlet_Query(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(NgbNavPane, 5);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._panes = _t);\n }\n },\n hostVars: 2,\n hostBindings: function NgbNavOutlet_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"tab-content\", true);\n }\n },\n inputs: {\n paneRole: \"paneRole\",\n nav: [\"ngbNavOutlet\", \"nav\"]\n },\n attrs: _c32,\n decls: 1,\n vars: 1,\n consts: [[\"ngFor\", \"\", 3, \"ngForOf\"], [\"ngbNavPane\", \"\", 3, \"item\", \"nav\", \"role\", 4, \"ngIf\"], [\"ngbNavPane\", \"\", 3, \"item\", \"nav\", \"role\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgbNavOutlet_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbNavOutlet_ng_template_0_Template, 1, 1, \"ng-template\", 0);\n }\n if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.nav.items);\n }\n },\n dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, NgbNavPane],\n encapsulation: 2,\n changeDetection: 0\n});\nNgbNavOutlet.ctorParameters = () => [{\n type: ChangeDetectorRef\n}, {\n type: NgZone\n}];\nNgbNavOutlet.propDecorators = {\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavOutlet, [{\n type: Component,\n args: [{\n selector: '[ngbNavOutlet]',\n host: {\n '[class.tab-content]': 'true'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-template ngFor let-item [ngForOf]=\"nav.items\">\n <div ngbNavPane *ngIf=\"item.isPanelInDom() || isPanelTransitioning(item)\" [item]=\"item\" [nav]=\"nav\" [role]=\"paneRole\">\n <ng-template [ngTemplateOutlet]=\"item.contentTpl?.templateRef || null\"\n [ngTemplateOutletContext]=\"{$implicit: item.active || isPanelTransitioning(item)}\"></ng-template>\n </div>\n </ng-template>\n `\n }]\n }], function () {\n return [{\n type: ɵngcc0.ChangeDetectorRef\n }, {\n type: ɵngcc0.NgZone\n }];\n }, {\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, NgbNavLink, NgbNavOutlet, NgbNavPane];\nclass NgbNavModule {}\nNgbNavModule.ɵfac = function NgbNavModule_Factory(t) {\n return new (t || NgbNavModule)();\n};\nNgbNavModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbNavModule\n});\nNgbNavModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [CommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavModule, [{\n type: NgModule,\n args: [{\n declarations: NGB_NAV_DIRECTIVES,\n exports: NGB_NAV_DIRECTIVES,\n imports: [CommonModule]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbNavModule, {\n declarations: function () {\n return [NgbNavContent, NgbNav, NgbNavItem, NgbNavLink, NgbNavOutlet, NgbNavPane];\n },\n imports: function () {\n return [CommonModule];\n },\n exports: function () {\n return [NgbNavContent, NgbNav, NgbNavItem, NgbNavLink, NgbNavOutlet, NgbNavPane];\n }\n });\n})();\n\n/**\r\n * A configuration service for the [`NgbPagination`](#/components/pagination/api#NgbPagination) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the paginations used in the application.\r\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}\nNgbPaginationConfig.ɵfac = function NgbPaginationConfig_Factory(t) {\n return new (t || NgbPaginationConfig)();\n};\nNgbPaginationConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbPaginationConfig_Factory() {\n return new NgbPaginationConfig();\n },\n token: NgbPaginationConfig,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [];\n }, null);\n})();\n\n/**\r\n * A directive to match the 'ellipsis' link template\r\n *\r\n * @since 4.1.0\r\n */\nclass NgbPaginationEllipsis {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationEllipsis.ɵfac = function NgbPaginationEllipsis_Factory(t) {\n return new (t || NgbPaginationEllipsis)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef));\n};\nNgbPaginationEllipsis.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbPaginationEllipsis,\n selectors: [[\"ng-template\", \"ngbPaginationEllipsis\", \"\"]]\n});\nNgbPaginationEllipsis.ctorParameters = () => [{\n type: TemplateRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationEllipsis, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationEllipsis]'\n }]\n }], function () {\n return [{\n type: ɵngcc0.TemplateRef\n }];\n }, null);\n})();\n/**\r\n * A directive to match the 'first' link template\r\n *\r\n * @since 4.1.0\r\n */\nclass NgbPaginationFirst {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationFirst.ɵfac = function NgbPaginationFirst_Factory(t) {\n return new (t || NgbPaginationFirst)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef));\n};\nNgbPaginationFirst.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbPaginationFirst,\n selectors: [[\"ng-template\", \"ngbPaginationFirst\", \"\"]]\n});\nNgbPaginationFirst.ctorParameters = () => [{\n type: TemplateRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationFirst, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationFirst]'\n }]\n }], function () {\n return [{\n type: ɵngcc0.TemplateRef\n }];\n }, null);\n})();\n/**\r\n * A directive to match the 'last' link template\r\n *\r\n * @since 4.1.0\r\n */\nclass NgbPaginationLast {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationLast.ɵfac = function NgbPaginationLast_Factory(t) {\n return new (t || NgbPaginationLast)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef));\n};\nNgbPaginationLast.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbPaginationLast,\n selectors: [[\"ng-template\", \"ngbPaginationLast\", \"\"]]\n});\nNgbPaginationLast.ctorParameters = () => [{\n type: TemplateRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationLast, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationLast]'\n }]\n }], function () {\n return [{\n type: ɵngcc0.TemplateRef\n }];\n }, null);\n})();\n/**\r\n * A directive to match the 'next' link template\r\n *\r\n * @since 4.1.0\r\n */\nclass NgbPaginationNext {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationNext.ɵfac = function NgbPaginationNext_Factory(t) {\n return new (t || NgbPaginationNext)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef));\n};\nNgbPaginationNext.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbPaginationNext,\n selectors: [[\"ng-template\", \"ngbPaginationNext\", \"\"]]\n});\nNgbPaginationNext.ctorParameters = () => [{\n type: TemplateRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationNext, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationNext]'\n }]\n }], function () {\n return [{\n type: ɵngcc0.TemplateRef\n }];\n }, null);\n})();\n/**\r\n * A directive to match the page 'number' link template\r\n *\r\n * @since 4.1.0\r\n */\nclass NgbPaginationNumber {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationNumber.ɵfac = function NgbPaginationNumber_Factory(t) {\n return new (t || NgbPaginationNumber)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef));\n};\nNgbPaginationNumber.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbPaginationNumber,\n selectors: [[\"ng-template\", \"ngbPaginationNumber\", \"\"]]\n});\nNgbPaginationNumber.ctorParameters = () => [{\n type: TemplateRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationNumber, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationNumber]'\n }]\n }], function () {\n return [{\n type: ɵngcc0.TemplateRef\n }];\n }, null);\n})();\n/**\r\n * A directive to match the 'previous' link template\r\n *\r\n * @since 4.1.0\r\n */\nclass NgbPaginationPrevious {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationPrevious.ɵfac = function NgbPaginationPrevious_Factory(t) {\n return new (t || NgbPaginationPrevious)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef));\n};\nNgbPaginationPrevious.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbPaginationPrevious,\n selectors: [[\"ng-template\", \"ngbPaginationPrevious\", \"\"]]\n});\nNgbPaginationPrevious.ctorParameters = () => [{\n type: TemplateRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationPrevious, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationPrevious]'\n }]\n }], function () {\n return [{\n type: ɵngcc0.TemplateRef\n }];\n }, null);\n})();\n/**\r\n * A directive to match the 'pages' whole content\r\n *\r\n * @since 9.1.0\r\n */\nclass NgbPaginationPages {\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationPages.ɵfac = function NgbPaginationPages_Factory(t) {\n return new (t || NgbPaginationPages)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef));\n};\nNgbPaginationPages.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbPaginationPages,\n selectors: [[\"ng-template\", \"ngbPaginationPages\", \"\"]]\n});\nNgbPaginationPages.ctorParameters = () => [{\n type: TemplateRef\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationPages, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationPages]'\n }]\n }], function () {\n return [{\n type: ɵngcc0.TemplateRef\n }];\n }, null);\n})();\n/**\r\n * A component that displays page numbers and allows to customize them in several ways.\r\n */\nclass NgbPagination {\n constructor(config) {\n this.pageCount = 0;\n this.pages = [];\n /**\r\n * The current page.\r\n *\r\n * Page numbers start with `1`.\r\n */\n this.page = 1;\n /**\r\n * An event fired when the page is changed. Will fire only if collection size is set and all values are valid.\r\n *\r\n * Event payload is the number of the newly selected page.\r\n *\r\n * Page numbers start with `1`.\r\n */\n this.pageChange = new EventEmitter(true);\n this.disabled = config.disabled;\n this.boundaryLinks = config.boundaryLinks;\n this.directionLinks = config.directionLinks;\n this.ellipses = config.ellipses;\n this.maxSize = config.maxSize;\n this.pageSize = config.pageSize;\n this.rotate = config.rotate;\n this.size = 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 /**\r\n * Appends ellipses and first/last page number to the displayed pages\r\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 /**\r\n * Rotates page numbers based on maxSize items visible.\r\n * Currently selected page stays in the middle:\r\n *\r\n * Ex. for selected page = 6:\r\n * [5,*6*,7] for maxSize = 3\r\n * [4,5,*6*,7] for maxSize = 4\r\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 /**\r\n * Paginates page numbers based on maxSize items per page.\r\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}\nNgbPagination.ɵfac = function NgbPagination_Factory(t) {\n return new (t || NgbPagination)(ɵngcc0.ɵɵdirectiveInject(NgbPaginationConfig));\n};\nNgbPagination.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbPagination,\n selectors: [[\"ngb-pagination\"]],\n contentQueries: function NgbPagination_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationEllipsis, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationFirst, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationLast, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationNext, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationNumber, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationPrevious, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationPages, 5);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplEllipsis = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplFirst = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplLast = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplNext = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplNumber = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplPrevious = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplPages = _t.first);\n }\n },\n hostAttrs: [\"role\", \"navigation\"],\n inputs: {\n page: \"page\",\n disabled: \"disabled\",\n boundaryLinks: \"boundaryLinks\",\n directionLinks: \"directionLinks\",\n ellipses: \"ellipses\",\n maxSize: \"maxSize\",\n pageSize: \"pageSize\",\n rotate: \"rotate\",\n size: \"size\",\n collectionSize: \"collectionSize\"\n },\n outputs: {\n pageChange: \"pageChange\"\n },\n features: [ɵngcc0.ɵɵNgOnChangesFeature],\n decls: 20,\n vars: 12,\n consts: function () {\n let i18n_34;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_first$$FESM2015_NG_BOOTSTRAP_JS__35 = goog.getMsg(\"\\u00AB\\u00AB\");\n i18n_34 = MSG_EXTERNAL_ngb_pagination_first$$FESM2015_NG_BOOTSTRAP_JS__35;\n } else {\n i18n_34 = $localize`:@@ngb.pagination.first␟656506dfd46380956a655f919f1498d018f75ca0␟6867721956102594380:««`;\n }\n let i18n_36;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_previous$$FESM2015_NG_BOOTSTRAP_JS__37 = goog.getMsg(\"\\u00AB\");\n i18n_36 = MSG_EXTERNAL_ngb_pagination_previous$$FESM2015_NG_BOOTSTRAP_JS__37;\n } else {\n i18n_36 = $localize`:@@ngb.pagination.previous␟6e52b6ee77a4848d899dd21b591c6fd499e3aef3␟6479320895410098858:«`;\n }\n let i18n_38;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_next$$FESM2015_NG_BOOTSTRAP_JS__39 = goog.getMsg(\"\\u00BB\");\n i18n_38 = MSG_EXTERNAL_ngb_pagination_next$$FESM2015_NG_BOOTSTRAP_JS__39;\n } else {\n i18n_38 = $localize`:@@ngb.pagination.next␟ba9cbb4ff311464308a3627e4f1c3345d9fe6d7d␟5458177150283468089:»`;\n }\n let i18n_40;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_last$$FESM2015_NG_BOOTSTRAP_JS__41 = goog.getMsg(\"\\u00BB\\u00BB\");\n i18n_40 = MSG_EXTERNAL_ngb_pagination_last$$FESM2015_NG_BOOTSTRAP_JS__41;\n } else {\n i18n_40 = $localize`:@@ngb.pagination.last␟49f27a460bc97e7e00be5b37098bfa79884fc7d9␟5277020320267646988:»»`;\n }\n let i18n_44;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_first_aria$$FESM2015_NG_BOOTSTRAP_JS__45 = goog.getMsg(\"First\");\n i18n_44 = MSG_EXTERNAL_ngb_pagination_first_aria$$FESM2015_NG_BOOTSTRAP_JS__45;\n } else {\n i18n_44 = $localize`:@@ngb.pagination.first-aria␟f2f852318759c6396b5d3d17031d53817d7b38cc␟2241508602425256033:First`;\n }\n let i18n_47;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_previous_aria$$FESM2015_NG_BOOTSTRAP_JS__48 = goog.getMsg(\"Previous\");\n i18n_47 = MSG_EXTERNAL_ngb_pagination_previous_aria$$FESM2015_NG_BOOTSTRAP_JS__48;\n } else {\n i18n_47 = $localize`:@@ngb.pagination.previous-aria␟680d5c75b7fd8d37961083608b9fcdc4167b4c43␟4452427314943113135:Previous`;\n }\n let i18n_50;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_next_aria$$FESM2015_NG_BOOTSTRAP_JS__51 = goog.getMsg(\"Next\");\n i18n_50 = MSG_EXTERNAL_ngb_pagination_next_aria$$FESM2015_NG_BOOTSTRAP_JS__51;\n } else {\n i18n_50 = $localize`:@@ngb.pagination.next-aria␟f732c304c7433e5a83ffcd862c3dce709a0f4982␟3885497195825665706:Next`;\n }\n let i18n_52;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_last_aria$$FESM2015_NG_BOOTSTRAP_JS__53 = goog.getMsg(\"Last\");\n i18n_52 = MSG_EXTERNAL_ngb_pagination_last_aria$$FESM2015_NG_BOOTSTRAP_JS__53;\n } else {\n i18n_52 = $localize`:@@ngb.pagination.last-aria␟5c729788ba138508aca1bec050b610f7bf81db3e␟4882268002141858767:Last`;\n }\n return [[\"first\", \"\"], [\"previous\", \"\"], [\"next\", \"\"], [\"last\", \"\"], [\"ellipsis\", \"\"], [\"defaultNumber\", \"\"], [\"defaultPages\", \"\"], [\"class\", \"page-item\", 3, \"disabled\", 4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"aria-hidden\", \"true\"], i18n_34, i18n_36, i18n_38, i18n_40, [\"class\", \"sr-only\", 4, \"ngIf\"], [1, \"sr-only\"], [\"class\", \"page-item\", 3, \"active\", \"disabled\", 4, \"ngFor\", \"ngForOf\"], [1, \"page-item\"], [\"class\", \"page-link\", \"tabindex\", \"-1\", \"aria-disabled\", \"true\", 4, \"ngIf\"], [\"class\", \"page-link\", \"href\", \"\", 3, \"click\", 4, \"ngIf\"], [\"tabindex\", \"-1\", \"aria-disabled\", \"true\", 1, \"page-link\"], [\"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_44, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_47, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_50, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_52, \"href\", \"\", 1, \"page-link\", 3, \"click\"]];\n },\n template: function NgbPagination_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbPagination_ng_template_0_Template, 2, 0, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbPagination_ng_template_2_Template, 2, 0, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(4, NgbPagination_ng_template_4_Template, 2, 0, \"ng-template\", null, 2, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(6, NgbPagination_ng_template_6_Template, 2, 0, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(8, NgbPagination_ng_template_8_Template, 1, 0, \"ng-template\", null, 4, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(10, NgbPagination_ng_template_10_Template, 2, 2, \"ng-template\", null, 5, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(12, NgbPagination_ng_template_12_Template, 1, 1, \"ng-template\", null, 6, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementStart(14, \"ul\");\n ɵngcc0.ɵɵtemplate(15, NgbPagination_li_15_Template, 3, 9, \"li\", 7);\n ɵngcc0.ɵɵtemplate(16, NgbPagination_li_16_Template, 3, 8, \"li\", 7);\n ɵngcc0.ɵɵtemplate(17, NgbPagination_ng_template_17_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵtemplate(18, NgbPagination_li_18_Template, 3, 9, \"li\", 7);\n ɵngcc0.ɵɵtemplate(19, NgbPagination_li_19_Template, 3, 9, \"li\", 7);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const _r12 = ɵngcc0.ɵɵreference(13);\n ɵngcc0.ɵɵadvance(14);\n ɵngcc0.ɵɵclassMap(\"pagination\" + (ctx.size ? \" pagination-\" + ctx.size : \"\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.boundaryLinks);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.directionLinks);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx.tplPages == null ? null : ctx.tplPages.templateRef) || _r12)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(8, _c54, ctx.page, ctx.pages, ctx.disabled));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.directionLinks);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.boundaryLinks);\n }\n },\n dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n});\nNgbPagination.ctorParameters = () => [{\n type: NgbPaginationConfig\n}];\nNgbPagination.propDecorators = {\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 }],\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPagination, [{\n type: Component,\n args: [{\n selector: 'ngb-pagination',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'role': 'navigation'\n },\n template: `\n <ng-template #first><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.first\">««</span></ng-template>\n <ng-template #previous><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.previous\">«</span></ng-template>\n <ng-template #next><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.next\">»</span></ng-template>\n <ng-template #last><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.last\">»»</span></ng-template>\n <ng-template #ellipsis>...</ng-template>\n <ng-template #defaultNumber let-page let-currentPage=\"currentPage\">\n {{ page }}\n <span *ngIf=\"page === currentPage\" class=\"sr-only\">(current)</span>\n </ng-template>\n <ng-template #defaultPages let-page let-pages=\"pages\" let-disabled=\"disabled\">\n <li *ngFor=\"let pageNumber of pages\" class=\"page-item\" [class.active]=\"pageNumber === page\"\n [class.disabled]=\"isEllipsis(pageNumber) || disabled\" [attr.aria-current]=\"(pageNumber === page ? 'page' : null)\">\n <a *ngIf=\"isEllipsis(pageNumber)\" class=\"page-link\" tabindex=\"-1\" aria-disabled=\"true\">\n <ng-template [ngTemplateOutlet]=\"tplEllipsis?.templateRef || ellipsis\"\n [ngTemplateOutletContext]=\"{disabled: true, currentPage: page}\"></ng-template>\n </a>\n <a *ngIf=\"!isEllipsis(pageNumber)\" class=\"page-link\" href (click)=\"selectPage(pageNumber); $event.preventDefault()\"\n [attr.tabindex]=\"disabled ? '-1' : null\" [attr.aria-disabled]=\"disabled ? 'true' : null\">\n <ng-template [ngTemplateOutlet]=\"tplNumber?.templateRef || defaultNumber\"\n [ngTemplateOutletContext]=\"{disabled: disabled, $implicit: pageNumber, currentPage: page}\"></ng-template>\n </a>\n </li>\n </ng-template>\n <ul [class]=\"'pagination' + (size ? ' pagination-' + size : '')\">\n <li *ngIf=\"boundaryLinks\" class=\"page-item\"\n [class.disabled]=\"previousDisabled()\">\n <a aria-label=\"First\" i18n-aria-label=\"@@ngb.pagination.first-aria\" class=\"page-link\" href\n (click)=\"selectPage(1); $event.preventDefault()\" [attr.tabindex]=\"previousDisabled() ? '-1' : null\"\n [attr.aria-disabled]=\"previousDisabled() ? 'true' : null\">\n <ng-template [ngTemplateOutlet]=\"tplFirst?.templateRef || first\"\n [ngTemplateOutletContext]=\"{disabled: previousDisabled(), currentPage: page}\"></ng-template>\n </a>\n </li>\n\n <li *ngIf=\"directionLinks\" class=\"page-item\"\n [class.disabled]=\"previousDisabled()\">\n <a aria-label=\"Previous\" i18n-aria-label=\"@@ngb.pagination.previous-aria\" class=\"page-link\" href\n (click)=\"selectPage(page-1); $event.preventDefault()\" [attr.tabindex]=\"previousDisabled() ? '-1' : null\"\n [attr.aria-disabled]=\"previousDisabled() ? 'true' : null\">\n <ng-template [ngTemplateOutlet]=\"tplPrevious?.templateRef || previous\"\n [ngTemplateOutletContext]=\"{disabled: previousDisabled()}\"></ng-template>\n </a>\n </li>\n <ng-template\n [ngTemplateOutlet]=\"tplPages?.templateRef || defaultPages\"\n [ngTemplateOutletContext]=\"{ $implicit: page, pages: pages, disabled: disabled }\"\n >\n </ng-template>\n <li *ngIf=\"directionLinks\" class=\"page-item\" [class.disabled]=\"nextDisabled()\">\n <a aria-label=\"Next\" i18n-aria-label=\"@@ngb.pagination.next-aria\" class=\"page-link\" href\n (click)=\"selectPage(page+1); $event.preventDefault()\" [attr.tabindex]=\"nextDisabled() ? '-1' : null\"\n [attr.aria-disabled]=\"nextDisabled() ? 'true' : null\">\n <ng-template [ngTemplateOutlet]=\"tplNext?.templateRef || next\"\n [ngTemplateOutletContext]=\"{disabled: nextDisabled(), currentPage: page}\"></ng-template>\n </a>\n </li>\n\n <li *ngIf=\"boundaryLinks\" class=\"page-item\" [class.disabled]=\"nextDisabled()\">\n <a aria-label=\"Last\" i18n-aria-label=\"@@ngb.pagination.last-aria\" class=\"page-link\" href\n (click)=\"selectPage(pageCount); $event.preventDefault()\" [attr.tabindex]=\"nextDisabled() ? '-1' : null\"\n [attr.aria-disabled]=\"nextDisabled() ? 'true' : null\">\n <ng-template [ngTemplateOutlet]=\"tplLast?.templateRef || last\"\n [ngTemplateOutletContext]=\"{disabled: nextDisabled(), currentPage: page}\"></ng-template>\n </a>\n </li>\n </ul>\n `\n }]\n }], function () {\n return [{\n type: NgbPaginationConfig\n }];\n }, {\n page: [{\n type: Input\n }],\n pageChange: [{\n type: Output\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 maxSize: [{\n type: Input\n }],\n pageSize: [{\n type: Input\n }],\n rotate: [{\n type: Input\n }],\n size: [{\n type: Input\n }],\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 collectionSize: [{\n type: Input\n }]\n });\n})();\nconst DIRECTIVES = [NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious, NgbPaginationPages];\nclass NgbPaginationModule {}\nNgbPaginationModule.ɵfac = function NgbPaginationModule_Factory(t) {\n return new (t || NgbPaginationModule)();\n};\nNgbPaginationModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbPaginationModule\n});\nNgbPaginationModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [CommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationModule, [{\n type: NgModule,\n args: [{\n declarations: DIRECTIVES,\n exports: DIRECTIVES,\n imports: [CommonModule]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbPaginationModule, {\n declarations: function () {\n return [NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious, NgbPaginationPages];\n },\n imports: function () {\n return [CommonModule];\n },\n exports: function () {\n return [NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious, NgbPaginationPages];\n }\n });\n})();\nclass Trigger {\n constructor(open, close) {\n this.open = open;\n this.close = close;\n if (!close) {\n this.close = open;\n }\n }\n isManual() {\n return this.open === 'manual' || this.close === 'manual';\n }\n}\nconst DEFAULT_ALIASES = {\n 'hover': ['mouseenter', 'mouseleave'],\n 'focus': ['focusin', 'focusout']\n};\nfunction parseTriggers(triggers, aliases = DEFAULT_ALIASES) {\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 => {\n let alias = aliases[triggerPair[0]] || triggerPair;\n return new Trigger(alias[0], alias[1]);\n });\n const manualTriggers = parsedTriggers.filter(triggerPair => triggerPair.isManual());\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 parsedTriggers;\n}\nfunction observeTriggers(renderer, nativeElement, triggers, isOpenedFn) {\n return new Observable(subscriber => {\n const listeners = [];\n const openFn = () => subscriber.next(true);\n const closeFn = () => subscriber.next(false);\n const toggleFn = () => subscriber.next(!isOpenedFn());\n triggers.forEach(trigger => {\n if (trigger.open === trigger.close) {\n listeners.push(renderer.listen(nativeElement, trigger.open, toggleFn));\n } else {\n listeners.push(renderer.listen(nativeElement, trigger.open, openFn), renderer.listen(nativeElement, trigger.close, closeFn));\n }\n });\n return () => {\n listeners.forEach(unsubscribeFn => unsubscribeFn());\n };\n });\n}\nconst delayOrNoop = time => time > 0 ? delay(time) : a => a;\nconst ɵ0$5 = delayOrNoop;\nfunction triggerDelay(openDelay, closeDelay, isOpenedFn) {\n return input$ => {\n let pending = null;\n const filteredInput$ = input$.pipe(map(open => ({\n open\n })), filter(event => {\n const currentlyOpen = isOpenedFn();\n if (currentlyOpen !== event.open && (!pending || pending.open === currentlyOpen)) {\n pending = event;\n return true;\n }\n if (pending && pending.open !== event.open) {\n pending = null;\n }\n return false;\n }), share());\n const delayedOpen$ = filteredInput$.pipe(filter(event => event.open), delayOrNoop(openDelay));\n const delayedClose$ = filteredInput$.pipe(filter(event => !event.open), delayOrNoop(closeDelay));\n return merge(delayedOpen$, delayedClose$).pipe(filter(event => {\n if (event === pending) {\n pending = null;\n return event.open !== isOpenedFn();\n }\n return false;\n }), map(event => event.open));\n };\n}\nfunction listenToTriggers(renderer, nativeElement, triggers, isOpenedFn, openFn, closeFn, openDelay = 0, closeDelay = 0) {\n const parsedTriggers = parseTriggers(triggers);\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\n return () => {};\n }\n const subscription = observeTriggers(renderer, nativeElement, parsedTriggers, isOpenedFn).pipe(triggerDelay(openDelay, closeDelay, isOpenedFn)).subscribe(open => open ? openFn() : closeFn());\n return () => subscription.unsubscribe();\n}\n\n/**\r\n * A configuration service for the [`NgbPopover`](#/components/popover/api#NgbPopover) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the popovers used in the application.\r\n */\nclass NgbPopoverConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.autoClose = true;\n this.placement = 'auto';\n this.triggers = 'click';\n this.disablePopover = false;\n this.openDelay = 0;\n this.closeDelay = 0;\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbPopoverConfig.ɵfac = function NgbPopoverConfig_Factory(t) {\n return new (t || NgbPopoverConfig)(ɵngcc0.ɵɵinject(NgbConfig));\n};\nNgbPopoverConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbPopoverConfig_Factory() {\n return new NgbPopoverConfig(ɵɵinject(NgbConfig));\n },\n token: NgbPopoverConfig,\n providedIn: \"root\"\n});\nNgbPopoverConfig.ctorParameters = () => [{\n type: NgbConfig\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPopoverConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: NgbConfig\n }];\n }, null);\n})();\nlet nextId$3 = 0;\nclass NgbPopoverWindow {\n isTitleTemplate() {\n return this.title instanceof TemplateRef;\n }\n}\nNgbPopoverWindow.ɵfac = function NgbPopoverWindow_Factory(t) {\n return new (t || NgbPopoverWindow)();\n};\nNgbPopoverWindow.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbPopoverWindow,\n selectors: [[\"ngb-popover-window\"]],\n hostAttrs: [\"role\", \"tooltip\"],\n hostVars: 5,\n hostBindings: function NgbPopoverWindow_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n ɵngcc0.ɵɵclassMap(\"popover\" + (ctx.popoverClass ? \" \" + ctx.popoverClass : \"\"));\n ɵngcc0.ɵɵ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 ngContentSelectors: _c3,\n decls: 4,\n vars: 1,\n consts: [[1, \"arrow\"], [\"class\", \"popover-header\", 4, \"ngIf\"], [1, \"popover-body\"], [1, \"popover-header\"], [\"simpleTitle\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgbPopoverWindow_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, NgbPopoverWindow_h3_1_Template, 4, 2, \"h3\", 1);\n ɵngcc0.ɵɵelementStart(2, \"div\", 2);\n ɵngcc0.ɵɵprojection(3);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.title);\n }\n },\n dependencies: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet],\n styles: [\"ngb-popover-window.bs-popover-bottom>.arrow,ngb-popover-window.bs-popover-top>.arrow{left:50%;margin-left:-.5rem}ngb-popover-window.bs-popover-bottom-left>.arrow,ngb-popover-window.bs-popover-top-left>.arrow{left:2em}ngb-popover-window.bs-popover-bottom-right>.arrow,ngb-popover-window.bs-popover-top-right>.arrow{left:auto;right:2em}ngb-popover-window.bs-popover-left>.arrow,ngb-popover-window.bs-popover-right>.arrow{margin-top:-.5rem;top:50%}ngb-popover-window.bs-popover-left-top>.arrow,ngb-popover-window.bs-popover-right-top>.arrow{top:.7em}ngb-popover-window.bs-popover-left-bottom>.arrow,ngb-popover-window.bs-popover-right-bottom>.arrow{bottom:.7em;top:auto}\"],\n encapsulation: 2,\n changeDetection: 0\n});\nNgbPopoverWindow.propDecorators = {\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPopoverWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-popover-window',\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 },\n template: `\n <div class=\"arrow\"></div>\n <h3 class=\"popover-header\" *ngIf=\"title\">\n <ng-template #simpleTitle>{{title}}</ng-template>\n <ng-template [ngTemplateOutlet]=\"isTitleTemplate() ? $any(title) : simpleTitle\" [ngTemplateOutletContext]=\"context\"></ng-template>\n </h3>\n <div class=\"popover-body\"><ng-content></ng-content></div>`,\n styles: [\"ngb-popover-window.bs-popover-bottom>.arrow,ngb-popover-window.bs-popover-top>.arrow{left:50%;margin-left:-.5rem}ngb-popover-window.bs-popover-bottom-left>.arrow,ngb-popover-window.bs-popover-top-left>.arrow{left:2em}ngb-popover-window.bs-popover-bottom-right>.arrow,ngb-popover-window.bs-popover-top-right>.arrow{left:auto;right:2em}ngb-popover-window.bs-popover-left>.arrow,ngb-popover-window.bs-popover-right>.arrow{margin-top:-.5rem;top:50%}ngb-popover-window.bs-popover-left-top>.arrow,ngb-popover-window.bs-popover-right-top>.arrow{top:.7em}ngb-popover-window.bs-popover-left-bottom>.arrow,ngb-popover-window.bs-popover-right-bottom>.arrow{bottom:.7em;top:auto}\"]\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/**\r\n * A lightweight and extensible directive for fancy popover creation.\r\n */\nclass NgbPopover {\n constructor(_elementRef, _renderer, injector, componentFactoryResolver, viewContainerRef, config, _ngZone, _document, _changeDetector, applicationRef) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._ngZone = _ngZone;\n this._document = _document;\n this._changeDetector = _changeDetector;\n /**\r\n * An event emitted when the popover opening animation has finished. Contains no payload.\r\n */\n this.shown = new EventEmitter();\n /**\r\n * An event emitted when the popover closing animation has finished. Contains no payload.\r\n *\r\n * At this point popover is not in the DOM anymore.\r\n */\n this.hidden = new EventEmitter();\n this._ngbPopoverWindowId = `ngb-popover-${nextId$3++}`;\n this._windowRef = null;\n this.animation = config.animation;\n this.autoClose = config.autoClose;\n this.placement = config.placement;\n this.triggers = config.triggers;\n this.container = config.container;\n this.disablePopover = config.disablePopover;\n this.popoverClass = config.popoverClass;\n this.openDelay = config.openDelay;\n this.closeDelay = config.closeDelay;\n this._popupService = new PopupService(NgbPopoverWindow, injector, viewContainerRef, _renderer, this._ngZone, componentFactoryResolver, applicationRef);\n this._zoneSubscription = _ngZone.onStable.subscribe(() => {\n if (this._windowRef) {\n positionElements(this._elementRef.nativeElement, this._windowRef.location.nativeElement, this.placement, this.container === 'body', 'bs-popover');\n }\n });\n }\n _isDisabled() {\n if (this.disablePopover) {\n return true;\n }\n if (!this.ngbPopover && !this.popoverTitle) {\n return true;\n }\n return false;\n }\n /**\r\n * Opens the popover.\r\n *\r\n * This is considered to be a \"manual\" triggering.\r\n * The `context` is an optional value to be injected into the popover template when it is created.\r\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.animation);\n this._windowRef = windowRef;\n this._windowRef.instance.animation = this.animation;\n this._windowRef.instance.title = this.popoverTitle;\n this._windowRef.instance.context = context;\n this._windowRef.instance.popoverClass = this.popoverClass;\n this._windowRef.instance.id = this._ngbPopoverWindowId;\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-describedby', this._ngbPopoverWindowId);\n if (this.container === 'body') {\n this._document.querySelector(this.container).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 ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [this._windowRef.location.nativeElement]);\n transition$.subscribe(() => this.shown.emit());\n }\n }\n /**\r\n * Closes the popover.\r\n *\r\n * This is considered to be a \"manual\" triggering of the popover.\r\n */\n close() {\n if (this._windowRef) {\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-describedby');\n this._popupService.close(this.animation).subscribe(() => {\n this._windowRef = null;\n this.hidden.emit();\n this._changeDetector.markForCheck();\n });\n }\n }\n /**\r\n * Toggles the popover.\r\n *\r\n * This is considered to be a \"manual\" triggering of the popover.\r\n */\n toggle() {\n if (this._windowRef) {\n this.close();\n } else {\n this.open();\n }\n }\n /**\r\n * Returns `true`, if the popover is currently shown.\r\n */\n isOpen() {\n return this._windowRef != null;\n }\n ngOnInit() {\n this._unregisterListenersFn = listenToTriggers(this._renderer, this._elementRef.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.instance.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();\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 if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n this._zoneSubscription.unsubscribe();\n }\n}\nNgbPopover.ɵfac = function NgbPopover_Factory(t) {\n return new (t || NgbPopover)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(NgbPopoverConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ApplicationRef));\n};\nNgbPopover.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbPopover,\n selectors: [[\"\", \"ngbPopover\", \"\"]],\n inputs: {\n animation: \"animation\",\n autoClose: \"autoClose\",\n placement: \"placement\",\n triggers: \"triggers\",\n container: \"container\",\n disablePopover: \"disablePopover\",\n popoverClass: \"popoverClass\",\n openDelay: \"openDelay\",\n closeDelay: \"closeDelay\",\n ngbPopover: \"ngbPopover\",\n popoverTitle: \"popoverTitle\"\n },\n outputs: {\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbPopover\"],\n features: [ɵngcc0.ɵɵNgOnChangesFeature]\n});\nNgbPopover.ctorParameters = () => [{\n type: ElementRef\n}, {\n type: Renderer2\n}, {\n type: Injector\n}, {\n type: ComponentFactoryResolver\n}, {\n type: ViewContainerRef\n}, {\n type: NgbPopoverConfig\n}, {\n type: NgZone\n}, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n}, {\n type: ChangeDetectorRef\n}, {\n type: ApplicationRef\n}];\nNgbPopover.propDecorators = {\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 triggers: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n disablePopover: [{\n type: Input\n }],\n popoverClass: [{\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPopover, [{\n type: Directive,\n args: [{\n selector: '[ngbPopover]',\n exportAs: 'ngbPopover'\n }]\n }], function () {\n return [{\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc0.Renderer2\n }, {\n type: ɵngcc0.Injector\n }, {\n type: ɵngcc0.ComponentFactoryResolver\n }, {\n type: ɵngcc0.ViewContainerRef\n }, {\n type: NgbPopoverConfig\n }, {\n type: ɵngcc0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }, {\n type: ɵngcc0.ApplicationRef\n }];\n }, {\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n animation: [{\n type: Input\n }],\n autoClose: [{\n type: Input\n }],\n placement: [{\n type: Input\n }],\n triggers: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n disablePopover: [{\n type: Input\n }],\n popoverClass: [{\n type: Input\n }],\n openDelay: [{\n type: Input\n }],\n closeDelay: [{\n type: Input\n }],\n ngbPopover: [{\n type: Input\n }],\n popoverTitle: [{\n type: Input\n }]\n });\n})();\nclass NgbPopoverModule {}\nNgbPopoverModule.ɵfac = function NgbPopoverModule_Factory(t) {\n return new (t || NgbPopoverModule)();\n};\nNgbPopoverModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbPopoverModule\n});\nNgbPopoverModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [CommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPopoverModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbPopover, NgbPopoverWindow],\n exports: [NgbPopover],\n imports: [CommonModule],\n entryComponents: [NgbPopoverWindow]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbPopoverModule, {\n declarations: function () {\n return [NgbPopover, NgbPopoverWindow];\n },\n imports: function () {\n return [CommonModule];\n },\n exports: function () {\n return [NgbPopover];\n }\n });\n})();\n\n/**\r\n * A configuration service for the [`NgbProgressbar`](#/components/progressbar/api#NgbProgressbar) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the progress bars used in the application.\r\n */\nclass NgbProgressbarConfig {\n constructor() {\n this.max = 100;\n this.animated = false;\n this.striped = false;\n this.showValue = false;\n }\n}\nNgbProgressbarConfig.ɵfac = function NgbProgressbarConfig_Factory(t) {\n return new (t || NgbProgressbarConfig)();\n};\nNgbProgressbarConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbProgressbarConfig_Factory() {\n return new NgbProgressbarConfig();\n },\n token: NgbProgressbarConfig,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbProgressbarConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [];\n }, null);\n})();\n\n/**\r\n * A directive that provides feedback on the progress of a workflow or an action.\r\n */\nclass NgbProgressbar {\n constructor(config) {\n /**\r\n * The current value for the progress bar.\r\n *\r\n * Should be in the `[0, max]` range.\r\n */\n this.value = 0;\n this.max = config.max;\n this.animated = config.animated;\n this.striped = config.striped;\n this.textType = config.textType;\n this.type = config.type;\n this.showValue = config.showValue;\n this.height = config.height;\n }\n /**\r\n * The maximal value to be displayed in the progress bar.\r\n *\r\n * Should be a positive number. Will default to 100 otherwise.\r\n */\n set max(max) {\n this._max = !isNumber(max) || max <= 0 ? 100 : max;\n }\n get max() {\n return this._max;\n }\n getValue() {\n return getValueInRange(this.value, this.max);\n }\n getPercentValue() {\n return 100 * this.getValue() / this.max;\n }\n}\nNgbProgressbar.ɵfac = function NgbProgressbar_Factory(t) {\n return new (t || NgbProgressbar)(ɵngcc0.ɵɵdirectiveInject(NgbProgressbarConfig));\n};\nNgbProgressbar.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbProgressbar,\n selectors: [[\"ngb-progressbar\"]],\n hostAttrs: [1, \"progress\"],\n hostVars: 2,\n hostBindings: function NgbProgressbar_HostBindings(rf, ctx) {\n if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"height\", ctx.height);\n }\n },\n inputs: {\n value: \"value\",\n max: \"max\",\n animated: \"animated\",\n striped: \"striped\",\n textType: \"textType\",\n type: \"type\",\n showValue: \"showValue\",\n height: \"height\"\n },\n ngContentSelectors: _c3,\n decls: 3,\n vars: 11,\n consts: function () {\n let i18n_55;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_progressbar_value$$FESM2015_NG_BOOTSTRAP_JS__56 = goog.getMsg(\"{$interpolation}\", {\n \"interpolation\": \"\\uFFFD0\\uFFFD\"\n }, {\n original_code: {\n \"interpolation\": \"{{getValue() / max | percent}}\"\n }\n });\n i18n_55 = MSG_EXTERNAL_ngb_progressbar_value$$FESM2015_NG_BOOTSTRAP_JS__56;\n } else {\n i18n_55 = $localize`:@@ngb.progressbar.value␟f8e9a947b9db4252c0e9905765338712f2fd032f␟3720830768741091151:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n }\n return [[\"role\", \"progressbar\", \"aria-valuemin\", \"0\"], [4, \"ngIf\"], i18n_55];\n },\n template: function NgbProgressbar_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, NgbProgressbar_span_1_Template, 3, 3, \"span\", 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n ɵngcc0.ɵɵclassMapInterpolate4(\"progress-bar\", ctx.type ? \" bg-\" + ctx.type : \"\", \"\", ctx.textType ? \" text-\" + ctx.textType : \"\", \"\\n \", ctx.animated ? \" progress-bar-animated\" : \"\", \"\", ctx.striped ? \" progress-bar-striped\" : \"\", \"\");\n ɵngcc0.ɵɵstyleProp(\"width\", ctx.getPercentValue(), \"%\");\n ɵngcc0.ɵɵattribute(\"aria-valuenow\", ctx.getValue())(\"aria-valuemax\", ctx.max);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showValue);\n }\n },\n dependencies: [ɵngcc1.NgIf, ɵngcc1.PercentPipe],\n encapsulation: 2,\n changeDetection: 0\n});\nNgbProgressbar.ctorParameters = () => [{\n type: NgbProgressbarConfig\n}];\nNgbProgressbar.propDecorators = {\n max: [{\n type: Input\n }],\n animated: [{\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 }],\n height: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['style.height']\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbProgressbar, [{\n type: Component,\n args: [{\n selector: 'ngb-progressbar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'progress'\n },\n template: `\n <div class=\"progress-bar{{type ? ' bg-' + type : ''}}{{textType ? ' text-' + textType : ''}}\n {{animated ? ' progress-bar-animated' : ''}}{{striped ? ' progress-bar-striped' : ''}}\"\n role=\"progressbar\" [style.width.%]=\"getPercentValue()\"\n [attr.aria-valuenow]=\"getValue()\" aria-valuemin=\"0\" [attr.aria-valuemax]=\"max\">\n <span *ngIf=\"showValue\" i18n=\"@@ngb.progressbar.value\">{{getValue() / max | percent}}</span><ng-content></ng-content>\n </div>\n `\n }]\n }], function () {\n return [{\n type: NgbProgressbarConfig\n }];\n }, {\n value: [{\n type: Input\n }],\n max: [{\n type: Input\n }],\n animated: [{\n type: Input\n }],\n striped: [{\n type: Input\n }],\n textType: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n showValue: [{\n type: Input\n }],\n height: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['style.height']\n }]\n });\n})();\nclass NgbProgressbarModule {}\nNgbProgressbarModule.ɵfac = function NgbProgressbarModule_Factory(t) {\n return new (t || NgbProgressbarModule)();\n};\nNgbProgressbarModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbProgressbarModule\n});\nNgbProgressbarModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [CommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbProgressbarModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbProgressbar],\n exports: [NgbProgressbar],\n imports: [CommonModule]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbProgressbarModule, {\n declarations: function () {\n return [NgbProgressbar];\n },\n imports: function () {\n return [CommonModule];\n },\n exports: function () {\n return [NgbProgressbar];\n }\n });\n})();\n\n/**\r\n * A configuration service for the [`NgbRating`](#/components/rating/api#NgbRating) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the ratings used in the application.\r\n */\nclass NgbRatingConfig {\n constructor() {\n this.max = 10;\n this.readonly = false;\n this.resettable = false;\n }\n}\nNgbRatingConfig.ɵfac = function NgbRatingConfig_Factory(t) {\n return new (t || NgbRatingConfig)();\n};\nNgbRatingConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbRatingConfig_Factory() {\n return new NgbRatingConfig();\n },\n token: NgbRatingConfig,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRatingConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [];\n }, null);\n})();\n\n/**\r\n * A directive that helps visualising and interacting with a star rating bar.\r\n */\nclass NgbRating {\n constructor(config, _changeDetectorRef) {\n this._changeDetectorRef = _changeDetectorRef;\n this.contexts = [];\n this.disabled = false;\n /**\r\n * An event emitted when the user is hovering over a given rating.\r\n *\r\n * Event payload equals to the rating being hovered over.\r\n */\n this.hover = new EventEmitter();\n /**\r\n * An event emitted when the user stops hovering over a given rating.\r\n *\r\n * Event payload equals to the rating of the last item being hovered over.\r\n */\n this.leave = new EventEmitter();\n /**\r\n * An event emitted when the user selects a new rating.\r\n *\r\n * Event payload equals to the newly selected rating.\r\n */\n this.rateChange = new EventEmitter(true);\n this.onChange = _ => {};\n this.onTouched = () => {};\n this.max = config.max;\n this.readonly = config.readonly;\n }\n ariaValueText() {\n return `${this.nextRate} out of ${this.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 // tslint:disable-next-line: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 }\n ngOnInit() {\n this.contexts = Array.from({\n length: this.max\n }, (v, k) => ({\n fill: 0,\n index: k\n }));\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}\nNgbRating.ɵfac = function NgbRating_Factory(t) {\n return new (t || NgbRating)(ɵngcc0.ɵɵdirectiveInject(NgbRatingConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef));\n};\nNgbRating.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbRating,\n selectors: [[\"ngb-rating\"]],\n contentQueries: function NgbRating_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.starTemplateFromContent = _t.first);\n }\n },\n hostAttrs: [\"role\", \"slider\", \"aria-valuemin\", \"0\", 1, \"d-inline-flex\"],\n hostVars: 5,\n hostBindings: function NgbRating_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵ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 ɵngcc0.ɵɵhostProperty(\"tabindex\", ctx.disabled ? -1 : 0);\n ɵngcc0.ɵɵattribute(\"aria-valuemax\", ctx.max)(\"aria-valuenow\", ctx.nextRate)(\"aria-valuetext\", ctx.ariaValueText())(\"aria-disabled\", ctx.readonly ? true : null);\n }\n },\n inputs: {\n max: \"max\",\n readonly: \"readonly\",\n rate: \"rate\",\n resettable: \"resettable\",\n starTemplate: \"starTemplate\"\n },\n outputs: {\n hover: \"hover\",\n leave: \"leave\",\n rateChange: \"rateChange\"\n },\n features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbRating),\n multi: true\n }]), ɵngcc0.ɵɵNgOnChangesFeature],\n decls: 3,\n vars: 1,\n consts: [[\"t\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [1, \"sr-only\"], [3, \"mouseenter\", \"click\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgbRating_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbRating_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbRating_ng_template_2_Template, 4, 5, \"ng-template\", 1);\n }\n if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.contexts);\n }\n },\n dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n});\nNgbRating.ctorParameters = () => [{\n type: NgbRatingConfig\n}, {\n type: ChangeDetectorRef\n}];\nNgbRating.propDecorators = {\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 hover: [{\n type: Output\n }],\n leave: [{\n type: Output\n }],\n rateChange: [{\n type: Output\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRating, [{\n type: Component,\n args: [{\n selector: 'ngb-rating',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'd-inline-flex',\n '[tabindex]': 'disabled ? -1 : 0',\n 'role': 'slider',\n 'aria-valuemin': '0',\n '[attr.aria-valuemax]': 'max',\n '[attr.aria-valuenow]': 'nextRate',\n '[attr.aria-valuetext]': 'ariaValueText()',\n '[attr.aria-disabled]': 'readonly ? true : null',\n '(blur)': 'handleBlur()',\n '(keydown)': 'handleKeyDown($event)',\n '(mouseleave)': 'reset()'\n },\n template: `\n <ng-template #t let-fill=\"fill\">{{ fill === 100 ? '★' : '☆' }}</ng-template>\n <ng-template ngFor [ngForOf]=\"contexts\" let-index=\"index\">\n <span class=\"sr-only\">({{ index < nextRate ? '*' : ' ' }})</span>\n <span (mouseenter)=\"enter(index + 1)\" (click)=\"handleClick(index + 1)\" [style.cursor]=\"isInteractive() ? 'pointer' : 'default'\">\n <ng-template [ngTemplateOutlet]=\"starTemplate || starTemplateFromContent || t\" [ngTemplateOutletContext]=\"contexts[index]\">\n </ng-template>\n </span>\n </ng-template>\n `,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbRating),\n multi: true\n }]\n }]\n }], function () {\n return [{\n type: NgbRatingConfig\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }];\n }, {\n hover: [{\n type: Output\n }],\n leave: [{\n type: Output\n }],\n rateChange: [{\n type: Output\n }],\n max: [{\n type: Input\n }],\n readonly: [{\n type: Input\n }],\n rate: [{\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 });\n})();\nclass NgbRatingModule {}\nNgbRatingModule.ɵfac = function NgbRatingModule_Factory(t) {\n return new (t || NgbRatingModule)();\n};\nNgbRatingModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbRatingModule\n});\nNgbRatingModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [CommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRatingModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbRating],\n exports: [NgbRating],\n imports: [CommonModule]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbRatingModule, {\n declarations: function () {\n return [NgbRating];\n },\n imports: function () {\n return [CommonModule];\n },\n exports: function () {\n return [NgbRating];\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 } 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/**\r\n * A configuration service for the [`NgbTimepicker`](#/components/timepicker/api#NgbTimepicker) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the timepickers used in the application.\r\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}\nNgbTimepickerConfig.ɵfac = function NgbTimepickerConfig_Factory(t) {\n return new (t || NgbTimepickerConfig)();\n};\nNgbTimepickerConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbTimepickerConfig_Factory() {\n return new NgbTimepickerConfig();\n },\n token: NgbTimepickerConfig,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimepickerConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [];\n }, null);\n})();\nfunction NGB_DATEPICKER_TIME_ADAPTER_FACTORY() {\n return new NgbTimeStructAdapter();\n}\n/**\r\n * An abstract service that does the conversion between the internal timepicker `NgbTimeStruct` model and\r\n * any provided user time model `T`, ex. a string, a native date, etc.\r\n *\r\n * The adapter is used **only** for conversion when binding timepicker to a form control,\r\n * ex. `[(ngModel)]=\"userTimeModel\"`. Here `userTimeModel` can be of any type.\r\n *\r\n * The default timepicker implementation assumes we use `NgbTimeStruct` as a user model.\r\n *\r\n * See the [custom time adapter demo](#/components/timepicker/examples#adapter) for an example.\r\n *\r\n * @since 2.2.0\r\n */\nclass NgbTimeAdapter {}\nNgbTimeAdapter.ɵfac = function NgbTimeAdapter_Factory(t) {\n return new (t || NgbTimeAdapter)();\n};\nNgbTimeAdapter.ɵprov = ɵɵdefineInjectable({\n factory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY,\n token: NgbTimeAdapter,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵ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 /**\r\n * Converts a NgbTimeStruct value into NgbTimeStruct value\r\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 /**\r\n * Converts a NgbTimeStruct value into NgbTimeStruct value\r\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}\nNgbTimeStructAdapter.ɵfac = /*@__PURE__*/function () {\n let ɵNgbTimeStructAdapter_BaseFactory;\n return function NgbTimeStructAdapter_Factory(t) {\n return (ɵNgbTimeStructAdapter_BaseFactory || (ɵNgbTimeStructAdapter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbTimeStructAdapter)))(t || NgbTimeStructAdapter);\n };\n}();\nNgbTimeStructAdapter.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbTimeStructAdapter,\n factory: NgbTimeStructAdapter.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimeStructAdapter, [{\n type: Injectable\n }], null, null);\n})();\nfunction NGB_TIMEPICKER_I18N_FACTORY(locale) {\n return new NgbTimepickerI18nDefault(locale);\n}\n/**\r\n * Type of the service supplying day periods (for example, 'AM' and 'PM') to NgbTimepicker component.\r\n * The default implementation of this service honors the Angular locale, and uses the registered locale data,\r\n * as explained in the Angular i18n guide.\r\n */\nclass NgbTimepickerI18n {}\nNgbTimepickerI18n.ɵfac = function NgbTimepickerI18n_Factory(t) {\n return new (t || NgbTimepickerI18n)();\n};\nNgbTimepickerI18n.ɵprov = ɵɵdefineInjectable({\n factory: function NgbTimepickerI18n_Factory() {\n return NGB_TIMEPICKER_I18N_FACTORY(ɵɵinject(LOCALE_ID));\n },\n token: NgbTimepickerI18n,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimepickerI18n, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: NGB_TIMEPICKER_I18N_FACTORY,\n deps: [LOCALE_ID]\n }]\n }], null, null);\n})();\nclass NgbTimepickerI18nDefault extends NgbTimepickerI18n {\n constructor(locale) {\n super();\n this._periods = getLocaleDayPeriods(locale, FormStyle.Standalone, TranslationWidth.Narrow);\n }\n getMorningPeriod() {\n return this._periods[0];\n }\n getAfternoonPeriod() {\n return this._periods[1];\n }\n}\nNgbTimepickerI18nDefault.ɵfac = function NgbTimepickerI18nDefault_Factory(t) {\n return new (t || NgbTimepickerI18nDefault)(ɵngcc0.ɵɵinject(LOCALE_ID));\n};\nNgbTimepickerI18nDefault.ɵprov = /*@__PURE__*/ɵngcc0.ɵɵdefineInjectable({\n token: NgbTimepickerI18nDefault,\n factory: NgbTimepickerI18nDefault.ɵfac\n});\nNgbTimepickerI18nDefault.ctorParameters = () => [{\n type: String,\n decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }]\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimepickerI18nDefault, [{\n type: Injectable\n }], function () {\n return [{\n type: String,\n decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }]\n }];\n }, null);\n})();\nconst FILTER_REGEX = /[^0-9]/g;\n/**\r\n * A directive that helps with wth picking hours, minutes and seconds.\r\n */\nclass NgbTimepicker {\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 /**\r\n * The number of hours to add/subtract when clicking hour spinners.\r\n */\n set hourStep(step) {\n this._hourStep = isInteger(step) ? step : this._config.hourStep;\n }\n get hourStep() {\n return this._hourStep;\n }\n /**\r\n * The number of minutes to add/subtract when clicking minute spinners.\r\n */\n set minuteStep(step) {\n this._minuteStep = isInteger(step) ? step : this._config.minuteStep;\n }\n get minuteStep() {\n return this._minuteStep;\n }\n /**\r\n * The number of seconds to add/subtract when clicking second spinners.\r\n */\n set secondStep(step) {\n this._secondStep = isInteger(step) ? step : this._config.secondStep;\n }\n get secondStep() {\n return this._secondStep;\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 changeHour(step) {\n this.model.changeHour(step);\n this.propagateModelChange();\n }\n changeMinute(step) {\n this.model.changeMinute(step);\n this.propagateModelChange();\n }\n changeSecond(step) {\n this.model.changeSecond(step);\n this.propagateModelChange();\n }\n updateHour(newVal) {\n const isPM = this.model.hour >= 12;\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 updateMinute(newVal) {\n this.model.updateMinute(toInteger(newVal));\n this.propagateModelChange();\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}\nNgbTimepicker.ɵfac = function NgbTimepicker_Factory(t) {\n return new (t || NgbTimepicker)(ɵngcc0.ɵɵdirectiveInject(NgbTimepickerConfig), ɵngcc0.ɵɵdirectiveInject(NgbTimeAdapter), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(NgbTimepickerI18n));\n};\nNgbTimepicker.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵ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 features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbTimepicker),\n multi: true\n }]), ɵngcc0.ɵɵNgOnChangesFeature],\n decls: 16,\n vars: 25,\n consts: function () {\n let i18n_57;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_HH$$FESM2015_NG_BOOTSTRAP_JS_58 = goog.getMsg(\"HH\");\n i18n_57 = MSG_EXTERNAL_ngb_timepicker_HH$$FESM2015_NG_BOOTSTRAP_JS_58;\n } else {\n i18n_57 = $localize`:@@ngb.timepicker.HH␟ce676ab1d6d98f85c836381cf100a4a91ef95a1f␟4043638465245303811:HH`;\n }\n let i18n_59;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_hours$$FESM2015_NG_BOOTSTRAP_JS_60 = goog.getMsg(\"Hours\");\n i18n_59 = MSG_EXTERNAL_ngb_timepicker_hours$$FESM2015_NG_BOOTSTRAP_JS_60;\n } else {\n i18n_59 = $localize`:@@ngb.timepicker.hours␟3bbce5fef7e1151da052a4e529453edb340e3912␟8070396816726827304:Hours`;\n }\n let i18n_61;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_MM$$FESM2015_NG_BOOTSTRAP_JS_62 = goog.getMsg(\"MM\");\n i18n_61 = MSG_EXTERNAL_ngb_timepicker_MM$$FESM2015_NG_BOOTSTRAP_JS_62;\n } else {\n i18n_61 = $localize`:@@ngb.timepicker.MM␟72c8edf6a50068a05bde70991e36b1e881f4ca54␟1647282246509919852:MM`;\n }\n let i18n_63;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_minutes$$FESM2015_NG_BOOTSTRAP_JS_64 = goog.getMsg(\"Minutes\");\n i18n_63 = MSG_EXTERNAL_ngb_timepicker_minutes$$FESM2015_NG_BOOTSTRAP_JS_64;\n } else {\n i18n_63 = $localize`:@@ngb.timepicker.minutes␟41e62daa962947c0d23ded0981975d1bddf0bf38␟5531237363767747080:Minutes`;\n }\n let i18n_65;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_increment_hours$$FESM2015_NG_BOOTSTRAP_JS__66 = goog.getMsg(\"Increment hours\");\n i18n_65 = MSG_EXTERNAL_ngb_timepicker_increment_hours$$FESM2015_NG_BOOTSTRAP_JS__66;\n } else {\n i18n_65 = $localize`:@@ngb.timepicker.increment-hours␟cb74bc1d625a6c1742f0d7d47306cf495780c218␟5939278348542933629:Increment hours`;\n }\n let i18n_67;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_decrement_hours$$FESM2015_NG_BOOTSTRAP_JS__68 = goog.getMsg(\"Decrement hours\");\n i18n_67 = MSG_EXTERNAL_ngb_timepicker_decrement_hours$$FESM2015_NG_BOOTSTRAP_JS__68;\n } else {\n i18n_67 = $localize`:@@ngb.timepicker.decrement-hours␟147c7a19429da7d999e247d22e33fee370b1691b␟3651829882940481818:Decrement hours`;\n }\n let i18n_69;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_increment_minutes$$FESM2015_NG_BOOTSTRAP_JS__70 = goog.getMsg(\"Increment minutes\");\n i18n_69 = MSG_EXTERNAL_ngb_timepicker_increment_minutes$$FESM2015_NG_BOOTSTRAP_JS__70;\n } else {\n i18n_69 = $localize`:@@ngb.timepicker.increment-minutes␟f5a4a3bc05e053f6732475d0e74875ec01c3a348␟180147720391025024:Increment minutes`;\n }\n let i18n_71;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_decrement_minutes$$FESM2015_NG_BOOTSTRAP_JS__72 = goog.getMsg(\"Decrement minutes\");\n i18n_71 = MSG_EXTERNAL_ngb_timepicker_decrement_minutes$$FESM2015_NG_BOOTSTRAP_JS__72;\n } else {\n i18n_71 = $localize`:@@ngb.timepicker.decrement-minutes␟c1a6899e529c096da5b660385d4e77fe1f7ad271␟7447789825403243588:Decrement minutes`;\n }\n let i18n_73;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_SS$$FESM2015_NG_BOOTSTRAP_JS__74 = goog.getMsg(\"SS\");\n i18n_73 = MSG_EXTERNAL_ngb_timepicker_SS$$FESM2015_NG_BOOTSTRAP_JS__74;\n } else {\n i18n_73 = $localize`:@@ngb.timepicker.SS␟ebe38d36a40a2383c5fefa9b4608ffbda08bd4a3␟3628127143071124194:SS`;\n }\n let i18n_75;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_seconds$$FESM2015_NG_BOOTSTRAP_JS__76 = goog.getMsg(\"Seconds\");\n i18n_75 = MSG_EXTERNAL_ngb_timepicker_seconds$$FESM2015_NG_BOOTSTRAP_JS__76;\n } else {\n i18n_75 = $localize`:@@ngb.timepicker.seconds␟4f2ed9e71a7c981db3e50ae2fedb28aff2ec4e6c␟8874012390997067175:Seconds`;\n }\n let i18n_77;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_increment_seconds$$FESM2015_NG_BOOTSTRAP_JS___78 = goog.getMsg(\"Increment seconds\");\n i18n_77 = MSG_EXTERNAL_ngb_timepicker_increment_seconds$$FESM2015_NG_BOOTSTRAP_JS___78;\n } else {\n i18n_77 = $localize`:@@ngb.timepicker.increment-seconds␟912322ecee7d659d04dcf494a70e22e49d334b26␟5364772110539092174:Increment seconds`;\n }\n let i18n_79;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_decrement_seconds$$FESM2015_NG_BOOTSTRAP_JS___80 = goog.getMsg(\"Decrement seconds\");\n i18n_79 = MSG_EXTERNAL_ngb_timepicker_decrement_seconds$$FESM2015_NG_BOOTSTRAP_JS___80;\n } else {\n i18n_79 = $localize`:@@ngb.timepicker.decrement-seconds␟5db47ac104294243a70eb9124fbea9d0004ddf69␟753633511487974857:Decrement seconds`;\n }\n let i18n_81;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_PM$$FESM2015_NG_BOOTSTRAP_JS___82 = goog.getMsg(\"{$interpolation}\", {\n \"interpolation\": \"\\uFFFD0\\uFFFD\"\n }, {\n original_code: {\n \"interpolation\": \"{{ i18n.getAfternoonPeriod() }}\"\n }\n });\n i18n_81 = MSG_EXTERNAL_ngb_timepicker_PM$$FESM2015_NG_BOOTSTRAP_JS___82;\n } else {\n i18n_81 = $localize`:@@ngb.timepicker.PM␟8d6e691e10306c1b34c6b26805151aaea320ef7f␟3564199131264287502:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n }\n let i18n_83;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_AM$$FESM2015_NG_BOOTSTRAP_JS___84 = goog.getMsg(\"{$interpolation}\", {\n \"interpolation\": \"\\uFFFD0\\uFFFD\"\n }, {\n original_code: {\n \"interpolation\": \"{{ i18n.getMorningPeriod() }}\"\n }\n });\n i18n_83 = MSG_EXTERNAL_ngb_timepicker_AM$$FESM2015_NG_BOOTSTRAP_JS___84;\n } else {\n i18n_83 = $localize`:@@ngb.timepicker.AM␟69a1f176a93998876952adac57c3bc3863b6105e␟4592818992509942761:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n }\n return [[3, \"disabled\"], [1, \"ngb-tp\"], [1, \"ngb-tp-input-container\", \"ngb-tp-hour\"], [\"tabindex\", \"-1\", \"type\", \"button\", \"class\", \"btn btn-link\", 3, \"btn-sm\", \"btn-lg\", \"disabled\", \"click\", 4, \"ngIf\"], [\"type\", \"text\", \"maxlength\", \"2\", \"inputmode\", \"numeric\", \"placeholder\", i18n_57, \"aria-label\", i18n_59, 1, \"ngb-tp-input\", \"form-control\", 3, \"value\", \"readOnly\", \"disabled\", \"change\", \"blur\", \"input\", \"keydown.ArrowUp\", \"keydown.ArrowDown\"], [1, \"ngb-tp-spacer\"], [1, \"ngb-tp-input-container\", \"ngb-tp-minute\"], [\"type\", \"text\", \"maxlength\", \"2\", \"inputmode\", \"numeric\", \"placeholder\", i18n_61, \"aria-label\", i18n_63, 1, \"ngb-tp-input\", \"form-control\", 3, \"value\", \"readOnly\", \"disabled\", \"change\", \"blur\", \"input\", \"keydown.ArrowUp\", \"keydown.ArrowDown\"], [\"class\", \"ngb-tp-spacer\", 4, \"ngIf\"], [\"class\", \"ngb-tp-input-container ngb-tp-second\", 4, \"ngIf\"], [\"class\", \"ngb-tp-meridian\", 4, \"ngIf\"], [\"tabindex\", \"-1\", \"type\", \"button\", 1, \"btn\", \"btn-link\", 3, \"disabled\", \"click\"], [1, \"chevron\", \"ngb-tp-chevron\"], [1, \"sr-only\"], i18n_65, [1, \"chevron\", \"ngb-tp-chevron\", \"bottom\"], i18n_67, i18n_69, i18n_71, [1, \"ngb-tp-input-container\", \"ngb-tp-second\"], [\"type\", \"text\", \"maxlength\", \"2\", \"inputmode\", \"numeric\", \"placeholder\", i18n_73, \"aria-label\", i18n_75, 1, \"ngb-tp-input\", \"form-control\", 3, \"value\", \"readOnly\", \"disabled\", \"change\", \"blur\", \"input\", \"keydown.ArrowUp\", \"keydown.ArrowDown\"], i18n_77, i18n_79, [1, \"ngb-tp-meridian\"], [\"type\", \"button\", 1, \"btn\", \"btn-outline-primary\", 3, \"disabled\", \"click\"], [4, \"ngIf\", \"ngIfElse\"], [\"am\", \"\"], i18n_81, i18n_83];\n },\n template: function NgbTimepicker_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"fieldset\", 0)(1, \"div\", 1)(2, \"div\", 2);\n ɵngcc0.ɵɵtemplate(3, NgbTimepicker_button_3_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementStart(4, \"input\", 4);\n ɵngcc0.ɵɵ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 ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(5, NgbTimepicker_button_5_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(6, \"div\", 5);\n ɵngcc0.ɵɵtext(7, \":\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(8, \"div\", 6);\n ɵngcc0.ɵɵtemplate(9, NgbTimepicker_button_9_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementStart(10, \"input\", 7);\n ɵngcc0.ɵɵ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 ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(11, NgbTimepicker_button_11_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(12, NgbTimepicker_div_12_Template, 2, 0, \"div\", 8);\n ɵngcc0.ɵɵtemplate(13, NgbTimepicker_div_13_Template, 4, 9, \"div\", 9);\n ɵngcc0.ɵɵtemplate(14, NgbTimepicker_div_14_Template, 1, 0, \"div\", 8);\n ɵngcc0.ɵɵtemplate(15, NgbTimepicker_div_15_Template, 5, 9, \"div\", 10);\n ɵngcc0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"form-control-sm\", ctx.isSmallSize)(\"form-control-lg\", ctx.isLargeSize);\n ɵngcc0.ɵɵproperty(\"value\", ctx.formatHour(ctx.model == null ? null : ctx.model.hour))(\"readOnly\", ctx.readonlyInputs)(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"form-control-sm\", ctx.isSmallSize)(\"form-control-lg\", ctx.isLargeSize);\n ɵngcc0.ɵɵproperty(\"value\", ctx.formatMinSec(ctx.model == null ? null : ctx.model.minute))(\"readOnly\", ctx.readonlyInputs)(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.seconds);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.seconds);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.meridian);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.meridian);\n }\n },\n dependencies: [ɵngcc1.NgIf],\n styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{align-items:center;display:flex}.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-meridian,.ngb-tp-minute,.ngb-tp-second{align-items:center;display:flex;flex-direction:column;justify-content:space-around}.ngb-tp-spacer{text-align:center;width:1em}\"],\n encapsulation: 2\n});\nNgbTimepicker.ctorParameters = () => [{\n type: NgbTimepickerConfig\n}, {\n type: NgbTimeAdapter\n}, {\n type: ChangeDetectorRef\n}, {\n type: NgbTimepickerI18n\n}];\nNgbTimepicker.propDecorators = {\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimepicker, [{\n type: Component,\n args: [{\n selector: 'ngb-timepicker',\n encapsulation: ViewEncapsulation.None,\n template: `\n <fieldset [disabled]=\"disabled\" [class.disabled]=\"disabled\">\n <div class=\"ngb-tp\">\n <div class=\"ngb-tp-input-container ngb-tp-hour\">\n <button *ngIf=\"spinners\" tabindex=\"-1\" type=\"button\" (click)=\"changeHour(hourStep)\"\n class=\"btn btn-link\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\" [class.disabled]=\"disabled\"\n [disabled]=\"disabled\">\n <span class=\"chevron ngb-tp-chevron\"></span>\n <span class=\"sr-only\" i18n=\"@@ngb.timepicker.increment-hours\">Increment hours</span>\n </button>\n <input type=\"text\" class=\"ngb-tp-input form-control\" [class.form-control-sm]=\"isSmallSize\"\n [class.form-control-lg]=\"isLargeSize\"\n maxlength=\"2\" inputmode=\"numeric\" placeholder=\"HH\" i18n-placeholder=\"@@ngb.timepicker.HH\"\n [value]=\"formatHour(model?.hour)\" (change)=\"updateHour($any($event).target.value)\"\n [readOnly]=\"readonlyInputs\" [disabled]=\"disabled\" aria-label=\"Hours\" i18n-aria-label=\"@@ngb.timepicker.hours\"\n (blur)=\"handleBlur()\"\n (input)=\"formatInput($any($event).target)\"\n (keydown.ArrowUp)=\"changeHour(hourStep); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeHour(-hourStep); $event.preventDefault()\">\n <button *ngIf=\"spinners\" tabindex=\"-1\" type=\"button\" (click)=\"changeHour(-hourStep)\"\n class=\"btn btn-link\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\" [class.disabled]=\"disabled\"\n [disabled]=\"disabled\">\n <span class=\"chevron ngb-tp-chevron bottom\"></span>\n <span class=\"sr-only\" i18n=\"@@ngb.timepicker.decrement-hours\">Decrement hours</span>\n </button>\n </div>\n <div class=\"ngb-tp-spacer\">:</div>\n <div class=\"ngb-tp-input-container ngb-tp-minute\">\n <button *ngIf=\"spinners\" tabindex=\"-1\" type=\"button\" (click)=\"changeMinute(minuteStep)\"\n class=\"btn btn-link\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\" [class.disabled]=\"disabled\"\n [disabled]=\"disabled\">\n <span class=\"chevron ngb-tp-chevron\"></span>\n <span class=\"sr-only\" i18n=\"@@ngb.timepicker.increment-minutes\">Increment minutes</span>\n </button>\n <input type=\"text\" class=\"ngb-tp-input form-control\" [class.form-control-sm]=\"isSmallSize\" [class.form-control-lg]=\"isLargeSize\"\n maxlength=\"2\" inputmode=\"numeric\" placeholder=\"MM\" i18n-placeholder=\"@@ngb.timepicker.MM\"\n [value]=\"formatMinSec(model?.minute)\" (change)=\"updateMinute($any($event).target.value)\"\n [readOnly]=\"readonlyInputs\" [disabled]=\"disabled\" aria-label=\"Minutes\" i18n-aria-label=\"@@ngb.timepicker.minutes\"\n (blur)=\"handleBlur()\"\n (input)=\"formatInput($any($event).target)\"\n (keydown.ArrowUp)=\"changeMinute(minuteStep); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeMinute(-minuteStep); $event.preventDefault()\">\n <button *ngIf=\"spinners\" tabindex=\"-1\" type=\"button\" (click)=\"changeMinute(-minuteStep)\"\n class=\"btn btn-link\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\" [class.disabled]=\"disabled\"\n [disabled]=\"disabled\">\n <span class=\"chevron ngb-tp-chevron bottom\"></span>\n <span class=\"sr-only\" i18n=\"@@ngb.timepicker.decrement-minutes\">Decrement minutes</span>\n </button>\n </div>\n <div *ngIf=\"seconds\" class=\"ngb-tp-spacer\">:</div>\n <div *ngIf=\"seconds\" class=\"ngb-tp-input-container ngb-tp-second\">\n <button *ngIf=\"spinners\" tabindex=\"-1\" type=\"button\" (click)=\"changeSecond(secondStep)\"\n class=\"btn btn-link\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\" [class.disabled]=\"disabled\"\n [disabled]=\"disabled\">\n <span class=\"chevron ngb-tp-chevron\"></span>\n <span class=\"sr-only\" i18n=\"@@ngb.timepicker.increment-seconds\">Increment seconds</span>\n </button>\n <input type=\"text\" class=\"ngb-tp-input form-control\" [class.form-control-sm]=\"isSmallSize\" [class.form-control-lg]=\"isLargeSize\"\n maxlength=\"2\" inputmode=\"numeric\" placeholder=\"SS\" i18n-placeholder=\"@@ngb.timepicker.SS\"\n [value]=\"formatMinSec(model?.second)\" (change)=\"updateSecond($any($event).target.value)\"\n [readOnly]=\"readonlyInputs\" [disabled]=\"disabled\" aria-label=\"Seconds\" i18n-aria-label=\"@@ngb.timepicker.seconds\"\n (blur)=\"handleBlur()\"\n (input)=\"formatInput($any($event).target)\"\n (keydown.ArrowUp)=\"changeSecond(secondStep); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeSecond(-secondStep); $event.preventDefault()\">\n <button *ngIf=\"spinners\" tabindex=\"-1\" type=\"button\" (click)=\"changeSecond(-secondStep)\"\n class=\"btn btn-link\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\" [class.disabled]=\"disabled\"\n [disabled]=\"disabled\">\n <span class=\"chevron ngb-tp-chevron bottom\"></span>\n <span class=\"sr-only\" i18n=\"@@ngb.timepicker.decrement-seconds\">Decrement seconds</span>\n </button>\n </div>\n <div *ngIf=\"meridian\" class=\"ngb-tp-spacer\"></div>\n <div *ngIf=\"meridian\" class=\"ngb-tp-meridian\">\n <button type=\"button\" class=\"btn btn-outline-primary\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\"\n [disabled]=\"disabled\" [class.disabled]=\"disabled\"\n (click)=\"toggleMeridian()\">\n <ng-container *ngIf=\"model && model.hour >= 12; else am\"\n i18n=\"@@ngb.timepicker.PM\">{{ i18n.getAfternoonPeriod() }}</ng-container>\n <ng-template #am i18n=\"@@ngb.timepicker.AM\">{{ i18n.getMorningPeriod() }}</ng-template>\n </button>\n </div>\n </div>\n </fieldset>\n `,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbTimepicker),\n multi: true\n }],\n styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{align-items:center;display:flex}.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-meridian,.ngb-tp-minute,.ngb-tp-second{align-items:center;display:flex;flex-direction:column;justify-content:space-around}.ngb-tp-spacer{text-align:center;width:1em}\"]\n }]\n }], function () {\n return [{\n type: NgbTimepickerConfig\n }, {\n type: NgbTimeAdapter\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }, {\n type: NgbTimepickerI18n\n }];\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 {}\nNgbTimepickerModule.ɵfac = function NgbTimepickerModule_Factory(t) {\n return new (t || NgbTimepickerModule)();\n};\nNgbTimepickerModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbTimepickerModule\n});\nNgbTimepickerModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [CommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimepickerModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbTimepicker],\n exports: [NgbTimepicker],\n imports: [CommonModule]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbTimepickerModule, {\n declarations: function () {\n return [NgbTimepicker];\n },\n imports: function () {\n return [CommonModule];\n },\n exports: function () {\n return [NgbTimepicker];\n }\n });\n})();\n\n/**\r\n * Configuration service for the NgbToast component. You can inject this service, typically in your root component,\r\n * and customize the values of its properties in order to provide default values for all the toasts used in the\r\n * application.\r\n *\r\n * @since 5.0.0\r\n */\nclass NgbToastConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.autohide = true;\n this.delay = 500;\n this.ariaLive = 'polite';\n }\n get animation() {\n return this._animation === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbToastConfig.ɵfac = function NgbToastConfig_Factory(t) {\n return new (t || NgbToastConfig)(ɵngcc0.ɵɵinject(NgbConfig));\n};\nNgbToastConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbToastConfig_Factory() {\n return new NgbToastConfig(ɵɵinject(NgbConfig));\n },\n token: NgbToastConfig,\n providedIn: \"root\"\n});\nNgbToastConfig.ctorParameters = () => [{\n type: NgbConfig\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbToastConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: NgbConfig\n }];\n }, null);\n})();\nconst ngbToastFadeInTransition = (element, animation) => {\n const {\n classList\n } = element;\n if (!animation) {\n classList.add('show');\n return;\n }\n classList.remove('hide');\n reflow(element);\n classList.add('showing');\n return () => {\n classList.remove('showing');\n classList.add('show');\n };\n};\nconst ngbToastFadeOutTransition = ({\n classList\n}) => {\n classList.remove('show');\n return () => {\n classList.add('hide');\n };\n};\n\n/**\r\n * This directive allows the usage of HTML markup or other directives\r\n * inside of the toast's header.\r\n *\r\n * @since 5.0.0\r\n */\nclass NgbToastHeader {}\nNgbToastHeader.ɵfac = function NgbToastHeader_Factory(t) {\n return new (t || NgbToastHeader)();\n};\nNgbToastHeader.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbToastHeader,\n selectors: [[\"\", \"ngbToastHeader\", \"\"]]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbToastHeader, [{\n type: Directive,\n args: [{\n selector: '[ngbToastHeader]'\n }]\n }], null, null);\n})();\n/**\r\n * Toasts provide feedback messages as notifications to the user.\r\n * Goal is to mimic the push notifications available both on mobile and desktop operating systems.\r\n *\r\n * @since 5.0.0\r\n */\nclass NgbToast {\n constructor(ariaLive, config, _zone, _element) {\n this.ariaLive = ariaLive;\n this._zone = _zone;\n this._element = _element;\n /**\r\n * A template like `<ng-template ngbToastHeader></ng-template>` can be\r\n * used in the projected content to allow markup usage.\r\n */\n this.contentHeaderTpl = null;\n /**\r\n * An event fired after the animation triggered by calling `.show()` method has finished.\r\n *\r\n * @since 8.0.0\r\n */\n this.shown = new EventEmitter();\n /**\r\n * An event fired after the animation triggered by calling `.hide()` method has finished.\r\n *\r\n * It can only occur in 2 different scenarios:\r\n * - `autohide` timeout fires\r\n * - user clicks on a closing cross\r\n *\r\n * Additionally this output is purely informative. The toast won't be removed from DOM automatically, it's up\r\n * to the user to take care of that.\r\n *\r\n * @since 8.0.0\r\n */\n this.hidden = new EventEmitter();\n if (this.ariaLive == null) {\n this.ariaLive = config.ariaLive;\n }\n this.delay = config.delay;\n this.autohide = config.autohide;\n this.animation = config.animation;\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 /**\r\n * Triggers toast closing programmatically.\r\n *\r\n * The returned observable will emit and be completed once the closing transition has finished.\r\n * If the animations are turned off this happens synchronously.\r\n *\r\n * Alternatively you could listen or subscribe to the `(hidden)` output\r\n *\r\n * @since 8.0.0\r\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 /**\r\n * Triggers toast opening programmatically.\r\n *\r\n * The returned observable will emit and be completed once the opening transition has finished.\r\n * If the animations are turned off this happens synchronously.\r\n *\r\n * Alternatively you could listen or subscribe to the `(shown)` output\r\n *\r\n * @since 8.0.0\r\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}\nNgbToast.ɵfac = function NgbToast_Factory(t) {\n return new (t || NgbToast)(ɵngcc0.ɵɵinjectAttribute('aria-live'), ɵngcc0.ɵɵdirectiveInject(NgbToastConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef));\n};\nNgbToast.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbToast,\n selectors: [[\"ngb-toast\"]],\n contentQueries: function NgbToast_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbToastHeader, 7, TemplateRef);\n }\n if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵ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 ɵngcc0.ɵɵattribute(\"aria-live\", ctx.ariaLive);\n ɵngcc0.ɵɵclassProp(\"fade\", ctx.animation);\n }\n },\n inputs: {\n delay: \"delay\",\n autohide: \"autohide\",\n animation: \"animation\",\n header: \"header\"\n },\n outputs: {\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbToast\"],\n features: [ɵngcc0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c3,\n decls: 5,\n vars: 1,\n consts: function () {\n let i18n_85;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_toast_close_aria$$FESM2015_NG_BOOTSTRAP_JS__86 = goog.getMsg(\"Close\");\n i18n_85 = MSG_EXTERNAL_ngb_toast_close_aria$$FESM2015_NG_BOOTSTRAP_JS__86;\n } else {\n i18n_85 = $localize`:@@ngb.toast.close-aria␟f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8␟7819314041543176992:Close`;\n }\n return [[\"headerTpl\", \"\"], [3, \"ngIf\"], [1, \"toast-body\"], [1, \"mr-auto\"], [1, \"toast-header\"], [3, \"ngTemplateOutlet\"], [\"type\", \"button\", \"aria-label\", i18n_85, 1, \"close\", 3, \"click\"], [\"aria-hidden\", \"true\"]];\n },\n template: function NgbToast_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, NgbToast_ng_template_0_Template, 2, 1, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbToast_ng_template_2_Template, 5, 1, \"ng-template\", 1);\n ɵngcc0.ɵɵelementStart(3, \"div\", 2);\n ɵngcc0.ɵɵprojection(4);\n ɵngcc0.ɵɵelementEnd();\n }\n if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.contentHeaderTpl || ctx.header);\n }\n },\n dependencies: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet],\n styles: [\".ngb-toasts{margin:.5em;position:fixed;right:0;top:0;z-index:1200}ngb-toast{display:block}ngb-toast .toast-header .close{margin-bottom:.25rem;margin-left:auto}\"],\n encapsulation: 2\n});\nNgbToast.ctorParameters = () => [{\n type: String,\n decorators: [{\n type: Attribute,\n args: ['aria-live']\n }]\n}, {\n type: NgbToastConfig\n}, {\n type: NgZone\n}, {\n type: ElementRef\n}];\nNgbToast.propDecorators = {\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbToast, [{\n type: Component,\n args: [{\n selector: 'ngb-toast',\n exportAs: 'ngbToast',\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 <ng-template #headerTpl>\n <strong class=\"mr-auto\">{{header}}</strong>\n </ng-template>\n <ng-template [ngIf]=\"contentHeaderTpl || header\">\n <div class=\"toast-header\">\n <ng-template [ngTemplateOutlet]=\"contentHeaderTpl || headerTpl\"></ng-template>\n <button type=\"button\" class=\"close\" aria-label=\"Close\" i18n-aria-label=\"@@ngb.toast.close-aria\" (click)=\"hide()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n </ng-template>\n <div class=\"toast-body\">\n <ng-content></ng-content>\n </div>\n `,\n styles: [\".ngb-toasts{margin:.5em;position:fixed;right:0;top:0;z-index:1200}ngb-toast{display:block}ngb-toast .toast-header .close{margin-bottom:.25rem;margin-left:auto}\"]\n }]\n }], function () {\n return [{\n type: String,\n decorators: [{\n type: Attribute,\n args: ['aria-live']\n }]\n }, {\n type: NgbToastConfig\n }, {\n type: ɵngcc0.NgZone\n }, {\n type: ɵngcc0.ElementRef\n }];\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 delay: [{\n type: Input\n }],\n autohide: [{\n type: Input\n }],\n animation: [{\n type: Input\n }],\n header: [{\n type: Input\n }]\n });\n})();\nclass NgbToastModule {}\nNgbToastModule.ɵfac = function NgbToastModule_Factory(t) {\n return new (t || NgbToastModule)();\n};\nNgbToastModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbToastModule\n});\nNgbToastModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [CommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbToastModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbToast, NgbToastHeader],\n imports: [CommonModule],\n exports: [NgbToast, NgbToastHeader]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbToastModule, {\n declarations: function () {\n return [NgbToast, NgbToastHeader];\n },\n imports: function () {\n return [CommonModule];\n },\n exports: function () {\n return [NgbToast, NgbToastHeader];\n }\n });\n})();\n\n/**\r\n * A configuration service for the [`NgbTooltip`](#/components/tooltip/api#NgbTooltip) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the tooltips used in the application.\r\n */\nclass NgbTooltipConfig {\n constructor(_ngbConfig) {\n this._ngbConfig = _ngbConfig;\n this.autoClose = true;\n this.placement = 'auto';\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 === undefined ? this._ngbConfig.animation : this._animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n}\nNgbTooltipConfig.ɵfac = function NgbTooltipConfig_Factory(t) {\n return new (t || NgbTooltipConfig)(ɵngcc0.ɵɵinject(NgbConfig));\n};\nNgbTooltipConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbTooltipConfig_Factory() {\n return new NgbTooltipConfig(ɵɵinject(NgbConfig));\n },\n token: NgbTooltipConfig,\n providedIn: \"root\"\n});\nNgbTooltipConfig.ctorParameters = () => [{\n type: NgbConfig\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTooltipConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: NgbConfig\n }];\n }, null);\n})();\nlet nextId$4 = 0;\nclass NgbTooltipWindow {}\nNgbTooltipWindow.ɵfac = function NgbTooltipWindow_Factory(t) {\n return new (t || NgbTooltipWindow)();\n};\nNgbTooltipWindow.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵ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 ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n ɵngcc0.ɵɵclassMap(\"tooltip\" + (ctx.tooltipClass ? \" \" + ctx.tooltipClass : \"\"));\n ɵngcc0.ɵɵclassProp(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n id: \"id\",\n tooltipClass: \"tooltipClass\"\n },\n ngContentSelectors: _c3,\n decls: 3,\n vars: 0,\n consts: [[1, \"arrow\"], [1, \"tooltip-inner\"]],\n template: function NgbTooltipWindow_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n }\n },\n styles: [\"ngb-tooltip-window{pointer-events:none}ngb-tooltip-window .tooltip-inner{pointer-events:auto}ngb-tooltip-window.bs-tooltip-bottom .arrow,ngb-tooltip-window.bs-tooltip-top .arrow{left:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-bottom-left .arrow,ngb-tooltip-window.bs-tooltip-top-left .arrow{left:1em}ngb-tooltip-window.bs-tooltip-bottom-right .arrow,ngb-tooltip-window.bs-tooltip-top-right .arrow{left:auto;right:.8rem}ngb-tooltip-window.bs-tooltip-left .arrow,ngb-tooltip-window.bs-tooltip-right .arrow{top:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-left-top .arrow,ngb-tooltip-window.bs-tooltip-right-top .arrow{top:.4rem}ngb-tooltip-window.bs-tooltip-left-bottom .arrow,ngb-tooltip-window.bs-tooltip-right-bottom .arrow{bottom:.4rem;top:auto}\"],\n encapsulation: 2,\n changeDetection: 0\n});\nNgbTooltipWindow.propDecorators = {\n animation: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n tooltipClass: [{\n type: Input\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTooltipWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-tooltip-window',\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: `<div class=\"arrow\"></div><div class=\"tooltip-inner\"><ng-content></ng-content></div>`,\n styles: [\"ngb-tooltip-window{pointer-events:none}ngb-tooltip-window .tooltip-inner{pointer-events:auto}ngb-tooltip-window.bs-tooltip-bottom .arrow,ngb-tooltip-window.bs-tooltip-top .arrow{left:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-bottom-left .arrow,ngb-tooltip-window.bs-tooltip-top-left .arrow{left:1em}ngb-tooltip-window.bs-tooltip-bottom-right .arrow,ngb-tooltip-window.bs-tooltip-top-right .arrow{left:auto;right:.8rem}ngb-tooltip-window.bs-tooltip-left .arrow,ngb-tooltip-window.bs-tooltip-right .arrow{top:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-left-top .arrow,ngb-tooltip-window.bs-tooltip-right-top .arrow{top:.4rem}ngb-tooltip-window.bs-tooltip-left-bottom .arrow,ngb-tooltip-window.bs-tooltip-right-bottom .arrow{bottom:.4rem;top:auto}\"]\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n tooltipClass: [{\n type: Input\n }]\n });\n})();\n/**\r\n * A lightweight and extensible directive for fancy tooltip creation.\r\n */\nclass NgbTooltip {\n constructor(_elementRef, _renderer, injector, componentFactoryResolver, viewContainerRef, config, _ngZone, _document, _changeDetector, applicationRef) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._ngZone = _ngZone;\n this._document = _document;\n this._changeDetector = _changeDetector;\n /**\r\n * An event emitted when the tooltip opening animation has finished. Contains no payload.\r\n */\n this.shown = new EventEmitter();\n /**\r\n * An event emitted when the tooltip closing animation has finished. Contains no payload.\r\n */\n this.hidden = new EventEmitter();\n this._ngbTooltipWindowId = `ngb-tooltip-${nextId$4++}`;\n this._windowRef = null;\n this.animation = config.animation;\n this.autoClose = config.autoClose;\n this.placement = config.placement;\n this.triggers = config.triggers;\n this.container = config.container;\n this.disableTooltip = config.disableTooltip;\n this.tooltipClass = config.tooltipClass;\n this.openDelay = config.openDelay;\n this.closeDelay = config.closeDelay;\n this._popupService = new PopupService(NgbTooltipWindow, injector, viewContainerRef, _renderer, this._ngZone, componentFactoryResolver, applicationRef);\n this._zoneSubscription = _ngZone.onStable.subscribe(() => {\n if (this._windowRef) {\n positionElements(this._elementRef.nativeElement, this._windowRef.location.nativeElement, this.placement, this.container === 'body', 'bs-tooltip');\n }\n });\n }\n /**\r\n * The string content or a `TemplateRef` for the content to be displayed in the tooltip.\r\n *\r\n * If the content if falsy, the tooltip won't open.\r\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 /**\r\n * Opens the tooltip.\r\n *\r\n * This is considered to be a \"manual\" triggering.\r\n * The `context` is an optional value to be injected into the tooltip template when it is created.\r\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.animation);\n this._windowRef = windowRef;\n this._windowRef.instance.animation = this.animation;\n this._windowRef.instance.tooltipClass = this.tooltipClass;\n this._windowRef.instance.id = this._ngbTooltipWindowId;\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-describedby', this._ngbTooltipWindowId);\n if (this.container === 'body') {\n this._document.querySelector(this.container).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 ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [this._windowRef.location.nativeElement]);\n transition$.subscribe(() => this.shown.emit());\n }\n }\n /**\r\n * Closes the tooltip.\r\n *\r\n * This is considered to be a \"manual\" triggering of the tooltip.\r\n */\n close() {\n if (this._windowRef != null) {\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-describedby');\n this._popupService.close(this.animation).subscribe(() => {\n this._windowRef = null;\n this.hidden.emit();\n this._changeDetector.markForCheck();\n });\n }\n }\n /**\r\n * Toggles the tooltip.\r\n *\r\n * This is considered to be a \"manual\" triggering of the tooltip.\r\n */\n toggle() {\n if (this._windowRef) {\n this.close();\n } else {\n this.open();\n }\n }\n /**\r\n * Returns `true`, if the popover is currently shown.\r\n */\n isOpen() {\n return this._windowRef != null;\n }\n ngOnInit() {\n this._unregisterListenersFn = listenToTriggers(this._renderer, this._elementRef.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.instance.tooltipClass = tooltipClass.currentValue;\n }\n }\n ngOnDestroy() {\n this.close();\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 if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n this._zoneSubscription.unsubscribe();\n }\n}\nNgbTooltip.ɵfac = function NgbTooltip_Factory(t) {\n return new (t || NgbTooltip)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(NgbTooltipConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ApplicationRef));\n};\nNgbTooltip.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbTooltip,\n selectors: [[\"\", \"ngbTooltip\", \"\"]],\n inputs: {\n animation: \"animation\",\n autoClose: \"autoClose\",\n placement: \"placement\",\n triggers: \"triggers\",\n container: \"container\",\n disableTooltip: \"disableTooltip\",\n tooltipClass: \"tooltipClass\",\n openDelay: \"openDelay\",\n closeDelay: \"closeDelay\",\n ngbTooltip: \"ngbTooltip\"\n },\n outputs: {\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbTooltip\"],\n features: [ɵngcc0.ɵɵNgOnChangesFeature]\n});\nNgbTooltip.ctorParameters = () => [{\n type: ElementRef\n}, {\n type: Renderer2\n}, {\n type: Injector\n}, {\n type: ComponentFactoryResolver\n}, {\n type: ViewContainerRef\n}, {\n type: NgbTooltipConfig\n}, {\n type: NgZone\n}, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n}, {\n type: ChangeDetectorRef\n}, {\n type: ApplicationRef\n}];\nNgbTooltip.propDecorators = {\n animation: [{\n type: Input\n }],\n autoClose: [{\n type: Input\n }],\n placement: [{\n type: Input\n }],\n triggers: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n disableTooltip: [{\n type: Input\n }],\n tooltipClass: [{\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTooltip, [{\n type: Directive,\n args: [{\n selector: '[ngbTooltip]',\n exportAs: 'ngbTooltip'\n }]\n }], function () {\n return [{\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc0.Renderer2\n }, {\n type: ɵngcc0.Injector\n }, {\n type: ɵngcc0.ComponentFactoryResolver\n }, {\n type: ɵngcc0.ViewContainerRef\n }, {\n type: NgbTooltipConfig\n }, {\n type: ɵngcc0.NgZone\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }, {\n type: ɵngcc0.ApplicationRef\n }];\n }, {\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n animation: [{\n type: Input\n }],\n autoClose: [{\n type: Input\n }],\n placement: [{\n type: Input\n }],\n triggers: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n disableTooltip: [{\n type: Input\n }],\n tooltipClass: [{\n type: Input\n }],\n openDelay: [{\n type: Input\n }],\n closeDelay: [{\n type: Input\n }],\n ngbTooltip: [{\n type: Input\n }]\n });\n})();\nclass NgbTooltipModule {}\nNgbTooltipModule.ɵfac = function NgbTooltipModule_Factory(t) {\n return new (t || NgbTooltipModule)();\n};\nNgbTooltipModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbTooltipModule\n});\nNgbTooltipModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTooltipModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbTooltip, NgbTooltipWindow],\n exports: [NgbTooltip],\n entryComponents: [NgbTooltipWindow]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbTooltipModule, {\n declarations: [NgbTooltip, NgbTooltipWindow],\n exports: [NgbTooltip]\n });\n})();\n\n/**\r\n * A component that helps with text highlighting.\r\n *\r\n * If splits the `result` text into parts that contain the searched `term` and generates the HTML markup to simplify\r\n * highlighting:\r\n *\r\n * Ex. `result=\"Alaska\"` and `term=\"as\"` will produce `Al<span class=\"ngb-highlight\">as</span>ka`.\r\n */\nclass NgbHighlight {\n constructor() {\n /**\r\n * The CSS class for `<span>` elements wrapping the `term` inside the `result`.\r\n */\n this.highlightClass = 'ngb-highlight';\n /**\r\n * Boolean option to determine if the highlighting should be sensitive to accents or not.\r\n *\r\n * This feature is only available for browsers that implement the `String.normalize` function\r\n * (typically not Internet Explorer).\r\n * If you want to use this feature in a browser that does not implement `String.normalize`,\r\n * you will have to include a polyfill in your application (`unorm` for example).\r\n *\r\n * @since 9.1.0\r\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}\nNgbHighlight.ɵfac = function NgbHighlight_Factory(t) {\n return new (t || NgbHighlight)();\n};\nNgbHighlight.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵdefineComponent({\n type: NgbHighlight,\n selectors: [[\"ngb-highlight\"]],\n inputs: {\n highlightClass: \"highlightClass\",\n accentSensitive: \"accentSensitive\",\n result: \"result\",\n term: \"term\"\n },\n features: [ɵngcc0.ɵɵNgOnChangesFeature],\n decls: 1,\n vars: 1,\n consts: [[\"ngFor\", \"\", 3, \"ngForOf\"], [3, \"class\", 4, \"ngIf\", \"ngIfElse\"], [\"even\", \"\"]],\n template: function NgbHighlight_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbHighlight_ng_template_0_Template, 3, 2, \"ng-template\", 0);\n }\n if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.parts);\n }\n },\n dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf],\n styles: [\".ngb-highlight{font-weight:700}\"],\n encapsulation: 2,\n changeDetection: 0\n});\nNgbHighlight.propDecorators = {\n highlightClass: [{\n type: Input\n }],\n result: [{\n type: Input\n }],\n term: [{\n type: Input\n }],\n accentSensitive: [{\n type: Input\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbHighlight, [{\n type: Component,\n args: [{\n selector: 'ngb-highlight',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `<ng-template ngFor [ngForOf]=\"parts\" let-part let-isOdd=\"odd\">` + `<span *ngIf=\"isOdd; else even\" [class]=\"highlightClass\">{{part}}</span><ng-template #even>{{part}}</ng-template>` + `</ng-template>`,\n styles: [\".ngb-highlight{font-weight:700}\"]\n }]\n }], function () {\n return [];\n }, {\n highlightClass: [{\n type: Input\n }],\n accentSensitive: [{\n type: Input\n }],\n result: [{\n type: Input\n }],\n term: [{\n type: Input\n }]\n });\n})();\nclass NgbTypeaheadWindow {\n constructor() {\n this.activeIdx = 0;\n /**\r\n * Flag indicating if the first row should be active initially\r\n */\n this.focusFirst = true;\n /**\r\n * A function used to format a given result before display. This function should return a formatted string without any\r\n * HTML markup\r\n */\n this.formatter = toString;\n /**\r\n * Event raised when user selects a particular result row\r\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}\nNgbTypeaheadWindow.ɵfac = function NgbTypeaheadWindow_Factory(t) {\n return new (t || NgbTypeaheadWindow)();\n};\nNgbTypeaheadWindow.ɵcmp = /*@__PURE__*/ɵngcc0.ɵɵ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 ɵngcc0.ɵɵlistener(\"mousedown\", function NgbTypeaheadWindow_mousedown_HostBindingHandler($event) {\n return $event.preventDefault();\n });\n }\n if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n ɵngcc0.ɵɵclassMap(\"dropdown-menu show\" + (ctx.popupClass ? \" \" + ctx.popupClass : \"\"));\n }\n },\n inputs: {\n focusFirst: \"focusFirst\",\n formatter: \"formatter\",\n id: \"id\",\n results: \"results\",\n term: \"term\",\n resultTemplate: \"resultTemplate\",\n popupClass: \"popupClass\"\n },\n outputs: {\n selectEvent: \"select\",\n activeChangeEvent: \"activeChange\"\n },\n exportAs: [\"ngbTypeaheadWindow\"],\n decls: 3,\n vars: 1,\n consts: [[\"rt\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [3, \"result\", \"term\"], [\"type\", \"button\", \"role\", \"option\", 1, \"dropdown-item\", 3, \"id\", \"mouseenter\", \"click\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgbTypeaheadWindow_Template(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbTypeaheadWindow_ng_template_0_Template, 1, 2, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbTypeaheadWindow_ng_template_2_Template, 2, 9, \"ng-template\", 1);\n }\n if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.results);\n }\n },\n dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgTemplateOutlet, NgbHighlight],\n encapsulation: 2\n});\nNgbTypeaheadWindow.propDecorators = {\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(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTypeaheadWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-typeahead-window',\n exportAs: 'ngbTypeaheadWindow',\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 <ng-template #rt let-result=\"result\" let-term=\"term\" let-formatter=\"formatter\">\n <ngb-highlight [result]=\"formatter(result)\" [term]=\"term\"></ngb-highlight>\n </ng-template>\n <ng-template ngFor [ngForOf]=\"results\" let-result let-idx=\"index\">\n <button type=\"button\" class=\"dropdown-item\" role=\"option\"\n [id]=\"id + '-' + idx\"\n [class.active]=\"idx === activeIdx\"\n (mouseenter)=\"markActive(idx)\"\n (click)=\"select(result)\">\n <ng-template [ngTemplateOutlet]=\"resultTemplate || rt\"\n [ngTemplateOutletContext]=\"{result: result, term: term, formatter: formatter}\"></ng-template>\n </button>\n </ng-template>\n `\n }]\n }], function () {\n return [];\n }, {\n focusFirst: [{\n type: Input\n }],\n formatter: [{\n type: Input\n }],\n selectEvent: [{\n type: Output,\n args: ['select']\n }],\n activeChangeEvent: [{\n type: Output,\n args: ['activeChange']\n }],\n id: [{\n type: Input\n }],\n results: [{\n type: Input\n }],\n term: [{\n type: Input\n }],\n resultTemplate: [{\n type: Input\n }],\n popupClass: [{\n type: Input\n }]\n });\n})();\nconst ARIA_LIVE_DELAY = new InjectionToken('live announcer delay', {\n providedIn: 'root',\n factory: ARIA_LIVE_DELAY_FACTORY\n});\nfunction ARIA_LIVE_DELAY_FACTORY() {\n return 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('sr-only');\n document.body.appendChild(element);\n }\n return element;\n}\nclass Live {\n constructor(_document, _delay) {\n this._document = _document;\n this._delay = _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}\nLive.ɵfac = function Live_Factory(t) {\n return new (t || Live)(ɵngcc0.ɵɵinject(DOCUMENT), ɵngcc0.ɵɵinject(ARIA_LIVE_DELAY));\n};\nLive.ɵprov = ɵɵdefineInjectable({\n factory: function Live_Factory() {\n return new Live(ɵɵinject(DOCUMENT), ɵɵinject(ARIA_LIVE_DELAY));\n },\n token: Live,\n providedIn: \"root\"\n});\nLive.ctorParameters = () => [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n}, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [ARIA_LIVE_DELAY]\n }]\n}];\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(Live, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [ARIA_LIVE_DELAY]\n }]\n }];\n }, null);\n})();\n\n/**\r\n * A configuration service for the [`NgbTypeahead`](#/components/typeahead/api#NgbTypeahead) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the typeaheads used in the application.\r\n */\nclass NgbTypeaheadConfig {\n constructor() {\n this.editable = true;\n this.focusFirst = true;\n this.showHint = false;\n this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right'];\n }\n}\nNgbTypeaheadConfig.ɵfac = function NgbTypeaheadConfig_Factory(t) {\n return new (t || NgbTypeaheadConfig)();\n};\nNgbTypeaheadConfig.ɵprov = ɵɵdefineInjectable({\n factory: function NgbTypeaheadConfig_Factory() {\n return new NgbTypeaheadConfig();\n },\n token: NgbTypeaheadConfig,\n providedIn: \"root\"\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTypeaheadConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [];\n }, null);\n})();\nlet nextWindowId = 0;\n/**\r\n * A directive providing a simple way of creating powerful typeaheads from any text input.\r\n */\nclass NgbTypeahead {\n constructor(_elementRef, viewContainerRef, _renderer, injector, componentFactoryResolver, config, ngZone, _live, _document, _ngZone, _changeDetector, applicationRef) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._live = _live;\n this._document = _document;\n this._ngZone = _ngZone;\n this._changeDetector = _changeDetector;\n this._subscription = null;\n this._closed$ = new Subject();\n this._inputValueBackup = null;\n this._windowRef = null;\n /**\r\n * The value for the `autocomplete` attribute for the `<input>` element.\r\n *\r\n * Defaults to `\"off\"` to disable the native browser autocomplete, but you can override it if necessary.\r\n *\r\n * @since 2.1.0\r\n */\n this.autocomplete = 'off';\n /**\r\n * The preferred placement of the typeahead.\r\n *\r\n * Possible values are `\"top\"`, `\"top-left\"`, `\"top-right\"`, `\"bottom\"`, `\"bottom-left\"`,\r\n * `\"bottom-right\"`, `\"left\"`, `\"left-top\"`, `\"left-bottom\"`, `\"right\"`, `\"right-top\"`,\r\n * `\"right-bottom\"`\r\n *\r\n * Accepts an array of strings or a string with space separated possible values.\r\n *\r\n * The default order of preference is `\"bottom-left bottom-right top-left top-right\"`\r\n *\r\n * Please see the [positioning overview](#/positioning) for more details.\r\n */\n this.placement = 'bottom-left';\n /**\r\n * An event emitted right before an item is selected from the result list.\r\n *\r\n * Event payload is of type [`NgbTypeaheadSelectItemEvent`](#/components/typeahead/api#NgbTypeaheadSelectItemEvent).\r\n */\n this.selectItem = new EventEmitter();\n this.activeDescendant = null;\n this.popupId = `ngb-typeahead-${nextWindowId++}`;\n this._onTouched = () => {};\n this._onChange = _ => {};\n this.container = config.container;\n this.editable = config.editable;\n this.focusFirst = config.focusFirst;\n this.showHint = config.showHint;\n this.placement = config.placement;\n this._valueChanges = fromEvent(_elementRef.nativeElement, 'input').pipe(map($event => $event.target.value));\n this._resubscribeTypeahead = new BehaviorSubject(null);\n this._popupService = new PopupService(NgbTypeaheadWindow, injector, viewContainerRef, _renderer, this._ngZone, componentFactoryResolver, applicationRef);\n this._zoneSubscription = ngZone.onStable.subscribe(() => {\n if (this.isPopupOpen()) {\n positionElements(this._elementRef.nativeElement, this._windowRef.location.nativeElement, this.placement, this.container === 'body');\n }\n });\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 this._zoneSubscription.unsubscribe();\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._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n }\n /**\r\n * Dismisses typeahead popup window\r\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 /**\r\n * Returns true if the typeahead popup window is displayed\r\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 // tslint:disable-next-line: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 _openPopup() {\n if (!this.isPopupOpen()) {\n this._inputValueBackup = this._elementRef.nativeElement.value;\n const {\n windowRef\n } = this._popupService.open();\n this._windowRef = windowRef;\n this._windowRef.instance.id = this.popupId;\n this._windowRef.instance.selectEvent.subscribe(result => this._selectResultClosePopup(result));\n this._windowRef.instance.activeChangeEvent.subscribe(activeId => this.activeDescendant = activeId);\n this._windowRef.instance.popupClass = this.popupClass;\n if (this.container === 'body') {\n this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement);\n }\n this._changeDetector.markForCheck();\n ngbAutoClose(this._ngZone, this._document, 'outside', () => this.dismissPopup(), this._closed$, [this._elementRef.nativeElement, this._windowRef.location.nativeElement]);\n }\n }\n _closePopup() {\n this._popupService.close().subscribe(() => {\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 var _a;\n if (this.showHint && ((_a = this._windowRef) === null || _a === void 0 ? void 0 : _a.instance.hasActive()) && this._inputValueBackup != null) {\n const userInputLowerCase = this._inputValueBackup.toLowerCase();\n const formattedVal = this._formatItemForInput(this._windowRef.instance.getActive());\n if (userInputLowerCase === formattedVal.substr(0, this._inputValueBackup.length).toLowerCase()) {\n this._writeInputValue(this._inputValueBackup + formattedVal.substr(this._inputValueBackup.length));\n this._elementRef.nativeElement['setSelectionRange'].apply(this._elementRef.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._renderer.setProperty(this._elementRef.nativeElement, 'value', toString(value));\n }\n _subscribeToUserInput() {\n const results$ = this._valueChanges.pipe(tap(value => {\n this._inputValueBackup = this.showHint ? 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 this._openPopup();\n this._windowRef.instance.focusFirst = this.focusFirst;\n this._windowRef.instance.results = results;\n this._windowRef.instance.term = this._elementRef.nativeElement.value;\n if (this.resultFormatter) {\n this._windowRef.instance.formatter = this.resultFormatter;\n }\n if (this.resultTemplate) {\n this._windowRef.instance.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 // 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}\nNgbTypeahead.ɵfac = function NgbTypeahead_Factory(t) {\n return new (t || NgbTypeahead)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(NgbTypeaheadConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(Live), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ApplicationRef));\n};\nNgbTypeahead.ɵdir = /*@__PURE__*/ɵngcc0.ɵɵdefineDirective({\n type: NgbTypeahead,\n selectors: [[\"input\", \"ngbTypeahead\", \"\"]],\n hostAttrs: [\"autocapitalize\", \"off\", \"autocorrect\", \"off\", \"role\", \"combobox\", \"aria-multiline\", \"false\"],\n hostVars: 7,\n hostBindings: function NgbTypeahead_HostBindings(rf, ctx) {\n if (rf & 1) {\n ɵngcc0.ɵɵ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 ɵngcc0.ɵɵhostProperty(\"autocomplete\", ctx.autocomplete);\n ɵngcc0.ɵɵattribute(\"aria-autocomplete\", ctx.showHint ? \"both\" : \"list\")(\"aria-activedescendant\", ctx.activeDescendant)(\"aria-owns\", ctx.isPopupOpen() ? ctx.popupId : null)(\"aria-expanded\", ctx.isPopupOpen());\n ɵngcc0.ɵɵclassProp(\"open\", ctx.isPopupOpen());\n }\n },\n inputs: {\n autocomplete: \"autocomplete\",\n placement: \"placement\",\n container: \"container\",\n editable: \"editable\",\n focusFirst: \"focusFirst\",\n showHint: \"showHint\",\n inputFormatter: \"inputFormatter\",\n ngbTypeahead: \"ngbTypeahead\",\n resultFormatter: \"resultFormatter\",\n resultTemplate: \"resultTemplate\",\n popupClass: \"popupClass\"\n },\n outputs: {\n selectItem: \"selectItem\"\n },\n exportAs: [\"ngbTypeahead\"],\n features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbTypeahead),\n multi: true\n }]), ɵngcc0.ɵɵNgOnChangesFeature]\n});\nNgbTypeahead.ctorParameters = () => [{\n type: ElementRef\n}, {\n type: ViewContainerRef\n}, {\n type: Renderer2\n}, {\n type: Injector\n}, {\n type: ComponentFactoryResolver\n}, {\n type: NgbTypeaheadConfig\n}, {\n type: NgZone\n}, {\n type: Live\n}, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n}, {\n type: NgZone\n}, {\n type: ChangeDetectorRef\n}, {\n type: ApplicationRef\n}];\nNgbTypeahead.propDecorators = {\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 showHint: [{\n type: Input\n }],\n placement: [{\n type: Input\n }],\n popupClass: [{\n type: Input\n }],\n selectItem: [{\n type: Output\n }]\n};\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTypeahead, [{\n type: Directive,\n args: [{\n selector: 'input[ngbTypeahead]',\n exportAs: 'ngbTypeahead',\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 'aria-multiline': 'false',\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 }], function () {\n return [{\n type: ɵngcc0.ElementRef\n }, {\n type: ɵngcc0.ViewContainerRef\n }, {\n type: ɵngcc0.Renderer2\n }, {\n type: ɵngcc0.Injector\n }, {\n type: ɵngcc0.ComponentFactoryResolver\n }, {\n type: NgbTypeaheadConfig\n }, {\n type: ɵngcc0.NgZone\n }, {\n type: Live\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: ɵngcc0.NgZone\n }, {\n type: ɵngcc0.ChangeDetectorRef\n }, {\n type: ɵngcc0.ApplicationRef\n }];\n }, {\n autocomplete: [{\n type: Input\n }],\n placement: [{\n type: Input\n }],\n selectItem: [{\n type: Output\n }],\n container: [{\n type: Input\n }],\n editable: [{\n type: Input\n }],\n focusFirst: [{\n type: Input\n }],\n showHint: [{\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 popupClass: [{\n type: Input\n }]\n });\n})();\nclass NgbTypeaheadModule {}\nNgbTypeaheadModule.ɵfac = function NgbTypeaheadModule_Factory(t) {\n return new (t || NgbTypeaheadModule)();\n};\nNgbTypeaheadModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbTypeaheadModule\n});\nNgbTypeaheadModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [CommonModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTypeaheadModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbTypeahead, NgbHighlight, NgbTypeaheadWindow],\n exports: [NgbTypeahead, NgbHighlight],\n imports: [CommonModule],\n entryComponents: [NgbTypeaheadWindow]\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbTypeaheadModule, {\n declarations: function () {\n return [NgbTypeahead, NgbHighlight, NgbTypeaheadWindow];\n },\n imports: function () {\n return [CommonModule];\n },\n exports: function () {\n return [NgbTypeahead, NgbHighlight];\n }\n });\n})();\nconst NGB_MODULES = [NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule];\nclass NgbModule {}\nNgbModule.ɵfac = function NgbModule_Factory(t) {\n return new (t || NgbModule)();\n};\nNgbModule.ɵmod = /*@__PURE__*/ɵngcc0.ɵɵdefineNgModule({\n type: NgbModule\n});\nNgbModule.ɵinj = /*@__PURE__*/ɵngcc0.ɵɵdefineInjector({\n imports: [NGB_MODULES, NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModule, [{\n type: NgModule,\n args: [{\n imports: NGB_MODULES,\n exports: NGB_MODULES\n }]\n }], null, null);\n})();\n(function () {\n (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbModule, {\n imports: [NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule],\n exports: [NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule]\n });\n})();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { ModalDismissReasons, NgbAccordion, NgbAccordionConfig, NgbAccordionModule, NgbActiveModal, NgbAlert, NgbAlertConfig, NgbAlertModule, NgbButtonLabel, NgbButtonsModule, NgbCalendar, NgbCalendarBuddhist, NgbCalendarGregorian, NgbCalendarHebrew, NgbCalendarIslamicCivil, NgbCalendarIslamicUmalqura, NgbCalendarPersian, NgbCarousel, NgbCarouselConfig, NgbCarouselModule, NgbCheckBox, NgbCollapse, NgbCollapseConfig, NgbCollapseModule, NgbConfig, NgbDate, NgbDateAdapter, NgbDateNativeAdapter, NgbDateNativeUTCAdapter, NgbDateParserFormatter, NgbDatepicker, NgbDatepickerConfig, NgbDatepickerContent, NgbDatepickerI18n, NgbDatepickerI18nDefault, NgbDatepickerI18nHebrew, NgbDatepickerKeyboardService, NgbDatepickerModule, NgbDatepickerMonth, NgbDropdown, NgbDropdownAnchor, NgbDropdownConfig, NgbDropdownItem, NgbDropdownMenu, NgbDropdownModule, NgbDropdownToggle, NgbHighlight, NgbInputDatepicker, NgbInputDatepickerConfig, NgbModal, NgbModalConfig, NgbModalModule, NgbModalRef, NgbModule, NgbNav, NgbNavConfig, NgbNavContent, NgbNavItem, NgbNavLink, NgbNavModule, NgbNavOutlet, NgbNavPane, NgbNavbar, NgbPagination, NgbPaginationConfig, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationModule, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPages, NgbPaginationPrevious, NgbPanel, NgbPanelContent, NgbPanelHeader, NgbPanelTitle, NgbPanelToggle, NgbPopover, NgbPopoverConfig, NgbPopoverModule, NgbProgressbar, NgbProgressbarConfig, NgbProgressbarModule, NgbRadio, NgbRadioGroup, NgbRating, NgbRatingConfig, NgbRatingModule, NgbSlide, NgbSlideEventDirection, NgbSlideEventSource, NgbTimeAdapter, NgbTimepicker, NgbTimepickerConfig, NgbTimepickerI18n, NgbTimepickerModule, NgbToast, NgbToastConfig, NgbToastHeader, NgbToastModule, NgbTooltip, NgbTooltipConfig, NgbTooltipModule, NgbTypeahead, NgbTypeaheadConfig, NgbTypeaheadModule, NGB_CAROUSEL_DIRECTIVES as ɵa, NGB_DATEPICKER_CALENDAR_FACTORY as ɵb, ContentRef as ɵba, NgbDatepickerDayView as ɵc, NgbDatepickerNavigation as ɵd, NgbDatepickerNavigationSelect as ɵe, NGB_DATEPICKER_18N_FACTORY as ɵf, NGB_DATEPICKER_DATE_ADAPTER_FACTORY as ɵg, NgbDateStructAdapter as ɵh, NGB_DATEPICKER_PARSER_FORMATTER_FACTORY as ɵi, NgbDateISOParserFormatter as ɵj, NgbPopoverWindow as ɵk, NGB_DATEPICKER_TIME_ADAPTER_FACTORY as ɵl, NgbTimeStructAdapter as ɵm, NGB_TIMEPICKER_I18N_FACTORY as ɵn, NgbTimepickerI18nDefault as ɵo, NgbTooltipWindow as ɵp, NgbTypeaheadWindow as ɵq, NgbDatepickerService as ɵr, NgbModalBackdrop as ɵs, NgbModalWindow as ɵt, NgbModalStack as ɵu, ScrollBar as ɵv, ARIA_LIVE_DELAY as ɵw, ARIA_LIVE_DELAY_FACTORY as ɵx, Live as ɵy, NgbCalendarHijri as ɵz };","map":{"version":3,"names":["ɵɵdefineInjectable","Injectable","ɵɵinject","Directive","TemplateRef","EventEmitter","Input","Output","ContentChildren","Component","ViewEncapsulation","ElementRef","NgZone","ChangeDetectorRef","Optional","Host","NgModule","ChangeDetectionStrategy","Renderer2","forwardRef","Inject","PLATFORM_ID","LOCALE_ID","ViewChild","ContentChild","ViewContainerRef","ComponentFactoryResolver","Injector","ApplicationRef","INJECTOR","RendererFactory2","Attribute","ViewChildren","HostBinding","InjectionToken","CommonModule","isPlatformBrowser","getLocaleMonthNames","FormStyle","TranslationWidth","getLocaleDayNames","formatDate","DOCUMENT","getLocaleDayPeriods","Observable","EMPTY","of","Subject","fromEvent","timer","race","BehaviorSubject","combineLatest","NEVER","zip","merge","endWith","takeUntil","filter","take","map","startWith","distinctUntilChanged","switchMap","tap","withLatestFrom","delay","mergeMap","skip","share","NG_VALUE_ACCESSOR","NG_VALIDATORS","FormsModule","ɵngcc0","ɵngcc1","ɵngcc2","NgbAccordion_ng_template_0_ng_template_2_Template","rf","ctx","NgbAccordion_ng_template_0_Template","ɵɵelementStart","ɵɵtext","ɵɵtemplate","ɵɵelementEnd","panel_r3","$implicit","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate1","title","titleTpl","templateRef","NgbAccordion_ng_template_2_ng_template_2_Template","NgbAccordion_ng_template_2_div_3_ng_template_2_Template","NgbAccordion_ng_template_2_div_3_Template","panel_r5","ɵɵnextContext","ɵɵpropertyInterpolate","id","ɵɵattribute","contentTpl","_c0","a0","a1","opened","NgbAccordion_ng_template_2_Template","ctx_r2","_r0","ɵɵreference","ɵɵclassMap","cardClass","type","ɵɵpropertyInterpolate1","headerTpl","ɵɵpureFunction2","isOpen","destroyOnHide","transitionRunning","NgbAlert_button_1_Template","_r2","ɵɵgetCurrentView","ɵɵlistener","NgbAlert_button_1_Template_button_click_0_listener","ɵɵrestoreView","ctx_r1","ɵɵresetView","close","_c3","NgbCarousel_li_1_Template","_r6","NgbCarousel_li_1_Template_li_click_0_listener","restoredCtx","slide_r4","ctx_r5","focus","select","NgbSlideEventSource","INDICATOR","ctx_r0","ɵɵclassProp","activeId","NgbCarousel_div_3_ng_template_3_Template","NgbCarousel_div_3_Template","ɵɵi18n","slide_r7","i_r8","index","c_r9","count","ɵɵi18nExp","ɵɵi18nApply","tplRef","NgbCarousel_a_4_Template","_r12","NgbCarousel_a_4_Template_a_click_0_listener","ctx_r11","arrowLeft","ɵɵelement","NgbCarousel_a_5_Template","_r14","NgbCarousel_a_5_Template_a_click_0_listener","ctx_r13","arrowRight","_c10","_c11","NgbDatepicker_ng_template_0_Template","date_r8","date","currentMonth_r9","currentMonth","selected_r10","selected","disabled_r11","disabled","focused_r12","focused","NgbDatepicker_ng_template_2_div_0_div_1_Template","month_r14","ctx_r16","i18n","getMonthLabel","firstDate","NgbDatepicker_ng_template_2_div_0_Template","navigation","displayMonths","NgbDatepicker_ng_template_2_Template","ctx_r3","model","months","NgbDatepicker_ngb_datepicker_navigation_5_Template","_r19","NgbDatepicker_ngb_datepicker_navigation_5_Template_ngb_datepicker_navigation_navigate_0_listener","$event","ctx_r18","onNavigateEvent","NgbDatepicker_ngb_datepicker_navigation_5_Template_ngb_datepicker_navigation_select_0_listener","ctx_r20","onNavigateDateSelect","ctx_r4","prevDisabled","nextDisabled","selectBoxes","NgbDatepicker_ng_template_8_Template","NgbDatepicker_ng_template_9_Template","NgbDatepickerMonth_div_0_div_1_Template","ɵɵtextInterpolate","getWeekLabel","NgbDatepickerMonth_div_0_div_2_Template","weekday_r4","NgbDatepickerMonth_div_0_Template","datepicker","showWeekNumbers","viewModel","weekdays","NgbDatepickerMonth_ng_template_1_div_0_div_1_Template","week_r5","ctx_r7","getWeekNumerals","number","NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_ng_template_0_Template","NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_Template","day_r10","dayTemplate","context","NgbDatepickerMonth_ng_template_1_div_0_div_2_Template","_r15","NgbDatepickerMonth_ng_template_1_div_0_div_2_Template_div_click_0_listener","ctx_r14","doSelect","preventDefault","hidden","today","tabindex","ariaLabel","NgbDatepickerMonth_ng_template_1_div_0_Template","ctx_r6","days","NgbDatepickerMonth_ng_template_1_Template","collapsed","NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template","_r3","NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template_ngb_datepicker_navigation_select_select_0_listener","emit","years","NgbDatepickerNavigation_4_ng_template_0_div_0_Template","NgbDatepickerNavigation_4_ng_template_0_div_3_Template","NgbDatepickerNavigation_4_ng_template_0_Template","month_r5","i_r6","length","NgbDatepickerNavigation_4_Template","_c20","_c21","_c22","NgbDatepickerNavigationSelect_option_2_Template","m_r4","getMonthFullName","year","getMonthShortName","NgbDatepickerNavigationSelect_option_5_Template","y_r5","getYearNumerals","_c31","_c32","NgbNavOutlet_ng_template_0_div_0_ng_template_1_Template","_c33","NgbNavOutlet_ng_template_0_div_0_Template","item_r1","nav","paneRole","ɵɵpureFunction1","active","isPanelTransitioning","NgbNavOutlet_ng_template_0_Template","isPanelInDom","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_span_1_Template","NgbPagination_ng_template_10_Template","page_r19","currentPage_r20","currentPage","NgbPagination_ng_template_12_li_0_a_1_ng_template_1_Template","_c42","NgbPagination_ng_template_12_li_0_a_1_Template","page_r22","ctx_r27","_r8","tplEllipsis","NgbPagination_ng_template_12_li_0_a_2_ng_template_1_Template","_c43","a2","NgbPagination_ng_template_12_li_0_a_2_Template","_r34","NgbPagination_ng_template_12_li_0_a_2_Template_a_click_0_listener","pageNumber_r26","ctx_r32","selectPage","ctx_r35","disabled_r24","ctx_r28","_r10","tplNumber","ɵɵpureFunction3","NgbPagination_ng_template_12_li_0_Template","ctx_r37","ctx_r25","isEllipsis","NgbPagination_ng_template_12_Template","pages_r23","pages","NgbPagination_li_15_ng_template_2_Template","_c46","NgbPagination_li_15_Template","_r40","NgbPagination_li_15_Template_a_click_1_listener","ctx_r39","previousDisabled","tplFirst","page","NgbPagination_li_16_ng_template_2_Template","_c49","NgbPagination_li_16_Template","_r43","NgbPagination_li_16_Template_a_click_1_listener","ctx_r42","ctx_r15","tplPrevious","NgbPagination_ng_template_17_Template","NgbPagination_li_18_ng_template_2_Template","NgbPagination_li_18_Template","_r46","NgbPagination_li_18_Template_a_click_1_listener","ctx_r45","ctx_r17","_r4","tplNext","NgbPagination_li_19_ng_template_2_Template","NgbPagination_li_19_Template","_r49","NgbPagination_li_19_Template_a_click_1_listener","ctx_r48","pageCount","tplLast","_c54","NgbPopoverWindow_h3_1_ng_template_1_Template","NgbPopoverWindow_h3_1_ng_template_3_Template","NgbPopoverWindow_h3_1_Template","ɵɵtemplateRefExtractor","_r1","isTitleTemplate","NgbProgressbar_span_1_Template","ɵɵpipe","ɵɵpipeBind1","getValue","max","NgbRating_ng_template_0_Template","fill_r3","fill","NgbRating_ng_template_2_ng_template_3_Template","NgbRating_ng_template_2_Template","_r7","NgbRating_ng_template_2_Template_span_mouseenter_2_listener","index_r4","enter","NgbRating_ng_template_2_Template_span_click_2_listener","ctx_r8","handleClick","nextRate","ɵɵstyleProp","isInteractive","starTemplate","starTemplateFromContent","contexts","NgbTimepicker_button_3_Template","_r9","NgbTimepicker_button_3_Template_button_click_0_listener","changeHour","hourStep","isSmallSize","isLargeSize","NgbTimepicker_button_5_Template","_r11","NgbTimepicker_button_5_Template_button_click_0_listener","ctx_r10","NgbTimepicker_button_9_Template","_r13","NgbTimepicker_button_9_Template_button_click_0_listener","ctx_r12","changeMinute","minuteStep","NgbTimepicker_button_11_Template","NgbTimepicker_button_11_Template_button_click_0_listener","NgbTimepicker_div_12_Template","NgbTimepicker_div_13_button_1_Template","NgbTimepicker_div_13_button_1_Template_button_click_0_listener","changeSecond","secondStep","NgbTimepicker_div_13_button_3_Template","_r21","NgbTimepicker_div_13_button_3_Template_button_click_0_listener","NgbTimepicker_div_13_Template","_r23","NgbTimepicker_div_13_Template_input_change_2_listener","ctx_r22","updateSecond","target","value","NgbTimepicker_div_13_Template_input_blur_2_listener","ctx_r24","handleBlur","NgbTimepicker_div_13_Template_input_input_2_listener","formatInput","NgbTimepicker_div_13_Template_input_keydown_ArrowUp_2_listener","ctx_r26","NgbTimepicker_div_13_Template_input_keydown_ArrowDown_2_listener","spinners","formatMinSec","second","readonlyInputs","NgbTimepicker_div_14_Template","NgbTimepicker_div_15_ng_container_2_Template","ɵɵelementContainerStart","ɵɵelementContainerEnd","getAfternoonPeriod","NgbTimepicker_div_15_ng_template_3_Template","ctx_r30","getMorningPeriod","NgbTimepicker_div_15_Template","_r32","NgbTimepicker_div_15_Template_button_click_1_listener","ctx_r31","toggleMeridian","_r29","hour","NgbToast_ng_template_0_Template","header","NgbToast_ng_template_2_ng_template_1_Template","NgbToast_ng_template_2_Template","_r5","NgbToast_ng_template_2_Template_button_click_2_listener","hide","contentHeaderTpl","NgbHighlight_ng_template_0_span_0_Template","part_r1","highlightClass","NgbHighlight_ng_template_0_ng_template_1_Template","NgbHighlight_ng_template_0_Template","isOdd_r2","odd","NgbTypeaheadWindow_ng_template_0_Template","result_r3","result","term_r4","term","formatter_r5","formatter","NgbTypeaheadWindow_ng_template_2_ng_template_1_Template","_c87","NgbTypeaheadWindow_ng_template_2_Template","NgbTypeaheadWindow_ng_template_2_Template_button_mouseenter_0_listener","idx_r7","ctx_r9","markActive","NgbTypeaheadWindow_ng_template_2_Template_button_click_0_listener","result_r6","activeIdx","resultTemplate","toInteger","parseInt","toString","undefined","getValueInRange","min","Math","isString","isNumber","isNaN","isInteger","isFinite","floor","isDefined","padNumber","slice","regExpEscape","text","replace","hasClassName","element","className","split","indexOf","Element","prototype","closest","matches","msMatchesSelector","webkitMatchesSelector","s","el","document","documentElement","contains","parentElement","parentNode","nodeType","selector","reflow","body","getBoundingClientRect","runInZone","zone","source","observer","onNext","run","next","onError","e","error","onComplete","complete","subscribe","removeAccents","str","normalize","environment","animation","transitionTimerDelayMs","NgbConfig","constructor","ɵfac","NgbConfig_Factory","t","ɵprov","factory","token","providedIn","ngDevMode","ɵsetClassMetadata","args","NgbAccordionConfig","_ngbConfig","closeOthers","_animation","NgbAccordionConfig_Factory","ctorParameters","getTransitionDurationMs","transitionDelay","transitionDuration","window","getComputedStyle","transitionDelaySec","parseFloat","transitionDurationSec","noopFn","ɵ0","runningTransitions","Map","ngbRunTransition","startFn","options","running","get","runningTransition","transition$","Object","assign","delete","endFn","transitionProperty","pipe","finishTransition$","stop$","set","transitionDurationMs","runOutsideAngular","transitionEnd$","timer$","asObservable","ngbCompleteTransition","_a","measureCollapsingElementHeightPx","navigator","classList","hasShownClass","add","style","height","remove","ngbCollapsingTransition","direction","maxHeight","setInitialClasses","nextId","NgbPanelHeader","NgbPanelHeader_Factory","ɵɵdirectiveInject","ɵdir","ɵɵdefineDirective","selectors","NgbPanelTitle","NgbPanelTitle_Factory","NgbPanelContent","NgbPanelContent_Factory","NgbPanel","initClassDone","shown","ngAfterContentChecked","titleTpls","first","headerTpls","contentTpls","NgbPanel_Factory","contentQueries","NgbPanel_ContentQueries","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","inputs","outputs","propDecorators","descendants","NgbAccordion","config","_element","_ngZone","_changeDetector","activeIds","panelChange","closeOtherPanels","isExpanded","panelId","expand","_changeOpenState","_findPanelById","expandAll","panels","forEach","panel","collapse","collapseAll","toggle","_closeOthers","_updateActiveIds","onStable","panelElement","_getPanelElement","nextState","defaultPrevented","_runTransitions","enableTransition","find","p","detectChanges","nativeElement","querySelector","NgbAccordion_Factory","ɵcmp","ɵɵdefineComponent","NgbAccordion_ContentQueries","hostAttrs","hostVars","hostBindings","NgbAccordion_HostBindings","exportAs","decls","vars","consts","template","NgbAccordion_Template","dependencies","NgForOf","NgIf","NgTemplateOutlet","NgbPanelToggle","encapsulation","None","host","accordion","ngbPanelToggle","NgbPanelToggle_Factory","NgbPanelToggle_HostBindings","NgbPanelToggle_click_HostBindingHandler","ɵɵhostProperty","decorators","NGB_ACCORDION_DIRECTIVES","NgbAccordionModule","NgbAccordionModule_Factory","ɵmod","ɵɵdefineNgModule","ɵinj","ɵɵdefineInjector","imports","declarations","exports","ngJitMode","ɵɵsetNgModuleScope","NgbAlertConfig","dismissible","NgbAlertConfig_Factory","ngbAlertFadingTransition","NgbAlert","_renderer","_zone","closed","transition","ngOnChanges","changes","typeChange","firstChange","removeClass","previousValue","addClass","currentValue","ngOnInit","NgbAlert_Factory","NgbAlert_HostBindings","features","ɵɵNgOnChangesFeature","ngContentSelectors","i18n_1","ngI18nClosureMode","MSG_EXTERNAL_ngb_alert_close$$FESM2015_NG_BOOTSTRAP_JS_2","goog","getMsg","$localize","NgbAlert_Template","ɵɵprojectionDef","ɵɵprojection","styles","changeDetection","OnPush","NgbAlertModule","NgbAlertModule_Factory","entryComponents","NgbButtonLabel","NgbButtonLabel_Factory","NgbButtonLabel_HostBindings","NgbCheckBox","_label","_cd","valueChecked","valueUnChecked","onChange","_","onTouched","isFocused","onInputChange","modelToPropagate","checked","writeValue","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","markForCheck","NgbCheckBox_Factory","NgbCheckBox_HostBindings","NgbCheckBox_change_HostBindingHandler","NgbCheckBox_focus_HostBindingHandler","NgbCheckBox_blur_HostBindingHandler","ɵɵProvidersFeature","provide","useExisting","multi","providers","nextId$1","NgbRadioGroup","_radios","Set","_value","name","_disabled","onRadioChange","radio","onRadioValueUpdate","_updateRadiosValue","register","_updateRadiosDisabled","unregister","updateValue","updateDisabled","NgbRadioGroup_Factory","NgbRadio","_group","stringValue","setProperty","_checked","nameAttr","ngOnDestroy","NgbRadio_Factory","NgbRadio_HostBindings","NgbRadio_change_HostBindingHandler","NgbRadio_focus_HostBindingHandler","NgbRadio_blur_HostBindingHandler","NGB_BUTTON_DIRECTIVES","NgbButtonsModule","NgbButtonsModule_Factory","NgbCarouselConfig","interval","wrap","keyboard","pauseOnHover","pauseOnFocus","showNavigationArrows","showNavigationIndicators","NgbCarouselConfig_Factory","NgbSlideEventDirection","isBeingAnimated","ɵ0$1","removeDirectionClasses","ɵ1","removeClasses","ɵ2","ngbCarouselTransitionIn","LEFT","ngbCarouselTransitionOut","nextId$2","NgbSlide","slid","NgbSlide_Factory","NgbCarousel","_platformId","_container","_destroy$","_interval$","_mouseHover$","_focused$","_pauseOnHover$","_pauseOnFocus$","_pause$","_wrap$","slide","_transitionIds","mouseHover","prev","ARROW_LEFT","ARROW_RIGHT","ngAfterContentInit","hasNextSlide$","slideEvent","current","slides","currentSlideId","slideArr","toArray","currentSlideIdx","_getSlideIdxById","pause","hasNextSlide","TIMER","_getSlideElement","activeSlide","_getSlideById","ngAfterViewInit","slideId","_cycleToSelected","_getSlideEventDirection","_getPrevSlide","RIGHT","_getNextSlide","cycle","slideIdx","transitionIds","selectedSlide","paused","transitions","activeSlideTransition","isShown","push","previousId","nextSlide","currentActiveSlideId","nextActiveSlideId","currentActiveSlideIdx","nextActiveSlideIdx","isLastSlide","isFirstSlide","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_4","MSG_EXTERNAL_ngb_carousel_slide_number$$FESM2015_NG_BOOTSTRAP_JS__5","original_code","i18n_6","MSG_EXTERNAL_ngb_carousel_previous$$FESM2015_NG_BOOTSTRAP_JS__7","i18n_8","MSG_EXTERNAL_ngb_carousel_next$$FESM2015_NG_BOOTSTRAP_JS__9","NgbCarousel_Template","NGB_CAROUSEL_DIRECTIVES","NgbCarouselModule","NgbCarouselModule_Factory","NgbCollapseConfig","NgbCollapseConfig_Factory","NgbCollapse","ngbCollapseChange","_runTransition","_runTransitionWithEvents","open","NgbCollapse_Factory","NgbCollapseModule","NgbCollapseModule_Factory","NgbDate","month","day","from","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","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","NGB_DATEPICKER_18N_FACTORY","locale","NgbDatepickerI18nDefault","NgbDatepickerI18n","weekday","width","getWeekdayShortName","getDayNumerals","weekNumber","NgbDatepickerI18n_Factory","deps","_locale","_monthsShort","Standalone","Abbreviated","_monthsFull","Wide","Short","weekdaysStartingOnSunday","NgbDatepickerI18nDefault_Factory","String","NgbDatepickerService","_calendar","_i18n","_VALIDATORS","_state","focusVisible","toValidDate","_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","showWeekdays","NgbDatepickerConfig_Factory","NGB_DATEPICKER_DATE_ADAPTER_FACTORY","NgbDateStructAdapter","NgbDateAdapter","NgbDateAdapter_Factory","fromModel","toModel","ɵNgbDateStructAdapter_BaseFactory","NgbDateStructAdapter_Factory","NgbDatepickerContent","NgbDatepickerContent_Factory","NgbDatepicker","_service","cd","_elementRef","_ngbDateAdapter","_controlValue","_destroyed$","_publicState","navigate","dateSelect","input","oldDate","navigationPrevented","newSelectedDate","newFocusedDate","oldFocusedDate","_showWeekdays","elementToFocus","navigateTo","focusIns$","_contentEl","focusOuts$","relatedTarget","_defaultDayTemplate","onDateSelect","event","PREV","NEXT","NgbDatepicker_Factory","NgbDatepicker_ContentQueries","contentTemplate","viewQuery","NgbDatepicker_Query","ɵɵviewQuery","footerTemplate","NgbDatepicker_Template","NgbDatepickerMonth","NgbDatepickerNavigation","NgbDatepickerDayView","static","Key","NgbDatepickerKeyboardService","processKey","which","PageUp","shiftKey","PageDown","End","Home","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Enter","Space","stopPropagation","NgbDatepickerKeyboardService_Factory","_keyboardService","onKeyDown","NgbDatepickerMonth_Factory","NgbDatepickerMonth_HostBindings","NgbDatepickerMonth_keydown_HostBindingHandler","NgbDatepickerMonth_Template","onClickPrev","currentTarget","onClickNext","NgbDatepickerNavigation_Factory","showSelect","i18n_12","MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_13","i18n_14","MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_15","i18n_16","MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_17","i18n_18","MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_19","NgbDatepickerNavigation_Template","NgbDatepickerNavigation_Template_button_click_1_listener","NgbDatepickerNavigation_Template_button_click_6_listener","NgbDatepickerNavigationSelect","isContainedIn","array","some","item","ɵ0$2","matchesSelectorIfAny","ɵ1$1","ɵ2$1","isIOS","test","userAgent","maxTouchPoints","isAndroid","isMobile","wrapAsyncForMobile","setTimeout","ɵ3","ngbAutoClose","closed$","insideElements","ignoreElements","insideSelector","shouldCloseOnClick","button","escapes$","Escape","mouseDowns$","closeableClicks$","shouldClose","FOCUSABLE_ELEMENTS_SELECTOR","join","getFocusableBoundaryElements","list","querySelectorAll","tabIndex","ngbFocusTrap","stopFocusTrap$","refocusOnClick","lastFocusedElement$","Tab","tabEvent","focusedElement","last","arr","lastFocusedElement","Positioning","getAllStyles","getStyle","prop","isStaticPositioned","offsetParent","offsetParentEl","position","elPosition","parentOffset","top","bottom","left","right","offset","clientTop","clientLeft","elBcr","viewportOffset","pageYOffset","pageXOffset","elOffset","offsetHeight","offsetWidth","positionElements","hostElement","targetElement","placement","appendToBody","placementPrimary","placementSecondary","hostElPosition","targetElStyles","marginTop","marginBottom","marginLeft","marginRight","topPosition","leftPosition","transform","targetElBCR","html","windowHeight","innerHeight","clientHeight","windowWidth","innerWidth","clientWidth","placementSeparator","positionService","baseClass","placementVals","isArray","allowedPlacements","addClassesToTarget","targetPlacement","primary","secondary","classes","classname","placementToRemove","hasAuto","val","search","testPlacement","isInViewport","addedClasses","NGB_DATEPICKER_PARSER_FORMATTER_FACTORY","NgbDateISOParserFormatter","NgbDateParserFormatter","NgbDateParserFormatter_Factory","parse","dateParts","trim","format","ɵNgbDateISOParserFormatter_BaseFactory","NgbDateISOParserFormatter_Factory","NgbInputDatepickerConfig","arguments","autoClose","restoreFocus","ɵNgbInputDatepickerConfig_BaseFactory","NgbInputDatepickerConfig_Factory","NgbInputDatepicker","_parserFormatter","_elRef","_vcRef","_cfr","_dateAdapter","_document","_cRef","_elWithFocus","_model","_onChange","_onTouched","_validatorChange","_zoneSubscription","_updatePopupPosition","instance","registerOnValidatorChange","validate","c","_fromDateStruct","invalid","actual","_writeModelValue","manualDateChange","updateView","inputValueChanged","_inputValue","cf","resolveComponentFactory","createComponent","_applyPopupStyling","location","_applyDatepickerInputs","_subscribeForDatepickerOutputs","changeDetectorRef","container","appendChild","activeElement","hostView","onBlur","onFocus","_applyPopupClass","unsubscribe","datepickerInstance","optionName","newClass","oldClass","popupEl","datepickerClass","navigateEvent","positionTarget","HTMLElement","NgbInputDatepicker_Factory","NgbInputDatepicker_HostBindings","NgbInputDatepicker_input_HostBindingHandler","NgbInputDatepicker_change_HostBindingHandler","NgbInputDatepicker_focus_HostBindingHandler","NgbInputDatepicker_blur_HostBindingHandler","isMuted","NgbDatepickerDayView_Factory","NgbDatepickerDayView_HostBindings","attrs","NgbDatepickerDayView_Template","_month","_year","changeMonth","changeYear","ngAfterViewChecked","monthSelect","yearSelect","NgbDatepickerNavigationSelect_Factory","NgbDatepickerNavigationSelect_Query","i18n_23","MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_24","i18n_25","MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_26","i18n_27","MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_28","i18n_29","MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_30","NgbDatepickerNavigationSelect_Template","NgbDatepickerNavigationSelect_Template_select_change_0_listener","NgbDatepickerNavigationSelect_Template_select_change_3_listener","NgSelectOption","ɵNgSelectMultipleOption","read","NgbCalendarHijri","_setYear","_setMonth","_setDay","toGregorian","MuhDate","fromGregorian","mDays","getDaysPerMonth","ɵNgbCalendarHijri_BaseFactory","NgbCalendarHijri_Factory","isIslamicLeapYear","hYear","isGregorianLeapYear","gDate","getIslamicMonthStart","hMonth","ceil","getIslamicYearStart","mod","a","b","GREGORIAN_EPOCH","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","jalaliDate","jdn","jalaliToJulian","julianToGregorian","setHours","gdate","g2d","gregorianToJulian","julianToJalali","setJalaliYear","yearValue","setJalaliMonth","setJalaliDay","mod$1","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$1","isGregorianLeapYear$1","numberOfFirstDayInYear","monthsBeforeYear","fractionalMonthsBeforeYear","dayNumber","timeOfDay","isHebrewLeapYear","getDaysInGregorianMonth","getHebrewMonths","getDaysInHebrewYear","getDaysInHebrewMonth","yearLength","yearType","leapYear","daysInMonth","getDayNumberInHebrewYear","numberOfDay","setHebrewMonth","setHebrewDay","fromGregorian$1","daysSinceHebEpoch","monthsSinceHebEpoch","firstDayOfThisYear","dayOfYear","toGregorian$1","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","MONTHS","MONTHS_LEAP","NgbDatepickerI18nHebrew","ɵNgbDatepickerI18nHebrew_BaseFactory","NgbDatepickerI18nHebrew_Factory","toGregorian$2","fromGregorian$2","NgbCalendarBuddhist","ɵNgbCalendarBuddhist_BaseFactory","NgbCalendarBuddhist_Factory","NgbDateNativeAdapter","_fromNativeDate","_toNativeDate","ɵNgbDateNativeAdapter_BaseFactory","NgbDateNativeAdapter_Factory","NgbDateNativeUTCAdapter","getUTCFullYear","getUTCMonth","getUTCDate","setUTCFullYear","ɵNgbDateNativeUTCAdapter_BaseFactory","NgbDateNativeUTCAdapter_Factory","NgbDatepickerModule","NgbDatepickerModule_Factory","NgbDropdownConfig","NgbDropdownConfig_Factory","NgbNavbar","NgbNavbar_Factory","NgbDropdownItem","elementRef","NgbDropdownItem_Factory","NgbDropdownItem_HostBindings","NgbDropdownMenu","dropdown","NgbDropdownMenu_Factory","NgbDropdown","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_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","ngbNavbar","_closed$","_bodyContainer","_open","openChange","display","_positionMenu","_applyPlacementClasses","_setCloseHandlers","_applyContainer","isFirstChange","dropdownClass","_applyCustomDropdownClass","_anchor","_menu","_resetContainer","itemElements","_getMenuElements","itemElement","isEventFromToggle","_isEventFromToggle","setAttribute","removeAttribute","focusableElements","_isDropup","menu","_getFirstPlacement","renderer","dropdownElement","dropdownMenuElement","removeStyle","removeChild","bodyContainer","createElement","setStyle","NgbDropdown_Factory","NgbDropdown_ContentQueries","NgbDropdown_HostBindings","NGB_DROPDOWN_DIRECTIVES","NgbDropdownModule","NgbDropdownModule_Factory","NgbModalConfig","backdrop","NgbModalConfig_Factory","ContentRef","nodes","viewRef","componentRef","PopupService","_type","_injector","_viewContainerRef","_componentFactoryResolver","_applicationRef","_windowRef","_contentRef","content","_getContentRef","windowRef","detachView","destroy","createEmbeddedView","attachView","rootNodes","createText","noop","ɵ0$3","ScrollBar","compensate","_getWidth","_isPresent","_adjustBody","scrollbarWidth","userSetPaddingStyle","paddingRight","actualPadding","rect","bodyToViewportGap","uncertainty","measurer","ScrollBar_Factory","NgbModalBackdrop","_el","NgbModalBackdrop_Factory","NgbModalBackdrop_HostBindings","backdropClass","NgbModalBackdrop_Template","NgbActiveModal","dismiss","reason","NgbModalRef","_windowCmptRef","_backdropCmptRef","_beforeDismiss","_closed","_dismissed","_hidden","dismissEvent","Promise","resolve","reject","_resolve","_reject","then","componentInstance","dismissed","_removeModalElements","_dismiss","windowTransition$","backdropTransition$","ModalDismissReasons","NgbModalWindow","_show","_disableEventHandling","dialogTransition$","_dialogEl","transitions$","_restoreFocus","_enableEventHandling","_setFocus","requestAnimationFrame","ESC","_bumpBackdrop","preventClose","BACKDROP_CLICK","autoFocusable","firstFocusable","elWithFocus","NgbModalWindow_Factory","NgbModalWindow_Query","NgbModalWindow_HostBindings","ariaLabelledBy","ariaDescribedBy","windowClass","centered","scrollable","size","modalDialogClass","NgbModalWindow_Template","NgbModalStack","_scrollBar","_rendererFactory","_activeWindowCmptHasChanged","_ariaHiddenValues","_backdropAttributes","_modalRefs","_windowAttributes","_windowCmpts","_activeInstances","activeWindowCmpt","_revertAriaHidden","_setAriaHidden","moduleCFR","contentInjector","containerEl","createRenderer","revertPaddingForScrollBar","removeBodyClass","activeModal","contentRef","injector","backdropCmptRef","_attachBackdrop","windowCmptRef","_attachWindowComponent","ngbModalRef","beforeDismiss","_registerModalRef","_registerWindowCmpt","_applyWindowOptions","_applyBackdropOptions","activeInstances","dismissAll","hasOpenModals","backdropFactory","create","windowFactory","windowInstance","backdropInstance","_createFromTemplateRef","_createFromString","_createFromComponent","component","createTextNode","contentCmptFactory","modalContentInjector","useValue","parent","componentNativeEl","children","sibling","nodeName","getAttribute","clear","unregisterModalRef","ngbWindowCmpt","onDestroy","NgbModalStack_Factory","NgbModal","_moduleCFR","_modalStack","_config","combinedOptions","NgbModal_Factory","NgbModalModule","NgbModalModule_Factory","NgbNavConfig","orientation","roles","NgbNavConfig_Factory","isValidNavId","ɵ0$4","navCounter","NgbNavContent","NgbNavContent_Factory","NgbNavItem","_nav","domId","_id","panelDomId","NgbNavItem_Factory","NgbNav","NgbNavItem_ContentQueries","NgbNavItem_HostBindings","role","activeIdChange","destroy$","navItemChange$","navChange","click","_updateActiveId","enabledLinks","links","link","navItem","elRef","items","_notifyItemChanged","emitNavChange","nextItemId","_getItemById","itemId","NgbNav_Factory","ɵɵinjectAttribute","NgbNav_ContentQueries","NgbNavLink","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","hasNavItemClass","Node","COMMENT_NODE","NgbNavLink_Factory","NgbNavLink_HostBindings","NgbNavLink_click_HostBindingHandler","ngbNavFadeOutTransition","ngbNavFadeInTransition","NgbNavPane","NgbNavPane_Factory","NgbNavPane_HostBindings","NgbNavOutlet","_activePane","_updateActivePane","nextItem","activeItem","_getPaneForItem","_b","_getActivePane","_panes","pane","NgbNavOutlet_Factory","NgbNavOutlet_Query","NgbNavOutlet_HostBindings","NgbNavOutlet_Template","NGB_NAV_DIRECTIVES","NgbNavModule","NgbNavModule_Factory","NgbPaginationConfig","boundaryLinks","directionLinks","ellipses","maxSize","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_34","MSG_EXTERNAL_ngb_pagination_first$$FESM2015_NG_BOOTSTRAP_JS__35","i18n_36","MSG_EXTERNAL_ngb_pagination_previous$$FESM2015_NG_BOOTSTRAP_JS__37","i18n_38","MSG_EXTERNAL_ngb_pagination_next$$FESM2015_NG_BOOTSTRAP_JS__39","i18n_40","MSG_EXTERNAL_ngb_pagination_last$$FESM2015_NG_BOOTSTRAP_JS__41","i18n_44","MSG_EXTERNAL_ngb_pagination_first_aria$$FESM2015_NG_BOOTSTRAP_JS__45","i18n_47","MSG_EXTERNAL_ngb_pagination_previous_aria$$FESM2015_NG_BOOTSTRAP_JS__48","i18n_50","MSG_EXTERNAL_ngb_pagination_next_aria$$FESM2015_NG_BOOTSTRAP_JS__51","i18n_52","MSG_EXTERNAL_ngb_pagination_last_aria$$FESM2015_NG_BOOTSTRAP_JS__53","NgbPagination_Template","DIRECTIVES","NgbPaginationModule","NgbPaginationModule_Factory","Trigger","isManual","DEFAULT_ALIASES","parseTriggers","triggers","aliases","trimmedTriggers","parsedTriggers","trigger","triggerPair","alias","manualTriggers","observeTriggers","isOpenedFn","subscriber","listeners","openFn","closeFn","toggleFn","listen","unsubscribeFn","delayOrNoop","ɵ0$5","triggerDelay","openDelay","closeDelay","input$","pending","filteredInput$","currentlyOpen","delayedOpen$","delayedClose$","listenToTriggers","subscription","NgbPopoverConfig","disablePopover","NgbPopoverConfig_Factory","nextId$3","NgbPopoverWindow","NgbPopoverWindow_Factory","NgbPopoverWindow_HostBindings","popoverClass","NgbPopoverWindow_Template","NgbPopover","componentFactoryResolver","viewContainerRef","applicationRef","_ngbPopoverWindowId","_popupService","_isDisabled","ngbPopover","popoverTitle","_unregisterListenersFn","bind","NgbPopover_Factory","NgbPopoverModule","NgbPopoverModule_Factory","NgbProgressbarConfig","animated","striped","showValue","NgbProgressbarConfig_Factory","NgbProgressbar","textType","_max","getPercentValue","NgbProgressbar_Factory","NgbProgressbar_HostBindings","i18n_55","MSG_EXTERNAL_ngb_progressbar_value$$FESM2015_NG_BOOTSTRAP_JS__56","NgbProgressbar_Template","ɵɵclassMapInterpolate4","PercentPipe","class","NgbProgressbarModule","NgbProgressbarModule_Factory","NgbRatingConfig","readonly","resettable","NgbRatingConfig_Factory","NgbRating","_changeDetectorRef","hover","leave","rateChange","ariaValueText","update","rate","handleKeyDown","v","k","reset","internalChange","newRate","nextValue","NgbRating_Factory","NgbRating_ContentQueries","NgbRating_HostBindings","NgbRating_blur_HostBindingHandler","NgbRating_keydown_HostBindingHandler","NgbRating_mouseleave_HostBindingHandler","NgbRating_Template","NgbRatingModule","NgbRatingModule_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","NGB_TIMEPICKER_I18N_FACTORY","NgbTimepickerI18nDefault","NgbTimepickerI18n","NgbTimepickerI18n_Factory","_periods","Narrow","NgbTimepickerI18nDefault_Factory","FILTER_REGEX","NgbTimepicker","_ngbTimeAdapter","_hourStep","_minuteStep","_secondStep","structValue","propagateModelChange","newVal","isPM","enteredHour","formatHour","touched","NgbTimepicker_Factory","i18n_57","MSG_EXTERNAL_ngb_timepicker_HH$$FESM2015_NG_BOOTSTRAP_JS_58","i18n_59","MSG_EXTERNAL_ngb_timepicker_hours$$FESM2015_NG_BOOTSTRAP_JS_60","i18n_61","MSG_EXTERNAL_ngb_timepicker_MM$$FESM2015_NG_BOOTSTRAP_JS_62","i18n_63","MSG_EXTERNAL_ngb_timepicker_minutes$$FESM2015_NG_BOOTSTRAP_JS_64","i18n_65","MSG_EXTERNAL_ngb_timepicker_increment_hours$$FESM2015_NG_BOOTSTRAP_JS__66","i18n_67","MSG_EXTERNAL_ngb_timepicker_decrement_hours$$FESM2015_NG_BOOTSTRAP_JS__68","i18n_69","MSG_EXTERNAL_ngb_timepicker_increment_minutes$$FESM2015_NG_BOOTSTRAP_JS__70","i18n_71","MSG_EXTERNAL_ngb_timepicker_decrement_minutes$$FESM2015_NG_BOOTSTRAP_JS__72","i18n_73","MSG_EXTERNAL_ngb_timepicker_SS$$FESM2015_NG_BOOTSTRAP_JS__74","i18n_75","MSG_EXTERNAL_ngb_timepicker_seconds$$FESM2015_NG_BOOTSTRAP_JS__76","i18n_77","MSG_EXTERNAL_ngb_timepicker_increment_seconds$$FESM2015_NG_BOOTSTRAP_JS___78","i18n_79","MSG_EXTERNAL_ngb_timepicker_decrement_seconds$$FESM2015_NG_BOOTSTRAP_JS___80","i18n_81","MSG_EXTERNAL_ngb_timepicker_PM$$FESM2015_NG_BOOTSTRAP_JS___82","i18n_83","MSG_EXTERNAL_ngb_timepicker_AM$$FESM2015_NG_BOOTSTRAP_JS___84","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","show","_clearTimeout","_timeoutID","clearTimeout","NgbToast_Factory","NgbToast_ContentQueries","NgbToast_HostBindings","i18n_85","MSG_EXTERNAL_ngb_toast_close_aria$$FESM2015_NG_BOOTSTRAP_JS__86","NgbToast_Template","NgbToastModule","NgbToastModule_Factory","NgbTooltipConfig","disableTooltip","NgbTooltipConfig_Factory","nextId$4","NgbTooltipWindow","NgbTooltipWindow_Factory","NgbTooltipWindow_HostBindings","tooltipClass","NgbTooltipWindow_Template","NgbTooltip","_ngbTooltipWindowId","ngbTooltip","_ngbTooltip","NgbTooltip_Factory","NgbTooltipModule","NgbTooltipModule_Factory","NgbHighlight","accentSensitive","console","warn","terms","prepareTerm","escapedTerms","toSplit","parts","RegExp","substring","NgbHighlight_Factory","NgbHighlight_Template","NgbTypeaheadWindow","focusFirst","selectEvent","activeChangeEvent","hasActive","results","getActive","_activeChanged","resetActive","NgbTypeaheadWindow_Factory","NgbTypeaheadWindow_HostBindings","NgbTypeaheadWindow_mousedown_HostBindingHandler","popupClass","NgbTypeaheadWindow_Template","ARIA_LIVE_DELAY","ARIA_LIVE_DELAY_FACTORY","getLiveElement","lazyCreate","Live","_delay","say","message","textContent","setText","Live_Factory","NgbTypeaheadConfig","editable","showHint","NgbTypeaheadConfig_Factory","nextWindowId","NgbTypeahead","ngZone","_live","_subscription","_inputValueBackup","autocomplete","selectItem","activeDescendant","popupId","_valueChanges","_resubscribeTypeahead","isPopupOpen","_subscribeToUserInput","ngbTypeahead","_unsubscribeFromUserInput","_closePopup","_writeInputValue","_formatItemForInput","dismissPopup","_showHint","_selectResult","_openPopup","_selectResultClosePopup","userInputLowerCase","toLowerCase","formattedVal","substr","apply","inputFormatter","results$","resultFormatter","NgbTypeahead_Factory","NgbTypeahead_HostBindings","NgbTypeahead_blur_HostBindingHandler","NgbTypeahead_keydown_HostBindingHandler","NgbTypeaheadModule","NgbTypeaheadModule_Factory","NGB_MODULES","NgbModule","NgbModule_Factory","ɵa","ɵb","ɵba","ɵc","ɵd","ɵe","ɵf","ɵg","ɵh","ɵi","ɵj","ɵk","ɵl","ɵm","ɵn","ɵo","ɵp","ɵq","ɵr","ɵs","ɵt","ɵu","ɵv","ɵw","ɵx","ɵy","ɵz"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@ng-bootstrap/ng-bootstrap/__ivy_ngcc__/fesm2015/ng-bootstrap.js"],"sourcesContent":["import { ɵɵdefineInjectable, Injectable, ɵɵinject, Directive, TemplateRef, EventEmitter, Input, Output, ContentChildren, Component, ViewEncapsulation, ElementRef, NgZone, ChangeDetectorRef, Optional, Host, NgModule, ChangeDetectionStrategy, Renderer2, forwardRef, Inject, PLATFORM_ID, LOCALE_ID, ViewChild, ContentChild, ViewContainerRef, ComponentFactoryResolver, Injector, ApplicationRef, INJECTOR, RendererFactory2, Attribute, ViewChildren, HostBinding, InjectionToken } from '@angular/core';\nimport { CommonModule, isPlatformBrowser, getLocaleMonthNames, FormStyle, TranslationWidth, getLocaleDayNames, formatDate, DOCUMENT, getLocaleDayPeriods } from '@angular/common';\nimport { Observable, EMPTY, of, Subject, fromEvent, timer, race, BehaviorSubject, combineLatest, NEVER, zip, merge } from 'rxjs';\nimport { endWith, takeUntil, filter, take, map, startWith, distinctUntilChanged, switchMap, tap, withLatestFrom, delay, mergeMap, skip, share } from 'rxjs/operators';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule } from '@angular/forms';\n\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\nimport * as ɵngcc2 from '@angular/forms';\n\nfunction NgbAccordion_ng_template_0_ng_template_2_Template(rf, ctx) { }\nfunction NgbAccordion_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"button\", 3);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵtemplate(2, NgbAccordion_ng_template_0_ng_template_2_Template, 0, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const panel_r3 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngbPanelToggle\", panel_r3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", panel_r3.title, \"\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", panel_r3.titleTpl == null ? null : panel_r3.titleTpl.templateRef);\n} }\nfunction NgbAccordion_ng_template_2_ng_template_2_Template(rf, ctx) { }\nfunction NgbAccordion_ng_template_2_div_3_ng_template_2_Template(rf, ctx) { }\nfunction NgbAccordion_ng_template_2_div_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 8)(1, \"div\", 9);\n ɵngcc0.ɵɵtemplate(2, NgbAccordion_ng_template_2_div_3_ng_template_2_Template, 0, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const panel_r5 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵpropertyInterpolate(\"id\", panel_r5.id);\n ɵngcc0.ɵɵattribute(\"aria-labelledby\", panel_r5.id + \"-header\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (panel_r5.contentTpl == null ? null : panel_r5.contentTpl.templateRef) || null);\n} }\nconst _c0 = function (a0, a1) { return { $implicit: a0, opened: a1 }; };\nfunction NgbAccordion_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\")(1, \"div\", 5);\n ɵngcc0.ɵɵtemplate(2, NgbAccordion_ng_template_2_ng_template_2_Template, 0, 0, \"ng-template\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, NgbAccordion_ng_template_2_div_3_Template, 3, 3, \"div\", 7);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const panel_r5 = ctx.$implicit;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵclassMap(\"card \" + (panel_r5.cardClass || \"\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassMap(\"card-header \" + (panel_r5.type ? \"bg-\" + panel_r5.type : ctx_r2.type ? \"bg-\" + ctx_r2.type : \"\"));\n ɵngcc0.ɵɵpropertyInterpolate1(\"id\", \"\", panel_r5.id, \"-header\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (panel_r5.headerTpl == null ? null : panel_r5.headerTpl.templateRef) || _r0)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(8, _c0, panel_r5, panel_r5.isOpen));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r2.destroyOnHide || panel_r5.isOpen || panel_r5.transitionRunning);\n} }\nfunction NgbAlert_button_1_Template(rf, ctx) { if (rf & 1) {\n const _r2 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 1);\n ɵngcc0.ɵɵlistener(\"click\", function NgbAlert_button_1_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r2); const ctx_r1 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r1.close()); });\n ɵngcc0.ɵɵelementStart(1, \"span\", 2);\n ɵngcc0.ɵɵtext(2, \"\\u00D7\");\n ɵngcc0.ɵɵelementEnd()();\n} }\nconst _c3 = [\"*\"];\nfunction NgbCarousel_li_1_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function NgbCarousel_li_1_Template_li_click_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r6); const slide_r4 = restoredCtx.$implicit; const ctx_r5 = ɵngcc0.ɵɵnextContext(); ctx_r5.focus(); return ɵngcc0.ɵɵresetView(ctx_r5.select(slide_r4.id, ctx_r5.NgbSlideEventSource.INDICATOR)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const slide_r4 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"active\", slide_r4.id === ctx_r0.activeId);\n ɵngcc0.ɵɵattribute(\"aria-labelledby\", \"slide-\" + slide_r4.id)(\"aria-controls\", \"slide-\" + slide_r4.id)(\"aria-selected\", slide_r4.id === ctx_r0.activeId);\n} }\nfunction NgbCarousel_div_3_ng_template_3_Template(rf, ctx) { }\nfunction NgbCarousel_div_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 7)(1, \"span\", 8);\n ɵngcc0.ɵɵi18n(2, 9);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, NgbCarousel_div_3_ng_template_3_Template, 0, 0, \"ng-template\", 10);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const slide_r7 = ctx.$implicit;\n const i_r8 = ctx.index;\n const c_r9 = ctx.count;\n ɵngcc0.ɵɵproperty(\"id\", \"slide-\" + slide_r7.id);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵi18nExp(i_r8 + 1)(c_r9);\n ɵngcc0.ɵɵi18nApply(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", slide_r7.tplRef);\n} }\nfunction NgbCarousel_a_4_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbCarousel_a_4_Template_a_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r11.arrowLeft()); });\n ɵngcc0.ɵɵelement(1, \"span\", 12);\n ɵngcc0.ɵɵelementStart(2, \"span\", 8);\n ɵngcc0.ɵɵi18n(3, 13);\n ɵngcc0.ɵɵelementEnd()();\n} }\nfunction NgbCarousel_a_5_Template(rf, ctx) { if (rf & 1) {\n const _r14 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 14);\n ɵngcc0.ɵɵlistener(\"click\", function NgbCarousel_a_5_Template_a_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r14); const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r13.arrowRight()); });\n ɵngcc0.ɵɵelement(1, \"span\", 15);\n ɵngcc0.ɵɵelementStart(2, \"span\", 8);\n ɵngcc0.ɵɵi18n(3, 16);\n ɵngcc0.ɵɵelementEnd()();\n} }\nconst _c10 = [\"defaultDayTemplate\"];\nconst _c11 = [\"content\"];\nfunction NgbDatepicker_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 7);\n} if (rf & 2) {\n const date_r8 = ctx.date;\n const currentMonth_r9 = ctx.currentMonth;\n const selected_r10 = ctx.selected;\n const disabled_r11 = ctx.disabled;\n const focused_r12 = ctx.focused;\n ɵngcc0.ɵɵproperty(\"date\", date_r8)(\"currentMonth\", currentMonth_r9)(\"selected\", selected_r10)(\"disabled\", disabled_r11)(\"focused\", focused_r12);\n} }\nfunction NgbDatepicker_ng_template_2_div_0_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 12);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const month_r14 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r16 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r16.i18n.getMonthLabel(month_r14.firstDate), \" \");\n} }\nfunction NgbDatepicker_ng_template_2_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 9);\n ɵngcc0.ɵɵtemplate(1, NgbDatepicker_ng_template_2_div_0_div_1_Template, 2, 1, \"div\", 10);\n ɵngcc0.ɵɵelement(2, \"ngb-datepicker-month\", 11);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const month_r14 = ctx.$implicit;\n const ctx_r13 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r13.navigation === \"none\" || ctx_r13.displayMonths > 1 && ctx_r13.navigation === \"select\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"month\", month_r14.firstDate);\n} }\nfunction NgbDatepicker_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepicker_ng_template_2_div_0_Template, 3, 2, \"div\", 8);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r3.model.months);\n} }\nfunction NgbDatepicker_ngb_datepicker_navigation_5_Template(rf, ctx) { if (rf & 1) {\n const _r19 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"ngb-datepicker-navigation\", 13);\n ɵngcc0.ɵɵlistener(\"navigate\", function NgbDatepicker_ngb_datepicker_navigation_5_Template_ngb_datepicker_navigation_navigate_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r19); const ctx_r18 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r18.onNavigateEvent($event)); })(\"select\", function NgbDatepicker_ngb_datepicker_navigation_5_Template_ngb_datepicker_navigation_select_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r19); const ctx_r20 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r20.onNavigateDateSelect($event)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"date\", ctx_r4.model.firstDate)(\"months\", ctx_r4.model.months)(\"disabled\", ctx_r4.model.disabled)(\"showSelect\", ctx_r4.model.navigation === \"select\")(\"prevDisabled\", ctx_r4.model.prevDisabled)(\"nextDisabled\", ctx_r4.model.nextDisabled)(\"selectBoxes\", ctx_r4.model.selectBoxes);\n} }\nfunction NgbDatepicker_ng_template_8_Template(rf, ctx) { }\nfunction NgbDatepicker_ng_template_9_Template(rf, ctx) { }\nfunction NgbDatepickerMonth_div_0_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 5);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r2.i18n.getWeekLabel());\n} }\nfunction NgbDatepickerMonth_div_0_div_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 6);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const weekday_r4 = ctx.$implicit;\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(weekday_r4);\n} }\nfunction NgbDatepickerMonth_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 2);\n ɵngcc0.ɵɵtemplate(1, NgbDatepickerMonth_div_0_div_1_Template, 2, 1, \"div\", 3);\n ɵngcc0.ɵɵtemplate(2, NgbDatepickerMonth_div_0_div_2_Template, 2, 1, \"div\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.datepicker.showWeekNumbers);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.viewModel.weekdays);\n} }\nfunction NgbDatepickerMonth_ng_template_1_div_0_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 11);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const week_r5 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r7.i18n.getWeekNumerals(week_r5.number));\n} }\nfunction NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_ng_template_0_Template(rf, ctx) { }\nfunction NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_ng_template_0_Template, 0, 0, \"ng-template\", 14);\n} if (rf & 2) {\n const day_r10 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r11 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r11.datepicker.dayTemplate)(\"ngTemplateOutletContext\", day_r10.context);\n} }\nfunction NgbDatepickerMonth_ng_template_1_div_0_div_2_Template(rf, ctx) { if (rf & 1) {\n const _r15 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 12);\n ɵngcc0.ɵɵlistener(\"click\", function NgbDatepickerMonth_ng_template_1_div_0_div_2_Template_div_click_0_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r15); const day_r10 = restoredCtx.$implicit; const ctx_r14 = ɵngcc0.ɵɵnextContext(3); ctx_r14.doSelect(day_r10); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵtemplate(1, NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_Template, 1, 2, \"ng-template\", 13);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const day_r10 = ctx.$implicit;\n ɵngcc0.ɵɵclassProp(\"disabled\", day_r10.context.disabled)(\"hidden\", day_r10.hidden)(\"ngb-dp-today\", day_r10.context.today);\n ɵngcc0.ɵɵproperty(\"tabindex\", day_r10.tabindex);\n ɵngcc0.ɵɵattribute(\"aria-label\", day_r10.ariaLabel);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !day_r10.hidden);\n} }\nfunction NgbDatepickerMonth_ng_template_1_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 8);\n ɵngcc0.ɵɵtemplate(1, NgbDatepickerMonth_ng_template_1_div_0_div_1_Template, 2, 1, \"div\", 9);\n ɵngcc0.ɵɵtemplate(2, NgbDatepickerMonth_ng_template_1_div_0_div_2_Template, 2, 9, \"div\", 10);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const week_r5 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.datepicker.showWeekNumbers);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", week_r5.days);\n} }\nfunction NgbDatepickerMonth_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerMonth_ng_template_1_div_0_Template, 3, 2, \"div\", 7);\n} if (rf & 2) {\n const week_r5 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngIf\", !week_r5.collapsed);\n} }\nfunction NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"ngb-datepicker-navigation-select\", 7);\n ɵngcc0.ɵɵlistener(\"select\", function NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template_ngb_datepicker_navigation_select_select_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r2.select.emit($event)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"date\", ctx_r0.date)(\"disabled\", ctx_r0.disabled)(\"months\", ctx_r0.selectBoxes.months)(\"years\", ctx_r0.selectBoxes.years);\n} }\nfunction NgbDatepickerNavigation_4_ng_template_0_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n} }\nfunction NgbDatepickerNavigation_4_ng_template_0_div_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n} }\nfunction NgbDatepickerNavigation_4_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerNavigation_4_ng_template_0_div_0_Template, 1, 0, \"div\", 9);\n ɵngcc0.ɵɵelementStart(1, \"div\", 10);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, NgbDatepickerNavigation_4_ng_template_0_div_3_Template, 1, 0, \"div\", 9);\n} if (rf & 2) {\n const month_r5 = ctx.$implicit;\n const i_r6 = ctx.index;\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", i_r6 > 0);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r4.i18n.getMonthLabel(month_r5.firstDate), \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", i_r6 !== ctx_r4.months.length - 1);\n} }\nfunction NgbDatepickerNavigation_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerNavigation_4_ng_template_0_Template, 4, 3, \"ng-template\", 8);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r1.months);\n} }\nconst _c20 = [\"ngbDatepickerDayView\", \"\"];\nconst _c21 = [\"month\"];\nconst _c22 = [\"year\"];\nfunction NgbDatepickerNavigationSelect_option_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 5);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const m_r4 = ctx.$implicit;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"value\", m_r4);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r1.i18n.getMonthFullName(m_r4, ctx_r1.date == null ? null : ctx_r1.date.year));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r1.i18n.getMonthShortName(m_r4, ctx_r1.date == null ? null : ctx_r1.date.year));\n} }\nfunction NgbDatepickerNavigationSelect_option_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 5);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const y_r5 = ctx.$implicit;\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"value\", y_r5);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r3.i18n.getYearNumerals(y_r5));\n} }\nconst _c31 = [\"dialog\"];\nconst _c32 = [\"ngbNavOutlet\", \"\"];\nfunction NgbNavOutlet_ng_template_0_div_0_ng_template_1_Template(rf, ctx) { }\nconst _c33 = function (a0) { return { $implicit: a0 }; };\nfunction NgbNavOutlet_ng_template_0_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 2);\n ɵngcc0.ɵɵtemplate(1, NgbNavOutlet_ng_template_0_div_0_ng_template_1_Template, 0, 0, \"ng-template\", 3);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r1 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"item\", item_r1)(\"nav\", ctx_r2.nav)(\"role\", ctx_r2.paneRole);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (item_r1.contentTpl == null ? null : item_r1.contentTpl.templateRef) || null)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(5, _c33, item_r1.active || ctx_r2.isPanelTransitioning(item_r1)));\n} }\nfunction NgbNavOutlet_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbNavOutlet_ng_template_0_div_0_Template, 2, 7, \"div\", 1);\n} if (rf & 2) {\n const item_r1 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", item_r1.isPanelInDom() || ctx_r0.isPanelTransitioning(item_r1));\n} }\nfunction NgbPagination_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵi18n(1, 10);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction NgbPagination_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵi18n(1, 11);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction NgbPagination_ng_template_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵi18n(1, 12);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction NgbPagination_ng_template_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 9);\n ɵngcc0.ɵɵi18n(1, 13);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction NgbPagination_ng_template_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0, \"...\");\n} }\nfunction NgbPagination_ng_template_10_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 15);\n ɵngcc0.ɵɵtext(1, \"(current)\");\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction NgbPagination_ng_template_10_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n ɵngcc0.ɵɵtemplate(1, NgbPagination_ng_template_10_span_1_Template, 2, 0, \"span\", 14);\n} if (rf & 2) {\n const page_r19 = ctx.$implicit;\n const currentPage_r20 = ctx.currentPage;\n ɵngcc0.ɵɵtextInterpolate1(\" \", page_r19, \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", page_r19 === currentPage_r20);\n} }\nfunction NgbPagination_ng_template_12_li_0_a_1_ng_template_1_Template(rf, ctx) { }\nconst _c42 = function (a1) { return { disabled: true, currentPage: a1 }; };\nfunction NgbPagination_ng_template_12_li_0_a_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"a\", 20);\n ɵngcc0.ɵɵtemplate(1, NgbPagination_ng_template_12_li_0_a_1_ng_template_1_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const page_r22 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r27 = ɵngcc0.ɵɵnextContext();\n const _r8 = ɵngcc0.ɵɵreference(9);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r27.tplEllipsis == null ? null : ctx_r27.tplEllipsis.templateRef) || _r8)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(2, _c42, page_r22));\n} }\nfunction NgbPagination_ng_template_12_li_0_a_2_ng_template_1_Template(rf, ctx) { }\nconst _c43 = function (a0, a1, a2) { return { disabled: a0, $implicit: a1, currentPage: a2 }; };\nfunction NgbPagination_ng_template_12_li_0_a_2_Template(rf, ctx) { if (rf & 1) {\n const _r34 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 21);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_ng_template_12_li_0_a_2_Template_a_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r34); const pageNumber_r26 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r32 = ɵngcc0.ɵɵnextContext(2); ctx_r32.selectPage(pageNumber_r26); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵtemplate(1, NgbPagination_ng_template_12_li_0_a_2_ng_template_1_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const pageNumber_r26 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r35 = ɵngcc0.ɵɵnextContext();\n const disabled_r24 = ctx_r35.disabled;\n const page_r22 = ctx_r35.$implicit;\n const ctx_r28 = ɵngcc0.ɵɵnextContext();\n const _r10 = ɵngcc0.ɵɵreference(11);\n ɵngcc0.ɵɵattribute(\"tabindex\", disabled_r24 ? \"-1\" : null)(\"aria-disabled\", disabled_r24 ? \"true\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r28.tplNumber == null ? null : ctx_r28.tplNumber.templateRef) || _r10)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(4, _c43, disabled_r24, pageNumber_r26, page_r22));\n} }\nfunction NgbPagination_ng_template_12_li_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 17);\n ɵngcc0.ɵɵtemplate(1, NgbPagination_ng_template_12_li_0_a_1_Template, 2, 4, \"a\", 18);\n ɵngcc0.ɵɵtemplate(2, NgbPagination_ng_template_12_li_0_a_2_Template, 2, 8, \"a\", 19);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const pageNumber_r26 = ctx.$implicit;\n const ctx_r37 = ɵngcc0.ɵɵnextContext();\n const page_r22 = ctx_r37.$implicit;\n const disabled_r24 = ctx_r37.disabled;\n const ctx_r25 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"active\", pageNumber_r26 === page_r22)(\"disabled\", ctx_r25.isEllipsis(pageNumber_r26) || disabled_r24);\n ɵngcc0.ɵɵattribute(\"aria-current\", pageNumber_r26 === page_r22 ? \"page\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r25.isEllipsis(pageNumber_r26));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r25.isEllipsis(pageNumber_r26));\n} }\nfunction NgbPagination_ng_template_12_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbPagination_ng_template_12_li_0_Template, 3, 7, \"li\", 16);\n} if (rf & 2) {\n const pages_r23 = ctx.pages;\n ɵngcc0.ɵɵproperty(\"ngForOf\", pages_r23);\n} }\nfunction NgbPagination_li_15_ng_template_2_Template(rf, ctx) { }\nconst _c46 = function (a0, a1) { return { disabled: a0, currentPage: a1 }; };\nfunction NgbPagination_li_15_Template(rf, ctx) { if (rf & 1) {\n const _r40 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 17)(1, \"a\", 22);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_li_15_Template_a_click_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r40); const ctx_r39 = ɵngcc0.ɵɵnextContext(); ctx_r39.selectPage(1); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_15_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r14 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx_r14.previousDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx_r14.previousDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r14.previousDisabled() ? \"true\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r14.tplFirst == null ? null : ctx_r14.tplFirst.templateRef) || _r0)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(6, _c46, ctx_r14.previousDisabled(), ctx_r14.page));\n} }\nfunction NgbPagination_li_16_ng_template_2_Template(rf, ctx) { }\nconst _c49 = function (a0) { return { disabled: a0 }; };\nfunction NgbPagination_li_16_Template(rf, ctx) { if (rf & 1) {\n const _r43 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 17)(1, \"a\", 23);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_li_16_Template_a_click_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r43); const ctx_r42 = ɵngcc0.ɵɵnextContext(); ctx_r42.selectPage(ctx_r42.page - 1); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_16_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r15 = ɵngcc0.ɵɵnextContext();\n const _r2 = ɵngcc0.ɵɵreference(3);\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx_r15.previousDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx_r15.previousDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r15.previousDisabled() ? \"true\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r15.tplPrevious == null ? null : ctx_r15.tplPrevious.templateRef) || _r2)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(6, _c49, ctx_r15.previousDisabled()));\n} }\nfunction NgbPagination_ng_template_17_Template(rf, ctx) { }\nfunction NgbPagination_li_18_ng_template_2_Template(rf, ctx) { }\nfunction NgbPagination_li_18_Template(rf, ctx) { if (rf & 1) {\n const _r46 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 17)(1, \"a\", 24);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_li_18_Template_a_click_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r46); const ctx_r45 = ɵngcc0.ɵɵnextContext(); ctx_r45.selectPage(ctx_r45.page + 1); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_18_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r17 = ɵngcc0.ɵɵnextContext();\n const _r4 = ɵngcc0.ɵɵreference(5);\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx_r17.nextDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx_r17.nextDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r17.nextDisabled() ? \"true\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r17.tplNext == null ? null : ctx_r17.tplNext.templateRef) || _r4)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(6, _c46, ctx_r17.nextDisabled(), ctx_r17.page));\n} }\nfunction NgbPagination_li_19_ng_template_2_Template(rf, ctx) { }\nfunction NgbPagination_li_19_Template(rf, ctx) { if (rf & 1) {\n const _r49 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 17)(1, \"a\", 25);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_li_19_Template_a_click_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r49); const ctx_r48 = ɵngcc0.ɵɵnextContext(); ctx_r48.selectPage(ctx_r48.pageCount); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_19_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r18 = ɵngcc0.ɵɵnextContext();\n const _r6 = ɵngcc0.ɵɵreference(7);\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx_r18.nextDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx_r18.nextDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r18.nextDisabled() ? \"true\" : null);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r18.tplLast == null ? null : ctx_r18.tplLast.templateRef) || _r6)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(6, _c46, ctx_r18.nextDisabled(), ctx_r18.page));\n} }\nconst _c54 = function (a0, a1, a2) { return { $implicit: a0, pages: a1, disabled: a2 }; };\nfunction NgbPopoverWindow_h3_1_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r2.title);\n} }\nfunction NgbPopoverWindow_h3_1_ng_template_3_Template(rf, ctx) { }\nfunction NgbPopoverWindow_h3_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"h3\", 3);\n ɵngcc0.ɵɵtemplate(1, NgbPopoverWindow_h3_1_ng_template_1_Template, 1, 1, \"ng-template\", null, 4, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(3, NgbPopoverWindow_h3_1_ng_template_3_Template, 0, 0, \"ng-template\", 5);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const _r1 = ɵngcc0.ɵɵreference(2);\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.isTitleTemplate() ? ctx_r0.title : _r1)(\"ngTemplateOutletContext\", ctx_r0.context);\n} }\nfunction NgbProgressbar_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\");\n ɵngcc0.ɵɵi18n(1, 2);\n ɵngcc0.ɵɵpipe(2, \"percent\");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵi18nExp(ɵngcc0.ɵɵpipeBind1(2, 1, ctx_r0.getValue() / ctx_r0.max));\n ɵngcc0.ɵɵi18nApply(1);\n} }\nfunction NgbRating_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const fill_r3 = ctx.fill;\n ɵngcc0.ɵɵtextInterpolate(fill_r3 === 100 ? \"\\u2605\" : \"\\u2606\");\n} }\nfunction NgbRating_ng_template_2_ng_template_3_Template(rf, ctx) { }\nfunction NgbRating_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 2);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"span\", 3);\n ɵngcc0.ɵɵlistener(\"mouseenter\", function NgbRating_ng_template_2_Template_span_mouseenter_2_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r7); const index_r4 = restoredCtx.index; const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r6.enter(index_r4 + 1)); })(\"click\", function NgbRating_ng_template_2_Template_span_click_2_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r7); const index_r4 = restoredCtx.index; const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r8.handleClick(index_r4 + 1)); });\n ɵngcc0.ɵɵtemplate(3, NgbRating_ng_template_2_ng_template_3_Template, 0, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const index_r4 = ctx.index;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\"(\", index_r4 < ctx_r2.nextRate ? \"*\" : \" \", \")\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"cursor\", ctx_r2.isInteractive() ? \"pointer\" : \"default\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.starTemplate || ctx_r2.starTemplateFromContent || _r0)(\"ngTemplateOutletContext\", ctx_r2.contexts[index_r4]);\n} }\nfunction NgbTimepicker_button_3_Template(rf, ctx) { if (rf & 1) {\n const _r9 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_button_3_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r9); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r8.changeHour(ctx_r8.hourStep)); });\n ɵngcc0.ɵɵelement(1, \"span\", 12);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 14);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r0.isSmallSize)(\"btn-lg\", ctx_r0.isLargeSize)(\"disabled\", ctx_r0.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r0.disabled);\n} }\nfunction NgbTimepicker_button_5_Template(rf, ctx) { if (rf & 1) {\n const _r11 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_button_5_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r11); const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r10.changeHour(-ctx_r10.hourStep)); });\n ɵngcc0.ɵɵelement(1, \"span\", 15);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 16);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r1.isSmallSize)(\"btn-lg\", ctx_r1.isLargeSize)(\"disabled\", ctx_r1.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r1.disabled);\n} }\nfunction NgbTimepicker_button_9_Template(rf, ctx) { if (rf & 1) {\n const _r13 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_button_9_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r12 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r12.changeMinute(ctx_r12.minuteStep)); });\n ɵngcc0.ɵɵelement(1, \"span\", 12);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 17);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r2.isSmallSize)(\"btn-lg\", ctx_r2.isLargeSize)(\"disabled\", ctx_r2.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r2.disabled);\n} }\nfunction NgbTimepicker_button_11_Template(rf, ctx) { if (rf & 1) {\n const _r15 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_button_11_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r15); const ctx_r14 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r14.changeMinute(-ctx_r14.minuteStep)); });\n ɵngcc0.ɵɵelement(1, \"span\", 15);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 18);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r3.isSmallSize)(\"btn-lg\", ctx_r3.isLargeSize)(\"disabled\", ctx_r3.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r3.disabled);\n} }\nfunction NgbTimepicker_div_12_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 5);\n ɵngcc0.ɵɵtext(1, \":\");\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction NgbTimepicker_div_13_button_1_Template(rf, ctx) { if (rf & 1) {\n const _r19 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_div_13_button_1_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r19); const ctx_r18 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r18.changeSecond(ctx_r18.secondStep)); });\n ɵngcc0.ɵɵelement(1, \"span\", 12);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 21);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r16 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r16.isSmallSize)(\"btn-lg\", ctx_r16.isLargeSize)(\"disabled\", ctx_r16.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r16.disabled);\n} }\nfunction NgbTimepicker_div_13_button_3_Template(rf, ctx) { if (rf & 1) {\n const _r21 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_div_13_button_3_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r21); const ctx_r20 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r20.changeSecond(-ctx_r20.secondStep)); });\n ɵngcc0.ɵɵelement(1, \"span\", 15);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 22);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r17 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r17.isSmallSize)(\"btn-lg\", ctx_r17.isLargeSize)(\"disabled\", ctx_r17.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r17.disabled);\n} }\nfunction NgbTimepicker_div_13_Template(rf, ctx) { if (rf & 1) {\n const _r23 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 19);\n ɵngcc0.ɵɵtemplate(1, NgbTimepicker_div_13_button_1_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementStart(2, \"input\", 20);\n ɵngcc0.ɵɵlistener(\"change\", function NgbTimepicker_div_13_Template_input_change_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r22 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r22.updateSecond($event.target.value)); })(\"blur\", function NgbTimepicker_div_13_Template_input_blur_2_listener() { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r24 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r24.handleBlur()); })(\"input\", function NgbTimepicker_div_13_Template_input_input_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r25 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r25.formatInput($event.target)); })(\"keydown.ArrowUp\", function NgbTimepicker_div_13_Template_input_keydown_ArrowUp_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r26 = ɵngcc0.ɵɵnextContext(); ctx_r26.changeSecond(ctx_r26.secondStep); return ɵngcc0.ɵɵresetView($event.preventDefault()); })(\"keydown.ArrowDown\", function NgbTimepicker_div_13_Template_input_keydown_ArrowDown_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r27 = ɵngcc0.ɵɵnextContext(); ctx_r27.changeSecond(-ctx_r27.secondStep); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, NgbTimepicker_div_13_button_3_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r5.spinners);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"form-control-sm\", ctx_r5.isSmallSize)(\"form-control-lg\", ctx_r5.isLargeSize);\n ɵngcc0.ɵɵproperty(\"value\", ctx_r5.formatMinSec(ctx_r5.model == null ? null : ctx_r5.model.second))(\"readOnly\", ctx_r5.readonlyInputs)(\"disabled\", ctx_r5.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r5.spinners);\n} }\nfunction NgbTimepicker_div_14_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 5);\n} }\nfunction NgbTimepicker_div_15_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵi18n(1, 27);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r28 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵi18nExp(ctx_r28.i18n.getAfternoonPeriod());\n ɵngcc0.ɵɵi18nApply(1);\n} }\nfunction NgbTimepicker_div_15_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵi18n(0, 28);\n} if (rf & 2) {\n const ctx_r30 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵi18nExp(ctx_r30.i18n.getMorningPeriod());\n ɵngcc0.ɵɵi18nApply(0);\n} }\nfunction NgbTimepicker_div_15_Template(rf, ctx) { if (rf & 1) {\n const _r32 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 23)(1, \"button\", 24);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_div_15_Template_button_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r32); const ctx_r31 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r31.toggleMeridian()); });\n ɵngcc0.ɵɵtemplate(2, NgbTimepicker_div_15_ng_container_2_Template, 2, 1, \"ng-container\", 25);\n ɵngcc0.ɵɵtemplate(3, NgbTimepicker_div_15_ng_template_3_Template, 1, 1, \"ng-template\", null, 26, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const _r29 = ɵngcc0.ɵɵreference(4);\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r7.isSmallSize)(\"btn-lg\", ctx_r7.isLargeSize)(\"disabled\", ctx_r7.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r7.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r7.model && ctx_r7.model.hour >= 12)(\"ngIfElse\", _r29);\n} }\nfunction NgbToast_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"strong\", 3);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r1.header);\n} }\nfunction NgbToast_ng_template_2_ng_template_1_Template(rf, ctx) { }\nfunction NgbToast_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r5 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 4);\n ɵngcc0.ɵɵtemplate(1, NgbToast_ng_template_2_ng_template_1_Template, 0, 0, \"ng-template\", 5);\n ɵngcc0.ɵɵelementStart(2, \"button\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function NgbToast_ng_template_2_Template_button_click_2_listener() { ɵngcc0.ɵɵrestoreView(_r5); const ctx_r4 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r4.hide()); });\n ɵngcc0.ɵɵelementStart(3, \"span\", 7);\n ɵngcc0.ɵɵtext(4, \"\\u00D7\");\n ɵngcc0.ɵɵelementEnd()()();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.contentHeaderTpl || _r0);\n} }\nfunction NgbHighlight_ng_template_0_span_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const part_r1 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassMap(ctx_r3.highlightClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(part_r1);\n} }\nfunction NgbHighlight_ng_template_0_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const part_r1 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵtextInterpolate(part_r1);\n} }\nfunction NgbHighlight_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbHighlight_ng_template_0_span_0_Template, 2, 3, \"span\", 1);\n ɵngcc0.ɵɵtemplate(1, NgbHighlight_ng_template_0_ng_template_1_Template, 1, 1, \"ng-template\", null, 2, ɵngcc0.ɵɵtemplateRefExtractor);\n} if (rf & 2) {\n const isOdd_r2 = ctx.odd;\n const _r4 = ɵngcc0.ɵɵreference(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", isOdd_r2)(\"ngIfElse\", _r4);\n} }\nfunction NgbTypeaheadWindow_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"ngb-highlight\", 2);\n} if (rf & 2) {\n const result_r3 = ctx.result;\n const term_r4 = ctx.term;\n const formatter_r5 = ctx.formatter;\n ɵngcc0.ɵɵproperty(\"result\", formatter_r5(result_r3))(\"term\", term_r4);\n} }\nfunction NgbTypeaheadWindow_ng_template_2_ng_template_1_Template(rf, ctx) { }\nconst _c87 = function (a0, a1, a2) { return { result: a0, term: a1, formatter: a2 }; };\nfunction NgbTypeaheadWindow_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r10 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 3);\n ɵngcc0.ɵɵlistener(\"mouseenter\", function NgbTypeaheadWindow_ng_template_2_Template_button_mouseenter_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r10); const idx_r7 = restoredCtx.index; const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r9.markActive(idx_r7)); })(\"click\", function NgbTypeaheadWindow_ng_template_2_Template_button_click_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r10); const result_r6 = restoredCtx.$implicit; const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r11.select(result_r6)); });\n ɵngcc0.ɵɵtemplate(1, NgbTypeaheadWindow_ng_template_2_ng_template_1_Template, 0, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const result_r6 = ctx.$implicit;\n const idx_r7 = ctx.index;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵclassProp(\"active\", idx_r7 === ctx_r2.activeIdx);\n ɵngcc0.ɵɵproperty(\"id\", ctx_r2.id + \"-\" + idx_r7);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.resultTemplate || _r0)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(5, _c87, result_r6, ctx_r2.term, ctx_r2.formatter));\n} }\nfunction toInteger(value) {\r\n return parseInt(`${value}`, 10);\r\n}\r\nfunction toString(value) {\r\n return (value !== undefined && value !== null) ? `${value}` : '';\r\n}\r\nfunction getValueInRange(value, max, min = 0) {\r\n return Math.max(Math.min(value, max), min);\r\n}\r\nfunction isString(value) {\r\n return typeof value === 'string';\r\n}\r\nfunction isNumber(value) {\r\n return !isNaN(toInteger(value));\r\n}\r\nfunction isInteger(value) {\r\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\r\n}\r\nfunction isDefined(value) {\r\n return value !== undefined && value !== null;\r\n}\r\nfunction padNumber(value) {\r\n if (isNumber(value)) {\r\n return `0${value}`.slice(-2);\r\n }\r\n else {\r\n return '';\r\n }\r\n}\r\nfunction regExpEscape(text) {\r\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\r\n}\r\nfunction hasClassName(element, className) {\r\n return element && element.className && element.className.split &&\r\n element.className.split(/\\s+/).indexOf(className) >= 0;\r\n}\r\nif (typeof Element !== 'undefined' && !Element.prototype.closest) {\r\n // Polyfill for ie10+\r\n if (!Element.prototype.matches) {\r\n // IE uses the non-standard name: msMatchesSelector\r\n Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\r\n }\r\n Element.prototype.closest = function (s) {\r\n let el = this;\r\n if (!document.documentElement.contains(el)) {\r\n return null;\r\n }\r\n do {\r\n if (el.matches(s)) {\r\n return el;\r\n }\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null && el.nodeType === 1);\r\n return null;\r\n };\r\n}\r\nfunction closest(element, selector) {\r\n if (!selector) {\r\n return null;\r\n }\r\n /*\r\n * In certain browsers (e.g. Edge 44.18362.449.0) HTMLDocument does\r\n * not support `Element.prototype.closest`. To emulate the correct behaviour\r\n * we return null when the method is missing.\r\n *\r\n * Note that in evergreen browsers `closest(document.documentElement, 'html')`\r\n * will return the document element whilst in Edge null will be returned. This\r\n * compromise was deemed good enough.\r\n */\r\n if (typeof element.closest === 'undefined') {\r\n return null;\r\n }\r\n return element.closest(selector);\r\n}\r\n/**\r\n * Force a browser reflow\r\n * @param element element where to apply the reflow\r\n */\r\nfunction reflow(element) {\r\n return (element || document.body).getBoundingClientRect();\r\n}\r\n/**\r\n * Creates an observable where all callbacks are executed inside a given zone\r\n *\r\n * @param zone\r\n */\r\nfunction runInZone(zone) {\r\n return (source) => {\r\n return new Observable(observer => {\r\n const onNext = (value) => zone.run(() => observer.next(value));\r\n const onError = (e) => zone.run(() => observer.error(e));\r\n const onComplete = () => zone.run(() => observer.complete());\r\n return source.subscribe(onNext, onError, onComplete);\r\n });\r\n };\r\n}\r\nfunction removeAccents(str) {\r\n return str.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n}\n\nconst environment = {\r\n animation: true,\r\n transitionTimerDelayMs: 5,\r\n};\n\n/**\r\n * Global ng-bootstrap config\r\n *\r\n * @since 8.0.0\r\n */\r\nclass NgbConfig {\r\n constructor() {\r\n this.animation = environment.animation;\r\n }\r\n}\nNgbConfig.ɵfac = function NgbConfig_Factory(t) { return new (t || NgbConfig)(); };\r\nNgbConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbConfig_Factory() { return new NgbConfig(); }, token: NgbConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\r\n * A configuration service for the [NgbAccordion](#/components/accordion/api#NgbAccordion) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize its properties\r\n * to provide default values for all accordions used in the application.\r\n */\r\nclass NgbAccordionConfig {\r\n constructor(_ngbConfig) {\r\n this._ngbConfig = _ngbConfig;\r\n this.closeOthers = false;\r\n }\r\n get animation() { return (this._animation === undefined) ? this._ngbConfig.animation : this._animation; }\r\n set animation(animation) { this._animation = animation; }\r\n}\nNgbAccordionConfig.ɵfac = function NgbAccordionConfig_Factory(t) { return new (t || NgbAccordionConfig)(ɵngcc0.ɵɵinject(NgbConfig)); };\r\nNgbAccordionConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbAccordionConfig_Factory() { return new NgbAccordionConfig(ɵɵinject(NgbConfig)); }, token: NgbAccordionConfig, providedIn: \"root\" });\r\nNgbAccordionConfig.ctorParameters = () => [\r\n { type: NgbConfig }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAccordionConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: NgbConfig }]; }, null); })();\n\nfunction getTransitionDurationMs(element) {\r\n const { transitionDelay, transitionDuration } = window.getComputedStyle(element);\r\n const transitionDelaySec = parseFloat(transitionDelay);\r\n const transitionDurationSec = parseFloat(transitionDuration);\r\n return (transitionDelaySec + transitionDurationSec) * 1000;\r\n}\n\nconst noopFn = () => { };\r\nconst ɵ0 = noopFn;\r\nconst { transitionTimerDelayMs } = environment;\r\nconst runningTransitions = new Map();\r\nconst ngbRunTransition = (zone, element, startFn, options) => {\r\n // Getting initial context from options\r\n let context = options.context || {};\r\n // Checking if there are already running transitions on the given element.\r\n const running = runningTransitions.get(element);\r\n if (running) {\r\n switch (options.runningTransition) {\r\n // If there is one running and we want for it to 'continue' to run, we have to cancel the new one.\r\n // We're not emitting any values, but simply completing the observable (EMPTY).\r\n case 'continue':\r\n return EMPTY;\r\n // If there is one running and we want for it to 'stop', we have to complete the running one.\r\n // We're simply completing the running one and not emitting any values and merging newly provided context\r\n // with the one coming from currently running transition.\r\n case 'stop':\r\n zone.run(() => running.transition$.complete());\r\n context = Object.assign(running.context, context);\r\n runningTransitions.delete(element);\r\n }\r\n }\r\n // Running the start function\r\n const endFn = startFn(element, options.animation, context) || noopFn;\r\n // If 'prefer-reduced-motion' is enabled, the 'transition' will be set to 'none'.\r\n // If animations are disabled, we have to emit a value and complete the observable\r\n // In this case we have to call the end function, but can finish immediately by emitting a value,\r\n // completing the observable and executing end functions synchronously.\r\n if (!options.animation || window.getComputedStyle(element).transitionProperty === 'none') {\r\n zone.run(() => endFn());\r\n return of(undefined).pipe(runInZone(zone));\r\n }\r\n // Starting a new transition\r\n const transition$ = new Subject();\r\n const finishTransition$ = new Subject();\r\n const stop$ = transition$.pipe(endWith(true));\r\n runningTransitions.set(element, {\r\n transition$,\r\n complete: () => {\r\n finishTransition$.next();\r\n finishTransition$.complete();\r\n },\r\n context\r\n });\r\n const transitionDurationMs = getTransitionDurationMs(element);\r\n // 1. We have to both listen for the 'transitionend' event and have a 'just-in-case' timer,\r\n // because 'transitionend' event might not be fired in some browsers, if the transitioning\r\n // element becomes invisible (ex. when scrolling, making browser tab inactive, etc.). The timer\r\n // guarantees, that we'll release the DOM element and complete 'ngbRunTransition'.\r\n // 2. We need to filter transition end events, because they might bubble from shorter transitions\r\n // on inner DOM elements. We're only interested in the transition on the 'element' itself.\r\n zone.runOutsideAngular(() => {\r\n const transitionEnd$ = fromEvent(element, 'transitionend').pipe(takeUntil(stop$), filter(({ target }) => target === element));\r\n const timer$ = timer(transitionDurationMs + transitionTimerDelayMs).pipe(takeUntil(stop$));\r\n race(timer$, transitionEnd$, finishTransition$).pipe(takeUntil(stop$)).subscribe(() => {\r\n runningTransitions.delete(element);\r\n zone.run(() => {\r\n endFn();\r\n transition$.next();\r\n transition$.complete();\r\n });\r\n });\r\n });\r\n return transition$.asObservable();\r\n};\r\nconst ngbCompleteTransition = (element) => {\r\n var _a;\r\n (_a = runningTransitions.get(element)) === null || _a === void 0 ? void 0 : _a.complete();\r\n};\n\nfunction measureCollapsingElementHeightPx(element) {\r\n // SSR fix for without injecting the PlatformId\r\n if (typeof navigator === 'undefined') {\r\n return '0px';\r\n }\r\n const { classList } = element;\r\n const hasShownClass = classList.contains('show');\r\n if (!hasShownClass) {\r\n classList.add('show');\r\n }\r\n element.style.height = '';\r\n const height = element.getBoundingClientRect().height + 'px';\r\n if (!hasShownClass) {\r\n classList.remove('show');\r\n }\r\n return height;\r\n}\r\nconst ngbCollapsingTransition = (element, animation, context) => {\r\n let { direction, maxHeight } = context;\r\n const { classList } = element;\r\n function setInitialClasses() {\r\n classList.add('collapse');\r\n if (direction === 'show') {\r\n classList.add('show');\r\n }\r\n else {\r\n classList.remove('show');\r\n }\r\n }\r\n // without animations we just need to set initial classes\r\n if (!animation) {\r\n setInitialClasses();\r\n return;\r\n }\r\n // No maxHeight -> running the transition for the first time\r\n if (!maxHeight) {\r\n maxHeight = measureCollapsingElementHeightPx(element);\r\n context.maxHeight = maxHeight;\r\n // Fix the height before starting the animation\r\n element.style.height = direction !== 'show' ? maxHeight : '0px';\r\n classList.remove('collapse');\r\n classList.remove('collapsing');\r\n classList.remove('show');\r\n reflow(element);\r\n // Start the animation\r\n classList.add('collapsing');\r\n }\r\n // Start or revert the animation\r\n element.style.height = direction === 'show' ? maxHeight : '0px';\r\n return () => {\r\n setInitialClasses();\r\n classList.remove('collapsing');\r\n element.style.height = '';\r\n };\r\n};\n\nlet nextId = 0;\r\n/**\r\n * A directive that wraps an accordion panel header with any HTML markup and a toggling button\r\n * marked with [`NgbPanelToggle`](#/components/accordion/api#NgbPanelToggle).\r\n * See the [header customization demo](#/components/accordion/examples#header) for more details.\r\n *\r\n * You can also use [`NgbPanelTitle`](#/components/accordion/api#NgbPanelTitle) to customize only the panel title.\r\n *\r\n * @since 4.1.0\r\n */\r\nclass NgbPanelHeader {\r\n constructor(templateRef) {\r\n this.templateRef = templateRef;\r\n }\r\n}\nNgbPanelHeader.ɵfac = function NgbPanelHeader_Factory(t) { return new (t || NgbPanelHeader)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPanelHeader.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPanelHeader, selectors: [[\"ng-template\", \"ngbPanelHeader\", \"\"]] });\r\nNgbPanelHeader.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanelHeader, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPanelHeader]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\r\n/**\r\n * A directive that wraps only the panel title with HTML markup inside.\r\n *\r\n * You can also use [`NgbPanelHeader`](#/components/accordion/api#NgbPanelHeader) to customize the full panel header.\r\n */\r\nclass NgbPanelTitle {\r\n constructor(templateRef) {\r\n this.templateRef = templateRef;\r\n }\r\n}\nNgbPanelTitle.ɵfac = function NgbPanelTitle_Factory(t) { return new (t || NgbPanelTitle)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPanelTitle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPanelTitle, selectors: [[\"ng-template\", \"ngbPanelTitle\", \"\"]] });\r\nNgbPanelTitle.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanelTitle, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPanelTitle]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\r\n/**\r\n * A directive that wraps the accordion panel content.\r\n */\r\nclass NgbPanelContent {\r\n constructor(templateRef) {\r\n this.templateRef = templateRef;\r\n }\r\n}\nNgbPanelContent.ɵfac = function NgbPanelContent_Factory(t) { return new (t || NgbPanelContent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPanelContent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPanelContent, selectors: [[\"ng-template\", \"ngbPanelContent\", \"\"]] });\r\nNgbPanelContent.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanelContent, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPanelContent]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\r\n/**\r\n * A directive that wraps an individual accordion panel with title and collapsible content.\r\n */\r\nclass NgbPanel {\r\n constructor() {\r\n /**\r\n * If `true`, the panel is disabled an can't be toggled.\r\n */\r\n this.disabled = false;\r\n /**\r\n * An optional id for the panel that must be unique on the page.\r\n *\r\n * If not provided, it will be auto-generated in the `ngb-panel-xxx` format.\r\n */\r\n this.id = `ngb-panel-${nextId++}`;\r\n this.isOpen = false;\r\n /* A flag to specified that the transition panel classes have been initialized */\r\n this.initClassDone = false;\r\n /* A flag to specified if the panel is currently being animated, to ensure its presence in the dom */\r\n this.transitionRunning = false;\r\n /**\r\n * An event emitted when the panel is shown, after the transition. It has no payload.\r\n *\r\n * @since 8.0.0\r\n */\r\n this.shown = new EventEmitter();\r\n /**\r\n * An event emitted when the panel is hidden, after the transition. It has no payload.\r\n *\r\n * @since 8.0.0\r\n */\r\n this.hidden = new EventEmitter();\r\n }\r\n ngAfterContentChecked() {\r\n // We are using @ContentChildren instead of @ContentChild as in the Angular version being used\r\n // only @ContentChildren allows us to specify the {descendants: false} option.\r\n // Without {descendants: false} we are hitting bugs described in:\r\n // https://github.com/ng-bootstrap/ng-bootstrap/issues/2240\r\n this.titleTpl = this.titleTpls.first;\r\n this.headerTpl = this.headerTpls.first;\r\n this.contentTpl = this.contentTpls.first;\r\n }\r\n}\nNgbPanel.ɵfac = function NgbPanel_Factory(t) { return new (t || NgbPanel)(); };\nNgbPanel.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPanel, selectors: [[\"ngb-panel\"]], contentQueries: function NgbPanel_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanelTitle, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanelHeader, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanelContent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.titleTpls = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTpls = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentTpls = _t);\n } }, inputs: { disabled: \"disabled\", id: \"id\", title: \"title\", type: \"type\", cardClass: \"cardClass\" }, outputs: { shown: \"shown\", hidden: \"hidden\" } });\r\nNgbPanel.propDecorators = {\r\n disabled: [{ type: Input }],\r\n id: [{ type: Input }],\r\n title: [{ type: Input }],\r\n type: [{ type: Input }],\r\n cardClass: [{ type: Input }],\r\n shown: [{ type: Output }],\r\n hidden: [{ type: Output }],\r\n titleTpls: [{ type: ContentChildren, args: [NgbPanelTitle, { descendants: false },] }],\r\n headerTpls: [{ type: ContentChildren, args: [NgbPanelHeader, { descendants: false },] }],\r\n contentTpls: [{ type: ContentChildren, args: [NgbPanelContent, { descendants: false },] }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanel, [{\n type: Directive,\n args: [{ selector: 'ngb-panel' }]\n }], function () { return []; }, { disabled: [{\n type: Input\n }], id: [{\n type: Input\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], title: [{\n type: Input\n }], type: [{\n type: Input\n }], cardClass: [{\n type: Input\n }], titleTpls: [{\n type: ContentChildren,\n args: [NgbPanelTitle, { descendants: false }]\n }], headerTpls: [{\n type: ContentChildren,\n args: [NgbPanelHeader, { descendants: false }]\n }], contentTpls: [{\n type: ContentChildren,\n args: [NgbPanelContent, { descendants: false }]\n }] }); })();\r\n/**\r\n * Accordion is a collection of collapsible panels (bootstrap cards).\r\n *\r\n * It can ensure only one panel is opened at a time and allows to customize panel\r\n * headers.\r\n */\r\nclass NgbAccordion {\r\n constructor(config, _element, _ngZone, _changeDetector) {\r\n this._element = _element;\r\n this._ngZone = _ngZone;\r\n this._changeDetector = _changeDetector;\r\n /**\r\n * An array or comma separated strings of panel ids that should be opened **initially**.\r\n *\r\n * For subsequent changes use methods like `expand()`, `collapse()`, etc. and\r\n * the `(panelChange)` event.\r\n */\r\n this.activeIds = [];\r\n /**\r\n * If `true`, panel content will be detached from DOM and not simply hidden when the panel is collapsed.\r\n */\r\n this.destroyOnHide = true;\r\n /**\r\n * Event emitted right before the panel toggle happens.\r\n *\r\n * See [NgbPanelChangeEvent](#/components/accordion/api#NgbPanelChangeEvent) for payload details.\r\n */\r\n this.panelChange = new EventEmitter();\r\n /**\r\n * An event emitted when the expanding animation is finished on the panel. The payload is the panel id.\r\n *\r\n * @since 8.0.0\r\n */\r\n this.shown = new EventEmitter();\r\n /**\r\n * An event emitted when the collapsing animation is finished on the panel, and before the panel element is removed.\r\n * The payload is the panel id.\r\n *\r\n * @since 8.0.0\r\n */\r\n this.hidden = new EventEmitter();\r\n this.animation = config.animation;\r\n this.type = config.type;\r\n this.closeOtherPanels = config.closeOthers;\r\n }\r\n /**\r\n * Checks if a panel with a given id is expanded.\r\n */\r\n isExpanded(panelId) { return this.activeIds.indexOf(panelId) > -1; }\r\n /**\r\n * Expands a panel with a given id.\r\n *\r\n * Has no effect if the panel is already expanded or disabled.\r\n */\r\n expand(panelId) { this._changeOpenState(this._findPanelById(panelId), true); }\r\n /**\r\n * Expands all panels, if `[closeOthers]` is `false`.\r\n *\r\n * If `[closeOthers]` is `true`, it will expand the first panel, unless there is already a panel opened.\r\n */\r\n expandAll() {\r\n if (this.closeOtherPanels) {\r\n if (this.activeIds.length === 0 && this.panels.length) {\r\n this._changeOpenState(this.panels.first, true);\r\n }\r\n }\r\n else {\r\n this.panels.forEach(panel => this._changeOpenState(panel, true));\r\n }\r\n }\r\n /**\r\n * Collapses a panel with the given id.\r\n *\r\n * Has no effect if the panel is already collapsed or disabled.\r\n */\r\n collapse(panelId) { this._changeOpenState(this._findPanelById(panelId), false); }\r\n /**\r\n * Collapses all opened panels.\r\n */\r\n collapseAll() {\r\n this.panels.forEach((panel) => { this._changeOpenState(panel, false); });\r\n }\r\n /**\r\n * Toggles a panel with the given id.\r\n *\r\n * Has no effect if the panel is disabled.\r\n */\r\n toggle(panelId) {\r\n const panel = this._findPanelById(panelId);\r\n if (panel) {\r\n this._changeOpenState(panel, !panel.isOpen);\r\n }\r\n }\r\n ngAfterContentChecked() {\r\n // active id updates\r\n if (isString(this.activeIds)) {\r\n this.activeIds = this.activeIds.split(/\\s*,\\s*/);\r\n }\r\n // update panels open states\r\n this.panels.forEach(panel => { panel.isOpen = !panel.disabled && this.activeIds.indexOf(panel.id) > -1; });\r\n // closeOthers updates\r\n if (this.activeIds.length > 1 && this.closeOtherPanels) {\r\n this._closeOthers(this.activeIds[0], false);\r\n this._updateActiveIds();\r\n }\r\n // Setup the initial classes here\r\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\r\n this.panels.forEach(panel => {\r\n const panelElement = this._getPanelElement(panel.id);\r\n if (panelElement) {\r\n if (!panel.initClassDone) {\r\n panel.initClassDone = true;\r\n ngbRunTransition(this._ngZone, panelElement, ngbCollapsingTransition, {\r\n animation: false,\r\n runningTransition: 'continue',\r\n context: { direction: panel.isOpen ? 'show' : 'hide' }\r\n });\r\n }\r\n }\r\n else {\r\n // Classes must be initialized next time it will be in the dom\r\n panel.initClassDone = false;\r\n }\r\n });\r\n });\r\n }\r\n _changeOpenState(panel, nextState) {\r\n if (panel != null && !panel.disabled && panel.isOpen !== nextState) {\r\n let defaultPrevented = false;\r\n this.panelChange.emit({ panelId: panel.id, nextState: nextState, preventDefault: () => { defaultPrevented = true; } });\r\n if (!defaultPrevented) {\r\n panel.isOpen = nextState;\r\n panel.transitionRunning = true;\r\n if (nextState && this.closeOtherPanels) {\r\n this._closeOthers(panel.id);\r\n }\r\n this._updateActiveIds();\r\n this._runTransitions(this.animation);\r\n }\r\n }\r\n }\r\n _closeOthers(panelId, enableTransition = true) {\r\n this.panels.forEach(panel => {\r\n if (panel.id !== panelId && panel.isOpen) {\r\n panel.isOpen = false;\r\n panel.transitionRunning = enableTransition;\r\n }\r\n });\r\n }\r\n _findPanelById(panelId) { return this.panels.find(p => p.id === panelId) || null; }\r\n _updateActiveIds() {\r\n this.activeIds = this.panels.filter(panel => panel.isOpen && !panel.disabled).map(panel => panel.id);\r\n }\r\n _runTransitions(animation) {\r\n // detectChanges is performed to ensure that all panels are in the dom (via transitionRunning = true)\r\n // before starting the animation\r\n this._changeDetector.detectChanges();\r\n this.panels.forEach(panel => {\r\n // When panel.transitionRunning is true, the transition needs to be started OR reversed,\r\n // The direction (show or hide) is choosen by each panel.isOpen state\r\n if (panel.transitionRunning) {\r\n const panelElement = this._getPanelElement(panel.id);\r\n ngbRunTransition(this._ngZone, panelElement, ngbCollapsingTransition, {\r\n animation,\r\n runningTransition: 'stop',\r\n context: { direction: panel.isOpen ? 'show' : 'hide' }\r\n }).subscribe(() => {\r\n panel.transitionRunning = false;\r\n const { id } = panel;\r\n if (panel.isOpen) {\r\n panel.shown.emit();\r\n this.shown.emit(id);\r\n }\r\n else {\r\n panel.hidden.emit();\r\n this.hidden.emit(id);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n _getPanelElement(panelId) {\r\n return this._element.nativeElement.querySelector('#' + panelId);\r\n }\r\n}\nNgbAccordion.ɵfac = function NgbAccordion_Factory(t) { return new (t || NgbAccordion)(ɵngcc0.ɵɵdirectiveInject(NgbAccordionConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nNgbAccordion.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbAccordion, selectors: [[\"ngb-accordion\"]], contentQueries: function NgbAccordion_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanel, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.panels = _t);\n } }, hostAttrs: [\"role\", \"tablist\", 1, \"accordion\"], hostVars: 1, hostBindings: function NgbAccordion_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-multiselectable\", !ctx.closeOtherPanels);\n } }, inputs: { activeIds: \"activeIds\", destroyOnHide: \"destroyOnHide\", animation: \"animation\", type: \"type\", closeOtherPanels: [\"closeOthers\", \"closeOtherPanels\"] }, outputs: { panelChange: \"panelChange\", shown: \"shown\", hidden: \"hidden\" }, exportAs: [\"ngbAccordion\"], decls: 3, vars: 1, consts: [[\"ngbPanelHeader\", \"\"], [\"t\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [1, \"btn\", \"btn-link\", 3, \"ngbPanelToggle\"], [3, \"ngTemplateOutlet\"], [\"role\", \"tab\", 3, \"id\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"role\", \"tabpanel\", 3, \"id\", 4, \"ngIf\"], [\"role\", \"tabpanel\", 3, \"id\"], [1, \"card-body\"]], template: function NgbAccordion_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbAccordion_ng_template_0_Template, 3, 3, \"ng-template\", 0, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbAccordion_ng_template_2_Template, 4, 11, \"ng-template\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.panels);\n } }, dependencies: function () { return [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, NgbPanelHeader, NgbPanelToggle]; }, encapsulation: 2 });\r\nNgbAccordion.ctorParameters = () => [\r\n { type: NgbAccordionConfig },\r\n { type: ElementRef },\r\n { type: NgZone },\r\n { type: ChangeDetectorRef }\r\n];\r\nNgbAccordion.propDecorators = {\r\n panels: [{ type: ContentChildren, args: [NgbPanel,] }],\r\n animation: [{ type: Input }],\r\n activeIds: [{ type: Input }],\r\n closeOtherPanels: [{ type: Input, args: ['closeOthers',] }],\r\n destroyOnHide: [{ type: Input }],\r\n type: [{ type: Input }],\r\n panelChange: [{ type: Output }],\r\n shown: [{ type: Output }],\r\n hidden: [{ type: Output }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAccordion, [{\n type: Component,\n args: [{\n selector: 'ngb-accordion',\n exportAs: 'ngbAccordion',\n encapsulation: ViewEncapsulation.None,\n host: { 'class': 'accordion', 'role': 'tablist', '[attr.aria-multiselectable]': '!closeOtherPanels' },\n template: `\r\n <ng-template #t ngbPanelHeader let-panel>\r\n <button class=\"btn btn-link\" [ngbPanelToggle]=\"panel\">\r\n {{panel.title}}<ng-template [ngTemplateOutlet]=\"panel.titleTpl?.templateRef\"></ng-template>\r\n </button>\r\n </ng-template>\r\n <ng-template ngFor let-panel [ngForOf]=\"panels\">\r\n <div [class]=\"'card ' + (panel.cardClass || '')\">\r\n <div role=\"tab\" id=\"{{panel.id}}-header\" [class]=\"'card-header ' + (panel.type ? 'bg-'+panel.type: type ? 'bg-'+type : '')\">\r\n <ng-template [ngTemplateOutlet]=\"panel.headerTpl?.templateRef || t\"\r\n [ngTemplateOutletContext]=\"{$implicit: panel, opened: panel.isOpen}\"></ng-template>\r\n </div>\r\n <div id=\"{{panel.id}}\" role=\"tabpanel\" [attr.aria-labelledby]=\"panel.id + '-header'\"\r\n *ngIf=\"!destroyOnHide || panel.isOpen || panel.transitionRunning\">\r\n <div class=\"card-body\">\r\n <ng-template [ngTemplateOutlet]=\"panel.contentTpl?.templateRef || null\"></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n `\n }]\n }], function () { return [{ type: NgbAccordionConfig }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }]; }, { activeIds: [{\n type: Input\n }], destroyOnHide: [{\n type: Input\n }], panelChange: [{\n type: Output\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], animation: [{\n type: Input\n }], type: [{\n type: Input\n }], closeOtherPanels: [{\n type: Input,\n args: ['closeOthers']\n }], panels: [{\n type: ContentChildren,\n args: [NgbPanel]\n }] }); })();\r\n/**\r\n * A directive to put on a button that toggles panel opening and closing.\r\n *\r\n * To be used inside the [`NgbPanelHeader`](#/components/accordion/api#NgbPanelHeader)\r\n *\r\n * @since 4.1.0\r\n */\r\nclass NgbPanelToggle {\r\n constructor(accordion, panel) {\r\n this.accordion = accordion;\r\n this.panel = panel;\r\n }\r\n set ngbPanelToggle(panel) {\r\n if (panel) {\r\n this.panel = panel;\r\n }\r\n }\r\n}\nNgbPanelToggle.ɵfac = function NgbPanelToggle_Factory(t) { return new (t || NgbPanelToggle)(ɵngcc0.ɵɵdirectiveInject(NgbAccordion), ɵngcc0.ɵɵdirectiveInject(NgbPanel, 9)); };\nNgbPanelToggle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPanelToggle, selectors: [[\"button\", \"ngbPanelToggle\", \"\"]], hostAttrs: [\"type\", \"button\"], hostVars: 5, hostBindings: function NgbPanelToggle_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function NgbPanelToggle_click_HostBindingHandler() { return ctx.accordion.toggle(ctx.panel.id); });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"disabled\", ctx.panel.disabled);\n ɵngcc0.ɵɵattribute(\"aria-expanded\", ctx.panel.isOpen)(\"aria-controls\", ctx.panel.id);\n ɵngcc0.ɵɵclassProp(\"collapsed\", !ctx.panel.isOpen);\n } }, inputs: { ngbPanelToggle: \"ngbPanelToggle\" } });\r\nNgbPanelToggle.ctorParameters = () => [\r\n { type: NgbAccordion },\r\n { type: NgbPanel, decorators: [{ type: Optional }, { type: Host }] }\r\n];\r\nNgbPanelToggle.propDecorators = {\r\n ngbPanelToggle: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanelToggle, [{\n type: Directive,\n args: [{\n selector: 'button[ngbPanelToggle]',\n host: {\n 'type': 'button',\n '[disabled]': 'panel.disabled',\n '[class.collapsed]': '!panel.isOpen',\n '[attr.aria-expanded]': 'panel.isOpen',\n '[attr.aria-controls]': 'panel.id',\n '(click)': 'accordion.toggle(panel.id)'\n }\n }]\n }], function () { return [{ type: NgbAccordion }, { type: NgbPanel, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }]; }, { ngbPanelToggle: [{\n type: Input\n }] }); })();\n\nconst NGB_ACCORDION_DIRECTIVES = [NgbAccordion, NgbPanel, NgbPanelTitle, NgbPanelContent, NgbPanelHeader, NgbPanelToggle];\r\nclass NgbAccordionModule {\r\n}\nNgbAccordionModule.ɵfac = function NgbAccordionModule_Factory(t) { return new (t || NgbAccordionModule)(); };\nNgbAccordionModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbAccordionModule });\nNgbAccordionModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAccordionModule, [{\n type: NgModule,\n args: [{ declarations: NGB_ACCORDION_DIRECTIVES, exports: NGB_ACCORDION_DIRECTIVES, imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbAccordionModule, { declarations: function () { return [NgbAccordion, NgbPanel, NgbPanelTitle, NgbPanelContent, NgbPanelHeader, NgbPanelToggle]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbAccordion, NgbPanel, NgbPanelTitle, NgbPanelContent, NgbPanelHeader, NgbPanelToggle]; } }); })();\n\n/**\r\n * A configuration service for the [NgbAlert](#/components/alert/api#NgbAlert) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize its properties\r\n * to provide default values for all alerts used in the application.\r\n */\r\nclass NgbAlertConfig {\r\n constructor(_ngbConfig) {\r\n this._ngbConfig = _ngbConfig;\r\n this.dismissible = true;\r\n this.type = 'warning';\r\n }\r\n get animation() { return (this._animation === undefined) ? this._ngbConfig.animation : this._animation; }\r\n set animation(animation) { this._animation = animation; }\r\n}\nNgbAlertConfig.ɵfac = function NgbAlertConfig_Factory(t) { return new (t || NgbAlertConfig)(ɵngcc0.ɵɵinject(NgbConfig)); };\r\nNgbAlertConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbAlertConfig_Factory() { return new NgbAlertConfig(ɵɵinject(NgbConfig)); }, token: NgbAlertConfig, providedIn: \"root\" });\r\nNgbAlertConfig.ctorParameters = () => [\r\n { type: NgbConfig }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAlertConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: NgbConfig }]; }, null); })();\n\nconst ngbAlertFadingTransition = ({ classList }) => {\r\n classList.remove('show');\r\n};\n\n/**\r\n * Alert is a component to provide contextual feedback messages for user.\r\n *\r\n * It supports several alert types and can be dismissed.\r\n */\r\nclass NgbAlert {\r\n constructor(config, _renderer, _element, _zone) {\r\n this._renderer = _renderer;\r\n this._element = _element;\r\n this._zone = _zone;\r\n /**\r\n * An event emitted when the close button is clicked. It has no payload and only relevant for dismissible alerts.\r\n *\r\n * @since 8.0.0\r\n */\r\n this.closed = new EventEmitter();\r\n this.dismissible = config.dismissible;\r\n this.type = config.type;\r\n this.animation = config.animation;\r\n }\r\n /**\r\n * Triggers alert closing programmatically (same as clicking on the close button (×)).\r\n *\r\n * The returned observable will emit and be completed once the closing transition has finished.\r\n * If the animations are turned off this happens synchronously.\r\n *\r\n * Alternatively you could listen or subscribe to the `(closed)` output\r\n *\r\n * @since 8.0.0\r\n */\r\n close() {\r\n const transition = ngbRunTransition(this._zone, this._element.nativeElement, ngbAlertFadingTransition, { animation: this.animation, runningTransition: 'continue' });\r\n transition.subscribe(() => this.closed.emit());\r\n return transition;\r\n }\r\n ngOnChanges(changes) {\r\n const typeChange = changes['type'];\r\n if (typeChange && !typeChange.firstChange) {\r\n this._renderer.removeClass(this._element.nativeElement, `alert-${typeChange.previousValue}`);\r\n this._renderer.addClass(this._element.nativeElement, `alert-${typeChange.currentValue}`);\r\n }\r\n }\r\n ngOnInit() { this._renderer.addClass(this._element.nativeElement, `alert-${this.type}`); }\r\n}\nNgbAlert.ɵfac = function NgbAlert_Factory(t) { return new (t || NgbAlert)(ɵngcc0.ɵɵdirectiveInject(NgbAlertConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nNgbAlert.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbAlert, selectors: [[\"ngb-alert\"]], hostAttrs: [\"role\", \"alert\", 1, \"alert\", \"show\"], hostVars: 4, hostBindings: function NgbAlert_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"fade\", ctx.animation)(\"alert-dismissible\", ctx.dismissible);\n } }, inputs: { dismissible: \"dismissible\", type: \"type\", animation: \"animation\" }, outputs: { closed: \"closed\" }, exportAs: [\"ngbAlert\"], features: [ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c3, decls: 2, vars: 1, consts: function () { let i18n_1; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_alert_close$$FESM2015_NG_BOOTSTRAP_JS_2 = goog.getMsg(\"Close\");\n i18n_1 = MSG_EXTERNAL_ngb_alert_close$$FESM2015_NG_BOOTSTRAP_JS_2;\n }\n else {\n i18n_1 = $localize `:@@ngb.alert.close␟f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8␟7819314041543176992:Close`;\n } return [[\"type\", \"button\", \"class\", \"close\", \"aria-label\", i18n_1, 3, \"click\", 4, \"ngIf\"], [\"type\", \"button\", \"aria-label\", i18n_1, 1, \"close\", 3, \"click\"], [\"aria-hidden\", \"true\"]]; }, template: function NgbAlert_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n ɵngcc0.ɵɵtemplate(1, NgbAlert_button_1_Template, 3, 0, \"button\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.dismissible);\n } }, dependencies: [ɵngcc1.NgIf], styles: [\"ngb-alert{display:block}\"], encapsulation: 2, changeDetection: 0 });\r\nNgbAlert.ctorParameters = () => [\r\n { type: NgbAlertConfig },\r\n { type: Renderer2 },\r\n { type: ElementRef },\r\n { type: NgZone }\r\n];\r\nNgbAlert.propDecorators = {\r\n animation: [{ type: Input }],\r\n dismissible: [{ type: Input }],\r\n type: [{ type: Input }],\r\n closed: [{ type: Output }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAlert, [{\n type: Component,\n args: [{ selector: 'ngb-alert', exportAs: 'ngbAlert', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'role': 'alert', 'class': 'alert show', '[class.fade]': 'animation', '[class.alert-dismissible]': 'dismissible' }, template: `\r\n <ng-content></ng-content>\r\n <button *ngIf=\"dismissible\" type=\"button\" class=\"close\" aria-label=\"Close\" i18n-aria-label=\"@@ngb.alert.close\"\r\n (click)=\"close()\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n `, styles: [\"ngb-alert{display:block}\"] }]\n }], function () { return [{ type: NgbAlertConfig }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { closed: [{\n type: Output\n }], dismissible: [{\n type: Input\n }], type: [{\n type: Input\n }], animation: [{\n type: Input\n }] }); })();\n\nclass NgbAlertModule {\r\n}\nNgbAlertModule.ɵfac = function NgbAlertModule_Factory(t) { return new (t || NgbAlertModule)(); };\nNgbAlertModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbAlertModule });\nNgbAlertModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAlertModule, [{\n type: NgModule,\n args: [{ declarations: [NgbAlert], exports: [NgbAlert], imports: [CommonModule], entryComponents: [NgbAlert] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbAlertModule, { declarations: function () { return [NgbAlert]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbAlert]; } }); })();\n\nclass NgbButtonLabel {\r\n}\nNgbButtonLabel.ɵfac = function NgbButtonLabel_Factory(t) { return new (t || NgbButtonLabel)(); };\nNgbButtonLabel.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbButtonLabel, selectors: [[\"\", \"ngbButtonLabel\", \"\"]], hostVars: 8, hostBindings: function NgbButtonLabel_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"btn\", true)(\"active\", ctx.active)(\"disabled\", ctx.disabled)(\"focus\", ctx.focused);\n } } });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbButtonLabel, [{\n type: Directive,\n args: [{\n selector: '[ngbButtonLabel]',\n host: { '[class.btn]': 'true', '[class.active]': 'active', '[class.disabled]': 'disabled', '[class.focus]': 'focused' }\n }]\n }], null, null); })();\n\n/**\r\n * Allows to easily create Bootstrap-style checkbox buttons.\r\n *\r\n * Integrates with forms, so the value of a checked button is bound to the underlying form control\r\n * either in a reactive or template-driven way.\r\n */\r\nclass NgbCheckBox {\r\n constructor(_label, _cd) {\r\n this._label = _label;\r\n this._cd = _cd;\r\n /**\r\n * If `true`, the checkbox button will be disabled\r\n */\r\n this.disabled = false;\r\n /**\r\n * The form control value when the checkbox is checked.\r\n */\r\n this.valueChecked = true;\r\n /**\r\n * The form control value when the checkbox is unchecked.\r\n */\r\n this.valueUnChecked = false;\r\n this.onChange = (_) => { };\r\n this.onTouched = () => { };\r\n }\r\n set focused(isFocused) {\r\n this._label.focused = isFocused;\r\n if (!isFocused) {\r\n this.onTouched();\r\n }\r\n }\r\n onInputChange($event) {\r\n const modelToPropagate = $event.target.checked ? this.valueChecked : this.valueUnChecked;\r\n this.onChange(modelToPropagate);\r\n this.onTouched();\r\n this.writeValue(modelToPropagate);\r\n }\r\n registerOnChange(fn) { this.onChange = fn; }\r\n registerOnTouched(fn) { this.onTouched = fn; }\r\n setDisabledState(isDisabled) {\r\n this.disabled = isDisabled;\r\n this._label.disabled = isDisabled;\r\n }\r\n writeValue(value) {\r\n this.checked = value === this.valueChecked;\r\n this._label.active = this.checked;\r\n // label won't be updated, if it is inside the OnPush component when [ngModel] changes\r\n this._cd.markForCheck();\r\n }\r\n}\nNgbCheckBox.ɵfac = function NgbCheckBox_Factory(t) { return new (t || NgbCheckBox)(ɵngcc0.ɵɵdirectiveInject(NgbButtonLabel), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nNgbCheckBox.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbCheckBox, selectors: [[\"\", \"ngbButton\", \"\", \"type\", \"checkbox\"]], hostVars: 2, hostBindings: function NgbCheckBox_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"change\", function NgbCheckBox_change_HostBindingHandler($event) { return ctx.onInputChange($event); })(\"focus\", function NgbCheckBox_focus_HostBindingHandler() { return ctx.focused = true; })(\"blur\", function NgbCheckBox_blur_HostBindingHandler() { return ctx.focused = false; });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"checked\", ctx.checked)(\"disabled\", ctx.disabled);\n } }, inputs: { disabled: \"disabled\", valueChecked: \"valueChecked\", valueUnChecked: \"valueUnChecked\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbCheckBox), multi: true }])] });\r\nNgbCheckBox.ctorParameters = () => [\r\n { type: NgbButtonLabel },\r\n { type: ChangeDetectorRef }\r\n];\r\nNgbCheckBox.propDecorators = {\r\n disabled: [{ type: Input }],\r\n valueChecked: [{ type: Input }],\r\n valueUnChecked: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCheckBox, [{\n type: Directive,\n args: [{\n selector: '[ngbButton][type=checkbox]',\n host: {\n '[checked]': 'checked',\n '[disabled]': 'disabled',\n '(change)': 'onInputChange($event)',\n '(focus)': 'focused = true',\n '(blur)': 'focused = false'\n },\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbCheckBox), multi: true }]\n }]\n }], function () { return [{ type: NgbButtonLabel }, { type: ɵngcc0.ChangeDetectorRef }]; }, { disabled: [{\n type: Input\n }], valueChecked: [{\n type: Input\n }], valueUnChecked: [{\n type: Input\n }] }); })();\n\nlet nextId$1 = 0;\r\n/**\r\n * Allows to easily create Bootstrap-style radio buttons.\r\n *\r\n * Integrates with forms, so the value of a checked button is bound to the underlying form control\r\n * either in a reactive or template-driven way.\r\n */\r\nclass NgbRadioGroup {\r\n constructor() {\r\n this._radios = new Set();\r\n this._value = null;\r\n /**\r\n * Name of the radio group applied to radio input elements.\r\n *\r\n * Will be applied to all radio input elements inside the group,\r\n * unless [`NgbRadio`](#/components/buttons/api#NgbRadio)'s specify names themselves.\r\n *\r\n * If not provided, will be generated in the `ngb-radio-xx` format.\r\n */\r\n this.name = `ngb-radio-${nextId$1++}`;\r\n this.onChange = (_) => { };\r\n this.onTouched = () => { };\r\n }\r\n get disabled() { return this._disabled; }\r\n set disabled(isDisabled) { this.setDisabledState(isDisabled); }\r\n onRadioChange(radio) {\r\n this.writeValue(radio.value);\r\n this.onChange(radio.value);\r\n }\r\n onRadioValueUpdate() { this._updateRadiosValue(); }\r\n register(radio) { this._radios.add(radio); }\r\n registerOnChange(fn) { this.onChange = fn; }\r\n registerOnTouched(fn) { this.onTouched = fn; }\r\n setDisabledState(isDisabled) {\r\n this._disabled = isDisabled;\r\n this._updateRadiosDisabled();\r\n }\r\n unregister(radio) { this._radios.delete(radio); }\r\n writeValue(value) {\r\n this._value = value;\r\n this._updateRadiosValue();\r\n }\r\n _updateRadiosValue() { this._radios.forEach((radio) => radio.updateValue(this._value)); }\r\n _updateRadiosDisabled() { this._radios.forEach((radio) => radio.updateDisabled()); }\r\n}\nNgbRadioGroup.ɵfac = function NgbRadioGroup_Factory(t) { return new (t || NgbRadioGroup)(); };\nNgbRadioGroup.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbRadioGroup, selectors: [[\"\", \"ngbRadioGroup\", \"\"]], hostAttrs: [\"role\", \"radiogroup\"], inputs: { name: \"name\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbRadioGroup), multi: true }])] });\r\nNgbRadioGroup.propDecorators = {\r\n name: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRadioGroup, [{\n type: Directive,\n args: [{\n selector: '[ngbRadioGroup]',\n host: { 'role': 'radiogroup' },\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbRadioGroup), multi: true }]\n }]\n }], function () { return []; }, { name: [{\n type: Input\n }] }); })();\r\n/**\r\n * A directive that marks an input of type \"radio\" as a part of the\r\n * [`NgbRadioGroup`](#/components/buttons/api#NgbRadioGroup).\r\n */\r\nclass NgbRadio {\r\n constructor(_group, _label, _renderer, _element, _cd) {\r\n this._group = _group;\r\n this._label = _label;\r\n this._renderer = _renderer;\r\n this._element = _element;\r\n this._cd = _cd;\r\n this._value = null;\r\n this._group.register(this);\r\n this.updateDisabled();\r\n }\r\n /**\r\n * The form control value when current radio button is checked.\r\n */\r\n set value(value) {\r\n this._value = value;\r\n const stringValue = value ? value.toString() : '';\r\n this._renderer.setProperty(this._element.nativeElement, 'value', stringValue);\r\n this._group.onRadioValueUpdate();\r\n }\r\n /**\r\n * If `true`, current radio button will be disabled.\r\n */\r\n set disabled(isDisabled) {\r\n this._disabled = isDisabled !== false;\r\n this.updateDisabled();\r\n }\r\n set focused(isFocused) {\r\n if (this._label) {\r\n this._label.focused = isFocused;\r\n }\r\n if (!isFocused) {\r\n this._group.onTouched();\r\n }\r\n }\r\n get checked() { return this._checked; }\r\n get disabled() { return this._group.disabled || this._disabled; }\r\n get value() { return this._value; }\r\n get nameAttr() { return this.name || this._group.name; }\r\n ngOnDestroy() { this._group.unregister(this); }\r\n onChange() { this._group.onRadioChange(this); }\r\n updateValue(value) {\r\n // label won't be updated, if it is inside the OnPush component when [ngModel] changes\r\n if (this.value !== value) {\r\n this._cd.markForCheck();\r\n }\r\n this._checked = this.value === value;\r\n this._label.active = this._checked;\r\n }\r\n updateDisabled() { this._label.disabled = this.disabled; }\r\n}\nNgbRadio.ɵfac = function NgbRadio_Factory(t) { return new (t || NgbRadio)(ɵngcc0.ɵɵdirectiveInject(NgbRadioGroup), ɵngcc0.ɵɵdirectiveInject(NgbButtonLabel), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nNgbRadio.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbRadio, selectors: [[\"\", \"ngbButton\", \"\", \"type\", \"radio\"]], hostVars: 3, hostBindings: function NgbRadio_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"change\", function NgbRadio_change_HostBindingHandler() { return ctx.onChange(); })(\"focus\", function NgbRadio_focus_HostBindingHandler() { return ctx.focused = true; })(\"blur\", function NgbRadio_blur_HostBindingHandler() { return ctx.focused = false; });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"checked\", ctx.checked)(\"disabled\", ctx.disabled)(\"name\", ctx.nameAttr);\n } }, inputs: { value: \"value\", disabled: \"disabled\", name: \"name\" } });\r\nNgbRadio.ctorParameters = () => [\r\n { type: NgbRadioGroup },\r\n { type: NgbButtonLabel },\r\n { type: Renderer2 },\r\n { type: ElementRef },\r\n { type: ChangeDetectorRef }\r\n];\r\nNgbRadio.propDecorators = {\r\n name: [{ type: Input }],\r\n value: [{ type: Input, args: ['value',] }],\r\n disabled: [{ type: Input, args: ['disabled',] }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRadio, [{\n type: Directive,\n args: [{\n selector: '[ngbButton][type=radio]',\n host: {\n '[checked]': 'checked',\n '[disabled]': 'disabled',\n '[name]': 'nameAttr',\n '(change)': 'onChange()',\n '(focus)': 'focused = true',\n '(blur)': 'focused = false'\n }\n }]\n }], function () { return [{ type: NgbRadioGroup }, { type: NgbButtonLabel }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }]; }, { value: [{\n type: Input,\n args: ['value']\n }], disabled: [{\n type: Input,\n args: ['disabled']\n }], name: [{\n type: Input\n }] }); })();\n\nconst NGB_BUTTON_DIRECTIVES = [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio];\r\nclass NgbButtonsModule {\r\n}\nNgbButtonsModule.ɵfac = function NgbButtonsModule_Factory(t) { return new (t || NgbButtonsModule)(); };\nNgbButtonsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbButtonsModule });\nNgbButtonsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbButtonsModule, [{\n type: NgModule,\n args: [{ declarations: NGB_BUTTON_DIRECTIVES, exports: NGB_BUTTON_DIRECTIVES }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbButtonsModule, { declarations: [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio], exports: [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio] }); })();\n\n/**\r\n * A configuration service for the [NgbCarousel](#/components/carousel/api#NgbCarousel) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize its properties\r\n * to provide default values for all carousels used in the application.\r\n */\r\nclass NgbCarouselConfig {\r\n constructor(_ngbConfig) {\r\n this._ngbConfig = _ngbConfig;\r\n this.interval = 5000;\r\n this.wrap = true;\r\n this.keyboard = true;\r\n this.pauseOnHover = true;\r\n this.pauseOnFocus = true;\r\n this.showNavigationArrows = true;\r\n this.showNavigationIndicators = true;\r\n }\r\n get animation() { return (this._animation === undefined) ? this._ngbConfig.animation : this._animation; }\r\n set animation(animation) { this._animation = animation; }\r\n}\nNgbCarouselConfig.ɵfac = function NgbCarouselConfig_Factory(t) { return new (t || NgbCarouselConfig)(ɵngcc0.ɵɵinject(NgbConfig)); };\r\nNgbCarouselConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbCarouselConfig_Factory() { return new NgbCarouselConfig(ɵɵinject(NgbConfig)); }, token: NgbCarouselConfig, providedIn: \"root\" });\r\nNgbCarouselConfig.ctorParameters = () => [\r\n { type: NgbConfig }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCarouselConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: NgbConfig }]; }, null); })();\n\n/**\r\n * Defines the carousel slide transition direction.\r\n */\r\nvar NgbSlideEventDirection;\r\n(function (NgbSlideEventDirection) {\r\n NgbSlideEventDirection[\"LEFT\"] = \"left\";\r\n NgbSlideEventDirection[\"RIGHT\"] = \"right\";\r\n})(NgbSlideEventDirection || (NgbSlideEventDirection = {}));\r\nconst isBeingAnimated = ({ classList }) => {\r\n return classList.contains('carousel-item-left') || classList.contains('carousel-item-right');\r\n};\r\nconst ɵ0$1 = isBeingAnimated;\r\nconst removeDirectionClasses = (classList) => {\r\n classList.remove('carousel-item-left');\r\n classList.remove('carousel-item-right');\r\n};\r\nconst ɵ1 = removeDirectionClasses;\r\nconst removeClasses = (classList) => {\r\n removeDirectionClasses(classList);\r\n classList.remove('carousel-item-prev');\r\n classList.remove('carousel-item-next');\r\n};\r\nconst ɵ2 = removeClasses;\r\nconst ngbCarouselTransitionIn = (element, animation, { direction }) => {\r\n const { classList } = element;\r\n if (!animation) {\r\n removeDirectionClasses(classList);\r\n removeClasses(classList);\r\n classList.add('active');\r\n return;\r\n }\r\n if (isBeingAnimated(element)) {\r\n // Revert the transition\r\n removeDirectionClasses(classList);\r\n }\r\n else {\r\n // For the 'in' transition, a 'pre-class' is applied to the element to ensure its visibility\r\n classList.add('carousel-item-' + (direction === NgbSlideEventDirection.LEFT ? 'next' : 'prev'));\r\n reflow(element);\r\n classList.add('carousel-item-' + direction);\r\n }\r\n return () => {\r\n removeClasses(classList);\r\n classList.add('active');\r\n };\r\n};\r\nconst ngbCarouselTransitionOut = (element, animation, { direction }) => {\r\n const { classList } = element;\r\n if (!animation) {\r\n removeDirectionClasses(classList);\r\n removeClasses(classList);\r\n classList.remove('active');\r\n return;\r\n }\r\n // direction is left or right, depending on the way the slide goes out.\r\n if (isBeingAnimated(element)) {\r\n // Revert the transition\r\n removeDirectionClasses(classList);\r\n }\r\n else {\r\n classList.add('carousel-item-' + direction);\r\n }\r\n return () => {\r\n removeClasses(classList);\r\n classList.remove('active');\r\n };\r\n};\n\nlet nextId$2 = 0;\r\n/**\r\n * A directive that wraps the individual carousel slide.\r\n */\r\nclass NgbSlide {\r\n constructor(tplRef) {\r\n this.tplRef = tplRef;\r\n /**\r\n * Slide id that must be unique for the entire document.\r\n *\r\n * If not provided, will be generated in the `ngb-slide-xx` format.\r\n */\r\n this.id = `ngb-slide-${nextId$2++}`;\r\n /**\r\n * An event emitted when the slide transition is finished\r\n *\r\n * @since 8.0.0\r\n */\r\n this.slid = new EventEmitter();\r\n }\r\n}\nNgbSlide.ɵfac = function NgbSlide_Factory(t) { return new (t || NgbSlide)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbSlide.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbSlide, selectors: [[\"ng-template\", \"ngbSlide\", \"\"]], inputs: { id: \"id\" }, outputs: { slid: \"slid\" } });\r\nNgbSlide.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\r\nNgbSlide.propDecorators = {\r\n id: [{ type: Input }],\r\n slid: [{ type: Output }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbSlide, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbSlide]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, { id: [{\n type: Input\n }], slid: [{\n type: Output\n }] }); })();\r\n/**\r\n * Carousel is a component to easily create and control slideshows.\r\n *\r\n * Allows to set intervals, change the way user interacts with the slides and provides a programmatic API.\r\n */\r\nclass NgbCarousel {\r\n constructor(config, _platformId, _ngZone, _cd, _container) {\r\n this._platformId = _platformId;\r\n this._ngZone = _ngZone;\r\n this._cd = _cd;\r\n this._container = _container;\r\n this.NgbSlideEventSource = NgbSlideEventSource;\r\n this._destroy$ = new Subject();\r\n this._interval$ = new BehaviorSubject(0);\r\n this._mouseHover$ = new BehaviorSubject(false);\r\n this._focused$ = new BehaviorSubject(false);\r\n this._pauseOnHover$ = new BehaviorSubject(false);\r\n this._pauseOnFocus$ = new BehaviorSubject(false);\r\n this._pause$ = new BehaviorSubject(false);\r\n this._wrap$ = new BehaviorSubject(false);\r\n /**\r\n * An event emitted just before the slide transition starts.\r\n *\r\n * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details.\r\n */\r\n this.slide = new EventEmitter();\r\n /**\r\n * An event emitted right after the slide transition is completed.\r\n *\r\n * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details.\r\n *\r\n * @since 8.0.0\r\n */\r\n this.slid = new EventEmitter();\r\n /*\r\n * Keep the ids of the panels currently transitionning\r\n * in order to allow only the transition revertion\r\n */\r\n this._transitionIds = null;\r\n this.animation = config.animation;\r\n this.interval = config.interval;\r\n this.wrap = config.wrap;\r\n this.keyboard = config.keyboard;\r\n this.pauseOnHover = config.pauseOnHover;\r\n this.pauseOnFocus = config.pauseOnFocus;\r\n this.showNavigationArrows = config.showNavigationArrows;\r\n this.showNavigationIndicators = config.showNavigationIndicators;\r\n }\r\n /**\r\n * Time in milliseconds before the next slide is shown.\r\n */\r\n set interval(value) {\r\n this._interval$.next(value);\r\n }\r\n get interval() { return this._interval$.value; }\r\n /**\r\n * If `true`, will 'wrap' the carousel by switching from the last slide back to the first.\r\n */\r\n set wrap(value) {\r\n this._wrap$.next(value);\r\n }\r\n get wrap() { return this._wrap$.value; }\r\n /**\r\n * If `true`, will pause slide switching when mouse cursor hovers the slide.\r\n *\r\n * @since 2.2.0\r\n */\r\n set pauseOnHover(value) {\r\n this._pauseOnHover$.next(value);\r\n }\r\n get pauseOnHover() { return this._pauseOnHover$.value; }\r\n /**\r\n * If `true`, will pause slide switching when the focus is inside the carousel.\r\n */\r\n set pauseOnFocus(value) {\r\n this._pauseOnFocus$.next(value);\r\n }\r\n get pauseOnFocus() { return this._pauseOnFocus$.value; }\r\n set mouseHover(value) { this._mouseHover$.next(value); }\r\n get mouseHover() { return this._mouseHover$.value; }\r\n set focused(value) { this._focused$.next(value); }\r\n get focused() { return this._focused$.value; }\r\n arrowLeft() {\r\n this.focus();\r\n this.prev(NgbSlideEventSource.ARROW_LEFT);\r\n }\r\n arrowRight() {\r\n this.focus();\r\n this.next(NgbSlideEventSource.ARROW_RIGHT);\r\n }\r\n ngAfterContentInit() {\r\n // setInterval() doesn't play well with SSR and protractor,\r\n // so we should run it in the browser and outside Angular\r\n if (isPlatformBrowser(this._platformId)) {\r\n this._ngZone.runOutsideAngular(() => {\r\n const hasNextSlide$ = combineLatest([\r\n this.slide.pipe(map(slideEvent => slideEvent.current), startWith(this.activeId)),\r\n this._wrap$, this.slides.changes.pipe(startWith(null))\r\n ])\r\n .pipe(map(([currentSlideId, wrap]) => {\r\n const slideArr = this.slides.toArray();\r\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\r\n return wrap ? slideArr.length > 1 : currentSlideIdx < slideArr.length - 1;\r\n }), distinctUntilChanged());\r\n combineLatest([\r\n this._pause$, this._pauseOnHover$, this._mouseHover$, this._pauseOnFocus$, this._focused$, this._interval$,\r\n hasNextSlide$\r\n ])\r\n .pipe(map(([pause, pauseOnHover, mouseHover, pauseOnFocus, focused, interval, hasNextSlide]) => ((pause || (pauseOnHover && mouseHover) || (pauseOnFocus && focused) || !hasNextSlide) ?\r\n 0 :\r\n interval)), distinctUntilChanged(), switchMap(interval => interval > 0 ? timer(interval, interval) : NEVER), takeUntil(this._destroy$))\r\n .subscribe(() => this._ngZone.run(() => this.next(NgbSlideEventSource.TIMER)));\r\n });\r\n }\r\n this.slides.changes.pipe(takeUntil(this._destroy$)).subscribe(() => {\r\n var _a;\r\n (_a = this._transitionIds) === null || _a === void 0 ? void 0 : _a.forEach(id => ngbCompleteTransition(this._getSlideElement(id)));\r\n this._transitionIds = null;\r\n this._cd.markForCheck();\r\n // The following code need to be done asynchronously, after the dom becomes stable,\r\n // otherwise all changes will be undone.\r\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\r\n for (const { id } of this.slides) {\r\n const element = this._getSlideElement(id);\r\n if (id === this.activeId) {\r\n element.classList.add('active');\r\n }\r\n else {\r\n element.classList.remove('active');\r\n }\r\n }\r\n });\r\n });\r\n }\r\n ngAfterContentChecked() {\r\n let activeSlide = this._getSlideById(this.activeId);\r\n this.activeId = activeSlide ? activeSlide.id : (this.slides.length ? this.slides.first.id : '');\r\n }\r\n ngAfterViewInit() {\r\n // Initialize the 'active' class (not managed by the template)\r\n if (this.activeId) {\r\n const element = this._getSlideElement(this.activeId);\r\n if (element) {\r\n element.classList.add('active');\r\n }\r\n }\r\n }\r\n ngOnDestroy() { this._destroy$.next(); }\r\n /**\r\n * Navigates to a slide with the specified identifier.\r\n */\r\n select(slideId, source) {\r\n this._cycleToSelected(slideId, this._getSlideEventDirection(this.activeId, slideId), source);\r\n }\r\n /**\r\n * Navigates to the previous slide.\r\n */\r\n prev(source) {\r\n this._cycleToSelected(this._getPrevSlide(this.activeId), NgbSlideEventDirection.RIGHT, source);\r\n }\r\n /**\r\n * Navigates to the next slide.\r\n */\r\n next(source) {\r\n this._cycleToSelected(this._getNextSlide(this.activeId), NgbSlideEventDirection.LEFT, source);\r\n }\r\n /**\r\n * Pauses cycling through the slides.\r\n */\r\n pause() { this._pause$.next(true); }\r\n /**\r\n * Restarts cycling through the slides from left to right.\r\n */\r\n cycle() { this._pause$.next(false); }\r\n /**\r\n * Set the focus on the carousel.\r\n */\r\n focus() { this._container.nativeElement.focus(); }\r\n _cycleToSelected(slideIdx, direction, source) {\r\n const transitionIds = this._transitionIds;\r\n if (transitionIds && (transitionIds[0] !== slideIdx || transitionIds[1] !== this.activeId)) {\r\n // Revert prevented\r\n return;\r\n }\r\n let selectedSlide = this._getSlideById(slideIdx);\r\n if (selectedSlide && selectedSlide.id !== this.activeId) {\r\n this._transitionIds = [this.activeId, slideIdx];\r\n this.slide.emit({ prev: this.activeId, current: selectedSlide.id, direction: direction, paused: this._pause$.value, source });\r\n const options = {\r\n animation: this.animation,\r\n runningTransition: 'stop',\r\n context: { direction },\r\n };\r\n const transitions = [];\r\n const activeSlide = this._getSlideById(this.activeId);\r\n if (activeSlide) {\r\n const activeSlideTransition = ngbRunTransition(this._ngZone, this._getSlideElement(activeSlide.id), ngbCarouselTransitionOut, options);\r\n activeSlideTransition.subscribe(() => { activeSlide.slid.emit({ isShown: false, direction, source }); });\r\n transitions.push(activeSlideTransition);\r\n }\r\n const previousId = this.activeId;\r\n this.activeId = selectedSlide.id;\r\n const nextSlide = this._getSlideById(this.activeId);\r\n const transition = ngbRunTransition(this._ngZone, this._getSlideElement(selectedSlide.id), ngbCarouselTransitionIn, options);\r\n transition.subscribe(() => { nextSlide === null || nextSlide === void 0 ? void 0 : nextSlide.slid.emit({ isShown: true, direction, source }); });\r\n transitions.push(transition);\r\n zip(...transitions).pipe(take(1)).subscribe(() => {\r\n this._transitionIds = null;\r\n this.slid.emit({ prev: previousId, current: selectedSlide.id, direction: direction, paused: this._pause$.value, source });\r\n });\r\n }\r\n // we get here after the interval fires or any external API call like next(), prev() or select()\r\n this._cd.markForCheck();\r\n }\r\n _getSlideEventDirection(currentActiveSlideId, nextActiveSlideId) {\r\n const currentActiveSlideIdx = this._getSlideIdxById(currentActiveSlideId);\r\n const nextActiveSlideIdx = this._getSlideIdxById(nextActiveSlideId);\r\n return currentActiveSlideIdx > nextActiveSlideIdx ? NgbSlideEventDirection.RIGHT : NgbSlideEventDirection.LEFT;\r\n }\r\n _getSlideById(slideId) {\r\n return this.slides.find(slide => slide.id === slideId) || null;\r\n }\r\n _getSlideIdxById(slideId) {\r\n const slide = this._getSlideById(slideId);\r\n return slide != null ? this.slides.toArray().indexOf(slide) : -1;\r\n }\r\n _getNextSlide(currentSlideId) {\r\n const slideArr = this.slides.toArray();\r\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\r\n const isLastSlide = currentSlideIdx === slideArr.length - 1;\r\n return isLastSlide ? (this.wrap ? slideArr[0].id : slideArr[slideArr.length - 1].id) :\r\n slideArr[currentSlideIdx + 1].id;\r\n }\r\n _getPrevSlide(currentSlideId) {\r\n const slideArr = this.slides.toArray();\r\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\r\n const isFirstSlide = currentSlideIdx === 0;\r\n return isFirstSlide ? (this.wrap ? slideArr[slideArr.length - 1].id : slideArr[0].id) :\r\n slideArr[currentSlideIdx - 1].id;\r\n }\r\n _getSlideElement(slideId) {\r\n return this._container.nativeElement.querySelector(`#slide-${slideId}`);\r\n }\r\n}\nNgbCarousel.ɵfac = function NgbCarousel_Factory(t) { return new (t || NgbCarousel)(ɵngcc0.ɵɵdirectiveInject(NgbCarouselConfig), ɵngcc0.ɵɵdirectiveInject(PLATFORM_ID), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbCarousel.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbCarousel, selectors: [[\"ngb-carousel\"]], contentQueries: function NgbCarousel_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbSlide, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.slides = _t);\n } }, hostAttrs: [\"tabIndex\", \"0\", 1, \"carousel\", \"slide\"], hostVars: 3, hostBindings: function NgbCarousel_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keydown.arrowLeft\", function NgbCarousel_keydown_arrowLeft_HostBindingHandler() { return ctx.keyboard && ctx.arrowLeft(); })(\"keydown.arrowRight\", function NgbCarousel_keydown_arrowRight_HostBindingHandler() { return ctx.keyboard && ctx.arrowRight(); })(\"mouseenter\", function NgbCarousel_mouseenter_HostBindingHandler() { return ctx.mouseHover = true; })(\"mouseleave\", function NgbCarousel_mouseleave_HostBindingHandler() { return ctx.mouseHover = false; })(\"focusin\", function NgbCarousel_focusin_HostBindingHandler() { return ctx.focused = true; })(\"focusout\", function NgbCarousel_focusout_HostBindingHandler() { return ctx.focused = false; });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-activedescendant\", \"slide-\" + ctx.activeId);\n ɵngcc0.ɵɵstyleProp(\"display\", \"block\");\n } }, inputs: { animation: \"animation\", interval: \"interval\", wrap: \"wrap\", keyboard: \"keyboard\", pauseOnHover: \"pauseOnHover\", pauseOnFocus: \"pauseOnFocus\", showNavigationArrows: \"showNavigationArrows\", showNavigationIndicators: \"showNavigationIndicators\", activeId: \"activeId\" }, outputs: { slide: \"slide\", slid: \"slid\" }, exportAs: [\"ngbCarousel\"], decls: 6, vars: 6, consts: function () { let i18n_4; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc Currently selected slide number read by screen reader\n */\n const MSG_EXTERNAL_ngb_carousel_slide_number$$FESM2015_NG_BOOTSTRAP_JS__5 = goog.getMsg(\" Slide {$interpolation} of {$interpolation_1} \", { \"interpolation\": \"\\uFFFD0\\uFFFD\", \"interpolation_1\": \"\\uFFFD1\\uFFFD\" }, { original_code: { \"interpolation\": \"{{i + 1}}\", \"interpolation_1\": \"{{c}}\" } });\n i18n_4 = MSG_EXTERNAL_ngb_carousel_slide_number$$FESM2015_NG_BOOTSTRAP_JS__5;\n }\n else {\n i18n_4 = $localize `:Currently selected slide number read by screen reader@@ngb.carousel.slide-number␟a65b1b49aa7dd8c4f3004da6a8c2241814dae621␟783273603869937627: Slide ${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION: of ${\"\\uFFFD1\\uFFFD\"}:INTERPOLATION_1: `;\n } let i18n_6; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_carousel_previous$$FESM2015_NG_BOOTSTRAP_JS__7 = goog.getMsg(\"Previous\");\n i18n_6 = MSG_EXTERNAL_ngb_carousel_previous$$FESM2015_NG_BOOTSTRAP_JS__7;\n }\n else {\n i18n_6 = $localize `:@@ngb.carousel.previous␟680d5c75b7fd8d37961083608b9fcdc4167b4c43␟4452427314943113135:Previous`;\n } let i18n_8; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_carousel_next$$FESM2015_NG_BOOTSTRAP_JS__9 = goog.getMsg(\"Next\");\n i18n_8 = MSG_EXTERNAL_ngb_carousel_next$$FESM2015_NG_BOOTSTRAP_JS__9;\n }\n else {\n i18n_8 = $localize `:@@ngb.carousel.next␟f732c304c7433e5a83ffcd862c3dce709a0f4982␟3885497195825665706:Next`;\n } return [[\"role\", \"tablist\", 1, \"carousel-indicators\"], [\"role\", \"tab\", 3, \"active\", \"click\", 4, \"ngFor\", \"ngForOf\"], [1, \"carousel-inner\"], [\"class\", \"carousel-item\", \"role\", \"tabpanel\", 3, \"id\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"carousel-control-prev\", \"role\", \"button\", 3, \"click\", 4, \"ngIf\"], [\"class\", \"carousel-control-next\", \"role\", \"button\", 3, \"click\", 4, \"ngIf\"], [\"role\", \"tab\", 3, \"click\"], [\"role\", \"tabpanel\", 1, \"carousel-item\", 3, \"id\"], [1, \"sr-only\"], i18n_4, [3, \"ngTemplateOutlet\"], [\"role\", \"button\", 1, \"carousel-control-prev\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"carousel-control-prev-icon\"], i18n_6, [\"role\", \"button\", 1, \"carousel-control-next\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"carousel-control-next-icon\"], i18n_8]; }, template: function NgbCarousel_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"ol\", 0);\n ɵngcc0.ɵɵtemplate(1, NgbCarousel_li_1_Template, 1, 5, \"li\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"div\", 2);\n ɵngcc0.ɵɵtemplate(3, NgbCarousel_div_3_Template, 4, 4, \"div\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(4, NgbCarousel_a_4_Template, 4, 0, \"a\", 4);\n ɵngcc0.ɵɵtemplate(5, NgbCarousel_a_5_Template, 4, 0, \"a\", 5);\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"sr-only\", !ctx.showNavigationIndicators);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.slides);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.slides);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showNavigationArrows);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showNavigationArrows);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], encapsulation: 2, changeDetection: 0 });\r\nNgbCarousel.ctorParameters = () => [\r\n { type: NgbCarouselConfig },\r\n { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },\r\n { type: NgZone },\r\n { type: ChangeDetectorRef },\r\n { type: ElementRef }\r\n];\r\nNgbCarousel.propDecorators = {\r\n slides: [{ type: ContentChildren, args: [NgbSlide,] }],\r\n animation: [{ type: Input }],\r\n activeId: [{ type: Input }],\r\n interval: [{ type: Input }],\r\n wrap: [{ type: Input }],\r\n keyboard: [{ type: Input }],\r\n pauseOnHover: [{ type: Input }],\r\n pauseOnFocus: [{ type: Input }],\r\n showNavigationArrows: [{ type: Input }],\r\n showNavigationIndicators: [{ type: Input }],\r\n slide: [{ type: Output }],\r\n slid: [{ type: Output }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCarousel, [{\n type: Component,\n args: [{\n selector: 'ngb-carousel',\n exportAs: 'ngbCarousel',\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: `\r\n <ol class=\"carousel-indicators\" [class.sr-only]=\"!showNavigationIndicators\" role=\"tablist\">\r\n <li *ngFor=\"let slide of slides\" [class.active]=\"slide.id === activeId\"\r\n role=\"tab\" [attr.aria-labelledby]=\"'slide-' + slide.id\" [attr.aria-controls]=\"'slide-' + slide.id\"\r\n [attr.aria-selected]=\"slide.id === activeId\"\r\n (click)=\"focus();select(slide.id, NgbSlideEventSource.INDICATOR);\"></li>\r\n </ol>\r\n <div class=\"carousel-inner\">\r\n <div *ngFor=\"let slide of slides; index as i; count as c\" class=\"carousel-item\" [id]=\"'slide-' + slide.id\" role=\"tabpanel\">\r\n <span class=\"sr-only\" i18n=\"Currently selected slide number read by screen reader@@ngb.carousel.slide-number\">\r\n Slide {{i + 1}} of {{c}}\r\n </span>\r\n <ng-template [ngTemplateOutlet]=\"slide.tplRef\"></ng-template>\r\n </div>\r\n </div>\r\n <a class=\"carousel-control-prev\" role=\"button\" (click)=\"arrowLeft()\" *ngIf=\"showNavigationArrows\">\r\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\" i18n=\"@@ngb.carousel.previous\">Previous</span>\r\n </a>\r\n <a class=\"carousel-control-next\" role=\"button\" (click)=\"arrowRight()\" *ngIf=\"showNavigationArrows\">\r\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\" i18n=\"@@ngb.carousel.next\">Next</span>\r\n </a>\r\n `\n }]\n }], function () { return [{ type: NgbCarouselConfig }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }]; }, { slide: [{\n type: Output\n }], slid: [{\n type: Output\n }], animation: [{\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 }], activeId: [{\n type: Input\n }], slides: [{\n type: ContentChildren,\n args: [NgbSlide]\n }] }); })();\r\nvar NgbSlideEventSource;\r\n(function (NgbSlideEventSource) {\r\n NgbSlideEventSource[\"TIMER\"] = \"timer\";\r\n NgbSlideEventSource[\"ARROW_LEFT\"] = \"arrowLeft\";\r\n NgbSlideEventSource[\"ARROW_RIGHT\"] = \"arrowRight\";\r\n NgbSlideEventSource[\"INDICATOR\"] = \"indicator\";\r\n})(NgbSlideEventSource || (NgbSlideEventSource = {}));\r\nconst NGB_CAROUSEL_DIRECTIVES = [NgbCarousel, NgbSlide];\n\nclass NgbCarouselModule {\r\n}\nNgbCarouselModule.ɵfac = function NgbCarouselModule_Factory(t) { return new (t || NgbCarouselModule)(); };\nNgbCarouselModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbCarouselModule });\nNgbCarouselModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCarouselModule, [{\n type: NgModule,\n args: [{ declarations: NGB_CAROUSEL_DIRECTIVES, exports: NGB_CAROUSEL_DIRECTIVES, imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbCarouselModule, { declarations: function () { return [NgbCarousel, NgbSlide]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbCarousel, NgbSlide]; } }); })();\n\n/**\r\n * A configuration service for the [NgbCollapse](#/components/collapse/api#NgbCollapse) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize its properties\r\n * to provide default values for all collapses used in the application.\r\n */\r\nclass NgbCollapseConfig {\r\n constructor(_ngbConfig) {\r\n this._ngbConfig = _ngbConfig;\r\n }\r\n get animation() { return (this._animation === undefined) ? this._ngbConfig.animation : this._animation; }\r\n set animation(animation) { this._animation = animation; }\r\n}\nNgbCollapseConfig.ɵfac = function NgbCollapseConfig_Factory(t) { return new (t || NgbCollapseConfig)(ɵngcc0.ɵɵinject(NgbConfig)); };\r\nNgbCollapseConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbCollapseConfig_Factory() { return new NgbCollapseConfig(ɵɵinject(NgbConfig)); }, token: NgbCollapseConfig, providedIn: \"root\" });\r\nNgbCollapseConfig.ctorParameters = () => [\r\n { type: NgbConfig }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCollapseConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: NgbConfig }]; }, null); })();\n\n/**\r\n * A directive to provide a simple way of hiding and showing elements on the page.\r\n */\r\nclass NgbCollapse {\r\n constructor(_element, config, _zone) {\r\n this._element = _element;\r\n this._zone = _zone;\r\n /**\r\n * If `true`, will collapse the element or show it otherwise.\r\n */\r\n this.collapsed = false;\r\n this.ngbCollapseChange = new EventEmitter();\r\n /**\r\n * An event emitted when the collapse element is shown, after the transition. It has no payload.\r\n *\r\n * @since 8.0.0\r\n */\r\n this.shown = new EventEmitter();\r\n /**\r\n * An event emitted when the collapse element is hidden, after the transition. It has no payload.\r\n *\r\n * @since 8.0.0\r\n */\r\n this.hidden = new EventEmitter();\r\n this.animation = config.animation;\r\n }\r\n ngOnInit() { this._runTransition(this.collapsed, false); }\r\n ngOnChanges({ collapsed }) {\r\n if (!collapsed.firstChange) {\r\n this._runTransitionWithEvents(this.collapsed, this.animation);\r\n }\r\n }\r\n /**\r\n * Triggers collapsing programmatically.\r\n *\r\n * If there is a collapsing transition running already, it will be reversed.\r\n * If the animations are turned off this happens synchronously.\r\n *\r\n * @since 8.0.0\r\n */\r\n toggle(open = this.collapsed) {\r\n this.collapsed = !open;\r\n this.ngbCollapseChange.next(this.collapsed);\r\n this._runTransitionWithEvents(this.collapsed, this.animation);\r\n }\r\n _runTransition(collapsed, animation) {\r\n return ngbRunTransition(this._zone, this._element.nativeElement, ngbCollapsingTransition, { animation, runningTransition: 'stop', context: { direction: collapsed ? 'hide' : 'show' } });\r\n }\r\n _runTransitionWithEvents(collapsed, animation) {\r\n this._runTransition(collapsed, animation).subscribe(() => {\r\n if (collapsed) {\r\n this.hidden.emit();\r\n }\r\n else {\r\n this.shown.emit();\r\n }\r\n });\r\n }\r\n}\nNgbCollapse.ɵfac = function NgbCollapse_Factory(t) { return new (t || NgbCollapse)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(NgbCollapseConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nNgbCollapse.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbCollapse, selectors: [[\"\", \"ngbCollapse\", \"\"]], inputs: { collapsed: [\"ngbCollapse\", \"collapsed\"], animation: \"animation\" }, outputs: { ngbCollapseChange: \"ngbCollapseChange\", shown: \"shown\", hidden: \"hidden\" }, exportAs: [\"ngbCollapse\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\r\nNgbCollapse.ctorParameters = () => [\r\n { type: ElementRef },\r\n { type: NgbCollapseConfig },\r\n { type: NgZone }\r\n];\r\nNgbCollapse.propDecorators = {\r\n animation: [{ type: Input }],\r\n collapsed: [{ type: Input, args: ['ngbCollapse',] }],\r\n ngbCollapseChange: [{ type: Output }],\r\n shown: [{ type: Output }],\r\n hidden: [{ type: Output }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCollapse, [{\n type: Directive,\n args: [{ selector: '[ngbCollapse]', exportAs: 'ngbCollapse' }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: NgbCollapseConfig }, { type: ɵngcc0.NgZone }]; }, { collapsed: [{\n type: Input,\n args: ['ngbCollapse']\n }], ngbCollapseChange: [{\n type: Output\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], animation: [{\n type: Input\n }] }); })();\n\nclass NgbCollapseModule {\r\n}\nNgbCollapseModule.ɵfac = function NgbCollapseModule_Factory(t) { return new (t || NgbCollapseModule)(); };\nNgbCollapseModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbCollapseModule });\nNgbCollapseModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCollapseModule, [{\n type: NgModule,\n args: [{ declarations: [NgbCollapse], exports: [NgbCollapse] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbCollapseModule, { declarations: [NgbCollapse], exports: [NgbCollapse] }); })();\n\n/**\r\n * A simple class that represents a date that datepicker also uses internally.\r\n *\r\n * It is the implementation of the `NgbDateStruct` interface that adds some convenience methods,\r\n * like `.equals()`, `.before()`, etc.\r\n *\r\n * All datepicker APIs consume `NgbDateStruct`, but return `NgbDate`.\r\n *\r\n * In many cases it is simpler to manipulate these objects together with\r\n * [`NgbCalendar`](#/components/datepicker/api#NgbCalendar) than native JS Dates.\r\n *\r\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\r\n *\r\n * @since 3.0.0\r\n */\r\nclass NgbDate {\r\n constructor(year, month, day) {\r\n this.year = isInteger(year) ? year : null;\r\n this.month = isInteger(month) ? month : null;\r\n this.day = isInteger(day) ? day : null;\r\n }\r\n /**\r\n * A **static method** that creates a new date object from the `NgbDateStruct`,\r\n *\r\n * ex. `NgbDate.from({year: 2000, month: 5, day: 1})`.\r\n *\r\n * If the `date` is already of `NgbDate` type, the method will return the same object.\r\n */\r\n static from(date) {\r\n if (date instanceof NgbDate) {\r\n return date;\r\n }\r\n return date ? new NgbDate(date.year, date.month, date.day) : null;\r\n }\r\n /**\r\n * Checks if the current date is equal to another date.\r\n */\r\n equals(other) {\r\n return other != null && this.year === other.year && this.month === other.month && this.day === other.day;\r\n }\r\n /**\r\n * Checks if the current date is before another date.\r\n */\r\n before(other) {\r\n if (!other) {\r\n return false;\r\n }\r\n if (this.year === other.year) {\r\n if (this.month === other.month) {\r\n return this.day === other.day ? false : this.day < other.day;\r\n }\r\n else {\r\n return this.month < other.month;\r\n }\r\n }\r\n else {\r\n return this.year < other.year;\r\n }\r\n }\r\n /**\r\n * Checks if the current date is after another date.\r\n */\r\n after(other) {\r\n if (!other) {\r\n return false;\r\n }\r\n if (this.year === other.year) {\r\n if (this.month === other.month) {\r\n return this.day === other.day ? false : this.day > other.day;\r\n }\r\n else {\r\n return this.month > other.month;\r\n }\r\n }\r\n else {\r\n return this.year > other.year;\r\n }\r\n }\r\n}\n\nfunction fromJSDate(jsDate) {\r\n return new NgbDate(jsDate.getFullYear(), jsDate.getMonth() + 1, jsDate.getDate());\r\n}\r\nfunction toJSDate(date) {\r\n const jsDate = new Date(date.year, date.month - 1, date.day, 12);\r\n // this is done avoid 30 -> 1930 conversion\r\n if (!isNaN(jsDate.getTime())) {\r\n jsDate.setFullYear(date.year);\r\n }\r\n return jsDate;\r\n}\r\nfunction NGB_DATEPICKER_CALENDAR_FACTORY() {\r\n return new NgbCalendarGregorian();\r\n}\r\n/**\r\n * A service that represents the calendar used by the datepicker.\r\n *\r\n * The default implementation uses the Gregorian calendar. You can inject it in your own\r\n * implementations if necessary to simplify `NgbDate` calculations.\r\n */\r\nclass NgbCalendar {\r\n}\nNgbCalendar.ɵfac = function NgbCalendar_Factory(t) { return new (t || NgbCalendar)(); };\r\nNgbCalendar.ɵprov = ɵɵdefineInjectable({ factory: NGB_DATEPICKER_CALENDAR_FACTORY, token: NgbCalendar, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendar, [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_CALENDAR_FACTORY }]\n }], null, null); })();\r\nclass NgbCalendarGregorian extends NgbCalendar {\r\n getDaysPerWeek() { return 7; }\r\n getMonths() { return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; }\r\n getWeeksPerMonth() { return 6; }\r\n getNext(date, period = 'd', number = 1) {\r\n let jsDate = toJSDate(date);\r\n let checkMonth = true;\r\n let expectedMonth = jsDate.getMonth();\r\n switch (period) {\r\n case 'y':\r\n jsDate.setFullYear(jsDate.getFullYear() + number);\r\n break;\r\n case 'm':\r\n expectedMonth += number;\r\n jsDate.setMonth(expectedMonth);\r\n expectedMonth = expectedMonth % 12;\r\n if (expectedMonth < 0) {\r\n expectedMonth = expectedMonth + 12;\r\n }\r\n break;\r\n case 'd':\r\n jsDate.setDate(jsDate.getDate() + number);\r\n checkMonth = false;\r\n break;\r\n default:\r\n return date;\r\n }\r\n if (checkMonth && jsDate.getMonth() !== expectedMonth) {\r\n // this means the destination month has less days than the initial month\r\n // let's go back to the end of the previous month:\r\n jsDate.setDate(0);\r\n }\r\n return fromJSDate(jsDate);\r\n }\r\n getPrev(date, period = 'd', number = 1) { return this.getNext(date, period, -number); }\r\n getWeekday(date) {\r\n let jsDate = toJSDate(date);\r\n let day = jsDate.getDay();\r\n // in JS Date Sun=0, in ISO 8601 Sun=7\r\n return day === 0 ? 7 : day;\r\n }\r\n getWeekNumber(week, firstDayOfWeek) {\r\n // in JS Date Sun=0, in ISO 8601 Sun=7\r\n if (firstDayOfWeek === 7) {\r\n firstDayOfWeek = 0;\r\n }\r\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\r\n let date = week[thursdayIndex];\r\n const jsDate = toJSDate(date);\r\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\r\n const time = jsDate.getTime();\r\n jsDate.setMonth(0); // Compare with Jan 1\r\n jsDate.setDate(1);\r\n return Math.floor(Math.round((time - jsDate.getTime()) / 86400000) / 7) + 1;\r\n }\r\n getToday() { return fromJSDate(new Date()); }\r\n isValid(date) {\r\n if (!date || !isInteger(date.year) || !isInteger(date.month) || !isInteger(date.day)) {\r\n return false;\r\n }\r\n // year 0 doesn't exist in Gregorian calendar\r\n if (date.year === 0) {\r\n return false;\r\n }\r\n const jsDate = toJSDate(date);\r\n return !isNaN(jsDate.getTime()) && jsDate.getFullYear() === date.year && jsDate.getMonth() + 1 === date.month &&\r\n jsDate.getDate() === date.day;\r\n }\r\n}\nNgbCalendarGregorian.ɵfac = /*@__PURE__*/ function () { let ɵNgbCalendarGregorian_BaseFactory; return function NgbCalendarGregorian_Factory(t) { return (ɵNgbCalendarGregorian_BaseFactory || (ɵNgbCalendarGregorian_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarGregorian)))(t || NgbCalendarGregorian); }; }();\nNgbCalendarGregorian.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarGregorian, factory: NgbCalendarGregorian.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarGregorian, [{\n type: Injectable\n }], null, null); })();\n\nfunction isChangedDate(prev, next) {\r\n return !dateComparator(prev, next);\r\n}\r\nfunction isChangedMonth(prev, next) {\r\n return !prev && !next ? false : !prev || !next ? true : prev.year !== next.year || prev.month !== next.month;\r\n}\r\nfunction dateComparator(prev, next) {\r\n return (!prev && !next) || (!!prev && !!next && prev.equals(next));\r\n}\r\nfunction checkMinBeforeMax(minDate, maxDate) {\r\n if (maxDate && minDate && maxDate.before(minDate)) {\r\n throw new Error(`'maxDate' ${maxDate} should be greater than 'minDate' ${minDate}`);\r\n }\r\n}\r\nfunction checkDateInRange(date, minDate, maxDate) {\r\n if (date && minDate && date.before(minDate)) {\r\n return minDate;\r\n }\r\n if (date && maxDate && date.after(maxDate)) {\r\n return maxDate;\r\n }\r\n return date || null;\r\n}\r\nfunction isDateSelectable(date, state) {\r\n const { minDate, maxDate, disabled, markDisabled } = state;\r\n // clang-format off\r\n return !(date === null ||\r\n date === undefined ||\r\n disabled ||\r\n (markDisabled && markDisabled(date, { year: date.year, month: date.month })) ||\r\n (minDate && date.before(minDate)) ||\r\n (maxDate && date.after(maxDate)));\r\n // clang-format on\r\n}\r\nfunction generateSelectBoxMonths(calendar, date, minDate, maxDate) {\r\n if (!date) {\r\n return [];\r\n }\r\n let months = calendar.getMonths(date.year);\r\n if (minDate && date.year === minDate.year) {\r\n const index = months.findIndex(month => month === minDate.month);\r\n months = months.slice(index);\r\n }\r\n if (maxDate && date.year === maxDate.year) {\r\n const index = months.findIndex(month => month === maxDate.month);\r\n months = months.slice(0, index + 1);\r\n }\r\n return months;\r\n}\r\nfunction generateSelectBoxYears(date, minDate, maxDate) {\r\n if (!date) {\r\n return [];\r\n }\r\n const start = minDate ? Math.max(minDate.year, date.year - 500) : date.year - 10;\r\n const end = maxDate ? Math.min(maxDate.year, date.year + 500) : date.year + 10;\r\n const length = end - start + 1;\r\n const numbers = Array(length);\r\n for (let i = 0; i < length; i++) {\r\n numbers[i] = start + i;\r\n }\r\n return numbers;\r\n}\r\nfunction nextMonthDisabled(calendar, date, maxDate) {\r\n const nextDate = Object.assign(calendar.getNext(date, 'm'), { day: 1 });\r\n return maxDate != null && nextDate.after(maxDate);\r\n}\r\nfunction prevMonthDisabled(calendar, date, minDate) {\r\n const prevDate = Object.assign(calendar.getPrev(date, 'm'), { day: 1 });\r\n return minDate != null && (prevDate.year === minDate.year && prevDate.month < minDate.month ||\r\n prevDate.year < minDate.year && minDate.month === 1);\r\n}\r\nfunction buildMonths(calendar, date, state, i18n, force) {\r\n const { displayMonths, months } = state;\r\n // move old months to a temporary array\r\n const monthsToReuse = months.splice(0, months.length);\r\n // generate new first dates, nullify or reuse months\r\n const firstDates = Array.from({ length: displayMonths }, (_, i) => {\r\n const firstDate = Object.assign(calendar.getNext(date, 'm', i), { day: 1 });\r\n months[i] = null;\r\n if (!force) {\r\n const reusedIndex = monthsToReuse.findIndex(month => month.firstDate.equals(firstDate));\r\n // move reused month back to months\r\n if (reusedIndex !== -1) {\r\n months[i] = monthsToReuse.splice(reusedIndex, 1)[0];\r\n }\r\n }\r\n return firstDate;\r\n });\r\n // rebuild nullified months\r\n firstDates.forEach((firstDate, i) => {\r\n if (months[i] === null) {\r\n months[i] = buildMonth(calendar, firstDate, state, i18n, monthsToReuse.shift() || {});\r\n }\r\n });\r\n return months;\r\n}\r\nfunction buildMonth(calendar, date, state, i18n, month = {}) {\r\n const { dayTemplateData, minDate, maxDate, firstDayOfWeek, markDisabled, outsideDays, weekdayWidth, weekdaysVisible } = state;\r\n const calendarToday = calendar.getToday();\r\n month.firstDate = null;\r\n month.lastDate = null;\r\n month.number = date.month;\r\n month.year = date.year;\r\n month.weeks = month.weeks || [];\r\n month.weekdays = month.weekdays || [];\r\n date = getFirstViewDate(calendar, date, firstDayOfWeek);\r\n // clearing weekdays, if not visible\r\n if (!weekdaysVisible) {\r\n month.weekdays.length = 0;\r\n }\r\n // month has weeks\r\n for (let week = 0; week < calendar.getWeeksPerMonth(); week++) {\r\n let weekObject = month.weeks[week];\r\n if (!weekObject) {\r\n weekObject = month.weeks[week] = { number: 0, days: [], collapsed: true };\r\n }\r\n const days = weekObject.days;\r\n // week has days\r\n for (let day = 0; day < calendar.getDaysPerWeek(); day++) {\r\n if (week === 0 && weekdaysVisible) {\r\n month.weekdays[day] = i18n.getWeekdayLabel(calendar.getWeekday(date), weekdayWidth);\r\n }\r\n const newDate = new NgbDate(date.year, date.month, date.day);\r\n const nextDate = calendar.getNext(newDate);\r\n const ariaLabel = i18n.getDayAriaLabel(newDate);\r\n // marking date as disabled\r\n let disabled = !!((minDate && newDate.before(minDate)) || (maxDate && newDate.after(maxDate)));\r\n if (!disabled && markDisabled) {\r\n disabled = markDisabled(newDate, { month: month.number, year: month.year });\r\n }\r\n // today\r\n let today = newDate.equals(calendarToday);\r\n // adding user-provided data to the context\r\n let contextUserData = dayTemplateData ? dayTemplateData(newDate, { month: month.number, year: month.year }) : undefined;\r\n // saving first date of the month\r\n if (month.firstDate === null && newDate.month === month.number) {\r\n month.firstDate = newDate;\r\n }\r\n // saving last date of the month\r\n if (newDate.month === month.number && nextDate.month !== month.number) {\r\n month.lastDate = newDate;\r\n }\r\n let dayObject = days[day];\r\n if (!dayObject) {\r\n dayObject = days[day] = {};\r\n }\r\n dayObject.date = newDate;\r\n dayObject.context = Object.assign(dayObject.context || {}, {\r\n $implicit: newDate,\r\n date: newDate,\r\n data: contextUserData,\r\n currentMonth: month.number,\r\n currentYear: month.year, disabled,\r\n focused: false,\r\n selected: false, today\r\n });\r\n dayObject.tabindex = -1;\r\n dayObject.ariaLabel = ariaLabel;\r\n dayObject.hidden = false;\r\n date = nextDate;\r\n }\r\n weekObject.number = calendar.getWeekNumber(days.map(day => day.date), firstDayOfWeek);\r\n // marking week as collapsed\r\n weekObject.collapsed = outsideDays === 'collapsed' && days[0].date.month !== month.number &&\r\n days[days.length - 1].date.month !== month.number;\r\n }\r\n return month;\r\n}\r\nfunction getFirstViewDate(calendar, date, firstDayOfWeek) {\r\n const daysPerWeek = calendar.getDaysPerWeek();\r\n const firstMonthDate = new NgbDate(date.year, date.month, 1);\r\n const dayOfWeek = calendar.getWeekday(firstMonthDate) % daysPerWeek;\r\n return calendar.getPrev(firstMonthDate, 'd', (daysPerWeek + dayOfWeek - firstDayOfWeek) % daysPerWeek);\r\n}\n\nfunction NGB_DATEPICKER_18N_FACTORY(locale) {\r\n return new NgbDatepickerI18nDefault(locale);\r\n}\r\n/**\r\n * A service supplying i18n data to the datepicker component.\r\n *\r\n * The default implementation of this service uses the Angular locale and registered locale data for\r\n * weekdays and month names (as explained in the Angular i18n guide).\r\n *\r\n * It also provides a way to i18n data that depends on calendar calculations, like aria labels, day, week and year\r\n * numerals. For other static labels the datepicker uses the default Angular i18n.\r\n *\r\n * See the [i18n demo](#/components/datepicker/examples#i18n) and\r\n * [Hebrew calendar demo](#/components/datepicker/calendars#hebrew) on how to extend this class and define\r\n * a custom provider for i18n.\r\n */\r\nclass NgbDatepickerI18n {\r\n /**\r\n * Returns the weekday label using specified width\r\n *\r\n * @since 9.1.0\r\n */\r\n getWeekdayLabel(weekday, width) { return this.getWeekdayShortName(weekday); }\r\n /**\r\n * Returns the text label to display above the day view.\r\n *\r\n * @since 9.1.0\r\n */\r\n getMonthLabel(date) {\r\n return `${this.getMonthFullName(date.month, date.year)} ${this.getYearNumerals(date.year)}`;\r\n }\r\n /**\r\n * Returns the textual representation of a day that is rendered in a day cell.\r\n *\r\n * @since 3.0.0\r\n */\r\n getDayNumerals(date) { return `${date.day}`; }\r\n /**\r\n * Returns the textual representation of a week number rendered by datepicker.\r\n *\r\n * @since 3.0.0\r\n */\r\n getWeekNumerals(weekNumber) { return `${weekNumber}`; }\r\n /**\r\n * Returns the textual representation of a year that is rendered in the datepicker year select box.\r\n *\r\n * @since 3.0.0\r\n */\r\n getYearNumerals(year) { return `${year}`; }\r\n /**\r\n * Returns the week label to display in the heading of the month view.\r\n *\r\n * @since 9.1.0\r\n */\r\n getWeekLabel() { return ''; }\r\n}\nNgbDatepickerI18n.ɵfac = function NgbDatepickerI18n_Factory(t) { return new (t || NgbDatepickerI18n)(); };\r\nNgbDatepickerI18n.ɵprov = ɵɵdefineInjectable({ factory: function NgbDatepickerI18n_Factory() { return NGB_DATEPICKER_18N_FACTORY(ɵɵinject(LOCALE_ID)); }, token: NgbDatepickerI18n, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerI18n, [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_18N_FACTORY, deps: [LOCALE_ID] }]\n }], null, null); })();\r\n/**\r\n * A service providing default implementation for the datepicker i18n.\r\n * It can be used as a base implementation if necessary.\r\n *\r\n * @since 9.1.0\r\n */\r\nclass NgbDatepickerI18nDefault extends NgbDatepickerI18n {\r\n constructor(_locale) {\r\n super();\r\n this._locale = _locale;\r\n this._monthsShort = getLocaleMonthNames(_locale, FormStyle.Standalone, TranslationWidth.Abbreviated);\r\n this._monthsFull = getLocaleMonthNames(_locale, FormStyle.Standalone, TranslationWidth.Wide);\r\n }\r\n getWeekdayShortName(weekday) { return this.getWeekdayLabel(weekday, TranslationWidth.Short); }\r\n getWeekdayLabel(weekday, width) {\r\n const weekdaysStartingOnSunday = getLocaleDayNames(this._locale, FormStyle.Standalone, width === undefined ? TranslationWidth.Short : width);\r\n const weekdays = weekdaysStartingOnSunday.map((day, index) => weekdaysStartingOnSunday[(index + 1) % 7]);\r\n return weekdays[weekday - 1] || '';\r\n }\r\n getMonthShortName(month) { return this._monthsShort[month - 1] || ''; }\r\n getMonthFullName(month) { return this._monthsFull[month - 1] || ''; }\r\n getDayAriaLabel(date) {\r\n const jsDate = new Date(date.year, date.month - 1, date.day);\r\n return formatDate(jsDate, 'fullDate', this._locale);\r\n }\r\n}\nNgbDatepickerI18nDefault.ɵfac = function NgbDatepickerI18nDefault_Factory(t) { return new (t || NgbDatepickerI18nDefault)(ɵngcc0.ɵɵinject(LOCALE_ID)); };\nNgbDatepickerI18nDefault.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDatepickerI18nDefault, factory: NgbDatepickerI18nDefault.ɵfac });\r\nNgbDatepickerI18nDefault.ctorParameters = () => [\r\n { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerI18nDefault, [{\n type: Injectable\n }], function () { return [{ type: String, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; }, null); })();\n\nclass NgbDatepickerService {\r\n constructor(_calendar, _i18n) {\r\n this._calendar = _calendar;\r\n this._i18n = _i18n;\r\n this._VALIDATORS = {\r\n dayTemplateData: (dayTemplateData) => {\r\n if (this._state.dayTemplateData !== dayTemplateData) {\r\n return { dayTemplateData };\r\n }\r\n },\r\n displayMonths: (displayMonths) => {\r\n displayMonths = toInteger(displayMonths);\r\n if (isInteger(displayMonths) && displayMonths > 0 && this._state.displayMonths !== displayMonths) {\r\n return { displayMonths };\r\n }\r\n },\r\n disabled: (disabled) => {\r\n if (this._state.disabled !== disabled) {\r\n return { disabled };\r\n }\r\n },\r\n firstDayOfWeek: (firstDayOfWeek) => {\r\n firstDayOfWeek = toInteger(firstDayOfWeek);\r\n if (isInteger(firstDayOfWeek) && firstDayOfWeek >= 0 && this._state.firstDayOfWeek !== firstDayOfWeek) {\r\n return { firstDayOfWeek };\r\n }\r\n },\r\n focusVisible: (focusVisible) => {\r\n if (this._state.focusVisible !== focusVisible && !this._state.disabled) {\r\n return { focusVisible };\r\n }\r\n },\r\n markDisabled: (markDisabled) => {\r\n if (this._state.markDisabled !== markDisabled) {\r\n return { markDisabled };\r\n }\r\n },\r\n maxDate: (date) => {\r\n const maxDate = this.toValidDate(date, null);\r\n if (isChangedDate(this._state.maxDate, maxDate)) {\r\n return { maxDate };\r\n }\r\n },\r\n minDate: (date) => {\r\n const minDate = this.toValidDate(date, null);\r\n if (isChangedDate(this._state.minDate, minDate)) {\r\n return { minDate };\r\n }\r\n },\r\n navigation: (navigation) => {\r\n if (this._state.navigation !== navigation) {\r\n return { navigation };\r\n }\r\n },\r\n outsideDays: (outsideDays) => {\r\n if (this._state.outsideDays !== outsideDays) {\r\n return { outsideDays };\r\n }\r\n },\r\n weekdays: (weekdays) => {\r\n const weekdayWidth = weekdays === true || weekdays === false ? TranslationWidth.Short : weekdays;\r\n const weekdaysVisible = weekdays === true || weekdays === false ? weekdays : true;\r\n if (this._state.weekdayWidth !== weekdayWidth || this._state.weekdaysVisible !== weekdaysVisible) {\r\n return { weekdayWidth, weekdaysVisible };\r\n }\r\n }\r\n };\r\n this._model$ = new Subject();\r\n this._dateSelect$ = new Subject();\r\n this._state = {\r\n dayTemplateData: null,\r\n markDisabled: null,\r\n maxDate: null,\r\n minDate: null,\r\n disabled: false,\r\n displayMonths: 1,\r\n firstDate: null,\r\n firstDayOfWeek: 1,\r\n lastDate: null,\r\n focusDate: null,\r\n focusVisible: false,\r\n months: [],\r\n navigation: 'select',\r\n outsideDays: 'visible',\r\n prevDisabled: false,\r\n nextDisabled: false,\r\n selectedDate: null,\r\n selectBoxes: { years: [], months: [] },\r\n weekdayWidth: TranslationWidth.Short,\r\n weekdaysVisible: true\r\n };\r\n }\r\n get model$() { return this._model$.pipe(filter(model => model.months.length > 0)); }\r\n get dateSelect$() { return this._dateSelect$.pipe(filter(date => date !== null)); }\r\n set(options) {\r\n let patch = Object.keys(options)\r\n .map(key => this._VALIDATORS[key](options[key]))\r\n .reduce((obj, part) => (Object.assign(Object.assign({}, obj), part)), {});\r\n if (Object.keys(patch).length > 0) {\r\n this._nextState(patch);\r\n }\r\n }\r\n focus(date) {\r\n const focusedDate = this.toValidDate(date, null);\r\n if (focusedDate != null && !this._state.disabled && isChangedDate(this._state.focusDate, focusedDate)) {\r\n this._nextState({ focusDate: date });\r\n }\r\n }\r\n focusSelect() {\r\n if (isDateSelectable(this._state.focusDate, this._state)) {\r\n this.select(this._state.focusDate, { emitEvent: true });\r\n }\r\n }\r\n open(date) {\r\n const firstDate = this.toValidDate(date, this._calendar.getToday());\r\n if (firstDate != null && !this._state.disabled &&\r\n (!this._state.firstDate || isChangedMonth(this._state.firstDate, firstDate))) {\r\n this._nextState({ firstDate });\r\n }\r\n }\r\n select(date, options = {}) {\r\n const selectedDate = this.toValidDate(date, null);\r\n if (selectedDate != null && !this._state.disabled) {\r\n if (isChangedDate(this._state.selectedDate, selectedDate)) {\r\n this._nextState({ selectedDate });\r\n }\r\n if (options.emitEvent && isDateSelectable(selectedDate, this._state)) {\r\n this._dateSelect$.next(selectedDate);\r\n }\r\n }\r\n }\r\n toValidDate(date, defaultValue) {\r\n const ngbDate = NgbDate.from(date);\r\n if (defaultValue === undefined) {\r\n defaultValue = this._calendar.getToday();\r\n }\r\n return this._calendar.isValid(ngbDate) ? ngbDate : defaultValue;\r\n }\r\n getMonth(struct) {\r\n for (let month of this._state.months) {\r\n if (struct.month === month.number && struct.year === month.year) {\r\n return month;\r\n }\r\n }\r\n throw new Error(`month ${struct.month} of year ${struct.year} not found`);\r\n }\r\n _nextState(patch) {\r\n const newState = this._updateState(patch);\r\n this._patchContexts(newState);\r\n this._state = newState;\r\n this._model$.next(this._state);\r\n }\r\n _patchContexts(state) {\r\n const { months, displayMonths, selectedDate, focusDate, focusVisible, disabled, outsideDays } = state;\r\n state.months.forEach(month => {\r\n month.weeks.forEach(week => {\r\n week.days.forEach(day => {\r\n // patch focus flag\r\n if (focusDate) {\r\n day.context.focused = focusDate.equals(day.date) && focusVisible;\r\n }\r\n // calculating tabindex\r\n day.tabindex =\r\n !disabled && focusDate && day.date.equals(focusDate) && focusDate.month === month.number ? 0 : -1;\r\n // override context disabled\r\n if (disabled === true) {\r\n day.context.disabled = true;\r\n }\r\n // patch selection flag\r\n if (selectedDate !== undefined) {\r\n day.context.selected = selectedDate !== null && selectedDate.equals(day.date);\r\n }\r\n // visibility\r\n if (month.number !== day.date.month) {\r\n day.hidden = outsideDays === 'hidden' || outsideDays === 'collapsed' ||\r\n (displayMonths > 1 && day.date.after(months[0].firstDate) &&\r\n day.date.before(months[displayMonths - 1].lastDate));\r\n }\r\n });\r\n });\r\n });\r\n }\r\n _updateState(patch) {\r\n // patching fields\r\n const state = Object.assign({}, this._state, patch);\r\n let startDate = state.firstDate;\r\n // min/max dates changed\r\n if ('minDate' in patch || 'maxDate' in patch) {\r\n checkMinBeforeMax(state.minDate, state.maxDate);\r\n state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate);\r\n state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate);\r\n startDate = state.focusDate;\r\n }\r\n // disabled\r\n if ('disabled' in patch) {\r\n state.focusVisible = false;\r\n }\r\n // initial rebuild via 'select()'\r\n if ('selectedDate' in patch && this._state.months.length === 0) {\r\n startDate = state.selectedDate;\r\n }\r\n // terminate early if only focus visibility was changed\r\n if ('focusVisible' in patch) {\r\n return state;\r\n }\r\n // focus date changed\r\n if ('focusDate' in patch) {\r\n state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate);\r\n startDate = state.focusDate;\r\n // nothing to rebuild if only focus changed and it is still visible\r\n if (state.months.length !== 0 && state.focusDate && !state.focusDate.before(state.firstDate) &&\r\n !state.focusDate.after(state.lastDate)) {\r\n return state;\r\n }\r\n }\r\n // first date changed\r\n if ('firstDate' in patch) {\r\n state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate);\r\n startDate = state.firstDate;\r\n }\r\n // rebuilding months\r\n if (startDate) {\r\n const forceRebuild = 'dayTemplateData' in patch || 'firstDayOfWeek' in patch || 'markDisabled' in patch ||\r\n 'minDate' in patch || 'maxDate' in patch || 'disabled' in patch || 'outsideDays' in patch ||\r\n 'weekdaysVisible' in patch;\r\n const months = buildMonths(this._calendar, startDate, state, this._i18n, forceRebuild);\r\n // updating months and boundary dates\r\n state.months = months;\r\n state.firstDate = months[0].firstDate;\r\n state.lastDate = months[months.length - 1].lastDate;\r\n // reset selected date if 'markDisabled' returns true\r\n if ('selectedDate' in patch && !isDateSelectable(state.selectedDate, state)) {\r\n state.selectedDate = null;\r\n }\r\n // adjusting focus after months were built\r\n if ('firstDate' in patch) {\r\n if (!state.focusDate || state.focusDate.before(state.firstDate) || state.focusDate.after(state.lastDate)) {\r\n state.focusDate = startDate;\r\n }\r\n }\r\n // adjusting months/years for the select box navigation\r\n const yearChanged = !this._state.firstDate || this._state.firstDate.year !== state.firstDate.year;\r\n const monthChanged = !this._state.firstDate || this._state.firstDate.month !== state.firstDate.month;\r\n if (state.navigation === 'select') {\r\n // years -> boundaries (min/max were changed)\r\n if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.years.length === 0 || yearChanged) {\r\n state.selectBoxes.years = generateSelectBoxYears(state.firstDate, state.minDate, state.maxDate);\r\n }\r\n // months -> when current year or boundaries change\r\n if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.months.length === 0 || yearChanged) {\r\n state.selectBoxes.months =\r\n generateSelectBoxMonths(this._calendar, state.firstDate, state.minDate, state.maxDate);\r\n }\r\n }\r\n else {\r\n state.selectBoxes = { years: [], months: [] };\r\n }\r\n // updating navigation arrows -> boundaries change (min/max) or month/year changes\r\n if ((state.navigation === 'arrows' || state.navigation === 'select') &&\r\n (monthChanged || yearChanged || 'minDate' in patch || 'maxDate' in patch || 'disabled' in patch)) {\r\n state.prevDisabled = state.disabled || prevMonthDisabled(this._calendar, state.firstDate, state.minDate);\r\n state.nextDisabled = state.disabled || nextMonthDisabled(this._calendar, state.lastDate, state.maxDate);\r\n }\r\n }\r\n return state;\r\n }\r\n}\nNgbDatepickerService.ɵfac = function NgbDatepickerService_Factory(t) { return new (t || NgbDatepickerService)(ɵngcc0.ɵɵinject(NgbCalendar), ɵngcc0.ɵɵinject(NgbDatepickerI18n)); };\nNgbDatepickerService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDatepickerService, factory: NgbDatepickerService.ɵfac });\r\nNgbDatepickerService.ctorParameters = () => [\r\n { type: NgbCalendar },\r\n { type: NgbDatepickerI18n }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerService, [{\n type: Injectable\n }], function () { return [{ type: NgbCalendar }, { type: NgbDatepickerI18n }]; }, null); })();\n\n// clang-format on\r\nvar NavigationEvent;\r\n(function (NavigationEvent) {\r\n NavigationEvent[NavigationEvent[\"PREV\"] = 0] = \"PREV\";\r\n NavigationEvent[NavigationEvent[\"NEXT\"] = 1] = \"NEXT\";\r\n})(NavigationEvent || (NavigationEvent = {}));\n\n/**\r\n * A configuration service for the [`NgbDatepicker`](#/components/datepicker/api#NgbDatepicker) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the datepickers used in the application.\r\n */\r\nclass NgbDatepickerConfig {\r\n constructor() {\r\n this.displayMonths = 1;\r\n this.firstDayOfWeek = 1;\r\n this.navigation = 'select';\r\n this.outsideDays = 'visible';\r\n this.showWeekdays = true;\r\n this.showWeekNumbers = false;\r\n this.weekdays = TranslationWidth.Short;\r\n }\r\n}\nNgbDatepickerConfig.ɵfac = function NgbDatepickerConfig_Factory(t) { return new (t || NgbDatepickerConfig)(); };\r\nNgbDatepickerConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbDatepickerConfig_Factory() { return new NgbDatepickerConfig(); }, token: NgbDatepickerConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\nfunction NGB_DATEPICKER_DATE_ADAPTER_FACTORY() {\r\n return new NgbDateStructAdapter();\r\n}\r\n/**\r\n * An abstract service that does the conversion between the internal datepicker `NgbDateStruct` model and\r\n * any provided user date model `D`, ex. a string, a native date, etc.\r\n *\r\n * The adapter is used **only** for conversion when binding datepicker to a form control,\r\n * ex. `[(ngModel)]=\"userDateModel\"`. Here `userDateModel` can be of any type.\r\n *\r\n * The default datepicker implementation assumes we use `NgbDateStruct` as a user model.\r\n *\r\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details\r\n * and the [custom adapter demo](#/components/datepicker/examples#adapter) for an example.\r\n */\r\nclass NgbDateAdapter {\r\n}\nNgbDateAdapter.ɵfac = function NgbDateAdapter_Factory(t) { return new (t || NgbDateAdapter)(); };\r\nNgbDateAdapter.ɵprov = ɵɵdefineInjectable({ factory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY, token: NgbDateAdapter, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateAdapter, [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY }]\n }], null, null); })();\r\nclass NgbDateStructAdapter extends NgbDateAdapter {\r\n /**\r\n * Converts a NgbDateStruct value into NgbDateStruct value\r\n */\r\n fromModel(date) {\r\n return (date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day)) ?\r\n { year: date.year, month: date.month, day: date.day } :\r\n null;\r\n }\r\n /**\r\n * Converts a NgbDateStruct value into NgbDateStruct value\r\n */\r\n toModel(date) {\r\n return (date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day)) ?\r\n { year: date.year, month: date.month, day: date.day } :\r\n null;\r\n }\r\n}\nNgbDateStructAdapter.ɵfac = /*@__PURE__*/ function () { let ɵNgbDateStructAdapter_BaseFactory; return function NgbDateStructAdapter_Factory(t) { return (ɵNgbDateStructAdapter_BaseFactory || (ɵNgbDateStructAdapter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDateStructAdapter)))(t || NgbDateStructAdapter); }; }();\nNgbDateStructAdapter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDateStructAdapter, factory: NgbDateStructAdapter.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateStructAdapter, [{\n type: Injectable\n }], null, null); })();\n\n/**\r\n * A directive that marks the content template that customizes the way datepicker months are displayed\r\n *\r\n * @since 5.3.0\r\n */\r\nclass NgbDatepickerContent {\r\n constructor(templateRef) {\r\n this.templateRef = templateRef;\r\n }\r\n}\nNgbDatepickerContent.ɵfac = function NgbDatepickerContent_Factory(t) { return new (t || NgbDatepickerContent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbDatepickerContent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbDatepickerContent, selectors: [[\"ng-template\", \"ngbDatepickerContent\", \"\"]] });\r\nNgbDatepickerContent.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerContent, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbDatepickerContent]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\r\n/**\r\n * A highly configurable component that helps you with selecting calendar dates.\r\n *\r\n * `NgbDatepicker` is meant to be displayed inline on a page or put inside a popup.\r\n */\r\nclass NgbDatepicker {\r\n constructor(_service, _calendar, i18n, config, cd, _elementRef, _ngbDateAdapter, _ngZone) {\r\n this._service = _service;\r\n this._calendar = _calendar;\r\n this.i18n = i18n;\r\n this._elementRef = _elementRef;\r\n this._ngbDateAdapter = _ngbDateAdapter;\r\n this._ngZone = _ngZone;\r\n this._controlValue = null;\r\n this._destroyed$ = new Subject();\r\n this._publicState = {};\r\n /**\r\n * An event emitted right before the navigation happens and displayed month changes.\r\n *\r\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\r\n */\r\n this.navigate = new EventEmitter();\r\n /**\r\n * An event emitted when user selects a date using keyboard or mouse.\r\n *\r\n * The payload of the event is currently selected `NgbDate`.\r\n *\r\n * @since 5.2.0\r\n */\r\n this.dateSelect = new EventEmitter();\r\n this.onChange = (_) => { };\r\n this.onTouched = () => { };\r\n ['dayTemplate', 'dayTemplateData', 'displayMonths', 'firstDayOfWeek', 'footerTemplate', 'markDisabled', 'minDate',\r\n 'maxDate', 'navigation', 'outsideDays', 'showWeekdays', 'showWeekNumbers', 'startDate', 'weekdays']\r\n .forEach(input => this[input] = config[input]);\r\n _service.dateSelect$.pipe(takeUntil(this._destroyed$)).subscribe(date => { this.dateSelect.emit(date); });\r\n _service.model$.pipe(takeUntil(this._destroyed$)).subscribe(model => {\r\n const newDate = model.firstDate;\r\n const oldDate = this.model ? this.model.firstDate : null;\r\n // update public state\r\n this._publicState = {\r\n maxDate: model.maxDate,\r\n minDate: model.minDate,\r\n firstDate: model.firstDate,\r\n lastDate: model.lastDate,\r\n focusedDate: model.focusDate,\r\n months: model.months.map(viewModel => viewModel.firstDate)\r\n };\r\n let navigationPrevented = false;\r\n // emitting navigation event if the first month changes\r\n if (!newDate.equals(oldDate)) {\r\n this.navigate.emit({\r\n current: oldDate ? { year: oldDate.year, month: oldDate.month } : null,\r\n next: { year: newDate.year, month: newDate.month },\r\n preventDefault: () => navigationPrevented = true\r\n });\r\n // can't prevent the very first navigation\r\n if (navigationPrevented && oldDate !== null) {\r\n this._service.open(oldDate);\r\n return;\r\n }\r\n }\r\n const newSelectedDate = model.selectedDate;\r\n const newFocusedDate = model.focusDate;\r\n const oldFocusedDate = this.model ? this.model.focusDate : null;\r\n this.model = model;\r\n // handling selection change\r\n if (isChangedDate(newSelectedDate, this._controlValue)) {\r\n this._controlValue = newSelectedDate;\r\n this.onTouched();\r\n this.onChange(this._ngbDateAdapter.toModel(newSelectedDate));\r\n }\r\n // handling focus change\r\n if (isChangedDate(newFocusedDate, oldFocusedDate) && oldFocusedDate && model.focusVisible) {\r\n this.focus();\r\n }\r\n cd.markForCheck();\r\n });\r\n }\r\n /**\r\n * If `true`, weekdays will be displayed.\r\n *\r\n * @deprecated 9.1.0, please use 'weekdays' instead\r\n */\r\n set showWeekdays(weekdays) {\r\n this.weekdays = weekdays;\r\n this._showWeekdays = weekdays;\r\n }\r\n get showWeekdays() { return this._showWeekdays; }\r\n /**\r\n * Returns the readonly public state of the datepicker\r\n *\r\n * @since 5.2.0\r\n */\r\n get state() { return this._publicState; }\r\n /**\r\n * Returns the calendar service used in the specific datepicker instance.\r\n *\r\n * @since 5.3.0\r\n */\r\n get calendar() { return this._calendar; }\r\n /**\r\n * Focuses on given date.\r\n */\r\n focusDate(date) { this._service.focus(NgbDate.from(date)); }\r\n /**\r\n * Selects focused date.\r\n */\r\n focusSelect() { this._service.focusSelect(); }\r\n focus() {\r\n this._ngZone.onStable.asObservable().pipe(take(1)).subscribe(() => {\r\n const elementToFocus = this._elementRef.nativeElement.querySelector('div.ngb-dp-day[tabindex=\"0\"]');\r\n if (elementToFocus) {\r\n elementToFocus.focus();\r\n }\r\n });\r\n }\r\n /**\r\n * Navigates to the provided date.\r\n *\r\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\r\n * If nothing or invalid date provided calendar will open current month.\r\n *\r\n * Use the `[startDate]` input as an alternative.\r\n */\r\n navigateTo(date) {\r\n this._service.open(NgbDate.from(date ? date.day ? date : Object.assign(Object.assign({}, date), { day: 1 }) : null));\r\n }\r\n ngAfterViewInit() {\r\n this._ngZone.runOutsideAngular(() => {\r\n const focusIns$ = fromEvent(this._contentEl.nativeElement, 'focusin');\r\n const focusOuts$ = fromEvent(this._contentEl.nativeElement, 'focusout');\r\n const { nativeElement } = this._elementRef;\r\n // we're changing 'focusVisible' only when entering or leaving months view\r\n // and ignoring all focus events where both 'target' and 'related' target are day cells\r\n merge(focusIns$, focusOuts$)\r\n .pipe(filter(({ target, relatedTarget }) => !(hasClassName(target, 'ngb-dp-day') && hasClassName(relatedTarget, 'ngb-dp-day') &&\r\n nativeElement.contains(target) && nativeElement.contains(relatedTarget))), takeUntil(this._destroyed$))\r\n .subscribe(({ type }) => this._ngZone.run(() => this._service.set({ focusVisible: type === 'focusin' })));\r\n });\r\n }\r\n ngOnDestroy() { this._destroyed$.next(); }\r\n ngOnInit() {\r\n if (this.model === undefined) {\r\n const inputs = {};\r\n ['dayTemplateData', 'displayMonths', 'markDisabled', 'firstDayOfWeek', 'navigation', 'minDate', 'maxDate',\r\n 'outsideDays', 'weekdays']\r\n .forEach(name => inputs[name] = this[name]);\r\n this._service.set(inputs);\r\n this.navigateTo(this.startDate);\r\n }\r\n if (!this.dayTemplate) {\r\n this.dayTemplate = this._defaultDayTemplate;\r\n }\r\n }\r\n ngOnChanges(changes) {\r\n const inputs = {};\r\n if (changes.showWeekdays) {\r\n inputs['weekdays'] = this.weekdays;\r\n }\r\n ['dayTemplateData', 'displayMonths', 'markDisabled', 'firstDayOfWeek', 'navigation', 'minDate', 'maxDate',\r\n 'outsideDays', 'weekdays']\r\n .filter(name => name in changes)\r\n .forEach(name => inputs[name] = this[name]);\r\n this._service.set(inputs);\r\n if ('startDate' in changes) {\r\n const { currentValue, previousValue } = changes.startDate;\r\n if (isChangedMonth(previousValue, currentValue)) {\r\n this.navigateTo(this.startDate);\r\n }\r\n }\r\n }\r\n onDateSelect(date) {\r\n this._service.focus(date);\r\n this._service.select(date, { emitEvent: true });\r\n }\r\n onNavigateDateSelect(date) { this._service.open(date); }\r\n onNavigateEvent(event) {\r\n switch (event) {\r\n case NavigationEvent.PREV:\r\n this._service.open(this._calendar.getPrev(this.model.firstDate, 'm', 1));\r\n break;\r\n case NavigationEvent.NEXT:\r\n this._service.open(this._calendar.getNext(this.model.firstDate, 'm', 1));\r\n break;\r\n }\r\n }\r\n registerOnChange(fn) { this.onChange = fn; }\r\n registerOnTouched(fn) { this.onTouched = fn; }\r\n setDisabledState(disabled) { this._service.set({ disabled }); }\r\n writeValue(value) {\r\n this._controlValue = NgbDate.from(this._ngbDateAdapter.fromModel(value));\r\n this._service.select(this._controlValue);\r\n }\r\n}\nNgbDatepicker.ɵfac = function NgbDatepicker_Factory(t) { return new (t || NgbDatepicker)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerService), ɵngcc0.ɵɵdirectiveInject(NgbCalendar), ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n), ɵngcc0.ɵɵdirectiveInject(NgbDatepickerConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(NgbDateAdapter), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nNgbDatepicker.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbDatepicker, selectors: [[\"ngb-datepicker\"]], contentQueries: function NgbDatepicker_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDatepickerContent, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n } }, viewQuery: function NgbDatepicker_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c10, 7);\n ɵngcc0.ɵɵviewQuery(_c11, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._defaultDayTemplate = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._contentEl = _t.first);\n } }, inputs: { showWeekdays: \"showWeekdays\", weekdays: \"weekdays\", dayTemplate: \"dayTemplate\", dayTemplateData: \"dayTemplateData\", displayMonths: \"displayMonths\", firstDayOfWeek: \"firstDayOfWeek\", footerTemplate: \"footerTemplate\", markDisabled: \"markDisabled\", maxDate: \"maxDate\", minDate: \"minDate\", navigation: \"navigation\", outsideDays: \"outsideDays\", showWeekNumbers: \"showWeekNumbers\", startDate: \"startDate\" }, outputs: { navigate: \"navigate\", dateSelect: \"dateSelect\" }, exportAs: [\"ngbDatepicker\"], features: [ɵngcc0.ɵɵProvidersFeature([{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbDatepicker), multi: true }, NgbDatepickerService]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 10, vars: 5, consts: [[\"defaultDayTemplate\", \"\"], [\"defaultContentTemplate\", \"\"], [1, \"ngb-dp-header\"], [3, \"date\", \"months\", \"disabled\", \"showSelect\", \"prevDisabled\", \"nextDisabled\", \"selectBoxes\", \"navigate\", \"select\", 4, \"ngIf\"], [1, \"ngb-dp-content\"], [\"content\", \"\"], [3, \"ngTemplateOutlet\"], [\"ngbDatepickerDayView\", \"\", 3, \"date\", \"currentMonth\", \"selected\", \"disabled\", \"focused\"], [\"class\", \"ngb-dp-month\", 4, \"ngFor\", \"ngForOf\"], [1, \"ngb-dp-month\"], [\"class\", \"ngb-dp-month-name\", 4, \"ngIf\"], [3, \"month\"], [1, \"ngb-dp-month-name\"], [3, \"date\", \"months\", \"disabled\", \"showSelect\", \"prevDisabled\", \"nextDisabled\", \"selectBoxes\", \"navigate\", \"select\"]], template: function NgbDatepicker_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepicker_ng_template_0_Template, 1, 5, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbDatepicker_ng_template_2_Template, 1, 1, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementStart(4, \"div\", 2);\n ɵngcc0.ɵɵtemplate(5, NgbDatepicker_ngb_datepicker_navigation_5_Template, 1, 7, \"ngb-datepicker-navigation\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(6, \"div\", 4, 5);\n ɵngcc0.ɵɵtemplate(8, NgbDatepicker_ng_template_8_Template, 0, 0, \"ng-template\", 6);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(9, NgbDatepicker_ng_template_9_Template, 0, 0, \"ng-template\", 6);\n } if (rf & 2) {\n const _r2 = ɵngcc0.ɵɵreference(3);\n ɵngcc0.ɵɵadvance(5);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.navigation !== \"none\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"ngb-dp-months\", !ctx.contentTemplate);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx.contentTemplate == null ? null : ctx.contentTemplate.templateRef) || _r2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.footerTemplate);\n } }, dependencies: function () { return [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, NgbDatepickerMonth, NgbDatepickerNavigation, NgbDatepickerDayView]; }, styles: [\"ngb-datepicker{border:1px solid #dfdfdf;border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}.ngb-dp-body{z-index:1050}.ngb-dp-header{background-color:#f8f9fa;background-color:var(--light);border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem}.ngb-dp-months{display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{background-color:#f8f9fa;background-color:var(--light);font-size:larger;height:2rem;line-height:2rem;text-align:center}.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}\"], encapsulation: 2, changeDetection: 0 });\r\nNgbDatepicker.ctorParameters = () => [\r\n { type: NgbDatepickerService },\r\n { type: NgbCalendar },\r\n { type: NgbDatepickerI18n },\r\n { type: NgbDatepickerConfig },\r\n { type: ChangeDetectorRef },\r\n { type: ElementRef },\r\n { type: NgbDateAdapter },\r\n { type: NgZone }\r\n];\r\nNgbDatepicker.propDecorators = {\r\n _defaultDayTemplate: [{ type: ViewChild, args: ['defaultDayTemplate', { static: true },] }],\r\n _contentEl: [{ type: ViewChild, args: ['content', { static: true },] }],\r\n contentTemplate: [{ type: ContentChild, args: [NgbDatepickerContent, { static: true },] }],\r\n dayTemplate: [{ type: Input }],\r\n dayTemplateData: [{ type: Input }],\r\n displayMonths: [{ type: Input }],\r\n firstDayOfWeek: [{ type: Input }],\r\n footerTemplate: [{ type: Input }],\r\n markDisabled: [{ type: Input }],\r\n maxDate: [{ type: Input }],\r\n minDate: [{ type: Input }],\r\n navigation: [{ type: Input }],\r\n outsideDays: [{ type: Input }],\r\n showWeekdays: [{ type: Input }],\r\n showWeekNumbers: [{ type: Input }],\r\n startDate: [{ type: Input }],\r\n weekdays: [{ type: Input }],\r\n navigate: [{ type: Output }],\r\n dateSelect: [{ type: Output }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepicker, [{\n type: Component,\n args: [{ exportAs: 'ngbDatepicker', selector: 'ngb-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `\r\n <ng-template #defaultDayTemplate let-date=\"date\" let-currentMonth=\"currentMonth\" let-selected=\"selected\"\r\n let-disabled=\"disabled\" let-focused=\"focused\">\r\n <div ngbDatepickerDayView\r\n [date]=\"date\"\r\n [currentMonth]=\"currentMonth\"\r\n [selected]=\"selected\"\r\n [disabled]=\"disabled\"\r\n [focused]=\"focused\">\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #defaultContentTemplate>\r\n <div *ngFor=\"let month of model.months; let i = index;\" class=\"ngb-dp-month\">\r\n <div *ngIf=\"navigation === 'none' || (displayMonths > 1 && navigation === 'select')\" class=\"ngb-dp-month-name\">\r\n {{ i18n.getMonthLabel(month.firstDate) }}\r\n </div>\r\n <ngb-datepicker-month [month]=\"month.firstDate\"></ngb-datepicker-month>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"ngb-dp-header\">\r\n <ngb-datepicker-navigation *ngIf=\"navigation !== 'none'\"\r\n [date]=\"model.firstDate!\"\r\n [months]=\"model.months\"\r\n [disabled]=\"model.disabled\"\r\n [showSelect]=\"model.navigation === 'select'\"\r\n [prevDisabled]=\"model.prevDisabled\"\r\n [nextDisabled]=\"model.nextDisabled\"\r\n [selectBoxes]=\"model.selectBoxes\"\r\n (navigate)=\"onNavigateEvent($event)\"\r\n (select)=\"onNavigateDateSelect($event)\">\r\n </ngb-datepicker-navigation>\r\n </div>\r\n\r\n <div class=\"ngb-dp-content\" [class.ngb-dp-months]=\"!contentTemplate\" #content>\r\n <ng-template [ngTemplateOutlet]=\"contentTemplate?.templateRef || defaultContentTemplate\"></ng-template>\r\n </div>\r\n\r\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\r\n `, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbDatepicker), multi: true }, NgbDatepickerService], styles: [\"ngb-datepicker{border:1px solid #dfdfdf;border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}.ngb-dp-body{z-index:1050}.ngb-dp-header{background-color:#f8f9fa;background-color:var(--light);border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem}.ngb-dp-months{display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{background-color:#f8f9fa;background-color:var(--light);font-size:larger;height:2rem;line-height:2rem;text-align:center}.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 }], function () { return [{ type: NgbDatepickerService }, { type: NgbCalendar }, { type: NgbDatepickerI18n }, { type: NgbDatepickerConfig }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }, { type: NgbDateAdapter }, { type: ɵngcc0.NgZone }]; }, { navigate: [{\n type: Output\n }], dateSelect: [{\n type: Output\n }], showWeekdays: [{\n type: Input\n }], weekdays: [{\n type: Input\n }], dayTemplate: [{\n type: Input\n }], _defaultDayTemplate: [{\n type: ViewChild,\n args: ['defaultDayTemplate', { static: true }]\n }], _contentEl: [{\n type: ViewChild,\n args: ['content', { static: true }]\n }], contentTemplate: [{\n type: ContentChild,\n args: [NgbDatepickerContent, { static: true }]\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 }] }); })();\n\nvar Key;\r\n(function (Key) {\r\n Key[Key[\"Tab\"] = 9] = \"Tab\";\r\n Key[Key[\"Enter\"] = 13] = \"Enter\";\r\n Key[Key[\"Escape\"] = 27] = \"Escape\";\r\n Key[Key[\"Space\"] = 32] = \"Space\";\r\n Key[Key[\"PageUp\"] = 33] = \"PageUp\";\r\n Key[Key[\"PageDown\"] = 34] = \"PageDown\";\r\n Key[Key[\"End\"] = 35] = \"End\";\r\n Key[Key[\"Home\"] = 36] = \"Home\";\r\n Key[Key[\"ArrowLeft\"] = 37] = \"ArrowLeft\";\r\n Key[Key[\"ArrowUp\"] = 38] = \"ArrowUp\";\r\n Key[Key[\"ArrowRight\"] = 39] = \"ArrowRight\";\r\n Key[Key[\"ArrowDown\"] = 40] = \"ArrowDown\";\r\n})(Key || (Key = {}));\n\n/**\r\n * A service that represents the keyboard navigation.\r\n *\r\n * Default keyboard shortcuts [are documented in the overview](#/components/datepicker/overview#keyboard-shortcuts)\r\n *\r\n * @since 5.2.0\r\n */\r\nclass NgbDatepickerKeyboardService {\r\n /**\r\n * Processes a keyboard event.\r\n */\r\n processKey(event, datepicker) {\r\n const { state, calendar } = datepicker;\r\n // tslint:disable-next-line:deprecation\r\n switch (event.which) {\r\n case Key.PageUp:\r\n datepicker.focusDate(calendar.getPrev(state.focusedDate, event.shiftKey ? 'y' : 'm', 1));\r\n break;\r\n case Key.PageDown:\r\n datepicker.focusDate(calendar.getNext(state.focusedDate, event.shiftKey ? 'y' : 'm', 1));\r\n break;\r\n case Key.End:\r\n datepicker.focusDate(event.shiftKey ? state.maxDate : state.lastDate);\r\n break;\r\n case Key.Home:\r\n datepicker.focusDate(event.shiftKey ? state.minDate : state.firstDate);\r\n break;\r\n case Key.ArrowLeft:\r\n datepicker.focusDate(calendar.getPrev(state.focusedDate, 'd', 1));\r\n break;\r\n case Key.ArrowUp:\r\n datepicker.focusDate(calendar.getPrev(state.focusedDate, 'd', calendar.getDaysPerWeek()));\r\n break;\r\n case Key.ArrowRight:\r\n datepicker.focusDate(calendar.getNext(state.focusedDate, 'd', 1));\r\n break;\r\n case Key.ArrowDown:\r\n datepicker.focusDate(calendar.getNext(state.focusedDate, 'd', calendar.getDaysPerWeek()));\r\n break;\r\n case Key.Enter:\r\n case Key.Space:\r\n datepicker.focusSelect();\r\n break;\r\n default:\r\n return;\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n}\nNgbDatepickerKeyboardService.ɵfac = function NgbDatepickerKeyboardService_Factory(t) { return new (t || NgbDatepickerKeyboardService)(); };\r\nNgbDatepickerKeyboardService.ɵprov = ɵɵdefineInjectable({ factory: function NgbDatepickerKeyboardService_Factory() { return new NgbDatepickerKeyboardService(); }, token: NgbDatepickerKeyboardService, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerKeyboardService, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], null, null); })();\n\n/**\r\n * A component that renders one month including all the days, weekdays and week numbers. Can be used inside\r\n * the `<ng-template ngbDatepickerMonths></ng-template>` when you want to customize months layout.\r\n *\r\n * For a usage example, see [custom month layout demo](#/components/datepicker/examples#custommonth)\r\n *\r\n * @since 5.3.0\r\n */\r\nclass NgbDatepickerMonth {\r\n constructor(i18n, datepicker, _keyboardService, _service) {\r\n this.i18n = i18n;\r\n this.datepicker = datepicker;\r\n this._keyboardService = _keyboardService;\r\n this._service = _service;\r\n }\r\n /**\r\n * The first date of month to be rendered.\r\n *\r\n * This month must one of the months present in the\r\n * [datepicker state](#/components/datepicker/api#NgbDatepickerState).\r\n */\r\n set month(month) {\r\n this.viewModel = this._service.getMonth(month);\r\n }\r\n onKeyDown(event) { this._keyboardService.processKey(event, this.datepicker); }\r\n doSelect(day) {\r\n if (!day.context.disabled && !day.hidden) {\r\n this.datepicker.onDateSelect(day.date);\r\n }\r\n }\r\n}\nNgbDatepickerMonth.ɵfac = function NgbDatepickerMonth_Factory(t) { return new (t || NgbDatepickerMonth)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n), ɵngcc0.ɵɵdirectiveInject(NgbDatepicker), ɵngcc0.ɵɵdirectiveInject(NgbDatepickerKeyboardService), ɵngcc0.ɵɵdirectiveInject(NgbDatepickerService)); };\nNgbDatepickerMonth.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbDatepickerMonth, selectors: [[\"ngb-datepicker-month\"]], hostAttrs: [\"role\", \"grid\"], hostBindings: function NgbDatepickerMonth_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keydown\", function NgbDatepickerMonth_keydown_HostBindingHandler($event) { return ctx.onKeyDown($event); });\n } }, inputs: { month: \"month\" }, decls: 2, vars: 2, consts: [[\"class\", \"ngb-dp-week ngb-dp-weekdays\", \"role\", \"row\", 4, \"ngIf\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [\"role\", \"row\", 1, \"ngb-dp-week\", \"ngb-dp-weekdays\"], [\"class\", \"ngb-dp-weekday ngb-dp-showweek small\", 4, \"ngIf\"], [\"class\", \"ngb-dp-weekday small\", \"role\", \"columnheader\", 4, \"ngFor\", \"ngForOf\"], [1, \"ngb-dp-weekday\", \"ngb-dp-showweek\", \"small\"], [\"role\", \"columnheader\", 1, \"ngb-dp-weekday\", \"small\"], [\"class\", \"ngb-dp-week\", \"role\", \"row\", 4, \"ngIf\"], [\"role\", \"row\", 1, \"ngb-dp-week\"], [\"class\", \"ngb-dp-week-number small text-muted\", 4, \"ngIf\"], [\"class\", \"ngb-dp-day\", \"role\", \"gridcell\", 3, \"disabled\", \"tabindex\", \"hidden\", \"ngb-dp-today\", \"click\", 4, \"ngFor\", \"ngForOf\"], [1, \"ngb-dp-week-number\", \"small\", \"text-muted\"], [\"role\", \"gridcell\", 1, \"ngb-dp-day\", 3, \"tabindex\", \"click\"], [3, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function NgbDatepickerMonth_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerMonth_div_0_Template, 3, 2, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, NgbDatepickerMonth_ng_template_1_Template, 1, 1, \"ng-template\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.viewModel.weekdays.length > 0);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.viewModel.weeks);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], styles: [\"ngb-datepicker-month{display:block}.ngb-dp-week-number,.ngb-dp-weekday{font-style:italic;line-height:2rem;text-align:center}.ngb-dp-weekday{color:#5bc0de;color:var(--info)}.ngb-dp-week{border-radius:.25rem;display:flex}.ngb-dp-weekdays{background-color:#f8f9fa;background-color:var(--light);border-bottom:1px solid rgba(0,0,0,.125);border-radius:0}.ngb-dp-day,.ngb-dp-week-number,.ngb-dp-weekday{height:2rem;width: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}\"], encapsulation: 2 });\r\nNgbDatepickerMonth.ctorParameters = () => [\r\n { type: NgbDatepickerI18n },\r\n { type: NgbDatepicker },\r\n { type: NgbDatepickerKeyboardService },\r\n { type: NgbDatepickerService }\r\n];\r\nNgbDatepickerMonth.propDecorators = {\r\n month: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerMonth, [{\n type: Component,\n args: [{ selector: 'ngb-datepicker-month', host: { 'role': 'grid', '(keydown)': 'onKeyDown($event)' }, encapsulation: ViewEncapsulation.None, template: `\r\n <div *ngIf=\"viewModel.weekdays.length > 0\" class=\"ngb-dp-week ngb-dp-weekdays\" role=\"row\">\r\n <div *ngIf=\"datepicker.showWeekNumbers\" class=\"ngb-dp-weekday ngb-dp-showweek small\">{{ i18n.getWeekLabel() }}</div>\r\n <div *ngFor=\"let weekday of viewModel.weekdays\" class=\"ngb-dp-weekday small\" role=\"columnheader\">{{ weekday }}</div>\r\n </div>\r\n <ng-template ngFor let-week [ngForOf]=\"viewModel.weeks\">\r\n <div *ngIf=\"!week.collapsed\" class=\"ngb-dp-week\" role=\"row\">\r\n <div *ngIf=\"datepicker.showWeekNumbers\" class=\"ngb-dp-week-number small text-muted\">{{ i18n.getWeekNumerals(week.number) }}</div>\r\n <div *ngFor=\"let day of week.days\" (click)=\"doSelect(day); $event.preventDefault()\" class=\"ngb-dp-day\" role=\"gridcell\"\r\n [class.disabled]=\"day.context.disabled\"\r\n [tabindex]=\"day.tabindex\"\r\n [class.hidden]=\"day.hidden\"\r\n [class.ngb-dp-today]=\"day.context.today\"\r\n [attr.aria-label]=\"day.ariaLabel\">\r\n <ng-template [ngIf]=\"!day.hidden\">\r\n <ng-template [ngTemplateOutlet]=\"datepicker.dayTemplate\" [ngTemplateOutletContext]=\"day.context\"></ng-template>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </ng-template>\r\n `, styles: [\"ngb-datepicker-month{display:block}.ngb-dp-week-number,.ngb-dp-weekday{font-style:italic;line-height:2rem;text-align:center}.ngb-dp-weekday{color:#5bc0de;color:var(--info)}.ngb-dp-week{border-radius:.25rem;display:flex}.ngb-dp-weekdays{background-color:#f8f9fa;background-color:var(--light);border-bottom:1px solid rgba(0,0,0,.125);border-radius:0}.ngb-dp-day,.ngb-dp-week-number,.ngb-dp-weekday{height:2rem;width: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 }], function () { return [{ type: NgbDatepickerI18n }, { type: NgbDatepicker }, { type: NgbDatepickerKeyboardService }, { type: NgbDatepickerService }]; }, { month: [{\n type: Input\n }] }); })();\n\nclass NgbDatepickerNavigation {\r\n constructor(i18n) {\r\n this.i18n = i18n;\r\n this.navigation = NavigationEvent;\r\n this.months = [];\r\n this.navigate = new EventEmitter();\r\n this.select = new EventEmitter();\r\n }\r\n onClickPrev(event) {\r\n event.currentTarget.focus();\r\n this.navigate.emit(this.navigation.PREV);\r\n }\r\n onClickNext(event) {\r\n event.currentTarget.focus();\r\n this.navigate.emit(this.navigation.NEXT);\r\n }\r\n}\nNgbDatepickerNavigation.ɵfac = function NgbDatepickerNavigation_Factory(t) { return new (t || NgbDatepickerNavigation)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n)); };\nNgbDatepickerNavigation.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbDatepickerNavigation, selectors: [[\"ngb-datepicker-navigation\"]], inputs: { months: \"months\", date: \"date\", disabled: \"disabled\", showSelect: \"showSelect\", prevDisabled: \"prevDisabled\", nextDisabled: \"nextDisabled\", selectBoxes: \"selectBoxes\" }, outputs: { navigate: \"navigate\", select: \"select\" }, decls: 8, vars: 4, consts: function () { let i18n_12; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_13 = goog.getMsg(\"Previous month\");\n i18n_12 = MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_13;\n }\n else {\n i18n_12 = $localize `:@@ngb.datepicker.previous-month␟c3b08b07b5ab98e7cdcf18df39355690ab7d3884␟8586908745456864217:Previous month`;\n } let i18n_14; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_15 = goog.getMsg(\"Previous month\");\n i18n_14 = MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_15;\n }\n else {\n i18n_14 = $localize `:@@ngb.datepicker.previous-month␟c3b08b07b5ab98e7cdcf18df39355690ab7d3884␟8586908745456864217:Previous month`;\n } let i18n_16; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_17 = goog.getMsg(\"Next month\");\n i18n_16 = MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_17;\n }\n else {\n i18n_16 = $localize `:@@ngb.datepicker.next-month␟4bd046985cfe13040d5ef0cd881edce0968a111a␟3628374603023447227:Next month`;\n } let i18n_18; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_19 = goog.getMsg(\"Next month\");\n i18n_18 = MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_19;\n }\n else {\n i18n_18 = $localize `:@@ngb.datepicker.next-month␟4bd046985cfe13040d5ef0cd881edce0968a111a␟3628374603023447227:Next month`;\n } return [[1, \"ngb-dp-arrow\"], [\"type\", \"button\", \"aria-label\", i18n_12, \"title\", i18n_14, 1, \"btn\", \"btn-link\", \"ngb-dp-arrow-btn\", 3, \"disabled\", \"click\"], [1, \"ngb-dp-navigation-chevron\"], [\"class\", \"ngb-dp-navigation-select\", 3, \"date\", \"disabled\", \"months\", \"years\", \"select\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"ngb-dp-arrow\", \"right\"], [\"type\", \"button\", \"aria-label\", i18n_16, \"title\", i18n_18, 1, \"btn\", \"btn-link\", \"ngb-dp-arrow-btn\", 3, \"disabled\", \"click\"], [1, \"ngb-dp-navigation-select\", 3, \"date\", \"disabled\", \"months\", \"years\", \"select\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [\"class\", \"ngb-dp-arrow\", 4, \"ngIf\"], [1, \"ngb-dp-month-name\"]]; }, template: function NgbDatepickerNavigation_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0)(1, \"button\", 1);\n ɵngcc0.ɵɵlistener(\"click\", function NgbDatepickerNavigation_Template_button_click_1_listener($event) { return ctx.onClickPrev($event); });\n ɵngcc0.ɵɵelement(2, \"span\", 2);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵtemplate(3, NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template, 1, 4, \"ngb-datepicker-navigation-select\", 3);\n ɵngcc0.ɵɵtemplate(4, NgbDatepickerNavigation_4_Template, 1, 1, null, 4);\n ɵngcc0.ɵɵelementStart(5, \"div\", 5)(6, \"button\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function NgbDatepickerNavigation_Template_button_click_6_listener($event) { return ctx.onClickNext($event); });\n ɵngcc0.ɵɵelement(7, \"span\", 2);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.prevDisabled);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showSelect);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.showSelect);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.nextDisabled);\n } }, dependencies: function () { return [ɵngcc1.NgForOf, ɵngcc1.NgIf, NgbDatepickerNavigationSelect]; }, styles: [\"ngb-datepicker-navigation{align-items:center;display:flex}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg);width:.75em}.ngb-dp-arrow{display:flex;flex:1 1 auto;height:2rem;margin:0;padding-left:0;padding-right:0;width:2rem}.ngb-dp-arrow.right{justify-content:flex-end}.ngb-dp-arrow.right .ngb-dp-navigation-chevron{margin-left:.15em;margin-right:.25em;transform:rotate(45deg)}.ngb-dp-arrow-btn{background-color:transparent;border:none;margin:0 .5rem;padding:0 .25rem;z-index:1}.ngb-dp-arrow-btn:focus{outline-style:auto;outline-width:1px}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.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}\"], encapsulation: 2, changeDetection: 0 });\r\nNgbDatepickerNavigation.ctorParameters = () => [\r\n { type: NgbDatepickerI18n }\r\n];\r\nNgbDatepickerNavigation.propDecorators = {\r\n date: [{ type: Input }],\r\n disabled: [{ type: Input }],\r\n months: [{ type: Input }],\r\n showSelect: [{ type: Input }],\r\n prevDisabled: [{ type: Input }],\r\n nextDisabled: [{ type: Input }],\r\n selectBoxes: [{ type: Input }],\r\n navigate: [{ type: Output }],\r\n select: [{ type: Output }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerNavigation, [{\n type: Component,\n args: [{ selector: 'ngb-datepicker-navigation', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `\r\n <div class=\"ngb-dp-arrow\">\r\n <button type=\"button\" class=\"btn btn-link ngb-dp-arrow-btn\" (click)=\"onClickPrev($event)\" [disabled]=\"prevDisabled\"\r\n i18n-aria-label=\"@@ngb.datepicker.previous-month\" aria-label=\"Previous month\"\r\n i18n-title=\"@@ngb.datepicker.previous-month\" title=\"Previous month\">\r\n <span class=\"ngb-dp-navigation-chevron\"></span>\r\n </button>\r\n </div>\r\n <ngb-datepicker-navigation-select *ngIf=\"showSelect\" class=\"ngb-dp-navigation-select\"\r\n [date]=\"date\"\r\n [disabled] = \"disabled\"\r\n [months]=\"selectBoxes.months\"\r\n [years]=\"selectBoxes.years\"\r\n (select)=\"select.emit($event)\">\r\n </ngb-datepicker-navigation-select>\r\n\r\n <ng-template *ngIf=\"!showSelect\" ngFor let-month [ngForOf]=\"months\" let-i=\"index\">\r\n <div class=\"ngb-dp-arrow\" *ngIf=\"i > 0\"></div>\r\n <div class=\"ngb-dp-month-name\">\r\n {{ i18n.getMonthLabel(month.firstDate) }}\r\n </div>\r\n <div class=\"ngb-dp-arrow\" *ngIf=\"i !== months.length - 1\"></div>\r\n </ng-template>\r\n <div class=\"ngb-dp-arrow right\">\r\n <button type=\"button\" class=\"btn btn-link ngb-dp-arrow-btn\" (click)=\"onClickNext($event)\" [disabled]=\"nextDisabled\"\r\n i18n-aria-label=\"@@ngb.datepicker.next-month\" aria-label=\"Next month\"\r\n i18n-title=\"@@ngb.datepicker.next-month\" title=\"Next month\">\r\n <span class=\"ngb-dp-navigation-chevron\"></span>\r\n </button>\r\n </div>\r\n `, styles: [\"ngb-datepicker-navigation{align-items:center;display:flex}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg);width:.75em}.ngb-dp-arrow{display:flex;flex:1 1 auto;height:2rem;margin:0;padding-left:0;padding-right:0;width:2rem}.ngb-dp-arrow.right{justify-content:flex-end}.ngb-dp-arrow.right .ngb-dp-navigation-chevron{margin-left:.15em;margin-right:.25em;transform:rotate(45deg)}.ngb-dp-arrow-btn{background-color:transparent;border:none;margin:0 .5rem;padding:0 .25rem;z-index:1}.ngb-dp-arrow-btn:focus{outline-style:auto;outline-width:1px}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.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 }], function () { return [{ type: NgbDatepickerI18n }]; }, { months: [{\n type: Input\n }], navigate: [{\n type: Output\n }], select: [{\n type: Output\n }], date: [{\n type: Input\n }], disabled: [{\n type: Input\n }], showSelect: [{\n type: Input\n }], prevDisabled: [{\n type: Input\n }], nextDisabled: [{\n type: Input\n }], selectBoxes: [{\n type: Input\n }] }); })();\n\nconst isContainedIn = (element, array) => array ? array.some(item => item.contains(element)) : false;\r\nconst ɵ0$2 = isContainedIn;\r\nconst matchesSelectorIfAny = (element, selector) => !selector || closest(element, selector) != null;\r\nconst ɵ1$1 = matchesSelectorIfAny;\r\nconst ɵ2$1 = () => {\r\n const isIOS = () => /iPad|iPhone|iPod/.test(navigator.userAgent) ||\r\n (/Macintosh/.test(navigator.userAgent) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2);\r\n const isAndroid = () => /Android/.test(navigator.userAgent);\r\n return typeof navigator !== 'undefined' ? !!navigator.userAgent && (isIOS() || isAndroid()) : false;\r\n};\r\n// we have to add a more significant delay to avoid re-opening when handling (click) on a toggling element\r\n// TODO: use proper Angular platform detection when NgbAutoClose becomes a service and we can inject PLATFORM_ID\r\nconst isMobile = (ɵ2$1)();\r\n// setting 'ngbAutoClose' synchronously on mobile results in immediate popup closing\r\n// when tapping on the triggering element\r\nconst wrapAsyncForMobile = fn => isMobile ? () => setTimeout(() => fn(), 100) : fn;\r\nconst ɵ3 = wrapAsyncForMobile;\r\nfunction ngbAutoClose(zone, document, type, close, closed$, insideElements, ignoreElements, insideSelector) {\r\n // closing on ESC and outside clicks\r\n if (type) {\r\n zone.runOutsideAngular(wrapAsyncForMobile(() => {\r\n const shouldCloseOnClick = (event) => {\r\n const element = event.target;\r\n if (event.button === 2 || isContainedIn(element, ignoreElements)) {\r\n return false;\r\n }\r\n if (type === 'inside') {\r\n return isContainedIn(element, insideElements) && matchesSelectorIfAny(element, insideSelector);\r\n }\r\n else if (type === 'outside') {\r\n return !isContainedIn(element, insideElements);\r\n }\r\n else /* if (type === true) */ {\r\n return matchesSelectorIfAny(element, insideSelector) || !isContainedIn(element, insideElements);\r\n }\r\n };\r\n const escapes$ = fromEvent(document, 'keydown')\r\n .pipe(takeUntil(closed$), \r\n // tslint:disable-next-line:deprecation\r\n filter(e => e.which === Key.Escape), tap(e => e.preventDefault()));\r\n // we have to pre-calculate 'shouldCloseOnClick' on 'mousedown',\r\n // because on 'mouseup' DOM nodes might be detached\r\n const mouseDowns$ = fromEvent(document, 'mousedown').pipe(map(shouldCloseOnClick), takeUntil(closed$));\r\n const closeableClicks$ = fromEvent(document, 'mouseup')\r\n .pipe(withLatestFrom(mouseDowns$), filter(([_, shouldClose]) => shouldClose), delay(0), takeUntil(closed$));\r\n race([\r\n escapes$.pipe(map(_ => 0 /* ESCAPE */)), closeableClicks$.pipe(map(_ => 1 /* CLICK */))\r\n ]).subscribe((source) => zone.run(() => close(source)));\r\n }));\r\n }\r\n}\n\nconst FOCUSABLE_ELEMENTS_SELECTOR = [\r\n 'a[href]', 'button:not([disabled])', 'input:not([disabled]):not([type=\"hidden\"])', 'select:not([disabled])',\r\n 'textarea:not([disabled])', '[contenteditable]', '[tabindex]:not([tabindex=\"-1\"])'\r\n].join(', ');\r\n/**\r\n * Returns first and last focusable elements inside of a given element based on specific CSS selector\r\n */\r\nfunction getFocusableBoundaryElements(element) {\r\n const list = Array.from(element.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR))\r\n .filter(el => el.tabIndex !== -1);\r\n return [list[0], list[list.length - 1]];\r\n}\r\n/**\r\n * Function that enforces browser focus to be trapped inside a DOM element.\r\n *\r\n * Works only for clicks inside the element and navigation with 'Tab', ignoring clicks outside of the element\r\n *\r\n * @param zone Angular zone\r\n * @param element The element around which focus will be trapped inside\r\n * @param stopFocusTrap$ The observable stream. When completed the focus trap will clean up listeners\r\n * and free internal resources\r\n * @param refocusOnClick Put the focus back to the last focused element whenever a click occurs on element (default to\r\n * false)\r\n */\r\nconst ngbFocusTrap = (zone, element, stopFocusTrap$, refocusOnClick = false) => {\r\n zone.runOutsideAngular(() => {\r\n // last focused element\r\n const lastFocusedElement$ = fromEvent(element, 'focusin').pipe(takeUntil(stopFocusTrap$), map(e => e.target));\r\n // 'tab' / 'shift+tab' stream\r\n fromEvent(element, 'keydown')\r\n .pipe(takeUntil(stopFocusTrap$), \r\n // tslint:disable:deprecation\r\n filter(e => e.which === Key.Tab), \r\n // tslint:enable:deprecation\r\n withLatestFrom(lastFocusedElement$))\r\n .subscribe(([tabEvent, focusedElement]) => {\r\n const [first, last] = getFocusableBoundaryElements(element);\r\n if ((focusedElement === first || focusedElement === element) && tabEvent.shiftKey) {\r\n last.focus();\r\n tabEvent.preventDefault();\r\n }\r\n if (focusedElement === last && !tabEvent.shiftKey) {\r\n first.focus();\r\n tabEvent.preventDefault();\r\n }\r\n });\r\n // inside click\r\n if (refocusOnClick) {\r\n fromEvent(element, 'click')\r\n .pipe(takeUntil(stopFocusTrap$), withLatestFrom(lastFocusedElement$), map(arr => arr[1]))\r\n .subscribe(lastFocusedElement => lastFocusedElement.focus());\r\n }\r\n });\r\n};\n\n// previous version:\r\n// https://github.com/angular-ui/bootstrap/blob/07c31d0731f7cb068a1932b8e01d2312b796b4ec/src/position/position.js\r\nclass Positioning {\r\n getAllStyles(element) { return window.getComputedStyle(element); }\r\n getStyle(element, prop) { return this.getAllStyles(element)[prop]; }\r\n isStaticPositioned(element) {\r\n return (this.getStyle(element, 'position') || 'static') === 'static';\r\n }\r\n offsetParent(element) {\r\n let offsetParentEl = element.offsetParent || document.documentElement;\r\n while (offsetParentEl && offsetParentEl !== document.documentElement && this.isStaticPositioned(offsetParentEl)) {\r\n offsetParentEl = offsetParentEl.offsetParent;\r\n }\r\n return offsetParentEl || document.documentElement;\r\n }\r\n position(element, round = true) {\r\n let elPosition;\r\n let parentOffset = { width: 0, height: 0, top: 0, bottom: 0, left: 0, right: 0 };\r\n if (this.getStyle(element, 'position') === 'fixed') {\r\n elPosition = element.getBoundingClientRect();\r\n elPosition = {\r\n top: elPosition.top,\r\n bottom: elPosition.bottom,\r\n left: elPosition.left,\r\n right: elPosition.right,\r\n height: elPosition.height,\r\n width: elPosition.width\r\n };\r\n }\r\n else {\r\n const offsetParentEl = this.offsetParent(element);\r\n elPosition = this.offset(element, false);\r\n if (offsetParentEl !== document.documentElement) {\r\n parentOffset = this.offset(offsetParentEl, false);\r\n }\r\n parentOffset.top += offsetParentEl.clientTop;\r\n parentOffset.left += offsetParentEl.clientLeft;\r\n }\r\n elPosition.top -= parentOffset.top;\r\n elPosition.bottom -= parentOffset.top;\r\n elPosition.left -= parentOffset.left;\r\n elPosition.right -= parentOffset.left;\r\n if (round) {\r\n elPosition.top = Math.round(elPosition.top);\r\n elPosition.bottom = Math.round(elPosition.bottom);\r\n elPosition.left = Math.round(elPosition.left);\r\n elPosition.right = Math.round(elPosition.right);\r\n }\r\n return elPosition;\r\n }\r\n offset(element, round = true) {\r\n const elBcr = element.getBoundingClientRect();\r\n const viewportOffset = {\r\n top: window.pageYOffset - document.documentElement.clientTop,\r\n left: window.pageXOffset - document.documentElement.clientLeft\r\n };\r\n let elOffset = {\r\n height: elBcr.height || element.offsetHeight,\r\n width: elBcr.width || element.offsetWidth,\r\n top: elBcr.top + viewportOffset.top,\r\n bottom: elBcr.bottom + viewportOffset.top,\r\n left: elBcr.left + viewportOffset.left,\r\n right: elBcr.right + viewportOffset.left\r\n };\r\n if (round) {\r\n elOffset.height = Math.round(elOffset.height);\r\n elOffset.width = Math.round(elOffset.width);\r\n elOffset.top = Math.round(elOffset.top);\r\n elOffset.bottom = Math.round(elOffset.bottom);\r\n elOffset.left = Math.round(elOffset.left);\r\n elOffset.right = Math.round(elOffset.right);\r\n }\r\n return elOffset;\r\n }\r\n /*\r\n Return false if the element to position is outside the viewport\r\n */\r\n positionElements(hostElement, targetElement, placement, appendToBody) {\r\n const [placementPrimary = 'top', placementSecondary = 'center'] = placement.split('-');\r\n const hostElPosition = appendToBody ? this.offset(hostElement, false) : this.position(hostElement, false);\r\n const targetElStyles = this.getAllStyles(targetElement);\r\n const marginTop = parseFloat(targetElStyles.marginTop);\r\n const marginBottom = parseFloat(targetElStyles.marginBottom);\r\n const marginLeft = parseFloat(targetElStyles.marginLeft);\r\n const marginRight = parseFloat(targetElStyles.marginRight);\r\n let topPosition = 0;\r\n let leftPosition = 0;\r\n switch (placementPrimary) {\r\n case 'top':\r\n topPosition = (hostElPosition.top - (targetElement.offsetHeight + marginTop + marginBottom));\r\n break;\r\n case 'bottom':\r\n topPosition = (hostElPosition.top + hostElPosition.height);\r\n break;\r\n case 'left':\r\n leftPosition = (hostElPosition.left - (targetElement.offsetWidth + marginLeft + marginRight));\r\n break;\r\n case 'right':\r\n leftPosition = (hostElPosition.left + hostElPosition.width);\r\n break;\r\n }\r\n switch (placementSecondary) {\r\n case 'top':\r\n topPosition = hostElPosition.top;\r\n break;\r\n case 'bottom':\r\n topPosition = hostElPosition.top + hostElPosition.height - targetElement.offsetHeight;\r\n break;\r\n case 'left':\r\n leftPosition = hostElPosition.left;\r\n break;\r\n case 'right':\r\n leftPosition = hostElPosition.left + hostElPosition.width - targetElement.offsetWidth;\r\n break;\r\n case 'center':\r\n if (placementPrimary === 'top' || placementPrimary === 'bottom') {\r\n leftPosition = (hostElPosition.left + hostElPosition.width / 2 - targetElement.offsetWidth / 2);\r\n }\r\n else {\r\n topPosition = (hostElPosition.top + hostElPosition.height / 2 - targetElement.offsetHeight / 2);\r\n }\r\n break;\r\n }\r\n /// The translate3d/gpu acceleration render a blurry text on chrome, the next line is commented until a browser fix\r\n // targetElement.style.transform = `translate3d(${Math.round(leftPosition)}px, ${Math.floor(topPosition)}px, 0px)`;\r\n targetElement.style.transform = `translate(${Math.round(leftPosition)}px, ${Math.round(topPosition)}px)`;\r\n // Check if the targetElement is inside the viewport\r\n const targetElBCR = targetElement.getBoundingClientRect();\r\n const html = document.documentElement;\r\n const windowHeight = window.innerHeight || html.clientHeight;\r\n const windowWidth = window.innerWidth || html.clientWidth;\r\n return targetElBCR.left >= 0 && targetElBCR.top >= 0 && targetElBCR.right <= windowWidth &&\r\n targetElBCR.bottom <= windowHeight;\r\n }\r\n}\r\nconst placementSeparator = /\\s+/;\r\nconst positionService = new Positioning();\r\n/*\r\n * Accept the placement array and applies the appropriate placement dependent on the viewport.\r\n * Returns the applied placement.\r\n * In case of auto placement, placements are selected in order\r\n * 'top', 'bottom', 'left', 'right',\r\n * 'top-left', 'top-right',\r\n * 'bottom-left', 'bottom-right',\r\n * 'left-top', 'left-bottom',\r\n * 'right-top', 'right-bottom'.\r\n * */\r\nfunction positionElements(hostElement, targetElement, placement, appendToBody, baseClass) {\r\n let placementVals = Array.isArray(placement) ? placement : placement.split(placementSeparator);\r\n const allowedPlacements = [\r\n 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right', 'left-top', 'left-bottom',\r\n 'right-top', 'right-bottom'\r\n ];\r\n const classList = targetElement.classList;\r\n const addClassesToTarget = (targetPlacement) => {\r\n const [primary, secondary] = targetPlacement.split('-');\r\n const classes = [];\r\n if (baseClass) {\r\n classes.push(`${baseClass}-${primary}`);\r\n if (secondary) {\r\n classes.push(`${baseClass}-${primary}-${secondary}`);\r\n }\r\n classes.forEach((classname) => { classList.add(classname); });\r\n }\r\n return classes;\r\n };\r\n // Remove old placement classes to avoid issues\r\n if (baseClass) {\r\n allowedPlacements.forEach((placementToRemove) => { classList.remove(`${baseClass}-${placementToRemove}`); });\r\n }\r\n // replace auto placement with other placements\r\n let hasAuto = placementVals.findIndex(val => val === 'auto');\r\n if (hasAuto >= 0) {\r\n allowedPlacements.forEach(function (obj) {\r\n if (placementVals.find(val => val.search('^' + obj) !== -1) == null) {\r\n placementVals.splice(hasAuto++, 1, obj);\r\n }\r\n });\r\n }\r\n // coordinates where to position\r\n // Required for transform:\r\n const style = targetElement.style;\r\n style.position = 'absolute';\r\n style.top = '0';\r\n style.left = '0';\r\n style['will-change'] = 'transform';\r\n let testPlacement = null;\r\n let isInViewport = false;\r\n for (testPlacement of placementVals) {\r\n let addedClasses = addClassesToTarget(testPlacement);\r\n if (positionService.positionElements(hostElement, targetElement, testPlacement, appendToBody)) {\r\n isInViewport = true;\r\n break;\r\n }\r\n // Remove the baseClasses for further calculation\r\n if (baseClass) {\r\n addedClasses.forEach((classname) => { classList.remove(classname); });\r\n }\r\n }\r\n if (!isInViewport) {\r\n // If nothing match, the first placement is the default one\r\n testPlacement = placementVals[0];\r\n addClassesToTarget(testPlacement);\r\n positionService.positionElements(hostElement, targetElement, testPlacement, appendToBody);\r\n }\r\n return testPlacement;\r\n}\n\nfunction NGB_DATEPICKER_PARSER_FORMATTER_FACTORY() {\r\n return new NgbDateISOParserFormatter();\r\n}\r\n/**\r\n * An abstract service for parsing and formatting dates for the\r\n * [`NgbInputDatepicker`](#/components/datepicker/api#NgbInputDatepicker) directive.\r\n * Converts between the internal `NgbDateStruct` model presentation and a `string` that is displayed in the\r\n * input element.\r\n *\r\n * When user types something in the input this service attempts to parse it into a `NgbDateStruct` object.\r\n * And vice versa, when users selects a date in the calendar with the mouse, it must be displayed as a `string`\r\n * in the input.\r\n *\r\n * Default implementation uses the ISO 8601 format, but you can provide another implementation via DI\r\n * to use an alternative string format or a custom parsing logic.\r\n *\r\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\r\n */\r\nclass NgbDateParserFormatter {\r\n}\nNgbDateParserFormatter.ɵfac = function NgbDateParserFormatter_Factory(t) { return new (t || NgbDateParserFormatter)(); };\r\nNgbDateParserFormatter.ɵprov = ɵɵdefineInjectable({ factory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY, token: NgbDateParserFormatter, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateParserFormatter, [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY }]\n }], null, null); })();\r\nclass NgbDateISOParserFormatter extends NgbDateParserFormatter {\r\n parse(value) {\r\n if (value != null) {\r\n const dateParts = value.trim().split('-');\r\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\r\n return { year: toInteger(dateParts[0]), month: null, day: null };\r\n }\r\n else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\r\n return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: null };\r\n }\r\n else if (dateParts.length === 3 && isNumber(dateParts[0]) && isNumber(dateParts[1]) && isNumber(dateParts[2])) {\r\n return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: toInteger(dateParts[2]) };\r\n }\r\n }\r\n return null;\r\n }\r\n format(date) {\r\n return date ?\r\n `${date.year}-${isNumber(date.month) ? padNumber(date.month) : ''}-${isNumber(date.day) ? padNumber(date.day) : ''}` :\r\n '';\r\n }\r\n}\nNgbDateISOParserFormatter.ɵfac = /*@__PURE__*/ function () { let ɵNgbDateISOParserFormatter_BaseFactory; return function NgbDateISOParserFormatter_Factory(t) { return (ɵNgbDateISOParserFormatter_BaseFactory || (ɵNgbDateISOParserFormatter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDateISOParserFormatter)))(t || NgbDateISOParserFormatter); }; }();\nNgbDateISOParserFormatter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDateISOParserFormatter, factory: NgbDateISOParserFormatter.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateISOParserFormatter, [{\n type: Injectable\n }], null, null); })();\n\n/**\r\n * A configuration service for the [`NgbDatepickerInput`](#/components/datepicker/api#NgbDatepicker) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the datepicker inputs used in the application.\r\n *\r\n * @since 5.2.0\r\n */\r\nclass NgbInputDatepickerConfig extends NgbDatepickerConfig {\r\n constructor() {\r\n super(...arguments);\r\n this.autoClose = true;\r\n this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right'];\r\n this.restoreFocus = true;\r\n }\r\n}\nNgbInputDatepickerConfig.ɵfac = /*@__PURE__*/ function () { let ɵNgbInputDatepickerConfig_BaseFactory; return function NgbInputDatepickerConfig_Factory(t) { return (ɵNgbInputDatepickerConfig_BaseFactory || (ɵNgbInputDatepickerConfig_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbInputDatepickerConfig)))(t || NgbInputDatepickerConfig); }; }();\r\nNgbInputDatepickerConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbInputDatepickerConfig_Factory() { return new NgbInputDatepickerConfig(); }, token: NgbInputDatepickerConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbInputDatepickerConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], null, null); })();\n\n/**\r\n * A directive that allows to stick a datepicker popup to an input field.\r\n *\r\n * Manages interaction with the input field itself, does value formatting and provides forms integration.\r\n */\r\nclass NgbInputDatepicker {\r\n constructor(_parserFormatter, _elRef, _vcRef, _renderer, _cfr, _ngZone, _calendar, _dateAdapter, _document, _changeDetector, config) {\r\n this._parserFormatter = _parserFormatter;\r\n this._elRef = _elRef;\r\n this._vcRef = _vcRef;\r\n this._renderer = _renderer;\r\n this._cfr = _cfr;\r\n this._ngZone = _ngZone;\r\n this._calendar = _calendar;\r\n this._dateAdapter = _dateAdapter;\r\n this._document = _document;\r\n this._changeDetector = _changeDetector;\r\n this._cRef = null;\r\n this._disabled = false;\r\n this._elWithFocus = null;\r\n this._model = null;\r\n /**\r\n * An event emitted when user selects a date using keyboard or mouse.\r\n *\r\n * The payload of the event is currently selected `NgbDate`.\r\n *\r\n * @since 1.1.1\r\n */\r\n this.dateSelect = new EventEmitter();\r\n /**\r\n * Event emitted right after the navigation happens and displayed month changes.\r\n *\r\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\r\n */\r\n this.navigate = new EventEmitter();\r\n /**\r\n * An event fired after closing datepicker window.\r\n *\r\n * @since 4.2.0\r\n */\r\n this.closed = new EventEmitter();\r\n this._onChange = (_) => { };\r\n this._onTouched = () => { };\r\n this._validatorChange = () => { };\r\n ['autoClose', 'container', 'positionTarget', 'placement'].forEach(input => this[input] = config[input]);\r\n this._zoneSubscription = _ngZone.onStable.subscribe(() => this._updatePopupPosition());\r\n }\r\n /**\r\n * If `true`, weekdays will be displayed.\r\n *\r\n * @deprecated 9.1.0, please use 'weekdays' instead\r\n */\r\n set showWeekdays(weekdays) {\r\n this.weekdays = weekdays;\r\n this._showWeekdays = weekdays;\r\n }\r\n get showWeekdays() { return this._showWeekdays; }\r\n get disabled() {\r\n return this._disabled;\r\n }\r\n set disabled(value) {\r\n this._disabled = value === '' || (value && value !== 'false');\r\n if (this.isOpen()) {\r\n this._cRef.instance.setDisabledState(this._disabled);\r\n }\r\n }\r\n registerOnChange(fn) { this._onChange = fn; }\r\n registerOnTouched(fn) { this._onTouched = fn; }\r\n registerOnValidatorChange(fn) { this._validatorChange = fn; }\r\n setDisabledState(isDisabled) { this.disabled = isDisabled; }\r\n validate(c) {\r\n const { value } = c;\r\n if (value != null) {\r\n const ngbDate = this._fromDateStruct(this._dateAdapter.fromModel(value));\r\n if (!ngbDate) {\r\n return { 'ngbDate': { invalid: value } };\r\n }\r\n if (this.minDate && ngbDate.before(NgbDate.from(this.minDate))) {\r\n return { 'ngbDate': { minDate: { minDate: this.minDate, actual: value } } };\r\n }\r\n if (this.maxDate && ngbDate.after(NgbDate.from(this.maxDate))) {\r\n return { 'ngbDate': { maxDate: { maxDate: this.maxDate, actual: value } } };\r\n }\r\n }\r\n return null;\r\n }\r\n writeValue(value) {\r\n this._model = this._fromDateStruct(this._dateAdapter.fromModel(value));\r\n this._writeModelValue(this._model);\r\n }\r\n manualDateChange(value, updateView = false) {\r\n const inputValueChanged = value !== this._inputValue;\r\n if (inputValueChanged) {\r\n this._inputValue = value;\r\n this._model = this._fromDateStruct(this._parserFormatter.parse(value));\r\n }\r\n if (inputValueChanged || !updateView) {\r\n this._onChange(this._model ? this._dateAdapter.toModel(this._model) : (value === '' ? null : value));\r\n }\r\n if (updateView && this._model) {\r\n this._writeModelValue(this._model);\r\n }\r\n }\r\n isOpen() { return !!this._cRef; }\r\n /**\r\n * Opens the datepicker popup.\r\n *\r\n * If the related form control contains a valid date, the corresponding month will be opened.\r\n */\r\n open() {\r\n if (!this.isOpen()) {\r\n const cf = this._cfr.resolveComponentFactory(NgbDatepicker);\r\n this._cRef = this._vcRef.createComponent(cf);\r\n this._applyPopupStyling(this._cRef.location.nativeElement);\r\n this._applyDatepickerInputs(this._cRef.instance);\r\n this._subscribeForDatepickerOutputs(this._cRef.instance);\r\n this._cRef.instance.ngOnInit();\r\n this._cRef.instance.writeValue(this._dateAdapter.toModel(this._model));\r\n // date selection event handling\r\n this._cRef.instance.registerOnChange((selectedDate) => {\r\n this.writeValue(selectedDate);\r\n this._onChange(selectedDate);\r\n this._onTouched();\r\n });\r\n this._cRef.changeDetectorRef.detectChanges();\r\n this._cRef.instance.setDisabledState(this.disabled);\r\n if (this.container === 'body') {\r\n this._document.querySelector(this.container).appendChild(this._cRef.location.nativeElement);\r\n }\r\n // focus handling\r\n this._elWithFocus = this._document.activeElement;\r\n ngbFocusTrap(this._ngZone, this._cRef.location.nativeElement, this.closed, true);\r\n this._cRef.instance.focus();\r\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.closed, [], [this._elRef.nativeElement, this._cRef.location.nativeElement]);\r\n }\r\n }\r\n /**\r\n * Closes the datepicker popup.\r\n */\r\n close() {\r\n if (this.isOpen()) {\r\n this._vcRef.remove(this._vcRef.indexOf(this._cRef.hostView));\r\n this._cRef = null;\r\n this.closed.emit();\r\n this._changeDetector.markForCheck();\r\n // restore focus\r\n let elementToFocus = this._elWithFocus;\r\n if (isString(this.restoreFocus)) {\r\n elementToFocus = this._document.querySelector(this.restoreFocus);\r\n }\r\n else if (this.restoreFocus !== undefined) {\r\n elementToFocus = this.restoreFocus;\r\n }\r\n // in IE document.activeElement can contain an object without 'focus()' sometimes\r\n if (elementToFocus && elementToFocus['focus']) {\r\n elementToFocus.focus();\r\n }\r\n else {\r\n this._document.body.focus();\r\n }\r\n }\r\n }\r\n /**\r\n * Toggles the datepicker popup.\r\n */\r\n toggle() {\r\n if (this.isOpen()) {\r\n this.close();\r\n }\r\n else {\r\n this.open();\r\n }\r\n }\r\n /**\r\n * Navigates to the provided date.\r\n *\r\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\r\n * If nothing or invalid date provided calendar will open current month.\r\n *\r\n * Use the `[startDate]` input as an alternative.\r\n */\r\n navigateTo(date) {\r\n if (this.isOpen()) {\r\n this._cRef.instance.navigateTo(date);\r\n }\r\n }\r\n onBlur() { this._onTouched(); }\r\n onFocus() { this._elWithFocus = this._elRef.nativeElement; }\r\n ngOnChanges(changes) {\r\n if (changes['minDate'] || changes['maxDate']) {\r\n this._validatorChange();\r\n if (this.isOpen()) {\r\n if (changes['minDate']) {\r\n this._cRef.instance.minDate = this.minDate;\r\n }\r\n if (changes['maxDate']) {\r\n this._cRef.instance.maxDate = this.maxDate;\r\n }\r\n this._cRef.instance.ngOnChanges(changes);\r\n }\r\n }\r\n if (changes['datepickerClass']) {\r\n const { currentValue, previousValue } = changes['datepickerClass'];\r\n this._applyPopupClass(currentValue, previousValue);\r\n }\r\n }\r\n ngOnDestroy() {\r\n this.close();\r\n this._zoneSubscription.unsubscribe();\r\n }\r\n _applyDatepickerInputs(datepickerInstance) {\r\n ['dayTemplate', 'dayTemplateData', 'displayMonths', 'firstDayOfWeek', 'footerTemplate', 'markDisabled', 'minDate',\r\n 'maxDate', 'navigation', 'outsideDays', 'showNavigation', 'showWeekNumbers', 'weekdays']\r\n .forEach((optionName) => {\r\n if (this[optionName] !== undefined) {\r\n datepickerInstance[optionName] = this[optionName];\r\n }\r\n });\r\n datepickerInstance.startDate = this.startDate || this._model;\r\n }\r\n _applyPopupClass(newClass, oldClass) {\r\n var _a;\r\n const popupEl = (_a = this._cRef) === null || _a === void 0 ? void 0 : _a.location.nativeElement;\r\n if (popupEl) {\r\n if (newClass) {\r\n this._renderer.addClass(popupEl, newClass);\r\n }\r\n if (oldClass) {\r\n this._renderer.removeClass(popupEl, oldClass);\r\n }\r\n }\r\n }\r\n _applyPopupStyling(nativeElement) {\r\n this._renderer.addClass(nativeElement, 'dropdown-menu');\r\n this._renderer.addClass(nativeElement, 'show');\r\n if (this.container === 'body') {\r\n this._renderer.addClass(nativeElement, 'ngb-dp-body');\r\n }\r\n this._applyPopupClass(this.datepickerClass);\r\n }\r\n _subscribeForDatepickerOutputs(datepickerInstance) {\r\n datepickerInstance.navigate.subscribe(navigateEvent => this.navigate.emit(navigateEvent));\r\n datepickerInstance.dateSelect.subscribe(date => {\r\n this.dateSelect.emit(date);\r\n if (this.autoClose === true || this.autoClose === 'inside') {\r\n this.close();\r\n }\r\n });\r\n }\r\n _writeModelValue(model) {\r\n const value = this._parserFormatter.format(model);\r\n this._inputValue = value;\r\n this._renderer.setProperty(this._elRef.nativeElement, 'value', value);\r\n if (this.isOpen()) {\r\n this._cRef.instance.writeValue(this._dateAdapter.toModel(model));\r\n this._onTouched();\r\n }\r\n }\r\n _fromDateStruct(date) {\r\n const ngbDate = date ? new NgbDate(date.year, date.month, date.day) : null;\r\n return this._calendar.isValid(ngbDate) ? ngbDate : null;\r\n }\r\n _updatePopupPosition() {\r\n if (!this._cRef) {\r\n return;\r\n }\r\n let hostElement;\r\n if (isString(this.positionTarget)) {\r\n hostElement = this._document.querySelector(this.positionTarget);\r\n }\r\n else if (this.positionTarget instanceof HTMLElement) {\r\n hostElement = this.positionTarget;\r\n }\r\n else {\r\n hostElement = this._elRef.nativeElement;\r\n }\r\n if (this.positionTarget && !hostElement) {\r\n throw new Error('ngbDatepicker could not find element declared in [positionTarget] to position against.');\r\n }\r\n positionElements(hostElement, this._cRef.location.nativeElement, this.placement, this.container === 'body');\r\n }\r\n}\nNgbInputDatepicker.ɵfac = function NgbInputDatepicker_Factory(t) { return new (t || NgbInputDatepicker)(ɵngcc0.ɵɵdirectiveInject(NgbDateParserFormatter), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(NgbCalendar), ɵngcc0.ɵɵdirectiveInject(NgbDateAdapter), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(NgbInputDatepickerConfig)); };\nNgbInputDatepicker.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbInputDatepicker, selectors: [[\"input\", \"ngbDatepicker\", \"\"]], hostVars: 1, hostBindings: function NgbInputDatepicker_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"input\", function NgbInputDatepicker_input_HostBindingHandler($event) { return ctx.manualDateChange($event.target.value); })(\"change\", function NgbInputDatepicker_change_HostBindingHandler($event) { return ctx.manualDateChange($event.target.value, true); })(\"focus\", function NgbInputDatepicker_focus_HostBindingHandler() { return ctx.onFocus(); })(\"blur\", function NgbInputDatepicker_blur_HostBindingHandler() { return ctx.onBlur(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"disabled\", ctx.disabled);\n } }, inputs: { showWeekdays: \"showWeekdays\", weekdays: \"weekdays\", disabled: \"disabled\", autoClose: \"autoClose\", datepickerClass: \"datepickerClass\", dayTemplate: \"dayTemplate\", dayTemplateData: \"dayTemplateData\", displayMonths: \"displayMonths\", firstDayOfWeek: \"firstDayOfWeek\", footerTemplate: \"footerTemplate\", markDisabled: \"markDisabled\", minDate: \"minDate\", maxDate: \"maxDate\", navigation: \"navigation\", outsideDays: \"outsideDays\", placement: \"placement\", restoreFocus: \"restoreFocus\", showWeekNumbers: \"showWeekNumbers\", startDate: \"startDate\", container: \"container\", positionTarget: \"positionTarget\" }, outputs: { dateSelect: \"dateSelect\", navigate: \"navigate\", closed: \"closed\" }, exportAs: [\"ngbDatepicker\"], features: [ɵngcc0.ɵɵProvidersFeature([\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 ]), ɵngcc0.ɵɵNgOnChangesFeature] });\r\nNgbInputDatepicker.ctorParameters = () => [\r\n { type: NgbDateParserFormatter },\r\n { type: ElementRef },\r\n { type: ViewContainerRef },\r\n { type: Renderer2 },\r\n { type: ComponentFactoryResolver },\r\n { type: NgZone },\r\n { type: NgbCalendar },\r\n { type: NgbDateAdapter },\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\r\n { type: ChangeDetectorRef },\r\n { type: NgbInputDatepickerConfig }\r\n];\r\nNgbInputDatepicker.propDecorators = {\r\n autoClose: [{ type: Input }],\r\n datepickerClass: [{ type: Input }],\r\n dayTemplate: [{ type: Input }],\r\n dayTemplateData: [{ type: Input }],\r\n displayMonths: [{ type: Input }],\r\n firstDayOfWeek: [{ type: Input }],\r\n footerTemplate: [{ type: Input }],\r\n markDisabled: [{ type: Input }],\r\n minDate: [{ type: Input }],\r\n maxDate: [{ type: Input }],\r\n navigation: [{ type: Input }],\r\n outsideDays: [{ type: Input }],\r\n placement: [{ type: Input }],\r\n restoreFocus: [{ type: Input }],\r\n showWeekdays: [{ type: Input }],\r\n showWeekNumbers: [{ type: Input }],\r\n startDate: [{ type: Input }],\r\n container: [{ type: Input }],\r\n positionTarget: [{ type: Input }],\r\n weekdays: [{ type: Input }],\r\n dateSelect: [{ type: Output }],\r\n navigate: [{ type: Output }],\r\n closed: [{ type: Output }],\r\n disabled: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbInputDatepicker, [{\n type: Directive,\n args: [{\n selector: 'input[ngbDatepicker]',\n exportAs: 'ngbDatepicker',\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 }], function () { return [{ type: NgbDateParserFormatter }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.NgZone }, { type: NgbCalendar }, { type: NgbDateAdapter }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ɵngcc0.ChangeDetectorRef }, { type: NgbInputDatepickerConfig }]; }, { dateSelect: [{\n type: Output\n }], navigate: [{\n type: Output\n }], closed: [{\n type: Output\n }], showWeekdays: [{\n type: Input\n }], weekdays: [{\n type: Input\n }], disabled: [{\n type: Input\n }], autoClose: [{\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 }], 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 }] }); })();\n\nclass NgbDatepickerDayView {\r\n constructor(i18n) {\r\n this.i18n = i18n;\r\n }\r\n isMuted() { return !this.selected && (this.date.month !== this.currentMonth || this.disabled); }\r\n}\nNgbDatepickerDayView.ɵfac = function NgbDatepickerDayView_Factory(t) { return new (t || NgbDatepickerDayView)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n)); };\nNgbDatepickerDayView.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbDatepickerDayView, selectors: [[\"\", \"ngbDatepickerDayView\", \"\"]], hostAttrs: [1, \"btn-light\"], hostVars: 10, hostBindings: function NgbDatepickerDayView_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"bg-primary\", ctx.selected)(\"text-white\", ctx.selected)(\"text-muted\", ctx.isMuted())(\"outside\", ctx.isMuted())(\"active\", ctx.focused);\n } }, inputs: { currentMonth: \"currentMonth\", date: \"date\", disabled: \"disabled\", focused: \"focused\", selected: \"selected\" }, attrs: _c20, decls: 1, vars: 1, template: function NgbDatepickerDayView_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n } if (rf & 2) {\n ɵngcc0.ɵɵtextInterpolate(ctx.i18n.getDayNumerals(ctx.date));\n } }, styles: [\"[ngbDatepickerDayView]{background:transparent;border-radius:.25rem;height:2rem;line-height:2rem;text-align:center;width:2rem}[ngbDatepickerDayView].outside{opacity:.5}\"], encapsulation: 2, changeDetection: 0 });\r\nNgbDatepickerDayView.ctorParameters = () => [\r\n { type: NgbDatepickerI18n }\r\n];\r\nNgbDatepickerDayView.propDecorators = {\r\n currentMonth: [{ type: Input }],\r\n date: [{ type: Input }],\r\n disabled: [{ type: Input }],\r\n focused: [{ type: Input }],\r\n selected: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerDayView, [{\n type: Component,\n args: [{ selector: '[ngbDatepickerDayView]', 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]{background:transparent;border-radius:.25rem;height:2rem;line-height:2rem;text-align:center;width:2rem}[ngbDatepickerDayView].outside{opacity:.5}\"] }]\n }], function () { return [{ type: NgbDatepickerI18n }]; }, { 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 {\r\n constructor(i18n, _renderer) {\r\n this.i18n = i18n;\r\n this._renderer = _renderer;\r\n this.select = new EventEmitter();\r\n this._month = -1;\r\n this._year = -1;\r\n }\r\n changeMonth(month) { this.select.emit(new NgbDate(this.date.year, toInteger(month), 1)); }\r\n changeYear(year) { this.select.emit(new NgbDate(toInteger(year), this.date.month, 1)); }\r\n ngAfterViewChecked() {\r\n if (this.date) {\r\n if (this.date.month !== this._month) {\r\n this._month = this.date.month;\r\n this._renderer.setProperty(this.monthSelect.nativeElement, 'value', this._month);\r\n }\r\n if (this.date.year !== this._year) {\r\n this._year = this.date.year;\r\n this._renderer.setProperty(this.yearSelect.nativeElement, 'value', this._year);\r\n }\r\n }\r\n }\r\n}\nNgbDatepickerNavigationSelect.ɵfac = function NgbDatepickerNavigationSelect_Factory(t) { return new (t || NgbDatepickerNavigationSelect)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nNgbDatepickerNavigationSelect.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbDatepickerNavigationSelect, selectors: [[\"ngb-datepicker-navigation-select\"]], viewQuery: function NgbDatepickerNavigationSelect_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c21, 7, ElementRef);\n ɵngcc0.ɵɵviewQuery(_c22, 7, ElementRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.monthSelect = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.yearSelect = _t.first);\n } }, inputs: { date: \"date\", disabled: \"disabled\", months: \"months\", years: \"years\" }, outputs: { select: \"select\" }, decls: 6, vars: 4, consts: function () { let i18n_23; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_24 = goog.getMsg(\"Select month\");\n i18n_23 = MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_24;\n }\n else {\n i18n_23 = $localize `:@@ngb.datepicker.select-month␟1dbc84807f35518112f62e5775d1daebd3d8462b␟2253869508135064750:Select month`;\n } let i18n_25; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_26 = goog.getMsg(\"Select month\");\n i18n_25 = MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_26;\n }\n else {\n i18n_25 = $localize `:@@ngb.datepicker.select-month␟1dbc84807f35518112f62e5775d1daebd3d8462b␟2253869508135064750:Select month`;\n } let i18n_27; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_28 = goog.getMsg(\"Select year\");\n i18n_27 = MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_28;\n }\n else {\n i18n_27 = $localize `:@@ngb.datepicker.select-year␟8ceb09d002bf0c5d1cac171dfbffe1805d2b3962␟8852264961585484321:Select year`;\n } let i18n_29; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_30 = goog.getMsg(\"Select year\");\n i18n_29 = MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_30;\n }\n else {\n i18n_29 = $localize `:@@ngb.datepicker.select-year␟8ceb09d002bf0c5d1cac171dfbffe1805d2b3962␟8852264961585484321:Select year`;\n } return [[\"aria-label\", i18n_23, \"title\", i18n_25, 1, \"custom-select\", 3, \"disabled\", \"change\"], [\"month\", \"\"], [3, \"value\", 4, \"ngFor\", \"ngForOf\"], [\"aria-label\", i18n_27, \"title\", i18n_29, 1, \"custom-select\", 3, \"disabled\", \"change\"], [\"year\", \"\"], [3, \"value\"]]; }, template: function NgbDatepickerNavigationSelect_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"select\", 0, 1);\n ɵngcc0.ɵɵlistener(\"change\", function NgbDatepickerNavigationSelect_Template_select_change_0_listener($event) { return ctx.changeMonth($event.target.value); });\n ɵngcc0.ɵɵtemplate(2, NgbDatepickerNavigationSelect_option_2_Template, 2, 3, \"option\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"select\", 3, 4);\n ɵngcc0.ɵɵlistener(\"change\", function NgbDatepickerNavigationSelect_Template_select_change_3_listener($event) { return ctx.changeYear($event.target.value); });\n ɵngcc0.ɵɵtemplate(5, NgbDatepickerNavigationSelect_option_5_Template, 2, 2, \"option\", 2);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.months);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.years);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc2.NgSelectOption, ɵngcc2.ɵNgSelectMultipleOption], styles: [\"ngb-datepicker-navigation-select>.custom-select{flex:1 1 auto;font-size:.875rem;height:1.85rem;padding:0 .5rem}ngb-datepicker-navigation-select>.custom-select:focus{z-index:1}ngb-datepicker-navigation-select>.custom-select::-ms-value{background-color:transparent!important}\"], encapsulation: 2, changeDetection: 0 });\r\nNgbDatepickerNavigationSelect.ctorParameters = () => [\r\n { type: NgbDatepickerI18n },\r\n { type: Renderer2 }\r\n];\r\nNgbDatepickerNavigationSelect.propDecorators = {\r\n date: [{ type: Input }],\r\n disabled: [{ type: Input }],\r\n months: [{ type: Input }],\r\n years: [{ type: Input }],\r\n select: [{ type: Output }],\r\n monthSelect: [{ type: ViewChild, args: ['month', { static: true, read: ElementRef },] }],\r\n yearSelect: [{ type: ViewChild, args: ['year', { static: true, read: ElementRef },] }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerNavigationSelect, [{\n type: Component,\n args: [{ selector: 'ngb-datepicker-navigation-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `\r\n <select #month\r\n [disabled]=\"disabled\"\r\n class=\"custom-select\"\r\n i18n-aria-label=\"@@ngb.datepicker.select-month\" aria-label=\"Select month\"\r\n i18n-title=\"@@ngb.datepicker.select-month\" title=\"Select month\"\r\n (change)=\"changeMonth($any($event).target.value)\">\r\n <option *ngFor=\"let m of months\" [attr.aria-label]=\"i18n.getMonthFullName(m, date?.year)\"\r\n [value]=\"m\">{{ i18n.getMonthShortName(m, date?.year) }}</option>\r\n </select><select #year\r\n [disabled]=\"disabled\"\r\n class=\"custom-select\"\r\n i18n-aria-label=\"@@ngb.datepicker.select-year\" aria-label=\"Select year\"\r\n i18n-title=\"@@ngb.datepicker.select-year\" title=\"Select year\"\r\n (change)=\"changeYear($any($event).target.value)\">\r\n <option *ngFor=\"let y of years\" [value]=\"y\">{{ i18n.getYearNumerals(y) }}</option>\r\n </select>\r\n `, styles: [\"ngb-datepicker-navigation-select>.custom-select{flex:1 1 auto;font-size:.875rem;height:1.85rem;padding:0 .5rem}ngb-datepicker-navigation-select>.custom-select:focus{z-index:1}ngb-datepicker-navigation-select>.custom-select::-ms-value{background-color:transparent!important}\"] }]\n }], function () { return [{ type: NgbDatepickerI18n }, { type: ɵngcc0.Renderer2 }]; }, { select: [{\n type: Output\n }], date: [{\n type: Input\n }], disabled: [{\n type: Input\n }], months: [{\n type: Input\n }], years: [{\n type: Input\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 NgbCalendarHijri extends NgbCalendar {\r\n getDaysPerWeek() { return 7; }\r\n getMonths() { return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; }\r\n getWeeksPerMonth() { return 6; }\r\n getNext(date, period = 'd', number = 1) {\r\n date = new NgbDate(date.year, date.month, date.day);\r\n switch (period) {\r\n case 'y':\r\n date = this._setYear(date, date.year + number);\r\n date.month = 1;\r\n date.day = 1;\r\n return date;\r\n case 'm':\r\n date = this._setMonth(date, date.month + number);\r\n date.day = 1;\r\n return date;\r\n case 'd':\r\n return this._setDay(date, date.day + number);\r\n default:\r\n return date;\r\n }\r\n }\r\n getPrev(date, period = 'd', number = 1) { return this.getNext(date, period, -number); }\r\n getWeekday(date) {\r\n const day = this.toGregorian(date).getDay();\r\n // in JS Date Sun=0, in ISO 8601 Sun=7\r\n return day === 0 ? 7 : day;\r\n }\r\n getWeekNumber(week, firstDayOfWeek) {\r\n // in JS Date Sun=0, in ISO 8601 Sun=7\r\n if (firstDayOfWeek === 7) {\r\n firstDayOfWeek = 0;\r\n }\r\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\r\n const date = week[thursdayIndex];\r\n const jsDate = this.toGregorian(date);\r\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\r\n const time = jsDate.getTime();\r\n const MuhDate = this.toGregorian(new NgbDate(date.year, 1, 1)); // Compare with Muharram 1\r\n return Math.floor(Math.round((time - MuhDate.getTime()) / 86400000) / 7) + 1;\r\n }\r\n getToday() { return this.fromGregorian(new Date()); }\r\n isValid(date) {\r\n return date != null && isNumber(date.year) && isNumber(date.month) && isNumber(date.day) &&\r\n !isNaN(this.toGregorian(date).getTime());\r\n }\r\n _setDay(date, day) {\r\n day = +day;\r\n let mDays = this.getDaysPerMonth(date.month, date.year);\r\n if (day <= 0) {\r\n while (day <= 0) {\r\n date = this._setMonth(date, date.month - 1);\r\n mDays = this.getDaysPerMonth(date.month, date.year);\r\n day += mDays;\r\n }\r\n }\r\n else if (day > mDays) {\r\n while (day > mDays) {\r\n day -= mDays;\r\n date = this._setMonth(date, date.month + 1);\r\n mDays = this.getDaysPerMonth(date.month, date.year);\r\n }\r\n }\r\n date.day = day;\r\n return date;\r\n }\r\n _setMonth(date, month) {\r\n month = +month;\r\n date.year = date.year + Math.floor((month - 1) / 12);\r\n date.month = Math.floor(((month - 1) % 12 + 12) % 12) + 1;\r\n return date;\r\n }\r\n _setYear(date, year) {\r\n date.year = +year;\r\n return date;\r\n }\r\n}\nNgbCalendarHijri.ɵfac = /*@__PURE__*/ function () { let ɵNgbCalendarHijri_BaseFactory; return function NgbCalendarHijri_Factory(t) { return (ɵNgbCalendarHijri_BaseFactory || (ɵNgbCalendarHijri_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarHijri)))(t || NgbCalendarHijri); }; }();\nNgbCalendarHijri.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarHijri, factory: NgbCalendarHijri.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarHijri, [{\n type: Injectable\n }], null, null); })();\n\n/**\r\n * Checks if islamic year is a leap year\r\n */\r\nfunction isIslamicLeapYear(hYear) {\r\n return (14 + 11 * hYear) % 30 < 11;\r\n}\r\n/**\r\n * Checks if gregorian years is a leap year\r\n */\r\nfunction isGregorianLeapYear(gDate) {\r\n const year = gDate.getFullYear();\r\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\r\n}\r\n/**\r\n * Returns the start of Hijri Month.\r\n * `hMonth` is 0 for Muharram, 1 for Safar, etc.\r\n * `hYear` is any Hijri hYear.\r\n */\r\nfunction getIslamicMonthStart(hYear, hMonth) {\r\n return Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30.0);\r\n}\r\n/**\r\n * Returns the start of Hijri year.\r\n * `year` is any Hijri year.\r\n */\r\nfunction getIslamicYearStart(year) {\r\n return (year - 1) * 354 + Math.floor((3 + 11 * year) / 30.0);\r\n}\r\nfunction mod(a, b) {\r\n return a - b * Math.floor(a / b);\r\n}\r\n/**\r\n * The civil calendar is one type of Hijri calendars used in islamic countries.\r\n * Uses a fixed cycle of alternating 29- and 30-day months,\r\n * with a leap day added to the last month of 11 out of every 30 years.\r\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\r\n * All the calculations here are based on the equations from \"Calendrical Calculations\" By Edward M. Reingold, Nachum\r\n * Dershowitz.\r\n */\r\nconst GREGORIAN_EPOCH = 1721425.5;\r\nconst ISLAMIC_EPOCH = 1948439.5;\r\nclass NgbCalendarIslamicCivil extends NgbCalendarHijri {\r\n /**\r\n * Returns the equivalent islamic(civil) date value for a give input Gregorian date.\r\n * `gDate` is a JS Date to be converted to Hijri.\r\n */\r\n fromGregorian(gDate) {\r\n const gYear = gDate.getFullYear(), gMonth = gDate.getMonth(), gDay = gDate.getDate();\r\n let julianDay = GREGORIAN_EPOCH - 1 + 365 * (gYear - 1) + Math.floor((gYear - 1) / 4) +\r\n -Math.floor((gYear - 1) / 100) + Math.floor((gYear - 1) / 400) +\r\n Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear(gDate) ? -1 : -2) + gDay);\r\n julianDay = Math.floor(julianDay) + 0.5;\r\n const days = julianDay - ISLAMIC_EPOCH;\r\n const hYear = Math.floor((30 * days + 10646) / 10631.0);\r\n let hMonth = Math.ceil((days - 29 - getIslamicYearStart(hYear)) / 29.5);\r\n hMonth = Math.min(hMonth, 11);\r\n const hDay = Math.ceil(days - getIslamicMonthStart(hYear, hMonth)) + 1;\r\n return new NgbDate(hYear, hMonth + 1, hDay);\r\n }\r\n /**\r\n * Returns the equivalent JS date value for a give input islamic(civil) date.\r\n * `hDate` is an islamic(civil) date to be converted to Gregorian.\r\n */\r\n toGregorian(hDate) {\r\n const hYear = hDate.year;\r\n const hMonth = hDate.month - 1;\r\n const hDay = hDate.day;\r\n const julianDay = hDay + Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30) + ISLAMIC_EPOCH - 1;\r\n const wjd = Math.floor(julianDay - 0.5) + 0.5, depoch = wjd - GREGORIAN_EPOCH, quadricent = Math.floor(depoch / 146097), dqc = mod(depoch, 146097), cent = Math.floor(dqc / 36524), dcent = mod(dqc, 36524), quad = Math.floor(dcent / 1461), dquad = mod(dcent, 1461), yindex = Math.floor(dquad / 365);\r\n let year = quadricent * 400 + cent * 100 + quad * 4 + yindex;\r\n if (!(cent === 4 || yindex === 4)) {\r\n year++;\r\n }\r\n const gYearStart = GREGORIAN_EPOCH + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) +\r\n Math.floor((year - 1) / 400);\r\n const yearday = wjd - gYearStart;\r\n const tjd = GREGORIAN_EPOCH - 1 + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) +\r\n Math.floor((year - 1) / 400) + Math.floor(739 / 12 + (isGregorianLeapYear(new Date(year, 3, 1)) ? -1 : -2) + 1);\r\n const leapadj = wjd < tjd ? 0 : isGregorianLeapYear(new Date(year, 3, 1)) ? 1 : 2;\r\n const month = Math.floor(((yearday + leapadj) * 12 + 373) / 367);\r\n const tjd2 = GREGORIAN_EPOCH - 1 + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) +\r\n Math.floor((year - 1) / 400) +\r\n Math.floor((367 * month - 362) / 12 + (month <= 2 ? 0 : isGregorianLeapYear(new Date(year, month - 1, 1)) ? -1 : -2) +\r\n 1);\r\n const day = wjd - tjd2 + 1;\r\n return new Date(year, month - 1, day);\r\n }\r\n /**\r\n * Returns the number of days in a specific Hijri month.\r\n * `month` is 1 for Muharram, 2 for Safar, etc.\r\n * `year` is any Hijri year.\r\n */\r\n getDaysPerMonth(month, year) {\r\n year = year + Math.floor(month / 13);\r\n month = ((month - 1) % 12) + 1;\r\n let length = 29 + month % 2;\r\n if (month === 12 && isIslamicLeapYear(year)) {\r\n length++;\r\n }\r\n return length;\r\n }\r\n}\nNgbCalendarIslamicCivil.ɵfac = /*@__PURE__*/ function () { let ɵNgbCalendarIslamicCivil_BaseFactory; return function NgbCalendarIslamicCivil_Factory(t) { return (ɵNgbCalendarIslamicCivil_BaseFactory || (ɵNgbCalendarIslamicCivil_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarIslamicCivil)))(t || NgbCalendarIslamicCivil); }; }();\nNgbCalendarIslamicCivil.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarIslamicCivil, factory: NgbCalendarIslamicCivil.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarIslamicCivil, [{\n type: Injectable\n }], null, null); })();\n\n/**\r\n * Umalqura calendar is one type of Hijri calendars used in islamic countries.\r\n * This Calendar is used by Saudi Arabia for administrative purpose.\r\n * Unlike tabular calendars, the algorithm involves astronomical calculation, but it's still deterministic.\r\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\r\n */\r\nconst GREGORIAN_FIRST_DATE = new Date(1882, 10, 12);\r\nconst GREGORIAN_LAST_DATE = new Date(2174, 10, 25);\r\nconst HIJRI_BEGIN = 1300;\r\nconst HIJRI_END = 1600;\r\nconst ONE_DAY = 1000 * 60 * 60 * 24;\r\nconst MONTH_LENGTH = [\r\n // 1300-1304\r\n '101010101010', '110101010100', '111011001001', '011011010100', '011011101010',\r\n // 1305-1309\r\n '001101101100', '101010101101', '010101010101', '011010101001', '011110010010',\r\n // 1310-1314\r\n '101110101001', '010111010100', '101011011010', '010101011100', '110100101101',\r\n // 1315-1319\r\n '011010010101', '011101001010', '101101010100', '101101101010', '010110101101',\r\n // 1320-1324\r\n '010010101110', '101001001111', '010100010111', '011010001011', '011010100101',\r\n // 1325-1329\r\n '101011010101', '001011010110', '100101011011', '010010011101', '101001001101',\r\n // 1330-1334\r\n '110100100110', '110110010101', '010110101100', '100110110110', '001010111010',\r\n // 1335-1339\r\n '101001011011', '010100101011', '101010010101', '011011001010', '101011101001',\r\n // 1340-1344\r\n '001011110100', '100101110110', '001010110110', '100101010110', '101011001010',\r\n // 1345-1349\r\n '101110100100', '101111010010', '010111011001', '001011011100', '100101101101',\r\n // 1350-1354\r\n '010101001101', '101010100101', '101101010010', '101110100101', '010110110100',\r\n // 1355-1359\r\n '100110110110', '010101010111', '001010010111', '010101001011', '011010100011',\r\n // 1360-1364\r\n '011101010010', '101101100101', '010101101010', '101010101011', '010100101011',\r\n // 1365-1369\r\n '110010010101', '110101001010', '110110100101', '010111001010', '101011010110',\r\n // 1370-1374\r\n '100101010111', '010010101011', '100101001011', '101010100101', '101101010010',\r\n // 1375-1379\r\n '101101101010', '010101110101', '001001110110', '100010110111', '010001011011',\r\n // 1380-1384\r\n '010101010101', '010110101001', '010110110100', '100111011010', '010011011101',\r\n // 1385-1389\r\n '001001101110', '100100110110', '101010101010', '110101010100', '110110110010',\r\n // 1390-1394\r\n '010111010101', '001011011010', '100101011011', '010010101011', '101001010101',\r\n // 1395-1399\r\n '101101001001', '101101100100', '101101110001', '010110110100', '101010110101',\r\n // 1400-1404\r\n '101001010101', '110100100101', '111010010010', '111011001001', '011011010100',\r\n // 1405-1409\r\n '101011101001', '100101101011', '010010101011', '101010010011', '110101001001',\r\n // 1410-1414\r\n '110110100100', '110110110010', '101010111001', '010010111010', '101001011011',\r\n // 1415-1419\r\n '010100101011', '101010010101', '101100101010', '101101010101', '010101011100',\r\n // 1420-1424\r\n '010010111101', '001000111101', '100100011101', '101010010101', '101101001010',\r\n // 1425-1429\r\n '101101011010', '010101101101', '001010110110', '100100111011', '010010011011',\r\n // 1430-1434\r\n '011001010101', '011010101001', '011101010100', '101101101010', '010101101100',\r\n // 1435-1439\r\n '101010101101', '010101010101', '101100101001', '101110010010', '101110101001',\r\n // 1440-1444\r\n '010111010100', '101011011010', '010101011010', '101010101011', '010110010101',\r\n // 1445-1449\r\n '011101001001', '011101100100', '101110101010', '010110110101', '001010110110',\r\n // 1450-1454\r\n '101001010110', '111001001101', '101100100101', '101101010010', '101101101010',\r\n // 1455-1459\r\n '010110101101', '001010101110', '100100101111', '010010010111', '011001001011',\r\n // 1460-1464\r\n '011010100101', '011010101100', '101011010110', '010101011101', '010010011101',\r\n // 1465-1469\r\n '101001001101', '110100010110', '110110010101', '010110101010', '010110110101',\r\n // 1470-1474\r\n '001011011010', '100101011011', '010010101101', '010110010101', '011011001010',\r\n // 1475-1479\r\n '011011100100', '101011101010', '010011110101', '001010110110', '100101010110',\r\n // 1480-1484\r\n '101010101010', '101101010100', '101111010010', '010111011001', '001011101010',\r\n // 1485-1489\r\n '100101101101', '010010101101', '101010010101', '101101001010', '101110100101',\r\n // 1490-1494\r\n '010110110010', '100110110101', '010011010110', '101010010111', '010101000111',\r\n // 1495-1499\r\n '011010010011', '011101001001', '101101010101', '010101101010', '101001101011',\r\n // 1500-1504\r\n '010100101011', '101010001011', '110101000110', '110110100011', '010111001010',\r\n // 1505-1509\r\n '101011010110', '010011011011', '001001101011', '100101001011', '101010100101',\r\n // 1510-1514\r\n '101101010010', '101101101001', '010101110101', '000101110110', '100010110111',\r\n // 1515-1519\r\n '001001011011', '010100101011', '010101100101', '010110110100', '100111011010',\r\n // 1520-1524\r\n '010011101101', '000101101101', '100010110110', '101010100110', '110101010010',\r\n // 1525-1529\r\n '110110101001', '010111010100', '101011011010', '100101011011', '010010101011',\r\n // 1530-1534\r\n '011001010011', '011100101001', '011101100010', '101110101001', '010110110010',\r\n // 1535-1539\r\n '101010110101', '010101010101', '101100100101', '110110010010', '111011001001',\r\n // 1540-1544\r\n '011011010010', '101011101001', '010101101011', '010010101011', '101001010101',\r\n // 1545-1549\r\n '110100101001', '110101010100', '110110101010', '100110110101', '010010111010',\r\n // 1550-1554\r\n '101000111011', '010010011011', '101001001101', '101010101010', '101011010101',\r\n // 1555-1559\r\n '001011011010', '100101011101', '010001011110', '101000101110', '110010011010',\r\n // 1560-1564\r\n '110101010101', '011010110010', '011010111001', '010010111010', '101001011101',\r\n // 1565-1569\r\n '010100101101', '101010010101', '101101010010', '101110101000', '101110110100',\r\n // 1570-1574\r\n '010110111001', '001011011010', '100101011010', '101101001010', '110110100100',\r\n // 1575-1579\r\n '111011010001', '011011101000', '101101101010', '010101101101', '010100110101',\r\n // 1580-1584\r\n '011010010101', '110101001010', '110110101000', '110111010100', '011011011010',\r\n // 1585-1589\r\n '010101011011', '001010011101', '011000101011', '101100010101', '101101001010',\r\n // 1590-1594\r\n '101110010101', '010110101010', '101010101110', '100100101110', '110010001111',\r\n // 1595-1599\r\n '010100100111', '011010010101', '011010101010', '101011010110', '010101011101',\r\n // 1600\r\n '001010011101'\r\n];\r\nfunction getDaysDiff(date1, date2) {\r\n // Ignores the time part in date1 and date2:\r\n const time1 = Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate());\r\n const time2 = Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate());\r\n const diff = Math.abs(time1 - time2);\r\n return Math.round(diff / ONE_DAY);\r\n}\r\nclass NgbCalendarIslamicUmalqura extends NgbCalendarIslamicCivil {\r\n /**\r\n * Returns the equivalent islamic(Umalqura) date value for a give input Gregorian date.\r\n * `gdate` is s JS Date to be converted to Hijri.\r\n */\r\n fromGregorian(gDate) {\r\n let hDay = 1, hMonth = 0, hYear = 1300;\r\n let daysDiff = getDaysDiff(gDate, GREGORIAN_FIRST_DATE);\r\n if (gDate.getTime() - GREGORIAN_FIRST_DATE.getTime() >= 0 && gDate.getTime() - GREGORIAN_LAST_DATE.getTime() <= 0) {\r\n let year = 1300;\r\n for (let i = 0; i < MONTH_LENGTH.length; i++, year++) {\r\n for (let j = 0; j < 12; j++) {\r\n let numOfDays = +MONTH_LENGTH[i][j] + 29;\r\n if (daysDiff <= numOfDays) {\r\n hDay = daysDiff + 1;\r\n if (hDay > numOfDays) {\r\n hDay = 1;\r\n j++;\r\n }\r\n if (j > 11) {\r\n j = 0;\r\n year++;\r\n }\r\n hMonth = j;\r\n hYear = year;\r\n return new NgbDate(hYear, hMonth + 1, hDay);\r\n }\r\n daysDiff = daysDiff - numOfDays;\r\n }\r\n }\r\n return null;\r\n }\r\n else {\r\n return super.fromGregorian(gDate);\r\n }\r\n }\r\n /**\r\n * Converts the current Hijri date to Gregorian.\r\n */\r\n toGregorian(hDate) {\r\n const hYear = hDate.year;\r\n const hMonth = hDate.month - 1;\r\n const hDay = hDate.day;\r\n let gDate = new Date(GREGORIAN_FIRST_DATE);\r\n let dayDiff = hDay - 1;\r\n if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) {\r\n for (let y = 0; y < hYear - HIJRI_BEGIN; y++) {\r\n for (let m = 0; m < 12; m++) {\r\n dayDiff += +MONTH_LENGTH[y][m] + 29;\r\n }\r\n }\r\n for (let m = 0; m < hMonth; m++) {\r\n dayDiff += +MONTH_LENGTH[hYear - HIJRI_BEGIN][m] + 29;\r\n }\r\n gDate.setDate(GREGORIAN_FIRST_DATE.getDate() + dayDiff);\r\n }\r\n else {\r\n gDate = super.toGregorian(hDate);\r\n }\r\n return gDate;\r\n }\r\n /**\r\n * Returns the number of days in a specific Hijri hMonth.\r\n * `hMonth` is 1 for Muharram, 2 for Safar, etc.\r\n * `hYear` is any Hijri hYear.\r\n */\r\n getDaysPerMonth(hMonth, hYear) {\r\n if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) {\r\n const pos = hYear - HIJRI_BEGIN;\r\n return +MONTH_LENGTH[pos][hMonth - 1] + 29;\r\n }\r\n return super.getDaysPerMonth(hMonth, hYear);\r\n }\r\n}\nNgbCalendarIslamicUmalqura.ɵfac = /*@__PURE__*/ function () { let ɵNgbCalendarIslamicUmalqura_BaseFactory; return function NgbCalendarIslamicUmalqura_Factory(t) { return (ɵNgbCalendarIslamicUmalqura_BaseFactory || (ɵNgbCalendarIslamicUmalqura_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarIslamicUmalqura)))(t || NgbCalendarIslamicUmalqura); }; }();\nNgbCalendarIslamicUmalqura.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarIslamicUmalqura, factory: NgbCalendarIslamicUmalqura.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarIslamicUmalqura, [{\n type: Injectable\n }], null, null); })();\n\n/**\r\n * Returns the equivalent JS date value for a give input Jalali date.\r\n * `jalaliDate` is an Jalali date to be converted to Gregorian.\r\n */\r\nfunction toGregorian(jalaliDate) {\r\n let jdn = jalaliToJulian(jalaliDate.year, jalaliDate.month, jalaliDate.day);\r\n let date = julianToGregorian(jdn);\r\n date.setHours(6, 30, 3, 200);\r\n return date;\r\n}\r\n/**\r\n * Returns the equivalent jalali date value for a give input Gregorian date.\r\n * `gdate` is a JS Date to be converted to jalali.\r\n * utc to local\r\n */\r\nfunction fromGregorian(gdate) {\r\n let g2d = gregorianToJulian(gdate.getFullYear(), gdate.getMonth() + 1, gdate.getDate());\r\n return julianToJalali(g2d);\r\n}\r\nfunction setJalaliYear(date, yearValue) {\r\n date.year = +yearValue;\r\n return date;\r\n}\r\nfunction setJalaliMonth(date, month) {\r\n month = +month;\r\n date.year = date.year + Math.floor((month - 1) / 12);\r\n date.month = Math.floor(((month - 1) % 12 + 12) % 12) + 1;\r\n return date;\r\n}\r\nfunction setJalaliDay(date, day) {\r\n let mDays = getDaysPerMonth(date.month, date.year);\r\n if (day <= 0) {\r\n while (day <= 0) {\r\n date = setJalaliMonth(date, date.month - 1);\r\n mDays = getDaysPerMonth(date.month, date.year);\r\n day += mDays;\r\n }\r\n }\r\n else if (day > mDays) {\r\n while (day > mDays) {\r\n day -= mDays;\r\n date = setJalaliMonth(date, date.month + 1);\r\n mDays = getDaysPerMonth(date.month, date.year);\r\n }\r\n }\r\n date.day = day;\r\n return date;\r\n}\r\nfunction mod$1(a, b) {\r\n return a - b * Math.floor(a / b);\r\n}\r\nfunction div(a, b) {\r\n return Math.trunc(a / b);\r\n}\r\n/*\r\n This function determines if the Jalali (Persian) year is\r\n leap (366-day long) or is the common year (365 days), and\r\n finds the day in March (Gregorian calendar) of the first\r\n day of the Jalali year (jalaliYear).\r\n @param jalaliYear Jalali calendar year (-61 to 3177)\r\n @return\r\n leap: number of years since the last leap year (0 to 4)\r\n gYear: Gregorian year of the beginning of Jalali year\r\n march: the March day of Farvardin the 1st (1st day of jalaliYear)\r\n @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm\r\n @see: http://www.fourmilab.ch/documents/calendar/\r\n */\r\nfunction jalCal(jalaliYear) {\r\n // Jalali years starting the 33-year rule.\r\n let breaks = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178];\r\n const breaksLength = breaks.length;\r\n const gYear = jalaliYear + 621;\r\n let leapJ = -14;\r\n let jp = breaks[0];\r\n if (jalaliYear < jp || jalaliYear >= breaks[breaksLength - 1]) {\r\n throw new Error('Invalid Jalali year ' + jalaliYear);\r\n }\r\n // Find the limiting years for the Jalali year jalaliYear.\r\n let jump;\r\n for (let i = 1; i < breaksLength; i += 1) {\r\n const jm = breaks[i];\r\n jump = jm - jp;\r\n if (jalaliYear < jm) {\r\n break;\r\n }\r\n leapJ = leapJ + div(jump, 33) * 8 + div(mod$1(jump, 33), 4);\r\n jp = jm;\r\n }\r\n let n = jalaliYear - jp;\r\n // Find the number of leap years from AD 621 to the beginning\r\n // of the current Jalali year in the Persian calendar.\r\n leapJ = leapJ + div(n, 33) * 8 + div(mod$1(n, 33) + 3, 4);\r\n if (mod$1(jump, 33) === 4 && jump - n === 4) {\r\n leapJ += 1;\r\n }\r\n // And the same in the Gregorian calendar (until the year gYear).\r\n const leapG = div(gYear, 4) - div((div(gYear, 100) + 1) * 3, 4) - 150;\r\n // Determine the Gregorian date of Farvardin the 1st.\r\n const march = 20 + leapJ - leapG;\r\n // Find how many years have passed since the last leap year.\r\n if (jump - n < 6) {\r\n n = n - jump + div(jump + 4, 33) * 33;\r\n }\r\n let leap = mod$1(mod$1(n + 1, 33) - 1, 4);\r\n if (leap === -1) {\r\n leap = 4;\r\n }\r\n return { leap: leap, gy: gYear, march: march };\r\n}\r\n/*\r\n Calculates Gregorian and Julian calendar dates from the Julian Day number\r\n (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both\r\n calendars) to some millions years ahead of the present.\r\n @param jdn Julian Day number\r\n @return\r\n gYear: Calendar year (years BC numbered 0, -1, -2, ...)\r\n gMonth: Calendar month (1 to 12)\r\n gDay: Calendar day of the month M (1 to 28/29/30/31)\r\n */\r\nfunction julianToGregorian(julianDayNumber) {\r\n let j = 4 * julianDayNumber + 139361631;\r\n j = j + div(div(4 * julianDayNumber + 183187720, 146097) * 3, 4) * 4 - 3908;\r\n const i = div(mod$1(j, 1461), 4) * 5 + 308;\r\n const gDay = div(mod$1(i, 153), 5) + 1;\r\n const gMonth = mod$1(div(i, 153), 12) + 1;\r\n const gYear = div(j, 1461) - 100100 + div(8 - gMonth, 6);\r\n return new Date(gYear, gMonth - 1, gDay);\r\n}\r\n/*\r\n Converts a date of the Jalali calendar to the Julian Day number.\r\n @param jy Jalali year (1 to 3100)\r\n @param jm Jalali month (1 to 12)\r\n @param jd Jalali day (1 to 29/31)\r\n @return Julian Day number\r\n */\r\nfunction gregorianToJulian(gy, gm, gd) {\r\n let d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4) + div(153 * mod$1(gm + 9, 12) + 2, 5) + gd - 34840408;\r\n d = d - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752;\r\n return d;\r\n}\r\n/*\r\n Converts the Julian Day number to a date in the Jalali calendar.\r\n @param julianDayNumber Julian Day number\r\n @return\r\n jalaliYear: Jalali year (1 to 3100)\r\n jalaliMonth: Jalali month (1 to 12)\r\n jalaliDay: Jalali day (1 to 29/31)\r\n */\r\nfunction julianToJalali(julianDayNumber) {\r\n let gy = julianToGregorian(julianDayNumber).getFullYear() // Calculate Gregorian year (gy).\r\n , jalaliYear = gy - 621, r = jalCal(jalaliYear), gregorianDay = gregorianToJulian(gy, 3, r.march), jalaliDay, jalaliMonth, numberOfDays;\r\n // Find number of days that passed since 1 Farvardin.\r\n numberOfDays = julianDayNumber - gregorianDay;\r\n if (numberOfDays >= 0) {\r\n if (numberOfDays <= 185) {\r\n // The first 6 months.\r\n jalaliMonth = 1 + div(numberOfDays, 31);\r\n jalaliDay = mod$1(numberOfDays, 31) + 1;\r\n return new NgbDate(jalaliYear, jalaliMonth, jalaliDay);\r\n }\r\n else {\r\n // The remaining months.\r\n numberOfDays -= 186;\r\n }\r\n }\r\n else {\r\n // Previous Jalali year.\r\n jalaliYear -= 1;\r\n numberOfDays += 179;\r\n if (r.leap === 1) {\r\n numberOfDays += 1;\r\n }\r\n }\r\n jalaliMonth = 7 + div(numberOfDays, 30);\r\n jalaliDay = mod$1(numberOfDays, 30) + 1;\r\n return new NgbDate(jalaliYear, jalaliMonth, jalaliDay);\r\n}\r\n/*\r\n Converts a date of the Jalali calendar to the Julian Day number.\r\n @param jYear Jalali year (1 to 3100)\r\n @param jMonth Jalali month (1 to 12)\r\n @param jDay Jalali day (1 to 29/31)\r\n @return Julian Day number\r\n */\r\nfunction jalaliToJulian(jYear, jMonth, jDay) {\r\n let r = jalCal(jYear);\r\n return gregorianToJulian(r.gy, 3, r.march) + (jMonth - 1) * 31 - div(jMonth, 7) * (jMonth - 7) + jDay - 1;\r\n}\r\n/**\r\n * Returns the number of days in a specific jalali month.\r\n */\r\nfunction getDaysPerMonth(month, year) {\r\n if (month <= 6) {\r\n return 31;\r\n }\r\n if (month <= 11) {\r\n return 30;\r\n }\r\n if (jalCal(year).leap === 0) {\r\n return 30;\r\n }\r\n return 29;\r\n}\n\nclass NgbCalendarPersian extends NgbCalendar {\r\n getDaysPerWeek() { return 7; }\r\n getMonths() { return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; }\r\n getWeeksPerMonth() { return 6; }\r\n getNext(date, period = 'd', number = 1) {\r\n date = new NgbDate(date.year, date.month, date.day);\r\n switch (period) {\r\n case 'y':\r\n date = setJalaliYear(date, date.year + number);\r\n date.month = 1;\r\n date.day = 1;\r\n return date;\r\n case 'm':\r\n date = setJalaliMonth(date, date.month + number);\r\n date.day = 1;\r\n return date;\r\n case 'd':\r\n return setJalaliDay(date, date.day + number);\r\n default:\r\n return date;\r\n }\r\n }\r\n getPrev(date, period = 'd', number = 1) { return this.getNext(date, period, -number); }\r\n getWeekday(date) {\r\n const day = toGregorian(date).getDay();\r\n // in JS Date Sun=0, in ISO 8601 Sun=7\r\n return day === 0 ? 7 : day;\r\n }\r\n getWeekNumber(week, firstDayOfWeek) {\r\n // in JS Date Sun=0, in ISO 8601 Sun=7\r\n if (firstDayOfWeek === 7) {\r\n firstDayOfWeek = 0;\r\n }\r\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\r\n const date = week[thursdayIndex];\r\n const jsDate = toGregorian(date);\r\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\r\n const time = jsDate.getTime();\r\n const startDate = toGregorian(new NgbDate(date.year, 1, 1));\r\n return Math.floor(Math.round((time - startDate.getTime()) / 86400000) / 7) + 1;\r\n }\r\n getToday() { return fromGregorian(new Date()); }\r\n isValid(date) {\r\n return date != null && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) &&\r\n !isNaN(toGregorian(date).getTime());\r\n }\r\n}\nNgbCalendarPersian.ɵfac = /*@__PURE__*/ function () { let ɵNgbCalendarPersian_BaseFactory; return function NgbCalendarPersian_Factory(t) { return (ɵNgbCalendarPersian_BaseFactory || (ɵNgbCalendarPersian_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarPersian)))(t || NgbCalendarPersian); }; }();\nNgbCalendarPersian.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarPersian, factory: NgbCalendarPersian.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarPersian, [{\n type: Injectable\n }], null, null); })();\n\nconst PARTS_PER_HOUR = 1080;\r\nconst PARTS_PER_DAY = 24 * PARTS_PER_HOUR;\r\nconst PARTS_FRACTIONAL_MONTH = 12 * PARTS_PER_HOUR + 793;\r\nconst PARTS_PER_MONTH = 29 * PARTS_PER_DAY + PARTS_FRACTIONAL_MONTH;\r\nconst BAHARAD = 11 * PARTS_PER_HOUR + 204;\r\nconst HEBREW_DAY_ON_JAN_1_1970 = 2092591;\r\nconst GREGORIAN_EPOCH$1 = 1721425.5;\r\nfunction isGregorianLeapYear$1(year) {\r\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\r\n}\r\nfunction numberOfFirstDayInYear(year) {\r\n let monthsBeforeYear = Math.floor((235 * year - 234) / 19);\r\n let fractionalMonthsBeforeYear = monthsBeforeYear * PARTS_FRACTIONAL_MONTH + BAHARAD;\r\n let dayNumber = monthsBeforeYear * 29 + Math.floor(fractionalMonthsBeforeYear / PARTS_PER_DAY);\r\n let timeOfDay = fractionalMonthsBeforeYear % PARTS_PER_DAY;\r\n let dayOfWeek = dayNumber % 7; // 0 == Monday\r\n if (dayOfWeek === 2 || dayOfWeek === 4 || dayOfWeek === 6) {\r\n dayNumber++;\r\n dayOfWeek = dayNumber % 7;\r\n }\r\n if (dayOfWeek === 1 && timeOfDay > 15 * PARTS_PER_HOUR + 204 && !isHebrewLeapYear(year)) {\r\n dayNumber += 2;\r\n }\r\n else if (dayOfWeek === 0 && timeOfDay > 21 * PARTS_PER_HOUR + 589 && isHebrewLeapYear(year - 1)) {\r\n dayNumber++;\r\n }\r\n return dayNumber;\r\n}\r\nfunction getDaysInGregorianMonth(month, year) {\r\n let days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n if (isGregorianLeapYear$1(year)) {\r\n days[1]++;\r\n }\r\n return days[month - 1];\r\n}\r\nfunction getHebrewMonths(year) {\r\n return isHebrewLeapYear(year) ? 13 : 12;\r\n}\r\n/**\r\n * Returns the number of days in a specific Hebrew year.\r\n * `year` is any Hebrew year.\r\n */\r\nfunction getDaysInHebrewYear(year) {\r\n return numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year);\r\n}\r\nfunction isHebrewLeapYear(year) {\r\n if (year != null) {\r\n let b = (year * 12 + 17) % 19;\r\n return b >= ((b < 0) ? -7 : 12);\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns the number of days in a specific Hebrew month.\r\n * `month` is 1 for Nisan, 2 for Iyar etc. Note: Hebrew leap year contains 13 months.\r\n * `year` is any Hebrew year.\r\n */\r\nfunction getDaysInHebrewMonth(month, year) {\r\n let yearLength = numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year);\r\n let yearType = (yearLength <= 380 ? yearLength : (yearLength - 30)) - 353;\r\n let leapYear = isHebrewLeapYear(year);\r\n let daysInMonth = leapYear ? [30, 29, 29, 29, 30, 30, 29, 30, 29, 30, 29, 30, 29] :\r\n [30, 29, 29, 29, 30, 29, 30, 29, 30, 29, 30, 29];\r\n if (yearType > 0) {\r\n daysInMonth[2]++; // Kislev gets an extra day in normal or complete years.\r\n }\r\n if (yearType > 1) {\r\n daysInMonth[1]++; // Heshvan gets an extra day in complete years only.\r\n }\r\n return daysInMonth[month - 1];\r\n}\r\nfunction getDayNumberInHebrewYear(date) {\r\n let numberOfDay = 0;\r\n for (let i = 1; i < date.month; i++) {\r\n numberOfDay += getDaysInHebrewMonth(i, date.year);\r\n }\r\n return numberOfDay + date.day;\r\n}\r\nfunction setHebrewMonth(date, val) {\r\n let after = val >= 0;\r\n if (!after) {\r\n val = -val;\r\n }\r\n while (val > 0) {\r\n if (after) {\r\n if (val > getHebrewMonths(date.year) - date.month) {\r\n val -= getHebrewMonths(date.year) - date.month + 1;\r\n date.year++;\r\n date.month = 1;\r\n }\r\n else {\r\n date.month += val;\r\n val = 0;\r\n }\r\n }\r\n else {\r\n if (val >= date.month) {\r\n date.year--;\r\n val -= date.month;\r\n date.month = getHebrewMonths(date.year);\r\n }\r\n else {\r\n date.month -= val;\r\n val = 0;\r\n }\r\n }\r\n }\r\n return date;\r\n}\r\nfunction setHebrewDay(date, val) {\r\n let after = val >= 0;\r\n if (!after) {\r\n val = -val;\r\n }\r\n while (val > 0) {\r\n if (after) {\r\n if (val > getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date)) {\r\n val -= getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date) + 1;\r\n date.year++;\r\n date.month = 1;\r\n date.day = 1;\r\n }\r\n else if (val > getDaysInHebrewMonth(date.month, date.year) - date.day) {\r\n val -= getDaysInHebrewMonth(date.month, date.year) - date.day + 1;\r\n date.month++;\r\n date.day = 1;\r\n }\r\n else {\r\n date.day += val;\r\n val = 0;\r\n }\r\n }\r\n else {\r\n if (val >= date.day) {\r\n val -= date.day;\r\n date.month--;\r\n if (date.month === 0) {\r\n date.year--;\r\n date.month = getHebrewMonths(date.year);\r\n }\r\n date.day = getDaysInHebrewMonth(date.month, date.year);\r\n }\r\n else {\r\n date.day -= val;\r\n val = 0;\r\n }\r\n }\r\n }\r\n return date;\r\n}\r\n/**\r\n * Returns the equivalent Hebrew date value for a give input Gregorian date.\r\n * `gdate` is a JS Date to be converted to Hebrew date.\r\n */\r\nfunction fromGregorian$1(gdate) {\r\n const date = new Date(gdate);\r\n const gYear = date.getFullYear(), gMonth = date.getMonth(), gDay = date.getDate();\r\n let julianDay = GREGORIAN_EPOCH$1 - 1 + 365 * (gYear - 1) + Math.floor((gYear - 1) / 4) -\r\n Math.floor((gYear - 1) / 100) + Math.floor((gYear - 1) / 400) +\r\n Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear$1(gYear) ? -1 : -2) + gDay);\r\n julianDay = Math.floor(julianDay + 0.5);\r\n let daysSinceHebEpoch = julianDay - 347997;\r\n let monthsSinceHebEpoch = Math.floor(daysSinceHebEpoch * PARTS_PER_DAY / PARTS_PER_MONTH);\r\n let hYear = Math.floor((monthsSinceHebEpoch * 19 + 234) / 235) + 1;\r\n let firstDayOfThisYear = numberOfFirstDayInYear(hYear);\r\n let dayOfYear = daysSinceHebEpoch - firstDayOfThisYear;\r\n while (dayOfYear < 1) {\r\n hYear--;\r\n firstDayOfThisYear = numberOfFirstDayInYear(hYear);\r\n dayOfYear = daysSinceHebEpoch - firstDayOfThisYear;\r\n }\r\n let hMonth = 1;\r\n let hDay = dayOfYear;\r\n while (hDay > getDaysInHebrewMonth(hMonth, hYear)) {\r\n hDay -= getDaysInHebrewMonth(hMonth, hYear);\r\n hMonth++;\r\n }\r\n return new NgbDate(hYear, hMonth, hDay);\r\n}\r\n/**\r\n * Returns the equivalent JS date value for a given Hebrew date.\r\n * `hebrewDate` is an Hebrew date to be converted to Gregorian.\r\n */\r\nfunction toGregorian$1(hebrewDate) {\r\n const hYear = hebrewDate.year;\r\n const hMonth = hebrewDate.month;\r\n const hDay = hebrewDate.day;\r\n let days = numberOfFirstDayInYear(hYear);\r\n for (let i = 1; i < hMonth; i++) {\r\n days += getDaysInHebrewMonth(i, hYear);\r\n }\r\n days += hDay;\r\n let diffDays = days - HEBREW_DAY_ON_JAN_1_1970;\r\n let after = diffDays >= 0;\r\n if (!after) {\r\n diffDays = -diffDays;\r\n }\r\n let gYear = 1970;\r\n let gMonth = 1;\r\n let gDay = 1;\r\n while (diffDays > 0) {\r\n if (after) {\r\n if (diffDays >= (isGregorianLeapYear$1(gYear) ? 366 : 365)) {\r\n diffDays -= isGregorianLeapYear$1(gYear) ? 366 : 365;\r\n gYear++;\r\n }\r\n else if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) {\r\n diffDays -= getDaysInGregorianMonth(gMonth, gYear);\r\n gMonth++;\r\n }\r\n else {\r\n gDay += diffDays;\r\n diffDays = 0;\r\n }\r\n }\r\n else {\r\n if (diffDays >= (isGregorianLeapYear$1(gYear - 1) ? 366 : 365)) {\r\n diffDays -= isGregorianLeapYear$1(gYear - 1) ? 366 : 365;\r\n gYear--;\r\n }\r\n else {\r\n if (gMonth > 1) {\r\n gMonth--;\r\n }\r\n else {\r\n gMonth = 12;\r\n gYear--;\r\n }\r\n if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) {\r\n diffDays -= getDaysInGregorianMonth(gMonth, gYear);\r\n }\r\n else {\r\n gDay = getDaysInGregorianMonth(gMonth, gYear) - diffDays + 1;\r\n diffDays = 0;\r\n }\r\n }\r\n }\r\n }\r\n return new Date(gYear, gMonth - 1, gDay);\r\n}\r\nfunction hebrewNumerals(numerals) {\r\n if (!numerals) {\r\n return '';\r\n }\r\n const hArray0_9 = ['', '\\u05d0', '\\u05d1', '\\u05d2', '\\u05d3', '\\u05d4', '\\u05d5', '\\u05d6', '\\u05d7', '\\u05d8'];\r\n const hArray10_19 = [\r\n '\\u05d9', '\\u05d9\\u05d0', '\\u05d9\\u05d1', '\\u05d9\\u05d2', '\\u05d9\\u05d3', '\\u05d8\\u05d5', '\\u05d8\\u05d6',\r\n '\\u05d9\\u05d6', '\\u05d9\\u05d7', '\\u05d9\\u05d8'\r\n ];\r\n const hArray20_90 = ['', '', '\\u05db', '\\u05dc', '\\u05de', '\\u05e0', '\\u05e1', '\\u05e2', '\\u05e4', '\\u05e6'];\r\n const hArray100_900 = [\r\n '', '\\u05e7', '\\u05e8', '\\u05e9', '\\u05ea', '\\u05ea\\u05e7', '\\u05ea\\u05e8', '\\u05ea\\u05e9', '\\u05ea\\u05ea',\r\n '\\u05ea\\u05ea\\u05e7'\r\n ];\r\n const hArray1000_9000 = [\r\n '', '\\u05d0', '\\u05d1', '\\u05d1\\u05d0', '\\u05d1\\u05d1', '\\u05d4', '\\u05d4\\u05d0', '\\u05d4\\u05d1',\r\n '\\u05d4\\u05d1\\u05d0', '\\u05d4\\u05d1\\u05d1'\r\n ];\r\n const geresh = '\\u05f3', gershaim = '\\u05f4';\r\n let mem = 0;\r\n let result = [];\r\n let step = 0;\r\n while (numerals > 0) {\r\n let m = numerals % 10;\r\n if (step === 0) {\r\n mem = m;\r\n }\r\n else if (step === 1) {\r\n if (m !== 1) {\r\n result.unshift(hArray20_90[m], hArray0_9[mem]);\r\n }\r\n else {\r\n result.unshift(hArray10_19[mem]);\r\n }\r\n }\r\n else if (step === 2) {\r\n result.unshift(hArray100_900[m]);\r\n }\r\n else {\r\n if (m !== 5) {\r\n result.unshift(hArray1000_9000[m], geresh, ' ');\r\n }\r\n break;\r\n }\r\n numerals = Math.floor(numerals / 10);\r\n if (step === 0 && numerals === 0) {\r\n result.unshift(hArray0_9[m]);\r\n }\r\n step++;\r\n }\r\n result = result.join('').split('');\r\n if (result.length === 1) {\r\n result.push(geresh);\r\n }\r\n else if (result.length > 1) {\r\n result.splice(result.length - 1, 0, gershaim);\r\n }\r\n return result.join('');\r\n}\n\n/**\r\n * @since 3.2.0\r\n */\r\nclass NgbCalendarHebrew extends NgbCalendar {\r\n getDaysPerWeek() { return 7; }\r\n getMonths(year) {\r\n if (year && isHebrewLeapYear(year)) {\r\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];\r\n }\r\n else {\r\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\r\n }\r\n }\r\n getWeeksPerMonth() { return 6; }\r\n isValid(date) {\r\n if (date != null) {\r\n let b = isNumber(date.year) && isNumber(date.month) && isNumber(date.day);\r\n b = b && date.month > 0 && date.month <= (isHebrewLeapYear(date.year) ? 13 : 12);\r\n b = b && date.day > 0 && date.day <= getDaysInHebrewMonth(date.month, date.year);\r\n return b && !isNaN(toGregorian$1(date).getTime());\r\n }\r\n return false;\r\n }\r\n getNext(date, period = 'd', number = 1) {\r\n date = new NgbDate(date.year, date.month, date.day);\r\n switch (period) {\r\n case 'y':\r\n date.year += number;\r\n date.month = 1;\r\n date.day = 1;\r\n return date;\r\n case 'm':\r\n date = setHebrewMonth(date, number);\r\n date.day = 1;\r\n return date;\r\n case 'd':\r\n return setHebrewDay(date, number);\r\n default:\r\n return date;\r\n }\r\n }\r\n getPrev(date, period = 'd', number = 1) { return this.getNext(date, period, -number); }\r\n getWeekday(date) {\r\n const day = toGregorian$1(date).getDay();\r\n // in JS Date Sun=0, in ISO 8601 Sun=7\r\n return day === 0 ? 7 : day;\r\n }\r\n getWeekNumber(week, firstDayOfWeek) {\r\n const date = week[week.length - 1];\r\n return Math.ceil(getDayNumberInHebrewYear(date) / 7);\r\n }\r\n getToday() { return fromGregorian$1(new Date()); }\r\n /**\r\n * @since 3.4.0\r\n */\r\n toGregorian(date) { return fromJSDate(toGregorian$1(date)); }\r\n /**\r\n * @since 3.4.0\r\n */\r\n fromGregorian(date) { return fromGregorian$1(toJSDate(date)); }\r\n}\nNgbCalendarHebrew.ɵfac = /*@__PURE__*/ function () { let ɵNgbCalendarHebrew_BaseFactory; return function NgbCalendarHebrew_Factory(t) { return (ɵNgbCalendarHebrew_BaseFactory || (ɵNgbCalendarHebrew_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarHebrew)))(t || NgbCalendarHebrew); }; }();\nNgbCalendarHebrew.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarHebrew, factory: NgbCalendarHebrew.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarHebrew, [{\n type: Injectable\n }], null, null); })();\n\nconst WEEKDAYS = ['שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת', 'ראשון'];\r\nconst MONTHS = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];\r\nconst MONTHS_LEAP = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר א׳', 'אדר ב׳', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];\r\n/**\r\n * @since 3.2.0\r\n */\r\nclass NgbDatepickerI18nHebrew extends NgbDatepickerI18n {\r\n getMonthShortName(month, year) { return this.getMonthFullName(month, year); }\r\n getMonthFullName(month, year) {\r\n return isHebrewLeapYear(year) ? MONTHS_LEAP[month - 1] || '' : MONTHS[month - 1] || '';\r\n }\r\n getWeekdayShortName(weekday) { return WEEKDAYS[weekday - 1] || ''; }\r\n getDayAriaLabel(date) {\r\n return `${hebrewNumerals(date.day)} ${this.getMonthFullName(date.month, date.year)} ${hebrewNumerals(date.year)}`;\r\n }\r\n getDayNumerals(date) { return hebrewNumerals(date.day); }\r\n getWeekNumerals(weekNumber) { return hebrewNumerals(weekNumber); }\r\n getYearNumerals(year) { return hebrewNumerals(year); }\r\n}\nNgbDatepickerI18nHebrew.ɵfac = /*@__PURE__*/ function () { let ɵNgbDatepickerI18nHebrew_BaseFactory; return function NgbDatepickerI18nHebrew_Factory(t) { return (ɵNgbDatepickerI18nHebrew_BaseFactory || (ɵNgbDatepickerI18nHebrew_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDatepickerI18nHebrew)))(t || NgbDatepickerI18nHebrew); }; }();\nNgbDatepickerI18nHebrew.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDatepickerI18nHebrew, factory: NgbDatepickerI18nHebrew.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerI18nHebrew, [{\n type: Injectable\n }], null, null); })();\n\n/**\r\n * Returns the equivalent JS date value for a give input Buddhist date.\r\n * `date` is an Buddhist date to be converted to Gregorian.\r\n */\r\nfunction toGregorian$2(date) {\r\n return new Date(date.year - 543, date.month - 1, date.day);\r\n}\r\n/**\r\n * Returns the equivalent Buddhist date value for a give input Gregorian date.\r\n * `gdate` is a JS Date to be converted to Buddhist.\r\n * utc to local\r\n */\r\nfunction fromGregorian$2(gdate) {\r\n return new NgbDate(gdate.getFullYear() + 543, gdate.getMonth() + 1, gdate.getDate());\r\n}\n\n/**\r\n * @since 9.1.0\r\n */\r\nclass NgbCalendarBuddhist extends NgbCalendarGregorian {\r\n getToday() { return fromGregorian$2(new Date()); }\r\n getNext(date, period = 'd', number = 1) {\r\n let jsDate = toGregorian$2(date);\r\n let checkMonth = true;\r\n let expectedMonth = jsDate.getMonth();\r\n switch (period) {\r\n case 'y':\r\n jsDate.setFullYear(jsDate.getFullYear() + number);\r\n break;\r\n case 'm':\r\n expectedMonth += number;\r\n jsDate.setMonth(expectedMonth);\r\n expectedMonth = expectedMonth % 12;\r\n if (expectedMonth < 0) {\r\n expectedMonth = expectedMonth + 12;\r\n }\r\n break;\r\n case 'd':\r\n jsDate.setDate(jsDate.getDate() + number);\r\n checkMonth = false;\r\n break;\r\n default:\r\n return date;\r\n }\r\n if (checkMonth && jsDate.getMonth() !== expectedMonth) {\r\n // this means the destination month has less days than the initial month\r\n // let's go back to the end of the previous month:\r\n jsDate.setDate(0);\r\n }\r\n return fromGregorian$2(jsDate);\r\n }\r\n getPrev(date, period = 'd', number = 1) { return this.getNext(date, period, -number); }\r\n getWeekday(date) {\r\n let jsDate = toGregorian$2(date);\r\n let day = jsDate.getDay();\r\n // in JS Date Sun=0, in ISO 8601 Sun=7\r\n return day === 0 ? 7 : day;\r\n }\r\n getWeekNumber(week, firstDayOfWeek) {\r\n // in JS Date Sun=0, in ISO 8601 Sun=7\r\n if (firstDayOfWeek === 7) {\r\n firstDayOfWeek = 0;\r\n }\r\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\r\n let date = week[thursdayIndex];\r\n const jsDate = toGregorian$2(date);\r\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\r\n const time = jsDate.getTime();\r\n jsDate.setMonth(0); // Compare with Jan 1\r\n jsDate.setDate(1);\r\n return Math.floor(Math.round((time - jsDate.getTime()) / 86400000) / 7) + 1;\r\n }\r\n isValid(date) {\r\n if (!date || !isInteger(date.year) || !isInteger(date.month) || !isInteger(date.day)) {\r\n return false;\r\n }\r\n // year 0 doesn't exist in Gregorian calendar\r\n if (date.year === 0) {\r\n return false;\r\n }\r\n const jsDate = toGregorian$2(date);\r\n return !isNaN(jsDate.getTime()) && jsDate.getFullYear() === date.year - 543 &&\r\n jsDate.getMonth() + 1 === date.month && jsDate.getDate() === date.day;\r\n }\r\n}\nNgbCalendarBuddhist.ɵfac = /*@__PURE__*/ function () { let ɵNgbCalendarBuddhist_BaseFactory; return function NgbCalendarBuddhist_Factory(t) { return (ɵNgbCalendarBuddhist_BaseFactory || (ɵNgbCalendarBuddhist_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarBuddhist)))(t || NgbCalendarBuddhist); }; }();\nNgbCalendarBuddhist.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarBuddhist, factory: NgbCalendarBuddhist.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarBuddhist, [{\n type: Injectable\n }], null, null); })();\n\n/**\r\n * [`NgbDateAdapter`](#/components/datepicker/api#NgbDateAdapter) implementation that uses\r\n * native javascript dates as a user date model.\r\n */\r\nclass NgbDateNativeAdapter extends NgbDateAdapter {\r\n /**\r\n * Converts a native `Date` to a `NgbDateStruct`.\r\n */\r\n fromModel(date) {\r\n return (date instanceof Date && !isNaN(date.getTime())) ? this._fromNativeDate(date) : null;\r\n }\r\n /**\r\n * Converts a `NgbDateStruct` to a native `Date`.\r\n */\r\n toModel(date) {\r\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) ? this._toNativeDate(date) :\r\n null;\r\n }\r\n _fromNativeDate(date) {\r\n return { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() };\r\n }\r\n _toNativeDate(date) {\r\n const jsDate = new Date(date.year, date.month - 1, date.day, 12);\r\n // avoid 30 -> 1930 conversion\r\n jsDate.setFullYear(date.year);\r\n return jsDate;\r\n }\r\n}\nNgbDateNativeAdapter.ɵfac = /*@__PURE__*/ function () { let ɵNgbDateNativeAdapter_BaseFactory; return function NgbDateNativeAdapter_Factory(t) { return (ɵNgbDateNativeAdapter_BaseFactory || (ɵNgbDateNativeAdapter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDateNativeAdapter)))(t || NgbDateNativeAdapter); }; }();\nNgbDateNativeAdapter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDateNativeAdapter, factory: NgbDateNativeAdapter.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateNativeAdapter, [{\n type: Injectable\n }], null, null); })();\n\n/**\r\n * Same as [`NgbDateNativeAdapter`](#/components/datepicker/api#NgbDateNativeAdapter), but with UTC dates.\r\n *\r\n * @since 3.2.0\r\n */\r\nclass NgbDateNativeUTCAdapter extends NgbDateNativeAdapter {\r\n _fromNativeDate(date) {\r\n return { year: date.getUTCFullYear(), month: date.getUTCMonth() + 1, day: date.getUTCDate() };\r\n }\r\n _toNativeDate(date) {\r\n const jsDate = new Date(Date.UTC(date.year, date.month - 1, date.day));\r\n // avoid 30 -> 1930 conversion\r\n jsDate.setUTCFullYear(date.year);\r\n return jsDate;\r\n }\r\n}\nNgbDateNativeUTCAdapter.ɵfac = /*@__PURE__*/ function () { let ɵNgbDateNativeUTCAdapter_BaseFactory; return function NgbDateNativeUTCAdapter_Factory(t) { return (ɵNgbDateNativeUTCAdapter_BaseFactory || (ɵNgbDateNativeUTCAdapter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDateNativeUTCAdapter)))(t || NgbDateNativeUTCAdapter); }; }();\nNgbDateNativeUTCAdapter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDateNativeUTCAdapter, factory: NgbDateNativeUTCAdapter.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateNativeUTCAdapter, [{\n type: Injectable\n }], null, null); })();\n\nclass NgbDatepickerModule {\r\n}\nNgbDatepickerModule.ɵfac = function NgbDatepickerModule_Factory(t) { return new (t || NgbDatepickerModule)(); };\nNgbDatepickerModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbDatepickerModule });\nNgbDatepickerModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule, FormsModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerModule, [{\n type: NgModule,\n args: [{\n declarations: [\n NgbDatepicker, NgbDatepickerContent, NgbDatepickerMonth, NgbDatepickerNavigation, NgbDatepickerNavigationSelect,\n NgbDatepickerDayView, NgbInputDatepicker\n ],\n exports: [NgbDatepicker, NgbDatepickerContent, NgbInputDatepicker, NgbDatepickerMonth],\n imports: [CommonModule, FormsModule],\n entryComponents: [NgbDatepicker]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbDatepickerModule, { declarations: function () { return [NgbDatepicker, NgbDatepickerContent, NgbDatepickerMonth, NgbDatepickerNavigation, NgbDatepickerNavigationSelect, NgbDatepickerDayView, NgbInputDatepicker]; }, imports: function () { return [CommonModule, FormsModule]; }, exports: function () { return [NgbDatepicker, NgbDatepickerContent, NgbInputDatepicker, NgbDatepickerMonth]; } }); })();\n\n/**\r\n * A configuration service for the [`NgbDropdown`](#/components/dropdown/api#NgbDropdown) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the dropdowns used in the application.\r\n */\r\nclass NgbDropdownConfig {\r\n constructor() {\r\n this.autoClose = true;\r\n this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right'];\r\n }\r\n}\nNgbDropdownConfig.ɵfac = function NgbDropdownConfig_Factory(t) { return new (t || NgbDropdownConfig)(); };\r\nNgbDropdownConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbDropdownConfig_Factory() { return new NgbDropdownConfig(); }, token: NgbDropdownConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\nclass NgbNavbar {\r\n}\nNgbNavbar.ɵfac = function NgbNavbar_Factory(t) { return new (t || NgbNavbar)(); };\nNgbNavbar.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbNavbar, selectors: [[\"\", 8, \"navbar\"]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavbar, [{\n type: Directive,\n args: [{ selector: '.navbar' }]\n }], null, null); })();\r\n/**\r\n * A directive you should put on a dropdown item to enable keyboard navigation.\r\n * Arrow keys will move focus between items marked with this directive.\r\n *\r\n * @since 4.1.0\r\n */\r\nclass NgbDropdownItem {\r\n constructor(elementRef) {\r\n this.elementRef = elementRef;\r\n this._disabled = false;\r\n }\r\n set disabled(value) {\r\n this._disabled = value === '' || value === true; // accept an empty attribute as true\r\n }\r\n get disabled() { return this._disabled; }\r\n}\nNgbDropdownItem.ɵfac = function NgbDropdownItem_Factory(t) { return new (t || NgbDropdownItem)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbDropdownItem.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbDropdownItem, selectors: [[\"\", \"ngbDropdownItem\", \"\"]], hostAttrs: [1, \"dropdown-item\"], hostVars: 2, hostBindings: function NgbDropdownItem_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx.disabled);\n } }, inputs: { disabled: \"disabled\" } });\r\nNgbDropdownItem.ctorParameters = () => [\r\n { type: ElementRef }\r\n];\r\nNgbDropdownItem.propDecorators = {\r\n disabled: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownItem, [{\n type: Directive,\n args: [{ selector: '[ngbDropdownItem]', host: { 'class': 'dropdown-item', '[class.disabled]': 'disabled' } }]\n }], function () { return [{ type: ɵngcc0.ElementRef }]; }, { disabled: [{\n type: Input\n }] }); })();\r\n/**\r\n * A directive that wraps dropdown menu content and dropdown items.\r\n */\r\nclass NgbDropdownMenu {\r\n constructor(dropdown, _elementRef) {\r\n this.dropdown = dropdown;\r\n this.placement = 'bottom';\r\n this.isOpen = false;\r\n this.nativeElement = _elementRef.nativeElement;\r\n }\r\n}\nNgbDropdownMenu.ɵfac = function NgbDropdownMenu_Factory(t) { return new (t || NgbDropdownMenu)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => NgbDropdown)), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbDropdownMenu.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbDropdownMenu, selectors: [[\"\", \"ngbDropdownMenu\", \"\"]], contentQueries: function NgbDropdownMenu_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDropdownItem, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.menuItems = _t);\n } }, hostVars: 5, hostBindings: function NgbDropdownMenu_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keydown.ArrowUp\", function NgbDropdownMenu_keydown_ArrowUp_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.ArrowDown\", function NgbDropdownMenu_keydown_ArrowDown_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.Home\", function NgbDropdownMenu_keydown_Home_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.End\", function NgbDropdownMenu_keydown_End_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.Enter\", function NgbDropdownMenu_keydown_Enter_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.Space\", function NgbDropdownMenu_keydown_Space_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.Tab\", function NgbDropdownMenu_keydown_Tab_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.Shift.Tab\", function NgbDropdownMenu_keydown_Shift_Tab_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"x-placement\", ctx.placement);\n ɵngcc0.ɵɵclassProp(\"dropdown-menu\", true)(\"show\", ctx.dropdown.isOpen());\n } } });\r\nNgbDropdownMenu.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => NgbDropdown),] }] },\r\n { type: ElementRef }\r\n];\r\nNgbDropdownMenu.propDecorators = {\r\n menuItems: [{ type: ContentChildren, args: [NgbDropdownItem,] }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownMenu, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownMenu]',\n host: {\n '[class.dropdown-menu]': 'true',\n '[class.show]': 'dropdown.isOpen()',\n '[attr.x-placement]': 'placement',\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 }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }] }, { type: ɵngcc0.ElementRef }]; }, { menuItems: [{\n type: ContentChildren,\n args: [NgbDropdownItem]\n }] }); })();\r\n/**\r\n * A directive to mark an element to which dropdown menu will be anchored.\r\n *\r\n * This is a simple version of the `NgbDropdownToggle` directive.\r\n * It plays the same role, but doesn't listen to click events to toggle dropdown menu thus enabling support\r\n * for events other than click.\r\n *\r\n * @since 1.1.0\r\n */\r\nclass NgbDropdownAnchor {\r\n constructor(dropdown, _elementRef) {\r\n this.dropdown = dropdown;\r\n this.nativeElement = _elementRef.nativeElement;\r\n }\r\n}\nNgbDropdownAnchor.ɵfac = function NgbDropdownAnchor_Factory(t) { return new (t || NgbDropdownAnchor)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => NgbDropdown)), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbDropdownAnchor.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbDropdownAnchor, selectors: [[\"\", \"ngbDropdownAnchor\", \"\"]], hostAttrs: [1, \"dropdown-toggle\"], hostVars: 1, hostBindings: function NgbDropdownAnchor_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-expanded\", ctx.dropdown.isOpen());\n } } });\r\nNgbDropdownAnchor.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => NgbDropdown),] }] },\r\n { type: ElementRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownAnchor, [{\n type: Directive,\n args: [{ selector: '[ngbDropdownAnchor]', host: { 'class': 'dropdown-toggle', '[attr.aria-expanded]': 'dropdown.isOpen()' } }]\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }] }, { type: ɵngcc0.ElementRef }]; }, null); })();\r\n/**\r\n * A directive to mark an element that will toggle dropdown via the `click` event.\r\n *\r\n * You can also use `NgbDropdownAnchor` as an alternative.\r\n */\r\nclass NgbDropdownToggle extends NgbDropdownAnchor {\r\n constructor(dropdown, elementRef) {\r\n super(dropdown, elementRef);\r\n }\r\n}\nNgbDropdownToggle.ɵfac = function NgbDropdownToggle_Factory(t) { return new (t || NgbDropdownToggle)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => NgbDropdown)), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbDropdownToggle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbDropdownToggle, selectors: [[\"\", \"ngbDropdownToggle\", \"\"]], hostAttrs: [1, \"dropdown-toggle\"], hostVars: 1, hostBindings: function NgbDropdownToggle_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function NgbDropdownToggle_click_HostBindingHandler() { return ctx.dropdown.toggle(); })(\"keydown.ArrowUp\", function NgbDropdownToggle_keydown_ArrowUp_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.ArrowDown\", function NgbDropdownToggle_keydown_ArrowDown_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.Home\", function NgbDropdownToggle_keydown_Home_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.End\", function NgbDropdownToggle_keydown_End_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.Tab\", function NgbDropdownToggle_keydown_Tab_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.Shift.Tab\", function NgbDropdownToggle_keydown_Shift_Tab_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-expanded\", ctx.dropdown.isOpen());\n } }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: NgbDropdownAnchor, useExisting: forwardRef(() => NgbDropdownToggle) }]), ɵngcc0.ɵɵInheritDefinitionFeature] });\r\nNgbDropdownToggle.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => NgbDropdown),] }] },\r\n { type: ElementRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownToggle, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownToggle]',\n host: {\n 'class': 'dropdown-toggle',\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 }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }] }, { type: ɵngcc0.ElementRef }]; }, null); })();\r\n/**\r\n * A directive that provides contextual overlays for displaying lists of links and more.\r\n */\r\nclass NgbDropdown {\r\n constructor(_changeDetector, config, _document, _ngZone, _elementRef, _renderer, ngbNavbar) {\r\n this._changeDetector = _changeDetector;\r\n this._document = _document;\r\n this._ngZone = _ngZone;\r\n this._elementRef = _elementRef;\r\n this._renderer = _renderer;\r\n this._closed$ = new Subject();\r\n this._bodyContainer = null;\r\n /**\r\n * Defines whether or not the dropdown menu is opened initially.\r\n */\r\n this._open = false;\r\n /**\r\n * An event fired when the dropdown is opened or closed.\r\n *\r\n * The event payload is a `boolean`:\r\n * * `true` - the dropdown was opened\r\n * * `false` - the dropdown was closed\r\n */\r\n this.openChange = new EventEmitter();\r\n this.placement = config.placement;\r\n this.container = config.container;\r\n this.autoClose = config.autoClose;\r\n this.display = ngbNavbar ? 'static' : 'dynamic';\r\n this._zoneSubscription = _ngZone.onStable.subscribe(() => { this._positionMenu(); });\r\n }\r\n ngAfterContentInit() {\r\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\r\n this._applyPlacementClasses();\r\n if (this._open) {\r\n this._setCloseHandlers();\r\n }\r\n });\r\n }\r\n ngOnChanges(changes) {\r\n if (changes.container && this._open) {\r\n this._applyContainer(this.container);\r\n }\r\n if (changes.placement && !changes.placement.isFirstChange) {\r\n this._applyPlacementClasses();\r\n }\r\n if (changes.dropdownClass) {\r\n const { currentValue, previousValue } = changes.dropdownClass;\r\n this._applyCustomDropdownClass(currentValue, previousValue);\r\n }\r\n }\r\n /**\r\n * Checks if the dropdown menu is open.\r\n */\r\n isOpen() { return this._open; }\r\n /**\r\n * Opens the dropdown menu.\r\n */\r\n open() {\r\n if (!this._open) {\r\n this._open = true;\r\n this._applyContainer(this.container);\r\n this.openChange.emit(true);\r\n this._setCloseHandlers();\r\n if (this._anchor) {\r\n this._anchor.nativeElement.focus();\r\n }\r\n }\r\n }\r\n _setCloseHandlers() {\r\n ngbAutoClose(this._ngZone, this._document, this.autoClose, (source) => {\r\n this.close();\r\n if (source === 0 /* ESCAPE */) {\r\n this._anchor.nativeElement.focus();\r\n }\r\n }, this._closed$, this._menu ? [this._menu.nativeElement] : [], this._anchor ? [this._anchor.nativeElement] : [], '.dropdown-item,.dropdown-divider');\r\n }\r\n /**\r\n * Closes the dropdown menu.\r\n */\r\n close() {\r\n if (this._open) {\r\n this._open = false;\r\n this._resetContainer();\r\n this._closed$.next();\r\n this.openChange.emit(false);\r\n this._changeDetector.markForCheck();\r\n }\r\n }\r\n /**\r\n * Toggles the dropdown menu.\r\n */\r\n toggle() {\r\n if (this.isOpen()) {\r\n this.close();\r\n }\r\n else {\r\n this.open();\r\n }\r\n }\r\n ngOnDestroy() {\r\n this._resetContainer();\r\n this._closed$.next();\r\n this._zoneSubscription.unsubscribe();\r\n }\r\n onKeyDown(event) {\r\n // tslint:disable-next-line:deprecation\r\n const key = event.which;\r\n const itemElements = this._getMenuElements();\r\n let position = -1;\r\n let itemElement = null;\r\n const isEventFromToggle = this._isEventFromToggle(event);\r\n if (!isEventFromToggle && itemElements.length) {\r\n itemElements.forEach((item, index) => {\r\n if (item.contains(event.target)) {\r\n itemElement = item;\r\n }\r\n if (item === this._document.activeElement) {\r\n position = index;\r\n }\r\n });\r\n }\r\n // closing on Enter / Space\r\n if (key === Key.Space || key === Key.Enter) {\r\n if (itemElement && (this.autoClose === true || this.autoClose === 'inside')) {\r\n // Item is either a button or a link, so click will be triggered by the browser on Enter or Space.\r\n // So we have to register a one-time click handler that will fire after any user defined click handlers\r\n // to close the dropdown\r\n fromEvent(itemElement, 'click').pipe(take(1)).subscribe(() => this.close());\r\n }\r\n return;\r\n }\r\n if (key === Key.Tab) {\r\n if (event.target && this.isOpen() && this.autoClose) {\r\n if (this._anchor.nativeElement === event.target) {\r\n if (this.container === 'body' && !event.shiftKey) {\r\n /* This case is special: user is using [Tab] from the anchor/toggle.\r\n User expects the next focusable element in the dropdown menu to get focus.\r\n But the menu is not a sibling to anchor/toggle, it is at the end of the body.\r\n Trick is to synchronously focus the menu element, and let the [keydown.Tab] go\r\n so that browser will focus the proper element (first one focusable in the menu) */\r\n this._renderer.setAttribute(this._menu.nativeElement, 'tabindex', '0');\r\n this._menu.nativeElement.focus();\r\n this._renderer.removeAttribute(this._menu.nativeElement, 'tabindex');\r\n }\r\n else if (event.shiftKey) {\r\n this.close();\r\n }\r\n return;\r\n }\r\n else if (this.container === 'body') {\r\n const focusableElements = this._menu.nativeElement.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR);\r\n if (event.shiftKey && event.target === focusableElements[0]) {\r\n this._anchor.nativeElement.focus();\r\n event.preventDefault();\r\n }\r\n else if (!event.shiftKey && event.target === focusableElements[focusableElements.length - 1]) {\r\n this._anchor.nativeElement.focus();\r\n this.close();\r\n }\r\n }\r\n else {\r\n fromEvent(event.target, 'focusout').pipe(take(1)).subscribe(({ relatedTarget }) => {\r\n if (!this._elementRef.nativeElement.contains(relatedTarget)) {\r\n this.close();\r\n }\r\n });\r\n }\r\n }\r\n return;\r\n }\r\n // opening / navigating\r\n if (isEventFromToggle || itemElement) {\r\n this.open();\r\n if (itemElements.length) {\r\n switch (key) {\r\n case Key.ArrowDown:\r\n position = Math.min(position + 1, itemElements.length - 1);\r\n break;\r\n case Key.ArrowUp:\r\n if (this._isDropup() && position === -1) {\r\n position = itemElements.length - 1;\r\n break;\r\n }\r\n position = Math.max(position - 1, 0);\r\n break;\r\n case Key.Home:\r\n position = 0;\r\n break;\r\n case Key.End:\r\n position = itemElements.length - 1;\r\n break;\r\n }\r\n itemElements[position].focus();\r\n }\r\n event.preventDefault();\r\n }\r\n }\r\n _isDropup() { return this._elementRef.nativeElement.classList.contains('dropup'); }\r\n _isEventFromToggle(event) {\r\n return this._anchor.nativeElement.contains(event.target);\r\n }\r\n _getMenuElements() {\r\n const menu = this._menu;\r\n if (menu == null) {\r\n return [];\r\n }\r\n return menu.menuItems.filter(item => !item.disabled).map(item => item.elementRef.nativeElement);\r\n }\r\n _positionMenu() {\r\n const menu = this._menu;\r\n if (this.isOpen() && menu) {\r\n this._applyPlacementClasses(this.display === 'dynamic' ? positionElements(this._anchor.nativeElement, this._bodyContainer || this._menu.nativeElement, this.placement, this.container === 'body') :\r\n this._getFirstPlacement(this.placement));\r\n }\r\n }\r\n _getFirstPlacement(placement) {\r\n return Array.isArray(placement) ? placement[0] : placement.split(' ')[0];\r\n }\r\n _resetContainer() {\r\n const renderer = this._renderer;\r\n if (this._menu) {\r\n const dropdownElement = this._elementRef.nativeElement;\r\n const dropdownMenuElement = this._menu.nativeElement;\r\n renderer.appendChild(dropdownElement, dropdownMenuElement);\r\n renderer.removeStyle(dropdownMenuElement, 'position');\r\n renderer.removeStyle(dropdownMenuElement, 'transform');\r\n }\r\n if (this._bodyContainer) {\r\n renderer.removeChild(this._document.body, this._bodyContainer);\r\n this._bodyContainer = null;\r\n }\r\n }\r\n _applyContainer(container = null) {\r\n this._resetContainer();\r\n if (container === 'body') {\r\n const renderer = this._renderer;\r\n const dropdownMenuElement = this._menu.nativeElement;\r\n const bodyContainer = this._bodyContainer = this._bodyContainer || renderer.createElement('div');\r\n // Override some styles to have the positioning working\r\n renderer.setStyle(bodyContainer, 'position', 'absolute');\r\n renderer.setStyle(dropdownMenuElement, 'position', 'static');\r\n renderer.setStyle(bodyContainer, 'z-index', '1050');\r\n renderer.appendChild(bodyContainer, dropdownMenuElement);\r\n renderer.appendChild(this._document.body, bodyContainer);\r\n }\r\n this._applyCustomDropdownClass(this.dropdownClass);\r\n }\r\n _applyCustomDropdownClass(newClass, oldClass) {\r\n const targetElement = this.container === 'body' ? this._bodyContainer : this._elementRef.nativeElement;\r\n if (targetElement) {\r\n if (oldClass) {\r\n this._renderer.removeClass(targetElement, oldClass);\r\n }\r\n if (newClass) {\r\n this._renderer.addClass(targetElement, newClass);\r\n }\r\n }\r\n }\r\n _applyPlacementClasses(placement) {\r\n const menu = this._menu;\r\n if (menu) {\r\n if (!placement) {\r\n placement = this._getFirstPlacement(this.placement);\r\n }\r\n const renderer = this._renderer;\r\n const dropdownElement = this._elementRef.nativeElement;\r\n // remove the current placement classes\r\n renderer.removeClass(dropdownElement, 'dropup');\r\n renderer.removeClass(dropdownElement, 'dropdown');\r\n menu.placement = this.display === 'static' ? null : placement;\r\n /*\r\n * apply the new placement\r\n * in case of top use up-arrow or down-arrow otherwise\r\n */\r\n const dropdownClass = placement.search('^top') !== -1 ? 'dropup' : 'dropdown';\r\n renderer.addClass(dropdownElement, dropdownClass);\r\n const bodyContainer = this._bodyContainer;\r\n if (bodyContainer) {\r\n renderer.removeClass(bodyContainer, 'dropup');\r\n renderer.removeClass(bodyContainer, 'dropdown');\r\n renderer.addClass(bodyContainer, dropdownClass);\r\n }\r\n }\r\n }\r\n}\nNgbDropdown.ɵfac = function NgbDropdown_Factory(t) { return new (t || NgbDropdown)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(NgbDropdownConfig), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(NgbNavbar, 8)); };\nNgbDropdown.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbDropdown, selectors: [[\"\", \"ngbDropdown\", \"\"]], contentQueries: function NgbDropdown_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDropdownMenu, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDropdownAnchor, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._menu = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._anchor = _t.first);\n } }, hostVars: 2, hostBindings: function NgbDropdown_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"show\", ctx.isOpen());\n } }, inputs: { _open: [\"open\", \"_open\"], placement: \"placement\", container: \"container\", autoClose: \"autoClose\", display: \"display\", dropdownClass: \"dropdownClass\" }, outputs: { openChange: \"openChange\" }, exportAs: [\"ngbDropdown\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\r\nNgbDropdown.ctorParameters = () => [\r\n { type: ChangeDetectorRef },\r\n { type: NgbDropdownConfig },\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\r\n { type: NgZone },\r\n { type: ElementRef },\r\n { type: Renderer2 },\r\n { type: NgbNavbar, decorators: [{ type: Optional }] }\r\n];\r\nNgbDropdown.propDecorators = {\r\n _menu: [{ type: ContentChild, args: [NgbDropdownMenu, { static: false },] }],\r\n _anchor: [{ type: ContentChild, args: [NgbDropdownAnchor, { static: false },] }],\r\n autoClose: [{ type: Input }],\r\n dropdownClass: [{ type: Input }],\r\n _open: [{ type: Input, args: ['open',] }],\r\n placement: [{ type: Input }],\r\n container: [{ type: Input }],\r\n display: [{ type: Input }],\r\n openChange: [{ type: Output }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdown, [{\n type: Directive,\n args: [{ selector: '[ngbDropdown]', exportAs: 'ngbDropdown', host: { '[class.show]': 'isOpen()' } }]\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }, { type: NgbDropdownConfig }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: NgbNavbar, decorators: [{\n type: Optional\n }] }]; }, { _open: [{\n type: Input,\n args: ['open']\n }], openChange: [{\n type: Output\n }], placement: [{\n type: Input\n }], container: [{\n type: Input\n }], autoClose: [{\n type: Input\n }], display: [{\n type: Input\n }], _menu: [{\n type: ContentChild,\n args: [NgbDropdownMenu, { static: false }]\n }], _anchor: [{\n type: ContentChild,\n args: [NgbDropdownAnchor, { static: false }]\n }], dropdownClass: [{\n type: Input\n }] }); })();\n\nconst NGB_DROPDOWN_DIRECTIVES = [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar];\r\nclass NgbDropdownModule {\r\n}\nNgbDropdownModule.ɵfac = function NgbDropdownModule_Factory(t) { return new (t || NgbDropdownModule)(); };\nNgbDropdownModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbDropdownModule });\nNgbDropdownModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownModule, [{\n type: NgModule,\n args: [{ declarations: NGB_DROPDOWN_DIRECTIVES, exports: NGB_DROPDOWN_DIRECTIVES }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbDropdownModule, { declarations: [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar], exports: [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar] }); })();\n\n/**\r\n * A configuration service for the [`NgbModal`](#/components/modal/api#NgbModal) service.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all modals used in the application.\r\n*\r\n* @since 3.1.0\r\n*/\r\nclass NgbModalConfig {\r\n constructor(_ngbConfig) {\r\n this._ngbConfig = _ngbConfig;\r\n this.backdrop = true;\r\n this.keyboard = true;\r\n }\r\n get animation() { return (this._animation === undefined) ? this._ngbConfig.animation : this._animation; }\r\n set animation(animation) { this._animation = animation; }\r\n}\nNgbModalConfig.ɵfac = function NgbModalConfig_Factory(t) { return new (t || NgbModalConfig)(ɵngcc0.ɵɵinject(NgbConfig)); };\r\nNgbModalConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbModalConfig_Factory() { return new NgbModalConfig(ɵɵinject(NgbConfig)); }, token: NgbModalConfig, providedIn: \"root\" });\r\nNgbModalConfig.ctorParameters = () => [\r\n { type: NgbConfig }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: NgbConfig }]; }, null); })();\n\nclass ContentRef {\r\n constructor(nodes, viewRef, componentRef) {\r\n this.nodes = nodes;\r\n this.viewRef = viewRef;\r\n this.componentRef = componentRef;\r\n }\r\n}\r\nclass PopupService {\r\n constructor(_type, _injector, _viewContainerRef, _renderer, _ngZone, _componentFactoryResolver, _applicationRef) {\r\n this._type = _type;\r\n this._injector = _injector;\r\n this._viewContainerRef = _viewContainerRef;\r\n this._renderer = _renderer;\r\n this._ngZone = _ngZone;\r\n this._componentFactoryResolver = _componentFactoryResolver;\r\n this._applicationRef = _applicationRef;\r\n this._windowRef = null;\r\n this._contentRef = null;\r\n }\r\n open(content, context, animation = false) {\r\n if (!this._windowRef) {\r\n this._contentRef = this._getContentRef(content, context);\r\n this._windowRef = this._viewContainerRef.createComponent(this._componentFactoryResolver.resolveComponentFactory(this._type), this._viewContainerRef.length, this._injector, this._contentRef.nodes);\r\n }\r\n const { nativeElement } = this._windowRef.location;\r\n const transition$ = this._ngZone.onStable.pipe(take(1), mergeMap(() => ngbRunTransition(this._ngZone, nativeElement, ({ classList }) => classList.add('show'), { animation, runningTransition: 'continue' })));\r\n return { windowRef: this._windowRef, transition$ };\r\n }\r\n close(animation = false) {\r\n if (!this._windowRef) {\r\n return of(undefined);\r\n }\r\n return ngbRunTransition(this._ngZone, this._windowRef.location.nativeElement, ({ classList }) => classList.remove('show'), { animation, runningTransition: 'stop' })\r\n .pipe(tap(() => {\r\n var _a;\r\n if (this._windowRef) {\r\n // this is required because of the container='body' option\r\n this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView));\r\n this._windowRef = null;\r\n }\r\n if ((_a = this._contentRef) === null || _a === void 0 ? void 0 : _a.viewRef) {\r\n this._applicationRef.detachView(this._contentRef.viewRef);\r\n this._contentRef.viewRef.destroy();\r\n this._contentRef = null;\r\n }\r\n }));\r\n }\r\n _getContentRef(content, context) {\r\n if (!content) {\r\n return new ContentRef([]);\r\n }\r\n else if (content instanceof TemplateRef) {\r\n const viewRef = content.createEmbeddedView(context);\r\n this._applicationRef.attachView(viewRef);\r\n return new ContentRef([viewRef.rootNodes], viewRef);\r\n }\r\n else {\r\n return new ContentRef([[this._renderer.createText(`${content}`)]]);\r\n }\r\n }\r\n}\n\nconst noop = () => { };\r\nconst ɵ0$3 = noop;\r\n/**\r\n * Utility to handle the scrollbar.\r\n *\r\n * It allows to compensate the lack of a vertical scrollbar by adding an\r\n * equivalent padding on the right of the body, and to remove this compensation.\r\n */\r\nclass ScrollBar {\r\n constructor(_document) {\r\n this._document = _document;\r\n }\r\n /**\r\n * To be called right before a potential vertical scrollbar would be removed:\r\n *\r\n * - if there was a scrollbar, adds some compensation padding to the body\r\n * to keep the same layout as when the scrollbar is there\r\n * - if there was none, there is nothing to do\r\n *\r\n * @return a callback used to revert the compensation (noop if there was none,\r\n * otherwise a function removing the padding)\r\n */\r\n compensate() {\r\n const width = this._getWidth();\r\n return !this._isPresent(width) ? noop : this._adjustBody(width);\r\n }\r\n /**\r\n * Adds a padding of the given width on the right of the body.\r\n *\r\n * @return a callback used to revert the padding to its previous value\r\n */\r\n _adjustBody(scrollbarWidth) {\r\n const body = this._document.body;\r\n const userSetPaddingStyle = body.style.paddingRight;\r\n const actualPadding = parseFloat(window.getComputedStyle(body)['padding-right']);\r\n body.style['padding-right'] = `${actualPadding + scrollbarWidth}px`;\r\n return () => body.style['padding-right'] = userSetPaddingStyle;\r\n }\r\n /**\r\n * Tells whether a scrollbar is currently present on the body.\r\n *\r\n * @return true if scrollbar is present, false otherwise\r\n */\r\n _isPresent(scrollbarWidth) {\r\n const rect = this._document.body.getBoundingClientRect();\r\n const bodyToViewportGap = window.innerWidth - (rect.left + rect.right);\r\n const uncertainty = 0.1 * scrollbarWidth;\r\n return bodyToViewportGap >= scrollbarWidth - uncertainty;\r\n }\r\n /**\r\n * Calculates and returns the width of a scrollbar.\r\n *\r\n * @return the width of a scrollbar on this page\r\n */\r\n _getWidth() {\r\n const measurer = this._document.createElement('div');\r\n measurer.className = 'modal-scrollbar-measure';\r\n const body = this._document.body;\r\n body.appendChild(measurer);\r\n const width = measurer.getBoundingClientRect().width - measurer.clientWidth;\r\n body.removeChild(measurer);\r\n return width;\r\n }\r\n}\nScrollBar.ɵfac = function ScrollBar_Factory(t) { return new (t || ScrollBar)(ɵngcc0.ɵɵinject(DOCUMENT)); };\r\nScrollBar.ɵprov = ɵɵdefineInjectable({ factory: function ScrollBar_Factory() { return new ScrollBar(ɵɵinject(DOCUMENT)); }, token: ScrollBar, providedIn: \"root\" });\r\nScrollBar.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ScrollBar, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, null); })();\n\nclass NgbModalBackdrop {\r\n constructor(_el, _zone) {\r\n this._el = _el;\r\n this._zone = _zone;\r\n }\r\n ngOnInit() {\r\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\r\n ngbRunTransition(this._zone, this._el.nativeElement, (element, animation) => {\r\n if (animation) {\r\n reflow(element);\r\n }\r\n element.classList.add('show');\r\n }, { animation: this.animation, runningTransition: 'continue' });\r\n });\r\n }\r\n hide() {\r\n return ngbRunTransition(this._zone, this._el.nativeElement, ({ classList }) => classList.remove('show'), { animation: this.animation, runningTransition: 'stop' });\r\n }\r\n}\nNgbModalBackdrop.ɵfac = function NgbModalBackdrop_Factory(t) { return new (t || NgbModalBackdrop)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nNgbModalBackdrop.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbModalBackdrop, selectors: [[\"ngb-modal-backdrop\"]], hostAttrs: [2, \"z-index\", \"1050\"], hostVars: 6, hostBindings: function NgbModalBackdrop_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassMap(\"modal-backdrop\" + (ctx.backdropClass ? \" \" + ctx.backdropClass : \"\"));\n ɵngcc0.ɵɵclassProp(\"show\", !ctx.animation)(\"fade\", ctx.animation);\n } }, inputs: { animation: \"animation\", backdropClass: \"backdropClass\" }, decls: 0, vars: 0, template: function NgbModalBackdrop_Template(rf, ctx) { }, encapsulation: 2 });\r\nNgbModalBackdrop.ctorParameters = () => [\r\n { type: ElementRef },\r\n { type: NgZone }\r\n];\r\nNgbModalBackdrop.propDecorators = {\r\n animation: [{ type: Input }],\r\n backdropClass: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalBackdrop, [{\n type: Component,\n args: [{\n selector: 'ngb-modal-backdrop',\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: 1050'\n }\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { animation: [{\n type: Input\n }], backdropClass: [{\n type: Input\n }] }); })();\n\n/**\r\n * A reference to the currently opened (active) modal.\r\n *\r\n * Instances of this class can be injected into your component passed as modal content.\r\n * So you can `.close()` or `.dismiss()` the modal window from your component.\r\n */\r\nclass NgbActiveModal {\r\n /**\r\n * Closes the modal with an optional `result` value.\r\n *\r\n * The `NgbModalRef.result` promise will be resolved with the provided value.\r\n */\r\n close(result) { }\r\n /**\r\n * Dismisses the modal with an optional `reason` value.\r\n *\r\n * The `NgbModalRef.result` promise will be rejected with the provided value.\r\n */\r\n dismiss(reason) { }\r\n}\r\n/**\r\n * A reference to the newly opened modal returned by the `NgbModal.open()` method.\r\n */\r\nclass NgbModalRef {\r\n constructor(_windowCmptRef, _contentRef, _backdropCmptRef, _beforeDismiss) {\r\n this._windowCmptRef = _windowCmptRef;\r\n this._contentRef = _contentRef;\r\n this._backdropCmptRef = _backdropCmptRef;\r\n this._beforeDismiss = _beforeDismiss;\r\n this._closed = new Subject();\r\n this._dismissed = new Subject();\r\n this._hidden = new Subject();\r\n _windowCmptRef.instance.dismissEvent.subscribe((reason) => { this.dismiss(reason); });\r\n this.result = new Promise((resolve, reject) => {\r\n this._resolve = resolve;\r\n this._reject = reject;\r\n });\r\n this.result.then(null, () => { });\r\n }\r\n /**\r\n * The instance of a component used for the modal content.\r\n *\r\n * When a `TemplateRef` is used as the content or when the modal is closed, will return `undefined`.\r\n */\r\n get componentInstance() {\r\n if (this._contentRef && this._contentRef.componentRef) {\r\n return this._contentRef.componentRef.instance;\r\n }\r\n }\r\n /**\r\n * The observable that emits when the modal is closed via the `.close()` method.\r\n *\r\n * It will emit the result passed to the `.close()` method.\r\n *\r\n * @since 8.0.0\r\n */\r\n get closed() { return this._closed.asObservable().pipe(takeUntil(this._hidden)); }\r\n /**\r\n * The observable that emits when the modal is dismissed via the `.dismiss()` method.\r\n *\r\n * It will emit the reason passed to the `.dismissed()` method by the user, or one of the internal\r\n * reasons like backdrop click or ESC key press.\r\n *\r\n * @since 8.0.0\r\n */\r\n get dismissed() { return this._dismissed.asObservable().pipe(takeUntil(this._hidden)); }\r\n /**\r\n * The observable that emits when both modal window and backdrop are closed and animations were finished.\r\n * At this point modal and backdrop elements will be removed from the DOM tree.\r\n *\r\n * This observable will be completed after emitting.\r\n *\r\n * @since 8.0.0\r\n */\r\n get hidden() { return this._hidden.asObservable(); }\r\n /**\r\n * The observable that emits when modal is fully visible and animation was finished.\r\n * Modal DOM element is always available synchronously after calling 'modal.open()' service.\r\n *\r\n * This observable will be completed after emitting.\r\n * It will not emit, if modal is closed before open animation is finished.\r\n *\r\n * @since 8.0.0\r\n */\r\n get shown() { return this._windowCmptRef.instance.shown.asObservable(); }\r\n /**\r\n * Closes the modal with an optional `result` value.\r\n *\r\n * The `NgbMobalRef.result` promise will be resolved with the provided value.\r\n */\r\n close(result) {\r\n if (this._windowCmptRef) {\r\n this._closed.next(result);\r\n this._resolve(result);\r\n this._removeModalElements();\r\n }\r\n }\r\n _dismiss(reason) {\r\n this._dismissed.next(reason);\r\n this._reject(reason);\r\n this._removeModalElements();\r\n }\r\n /**\r\n * Dismisses the modal with an optional `reason` value.\r\n *\r\n * The `NgbModalRef.result` promise will be rejected with the provided value.\r\n */\r\n dismiss(reason) {\r\n if (this._windowCmptRef) {\r\n if (!this._beforeDismiss) {\r\n this._dismiss(reason);\r\n }\r\n else {\r\n const dismiss = this._beforeDismiss();\r\n if (dismiss && dismiss.then) {\r\n dismiss.then(result => {\r\n if (result !== false) {\r\n this._dismiss(reason);\r\n }\r\n }, () => { });\r\n }\r\n else if (dismiss !== false) {\r\n this._dismiss(reason);\r\n }\r\n }\r\n }\r\n }\r\n _removeModalElements() {\r\n const windowTransition$ = this._windowCmptRef.instance.hide();\r\n const backdropTransition$ = this._backdropCmptRef ? this._backdropCmptRef.instance.hide() : of(undefined);\r\n // hiding window\r\n windowTransition$.subscribe(() => {\r\n const { nativeElement } = this._windowCmptRef.location;\r\n nativeElement.parentNode.removeChild(nativeElement);\r\n this._windowCmptRef.destroy();\r\n if (this._contentRef && this._contentRef.viewRef) {\r\n this._contentRef.viewRef.destroy();\r\n }\r\n this._windowCmptRef = null;\r\n this._contentRef = null;\r\n });\r\n // hiding backdrop\r\n backdropTransition$.subscribe(() => {\r\n if (this._backdropCmptRef) {\r\n const { nativeElement } = this._backdropCmptRef.location;\r\n nativeElement.parentNode.removeChild(nativeElement);\r\n this._backdropCmptRef.destroy();\r\n this._backdropCmptRef = null;\r\n }\r\n });\r\n // all done\r\n zip(windowTransition$, backdropTransition$).subscribe(() => {\r\n this._hidden.next();\r\n this._hidden.complete();\r\n });\r\n }\r\n}\n\nvar ModalDismissReasons;\r\n(function (ModalDismissReasons) {\r\n ModalDismissReasons[ModalDismissReasons[\"BACKDROP_CLICK\"] = 0] = \"BACKDROP_CLICK\";\r\n ModalDismissReasons[ModalDismissReasons[\"ESC\"] = 1] = \"ESC\";\r\n})(ModalDismissReasons || (ModalDismissReasons = {}));\n\nclass NgbModalWindow {\r\n constructor(_document, _elRef, _zone) {\r\n this._document = _document;\r\n this._elRef = _elRef;\r\n this._zone = _zone;\r\n this._closed$ = new Subject();\r\n this._elWithFocus = null; // element that is focused prior to modal opening\r\n this.backdrop = true;\r\n this.keyboard = true;\r\n this.dismissEvent = new EventEmitter();\r\n this.shown = new Subject();\r\n this.hidden = new Subject();\r\n }\r\n dismiss(reason) { this.dismissEvent.emit(reason); }\r\n ngOnInit() {\r\n this._elWithFocus = this._document.activeElement;\r\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => { this._show(); });\r\n }\r\n ngOnDestroy() { this._disableEventHandling(); }\r\n hide() {\r\n const { nativeElement } = this._elRef;\r\n const context = { animation: this.animation, runningTransition: 'stop' };\r\n const windowTransition$ = ngbRunTransition(this._zone, nativeElement, () => nativeElement.classList.remove('show'), context);\r\n const dialogTransition$ = ngbRunTransition(this._zone, this._dialogEl.nativeElement, () => { }, context);\r\n const transitions$ = zip(windowTransition$, dialogTransition$);\r\n transitions$.subscribe(() => {\r\n this.hidden.next();\r\n this.hidden.complete();\r\n });\r\n this._disableEventHandling();\r\n this._restoreFocus();\r\n return transitions$;\r\n }\r\n _show() {\r\n const context = { animation: this.animation, runningTransition: 'continue' };\r\n const windowTransition$ = ngbRunTransition(this._zone, this._elRef.nativeElement, (element, animation) => {\r\n if (animation) {\r\n reflow(element);\r\n }\r\n element.classList.add('show');\r\n }, context);\r\n const dialogTransition$ = ngbRunTransition(this._zone, this._dialogEl.nativeElement, () => { }, context);\r\n zip(windowTransition$, dialogTransition$).subscribe(() => {\r\n this.shown.next();\r\n this.shown.complete();\r\n });\r\n this._enableEventHandling();\r\n this._setFocus();\r\n }\r\n _enableEventHandling() {\r\n const { nativeElement } = this._elRef;\r\n this._zone.runOutsideAngular(() => {\r\n fromEvent(nativeElement, 'keydown')\r\n .pipe(takeUntil(this._closed$), \r\n // tslint:disable-next-line:deprecation\r\n filter(e => e.which === Key.Escape))\r\n .subscribe(event => {\r\n if (this.keyboard) {\r\n requestAnimationFrame(() => {\r\n if (!event.defaultPrevented) {\r\n this._zone.run(() => this.dismiss(ModalDismissReasons.ESC));\r\n }\r\n });\r\n }\r\n else if (this.backdrop === 'static') {\r\n this._bumpBackdrop();\r\n }\r\n });\r\n // We're listening to 'mousedown' and 'mouseup' to prevent modal from closing when pressing the mouse\r\n // inside the modal dialog and releasing it outside\r\n let preventClose = false;\r\n fromEvent(this._dialogEl.nativeElement, 'mousedown')\r\n .pipe(takeUntil(this._closed$), tap(() => preventClose = false), switchMap(() => fromEvent(nativeElement, 'mouseup').pipe(takeUntil(this._closed$), take(1))), filter(({ target }) => nativeElement === target))\r\n .subscribe(() => { preventClose = true; });\r\n // We're listening to 'click' to dismiss modal on modal window click, except when:\r\n // 1. clicking on modal dialog itself\r\n // 2. closing was prevented by mousedown/up handlers\r\n // 3. clicking on scrollbar when the viewport is too small and modal doesn't fit (click is not triggered at all)\r\n fromEvent(nativeElement, 'click').pipe(takeUntil(this._closed$)).subscribe(({ target }) => {\r\n if (nativeElement === target) {\r\n if (this.backdrop === 'static') {\r\n this._bumpBackdrop();\r\n }\r\n else if (this.backdrop === true && !preventClose) {\r\n this._zone.run(() => this.dismiss(ModalDismissReasons.BACKDROP_CLICK));\r\n }\r\n }\r\n preventClose = false;\r\n });\r\n });\r\n }\r\n _disableEventHandling() { this._closed$.next(); }\r\n _setFocus() {\r\n const { nativeElement } = this._elRef;\r\n if (!nativeElement.contains(document.activeElement)) {\r\n const autoFocusable = nativeElement.querySelector(`[ngbAutofocus]`);\r\n const firstFocusable = getFocusableBoundaryElements(nativeElement)[0];\r\n const elementToFocus = autoFocusable || firstFocusable || nativeElement;\r\n elementToFocus.focus();\r\n }\r\n }\r\n _restoreFocus() {\r\n const body = this._document.body;\r\n const elWithFocus = this._elWithFocus;\r\n let elementToFocus;\r\n if (elWithFocus && elWithFocus['focus'] && body.contains(elWithFocus)) {\r\n elementToFocus = elWithFocus;\r\n }\r\n else {\r\n elementToFocus = body;\r\n }\r\n this._zone.runOutsideAngular(() => {\r\n setTimeout(() => elementToFocus.focus());\r\n this._elWithFocus = null;\r\n });\r\n }\r\n _bumpBackdrop() {\r\n if (this.backdrop === 'static') {\r\n ngbRunTransition(this._zone, this._elRef.nativeElement, ({ classList }) => {\r\n classList.add('modal-static');\r\n return () => classList.remove('modal-static');\r\n }, { animation: this.animation, runningTransition: 'continue' });\r\n }\r\n }\r\n}\nNgbModalWindow.ɵfac = function NgbModalWindow_Factory(t) { return new (t || NgbModalWindow)(ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nNgbModalWindow.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbModalWindow, selectors: [[\"ngb-modal-window\"]], viewQuery: function NgbModalWindow_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c31, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._dialogEl = _t.first);\n } }, hostAttrs: [\"role\", \"dialog\", \"tabindex\", \"-1\"], hostVars: 7, hostBindings: function NgbModalWindow_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-modal\", true)(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-describedby\", ctx.ariaDescribedBy);\n ɵngcc0.ɵɵclassMap(\"modal d-block\" + (ctx.windowClass ? \" \" + ctx.windowClass : \"\"));\n ɵngcc0.ɵɵclassProp(\"fade\", ctx.animation);\n } }, inputs: { backdrop: \"backdrop\", keyboard: \"keyboard\", animation: \"animation\", ariaLabelledBy: \"ariaLabelledBy\", ariaDescribedBy: \"ariaDescribedBy\", centered: \"centered\", scrollable: \"scrollable\", size: \"size\", windowClass: \"windowClass\", modalDialogClass: \"modalDialogClass\" }, outputs: { dismissEvent: \"dismiss\" }, ngContentSelectors: _c3, decls: 4, vars: 2, consts: [[\"role\", \"document\"], [\"dialog\", \"\"], [1, \"modal-content\"]], template: function NgbModalWindow_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0, 1)(2, \"div\", 2);\n ɵngcc0.ɵɵprojection(3);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassMap(\"modal-dialog\" + (ctx.size ? \" modal-\" + ctx.size : \"\") + (ctx.centered ? \" modal-dialog-centered\" : \"\") + (ctx.scrollable ? \" modal-dialog-scrollable\" : \"\") + (ctx.modalDialogClass ? \" \" + ctx.modalDialogClass : \"\"));\n } }, styles: [\"ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\"], encapsulation: 2 });\r\nNgbModalWindow.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\r\n { type: ElementRef },\r\n { type: NgZone }\r\n];\r\nNgbModalWindow.propDecorators = {\r\n _dialogEl: [{ type: ViewChild, args: ['dialog', { static: true },] }],\r\n animation: [{ type: Input }],\r\n ariaLabelledBy: [{ type: Input }],\r\n ariaDescribedBy: [{ type: Input }],\r\n backdrop: [{ type: Input }],\r\n centered: [{ type: Input }],\r\n keyboard: [{ type: Input }],\r\n scrollable: [{ type: Input }],\r\n size: [{ type: Input }],\r\n windowClass: [{ type: Input }],\r\n modalDialogClass: [{ type: Input }],\r\n dismissEvent: [{ type: Output, args: ['dismiss',] }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalWindow, [{\n type: Component,\n args: [{ selector: 'ngb-modal-window', 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: `\r\n <div #dialog [class]=\"'modal-dialog' + (size ? ' modal-' + size : '') + (centered ? ' modal-dialog-centered' : '') +\r\n (scrollable ? ' modal-dialog-scrollable' : '') + (modalDialogClass ? ' ' + modalDialogClass : '')\" role=\"document\">\r\n <div class=\"modal-content\"><ng-content></ng-content></div>\r\n </div>\r\n `, encapsulation: ViewEncapsulation.None, styles: [\"ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\"] }]\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { backdrop: [{\n type: Input\n }], keyboard: [{\n type: Input\n }], dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }], _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 }], centered: [{\n type: Input\n }], scrollable: [{\n type: Input\n }], size: [{\n type: Input\n }], windowClass: [{\n type: Input\n }], modalDialogClass: [{\n type: Input\n }] }); })();\n\nclass NgbModalStack {\r\n constructor(_applicationRef, _injector, _document, _scrollBar, _rendererFactory, _ngZone) {\r\n this._applicationRef = _applicationRef;\r\n this._injector = _injector;\r\n this._document = _document;\r\n this._scrollBar = _scrollBar;\r\n this._rendererFactory = _rendererFactory;\r\n this._ngZone = _ngZone;\r\n this._activeWindowCmptHasChanged = new Subject();\r\n this._ariaHiddenValues = new Map();\r\n this._backdropAttributes = ['animation', 'backdropClass'];\r\n this._modalRefs = [];\r\n this._windowAttributes = [\r\n 'animation', 'ariaLabelledBy', 'ariaDescribedBy', 'backdrop', 'centered', 'keyboard', 'scrollable', 'size',\r\n 'windowClass', 'modalDialogClass'\r\n ];\r\n this._windowCmpts = [];\r\n this._activeInstances = new EventEmitter();\r\n // Trap focus on active WindowCmpt\r\n this._activeWindowCmptHasChanged.subscribe(() => {\r\n if (this._windowCmpts.length) {\r\n const activeWindowCmpt = this._windowCmpts[this._windowCmpts.length - 1];\r\n ngbFocusTrap(this._ngZone, activeWindowCmpt.location.nativeElement, this._activeWindowCmptHasChanged);\r\n this._revertAriaHidden();\r\n this._setAriaHidden(activeWindowCmpt.location.nativeElement);\r\n }\r\n });\r\n }\r\n open(moduleCFR, contentInjector, content, options) {\r\n const containerEl = options.container instanceof HTMLElement ? options.container : isDefined(options.container) ?\r\n this._document.querySelector(options.container) :\r\n this._document.body;\r\n const renderer = this._rendererFactory.createRenderer(null, null);\r\n const revertPaddingForScrollBar = this._scrollBar.compensate();\r\n const removeBodyClass = () => {\r\n if (!this._modalRefs.length) {\r\n renderer.removeClass(this._document.body, 'modal-open');\r\n this._revertAriaHidden();\r\n }\r\n };\r\n if (!containerEl) {\r\n throw new Error(`The specified modal container \"${options.container || 'body'}\" was not found in the DOM.`);\r\n }\r\n const activeModal = new NgbActiveModal();\r\n const contentRef = this._getContentRef(moduleCFR, options.injector || contentInjector, content, activeModal, options);\r\n let backdropCmptRef = options.backdrop !== false ? this._attachBackdrop(moduleCFR, containerEl) : undefined;\r\n let windowCmptRef = this._attachWindowComponent(moduleCFR, containerEl, contentRef);\r\n let ngbModalRef = new NgbModalRef(windowCmptRef, contentRef, backdropCmptRef, options.beforeDismiss);\r\n this._registerModalRef(ngbModalRef);\r\n this._registerWindowCmpt(windowCmptRef);\r\n ngbModalRef.result.then(revertPaddingForScrollBar, revertPaddingForScrollBar);\r\n ngbModalRef.result.then(removeBodyClass, removeBodyClass);\r\n activeModal.close = (result) => { ngbModalRef.close(result); };\r\n activeModal.dismiss = (reason) => { ngbModalRef.dismiss(reason); };\r\n this._applyWindowOptions(windowCmptRef.instance, options);\r\n if (this._modalRefs.length === 1) {\r\n renderer.addClass(this._document.body, 'modal-open');\r\n }\r\n if (backdropCmptRef && backdropCmptRef.instance) {\r\n this._applyBackdropOptions(backdropCmptRef.instance, options);\r\n backdropCmptRef.changeDetectorRef.detectChanges();\r\n }\r\n windowCmptRef.changeDetectorRef.detectChanges();\r\n return ngbModalRef;\r\n }\r\n get activeInstances() { return this._activeInstances; }\r\n dismissAll(reason) { this._modalRefs.forEach(ngbModalRef => ngbModalRef.dismiss(reason)); }\r\n hasOpenModals() { return this._modalRefs.length > 0; }\r\n _attachBackdrop(moduleCFR, containerEl) {\r\n let backdropFactory = moduleCFR.resolveComponentFactory(NgbModalBackdrop);\r\n let backdropCmptRef = backdropFactory.create(this._injector);\r\n this._applicationRef.attachView(backdropCmptRef.hostView);\r\n containerEl.appendChild(backdropCmptRef.location.nativeElement);\r\n return backdropCmptRef;\r\n }\r\n _attachWindowComponent(moduleCFR, containerEl, contentRef) {\r\n let windowFactory = moduleCFR.resolveComponentFactory(NgbModalWindow);\r\n let windowCmptRef = windowFactory.create(this._injector, contentRef.nodes);\r\n this._applicationRef.attachView(windowCmptRef.hostView);\r\n containerEl.appendChild(windowCmptRef.location.nativeElement);\r\n return windowCmptRef;\r\n }\r\n _applyWindowOptions(windowInstance, options) {\r\n this._windowAttributes.forEach((optionName) => {\r\n if (isDefined(options[optionName])) {\r\n windowInstance[optionName] = options[optionName];\r\n }\r\n });\r\n }\r\n _applyBackdropOptions(backdropInstance, options) {\r\n this._backdropAttributes.forEach((optionName) => {\r\n if (isDefined(options[optionName])) {\r\n backdropInstance[optionName] = options[optionName];\r\n }\r\n });\r\n }\r\n _getContentRef(moduleCFR, contentInjector, content, activeModal, options) {\r\n if (!content) {\r\n return new ContentRef([]);\r\n }\r\n else if (content instanceof TemplateRef) {\r\n return this._createFromTemplateRef(content, activeModal);\r\n }\r\n else if (isString(content)) {\r\n return this._createFromString(content);\r\n }\r\n else {\r\n return this._createFromComponent(moduleCFR, contentInjector, content, activeModal, options);\r\n }\r\n }\r\n _createFromTemplateRef(content, activeModal) {\r\n const context = {\r\n $implicit: activeModal,\r\n close(result) { activeModal.close(result); },\r\n dismiss(reason) { activeModal.dismiss(reason); }\r\n };\r\n const viewRef = content.createEmbeddedView(context);\r\n this._applicationRef.attachView(viewRef);\r\n return new ContentRef([viewRef.rootNodes], viewRef);\r\n }\r\n _createFromString(content) {\r\n const component = this._document.createTextNode(`${content}`);\r\n return new ContentRef([[component]]);\r\n }\r\n _createFromComponent(moduleCFR, contentInjector, content, context, options) {\r\n const contentCmptFactory = moduleCFR.resolveComponentFactory(content);\r\n const modalContentInjector = Injector.create({ providers: [{ provide: NgbActiveModal, useValue: context }], parent: contentInjector });\r\n const componentRef = contentCmptFactory.create(modalContentInjector);\r\n const componentNativeEl = componentRef.location.nativeElement;\r\n if (options.scrollable) {\r\n componentNativeEl.classList.add('component-host-scrollable');\r\n }\r\n this._applicationRef.attachView(componentRef.hostView);\r\n // FIXME: we should here get rid of the component nativeElement\r\n // and use `[Array.from(componentNativeEl.childNodes)]` instead and remove the above CSS class.\r\n return new ContentRef([[componentNativeEl]], componentRef.hostView, componentRef);\r\n }\r\n _setAriaHidden(element) {\r\n const parent = element.parentElement;\r\n if (parent && element !== this._document.body) {\r\n Array.from(parent.children).forEach(sibling => {\r\n if (sibling !== element && sibling.nodeName !== 'SCRIPT') {\r\n this._ariaHiddenValues.set(sibling, sibling.getAttribute('aria-hidden'));\r\n sibling.setAttribute('aria-hidden', 'true');\r\n }\r\n });\r\n this._setAriaHidden(parent);\r\n }\r\n }\r\n _revertAriaHidden() {\r\n this._ariaHiddenValues.forEach((value, element) => {\r\n if (value) {\r\n element.setAttribute('aria-hidden', value);\r\n }\r\n else {\r\n element.removeAttribute('aria-hidden');\r\n }\r\n });\r\n this._ariaHiddenValues.clear();\r\n }\r\n _registerModalRef(ngbModalRef) {\r\n const unregisterModalRef = () => {\r\n const index = this._modalRefs.indexOf(ngbModalRef);\r\n if (index > -1) {\r\n this._modalRefs.splice(index, 1);\r\n this._activeInstances.emit(this._modalRefs);\r\n }\r\n };\r\n this._modalRefs.push(ngbModalRef);\r\n this._activeInstances.emit(this._modalRefs);\r\n ngbModalRef.result.then(unregisterModalRef, unregisterModalRef);\r\n }\r\n _registerWindowCmpt(ngbWindowCmpt) {\r\n this._windowCmpts.push(ngbWindowCmpt);\r\n this._activeWindowCmptHasChanged.next();\r\n ngbWindowCmpt.onDestroy(() => {\r\n const index = this._windowCmpts.indexOf(ngbWindowCmpt);\r\n if (index > -1) {\r\n this._windowCmpts.splice(index, 1);\r\n this._activeWindowCmptHasChanged.next();\r\n }\r\n });\r\n }\r\n}\nNgbModalStack.ɵfac = function NgbModalStack_Factory(t) { return new (t || NgbModalStack)(ɵngcc0.ɵɵinject(ɵngcc0.ApplicationRef), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(DOCUMENT), ɵngcc0.ɵɵinject(ScrollBar), ɵngcc0.ɵɵinject(ɵngcc0.RendererFactory2), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\r\nNgbModalStack.ɵprov = ɵɵdefineInjectable({ factory: function NgbModalStack_Factory() { return new NgbModalStack(ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT), ɵɵinject(ScrollBar), ɵɵinject(RendererFactory2), ɵɵinject(NgZone)); }, token: NgbModalStack, providedIn: \"root\" });\r\nNgbModalStack.ctorParameters = () => [\r\n { type: ApplicationRef },\r\n { type: Injector },\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\r\n { type: ScrollBar },\r\n { type: RendererFactory2 },\r\n { type: NgZone }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalStack, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: ɵngcc0.ApplicationRef }, { type: ɵngcc0.Injector }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ScrollBar }, { type: ɵngcc0.RendererFactory2 }, { type: ɵngcc0.NgZone }]; }, null); })();\n\n/**\r\n * A service for opening modal windows.\r\n *\r\n * Creating a modal is straightforward: create a component or a template and pass it as an argument to\r\n * the `.open()` method.\r\n */\r\nclass NgbModal {\r\n constructor(_moduleCFR, _injector, _modalStack, _config) {\r\n this._moduleCFR = _moduleCFR;\r\n this._injector = _injector;\r\n this._modalStack = _modalStack;\r\n this._config = _config;\r\n }\r\n /**\r\n * Opens a new modal window with the specified content and supplied options.\r\n *\r\n * Content can be provided as a `TemplateRef` or a component type. If you pass a component type as content,\r\n * then instances of those components can be injected with an instance of the `NgbActiveModal` class. You can then\r\n * use `NgbActiveModal` methods to close / dismiss modals from \"inside\" of your component.\r\n *\r\n * Also see the [`NgbModalOptions`](#/components/modal/api#NgbModalOptions) for the list of supported options.\r\n */\r\n open(content, options = {}) {\r\n const combinedOptions = Object.assign(Object.assign(Object.assign({}, this._config), { animation: this._config.animation }), options);\r\n return this._modalStack.open(this._moduleCFR, this._injector, content, combinedOptions);\r\n }\r\n /**\r\n * Returns an observable that holds the active modal instances.\r\n */\r\n get activeInstances() { return this._modalStack.activeInstances; }\r\n /**\r\n * Dismisses all currently displayed modal windows with the supplied reason.\r\n *\r\n * @since 3.1.0\r\n */\r\n dismissAll(reason) { this._modalStack.dismissAll(reason); }\r\n /**\r\n * Indicates if there are currently any open modal windows in the application.\r\n *\r\n * @since 3.3.0\r\n */\r\n hasOpenModals() { return this._modalStack.hasOpenModals(); }\r\n}\nNgbModal.ɵfac = function NgbModal_Factory(t) { return new (t || NgbModal)(ɵngcc0.ɵɵinject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(NgbModalStack), ɵngcc0.ɵɵinject(NgbModalConfig)); };\r\nNgbModal.ɵprov = ɵɵdefineInjectable({ factory: function NgbModal_Factory() { return new NgbModal(ɵɵinject(ComponentFactoryResolver), ɵɵinject(INJECTOR), ɵɵinject(NgbModalStack), ɵɵinject(NgbModalConfig)); }, token: NgbModal, providedIn: \"root\" });\r\nNgbModal.ctorParameters = () => [\r\n { type: ComponentFactoryResolver },\r\n { type: Injector },\r\n { type: NgbModalStack },\r\n { type: NgbModalConfig }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModal, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.Injector }, { type: NgbModalStack }, { type: NgbModalConfig }]; }, null); })();\n\nclass NgbModalModule {\r\n}\nNgbModalModule.ɵfac = function NgbModalModule_Factory(t) { return new (t || NgbModalModule)(); };\nNgbModalModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbModalModule });\nNgbModalModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [NgbModal] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbModalBackdrop, NgbModalWindow],\n entryComponents: [NgbModalBackdrop, NgbModalWindow],\n providers: [NgbModal]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbModalModule, { declarations: [NgbModalBackdrop, NgbModalWindow] }); })();\n\n/**\r\n * A configuration service for the [`NgbNav`](#/components/nav/api#NgbNav) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the navs used in the application.\r\n *\r\n * @since 5.2.0\r\n */\r\nclass NgbNavConfig {\r\n constructor(_ngbConfig) {\r\n this._ngbConfig = _ngbConfig;\r\n this.destroyOnHide = true;\r\n this.orientation = 'horizontal';\r\n this.roles = 'tablist';\r\n this.keyboard = false;\r\n }\r\n get animation() { return (this._animation === undefined) ? this._ngbConfig.animation : this._animation; }\r\n set animation(animation) { this._animation = animation; }\r\n}\nNgbNavConfig.ɵfac = function NgbNavConfig_Factory(t) { return new (t || NgbNavConfig)(ɵngcc0.ɵɵinject(NgbConfig)); };\r\nNgbNavConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbNavConfig_Factory() { return new NgbNavConfig(ɵɵinject(NgbConfig)); }, token: NgbNavConfig, providedIn: \"root\" });\r\nNgbNavConfig.ctorParameters = () => [\r\n { type: NgbConfig }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: NgbConfig }]; }, null); })();\n\nconst isValidNavId = (id) => isDefined(id) && id !== '';\r\nconst ɵ0$4 = isValidNavId;\r\nlet navCounter = 0;\r\n/**\r\n * This directive must be used to wrap content to be displayed in the nav.\r\n *\r\n * @since 5.2.0\r\n */\r\nclass NgbNavContent {\r\n constructor(templateRef) {\r\n this.templateRef = templateRef;\r\n }\r\n}\nNgbNavContent.ɵfac = function NgbNavContent_Factory(t) { return new (t || NgbNavContent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbNavContent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbNavContent, selectors: [[\"ng-template\", \"ngbNavContent\", \"\"]] });\r\nNgbNavContent.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavContent, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbNavContent]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\r\n/**\r\n * The directive used to group nav link and related nav content. As well as set nav identifier and some options.\r\n *\r\n * @since 5.2.0\r\n */\r\nclass NgbNavItem {\r\n constructor(nav, elementRef) {\r\n this.elementRef = elementRef;\r\n /**\r\n * If `true`, the current nav item is disabled and can't be toggled by user.\r\n *\r\n * Nevertheless disabled nav can be selected programmatically via the `.select()` method and the `[activeId]` binding.\r\n */\r\n this.disabled = false;\r\n /**\r\n * An event emitted when the fade in transition is finished on the related nav content\r\n *\r\n * @since 8.0.0\r\n */\r\n this.shown = new EventEmitter();\r\n /**\r\n * An event emitted when the fade out transition is finished on the related nav content\r\n *\r\n * @since 8.0.0\r\n */\r\n this.hidden = new EventEmitter();\r\n // TODO: cf https://github.com/angular/angular/issues/30106\r\n this._nav = nav;\r\n }\r\n ngAfterContentChecked() {\r\n // We are using @ContentChildren instead of @ContentChild as in the Angular version being used\r\n // only @ContentChildren allows us to specify the {descendants: false} option.\r\n // Without {descendants: false} we are hitting bugs described in:\r\n // https://github.com/ng-bootstrap/ng-bootstrap/issues/2240\r\n this.contentTpl = this.contentTpls.first;\r\n }\r\n ngOnInit() {\r\n if (!isDefined(this.domId)) {\r\n this.domId = `ngb-nav-${navCounter++}`;\r\n }\r\n }\r\n get active() { return this._nav.activeId === this.id; }\r\n get id() { return isValidNavId(this._id) ? this._id : this.domId; }\r\n get panelDomId() { return `${this.domId}-panel`; }\r\n isPanelInDom() {\r\n return (isDefined(this.destroyOnHide) ? !this.destroyOnHide : !this._nav.destroyOnHide) || this.active;\r\n }\r\n}\nNgbNavItem.ɵfac = function NgbNavItem_Factory(t) { return new (t || NgbNavItem)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => NgbNav)), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbNavItem.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbNavItem, selectors: [[\"\", \"ngbNavItem\", \"\"]], contentQueries: function NgbNavItem_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbNavContent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentTpls = _t);\n } }, hostVars: 2, hostBindings: function NgbNavItem_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"nav-item\", true);\n } }, inputs: { disabled: \"disabled\", domId: \"domId\", destroyOnHide: \"destroyOnHide\", _id: [\"ngbNavItem\", \"_id\"] }, outputs: { shown: \"shown\", hidden: \"hidden\" }, exportAs: [\"ngbNavItem\"] });\r\nNgbNavItem.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [forwardRef(() => NgbNav),] }] },\r\n { type: ElementRef }\r\n];\r\nNgbNavItem.propDecorators = {\r\n destroyOnHide: [{ type: Input }],\r\n disabled: [{ type: Input }],\r\n domId: [{ type: Input }],\r\n _id: [{ type: Input, args: ['ngbNavItem',] }],\r\n shown: [{ type: Output }],\r\n hidden: [{ type: Output }],\r\n contentTpls: [{ type: ContentChildren, args: [NgbNavContent, { descendants: false },] }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavItem, [{\n type: Directive,\n args: [{ selector: '[ngbNavItem]', exportAs: 'ngbNavItem', host: { '[class.nav-item]': 'true' } }]\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbNav)]\n }] }, { type: ɵngcc0.ElementRef }]; }, { disabled: [{\n type: Input\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], domId: [{\n type: Input\n }], destroyOnHide: [{\n type: Input\n }], _id: [{\n type: Input,\n args: ['ngbNavItem']\n }], contentTpls: [{\n type: ContentChildren,\n args: [NgbNavContent, { descendants: false }]\n }] }); })();\r\n/**\r\n * A nav directive that helps with implementing tabbed navigation components.\r\n *\r\n * @since 5.2.0\r\n */\r\nclass NgbNav {\r\n constructor(role, config, _cd, _document) {\r\n this.role = role;\r\n this._cd = _cd;\r\n this._document = _document;\r\n /**\r\n * The event emitted after the active nav changes\r\n * The payload of the event is the newly active nav id\r\n *\r\n * If you want to prevent nav change, you should use `(navChange)` event\r\n */\r\n this.activeIdChange = new EventEmitter();\r\n /**\r\n * An event emitted when the fade in transition is finished for one of the items.\r\n *\r\n * Payload of the event is the nav id that was just shown.\r\n *\r\n * @since 8.0.0\r\n */\r\n this.shown = new EventEmitter();\r\n /**\r\n * An event emitted when the fade out transition is finished for one of the items.\r\n *\r\n * Payload of the event is the nav id that was just hidden.\r\n *\r\n * @since 8.0.0\r\n */\r\n this.hidden = new EventEmitter();\r\n this.destroy$ = new Subject();\r\n this.navItemChange$ = new Subject();\r\n /**\r\n * The nav change event emitted right before the nav change happens on user click.\r\n *\r\n * This event won't be emitted if nav is changed programmatically via `[activeId]` or `.select()`.\r\n *\r\n * See [`NgbNavChangeEvent`](#/components/nav/api#NgbNavChangeEvent) for payload details.\r\n */\r\n this.navChange = new EventEmitter();\r\n this.animation = config.animation;\r\n this.destroyOnHide = config.destroyOnHide;\r\n this.orientation = config.orientation;\r\n this.roles = config.roles;\r\n this.keyboard = config.keyboard;\r\n }\r\n click(item) {\r\n if (!item.disabled) {\r\n this._updateActiveId(item.id);\r\n }\r\n }\r\n onKeyDown(event) {\r\n if (this.roles !== 'tablist' || !this.keyboard) {\r\n return;\r\n }\r\n // tslint:disable-next-line: deprecation\r\n const key = event.which;\r\n const enabledLinks = this.links.filter(link => !link.navItem.disabled);\r\n const { length } = enabledLinks;\r\n let position = -1;\r\n enabledLinks.forEach((link, index) => {\r\n if (link.elRef.nativeElement === this._document.activeElement) {\r\n position = index;\r\n }\r\n });\r\n if (length) {\r\n switch (key) {\r\n case Key.ArrowLeft:\r\n if (this.orientation === 'vertical') {\r\n return;\r\n }\r\n position = (position - 1 + length) % length;\r\n break;\r\n case Key.ArrowRight:\r\n if (this.orientation === 'vertical') {\r\n return;\r\n }\r\n position = (position + 1) % length;\r\n break;\r\n case Key.ArrowDown:\r\n if (this.orientation === 'horizontal') {\r\n return;\r\n }\r\n position = (position + 1) % length;\r\n break;\r\n case Key.ArrowUp:\r\n if (this.orientation === 'horizontal') {\r\n return;\r\n }\r\n position = (position - 1 + length) % length;\r\n break;\r\n case Key.Home:\r\n position = 0;\r\n break;\r\n case Key.End:\r\n position = length - 1;\r\n break;\r\n }\r\n if (this.keyboard === 'changeWithArrows') {\r\n this.select(enabledLinks[position].navItem.id);\r\n }\r\n enabledLinks[position].elRef.nativeElement.focus();\r\n event.preventDefault();\r\n }\r\n }\r\n /**\r\n * Selects the nav with the given id and shows its associated pane.\r\n * Any other nav that was previously selected becomes unselected and its associated pane is hidden.\r\n */\r\n select(id) { this._updateActiveId(id, false); }\r\n ngAfterContentInit() {\r\n if (!isDefined(this.activeId)) {\r\n const nextId = this.items.first ? this.items.first.id : null;\r\n if (isValidNavId(nextId)) {\r\n this._updateActiveId(nextId, false);\r\n this._cd.detectChanges();\r\n }\r\n }\r\n this.items.changes.pipe(takeUntil(this.destroy$)).subscribe(() => this._notifyItemChanged(this.activeId));\r\n }\r\n ngOnChanges({ activeId }) {\r\n if (activeId && !activeId.firstChange) {\r\n this._notifyItemChanged(activeId.currentValue);\r\n }\r\n }\r\n ngOnDestroy() { this.destroy$.next(); }\r\n _updateActiveId(nextId, emitNavChange = true) {\r\n if (this.activeId !== nextId) {\r\n let defaultPrevented = false;\r\n if (emitNavChange) {\r\n this.navChange.emit({ activeId: this.activeId, nextId, preventDefault: () => { defaultPrevented = true; } });\r\n }\r\n if (!defaultPrevented) {\r\n this.activeId = nextId;\r\n this.activeIdChange.emit(nextId);\r\n this._notifyItemChanged(nextId);\r\n }\r\n }\r\n }\r\n _notifyItemChanged(nextItemId) { this.navItemChange$.next(this._getItemById(nextItemId)); }\r\n _getItemById(itemId) {\r\n return this.items && this.items.find(item => item.id === itemId) || null;\r\n }\r\n}\nNgbNav.ɵfac = function NgbNav_Factory(t) { return new (t || NgbNav)(ɵngcc0.ɵɵinjectAttribute('role'), ɵngcc0.ɵɵdirectiveInject(NgbNavConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(DOCUMENT)); };\nNgbNav.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbNav, selectors: [[\"\", \"ngbNav\", \"\"]], contentQueries: function NgbNav_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbNavItem, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbNavLink, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.items = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.links = _t);\n } }, hostVars: 6, hostBindings: function NgbNav_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keydown.arrowLeft\", function NgbNav_keydown_arrowLeft_HostBindingHandler($event) { return ctx.onKeyDown($event); })(\"keydown.arrowRight\", function NgbNav_keydown_arrowRight_HostBindingHandler($event) { return ctx.onKeyDown($event); })(\"keydown.arrowDown\", function NgbNav_keydown_arrowDown_HostBindingHandler($event) { return ctx.onKeyDown($event); })(\"keydown.arrowUp\", function NgbNav_keydown_arrowUp_HostBindingHandler($event) { return ctx.onKeyDown($event); })(\"keydown.Home\", function NgbNav_keydown_Home_HostBindingHandler($event) { return ctx.onKeyDown($event); })(\"keydown.End\", function NgbNav_keydown_End_HostBindingHandler($event) { return ctx.onKeyDown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-orientation\", ctx.orientation === \"vertical\" && ctx.roles === \"tablist\" ? \"vertical\" : undefined)(\"role\", ctx.role ? ctx.role : ctx.roles ? \"tablist\" : undefined);\n ɵngcc0.ɵɵclassProp(\"nav\", true)(\"flex-column\", ctx.orientation === \"vertical\");\n } }, inputs: { animation: \"animation\", destroyOnHide: \"destroyOnHide\", orientation: \"orientation\", roles: \"roles\", keyboard: \"keyboard\", activeId: \"activeId\" }, outputs: { activeIdChange: \"activeIdChange\", shown: \"shown\", hidden: \"hidden\", navChange: \"navChange\" }, exportAs: [\"ngbNav\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\r\nNgbNav.ctorParameters = () => [\r\n { type: String, decorators: [{ type: Attribute, args: ['role',] }] },\r\n { type: NgbNavConfig },\r\n { type: ChangeDetectorRef },\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\r\n];\r\nNgbNav.propDecorators = {\r\n activeId: [{ type: Input }],\r\n activeIdChange: [{ type: Output }],\r\n animation: [{ type: Input }],\r\n destroyOnHide: [{ type: Input }],\r\n orientation: [{ type: Input }],\r\n roles: [{ type: Input }],\r\n keyboard: [{ type: Input }],\r\n shown: [{ type: Output }],\r\n hidden: [{ type: Output }],\r\n items: [{ type: ContentChildren, args: [NgbNavItem,] }],\r\n links: [{ type: ContentChildren, args: [forwardRef(() => NgbNavLink), { descendants: true },] }],\r\n navChange: [{ type: Output }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNav, [{\n type: Directive,\n args: [{\n selector: '[ngbNav]',\n exportAs: 'ngbNav',\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 }\n }]\n }], function () { return [{ type: String, decorators: [{\n type: Attribute,\n args: ['role']\n }] }, { type: NgbNavConfig }, { type: ɵngcc0.ChangeDetectorRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, { activeIdChange: [{\n type: Output\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], navChange: [{\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 }], activeId: [{\n type: Input\n }], items: [{\n type: ContentChildren,\n args: [NgbNavItem]\n }], links: [{\n type: ContentChildren,\n args: [forwardRef(() => NgbNavLink), { descendants: true }]\n }] }); })();\r\n/**\r\n * A directive to put on the nav link.\r\n *\r\n * @since 5.2.0\r\n */\r\nclass NgbNavLink {\r\n constructor(role, navItem, nav, elRef) {\r\n this.role = role;\r\n this.navItem = navItem;\r\n this.nav = nav;\r\n this.elRef = elRef;\r\n }\r\n hasNavItemClass() {\r\n // with alternative markup we have to add `.nav-item` class, because `ngbNavItem` is on the ng-container\r\n return this.navItem.elementRef.nativeElement.nodeType === Node.COMMENT_NODE;\r\n }\r\n}\nNgbNavLink.ɵfac = function NgbNavLink_Factory(t) { return new (t || NgbNavLink)(ɵngcc0.ɵɵinjectAttribute('role'), ɵngcc0.ɵɵdirectiveInject(NgbNavItem), ɵngcc0.ɵɵdirectiveInject(NgbNav), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbNavLink.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbNavLink, selectors: [[\"a\", \"ngbNavLink\", \"\"]], hostAttrs: [\"href\", \"\"], hostVars: 14, hostBindings: function NgbNavLink_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function NgbNavLink_click_HostBindingHandler($event) { ctx.nav.click(ctx.navItem); return $event.preventDefault(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.navItem.domId);\n ɵngcc0.ɵɵattribute(\"role\", ctx.role ? ctx.role : ctx.nav.roles ? \"tab\" : undefined)(\"tabindex\", ctx.navItem.disabled ? -1 : undefined)(\"aria-controls\", ctx.navItem.isPanelInDom() ? ctx.navItem.panelDomId : null)(\"aria-selected\", ctx.navItem.active)(\"aria-disabled\", ctx.navItem.disabled);\n ɵngcc0.ɵɵclassProp(\"nav-link\", true)(\"nav-item\", ctx.hasNavItemClass())(\"active\", ctx.navItem.active)(\"disabled\", ctx.navItem.disabled);\n } } });\r\nNgbNavLink.ctorParameters = () => [\r\n { type: String, decorators: [{ type: Attribute, args: ['role',] }] },\r\n { type: NgbNavItem },\r\n { type: NgbNav },\r\n { type: ElementRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavLink, [{\n type: Directive,\n args: [{\n selector: 'a[ngbNavLink]',\n host: {\n '[id]': 'navItem.domId',\n '[class.nav-link]': 'true',\n '[class.nav-item]': 'hasNavItemClass()',\n '[attr.role]': `role ? role : nav.roles ? 'tab' : undefined`,\n 'href': '',\n '[class.active]': 'navItem.active',\n '[class.disabled]': 'navItem.disabled',\n '[attr.tabindex]': 'navItem.disabled ? -1 : undefined',\n '[attr.aria-controls]': 'navItem.isPanelInDom() ? navItem.panelDomId : null',\n '[attr.aria-selected]': 'navItem.active',\n '[attr.aria-disabled]': 'navItem.disabled',\n '(click)': 'nav.click(navItem); $event.preventDefault()'\n }\n }]\n }], function () { return [{ type: String, decorators: [{\n type: Attribute,\n args: ['role']\n }] }, { type: NgbNavItem }, { type: NgbNav }, { type: ɵngcc0.ElementRef }]; }, null); })();\n\nconst ngbNavFadeOutTransition = ({ classList }) => {\r\n classList.remove('show');\r\n return () => classList.remove('active');\r\n};\r\nconst ngbNavFadeInTransition = (element, animation) => {\r\n if (animation) {\r\n reflow(element);\r\n }\r\n element.classList.add('show');\r\n};\n\nclass NgbNavPane {\r\n constructor(elRef) {\r\n this.elRef = elRef;\r\n }\r\n}\nNgbNavPane.ɵfac = function NgbNavPane_Factory(t) { return new (t || NgbNavPane)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbNavPane.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbNavPane, selectors: [[\"\", \"ngbNavPane\", \"\"]], hostAttrs: [1, \"tab-pane\"], hostVars: 5, hostBindings: function NgbNavPane_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.item.panelDomId);\n ɵngcc0.ɵɵattribute(\"role\", ctx.role ? ctx.role : ctx.nav.roles ? \"tabpanel\" : undefined)(\"aria-labelledby\", ctx.item.domId);\n ɵngcc0.ɵɵclassProp(\"fade\", ctx.nav.animation);\n } }, inputs: { item: \"item\", nav: \"nav\", role: \"role\" } });\r\nNgbNavPane.ctorParameters = () => [\r\n { type: ElementRef }\r\n];\r\nNgbNavPane.propDecorators = {\r\n item: [{ type: Input }],\r\n nav: [{ type: Input }],\r\n role: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavPane, [{\n type: Directive,\n args: [{\n selector: '[ngbNavPane]',\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 }], function () { return [{ type: ɵngcc0.ElementRef }]; }, { item: [{\n type: Input\n }], nav: [{\n type: Input\n }], role: [{\n type: Input\n }] }); })();\r\n/**\r\n * The outlet where currently active nav content will be displayed.\r\n *\r\n * @since 5.2.0\r\n */\r\nclass NgbNavOutlet {\r\n constructor(_cd, _ngZone) {\r\n this._cd = _cd;\r\n this._ngZone = _ngZone;\r\n this._activePane = null;\r\n }\r\n isPanelTransitioning(item) { var _a; return ((_a = this._activePane) === null || _a === void 0 ? void 0 : _a.item) === item; }\r\n ngAfterViewInit() {\r\n var _a;\r\n // initial display\r\n this._updateActivePane();\r\n // this will be emitted for all 3 types of nav changes: .select(), [activeId] or (click)\r\n this.nav.navItemChange$\r\n .pipe(takeUntil(this.nav.destroy$), startWith(((_a = this._activePane) === null || _a === void 0 ? void 0 : _a.item) || null), distinctUntilChanged(), skip(1))\r\n .subscribe(nextItem => {\r\n const options = { animation: this.nav.animation, runningTransition: 'stop' };\r\n // next panel we're switching to will only appear in DOM after the change detection is done\r\n // and `this._panes` will be updated\r\n this._cd.detectChanges();\r\n // fading out\r\n if (this._activePane) {\r\n ngbRunTransition(this._ngZone, this._activePane.elRef.nativeElement, ngbNavFadeOutTransition, options)\r\n .subscribe(() => {\r\n var _a;\r\n const activeItem = (_a = this._activePane) === null || _a === void 0 ? void 0 : _a.item;\r\n this._activePane = this._getPaneForItem(nextItem);\r\n // mark for check when transition finishes as outlet or parent containers might be OnPush\r\n // without this the panes that have \"faded out\" will stay in DOM\r\n this._cd.markForCheck();\r\n // fading in\r\n if (this._activePane) {\r\n // we have to add the '.active' class before running the transition,\r\n // because it should be in place before `ngbRunTransition` does `reflow()`\r\n this._activePane.elRef.nativeElement.classList.add('active');\r\n ngbRunTransition(this._ngZone, this._activePane.elRef.nativeElement, ngbNavFadeInTransition, options)\r\n .subscribe(() => {\r\n if (nextItem) {\r\n nextItem.shown.emit();\r\n this.nav.shown.emit(nextItem.id);\r\n }\r\n });\r\n }\r\n if (activeItem) {\r\n activeItem.hidden.emit();\r\n this.nav.hidden.emit(activeItem.id);\r\n }\r\n });\r\n }\r\n else {\r\n this._updateActivePane();\r\n }\r\n });\r\n }\r\n _updateActivePane() {\r\n var _a, _b;\r\n this._activePane = this._getActivePane();\r\n (_a = this._activePane) === null || _a === void 0 ? void 0 : _a.elRef.nativeElement.classList.add('show');\r\n (_b = this._activePane) === null || _b === void 0 ? void 0 : _b.elRef.nativeElement.classList.add('active');\r\n }\r\n _getPaneForItem(item) {\r\n return this._panes && this._panes.find(pane => pane.item === item) || null;\r\n }\r\n _getActivePane() {\r\n return this._panes && this._panes.find(pane => pane.item.active) || null;\r\n }\r\n}\nNgbNavOutlet.ɵfac = function NgbNavOutlet_Factory(t) { return new (t || NgbNavOutlet)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nNgbNavOutlet.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbNavOutlet, selectors: [[\"\", \"ngbNavOutlet\", \"\"]], viewQuery: function NgbNavOutlet_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(NgbNavPane, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._panes = _t);\n } }, hostVars: 2, hostBindings: function NgbNavOutlet_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"tab-content\", true);\n } }, inputs: { paneRole: \"paneRole\", nav: [\"ngbNavOutlet\", \"nav\"] }, attrs: _c32, decls: 1, vars: 1, consts: [[\"ngFor\", \"\", 3, \"ngForOf\"], [\"ngbNavPane\", \"\", 3, \"item\", \"nav\", \"role\", 4, \"ngIf\"], [\"ngbNavPane\", \"\", 3, \"item\", \"nav\", \"role\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function NgbNavOutlet_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbNavOutlet_ng_template_0_Template, 1, 1, \"ng-template\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.nav.items);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, NgbNavPane], encapsulation: 2, changeDetection: 0 });\r\nNgbNavOutlet.ctorParameters = () => [\r\n { type: ChangeDetectorRef },\r\n { type: NgZone }\r\n];\r\nNgbNavOutlet.propDecorators = {\r\n _panes: [{ type: ViewChildren, args: [NgbNavPane,] }],\r\n paneRole: [{ type: Input }],\r\n nav: [{ type: Input, args: ['ngbNavOutlet',] }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavOutlet, [{\n type: Component,\n args: [{\n selector: '[ngbNavOutlet]',\n host: { '[class.tab-content]': 'true' },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\r\n <ng-template ngFor let-item [ngForOf]=\"nav.items\">\r\n <div ngbNavPane *ngIf=\"item.isPanelInDom() || isPanelTransitioning(item)\" [item]=\"item\" [nav]=\"nav\" [role]=\"paneRole\">\r\n <ng-template [ngTemplateOutlet]=\"item.contentTpl?.templateRef || null\"\r\n [ngTemplateOutletContext]=\"{$implicit: item.active || isPanelTransitioning(item)}\"></ng-template>\r\n </div>\r\n </ng-template>\r\n `\n }]\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.NgZone }]; }, { _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 = [NgbNavContent, NgbNav, NgbNavItem, NgbNavLink, NgbNavOutlet, NgbNavPane];\r\nclass NgbNavModule {\r\n}\nNgbNavModule.ɵfac = function NgbNavModule_Factory(t) { return new (t || NgbNavModule)(); };\nNgbNavModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbNavModule });\nNgbNavModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavModule, [{\n type: NgModule,\n args: [{ declarations: NGB_NAV_DIRECTIVES, exports: NGB_NAV_DIRECTIVES, imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbNavModule, { declarations: function () { return [NgbNavContent, NgbNav, NgbNavItem, NgbNavLink, NgbNavOutlet, NgbNavPane]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbNavContent, NgbNav, NgbNavItem, NgbNavLink, NgbNavOutlet, NgbNavPane]; } }); })();\n\n/**\r\n * A configuration service for the [`NgbPagination`](#/components/pagination/api#NgbPagination) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the paginations used in the application.\r\n */\r\nclass NgbPaginationConfig {\r\n constructor() {\r\n this.disabled = false;\r\n this.boundaryLinks = false;\r\n this.directionLinks = true;\r\n this.ellipses = true;\r\n this.maxSize = 0;\r\n this.pageSize = 10;\r\n this.rotate = false;\r\n }\r\n}\nNgbPaginationConfig.ɵfac = function NgbPaginationConfig_Factory(t) { return new (t || NgbPaginationConfig)(); };\r\nNgbPaginationConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbPaginationConfig_Factory() { return new NgbPaginationConfig(); }, token: NgbPaginationConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\r\n * A directive to match the 'ellipsis' link template\r\n *\r\n * @since 4.1.0\r\n */\r\nclass NgbPaginationEllipsis {\r\n constructor(templateRef) {\r\n this.templateRef = templateRef;\r\n }\r\n}\nNgbPaginationEllipsis.ɵfac = function NgbPaginationEllipsis_Factory(t) { return new (t || NgbPaginationEllipsis)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPaginationEllipsis.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationEllipsis, selectors: [[\"ng-template\", \"ngbPaginationEllipsis\", \"\"]] });\r\nNgbPaginationEllipsis.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationEllipsis, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationEllipsis]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\r\n/**\r\n * A directive to match the 'first' link template\r\n *\r\n * @since 4.1.0\r\n */\r\nclass NgbPaginationFirst {\r\n constructor(templateRef) {\r\n this.templateRef = templateRef;\r\n }\r\n}\nNgbPaginationFirst.ɵfac = function NgbPaginationFirst_Factory(t) { return new (t || NgbPaginationFirst)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPaginationFirst.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationFirst, selectors: [[\"ng-template\", \"ngbPaginationFirst\", \"\"]] });\r\nNgbPaginationFirst.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationFirst, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationFirst]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\r\n/**\r\n * A directive to match the 'last' link template\r\n *\r\n * @since 4.1.0\r\n */\r\nclass NgbPaginationLast {\r\n constructor(templateRef) {\r\n this.templateRef = templateRef;\r\n }\r\n}\nNgbPaginationLast.ɵfac = function NgbPaginationLast_Factory(t) { return new (t || NgbPaginationLast)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPaginationLast.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationLast, selectors: [[\"ng-template\", \"ngbPaginationLast\", \"\"]] });\r\nNgbPaginationLast.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationLast, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationLast]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\r\n/**\r\n * A directive to match the 'next' link template\r\n *\r\n * @since 4.1.0\r\n */\r\nclass NgbPaginationNext {\r\n constructor(templateRef) {\r\n this.templateRef = templateRef;\r\n }\r\n}\nNgbPaginationNext.ɵfac = function NgbPaginationNext_Factory(t) { return new (t || NgbPaginationNext)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPaginationNext.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationNext, selectors: [[\"ng-template\", \"ngbPaginationNext\", \"\"]] });\r\nNgbPaginationNext.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationNext, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationNext]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\r\n/**\r\n * A directive to match the page 'number' link template\r\n *\r\n * @since 4.1.0\r\n */\r\nclass NgbPaginationNumber {\r\n constructor(templateRef) {\r\n this.templateRef = templateRef;\r\n }\r\n}\nNgbPaginationNumber.ɵfac = function NgbPaginationNumber_Factory(t) { return new (t || NgbPaginationNumber)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPaginationNumber.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationNumber, selectors: [[\"ng-template\", \"ngbPaginationNumber\", \"\"]] });\r\nNgbPaginationNumber.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationNumber, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationNumber]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\r\n/**\r\n * A directive to match the 'previous' link template\r\n *\r\n * @since 4.1.0\r\n */\r\nclass NgbPaginationPrevious {\r\n constructor(templateRef) {\r\n this.templateRef = templateRef;\r\n }\r\n}\nNgbPaginationPrevious.ɵfac = function NgbPaginationPrevious_Factory(t) { return new (t || NgbPaginationPrevious)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPaginationPrevious.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationPrevious, selectors: [[\"ng-template\", \"ngbPaginationPrevious\", \"\"]] });\r\nNgbPaginationPrevious.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationPrevious, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationPrevious]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\r\n/**\r\n * A directive to match the 'pages' whole content\r\n *\r\n * @since 9.1.0\r\n */\r\nclass NgbPaginationPages {\r\n constructor(templateRef) {\r\n this.templateRef = templateRef;\r\n }\r\n}\nNgbPaginationPages.ɵfac = function NgbPaginationPages_Factory(t) { return new (t || NgbPaginationPages)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPaginationPages.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationPages, selectors: [[\"ng-template\", \"ngbPaginationPages\", \"\"]] });\r\nNgbPaginationPages.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationPages, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationPages]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\r\n/**\r\n * A component that displays page numbers and allows to customize them in several ways.\r\n */\r\nclass NgbPagination {\r\n constructor(config) {\r\n this.pageCount = 0;\r\n this.pages = [];\r\n /**\r\n * The current page.\r\n *\r\n * Page numbers start with `1`.\r\n */\r\n this.page = 1;\r\n /**\r\n * An event fired when the page is changed. Will fire only if collection size is set and all values are valid.\r\n *\r\n * Event payload is the number of the newly selected page.\r\n *\r\n * Page numbers start with `1`.\r\n */\r\n this.pageChange = new EventEmitter(true);\r\n this.disabled = config.disabled;\r\n this.boundaryLinks = config.boundaryLinks;\r\n this.directionLinks = config.directionLinks;\r\n this.ellipses = config.ellipses;\r\n this.maxSize = config.maxSize;\r\n this.pageSize = config.pageSize;\r\n this.rotate = config.rotate;\r\n this.size = config.size;\r\n }\r\n hasPrevious() { return this.page > 1; }\r\n hasNext() { return this.page < this.pageCount; }\r\n nextDisabled() { return !this.hasNext() || this.disabled; }\r\n previousDisabled() { return !this.hasPrevious() || this.disabled; }\r\n selectPage(pageNumber) { this._updatePages(pageNumber); }\r\n ngOnChanges(changes) { this._updatePages(this.page); }\r\n isEllipsis(pageNumber) { return pageNumber === -1; }\r\n /**\r\n * Appends ellipses and first/last page number to the displayed pages\r\n */\r\n _applyEllipses(start, end) {\r\n if (this.ellipses) {\r\n if (start > 0) {\r\n // The first page will always be included. If the displayed range\r\n // starts after the third page, then add ellipsis. But if the range\r\n // starts on the third page, then add the second page instead of\r\n // an ellipsis, because the ellipsis would only hide a single page.\r\n if (start > 2) {\r\n this.pages.unshift(-1);\r\n }\r\n else if (start === 2) {\r\n this.pages.unshift(2);\r\n }\r\n this.pages.unshift(1);\r\n }\r\n if (end < this.pageCount) {\r\n // The last page will always be included. If the displayed range\r\n // ends before the third-last page, then add ellipsis. But if the range\r\n // ends on third-last page, then add the second-last page instead of\r\n // an ellipsis, because the ellipsis would only hide a single page.\r\n if (end < (this.pageCount - 2)) {\r\n this.pages.push(-1);\r\n }\r\n else if (end === (this.pageCount - 2)) {\r\n this.pages.push(this.pageCount - 1);\r\n }\r\n this.pages.push(this.pageCount);\r\n }\r\n }\r\n }\r\n /**\r\n * Rotates page numbers based on maxSize items visible.\r\n * Currently selected page stays in the middle:\r\n *\r\n * Ex. for selected page = 6:\r\n * [5,*6*,7] for maxSize = 3\r\n * [4,5,*6*,7] for maxSize = 4\r\n */\r\n _applyRotation() {\r\n let start = 0;\r\n let end = this.pageCount;\r\n let leftOffset = Math.floor(this.maxSize / 2);\r\n let rightOffset = this.maxSize % 2 === 0 ? leftOffset - 1 : leftOffset;\r\n if (this.page <= leftOffset) {\r\n // very beginning, no rotation -> [0..maxSize]\r\n end = this.maxSize;\r\n }\r\n else if (this.pageCount - this.page < leftOffset) {\r\n // very end, no rotation -> [len-maxSize..len]\r\n start = this.pageCount - this.maxSize;\r\n }\r\n else {\r\n // rotate\r\n start = this.page - leftOffset - 1;\r\n end = this.page + rightOffset;\r\n }\r\n return [start, end];\r\n }\r\n /**\r\n * Paginates page numbers based on maxSize items per page.\r\n */\r\n _applyPagination() {\r\n let page = Math.ceil(this.page / this.maxSize) - 1;\r\n let start = page * this.maxSize;\r\n let end = start + this.maxSize;\r\n return [start, end];\r\n }\r\n _setPageInRange(newPageNo) {\r\n const prevPageNo = this.page;\r\n this.page = getValueInRange(newPageNo, this.pageCount, 1);\r\n if (this.page !== prevPageNo && isNumber(this.collectionSize)) {\r\n this.pageChange.emit(this.page);\r\n }\r\n }\r\n _updatePages(newPage) {\r\n this.pageCount = Math.ceil(this.collectionSize / this.pageSize);\r\n if (!isNumber(this.pageCount)) {\r\n this.pageCount = 0;\r\n }\r\n // fill-in model needed to render pages\r\n this.pages.length = 0;\r\n for (let i = 1; i <= this.pageCount; i++) {\r\n this.pages.push(i);\r\n }\r\n // set page within 1..max range\r\n this._setPageInRange(newPage);\r\n // apply maxSize if necessary\r\n if (this.maxSize > 0 && this.pageCount > this.maxSize) {\r\n let start = 0;\r\n let end = this.pageCount;\r\n // either paginating or rotating page numbers\r\n if (this.rotate) {\r\n [start, end] = this._applyRotation();\r\n }\r\n else {\r\n [start, end] = this._applyPagination();\r\n }\r\n this.pages = this.pages.slice(start, end);\r\n // adding ellipses\r\n this._applyEllipses(start, end);\r\n }\r\n }\r\n}\nNgbPagination.ɵfac = function NgbPagination_Factory(t) { return new (t || NgbPagination)(ɵngcc0.ɵɵdirectiveInject(NgbPaginationConfig)); };\nNgbPagination.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbPagination, selectors: [[\"ngb-pagination\"]], contentQueries: function NgbPagination_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationEllipsis, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationFirst, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationLast, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationNext, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationNumber, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationPrevious, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationPages, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplEllipsis = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplFirst = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplLast = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplNext = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplNumber = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplPrevious = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplPages = _t.first);\n } }, hostAttrs: [\"role\", \"navigation\"], inputs: { page: \"page\", disabled: \"disabled\", boundaryLinks: \"boundaryLinks\", directionLinks: \"directionLinks\", ellipses: \"ellipses\", maxSize: \"maxSize\", pageSize: \"pageSize\", rotate: \"rotate\", size: \"size\", collectionSize: \"collectionSize\" }, outputs: { pageChange: \"pageChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 20, vars: 12, consts: function () { let i18n_34; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_first$$FESM2015_NG_BOOTSTRAP_JS__35 = goog.getMsg(\"\\u00AB\\u00AB\");\n i18n_34 = MSG_EXTERNAL_ngb_pagination_first$$FESM2015_NG_BOOTSTRAP_JS__35;\n }\n else {\n i18n_34 = $localize `:@@ngb.pagination.first␟656506dfd46380956a655f919f1498d018f75ca0␟6867721956102594380:««`;\n } let i18n_36; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_previous$$FESM2015_NG_BOOTSTRAP_JS__37 = goog.getMsg(\"\\u00AB\");\n i18n_36 = MSG_EXTERNAL_ngb_pagination_previous$$FESM2015_NG_BOOTSTRAP_JS__37;\n }\n else {\n i18n_36 = $localize `:@@ngb.pagination.previous␟6e52b6ee77a4848d899dd21b591c6fd499e3aef3␟6479320895410098858:«`;\n } let i18n_38; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_next$$FESM2015_NG_BOOTSTRAP_JS__39 = goog.getMsg(\"\\u00BB\");\n i18n_38 = MSG_EXTERNAL_ngb_pagination_next$$FESM2015_NG_BOOTSTRAP_JS__39;\n }\n else {\n i18n_38 = $localize `:@@ngb.pagination.next␟ba9cbb4ff311464308a3627e4f1c3345d9fe6d7d␟5458177150283468089:»`;\n } let i18n_40; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_last$$FESM2015_NG_BOOTSTRAP_JS__41 = goog.getMsg(\"\\u00BB\\u00BB\");\n i18n_40 = MSG_EXTERNAL_ngb_pagination_last$$FESM2015_NG_BOOTSTRAP_JS__41;\n }\n else {\n i18n_40 = $localize `:@@ngb.pagination.last␟49f27a460bc97e7e00be5b37098bfa79884fc7d9␟5277020320267646988:»»`;\n } let i18n_44; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_first_aria$$FESM2015_NG_BOOTSTRAP_JS__45 = goog.getMsg(\"First\");\n i18n_44 = MSG_EXTERNAL_ngb_pagination_first_aria$$FESM2015_NG_BOOTSTRAP_JS__45;\n }\n else {\n i18n_44 = $localize `:@@ngb.pagination.first-aria␟f2f852318759c6396b5d3d17031d53817d7b38cc␟2241508602425256033:First`;\n } let i18n_47; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_previous_aria$$FESM2015_NG_BOOTSTRAP_JS__48 = goog.getMsg(\"Previous\");\n i18n_47 = MSG_EXTERNAL_ngb_pagination_previous_aria$$FESM2015_NG_BOOTSTRAP_JS__48;\n }\n else {\n i18n_47 = $localize `:@@ngb.pagination.previous-aria␟680d5c75b7fd8d37961083608b9fcdc4167b4c43␟4452427314943113135:Previous`;\n } let i18n_50; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_next_aria$$FESM2015_NG_BOOTSTRAP_JS__51 = goog.getMsg(\"Next\");\n i18n_50 = MSG_EXTERNAL_ngb_pagination_next_aria$$FESM2015_NG_BOOTSTRAP_JS__51;\n }\n else {\n i18n_50 = $localize `:@@ngb.pagination.next-aria␟f732c304c7433e5a83ffcd862c3dce709a0f4982␟3885497195825665706:Next`;\n } let i18n_52; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_last_aria$$FESM2015_NG_BOOTSTRAP_JS__53 = goog.getMsg(\"Last\");\n i18n_52 = MSG_EXTERNAL_ngb_pagination_last_aria$$FESM2015_NG_BOOTSTRAP_JS__53;\n }\n else {\n i18n_52 = $localize `:@@ngb.pagination.last-aria␟5c729788ba138508aca1bec050b610f7bf81db3e␟4882268002141858767:Last`;\n } return [[\"first\", \"\"], [\"previous\", \"\"], [\"next\", \"\"], [\"last\", \"\"], [\"ellipsis\", \"\"], [\"defaultNumber\", \"\"], [\"defaultPages\", \"\"], [\"class\", \"page-item\", 3, \"disabled\", 4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"aria-hidden\", \"true\"], i18n_34, i18n_36, i18n_38, i18n_40, [\"class\", \"sr-only\", 4, \"ngIf\"], [1, \"sr-only\"], [\"class\", \"page-item\", 3, \"active\", \"disabled\", 4, \"ngFor\", \"ngForOf\"], [1, \"page-item\"], [\"class\", \"page-link\", \"tabindex\", \"-1\", \"aria-disabled\", \"true\", 4, \"ngIf\"], [\"class\", \"page-link\", \"href\", \"\", 3, \"click\", 4, \"ngIf\"], [\"tabindex\", \"-1\", \"aria-disabled\", \"true\", 1, \"page-link\"], [\"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_44, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_47, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_50, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_52, \"href\", \"\", 1, \"page-link\", 3, \"click\"]]; }, template: function NgbPagination_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbPagination_ng_template_0_Template, 2, 0, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbPagination_ng_template_2_Template, 2, 0, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(4, NgbPagination_ng_template_4_Template, 2, 0, \"ng-template\", null, 2, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(6, NgbPagination_ng_template_6_Template, 2, 0, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(8, NgbPagination_ng_template_8_Template, 1, 0, \"ng-template\", null, 4, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(10, NgbPagination_ng_template_10_Template, 2, 2, \"ng-template\", null, 5, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(12, NgbPagination_ng_template_12_Template, 1, 1, \"ng-template\", null, 6, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementStart(14, \"ul\");\n ɵngcc0.ɵɵtemplate(15, NgbPagination_li_15_Template, 3, 9, \"li\", 7);\n ɵngcc0.ɵɵtemplate(16, NgbPagination_li_16_Template, 3, 8, \"li\", 7);\n ɵngcc0.ɵɵtemplate(17, NgbPagination_ng_template_17_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵtemplate(18, NgbPagination_li_18_Template, 3, 9, \"li\", 7);\n ɵngcc0.ɵɵtemplate(19, NgbPagination_li_19_Template, 3, 9, \"li\", 7);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n const _r12 = ɵngcc0.ɵɵreference(13);\n ɵngcc0.ɵɵadvance(14);\n ɵngcc0.ɵɵclassMap(\"pagination\" + (ctx.size ? \" pagination-\" + ctx.size : \"\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.boundaryLinks);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.directionLinks);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx.tplPages == null ? null : ctx.tplPages.templateRef) || _r12)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(8, _c54, ctx.page, ctx.pages, ctx.disabled));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.directionLinks);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.boundaryLinks);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], encapsulation: 2, changeDetection: 0 });\r\nNgbPagination.ctorParameters = () => [\r\n { type: NgbPaginationConfig }\r\n];\r\nNgbPagination.propDecorators = {\r\n tplEllipsis: [{ type: ContentChild, args: [NgbPaginationEllipsis, { static: false },] }],\r\n tplFirst: [{ type: ContentChild, args: [NgbPaginationFirst, { static: false },] }],\r\n tplLast: [{ type: ContentChild, args: [NgbPaginationLast, { static: false },] }],\r\n tplNext: [{ type: ContentChild, args: [NgbPaginationNext, { static: false },] }],\r\n tplNumber: [{ type: ContentChild, args: [NgbPaginationNumber, { static: false },] }],\r\n tplPrevious: [{ type: ContentChild, args: [NgbPaginationPrevious, { static: false },] }],\r\n tplPages: [{ type: ContentChild, args: [NgbPaginationPages, { static: false },] }],\r\n disabled: [{ type: Input }],\r\n boundaryLinks: [{ type: Input }],\r\n directionLinks: [{ type: Input }],\r\n ellipses: [{ type: Input }],\r\n rotate: [{ type: Input }],\r\n collectionSize: [{ type: Input }],\r\n maxSize: [{ type: Input }],\r\n page: [{ type: Input }],\r\n pageSize: [{ type: Input }],\r\n pageChange: [{ type: Output }],\r\n size: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPagination, [{\n type: Component,\n args: [{\n selector: 'ngb-pagination',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { 'role': 'navigation' },\n template: `\r\n <ng-template #first><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.first\">««</span></ng-template>\r\n <ng-template #previous><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.previous\">«</span></ng-template>\r\n <ng-template #next><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.next\">»</span></ng-template>\r\n <ng-template #last><span aria-hidden=\"true\" i18n=\"@@ngb.pagination.last\">»»</span></ng-template>\r\n <ng-template #ellipsis>...</ng-template>\r\n <ng-template #defaultNumber let-page let-currentPage=\"currentPage\">\r\n {{ page }}\r\n <span *ngIf=\"page === currentPage\" class=\"sr-only\">(current)</span>\r\n </ng-template>\r\n <ng-template #defaultPages let-page let-pages=\"pages\" let-disabled=\"disabled\">\r\n <li *ngFor=\"let pageNumber of pages\" class=\"page-item\" [class.active]=\"pageNumber === page\"\r\n [class.disabled]=\"isEllipsis(pageNumber) || disabled\" [attr.aria-current]=\"(pageNumber === page ? 'page' : null)\">\r\n <a *ngIf=\"isEllipsis(pageNumber)\" class=\"page-link\" tabindex=\"-1\" aria-disabled=\"true\">\r\n <ng-template [ngTemplateOutlet]=\"tplEllipsis?.templateRef || ellipsis\"\r\n [ngTemplateOutletContext]=\"{disabled: true, currentPage: page}\"></ng-template>\r\n </a>\r\n <a *ngIf=\"!isEllipsis(pageNumber)\" class=\"page-link\" href (click)=\"selectPage(pageNumber); $event.preventDefault()\"\r\n [attr.tabindex]=\"disabled ? '-1' : null\" [attr.aria-disabled]=\"disabled ? 'true' : null\">\r\n <ng-template [ngTemplateOutlet]=\"tplNumber?.templateRef || defaultNumber\"\r\n [ngTemplateOutletContext]=\"{disabled: disabled, $implicit: pageNumber, currentPage: page}\"></ng-template>\r\n </a>\r\n </li>\r\n </ng-template>\r\n <ul [class]=\"'pagination' + (size ? ' pagination-' + size : '')\">\r\n <li *ngIf=\"boundaryLinks\" class=\"page-item\"\r\n [class.disabled]=\"previousDisabled()\">\r\n <a aria-label=\"First\" i18n-aria-label=\"@@ngb.pagination.first-aria\" class=\"page-link\" href\r\n (click)=\"selectPage(1); $event.preventDefault()\" [attr.tabindex]=\"previousDisabled() ? '-1' : null\"\r\n [attr.aria-disabled]=\"previousDisabled() ? 'true' : null\">\r\n <ng-template [ngTemplateOutlet]=\"tplFirst?.templateRef || first\"\r\n [ngTemplateOutletContext]=\"{disabled: previousDisabled(), currentPage: page}\"></ng-template>\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"directionLinks\" class=\"page-item\"\r\n [class.disabled]=\"previousDisabled()\">\r\n <a aria-label=\"Previous\" i18n-aria-label=\"@@ngb.pagination.previous-aria\" class=\"page-link\" href\r\n (click)=\"selectPage(page-1); $event.preventDefault()\" [attr.tabindex]=\"previousDisabled() ? '-1' : null\"\r\n [attr.aria-disabled]=\"previousDisabled() ? 'true' : null\">\r\n <ng-template [ngTemplateOutlet]=\"tplPrevious?.templateRef || previous\"\r\n [ngTemplateOutletContext]=\"{disabled: previousDisabled()}\"></ng-template>\r\n </a>\r\n </li>\r\n <ng-template\r\n [ngTemplateOutlet]=\"tplPages?.templateRef || defaultPages\"\r\n [ngTemplateOutletContext]=\"{ $implicit: page, pages: pages, disabled: disabled }\"\r\n >\r\n </ng-template>\r\n <li *ngIf=\"directionLinks\" class=\"page-item\" [class.disabled]=\"nextDisabled()\">\r\n <a aria-label=\"Next\" i18n-aria-label=\"@@ngb.pagination.next-aria\" class=\"page-link\" href\r\n (click)=\"selectPage(page+1); $event.preventDefault()\" [attr.tabindex]=\"nextDisabled() ? '-1' : null\"\r\n [attr.aria-disabled]=\"nextDisabled() ? 'true' : null\">\r\n <ng-template [ngTemplateOutlet]=\"tplNext?.templateRef || next\"\r\n [ngTemplateOutletContext]=\"{disabled: nextDisabled(), currentPage: page}\"></ng-template>\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"boundaryLinks\" class=\"page-item\" [class.disabled]=\"nextDisabled()\">\r\n <a aria-label=\"Last\" i18n-aria-label=\"@@ngb.pagination.last-aria\" class=\"page-link\" href\r\n (click)=\"selectPage(pageCount); $event.preventDefault()\" [attr.tabindex]=\"nextDisabled() ? '-1' : null\"\r\n [attr.aria-disabled]=\"nextDisabled() ? 'true' : null\">\r\n <ng-template [ngTemplateOutlet]=\"tplLast?.templateRef || last\"\r\n [ngTemplateOutletContext]=\"{disabled: nextDisabled(), currentPage: page}\"></ng-template>\r\n </a>\r\n </li>\r\n </ul>\r\n `\n }]\n }], function () { return [{ type: NgbPaginationConfig }]; }, { page: [{\n type: Input\n }], pageChange: [{\n type: Output\n }], disabled: [{\n type: Input\n }], boundaryLinks: [{\n type: Input\n }], directionLinks: [{\n type: Input\n }], ellipses: [{\n type: Input\n }], maxSize: [{\n type: Input\n }], pageSize: [{\n type: Input\n }], rotate: [{\n type: Input\n }], size: [{\n type: Input\n }], 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 }], collectionSize: [{\n type: Input\n }] }); })();\n\nconst DIRECTIVES = [\r\n NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber,\r\n NgbPaginationPrevious, NgbPaginationPages\r\n];\r\nclass NgbPaginationModule {\r\n}\nNgbPaginationModule.ɵfac = function NgbPaginationModule_Factory(t) { return new (t || NgbPaginationModule)(); };\nNgbPaginationModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbPaginationModule });\nNgbPaginationModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationModule, [{\n type: NgModule,\n args: [{ declarations: DIRECTIVES, exports: DIRECTIVES, imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbPaginationModule, { declarations: function () { return [NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious, NgbPaginationPages]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious, NgbPaginationPages]; } }); })();\n\nclass Trigger {\r\n constructor(open, close) {\r\n this.open = open;\r\n this.close = close;\r\n if (!close) {\r\n this.close = open;\r\n }\r\n }\r\n isManual() { return this.open === 'manual' || this.close === 'manual'; }\r\n}\r\nconst DEFAULT_ALIASES = {\r\n 'hover': ['mouseenter', 'mouseleave'],\r\n 'focus': ['focusin', 'focusout'],\r\n};\r\nfunction parseTriggers(triggers, aliases = DEFAULT_ALIASES) {\r\n const trimmedTriggers = (triggers || '').trim();\r\n if (trimmedTriggers.length === 0) {\r\n return [];\r\n }\r\n const parsedTriggers = trimmedTriggers.split(/\\s+/).map(trigger => trigger.split(':')).map((triggerPair) => {\r\n let alias = aliases[triggerPair[0]] || triggerPair;\r\n return new Trigger(alias[0], alias[1]);\r\n });\r\n const manualTriggers = parsedTriggers.filter(triggerPair => triggerPair.isManual());\r\n if (manualTriggers.length > 1) {\r\n throw 'Triggers parse error: only one manual trigger is allowed';\r\n }\r\n if (manualTriggers.length === 1 && parsedTriggers.length > 1) {\r\n throw 'Triggers parse error: manual trigger can\\'t be mixed with other triggers';\r\n }\r\n return parsedTriggers;\r\n}\r\nfunction observeTriggers(renderer, nativeElement, triggers, isOpenedFn) {\r\n return new Observable(subscriber => {\r\n const listeners = [];\r\n const openFn = () => subscriber.next(true);\r\n const closeFn = () => subscriber.next(false);\r\n const toggleFn = () => subscriber.next(!isOpenedFn());\r\n triggers.forEach((trigger) => {\r\n if (trigger.open === trigger.close) {\r\n listeners.push(renderer.listen(nativeElement, trigger.open, toggleFn));\r\n }\r\n else {\r\n listeners.push(renderer.listen(nativeElement, trigger.open, openFn), renderer.listen(nativeElement, trigger.close, closeFn));\r\n }\r\n });\r\n return () => { listeners.forEach(unsubscribeFn => unsubscribeFn()); };\r\n });\r\n}\r\nconst delayOrNoop = (time) => time > 0 ? delay(time) : (a) => a;\r\nconst ɵ0$5 = delayOrNoop;\r\nfunction triggerDelay(openDelay, closeDelay, isOpenedFn) {\r\n return (input$) => {\r\n let pending = null;\r\n const filteredInput$ = input$.pipe(map(open => ({ open })), filter(event => {\r\n const currentlyOpen = isOpenedFn();\r\n if (currentlyOpen !== event.open && (!pending || pending.open === currentlyOpen)) {\r\n pending = event;\r\n return true;\r\n }\r\n if (pending && pending.open !== event.open) {\r\n pending = null;\r\n }\r\n return false;\r\n }), share());\r\n const delayedOpen$ = filteredInput$.pipe(filter(event => event.open), delayOrNoop(openDelay));\r\n const delayedClose$ = filteredInput$.pipe(filter(event => !event.open), delayOrNoop(closeDelay));\r\n return merge(delayedOpen$, delayedClose$)\r\n .pipe(filter(event => {\r\n if (event === pending) {\r\n pending = null;\r\n return event.open !== isOpenedFn();\r\n }\r\n return false;\r\n }), map(event => event.open));\r\n };\r\n}\r\nfunction listenToTriggers(renderer, nativeElement, triggers, isOpenedFn, openFn, closeFn, openDelay = 0, closeDelay = 0) {\r\n const parsedTriggers = parseTriggers(triggers);\r\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\r\n return () => { };\r\n }\r\n const subscription = observeTriggers(renderer, nativeElement, parsedTriggers, isOpenedFn)\r\n .pipe(triggerDelay(openDelay, closeDelay, isOpenedFn))\r\n .subscribe(open => (open ? openFn() : closeFn()));\r\n return () => subscription.unsubscribe();\r\n}\n\n/**\r\n * A configuration service for the [`NgbPopover`](#/components/popover/api#NgbPopover) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the popovers used in the application.\r\n */\r\nclass NgbPopoverConfig {\r\n constructor(_ngbConfig) {\r\n this._ngbConfig = _ngbConfig;\r\n this.autoClose = true;\r\n this.placement = 'auto';\r\n this.triggers = 'click';\r\n this.disablePopover = false;\r\n this.openDelay = 0;\r\n this.closeDelay = 0;\r\n }\r\n get animation() { return (this._animation === undefined) ? this._ngbConfig.animation : this._animation; }\r\n set animation(animation) { this._animation = animation; }\r\n}\nNgbPopoverConfig.ɵfac = function NgbPopoverConfig_Factory(t) { return new (t || NgbPopoverConfig)(ɵngcc0.ɵɵinject(NgbConfig)); };\r\nNgbPopoverConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbPopoverConfig_Factory() { return new NgbPopoverConfig(ɵɵinject(NgbConfig)); }, token: NgbPopoverConfig, providedIn: \"root\" });\r\nNgbPopoverConfig.ctorParameters = () => [\r\n { type: NgbConfig }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPopoverConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: NgbConfig }]; }, null); })();\n\nlet nextId$3 = 0;\r\nclass NgbPopoverWindow {\r\n isTitleTemplate() { return this.title instanceof TemplateRef; }\r\n}\nNgbPopoverWindow.ɵfac = function NgbPopoverWindow_Factory(t) { return new (t || NgbPopoverWindow)(); };\nNgbPopoverWindow.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbPopoverWindow, selectors: [[\"ngb-popover-window\"]], hostAttrs: [\"role\", \"tooltip\"], hostVars: 5, hostBindings: function NgbPopoverWindow_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n ɵngcc0.ɵɵclassMap(\"popover\" + (ctx.popoverClass ? \" \" + ctx.popoverClass : \"\"));\n ɵngcc0.ɵɵclassProp(\"fade\", ctx.animation);\n } }, inputs: { animation: \"animation\", title: \"title\", id: \"id\", popoverClass: \"popoverClass\", context: \"context\" }, ngContentSelectors: _c3, decls: 4, vars: 1, consts: [[1, \"arrow\"], [\"class\", \"popover-header\", 4, \"ngIf\"], [1, \"popover-body\"], [1, \"popover-header\"], [\"simpleTitle\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function NgbPopoverWindow_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, NgbPopoverWindow_h3_1_Template, 4, 2, \"h3\", 1);\n ɵngcc0.ɵɵelementStart(2, \"div\", 2);\n ɵngcc0.ɵɵprojection(3);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.title);\n } }, dependencies: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], styles: [\"ngb-popover-window.bs-popover-bottom>.arrow,ngb-popover-window.bs-popover-top>.arrow{left:50%;margin-left:-.5rem}ngb-popover-window.bs-popover-bottom-left>.arrow,ngb-popover-window.bs-popover-top-left>.arrow{left:2em}ngb-popover-window.bs-popover-bottom-right>.arrow,ngb-popover-window.bs-popover-top-right>.arrow{left:auto;right:2em}ngb-popover-window.bs-popover-left>.arrow,ngb-popover-window.bs-popover-right>.arrow{margin-top:-.5rem;top:50%}ngb-popover-window.bs-popover-left-top>.arrow,ngb-popover-window.bs-popover-right-top>.arrow{top:.7em}ngb-popover-window.bs-popover-left-bottom>.arrow,ngb-popover-window.bs-popover-right-bottom>.arrow{bottom:.7em;top:auto}\"], encapsulation: 2, changeDetection: 0 });\r\nNgbPopoverWindow.propDecorators = {\r\n animation: [{ type: Input }],\r\n title: [{ type: Input }],\r\n id: [{ type: Input }],\r\n popoverClass: [{ type: Input }],\r\n context: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPopoverWindow, [{\n type: Component,\n args: [{ selector: 'ngb-popover-window', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n '[class]': '\"popover\" + (popoverClass ? \" \" + popoverClass : \"\")',\n '[class.fade]': 'animation',\n 'role': 'tooltip',\n '[id]': 'id'\n }, template: `\r\n <div class=\"arrow\"></div>\r\n <h3 class=\"popover-header\" *ngIf=\"title\">\r\n <ng-template #simpleTitle>{{title}}</ng-template>\r\n <ng-template [ngTemplateOutlet]=\"isTitleTemplate() ? $any(title) : simpleTitle\" [ngTemplateOutletContext]=\"context\"></ng-template>\r\n </h3>\r\n <div class=\"popover-body\"><ng-content></ng-content></div>`, styles: [\"ngb-popover-window.bs-popover-bottom>.arrow,ngb-popover-window.bs-popover-top>.arrow{left:50%;margin-left:-.5rem}ngb-popover-window.bs-popover-bottom-left>.arrow,ngb-popover-window.bs-popover-top-left>.arrow{left:2em}ngb-popover-window.bs-popover-bottom-right>.arrow,ngb-popover-window.bs-popover-top-right>.arrow{left:auto;right:2em}ngb-popover-window.bs-popover-left>.arrow,ngb-popover-window.bs-popover-right>.arrow{margin-top:-.5rem;top:50%}ngb-popover-window.bs-popover-left-top>.arrow,ngb-popover-window.bs-popover-right-top>.arrow{top:.7em}ngb-popover-window.bs-popover-left-bottom>.arrow,ngb-popover-window.bs-popover-right-bottom>.arrow{bottom:.7em;top:auto}\"] }]\n }], null, { 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 }] }); })();\r\n/**\r\n * A lightweight and extensible directive for fancy popover creation.\r\n */\r\nclass NgbPopover {\r\n constructor(_elementRef, _renderer, injector, componentFactoryResolver, viewContainerRef, config, _ngZone, _document, _changeDetector, applicationRef) {\r\n this._elementRef = _elementRef;\r\n this._renderer = _renderer;\r\n this._ngZone = _ngZone;\r\n this._document = _document;\r\n this._changeDetector = _changeDetector;\r\n /**\r\n * An event emitted when the popover opening animation has finished. Contains no payload.\r\n */\r\n this.shown = new EventEmitter();\r\n /**\r\n * An event emitted when the popover closing animation has finished. Contains no payload.\r\n *\r\n * At this point popover is not in the DOM anymore.\r\n */\r\n this.hidden = new EventEmitter();\r\n this._ngbPopoverWindowId = `ngb-popover-${nextId$3++}`;\r\n this._windowRef = null;\r\n this.animation = config.animation;\r\n this.autoClose = config.autoClose;\r\n this.placement = config.placement;\r\n this.triggers = config.triggers;\r\n this.container = config.container;\r\n this.disablePopover = config.disablePopover;\r\n this.popoverClass = config.popoverClass;\r\n this.openDelay = config.openDelay;\r\n this.closeDelay = config.closeDelay;\r\n this._popupService = new PopupService(NgbPopoverWindow, injector, viewContainerRef, _renderer, this._ngZone, componentFactoryResolver, applicationRef);\r\n this._zoneSubscription = _ngZone.onStable.subscribe(() => {\r\n if (this._windowRef) {\r\n positionElements(this._elementRef.nativeElement, this._windowRef.location.nativeElement, this.placement, this.container === 'body', 'bs-popover');\r\n }\r\n });\r\n }\r\n _isDisabled() {\r\n if (this.disablePopover) {\r\n return true;\r\n }\r\n if (!this.ngbPopover && !this.popoverTitle) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n /**\r\n * Opens the popover.\r\n *\r\n * This is considered to be a \"manual\" triggering.\r\n * The `context` is an optional value to be injected into the popover template when it is created.\r\n */\r\n open(context) {\r\n if (!this._windowRef && !this._isDisabled()) {\r\n // this type assertion is safe because otherwise _isDisabled would return true\r\n const { windowRef, transition$ } = this._popupService.open(this.ngbPopover, context, this.animation);\r\n this._windowRef = windowRef;\r\n this._windowRef.instance.animation = this.animation;\r\n this._windowRef.instance.title = this.popoverTitle;\r\n this._windowRef.instance.context = context;\r\n this._windowRef.instance.popoverClass = this.popoverClass;\r\n this._windowRef.instance.id = this._ngbPopoverWindowId;\r\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-describedby', this._ngbPopoverWindowId);\r\n if (this.container === 'body') {\r\n this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement);\r\n }\r\n // We need to detect changes, because we don't know where .open() might be called from.\r\n // Ex. opening popover from one of lifecycle hooks that run after the CD\r\n // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception\r\n this._windowRef.changeDetectorRef.detectChanges();\r\n // We need to mark for check, because popover won't work inside the OnPush component.\r\n // Ex. when we use expression like `{{ popover.isOpen() : 'opened' : 'closed' }}`\r\n // inside the template of an OnPush component and we change the popover from\r\n // open -> closed, the expression in question won't be updated unless we explicitly\r\n // mark the parent component to be checked.\r\n this._windowRef.changeDetectorRef.markForCheck();\r\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [this._windowRef.location.nativeElement]);\r\n transition$.subscribe(() => this.shown.emit());\r\n }\r\n }\r\n /**\r\n * Closes the popover.\r\n *\r\n * This is considered to be a \"manual\" triggering of the popover.\r\n */\r\n close() {\r\n if (this._windowRef) {\r\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-describedby');\r\n this._popupService.close(this.animation).subscribe(() => {\r\n this._windowRef = null;\r\n this.hidden.emit();\r\n this._changeDetector.markForCheck();\r\n });\r\n }\r\n }\r\n /**\r\n * Toggles the popover.\r\n *\r\n * This is considered to be a \"manual\" triggering of the popover.\r\n */\r\n toggle() {\r\n if (this._windowRef) {\r\n this.close();\r\n }\r\n else {\r\n this.open();\r\n }\r\n }\r\n /**\r\n * Returns `true`, if the popover is currently shown.\r\n */\r\n isOpen() { return this._windowRef != null; }\r\n ngOnInit() {\r\n this._unregisterListenersFn = listenToTriggers(this._renderer, this._elementRef.nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay);\r\n }\r\n ngOnChanges({ ngbPopover, popoverTitle, disablePopover, popoverClass }) {\r\n if (popoverClass && this.isOpen()) {\r\n this._windowRef.instance.popoverClass = popoverClass.currentValue;\r\n }\r\n // close popover if title and content become empty, or disablePopover set to true\r\n if ((ngbPopover || popoverTitle || disablePopover) && this._isDisabled()) {\r\n this.close();\r\n }\r\n }\r\n ngOnDestroy() {\r\n this.close();\r\n // This check is needed as it might happen that ngOnDestroy is called before ngOnInit\r\n // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199\r\n if (this._unregisterListenersFn) {\r\n this._unregisterListenersFn();\r\n }\r\n this._zoneSubscription.unsubscribe();\r\n }\r\n}\nNgbPopover.ɵfac = function NgbPopover_Factory(t) { return new (t || NgbPopover)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(NgbPopoverConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ApplicationRef)); };\nNgbPopover.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPopover, selectors: [[\"\", \"ngbPopover\", \"\"]], inputs: { animation: \"animation\", autoClose: \"autoClose\", placement: \"placement\", triggers: \"triggers\", container: \"container\", disablePopover: \"disablePopover\", popoverClass: \"popoverClass\", openDelay: \"openDelay\", closeDelay: \"closeDelay\", ngbPopover: \"ngbPopover\", popoverTitle: \"popoverTitle\" }, outputs: { shown: \"shown\", hidden: \"hidden\" }, exportAs: [\"ngbPopover\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\r\nNgbPopover.ctorParameters = () => [\r\n { type: ElementRef },\r\n { type: Renderer2 },\r\n { type: Injector },\r\n { type: ComponentFactoryResolver },\r\n { type: ViewContainerRef },\r\n { type: NgbPopoverConfig },\r\n { type: NgZone },\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\r\n { type: ChangeDetectorRef },\r\n { type: ApplicationRef }\r\n];\r\nNgbPopover.propDecorators = {\r\n animation: [{ type: Input }],\r\n autoClose: [{ type: Input }],\r\n ngbPopover: [{ type: Input }],\r\n popoverTitle: [{ type: Input }],\r\n placement: [{ type: Input }],\r\n triggers: [{ type: Input }],\r\n container: [{ type: Input }],\r\n disablePopover: [{ type: Input }],\r\n popoverClass: [{ type: Input }],\r\n openDelay: [{ type: Input }],\r\n closeDelay: [{ type: Input }],\r\n shown: [{ type: Output }],\r\n hidden: [{ type: Output }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPopover, [{\n type: Directive,\n args: [{ selector: '[ngbPopover]', exportAs: 'ngbPopover' }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.Injector }, { type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.ViewContainerRef }, { type: NgbPopoverConfig }, { type: ɵngcc0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ApplicationRef }]; }, { shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], animation: [{\n type: Input\n }], autoClose: [{\n type: Input\n }], placement: [{\n type: Input\n }], triggers: [{\n type: Input\n }], container: [{\n type: Input\n }], disablePopover: [{\n type: Input\n }], popoverClass: [{\n type: Input\n }], openDelay: [{\n type: Input\n }], closeDelay: [{\n type: Input\n }], ngbPopover: [{\n type: Input\n }], popoverTitle: [{\n type: Input\n }] }); })();\n\nclass NgbPopoverModule {\r\n}\nNgbPopoverModule.ɵfac = function NgbPopoverModule_Factory(t) { return new (t || NgbPopoverModule)(); };\nNgbPopoverModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbPopoverModule });\nNgbPopoverModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPopoverModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbPopover, NgbPopoverWindow],\n exports: [NgbPopover],\n imports: [CommonModule],\n entryComponents: [NgbPopoverWindow]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbPopoverModule, { declarations: function () { return [NgbPopover, NgbPopoverWindow]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbPopover]; } }); })();\n\n/**\r\n * A configuration service for the [`NgbProgressbar`](#/components/progressbar/api#NgbProgressbar) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the progress bars used in the application.\r\n */\r\nclass NgbProgressbarConfig {\r\n constructor() {\r\n this.max = 100;\r\n this.animated = false;\r\n this.striped = false;\r\n this.showValue = false;\r\n }\r\n}\nNgbProgressbarConfig.ɵfac = function NgbProgressbarConfig_Factory(t) { return new (t || NgbProgressbarConfig)(); };\r\nNgbProgressbarConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbProgressbarConfig_Factory() { return new NgbProgressbarConfig(); }, token: NgbProgressbarConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbProgressbarConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\r\n * A directive that provides feedback on the progress of a workflow or an action.\r\n */\r\nclass NgbProgressbar {\r\n constructor(config) {\r\n /**\r\n * The current value for the progress bar.\r\n *\r\n * Should be in the `[0, max]` range.\r\n */\r\n this.value = 0;\r\n this.max = config.max;\r\n this.animated = config.animated;\r\n this.striped = config.striped;\r\n this.textType = config.textType;\r\n this.type = config.type;\r\n this.showValue = config.showValue;\r\n this.height = config.height;\r\n }\r\n /**\r\n * The maximal value to be displayed in the progress bar.\r\n *\r\n * Should be a positive number. Will default to 100 otherwise.\r\n */\r\n set max(max) {\r\n this._max = !isNumber(max) || max <= 0 ? 100 : max;\r\n }\r\n get max() { return this._max; }\r\n getValue() { return getValueInRange(this.value, this.max); }\r\n getPercentValue() { return 100 * this.getValue() / this.max; }\r\n}\nNgbProgressbar.ɵfac = function NgbProgressbar_Factory(t) { return new (t || NgbProgressbar)(ɵngcc0.ɵɵdirectiveInject(NgbProgressbarConfig)); };\nNgbProgressbar.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbProgressbar, selectors: [[\"ngb-progressbar\"]], hostAttrs: [1, \"progress\"], hostVars: 2, hostBindings: function NgbProgressbar_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"height\", ctx.height);\n } }, inputs: { value: \"value\", max: \"max\", animated: \"animated\", striped: \"striped\", textType: \"textType\", type: \"type\", showValue: \"showValue\", height: \"height\" }, ngContentSelectors: _c3, decls: 3, vars: 11, consts: function () { let i18n_55; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_progressbar_value$$FESM2015_NG_BOOTSTRAP_JS__56 = goog.getMsg(\"{$interpolation}\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" }, { original_code: { \"interpolation\": \"{{getValue() / max | percent}}\" } });\n i18n_55 = MSG_EXTERNAL_ngb_progressbar_value$$FESM2015_NG_BOOTSTRAP_JS__56;\n }\n else {\n i18n_55 = $localize `:@@ngb.progressbar.value␟f8e9a947b9db4252c0e9905765338712f2fd032f␟3720830768741091151:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n } return [[\"role\", \"progressbar\", \"aria-valuemin\", \"0\"], [4, \"ngIf\"], i18n_55]; }, template: function NgbProgressbar_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, NgbProgressbar_span_1_Template, 3, 3, \"span\", 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassMapInterpolate4(\"progress-bar\", ctx.type ? \" bg-\" + ctx.type : \"\", \"\", ctx.textType ? \" text-\" + ctx.textType : \"\", \"\\n \", ctx.animated ? \" progress-bar-animated\" : \"\", \"\", ctx.striped ? \" progress-bar-striped\" : \"\", \"\");\n ɵngcc0.ɵɵstyleProp(\"width\", ctx.getPercentValue(), \"%\");\n ɵngcc0.ɵɵattribute(\"aria-valuenow\", ctx.getValue())(\"aria-valuemax\", ctx.max);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showValue);\n } }, dependencies: [ɵngcc1.NgIf, ɵngcc1.PercentPipe], encapsulation: 2, changeDetection: 0 });\r\nNgbProgressbar.ctorParameters = () => [\r\n { type: NgbProgressbarConfig }\r\n];\r\nNgbProgressbar.propDecorators = {\r\n max: [{ type: Input }],\r\n animated: [{ type: Input }],\r\n striped: [{ type: Input }],\r\n showValue: [{ type: Input }],\r\n textType: [{ type: Input }],\r\n type: [{ type: Input }],\r\n value: [{ type: Input }],\r\n height: [{ type: Input }, { type: HostBinding, args: ['style.height',] }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbProgressbar, [{\n type: Component,\n args: [{\n selector: 'ngb-progressbar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'progress' },\n template: `\r\n <div class=\"progress-bar{{type ? ' bg-' + type : ''}}{{textType ? ' text-' + textType : ''}}\r\n {{animated ? ' progress-bar-animated' : ''}}{{striped ? ' progress-bar-striped' : ''}}\"\r\n role=\"progressbar\" [style.width.%]=\"getPercentValue()\"\r\n [attr.aria-valuenow]=\"getValue()\" aria-valuemin=\"0\" [attr.aria-valuemax]=\"max\">\r\n <span *ngIf=\"showValue\" i18n=\"@@ngb.progressbar.value\">{{getValue() / max | percent}}</span><ng-content></ng-content>\r\n </div>\r\n `\n }]\n }], function () { return [{ type: NgbProgressbarConfig }]; }, { value: [{\n type: Input\n }], max: [{\n type: Input\n }], animated: [{\n type: Input\n }], striped: [{\n type: Input\n }], textType: [{\n type: Input\n }], type: [{\n type: Input\n }], showValue: [{\n type: Input\n }], height: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['style.height']\n }] }); })();\n\nclass NgbProgressbarModule {\r\n}\nNgbProgressbarModule.ɵfac = function NgbProgressbarModule_Factory(t) { return new (t || NgbProgressbarModule)(); };\nNgbProgressbarModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbProgressbarModule });\nNgbProgressbarModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbProgressbarModule, [{\n type: NgModule,\n args: [{ declarations: [NgbProgressbar], exports: [NgbProgressbar], imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbProgressbarModule, { declarations: function () { return [NgbProgressbar]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbProgressbar]; } }); })();\n\n/**\r\n * A configuration service for the [`NgbRating`](#/components/rating/api#NgbRating) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the ratings used in the application.\r\n */\r\nclass NgbRatingConfig {\r\n constructor() {\r\n this.max = 10;\r\n this.readonly = false;\r\n this.resettable = false;\r\n }\r\n}\nNgbRatingConfig.ɵfac = function NgbRatingConfig_Factory(t) { return new (t || NgbRatingConfig)(); };\r\nNgbRatingConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbRatingConfig_Factory() { return new NgbRatingConfig(); }, token: NgbRatingConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRatingConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\r\n * A directive that helps visualising and interacting with a star rating bar.\r\n */\r\nclass NgbRating {\r\n constructor(config, _changeDetectorRef) {\r\n this._changeDetectorRef = _changeDetectorRef;\r\n this.contexts = [];\r\n this.disabled = false;\r\n /**\r\n * An event emitted when the user is hovering over a given rating.\r\n *\r\n * Event payload equals to the rating being hovered over.\r\n */\r\n this.hover = new EventEmitter();\r\n /**\r\n * An event emitted when the user stops hovering over a given rating.\r\n *\r\n * Event payload equals to the rating of the last item being hovered over.\r\n */\r\n this.leave = new EventEmitter();\r\n /**\r\n * An event emitted when the user selects a new rating.\r\n *\r\n * Event payload equals to the newly selected rating.\r\n */\r\n this.rateChange = new EventEmitter(true);\r\n this.onChange = (_) => { };\r\n this.onTouched = () => { };\r\n this.max = config.max;\r\n this.readonly = config.readonly;\r\n }\r\n ariaValueText() { return `${this.nextRate} out of ${this.max}`; }\r\n isInteractive() { return !this.readonly && !this.disabled; }\r\n enter(value) {\r\n if (this.isInteractive()) {\r\n this._updateState(value);\r\n }\r\n this.hover.emit(value);\r\n }\r\n handleBlur() { this.onTouched(); }\r\n handleClick(value) {\r\n if (this.isInteractive()) {\r\n this.update(this.resettable && this.rate === value ? 0 : value);\r\n }\r\n }\r\n handleKeyDown(event) {\r\n // tslint:disable-next-line:deprecation\r\n switch (event.which) {\r\n case Key.ArrowDown:\r\n case Key.ArrowLeft:\r\n this.update(this.rate - 1);\r\n break;\r\n case Key.ArrowUp:\r\n case Key.ArrowRight:\r\n this.update(this.rate + 1);\r\n break;\r\n case Key.Home:\r\n this.update(0);\r\n break;\r\n case Key.End:\r\n this.update(this.max);\r\n break;\r\n default:\r\n return;\r\n }\r\n // note 'return' in default case\r\n event.preventDefault();\r\n }\r\n ngOnChanges(changes) {\r\n if (changes['rate']) {\r\n this.update(this.rate);\r\n }\r\n }\r\n ngOnInit() {\r\n this.contexts = Array.from({ length: this.max }, (v, k) => ({ fill: 0, index: k }));\r\n this._updateState(this.rate);\r\n }\r\n registerOnChange(fn) { this.onChange = fn; }\r\n registerOnTouched(fn) { this.onTouched = fn; }\r\n reset() {\r\n this.leave.emit(this.nextRate);\r\n this._updateState(this.rate);\r\n }\r\n setDisabledState(isDisabled) { this.disabled = isDisabled; }\r\n update(value, internalChange = true) {\r\n const newRate = getValueInRange(value, this.max, 0);\r\n if (this.isInteractive() && this.rate !== newRate) {\r\n this.rate = newRate;\r\n this.rateChange.emit(this.rate);\r\n }\r\n if (internalChange) {\r\n this.onChange(this.rate);\r\n this.onTouched();\r\n }\r\n this._updateState(this.rate);\r\n }\r\n writeValue(value) {\r\n this.update(value, false);\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n _updateState(nextValue) {\r\n this.nextRate = nextValue;\r\n this.contexts.forEach((context, index) => context.fill = Math.round(getValueInRange(nextValue - index, 1, 0) * 100));\r\n }\r\n}\nNgbRating.ɵfac = function NgbRating_Factory(t) { return new (t || NgbRating)(ɵngcc0.ɵɵdirectiveInject(NgbRatingConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nNgbRating.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbRating, selectors: [[\"ngb-rating\"]], contentQueries: function NgbRating_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.starTemplateFromContent = _t.first);\n } }, hostAttrs: [\"role\", \"slider\", \"aria-valuemin\", \"0\", 1, \"d-inline-flex\"], hostVars: 5, hostBindings: function NgbRating_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"blur\", function NgbRating_blur_HostBindingHandler() { return ctx.handleBlur(); })(\"keydown\", function NgbRating_keydown_HostBindingHandler($event) { return ctx.handleKeyDown($event); })(\"mouseleave\", function NgbRating_mouseleave_HostBindingHandler() { return ctx.reset(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"tabindex\", ctx.disabled ? -1 : 0);\n ɵngcc0.ɵɵattribute(\"aria-valuemax\", ctx.max)(\"aria-valuenow\", ctx.nextRate)(\"aria-valuetext\", ctx.ariaValueText())(\"aria-disabled\", ctx.readonly ? true : null);\n } }, inputs: { max: \"max\", readonly: \"readonly\", rate: \"rate\", resettable: \"resettable\", starTemplate: \"starTemplate\" }, outputs: { hover: \"hover\", leave: \"leave\", rateChange: \"rateChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbRating), multi: true }]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 3, vars: 1, consts: [[\"t\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [1, \"sr-only\"], [3, \"mouseenter\", \"click\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function NgbRating_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbRating_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbRating_ng_template_2_Template, 4, 5, \"ng-template\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.contexts);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgTemplateOutlet], encapsulation: 2, changeDetection: 0 });\r\nNgbRating.ctorParameters = () => [\r\n { type: NgbRatingConfig },\r\n { type: ChangeDetectorRef }\r\n];\r\nNgbRating.propDecorators = {\r\n max: [{ type: Input }],\r\n rate: [{ type: Input }],\r\n readonly: [{ type: Input }],\r\n resettable: [{ type: Input }],\r\n starTemplate: [{ type: Input }],\r\n starTemplateFromContent: [{ type: ContentChild, args: [TemplateRef, { static: false },] }],\r\n hover: [{ type: Output }],\r\n leave: [{ type: Output }],\r\n rateChange: [{ type: Output }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRating, [{\n type: Component,\n args: [{\n selector: 'ngb-rating',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n 'class': 'd-inline-flex',\n '[tabindex]': 'disabled ? -1 : 0',\n 'role': 'slider',\n 'aria-valuemin': '0',\n '[attr.aria-valuemax]': 'max',\n '[attr.aria-valuenow]': 'nextRate',\n '[attr.aria-valuetext]': 'ariaValueText()',\n '[attr.aria-disabled]': 'readonly ? true : null',\n '(blur)': 'handleBlur()',\n '(keydown)': 'handleKeyDown($event)',\n '(mouseleave)': 'reset()'\n },\n template: `\r\n <ng-template #t let-fill=\"fill\">{{ fill === 100 ? '★' : '☆' }}</ng-template>\r\n <ng-template ngFor [ngForOf]=\"contexts\" let-index=\"index\">\r\n <span class=\"sr-only\">({{ index < nextRate ? '*' : ' ' }})</span>\r\n <span (mouseenter)=\"enter(index + 1)\" (click)=\"handleClick(index + 1)\" [style.cursor]=\"isInteractive() ? 'pointer' : 'default'\">\r\n <ng-template [ngTemplateOutlet]=\"starTemplate || starTemplateFromContent || t\" [ngTemplateOutletContext]=\"contexts[index]\">\r\n </ng-template>\r\n </span>\r\n </ng-template>\r\n `,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbRating), multi: true }]\n }]\n }], function () { return [{ type: NgbRatingConfig }, { type: ɵngcc0.ChangeDetectorRef }]; }, { hover: [{\n type: Output\n }], leave: [{\n type: Output\n }], rateChange: [{\n type: Output\n }], max: [{\n type: Input\n }], readonly: [{\n type: Input\n }], rate: [{\n type: Input\n }], resettable: [{\n type: Input\n }], starTemplate: [{\n type: Input\n }], starTemplateFromContent: [{\n type: ContentChild,\n args: [TemplateRef, { static: false }]\n }] }); })();\n\nclass NgbRatingModule {\r\n}\nNgbRatingModule.ɵfac = function NgbRatingModule_Factory(t) { return new (t || NgbRatingModule)(); };\nNgbRatingModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbRatingModule });\nNgbRatingModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRatingModule, [{\n type: NgModule,\n args: [{ declarations: [NgbRating], exports: [NgbRating], imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbRatingModule, { declarations: function () { return [NgbRating]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbRating]; } }); })();\n\nclass NgbTime {\r\n constructor(hour, minute, second) {\r\n this.hour = toInteger(hour);\r\n this.minute = toInteger(minute);\r\n this.second = toInteger(second);\r\n }\r\n changeHour(step = 1) { this.updateHour((isNaN(this.hour) ? 0 : this.hour) + step); }\r\n updateHour(hour) {\r\n if (isNumber(hour)) {\r\n this.hour = (hour < 0 ? 24 + hour : hour) % 24;\r\n }\r\n else {\r\n this.hour = NaN;\r\n }\r\n }\r\n changeMinute(step = 1) { this.updateMinute((isNaN(this.minute) ? 0 : this.minute) + step); }\r\n updateMinute(minute) {\r\n if (isNumber(minute)) {\r\n this.minute = minute % 60 < 0 ? 60 + minute % 60 : minute % 60;\r\n this.changeHour(Math.floor(minute / 60));\r\n }\r\n else {\r\n this.minute = NaN;\r\n }\r\n }\r\n changeSecond(step = 1) { this.updateSecond((isNaN(this.second) ? 0 : this.second) + step); }\r\n updateSecond(second) {\r\n if (isNumber(second)) {\r\n this.second = second < 0 ? 60 + second % 60 : second % 60;\r\n this.changeMinute(Math.floor(second / 60));\r\n }\r\n else {\r\n this.second = NaN;\r\n }\r\n }\r\n isValid(checkSecs = true) {\r\n return isNumber(this.hour) && isNumber(this.minute) && (checkSecs ? isNumber(this.second) : true);\r\n }\r\n toString() { return `${this.hour || 0}:${this.minute || 0}:${this.second || 0}`; }\r\n}\n\n/**\r\n * A configuration service for the [`NgbTimepicker`](#/components/timepicker/api#NgbTimepicker) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the timepickers used in the application.\r\n */\r\nclass NgbTimepickerConfig {\r\n constructor() {\r\n this.meridian = false;\r\n this.spinners = true;\r\n this.seconds = false;\r\n this.hourStep = 1;\r\n this.minuteStep = 1;\r\n this.secondStep = 1;\r\n this.disabled = false;\r\n this.readonlyInputs = false;\r\n this.size = 'medium';\r\n }\r\n}\nNgbTimepickerConfig.ɵfac = function NgbTimepickerConfig_Factory(t) { return new (t || NgbTimepickerConfig)(); };\r\nNgbTimepickerConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbTimepickerConfig_Factory() { return new NgbTimepickerConfig(); }, token: NgbTimepickerConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimepickerConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\nfunction NGB_DATEPICKER_TIME_ADAPTER_FACTORY() {\r\n return new NgbTimeStructAdapter();\r\n}\r\n/**\r\n * An abstract service that does the conversion between the internal timepicker `NgbTimeStruct` model and\r\n * any provided user time model `T`, ex. a string, a native date, etc.\r\n *\r\n * The adapter is used **only** for conversion when binding timepicker to a form control,\r\n * ex. `[(ngModel)]=\"userTimeModel\"`. Here `userTimeModel` can be of any type.\r\n *\r\n * The default timepicker implementation assumes we use `NgbTimeStruct` as a user model.\r\n *\r\n * See the [custom time adapter demo](#/components/timepicker/examples#adapter) for an example.\r\n *\r\n * @since 2.2.0\r\n */\r\nclass NgbTimeAdapter {\r\n}\nNgbTimeAdapter.ɵfac = function NgbTimeAdapter_Factory(t) { return new (t || NgbTimeAdapter)(); };\r\nNgbTimeAdapter.ɵprov = ɵɵdefineInjectable({ factory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY, token: NgbTimeAdapter, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimeAdapter, [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY }]\n }], null, null); })();\r\nclass NgbTimeStructAdapter extends NgbTimeAdapter {\r\n /**\r\n * Converts a NgbTimeStruct value into NgbTimeStruct value\r\n */\r\n fromModel(time) {\r\n return (time && isInteger(time.hour) && isInteger(time.minute)) ?\r\n { hour: time.hour, minute: time.minute, second: isInteger(time.second) ? time.second : null } :\r\n null;\r\n }\r\n /**\r\n * Converts a NgbTimeStruct value into NgbTimeStruct value\r\n */\r\n toModel(time) {\r\n return (time && isInteger(time.hour) && isInteger(time.minute)) ?\r\n { hour: time.hour, minute: time.minute, second: isInteger(time.second) ? time.second : null } :\r\n null;\r\n }\r\n}\nNgbTimeStructAdapter.ɵfac = /*@__PURE__*/ function () { let ɵNgbTimeStructAdapter_BaseFactory; return function NgbTimeStructAdapter_Factory(t) { return (ɵNgbTimeStructAdapter_BaseFactory || (ɵNgbTimeStructAdapter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbTimeStructAdapter)))(t || NgbTimeStructAdapter); }; }();\nNgbTimeStructAdapter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbTimeStructAdapter, factory: NgbTimeStructAdapter.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimeStructAdapter, [{\n type: Injectable\n }], null, null); })();\n\nfunction NGB_TIMEPICKER_I18N_FACTORY(locale) {\r\n return new NgbTimepickerI18nDefault(locale);\r\n}\r\n/**\r\n * Type of the service supplying day periods (for example, 'AM' and 'PM') to NgbTimepicker component.\r\n * The default implementation of this service honors the Angular locale, and uses the registered locale data,\r\n * as explained in the Angular i18n guide.\r\n */\r\nclass NgbTimepickerI18n {\r\n}\nNgbTimepickerI18n.ɵfac = function NgbTimepickerI18n_Factory(t) { return new (t || NgbTimepickerI18n)(); };\r\nNgbTimepickerI18n.ɵprov = ɵɵdefineInjectable({ factory: function NgbTimepickerI18n_Factory() { return NGB_TIMEPICKER_I18N_FACTORY(ɵɵinject(LOCALE_ID)); }, token: NgbTimepickerI18n, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimepickerI18n, [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_TIMEPICKER_I18N_FACTORY, deps: [LOCALE_ID] }]\n }], null, null); })();\r\nclass NgbTimepickerI18nDefault extends NgbTimepickerI18n {\r\n constructor(locale) {\r\n super();\r\n this._periods = getLocaleDayPeriods(locale, FormStyle.Standalone, TranslationWidth.Narrow);\r\n }\r\n getMorningPeriod() { return this._periods[0]; }\r\n getAfternoonPeriod() { return this._periods[1]; }\r\n}\nNgbTimepickerI18nDefault.ɵfac = function NgbTimepickerI18nDefault_Factory(t) { return new (t || NgbTimepickerI18nDefault)(ɵngcc0.ɵɵinject(LOCALE_ID)); };\nNgbTimepickerI18nDefault.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbTimepickerI18nDefault, factory: NgbTimepickerI18nDefault.ɵfac });\r\nNgbTimepickerI18nDefault.ctorParameters = () => [\r\n { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimepickerI18nDefault, [{\n type: Injectable\n }], function () { return [{ type: String, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; }, null); })();\n\nconst FILTER_REGEX = /[^0-9]/g;\r\n/**\r\n * A directive that helps with wth picking hours, minutes and seconds.\r\n */\r\nclass NgbTimepicker {\r\n constructor(_config, _ngbTimeAdapter, _cd, i18n) {\r\n this._config = _config;\r\n this._ngbTimeAdapter = _ngbTimeAdapter;\r\n this._cd = _cd;\r\n this.i18n = i18n;\r\n this.onChange = (_) => { };\r\n this.onTouched = () => { };\r\n this.meridian = _config.meridian;\r\n this.spinners = _config.spinners;\r\n this.seconds = _config.seconds;\r\n this.hourStep = _config.hourStep;\r\n this.minuteStep = _config.minuteStep;\r\n this.secondStep = _config.secondStep;\r\n this.disabled = _config.disabled;\r\n this.readonlyInputs = _config.readonlyInputs;\r\n this.size = _config.size;\r\n }\r\n /**\r\n * The number of hours to add/subtract when clicking hour spinners.\r\n */\r\n set hourStep(step) {\r\n this._hourStep = isInteger(step) ? step : this._config.hourStep;\r\n }\r\n get hourStep() { return this._hourStep; }\r\n /**\r\n * The number of minutes to add/subtract when clicking minute spinners.\r\n */\r\n set minuteStep(step) {\r\n this._minuteStep = isInteger(step) ? step : this._config.minuteStep;\r\n }\r\n get minuteStep() { return this._minuteStep; }\r\n /**\r\n * The number of seconds to add/subtract when clicking second spinners.\r\n */\r\n set secondStep(step) {\r\n this._secondStep = isInteger(step) ? step : this._config.secondStep;\r\n }\r\n get secondStep() { return this._secondStep; }\r\n writeValue(value) {\r\n const structValue = this._ngbTimeAdapter.fromModel(value);\r\n this.model = structValue ? new NgbTime(structValue.hour, structValue.minute, structValue.second) : new NgbTime();\r\n if (!this.seconds && (!structValue || !isNumber(structValue.second))) {\r\n this.model.second = 0;\r\n }\r\n this._cd.markForCheck();\r\n }\r\n registerOnChange(fn) { this.onChange = fn; }\r\n registerOnTouched(fn) { this.onTouched = fn; }\r\n setDisabledState(isDisabled) { this.disabled = isDisabled; }\r\n changeHour(step) {\r\n this.model.changeHour(step);\r\n this.propagateModelChange();\r\n }\r\n changeMinute(step) {\r\n this.model.changeMinute(step);\r\n this.propagateModelChange();\r\n }\r\n changeSecond(step) {\r\n this.model.changeSecond(step);\r\n this.propagateModelChange();\r\n }\r\n updateHour(newVal) {\r\n const isPM = this.model.hour >= 12;\r\n const enteredHour = toInteger(newVal);\r\n if (this.meridian && (isPM && enteredHour < 12 || !isPM && enteredHour === 12)) {\r\n this.model.updateHour(enteredHour + 12);\r\n }\r\n else {\r\n this.model.updateHour(enteredHour);\r\n }\r\n this.propagateModelChange();\r\n }\r\n updateMinute(newVal) {\r\n this.model.updateMinute(toInteger(newVal));\r\n this.propagateModelChange();\r\n }\r\n updateSecond(newVal) {\r\n this.model.updateSecond(toInteger(newVal));\r\n this.propagateModelChange();\r\n }\r\n toggleMeridian() {\r\n if (this.meridian) {\r\n this.changeHour(12);\r\n }\r\n }\r\n formatInput(input) { input.value = input.value.replace(FILTER_REGEX, ''); }\r\n formatHour(value) {\r\n if (isNumber(value)) {\r\n if (this.meridian) {\r\n return padNumber(value % 12 === 0 ? 12 : value % 12);\r\n }\r\n else {\r\n return padNumber(value % 24);\r\n }\r\n }\r\n else {\r\n return padNumber(NaN);\r\n }\r\n }\r\n formatMinSec(value) { return padNumber(isNumber(value) ? value : NaN); }\r\n handleBlur() { this.onTouched(); }\r\n get isSmallSize() { return this.size === 'small'; }\r\n get isLargeSize() { return this.size === 'large'; }\r\n ngOnChanges(changes) {\r\n if (changes['seconds'] && !this.seconds && this.model && !isNumber(this.model.second)) {\r\n this.model.second = 0;\r\n this.propagateModelChange(false);\r\n }\r\n }\r\n propagateModelChange(touched = true) {\r\n if (touched) {\r\n this.onTouched();\r\n }\r\n if (this.model.isValid(this.seconds)) {\r\n this.onChange(this._ngbTimeAdapter.toModel({ hour: this.model.hour, minute: this.model.minute, second: this.model.second }));\r\n }\r\n else {\r\n this.onChange(this._ngbTimeAdapter.toModel(null));\r\n }\r\n }\r\n}\nNgbTimepicker.ɵfac = function NgbTimepicker_Factory(t) { return new (t || NgbTimepicker)(ɵngcc0.ɵɵdirectiveInject(NgbTimepickerConfig), ɵngcc0.ɵɵdirectiveInject(NgbTimeAdapter), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(NgbTimepickerI18n)); };\nNgbTimepicker.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbTimepicker, selectors: [[\"ngb-timepicker\"]], inputs: { meridian: \"meridian\", spinners: \"spinners\", seconds: \"seconds\", hourStep: \"hourStep\", minuteStep: \"minuteStep\", secondStep: \"secondStep\", readonlyInputs: \"readonlyInputs\", size: \"size\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbTimepicker), multi: true }]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 16, vars: 25, consts: function () { let i18n_57; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_HH$$FESM2015_NG_BOOTSTRAP_JS_58 = goog.getMsg(\"HH\");\n i18n_57 = MSG_EXTERNAL_ngb_timepicker_HH$$FESM2015_NG_BOOTSTRAP_JS_58;\n }\n else {\n i18n_57 = $localize `:@@ngb.timepicker.HH␟ce676ab1d6d98f85c836381cf100a4a91ef95a1f␟4043638465245303811:HH`;\n } let i18n_59; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_hours$$FESM2015_NG_BOOTSTRAP_JS_60 = goog.getMsg(\"Hours\");\n i18n_59 = MSG_EXTERNAL_ngb_timepicker_hours$$FESM2015_NG_BOOTSTRAP_JS_60;\n }\n else {\n i18n_59 = $localize `:@@ngb.timepicker.hours␟3bbce5fef7e1151da052a4e529453edb340e3912␟8070396816726827304:Hours`;\n } let i18n_61; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_MM$$FESM2015_NG_BOOTSTRAP_JS_62 = goog.getMsg(\"MM\");\n i18n_61 = MSG_EXTERNAL_ngb_timepicker_MM$$FESM2015_NG_BOOTSTRAP_JS_62;\n }\n else {\n i18n_61 = $localize `:@@ngb.timepicker.MM␟72c8edf6a50068a05bde70991e36b1e881f4ca54␟1647282246509919852:MM`;\n } let i18n_63; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_minutes$$FESM2015_NG_BOOTSTRAP_JS_64 = goog.getMsg(\"Minutes\");\n i18n_63 = MSG_EXTERNAL_ngb_timepicker_minutes$$FESM2015_NG_BOOTSTRAP_JS_64;\n }\n else {\n i18n_63 = $localize `:@@ngb.timepicker.minutes␟41e62daa962947c0d23ded0981975d1bddf0bf38␟5531237363767747080:Minutes`;\n } let i18n_65; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_increment_hours$$FESM2015_NG_BOOTSTRAP_JS__66 = goog.getMsg(\"Increment hours\");\n i18n_65 = MSG_EXTERNAL_ngb_timepicker_increment_hours$$FESM2015_NG_BOOTSTRAP_JS__66;\n }\n else {\n i18n_65 = $localize `:@@ngb.timepicker.increment-hours␟cb74bc1d625a6c1742f0d7d47306cf495780c218␟5939278348542933629:Increment hours`;\n } let i18n_67; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_decrement_hours$$FESM2015_NG_BOOTSTRAP_JS__68 = goog.getMsg(\"Decrement hours\");\n i18n_67 = MSG_EXTERNAL_ngb_timepicker_decrement_hours$$FESM2015_NG_BOOTSTRAP_JS__68;\n }\n else {\n i18n_67 = $localize `:@@ngb.timepicker.decrement-hours␟147c7a19429da7d999e247d22e33fee370b1691b␟3651829882940481818:Decrement hours`;\n } let i18n_69; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_increment_minutes$$FESM2015_NG_BOOTSTRAP_JS__70 = goog.getMsg(\"Increment minutes\");\n i18n_69 = MSG_EXTERNAL_ngb_timepicker_increment_minutes$$FESM2015_NG_BOOTSTRAP_JS__70;\n }\n else {\n i18n_69 = $localize `:@@ngb.timepicker.increment-minutes␟f5a4a3bc05e053f6732475d0e74875ec01c3a348␟180147720391025024:Increment minutes`;\n } let i18n_71; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_decrement_minutes$$FESM2015_NG_BOOTSTRAP_JS__72 = goog.getMsg(\"Decrement minutes\");\n i18n_71 = MSG_EXTERNAL_ngb_timepicker_decrement_minutes$$FESM2015_NG_BOOTSTRAP_JS__72;\n }\n else {\n i18n_71 = $localize `:@@ngb.timepicker.decrement-minutes␟c1a6899e529c096da5b660385d4e77fe1f7ad271␟7447789825403243588:Decrement minutes`;\n } let i18n_73; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_SS$$FESM2015_NG_BOOTSTRAP_JS__74 = goog.getMsg(\"SS\");\n i18n_73 = MSG_EXTERNAL_ngb_timepicker_SS$$FESM2015_NG_BOOTSTRAP_JS__74;\n }\n else {\n i18n_73 = $localize `:@@ngb.timepicker.SS␟ebe38d36a40a2383c5fefa9b4608ffbda08bd4a3␟3628127143071124194:SS`;\n } let i18n_75; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_seconds$$FESM2015_NG_BOOTSTRAP_JS__76 = goog.getMsg(\"Seconds\");\n i18n_75 = MSG_EXTERNAL_ngb_timepicker_seconds$$FESM2015_NG_BOOTSTRAP_JS__76;\n }\n else {\n i18n_75 = $localize `:@@ngb.timepicker.seconds␟4f2ed9e71a7c981db3e50ae2fedb28aff2ec4e6c␟8874012390997067175:Seconds`;\n } let i18n_77; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_increment_seconds$$FESM2015_NG_BOOTSTRAP_JS___78 = goog.getMsg(\"Increment seconds\");\n i18n_77 = MSG_EXTERNAL_ngb_timepicker_increment_seconds$$FESM2015_NG_BOOTSTRAP_JS___78;\n }\n else {\n i18n_77 = $localize `:@@ngb.timepicker.increment-seconds␟912322ecee7d659d04dcf494a70e22e49d334b26␟5364772110539092174:Increment seconds`;\n } let i18n_79; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_decrement_seconds$$FESM2015_NG_BOOTSTRAP_JS___80 = goog.getMsg(\"Decrement seconds\");\n i18n_79 = MSG_EXTERNAL_ngb_timepicker_decrement_seconds$$FESM2015_NG_BOOTSTRAP_JS___80;\n }\n else {\n i18n_79 = $localize `:@@ngb.timepicker.decrement-seconds␟5db47ac104294243a70eb9124fbea9d0004ddf69␟753633511487974857:Decrement seconds`;\n } let i18n_81; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_PM$$FESM2015_NG_BOOTSTRAP_JS___82 = goog.getMsg(\"{$interpolation}\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" }, { original_code: { \"interpolation\": \"{{ i18n.getAfternoonPeriod() }}\" } });\n i18n_81 = MSG_EXTERNAL_ngb_timepicker_PM$$FESM2015_NG_BOOTSTRAP_JS___82;\n }\n else {\n i18n_81 = $localize `:@@ngb.timepicker.PM␟8d6e691e10306c1b34c6b26805151aaea320ef7f␟3564199131264287502:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n } let i18n_83; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_AM$$FESM2015_NG_BOOTSTRAP_JS___84 = goog.getMsg(\"{$interpolation}\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" }, { original_code: { \"interpolation\": \"{{ i18n.getMorningPeriod() }}\" } });\n i18n_83 = MSG_EXTERNAL_ngb_timepicker_AM$$FESM2015_NG_BOOTSTRAP_JS___84;\n }\n else {\n i18n_83 = $localize `:@@ngb.timepicker.AM␟69a1f176a93998876952adac57c3bc3863b6105e␟4592818992509942761:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n } return [[3, \"disabled\"], [1, \"ngb-tp\"], [1, \"ngb-tp-input-container\", \"ngb-tp-hour\"], [\"tabindex\", \"-1\", \"type\", \"button\", \"class\", \"btn btn-link\", 3, \"btn-sm\", \"btn-lg\", \"disabled\", \"click\", 4, \"ngIf\"], [\"type\", \"text\", \"maxlength\", \"2\", \"inputmode\", \"numeric\", \"placeholder\", i18n_57, \"aria-label\", i18n_59, 1, \"ngb-tp-input\", \"form-control\", 3, \"value\", \"readOnly\", \"disabled\", \"change\", \"blur\", \"input\", \"keydown.ArrowUp\", \"keydown.ArrowDown\"], [1, \"ngb-tp-spacer\"], [1, \"ngb-tp-input-container\", \"ngb-tp-minute\"], [\"type\", \"text\", \"maxlength\", \"2\", \"inputmode\", \"numeric\", \"placeholder\", i18n_61, \"aria-label\", i18n_63, 1, \"ngb-tp-input\", \"form-control\", 3, \"value\", \"readOnly\", \"disabled\", \"change\", \"blur\", \"input\", \"keydown.ArrowUp\", \"keydown.ArrowDown\"], [\"class\", \"ngb-tp-spacer\", 4, \"ngIf\"], [\"class\", \"ngb-tp-input-container ngb-tp-second\", 4, \"ngIf\"], [\"class\", \"ngb-tp-meridian\", 4, \"ngIf\"], [\"tabindex\", \"-1\", \"type\", \"button\", 1, \"btn\", \"btn-link\", 3, \"disabled\", \"click\"], [1, \"chevron\", \"ngb-tp-chevron\"], [1, \"sr-only\"], i18n_65, [1, \"chevron\", \"ngb-tp-chevron\", \"bottom\"], i18n_67, i18n_69, i18n_71, [1, \"ngb-tp-input-container\", \"ngb-tp-second\"], [\"type\", \"text\", \"maxlength\", \"2\", \"inputmode\", \"numeric\", \"placeholder\", i18n_73, \"aria-label\", i18n_75, 1, \"ngb-tp-input\", \"form-control\", 3, \"value\", \"readOnly\", \"disabled\", \"change\", \"blur\", \"input\", \"keydown.ArrowUp\", \"keydown.ArrowDown\"], i18n_77, i18n_79, [1, \"ngb-tp-meridian\"], [\"type\", \"button\", 1, \"btn\", \"btn-outline-primary\", 3, \"disabled\", \"click\"], [4, \"ngIf\", \"ngIfElse\"], [\"am\", \"\"], i18n_81, i18n_83]; }, template: function NgbTimepicker_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"fieldset\", 0)(1, \"div\", 1)(2, \"div\", 2);\n ɵngcc0.ɵɵtemplate(3, NgbTimepicker_button_3_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementStart(4, \"input\", 4);\n ɵngcc0.ɵɵlistener(\"change\", function NgbTimepicker_Template_input_change_4_listener($event) { return ctx.updateHour($event.target.value); })(\"blur\", function NgbTimepicker_Template_input_blur_4_listener() { return ctx.handleBlur(); })(\"input\", function NgbTimepicker_Template_input_input_4_listener($event) { return ctx.formatInput($event.target); })(\"keydown.ArrowUp\", function NgbTimepicker_Template_input_keydown_ArrowUp_4_listener($event) { ctx.changeHour(ctx.hourStep); return $event.preventDefault(); })(\"keydown.ArrowDown\", function NgbTimepicker_Template_input_keydown_ArrowDown_4_listener($event) { ctx.changeHour(-ctx.hourStep); return $event.preventDefault(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(5, NgbTimepicker_button_5_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(6, \"div\", 5);\n ɵngcc0.ɵɵtext(7, \":\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(8, \"div\", 6);\n ɵngcc0.ɵɵtemplate(9, NgbTimepicker_button_9_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementStart(10, \"input\", 7);\n ɵngcc0.ɵɵlistener(\"change\", function NgbTimepicker_Template_input_change_10_listener($event) { return ctx.updateMinute($event.target.value); })(\"blur\", function NgbTimepicker_Template_input_blur_10_listener() { return ctx.handleBlur(); })(\"input\", function NgbTimepicker_Template_input_input_10_listener($event) { return ctx.formatInput($event.target); })(\"keydown.ArrowUp\", function NgbTimepicker_Template_input_keydown_ArrowUp_10_listener($event) { ctx.changeMinute(ctx.minuteStep); return $event.preventDefault(); })(\"keydown.ArrowDown\", function NgbTimepicker_Template_input_keydown_ArrowDown_10_listener($event) { ctx.changeMinute(-ctx.minuteStep); return $event.preventDefault(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(11, NgbTimepicker_button_11_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(12, NgbTimepicker_div_12_Template, 2, 0, \"div\", 8);\n ɵngcc0.ɵɵtemplate(13, NgbTimepicker_div_13_Template, 4, 9, \"div\", 9);\n ɵngcc0.ɵɵtemplate(14, NgbTimepicker_div_14_Template, 1, 0, \"div\", 8);\n ɵngcc0.ɵɵtemplate(15, NgbTimepicker_div_15_Template, 5, 9, \"div\", 10);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"form-control-sm\", ctx.isSmallSize)(\"form-control-lg\", ctx.isLargeSize);\n ɵngcc0.ɵɵproperty(\"value\", ctx.formatHour(ctx.model == null ? null : ctx.model.hour))(\"readOnly\", ctx.readonlyInputs)(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"form-control-sm\", ctx.isSmallSize)(\"form-control-lg\", ctx.isLargeSize);\n ɵngcc0.ɵɵproperty(\"value\", ctx.formatMinSec(ctx.model == null ? null : ctx.model.minute))(\"readOnly\", ctx.readonlyInputs)(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.seconds);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.seconds);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.meridian);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.meridian);\n } }, dependencies: [ɵngcc1.NgIf], styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{align-items:center;display:flex}.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-meridian,.ngb-tp-minute,.ngb-tp-second{align-items:center;display:flex;flex-direction:column;justify-content:space-around}.ngb-tp-spacer{text-align:center;width:1em}\"], encapsulation: 2 });\r\nNgbTimepicker.ctorParameters = () => [\r\n { type: NgbTimepickerConfig },\r\n { type: NgbTimeAdapter },\r\n { type: ChangeDetectorRef },\r\n { type: NgbTimepickerI18n }\r\n];\r\nNgbTimepicker.propDecorators = {\r\n meridian: [{ type: Input }],\r\n spinners: [{ type: Input }],\r\n seconds: [{ type: Input }],\r\n hourStep: [{ type: Input }],\r\n minuteStep: [{ type: Input }],\r\n secondStep: [{ type: Input }],\r\n readonlyInputs: [{ type: Input }],\r\n size: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimepicker, [{\n type: Component,\n args: [{ selector: 'ngb-timepicker', encapsulation: ViewEncapsulation.None, template: `\r\n <fieldset [disabled]=\"disabled\" [class.disabled]=\"disabled\">\r\n <div class=\"ngb-tp\">\r\n <div class=\"ngb-tp-input-container ngb-tp-hour\">\r\n <button *ngIf=\"spinners\" tabindex=\"-1\" type=\"button\" (click)=\"changeHour(hourStep)\"\r\n class=\"btn btn-link\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\" [class.disabled]=\"disabled\"\r\n [disabled]=\"disabled\">\r\n <span class=\"chevron ngb-tp-chevron\"></span>\r\n <span class=\"sr-only\" i18n=\"@@ngb.timepicker.increment-hours\">Increment hours</span>\r\n </button>\r\n <input type=\"text\" class=\"ngb-tp-input form-control\" [class.form-control-sm]=\"isSmallSize\"\r\n [class.form-control-lg]=\"isLargeSize\"\r\n maxlength=\"2\" inputmode=\"numeric\" placeholder=\"HH\" i18n-placeholder=\"@@ngb.timepicker.HH\"\r\n [value]=\"formatHour(model?.hour)\" (change)=\"updateHour($any($event).target.value)\"\r\n [readOnly]=\"readonlyInputs\" [disabled]=\"disabled\" aria-label=\"Hours\" i18n-aria-label=\"@@ngb.timepicker.hours\"\r\n (blur)=\"handleBlur()\"\r\n (input)=\"formatInput($any($event).target)\"\r\n (keydown.ArrowUp)=\"changeHour(hourStep); $event.preventDefault()\"\r\n (keydown.ArrowDown)=\"changeHour(-hourStep); $event.preventDefault()\">\r\n <button *ngIf=\"spinners\" tabindex=\"-1\" type=\"button\" (click)=\"changeHour(-hourStep)\"\r\n class=\"btn btn-link\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\" [class.disabled]=\"disabled\"\r\n [disabled]=\"disabled\">\r\n <span class=\"chevron ngb-tp-chevron bottom\"></span>\r\n <span class=\"sr-only\" i18n=\"@@ngb.timepicker.decrement-hours\">Decrement hours</span>\r\n </button>\r\n </div>\r\n <div class=\"ngb-tp-spacer\">:</div>\r\n <div class=\"ngb-tp-input-container ngb-tp-minute\">\r\n <button *ngIf=\"spinners\" tabindex=\"-1\" type=\"button\" (click)=\"changeMinute(minuteStep)\"\r\n class=\"btn btn-link\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\" [class.disabled]=\"disabled\"\r\n [disabled]=\"disabled\">\r\n <span class=\"chevron ngb-tp-chevron\"></span>\r\n <span class=\"sr-only\" i18n=\"@@ngb.timepicker.increment-minutes\">Increment minutes</span>\r\n </button>\r\n <input type=\"text\" class=\"ngb-tp-input form-control\" [class.form-control-sm]=\"isSmallSize\" [class.form-control-lg]=\"isLargeSize\"\r\n maxlength=\"2\" inputmode=\"numeric\" placeholder=\"MM\" i18n-placeholder=\"@@ngb.timepicker.MM\"\r\n [value]=\"formatMinSec(model?.minute)\" (change)=\"updateMinute($any($event).target.value)\"\r\n [readOnly]=\"readonlyInputs\" [disabled]=\"disabled\" aria-label=\"Minutes\" i18n-aria-label=\"@@ngb.timepicker.minutes\"\r\n (blur)=\"handleBlur()\"\r\n (input)=\"formatInput($any($event).target)\"\r\n (keydown.ArrowUp)=\"changeMinute(minuteStep); $event.preventDefault()\"\r\n (keydown.ArrowDown)=\"changeMinute(-minuteStep); $event.preventDefault()\">\r\n <button *ngIf=\"spinners\" tabindex=\"-1\" type=\"button\" (click)=\"changeMinute(-minuteStep)\"\r\n class=\"btn btn-link\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\" [class.disabled]=\"disabled\"\r\n [disabled]=\"disabled\">\r\n <span class=\"chevron ngb-tp-chevron bottom\"></span>\r\n <span class=\"sr-only\" i18n=\"@@ngb.timepicker.decrement-minutes\">Decrement minutes</span>\r\n </button>\r\n </div>\r\n <div *ngIf=\"seconds\" class=\"ngb-tp-spacer\">:</div>\r\n <div *ngIf=\"seconds\" class=\"ngb-tp-input-container ngb-tp-second\">\r\n <button *ngIf=\"spinners\" tabindex=\"-1\" type=\"button\" (click)=\"changeSecond(secondStep)\"\r\n class=\"btn btn-link\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\" [class.disabled]=\"disabled\"\r\n [disabled]=\"disabled\">\r\n <span class=\"chevron ngb-tp-chevron\"></span>\r\n <span class=\"sr-only\" i18n=\"@@ngb.timepicker.increment-seconds\">Increment seconds</span>\r\n </button>\r\n <input type=\"text\" class=\"ngb-tp-input form-control\" [class.form-control-sm]=\"isSmallSize\" [class.form-control-lg]=\"isLargeSize\"\r\n maxlength=\"2\" inputmode=\"numeric\" placeholder=\"SS\" i18n-placeholder=\"@@ngb.timepicker.SS\"\r\n [value]=\"formatMinSec(model?.second)\" (change)=\"updateSecond($any($event).target.value)\"\r\n [readOnly]=\"readonlyInputs\" [disabled]=\"disabled\" aria-label=\"Seconds\" i18n-aria-label=\"@@ngb.timepicker.seconds\"\r\n (blur)=\"handleBlur()\"\r\n (input)=\"formatInput($any($event).target)\"\r\n (keydown.ArrowUp)=\"changeSecond(secondStep); $event.preventDefault()\"\r\n (keydown.ArrowDown)=\"changeSecond(-secondStep); $event.preventDefault()\">\r\n <button *ngIf=\"spinners\" tabindex=\"-1\" type=\"button\" (click)=\"changeSecond(-secondStep)\"\r\n class=\"btn btn-link\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\" [class.disabled]=\"disabled\"\r\n [disabled]=\"disabled\">\r\n <span class=\"chevron ngb-tp-chevron bottom\"></span>\r\n <span class=\"sr-only\" i18n=\"@@ngb.timepicker.decrement-seconds\">Decrement seconds</span>\r\n </button>\r\n </div>\r\n <div *ngIf=\"meridian\" class=\"ngb-tp-spacer\"></div>\r\n <div *ngIf=\"meridian\" class=\"ngb-tp-meridian\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" [class.btn-sm]=\"isSmallSize\" [class.btn-lg]=\"isLargeSize\"\r\n [disabled]=\"disabled\" [class.disabled]=\"disabled\"\r\n (click)=\"toggleMeridian()\">\r\n <ng-container *ngIf=\"model && model.hour >= 12; else am\"\r\n i18n=\"@@ngb.timepicker.PM\">{{ i18n.getAfternoonPeriod() }}</ng-container>\r\n <ng-template #am i18n=\"@@ngb.timepicker.AM\">{{ i18n.getMorningPeriod() }}</ng-template>\r\n </button>\r\n </div>\r\n </div>\r\n </fieldset>\r\n `, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbTimepicker), multi: true }], styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{align-items:center;display:flex}.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-meridian,.ngb-tp-minute,.ngb-tp-second{align-items:center;display:flex;flex-direction:column;justify-content:space-around}.ngb-tp-spacer{text-align:center;width:1em}\"] }]\n }], function () { return [{ type: NgbTimepickerConfig }, { type: NgbTimeAdapter }, { type: ɵngcc0.ChangeDetectorRef }, { type: NgbTimepickerI18n }]; }, { 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 {\r\n}\nNgbTimepickerModule.ɵfac = function NgbTimepickerModule_Factory(t) { return new (t || NgbTimepickerModule)(); };\nNgbTimepickerModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbTimepickerModule });\nNgbTimepickerModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimepickerModule, [{\n type: NgModule,\n args: [{ declarations: [NgbTimepicker], exports: [NgbTimepicker], imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbTimepickerModule, { declarations: function () { return [NgbTimepicker]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbTimepicker]; } }); })();\n\n/**\r\n * Configuration service for the NgbToast component. You can inject this service, typically in your root component,\r\n * and customize the values of its properties in order to provide default values for all the toasts used in the\r\n * application.\r\n *\r\n * @since 5.0.0\r\n */\r\nclass NgbToastConfig {\r\n constructor(_ngbConfig) {\r\n this._ngbConfig = _ngbConfig;\r\n this.autohide = true;\r\n this.delay = 500;\r\n this.ariaLive = 'polite';\r\n }\r\n get animation() { return (this._animation === undefined) ? this._ngbConfig.animation : this._animation; }\r\n set animation(animation) { this._animation = animation; }\r\n}\nNgbToastConfig.ɵfac = function NgbToastConfig_Factory(t) { return new (t || NgbToastConfig)(ɵngcc0.ɵɵinject(NgbConfig)); };\r\nNgbToastConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbToastConfig_Factory() { return new NgbToastConfig(ɵɵinject(NgbConfig)); }, token: NgbToastConfig, providedIn: \"root\" });\r\nNgbToastConfig.ctorParameters = () => [\r\n { type: NgbConfig }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbToastConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: NgbConfig }]; }, null); })();\n\nconst ngbToastFadeInTransition = (element, animation) => {\r\n const { classList } = element;\r\n if (!animation) {\r\n classList.add('show');\r\n return;\r\n }\r\n classList.remove('hide');\r\n reflow(element);\r\n classList.add('showing');\r\n return () => {\r\n classList.remove('showing');\r\n classList.add('show');\r\n };\r\n};\r\nconst ngbToastFadeOutTransition = ({ classList }) => {\r\n classList.remove('show');\r\n return () => { classList.add('hide'); };\r\n};\n\n/**\r\n * This directive allows the usage of HTML markup or other directives\r\n * inside of the toast's header.\r\n *\r\n * @since 5.0.0\r\n */\r\nclass NgbToastHeader {\r\n}\nNgbToastHeader.ɵfac = function NgbToastHeader_Factory(t) { return new (t || NgbToastHeader)(); };\nNgbToastHeader.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbToastHeader, selectors: [[\"\", \"ngbToastHeader\", \"\"]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbToastHeader, [{\n type: Directive,\n args: [{ selector: '[ngbToastHeader]' }]\n }], null, null); })();\r\n/**\r\n * Toasts provide feedback messages as notifications to the user.\r\n * Goal is to mimic the push notifications available both on mobile and desktop operating systems.\r\n *\r\n * @since 5.0.0\r\n */\r\nclass NgbToast {\r\n constructor(ariaLive, config, _zone, _element) {\r\n this.ariaLive = ariaLive;\r\n this._zone = _zone;\r\n this._element = _element;\r\n /**\r\n * A template like `<ng-template ngbToastHeader></ng-template>` can be\r\n * used in the projected content to allow markup usage.\r\n */\r\n this.contentHeaderTpl = null;\r\n /**\r\n * An event fired after the animation triggered by calling `.show()` method has finished.\r\n *\r\n * @since 8.0.0\r\n */\r\n this.shown = new EventEmitter();\r\n /**\r\n * An event fired after the animation triggered by calling `.hide()` method has finished.\r\n *\r\n * It can only occur in 2 different scenarios:\r\n * - `autohide` timeout fires\r\n * - user clicks on a closing cross\r\n *\r\n * Additionally this output is purely informative. The toast won't be removed from DOM automatically, it's up\r\n * to the user to take care of that.\r\n *\r\n * @since 8.0.0\r\n */\r\n this.hidden = new EventEmitter();\r\n if (this.ariaLive == null) {\r\n this.ariaLive = config.ariaLive;\r\n }\r\n this.delay = config.delay;\r\n this.autohide = config.autohide;\r\n this.animation = config.animation;\r\n }\r\n ngAfterContentInit() {\r\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\r\n this._init();\r\n this.show();\r\n });\r\n }\r\n ngOnChanges(changes) {\r\n if ('autohide' in changes) {\r\n this._clearTimeout();\r\n this._init();\r\n }\r\n }\r\n /**\r\n * Triggers toast closing programmatically.\r\n *\r\n * The returned observable will emit and be completed once the closing transition has finished.\r\n * If the animations are turned off this happens synchronously.\r\n *\r\n * Alternatively you could listen or subscribe to the `(hidden)` output\r\n *\r\n * @since 8.0.0\r\n */\r\n hide() {\r\n this._clearTimeout();\r\n const transition = ngbRunTransition(this._zone, this._element.nativeElement, ngbToastFadeOutTransition, { animation: this.animation, runningTransition: 'stop' });\r\n transition.subscribe(() => { this.hidden.emit(); });\r\n return transition;\r\n }\r\n /**\r\n * Triggers toast opening programmatically.\r\n *\r\n * The returned observable will emit and be completed once the opening transition has finished.\r\n * If the animations are turned off this happens synchronously.\r\n *\r\n * Alternatively you could listen or subscribe to the `(shown)` output\r\n *\r\n * @since 8.0.0\r\n */\r\n show() {\r\n const transition = ngbRunTransition(this._zone, this._element.nativeElement, ngbToastFadeInTransition, {\r\n animation: this.animation,\r\n runningTransition: 'continue',\r\n });\r\n transition.subscribe(() => { this.shown.emit(); });\r\n return transition;\r\n }\r\n _init() {\r\n if (this.autohide && !this._timeoutID) {\r\n this._timeoutID = setTimeout(() => this.hide(), this.delay);\r\n }\r\n }\r\n _clearTimeout() {\r\n if (this._timeoutID) {\r\n clearTimeout(this._timeoutID);\r\n this._timeoutID = null;\r\n }\r\n }\r\n}\nNgbToast.ɵfac = function NgbToast_Factory(t) { return new (t || NgbToast)(ɵngcc0.ɵɵinjectAttribute('aria-live'), ɵngcc0.ɵɵdirectiveInject(NgbToastConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbToast.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbToast, selectors: [[\"ngb-toast\"]], contentQueries: function NgbToast_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbToastHeader, 7, TemplateRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentHeaderTpl = _t.first);\n } }, hostAttrs: [\"role\", \"alert\", \"aria-atomic\", \"true\", 1, \"toast\"], hostVars: 3, hostBindings: function NgbToast_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-live\", ctx.ariaLive);\n ɵngcc0.ɵɵclassProp(\"fade\", ctx.animation);\n } }, inputs: { delay: \"delay\", autohide: \"autohide\", animation: \"animation\", header: \"header\" }, outputs: { shown: \"shown\", hidden: \"hidden\" }, exportAs: [\"ngbToast\"], features: [ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c3, decls: 5, vars: 1, consts: function () { let i18n_85; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_toast_close_aria$$FESM2015_NG_BOOTSTRAP_JS__86 = goog.getMsg(\"Close\");\n i18n_85 = MSG_EXTERNAL_ngb_toast_close_aria$$FESM2015_NG_BOOTSTRAP_JS__86;\n }\n else {\n i18n_85 = $localize `:@@ngb.toast.close-aria␟f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8␟7819314041543176992:Close`;\n } return [[\"headerTpl\", \"\"], [3, \"ngIf\"], [1, \"toast-body\"], [1, \"mr-auto\"], [1, \"toast-header\"], [3, \"ngTemplateOutlet\"], [\"type\", \"button\", \"aria-label\", i18n_85, 1, \"close\", 3, \"click\"], [\"aria-hidden\", \"true\"]]; }, template: function NgbToast_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, NgbToast_ng_template_0_Template, 2, 1, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbToast_ng_template_2_Template, 5, 1, \"ng-template\", 1);\n ɵngcc0.ɵɵelementStart(3, \"div\", 2);\n ɵngcc0.ɵɵprojection(4);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.contentHeaderTpl || ctx.header);\n } }, dependencies: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], styles: [\".ngb-toasts{margin:.5em;position:fixed;right:0;top:0;z-index:1200}ngb-toast{display:block}ngb-toast .toast-header .close{margin-bottom:.25rem;margin-left:auto}\"], encapsulation: 2 });\r\nNgbToast.ctorParameters = () => [\r\n { type: String, decorators: [{ type: Attribute, args: ['aria-live',] }] },\r\n { type: NgbToastConfig },\r\n { type: NgZone },\r\n { type: ElementRef }\r\n];\r\nNgbToast.propDecorators = {\r\n animation: [{ type: Input }],\r\n delay: [{ type: Input }],\r\n autohide: [{ type: Input }],\r\n header: [{ type: Input }],\r\n contentHeaderTpl: [{ type: ContentChild, args: [NgbToastHeader, { read: TemplateRef, static: true },] }],\r\n shown: [{ type: Output }],\r\n hidden: [{ type: Output }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbToast, [{\n type: Component,\n args: [{ selector: 'ngb-toast', exportAs: 'ngbToast', 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: `\r\n <ng-template #headerTpl>\r\n <strong class=\"mr-auto\">{{header}}</strong>\r\n </ng-template>\r\n <ng-template [ngIf]=\"contentHeaderTpl || header\">\r\n <div class=\"toast-header\">\r\n <ng-template [ngTemplateOutlet]=\"contentHeaderTpl || headerTpl\"></ng-template>\r\n <button type=\"button\" class=\"close\" aria-label=\"Close\" i18n-aria-label=\"@@ngb.toast.close-aria\" (click)=\"hide()\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n </div>\r\n </ng-template>\r\n <div class=\"toast-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n `, styles: [\".ngb-toasts{margin:.5em;position:fixed;right:0;top:0;z-index:1200}ngb-toast{display:block}ngb-toast .toast-header .close{margin-bottom:.25rem;margin-left:auto}\"] }]\n }], function () { return [{ type: String, decorators: [{\n type: Attribute,\n args: ['aria-live']\n }] }, { type: NgbToastConfig }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ElementRef }]; }, { contentHeaderTpl: [{\n type: ContentChild,\n args: [NgbToastHeader, { read: TemplateRef, static: true }]\n }], shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], delay: [{\n type: Input\n }], autohide: [{\n type: Input\n }], animation: [{\n type: Input\n }], header: [{\n type: Input\n }] }); })();\n\nclass NgbToastModule {\r\n}\nNgbToastModule.ɵfac = function NgbToastModule_Factory(t) { return new (t || NgbToastModule)(); };\nNgbToastModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbToastModule });\nNgbToastModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbToastModule, [{\n type: NgModule,\n args: [{ declarations: [NgbToast, NgbToastHeader], imports: [CommonModule], exports: [NgbToast, NgbToastHeader] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbToastModule, { declarations: function () { return [NgbToast, NgbToastHeader]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbToast, NgbToastHeader]; } }); })();\n\n/**\r\n * A configuration service for the [`NgbTooltip`](#/components/tooltip/api#NgbTooltip) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the tooltips used in the application.\r\n */\r\nclass NgbTooltipConfig {\r\n constructor(_ngbConfig) {\r\n this._ngbConfig = _ngbConfig;\r\n this.autoClose = true;\r\n this.placement = 'auto';\r\n this.triggers = 'hover focus';\r\n this.disableTooltip = false;\r\n this.openDelay = 0;\r\n this.closeDelay = 0;\r\n }\r\n get animation() { return (this._animation === undefined) ? this._ngbConfig.animation : this._animation; }\r\n set animation(animation) { this._animation = animation; }\r\n}\nNgbTooltipConfig.ɵfac = function NgbTooltipConfig_Factory(t) { return new (t || NgbTooltipConfig)(ɵngcc0.ɵɵinject(NgbConfig)); };\r\nNgbTooltipConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbTooltipConfig_Factory() { return new NgbTooltipConfig(ɵɵinject(NgbConfig)); }, token: NgbTooltipConfig, providedIn: \"root\" });\r\nNgbTooltipConfig.ctorParameters = () => [\r\n { type: NgbConfig }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTooltipConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: NgbConfig }]; }, null); })();\n\nlet nextId$4 = 0;\r\nclass NgbTooltipWindow {\r\n}\nNgbTooltipWindow.ɵfac = function NgbTooltipWindow_Factory(t) { return new (t || NgbTooltipWindow)(); };\nNgbTooltipWindow.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbTooltipWindow, selectors: [[\"ngb-tooltip-window\"]], hostAttrs: [\"role\", \"tooltip\"], hostVars: 5, hostBindings: function NgbTooltipWindow_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n ɵngcc0.ɵɵclassMap(\"tooltip\" + (ctx.tooltipClass ? \" \" + ctx.tooltipClass : \"\"));\n ɵngcc0.ɵɵclassProp(\"fade\", ctx.animation);\n } }, inputs: { animation: \"animation\", id: \"id\", tooltipClass: \"tooltipClass\" }, ngContentSelectors: _c3, decls: 3, vars: 0, consts: [[1, \"arrow\"], [1, \"tooltip-inner\"]], template: function NgbTooltipWindow_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n } }, styles: [\"ngb-tooltip-window{pointer-events:none}ngb-tooltip-window .tooltip-inner{pointer-events:auto}ngb-tooltip-window.bs-tooltip-bottom .arrow,ngb-tooltip-window.bs-tooltip-top .arrow{left:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-bottom-left .arrow,ngb-tooltip-window.bs-tooltip-top-left .arrow{left:1em}ngb-tooltip-window.bs-tooltip-bottom-right .arrow,ngb-tooltip-window.bs-tooltip-top-right .arrow{left:auto;right:.8rem}ngb-tooltip-window.bs-tooltip-left .arrow,ngb-tooltip-window.bs-tooltip-right .arrow{top:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-left-top .arrow,ngb-tooltip-window.bs-tooltip-right-top .arrow{top:.4rem}ngb-tooltip-window.bs-tooltip-left-bottom .arrow,ngb-tooltip-window.bs-tooltip-right-bottom .arrow{bottom:.4rem;top:auto}\"], encapsulation: 2, changeDetection: 0 });\r\nNgbTooltipWindow.propDecorators = {\r\n animation: [{ type: Input }],\r\n id: [{ type: Input }],\r\n tooltipClass: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTooltipWindow, [{\n type: Component,\n args: [{ selector: 'ngb-tooltip-window', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n '[class]': '\"tooltip\" + (tooltipClass ? \" \" + tooltipClass : \"\")',\n '[class.fade]': 'animation',\n 'role': 'tooltip',\n '[id]': 'id'\n }, template: `<div class=\"arrow\"></div><div class=\"tooltip-inner\"><ng-content></ng-content></div>`, styles: [\"ngb-tooltip-window{pointer-events:none}ngb-tooltip-window .tooltip-inner{pointer-events:auto}ngb-tooltip-window.bs-tooltip-bottom .arrow,ngb-tooltip-window.bs-tooltip-top .arrow{left:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-bottom-left .arrow,ngb-tooltip-window.bs-tooltip-top-left .arrow{left:1em}ngb-tooltip-window.bs-tooltip-bottom-right .arrow,ngb-tooltip-window.bs-tooltip-top-right .arrow{left:auto;right:.8rem}ngb-tooltip-window.bs-tooltip-left .arrow,ngb-tooltip-window.bs-tooltip-right .arrow{top:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-left-top .arrow,ngb-tooltip-window.bs-tooltip-right-top .arrow{top:.4rem}ngb-tooltip-window.bs-tooltip-left-bottom .arrow,ngb-tooltip-window.bs-tooltip-right-bottom .arrow{bottom:.4rem;top:auto}\"] }]\n }], null, { animation: [{\n type: Input\n }], id: [{\n type: Input\n }], tooltipClass: [{\n type: Input\n }] }); })();\r\n/**\r\n * A lightweight and extensible directive for fancy tooltip creation.\r\n */\r\nclass NgbTooltip {\r\n constructor(_elementRef, _renderer, injector, componentFactoryResolver, viewContainerRef, config, _ngZone, _document, _changeDetector, applicationRef) {\r\n this._elementRef = _elementRef;\r\n this._renderer = _renderer;\r\n this._ngZone = _ngZone;\r\n this._document = _document;\r\n this._changeDetector = _changeDetector;\r\n /**\r\n * An event emitted when the tooltip opening animation has finished. Contains no payload.\r\n */\r\n this.shown = new EventEmitter();\r\n /**\r\n * An event emitted when the tooltip closing animation has finished. Contains no payload.\r\n */\r\n this.hidden = new EventEmitter();\r\n this._ngbTooltipWindowId = `ngb-tooltip-${nextId$4++}`;\r\n this._windowRef = null;\r\n this.animation = config.animation;\r\n this.autoClose = config.autoClose;\r\n this.placement = config.placement;\r\n this.triggers = config.triggers;\r\n this.container = config.container;\r\n this.disableTooltip = config.disableTooltip;\r\n this.tooltipClass = config.tooltipClass;\r\n this.openDelay = config.openDelay;\r\n this.closeDelay = config.closeDelay;\r\n this._popupService = new PopupService(NgbTooltipWindow, injector, viewContainerRef, _renderer, this._ngZone, componentFactoryResolver, applicationRef);\r\n this._zoneSubscription = _ngZone.onStable.subscribe(() => {\r\n if (this._windowRef) {\r\n positionElements(this._elementRef.nativeElement, this._windowRef.location.nativeElement, this.placement, this.container === 'body', 'bs-tooltip');\r\n }\r\n });\r\n }\r\n /**\r\n * The string content or a `TemplateRef` for the content to be displayed in the tooltip.\r\n *\r\n * If the content if falsy, the tooltip won't open.\r\n */\r\n set ngbTooltip(value) {\r\n this._ngbTooltip = value;\r\n if (!value && this._windowRef) {\r\n this.close();\r\n }\r\n }\r\n get ngbTooltip() { return this._ngbTooltip; }\r\n /**\r\n * Opens the tooltip.\r\n *\r\n * This is considered to be a \"manual\" triggering.\r\n * The `context` is an optional value to be injected into the tooltip template when it is created.\r\n */\r\n open(context) {\r\n if (!this._windowRef && this._ngbTooltip && !this.disableTooltip) {\r\n const { windowRef, transition$ } = this._popupService.open(this._ngbTooltip, context, this.animation);\r\n this._windowRef = windowRef;\r\n this._windowRef.instance.animation = this.animation;\r\n this._windowRef.instance.tooltipClass = this.tooltipClass;\r\n this._windowRef.instance.id = this._ngbTooltipWindowId;\r\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-describedby', this._ngbTooltipWindowId);\r\n if (this.container === 'body') {\r\n this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement);\r\n }\r\n // We need to detect changes, because we don't know where .open() might be called from.\r\n // Ex. opening tooltip from one of lifecycle hooks that run after the CD\r\n // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception\r\n this._windowRef.changeDetectorRef.detectChanges();\r\n // We need to mark for check, because tooltip won't work inside the OnPush component.\r\n // Ex. when we use expression like `{{ tooltip.isOpen() : 'opened' : 'closed' }}`\r\n // inside the template of an OnPush component and we change the tooltip from\r\n // open -> closed, the expression in question won't be updated unless we explicitly\r\n // mark the parent component to be checked.\r\n this._windowRef.changeDetectorRef.markForCheck();\r\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [this._windowRef.location.nativeElement]);\r\n transition$.subscribe(() => this.shown.emit());\r\n }\r\n }\r\n /**\r\n * Closes the tooltip.\r\n *\r\n * This is considered to be a \"manual\" triggering of the tooltip.\r\n */\r\n close() {\r\n if (this._windowRef != null) {\r\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-describedby');\r\n this._popupService.close(this.animation).subscribe(() => {\r\n this._windowRef = null;\r\n this.hidden.emit();\r\n this._changeDetector.markForCheck();\r\n });\r\n }\r\n }\r\n /**\r\n * Toggles the tooltip.\r\n *\r\n * This is considered to be a \"manual\" triggering of the tooltip.\r\n */\r\n toggle() {\r\n if (this._windowRef) {\r\n this.close();\r\n }\r\n else {\r\n this.open();\r\n }\r\n }\r\n /**\r\n * Returns `true`, if the popover is currently shown.\r\n */\r\n isOpen() { return this._windowRef != null; }\r\n ngOnInit() {\r\n this._unregisterListenersFn = listenToTriggers(this._renderer, this._elementRef.nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay);\r\n }\r\n ngOnChanges({ tooltipClass }) {\r\n if (tooltipClass && this.isOpen()) {\r\n this._windowRef.instance.tooltipClass = tooltipClass.currentValue;\r\n }\r\n }\r\n ngOnDestroy() {\r\n this.close();\r\n // This check is needed as it might happen that ngOnDestroy is called before ngOnInit\r\n // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199\r\n if (this._unregisterListenersFn) {\r\n this._unregisterListenersFn();\r\n }\r\n this._zoneSubscription.unsubscribe();\r\n }\r\n}\nNgbTooltip.ɵfac = function NgbTooltip_Factory(t) { return new (t || NgbTooltip)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(NgbTooltipConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ApplicationRef)); };\nNgbTooltip.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbTooltip, selectors: [[\"\", \"ngbTooltip\", \"\"]], inputs: { animation: \"animation\", autoClose: \"autoClose\", placement: \"placement\", triggers: \"triggers\", container: \"container\", disableTooltip: \"disableTooltip\", tooltipClass: \"tooltipClass\", openDelay: \"openDelay\", closeDelay: \"closeDelay\", ngbTooltip: \"ngbTooltip\" }, outputs: { shown: \"shown\", hidden: \"hidden\" }, exportAs: [\"ngbTooltip\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\r\nNgbTooltip.ctorParameters = () => [\r\n { type: ElementRef },\r\n { type: Renderer2 },\r\n { type: Injector },\r\n { type: ComponentFactoryResolver },\r\n { type: ViewContainerRef },\r\n { type: NgbTooltipConfig },\r\n { type: NgZone },\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\r\n { type: ChangeDetectorRef },\r\n { type: ApplicationRef }\r\n];\r\nNgbTooltip.propDecorators = {\r\n animation: [{ type: Input }],\r\n autoClose: [{ type: Input }],\r\n placement: [{ type: Input }],\r\n triggers: [{ type: Input }],\r\n container: [{ type: Input }],\r\n disableTooltip: [{ type: Input }],\r\n tooltipClass: [{ type: Input }],\r\n openDelay: [{ type: Input }],\r\n closeDelay: [{ type: Input }],\r\n shown: [{ type: Output }],\r\n hidden: [{ type: Output }],\r\n ngbTooltip: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTooltip, [{\n type: Directive,\n args: [{ selector: '[ngbTooltip]', exportAs: 'ngbTooltip' }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.Injector }, { type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.ViewContainerRef }, { type: NgbTooltipConfig }, { type: ɵngcc0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ApplicationRef }]; }, { shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], animation: [{\n type: Input\n }], autoClose: [{\n type: Input\n }], placement: [{\n type: Input\n }], triggers: [{\n type: Input\n }], container: [{\n type: Input\n }], disableTooltip: [{\n type: Input\n }], tooltipClass: [{\n type: Input\n }], openDelay: [{\n type: Input\n }], closeDelay: [{\n type: Input\n }], ngbTooltip: [{\n type: Input\n }] }); })();\n\nclass NgbTooltipModule {\r\n}\nNgbTooltipModule.ɵfac = function NgbTooltipModule_Factory(t) { return new (t || NgbTooltipModule)(); };\nNgbTooltipModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbTooltipModule });\nNgbTooltipModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTooltipModule, [{\n type: NgModule,\n args: [{ declarations: [NgbTooltip, NgbTooltipWindow], exports: [NgbTooltip], entryComponents: [NgbTooltipWindow] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbTooltipModule, { declarations: [NgbTooltip, NgbTooltipWindow], exports: [NgbTooltip] }); })();\n\n/**\r\n * A component that helps with text highlighting.\r\n *\r\n * If splits the `result` text into parts that contain the searched `term` and generates the HTML markup to simplify\r\n * highlighting:\r\n *\r\n * Ex. `result=\"Alaska\"` and `term=\"as\"` will produce `Al<span class=\"ngb-highlight\">as</span>ka`.\r\n */\r\nclass NgbHighlight {\r\n constructor() {\r\n /**\r\n * The CSS class for `<span>` elements wrapping the `term` inside the `result`.\r\n */\r\n this.highlightClass = 'ngb-highlight';\r\n /**\r\n * Boolean option to determine if the highlighting should be sensitive to accents or not.\r\n *\r\n * This feature is only available for browsers that implement the `String.normalize` function\r\n * (typically not Internet Explorer).\r\n * If you want to use this feature in a browser that does not implement `String.normalize`,\r\n * you will have to include a polyfill in your application (`unorm` for example).\r\n *\r\n * @since 9.1.0\r\n */\r\n this.accentSensitive = true;\r\n }\r\n ngOnChanges(changes) {\r\n if (!this.accentSensitive && !String.prototype.normalize) {\r\n console.warn('The `accentSensitive` input in `ngb-highlight` cannot be set to `false` in a browser ' +\r\n 'that does not implement the `String.normalize` function. ' +\r\n 'You will have to include a polyfill in your application to use this feature in the current browser.');\r\n this.accentSensitive = true;\r\n }\r\n const result = toString(this.result);\r\n const terms = Array.isArray(this.term) ? this.term : [this.term];\r\n const prepareTerm = term => this.accentSensitive ? term : removeAccents(term);\r\n const escapedTerms = terms.map(term => regExpEscape(prepareTerm(toString(term)))).filter(term => term);\r\n const toSplit = this.accentSensitive ? result : removeAccents(result);\r\n const parts = escapedTerms.length ? toSplit.split(new RegExp(`(${escapedTerms.join('|')})`, 'gmi')) : [result];\r\n if (this.accentSensitive) {\r\n this.parts = parts;\r\n }\r\n else {\r\n let offset = 0;\r\n this.parts = parts.map(part => result.substring(offset, offset += part.length));\r\n }\r\n }\r\n}\nNgbHighlight.ɵfac = function NgbHighlight_Factory(t) { return new (t || NgbHighlight)(); };\nNgbHighlight.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbHighlight, selectors: [[\"ngb-highlight\"]], inputs: { highlightClass: \"highlightClass\", accentSensitive: \"accentSensitive\", result: \"result\", term: \"term\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[\"ngFor\", \"\", 3, \"ngForOf\"], [3, \"class\", 4, \"ngIf\", \"ngIfElse\"], [\"even\", \"\"]], template: function NgbHighlight_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbHighlight_ng_template_0_Template, 3, 2, \"ng-template\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.parts);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf], styles: [\".ngb-highlight{font-weight:700}\"], encapsulation: 2, changeDetection: 0 });\r\nNgbHighlight.propDecorators = {\r\n highlightClass: [{ type: Input }],\r\n result: [{ type: Input }],\r\n term: [{ type: Input }],\r\n accentSensitive: [{ type: Input }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbHighlight, [{\n type: Component,\n args: [{ selector: 'ngb-highlight', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `<ng-template ngFor [ngForOf]=\"parts\" let-part let-isOdd=\"odd\">` +\n `<span *ngIf=\"isOdd; else even\" [class]=\"highlightClass\">{{part}}</span><ng-template #even>{{part}}</ng-template>` +\n `</ng-template>`, styles: [\".ngb-highlight{font-weight:700}\"] }]\n }], function () { return []; }, { highlightClass: [{\n type: Input\n }], accentSensitive: [{\n type: Input\n }], result: [{\n type: Input\n }], term: [{\n type: Input\n }] }); })();\n\nclass NgbTypeaheadWindow {\r\n constructor() {\r\n this.activeIdx = 0;\r\n /**\r\n * Flag indicating if the first row should be active initially\r\n */\r\n this.focusFirst = true;\r\n /**\r\n * A function used to format a given result before display. This function should return a formatted string without any\r\n * HTML markup\r\n */\r\n this.formatter = toString;\r\n /**\r\n * Event raised when user selects a particular result row\r\n */\r\n this.selectEvent = new EventEmitter();\r\n this.activeChangeEvent = new EventEmitter();\r\n }\r\n hasActive() { return this.activeIdx > -1 && this.activeIdx < this.results.length; }\r\n getActive() { return this.results[this.activeIdx]; }\r\n markActive(activeIdx) {\r\n this.activeIdx = activeIdx;\r\n this._activeChanged();\r\n }\r\n next() {\r\n if (this.activeIdx === this.results.length - 1) {\r\n this.activeIdx = this.focusFirst ? (this.activeIdx + 1) % this.results.length : -1;\r\n }\r\n else {\r\n this.activeIdx++;\r\n }\r\n this._activeChanged();\r\n }\r\n prev() {\r\n if (this.activeIdx < 0) {\r\n this.activeIdx = this.results.length - 1;\r\n }\r\n else if (this.activeIdx === 0) {\r\n this.activeIdx = this.focusFirst ? this.results.length - 1 : -1;\r\n }\r\n else {\r\n this.activeIdx--;\r\n }\r\n this._activeChanged();\r\n }\r\n resetActive() {\r\n this.activeIdx = this.focusFirst ? 0 : -1;\r\n this._activeChanged();\r\n }\r\n select(item) { this.selectEvent.emit(item); }\r\n ngOnInit() { this.resetActive(); }\r\n _activeChanged() {\r\n this.activeChangeEvent.emit(this.activeIdx >= 0 ? this.id + '-' + this.activeIdx : undefined);\r\n }\r\n}\nNgbTypeaheadWindow.ɵfac = function NgbTypeaheadWindow_Factory(t) { return new (t || NgbTypeaheadWindow)(); };\nNgbTypeaheadWindow.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbTypeaheadWindow, selectors: [[\"ngb-typeahead-window\"]], hostAttrs: [\"role\", \"listbox\"], hostVars: 3, hostBindings: function NgbTypeaheadWindow_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"mousedown\", function NgbTypeaheadWindow_mousedown_HostBindingHandler($event) { return $event.preventDefault(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n ɵngcc0.ɵɵclassMap(\"dropdown-menu show\" + (ctx.popupClass ? \" \" + ctx.popupClass : \"\"));\n } }, inputs: { focusFirst: \"focusFirst\", formatter: \"formatter\", id: \"id\", results: \"results\", term: \"term\", resultTemplate: \"resultTemplate\", popupClass: \"popupClass\" }, outputs: { selectEvent: \"select\", activeChangeEvent: \"activeChange\" }, exportAs: [\"ngbTypeaheadWindow\"], decls: 3, vars: 1, consts: [[\"rt\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [3, \"result\", \"term\"], [\"type\", \"button\", \"role\", \"option\", 1, \"dropdown-item\", 3, \"id\", \"mouseenter\", \"click\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function NgbTypeaheadWindow_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbTypeaheadWindow_ng_template_0_Template, 1, 2, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbTypeaheadWindow_ng_template_2_Template, 2, 9, \"ng-template\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.results);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgTemplateOutlet, NgbHighlight], encapsulation: 2 });\r\nNgbTypeaheadWindow.propDecorators = {\r\n id: [{ type: Input }],\r\n focusFirst: [{ type: Input }],\r\n results: [{ type: Input }],\r\n term: [{ type: Input }],\r\n formatter: [{ type: Input }],\r\n resultTemplate: [{ type: Input }],\r\n popupClass: [{ type: Input }],\r\n selectEvent: [{ type: Output, args: ['select',] }],\r\n activeChangeEvent: [{ type: Output, args: ['activeChange',] }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTypeaheadWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-typeahead-window',\n exportAs: 'ngbTypeaheadWindow',\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: `\r\n <ng-template #rt let-result=\"result\" let-term=\"term\" let-formatter=\"formatter\">\r\n <ngb-highlight [result]=\"formatter(result)\" [term]=\"term\"></ngb-highlight>\r\n </ng-template>\r\n <ng-template ngFor [ngForOf]=\"results\" let-result let-idx=\"index\">\r\n <button type=\"button\" class=\"dropdown-item\" role=\"option\"\r\n [id]=\"id + '-' + idx\"\r\n [class.active]=\"idx === activeIdx\"\r\n (mouseenter)=\"markActive(idx)\"\r\n (click)=\"select(result)\">\r\n <ng-template [ngTemplateOutlet]=\"resultTemplate || rt\"\r\n [ngTemplateOutletContext]=\"{result: result, term: term, formatter: formatter}\"></ng-template>\r\n </button>\r\n </ng-template>\r\n `\n }]\n }], function () { return []; }, { focusFirst: [{\n type: Input\n }], formatter: [{\n type: Input\n }], selectEvent: [{\n type: Output,\n args: ['select']\n }], activeChangeEvent: [{\n type: Output,\n args: ['activeChange']\n }], id: [{\n type: Input\n }], results: [{\n type: Input\n }], term: [{\n type: Input\n }], resultTemplate: [{\n type: Input\n }], popupClass: [{\n type: Input\n }] }); })();\n\nconst ARIA_LIVE_DELAY = new InjectionToken('live announcer delay', { providedIn: 'root', factory: ARIA_LIVE_DELAY_FACTORY });\r\nfunction ARIA_LIVE_DELAY_FACTORY() {\r\n return 100;\r\n}\r\nfunction getLiveElement(document, lazyCreate = false) {\r\n let element = document.body.querySelector('#ngb-live');\r\n if (element == null && lazyCreate) {\r\n element = document.createElement('div');\r\n element.setAttribute('id', 'ngb-live');\r\n element.setAttribute('aria-live', 'polite');\r\n element.setAttribute('aria-atomic', 'true');\r\n element.classList.add('sr-only');\r\n document.body.appendChild(element);\r\n }\r\n return element;\r\n}\r\nclass Live {\r\n constructor(_document, _delay) {\r\n this._document = _document;\r\n this._delay = _delay;\r\n }\r\n ngOnDestroy() {\r\n const element = getLiveElement(this._document);\r\n if (element) {\r\n // if exists, it will always be attached to the <body>\r\n element.parentElement.removeChild(element);\r\n }\r\n }\r\n say(message) {\r\n const element = getLiveElement(this._document, true);\r\n const delay = this._delay;\r\n if (element != null) {\r\n element.textContent = '';\r\n const setText = () => element.textContent = message;\r\n if (delay === null) {\r\n setText();\r\n }\r\n else {\r\n setTimeout(setText, delay);\r\n }\r\n }\r\n }\r\n}\nLive.ɵfac = function Live_Factory(t) { return new (t || Live)(ɵngcc0.ɵɵinject(DOCUMENT), ɵngcc0.ɵɵinject(ARIA_LIVE_DELAY)); };\r\nLive.ɵprov = ɵɵdefineInjectable({ factory: function Live_Factory() { return new Live(ɵɵinject(DOCUMENT), ɵɵinject(ARIA_LIVE_DELAY)); }, token: Live, providedIn: \"root\" });\r\nLive.ctorParameters = () => [\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\r\n { type: undefined, decorators: [{ type: Inject, args: [ARIA_LIVE_DELAY,] }] }\r\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(Live, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [ARIA_LIVE_DELAY]\n }] }]; }, null); })();\n\n/**\r\n * A configuration service for the [`NgbTypeahead`](#/components/typeahead/api#NgbTypeahead) component.\r\n *\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the typeaheads used in the application.\r\n */\r\nclass NgbTypeaheadConfig {\r\n constructor() {\r\n this.editable = true;\r\n this.focusFirst = true;\r\n this.showHint = false;\r\n this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right'];\r\n }\r\n}\nNgbTypeaheadConfig.ɵfac = function NgbTypeaheadConfig_Factory(t) { return new (t || NgbTypeaheadConfig)(); };\r\nNgbTypeaheadConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbTypeaheadConfig_Factory() { return new NgbTypeaheadConfig(); }, token: NgbTypeaheadConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTypeaheadConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\nlet nextWindowId = 0;\r\n/**\r\n * A directive providing a simple way of creating powerful typeaheads from any text input.\r\n */\r\nclass NgbTypeahead {\r\n constructor(_elementRef, viewContainerRef, _renderer, injector, componentFactoryResolver, config, ngZone, _live, _document, _ngZone, _changeDetector, applicationRef) {\r\n this._elementRef = _elementRef;\r\n this._renderer = _renderer;\r\n this._live = _live;\r\n this._document = _document;\r\n this._ngZone = _ngZone;\r\n this._changeDetector = _changeDetector;\r\n this._subscription = null;\r\n this._closed$ = new Subject();\r\n this._inputValueBackup = null;\r\n this._windowRef = null;\r\n /**\r\n * The value for the `autocomplete` attribute for the `<input>` element.\r\n *\r\n * Defaults to `\"off\"` to disable the native browser autocomplete, but you can override it if necessary.\r\n *\r\n * @since 2.1.0\r\n */\r\n this.autocomplete = 'off';\r\n /**\r\n * The preferred placement of the typeahead.\r\n *\r\n * Possible values are `\"top\"`, `\"top-left\"`, `\"top-right\"`, `\"bottom\"`, `\"bottom-left\"`,\r\n * `\"bottom-right\"`, `\"left\"`, `\"left-top\"`, `\"left-bottom\"`, `\"right\"`, `\"right-top\"`,\r\n * `\"right-bottom\"`\r\n *\r\n * Accepts an array of strings or a string with space separated possible values.\r\n *\r\n * The default order of preference is `\"bottom-left bottom-right top-left top-right\"`\r\n *\r\n * Please see the [positioning overview](#/positioning) for more details.\r\n */\r\n this.placement = 'bottom-left';\r\n /**\r\n * An event emitted right before an item is selected from the result list.\r\n *\r\n * Event payload is of type [`NgbTypeaheadSelectItemEvent`](#/components/typeahead/api#NgbTypeaheadSelectItemEvent).\r\n */\r\n this.selectItem = new EventEmitter();\r\n this.activeDescendant = null;\r\n this.popupId = `ngb-typeahead-${nextWindowId++}`;\r\n this._onTouched = () => { };\r\n this._onChange = (_) => { };\r\n this.container = config.container;\r\n this.editable = config.editable;\r\n this.focusFirst = config.focusFirst;\r\n this.showHint = config.showHint;\r\n this.placement = config.placement;\r\n this._valueChanges = fromEvent(_elementRef.nativeElement, 'input')\r\n .pipe(map($event => $event.target.value));\r\n this._resubscribeTypeahead = new BehaviorSubject(null);\r\n this._popupService = new PopupService(NgbTypeaheadWindow, injector, viewContainerRef, _renderer, this._ngZone, componentFactoryResolver, applicationRef);\r\n this._zoneSubscription = ngZone.onStable.subscribe(() => {\r\n if (this.isPopupOpen()) {\r\n positionElements(this._elementRef.nativeElement, this._windowRef.location.nativeElement, this.placement, this.container === 'body');\r\n }\r\n });\r\n }\r\n ngOnInit() { this._subscribeToUserInput(); }\r\n ngOnChanges({ ngbTypeahead }) {\r\n if (ngbTypeahead && !ngbTypeahead.firstChange) {\r\n this._unsubscribeFromUserInput();\r\n this._subscribeToUserInput();\r\n }\r\n }\r\n ngOnDestroy() {\r\n this._closePopup();\r\n this._unsubscribeFromUserInput();\r\n this._zoneSubscription.unsubscribe();\r\n }\r\n registerOnChange(fn) { this._onChange = fn; }\r\n registerOnTouched(fn) { this._onTouched = fn; }\r\n writeValue(value) {\r\n this._writeInputValue(this._formatItemForInput(value));\r\n if (this.showHint) {\r\n this._inputValueBackup = value;\r\n }\r\n }\r\n setDisabledState(isDisabled) {\r\n this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\r\n }\r\n /**\r\n * Dismisses typeahead popup window\r\n */\r\n dismissPopup() {\r\n if (this.isPopupOpen()) {\r\n this._resubscribeTypeahead.next(null);\r\n this._closePopup();\r\n if (this.showHint && this._inputValueBackup !== null) {\r\n this._writeInputValue(this._inputValueBackup);\r\n }\r\n this._changeDetector.markForCheck();\r\n }\r\n }\r\n /**\r\n * Returns true if the typeahead popup window is displayed\r\n */\r\n isPopupOpen() { return this._windowRef != null; }\r\n handleBlur() {\r\n this._resubscribeTypeahead.next(null);\r\n this._onTouched();\r\n }\r\n handleKeyDown(event) {\r\n if (!this.isPopupOpen()) {\r\n return;\r\n }\r\n // tslint:disable-next-line:deprecation\r\n switch (event.which) {\r\n case Key.ArrowDown:\r\n event.preventDefault();\r\n this._windowRef.instance.next();\r\n this._showHint();\r\n break;\r\n case Key.ArrowUp:\r\n event.preventDefault();\r\n this._windowRef.instance.prev();\r\n this._showHint();\r\n break;\r\n case Key.Enter:\r\n case Key.Tab:\r\n const result = this._windowRef.instance.getActive();\r\n if (isDefined(result)) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this._selectResult(result);\r\n }\r\n this._closePopup();\r\n break;\r\n }\r\n }\r\n _openPopup() {\r\n if (!this.isPopupOpen()) {\r\n this._inputValueBackup = this._elementRef.nativeElement.value;\r\n const { windowRef } = this._popupService.open();\r\n this._windowRef = windowRef;\r\n this._windowRef.instance.id = this.popupId;\r\n this._windowRef.instance.selectEvent.subscribe((result) => this._selectResultClosePopup(result));\r\n this._windowRef.instance.activeChangeEvent.subscribe((activeId) => this.activeDescendant = activeId);\r\n this._windowRef.instance.popupClass = this.popupClass;\r\n if (this.container === 'body') {\r\n this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement);\r\n }\r\n this._changeDetector.markForCheck();\r\n ngbAutoClose(this._ngZone, this._document, 'outside', () => this.dismissPopup(), this._closed$, [this._elementRef.nativeElement, this._windowRef.location.nativeElement]);\r\n }\r\n }\r\n _closePopup() {\r\n this._popupService.close().subscribe(() => {\r\n this._closed$.next();\r\n this._windowRef = null;\r\n this.activeDescendant = null;\r\n });\r\n }\r\n _selectResult(result) {\r\n let defaultPrevented = false;\r\n this.selectItem.emit({ item: result, preventDefault: () => { defaultPrevented = true; } });\r\n this._resubscribeTypeahead.next(null);\r\n if (!defaultPrevented) {\r\n this.writeValue(result);\r\n this._onChange(result);\r\n }\r\n }\r\n _selectResultClosePopup(result) {\r\n this._selectResult(result);\r\n this._closePopup();\r\n }\r\n _showHint() {\r\n var _a;\r\n if (this.showHint && ((_a = this._windowRef) === null || _a === void 0 ? void 0 : _a.instance.hasActive()) && this._inputValueBackup != null) {\r\n const userInputLowerCase = this._inputValueBackup.toLowerCase();\r\n const formattedVal = this._formatItemForInput(this._windowRef.instance.getActive());\r\n if (userInputLowerCase === formattedVal.substr(0, this._inputValueBackup.length).toLowerCase()) {\r\n this._writeInputValue(this._inputValueBackup + formattedVal.substr(this._inputValueBackup.length));\r\n this._elementRef.nativeElement['setSelectionRange'].apply(this._elementRef.nativeElement, [this._inputValueBackup.length, formattedVal.length]);\r\n }\r\n else {\r\n this._writeInputValue(formattedVal);\r\n }\r\n }\r\n }\r\n _formatItemForInput(item) {\r\n return item != null && this.inputFormatter ? this.inputFormatter(item) : toString(item);\r\n }\r\n _writeInputValue(value) {\r\n this._renderer.setProperty(this._elementRef.nativeElement, 'value', toString(value));\r\n }\r\n _subscribeToUserInput() {\r\n const results$ = this._valueChanges.pipe(tap(value => {\r\n this._inputValueBackup = this.showHint ? value : null;\r\n this._onChange(this.editable ? value : undefined);\r\n }), this.ngbTypeahead ? this.ngbTypeahead : () => of([]));\r\n this._subscription = this._resubscribeTypeahead.pipe(switchMap(() => results$)).subscribe(results => {\r\n if (!results || results.length === 0) {\r\n this._closePopup();\r\n }\r\n else {\r\n this._openPopup();\r\n this._windowRef.instance.focusFirst = this.focusFirst;\r\n this._windowRef.instance.results = results;\r\n this._windowRef.instance.term = this._elementRef.nativeElement.value;\r\n if (this.resultFormatter) {\r\n this._windowRef.instance.formatter = this.resultFormatter;\r\n }\r\n if (this.resultTemplate) {\r\n this._windowRef.instance.resultTemplate = this.resultTemplate;\r\n }\r\n this._windowRef.instance.resetActive();\r\n // The observable stream we are subscribing to might have async steps\r\n // and if a component containing typeahead is using the OnPush strategy\r\n // the change detection turn wouldn't be invoked automatically.\r\n this._windowRef.changeDetectorRef.detectChanges();\r\n this._showHint();\r\n }\r\n // live announcer\r\n const count = results ? results.length : 0;\r\n this._live.say(count === 0 ? 'No results available' : `${count} result${count === 1 ? '' : 's'} available`);\r\n });\r\n }\r\n _unsubscribeFromUserInput() {\r\n if (this._subscription) {\r\n this._subscription.unsubscribe();\r\n }\r\n this._subscription = null;\r\n }\r\n}\nNgbTypeahead.ɵfac = function NgbTypeahead_Factory(t) { return new (t || NgbTypeahead)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(NgbTypeaheadConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(Live), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ApplicationRef)); };\nNgbTypeahead.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbTypeahead, selectors: [[\"input\", \"ngbTypeahead\", \"\"]], hostAttrs: [\"autocapitalize\", \"off\", \"autocorrect\", \"off\", \"role\", \"combobox\", \"aria-multiline\", \"false\"], hostVars: 7, hostBindings: function NgbTypeahead_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"blur\", function NgbTypeahead_blur_HostBindingHandler() { return ctx.handleBlur(); })(\"keydown\", function NgbTypeahead_keydown_HostBindingHandler($event) { return ctx.handleKeyDown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"autocomplete\", ctx.autocomplete);\n ɵngcc0.ɵɵattribute(\"aria-autocomplete\", ctx.showHint ? \"both\" : \"list\")(\"aria-activedescendant\", ctx.activeDescendant)(\"aria-owns\", ctx.isPopupOpen() ? ctx.popupId : null)(\"aria-expanded\", ctx.isPopupOpen());\n ɵngcc0.ɵɵclassProp(\"open\", ctx.isPopupOpen());\n } }, inputs: { autocomplete: \"autocomplete\", placement: \"placement\", container: \"container\", editable: \"editable\", focusFirst: \"focusFirst\", showHint: \"showHint\", inputFormatter: \"inputFormatter\", ngbTypeahead: \"ngbTypeahead\", resultFormatter: \"resultFormatter\", resultTemplate: \"resultTemplate\", popupClass: \"popupClass\" }, outputs: { selectItem: \"selectItem\" }, exportAs: [\"ngbTypeahead\"], features: [ɵngcc0.ɵɵProvidersFeature([{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbTypeahead), multi: true }]), ɵngcc0.ɵɵNgOnChangesFeature] });\r\nNgbTypeahead.ctorParameters = () => [\r\n { type: ElementRef },\r\n { type: ViewContainerRef },\r\n { type: Renderer2 },\r\n { type: Injector },\r\n { type: ComponentFactoryResolver },\r\n { type: NgbTypeaheadConfig },\r\n { type: NgZone },\r\n { type: Live },\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\r\n { type: NgZone },\r\n { type: ChangeDetectorRef },\r\n { type: ApplicationRef }\r\n];\r\nNgbTypeahead.propDecorators = {\r\n autocomplete: [{ type: Input }],\r\n container: [{ type: Input }],\r\n editable: [{ type: Input }],\r\n focusFirst: [{ type: Input }],\r\n inputFormatter: [{ type: Input }],\r\n ngbTypeahead: [{ type: Input }],\r\n resultFormatter: [{ type: Input }],\r\n resultTemplate: [{ type: Input }],\r\n showHint: [{ type: Input }],\r\n placement: [{ type: Input }],\r\n popupClass: [{ type: Input }],\r\n selectItem: [{ type: Output }]\r\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTypeahead, [{\n type: Directive,\n args: [{\n selector: 'input[ngbTypeahead]',\n exportAs: 'ngbTypeahead',\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 'aria-multiline': 'false',\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 }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.Injector }, { type: ɵngcc0.ComponentFactoryResolver }, { type: NgbTypeaheadConfig }, { type: ɵngcc0.NgZone }, { type: Live }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ApplicationRef }]; }, { autocomplete: [{\n type: Input\n }], placement: [{\n type: Input\n }], selectItem: [{\n type: Output\n }], container: [{\n type: Input\n }], editable: [{\n type: Input\n }], focusFirst: [{\n type: Input\n }], showHint: [{\n type: Input\n }], inputFormatter: [{\n type: Input\n }], ngbTypeahead: [{\n type: Input\n }], resultFormatter: [{\n type: Input\n }], resultTemplate: [{\n type: Input\n }], popupClass: [{\n type: Input\n }] }); })();\n\nclass NgbTypeaheadModule {\r\n}\nNgbTypeaheadModule.ɵfac = function NgbTypeaheadModule_Factory(t) { return new (t || NgbTypeaheadModule)(); };\nNgbTypeaheadModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbTypeaheadModule });\nNgbTypeaheadModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTypeaheadModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbTypeahead, NgbHighlight, NgbTypeaheadWindow],\n exports: [NgbTypeahead, NgbHighlight],\n imports: [CommonModule],\n entryComponents: [NgbTypeaheadWindow]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbTypeaheadModule, { declarations: function () { return [NgbTypeahead, NgbHighlight, NgbTypeaheadWindow]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbTypeahead, NgbHighlight]; } }); })();\n\nconst NGB_MODULES = [\r\n NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule,\r\n NgbDropdownModule, NgbModalModule, NgbNavModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule,\r\n NgbRatingModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule\r\n];\r\nclass NgbModule {\r\n}\nNgbModule.ɵfac = function NgbModule_Factory(t) { return new (t || NgbModule)(); };\nNgbModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbModule });\nNgbModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [NGB_MODULES, NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModule, [{\n type: NgModule,\n args: [{ imports: NGB_MODULES, exports: NGB_MODULES }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbModule, { imports: [NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule], exports: [NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule] }); })();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { ModalDismissReasons, NgbAccordion, NgbAccordionConfig, NgbAccordionModule, NgbActiveModal, NgbAlert, NgbAlertConfig, NgbAlertModule, NgbButtonLabel, NgbButtonsModule, NgbCalendar, NgbCalendarBuddhist, NgbCalendarGregorian, NgbCalendarHebrew, NgbCalendarIslamicCivil, NgbCalendarIslamicUmalqura, NgbCalendarPersian, NgbCarousel, NgbCarouselConfig, NgbCarouselModule, NgbCheckBox, NgbCollapse, NgbCollapseConfig, NgbCollapseModule, NgbConfig, NgbDate, NgbDateAdapter, NgbDateNativeAdapter, NgbDateNativeUTCAdapter, NgbDateParserFormatter, NgbDatepicker, NgbDatepickerConfig, NgbDatepickerContent, NgbDatepickerI18n, NgbDatepickerI18nDefault, NgbDatepickerI18nHebrew, NgbDatepickerKeyboardService, NgbDatepickerModule, NgbDatepickerMonth, NgbDropdown, NgbDropdownAnchor, NgbDropdownConfig, NgbDropdownItem, NgbDropdownMenu, NgbDropdownModule, NgbDropdownToggle, NgbHighlight, NgbInputDatepicker, NgbInputDatepickerConfig, NgbModal, NgbModalConfig, NgbModalModule, NgbModalRef, NgbModule, NgbNav, NgbNavConfig, NgbNavContent, NgbNavItem, NgbNavLink, NgbNavModule, NgbNavOutlet, NgbNavPane, NgbNavbar, NgbPagination, NgbPaginationConfig, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationModule, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPages, NgbPaginationPrevious, NgbPanel, NgbPanelContent, NgbPanelHeader, NgbPanelTitle, NgbPanelToggle, NgbPopover, NgbPopoverConfig, NgbPopoverModule, NgbProgressbar, NgbProgressbarConfig, NgbProgressbarModule, NgbRadio, NgbRadioGroup, NgbRating, NgbRatingConfig, NgbRatingModule, NgbSlide, NgbSlideEventDirection, NgbSlideEventSource, NgbTimeAdapter, NgbTimepicker, NgbTimepickerConfig, NgbTimepickerI18n, NgbTimepickerModule, NgbToast, NgbToastConfig, NgbToastHeader, NgbToastModule, NgbTooltip, NgbTooltipConfig, NgbTooltipModule, NgbTypeahead, NgbTypeaheadConfig, NgbTypeaheadModule, NGB_CAROUSEL_DIRECTIVES as ɵa, NGB_DATEPICKER_CALENDAR_FACTORY as ɵb, ContentRef as ɵba, NgbDatepickerDayView as ɵc, NgbDatepickerNavigation as ɵd, NgbDatepickerNavigationSelect as ɵe, NGB_DATEPICKER_18N_FACTORY as ɵf, NGB_DATEPICKER_DATE_ADAPTER_FACTORY as ɵg, NgbDateStructAdapter as ɵh, NGB_DATEPICKER_PARSER_FORMATTER_FACTORY as ɵi, NgbDateISOParserFormatter as ɵj, NgbPopoverWindow as ɵk, NGB_DATEPICKER_TIME_ADAPTER_FACTORY as ɵl, NgbTimeStructAdapter as ɵm, NGB_TIMEPICKER_I18N_FACTORY as ɵn, NgbTimepickerI18nDefault as ɵo, NgbTooltipWindow as ɵp, NgbTypeaheadWindow as ɵq, NgbDatepickerService as ɵr, NgbModalBackdrop as ɵs, NgbModalWindow as ɵt, NgbModalStack as ɵu, ScrollBar as ɵv, ARIA_LIVE_DELAY as ɵw, ARIA_LIVE_DELAY_FACTORY as ɵx, Live as ɵy, NgbCalendarHijri as ɵz };\n\n"],"mappings":"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EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc;AAC9E;AACA,cAAc,EA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"},"metadata":{},"sourceType":"module"} |