{"version":3,"sources":["./node_modules/rxjs/_esm2015/internal/util/isNumeric.js","./node_modules/rxjs/_esm2015/internal/observable/timer.js","./node_modules/rxjs/_esm2015/internal/observable/race.js","./node_modules/rxjs/_esm2015/internal/observable/zip.js","./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js","./node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js","./node_modules/@ng-bootstrap/ng-bootstrap/__ivy_ngcc__/fesm2015/ng-bootstrap.js","./node_modules/rxjs/_esm2015/internal/operators/endWith.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/BehaviorSubject.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/Notification.js","./node_modules/rxjs/_esm2015/internal/operators/delay.js","./node_modules/rxjs/_esm2015/internal/util/isDate.js","./node_modules/rxjs/_esm2015/internal/observable/forkJoin.js","./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/ng2-file-upload/__ivy_ngcc__/fesm2015/ng2-file-upload.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./src/environments/environment.ts","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/async.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/observable/concat.js","./node_modules/rxjs/_esm2015/internal/operators/concatAll.js","./src/app/_core/services/cadastro-bem.service.ts","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./src/app/_core/helper/auth.guard.ts","./node_modules/file-saver/dist/FileSaver.min.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./node_modules/rxjs/_esm2015/internal/operators/catchError.js","./node_modules/rxjs/_esm2015/internal/operators/startWith.js","./node_modules/rxjs/_esm2015/internal/operators/debounceTime.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./src/app/_core/services/authentication/authentication.service.ts","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./src/app/_paginas/tela-de-liberacao/tela-de-liberacao/tela-de-liberacao.component.ts","./src/app/_paginas/tela-de-liberacao/tela-de-liberacao/tela-de-liberacao.component.html","./src/app/_core/services/localizacao.service.ts","./node_modules/sweetalert2/dist/sweetalert2.all.js","./src/app/_core/models/movimentacao.ts","./src/app/_core/services/movimentacao.service.ts","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/observable/merge.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","./node_modules/angular-ng-autocomplete/__ivy_ngcc__/fesm2015/angular-ng-autocomplete.js","./node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/ng2-search-filter/__ivy_ngcc__/ng2-search-filter.js","./node_modules/rxjs/_esm2015/internal/operators/switchMap.js","./node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./src/app/_paginas/tela-de-liberacao/tela-de-liberacao.module.ts","./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./src/app/_paginas/tela-de-liberacao/tela-de-liberar.component.ts","./src/app/_paginas/tela-de-liberacao/tela-de-liberacao-routing.module.ts","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js","./node_modules/rxjs/_esm2015/internal/util/EmptyError.js","./node_modules/rxjs/_esm2015/internal/observable/defer.js","./node_modules/rxjs/_esm2015/internal/operators/scan.js","./node_modules/rxjs/_esm2015/internal/operators/takeLast.js","./node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/first.js","./node_modules/rxjs/_esm2015/internal/operators/finalize.js","./node_modules/@angular/router/__ivy_ngcc__/fesm2015/router.js","./node_modules/rxjs/_esm2015/internal/operators/last.js","./node_modules/rxjs/_esm2015/internal/operators/retry.js","./src/app/_core/services/base/service.base.ts","./src/app/_core/services/login.service.ts","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/operators/refCount.js","./node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm2015/internal/operators/share.js","./node_modules/rxjs/_esm2015/internal/operators/multicast.js","./node_modules/rxjs/_esm2015/internal/observable/fromEvent.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js","./node_modules/@angular/animations/__ivy_ngcc__/fesm2015/animations.js","./node_modules/@angular/animations/__ivy_ngcc__/fesm2015/browser.js","./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/animations.js","./src/app/_core/helper/basic-auth.interceptor.ts","./src/app/_core/helper/error.interceptor.ts","./src/app/_core/models/page.ts","./src/app/_core/services/page.service.ts","./src/app/_core/models/arquivo.ts","./src/app/_core/models/evidencia.ts","./src/app/_core/services/upload.service.ts","./src/app/_paginas/listagem-de-inconsistencias/listagem-de-inconsistencia-modal/listagem-de-inconsistencia-modal.component.html","./src/app/_paginas/listagem-de-inconsistencias/listagem-de-inconsistencia-modal/listagem-de-inconsistencia-modal.component.ts","./src/app/_paginas/listagem-de-inconsistencias/listagem-de-inconsistencia/listagem-de-inconsistencia.component.html","./src/app/_paginas/listagem-de-inconsistencias/listagem-de-inconsistencia/listagem-de-inconsistencia.component.ts","./src/app/_paginas/listagem-de-inconsistencias/lista-de-inconsistencia.component.ts","./src/app/_paginas/tela-de-inconsistencias-gestor/tela-inconsistencias-gestor-modal/tela-inconsistencias-gestor-modal.component.html","./src/app/_paginas/tela-de-inconsistencias-gestor/tela-inconsistencias-gestor-modal/tela-inconsistencias-gestor-modal.component.ts","./src/app/_paginas/tela-de-inconsistencias-gestor/tela-de-inconsistencias-gestor/tela-de-inconsistencias-gestor.component.html","./src/app/_paginas/tela-de-inconsistencias-gestor/tela-de-inconsistencias-gestor/tela-de-inconsistencias-gestor.component.ts","./src/app/_paginas/tela-de-inconsistencias-gestor/inconsistencia-gestor.component.ts","./src/app/_core/services/permissao.service.ts","./src/app/_paginas/tela-de-inconsistencias-usuario/tela-de-inconsistencia-user-modal/tela-de-inconsistencia-user-modal.component.html","./src/app/_paginas/tela-de-inconsistencias-usuario/tela-de-inconsistencia-user-modal/tela-de-inconsistencia-user-modal.component.ts","./src/app/_paginas/tela-de-inconsistencias-usuario/tela-de-inconsistencias-usuario/tela-de-inconsistencias-usuario.component.html","./src/app/_paginas/tela-de-inconsistencias-usuario/tela-de-inconsistencias-usuario/tela-de-inconsistencias-usuario.component.ts","./src/app/_paginas/relatorio-bens/relatorio-bens/relatorio-bens.component.html","./src/app/_paginas/relatorio-bens/relatorio-bens/relatorio-bens.component.ts","./src/app/_paginas/relatorio-bens/relatorio.component.ts","./src/app/_paginas/historico-bens/historico-bens-modal/historico-bens-modal.component.html","./src/app/_paginas/historico-bens/historico-bens-modal/historico-bens-modal.component.ts","./src/app/_paginas/historico-bens/historico-bens/historico-bens.component.html","./src/app/_paginas/historico-bens/historico-bens/historico-bens.component.ts","./src/app/_paginas/historico-bens/historico.component.ts","./src/app/_paginas/tela-de-recebimento/tela-de-recebimento-modal/tela-de-recebimento-modal.component.html","./src/app/_paginas/tela-de-recebimento/tela-de-recebimento-modal/tela-de-recebimento-modal.component.ts","./src/app/_paginas/tela-de-recebimento/tela-de-recebimento/tela-de-recebimento.component.html","./src/app/_paginas/tela-de-recebimento/tela-de-recebimento/tela-de-recebimento.component.ts","./src/app/_paginas/tela-de-recebimento/tela-de-receber.component.ts","./src/app/_paginas/tela-de-aprov-gestor/tela-de-aprov-gestor-modal/tela-de-aprov-gestor-modal.component.html","./src/app/_paginas/tela-de-aprov-gestor/tela-de-aprov-gestor-modal/tela-de-aprov-gestor-modal.component.ts","./src/app/_paginas/tela-de-aprov-gestor/tela-de-aprov-gestor/tela-de-aprov-gestor.component.html","./src/app/_paginas/tela-de-aprov-gestor/tela-de-aprov-gestor/tela-de-aprov-gestor.component.ts","./src/app/_paginas/tela-de-aprov-gestor/tela-aprovar-gestor.component.ts","./src/app/_paginas/login/login.component.html","./src/app/_paginas/login/login.component.ts","./src/app/_paginas/solicitar-bens/solicitar-bens.component.ts","./src/app/_paginas/home/home.component.ts","./src/app/_paginas/home/home.component.html","./src/app/_paginas/tipo-de-bem/tipo-de-bem.component.ts","./src/app/_core/models/tipo-de-bem.ts","./src/app/_core/services/tipo-de-bem.service.ts","./node_modules/ngx-currency/__ivy_ngcc__/fesm2015/ngx-currency.js","./src/app/_paginas/tipo-de-bem/tipo-de-bens-modal/tipo-de-bens-modal.component.html","./src/app/_paginas/tipo-de-bem/tipo-de-bens-modal/tipo-de-bens-modal.component.ts","./src/app/_paginas/tipo-de-bem/tipo-de-bens/tipo-de-bens.component.html","./src/app/_paginas/tipo-de-bem/tipo-de-bens/tipo-de-bens.component.ts","./src/app/_core/models/cadastro-bem.ts","./src/app/_paginas/cadastro-bem/cadastro-bens-modal/cadastro-bens-modal.component.html","./src/app/_paginas/cadastro-bem/cadastro-bens-modal/cadastro-bens-modal.component.ts","./src/app/_paginas/cadastro-bem/cadastro-bens/cadastro-bens.component.html","./src/app/_paginas/cadastro-bem/cadastro-bens/cadastro-bens.component.ts","./src/app/_paginas/cadastro-bem/cadastrar-bens.component.ts","./src/app/_paginas/bem-funcionario/bem-funcionario.component.ts","./src/app/_paginas/bem-funcionario/bens-funcionarios/bens-funcionarios.component.ts","./src/app/_paginas/bem-funcionario/bens-funcionarios/bens-funcionarios.component.html","./src/app/_core/models/solicitacao-bens.ts","./src/app/_paginas/solicitar-bens/solicitacao-bens-modal/solicitacao-bens-modal.component.html","./src/app/_paginas/solicitar-bens/solicitacao-bens-modal/solicitacao-bens-modal.component.ts","./src/app/_paginas/solicitar-bens/solicitacao-bens/solicitacao-bens.component.html","./src/app/_paginas/solicitar-bens/solicitacao-bens/solicitacao-bens.component.ts","./src/app/_paginas/localizacao-bens/localizar-bens.component.ts","./src/app/_core/models/localizacao.ts","./src/app/_core/services/_utils/url.ts","./src/app/_core/services/municipios.service.ts","./src/app/_paginas/localizacao-bens/localizacao-bens-modal/localizacao-bens-modal.component.html","./src/app/_paginas/localizacao-bens/localizacao-bens-modal/localizacao-bens-modal.component.ts","./src/app/_paginas/localizacao-bens/localizacao-bens/localizacao-bens.component.html","./src/app/_paginas/localizacao-bens/localizacao-bens/localizacao-bens.component.ts","./src/app/_paginas/meus-bens/meus-bens-modal/meus-bens-modal.component.html","./src/app/_paginas/meus-bens/meus-bens-modal/meus-bens-modal.component.ts","./src/app/_paginas/meus-bens/meus-bens/meus-bens.component.html","./src/app/_paginas/meus-bens/meus-bens/meus-bens.component.ts","./src/app/_paginas/meus-bens/meu-bem.component.ts","./src/app/_paginas/tela-de-inconsistencias-usuario/inconsistencia-usuario.component.ts","./src/app/_paginas/cautela-grupos/grupo-cautela.component.ts","./src/app/_core/services/grupo.service.ts","./src/app/_paginas/cautela-grupos/cautela-grupos/cautela-grupos.component.html","./src/app/_paginas/cautela-grupos/cautela-grupos/cautela-grupos.component.ts","./src/app/_paginas/grupo-recebimentos/recebimento-grupo.component.ts","./src/app/_paginas/grupo-recebimentos/grupo-recebimento/grupo-recebimento.component.html","./src/app/_paginas/grupo-recebimentos/grupo-recebimento/grupo-recebimento.component.ts","./src/app/_paginas/grupo-alterar-cautela/alterar-cautela-grupo.component.ts","./src/app/_paginas/grupo-alterar-cautela/grupo-alterar-cautela/grupo-alterar-cautela.component.html","./src/app/app-routing.module.ts","./src/app/_paginas/grupo-alterar-cautela/grupo-alterar-cautela/grupo-alterar-cautela.component.ts","./src/app/_core/services/sidemenu.service.ts","./src/app/components/sidebar/sidebar.component.html","./src/app/components/sidebar/sidebar.component.ts","./src/app/components/navbar/navbar.component.ts","./src/app/components/navbar/navbar.component.html","./src/app/components/footer/footer.component.ts","./src/app/components/footer/footer.component.html","./src/app/app.component.html","./src/app/app.component.ts","./node_modules/ngx-mask/__ivy_ngcc__/fesm2015/ngx-mask.js","./src/app/app.module.ts","./src/main.ts","./$_lazy_route_resource lazy namespace object","./node_modules/rxjs/_esm2015/internal/innerSubscribe.js"],"names":["isNumeric","val","isArray","parseFloat","dispatch","state","index","period","subscriber","next","closed","complete","this","schedule","RaceOperator","source","subscribe","OuterSubscriber","destination","super","hasFirst","observables","subscriptions","observable","push","len","length","i","subscription","subscribeToResult","undefined","add","_outerValue","innerValue","outerIndex","unsubscribe","remove","zip","resultSelector","pop","fromArray","lift","ZipOperator","Subscriber","values","Object","create","iterators","active","value","StaticIterator","iterator","stillUnsubscribed","hasValue","shouldComplete","args","result","hasCompleted","done","_tryresultSelector","apply","err","error","nextResult","Boolean","array","parent","buffer","isComplete","shift","notifyInactive","checkIterators","innerSubscribe","takeUntil","notifier","takeUntilSubscriber","notifierSubscription","seenValue","withLatestFrom","project","WithLatestFromOperator","toRespond","Array","found","indexOf","splice","_tryProject","_c5","_c33","isDefined","reflow","element","document","body","getBoundingClientRect","Element","prototype","closest","matches","msMatchesSelector","webkitMatchesSelector","s","el","documentElement","contains","parentElement","parentNode","nodeType","environment","animation","transitionTimerDelayMs","NgbConfig","ɵfac","t","ɵprov","factory","token","providedIn","noopFn","runningTransitions","Map","ngbRunTransition","zone","startFn","options","context","running","get","runningTransition","run","transition$","assign","delete","endFn","window","getComputedStyle","transitionProperty","of","pipe","Observable","observer","e","runInZone","Subject","finishTransition$","stop$","concat","endWith","set","transitionDurationMs","transitionDelay","transitionDuration","getTransitionDurationMs","runOutsideAngular","transitionEnd$","fromEvent","filter","target","race","dueTime","periodOrScheduler","scheduler","Number","isScheduler","due","now","timer","asObservable","NgbAccordionModule","ɵmod","type","ɵinj","imports","NgbAlertModule","NgbButtonsModule","NgbCarouselModule","NgbCollapseModule","Key","navigator","userAgent","test","maxTouchPoints","FOCUSABLE_ELEMENTS_SELECTOR","join","getFocusableBoundaryElements","list","from","querySelectorAll","tabIndex","prop","getAllStyles","getStyle","offsetParentEl","offsetParent","isStaticPositioned","round","elPosition","parentOffset","width","height","top","bottom","left","right","offset","clientTop","clientLeft","Math","elBcr","viewportOffset","pageYOffset","pageXOffset","elOffset","offsetHeight","offsetWidth","hostElement","targetElement","placement","appendToBody","placementPrimary","placementSecondary","split","hostElPosition","position","targetElStyles","marginTop","marginBottom","marginLeft","marginRight","topPosition","leftPosition","style","transform","targetElBCR","html","windowHeight","innerHeight","clientHeight","windowWidth","innerWidth","clientWidth","Date","NgbDatepickerModule","NgbNavbar","ɵdir","selectors","NgbDropdownModule","NgbModalConfig","_ngbConfig","backdrop","keyboard","_animation","ContentRef","nodes","viewRef","componentRef","ScrollBar","_document","_getWidth","_isPresent","_adjustBody","scrollbarWidth","userSetPaddingStyle","paddingRight","actualPadding","rect","measurer","createElement","className","appendChild","removeChild","NgbModalBackdrop","_el","_zone","onStable","take","nativeElement","classList","ɵcmp","hostAttrs","hostVars","hostBindings","rf","ctx","backdropClass","inputs","decls","vars","template","encapsulation","NgbActiveModal","reason","_windowCmptRef","_contentRef","_backdropCmptRef","_beforeDismiss","_closed","_dismissed","_hidden","instance","dismissEvent","dismiss","Promise","resolve","reject","_resolve","_reject","then","shown","_removeModalElements","_dismiss","windowTransition$","hide","backdropTransition$","location","destroy","ModalDismissReasons","NgbModalWindow","_elRef","_closed$","_elWithFocus","hidden","emit","activeElement","_show","_disableEventHandling","transitions$","_dialogEl","_restoreFocus","_enableEventHandling","_setFocus","which","Escape","event","requestAnimationFrame","defaultPrevented","ESC","_bumpBackdrop","preventClose","tap","switchMap","BACKDROP_CLICK","autoFocusable","querySelector","firstFocusable","focus","elWithFocus","elementToFocus","setTimeout","viewQuery","_t","first","ariaLabelledBy","ariaDescribedBy","windowClass","centered","scrollable","size","modalDialogClass","outputs","ngContentSelectors","consts","styles","NgbModalStack","_applicationRef","_injector","_scrollBar","_rendererFactory","_ngZone","_activeWindowCmptHasChanged","_ariaHiddenValues","_backdropAttributes","_modalRefs","_windowAttributes","_windowCmpts","_activeInstances","activeWindowCmpt","stopFocusTrap$","refocusOnClick","lastFocusedElement$","map","Tab","tabEvent","focusedElement","last","shiftKey","preventDefault","arr","lastFocusedElement","ngbFocusTrap","_revertAriaHidden","_setAriaHidden","moduleCFR","contentInjector","content","containerEl","container","HTMLElement","renderer","createRenderer","revertPaddingForScrollBar","compensate","removeBodyClass","removeClass","Error","activeModal","contentRef","_getContentRef","injector","backdropCmptRef","_attachBackdrop","windowCmptRef","_attachWindowComponent","ngbModalRef","beforeDismiss","_registerModalRef","_registerWindowCmpt","close","_applyWindowOptions","addClass","_applyBackdropOptions","changeDetectorRef","detectChanges","forEach","resolveComponentFactory","attachView","hostView","windowInstance","optionName","backdropInstance","_createFromTemplateRef","_createFromString","_createFromComponent","createEmbeddedView","$implicit","rootNodes","component","createTextNode","contentCmptFactory","modalContentInjector","providers","provide","useValue","componentNativeEl","children","sibling","nodeName","getAttribute","setAttribute","removeAttribute","clear","unregisterModalRef","ngbWindowCmpt","onDestroy","NgbModal","_moduleCFR","_modalStack","_config","combinedOptions","open","activeInstances","dismissAll","hasOpenModals","NgbModalModule","NgbNavModule","NgbPaginationModule","NgbPopoverModule","NgbProgressbarModule","NgbRatingModule","NgbTimepickerModule","NgbToastModule","NgbTooltipModule","NgbTypeaheadModule","NGB_MODULES","NgbModule","rxSubscriber","Symbol","random","BehaviorSubject","_value","getValue","_subscribe","hasError","thrownError","_enable_super_gross_mode_that_will_cause_bad_things","config","console","warn","stack","log","Notification","kind","nextOrObserver","observe","do","throwError","empty","undefinedValueNotification","completeNotification","delay","delayFor","isNaN","abs","DelayOperator","queue","errored","time","notification","max","message","DelayMessage","_schedule","scheduleNotification","createNext","createComplete","forkJoinInternal","sources","keys","completed","emitted","reduce","key","NG_VALUE_ACCESSOR","CHECKBOX_VALUE_ACCESSOR","useExisting","multi","CheckboxControlValueAccessor","_renderer","_elementRef","onChange","_","onTouched","setProperty","fn","isDisabled","$event","checked","features","DEFAULT_VALUE_ACCESSOR","COMPOSITION_BUFFER_MODE","DefaultValueAccessor","_compositionMode","_composing","getUserAgent","toLowerCase","_isAndroid","_handleInput","_compositionStart","_compositionEnd","isEmptyInputValue","hasValidLength","NG_VALIDATORS","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","min","control","minLength","maxLength","pattern","nullValidator","regex","regexStr","charAt","RegExp","toString","validators","presentValidators","isPresent","mergeErrors","executeValidators","isObject","getPrototypeOf","forkJoin","toObservable","o","r","obs","arrayOfErrors","res","errors","validator","normalizeValidators","validate","isValidatorFn","c","composeValidators","compose","composeAsyncValidators","composeAsync","mergeValidators","controlValidators","dirValidator","getControlValidators","_rawValidators","getControlAsyncValidators","_rawAsyncValidators","AbstractControlDirective","_onDestroyCallbacks","valid","invalid","pending","disabled","enabled","pristine","dirty","touched","status","untouched","statusChanges","valueChanges","_composedValidatorFn","_composedAsyncValidatorFn","reset","errorCode","path","getError","ControlContainer","ɵControlContainer_BaseFactory","NgControl","arguments","_parent","name","valueAccessor","AbstractControlStatus","cd","_cd","_a","_b","_c","NgControlStatus","ngClassUntouched","ngClassTouched","ngClassPristine","ngClassDirty","ngClassValid","ngClassInvalid","ngClassPending","NgControlStatusGroup","NUMBER_VALUE_ACCESSOR","NumberValueAccessor","RADIO_VALUE_ACCESSOR","RadioControlRegistry","_accessors","accessor","_isSameGroup","fireUncheck","controlPair","_control","RadioControlValueAccessor","_registry","_checkName","_state","_fn","select","writeValue","formControlName","RANGE_VALUE_ACCESSOR","RangeValueAccessor","SELECT_VALUE_ACCESSOR","_buildValueString","id","slice","SelectControlValueAccessor","_optionMap","_idCounter","_compareWith","is","_getOptionId","valueString","_getOptionValue","_extractId","has","compareWith","NgSelectOption","_element","_select","_registerOption","_setElementValue","ngValue","SELECT_MULTIPLE_VALUE_ACCESSOR","_buildValueString$1","SelectMultipleControlValueAccessor","optionSelectedStateSetter","ids","v","opt","_setSelected","selected","selectedOptions","item","_extractId$1","ɵNgSelectMultipleOption","controlPath","setUpControl","dir","setUpValidators","registerOnChange","newValue","_pendingValue","_pendingChange","_pendingDirty","updateOn","updateControl","setUpViewChangePipeline","emitModelEvent","viewToModelUpdate","_registerOnDestroy","_unregisterOnChange","setUpModelChangePipeline","registerOnTouched","_pendingTouched","markAsTouched","setUpBlurPipeline","setDisabledState","onDisabledChange","registerOnDisabledChange","_unregisterOnDisabledChange","setUpDisabledChangeHandler","registerOnValidatorChange","handleOnValidatorChange","setValidators","asyncValidators","asyncValidator","setAsyncValidators","onValidatorChange","updateValueAndValidity","cleanUpValidators","noop","markAsDirty","setValue","emitModelToViewChange","setUpFormContainer","isPropertyUpdated","changes","viewModel","hasOwnProperty","change","isFirstChange","currentValue","BUILTIN_ACCESSORS","selectValueAccessor","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","constructor","some","a","removeListItem","VALID","INVALID","PENDING","DISABLED","pickValidators","validatorOrOpts","isOptionsObj","coerceToValidator","pickAsyncValidators","coerceToAsyncValidator","_hasOwnPendingAsyncValidator","_onCollectionChange","_onDisabledChange","validatorFn","asyncValidatorFn","_updateOn","newValidator","opts","onlySelf","_forEachChild","markAllAsTouched","markAsUntouched","_updateTouched","markAsPristine","_updatePristine","emitEvent","markAsPending","skipPristineCheck","_parentMarkedDirty","disable","_updateValue","_updateAncestors","changeFn","enable","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","ctrl","_updateTreeValidity","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","delimiter","controlToFind","FormGroup","controls","FormArray","at","_find","x","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","formState","FormControl","_onChange","_applyFormState","_setUpdateStrategy","_initObservables","emitViewToModelChange","condition","cb","_isBoxedValue","_setUpControls","setParent","_registerOnCollectionChange","registerControl","controlName","_checkAllValuesPresent","_throwIfControlMissing","patchValue","_reduceChildren","acc","getRawValue","subtreeUpdated","updated","child","_syncPendingControls","k","_reduceValue","initValue","_registerControl","formControlBinding","resolvedPromise$1","NgModel","_registered","update","_setValidators","_setAsyncValidators","_checkForErrors","_setUpControl","_updateDisabled","model","formDirective","removeControl","_isStandalone","_setUpStandalone","addControl","standalone","_checkParentType","disabledValue","exportAs","ɵNgNoValidate","NG_MODEL_WITH_FORM_CONTROL_WARNING","formDirectiveProvider$1","FormGroupDirective","submitted","directives","form","ngSubmit","_checkFormPresent","_updateValidators","_updateDomValue","_updateRegistrations","_oldForm","resetForm","newCtrl","_invokeOnDestroyCallbacks","cleanUpControl","onSubmit","onReset","controlNameBinding","FormControlName","_ngModelWarningConfig","_added","_ngModelWarningSent","updateModel","_ngModelWarningSentOnce","REQUIRED_VALIDATOR","RequiredValidator","_required","required","ɵInternalFormsSharedModule","FormBuilder","controlsConfig","_reduceControls","isAbstractControlOptions","_createControl","controlConfig","FormsModule","ReactiveFormsModule","ngModule","warnOnNgModelWithFormControl","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","call","mergeMap","concurrent","POSITIVE_INFINITY","b","ii","MergeMapOperator","MergeMapSubscriber","_tryNext","_innerSub","ish","innerSubscriber","innerSubscription","_next","destinationOrNext","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","SafeSubscriber","_error","_complete","_parentOrParents","_parentSubscriber","observerOrNext","bind","_context","useDeprecatedSynchronousErrorHandling","__tryOrSetError","__tryOrUnsub","wrappedComplete","FileLikeObject","fileOrInput","node","rawFile","fakePathOrObject","attr","find","lastModifiedDate","lastIndexOf","object","FileItem","uploader","url","headers","withCredentials","formData","isReady","isUploading","isUploaded","isSuccess","isCancel","isError","progress","file","_file","method","alias","itemAlias","uploadItem","_onCompleteItem","_onErrorItem","cancelItem","removeFromQueue","response","onBeforeUpload","onBuildForm","onProgress","onSuccess","onError","onCancel","onComplete","removeAfterUpload","_nextIndex","FileType","mimeClass","mime_psd","match","mime_compress","mime_doc","mime_xsl","mime_ppt","fileTypeDetection","inputFilename","types","chunks","extension","FileUploader","autoUpload","isHTML5","filters","disableMultipart","formatDataFunction","formatDataFunctionIsAsync","setOptions","authToken","authTokenHeader","unshift","_queueLimitFilter","maxFileSize","_fileSizeFilter","allowedFileType","_fileTypeFilter","allowedMimeType","_mimeTypeFilter","files","arrayOfFilters","_getFilters","count","addedFileItems","temp","_isValidFile","fileItem","_onAfterAddingFile","_onWhenAddingFileFailed","_failFilterIndex","_onAfterAddingAll","_getTotalProgress","_render","uploadAll","getIndexOfItem","cancel","transport","_prepareToUploading","_xhr","_form","abort","items","getNotUploadedItems","upload","File","isFile","sort","item1","item2","fileItems","getMimeClass","_onError","onErrorItem","_onComplete","onCompleteItem","nextItem","getReadyItems","onCompleteAll","parsedHeaders","sendable","that","xhr","XMLHttpRequest","_onBeforeUploadItem","TypeError","FormData","_onBuildItemForm","appendFile","append","parametersBeforeFiles","additionalParameter","paramVal","replace","onprogress","lengthComputable","loaded","total","_onProgressItem","onload","_parseHeaders","getAllResponseHeaders","_transformResponse","_isSuccessCode","onerror","onabort","_onCancelItem","header","setRequestHeader","onreadystatechange","readyState","DONE","responseText","send","JSON","stringify","notUploaded","ratio","names","queueLimit","every","parsed","line","trim","onWhenAddingFileFailed","onAfterAddingFile","onAfterAddingAll","_onBeforeUpload","onBeforeUploadItem","_onBuildForm","onBuildItemForm","_onProgress","onProgressItem","onProgressAll","_onSuccess","onSuccessItem","_onCancel","onCancelItem","FileSelectDirective","onFileSelected","attributes","multiple","getOptions","getFilters","addToQueue","isEmptyAfterSelection","FileUploadModule","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","production","baseurl","baseAuthUrl","input","isInteropObservable","sub","Subscription","scheduleObservable","isPromise","schedulePromise","isArrayLike","scheduleArray","isIterable","return","scheduleIterable","scheduled","subscribeTo","work","recycleAsyncId","requestAsyncId","setInterval","flush","clearInterval","_execute","errorValue","actions","Scheduler","SchedulerAction","delegate","action","execute","EMPTY","emptyScheduled","mergeAll","concatAll","CadastroBemService","http","PATH","PATH_MAT","PATH_CADASTRAR","PATH_ALT","PATH_REMOV","PATH_GET_ALL","PATH_RELATORIO","PATH_MEUSBENS","PATH_PLANILHA","PATH_SOLICITAR","httpOptions","cadastroBem","post","responseType","errorHandl","page","cD_BPM_BEM_PATRIMONIAL","dS_BPM_ETIQUETA_BEM","CD_CDU_MATRICULA","put","relatorio","cD_CDU_MATRICULA","reportProgress","solicitacao","_isScalar","operator","sink","toSubscriber","_trySubscribe","canReportError","promiseCtor","getPromiseCtor","operations","fns","identity","prev","AuthGuard","route","router","authenticationService","currentUserValue","navigate","queryParams","returnUrl","d","g","dispatchEvent","MouseEvent","createEvent","initMouseEvent","f","self","global","saveAs","HTMLAnchorElement","h","URL","webkitURL","j","download","rel","href","origin","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","autoBom","Blob","title","innerText","safari","FileReader","onloadend","readAsDataURL","l","m","module","exports","TakeOperator","TakeSubscriber","catchError","selector","CatchOperator","caught","CatchSubscriber","err2","_unsubscribeAndRecycle","startWith","debounceTime","DebounceTimeOperator","DebounceTimeSubscriber","debouncedSubscription","lastValue","clearDebounce","dispatchNext","debouncedNext","getSymbolIterator","AuthenticationService","currentUserSubject","parse","localStorage","getItem","currentUser","usuario","user","setItem","reload","fire","removeItem","hostReportError","TelaDeLiberacaoComponent","fb","movimentacaoService","loginService","cadastroBemService","localizacaoService","keywordMatriculaDest","keywordMatriculaOrigin","keywordUnidade","keywordMeusBens","descricaoBem","loading","deletando","countInitialUser","movimentacao","gerarForm","listarUser","listarLocalizacaoBensAll","nome","authGestor","data","isGestor","getSubordinado","subordinado","cD_MATRICULA","num","cD_BPM_NR_UNIDADE","getAll","group","cD_CDU_MATRICULA_ORIGEM","cD_BPM_UNIDADE_OP_POSTERIOR","cD_CDU_MATRICULA_DESTINO","dS_BPM_SALA_POSTERIOR","fL_BPM_DELETADO","localizacaoAll","localizacao","local","listarBensByEtiqueta","dS_BPM_DESCRICAO_BEM","ngOnInit","insert_liberar","selecionaOrigem","clearInputUser","getBem","selectEvent","clearInputLoc","selectDest","clearInputDest","LocalizacaoService","cD_BPM_LOCALIZACAO_PATRIMONIAL","dS_BPM_UF_UNIDADE","DismissReason","freeze","esc","consolePrefix","capitalizeFirstLetter","str","toUpperCase","toArray","nodeList","previousWarnOnceMessages","callIfFunction","arg","hasToPromiseFn","toPromise","asPromise","isElement","elem","jquery","isJqueryElement","prefix","swalClasses","iconTypes","getContainer","elementBySelector","selectorString","elementByClass","getPopup","popup","getIcon","icon","getTitle","getHtmlContainer","getImage","image","getProgressSteps","getValidationMessage","getConfirmButton","confirm","getDenyButton","deny","getLoader","loader","getCancelButton","getActions","getFooter","footer","getTimerProgressBar","getCloseButton","getFocusableElements","focusableElementsWithTabindex","parseInt","otherFocusableElements","uniqueArray","isVisible","isModal","isToast","states","previousBodyPadding","setInnerHtml","textContent","DOMParser","parseFromString","childNodes","hasClass","applyCustomClass","params","includes","showClass","removeCustomClasses","customClass","getInput","inputType","getChildByClass","checkbox","radio","range","focusInput","toggleClass","applyNumericalStyle","property","removeProperty","show","display","setStyle","toggle","getClientRects","isScrollable","scrollHeight","hasCssAnimation","animDuration","getPropertyValue","transDuration","animateTimerProgressBar","timerProgressBar","transition","isNodeEnv","sweetHTML","label","textarea","resetValidationMessage","Swal","parseHtmlToContainer","param","handleObject","handleJqueryElem","cloneNode","animationEndEvent","testEl","transEndEventNames","WebkitAnimation","OAnimation","renderButton","button","buttonType","privateProps","promise","WeakMap","innerParams","domCache","inputTypes","setInputPlaceholder","placeholder","inputPlaceholder","setInputLabel","prependTo","inputLabel","labelClass","insertAdjacentElement","getInputContainer","inputClass","renderInputType","text","email","password","number","tel","inputValue","rangeInput","rangeOutput","checkboxContainer","initialPopupWidth","MutationObserver","textareaWidth","attributeFilter","renderContent","htmlContainer","rerender","inputContainer","inputAttributes","attrName","removeAttributes","setAttributes","showInput","setCustomClass","renderInput","applyStyles","iconType","setColor","adjustSuccessIconBackgoundColor","popupBackgroundColor","successIconParts","backgroundColor","setContent","iconHtml","iconContent","question","warning","info","iconColor","color","borderColor","sel","render","toast","insertBefore","padding","background","modal","addClasses","renderPopup","handleBackdropParam","center","handlePositionParam","grow","growClass","handleGrowParam","renderContainer","progressStepsContainer","progressSteps","currentProgressStep","step","stepEl","createStepElement","lineEl","progressStepsDistance","createLineElement","renderProgressSteps","renderIcon","imageUrl","imageAlt","imageWidth","imageHeight","renderImage","titleText","renderTitle","closeButton","closeButtonHtml","showCloseButton","closeButtonAriaLabel","renderCloseButton","confirmButton","denyButton","cancelButton","showConfirmButton","showDenyButton","showCancelButton","buttonsStyling","styled","confirmButtonColor","denyButtonColor","cancelButtonColor","handleButtonsStyling","reverseButtons","loaderHtml","renderActions","renderFooter","didRender","clickConfirm","click","showLoading","buttonToReplace","replaceButton","globalState","stopTimer","timeout","timerProgressBarWidth","timerProgressBarFullWidth","timerProgressBarPercent","stopTimerProgressBar","stop","resumeTimer","remaining","start","bodyClickListenerAdded","clickHandlers","bodyClickListener","defaultParams","hideClass","heightAuto","allowOutsideClick","allowEscapeKey","allowEnterKey","stopKeydownPropagation","keydownListenerCapture","preConfirm","preDeny","confirmButtonText","confirmButtonAriaLabel","denyButtonText","denyButtonAriaLabel","cancelButtonText","cancelButtonAriaLabel","focusConfirm","focusDeny","focusCancel","returnFocus","showLoaderOnConfirm","showLoaderOnDeny","inputOptions","inputAutoTrim","inputValidator","returnInputValueOnDeny","validationMessage","willOpen","didOpen","willClose","didClose","didDestroy","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","deprecatedParam","useInstead","staticMethods","isUpdatableParameter","argsToParams","clickDeny","clickCancel","getInputLabel","isLoading","hasAttribute","mixin","mixinParams","priorityMixinParams","_main","enableLoading","getTimerLeft","toggleTimer","increaseTimer","n","increase","isTimerRunning","isRunning","bindClickHandler","addEventListener","hideLoading","showRelatedButton","getElementsByClassName","shouldPreventTouchMove","isStylys","isZoom","tagName","touches","touchType","privateMethods","swalPromiseResolve","removePopupAndResetState","triggerDidCloseAndDispose","scrollX","y","scrollY","restoreFocusTimeout","previousActiveElement","scrollTo","restoreActiveElement","keydownTarget","removeEventListener","keydownHandler","capture","keydownHandlerAdded","innerHTML","iosfix","scrollTop","undoIOSfix","resolveValue","prepareResolveValue","handlePopupAnimation","isConfirmed","isDenied","isDismissed","animationIsSupported","animatePopup","swalCloseEventFinishedCallback","_destroy","setButtonsDisabled","buttons","setInputDisabled","radios","Timer","callback","started","clearTimeout","defaultInputValidators","string","setParameters","setDefaultInputValidators","validateCustomTargetElement","oldContainerExisted","oldContainer","resetOldContainer","setupAccessibility","direction","rtl","setupRTL","oninput","onchange","nextSibling","addInputChangeListeners","init","swalStringParams","showWarningsForAttributes","allowedAttributes","attribute","swalOpenAnimationFinished","overflowY","setScrollingVisibility","fixScrollContainer","initialBodyOverflow","MSStream","platform","preventTouchMove","ontouchstart","ontouchmove","stopPropagation","lockBodyScroll","bottomPanelHeight","paddingBottom","addBottomPaddingForTallPopups","iOSfix","scrollDiv","measureScrollbar","addClasses$1","populateInputOptions","renderOption","optionLabel","optionValue","option","isSelected","inputOption","optgroup","radioValue","radioLabel","radioInput","radioLabelElement","formatInputOptions","valueFormatted","handleConfirmOrDenyWithInput","getCheckboxValue","getRadioValue","getFileValue","getInputValue","handleInputValidator","checkValidity","enableButtons","showValidationMessage","disableInput","enableInput","preDenyValue","closePopup","succeedWith","preConfirmValue","setFocus","increment","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","handleEnter","isComposing","outerHTML","handleTab","btnIndex","handleArrows","buttonToFocus","handleEsc","dismissWith","ignoreOutsideClick","prepareParams","userParams","templateParams","templateContent","allowedElements","showWarningsForElements","getSwalParams","getSwalButtons","getSwalImage","getSwalIcon","getSwalInput","paramNames","tag","getSwalStringParams","getTemplateParams","swalPromise","onclick","disableButtons","handleConfirmButtonClick","handleDenyButtonClick","handleCancelButtonClick","handleToastClick","onmousedown","onmouseup","handleModalMousedown","handleContainerMousedown","handleModalClick","handlePopupClick","addKeydownHandler","processInputOptions","handleInputOptions","catch","handleInputValue","handleInputOptionsAndValue","openPopup","setupTimer","initFocus","globalState$$1","focusButton","blurActiveElement","blur","unsetWeakMaps","obj","instanceMethods","disableLoading","closeModal","closeToast","inputerror","showWarningsForParams","currentInstance","populateDomCache","validUpdatableParams","updatedParams","defineProperties","writable","enumerable","deferDisposalTimer","SweetAlert","outerParams","configurable","onFulfilled","onFinally","finally","version","default","Sweetalert2","swal","sweetAlert","getElementsByTagName","styleSheet","cssText","Movimentacao","MovimentacaoService","PATH_MOV","PATH_MOV_GET_ALL","PATH_LIBERAR","PATH_APROVAR","PATH_REPROVAR","PATH_RECEBER","PATH_NO_RECEBER","PATH_GESTOR","PATH_DESTINO","PATH_HIST","PATH_MOV_GESTOR_GET_ALL","PATH_MOV_DESTINO_GET_ALL","PATH_MOV_INCON_ORIG_ALL","PATH_MOV_INCON_GET_ALL","PATH_MOV_INCON_RELATORIO","PATH_MOV_INCON_ORIG_CONF","PATH_MOV_INCON_GESTOR_CONF","PATH_MOV_INCON_CANCEL","PATH_MOV_INCON_SANAR","PATH_MOV_INCON_ALL","PATH_MOV_INCON_ALT_GESTOR","PATH_MOV_EV_JUNTAS","PATH_MOV_EV_AVULSO","PATH_MOV_EV","PATH_MOV_EV_SANATORIAS","PATH_TIP_MOV","PATH_TIP_MOV_GET_ALL","reqHeader","evidencia","NR_BPM_BEM_PATRIMONIAL","CD_BPM_MOVIMENTACAO_PATRIMONIAL","cD_CDU_MATRICULA_GESTOR","CD_CDU_MATRICULA_DESTINO","cD_BPM_MOVIMENTACAO_PATRIMONIAL","nR_BPM_BEM_PATRIMONIAL","cD_BPM_MOVIMENTACAO_PATRIMONIAL_FIM","tipoMovimentacao","cD_BPM_TIPO_MOVIMENTACAO_PATRIMONIAL","subscribeToArray","iterable","merge","subject","observers","subscriberIndex","copy","outerValue","notifyNext","notifyError","notifyComplete","outerSubscriber","_c0","_c1","_c2","AutocompleteComponent_div_4_Template","_r12","AutocompleteComponent_div_5_Template","AutocompleteComponent_div_7_Template","ctx_r3","heading","AutocompleteComponent_li_10_div_1_ng_container_1_Template","_c3","a0","AutocompleteComponent_li_10_div_1_Template","_r20","item_r13","ctx_r21","idx_r14","ctx_r15","selectedIdx","itemTemplate","toHighlight","AutocompleteComponent_li_10_div_2_ng_container_1_Template","AutocompleteComponent_li_10_div_2_Template","_r25","ctx_r26","ctx_r16","searchKeyword","AutocompleteComponent_li_10_Template","ctx_r5","isTypeString","AutocompleteComponent_div_12_Template","_r28","resetHistoryList","ctx_r6","historyHeading","AutocompleteComponent_li_15_div_1_ng_container_1_Template","AutocompleteComponent_li_15_div_1_Template","_r36","item_r29","ctx_r37","idx_r30","ctx_r31","AutocompleteComponent_li_15_div_2_ng_container_1_Template","AutocompleteComponent_li_15_div_2_Template","_r41","ctx_r42","ctx_r32","AutocompleteComponent_li_15_Template","_r44","removeHistoryItem","ctx_r8","AutocompleteComponent_div_16_ng_container_1_Template","AutocompleteComponent_div_16_Template","ctx_r9","notFoundTemplate","notFoundText","AutocompleteComponent_div_17_Template","_r47","handleOverlay","_c4","a1","isArrowUpDown","keyCode","isArrowUp","isArrowDown","isEnter","isESC","isTab","AutocompleteComponent","elementRef","query","filteredList","historyList","isHistoryListVisible","notFound","isFocused","isOpen","isScrollToEnd","overlay","manualOpen","manualClose","historyListMaxNumber","minQueryLength","focusFirst","inputChanged","inputFocused","inputCleared","opened","scrolledToEnd","propagateChange","initEventStream","handleScroll","initialValue","setInitialValue","handleItemsChange","firstChange","handleOpen","filterList","initSearchHistory","customFilter","defaultFilterFunction","historyIdentifier","existingHistory","existingItem","copiedExistingHistory","selectedIndex","saveHistory","handleClose","clickedComponent","inside","listen","filteredListElement","scrollToEnd","handleFocus","setPanelState","history","searchInput","inputKeyUp$","inputKeyDown$","listenEventStream","onKeyUp","onFocusItem","onHandleEnter","onEsc","onTab","onDelete","totalNumItem","sum","scrollToFocusedItem","listElement","historyListElement","listHeight","itemHeight","visibleBottom","targetPosition","offsetTop","copiedHistoryList","saveHistoryToLocalStorage","contentQueries","dirIndex","customTemplate","handleClick","pipes","HighlightPipe","search","text2","ɵpipe","pure","AutocompleteLibModule","concatMap","Ng2SearchPipeModule","SwitchMapOperator","SwitchMapSubscriber","getClosureSafeProperty","objWithPropertyToExtract","fillProperties","overriddenName","newLineIndex","substring","concatStringsWithSpace","before","after","__forward_ref__","forwardRef","forwardRefFn","resolveForwardRef","isForwardRef","msg","actual","expected","comparison","ɵɵdefineInjectable","ɵɵdefineInjector","getInjectableDef","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","field","getInjectorDef","NG_INJ_DEF","NG_INJECTOR_DEF","ngInjectableDef","ngInjectorDef","InjectFlags","_injectImplementation","setInjectImplementation","impl","previous","injectRootLimpMode","notFoundValue","flags","injectableDef","Optional","noSideEffects","ChangeDetectionStrategy","ViewEncapsulation","__globalThis","globalThis","__window","__self","WorkerGlobalScope","__global","_global","EMPTY_OBJ","EMPTY_ARRAY","NG_COMP_DEF","NG_DIR_DEF","NG_PIPE_DEF","NG_MOD_DEF","NG_LOC_ID_DEF","ɵloc","NG_FACTORY_DEF","NG_ELEMENT_ID","__NG_ELEMENT_ID__","_renderCompCount","ɵɵdefineComponent","componentDefinition","declaredInputs","def","providersResolver","onPush","changeDetection","OnPush","directiveDefs","pipeDefs","Emulated","setInput","schemas","tView","directiveTypes","feature","pipeTypes","invertObject","extractDirectiveDef","extractPipeDef","getComponentDef","getDirectiveDef","getPipeDef","autoRegisterModuleById","ɵɵdefineNgModule","bootstrap","declarations","transitiveCompileScopes","ɵɵsetNgModuleScope","scope","ngModuleDef","getNgModuleDef","secondary","newLookup","minifiedKey","publicName","declaredName","ɵɵdefineDirective","ɵɵdefinePipe","pipeDef","ngOnDestroy","throwNotFound","HEADER_OFFSET","CONTAINER_HEADER_OFFSET","isLView","isLContainer","isContentQueryHost","tNode","isComponentHost","isDirectiveHost","isComponentDef","getFactoryDef","RuntimeError","code","formatRuntimeError","renderStringify","String","stringifyForError","throwProviderNotFoundError","injectorName","injectorDetails","SimpleChange","previousValue","ɵɵNgOnChangesFeature","NgOnChangesFeatureImpl","definition","ngOnChanges","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","current","privateName","store","setSimpleChangesStore","previousChange","ngInherit","DOCUMENT","setDocument","getDocument","isProceduralRenderer","domRendererFactory3","rendererType","unwrapRNode","getNativeByIndex","lView","getNativeByTNode","getTNode","load","view","getComponentLViewByIndex","nodeIndex","slotValue","readPatchedLView","readPatchedData","isCreationMode","viewAttachedToChangeDetector","getConstant","resetPreOrderHookFlags","PREORDER_HOOK_FLAGS","updateTransplantedViewCount","lContainer","amount","viewOrContainer","instructionState","lFrame","createLFrame","bindingsEnabled","isInCheckNoChangesMode","getBindingsEnabled","getLView","getTView","ɵɵrestoreView","viewToRestore","contextLView","getCurrentTNode","currentTNode","getCurrentTNodePlaceholderOk","getCurrentParentTNode","isParent","setCurrentTNode","isCurrentTNodeParent","setCurrentTNodeAsNotParent","setIsInCheckNoChangesMode","mode","getBindingRoot","bindingRootIndex","bindingStartIndex","getBindingIndex","bindingIndex","nextBindingIndex","incrementBindingIndex","setInI18nBlock","isInI18nBlock","inI18n","setBindingRootForHostBindings","currentDirectiveIndex","setCurrentDirectiveIndex","getCurrentDirectiveDef","tData","getCurrentQueryIndex","currentQueryIndex","setCurrentQueryIndex","getDeclarationTNode","declTNode","enterDI","SkipSelf","parentTNode","parentLView","Host","DECLARATION_VIEW","allocLFrame","enterView","newView","newLFrame","firstChild","currentLFrame","childLFrame","elementDepthCount","currentNamespace","leaveViewLight","oldLFrame","leaveDI","leaveView","getSelectedIndex","setSelectedIndex","getSelectedTNode","registerPostOrderHooks","directiveStart","end","directiveEnd","lifecycleHooks","ngAfterContentInit","ngAfterContentChecked","ngAfterViewInit","ngAfterViewChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","executeCheckHooks","hooks","callHooks","executeInitAndCheckHooks","initPhase","incrementInitPhaseFlags","currentView","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","isInitHook","hook","directive","NO_PARENT_INJECTOR","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","setUpAttributes","native","attrs","isProc","namespaceURI","attrVal","setAttributeNS","isAnimationProp","isNameOnlyAttributeMarker","marker","charCodeAt","mergeHostAttrs","dst","src","srcMarker","mergeHostAttribute","key1","key2","markerInsertPosition","dstValue","hasParentInjector","parentLocation","getParentInjectorIndex","getParentInjectorView","startView","viewOffset","parentView","includeViewProviders","setIncludeViewProviders","oldValue","nextNgElementId","getOrCreateNodeInjectorForNode","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","parentIndex","parentData","declarationViewOffset","lViewCursor","tViewType","diPublicInInjector","bloomBit","BLOOM_SIZE","mask","b6","b5","bloomAdd","notFoundValueOrThrow","lookupTokenUsingModuleInjector","Self","moduleInjector","previousInjectImplementation","getOrCreateInjectable","Default","bloomHash","tokenId","createNodeInjector","bloomHashBitOrFactory","previousTView","hostTElementNode","DECLARATION_COMPONENT_VIEW","shouldSearchParent","bloomHasToken","searchTokensOnInjector","NOT_FOUND","NodeInjector","currentTView","injectableIdx","locateDirectiveOrProvider","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","endIndex","providerTokenOrDef","dirDef","throwCyclicDependencyError","previousIncludeViewProviders","directiveIndex","directiveDef","ngDoCheck","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","registerPreOrderHooks","injectorView","isFirstHostTNode","_tNode","_lView","ɵɵgetFactoryOf","typeAny","injectorDef","ɵɵgetInheritedFactory","ownConstructor","ownFactory","objectPrototype","ɵɵinjectAttribute","attrNameToInject","classes","attrsLength","injectAttributeImpl","PARAMETERS","makeParamDecorator","props","parentClass","metaCtor","propName","makeMetadataCtor","ParamDecoratorFactory","annotationInstance","ParamDecorator","annotation","cls","unusedKey","parameters","defineProperty","ngMetadataName","annotationCls","InjectionToken","_desc","ANALYZE_FOR_ENTRY_COMPONENTS","Type","Function","flatten","deepForEach","addToArray","removeFromArray","newArray","keyValueArraySet","keyValueArray","keyValueArrayIndexOf","value1","value2","arrayInsert2","keyValueArrayGet","middle","_arrayIndexOfSorted","Inject","THROW_IF_NOT_FOUND","NEW_LINE","SOURCE","USE_VALUE","policy","_currentInjector","setCurrentInjector","former","injectInjectorOnly","ɵɵinject","injectArgs","meta","trustedHTMLFromString","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","getPolicy","SafeValueImpl","changingThisBreaksApplicationSecurity","SafeHtmlImpl","SafeStyleImpl","SafeScriptImpl","SafeUrlImpl","SafeResourceUrlImpl","unwrapSafeValue","allowSanitizationBypassAndThrow","actualType","getSanitizationBypassType","getTypeName","bypassSanitizationTrustHtml","trustedHtml","bypassSanitizationTrustStyle","trustedStyle","bypassSanitizationTrustScript","trustedScript","bypassSanitizationTrustUrl","trustedUrl","bypassSanitizationTrustResourceUrl","trustedResourceUrl","getInertBodyHelper","defaultDoc","inertDocumentHelper","InertDocumentHelper","isDOMParserAvailable","DOMParserHelper","getInertBodyElement","inertDocument","implementation","createHTMLDocument","inertHtml","inertBodyElement","templateEl","inertBody","documentMode","stripCustomNsAttrs","elAttrs","childNode","Node","ELEMENT_NODE","SAFE_URL_PATTERN","DATA_URL_PATTERN","_sanitizeUrl","sanitizeSrcset","srcset","tagSet","tags","sets","VOID_ELEMENTS","OPTIONAL_END_TAG_BLOCK_ELEMENTS","OPTIONAL_END_TAG_INLINE_ELEMENTS","OPTIONAL_END_TAG_ELEMENTS","VALID_ELEMENTS","URI_ATTRS","SRCSET_ATTRS","VALID_ATTRS","SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS","SanitizingHtmlSerializer","sanitizedSomething","buf","traverseContent","startElement","TEXT_NODE","chars","nodeValue","endElement","checkClobberedElement","elAttr","lower","encodeEntities","nextNode","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","inertBodyHelper","_sanitizeHtml","unsafeHtmlInput","unsafeHtml","mXSSAttempts","parsedHtml","sanitizeChildren","getTemplateContent","isTemplateElement","SecurityContext","ɵɵsanitizeHtml","sanitizer","getSanitizer","sanitize","HTML","ɵɵsanitizeUrl","unsafeUrl","getDebugContext","getOriginalError","defaultErrorLogger","ErrorHandler","_console","originalError","_findOriginalError","_findContext","errorLogger","getErrorLogger","END_COMMENT","attachPatchData","defaultScheduler","ɵɵresolveWindow","ownerDocument","defaultView","ɵɵresolveDocument","maybeUnwrapFn","RendererStyleFlags2","_icuContainerIterate","icuContainerIterate","tIcuContainerNode","getLViewParent","getFirstLContainer","getNearestLContainer","CHILD_HEAD","getNextLContainer","applyToElementOrContainer","lNodeToHandle","beforeNode","isComponent","rNode","nativeAppendChild","nativeInsertBefore","nativeRemoveNode","destroyNode","parentRElement","anchor","applyView","applyContainer","createText","updateTextNode","createCommentNode","createComment","escapeCommentText","createElementNode","namespace","createElementNS","detachMovedView","declarationContainer","movedViews","declarationViewIndex","insertionLContainer","detachView","removeIndex","indexInContainer","viewToDetach","declarationLContainer","removedLView","RENDERER","lQueries","QUERIES","destroyLView","rootView","lViewOrLContainer","cleanUpView","firstView","destroyViewTree","toCall","executeOnDestroys","tCleanup","cleanup","lCleanup","lastLCleanupIndex","idxOrTargetGetter","listener","useCaptureOrSubIdx","instanceCleanupFn","processCleanups","getParentRElement","getClosestRElement","None","isMove","nativeAppendOrInsertBefore","nativeParentNode","getInsertInFrontOfRNode","_getInsertInFrontOfRNodeWithI18n","getInsertInFrontOfRNodeWithNoI18n","_processI18nInsertBefore","setI18nHandling","getInsertInFrontOfRNodeWithI18n","processI18nInsertBefore","childRNode","childTNode","parentRNode","anchorNode","getFirstNativeNode","tNodeType","getBeforeNodeForView","elIcuContainerChild","rNodeOrLContainer","nextRNode","componentView","componentHost","firstProjectedTNode","projection","viewIndexInContainer","nextViewIndex","firstTNodeOfView","isHostElement","nativeParent","nativeRemoveChild","applyNodes","isProjection","rawSlotValue","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","writeDirectStyle","writeDirectClass","classIndexOf","classToSearch","startingIndex","foundIndex","NG_TEMPLATE_SELECTOR","isCssClassMatching","cssClassToMatch","isProjectionMode","isInlineTemplate","hasTagAndTypeMatch","currentSelector","isNodeMatchingSelector","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","isPositive","selectorAttrValue","attrIndexInNode","findAttrIndexInNode","nodeAttrValue","compareAgainstClassName","bindingsMode","maybeAttrName","matchTemplateAttribute","isNodeMatchingSelectorList","isSelectorInSelectorList","selectorListLoop","currentSelectorInList","maybeWrapInNotSelector","isNegativeMode","chunk","stringifyCSSSelector","currentChunk","valueOrMarker","attrValue","NO_CHANGE","ɵɵadvance","delta","selectIndexInternal","checkNoChangesMode","toTStylingRange","getTStylingRangePrev","tStylingRange","setTStylingRangePrevDuplicate","getTStylingRangeNext","setTStylingRangeNext","setTStylingRangeNextDuplicate","refreshContentQueries","queryStartIdx","directiveDefIdx","createLView","host","tHostNode","rendererFactory","RENDERER_FACTORY","getOrCreateTNode","createTNodeAtIndex","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","mergedAttrs","localNames","initialInputs","tViews","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","createTNode","allocExpando","numSlotsToAlloc","allocIdx","renderView","executeViewQueryFn","templateFn","executeTemplate","staticContentQueries","staticViewQueries","components","hostLView","renderComponent","renderChildComponents","incompleteFirstPass","refreshView","isInCheckNoChangesPass","hooksInitPhaseCompleted","movedLView","markTransplantedViewsForRefresh","embeddedLView","embeddedTView","refreshEmbeddedViews","hostBindingOpCodes","opCode","directiveIdx","bindingRootIndx","hostBindingFn","processHostBindingOpCodes","refreshComponent","refreshChildComponents","firstUpdatePass","renderComponentOrTemplate","normalExecutionPath","creationModeIsActive","begin","prevSelectedIndex","executeContentQueries","createDirectivesInstances","addComponentLogic","setInputsFromAttrs","instantiateAllDirectives","elementIndex","invokeHostBindingsInCreationMode","invokeDirectivesHostBindings","saveResolvedLocalsInData","viewData","localRefExtractor","localIndex","getOrCreateTComponentView","createTView","constsOrFactory","initialViewLength","createViewBlueprint","queries","fill","expandoStartIndex","directiveRegistry","pipeRegistry","storeCleanupWithContext","cleanupFn","getOrCreateLViewCleanup","getOrCreateTViewCleanup","generatePropertyAliases","inputAliasMap","propStore","internalName","elementPropertyInternal","nativeOnly","dataValue","inputData","setInputsForProperty","viewIndex","childComponentLView","markDirtyIfOnPush","resolveDirectives","localRefs","hasDirectives","registry","markAsComponentHost","findDirectiveDefMatches","exportsMap","initTNodeFlags","preOrderHooksFound","preOrderCheckHooksFound","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","directiveInputs","generateInitialInputs","initializeInputAndOutputAliases","cacheMatchingLocalNames","registerHostBindingOpCodes","directiveVarsIdx","elementIndx","lastSelectedElementIdx","hostTNode","numberOfDirectives","directiveFactory","nodeInjectorFactory","addToViewTree","setElementAttribute","strValue","initialInputData","inputsToStore","createLContainer","hostNative","componentHostIdx","refreshContainsDirtyView","componentTView","syncViewWithBlueprint","markViewDirty","detectChangesInternal","handleError","detectChangesInRootView","rootContext","rootComponent","tickRootContext","viewQueryFn","CLEAN_PROMISE","errorHandler","computeStaticStyling","writeToHost","INJECTOR$1","NullInjector","INJECTOR_SCOPE","NOT_YET","CIRCULAR","EMPTY_ARRAY$1","NULL_INJECTOR","getNullInjector","createInjectorWithoutInjectorInstances","defType","additionalProviders","R3Injector","records","injectorDefTypes","Set","_destroyed","dedupStack","provider","processProvider","processInjectorType","makeRecord","record","assertNotDestroyed","service","previousInjector","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","injectorErrorName","tokenPath","substr","parts","formatError","catchInjectorError","tokens","defOrWrappedDef","parents","isDuplicate","importTypesWithProviders","imported","defProviders","injectorType","ngModuleType","isTypeProvider","isValueProvider","providerToFactory","providerToRecord","multiRecord","paramLength","inheritedInjectableDef","typeName","getInheritedInjectableDef","getUndecoratedInjectableFactory","unwrappedProvider","useFactory","deps","isExistingProvider","classRef","useClass","hasDeps","INJECTOR_IMPL","_resolveInjectorDefTypes","createInjector","Injector","NULL","LifecycleHooksFeature","ɵɵInheritDefinitionFeature","superType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","defData","mergeHostAttrsAcrossInheritance","prevViewQuery","prevContentQueries","prevHostBindings","_symbolIterator","getOwnPropertyNames","WrappedValue","wrapped","isWrapped","isListLikeIterable","isJsObject","updateBinding","bindingUpdated","bindingUpdated2","exp1","exp2","different","ɵɵattribute","elementAttributeInternal","interpolation1","v0","suffix","ɵɵtemplate","attrsIndex","localRefsIndex","adjustedIndex","tViewConsts","templateFirstCreatePass","comment","ɵɵreference","ɵɵdirectiveInject","ɵɵproperty","setDirectiveInputsWhichShadowsStyling","isClassBased","ɵɵelementStart","elementStart","elementStartFirstCreatePass","ɵɵelementEnd","elementEnd","hasClassInput","hasStyleInput","ɵɵelement","ɵɵelementContainerStart","elementContainerStartFirstCreatePass","ɵɵelementContainerEnd","ɵɵelementContainer","ɵɵgetCurrentView","isObservable","ɵɵlistener","eventName","listenerFn","useCapture","eventTargetResolver","isTNodeDirectiveHost","processOutputs","resolved","lCleanupIndex","existingListener","tNodeIdx","cleanupEventName","listenerIdxInLCleanup","findExistingListener","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","propsLength","idx","listenerInternal","executeListenerWithErrorHandling","wrapWithPreventDefault","wrapListenerIn_markDirtyAndPreventDefault","nextListenerFn","returnValue","ɵɵnextContext","level","nestingLevel","walkUpViews","nextContextImpl","matchingProjectionSlotIndex","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","ngProjectAsAttrIdx","getProjectAsAttrValue","ɵɵprojectionDef","componentNode","projectionHeads","tails","componentChild","slotIndex","ɵɵprojection","selectorIndex","applyProjection","ɵɵpropertyInterpolate","ɵɵpropertyInterpolate1","interpolatedValue","EMPTY_ARRAY$3","markDuplicates","tStylingKey","isPrevDir","isClassBinding","tStylingAtIndex","isMap","cursor","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","getLastParsedKey","parseClassNameNext","startIndex","consumeClassToken","consumeWhitespace","ɵɵstyleProp","checkStylingProperty","ɵɵclassProp","ɵɵclassMap","checkStylingMap","classStringParser","resetParserState","parseClassName","stylingFirstUpdatePass","updateStyling","normalizeSuffix","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","oldKeyValueArray","newKeyValueArray","oldIndex","newIndex","oldKey","newKey","setKey","updateStylingMap","styleKeyValueArray","unwrappedValue","toStylingKeyValueArray","isHostBindings","stylingKey","hostDirectiveDef","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","bindings","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","wrapInStaticStylingKey","tStylingKeyWithStatic","isHostBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","staticKeyValueArray","previousNode","markDuplicateOfResidualStyling","insertTStylingBinding","currentDirective","desiredMarker","currentMarker","tRange","isStylingValuePresent","findStylingValue","isProcedural","DashCase","removeStyle","isImportant","endsWith","Important","applyStyling","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","ɵɵtext","textNative","ɵɵtextInterpolate","ɵɵtextInterpolate1","interpolated","textBindingInternal","ɵɵclassMapInterpolate1","ɵɵclassMapInterpolate4","i0","v1","i1","v2","i2","v3","exp3","exp4","bindingUpdated4","interpolation4","ɵɵhostProperty","ɵɵsyntheticHostProperty","currentDef","unwrapLView","loadComponentRenderer","u","localeEn","floor","LOCALE_DATA","registerLocaleData","localeId","extraData","LocaleDataIndex","LocaleId","ExtraData","findLocaleData","locale","normalizedLocale","normalizeLocale","getLocaleData","parentLocale","getLocaleCurrencyCode","CurrencyCode","getLocalePluralCase","PluralCase","ng","common","locales","pluralMapping","DEFAULT_LOCALE_ID","ELEMENT_MARKER","ICU_MARKER","I18nCreateOpCode","LOCALE_ID","setLocaleId","tNodeInsertBeforeIndex","i18nParent","anchorRNode","addTNodeAndUpdateInsertBeforeIndex","previousTNodes","newTNode","existingTNode","isI18nText","isNewTNodeCreatedBefore","getInsertBeforeIndex","setInsertBeforeIndex","getTIcu","createTNodePlaceholder","getCurrentICUCaseIndex","tIcu","currentCase","currentCaseLViewIndex","changeMask","changeMaskCounter","applyMutableOpCodes","mutableOpCodes","rootRNode","rootIdx","textNodeIndex","parentIdx","insertInFrontOf","refIdx","caseIndex","anchorIdx","commentValue","commentNodeIndex","elementNodeIndex","applyUpdateOpCodes","updateOpCodes","bindingsStartIndex","checkBit","skipCodes","sanitizeFn","tNodeOrTagName","rText","applyIcuSwitchCase","applyIcuUpdateCase","activeCaseIndex","icuExpression","bindingValue","cases","resolvedCase","plural","getPluralCase","getCaseIndex","applyIcuSwitchCaseRemove","removeCodes","nodeOrIcuIndex","BINDING_REGEXP","NESTED_ICU","ICU_BLOCK_REGEXP","SUBTEMPLATE_REGEXP","PH_REGEXP","NGSP_UNICODE_REGEXP","createTNodeAndAddOpCode","rootTNode","existingTNodes","createOpCodes","isICU","i18nNodeIdx","SHIFT","APPEND_EAGERLY","COMMENT","_stack","_removes","_index","enterIcu","icuContainerIteratorNext","removeOpCode","setTNodeInsertBeforeIndex","i18nStartFirstCreatePassProcessTextNode","hasBinding","generateBindingUpdateOpCodes","destinationNode","maskIndex","sizeIndex","textParts","textValue","toMaskBit","removeInnerTemplateTranslation","tagMatched","inTemplate","exec","icuStart","bindingMask","mainBinding","addUpdateIcuSwitch","setTIcu","valueArr","nestedIcus","icuIndex","parseIcuCase","addUpdateIcuUpdate","parseICUBlock","icuType","i18nParseTextIntoPartsAndICU","binding","pos","blocks","prevPos","braceStack","results","braces","lastIndex","block","caseName","unsafeCaseHtml","inertRootNode","walkIcuTree","sharedUpdateOpCodes","depth","currentNode","addCreateNodeAndAppend","lowerAttrName","addCreateAttribute","addRemoveNode","COMMENT_NODE","isNestedIcu","addRemoveNestedIcu","appendToParentIdx","createAtIdx","ɵɵi18n","messageIndex","subTemplateIndex","parentTNodeIndex","existingTNodeStack","msgParts","isRootTemplateMessage","getTranslationForTemplate","part","isClosing","i18nStartFirstCreatePass","tI18n","isComment","appendNow","applyCreateOpCodes","ɵɵi18nStart","ɵɵi18nExp","ɵɵi18nApply","applyI18n","resolveProvider$1","lInjectablesBlueprint","providerFactory","beginIndex","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesProvidersFactoryExist","doesViewProvidersFactoryExist","factoryFn","componentProviders","multiFactoryAdd","multiFactory","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","ɵɵProvidersFeature","viewProviders","processProvidersFn","ComponentFactory","_NullComponentFactoryResolver","noComponentFactoryError","ComponentFactoryResolver","createElementRef","ElementRef","SWITCH_ELEMENT_REF_FACTORY","RendererFactory2","Renderer2","SWITCH_RENDERER2_FACTORY","nodeAtIndex","getOrCreateRenderer2","Sanitizer","Version","full","major","minor","patch","VERSION","DefaultIterableDifferFactory","trackByFn","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","_trackByFn","nextIt","nextRemove","addRemoveOffset","moveOffsets","currentIndex","getPreviousIndex","adjPreviousIndex","_nextRemoved","previousIndex","localMovePreviousIndex","localCurrentIndex","_nextPrevious","_nextAdded","_nextMoved","_nextIdentityChange","collection","check","_reset","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","iterateListLike","_truncate","isDirty","previousRecord","_prev","_remove","_moveAfter","_reinsertAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","toIndex","_prevDup","_nextDup","_DuplicateItemRecordList","_head","_tail","atOrAfterIndex","duplicates","recordList","moveOffset","DefaultKeyValueDifferFactory","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","IterableDiffers","copied","supports","KeyValueDiffers","kv","collectNativeNodes","lNode","lViewInAContainer","lViewFirstChildTNode","nodesInSlot","ViewRef","_cdRefInjectingView","_appRef","_attachedToViewContainer","viewRefs","checkNoChangesInternal","appRef","RootViewRef","_view","checkNoChangesInRootView","SWITCH_CHANGE_DETECTOR_REF_FACTORY","injectChangeDetectorRef","ChangeDetectorRef","__ChangeDetectorRef__","isPipe","createViewRef","keyValDiff","defaultIterableDiffers","defaultKeyValueDiffers","SWITCH_TEMPLATE_REF_FACTORY","createTemplateRef","TemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","declarationViewLQueries","NgModuleRef","NgModuleFactory","SWITCH_VIEW_CONTAINER_REF_FACTORY","createContainerRef","ViewContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","templateRef","insert","componentFactory","projectableNodes","ngModuleRef","contextInjector","parentInjector","prevIdx","detach","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","containerLength","trackMovedView","insertView","parentNativeNode","addViewToContainer","attachToViewContainerRef","getOrCreateViewRefs","viewRefsArr","detachedView","commentNode","nativeNextSibling","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","ComponentFactoryResolver$1","componentDef","ComponentFactory$1","toRefArray","nonMinified","templateName","SCHEDULER","componentType","isBoundToModule","rootSelectorOrNode","rootViewInjector","createChainedInjector","hostRenderer","elementName","hostRNode","elementOrSelector","selectRootElement","ShadowDom","rElement","locateHostElement","getNamespace$1","rootFlags","clean","playerHandler","rootTView","rootLView","tElementNode","viewRenderer","createRootComponentView","extractAttrsAndClassesFromSelector","nodesforSlot","hostFeatures","instantiateRootComponent","createRootComponent","ComponentRef$1","_rootLView","modules","NgModuleRef$1","_bootstrapComponents","destroyCbs","componentFactoryResolver","ngLocaleIdDef","_r3Injector","injectFlags","destroyed","NgModuleFactory$1","moduleType","visited","recurse","incoming","assertSameOrNotExisting","registerNgModuleType","ɵɵpureFunction0","slotOffset","pureFn","thisArg","getBinding","ɵɵpureFunction1","exp","pureFunction1Internal","ɵɵpureFunction2","pureFunction2Internal","ɵɵpureFunction3","pureFunction3Internal","getPureFunctionReturnValue","returnValueIndex","lastReturnValue","bindingRoot","bindingUpdated3","ɵɵpipe","pipeName","getPipeDef$1","pipeFactory","pipeInstance","ɵɵpipeBind1","unwrapValue$1","isPure","ɵɵpipeBind2","ɵɵpipeBind3","unwrap","EventEmitter","isAsync","__isAsync","generatorOrNext","schedulerFn","errorFn","completeFn","symbolIterator","_results","QueryList","symbol","proto","resultsTree","LQuery_","queryList","setDirty","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","clone","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","predicate","descendants","isStatic","read","TQueries_","queriesForTemplateRef","childQueryIndex","tqueryClone","tquery","TQuery_","metadata","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","matchIdx","createResultForNode","matchingIdx","createResultByTNodeType","createSpecialToken","materializeViewResults","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","collectQueryResults","lViewResults","embeddedLViews","ɵɵqueryRefresh","notifyOnChanges","ɵɵstaticViewQuery","descend","viewQueryInternal","ɵɵviewQuery","createTQuery","createLQuery","ɵɵcontentQuery","contentQueryInternal","ɵɵstaticContentQuery","tViewContentQueries","saveContentQueryAndDirectiveIndex","ɵɵloadQuery","track","ɵɵtemplateRefExtractor","ɵɵinjectPipeChangeDetectorRef","APP_INITIALIZER","ApplicationInitStatus","appInits","initialized","donePromise","rej","asyncInitPromises","initResult","all","APP_ID","APP_ID_RANDOM_PROVIDER","_randomChar","fromCharCode","PLATFORM_INITIALIZER","PLATFORM_ID","APP_BOOTSTRAP_LISTENER","Console","LOCALE_ID$1","DEFAULT_CURRENCY_CODE","ModuleWithComponentFactories","ngModuleFactory","componentFactories","Compiler_compileModuleSync__POST_R3__","Compiler_compileModuleSync","Compiler_compileModuleAsync","Compiler_compileModuleAndAllComponentsSync__POST_R3__","declaration","Compiler_compileModuleAndAllComponentsSync","Compiler_compileModuleAndAllComponentsAsync","Compiler","compileModuleSync","compileModuleAsync","compileModuleAndAllComponentsSync","compileModuleAndAllComponentsAsync","scheduleMicroTask","Zone","NgZone","enableLongStackTrace","shouldCoalesceEventChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","isStable","onUnstable","onMicrotaskEmpty","assertZonePatched","_nesting","_outer","_inner","fork","lastRequestAnimationFrameId","nativeRequestAnimationFrame","nativeCancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","getNativeRequestAnimationFrame","maybeDelayChangeDetection","fakeTopEventTask","root","scheduleEventTask","updateMicroTaskStatus","checkStable","invoke","delayChangeDetectionForEvents","properties","onInvokeTask","task","applyThis","applyArgs","onEnter","invokeTask","onLeave","onInvoke","onHasTask","hasTaskState","hasTask","_hasPendingMicrotasks","microTask","macroTask","onHandleError","forkInnerZoneWithAngularBehavior","isInAngularZone","EMPTY_PAYLOAD","runTask","cancelTask","runGuarded","NoopNgZone","Testability","_pendingCount","_isZoneStable","_didWork","_callbacks","taskTrackingZone","_watchAngularEvents","assertNotInAngularZone","_runCallbacksIfReady","timeoutId","doneCb","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","using","exactMatch","TestabilityRegistry","_applications","_testabilityGetter","addToWindow","testability","findInAncestors","findTestabilityInTree","_NoopGetTestability","setTestabilityGetter","getter","_platform","_devMode","_runModeLocked","isDevMode","enableProdMode","ALLOW_MULTIPLE_PLATFORMS","NgProbeToken","createPlatformFactory","parentPlatformFactory","desc","extraProviders","getPlatform","injectedProviders","PlatformRef","inits","createPlatform","requiredToken","assertPlatform","_modules","_destroyListeners","moduleFactory","ngZone","ngZoneOption","ngZoneEventCoalescing","getNgZone","ngZoneInjector","moduleRef","exceptionHandler","_callAndReportToErrorHandler","initStatus","runInitializers","_moduleDoBootstrap","compilerOptions","optionsReducer","compileNgModuleFactory","bootstrapModuleFactory","ApplicationRef","ngDoBootstrap","objs","_exceptionHandler","_componentFactoryResolver","_initStatus","_bootstrapListeners","_views","_runningTick","_stable","componentTypes","_onMicrotaskEmptySubscription","tick","isCurrentlyStable","stableSub","unstableSub","assertInAngularZone","componentOrFactory","compRef","testabilityRegistry","registerApplication","unregisterApplication","_loadComponent","attachToAppRef","detachFromAppRef","NgModuleFactoryLoader","SystemJsNgModuleLoaderConfig","DEFAULT_CONFIG","factoryPathPrefix","factoryPathSuffix","SystemJsNgModuleLoader","_compiler","loadAndCompile","exportName","checkNotEmpty","factoryClassSuffix","modulePath","getDebugNodeR2","_nativeNode","platformCore","APPLICATION_MODULE_PROVIDERS","$localize","ApplicationModule","NONE","combineLatest","CombineLatestOperator","CombineLatestSubscriber","unused","_tryResultSelector","innerIndex","innerSub","MapOperator","MapSubscriber","TelaDeLiberacaoModule","isFunction","_DOM","getDOM","setRootDomAdapter","adapter","DomAdapter","PlatformLocation","useBrowserPlatformLocation","BrowserPlatformLocation","LOCATION_INITIALIZED","_doc","_init","getLocation","_history","getHistory","getBaseHref","getGlobalEventTarget","protocol","hostname","port","pathname","hash","newPath","supportsState","pushState","replaceState","forward","back","createBrowserPlatformLocation","joinWithSlash","slashes","startsWith","stripTrailingSlash","pathEndIdx","normalizeQueryParams","LocationStrategy","provideLocationStrategy","platformLocation","PathLocationStrategy","APP_BASE_HREF","_platformLocation","getBaseHrefFromDOM","_baseHref","onPopState","onHashChange","internal","includeHash","externalUrl","prepareExternalUrl","HashLocationStrategy","Location","platformStrategy","_subject","_urlChangeListeners","_platformStrategy","browserBaseHref","_stripIndexHtml","ev","normalize","getState","baseHref","_stripBaseHref","_notifyUrlChangeListeners","_urlChangeSubscription","onNext","onThrow","onReturn","createLocation","NumberFormatStyle","Plural","FormStyle","TranslationWidth","FormatWidth","NumberSymbol","getLocaleDayPeriods","formStyle","amPm","getLastDefinedValue","DayPeriodsFormat","DayPeriodsStandalone","getLocaleDayNames","days","DaysFormat","DaysStandalone","getLocaleMonthNames","months","MonthsFormat","MonthsStandalone","getLocaleDateFormat","DateFormat","getLocaleTimeFormat","TimeFormat","getLocaleDateTimeFormat","DateTimeFormat","getLocaleNumberSymbol","NumberSymbols","CurrencyDecimal","Decimal","CurrencyGroup","Group","checkFullData","extractTime","hours","minutes","ISO8601_DATE_REGEX","NAMED_FORMATS","DATE_FORMATS_SPLIT","ZoneWidth","DateType","TranslationType","formatDate","format","timezone","date","isDate","parsedNb","tzHour","tzMin","dateSetter","setUTCFullYear","setFullYear","timeSetter","setUTCHours","setHours","ms","isoStringToDate","toDate","getNamedFormat","dateTimezoneOffset","getTimezoneOffset","timezoneToOffset","reverse","getTime","setMinutes","getMinutes","addDateMinutes","convertTimezoneToLocal","dateFormatter","DATE_FORMATS","formatter","dateStrGetter","Eras","Abbreviated","Wide","Narrow","dateGetter","FullYear","weekNumberingYearGetter","Month","Months","Standalone","weekGetter","Days","Short","DayPeriods","Format","Hours","Minutes","Seconds","FractionalSeconds","timeZoneGetter","Extended","ShortGMT","Long","getDateFormatter","getLocaleId","formatValue","Medium","Full","shortTime","shortDate","formatDateTime","mediumTime","mediumDate","longTime","longDate","fullTime","fullDate","opt_values","padNumber","digits","minusSign","negWrap","neg","strNum","getFullYear","getMonth","getDate","getHours","getSeconds","getMilliseconds","Day","getDay","getDatePart","localeMinus","MinusSign","extended","currentHours","currentMinutes","rules","rule","getLocaleExtraDayPeriodRules","dayPeriods","getLocaleExtraDayPeriods","findIndex","to","afterFrom","beforeTo","getLocaleEraNames","getDateTranslation","ceil","getThursdayThisWeek","datetime","monthBased","nbDaysBefore1stDayOfMonth","today","thisThurs","firstThurs","year","firstDayOfYear","THURSDAY","getFirstThursdayOfYear","diff","fallback","requestedTimezoneOffset","valueOf","NUMBER_FORMAT_REGEXP","DECIMAL_SEP","ZERO_CHAR","parseIntAutoRadix","NgLocalization","NgLocaleLocalization","Zero","One","Two","Few","Many","parseCookieValue","cookieStr","encodeURIComponent","cookie","eqIndex","cookieName","cookieValue","decodeURIComponent","NgClass","_iterableDiffers","_keyValueDiffers","_ngEl","_iterableDiffer","_keyValueDiffer","_initialClasses","_rawClass","_removeClasses","_applyClasses","iterableChanges","_applyIterableChanges","keyValueChanges","_applyKeyValueChanges","forEachAddedItem","_toggleClass","forEachChangedItem","forEachRemovedItem","rawClassVal","klass","ngClass","NgForOfContext","ngForOf","even","NgForOf","_viewContainer","_template","_differs","_ngForOf","_ngForOfDirty","_differ","ngForTrackBy","_applyChanges","insertTuples","forEachOperation","adjustedPreviousIndex","tuple","RecordViewTuple","move","_perViewChange","ilen","forEachIdentityChange","ngForTemplate","NgIf","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","_updateView","assertTemplate","ngIfThen","ngIfElse","NgTemplateOutlet","_viewContainerRef","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","_shouldRecreateView","viewContainerRef","_updateExistingContext","ctxChange","_hasContextShapeChanged","prevCtxKeys","currCtxKeys","invalidPipeArgumentError","DatePipe","PercentPipe","_locale","digitsInfo","isValue","groupSymbol","decimalSymbol","isPercent","formattedText","isZero","isFinite","parsedNumber","integerLen","zeros","numStr","exponent","MAX_DIGITS","parseNumber","fractionLen","toPercent","minInt","minFraction","minFrac","maxFraction","maxFrac","minIntPart","minFractionPart","maxFractionPart","fractionSize","roundAt","digit","dropTrailingZeros","minLen","carry","reduceRight","roundNumber","decimals","groups","lgSize","gSize","Exponential","Infinity","negPre","negSuf","posPre","posSuf","formatNumberToLocaleString","p","patternParts","positive","negative","positiveParts","integer","fraction","ch","trunkLen","parseNumberFormat","NumberFormats","getLocaleNumberFormat","Percent","PercentSign","formatPercent","strToNumber","CommonModule","PLATFORM_BROWSER_ID","isPlatformBrowser","platformId","ViewportScroller","BrowserViewportScroller","supportsScrolling","elSelected","getElementById","getElementsByName","scrollToElement","attemptFocus","scrollRestoration","supportScrollRestoration","focusTarget","scrollRestorationDescriptor","getScrollRestorationProperty","getOwnPropertyDescriptor","FilterOperator","FilterSubscriber","TelaDeLiberarComponent","routes","canActivate","TelaDeLiberacaoRoutingModule","forChild","UnsubscriptionError","UnsubscriptionErrorImpl","_subscriptions","_ctorUnsubscribe","_unsubscribe","flattenUnsubscriptionErrors","teardown","tmp","subscriptionIndex","errs","HttpHandler","HttpBackend","HttpHeaders","normalizedNames","lazyUpdate","lazyInit","maybeSetNormalizedName","op","lcName","copyFrom","applyUpdate","other","base","toDelete","existing","HttpUrlEncodingCodec","standardEncoding","HttpParams","updates","cloneFrom","encoder","fromString","fromObject","rawParams","codec","eqIdx","decodeKey","decodeValue","paramParser","eKey","encodeKey","encodeValue","isArrayBuffer","ArrayBuffer","isBlob","isFormData","HttpRequest","third","fourth","mightHaveBody","urlWithParams","qIdx","setHeaders","setParams","HttpEventType","HttpResponseBase","defaultStatus","defaultStatusText","statusText","ok","HttpHeaderResponse","ResponseHeader","HttpResponse","Response","HttpErrorResponse","addBody","HttpClient","handler","req","events$","handle","res$","request","callbackParam","HttpInterceptorHandler","interceptor","intercept","HTTP_INTERCEPTORS","NoopInterceptor","XSSI_PREFIX","XhrFactory","BrowserXhr","HttpXhrBackend","xhrFactory","build","detectedType","detectContentTypeHeader","reqBody","serializeBody","headerResponse","partialFromXhr","responseURL","getResponseHeader","getResponseUrl","onLoad","originalBody","sentHeaders","onDownProgress","progressEvent","DownloadProgress","partialText","onUpProgress","UploadProgress","Sent","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","HttpXsrfCookieExtractor","doc","lastCookieString","lastToken","parseCount","cookieString","HttpXsrfInterceptor","tokenService","headerName","lcUrl","getToken","HttpInterceptingHandler","backend","chain","interceptors","HttpClientXsrfModule","HttpClientModule","withOptions","EmptyError","EmptyErrorImpl","defer","observableFactory","scan","accumulator","seed","hasSeed","ScanOperator","_seed","takeLast","ring","throwIfEmpty","errorFactory","defaultErrorFactory","ThrowIfEmptyOperator","defaultIfEmpty","defaultValue","DefaultIfEmptyOperator","isEmpty","hasDefaultValue","FinallyOperator","RouterEvent","NavigationStart","navigationTrigger","restoredState","NavigationEnd","urlAfterRedirects","NavigationCancel","NavigationError","RoutesRecognized","GuardsCheckStart","GuardsCheckEnd","shouldActivate","ResolveStart","ResolveEnd","RouteConfigLoadStart","RouteConfigLoadEnd","ChildActivationStart","snapshot","routeConfig","ChildActivationEnd","ActivationStart","ActivationEnd","Scroll","routerEvent","PRIMARY_OUTLET","ParamsAsMap","convertToParamMap","navigationCancelingError","defaultUrlMatcher","segments","segmentGroup","pathMatch","hasChildren","posParams","segment","consumed","shallowEqual","k1","k2","equalArraysOrString","aSorted","bSorted","wrapIntoObservable","containsTree","containee","exact","equalQueryParams","equalSegmentGroups","containsQueryParams","containsSegmentGroup","equalPath","numberOfChildren","containsSegmentGroupHelper","containeePaths","UrlTree","fragment","_queryParamMap","DEFAULT_SERIALIZER","serialize","UrlSegmentGroup","serializePaths","UrlSegment","_parameterMap","serializePath","as","bs","UrlSerializer","DefaultUrlSerializer","UrlParser","parseRootSegment","parseQueryParams","parseFragment","tree","serializeSegment","strParams","encodeUriQuery","serializeQueryParams","encodeURI","primary","childOutlet","mapChildrenIntoArray","encodeUriString","encodeUriSegment","decode","decodeQuery","SEGMENT_RE","matchSegments","QUERY_PARAM_RE","QUERY_PARAM_VALUE_RE","consumeOptional","peekStartsWith","parseChildren","parseQueryParam","parseSegment","parseParens","parseMatrixParams","parseParam","valueMatch","matchQueryParams","matchUrlQueryParamValue","decodedKey","decodedVal","currentVal","allowPrimary","outletName","Tree","_root","pathFromRoot","findNode","findPath","cc","TreeNode","nodeChildrenAsMap","outlet","RouterState","setRouterState","createEmptyState","urlTree","activated","ActivatedRouteSnapshot","RouterStateSnapshot","createEmptyStateSnapshot","emptyUrl","emptyParams","emptyData","emptyQueryParams","futureSnapshot","_futureSnapshot","_routerState","_paramMap","inheritedParamsDataResolve","paramsInheritanceStrategy","inheritingStartingFrom","curr","_resolvedData","flattenInherited","urlSegment","lastPathIndex","_urlSegment","_lastPathIndex","serializeNode","advanceActivatedRoute","currentSnapshot","nextSnapshot","shallowEqualArrays","equalParamsAndUrlSegments","createNode","routeReuseStrategy","prevState","shouldReuseRoute","createOrReuseChildren","detachedRouteHandle","retrieve","setFutureSnapshotsOfActivatedRoutes","isMatrixParams","command","outlets","segmentPath","isCommandWithOutlets","oldSegmentGroup","newSegmentGroup","qp","replaceSegment","oldSegment","newSegment","Navigation","isAbsolute","numberOfDoubleDots","commands","cmdWithOutlet","Position","processChildren","updateSegmentGroup","updateSegmentGroupChildren","currentCommandIndex","currentPathIndex","noMatch","pathIndex","commandIndex","compare","prefixedWith","slicedCommands","createNewSegmentGroup","getOutlets","paths","createNewSegmentChildren","ActivateRoutes","futureState","currState","forwardEvent","parentContexts","futureRoot","currRoot","deactivateChildRoutes","activateChildRoutes","futureNode","currNode","contexts","futureChild","childOutletName","deactivateRoutes","childName","deactivateRouteAndItsChildren","parentContext","future","getContext","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","onOutletDeactivated","deactivate","activateRoutes","getOrCreateContext","shouldAttach","stored","onOutletReAttached","attachRef","attach","advanceActivatedRouteNodeAndItsChildren","_loadedConfig","parentLoadedConfig","cmpFactoryResolver","resolver","activateWith","LoadedRouterConfig","isUrlTree","INITIAL_VALUE","prioritizedGuardValue","isPending","innerAcc","ɵEmptyOutletComponent","validateConfig","parentPath","validateNode","getFullPath","fullPath","currentRoute","standardizeConfig","loadChildren","getOutlet","sortByMatchingOutlets","sortedConfig","matched","consumedSegments","lastChild","positionalParamSegments","matcher","slicedSegments","relativeLinkResolution","emptyPathMatch","containsEmptyPathMatchesWithNamedOutlets","primarySegment","_sourceSegment","_segmentIndexShift","createChildrenForEmptyPaths","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","isImmediateMatch","rawSegment","noLeftoversInUrl","NoMatch","AbsoluteRedirect","noMatch$1","absoluteRedirect","newTree","namedOutletsRedirect","redirectTo","configLoader","urlSerializer","allowRedirects","splitGroup","rootSegmentGroup","expandSegmentGroup","createUrlTree","squashSegmentGroup","noMatchError","rootCandidate","expandChildren","expandSegment","childOutlets","sortedRoutes","expandedChild","expandSegmentAgainstRoute","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","expandWildCardWithParamsAgainstRouteUsingRedirect","expandRegularSegmentAgainstRouteUsingRedirect","applyRedirectCommands","lineralizeSegments","newSegments","rawSegmentGroup","cfg","rawSlicedSegments","getChildConfig","routerConfig","childModule","childConfig","splitSegmentGroup","matchedOnOutlet","cs","runCanLoadGuards","shouldLoadResult","canLoadFails","canLoad","canLoadObservables","injectionToken","guard","guardVal","isCanLoad","applyRedirectCreatreUrlTree","newRoot","createSegmentGroup","createQueryParams","redirectToParams","actualParams","sourceName","updatedSegments","createSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","newChildren","childCandidate","mergeTrivialChildren","CanActivate","CanDeactivate","getAllRouteGuards","getChildRouteGuards","getClosestLoadedConfig","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","isActivated","getRouteGuards","NoMatch$1","newObservableError","Recognizer","rootComponentType","processSegmentGroup","rootNode","routeState","inheritParamsAndData","routeNode","processSegment","outletChildren","mergedChildren","hasEmptyPathConfig","duplicateEmptyPathNode","resultNode","mergeEmptyPathMatches","localeCompare","processSegmentAgainstRoute","getData","getSourceSegmentGroup","getPathIndexShift","getResolve","switchTap","DefaultRouteReuseStrategy","detachedTree","ROUTES","compiler","onLoadStartListener","onLoadEndListener","loadModuleFactory","OutletContext","ChildrenOutletContexts","DefaultUrlHandlingStrategy","newUrlPart","wholeUrl","defaultErrorHandler","defaultMalformedUriErrorHandler","defaultRouterHook","runExtras","Router","rootContexts","lastSuccessfulNavigation","currentNavigation","lastLocationChangeInfo","navigationId","isNgZoneEnabled","events","malformedUriErrorHandler","navigated","lastSuccessfulId","beforePreactivation","afterPreactivation","urlHandlingStrategy","onSameUrlNavigation","urlUpdateStrategy","resetConfig","currentUrlTree","rawUrlTree","browserUrlTree","triggerEvent","routerState","transitions","currentRawUrl","extractedUrl","extract","rawUrl","extras","targetSnapshot","currentRouterState","targetRouterState","guards","guardsResult","navigations","setupNavigations","processNavigations","eventsSubject","initialUrl","trigger","previousNavigation","urlTransition","shouldProcessUrl","serializeUrl","applyRedirects","finalUrl","serializer","recognize","recognize$1","skipLocationChange","setBrowserUrl","replaceUrl","routesRecognized","navStart","appliedUrlTree","guardsStart","futureRSS","currRSS","currARS","canDeactivate","canDeactivateObservables","isCanDeactivate","runCanDeactivate","runCanDeactivateChecks","fireChildActivationStart","fireActivationStart","futureARS","canActivateChildGuardsMapped","canActivateChild","getCanActivateChild","guardsMapped","isCanActivateChild","runCanActivateChild","canActivateObservables","isCanActivate","runCanActivate","runCanActivateChecks","checkGuards","evt","guardsEnd","resetUrlToCurrentUrlTree","navCancel","resolveStart","dataResolved","canActivateChecksResolved","getResolver","resolveNode","resolvedData","runResolve","resolveEnd","createRouterState","activate","redirecting","resetStateAndUrl","mergedTree","scheduleNavigation","navError","ee","getTransition","setUpLocationChangeListener","navigateByUrl","locationSubscription","currentChange","extractLocationChangeInfoFromEvent","shouldScheduleNavigation","stateCopy","parseUrl","transitionId","sameDestination","dispose","navigationExtras","relativeTo","queryParamsHandling","preserveFragment","q","removeEmptyProps","nav","cmd","cmdIdx","urlPart","partIndex","computeNavigation","toRoot","startingPosition","modifier","ci","dd","createPositionApplyingDoubleDots","findStartingPosition","validateCommands","priorPromise","lastNavigation","browserNavPrecededByRouterNav","duplicateNav","setTransition","isCurrentPathEqualTo","go","storedState","storedUrl","RouterLink","onChanges","attrBoolValue","onClick","routerLink","RouterLinkWithHref","locationStrategy","updateTargetUrlAndHref","ctrlKey","altKey","metaKey","RouterLinkActive","cdr","link","linkWithHref","isActive","routerLinkActiveOptions","routerEventsSubscription","links","linksWithHrefs","subscribeToEachLinkOnChanges","linkInputChangesSubscription","allLinkChanges","isLinkActive","hasActiveLinks","markForCheck","isActiveCheckFn","routerLinkActive","RouterOutlet","changeDetector","_activatedRoute","activateEvents","deactivateEvents","onChildOutletCreated","onChildOutletDestroyed","cmp","ref","activatedRoute","childContexts","OutletInjector","createComponent","PreloadingStrategy","RouterPreloader","moduleLoader","preloadingStrategy","preload","processRoutes","preloadConfig","RouterScroller","viewportScroller","lastId","lastSource","restoredId","scrollPositionRestoration","anchorScrolling","setHistoryScrollRestoration","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","getScrollPosition","scheduleScrollEvent","scrollToPosition","scrollToAnchor","ROUTER_CONFIGURATION","ROUTER_FORROOT_GUARD","ROUTER_PROVIDERS","assignExtraOptionsToRouter","enableTracing","dom","logGroup","logGroupEnd","routerNgProbeToken","RouterModule","provideRoutes","provideForRootGuard","createRouterScroller","getAppInitializer","ROUTER_INITIALIZER","getBootstrapListener","scrollOffset","setOffset","platformLocationStrategy","useHash","RouterInitializer","initNavigation","resultOfPreactivationDone","initialNavigation","bootstrappedComponentRef","preloader","routerScroller","setUpPreloading","resetRootComponentType","appInitializer","bootstrapListener","RetryOperator","BaseService","LoginService","PATH_CADU_AUTO","PATH_CADU","PATH_CADU_GESTOR","PATH_CADU_INSERT_BEM","PATH_LOT","PATH_SUBORDINADOS","retry","DoOperator","TapSubscriber","_tapNext","_tapError","_tapComplete","refCount","RefCountOperator","connectable","_refCount","refCounter","connection","connect","sharedConnection","_connection","subjectFactory","_isComplete","getSubject","connectableObservableDescriptor","connectableProto","shareSubjectFactory","share","subjectOrSubjectFactory","setupSubscription","sourceObj","isEventTarget","on","off","isJQueryStyleEventEmitter","addListener","removeListener","isNodeStyleEventEmitter","groupEnd","getDefaultDocument","DocumentFragment","baseElement","urlParsingNode","performance","TRANSITION_ID","SERVER_TRANSITION_PROVIDERS","getAllTestabilities","getAllRootElements","testabilities","didWork","decrement","didWork_","whenStable","getTestability","isShadowRoot","EVENT_MANAGER_PLUGINS","EventManager","plugins","_eventNameToPlugin","manager","_plugins","_findPluginFor","addGlobalEventListener","plugin","SharedStylesHost","_stylesSet","additions","onStylesAdded","DomSharedStylesHost","_hostNodes","_styleNodes","head","styleEl","hostNode","_addStylesToHost","styleNode","NAMESPACE_URIS","COMPONENT_REGEX","flattenStyles","compId","decoratePreventDefault","eventHandler","DomRendererFactory2","eventManager","sharedStylesHost","appId","rendererByCompId","defaultRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","ShadowDomRenderer","addStyles","newChild","refChild","oldChild","selectorOrNode","preserveContent","namespaceUri","removeAttributeNS","contentAttr","hostAttr","hostEl","shadowRoot","attachShadow","addHost","removeHost","nodeOrShadowRoot","DomEventsPlugin","MODIFIER_KEYS","_keyMap","_chromeNumKeyPadMap","MODIFIER_KEY_GETTERS","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","getZone","onAndCancel","domEventName","_normalizeKey","fullKey","modifierName","keyIdentifier","getEventKey","modifierGetter","getEventFullKey","keyName","INTERNAL_BROWSER_PLATFORM_PROVIDERS","makeCurrent","platformBrowser","BROWSER_MODULE_PROVIDERS","BrowserModule","parentModule","AnimationBuilder","AUTO_STYLE","sequence","steps","NoopAnimationPlayer","duration","_onDoneFns","_onStartFns","_onDestroyFns","_started","_finished","_position","parentPlayer","totalTime","hasStarted","_onStart","triggerMicrotask","_onFinish","finish","phaseName","methods","AnimationGroupPlayer","_players","players","doneCount","destroyCount","startCount","player","onDone","_onDestroy","onStart","play","pause","restart","timeAtPosition","setPosition","longestPlayer","longestSoFar","getPosition","beforeDestroy","isNode","process","optimizeGroupPlayer","normalizeKeyframes","driver","normalizer","keyframes","preStyles","postStyles","normalizedKeyframes","previousOffset","previousKeyframe","kf","isSameOffset","normalizedKeyframe","normalizedProp","normalizedValue","normalizePropertyName","normalizeStyleValue","LINE_START","listenOnPlayer","copyAnimationEvent","makeAnimationEvent","triggerName","fromState","toState","getOrSetAsInMap","parseTimelineCommand","separatorPos","_contains","elm1","elm2","_matches","_query","_isNode","matchesSelector","mozMatchesSelector","oMatchesSelector","elems","elm","_CACHED_BODY","_IS_WEBKIT","validateStyleProperty","containsVendorPrefix","matchesElement","containsElement","invokeQuery","hypenatePropsObject","newObj","newProp","NoopAnimationDriver","easing","previousPlayers","scrubberAccessRequested","AnimationDriver","NOOP","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","_convertTimeValueToMS","unit","resolveTiming","timings","allowNegativeValues","delayMatch","easingVal","containsErrors","parseTimeExpression","copyObj","copyStyles","readPrototype","getStyleAttributeString","writeStyleAttribute","styleAttrValue","setStyles","formerStyles","camelProp","eraseStyles","normalizeAnimationEntry","PARAM_REGEX","extractStyleParams","interpolateParams","original","varName","localVal","iteratorToArray","allowPreviousPlayerStylesMerge","balancePreviousStylesIntoKeyframes","previousStyles","previousStyleProps","startingKeyframe","missingStyleProps","computeStyle","visitDslNode","visitor","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","ANY_STATE","parseTransitionExpr","transitionValue","expressions","eventStr","parseAnimationAlias","separator","makeLambdaFromStates","parseInnerTransitionStr","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","buildAnimationAst","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","currentTime","queryCount","depCount","definitions","stateDef","styleAst","astParams","containsDynamicStyles","missingSubs","stylesObj","missingSubsArr","matchers","expr","normalizeAnimationOptions","furthestTime","innerAst","timingAst","makeTimingAst","ast","dynamic","constructTimingAst","currentAnimateTimings","styleMetadata","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","styleTuple","collectedEasing","styleData","styleMap","endTime","startTime","collectedEntry","updateCollectedStyle","validateStyleParams","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","generatedOffset","limit","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","includeSelf","hasAmpersand","normalizeSelector","optional","originalSelector","currentTransition","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","_map","instructions","existingInstructions","ENTER_TOKEN_REGEX","LEAVE_TOKEN_REGEX","buildAnimationTimelines","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","AnimationTimelineContext","currentTimeline","timelines","timeline","containsAnimation","tl","allowOnlyTimelineStyles","elementInstructions","consume","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","instruction","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","delayNextStep","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","incrementTime","getCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","maxTime","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","oldParams","newTime","_copyOptions","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","elements","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_localTimelineStyles","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","allStyles","allProperties","_updateStyle","details0","details1","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","decimalPoints","mult","pow","AnimationStyleNormalizer","WebAnimationsStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","strVal","DIMENSIONAL_PROP_MAP","valAndSuffixMatch","makeBooleanMap","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","currentState","nextState","matchFns","oneOrMoreTransitionsMatch","stateName","backupStateStyler","stateStyler","backupStyles","buildStyles","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","queriedElementsList","AnimationStateStyles","combinedParams","styleObj","AnimationTrigger","transitionFactories","balanceProperties","fallbackTransition","EMPTY_INSTRUCTION_MAP","bodyNode","_normalizer","_animations","_playersById","animate","autoStylesMap","inst","_buildPlayer","_getPlayer","baseEvent","register","QUEUED_CLASSNAME","DISABLED_CLASSNAME","DISABLED_SELECTOR","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","StateValue","isObj","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","_engine","_triggers","_queue","_elementListeners","_hostClassName","phase","listeners","triggersWithStates","statesByElement","afterFlush","defaultToFallback","_getTrigger","absorbOptions","objEquals","matchStyles","reportError","playersOnElement","playersByElement","queued","matchTransition","isFallbackTransition","totalQueuedPlayers","stateMap","entry","elementPlayers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","clearElementCache","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","markElementAsRemoved","processLeaveNode","visitedTriggers","engine","childElementCount","_signalRemovalForInnerTriggers","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","prepareLeaveAnimationListeners","removalFlag","destroyInnerAnimations","_onRemovalComplete","microtaskId","markedForDestroy","d0","d1","containsData","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","onRemovalComplete","_balanceNamespaceList","collectEnterElement","createNamespace","_fetchNamespace","elementStates","nsId","isElementNode","details","insertNode","removeNode","hostNS","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","markElementAsDisabled","cleanupFns","_flushAnimations","quietFns","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","drainQueuedTransitions","nodeIsOrphaned","_buildInstruction","stringMap","setVal","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","elementContainsData","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","getRealPlayer","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","finalPlayers","_flattenGroupPlayersRecur","flattenGroupPlayers","wrappedPlayer","currentValues","deleteOrUnsetInMap","_player","_containsRealPlayer","_queuedCallbacks","triggerCallback","_queueEvent","cloakElement","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","roots","rootMap","nodeSet","localRootMap","getRoot","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","componentId","cacheKey","buildTrigger","registerTrigger","eventPhase","whenRenderingDone","packageNonAnimatableStyles","startStyles","endStyles","filterNonAnimatableStyles","SpecialCasedStyles","_startStyles","_endStyles","initialStyles","initialStylesByElement","_initialStyles","isNonAnimatableStyle","ANIMATION_PROP","ANIMATIONEND_EVENT","ElementAnimationStyleHandler","_name","_duration","_delay","_easing","_fillMode","_onDoneFn","_startTime","_eventFn","_handleCallback","anim","getAnimationStyle","char","countChars","setAnimationStyle","applyKeyframeAnimation","addRemoveAnimationEvent","playPauseAnimation","findIndexForAnimation","timestamp","_ngTestManualTimestamp","elapsedTime","toFixed","animationName","findMatchingTokenIndex","removeKeyframeAnimation","searchToken","doRemove","CssKeyframesPlayer","_finalStyles","_specialStyles","_buildStyler","_styler","_flushStartFns","_flushDoneFns","resume","finished","_startingStyles","__initialized","_styles","CssKeyframesDriver","_count","keyframeStr","tab","kfElm","previousCssKeyframePlayers","flatKeyframes","flattenKeyframesIntoStyles","buildKeyframeElement","specialStyles","WebAnimationsPlayer","_initialized","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","_resetDomPlayerState","WebAnimationsDriver","_isNativeImpl","getElementAnimateFn","_cssKeyframesDriver","supported","playerOptions","previousWebAnimationPlayers","BrowserAnimationBuilder","rootRenderer","_nextAnimationId","issueAnimationCommand","_id","RendererAnimationPlayer","_command","_listen","ANIMATION_PREFIX","DISABLE_ANIMATIONS_FLAG","AnimationRendererFactory","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","BaseAnimationRenderer","AnimationRenderer","_scheduleCountTask","onInsert","onRemove","disableAnimations","resolveElementFromTarget","dotIndex","parseTriggerCallbackName","scheduleListenerCallback","InjectableAnimationEngine","BROWSER_ANIMATIONS_PROVIDERS","BrowserAnimationsModule","BasicAuthInterceptor","ErrorInterceptor","logout","Page","ordenacao","PageService","totalPages","totalItems","pageSize","startPage","endPage","currentPage","pages","newpage","dados","pesquisa","ativo","dataInicio","dataFim","Arquivo","Evidencia","UploadService","PATH_EVIDENCIA","PATH_ABRIR","arquivo","cD_BPM_ARQUIVO_PATRIMONIAL","dS_BPM_FILENAME_ARQUIVO_PATRIMONIAL","ListagemDeInconsistenciaModalComponent","modalService","uploadService","arquivos","isCollapsed","isCollapsedFile","isCollapsedSanatoria","getByEv","arquivoEv","gerarFormCautela","formCautela","uploadGetById","listarEvidenciaAvulsa","getBensById","mov_getEvSanatoria","evidenciaAvulsa","NaN","fL_BPM_ATIVO","mov_getEvAvulso","mov_getJuntasEv","dataArray","upload_getById","listArquivo","dS_BPM_TEXTO_EVIDENCIA","listarBensById","cadastro","getAuto","upload_tratamento","uploadReq","mov_cancelIncon","mov_Incon_Alt_Gestor","cadastrarEvidenciaAvulsa","ListagemDeInconsistenciaComponent","pageService","pagina","keywordMatUser","keywordMatGestor","filtroGestor","filtroUser","setPage","listarGestor","atualizar","getGestor","dataGestor","mov_getInconGetAll","getPager","pesquisar","modalRef","componentInstance","selectMatGestor","selectMatUser","ListaDeInconsistenciaComponent","TelaInconsistenciasGestorModalComponent","mov_confirmInGestor","TelaDeInconsistenciasGestorComponent","InconsistenciaGestorComponent","PermissaoService","SIGLA","MATRICULA","TelaDeInconsistenciaUserModalComponent","permissaoService","criar","getBensAll","mov_getEv","getBy_SiglaMatricula","permissao","listarMatById","mov_confirmInconOrig","upload_abrir","selectMeusBens","TelaDeInconsistenciasUsuarioComponent","mov_getInconOrigAll","abreEdicao","RelatorioBensComponent","keywordMatricula","keywordLotacao","keywordUnidadeIncon","inicio","fim","lot","matricula","localizar","dS_BPM_SALA","cD_CDU_MATRICULA_USUARIO_CAUTELA","localizar_incon","listarLot","gerarFormBens","gerarFormIncon","cD_LOTACAO","form_incon","iD_LOTACAO","listarBensApenas","localizacao_incon","users","getLot","lotacao","dS_LOTACAO","dS_SIGLA","getRelatorioBens","mov_getRelatorio","relatorioIncon","mov_incon_getRelatorio","RelatorioComponent","HistoricoBensModalComponent","getHistDetalhar","mov_getHistDetalhar","HistoricoBensComponent","keywordBens","DS_PERFIL_ACESSO","bens","mov_getAll","mov_listarHistorico","selectBem","HistoricoComponent","TelaDeRecebimentoModalComponent","insert_nao_receber","TelaDeRecebimentoComponent","MovGetByIdDest","mov_listarPageDestino","mov_destino","tipo_mov_getAll","insert_receber","TelaDeReceberComponent","TelaDeAprovGestorModalComponent","insert_reprovar","TelaDeAprovGestorComponent","MovGetByIdGestor","mov_listarPageGestor","mov_gestor","insert_aprovar","TelaAprovarGestorComponent","LoginComponent","formBuilder","anoAtual","dS_LOGIN_USUARIO","dS_SENHA_USUARIO","login","SolicitarBensComponent","HomeComponent","descricao","TipoDeBemComponent","TipoDeBem","TipoDeBemService","tipoDeBem","cD_BPM_TIPO_BEM_PATRIMONIAL","nR_BPM_TIPO_BEM_PATRIMONIAL","CurrencyMaskInputMode","CURRENCY_MASK_CONFIG","InputManager","htmlInputElement","setSelectionRange","createTextRange","textRange","collapse","moveEnd","moveStart","newRawValue","oldLength","selectionStart","rawValue","setCursorAt","haventReachedMaxLength","inputSelection","selectionEnd","haveNumberSelected","startWithZero","selection","createRange","lenght","startRange","moveToBookmark","getBookmark","endRange","compareEndPoints","_storedRawValue","InputService","SINGLE_DIGIT_REGEX","ONLY_NUMBERS_REGEX","PER_AR_NUMBER","inputManager","initialize","decimal","precision","inputMode","keyChar","isDecimalChar","rawValueStart","rawValueEnd","inDecimalPortion","NATURAL","nextSelectionStart","thousands","updateFieldValue","applyMask","isNumber","disablePadAndTrim","allowNegative","onlyNumbers","padOrTrimPrecision","integerPart","integerValue","decimalPart","decimalValue","isNegative","isNullOrUndefined","repeat","decimalIndex","decimalPortion","actualPrecision","isNullable","re","suffixStart","shiftSelection","insertChars","isCursorInDecimals","isCursorImmediatelyAfterDecimalPoint","replacedDecimalCount","selectionFromEnd","updateValueAndCursor","nullable","canInputMoreNumbers","storedRawValue","clearMask","InputHandler","inputService","onModelChange","rawValueLength","storedRawValueLength","removeNumber","handleKeypressImpl","charCode","prefixLength","suffixLength","clearValue","changeToPositive","changeToNegative","addNumber","callbackFunction","onModelTouched","delayMillis","CURRENCYMASKDIRECTIVE_VALUE_ACCESSOR","CurrencyMaskDirective","currencyMaskConfig","keyValueDiffers","optionsTemplate","align","allowZero","FINANCIAL","keyValueDiffer","textAlign","inputHandler","getOnModelTouched","isChromeAndroid","isReadOnly","handleCut","handleInput","handleKeydown","handleKeypress","handlePaste","setOnModelChange","setOnModelTouched","handleBlur","handleDrop","NgxCurrencyModule","TipoDeBensModalComponent","tipoDeBemService","carregaTipoBem","listarTipoBensById","cD_BPM_CLASSE_TIPO_BEM","cD_BPM_TUC_TIPO_BEM","cD_BPM_AT1_TIPO_BEM","dS_BPM_DESCRICAO_TIPO_BEM","dS_BPM_DENOMINACAO_CLASSE_TIPO_BEM","vL_BPM_ALIQUOTA_DEPRECIACAO","TipoDeBensComponent","myDate","listarTipoDeBensAll","listarPage","CadastroBem","CadastroBensModalComponent","datePipe","keyword","keywordTipo","userPerm","listarNomes","OnFileUpload","getAcessoPermissao","dt","dataAtual","getCADUInsertBem","clearValidators","clearFile","indexOfelement","remov","nR_BPM_IMOBILIZADO_TI","vL_BPM_VALOR_AQUISICAO","dS_BPM_NUMERO_SERIE","dS_BPM_OUTROS","dS_BPM_MARCA","dS_BPM_MODELO","dS_BPM_PLACA","nR_BPM_NUMERO_CONTRATO","dT_BPM_DATA_NOTA_FISCAL","nR_BPM_NUMERO_NOTA_FISCAL","cD_CDU_MATRICULA_AUTOR","retorno","CadastroBensComponent","DisabledButton","listarBensAll","uploadPlanilha","percentual","CadastrarBensComponent","BemFuncionarioComponent","BensFuncionariosComponent","SolicitacaoBens","SolicitacaoBensModalComponent","createForm","listarMeusBensById","cD_BPM_NR_BEM_PATRIMONIAL","cD_CDU_MATRICULA_SOLICITACAO","fL_ATIVO","fL_DELETADO","insertSolicitacao","SolicitacaoBensComponent","listarMovAll","listarTipoMovAll","mov_listarPage","mov_delete","LocalizarBensComponent","Localizacao","MunicipioService","uf","LocalizacaoBensModalComponent","municipio","carregaLocalizacao","getUfOrigem","getUf","success","arrayUf","C","sigla","ufOrigem","getMunicipioOrigem","getMunicipios","municipiosOrigem","dS_BPM_UNIDADE","dS_BPM_MUNICIPIO_UNIDADE","dS_BPM_ENDERECO_UNIDADE","localizacaoById","selectMun","LocalizacaoBensComponent","MeusBensModalComponent","vL_BPM_DEPRECIACAO_BEM","MeusBensComponent","cadastroBensService","getMeusBens","abreSolicitacao","MeuBemComponent","InconsistenciaUsuarioComponent","GrupoCautelaComponent","GrupoService","PATH_BENS_GET_ALL","PATH_MOV_ALTERA_CAUTELA","CautelaGruposComponent","grupoService","listarBensPage","RecebimentoGrupoComponent","GrupoRecebimentoComponent","listarMovPage","AlterarCautelaGrupoComponent","GrupoAlterarCautelaComponent","insertAlterarCautelaGrupo","AppRoutingModule","forRoot","SideMenuService","miniMenu","navToggled","subNavToggled","menuItems","carregaPermissoes","menu","permissoes","perm","FL_FUNCIONALIDADE_ATIVO","DS_FUNCIONALIDADE","DS_LINK","DS_IMAGEM","elementHtml","elementIcon","SidebarComponent","subMenuService","ambiente","routeActive","NavbarComponent","sideMenuService","usuarioLogado","FooterComponent","AppComponent","cssPanel","showButton","animationsDisabled","isLogado","cssLogado","NEW_CONFIG","INITIAL_CONFIG","initialConfig","thousandSeparator","decimalMarker","clearIfNotMatch","showTemplate","showMaskTyped","placeHolderCharacter","dropSpecialCharacters","hiddenInput","shownMaskExpression","separatorLimit","allowNegativeNumbers","validation","specialCharacters","leadZeroDateTime","patterns","X","A","S","M","H","MaskApplierService","maskExpression","actualValue","_formatWithSeparators","thousandSeparatorChar","decimalChar","rgx","percentage","getPrecision","checkAndRemoveSuffix","checkInputPrecision","precisionRegEx","_charToRegExpExpression","precisionMatch","_shift","maskSpecialCharacters","maskAvailablePatterns","maskAndPattern","customPattern","justPasted","backspaced","backspaceShift","stepBack","inputArray","ipError","cpfCnpjError","_stripToDecimal","thousandSeperatorCharEscaped","decimalMarkerEscaped","invalidChars","invalidCharRegexp","strForSep","commaShift","shiftStep","inputSymbol","_checkSymbolMask","_shiftStep","daysCount","monthsCount","withoutDays","day1monthInput","day2monthInput","day1monthPaste","day2monthPaste","_findSpecialChar","newPosition","actualShift","onlySpecial","maskSymbol","charsToEscape","inputLength","NgxMaskModule","configValue","_configFactory","initConfig","commonjsGlobal","KeyboardEvent","_eventType","customCurrencyMaskConfig","maskConfig","AppModule","webpackEmptyAsyncContext","SimpleInnerSubscriber","SimpleOuterSubscriber"],"mappings":"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","file":"main.2337d09d89b8e6eb45f0.js","sourcesContent":["import { isArray } from './isArray';\nexport function isNumeric(val) {\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n//# sourceMappingURL=isNumeric.js.map","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function timer(dueTime = 0, periodOrScheduler, scheduler) {\n let period = -1;\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n }\n else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n return new Observable(subscriber => {\n const due = isNumeric(dueTime)\n ? dueTime\n : (+dueTime - scheduler.now());\n return scheduler.schedule(dispatch, due, {\n index: 0, period, subscriber\n });\n });\n}\nfunction dispatch(state) {\n const { index, period, subscriber } = state;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n this.schedule(state, period);\n}\n//# sourceMappingURL=timer.js.map","import { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function race(...observables) {\n if (observables.length === 1) {\n if (isArray(observables[0])) {\n observables = observables[0];\n }\n else {\n return observables[0];\n }\n }\n return fromArray(observables, undefined).lift(new RaceOperator());\n}\nexport class RaceOperator {\n call(subscriber, source) {\n return source.subscribe(new RaceSubscriber(subscriber));\n }\n}\nexport class RaceSubscriber extends OuterSubscriber {\n constructor(destination) {\n super(destination);\n this.hasFirst = false;\n this.observables = [];\n this.subscriptions = [];\n }\n _next(observable) {\n this.observables.push(observable);\n }\n _complete() {\n const observables = this.observables;\n const len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n for (let i = 0; i < len && !this.hasFirst; i++) {\n const observable = observables[i];\n const subscription = subscribeToResult(this, observable, undefined, i);\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n }\n notifyNext(_outerValue, innerValue, outerIndex) {\n if (!this.hasFirst) {\n this.hasFirst = true;\n for (let i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n let subscription = this.subscriptions[i];\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n this.subscriptions = null;\n }\n this.destination.next(innerValue);\n }\n}\n//# sourceMappingURL=race.js.map","import { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function zip(...observables) {\n const resultSelector = observables[observables.length - 1];\n if (typeof resultSelector === 'function') {\n observables.pop();\n }\n return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nexport class ZipOperator {\n constructor(resultSelector) {\n this.resultSelector = resultSelector;\n }\n call(subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n }\n}\nexport class ZipSubscriber extends Subscriber {\n constructor(destination, resultSelector, values = Object.create(null)) {\n super(destination);\n this.resultSelector = resultSelector;\n this.iterators = [];\n this.active = 0;\n this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : undefined;\n }\n _next(value) {\n const iterators = this.iterators;\n if (isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n }\n else if (typeof value[Symbol_iterator] === 'function') {\n iterators.push(new StaticIterator(value[Symbol_iterator]()));\n }\n else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n }\n _complete() {\n const iterators = this.iterators;\n const len = iterators.length;\n this.unsubscribe();\n if (len === 0) {\n this.destination.complete();\n return;\n }\n this.active = len;\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n const destination = this.destination;\n destination.add(iterator.subscribe());\n }\n else {\n this.active--;\n }\n }\n }\n notifyInactive() {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n }\n checkIterators() {\n const iterators = this.iterators;\n const len = iterators.length;\n const destination = this.destination;\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n let shouldComplete = false;\n const args = [];\n for (let i = 0; i < len; i++) {\n let iterator = iterators[i];\n let result = iterator.next();\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n if (result.done) {\n destination.complete();\n return;\n }\n args.push(result.value);\n }\n if (this.resultSelector) {\n this._tryresultSelector(args);\n }\n else {\n destination.next(args);\n }\n if (shouldComplete) {\n destination.complete();\n }\n }\n _tryresultSelector(args) {\n let result;\n try {\n result = this.resultSelector.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\nclass StaticIterator {\n constructor(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n hasValue() {\n return true;\n }\n next() {\n const result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n }\n hasCompleted() {\n const nextResult = this.nextResult;\n return Boolean(nextResult && nextResult.done);\n }\n}\nclass StaticArrayIterator {\n constructor(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n [Symbol_iterator]() {\n return this;\n }\n next(value) {\n const i = this.index++;\n const array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n }\n hasValue() {\n return this.array.length > this.index;\n }\n hasCompleted() {\n return this.array.length === this.index;\n }\n}\nclass ZipBufferIterator extends SimpleOuterSubscriber {\n constructor(destination, parent, observable) {\n super(destination);\n this.parent = parent;\n this.observable = observable;\n this.stillUnsubscribed = true;\n this.buffer = [];\n this.isComplete = false;\n }\n [Symbol_iterator]() {\n return this;\n }\n next() {\n const buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n }\n else {\n return { value: buffer.shift(), done: false };\n }\n }\n hasValue() {\n return this.buffer.length > 0;\n }\n hasCompleted() {\n return this.buffer.length === 0 && this.isComplete;\n }\n notifyComplete() {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n }\n else {\n this.destination.complete();\n }\n }\n notifyNext(innerValue) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n }\n subscribe() {\n return innerSubscribe(this.observable, new SimpleInnerSubscriber(this));\n }\n}\n//# sourceMappingURL=zip.js.map","import { innerSubscribe, SimpleInnerSubscriber, SimpleOuterSubscriber } from '../innerSubscribe';\nexport function takeUntil(notifier) {\n return (source) => source.lift(new TakeUntilOperator(notifier));\n}\nclass TakeUntilOperator {\n constructor(notifier) {\n this.notifier = notifier;\n }\n call(subscriber, source) {\n const takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n const notifierSubscription = innerSubscribe(this.notifier, new SimpleInnerSubscriber(takeUntilSubscriber));\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n }\n}\nclass TakeUntilSubscriber extends SimpleOuterSubscriber {\n constructor(destination) {\n super(destination);\n this.seenValue = false;\n }\n notifyNext() {\n this.seenValue = true;\n this.complete();\n }\n notifyComplete() {\n }\n}\n//# sourceMappingURL=takeUntil.js.map","import { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom(...args) {\n return (source) => {\n let project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n const observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nclass WithLatestFromOperator {\n constructor(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n call(subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n }\n}\nclass WithLatestFromSubscriber extends OuterSubscriber {\n constructor(destination, observables, project) {\n super(destination);\n this.observables = observables;\n this.project = project;\n this.toRespond = [];\n const len = observables.length;\n this.values = new Array(len);\n for (let i = 0; i < len; i++) {\n this.toRespond.push(i);\n }\n for (let i = 0; i < len; i++) {\n let observable = observables[i];\n this.add(subscribeToResult(this, observable, undefined, i));\n }\n }\n notifyNext(_outerValue, innerValue, outerIndex) {\n this.values[outerIndex] = innerValue;\n const toRespond = this.toRespond;\n if (toRespond.length > 0) {\n const found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n }\n notifyComplete() {\n }\n _next(value) {\n if (this.toRespond.length === 0) {\n const args = [value, ...this.values];\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n }\n _tryProject(args) {\n let result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n//# sourceMappingURL=withLatestFrom.js.map","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);\n ɵngcc0.ɵɵelementStart(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 ɵ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\");\n ɵngcc0.ɵɵelementStart(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 ctx_r1.close(); });\n ɵngcc0.ɵɵelementStart(1, \"span\", 2);\n ɵngcc0.ɵɵtext(2, \"\\u00D7\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n} }\nconst _c5 = [\"*\"];\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() { ɵngcc0.ɵɵrestoreView(_r6); const slide_r4 = ctx.$implicit; const ctx_r5 = ɵngcc0.ɵɵnextContext(); ctx_r5.focus(); return 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);\n ɵngcc0.ɵɵelementStart(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 ctx_r11.arrowLeft(); });\n ɵngcc0.ɵɵelement(1, \"span\", 12);\n ɵngcc0.ɵɵelementStart(2, \"span\", 8);\n ɵngcc0.ɵɵi18n(3, 13);\n ɵngcc0.ɵɵelementEnd();\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 ctx_r13.arrowRight(); });\n ɵngcc0.ɵɵelement(1, \"span\", 15);\n ɵngcc0.ɵɵelementStart(2, \"span\", 8);\n ɵngcc0.ɵɵi18n(3, 16);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n} }\nconst _c12 = [\"defaultDayTemplate\"];\nconst _c13 = [\"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 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 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) { ɵngcc0.ɵɵrestoreView(_r15); const day_r10 = ctx.$implicit; const ctx_r14 = ɵngcc0.ɵɵnextContext(3); ctx_r14.doSelect(day_r10); return $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 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 _c22 = [\"ngbDatepickerDayView\", \"\"];\nconst _c23 = [\"month\"];\nconst _c24 = [\"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 _c33 = [\"dialog\"];\nconst _c34 = [\"ngbNavOutlet\", \"\"];\nfunction NgbNavOutlet_ng_template_0_div_0_ng_template_1_Template(rf, ctx) { }\nconst _c35 = 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, _c35, 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 _c44 = 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, _c44, page_r22));\n} }\nfunction NgbPagination_ng_template_12_li_0_a_2_ng_template_1_Template(rf, ctx) { }\nconst _c45 = 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 $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, _c45, 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 _c48 = 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);\n ɵngcc0.ɵɵelementStart(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 $event.preventDefault(); });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_15_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd();\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, _c48, ctx_r14.previousDisabled(), ctx_r14.page));\n} }\nfunction NgbPagination_li_16_ng_template_2_Template(rf, ctx) { }\nconst _c51 = 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);\n ɵngcc0.ɵɵelementStart(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 $event.preventDefault(); });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_16_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd();\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, _c51, 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);\n ɵngcc0.ɵɵelementStart(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 $event.preventDefault(); });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_18_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd();\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, _c48, 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);\n ɵngcc0.ɵɵelementStart(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 $event.preventDefault(); });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_19_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n ɵngcc0.ɵɵelementEnd();\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, _c48, ctx_r18.nextDisabled(), ctx_r18.page));\n} }\nconst _c56 = 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() { ɵngcc0.ɵɵrestoreView(_r7); const index_r4 = ctx.index; const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ctx_r6.enter(index_r4 + 1); })(\"click\", function NgbRating_ng_template_2_Template_span_click_2_listener() { ɵngcc0.ɵɵrestoreView(_r7); const index_r4 = ctx.index; const ctx_r8 = ɵngcc0.ɵɵnextContext(); return 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 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 ɵ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 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 ɵ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 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 ɵ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 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 ɵ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 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 ɵ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 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 ɵ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 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 ctx_r24.handleBlur(); })(\"input\", function NgbTimepicker_div_13_Template_input_input_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r25 = ɵngcc0.ɵɵnextContext(); return 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 $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 $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);\n ɵngcc0.ɵɵelementStart(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 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 ɵ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 ctx_r4.hide(); });\n ɵngcc0.ɵɵelementStart(3, \"span\", 7);\n ɵngcc0.ɵɵtext(4, \"\\u00D7\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\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 _c89 = 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() { ɵngcc0.ɵɵrestoreView(_r10); const idx_r7 = ctx.index; const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ctx_r9.markActive(idx_r7); })(\"click\", function NgbTypeaheadWindow_ng_template_2_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r10); const result_r6 = ctx.$implicit; const ctx_r11 = ɵngcc0.ɵɵnextContext(); return 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, _c89, 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/*@__PURE__*/ (function () { ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbPanelHeader, selectors: [[\"ng-template\", \"ngbPanelHeader\", \"\"]] });\r\nNgbPanelHeader.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbPanelTitle, selectors: [[\"ng-template\", \"ngbPanelTitle\", \"\"]] });\r\nNgbPanelTitle.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbPanelContent, selectors: [[\"ng-template\", \"ngbPanelContent\", \"\"]] });\r\nNgbPanelContent.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbPanel, selectors: [[\"ngb-panel\"]], contentQueries: function NgbPanel_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanelTitle, false);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanelHeader, false);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanelContent, false);\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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineComponent({ type: NgbAccordion, selectors: [[\"ngb-accordion\"]], contentQueries: function NgbAccordion_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanel, false);\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 } }, directives: function () { return [NgbPanelHeader, ɵngcc1.NgForOf, NgbPanelToggle, ɵngcc1.NgTemplateOutlet, ɵngcc1.NgIf]; }, 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/*@__PURE__*/ (function () { ɵ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 \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\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 = ɵ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/*@__PURE__*/ (function () { ɵ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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbAccordionModule });\nNgbAccordionModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbAccordionModule_Factory(t) { return new (t || NgbAccordionModule)(); }, imports: [[CommonModule]] });\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/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbAccordionModule, [{\n type: NgModule,\n args: [{ declarations: NGB_ACCORDION_DIRECTIVES, exports: NGB_ACCORDION_DIRECTIVES, imports: [CommonModule] }]\n }], null, null); })();\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/*@__PURE__*/ (function () { ɵ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 = ɵ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: _c5, decls: 2, vars: 1, consts: function () { let i18n_1; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\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 } let i18n_3; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_alert_close$$FESM2015_NG_BOOTSTRAP_JS__4 = goog.getMsg(\"Close\");\n i18n_3 = MSG_EXTERNAL_ngb_alert_close$$FESM2015_NG_BOOTSTRAP_JS__4;\n }\n else {\n i18n_3 = $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_3, 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 } }, directives: [ɵ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/*@__PURE__*/ (function () { ɵ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: { 'role': 'alert', 'class': 'alert show', '[class.fade]': 'animation', '[class.alert-dismissible]': 'dismissible' },\n template: `\r\n \r\n \r\n `,\n styles: [\"ngb-alert{display:block}\"]\n }]\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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbAlertModule });\nNgbAlertModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbAlertModule_Factory(t) { return new (t || NgbAlertModule)(); }, imports: [[CommonModule]] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbAlertModule, { declarations: function () { return [NgbAlert]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbAlert]; } }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbAlertModule, [{\n type: NgModule,\n args: [{ declarations: [NgbAlert], exports: [NgbAlert], imports: [CommonModule], entryComponents: [NgbAlert] }]\n }], null, null); })();\n\nclass NgbButtonLabel {\r\n}\nNgbButtonLabel.ɵfac = function NgbButtonLabel_Factory(t) { return new (t || NgbButtonLabel)(); };\nNgbButtonLabel.ɵdir = ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵ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/*@__PURE__*/ (function () { ɵ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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbButtonsModule });\nNgbButtonsModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbButtonsModule_Factory(t) { return new (t || NgbButtonsModule)(); } });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbButtonsModule, { declarations: [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio], exports: [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbButtonsModule, [{\n type: NgModule,\n args: [{ declarations: NGB_BUTTON_DIRECTIVES, exports: NGB_BUTTON_DIRECTIVES }]\n }], null, null); })();\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/*@__PURE__*/ (function () { ɵ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 = ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineComponent({ type: NgbCarousel, selectors: [[\"ngb-carousel\"]], contentQueries: function NgbCarousel_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbSlide, false);\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_6; 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__7 = goog.getMsg(\" Slide {$interpolation} of {$interpolation_1} \", { \"interpolation\": \"\\uFFFD0\\uFFFD\", \"interpolation_1\": \"\\uFFFD1\\uFFFD\" });\n i18n_6 = MSG_EXTERNAL_ngb_carousel_slide_number$$FESM2015_NG_BOOTSTRAP_JS__7;\n }\n else {\n i18n_6 = $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_8; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_carousel_previous$$FESM2015_NG_BOOTSTRAP_JS__9 = goog.getMsg(\"Previous\");\n i18n_8 = MSG_EXTERNAL_ngb_carousel_previous$$FESM2015_NG_BOOTSTRAP_JS__9;\n }\n else {\n i18n_8 = $localize `:@@ngb.carousel.previous␟680d5c75b7fd8d37961083608b9fcdc4167b4c43␟4452427314943113135:Previous`;\n } let i18n_10; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_carousel_next$$FESM2015_NG_BOOTSTRAP_JS__11 = goog.getMsg(\"Next\");\n i18n_10 = MSG_EXTERNAL_ngb_carousel_next$$FESM2015_NG_BOOTSTRAP_JS__11;\n }\n else {\n i18n_10 = $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_6, [3, \"ngTemplateOutlet\"], [\"role\", \"button\", 1, \"carousel-control-prev\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"carousel-control-prev-icon\"], i18n_8, [\"role\", \"button\", 1, \"carousel-control-next\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"carousel-control-next-icon\"], i18n_10]; }, 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 } }, directives: [ɵ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/*@__PURE__*/ (function () { ɵ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
    \r\n
  1. \r\n
\r\n
\r\n
\r\n \r\n Slide {{i + 1}} of {{c}}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Previous\r\n \r\n \r\n \r\n Next\r\n \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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbCarouselModule });\nNgbCarouselModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbCarouselModule_Factory(t) { return new (t || NgbCarouselModule)(); }, imports: [[CommonModule]] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbCarouselModule, { declarations: function () { return [NgbCarousel, NgbSlide]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbCarousel, NgbSlide]; } }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbCarouselModule, [{\n type: NgModule,\n args: [{ declarations: NGB_CAROUSEL_DIRECTIVES, exports: NGB_CAROUSEL_DIRECTIVES, imports: [CommonModule] }]\n }], null, null); })();\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/*@__PURE__*/ (function () { ɵ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 = ɵ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/*@__PURE__*/ (function () { ɵ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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbCollapseModule });\nNgbCollapseModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbCollapseModule_Factory(t) { return new (t || NgbCollapseModule)(); } });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbCollapseModule, { declarations: [NgbCollapse], exports: [NgbCollapse] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbCollapseModule, [{\n type: NgModule,\n args: [{ declarations: [NgbCollapse], exports: [NgbCollapse] }]\n }], null, null); })();\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/*@__PURE__*/ (function () { ɵ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 = function NgbCalendarGregorian_Factory(t) { return ɵNgbCalendarGregorian_BaseFactory(t || NgbCalendarGregorian); };\nNgbCalendarGregorian.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarGregorian, factory: NgbCalendarGregorian.ɵfac });\nconst ɵNgbCalendarGregorian_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarGregorian);\n/*@__PURE__*/ (function () { ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineInjectable({ token: NgbDatepickerI18nDefault, factory: NgbDatepickerI18nDefault.ɵfac });\r\nNgbDatepickerI18nDefault.ctorParameters = () => [\r\n { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineInjectable({ token: NgbDatepickerService, factory: NgbDatepickerService.ɵfac });\r\nNgbDatepickerService.ctorParameters = () => [\r\n { type: NgbCalendar },\r\n { type: NgbDatepickerI18n }\r\n];\n/*@__PURE__*/ (function () { ɵ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/*@__PURE__*/ (function () { ɵ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/*@__PURE__*/ (function () { ɵ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 = function NgbDateStructAdapter_Factory(t) { return ɵNgbDateStructAdapter_BaseFactory(t || NgbDateStructAdapter); };\nNgbDateStructAdapter.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgbDateStructAdapter, factory: NgbDateStructAdapter.ɵfac });\nconst ɵNgbDateStructAdapter_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbDateStructAdapter);\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbDatepickerContent, selectors: [[\"ng-template\", \"ngbDatepickerContent\", \"\"]] });\r\nNgbDatepickerContent.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineComponent({ type: NgbDatepicker, selectors: [[\"ngb-datepicker\"]], contentQueries: function NgbDatepicker_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵstaticContentQuery(dirIndex, NgbDatepickerContent, true);\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.ɵɵstaticViewQuery(_c12, true);\n ɵngcc0.ɵɵstaticViewQuery(_c13, true);\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 } }, directives: function () { return [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, NgbDatepickerDayView, ɵngcc1.NgForOf, NgbDatepickerMonth, NgbDatepickerNavigation]; }, 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/*@__PURE__*/ (function () { ɵ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: `\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
1 && navigation === 'select')\" class=\"ngb-dp-month-name\">\r\n {{ i18n.getMonthLabel(month.firstDate) }}\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n `,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbDatepicker), multi: true }, 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 () { 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/*@__PURE__*/ (function () { ɵ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 `` 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 = ɵ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 } }, directives: [ɵngcc1.NgIf, ɵngcc1.NgForOf, ɵ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/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbDatepickerMonth, [{\n type: Component,\n args: [{\n selector: 'ngb-datepicker-month',\n host: { 'role': 'grid', '(keydown)': 'onKeyDown($event)' },\n encapsulation: ViewEncapsulation.None,\n template: `\r\n
0\" class=\"ngb-dp-week ngb-dp-weekdays\" role=\"row\">\r\n
{{ i18n.getWeekLabel() }}
\r\n
{{ weekday }}
\r\n
\r\n \r\n
\r\n
{{ i18n.getWeekNumerals(week.number) }}
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\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 () { 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 = ɵ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_14; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\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 const MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_17 = goog.getMsg(\"Previous month\");\n i18n_16 = MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_17;\n }\n else {\n i18n_16 = $localize `:@@ngb.datepicker.previous-month␟c3b08b07b5ab98e7cdcf18df39355690ab7d3884␟8586908745456864217:Previous month`;\n } let i18n_18; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\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 } let i18n_20; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_21 = goog.getMsg(\"Next month\");\n i18n_20 = MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_21;\n }\n else {\n i18n_20 = $localize `:@@ngb.datepicker.next-month␟4bd046985cfe13040d5ef0cd881edce0968a111a␟3628374603023447227:Next month`;\n } return [[1, \"ngb-dp-arrow\"], [\"type\", \"button\", \"aria-label\", i18n_14, \"title\", i18n_16, 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_18, \"title\", i18n_20, 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);\n ɵngcc0.ɵɵelementStart(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.ɵɵ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, undefined, 4);\n ɵngcc0.ɵɵelementStart(5, \"div\", 5);\n ɵngcc0.ɵɵelementStart(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 ɵ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 } }, directives: function () { return [ɵngcc1.NgIf, NgbDatepickerNavigationSelect, ɵngcc1.NgForOf]; }, 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/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbDatepickerNavigation, [{\n type: Component,\n args: [{\n selector: 'ngb-datepicker-navigation',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n \r\n
0\">
\r\n
\r\n {{ i18n.getMonthLabel(month.firstDate) }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\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 () { 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/*@__PURE__*/ (function () { ɵ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 = function NgbDateISOParserFormatter_Factory(t) { return ɵNgbDateISOParserFormatter_BaseFactory(t || NgbDateISOParserFormatter); };\nNgbDateISOParserFormatter.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgbDateISOParserFormatter, factory: NgbDateISOParserFormatter.ɵfac });\nconst ɵNgbDateISOParserFormatter_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbDateISOParserFormatter);\n/*@__PURE__*/ (function () { ɵ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 = function NgbInputDatepickerConfig_Factory(t) { return ɵNgbInputDatepickerConfig_BaseFactory(t || NgbInputDatepickerConfig); };\r\nNgbInputDatepickerConfig.ɵprov = ɵɵdefineInjectable({ factory: function NgbInputDatepickerConfig_Factory() { return new NgbInputDatepickerConfig(); }, token: NgbInputDatepickerConfig, providedIn: \"root\" });\nconst ɵNgbInputDatepickerConfig_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbInputDatepickerConfig);\n/*@__PURE__*/ (function () { ɵ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 = ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵ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: _c22, 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/*@__PURE__*/ (function () { ɵ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 () { 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 = ɵngcc0.ɵɵdefineComponent({ type: NgbDatepickerNavigationSelect, selectors: [[\"ngb-datepicker-navigation-select\"]], viewQuery: function NgbDatepickerNavigationSelect_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵstaticViewQuery(_c23, true, ElementRef);\n ɵngcc0.ɵɵstaticViewQuery(_c24, true, 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_25; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\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 const MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_28 = goog.getMsg(\"Select month\");\n i18n_27 = MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_28;\n }\n else {\n i18n_27 = $localize `:@@ngb.datepicker.select-month␟1dbc84807f35518112f62e5775d1daebd3d8462b␟2253869508135064750:Select month`;\n } let i18n_29; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\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 } let i18n_31; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_32 = goog.getMsg(\"Select year\");\n i18n_31 = MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_32;\n }\n else {\n i18n_31 = $localize `:@@ngb.datepicker.select-year␟8ceb09d002bf0c5d1cac171dfbffe1805d2b3962␟8852264961585484321:Select year`;\n } return [[\"aria-label\", i18n_25, \"title\", i18n_27, 1, \"custom-select\", 3, \"disabled\", \"change\"], [\"month\", \"\"], [3, \"value\", 4, \"ngFor\", \"ngForOf\"], [\"aria-label\", i18n_29, \"title\", i18n_31, 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 } }, directives: [ɵngcc1.NgForOf, ɵngcc2.NgSelectOption, ɵngcc2.ɵangular_packages_forms_forms_x], 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/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbDatepickerNavigationSelect, [{\n type: Component,\n args: [{\n selector: 'ngb-datepicker-navigation-select',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\r\n \r\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 () { 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 = function NgbCalendarHijri_Factory(t) { return ɵNgbCalendarHijri_BaseFactory(t || NgbCalendarHijri); };\nNgbCalendarHijri.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarHijri, factory: NgbCalendarHijri.ɵfac });\nconst ɵNgbCalendarHijri_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarHijri);\n/*@__PURE__*/ (function () { ɵ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 = function NgbCalendarIslamicCivil_Factory(t) { return ɵNgbCalendarIslamicCivil_BaseFactory(t || NgbCalendarIslamicCivil); };\nNgbCalendarIslamicCivil.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarIslamicCivil, factory: NgbCalendarIslamicCivil.ɵfac });\nconst ɵNgbCalendarIslamicCivil_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarIslamicCivil);\n/*@__PURE__*/ (function () { ɵ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 = function NgbCalendarIslamicUmalqura_Factory(t) { return ɵNgbCalendarIslamicUmalqura_BaseFactory(t || NgbCalendarIslamicUmalqura); };\nNgbCalendarIslamicUmalqura.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarIslamicUmalqura, factory: NgbCalendarIslamicUmalqura.ɵfac });\nconst ɵNgbCalendarIslamicUmalqura_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarIslamicUmalqura);\n/*@__PURE__*/ (function () { ɵ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 = function NgbCalendarPersian_Factory(t) { return ɵNgbCalendarPersian_BaseFactory(t || NgbCalendarPersian); };\nNgbCalendarPersian.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarPersian, factory: NgbCalendarPersian.ɵfac });\nconst ɵNgbCalendarPersian_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarPersian);\n/*@__PURE__*/ (function () { ɵ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 = function NgbCalendarHebrew_Factory(t) { return ɵNgbCalendarHebrew_BaseFactory(t || NgbCalendarHebrew); };\nNgbCalendarHebrew.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarHebrew, factory: NgbCalendarHebrew.ɵfac });\nconst ɵNgbCalendarHebrew_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarHebrew);\n/*@__PURE__*/ (function () { ɵ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 = function NgbDatepickerI18nHebrew_Factory(t) { return ɵNgbDatepickerI18nHebrew_BaseFactory(t || NgbDatepickerI18nHebrew); };\nNgbDatepickerI18nHebrew.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgbDatepickerI18nHebrew, factory: NgbDatepickerI18nHebrew.ɵfac });\nconst ɵNgbDatepickerI18nHebrew_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbDatepickerI18nHebrew);\n/*@__PURE__*/ (function () { ɵ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 = function NgbCalendarBuddhist_Factory(t) { return ɵNgbCalendarBuddhist_BaseFactory(t || NgbCalendarBuddhist); };\nNgbCalendarBuddhist.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarBuddhist, factory: NgbCalendarBuddhist.ɵfac });\nconst ɵNgbCalendarBuddhist_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarBuddhist);\n/*@__PURE__*/ (function () { ɵ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 = function NgbDateNativeAdapter_Factory(t) { return ɵNgbDateNativeAdapter_BaseFactory(t || NgbDateNativeAdapter); };\nNgbDateNativeAdapter.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgbDateNativeAdapter, factory: NgbDateNativeAdapter.ɵfac });\nconst ɵNgbDateNativeAdapter_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbDateNativeAdapter);\n/*@__PURE__*/ (function () { ɵ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 = function NgbDateNativeUTCAdapter_Factory(t) { return ɵNgbDateNativeUTCAdapter_BaseFactory(t || NgbDateNativeUTCAdapter); };\nNgbDateNativeUTCAdapter.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgbDateNativeUTCAdapter, factory: NgbDateNativeUTCAdapter.ɵfac });\nconst ɵNgbDateNativeUTCAdapter_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbDateNativeUTCAdapter);\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbDateNativeUTCAdapter, [{\n type: Injectable\n }], null, null); })();\n\nclass NgbDatepickerModule {\r\n}\nNgbDatepickerModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbDatepickerModule });\nNgbDatepickerModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbDatepickerModule_Factory(t) { return new (t || NgbDatepickerModule)(); }, imports: [[CommonModule, FormsModule]] });\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/*@__PURE__*/ (function () { ɵ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\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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbNavbar, selectors: [[\"\", 8, \"navbar\"]] });\n/*@__PURE__*/ (function () { ɵ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 = ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbDropdownMenu, selectors: [[\"\", \"ngbDropdownMenu\", \"\"]], contentQueries: function NgbDropdownMenu_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDropdownItem, false);\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/*@__PURE__*/ (function () { ɵ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 = ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbDropdown, selectors: [[\"\", \"ngbDropdown\", \"\"]], contentQueries: function NgbDropdown_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDropdownMenu, true);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDropdownAnchor, true);\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/*@__PURE__*/ (function () { ɵ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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbDropdownModule });\nNgbDropdownModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbDropdownModule_Factory(t) { return new (t || NgbDropdownModule)(); } });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbDropdownModule, { declarations: [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar], exports: [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbDropdownModule, [{\n type: NgModule,\n args: [{ declarations: NGB_DROPDOWN_DIRECTIVES, exports: NGB_DROPDOWN_DIRECTIVES }]\n }], null, null); })();\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/*@__PURE__*/ (function () { ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineComponent({ type: NgbModalWindow, selectors: [[\"ngb-modal-window\"]], viewQuery: function NgbModalWindow_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵstaticViewQuery(_c33, true);\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: _c5, 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);\n ɵngcc0.ɵɵelementStart(2, \"div\", 2);\n ɵngcc0.ɵɵprojection(3);\n ɵngcc0.ɵɵelementEnd();\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/*@__PURE__*/ (function () { ɵ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: `\r\n
\r\n
\r\n
\r\n `,\n encapsulation: ViewEncapsulation.None,\n styles: [\"ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\"]\n }]\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/*@__PURE__*/ (function () { ɵ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/*@__PURE__*/ (function () { ɵ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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbModalModule });\nNgbModalModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbModalModule_Factory(t) { return new (t || NgbModalModule)(); }, providers: [NgbModal] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbModalModule, { declarations: [NgbModalBackdrop, NgbModalWindow] }); })();\n/*@__PURE__*/ (function () { ɵ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/**\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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbNavContent, selectors: [[\"ng-template\", \"ngbNavContent\", \"\"]] });\r\nNgbNavContent.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbNavItem, selectors: [[\"\", \"ngbNavItem\", \"\"]], contentQueries: function NgbNavItem_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbNavContent, false);\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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbNav, selectors: [[\"\", \"ngbNav\", \"\"]], contentQueries: function NgbNav_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbNavItem, false);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbNavLink, true);\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/*@__PURE__*/ (function () { ɵ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 = ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineComponent({ type: NgbNavOutlet, selectors: [[\"\", \"ngbNavOutlet\", \"\"]], viewQuery: function NgbNavOutlet_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(NgbNavPane, true);\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: _c34, 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 } }, directives: [ɵngcc1.NgForOf, ɵngcc1.NgIf, NgbNavPane, ɵngcc1.NgTemplateOutlet], 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/*@__PURE__*/ (function () { ɵ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 \r\n
\r\n \r\n
\r\n
\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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbNavModule });\nNgbNavModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbNavModule_Factory(t) { return new (t || NgbNavModule)(); }, imports: [[CommonModule]] });\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/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbNavModule, [{\n type: NgModule,\n args: [{ declarations: NGB_NAV_DIRECTIVES, exports: NGB_NAV_DIRECTIVES, imports: [CommonModule] }]\n }], null, null); })();\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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationEllipsis, selectors: [[\"ng-template\", \"ngbPaginationEllipsis\", \"\"]] });\r\nNgbPaginationEllipsis.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationFirst, selectors: [[\"ng-template\", \"ngbPaginationFirst\", \"\"]] });\r\nNgbPaginationFirst.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationLast, selectors: [[\"ng-template\", \"ngbPaginationLast\", \"\"]] });\r\nNgbPaginationLast.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationNext, selectors: [[\"ng-template\", \"ngbPaginationNext\", \"\"]] });\r\nNgbPaginationNext.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationNumber, selectors: [[\"ng-template\", \"ngbPaginationNumber\", \"\"]] });\r\nNgbPaginationNumber.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationPrevious, selectors: [[\"ng-template\", \"ngbPaginationPrevious\", \"\"]] });\r\nNgbPaginationPrevious.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationPages, selectors: [[\"ng-template\", \"ngbPaginationPages\", \"\"]] });\r\nNgbPaginationPages.ctorParameters = () => [\r\n { type: TemplateRef }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineComponent({ type: NgbPagination, selectors: [[\"ngb-pagination\"]], contentQueries: function NgbPagination_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationEllipsis, true);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationFirst, true);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationLast, true);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationNext, true);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationNumber, true);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationPrevious, true);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationPages, true);\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_36; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_pagination_first$$FESM2015_NG_BOOTSTRAP_JS__37 = goog.getMsg(\"\\u00AB\\u00AB\");\n i18n_36 = MSG_EXTERNAL_ngb_pagination_first$$FESM2015_NG_BOOTSTRAP_JS__37;\n }\n else {\n i18n_36 = $localize `:@@ngb.pagination.first␟656506dfd46380956a655f919f1498d018f75ca0␟6867721956102594380:««`;\n } let i18n_38; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_pagination_previous$$FESM2015_NG_BOOTSTRAP_JS__39 = goog.getMsg(\"\\u00AB\");\n i18n_38 = MSG_EXTERNAL_ngb_pagination_previous$$FESM2015_NG_BOOTSTRAP_JS__39;\n }\n else {\n i18n_38 = $localize `:@@ngb.pagination.previous␟6e52b6ee77a4848d899dd21b591c6fd499e3aef3␟6479320895410098858:«`;\n } let i18n_40; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_pagination_next$$FESM2015_NG_BOOTSTRAP_JS__41 = goog.getMsg(\"\\u00BB\");\n i18n_40 = MSG_EXTERNAL_ngb_pagination_next$$FESM2015_NG_BOOTSTRAP_JS__41;\n }\n else {\n i18n_40 = $localize `:@@ngb.pagination.next␟ba9cbb4ff311464308a3627e4f1c3345d9fe6d7d␟5458177150283468089:»`;\n } let i18n_42; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_pagination_last$$FESM2015_NG_BOOTSTRAP_JS__43 = goog.getMsg(\"\\u00BB\\u00BB\");\n i18n_42 = MSG_EXTERNAL_ngb_pagination_last$$FESM2015_NG_BOOTSTRAP_JS__43;\n }\n else {\n i18n_42 = $localize `:@@ngb.pagination.last␟49f27a460bc97e7e00be5b37098bfa79884fc7d9␟5277020320267646988:»»`;\n } let i18n_46; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_pagination_first_aria$$FESM2015_NG_BOOTSTRAP_JS__47 = goog.getMsg(\"First\");\n i18n_46 = MSG_EXTERNAL_ngb_pagination_first_aria$$FESM2015_NG_BOOTSTRAP_JS__47;\n }\n else {\n i18n_46 = $localize `:@@ngb.pagination.first-aria␟f2f852318759c6396b5d3d17031d53817d7b38cc␟2241508602425256033:First`;\n } let i18n_49; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_pagination_previous_aria$$FESM2015_NG_BOOTSTRAP_JS__50 = goog.getMsg(\"Previous\");\n i18n_49 = MSG_EXTERNAL_ngb_pagination_previous_aria$$FESM2015_NG_BOOTSTRAP_JS__50;\n }\n else {\n i18n_49 = $localize `:@@ngb.pagination.previous-aria␟680d5c75b7fd8d37961083608b9fcdc4167b4c43␟4452427314943113135:Previous`;\n } let i18n_52; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_pagination_next_aria$$FESM2015_NG_BOOTSTRAP_JS__53 = goog.getMsg(\"Next\");\n i18n_52 = MSG_EXTERNAL_ngb_pagination_next_aria$$FESM2015_NG_BOOTSTRAP_JS__53;\n }\n else {\n i18n_52 = $localize `:@@ngb.pagination.next-aria␟f732c304c7433e5a83ffcd862c3dce709a0f4982␟3885497195825665706:Next`;\n } let i18n_54; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_pagination_last_aria$$FESM2015_NG_BOOTSTRAP_JS__55 = goog.getMsg(\"Last\");\n i18n_54 = MSG_EXTERNAL_ngb_pagination_last_aria$$FESM2015_NG_BOOTSTRAP_JS__55;\n }\n else {\n i18n_54 = $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_36, i18n_38, i18n_40, i18n_42, [\"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_46, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_49, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_52, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_54, \"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, _c56, 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 } }, directives: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, ɵngcc1.NgForOf], 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/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbPagination, [{\n type: Component,\n args: [{\n selector: 'ngb-pagination',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { 'role': 'navigation' },\n template: `\r\n ««\r\n «\r\n »\r\n »»\r\n ...\r\n \r\n {{ page }}\r\n (current)\r\n \r\n \r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n \r\n
  • \r\n
    \r\n \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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbPaginationModule });\nNgbPaginationModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbPaginationModule_Factory(t) { return new (t || NgbPaginationModule)(); }, imports: [[CommonModule]] });\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/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbPaginationModule, [{\n type: NgModule,\n args: [{ declarations: DIRECTIVES, exports: DIRECTIVES, imports: [CommonModule] }]\n }], null, null); })();\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/*@__PURE__*/ (function () { ɵ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 = ɵ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: _c5, 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 } }, directives: [ɵ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/*@__PURE__*/ (function () { ɵ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: `\r\n
    \r\n

    \r\n {{title}}\r\n \r\n

    \r\n
    `,\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, { 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 = ɵ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/*@__PURE__*/ (function () { ɵ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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbPopoverModule });\nNgbPopoverModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbPopoverModule_Factory(t) { return new (t || NgbPopoverModule)(); }, imports: [[CommonModule]] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbPopoverModule, { declarations: function () { return [NgbPopover, NgbPopoverWindow]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbPopover]; } }); })();\n/*@__PURE__*/ (function () { ɵ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/**\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/*@__PURE__*/ (function () { ɵ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 = ɵ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: _c5, decls: 3, vars: 11, consts: function () { let i18n_57; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_progressbar_value$$FESM2015_NG_BOOTSTRAP_JS__58 = goog.getMsg(\"{$interpolation}\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" });\n i18n_57 = MSG_EXTERNAL_ngb_progressbar_value$$FESM2015_NG_BOOTSTRAP_JS__58;\n }\n else {\n i18n_57 = $localize `:@@ngb.progressbar.value␟f8e9a947b9db4252c0e9905765338712f2fd032f␟3720830768741091151:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n } return [[\"role\", \"progressbar\", \"aria-valuemin\", \"0\"], [4, \"ngIf\"], i18n_57]; }, 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 } }, directives: [ɵngcc1.NgIf], pipes: [ɵ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/*@__PURE__*/ (function () { ɵ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
    \r\n {{getValue() / max | percent}}\r\n
    \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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbProgressbarModule });\nNgbProgressbarModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbProgressbarModule_Factory(t) { return new (t || NgbProgressbarModule)(); }, imports: [[CommonModule]] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbProgressbarModule, { declarations: function () { return [NgbProgressbar]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbProgressbar]; } }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbProgressbarModule, [{\n type: NgModule,\n args: [{ declarations: [NgbProgressbar], exports: [NgbProgressbar], imports: [CommonModule] }]\n }], null, null); })();\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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineComponent({ type: NgbRating, selectors: [[\"ngb-rating\"]], contentQueries: function NgbRating_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, TemplateRef, true);\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 } }, directives: [ɵ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/*@__PURE__*/ (function () { ɵ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 {{ fill === 100 ? '★' : '☆' }}\r\n \r\n ({{ index < nextRate ? '*' : ' ' }})\r\n \r\n \r\n \r\n \r\n \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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbRatingModule });\nNgbRatingModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbRatingModule_Factory(t) { return new (t || NgbRatingModule)(); }, imports: [[CommonModule]] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbRatingModule, { declarations: function () { return [NgbRating]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbRating]; } }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbRatingModule, [{\n type: NgModule,\n args: [{ declarations: [NgbRating], exports: [NgbRating], imports: [CommonModule] }]\n }], null, null); })();\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/*@__PURE__*/ (function () { ɵ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/*@__PURE__*/ (function () { ɵ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 = function NgbTimeStructAdapter_Factory(t) { return ɵNgbTimeStructAdapter_BaseFactory(t || NgbTimeStructAdapter); };\nNgbTimeStructAdapter.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgbTimeStructAdapter, factory: NgbTimeStructAdapter.ɵfac });\nconst ɵNgbTimeStructAdapter_BaseFactory = /*@__PURE__*/ ɵngcc0.ɵɵgetInheritedFactory(NgbTimeStructAdapter);\n/*@__PURE__*/ (function () { ɵ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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineInjectable({ token: NgbTimepickerI18nDefault, factory: NgbTimepickerI18nDefault.ɵfac });\r\nNgbTimepickerI18nDefault.ctorParameters = () => [\r\n { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }\r\n];\n/*@__PURE__*/ (function () { ɵ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 = ɵ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_59; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_HH$$FESM2015_NG_BOOTSTRAP_JS_60 = goog.getMsg(\"HH\");\n i18n_59 = MSG_EXTERNAL_ngb_timepicker_HH$$FESM2015_NG_BOOTSTRAP_JS_60;\n }\n else {\n i18n_59 = $localize `:@@ngb.timepicker.HH␟ce676ab1d6d98f85c836381cf100a4a91ef95a1f␟4043638465245303811:HH`;\n } let i18n_61; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_hours$$FESM2015_NG_BOOTSTRAP_JS_62 = goog.getMsg(\"Hours\");\n i18n_61 = MSG_EXTERNAL_ngb_timepicker_hours$$FESM2015_NG_BOOTSTRAP_JS_62;\n }\n else {\n i18n_61 = $localize `:@@ngb.timepicker.hours␟3bbce5fef7e1151da052a4e529453edb340e3912␟8070396816726827304:Hours`;\n } let i18n_63; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_MM$$FESM2015_NG_BOOTSTRAP_JS_64 = goog.getMsg(\"MM\");\n i18n_63 = MSG_EXTERNAL_ngb_timepicker_MM$$FESM2015_NG_BOOTSTRAP_JS_64;\n }\n else {\n i18n_63 = $localize `:@@ngb.timepicker.MM␟72c8edf6a50068a05bde70991e36b1e881f4ca54␟1647282246509919852:MM`;\n } let i18n_65; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_minutes$$FESM2015_NG_BOOTSTRAP_JS_66 = goog.getMsg(\"Minutes\");\n i18n_65 = MSG_EXTERNAL_ngb_timepicker_minutes$$FESM2015_NG_BOOTSTRAP_JS_66;\n }\n else {\n i18n_65 = $localize `:@@ngb.timepicker.minutes␟41e62daa962947c0d23ded0981975d1bddf0bf38␟5531237363767747080:Minutes`;\n } let i18n_67; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_increment_hours$$FESM2015_NG_BOOTSTRAP_JS__68 = goog.getMsg(\"Increment hours\");\n i18n_67 = MSG_EXTERNAL_ngb_timepicker_increment_hours$$FESM2015_NG_BOOTSTRAP_JS__68;\n }\n else {\n i18n_67 = $localize `:@@ngb.timepicker.increment-hours␟cb74bc1d625a6c1742f0d7d47306cf495780c218␟5939278348542933629:Increment hours`;\n } let i18n_69; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_decrement_hours$$FESM2015_NG_BOOTSTRAP_JS__70 = goog.getMsg(\"Decrement hours\");\n i18n_69 = MSG_EXTERNAL_ngb_timepicker_decrement_hours$$FESM2015_NG_BOOTSTRAP_JS__70;\n }\n else {\n i18n_69 = $localize `:@@ngb.timepicker.decrement-hours␟147c7a19429da7d999e247d22e33fee370b1691b␟3651829882940481818:Decrement hours`;\n } let i18n_71; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_increment_minutes$$FESM2015_NG_BOOTSTRAP_JS__72 = goog.getMsg(\"Increment minutes\");\n i18n_71 = MSG_EXTERNAL_ngb_timepicker_increment_minutes$$FESM2015_NG_BOOTSTRAP_JS__72;\n }\n else {\n i18n_71 = $localize `:@@ngb.timepicker.increment-minutes␟f5a4a3bc05e053f6732475d0e74875ec01c3a348␟180147720391025024:Increment minutes`;\n } let i18n_73; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_decrement_minutes$$FESM2015_NG_BOOTSTRAP_JS__74 = goog.getMsg(\"Decrement minutes\");\n i18n_73 = MSG_EXTERNAL_ngb_timepicker_decrement_minutes$$FESM2015_NG_BOOTSTRAP_JS__74;\n }\n else {\n i18n_73 = $localize `:@@ngb.timepicker.decrement-minutes␟c1a6899e529c096da5b660385d4e77fe1f7ad271␟7447789825403243588:Decrement minutes`;\n } let i18n_75; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_SS$$FESM2015_NG_BOOTSTRAP_JS__76 = goog.getMsg(\"SS\");\n i18n_75 = MSG_EXTERNAL_ngb_timepicker_SS$$FESM2015_NG_BOOTSTRAP_JS__76;\n }\n else {\n i18n_75 = $localize `:@@ngb.timepicker.SS␟ebe38d36a40a2383c5fefa9b4608ffbda08bd4a3␟3628127143071124194:SS`;\n } let i18n_77; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_seconds$$FESM2015_NG_BOOTSTRAP_JS__78 = goog.getMsg(\"Seconds\");\n i18n_77 = MSG_EXTERNAL_ngb_timepicker_seconds$$FESM2015_NG_BOOTSTRAP_JS__78;\n }\n else {\n i18n_77 = $localize `:@@ngb.timepicker.seconds␟4f2ed9e71a7c981db3e50ae2fedb28aff2ec4e6c␟8874012390997067175:Seconds`;\n } let i18n_79; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_increment_seconds$$FESM2015_NG_BOOTSTRAP_JS___80 = goog.getMsg(\"Increment seconds\");\n i18n_79 = MSG_EXTERNAL_ngb_timepicker_increment_seconds$$FESM2015_NG_BOOTSTRAP_JS___80;\n }\n else {\n i18n_79 = $localize `:@@ngb.timepicker.increment-seconds␟912322ecee7d659d04dcf494a70e22e49d334b26␟5364772110539092174:Increment seconds`;\n } let i18n_81; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_decrement_seconds$$FESM2015_NG_BOOTSTRAP_JS___82 = goog.getMsg(\"Decrement seconds\");\n i18n_81 = MSG_EXTERNAL_ngb_timepicker_decrement_seconds$$FESM2015_NG_BOOTSTRAP_JS___82;\n }\n else {\n i18n_81 = $localize `:@@ngb.timepicker.decrement-seconds␟5db47ac104294243a70eb9124fbea9d0004ddf69␟753633511487974857:Decrement seconds`;\n } let i18n_83; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_PM$$FESM2015_NG_BOOTSTRAP_JS___84 = goog.getMsg(\"{$interpolation}\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" });\n i18n_83 = MSG_EXTERNAL_ngb_timepicker_PM$$FESM2015_NG_BOOTSTRAP_JS___84;\n }\n else {\n i18n_83 = $localize `:@@ngb.timepicker.PM␟8d6e691e10306c1b34c6b26805151aaea320ef7f␟3564199131264287502:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n } let i18n_85; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_timepicker_AM$$FESM2015_NG_BOOTSTRAP_JS___86 = goog.getMsg(\"{$interpolation}\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" });\n i18n_85 = MSG_EXTERNAL_ngb_timepicker_AM$$FESM2015_NG_BOOTSTRAP_JS___86;\n }\n else {\n i18n_85 = $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_59, \"aria-label\", i18n_61, 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_63, \"aria-label\", i18n_65, 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_67, [1, \"chevron\", \"ngb-tp-chevron\", \"bottom\"], i18n_69, i18n_71, i18n_73, [1, \"ngb-tp-input-container\", \"ngb-tp-second\"], [\"type\", \"text\", \"maxlength\", \"2\", \"inputmode\", \"numeric\", \"placeholder\", i18n_75, \"aria-label\", i18n_77, 1, \"ngb-tp-input\", \"form-control\", 3, \"value\", \"readOnly\", \"disabled\", \"change\", \"blur\", \"input\", \"keydown.ArrowUp\", \"keydown.ArrowDown\"], i18n_79, i18n_81, [1, \"ngb-tp-meridian\"], [\"type\", \"button\", 1, \"btn\", \"btn-outline-primary\", 3, \"disabled\", \"click\"], [4, \"ngIf\", \"ngIfElse\"], [\"am\", \"\"], i18n_83, i18n_85]; }, template: function NgbTimepicker_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"fieldset\", 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1);\n ɵngcc0.ɵɵelementStart(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 ɵ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 } }, directives: [ɵ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/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbTimepicker, [{\n type: Component,\n args: [{\n selector: 'ngb-timepicker',\n encapsulation: ViewEncapsulation.None,\n template: `\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    :
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    :
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n `,\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgbTimepicker), multi: true }],\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 () { 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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbTimepickerModule });\nNgbTimepickerModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbTimepickerModule_Factory(t) { return new (t || NgbTimepickerModule)(); }, imports: [[CommonModule]] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbTimepickerModule, { declarations: function () { return [NgbTimepicker]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbTimepicker]; } }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbTimepickerModule, [{\n type: NgModule,\n args: [{ declarations: [NgbTimepicker], exports: [NgbTimepicker], imports: [CommonModule] }]\n }], null, null); })();\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/*@__PURE__*/ (function () { ɵ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 = ɵngcc0.ɵɵdefineDirective({ type: NgbToastHeader, selectors: [[\"\", \"ngbToastHeader\", \"\"]] });\n/*@__PURE__*/ (function () { ɵ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 `` 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 = ɵngcc0.ɵɵdefineComponent({ type: NgbToast, selectors: [[\"ngb-toast\"]], contentQueries: function NgbToast_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵstaticContentQuery(dirIndex, NgbToastHeader, true, 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: _c5, decls: 5, vars: 1, consts: function () { let i18n_87; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n const MSG_EXTERNAL_ngb_toast_close_aria$$FESM2015_NG_BOOTSTRAP_JS__88 = goog.getMsg(\"Close\");\n i18n_87 = MSG_EXTERNAL_ngb_toast_close_aria$$FESM2015_NG_BOOTSTRAP_JS__88;\n }\n else {\n i18n_87 = $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_87, 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 } }, directives: [ɵ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/*@__PURE__*/ (function () { ɵ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: `\r\n \r\n {{header}}\r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\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 () { 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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbToastModule });\nNgbToastModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbToastModule_Factory(t) { return new (t || NgbToastModule)(); }, imports: [[CommonModule]] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbToastModule, { declarations: function () { return [NgbToast, NgbToastHeader]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbToast, NgbToastHeader]; } }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbToastModule, [{\n type: NgModule,\n args: [{ declarations: [NgbToast, NgbToastHeader], imports: [CommonModule], exports: [NgbToast, NgbToastHeader] }]\n }], null, null); })();\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/*@__PURE__*/ (function () { ɵ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 = ɵ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: _c5, 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/*@__PURE__*/ (function () { ɵ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: `
    `,\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, { 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 = ɵ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/*@__PURE__*/ (function () { ɵ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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbTooltipModule });\nNgbTooltipModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbTooltipModule_Factory(t) { return new (t || NgbTooltipModule)(); } });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbTooltipModule, { declarations: [NgbTooltip, NgbTooltipWindow], exports: [NgbTooltip] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbTooltipModule, [{\n type: NgModule,\n args: [{ declarations: [NgbTooltip, NgbTooltipWindow], exports: [NgbTooltip], entryComponents: [NgbTooltipWindow] }]\n }], null, null); })();\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 `Alaska`.\r\n */\r\nclass NgbHighlight {\r\n constructor() {\r\n /**\r\n * The CSS class for `` 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 = ɵ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 } }, directives: [ɵ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/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbHighlight, [{\n type: Component,\n args: [{\n selector: 'ngb-highlight',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `` +\n `{{part}}{{part}}` +\n ``,\n styles: [\".ngb-highlight{font-weight:700}\"]\n }]\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 = ɵ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 } }, directives: [ɵngcc1.NgForOf, NgbHighlight, ɵngcc1.NgTemplateOutlet], 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/*@__PURE__*/ (function () { ɵ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 \r\n \r\n \r\n \r\n \r\n \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 \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/*@__PURE__*/ (function () { ɵ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/*@__PURE__*/ (function () { ɵ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 `` 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 = ɵ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/*@__PURE__*/ (function () { ɵ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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbTypeaheadModule });\nNgbTypeaheadModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbTypeaheadModule_Factory(t) { return new (t || NgbTypeaheadModule)(); }, imports: [[CommonModule]] });\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/*@__PURE__*/ (function () { ɵ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\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.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: NgbModule });\nNgbModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function NgbModule_Factory(t) { return new (t || NgbModule)(); }, imports: [NGB_MODULES, NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule] });\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/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgbModule, [{\n type: NgModule,\n args: [{ imports: NGB_MODULES, exports: NGB_MODULES }]\n }], null, null); })();\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//# sourceMappingURL=ng-bootstrap.js.map","import { concat } from '../observable/concat';\nimport { of } from '../observable/of';\nexport function endWith(...array) {\n return (source) => concat(source, of(...array));\n}\n//# sourceMappingURL=endWith.js.map","export const rxSubscriber = (() => typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\nexport const $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map","import { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n }\n getValue() {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n }\n next(value) {\n super.next(this._value = value);\n }\n}\n//# sourceMappingURL=BehaviorSubject.js.map","let _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport const config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map","import { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nexport class Notification {\n constructor(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n observe(observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n }\n do(next, error, complete) {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n }\n accept(nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n }\n toObservable() {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n }\n static createNext(value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n }\n static createError(err) {\n return new Notification('E', undefined, err);\n }\n static createComplete() {\n return Notification.completeNotification;\n }\n}\nNotification.completeNotification = new Notification('C');\nNotification.undefinedValueNotification = new Notification('N', undefined);\n//# sourceMappingURL=Notification.js.map","import { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler = async) {\n const absoluteDelay = isDate(delay);\n const delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return (source) => source.lift(new DelayOperator(delayFor, scheduler));\n}\nclass DelayOperator {\n constructor(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n call(subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n }\n}\nclass DelaySubscriber extends Subscriber {\n constructor(destination, delay, scheduler) {\n super(destination);\n this.delay = delay;\n this.scheduler = scheduler;\n this.queue = [];\n this.active = false;\n this.errored = false;\n }\n static dispatch(state) {\n const source = state.source;\n const queue = source.queue;\n const scheduler = state.scheduler;\n const destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n const delay = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay);\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n }\n _schedule(scheduler) {\n this.active = true;\n const destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n }\n scheduleNotification(notification) {\n if (this.errored === true) {\n return;\n }\n const scheduler = this.scheduler;\n const message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n }\n _next(value) {\n this.scheduleNotification(Notification.createNext(value));\n }\n _error(err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n }\n}\nclass DelayMessage {\n constructor(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n}\n//# sourceMappingURL=delay.js.map","export function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin(...sources) {\n if (sources.length === 1) {\n const first = sources[0];\n if (isArray(first)) {\n return forkJoinInternal(first, null);\n }\n if (isObject(first) && Object.getPrototypeOf(first) === Object.prototype) {\n const keys = Object.keys(first);\n return forkJoinInternal(keys.map(key => first[key]), keys);\n }\n }\n if (typeof sources[sources.length - 1] === 'function') {\n const resultSelector = sources.pop();\n sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(map((args) => resultSelector(...args)));\n }\n return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n return new Observable(subscriber => {\n const len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n const values = new Array(len);\n let completed = 0;\n let emitted = 0;\n for (let i = 0; i < len; i++) {\n const source = from(sources[i]);\n let hasValue = false;\n subscriber.add(source.subscribe({\n next: value => {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: err => subscriber.error(err),\n complete: () => {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce((result, key, i) => (result[key] = values[i], result), {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n }\n });\n}\n//# sourceMappingURL=forkJoin.js.map","/**\n * @license Angular v11.0.9\n * (c) 2010-2020 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { InjectionToken, forwardRef, Directive, Renderer2, ElementRef, Optional, Inject, ɵisPromise, ɵisObservable, Self, Injectable, Injector, Input, Host, EventEmitter, SkipSelf, Output, NgModule, Version } from '@angular/core';\nimport { ɵgetDOM } from '@angular/common';\nimport { forkJoin, from } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Used to provide a `ControlValueAccessor` for form controls.\n *\n * See `DefaultValueAccessor` for how to implement one.\n *\n * @publicApi\n */\nimport * as ɵngcc0 from '@angular/core';\nconst NG_VALUE_ACCESSOR = new InjectionToken('NgValueAccessor');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst CHECKBOX_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxControlValueAccessor),\n multi: true,\n};\n/**\n * @description\n * A `ControlValueAccessor` for writing a value and listening to changes on a checkbox input\n * element.\n *\n * @usageNotes\n *\n * ### Using a checkbox with a reactive form.\n *\n * The following example shows how to use a checkbox with a reactive form.\n *\n * ```ts\n * const rememberLoginControl = new FormControl();\n * ```\n *\n * ```\n * \n * ```\n *\n * @ngModule ReactiveFormsModule\n * @ngModule FormsModule\n * @publicApi\n */\nclass CheckboxControlValueAccessor {\n constructor(_renderer, _elementRef) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n /**\n * The registered callback function called when a change event occurs on the input element.\n * @nodoc\n */\n this.onChange = (_) => { };\n /**\n * The registered callback function called when a blur event occurs on the input element.\n * @nodoc\n */\n this.onTouched = () => { };\n }\n /**\n * Sets the \"checked\" property on the input element.\n * @nodoc\n */\n writeValue(value) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'checked', value);\n }\n /**\n * Registers a function called when the control value changes.\n * @nodoc\n */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /**\n * Registers a function called when the control is touched.\n * @nodoc\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Sets the \"disabled\" property on the input element.\n * @nodoc\n */\n setDisabledState(isDisabled) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n }\n}\nCheckboxControlValueAccessor.ɵfac = function CheckboxControlValueAccessor_Factory(t) { return new (t || CheckboxControlValueAccessor)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nCheckboxControlValueAccessor.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: CheckboxControlValueAccessor, selectors: [[\"input\", \"type\", \"checkbox\", \"formControlName\", \"\"], [\"input\", \"type\", \"checkbox\", \"formControl\", \"\"], [\"input\", \"type\", \"checkbox\", \"ngModel\", \"\"]], hostBindings: function CheckboxControlValueAccessor_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"change\", function CheckboxControlValueAccessor_change_HostBindingHandler($event) { return ctx.onChange($event.target.checked); })(\"blur\", function CheckboxControlValueAccessor_blur_HostBindingHandler() { return ctx.onTouched(); });\n } }, features: [ɵngcc0.ɵɵProvidersFeature([CHECKBOX_VALUE_ACCESSOR])] });\nCheckboxControlValueAccessor.ctorParameters = () => [\n { type: Renderer2 },\n { type: ElementRef }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CheckboxControlValueAccessor, [{\n type: Directive,\n args: [{\n selector: 'input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]',\n host: { '(change)': 'onChange($event.target.checked)', '(blur)': 'onTouched()' },\n providers: [CHECKBOX_VALUE_ACCESSOR]\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }]; }, null); })();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DEFAULT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DefaultValueAccessor),\n multi: true\n};\n/**\n * We must check whether the agent is Android because composition events\n * behave differently between iOS and Android.\n */\nfunction _isAndroid() {\n const userAgent = ɵgetDOM() ? ɵgetDOM().getUserAgent() : '';\n return /android (\\d+)/.test(userAgent.toLowerCase());\n}\n/**\n * @description\n * Provide this token to control if form directives buffer IME input until\n * the \"compositionend\" event occurs.\n * @publicApi\n */\nconst COMPOSITION_BUFFER_MODE = new InjectionToken('CompositionEventMode');\n/**\n * @description\n *\n * {@searchKeywords ngDefaultControl}\n *\n * The default `ControlValueAccessor` for writing a value and listening to changes on input\n * elements. The accessor is used by the `FormControlDirective`, `FormControlName`, and\n * `NgModel` directives.\n *\n * @usageNotes\n *\n * ### Using the default value accessor\n *\n * The following example shows how to use an input element that activates the default value accessor\n * (in this case, a text field).\n *\n * ```ts\n * const firstNameControl = new FormControl();\n * ```\n *\n * ```\n * \n * ```\n *\n * This value accessor is used by default for `` and `\\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n\").replace(/(^|\\n)\\s*/g, '');\n\n const resetOldContainer = () => {\n const oldContainer = getContainer();\n\n if (!oldContainer) {\n return false;\n }\n\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n\n const resetValidationMessage = () => {\n if (Swal.isVisible()) {\n Swal.resetValidationMessage();\n }\n };\n\n const addInputChangeListeners = () => {\n const popup = getPopup();\n const input = getChildByClass(popup, swalClasses.input);\n const file = getChildByClass(popup, swalClasses.file);\n const range = popup.querySelector(\".\".concat(swalClasses.range, \" input\"));\n const rangeOutput = popup.querySelector(\".\".concat(swalClasses.range, \" output\"));\n const select = getChildByClass(popup, swalClasses.select);\n const checkbox = popup.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n const textarea = getChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage;\n file.onchange = resetValidationMessage;\n select.onchange = resetValidationMessage;\n checkbox.onchange = resetValidationMessage;\n textarea.oninput = resetValidationMessage;\n\n range.oninput = () => {\n resetValidationMessage();\n rangeOutput.value = range.value;\n };\n\n range.onchange = () => {\n resetValidationMessage();\n range.nextSibling.value = range.value;\n };\n };\n\n const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n\n const setupAccessibility = params => {\n const popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n\n const setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n /*\n * Add modal + backdrop to DOM\n */\n\n\n const init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n /* istanbul ignore if */\n\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n\n const container = document.createElement('div');\n container.className = swalClasses.container;\n\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n\n setInnerHtml(container, sweetHTML);\n const targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n const parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param); // Object\n } else if (typeof param === 'object') {\n handleObject(param, target); // Plain string\n } else if (param) {\n setInnerHtml(target, param);\n }\n };\n\n const handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param); // For other objects use their string representation\n } else {\n setInnerHtml(target, param.toString());\n }\n };\n\n const handleJqueryElem = (target, elem) => {\n target.textContent = '';\n\n if (0 in elem) {\n for (let i = 0; (i in elem); i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n const animationEndEvent = (() => {\n // Prevent run in Node env\n\n /* istanbul ignore if */\n if (isNodeEnv()) {\n return false;\n }\n\n const testEl = document.createElement('div');\n const transEndEventNames = {\n WebkitAnimation: 'webkitAnimationEnd',\n OAnimation: 'oAnimationEnd oanimationend',\n animation: 'animationend'\n };\n\n for (const i in transEndEventNames) {\n if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {\n return transEndEventNames[i];\n }\n }\n\n return false;\n })();\n\n // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n\n const measureScrollbar = () => {\n const scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n const renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader();\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton(); // Actions (buttons) wrapper\n\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } // Custom class\n\n\n applyCustomClass(actions, params, 'actions'); // Render buttons\n\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n\n if (params.reverseButtons) {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n } // Loader\n\n\n setInnerHtml(loader, params.loaderHtml);\n applyCustomClass(loader, params, 'loader');\n };\n\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n }\n\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors\n\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n\n function renderButton(button, buttonType, params) {\n toggle(button, params[\"show\".concat(capitalizeFirstLetter(buttonType), \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")]); // Set caption text\n\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")]); // ARIA label\n // Add buttons custom classes\n\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n addClass(button, params[\"\".concat(buttonType, \"ButtonClass\")]);\n }\n\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n\n function handlePositionParam(container, position) {\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n\n function handleGrowParam(container, grow) {\n if (grow && typeof grow === 'string') {\n const growClass = \"grow-\".concat(grow);\n\n if (growClass in swalClasses) {\n addClass(container, swalClasses[growClass]);\n }\n }\n }\n\n const renderContainer = (instance, params) => {\n const container = getContainer();\n\n if (!container) {\n return;\n }\n\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow); // Custom class\n\n applyCustomClass(container, params, 'container');\n };\n\n /**\n * This module containts `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n var privateProps = {\n promise: new WeakMap(),\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n const inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n const renderInput = (instance, params) => {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputTypes.forEach(inputType => {\n const inputClass = swalClasses[inputType];\n const inputContainer = getChildByClass(popup, inputClass); // set attributes\n\n setAttributes(inputType, params.inputAttributes); // set class\n\n inputContainer.className = inputClass;\n\n if (rerender) {\n hide(inputContainer);\n }\n });\n\n if (params.input) {\n if (rerender) {\n showInput(params);\n } // set custom class\n\n\n setCustomClass(params);\n }\n };\n\n const showInput = params => {\n if (!renderInputType[params.input]) {\n return error(\"Unexpected type of input! Expected \\\"text\\\", \\\"email\\\", \\\"password\\\", \\\"number\\\", \\\"tel\\\", \\\"select\\\", \\\"radio\\\", \\\"checkbox\\\", \\\"textarea\\\", \\\"file\\\" or \\\"url\\\", got \\\"\".concat(params.input, \"\\\"\"));\n }\n\n const inputContainer = getInputContainer(params.input);\n const input = renderInputType[params.input](inputContainer, params);\n show(input); // input autofocus\n\n setTimeout(() => {\n focusInput(input);\n });\n };\n\n const removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n\n if (!['type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n\n const setAttributes = (inputType, inputAttributes) => {\n const input = getInput(getPopup(), inputType);\n\n if (!input) {\n return;\n }\n\n removeAttributes(input);\n\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n\n const setCustomClass = params => {\n const inputContainer = getInputContainer(params.input);\n\n if (params.customClass) {\n addClass(inputContainer, params.customClass.input);\n }\n };\n\n const setInputPlaceholder = (input, params) => {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n\n const setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n input.id = swalClasses.input;\n const label = document.createElement('label');\n const labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n addClass(label, params.customClass.inputLabel);\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n\n const getInputContainer = inputType => {\n const inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input;\n return getChildByClass(getPopup(), inputClass);\n };\n\n const renderInputType = {};\n\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => {\n if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') {\n input.value = params.inputValue;\n } else if (!isPromise(params.inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(typeof params.inputValue, \"\\\"\"));\n }\n\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n\n renderInputType.file = (input, params) => {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n\n renderInputType.range = (range, params) => {\n const rangeInput = range.querySelector('input');\n const rangeOutput = range.querySelector('output');\n rangeInput.value = params.inputValue;\n rangeInput.type = params.input;\n rangeOutput.value = params.inputValue;\n setInputLabel(rangeInput, range, params);\n return range;\n };\n\n renderInputType.select = (select, params) => {\n select.textContent = '';\n\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n\n setInputLabel(select, select, params);\n return select;\n };\n\n renderInputType.radio = radio => {\n radio.textContent = '';\n return radio;\n };\n\n renderInputType.checkbox = (checkboxContainer, params) => {\n const checkbox = getInput(getPopup(), 'checkbox');\n checkbox.value = 1;\n checkbox.id = swalClasses.checkbox;\n checkbox.checked = Boolean(params.inputValue);\n const label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkboxContainer;\n };\n\n renderInputType.textarea = (textarea, params) => {\n textarea.value = params.inputValue;\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n\n if ('MutationObserver' in window) {\n // #1699\n const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n\n const outputsize = () => {\n const textareaWidth = textarea.offsetWidth + getMargin(textarea);\n\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(textareaWidth, \"px\");\n } else {\n getPopup().style.width = null;\n }\n };\n\n new MutationObserver(outputsize).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n\n return textarea;\n };\n\n const renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML\n\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block'); // Content as plain text\n } else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block'); // No content\n } else {\n hide(htmlContainer);\n }\n\n renderInput(instance, params);\n };\n\n const renderFooter = (instance, params) => {\n const footer = getFooter();\n toggle(footer, params.footer);\n\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n } // Custom class\n\n\n applyCustomClass(footer, params, 'footer');\n };\n\n const renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n setInnerHtml(closeButton, params.closeButtonHtml); // Custom class\n\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);\n };\n\n const renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon\n\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n\n if (!params.icon && !params.iconHtml) {\n return hide(icon);\n }\n\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n return hide(icon);\n }\n\n show(icon); // Custom or default content\n\n setContent(icon, params);\n applyStyles(icon, params); // Animate icon\n\n addClass(icon, params.showClass.icon);\n };\n\n const applyStyles = (icon, params) => {\n for (const iconType in iconTypes) {\n if (params.icon !== iconType) {\n removeClass(icon, iconTypes[iconType]);\n }\n }\n\n addClass(icon, iconTypes[params.icon]); // Icon color\n\n setColor(icon, params); // Success icon background color\n\n adjustSuccessIconBackgoundColor(); // Custom class\n\n applyCustomClass(icon, params, 'icon');\n }; // Adjust success icon background color to match the popup background color\n\n\n const adjustSuccessIconBackgoundColor = () => {\n const popup = getPopup();\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n\n const setContent = (icon, params) => {\n icon.textContent = '';\n\n if (params.iconHtml) {\n setInnerHtml(icon, iconContent(params.iconHtml));\n } else if (params.icon === 'success') {\n setInnerHtml(icon, \"\\n
    \\n \\n
    \\n
    \\n \");\n } else if (params.icon === 'error') {\n setInnerHtml(icon, \"\\n \\n \\n \\n \\n \");\n } else {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n setInnerHtml(icon, iconContent(defaultIconHtml[params.icon]));\n }\n };\n\n const setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n\n for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n setStyle(icon, sel, 'backgroundColor', params.iconColor);\n }\n\n setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);\n };\n\n const iconContent = content => \"
    \").concat(content, \"
    \");\n\n const renderImage = (instance, params) => {\n const image = getImage();\n\n if (!params.imageUrl) {\n return hide(image);\n }\n\n show(image, ''); // Src, alt\n\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt); // Width, height\n\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight); // Class\n\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n const createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n\n const createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n\n if (params.progressStepsDistance) {\n lineEl.style.width = params.progressStepsDistance;\n }\n\n return lineEl;\n };\n\n const renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n\n if (!params.progressSteps || params.progressSteps.length === 0) {\n return hide(progressStepsContainer);\n }\n\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n\n if (params.currentProgressStep >= params.progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n\n params.progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n\n if (index === params.currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n\n if (index !== params.progressSteps.length - 1) {\n const lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n\n const renderTitle = (instance, params) => {\n const title = getTitle();\n toggle(title, params.title || params.titleText, 'block');\n\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n\n if (params.titleText) {\n title.innerText = params.titleText;\n } // Custom class\n\n\n applyCustomClass(title, params, 'title');\n };\n\n const renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup(); // Width\n\n if (params.toast) {\n // #2170\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n popup.insertBefore(getLoader(), getIcon());\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n } // Padding\n\n\n applyNumericalStyle(popup, 'padding', params.padding); // Background\n\n if (params.background) {\n popup.style.background = params.background;\n }\n\n hide(getValidationMessage()); // Classes\n\n addClasses(popup, params);\n };\n\n const addClasses = (popup, params) => {\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible(popup) ? params.showClass.popup : '');\n\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n } // Custom class\n\n\n applyCustomClass(popup, params, 'popup');\n\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n } // Icon class (#1842)\n\n\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n const render = (instance, params) => {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n\n if (typeof params.didRender === 'function') {\n params.didRender(getPopup());\n }\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n\n const isVisible$1 = () => {\n return isVisible(getPopup());\n };\n /*\n * Global function to click 'Confirm' button\n */\n\n const clickConfirm = () => getConfirmButton() && getConfirmButton().click();\n /*\n * Global function to click 'Deny' button\n */\n\n const clickDeny = () => getDenyButton() && getDenyButton().click();\n /*\n * Global function to click 'Cancel' button\n */\n\n const clickCancel = () => getCancelButton() && getCancelButton().click();\n\n function fire(...args) {\n const Swal = this;\n return new Swal(...args);\n }\n\n /**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param mixinParams\n */\n function mixin(mixinParams) {\n class MixinSwal extends this {\n _main(params, priorityMixinParams) {\n return super._main(params, Object.assign({}, mixinParams, priorityMixinParams));\n }\n\n }\n\n return MixinSwal;\n }\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n */\n\n const showLoading = buttonToReplace => {\n let popup = getPopup();\n\n if (!popup) {\n Swal.fire();\n }\n\n popup = getPopup();\n const loader = getLoader();\n\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n\n show(loader);\n popup.setAttribute('data-loading', true);\n popup.setAttribute('aria-busy', true);\n popup.focus();\n };\n\n const replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n\n if (!buttonToReplace && isVisible(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n\n show(actions);\n\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n }\n\n loader.parentNode.insertBefore(loader, buttonToReplace);\n addClass([popup, actions], swalClasses.loading);\n };\n\n const RESTORE_FOCUS_TIMEOUT = 100;\n\n const globalState = {};\n\n const focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n }; // Restore previous active (focused) element\n\n\n const restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n /**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n */\n\n const getTimerLeft = () => {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n };\n /**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const stopTimer = () => {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const resumeTimer = () => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const toggleTimer = () => {\n const timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n };\n /**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const increaseTimer = n => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.increase(n);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n };\n /**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n */\n\n const isTimerRunning = () => {\n return globalState.timeout && globalState.timeout.isRunning();\n };\n\n let bodyClickListenerAdded = false;\n const clickHandlers = {};\n function bindClickHandler(attr = 'data-swal-template') {\n clickHandlers[attr] = this;\n\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n }\n\n const bodyClickListener = event => {\n // TODO: replace with event.composedPath()\n for (let el = event.target; el && el !== document; el = el.parentNode) {\n for (const attr in clickHandlers) {\n const template = el.getAttribute(attr);\n\n if (template) {\n clickHandlers[attr].fire({\n template\n });\n return;\n }\n }\n }\n };\n\n const defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true\n };\n const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n const deprecatedParams = {};\n const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n /**\n * Is valid parameter\n * @param {String} paramName\n */\n\n const isValidParameter = paramName => {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n };\n /**\n * Is valid parameter for Swal.update() method\n * @param {String} paramName\n */\n\n const isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n };\n /**\n * Is deprecated parameter\n * @param {String} paramName\n */\n\n const isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n };\n\n const checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n }\n };\n\n const checkIfToastParamIsValid = param => {\n if (toastIncompatibleParams.includes(param)) {\n warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n }\n };\n\n const checkIfParamIsDeprecated = param => {\n if (isDeprecatedParameter(param)) {\n warnAboutDeprecation(param, isDeprecatedParameter(param));\n }\n };\n /**\n * Show relevant warnings for given params\n *\n * @param params\n */\n\n\n const showWarningsForParams = params => {\n if (!params.backdrop && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n\n for (const param in params) {\n checkIfParamIsValid(param);\n\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n\n checkIfParamIsDeprecated(param);\n }\n };\n\n\n\n var staticMethods = /*#__PURE__*/Object.freeze({\n isValidParameter: isValidParameter,\n isUpdatableParameter: isUpdatableParameter,\n isDeprecatedParameter: isDeprecatedParameter,\n argsToParams: argsToParams,\n isVisible: isVisible$1,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n clickCancel: clickCancel,\n getContainer: getContainer,\n getPopup: getPopup,\n getTitle: getTitle,\n getHtmlContainer: getHtmlContainer,\n getImage: getImage,\n getIcon: getIcon,\n getInputLabel: getInputLabel,\n getCloseButton: getCloseButton,\n getActions: getActions,\n getConfirmButton: getConfirmButton,\n getDenyButton: getDenyButton,\n getCancelButton: getCancelButton,\n getLoader: getLoader,\n getFooter: getFooter,\n getTimerProgressBar: getTimerProgressBar,\n getFocusableElements: getFocusableElements,\n getValidationMessage: getValidationMessage,\n isLoading: isLoading,\n fire: fire,\n mixin: mixin,\n showLoading: showLoading,\n enableLoading: showLoading,\n getTimerLeft: getTimerLeft,\n stopTimer: stopTimer,\n resumeTimer: resumeTimer,\n toggleTimer: toggleTimer,\n increaseTimer: increaseTimer,\n isTimerRunning: isTimerRunning,\n bindClickHandler: bindClickHandler\n });\n\n /**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n\n function hideLoading() {\n // do nothing if popup is closed\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n return;\n }\n\n const domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n }\n\n const showRelatedButton = domCache => {\n const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n\n if (buttonToReplace.length) {\n show(buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n };\n\n function getInput$1(instance) {\n const innerParams = privateProps.innerParams.get(instance || this);\n const domCache = privateProps.domCache.get(instance || this);\n\n if (!domCache) {\n return null;\n }\n\n return getInput(domCache.popup, innerParams.input);\n }\n\n const fixScrollbar = () => {\n // for queues, do not do this more than once\n if (states.previousBodyPadding !== null) {\n return;\n } // if the body has overflow\n\n\n if (document.body.scrollHeight > window.innerHeight) {\n // add padding so the content doesn't shift after removal of scrollbar\n states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n const undoScrollbar = () => {\n if (states.previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding, \"px\");\n states.previousBodyPadding = null;\n }\n };\n\n /* istanbul ignore file */\n\n const iOSfix = () => {\n const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n\n if (iOS && !hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n addBottomPaddingForTallPopups(); // #1948\n }\n };\n\n const addBottomPaddingForTallPopups = () => {\n const safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i);\n\n if (safari) {\n const bottomPanelHeight = 44;\n\n if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {\n getContainer().style.paddingBottom = \"\".concat(bottomPanelHeight, \"px\");\n }\n }\n };\n\n const lockBodyScroll = () => {\n // #1246\n const container = getContainer();\n let preventTouchMove;\n\n container.ontouchstart = e => {\n preventTouchMove = shouldPreventTouchMove(e);\n };\n\n container.ontouchmove = e => {\n if (preventTouchMove) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n };\n\n const shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n\n if (isStylys(event) || isZoom(event)) {\n return false;\n }\n\n if (target === container) {\n return true;\n }\n\n if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603\n target.tagName !== 'TEXTAREA' && // #2266\n !(isScrollable(getHtmlContainer()) && // #1944\n getHtmlContainer().contains(target))) {\n return true;\n }\n\n return false;\n };\n\n const isStylys = event => {\n // #1786\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n\n const isZoom = event => {\n // #1891\n return event.touches && event.touches.length > 1;\n };\n\n const undoIOSfix = () => {\n if (hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n const setAriaHidden = () => {\n const bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(el => {\n if (el === getContainer() || el.contains(getContainer())) {\n return;\n }\n\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));\n }\n\n el.setAttribute('aria-hidden', 'true');\n });\n };\n const unsetAriaHidden = () => {\n const bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n /**\n * This module containts `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n var privateMethods = {\n swalPromiseResolve: new WeakMap()\n };\n\n /*\n * Instance method to close sweetAlert\n */\n\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // workaround for #2088\n // for some reason removing the container in Safari will scroll the document to bottom\n\n if (isSafari) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n\n if (isModal()) {\n undoScrollbar();\n undoIOSfix();\n unsetAriaHidden();\n }\n\n removeBodyClasses();\n }\n\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n function close(resolveValue) {\n const popup = getPopup();\n\n if (!popup) {\n return;\n }\n\n resolveValue = prepareResolveValue(resolveValue);\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return;\n }\n\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n const backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise\n\n swalPromiseResolve(resolveValue);\n }\n\n const prepareResolveValue = resolveValue => {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n const handlePopupAnimation = (instance, popup, innerParams) => {\n const container = getContainer(); // If animation is supported, animate\n\n const animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n const animatePopup = (instance, popup, container, returnFocus, didClose) => {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n const triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n\n instance._destroy();\n });\n };\n\n function setButtonsDisabled(instance, buttons, disabled) {\n const domCache = privateProps.domCache.get(instance);\n buttons.forEach(button => {\n domCache[button].disabled = disabled;\n });\n }\n\n function setInputDisabled(input, disabled) {\n if (!input) {\n return false;\n }\n\n if (input.type === 'radio') {\n const radiosContainer = input.parentNode.parentNode;\n const radios = radiosContainer.querySelectorAll('input');\n\n for (let i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n }\n\n function enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n }\n function disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n }\n function enableInput() {\n return setInputDisabled(this.getInput(), false);\n }\n function disableInput() {\n return setInputDisabled(this.getInput(), true);\n }\n\n function showValidationMessage(error) {\n const domCache = privateProps.domCache.get(this);\n const params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n\n show(domCache.validationMessage);\n const input = this.getInput();\n\n if (input) {\n input.setAttribute('aria-invalid', true);\n input.setAttribute('aria-describedBy', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n } // Hide block with validation message\n\n function resetValidationMessage$1() {\n const domCache = privateProps.domCache.get(this);\n\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n\n const input = this.getInput();\n\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedBy');\n removeClass(input, swalClasses.inputerror);\n }\n }\n\n function getProgressSteps$1() {\n const domCache = privateProps.domCache.get(this);\n return domCache.progressSteps;\n }\n\n class Timer {\n constructor(callback, delay) {\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n\n return this.remaining;\n }\n\n stop() {\n if (this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date() - this.started;\n }\n\n return this.remaining;\n }\n\n increase(n) {\n const running = this.running;\n\n if (running) {\n this.stop();\n }\n\n this.remaining += n;\n\n if (running) {\n this.start();\n }\n\n return this.remaining;\n }\n\n getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n\n return this.remaining;\n }\n\n isRunning() {\n return this.running;\n }\n\n }\n\n var defaultInputValidators = {\n email: (string, validationMessage) => {\n return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n url: (string, validationMessage) => {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n };\n\n function setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (!params.inputValidator) {\n Object.keys(defaultInputValidators).forEach(key => {\n if (params.input === key) {\n params.inputValidator = defaultInputValidators[key];\n }\n });\n }\n }\n\n function validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n }\n /**\n * Set type, text and actions on popup\n *\n * @param params\n * @returns {boolean}\n */\n\n\n function setParameters(params) {\n setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm\n\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n\n validateCustomTargetElement(params); // Replace newlines with
    in title\n\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('
    ');\n }\n\n init(params);\n }\n\n const swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n const getTemplateParams = params => {\n const template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;\n\n if (!template) {\n return {};\n }\n\n const templateContent = template.content;\n showWarningsForElements(templateContent);\n const result = Object.assign(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n };\n\n const getSwalParams = templateContent => {\n const result = {};\n toArray(templateContent.querySelectorAll('swal-param')).forEach(param => {\n showWarningsForAttributes(param, ['name', 'value']);\n const paramName = param.getAttribute('name');\n let value = param.getAttribute('value');\n\n if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {\n value = false;\n }\n\n if (typeof defaultParams[paramName] === 'object') {\n value = JSON.parse(value);\n }\n\n result[paramName] = value;\n });\n return result;\n };\n\n const getSwalButtons = templateContent => {\n const result = {};\n toArray(templateContent.querySelectorAll('swal-button')).forEach(button => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n const type = button.getAttribute('type');\n result[\"\".concat(type, \"ButtonText\")] = button.innerHTML;\n result[\"show\".concat(capitalizeFirstLetter(type), \"Button\")] = true;\n\n if (button.hasAttribute('color')) {\n result[\"\".concat(type, \"ButtonColor\")] = button.getAttribute('color');\n }\n\n if (button.hasAttribute('aria-label')) {\n result[\"\".concat(type, \"ButtonAriaLabel\")] = button.getAttribute('aria-label');\n }\n });\n return result;\n };\n\n const getSwalImage = templateContent => {\n const result = {};\n const image = templateContent.querySelector('swal-image');\n\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src');\n }\n\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width');\n }\n\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height');\n }\n\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt');\n }\n }\n\n return result;\n };\n\n const getSwalIcon = templateContent => {\n const result = {};\n const icon = templateContent.querySelector('swal-icon');\n\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type');\n }\n\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n\n result.iconHtml = icon.innerHTML;\n }\n\n return result;\n };\n\n const getSwalInput = templateContent => {\n const result = {};\n const input = templateContent.querySelector('swal-input');\n\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n result.input = input.getAttribute('type') || 'text';\n\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n\n const inputOptions = templateContent.querySelectorAll('swal-input-option');\n\n if (inputOptions.length) {\n result.inputOptions = {};\n toArray(inputOptions).forEach(option => {\n showWarningsForAttributes(option, ['value']);\n const optionValue = option.getAttribute('value');\n const optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n\n return result;\n };\n\n const getSwalStringParams = (templateContent, paramNames) => {\n const result = {};\n\n for (const i in paramNames) {\n const paramName = paramNames[i];\n const tag = templateContent.querySelector(paramName);\n\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n\n return result;\n };\n\n const showWarningsForElements = template => {\n const allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n toArray(template.children).forEach(el => {\n const tagName = el.tagName.toLowerCase();\n\n if (allowedElements.indexOf(tagName) === -1) {\n warn(\"Unrecognized element <\".concat(tagName, \">\"));\n }\n });\n };\n\n const showWarningsForAttributes = (el, allowedAttributes) => {\n toArray(el.attributes).forEach(attribute => {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([\"Unrecognized attribute \\\"\".concat(attribute.name, \"\\\" on <\").concat(el.tagName.toLowerCase(), \">.\"), \"\".concat(allowedAttributes.length ? \"Allowed attributes are: \".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);\n }\n });\n };\n\n const SHOW_CLASS_TIMEOUT = 10;\n /**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param params\n */\n\n const openPopup = params => {\n const container = getContainer();\n const popup = getPopup();\n\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n }\n\n const bodyStyles = window.getComputedStyle(document.body);\n const initialBodyOverflow = bodyStyles.overflowY;\n addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'\n\n setTimeout(() => {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n setAriaHidden();\n }\n\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n\n if (typeof params.didOpen === 'function') {\n setTimeout(() => params.didOpen(popup));\n }\n\n removeClass(container, swalClasses['no-transition']);\n };\n\n const swalOpenAnimationFinished = event => {\n const popup = getPopup();\n\n if (event.target !== popup) {\n return;\n }\n\n const container = getContainer();\n popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n };\n\n const setScrollingVisibility = (container, popup) => {\n if (animationEndEvent && hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n };\n\n const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n iOSfix();\n\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n fixScrollbar();\n } // sweetalert2/issues/1247\n\n\n setTimeout(() => {\n container.scrollTop = 0;\n });\n };\n\n const addClasses$1 = (container, popup, params) => {\n addClass(container, params.showClass.backdrop); // the workaround with setting/unsetting opacity is needed for #2019 and 2059\n\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(() => {\n // Animate popup right after showing it\n addClass(popup, params.showClass.popup); // and remove the opacity workaround\n\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n\n addClass([document.documentElement, document.body], swalClasses.shown);\n\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n };\n\n const handleInputOptionsAndValue = (instance, params) => {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].includes(params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n const getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n\n if (!input) {\n return null;\n }\n\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n\n case 'radio':\n return getRadioValue(input);\n\n case 'file':\n return getFileValue(input);\n\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n const getCheckboxValue = input => input.checked ? 1 : 0;\n\n const getRadioValue = input => input.checked ? input.value : null;\n\n const getFileValue = input => input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n const handleInputOptions = (instance, params) => {\n const popup = getPopup();\n\n const processInputOptions = inputOptions => populateInputOptions[params.input](popup, formatInputOptions(inputOptions), params);\n\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(inputOptions => {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (typeof params.inputOptions === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(typeof params.inputOptions));\n }\n };\n\n const handleInputValue = (instance, params) => {\n const input = instance.getInput();\n hide(input);\n asPromise(params.inputValue).then(inputValue => {\n input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n }).catch(err => {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n const populateInputOptions = {\n select: (popup, inputOptions, params) => {\n const select = getChildByClass(popup, swalClasses.select);\n\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n\n inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1]; // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n\n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n const optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n\n select.appendChild(optgroup);\n optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n } else {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(key => {\n let valueFormatted = inputOptions[key];\n\n if (typeof valueFormatted === 'object') {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n }\n\n return result;\n };\n\n const isSelected = (optionValue, inputValue) => {\n return inputValue && inputValue.toString() === optionValue.toString();\n };\n\n const handleConfirmButtonClick = (instance, innerParams) => {\n instance.disableButtons();\n\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, innerParams, 'confirm');\n } else {\n confirm(instance, innerParams, true);\n }\n };\n const handleDenyButtonClick = (instance, innerParams) => {\n instance.disableButtons();\n\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, innerParams, 'deny');\n } else {\n deny(instance, innerParams, false);\n }\n };\n const handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n };\n\n const handleConfirmOrDenyWithInput = (instance, innerParams, type\n /* type is either 'confirm' or 'deny' */\n ) => {\n const inputValue = getInputValue(instance, innerParams);\n\n if (innerParams.inputValidator) {\n handleInputValidator(instance, innerParams, inputValue, type);\n } else if (!instance.getInput().checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage);\n } else if (type === 'deny') {\n deny(instance, innerParams, inputValue);\n } else {\n confirm(instance, innerParams, inputValue);\n }\n };\n\n const handleInputValidator = (instance, innerParams, inputValue, type\n /* type is either 'confirm' or 'deny' */\n ) => {\n instance.disableInput();\n const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));\n validationPromise.then(validationMessage => {\n instance.enableButtons();\n instance.enableInput();\n\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else if (type === 'deny') {\n deny(instance, innerParams, inputValue);\n } else {\n confirm(instance, innerParams, inputValue);\n }\n });\n };\n\n const deny = (instance, innerParams, value) => {\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n\n if (innerParams.preDeny) {\n const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));\n preDenyPromise.then(preDenyValue => {\n if (preDenyValue === false) {\n instance.hideLoading();\n } else {\n instance.closePopup({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n });\n } else {\n instance.closePopup({\n isDenied: true,\n value\n });\n }\n };\n\n const succeedWith = (instance, value) => {\n instance.closePopup({\n isConfirmed: true,\n value\n });\n };\n\n const confirm = (instance, innerParams, value) => {\n if (innerParams.showLoaderOnConfirm) {\n showLoading(); // TODO: make showLoading an *instance* method\n }\n\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));\n preConfirmPromise.then(preConfirmValue => {\n if (isVisible(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n });\n } else {\n succeedWith(instance, value);\n }\n };\n\n const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n\n if (!innerParams.toast) {\n globalState.keydownHandler = e => keydownHandler(instance, e, dismissWith);\n\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n }; // Focus handling\n\n const setFocus = (innerParams, index, increment) => {\n const focusableElements = getFocusableElements(); // search for visible elements and select the next possible match\n\n if (focusableElements.length) {\n index = index + increment; // rollover to first item\n\n if (index === focusableElements.length) {\n index = 0; // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n\n return focusableElements[index].focus();\n } // no visible focusable elements, focus the popup\n\n\n getPopup().focus();\n };\n const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n const keydownHandler = (instance, e, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n if (innerParams.stopKeydownPropagation) {\n e.stopPropagation();\n } // ENTER\n\n\n if (e.key === 'Enter') {\n handleEnter(instance, e, innerParams); // TAB\n } else if (e.key === 'Tab') {\n handleTab(e, innerParams); // ARROWS - switch focus between buttons\n } else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) {\n handleArrows(e.key); // ESC\n } else if (e.key === 'Escape') {\n handleEsc(e, innerParams, dismissWith);\n }\n };\n\n const handleEnter = (instance, e, innerParams) => {\n // #720 #721\n if (e.isComposing) {\n return;\n }\n\n if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n\n clickConfirm();\n e.preventDefault();\n }\n };\n\n const handleTab = (e, innerParams) => {\n const targetElement = e.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n if (!e.shiftKey) {\n // Cycle to the next button\n setFocus(innerParams, btnIndex, 1);\n } else {\n // Cycle to the prev button\n setFocus(innerParams, btnIndex, -1);\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n\n const handleArrows = key => {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n\n if (![confirmButton, denyButton, cancelButton].includes(document.activeElement)) {\n return;\n }\n\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n const buttonToFocus = document.activeElement[sibling];\n\n if (buttonToFocus) {\n buttonToFocus.focus();\n }\n };\n\n const handleEsc = (e, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n e.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n const handlePopupClick = (instance, domCache, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams.toast) {\n handleToastClick(instance, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup\n\n handleContainerMousedown(domCache);\n handleModalClick(instance, domCache, dismissWith);\n }\n };\n\n const handleToastClick = (instance, domCache, dismissWith) => {\n // Closing toast by internal click\n domCache.popup.onclick = () => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.timer || innerParams.input) {\n return;\n }\n\n dismissWith(DismissReason.close);\n };\n };\n\n let ignoreOutsideClick = false;\n\n const handleModalMousedown = domCache => {\n domCache.popup.onmousedown = () => {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleContainerMousedown = domCache => {\n domCache.container.onmousedown = () => {\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup\n\n if (e.target === domCache.popup || domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleModalClick = (instance, domCache, dismissWith) => {\n domCache.container.onclick = e => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n };\n\n function _main(userParams, mixinParams = {}) {\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n\n if (globalState.currentInstance) {\n globalState.currentInstance._destroy();\n }\n\n globalState.currentInstance = this;\n const innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams); // clear the previous timer\n\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n } // clear the restore focus timeout\n\n\n clearTimeout(globalState.restoreFocusTimeout);\n const domCache = populateDomCache(this);\n render(this, innerParams);\n privateProps.innerParams.set(this, innerParams);\n return swalPromise(this, domCache, innerParams);\n }\n\n const prepareParams = (userParams, mixinParams) => {\n const templateParams = getTemplateParams(userParams);\n const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n return params;\n };\n\n const swalPromise = (instance, domCache, innerParams) => {\n return new Promise(resolve => {\n // functions to handle all closings/dismissals\n const dismissWith = dismiss => {\n instance.closePopup({\n isDismissed: true,\n dismiss\n });\n };\n\n privateMethods.swalPromiseResolve.set(instance, resolve);\n\n domCache.confirmButton.onclick = () => handleConfirmButtonClick(instance, innerParams);\n\n domCache.denyButton.onclick = () => handleDenyButtonClick(instance, innerParams);\n\n domCache.cancelButton.onclick = () => handleCancelButtonClick(instance, dismissWith);\n\n domCache.closeButton.onclick = () => dismissWith(DismissReason.close);\n\n handlePopupClick(instance, domCache, dismissWith);\n addKeydownHandler(instance, globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)\n\n setTimeout(() => {\n domCache.container.scrollTop = 0;\n });\n });\n };\n\n const populateDomCache = instance => {\n const domCache = {\n popup: getPopup(),\n container: getContainer(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n };\n\n const setupTimer = (globalState$$1, innerParams, dismissWith) => {\n const timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n\n if (innerParams.timer) {\n globalState$$1.timeout = new Timer(() => {\n dismissWith('timer');\n delete globalState$$1.timeout;\n }, innerParams.timer);\n\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n setTimeout(() => {\n if (globalState$$1.timeout && globalState$$1.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n };\n\n const initFocus = (domCache, innerParams) => {\n if (innerParams.toast) {\n return;\n }\n\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return blurActiveElement();\n }\n\n if (!focusButton(domCache, innerParams)) {\n setFocus(innerParams, -1, 1);\n }\n };\n\n const focusButton = (domCache, innerParams) => {\n if (innerParams.focusDeny && isVisible(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n\n if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n\n if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n\n return false;\n };\n\n const blurActiveElement = () => {\n if (document.activeElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n };\n\n /**\n * Updates popup parameters.\n */\n\n function update(params) {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(this);\n\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n return warn(\"You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.\");\n }\n\n const validUpdatableParams = {}; // assign valid params from `params` to `defaults`\n\n Object.keys(params).forEach(param => {\n if (Swal.isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(\"Invalid parameter to update: \\\"\".concat(param, \"\\\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\\n\\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md\"));\n }\n });\n const updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n }\n\n function _destroy() {\n const domCache = privateProps.domCache.get(this);\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n return; // This instance has already been destroyed\n } // Check if there is another Swal closing\n\n\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n } // Check if there is a swal disposal defer timer\n\n\n if (globalState.deferDisposalTimer) {\n clearTimeout(globalState.deferDisposalTimer);\n delete globalState.deferDisposalTimer;\n }\n\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n\n disposeSwal(this);\n }\n\n const disposeSwal = instance => {\n // Unset this.params so GC will dispose it (#1569)\n delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)\n\n delete globalState.keydownHandler;\n delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569)\n\n unsetWeakMaps(privateProps);\n unsetWeakMaps(privateMethods);\n };\n\n const unsetWeakMaps = obj => {\n for (const i in obj) {\n obj[i] = new WeakMap();\n }\n };\n\n\n\n var instanceMethods = /*#__PURE__*/Object.freeze({\n hideLoading: hideLoading,\n disableLoading: hideLoading,\n getInput: getInput$1,\n close: close,\n closePopup: close,\n closeModal: close,\n closeToast: close,\n enableButtons: enableButtons,\n disableButtons: disableButtons,\n enableInput: enableInput,\n disableInput: disableInput,\n showValidationMessage: showValidationMessage,\n resetValidationMessage: resetValidationMessage$1,\n getProgressSteps: getProgressSteps$1,\n _main: _main,\n update: update,\n _destroy: _destroy\n });\n\n let currentInstance;\n\n class SweetAlert {\n constructor(...args) {\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n\n currentInstance = this;\n const outerParams = Object.freeze(this.constructor.argsToParams(args));\n Object.defineProperties(this, {\n params: {\n value: outerParams,\n writable: false,\n enumerable: true,\n configurable: true\n }\n });\n\n const promise = this._main(this.params);\n\n privateProps.promise.set(this, promise);\n } // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n\n\n then(onFulfilled) {\n const promise = privateProps.promise.get(this);\n return promise.then(onFulfilled);\n }\n\n finally(onFinally) {\n const promise = privateProps.promise.get(this);\n return promise.finally(onFinally);\n }\n\n } // Assign instance methods from src/instanceMethods/*.js to prototype\n\n\n Object.assign(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor\n\n Object.assign(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility\n\n Object.keys(instanceMethods).forEach(key => {\n SweetAlert[key] = function (...args) {\n if (currentInstance) {\n return currentInstance[key](...args);\n }\n };\n });\n SweetAlert.DismissReason = DismissReason;\n SweetAlert.version = '11.0.16';\n\n const Swal = SweetAlert;\n Swal.default = Swal;\n\n return Swal;\n\n}));\nif (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.3125em;padding:0}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(100,150,200,.5)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\" \\\"gap gap gap\\\";grid-template-rows:auto auto auto .625em;height:100%;padding:.625em .625em 0;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container::after{content:\\\"\\\";grid-column:1/4;grid-row:4;height:.625em}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7367f0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(115,103,240,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#ea5455;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(234,84,85,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7d88;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,125,136,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:0;padding:1em 1.6em .3em;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 0}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 0;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}\");","import { TipoMovimentacao } from './tipo-movimentacao';\r\nimport { CadastroBem } from './cadastro-bem';\r\nexport class Movimentacao {\r\n cD_BPM_MOVIMENTACAO_PATRIMONIAL: number;\r\n nR_BPM_BEM_PATRIMONIAL: number;\r\n cD_BPM_TIPO_MOVIMENTACAO_PATRIMONIAL: number;\r\n cD_CDU_MATRICULA_ORIGEM: number;\r\n cD_CDU_MATRICULA_DESTINO: number;\r\n cD_CDU_MATRICULA_GESTOR: number;\r\n dT_DATA_MOVIMENTACAO_PATRIMONIAL: Date;\r\n cD_BPM_UNIDADE_OP_ANTERIOR: number;\r\n cD_BPM_UNIDADE_OP_POSTERIOR: number;\r\n dS_BPM_SALA_POSTERIOR: string;\r\n dS_BPM_SALA_ANTERIOR: string;\r\n fL_BPM_ATIVO: number;\r\n fL_BPM_DELETADO: number;\r\n dS_NM_ORIGEM: string;\r\n dS_NM_DESTINO: string;\r\n dS_NM_GESTOR: string;\r\n dS_BPM_TIPO_MOVIMENTACAO_PATRIMONIAL: string;\r\n dS_BPM_DESCRICAO_BEM: string;\r\n dS_BPM_TEXTO_EVIDENCIA: string;\r\n cD_BPM_ARQUIVO_PATRIMONIAL: number;\r\n dS_BPM_FILENAME_ARQUIVO_PATRIMONIAL: string;\r\n cD_CDU_MATRICULA_AUTOR: number;\r\n dS_NM_AUTOR: string;\r\n dS_BPM_ETIQUETA_BEM: string;\r\n}\r\n","import { RelatorioIncon } from './../models/relatorio-incon';\r\nimport { TipoMovimentacao } from './../models/tipo-movimentacao';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Movimentacao } from './../models/movimentacao';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment as env } from 'src/environments/environment';\r\nimport { Evidencia } from '../models/evidencia';\r\nimport { Relatorio } from '../models/relatorio';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MovimentacaoService {\r\n //CRUD MOVIMENTAÇÃO\r\n private readonly PATH_MOV = '/Movimentacao';\r\n private readonly PATH_MOV_GET_ALL = '/Movimentacao/GetAll';\r\n private readonly PATH_LIBERAR = '/Movimentacao/Liberar';\r\n private readonly PATH_APROVAR = '/Movimentacao/Aprovar';\r\n private readonly PATH_REPROVAR = '/Movimentacao/Reprovar';\r\n private readonly PATH_RECEBER = '/Movimentacao/Receber';\r\n private readonly PATH_NO_RECEBER = '/Movimentacao/NaoRecebido';\r\n private readonly PATH_GESTOR = '/Movimentacao/gestor';\r\n private readonly PATH_DESTINO = '/Movimentacao/destino';\r\n private readonly PATH_HIST = '/Movimentacao/historico';\r\n private readonly PATH_RELATORIO = '/Movimentacao/Relatorio/';\r\n private readonly PATH_MOV_GESTOR_GET_ALL = '/Movimentacao/gestor/GetAll';\r\n private readonly PATH_MOV_DESTINO_GET_ALL = '/Movimentacao/destino/GetAll';\r\n private readonly PATH_MOV_INCON_ORIG_ALL = '/Movimentacao/Inconsistencia/Origem/GetAll';\r\n private readonly PATH_MOV_INCON_GET_ALL = '/Movimentacao/Inconsistencia/GetAll';\r\n private readonly PATH_MOV_INCON_RELATORIO = '/Movimentacao/Inconsistencia/Relatorio';\r\n private readonly PATH_MOV_INCON_ORIG_CONF = '/Movimentacao/Inconsistencia/Origem/Confirmar';\r\n private readonly PATH_MOV_INCON_GESTOR_CONF = '/Movimentacao/Inconsistencia/Gestor/Confirmar';\r\n private readonly PATH_MOV_INCON_CANCEL = '/Movimentacao/Inconsistencia/Cancelar';\r\n private readonly PATH_MOV_INCON_SANAR = '/Movimentacao/Inconsistencia/Sanar';\r\n private readonly PATH_MOV_INCON_ALL = '/Movimentacao/Inconsistencia/GetAll';\r\n private readonly PATH_MOV_INCON_ALT_GESTOR = '/Movimentacao/gestor/AlteracaoCautela';\r\n private readonly PATH_MOV_EV_JUNTAS = '/Movimentacao/Evidencia/Juntas/';\r\n private readonly PATH_MOV_EV_AVULSO = '/Movimentacao/Evidencia/CadastrarEvidencia/';\r\n private readonly PATH_MOV_EV = '/Movimentacao/Evidencia/';\r\n private readonly PATH_MOV_EV_SANATORIAS = '/Movimentacao/Evidencia/Sanatorias/';\r\n\r\n //CRUD TIPO DE MOVIMENTAÇÃO\r\n private readonly PATH_TIP_MOV = '/TipoMovimentacao';\r\n private readonly PATH_TIP_MOV_GET_ALL = '/TipoMovimentacao/GetAll';\r\n\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n public errorHandl(error: HttpErrorResponse) {\r\n return throwError(error.message || 'Server Error');\r\n }\r\n //MOVIMENTAÇÃO\r\n insert_liberar(movimentacao: Movimentacao): Observable {\r\n return this.http.post(env.baseurl + this.PATH_LIBERAR, movimentacao, { responseType: 'text' })\r\n }\r\n\r\n insert_aprovar(cD_BPM_BEM_PATRIMONIAL: number): Observable {\r\n var reqHeader = new HttpHeaders({ 'Content-Type': 'text/plain', 'No-Auth': 'True' });\r\n return this.http.post(env.baseurl + this.PATH_APROVAR + '/' + JSON.stringify(cD_BPM_BEM_PATRIMONIAL), { headers: reqHeader, responseType: 'text' })\r\n }\r\n\r\n insert_reprovar(cD_BPM_BEM_PATRIMONIAL: number, evidencia: Evidencia): Observable {\r\n return this.http.post(env.baseurl + this.PATH_REPROVAR + '/' + cD_BPM_BEM_PATRIMONIAL, evidencia, { responseType: 'text' })\r\n }\r\n\r\n insert_receber(cD_BPM_BEM_PATRIMONIAL: number): Observable {\r\n return this.http.post(env.baseurl + this.PATH_RECEBER + '/' + cD_BPM_BEM_PATRIMONIAL, { responseType: 'text' })\r\n }\r\n\r\n insert_nao_receber(cD_BPM_BEM_PATRIMONIAL: number, evidencia: Evidencia): Observable {\r\n return this.http.post(env.baseurl + this.PATH_NO_RECEBER + '/' + cD_BPM_BEM_PATRIMONIAL, evidencia, { responseType: 'text' })\r\n }\r\n\r\n mov_getAll(): Observable {\r\n return this.http.get(env.baseurl + this.PATH_MOV);\r\n }\r\n mov_getById(cD_BPM_BEM_PATRIMONIAL: number) {\r\n return this.http.get(env.baseurl + this.PATH_MOV + '/' + cD_BPM_BEM_PATRIMONIAL, { responseType: 'text' })\r\n }\r\n\r\n mov_getBy2Id(NR_BPM_BEM_PATRIMONIAL: number, CD_BPM_MOVIMENTACAO_PATRIMONIAL: number) {\r\n return this.http.get(env.baseurl + this.PATH_MOV + '/' + NR_BPM_BEM_PATRIMONIAL + '/' + CD_BPM_MOVIMENTACAO_PATRIMONIAL)\r\n }\r\n\r\n mov_listarPage(page: any): Observable {\r\n return this.http.post(env.baseurl + this.PATH_MOV_GET_ALL, page)\r\n .pipe(catchError(this.errorHandl));\r\n }\r\n mov_listarHistorico(NR_BPM_BEM_PATRIMONIAL: number, page: any): Observable {\r\n return this.http.post(env.baseurl + this.PATH_HIST + '/' + NR_BPM_BEM_PATRIMONIAL, page)\r\n .pipe(catchError(this.errorHandl));\r\n }\r\n\r\n mov_gestor(cD_CDU_MATRICULA_GESTOR: number): Observable {\r\n return this.http.get(env.baseurl + this.PATH_GESTOR + '/' + cD_CDU_MATRICULA_GESTOR)\r\n }\r\n\r\n mov_listarPageGestor(cD_CDU_MATRICULA: number, page: any): Observable {\r\n return this.http.post(env.baseurl + this.PATH_MOV_GESTOR_GET_ALL + '/' + cD_CDU_MATRICULA, page)\r\n .pipe(catchError(this.errorHandl));\r\n }\r\n\r\n mov_destino(CD_CDU_MATRICULA_DESTINO: number): Observable {\r\n return this.http.get(env.baseurl + this.PATH_DESTINO + '/' + CD_CDU_MATRICULA_DESTINO)\r\n }\r\n\r\n mov_listarPageDestino(cD_CDU_MATRICULA: number, page: any): Observable {\r\n return this.http.post(env.baseurl + this.PATH_MOV_DESTINO_GET_ALL + '/' + cD_CDU_MATRICULA, page)\r\n .pipe(catchError(this.errorHandl));\r\n }\r\n\r\n mov_delete(cD_BPM_MOVIMENTACAO_PATRIMONIAL: number, cD_BPM_BEM_PATRIMONIAL: number) {\r\n return this.http.delete(env.baseurl + this.PATH_MOV + '/' + cD_BPM_MOVIMENTACAO_PATRIMONIAL + '/' + cD_BPM_BEM_PATRIMONIAL, { responseType: 'text' })\r\n }\r\n\r\n mov_getInconOrigAll(cD_CDU_MATRICULA_ORIGEM: number, page: any): Observable {\r\n return this.http.post(env.baseurl + this.PATH_MOV_INCON_ORIG_ALL + '/' + cD_CDU_MATRICULA_ORIGEM, page)\r\n .pipe(catchError(this.errorHandl));\r\n }\r\n\r\n mov_getInconGetAll(page: any, params: any): Observable {\r\n ////console.log/params)\r\n return this.http.post(env.baseurl + this.PATH_MOV_INCON_GET_ALL,page,\r\n {params}) \r\n .pipe(catchError(this.errorHandl));\r\n\r\n \r\n }\r\n\r\n mov_confirmInconOrig(cD_BPM_BEM_PATRIMONIAL: number, evidencia: Evidencia): Observable {\r\n return this.http.post(\r\n env.baseurl + this.PATH_MOV_INCON_ORIG_CONF\r\n + '/' + cD_BPM_BEM_PATRIMONIAL, evidencia, { responseType: 'text' })\r\n }\r\n mov_confirmInGestor(cD_BPM_BEM_PATRIMONIAL: number, evidencia: Evidencia): Observable {\r\n return this.http.post(\r\n env.baseurl + this.PATH_MOV_INCON_GESTOR_CONF\r\n + '/' + cD_BPM_BEM_PATRIMONIAL, evidencia, { responseType: 'text' })\r\n }\r\n\r\n mov_cancelIncon(cD_BPM_BEM_PATRIMONIAL: number, evidencia: Evidencia): Observable {\r\n return this.http.post(\r\n env.baseurl + this.PATH_MOV_INCON_CANCEL\r\n + '/' + cD_BPM_BEM_PATRIMONIAL, evidencia, { responseType: 'text' })\r\n }\r\n\r\n mov_Incon_All(page: any): Observable {\r\n return this.http.post(env.baseurl + this.PATH_MOV_INCON_ALL, page)\r\n .pipe(catchError(this.errorHandl));\r\n }\r\n mov_Incon_Sanar(nR_BPM_BEM_PATRIMONIAL: number, evidencia: Evidencia): Observable {\r\n return this.http.post(env.baseurl + this.PATH_MOV_INCON_SANAR\r\n + '/' + nR_BPM_BEM_PATRIMONIAL, evidencia, { responseType: 'text' })\r\n .pipe(catchError(this.errorHandl));\r\n }\r\n mov_Incon_Alt_Gestor(movimentacao: Movimentacao): Observable {\r\n return this.http.post(env.baseurl + this.PATH_MOV_INCON_ALT_GESTOR,\r\n movimentacao, { responseType: 'text' });\r\n\r\n }\r\n mov_getEv(\r\n nR_BPM_BEM_PATRIMONIAL: number,\r\n cD_BPM_MOVIMENTACAO_PATRIMONIAL: number): Observable {\r\n return this.http.get(env.baseurl + this.PATH_MOV_EV\r\n + nR_BPM_BEM_PATRIMONIAL + \"/\" + cD_BPM_MOVIMENTACAO_PATRIMONIAL);\r\n }\r\n mov_getJuntasEv(nR_BPM_BEM_PATRIMONIAL: number): Observable {\r\n return this.http.post(env.baseurl + this.PATH_MOV_EV_JUNTAS + nR_BPM_BEM_PATRIMONIAL, { responseType: 'json' });\r\n }\r\n mov_getEvAvulso(nR_BPM_BEM_PATRIMONIAL: number, evidencia: Evidencia): Observable {\r\n return this.http.post(env.baseurl + this.PATH_MOV_EV_AVULSO\r\n + nR_BPM_BEM_PATRIMONIAL, evidencia, { responseType: 'text' });\r\n }\r\n mov_getEvSanatoria(nR_BPM_BEM_PATRIMONIAL: number): Observable {\r\n return this.http.post(env.baseurl + this.PATH_MOV_EV_SANATORIAS\r\n + nR_BPM_BEM_PATRIMONIAL, { responseType: 'text' });\r\n }\r\n mov_getHistDetalhar(nR_BPM_BEM_PATRIMONIAL: number, cD_BPM_MOVIMENTACAO_PATRIMONIAL: number, cD_BPM_MOVIMENTACAO_PATRIMONIAL_FIM: number): Observable {\r\n return this.http.get(\r\n env.baseurl + this.PATH_MOV + \"/\" +\r\n nR_BPM_BEM_PATRIMONIAL + \"/\" + cD_BPM_MOVIMENTACAO_PATRIMONIAL + \"/\" +\r\n cD_BPM_MOVIMENTACAO_PATRIMONIAL_FIM);\r\n }\r\n mov_getRelatorio(nR_BPM_BEM_PATRIMONIAL: number):Observable{\r\n return this.http.get(env.baseurl + this.PATH_RELATORIO + nR_BPM_BEM_PATRIMONIAL,{responseType: 'blob'}).pipe(catchError(this.errorHandl));\r\n }\r\n mov_incon_getRelatorio(relatorio:RelatorioIncon):Observable{\r\n return this.http.post(env.baseurl + this.PATH_MOV_INCON_RELATORIO,relatorio,{responseType:'blob'})\r\n }\r\n\r\n\r\n //TIPO DE MOVIMENTAÇÃO\r\n insert_tipo_mov(tipoMovimentacao: TipoMovimentacao) {\r\n return this.http.post(env.baseurl + this.PATH_TIP_MOV, tipoMovimentacao, { responseType: 'text' })\r\n }\r\n tipo_mov_listarPage(page: any): Observable {\r\n return this.http.post(env.baseurl + this.PATH_TIP_MOV_GET_ALL, page)\r\n .pipe(catchError(this.errorHandl));\r\n }\r\n tipo_mov_getAll(): Observable {\r\n return this.http.get(env.baseurl + this.PATH_TIP_MOV, { responseType: 'text' });\r\n }\r\n tipo_mov_getById(cD_BPM_TIPO_MOVIMENTACAO_PATRIMONIAL: number): Observable {\r\n return this.http.get(env.baseurl + this.PATH_TIP_MOV + '/' + cD_BPM_TIPO_MOVIMENTACAO_PATRIMONIAL, { responseType: 'text' });\r\n }\r\n tipo_mov_update(tipoMovimentacao: TipoMovimentacao): Observable {\r\n return this.http.put(env.baseurl + this.PATH_TIP_MOV, tipoMovimentacao, { responseType: 'text' })\r\n }\r\n tipo_mov_delete(cD_BPM_TIPO_MOVIMENTACAO_PATRIMONIAL: number): Observable {\r\n return this.http.delete(env.baseurl + this.PATH_TIP_MOV + '/' + cD_BPM_TIPO_MOVIMENTACAO_PATRIMONIAL, { responseType: 'text' });\r\n }\r\n}","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeTo = (result) => {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n const msg = `You provided ${value} where a stream was expected.`\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeToObservable = (obj) => (subscriber) => {\n const obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n};\n//# sourceMappingURL=subscribeToObservable.js.map","import { hostReportError } from './hostReportError';\nexport const subscribeToPromise = (promise) => (subscriber) => {\n promise.then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, hostReportError);\n return subscriber;\n};\n//# sourceMappingURL=subscribeToPromise.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport const subscribeToIterable = (iterable) => (subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n do {\n let item;\n try {\n item = iterator.next();\n }\n catch (err) {\n subscriber.error(err);\n return subscriber;\n }\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(() => {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n};\n//# sourceMappingURL=subscribeToIterable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge(...observables) {\n let concurrent = Number.POSITIVE_INFINITY;\n let scheduler = null;\n let last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { Subscription } from './Subscription';\nexport class SubjectSubscription extends Subscription {\n constructor(subject, subscriber) {\n super();\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.closed = true;\n const subject = this.subject;\n const observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n const subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n//# sourceMappingURL=SubjectSubscription.js.map","import { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nexport class SubjectSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n this.destination = destination;\n }\n}\nexport class Subject extends Observable {\n constructor() {\n super();\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n next(value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n error(err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n _trySubscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return super._trySubscribe(subscriber);\n }\n }\n _subscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n error(err) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n _subscribe(subscriber) {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n }\n}\n//# sourceMappingURL=Subject.js.map","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map","import { Subscriber } from './Subscriber';\nexport class InnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n this.index = 0;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n }\n _error(error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\n//# sourceMappingURL=InnerSubscriber.js.map","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex)) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n//# sourceMappingURL=subscribeToResult.js.map","import { Component, EventEmitter, forwardRef, ViewEncapsulation, ElementRef, Renderer2, ViewChild, Input, Output, ContentChild, TemplateRef, Pipe, NgModule } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { map, filter, debounceTime } from 'rxjs/operators';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @fileoverview added by tsickle\n * Generated from: lib/autocomplete-lib.component.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\nimport * as ɵngcc2 from '@angular/forms';\n\nconst _c0 = [\"searchInput\"];\nconst _c1 = [\"filteredListElement\"];\nconst _c2 = [\"historyListElement\"];\nfunction AutocompleteComponent_div_4_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 13);\n ɵngcc0.ɵɵlistener(\"click\", function AutocompleteComponent_div_4_Template_div_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ctx_r11.remove($event); });\n ɵngcc0.ɵɵelementStart(1, \"i\", 14);\n ɵngcc0.ɵɵtext(2, \"close\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction AutocompleteComponent_div_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 15);\n ɵngcc0.ɵɵelement(1, \"div\", 16);\n ɵngcc0.ɵɵelement(2, \"div\", 17);\n ɵngcc0.ɵɵelement(3, \"div\", 18);\n ɵngcc0.ɵɵelement(4, \"div\", 19);\n ɵngcc0.ɵɵelement(5, \"div\", 20);\n ɵngcc0.ɵɵelement(6, \"div\", 21);\n ɵngcc0.ɵɵelement(7, \"div\", 22);\n ɵngcc0.ɵɵelement(8, \"div\", 23);\n ɵngcc0.ɵɵelement(9, \"div\", 24);\n ɵngcc0.ɵɵelement(10, \"div\", 25);\n ɵngcc0.ɵɵelement(11, \"div\", 26);\n ɵngcc0.ɵɵelement(12, \"div\", 27);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction AutocompleteComponent_div_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 28);\n ɵngcc0.ɵɵelementStart(1, \"div\", 29);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r3.heading);\n} }\nfunction AutocompleteComponent_li_10_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nconst _c3 = function (a0) { return { $implicit: a0 }; };\nfunction AutocompleteComponent_li_10_div_1_Template(rf, ctx) { if (rf & 1) {\n const _r20 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 32);\n ɵngcc0.ɵɵlistener(\"click\", function AutocompleteComponent_li_10_div_1_Template_div_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r20); const item_r13 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r18 = ɵngcc0.ɵɵnextContext(); return ctx_r18.select(item_r13); });\n ɵngcc0.ɵɵtemplate(1, AutocompleteComponent_li_10_div_1_ng_container_1_Template, 1, 0, \"ng-container\", 33);\n ɵngcc0.ɵɵpipe(2, \"highlight\");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r21 = ɵngcc0.ɵɵnextContext();\n const idx_r14 = ctx_r21.index;\n const item_r13 = ctx_r21.$implicit;\n const ctx_r15 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"complete-selected\", idx_r14 === ctx_r15.selectedIdx);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r15.itemTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(7, _c3, ɵngcc0.ɵɵpipeBind2(2, 4, item_r13, ctx_r15.toHighlight)));\n} }\nfunction AutocompleteComponent_li_10_div_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction AutocompleteComponent_li_10_div_2_Template(rf, ctx) { if (rf & 1) {\n const _r25 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 32);\n ɵngcc0.ɵɵlistener(\"click\", function AutocompleteComponent_li_10_div_2_Template_div_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r25); const item_r13 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r23 = ɵngcc0.ɵɵnextContext(); return ctx_r23.select(item_r13); });\n ɵngcc0.ɵɵtemplate(1, AutocompleteComponent_li_10_div_2_ng_container_1_Template, 1, 0, \"ng-container\", 33);\n ɵngcc0.ɵɵpipe(2, \"highlight\");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r26 = ɵngcc0.ɵɵnextContext();\n const idx_r14 = ctx_r26.index;\n const item_r13 = ctx_r26.$implicit;\n const ctx_r16 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"complete-selected\", idx_r14 === ctx_r16.selectedIdx);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r16.itemTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(8, _c3, ɵngcc0.ɵɵpipeBind3(2, 4, item_r13, ctx_r16.toHighlight, ctx_r16.searchKeyword)));\n} }\nfunction AutocompleteComponent_li_10_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 30);\n ɵngcc0.ɵɵtemplate(1, AutocompleteComponent_li_10_div_1_Template, 3, 9, \"div\", 31);\n ɵngcc0.ɵɵtemplate(2, AutocompleteComponent_li_10_div_2_Template, 3, 10, \"div\", 31);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r13 = ctx.$implicit;\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r5.isTypeString(item_r13));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r5.isTypeString(item_r13));\n} }\nfunction AutocompleteComponent_div_12_Template(rf, ctx) { if (rf & 1) {\n const _r28 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 28);\n ɵngcc0.ɵɵelementStart(1, \"div\", 29);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"div\", 13);\n ɵngcc0.ɵɵlistener(\"click\", function AutocompleteComponent_div_12_Template_div_click_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r28); const ctx_r27 = ɵngcc0.ɵɵnextContext(); return ctx_r27.resetHistoryList($event); });\n ɵngcc0.ɵɵelementStart(4, \"i\", 14);\n ɵngcc0.ɵɵtext(5, \"delete\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r6.historyHeading);\n} }\nfunction AutocompleteComponent_li_15_div_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction AutocompleteComponent_li_15_div_1_Template(rf, ctx) { if (rf & 1) {\n const _r36 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 32);\n ɵngcc0.ɵɵlistener(\"click\", function AutocompleteComponent_li_15_div_1_Template_div_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r36); const item_r29 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r34 = ɵngcc0.ɵɵnextContext(); return ctx_r34.select(item_r29); });\n ɵngcc0.ɵɵtemplate(1, AutocompleteComponent_li_15_div_1_ng_container_1_Template, 1, 0, \"ng-container\", 33);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r37 = ɵngcc0.ɵɵnextContext();\n const idx_r30 = ctx_r37.index;\n const item_r29 = ctx_r37.$implicit;\n const ctx_r31 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"complete-selected\", idx_r30 === ctx_r31.selectedIdx);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r31.itemTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(4, _c3, item_r29));\n} }\nfunction AutocompleteComponent_li_15_div_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction AutocompleteComponent_li_15_div_2_Template(rf, ctx) { if (rf & 1) {\n const _r41 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 32);\n ɵngcc0.ɵɵlistener(\"click\", function AutocompleteComponent_li_15_div_2_Template_div_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r41); const item_r29 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r39 = ɵngcc0.ɵɵnextContext(); return ctx_r39.select(item_r29); });\n ɵngcc0.ɵɵtemplate(1, AutocompleteComponent_li_15_div_2_ng_container_1_Template, 1, 0, \"ng-container\", 33);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r42 = ɵngcc0.ɵɵnextContext();\n const idx_r30 = ctx_r42.index;\n const item_r29 = ctx_r42.$implicit;\n const ctx_r32 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"complete-selected\", idx_r30 === ctx_r32.selectedIdx);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r32.itemTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(4, _c3, item_r29));\n} }\nfunction AutocompleteComponent_li_15_Template(rf, ctx) { if (rf & 1) {\n const _r44 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 30);\n ɵngcc0.ɵɵtemplate(1, AutocompleteComponent_li_15_div_1_Template, 2, 6, \"div\", 31);\n ɵngcc0.ɵɵtemplate(2, AutocompleteComponent_li_15_div_2_Template, 2, 6, \"div\", 31);\n ɵngcc0.ɵɵelementStart(3, \"div\", 13);\n ɵngcc0.ɵɵlistener(\"click\", function AutocompleteComponent_li_15_Template_div_click_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r44); const idx_r30 = ctx.index; const ctx_r43 = ɵngcc0.ɵɵnextContext(); return ctx_r43.removeHistoryItem(idx_r30, $event); });\n ɵngcc0.ɵɵelementStart(4, \"i\", 14);\n ɵngcc0.ɵɵtext(5, \"close\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const item_r29 = ctx.$implicit;\n const ctx_r8 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r8.isTypeString(item_r29));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r8.isTypeString(item_r29));\n} }\nfunction AutocompleteComponent_div_16_ng_container_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainer(0);\n} }\nfunction AutocompleteComponent_div_16_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 34);\n ɵngcc0.ɵɵtemplate(1, AutocompleteComponent_div_16_ng_container_1_Template, 1, 0, \"ng-container\", 33);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r9 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r9.notFoundTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(2, _c3, ctx_r9.notFoundText));\n} }\nfunction AutocompleteComponent_div_17_Template(rf, ctx) { if (rf & 1) {\n const _r47 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 35);\n ɵngcc0.ɵɵlistener(\"click\", function AutocompleteComponent_div_17_Template_div_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r47); const ctx_r46 = ɵngcc0.ɵɵnextContext(); return ctx_r46.handleOverlay(); });\n ɵngcc0.ɵɵelementEnd();\n} }\nconst _c4 = function (a0) { return { \"active\": a0 }; };\nconst _c5 = function (a0, a1) { return { \"is-hidden\": a0, \"is-visible\": a1 }; };\nclass AutocompleteLibComponent {\n constructor() {\n }\n /**\n * @return {?}\n */\n ngOnInit() {\n }\n}\nAutocompleteLibComponent.ɵfac = function AutocompleteLibComponent_Factory(t) { return new (t || AutocompleteLibComponent)(); };\nAutocompleteLibComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: AutocompleteLibComponent, selectors: [[\"ng-autocomplete-lib\"]], decls: 2, vars: 0, template: function AutocompleteLibComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"p\");\n ɵngcc0.ɵɵtext(1, \" autocomplete-lib works! \");\n ɵngcc0.ɵɵelementEnd();\n } }, encapsulation: 2 });\n/** @nocollapse */\nAutocompleteLibComponent.ctorParameters = () => [];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(AutocompleteLibComponent, [{\n type: Component,\n args: [{\n selector: 'ng-autocomplete-lib',\n template: `\n

    \n autocomplete-lib works!\n

    \n `\n }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * Generated from: lib/autocomplete/autocomplete.component.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Keyboard events\n * @type {?}\n */\nconst isArrowUp = (/**\n * @param {?} keyCode\n * @return {?}\n */\nkeyCode => keyCode === 38);\nconst ɵ0 = isArrowUp;\n/** @type {?} */\nconst isArrowDown = (/**\n * @param {?} keyCode\n * @return {?}\n */\nkeyCode => keyCode === 40);\nconst ɵ1 = isArrowDown;\n/** @type {?} */\nconst isArrowUpDown = (/**\n * @param {?} keyCode\n * @return {?}\n */\nkeyCode => isArrowUp(keyCode) || isArrowDown(keyCode));\nconst ɵ2 = isArrowUpDown;\n/** @type {?} */\nconst isEnter = (/**\n * @param {?} keyCode\n * @return {?}\n */\nkeyCode => keyCode === 13);\nconst ɵ3 = isEnter;\n/** @type {?} */\nconst isBackspace = (/**\n * @param {?} keyCode\n * @return {?}\n */\nkeyCode => keyCode === 8);\nconst ɵ4 = isBackspace;\n/** @type {?} */\nconst isDelete = (/**\n * @param {?} keyCode\n * @return {?}\n */\nkeyCode => keyCode === 46);\nconst ɵ5 = isDelete;\n/** @type {?} */\nconst isESC = (/**\n * @param {?} keyCode\n * @return {?}\n */\nkeyCode => keyCode === 27);\nconst ɵ6 = isESC;\n/** @type {?} */\nconst isTab = (/**\n * @param {?} keyCode\n * @return {?}\n */\nkeyCode => keyCode === 9);\nconst ɵ7 = isTab;\nclass AutocompleteComponent {\n /**\n * @param {?} elementRef\n * @param {?} renderer\n */\n constructor(elementRef, renderer) {\n this.renderer = renderer;\n this.query = ''; // search query\n // search query\n this.filteredList = []; // list of items\n // list of items\n this.historyList = []; // list of history items\n // list of history items\n this.isHistoryListVisible = true;\n this.selectedIdx = -1;\n this.toHighlight = '';\n this.notFound = false;\n this.isFocused = false;\n this.isOpen = false;\n this.isScrollToEnd = false;\n this.overlay = false;\n this.manualOpen = undefined;\n this.manualClose = undefined;\n // @Inputs\n /**\n * Data of items list.\n * It can be array of strings or array of objects.\n */\n this.data = [];\n // keyword to filter the list\n this.placeholder = '';\n this.heading = '';\n /**\n * Heading text of history list.\n * If it is null then history heading is hidden.\n */\n this.historyHeading = 'Recently selected';\n this.historyListMaxNumber = 15; // maximum number of items in the history list.\n // maximum number of items in the history list.\n this.notFoundText = 'Not found'; // set custom text when filter returns empty result\n // input disable/enable\n /**\n * The minimum number of characters the user must type before a search is performed.\n */\n this.minQueryLength = 1;\n /**\n * Focus first item in the list\n */\n this.focusFirst = false;\n // @Output events\n /**\n * Event that is emitted whenever an item from the list is selected.\n */\n this.selected = new EventEmitter();\n /**\n * Event that is emitted whenever an input is changed.\n */\n this.inputChanged = new EventEmitter();\n /**\n * Event that is emitted whenever an input is focused.\n */\n this.inputFocused = new EventEmitter();\n /**\n * Event that is emitted whenever an input is cleared.\n */\n this.inputCleared = new EventEmitter();\n /**\n * Event that is emitted when the autocomplete panel is opened.\n */\n this.opened = new EventEmitter();\n /**\n * Event that is emitted when the autocomplete panel is closed.\n */\n this.closed = new EventEmitter();\n /**\n * Event that is emitted when scrolled to the end of items.\n */\n this.scrolledToEnd = new EventEmitter();\n /**\n * Propagates new value when model changes\n */\n this.propagateChange = (/**\n * @return {?}\n */\n () => {\n });\n this.onTouched = (/**\n * @return {?}\n */\n () => {\n });\n this.elementRef = elementRef;\n }\n /**\n * Writes a new value from the form model into the view,\n * Updates model\n * @param {?=} value\n * @return {?}\n */\n writeValue(value = '') {\n this.query = value && !this.isTypeString(value) ? value[this.searchKeyword] : value;\n }\n /**\n * Registers a handler that is called when something in the view has changed\n * @param {?} fn\n * @return {?}\n */\n registerOnChange(fn) {\n this.propagateChange = fn;\n }\n /**\n * Registers a handler specifically for when a control receives a touch event\n * @param {?} fn\n * @return {?}\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Event that is called when the value of an input element is changed\n * @param {?} event\n * @return {?}\n */\n onChange(event) {\n this.propagateChange(event.target.value);\n }\n /**\n * Event that is called when the control status changes to or from DISABLED\n * @param {?} isDisabled\n * @return {?}\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * @return {?}\n */\n ngOnInit() {\n }\n /**\n * @return {?}\n */\n ngAfterViewInit() {\n this.initEventStream();\n this.handleScroll();\n }\n /**\n * Set initial value\n * @param {?} value\n * @return {?}\n */\n setInitialValue(value) {\n if (this.initialValue) {\n this.select(value);\n }\n }\n /**\n * Update search results\n * @param {?} changes\n * @return {?}\n */\n ngOnChanges(changes) {\n this.setInitialValue(this.initialValue);\n if (changes &&\n changes.data &&\n Array.isArray(changes.data.currentValue)) {\n this.handleItemsChange();\n if (!changes.data.firstChange && this.isFocused) {\n this.handleOpen();\n }\n }\n }\n /**\n * Items change\n * @return {?}\n */\n handleItemsChange() {\n this.isScrollToEnd = false;\n if (!this.isOpen) {\n return;\n }\n this.filteredList = this.data;\n this.notFound = !this.filteredList || this.filteredList.length === 0;\n // Filter list when updating data and panel is open\n if (this.isOpen) {\n this.filterList();\n }\n }\n /**\n * Filter data\n * @return {?}\n */\n filterList() {\n this.selectedIdx = -1;\n this.initSearchHistory();\n if (this.query != null && this.data) {\n this.toHighlight = this.query;\n this.filteredList = this.customFilter !== undefined ? this.customFilter([...this.data], this.query) : this.defaultFilterFunction();\n // If [focusFirst]=\"true\" automatically focus the first match\n if (this.filteredList.length > 0 && this.focusFirst) {\n this.selectedIdx = 0;\n }\n }\n else {\n this.notFound = false;\n }\n }\n /**\n * Default filter function, used unless customFilter is provided\n * @return {?}\n */\n defaultFilterFunction() {\n return this.data.filter((/**\n * @param {?} item\n * @return {?}\n */\n (item) => {\n if (typeof item === 'string') {\n // string logic, check equality of strings\n return item.toLowerCase().indexOf(this.query.toLowerCase()) > -1;\n }\n else if (typeof item === 'object' && item instanceof Object) {\n // object logic, check property equality\n return item[this.searchKeyword].toLowerCase().indexOf(this.query.toLowerCase()) > -1;\n }\n }));\n }\n /**\n * Check if item is a string in the list.\n * @param {?} item\n * @return {?}\n */\n isTypeString(item) {\n return typeof item === 'string';\n }\n /**\n * Select item in the list.\n * @param {?} item\n * @return {?}\n */\n select(item) {\n this.query = !this.isTypeString(item) ? item[this.searchKeyword] : item;\n this.isOpen = true;\n this.overlay = false;\n this.selected.emit(item);\n this.propagateChange(item);\n if (this.initialValue) {\n // check if history already exists in localStorage and then update\n /** @type {?} */\n const history = window.localStorage.getItem(`${this.historyIdentifier}`);\n if (history) {\n /** @type {?} */\n let existingHistory = JSON.parse(localStorage[`${this.historyIdentifier}`]);\n if (!(existingHistory instanceof Array))\n existingHistory = [];\n // check if selected item exists in existingHistory\n if (!existingHistory.some((/**\n * @param {?} existingItem\n * @return {?}\n */\n (existingItem) => !this.isTypeString(existingItem)\n ? existingItem[this.searchKeyword] == item[this.searchKeyword] : existingItem == item))) {\n existingHistory.unshift(item);\n localStorage.setItem(`${this.historyIdentifier}`, JSON.stringify(existingHistory));\n // check if items don't exceed max allowed number\n if (existingHistory.length >= this.historyListMaxNumber) {\n existingHistory.splice(existingHistory.length - 1, 1);\n localStorage.setItem(`${this.historyIdentifier}`, JSON.stringify(existingHistory));\n }\n }\n else {\n // if selected item exists in existingHistory swap to top in array\n if (!this.isTypeString(item)) {\n // object logic\n /** @type {?} */\n const copiedExistingHistory = existingHistory.slice();\n // copy original existingHistory array\n /** @type {?} */\n const selectedIndex = copiedExistingHistory.map((/**\n * @param {?} el\n * @return {?}\n */\n (el) => el[this.searchKeyword])).indexOf(item[this.searchKeyword]);\n copiedExistingHistory.splice(selectedIndex, 1);\n copiedExistingHistory.splice(0, 0, item);\n localStorage.setItem(`${this.historyIdentifier}`, JSON.stringify(copiedExistingHistory));\n }\n else {\n // string logic\n /** @type {?} */\n const copiedExistingHistory = existingHistory.slice();\n copiedExistingHistory.splice(copiedExistingHistory.indexOf(item), 1);\n copiedExistingHistory.splice(0, 0, item);\n localStorage.setItem(`${this.historyIdentifier}`, JSON.stringify(copiedExistingHistory));\n }\n }\n }\n else {\n this.saveHistory(item);\n }\n }\n else {\n this.saveHistory(item);\n }\n this.handleClose();\n }\n /**\n * Document click\n * @param {?} e event\n * @return {?}\n */\n handleClick(e) {\n /** @type {?} */\n let clickedComponent = e.target;\n /** @type {?} */\n let inside = false;\n do {\n if (clickedComponent === this.elementRef.nativeElement) {\n inside = true;\n if (this.filteredList.length) {\n this.handleOpen();\n }\n }\n clickedComponent = clickedComponent.parentNode;\n } while (clickedComponent);\n if (!inside) {\n this.handleClose();\n }\n }\n /**\n * Handle body overlay\n * @return {?}\n */\n handleOverlay() {\n this.overlay = false;\n }\n /**\n * Scroll items\n * @return {?}\n */\n handleScroll() {\n this.renderer.listen(this.filteredListElement.nativeElement, 'scroll', (/**\n * @return {?}\n */\n () => {\n this.scrollToEnd();\n }));\n }\n /**\n * Define panel state\n * @param {?} event\n * @return {?}\n */\n setPanelState(event) {\n if (event) {\n event.stopPropagation();\n }\n // If controls are untouched\n if (typeof this.manualOpen === 'undefined'\n && typeof this.manualClose === 'undefined') {\n this.isOpen = false;\n this.handleOpen();\n }\n // If one of the controls is untouched and other is deactivated\n if (typeof this.manualOpen === 'undefined'\n && this.manualClose === false\n || typeof this.manualClose === 'undefined'\n && this.manualOpen === false) {\n this.isOpen = false;\n this.handleOpen();\n }\n // if controls are touched but both are deactivated\n if (this.manualOpen === false && this.manualClose === false) {\n this.isOpen = false;\n this.handleOpen();\n }\n // if open control is touched and activated\n if (this.manualOpen) {\n this.isOpen = false;\n this.handleOpen();\n this.manualOpen = false;\n }\n // if close control is touched and activated\n if (this.manualClose) {\n this.isOpen = true;\n this.handleClose();\n this.manualClose = false;\n }\n }\n /**\n * Manual controls\n * @return {?}\n */\n open() {\n this.manualOpen = true;\n this.isOpen = false;\n this.handleOpen();\n }\n /**\n * @return {?}\n */\n close() {\n this.manualClose = true;\n this.isOpen = true;\n this.handleClose();\n }\n /**\n * @return {?}\n */\n focus() {\n this.handleFocus(event);\n }\n /**\n * @return {?}\n */\n clear() {\n this.remove(event);\n }\n /**\n * Remove search query\n * @param {?} e\n * @return {?}\n */\n remove(e) {\n e.stopPropagation();\n this.query = '';\n this.inputCleared.emit();\n this.propagateChange(this.query);\n this.setPanelState(e);\n if (this.data && !this.data.length) {\n this.notFound = false;\n }\n }\n /**\n * Initialize historyList search\n * @return {?}\n */\n initSearchHistory() {\n this.isHistoryListVisible = false;\n if (this.historyIdentifier && !this.query) {\n /** @type {?} */\n const history = window.localStorage.getItem(`${this.historyIdentifier}`);\n if (history) {\n this.isHistoryListVisible = true;\n this.filteredList = [];\n this.historyList = history ? JSON.parse(history) : [];\n }\n else {\n this.isHistoryListVisible = false;\n }\n }\n else {\n this.isHistoryListVisible = false;\n }\n }\n /**\n * @return {?}\n */\n handleOpen() {\n if (this.isOpen || this.isOpen && !this.isLoading) {\n return;\n }\n // If data exists\n if (this.data && this.data.length) {\n this.isOpen = true;\n this.overlay = true;\n this.filterList();\n this.opened.emit();\n }\n }\n /**\n * @return {?}\n */\n handleClose() {\n if (!this.isOpen) {\n this.isFocused = false;\n return;\n }\n this.isOpen = false;\n this.overlay = false;\n this.filteredList = [];\n this.selectedIdx = -1;\n this.notFound = false;\n this.isHistoryListVisible = false;\n this.isFocused = false;\n this.closed.emit();\n }\n /**\n * @param {?} e\n * @return {?}\n */\n handleFocus(e) {\n this.searchInput.nativeElement.focus();\n if (this.isFocused) {\n return;\n }\n this.inputFocused.emit(e);\n // if data exists then open\n if (this.data && this.data.length) {\n this.setPanelState(event);\n }\n this.isFocused = true;\n }\n /**\n * @return {?}\n */\n scrollToEnd() {\n if (this.isScrollToEnd) {\n return;\n }\n /** @type {?} */\n const scrollTop = this.filteredListElement.nativeElement\n .scrollTop;\n /** @type {?} */\n const scrollHeight = this.filteredListElement.nativeElement\n .scrollHeight;\n /** @type {?} */\n const elementHeight = this.filteredListElement.nativeElement\n .clientHeight;\n /** @type {?} */\n const atBottom = scrollHeight === scrollTop + elementHeight;\n if (atBottom) {\n this.scrolledToEnd.emit();\n this.isScrollToEnd = true;\n }\n }\n /**\n * Initialize keyboard events\n * @return {?}\n */\n initEventStream() {\n this.inputKeyUp$ = fromEvent(this.searchInput.nativeElement, 'keyup').pipe(map((/**\n * @param {?} e\n * @return {?}\n */\n (e) => e)));\n this.inputKeyDown$ = fromEvent(this.searchInput.nativeElement, 'keydown').pipe(map((/**\n * @param {?} e\n * @return {?}\n */\n (e) => e)));\n this.listenEventStream();\n }\n /**\n * Listen keyboard events\n * @return {?}\n */\n listenEventStream() {\n // key up event\n this.inputKeyUp$\n .pipe(filter((/**\n * @param {?} e\n * @return {?}\n */\n e => !isArrowUpDown(e.keyCode) &&\n !isEnter(e.keyCode) &&\n !isESC(e.keyCode) &&\n !isTab(e.keyCode))), debounceTime(this.debounceTime)).subscribe((/**\n * @param {?} e\n * @return {?}\n */\n e => {\n this.onKeyUp(e);\n }));\n // cursor up & down\n this.inputKeyDown$.pipe(filter((/**\n * @param {?} e\n * @return {?}\n */\n e => isArrowUpDown(e.keyCode)))).subscribe((/**\n * @param {?} e\n * @return {?}\n */\n e => {\n e.preventDefault();\n this.onFocusItem(e);\n }));\n // enter keyup\n this.inputKeyUp$.pipe(filter((/**\n * @param {?} e\n * @return {?}\n */\n e => isEnter(e.keyCode)))).subscribe((/**\n * @param {?} e\n * @return {?}\n */\n e => {\n //this.onHandleEnter();\n }));\n // enter keydown\n this.inputKeyDown$.pipe(filter((/**\n * @param {?} e\n * @return {?}\n */\n e => isEnter(e.keyCode)))).subscribe((/**\n * @param {?} e\n * @return {?}\n */\n e => {\n this.onHandleEnter();\n }));\n // ESC\n this.inputKeyUp$.pipe(filter((/**\n * @param {?} e\n * @return {?}\n */\n e => isESC(e.keyCode)), debounceTime(100))).subscribe((/**\n * @param {?} e\n * @return {?}\n */\n e => {\n this.onEsc();\n }));\n // TAB\n this.inputKeyDown$.pipe(filter((/**\n * @param {?} e\n * @return {?}\n */\n e => isTab(e.keyCode)))).subscribe((/**\n * @param {?} e\n * @return {?}\n */\n e => {\n this.onTab();\n }));\n // delete\n this.inputKeyDown$.pipe(filter((/**\n * @param {?} e\n * @return {?}\n */\n e => isBackspace(e.keyCode) || isDelete(e.keyCode)))).subscribe((/**\n * @param {?} e\n * @return {?}\n */\n e => {\n this.onDelete();\n }));\n }\n /**\n * on keyup == when input changed\n * @param {?} e event\n * @return {?}\n */\n onKeyUp(e) {\n this.notFound = false; // search results are unknown while typing\n // if input is empty\n if (!this.query) {\n this.notFound = false;\n this.inputChanged.emit(e.target.value);\n this.inputCleared.emit();\n this.setPanelState(e);\n }\n // note that '' can be a valid query\n if (!this.query && this.query !== '') {\n return;\n }\n // if query >= to minQueryLength\n if (this.query.length >= this.minQueryLength) {\n this.inputChanged.emit(e.target.value);\n this.filterList();\n // If no results found\n if (!this.filteredList.length && !this.isLoading) {\n this.notFoundText ? this.notFound = true : this.notFound = false;\n }\n if (this.data && !this.data.length) {\n this.isOpen = true;\n }\n }\n }\n /**\n * Keyboard arrow top and arrow bottom\n * @param {?} e event\n * @return {?}\n */\n onFocusItem(e) {\n // move arrow up and down on filteredList or historyList\n if (!this.historyList.length || !this.isHistoryListVisible) {\n // filteredList\n /** @type {?} */\n const totalNumItem = this.filteredList.length;\n if (e.key === 'ArrowDown') {\n /** @type {?} */\n let sum = this.selectedIdx;\n sum = (this.selectedIdx === null) ? 0 : sum + 1;\n this.selectedIdx = (totalNumItem + sum) % totalNumItem;\n this.scrollToFocusedItem(this.selectedIdx);\n }\n else if (e.key === 'ArrowUp') {\n if (this.selectedIdx == -1) {\n this.selectedIdx = 0;\n }\n this.selectedIdx = (totalNumItem + this.selectedIdx - 1) % totalNumItem;\n this.scrollToFocusedItem(this.selectedIdx);\n }\n }\n else {\n // historyList\n /** @type {?} */\n const totalNumItem = this.historyList.length;\n if (e.key === 'ArrowDown') {\n /** @type {?} */\n let sum = this.selectedIdx;\n sum = (this.selectedIdx === null) ? 0 : sum + 1;\n this.selectedIdx = (totalNumItem + sum) % totalNumItem;\n this.scrollToFocusedItem(this.selectedIdx);\n }\n else if (e.key === 'ArrowUp') {\n if (this.selectedIdx == -1) {\n this.selectedIdx = 0;\n }\n this.selectedIdx = (totalNumItem + this.selectedIdx - 1) % totalNumItem;\n this.scrollToFocusedItem(this.selectedIdx);\n }\n }\n }\n /**\n * Scroll to focused item\n * * \\@param index\n * @param {?} index\n * @return {?}\n */\n scrollToFocusedItem(index) {\n /** @type {?} */\n let listElement = null;\n // Define list element\n if (!this.historyList.length || !this.isHistoryListVisible) {\n // filteredList element\n listElement = this.filteredListElement.nativeElement;\n }\n else {\n // historyList element\n listElement = this.historyListElement.nativeElement;\n }\n /** @type {?} */\n const items = Array.prototype.slice.call(listElement.childNodes).filter((/**\n * @param {?} node\n * @return {?}\n */\n (node) => {\n if (node.nodeType === 1) {\n // if node is element\n return node.className.includes('item');\n }\n else {\n return false;\n }\n }));\n if (!items.length) {\n return;\n }\n /** @type {?} */\n const listHeight = listElement.offsetHeight;\n /** @type {?} */\n const itemHeight = items[index].offsetHeight;\n /** @type {?} */\n const visibleTop = listElement.scrollTop;\n /** @type {?} */\n const visibleBottom = listElement.scrollTop + listHeight - itemHeight;\n /** @type {?} */\n const targetPosition = items[index].offsetTop;\n if (targetPosition < visibleTop) {\n listElement.scrollTop = targetPosition;\n }\n if (targetPosition > visibleBottom) {\n listElement.scrollTop = targetPosition - listHeight + itemHeight;\n }\n }\n /**\n * Select item on enter click\n * @return {?}\n */\n onHandleEnter() {\n // click enter to choose item from filteredList or historyList\n if (this.selectedIdx > -1) {\n if (!this.historyList.length || !this.isHistoryListVisible) {\n // filteredList\n this.query = !this.isTypeString(this.filteredList[this.selectedIdx])\n ? this.filteredList[this.selectedIdx][this.searchKeyword]\n : this.filteredList[this.selectedIdx];\n this.saveHistory(this.filteredList[this.selectedIdx]);\n this.select(this.filteredList[this.selectedIdx]);\n }\n else {\n // historyList\n this.query = !this.isTypeString(this.historyList[this.selectedIdx])\n ? this.historyList[this.selectedIdx][this.searchKeyword]\n : this.historyList[this.selectedIdx];\n this.saveHistory(this.historyList[this.selectedIdx]);\n this.select(this.historyList[this.selectedIdx]);\n }\n }\n this.isHistoryListVisible = false;\n this.handleClose();\n }\n /**\n * Esc click\n * @return {?}\n */\n onEsc() {\n this.searchInput.nativeElement.blur();\n this.handleClose();\n }\n /**\n * Tab click\n * @return {?}\n */\n onTab() {\n this.searchInput.nativeElement.blur();\n this.handleClose();\n }\n /**\n * Delete click\n * @return {?}\n */\n onDelete() {\n this.isOpen = true;\n }\n /**\n * Select item to save in localStorage\n * @param {?} selected\n * @return {?}\n */\n saveHistory(selected) {\n if (this.historyIdentifier) {\n // check if selected item exists in historyList\n if (!this.historyList.some((/**\n * @param {?} item\n * @return {?}\n */\n (item) => !this.isTypeString(item)\n ? item[this.searchKeyword] == selected[this.searchKeyword] : item == selected))) {\n this.saveHistoryToLocalStorage([selected, ...this.historyList]);\n // check if items don't exceed max allowed number\n if (this.historyList.length >= this.historyListMaxNumber) {\n this.historyList.splice(this.historyList.length - 1, 1);\n this.saveHistoryToLocalStorage([selected, ...this.historyList]);\n }\n }\n else {\n // if selected item exists in historyList swap to top in array\n if (!this.isTypeString(selected)) {\n // object logic\n /** @type {?} */\n const copiedHistoryList = this.historyList.slice();\n // copy original historyList array\n /** @type {?} */\n const selectedIndex = copiedHistoryList.map((/**\n * @param {?} item\n * @return {?}\n */\n (item) => item[this.searchKeyword])).indexOf(selected[this.searchKeyword]);\n copiedHistoryList.splice(selectedIndex, 1);\n copiedHistoryList.splice(0, 0, selected);\n this.saveHistoryToLocalStorage([...copiedHistoryList]);\n }\n else {\n // string logic\n /** @type {?} */\n const copiedHistoryList = this.historyList.slice();\n copiedHistoryList.splice(this.historyList.indexOf(selected), 1);\n copiedHistoryList.splice(0, 0, selected);\n this.saveHistoryToLocalStorage([...copiedHistoryList]);\n }\n }\n }\n }\n /**\n * Save item in localStorage\n * @param {?} selected\n * @return {?}\n */\n saveHistoryToLocalStorage(selected) {\n window.localStorage.setItem(`${this.historyIdentifier}`, JSON.stringify(selected));\n }\n /**\n * Remove item from localStorage\n * @param {?} index\n * @param {?} e event\n * @return {?}\n */\n removeHistoryItem(index, e) {\n e.stopPropagation();\n this.historyList = this.historyList.filter((/**\n * @param {?} v\n * @param {?} i\n * @return {?}\n */\n (v, i) => i !== index));\n this.saveHistoryToLocalStorage(this.historyList);\n if (this.historyList.length == 0) {\n window.localStorage.removeItem(`${this.historyIdentifier}`);\n this.filterList();\n }\n }\n /**\n * Reset localStorage\n * @param {?} e event\n * @return {?}\n */\n resetHistoryList(e) {\n e.stopPropagation();\n this.historyList = [];\n window.localStorage.removeItem(`${this.historyIdentifier}`);\n this.filterList();\n }\n}\nAutocompleteComponent.ɵfac = function AutocompleteComponent_Factory(t) { return new (t || AutocompleteComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nAutocompleteComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: AutocompleteComponent, selectors: [[\"ng-autocomplete\"]], contentQueries: function AutocompleteComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, TemplateRef, true);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.customTemplate = _t.first);\n } }, viewQuery: function AutocompleteComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, true);\n ɵngcc0.ɵɵviewQuery(_c1, true);\n ɵngcc0.ɵɵviewQuery(_c2, true);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.searchInput = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.filteredListElement = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.historyListElement = _t.first);\n } }, hostAttrs: [1, \"ng-autocomplete\"], hostBindings: function AutocompleteComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function AutocompleteComponent_click_HostBindingHandler($event) { return ctx.handleClick($event); }, false, ɵngcc0.ɵɵresolveDocument);\n } }, inputs: { data: \"data\", placeholder: \"placeholder\", heading: \"heading\", historyHeading: \"historyHeading\", historyListMaxNumber: \"historyListMaxNumber\", notFoundText: \"notFoundText\", minQueryLength: \"minQueryLength\", focusFirst: \"focusFirst\", disabled: \"disabled\", searchKeyword: \"searchKeyword\", initialValue: \"initialValue\", historyIdentifier: \"historyIdentifier\", isLoading: \"isLoading\", debounceTime: \"debounceTime\", customFilter: \"customFilter\", itemTemplate: \"itemTemplate\", notFoundTemplate: \"notFoundTemplate\" }, outputs: { selected: \"selected\", inputChanged: \"inputChanged\", inputFocused: \"inputFocused\", inputCleared: \"inputCleared\", opened: \"opened\", closed: \"closed\", scrolledToEnd: \"scrolledToEnd\" }, features: [ɵngcc0.ɵɵProvidersFeature([\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(( /**\n * @return {?}\n */() => AutocompleteComponent)),\n multi: true\n }\n ]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 18, vars: 22, consts: [[1, \"autocomplete-container\", 3, \"ngClass\"], [1, \"input-container\"], [\"type\", \"text\", \"autocomplete\", \"off\", 3, \"placeholder\", \"ngModel\", \"disabled\", \"ngModelChange\", \"input\", \"focus\", \"blur\"], [\"searchInput\", \"\"], [\"class\", \"x\", 3, \"click\", 4, \"ngIf\"], [\"class\", \"sk-fading-circle\", 4, \"ngIf\"], [1, \"suggestions-container\", 3, \"ngClass\"], [\"class\", \"heading\", 4, \"ngIf\"], [\"filteredListElement\", \"\"], [\"class\", \"item\", 4, \"ngFor\", \"ngForOf\"], [\"historyListElement\", \"\"], [\"class\", \"not-found\", 4, \"ngIf\"], [\"class\", \"autocomplete-overlay\", 3, \"click\", 4, \"ngIf\"], [1, \"x\", 3, \"click\"], [1, \"material-icons\"], [1, \"sk-fading-circle\"], [1, \"sk-circle1\", \"sk-circle\"], [1, \"sk-circle2\", \"sk-circle\"], [1, \"sk-circle3\", \"sk-circle\"], [1, \"sk-circle4\", \"sk-circle\"], [1, \"sk-circle5\", \"sk-circle\"], [1, \"sk-circle6\", \"sk-circle\"], [1, \"sk-circle7\", \"sk-circle\"], [1, \"sk-circle8\", \"sk-circle\"], [1, \"sk-circle9\", \"sk-circle\"], [1, \"sk-circle10\", \"sk-circle\"], [1, \"sk-circle11\", \"sk-circle\"], [1, \"sk-circle12\", \"sk-circle\"], [1, \"heading\"], [1, \"text\"], [1, \"item\"], [3, \"complete-selected\", \"click\", 4, \"ngIf\"], [3, \"click\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"not-found\"], [1, \"autocomplete-overlay\", 3, \"click\"]], template: function AutocompleteComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1);\n ɵngcc0.ɵɵelementStart(2, \"input\", 2, 3);\n ɵngcc0.ɵɵlistener(\"ngModelChange\", function AutocompleteComponent_Template_input_ngModelChange_2_listener($event) { return ctx.query = $event; })(\"input\", function AutocompleteComponent_Template_input_input_2_listener($event) { return ctx.onChange($event); })(\"focus\", function AutocompleteComponent_Template_input_focus_2_listener($event) { return ctx.handleFocus($event); })(\"blur\", function AutocompleteComponent_Template_input_blur_2_listener($event) { return ctx.onTouched($event); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(4, AutocompleteComponent_div_4_Template, 3, 0, \"div\", 4);\n ɵngcc0.ɵɵtemplate(5, AutocompleteComponent_div_5_Template, 13, 0, \"div\", 5);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(6, \"div\", 6);\n ɵngcc0.ɵɵtemplate(7, AutocompleteComponent_div_7_Template, 3, 1, \"div\", 7);\n ɵngcc0.ɵɵelementStart(8, \"ul\", null, 8);\n ɵngcc0.ɵɵtemplate(10, AutocompleteComponent_li_10_Template, 3, 2, \"li\", 9);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(11, \"div\", 6);\n ɵngcc0.ɵɵtemplate(12, AutocompleteComponent_div_12_Template, 6, 1, \"div\", 7);\n ɵngcc0.ɵɵelementStart(13, \"ul\", null, 10);\n ɵngcc0.ɵɵtemplate(15, AutocompleteComponent_li_15_Template, 6, 2, \"li\", 9);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(16, AutocompleteComponent_div_16_Template, 2, 4, \"div\", 11);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(17, AutocompleteComponent_div_17_Template, 1, 0, \"div\", 12);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(14, _c4, ctx.isOpen));\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵpropertyInterpolate(\"placeholder\", ctx.placeholder);\n ɵngcc0.ɵɵproperty(\"ngModel\", ctx.query)(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.query && !ctx.isLoading && !ctx.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isLoading);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction2(16, _c5, ctx.isHistoryListVisible, !ctx.isHistoryListVisible));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.filteredList.length > 0 && ctx.heading);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.filteredList);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction2(19, _c5, !ctx.isHistoryListVisible, ctx.isHistoryListVisible));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.historyList.length > 0 && ctx.historyHeading);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.historyList);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isLoading ? !ctx.isLoading && ctx.notFound : ctx.notFound);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.overlay);\n } }, directives: function () { return [ɵngcc1.NgClass, ɵngcc2.DefaultValueAccessor, ɵngcc2.NgControlStatus, ɵngcc2.NgModel, ɵngcc1.NgIf, ɵngcc1.NgForOf, ɵngcc1.NgTemplateOutlet]; }, pipes: function () { return [HighlightPipe]; }, styles: [\"@import url(https://fonts.googleapis.com/icon?family=Material+Icons);.ng-autocomplete{width:600px}.autocomplete-container{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);position:relative;overflow:visible;height:40px}.autocomplete-container .input-container input{font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background-color:#fff;color:rgba(0,0,0,.87);width:100%;padding:0 15px;line-height:40px;height:40px}.autocomplete-container .input-container input:disabled{background-color:#eee;color:#666}.autocomplete-container .input-container .x{position:absolute;right:10px;margin:auto;cursor:pointer;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.autocomplete-container .input-container .x i{color:rgba(0,0,0,.54);font-size:22px;vertical-align:middle}.autocomplete-container .suggestions-container{position:absolute;width:100%;background:#fff;height:auto;box-shadow:0 2px 5px rgba(0,0,0,.25);box-sizing:border-box}.autocomplete-container .suggestions-container ul{padding:0;margin:0;max-height:240px;overflow-y:auto}.autocomplete-container .suggestions-container ul li{position:relative;list-style:none;padding:0;margin:0;cursor:pointer}.autocomplete-container .suggestions-container ul li a{padding:14px 15px;display:block;text-decoration:none;cursor:pointer;color:rgba(0,0,0,.87);font-size:15px}.autocomplete-container .suggestions-container .complete-selected,.autocomplete-container .suggestions-container ul li:hover{background-color:rgba(158,158,158,.18)}.autocomplete-container .suggestions-container .heading{position:relative;padding:10px 15px;border:1px solid #f1f1f1}.autocomplete-container .suggestions-container .heading .text{font-size:.85em}.autocomplete-container .suggestions-container .x{position:absolute;right:10px;margin:auto;cursor:pointer;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.autocomplete-container .suggestions-container .x i{color:rgba(0,0,0,.54);font-size:18px;vertical-align:middle}.autocomplete-container .suggestions-container.is-hidden{visibility:hidden}.autocomplete-container .suggestions-container.is-visible{visibility:visible}.autocomplete-container .not-found{padding:0 .75em;border:1px solid #f1f1f1;background:#fff}.autocomplete-container .not-found div{padding:.4em 0;font-size:.95em;line-height:1.4;border-bottom:1px solid rgba(230,230,230,.7)}.autocomplete-container.active{z-index:999}.highlight{font-weight:700}.autocomplete-overlay{position:fixed;background-color:transparent;width:100%;height:100%;top:0;right:0;bottom:0;left:0;z-index:50}input[type=text]::-ms-clear{display:none}.sk-fading-circle{width:20px;height:20px;position:absolute;right:10px;top:0;bottom:0;margin:auto}.sk-fading-circle .sk-circle{width:100%;height:100%;position:absolute;left:0;top:0}.sk-fading-circle .sk-circle:before{content:\\\"\\\";display:block;margin:0 auto;width:15%;height:15%;background-color:#333;border-radius:100%;-webkit-animation:1.2s ease-in-out infinite both sk-circleFadeDelay;animation:1.2s ease-in-out infinite both sk-circleFadeDelay}.sk-fading-circle .sk-circle2{-webkit-transform:rotate(30deg);transform:rotate(30deg)}.sk-fading-circle .sk-circle3{-webkit-transform:rotate(60deg);transform:rotate(60deg)}.sk-fading-circle .sk-circle4{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.sk-fading-circle .sk-circle5{-webkit-transform:rotate(120deg);transform:rotate(120deg)}.sk-fading-circle .sk-circle6{-webkit-transform:rotate(150deg);transform:rotate(150deg)}.sk-fading-circle .sk-circle7{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.sk-fading-circle .sk-circle8{-webkit-transform:rotate(210deg);transform:rotate(210deg)}.sk-fading-circle .sk-circle9{-webkit-transform:rotate(240deg);transform:rotate(240deg)}.sk-fading-circle .sk-circle10{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.sk-fading-circle .sk-circle11{-webkit-transform:rotate(300deg);transform:rotate(300deg)}.sk-fading-circle .sk-circle12{-webkit-transform:rotate(330deg);transform:rotate(330deg)}.sk-fading-circle .sk-circle2:before{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.sk-fading-circle .sk-circle3:before{-webkit-animation-delay:-1s;animation-delay:-1s}.sk-fading-circle .sk-circle4:before{-webkit-animation-delay:-.9s;animation-delay:-.9s}.sk-fading-circle .sk-circle5:before{-webkit-animation-delay:-.8s;animation-delay:-.8s}.sk-fading-circle .sk-circle6:before{-webkit-animation-delay:-.7s;animation-delay:-.7s}.sk-fading-circle .sk-circle7:before{-webkit-animation-delay:-.6s;animation-delay:-.6s}.sk-fading-circle .sk-circle8:before{-webkit-animation-delay:-.5s;animation-delay:-.5s}.sk-fading-circle .sk-circle9:before{-webkit-animation-delay:-.4s;animation-delay:-.4s}.sk-fading-circle .sk-circle10:before{-webkit-animation-delay:-.3s;animation-delay:-.3s}.sk-fading-circle .sk-circle11:before{-webkit-animation-delay:-.2s;animation-delay:-.2s}.sk-fading-circle .sk-circle12:before{-webkit-animation-delay:-.1s;animation-delay:-.1s}@-webkit-keyframes sk-circleFadeDelay{0%,100%,39%{opacity:0}40%{opacity:1}}@keyframes sk-circleFadeDelay{0%,100%,39%{opacity:0}40%{opacity:1}}\"], encapsulation: 2 });\n/** @nocollapse */\nAutocompleteComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 }\n];\nAutocompleteComponent.propDecorators = {\n searchInput: [{ type: ViewChild, args: ['searchInput',] }],\n filteredListElement: [{ type: ViewChild, args: ['filteredListElement',] }],\n historyListElement: [{ type: ViewChild, args: ['historyListElement',] }],\n data: [{ type: Input }],\n searchKeyword: [{ type: Input }],\n placeholder: [{ type: Input }],\n heading: [{ type: Input }],\n initialValue: [{ type: Input }],\n historyIdentifier: [{ type: Input }],\n historyHeading: [{ type: Input }],\n historyListMaxNumber: [{ type: Input }],\n notFoundText: [{ type: Input }],\n isLoading: [{ type: Input }],\n debounceTime: [{ type: Input }],\n disabled: [{ type: Input }],\n minQueryLength: [{ type: Input }],\n focusFirst: [{ type: Input }],\n customFilter: [{ type: Input }],\n selected: [{ type: Output }],\n inputChanged: [{ type: Output }],\n inputFocused: [{ type: Output }],\n inputCleared: [{ type: Output }],\n opened: [{ type: Output }],\n closed: [{ type: Output }],\n scrolledToEnd: [{ type: Output }],\n itemTemplate: [{ type: Input }],\n notFoundTemplate: [{ type: Input }],\n customTemplate: [{ type: ContentChild, args: [TemplateRef,] }]\n};\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(AutocompleteComponent, [{\n type: Component,\n args: [{\n selector: 'ng-autocomplete',\n template: \"
    \\n
    \\n \\n
    \\n close\\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\\n \\n
    \\n \\n
    0 && heading\\\">\\n
    {{heading}}
    \\n
    \\n\\n
      \\n
    • \\n \\n
      \\n \\n \\n
      \\n \\n
      \\n \\n \\n
      \\n
    • \\n
    \\n
    \\n\\n \\n
    \\n \\n
    0 && historyHeading\\\">\\n
    {{historyHeading}}
    \\n
    \\n delete\\n
    \\n
    \\n\\n
      \\n
    • \\n \\n
      \\n \\n \\n
      \\n \\n
      \\n \\n \\n
      \\n
      \\n close\\n
      \\n
    • \\n
    \\n
    \\n\\n \\n
    \\n \\n \\n
    \\n
    \\n
    \\n\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(( /**\n * @return {?}\n */() => AutocompleteComponent)),\n multi: true\n }\n ],\n encapsulation: ViewEncapsulation.None,\n host: {\n '(document:click)': 'handleClick($event)',\n 'class': 'ng-autocomplete'\n },\n styles: [\"@import url(https://fonts.googleapis.com/icon?family=Material+Icons);.ng-autocomplete{width:600px}.autocomplete-container{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);position:relative;overflow:visible;height:40px}.autocomplete-container .input-container input{font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background-color:#fff;color:rgba(0,0,0,.87);width:100%;padding:0 15px;line-height:40px;height:40px}.autocomplete-container .input-container input:disabled{background-color:#eee;color:#666}.autocomplete-container .input-container .x{position:absolute;right:10px;margin:auto;cursor:pointer;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.autocomplete-container .input-container .x i{color:rgba(0,0,0,.54);font-size:22px;vertical-align:middle}.autocomplete-container .suggestions-container{position:absolute;width:100%;background:#fff;height:auto;box-shadow:0 2px 5px rgba(0,0,0,.25);box-sizing:border-box}.autocomplete-container .suggestions-container ul{padding:0;margin:0;max-height:240px;overflow-y:auto}.autocomplete-container .suggestions-container ul li{position:relative;list-style:none;padding:0;margin:0;cursor:pointer}.autocomplete-container .suggestions-container ul li a{padding:14px 15px;display:block;text-decoration:none;cursor:pointer;color:rgba(0,0,0,.87);font-size:15px}.autocomplete-container .suggestions-container .complete-selected,.autocomplete-container .suggestions-container ul li:hover{background-color:rgba(158,158,158,.18)}.autocomplete-container .suggestions-container .heading{position:relative;padding:10px 15px;border:1px solid #f1f1f1}.autocomplete-container .suggestions-container .heading .text{font-size:.85em}.autocomplete-container .suggestions-container .x{position:absolute;right:10px;margin:auto;cursor:pointer;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.autocomplete-container .suggestions-container .x i{color:rgba(0,0,0,.54);font-size:18px;vertical-align:middle}.autocomplete-container .suggestions-container.is-hidden{visibility:hidden}.autocomplete-container .suggestions-container.is-visible{visibility:visible}.autocomplete-container .not-found{padding:0 .75em;border:1px solid #f1f1f1;background:#fff}.autocomplete-container .not-found div{padding:.4em 0;font-size:.95em;line-height:1.4;border-bottom:1px solid rgba(230,230,230,.7)}.autocomplete-container.active{z-index:999}.highlight{font-weight:700}.autocomplete-overlay{position:fixed;background-color:transparent;width:100%;height:100%;top:0;right:0;bottom:0;left:0;z-index:50}input[type=text]::-ms-clear{display:none}.sk-fading-circle{width:20px;height:20px;position:absolute;right:10px;top:0;bottom:0;margin:auto}.sk-fading-circle .sk-circle{width:100%;height:100%;position:absolute;left:0;top:0}.sk-fading-circle .sk-circle:before{content:\\\"\\\";display:block;margin:0 auto;width:15%;height:15%;background-color:#333;border-radius:100%;-webkit-animation:1.2s ease-in-out infinite both sk-circleFadeDelay;animation:1.2s ease-in-out infinite both sk-circleFadeDelay}.sk-fading-circle .sk-circle2{-webkit-transform:rotate(30deg);transform:rotate(30deg)}.sk-fading-circle .sk-circle3{-webkit-transform:rotate(60deg);transform:rotate(60deg)}.sk-fading-circle .sk-circle4{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.sk-fading-circle .sk-circle5{-webkit-transform:rotate(120deg);transform:rotate(120deg)}.sk-fading-circle .sk-circle6{-webkit-transform:rotate(150deg);transform:rotate(150deg)}.sk-fading-circle .sk-circle7{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.sk-fading-circle .sk-circle8{-webkit-transform:rotate(210deg);transform:rotate(210deg)}.sk-fading-circle .sk-circle9{-webkit-transform:rotate(240deg);transform:rotate(240deg)}.sk-fading-circle .sk-circle10{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.sk-fading-circle .sk-circle11{-webkit-transform:rotate(300deg);transform:rotate(300deg)}.sk-fading-circle .sk-circle12{-webkit-transform:rotate(330deg);transform:rotate(330deg)}.sk-fading-circle .sk-circle2:before{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.sk-fading-circle .sk-circle3:before{-webkit-animation-delay:-1s;animation-delay:-1s}.sk-fading-circle .sk-circle4:before{-webkit-animation-delay:-.9s;animation-delay:-.9s}.sk-fading-circle .sk-circle5:before{-webkit-animation-delay:-.8s;animation-delay:-.8s}.sk-fading-circle .sk-circle6:before{-webkit-animation-delay:-.7s;animation-delay:-.7s}.sk-fading-circle .sk-circle7:before{-webkit-animation-delay:-.6s;animation-delay:-.6s}.sk-fading-circle .sk-circle8:before{-webkit-animation-delay:-.5s;animation-delay:-.5s}.sk-fading-circle .sk-circle9:before{-webkit-animation-delay:-.4s;animation-delay:-.4s}.sk-fading-circle .sk-circle10:before{-webkit-animation-delay:-.3s;animation-delay:-.3s}.sk-fading-circle .sk-circle11:before{-webkit-animation-delay:-.2s;animation-delay:-.2s}.sk-fading-circle .sk-circle12:before{-webkit-animation-delay:-.1s;animation-delay:-.1s}@-webkit-keyframes sk-circleFadeDelay{0%,100%,39%{opacity:0}40%{opacity:1}}@keyframes sk-circleFadeDelay{0%,100%,39%{opacity:0}40%{opacity:1}}\"]\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { data: [{\n type: Input\n }], placeholder: [{\n type: Input\n }], heading: [{\n type: Input\n }], historyHeading: [{\n type: Input\n }], historyListMaxNumber: [{\n type: Input\n }], notFoundText: [{\n type: Input\n }], minQueryLength: [{\n type: Input\n }], focusFirst: [{\n type: Input\n }], selected: [{\n type: Output\n }], inputChanged: [{\n type: Output\n }], inputFocused: [{\n type: Output\n }], inputCleared: [{\n type: Output\n }], opened: [{\n type: Output\n }], closed: [{\n type: Output\n }], scrolledToEnd: [{\n type: Output\n }], disabled: [{\n type: Input\n }], searchInput: [{\n type: ViewChild,\n args: ['searchInput']\n }], filteredListElement: [{\n type: ViewChild,\n args: ['filteredListElement']\n }], historyListElement: [{\n type: ViewChild,\n args: ['historyListElement']\n }], searchKeyword: [{\n type: Input\n }], initialValue: [{\n type: Input\n }], historyIdentifier: [{\n type: Input\n }], isLoading: [{\n type: Input\n }], debounceTime: [{\n type: Input\n }], customFilter: [{\n type: Input\n }], itemTemplate: [{\n type: Input\n }], notFoundTemplate: [{\n type: Input\n }], customTemplate: [{\n type: ContentChild,\n args: [TemplateRef]\n }] }); })();\nif (false) {\n /** @type {?} */\n AutocompleteComponent.prototype.searchInput;\n /** @type {?} */\n AutocompleteComponent.prototype.filteredListElement;\n /** @type {?} */\n AutocompleteComponent.prototype.historyListElement;\n /** @type {?} */\n AutocompleteComponent.prototype.inputKeyUp$;\n /** @type {?} */\n AutocompleteComponent.prototype.inputKeyDown$;\n /** @type {?} */\n AutocompleteComponent.prototype.query;\n /** @type {?} */\n AutocompleteComponent.prototype.filteredList;\n /** @type {?} */\n AutocompleteComponent.prototype.historyList;\n /** @type {?} */\n AutocompleteComponent.prototype.isHistoryListVisible;\n /** @type {?} */\n AutocompleteComponent.prototype.elementRef;\n /** @type {?} */\n AutocompleteComponent.prototype.selectedIdx;\n /** @type {?} */\n AutocompleteComponent.prototype.toHighlight;\n /** @type {?} */\n AutocompleteComponent.prototype.notFound;\n /** @type {?} */\n AutocompleteComponent.prototype.isFocused;\n /** @type {?} */\n AutocompleteComponent.prototype.isOpen;\n /** @type {?} */\n AutocompleteComponent.prototype.isScrollToEnd;\n /** @type {?} */\n AutocompleteComponent.prototype.overlay;\n /**\n * @type {?}\n * @private\n */\n AutocompleteComponent.prototype.manualOpen;\n /**\n * @type {?}\n * @private\n */\n AutocompleteComponent.prototype.manualClose;\n /**\n * Data of items list.\n * It can be array of strings or array of objects.\n * @type {?}\n */\n AutocompleteComponent.prototype.data;\n /** @type {?} */\n AutocompleteComponent.prototype.searchKeyword;\n /** @type {?} */\n AutocompleteComponent.prototype.placeholder;\n /** @type {?} */\n AutocompleteComponent.prototype.heading;\n /** @type {?} */\n AutocompleteComponent.prototype.initialValue;\n /**\n * History identifier of history list\n * When valid history identifier is given, then component stores selected item to local storage of user's browser.\n * If it is null then history is hidden.\n * History list is visible if at least one history item is stored.\n * @type {?}\n */\n AutocompleteComponent.prototype.historyIdentifier;\n /**\n * Heading text of history list.\n * If it is null then history heading is hidden.\n * @type {?}\n */\n AutocompleteComponent.prototype.historyHeading;\n /** @type {?} */\n AutocompleteComponent.prototype.historyListMaxNumber;\n /** @type {?} */\n AutocompleteComponent.prototype.notFoundText;\n /** @type {?} */\n AutocompleteComponent.prototype.isLoading;\n /** @type {?} */\n AutocompleteComponent.prototype.debounceTime;\n /** @type {?} */\n AutocompleteComponent.prototype.disabled;\n /**\n * The minimum number of characters the user must type before a search is performed.\n * @type {?}\n */\n AutocompleteComponent.prototype.minQueryLength;\n /**\n * Focus first item in the list\n * @type {?}\n */\n AutocompleteComponent.prototype.focusFirst;\n /**\n * Custom filter function\n * @type {?}\n */\n AutocompleteComponent.prototype.customFilter;\n /**\n * Event that is emitted whenever an item from the list is selected.\n * @type {?}\n */\n AutocompleteComponent.prototype.selected;\n /**\n * Event that is emitted whenever an input is changed.\n * @type {?}\n */\n AutocompleteComponent.prototype.inputChanged;\n /**\n * Event that is emitted whenever an input is focused.\n * @type {?}\n */\n AutocompleteComponent.prototype.inputFocused;\n /**\n * Event that is emitted whenever an input is cleared.\n * @type {?}\n */\n AutocompleteComponent.prototype.inputCleared;\n /**\n * Event that is emitted when the autocomplete panel is opened.\n * @type {?}\n */\n AutocompleteComponent.prototype.opened;\n /**\n * Event that is emitted when the autocomplete panel is closed.\n * @type {?}\n */\n AutocompleteComponent.prototype.closed;\n /**\n * Event that is emitted when scrolled to the end of items.\n * @type {?}\n */\n AutocompleteComponent.prototype.scrolledToEnd;\n /** @type {?} */\n AutocompleteComponent.prototype.itemTemplate;\n /** @type {?} */\n AutocompleteComponent.prototype.notFoundTemplate;\n /** @type {?} */\n AutocompleteComponent.prototype.customTemplate;\n /**\n * Propagates new value when model changes\n * @type {?}\n */\n AutocompleteComponent.prototype.propagateChange;\n /** @type {?} */\n AutocompleteComponent.prototype.onTouched;\n /**\n * @type {?}\n * @private\n */\n AutocompleteComponent.prototype.renderer;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: lib/autocomplete/highlight.pipe.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass HighlightPipe {\n /**\n * @param {?} text\n * @param {?} search\n * @param {?=} searchKeyword\n * @return {?}\n */\n transform(text, search, searchKeyword) {\n /** @type {?} */\n let pattern = search.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n pattern = pattern.split(' ').filter((/**\n * @param {?} t\n * @return {?}\n */\n (t) => {\n return t.length > 0;\n })).join('|');\n /** @type {?} */\n const regex = new RegExp(pattern, 'gi');\n if (!search) {\n return text;\n }\n if (searchKeyword) {\n /** @type {?} */\n const name = text[searchKeyword].replace(regex, (/**\n * @param {?} match\n * @return {?}\n */\n (match) => `${match}`));\n // copy original object\n /** @type {?} */\n const text2 = Object.assign({}, text);\n // set bold value into searchKeyword of copied object\n text2[searchKeyword] = name;\n return text2;\n }\n else {\n return search ? text.replace(regex, (/**\n * @param {?} match\n * @return {?}\n */\n (match) => `${match}`)) : text;\n }\n }\n}\nHighlightPipe.ɵfac = function HighlightPipe_Factory(t) { return new (t || HighlightPipe)(); };\nHighlightPipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"highlight\", type: HighlightPipe, pure: true });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(HighlightPipe, [{\n type: Pipe,\n args: [{\n name: 'highlight'\n }]\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * Generated from: lib/autocomplete-lib.module.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass AutocompleteLibModule {\n}\nAutocompleteLibModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: AutocompleteLibModule });\nAutocompleteLibModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function AutocompleteLibModule_Factory(t) { return new (t || AutocompleteLibModule)(); }, imports: [[\n CommonModule,\n FormsModule\n ]] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(AutocompleteLibModule, { declarations: function () { return [AutocompleteLibComponent, AutocompleteComponent, HighlightPipe]; }, imports: function () { return [CommonModule,\n FormsModule]; }, exports: function () { return [AutocompleteLibComponent, AutocompleteComponent, HighlightPipe]; } }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(AutocompleteLibModule, [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n FormsModule\n ],\n declarations: [AutocompleteLibComponent, AutocompleteComponent, HighlightPipe],\n exports: [AutocompleteLibComponent, AutocompleteComponent, HighlightPipe]\n }]\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * Generated from: public_api.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * Generated from: angular-ng-autocomplete.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { AutocompleteComponent, AutocompleteLibComponent, AutocompleteLibModule, HighlightPipe };\n\n//# sourceMappingURL=angular-ng-autocomplete.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Number.POSITIVE_INFINITY) {\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n//# sourceMappingURL=concatMap.js.map","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map","import { Injectable, NgModule, Pipe } from '@angular/core';\n\nimport * as ɵngcc0 from '@angular/core';\nclass Ng2SearchPipe {\n /**\n * @param {?} items object from array\n * @param {?} term term's search\n * @return {?}\n */\n transform(items, term) {\n if (!term || !items)\n return items;\n return Ng2SearchPipe.filter(items, term);\n }\n /**\n *\n * @param {?} items List of items to filter\n * @param {?} term a string term to compare with every property of the list\n *\n * @return {?}\n */\n static filter(items, term) {\n const /** @type {?} */ toCompare = term.toLowerCase();\n /**\n * @param {?} item\n * @param {?} term\n * @return {?}\n */\n function checkInside(item, term) {\n for (let /** @type {?} */ property in item) {\n if (item[property] === null || item[property] == undefined) {\n continue;\n }\n if (typeof item[property] === 'object') {\n if (checkInside(item[property], term)) {\n return true;\n }\n }\n if (item[property].toString().toLowerCase().includes(toCompare)) {\n return true;\n }\n }\n return false;\n }\n return items.filter(function (item) {\n return checkInside(item, term);\n });\n }\n}\nNg2SearchPipe.ɵfac = function Ng2SearchPipe_Factory(t) { return new (t || Ng2SearchPipe)(); };\nNg2SearchPipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"filter\", type: Ng2SearchPipe, pure: false });\nNg2SearchPipe.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: Ng2SearchPipe, factory: Ng2SearchPipe.ɵfac });\n/**\n * @nocollapse\n */\nNg2SearchPipe.ctorParameters = () => [];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(Ng2SearchPipe, [{\n type: Pipe,\n args: [{\n name: 'filter',\n pure: false\n }]\n }, {\n type: Injectable\n }], null, null); })();\n\nclass Ng2SearchPipeModule {\n}\nNg2SearchPipeModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: Ng2SearchPipeModule });\nNg2SearchPipeModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function Ng2SearchPipeModule_Factory(t) { return new (t || Ng2SearchPipeModule)(); } });\n/**\n * @nocollapse\n */\nNg2SearchPipeModule.ctorParameters = () => [];\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(Ng2SearchPipeModule, { declarations: [Ng2SearchPipe], exports: [Ng2SearchPipe] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(Ng2SearchPipeModule, [{\n type: NgModule,\n args: [{\n declarations: [Ng2SearchPipe],\n exports: [Ng2SearchPipe]\n }]\n }], null, null); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Ng2SearchPipeModule, Ng2SearchPipe };\n\n//# sourceMappingURL=ng2-search-filter.js.map","import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(switchMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii)))));\n }\n return (source) => source.lift(new SwitchMapOperator(project));\n}\nclass SwitchMapOperator {\n constructor(project) {\n this.project = project;\n }\n call(subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n }\n}\nclass SwitchMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project) {\n super(destination);\n this.project = project;\n this.index = 0;\n }\n _next(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result);\n }\n _innerSub(result) {\n const innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = innerSubscribe(result, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n }\n _complete() {\n const { innerSubscription } = this;\n if (!innerSubscription || innerSubscription.closed) {\n super._complete();\n }\n this.unsubscribe();\n }\n _unsubscribe() {\n this.innerSubscription = undefined;\n }\n notifyComplete() {\n this.innerSubscription = undefined;\n if (this.isStopped) {\n super._complete();\n }\n }\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n}\n//# sourceMappingURL=switchMap.js.map","/**\n * @license Angular v11.0.9\n * (c) 2010-2020 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { Subject, Subscription, Observable, merge as merge$1 } from 'rxjs';\nimport { share } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction getClosureSafeProperty(objWithPropertyToExtract) {\n for (let key in objWithPropertyToExtract) {\n if (objWithPropertyToExtract[key] === getClosureSafeProperty) {\n return key;\n }\n }\n throw Error('Could not find renamed property on target object.');\n}\n/**\n * Sets properties on a target object from a source object, but only if\n * the property doesn't already exist on the target object.\n * @param target The target to set properties on\n * @param source The source of the property keys and values to set\n */\nfunction fillProperties(target, source) {\n for (const key in source) {\n if (source.hasOwnProperty(key) && !target.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (Array.isArray(token)) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n if (token == null) {\n return '' + token;\n }\n if (token.overriddenName) {\n return `${token.overriddenName}`;\n }\n if (token.name) {\n return `${token.name}`;\n }\n const res = token.toString();\n if (res == null) {\n return '' + res;\n }\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\n/**\n * Concatenates two strings with separator, allocating new strings only when necessary.\n *\n * @param before before string.\n * @param separator separator string.\n * @param after after string.\n * @returns concatenated string.\n */\nfunction concatStringsWithSpace(before, after) {\n return (before == null || before === '') ?\n (after === null ? '' : after) :\n ((after == null || after === '') ? before : before + ' ' + after);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst __forward_ref__ = getClosureSafeProperty({ __forward_ref__: getClosureSafeProperty });\n/**\n * Allows to refer to references which are not yet defined.\n *\n * For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of\n * DI is declared, but not yet defined. It is also used when the `token` which we use when creating\n * a query is not yet defined.\n *\n * @usageNotes\n * ### Example\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}\n * @publicApi\n */\nfunction forwardRef(forwardRefFn) {\n forwardRefFn.__forward_ref__ = forwardRef;\n forwardRefFn.toString = function () {\n return stringify(this());\n };\n return forwardRefFn;\n}\n/**\n * Lazily retrieves the reference value from a forwardRef.\n *\n * Acts as the identity function when given a non-forward-ref value.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}\n *\n * @see `forwardRef`\n * @publicApi\n */\nfunction resolveForwardRef(type) {\n return isForwardRef(type) ? type() : type;\n}\n/** Checks whether a function is wrapped by a `forwardRef`. */\nfunction isForwardRef(fn) {\n return typeof fn === 'function' && fn.hasOwnProperty(__forward_ref__) &&\n fn.__forward_ref__ === forwardRef;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction assertNumber(actual, msg) {\n if (!(typeof actual === 'number')) {\n throwError(msg, typeof actual, 'number', '===');\n }\n}\nfunction assertNumberInRange(actual, minInclusive, maxInclusive) {\n assertNumber(actual, 'Expected a number');\n assertLessThanOrEqual(actual, maxInclusive, 'Expected number to be less than or equal to');\n assertGreaterThanOrEqual(actual, minInclusive, 'Expected number to be greater than or equal to');\n}\nfunction assertString(actual, msg) {\n if (!(typeof actual === 'string')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'string', '===');\n }\n}\nfunction assertFunction(actual, msg) {\n if (!(typeof actual === 'function')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'function', '===');\n }\n}\nfunction assertEqual(actual, expected, msg) {\n if (!(actual == expected)) {\n throwError(msg, actual, expected, '==');\n }\n}\nfunction assertNotEqual(actual, expected, msg) {\n if (!(actual != expected)) {\n throwError(msg, actual, expected, '!=');\n }\n}\nfunction assertSame(actual, expected, msg) {\n if (!(actual === expected)) {\n throwError(msg, actual, expected, '===');\n }\n}\nfunction assertNotSame(actual, expected, msg) {\n if (!(actual !== expected)) {\n throwError(msg, actual, expected, '!==');\n }\n}\nfunction assertLessThan(actual, expected, msg) {\n if (!(actual < expected)) {\n throwError(msg, actual, expected, '<');\n }\n}\nfunction assertLessThanOrEqual(actual, expected, msg) {\n if (!(actual <= expected)) {\n throwError(msg, actual, expected, '<=');\n }\n}\nfunction assertGreaterThan(actual, expected, msg) {\n if (!(actual > expected)) {\n throwError(msg, actual, expected, '>');\n }\n}\nfunction assertGreaterThanOrEqual(actual, expected, msg) {\n if (!(actual >= expected)) {\n throwError(msg, actual, expected, '>=');\n }\n}\nfunction assertNotDefined(actual, msg) {\n if (actual != null) {\n throwError(msg, actual, null, '==');\n }\n}\nfunction assertDefined(actual, msg) {\n if (actual == null) {\n throwError(msg, actual, null, '!=');\n }\n}\nfunction throwError(msg, actual, expected, comparison) {\n throw new Error(`ASSERTION ERROR: ${msg}` +\n (comparison == null ? '' : ` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`));\n}\nfunction assertDomNode(node) {\n // If we're in a worker, `Node` will not be defined.\n if (!(typeof Node !== 'undefined' && node instanceof Node) &&\n !(typeof node === 'object' && node != null &&\n node.constructor.name === 'WebWorkerRenderNode')) {\n throwError(`The provided value must be an instance of a DOM Node but got ${stringify(node)}`);\n }\n}\nfunction assertIndexInRange(arr, index) {\n assertDefined(arr, 'Array must be defined.');\n const maxLen = arr.length;\n if (index < 0 || index >= maxLen) {\n throwError(`Index expected to be less than ${maxLen} but got ${index}`);\n }\n}\nfunction assertOneOf(value, ...validValues) {\n if (validValues.indexOf(value) !== -1)\n return true;\n throwError(`Expected value to be one of ${JSON.stringify(validValues)} but was ${JSON.stringify(value)}.`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Construct an `InjectableDef` which defines how a token will be constructed by the DI system, and\n * in which injectors (if any) it will be available.\n *\n * This should be assigned to a static `ɵprov` field on a type, which will then be an\n * `InjectableType`.\n *\n * Options:\n * * `providedIn` determines which injectors will include the injectable, by either associating it\n * with an `@NgModule` or other `InjectorType`, or by specifying that this injectable should be\n * provided in the `'root'` injector, which will be the application-level injector in most apps.\n * * `factory` gives the zero argument function which will create an instance of the injectable.\n * The factory can call `inject` to access the `Injector` and request injection of dependencies.\n *\n * @codeGenApi\n * @publicApi This instruction has been emitted by ViewEngine for some time and is deployed to npm.\n */\nfunction ɵɵdefineInjectable(opts) {\n return {\n token: opts.token,\n providedIn: opts.providedIn || null,\n factory: opts.factory,\n value: undefined,\n };\n}\n/**\n * @deprecated in v8, delete after v10. This API should be used only by generated code, and that\n * code should now use ɵɵdefineInjectable instead.\n * @publicApi\n */\nconst defineInjectable = ɵɵdefineInjectable;\n/**\n * Construct an `InjectorDef` which configures an injector.\n *\n * This should be assigned to a static injector def (`ɵinj`) field on a type, which will then be an\n * `InjectorType`.\n *\n * Options:\n *\n * * `factory`: an `InjectorType` is an instantiable type, so a zero argument `factory` function to\n * create the type must be provided. If that factory function needs to inject arguments, it can\n * use the `inject` function.\n * * `providers`: an optional array of providers to add to the injector. Each provider must\n * either have a factory or point to a type which has a `ɵprov` static property (the\n * type must be an `InjectableType`).\n * * `imports`: an optional array of imports of other `InjectorType`s or `InjectorTypeWithModule`s\n * whose providers will also be added to the injector. Locally provided types will override\n * providers from imports.\n *\n * @codeGenApi\n */\nfunction ɵɵdefineInjector(options) {\n return {\n factory: options.factory,\n providers: options.providers || [],\n imports: options.imports || [],\n };\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` in a way which is immune to accidentally reading\n * inherited value.\n *\n * @param type A type which may have its own (non-inherited) `ɵprov`.\n */\nfunction getInjectableDef(type) {\n return getOwnDefinition(type, NG_PROV_DEF) || getOwnDefinition(type, NG_INJECTABLE_DEF);\n}\n/**\n * Return definition only if it is defined directly on `type` and is not inherited from a base\n * class of `type`.\n */\nfunction getOwnDefinition(type, field) {\n return type.hasOwnProperty(field) ? type[field] : null;\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` or read the `ɵprov` from one of its ancestors.\n *\n * @param type A type which may have `ɵprov`, via inheritance.\n *\n * @deprecated Will be removed in a future version of Angular, where an error will occur in the\n * scenario if we find the `ɵprov` on an ancestor only.\n */\nfunction getInheritedInjectableDef(type) {\n const def = type && (type[NG_PROV_DEF] || type[NG_INJECTABLE_DEF]);\n if (def) {\n const typeName = getTypeName(type);\n // TODO(FW-1307): Re-add ngDevMode when closure can handle it\n // ngDevMode &&\n console.warn(`DEPRECATED: DI is instantiating a token \"${typeName}\" that inherits its @Injectable decorator but does not provide one itself.\\n` +\n `This will become an error in a future version of Angular. Please add @Injectable() to the \"${typeName}\" class.`);\n return def;\n }\n else {\n return null;\n }\n}\n/** Gets the name of a type, accounting for some cross-browser differences. */\nfunction getTypeName(type) {\n // `Function.prototype.name` behaves differently between IE and other browsers. In most browsers\n // it'll always return the name of the function itself, no matter how many other functions it\n // inherits from. On IE the function doesn't have its own `name` property, but it takes it from\n // the lowest level in the prototype chain. E.g. if we have `class Foo extends Parent` most\n // browsers will evaluate `Foo.name` to `Foo` while IE will return `Parent`. We work around\n // the issue by converting the function to a string and parsing its name out that way via a regex.\n if (type.hasOwnProperty('name')) {\n return type.name;\n }\n const match = ('' + type).match(/^function\\s*([^\\s(]+)/);\n return match === null ? '' : match[1];\n}\n/**\n * Read the injector def type in a way which is immune to accidentally reading inherited value.\n *\n * @param type type which may have an injector def (`ɵinj`)\n */\nfunction getInjectorDef(type) {\n return type && (type.hasOwnProperty(NG_INJ_DEF) || type.hasOwnProperty(NG_INJECTOR_DEF)) ?\n type[NG_INJ_DEF] :\n null;\n}\nconst NG_PROV_DEF = getClosureSafeProperty({ ɵprov: getClosureSafeProperty });\nconst NG_INJ_DEF = getClosureSafeProperty({ ɵinj: getClosureSafeProperty });\n// We need to keep these around so we can read off old defs if new defs are unavailable\nconst NG_INJECTABLE_DEF = getClosureSafeProperty({ ngInjectableDef: getClosureSafeProperty });\nconst NG_INJECTOR_DEF = getClosureSafeProperty({ ngInjectorDef: getClosureSafeProperty });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection flags for DI.\n *\n * @publicApi\n */\nvar InjectFlags;\n(function (InjectFlags) {\n // TODO(alxhub): make this 'const' when ngc no longer writes exports of it into ngfactory files.\n /** Check self and check parent injector if needed */\n InjectFlags[InjectFlags[\"Default\"] = 0] = \"Default\";\n /**\n * Specifies that an injector should retrieve a dependency from any injector until reaching the\n * host element of the current component. (Only used with Element Injector)\n */\n InjectFlags[InjectFlags[\"Host\"] = 1] = \"Host\";\n /** Don't ascend to ancestors of the node requesting injection. */\n InjectFlags[InjectFlags[\"Self\"] = 2] = \"Self\";\n /** Skip the node that is requesting injection. */\n InjectFlags[InjectFlags[\"SkipSelf\"] = 4] = \"SkipSelf\";\n /** Inject `defaultValue` instead if token not found. */\n InjectFlags[InjectFlags[\"Optional\"] = 8] = \"Optional\";\n})(InjectFlags || (InjectFlags = {}));\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Current implementation of inject.\n *\n * By default, it is `injectInjectorOnly`, which makes it `Injector`-only aware. It can be changed\n * to `directiveInject`, which brings in the `NodeInjector` system of ivy. It is designed this\n * way for two reasons:\n * 1. `Injector` should not depend on ivy logic.\n * 2. To maintain tree shake-ability we don't want to bring in unnecessary code.\n */\nlet _injectImplementation;\nfunction getInjectImplementation() {\n return _injectImplementation;\n}\n/**\n * Sets the current inject implementation.\n */\nfunction setInjectImplementation(impl) {\n const previous = _injectImplementation;\n _injectImplementation = impl;\n return previous;\n}\n/**\n * Injects `root` tokens in limp mode.\n *\n * If no injector exists, we can still inject tree-shakable providers which have `providedIn` set to\n * `\"root\"`. This is known as the limp mode injection. In such case the value is stored in the\n * `InjectableDef`.\n */\nfunction injectRootLimpMode(token, notFoundValue, flags) {\n const injectableDef = getInjectableDef(token);\n if (injectableDef && injectableDef.providedIn == 'root') {\n return injectableDef.value === undefined ? injectableDef.value = injectableDef.factory() :\n injectableDef.value;\n }\n if (flags & InjectFlags.Optional)\n return null;\n if (notFoundValue !== undefined)\n return notFoundValue;\n throw new Error(`Injector: NOT_FOUND [${stringify(token)}]`);\n}\n/**\n * Assert that `_injectImplementation` is not `fn`.\n *\n * This is useful, to prevent infinite recursion.\n *\n * @param fn Function which it should not equal to\n */\nfunction assertInjectImplementationNotEqual(fn) {\n ngDevMode &&\n assertNotEqual(_injectImplementation, fn, 'Calling ɵɵinject would cause infinite recursion');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Convince closure compiler that the wrapped function has no side-effects.\n *\n * Closure compiler always assumes that `toString` has no side-effects. We use this quirk to\n * allow us to execute a function but have closure compiler mark the call as no-side-effects.\n * It is important that the return value for the `noSideEffects` function be assigned\n * to something which is retained otherwise the call to `noSideEffects` will be removed by closure\n * compiler.\n */\nfunction noSideEffects(fn) {\n return { toString: fn }.toString();\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The strategy that the default change detector uses to detect changes.\n * When set, takes effect the next time change detection is triggered.\n *\n * @see {@link ChangeDetectorRef#usage-notes Change detection usage}\n *\n * @publicApi\n */\nvar ChangeDetectionStrategy;\n(function (ChangeDetectionStrategy) {\n /**\n * Use the `CheckOnce` strategy, meaning that automatic change detection is deactivated\n * until reactivated by setting the strategy to `Default` (`CheckAlways`).\n * Change detection can still be explicitly invoked.\n * This strategy applies to all child directives and cannot be overridden.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"OnPush\"] = 0] = \"OnPush\";\n /**\n * Use the default `CheckAlways` strategy, in which change detection is automatic until\n * explicitly deactivated.\n */\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"Default\"] = 1] = \"Default\";\n})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));\n/**\n * Defines the possible states of the default change detector.\n * @see `ChangeDetectorRef`\n */\nvar ChangeDetectorStatus;\n(function (ChangeDetectorStatus) {\n /**\n * A state in which, after calling `detectChanges()`, the change detector\n * state becomes `Checked`, and must be explicitly invoked or reactivated.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"CheckOnce\"] = 0] = \"CheckOnce\";\n /**\n * A state in which change detection is skipped until the change detector mode\n * becomes `CheckOnce`.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Checked\"] = 1] = \"Checked\";\n /**\n * A state in which change detection continues automatically until explicitly\n * deactivated.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"CheckAlways\"] = 2] = \"CheckAlways\";\n /**\n * A state in which a change detector sub tree is not a part of the main tree and\n * should be skipped.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Detached\"] = 3] = \"Detached\";\n /**\n * Indicates that the change detector encountered an error checking a binding\n * or calling a directive lifecycle method and is now in an inconsistent state. Change\n * detectors in this state do not detect changes.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Errored\"] = 4] = \"Errored\";\n /**\n * Indicates that the change detector has been destroyed.\n */\n ChangeDetectorStatus[ChangeDetectorStatus[\"Destroyed\"] = 5] = \"Destroyed\";\n})(ChangeDetectorStatus || (ChangeDetectorStatus = {}));\n/**\n * Reports whether a given strategy is currently the default for change detection.\n * @param changeDetectionStrategy The strategy to check.\n * @returns True if the given strategy is the current default, false otherwise.\n * @see `ChangeDetectorStatus`\n * @see `ChangeDetectorRef`\n */\nfunction isDefaultChangeDetectionStrategy(changeDetectionStrategy) {\n return changeDetectionStrategy == null ||\n changeDetectionStrategy === ChangeDetectionStrategy.Default;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Defines template and style encapsulation options available for Component's {@link Component}.\n *\n * See {@link Component#encapsulation encapsulation}.\n *\n * @usageNotes\n * ### Example\n *\n * {@example core/ts/metadata/encapsulation.ts region='longform'}\n *\n * @publicApi\n */\nvar ViewEncapsulation;\n(function (ViewEncapsulation) {\n /**\n * Emulate `Native` scoping of styles by adding an attribute containing surrogate id to the Host\n * Element and pre-processing the style rules provided via {@link Component#styles styles} or\n * {@link Component#styleUrls styleUrls}, and adding the new Host Element attribute to all\n * selectors.\n *\n * This is the default option.\n */\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n /**\n * Don't provide any template or style encapsulation.\n */\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n /**\n * Use Shadow DOM to encapsulate styles.\n *\n * For the DOM this means using modern [Shadow\n * DOM](https://w3c.github.io/webcomponents/spec/shadow/) and\n * creating a ShadowRoot for Component's Host Element.\n */\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation || (ViewEncapsulation = {}));\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst __globalThis = typeof globalThis !== 'undefined' && globalThis;\nconst __window = typeof window !== 'undefined' && window;\nconst __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nconst __global = typeof global !== 'undefined' && global;\n// Always use __globalThis if available, which is the spec-defined global variable across all\n// environments, then fallback to __global first, because in Node tests both __global and\n// __window may be defined and _global should be __global in that case.\nconst _global = __globalThis || __global || __window || __self;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction ngDevModeResetPerfCounters() {\n const locationString = typeof location !== 'undefined' ? location.toString() : '';\n const newCounters = {\n namedConstructors: locationString.indexOf('ngDevMode=namedConstructors') != -1,\n firstCreatePass: 0,\n tNode: 0,\n tView: 0,\n rendererCreateTextNode: 0,\n rendererSetText: 0,\n rendererCreateElement: 0,\n rendererAddEventListener: 0,\n rendererSetAttribute: 0,\n rendererRemoveAttribute: 0,\n rendererSetProperty: 0,\n rendererSetClassName: 0,\n rendererAddClass: 0,\n rendererRemoveClass: 0,\n rendererSetStyle: 0,\n rendererRemoveStyle: 0,\n rendererDestroy: 0,\n rendererDestroyNode: 0,\n rendererMoveNode: 0,\n rendererRemoveNode: 0,\n rendererAppendChild: 0,\n rendererInsertBefore: 0,\n rendererCreateComment: 0,\n };\n // Make sure to refer to ngDevMode as ['ngDevMode'] for closure.\n const allowNgDevModeTrue = locationString.indexOf('ngDevMode=false') === -1;\n _global['ngDevMode'] = allowNgDevModeTrue && newCounters;\n return newCounters;\n}\n/**\n * This function checks to see if the `ngDevMode` has been set. If yes,\n * then we honor it, otherwise we default to dev mode with additional checks.\n *\n * The idea is that unless we are doing production build where we explicitly\n * set `ngDevMode == false` we should be helping the developer by providing\n * as much early warning and errors as possible.\n *\n * `ɵɵdefineComponent` is guaranteed to have been called before any component template functions\n * (and thus Ivy instructions), so a single initialization there is sufficient to ensure ngDevMode\n * is defined for the entire instruction set.\n *\n * When checking `ngDevMode` on toplevel, always init it before referencing it\n * (e.g. `((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode())`), otherwise you can\n * get a `ReferenceError` like in https://github.com/angular/angular/issues/31595.\n *\n * Details on possible values for `ngDevMode` can be found on its docstring.\n *\n * NOTE:\n * - changes to the `ngDevMode` name must be synced with `compiler-cli/src/tooling.ts`.\n */\nfunction initNgDevMode() {\n // The below checks are to ensure that calling `initNgDevMode` multiple times does not\n // reset the counters.\n // If the `ngDevMode` is not an object, then it means we have not created the perf counters\n // yet.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (typeof ngDevMode !== 'object') {\n ngDevModeResetPerfCounters();\n }\n return typeof ngDevMode !== 'undefined' && !!ngDevMode;\n }\n return false;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This file contains reuseable \"empty\" symbols that can be used as default return values\n * in different parts of the rendering code. Because the same symbols are returned, this\n * allows for identity checks against these values to be consistently used by the framework\n * code.\n */\nconst EMPTY_OBJ = {};\nconst EMPTY_ARRAY = [];\n// freezing the values prevents any code from accidentally inserting new values in\nif ((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode()) {\n // These property accesses can be ignored because ngDevMode will be set to false\n // when optimizing code and the whole if statement will be dropped.\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_OBJ);\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_ARRAY);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_COMP_DEF = getClosureSafeProperty({ ɵcmp: getClosureSafeProperty });\nconst NG_DIR_DEF = getClosureSafeProperty({ ɵdir: getClosureSafeProperty });\nconst NG_PIPE_DEF = getClosureSafeProperty({ ɵpipe: getClosureSafeProperty });\nconst NG_MOD_DEF = getClosureSafeProperty({ ɵmod: getClosureSafeProperty });\nconst NG_LOC_ID_DEF = getClosureSafeProperty({ ɵloc: getClosureSafeProperty });\nconst NG_FACTORY_DEF = getClosureSafeProperty({ ɵfac: getClosureSafeProperty });\n/**\n * If a directive is diPublic, bloomAdd sets a property on the type with this constant as\n * the key and the directive's unique ID as the value. This allows us to map directives to their\n * bloom filter bit for DI.\n */\n// TODO(misko): This is wrong. The NG_ELEMENT_ID should never be minified.\nconst NG_ELEMENT_ID = getClosureSafeProperty({ __NG_ELEMENT_ID__: getClosureSafeProperty });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet _renderCompCount = 0;\n/**\n * Create a component definition object.\n *\n *\n * # Example\n * ```\n * class MyDirective {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵcmp = defineComponent({\n * ...\n * });\n * }\n * ```\n * @codeGenApi\n */\nfunction ɵɵdefineComponent(componentDefinition) {\n return noSideEffects(() => {\n // Initialize ngDevMode. This must be the first statement in ɵɵdefineComponent.\n // See the `initNgDevMode` docstring for more information.\n (typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode();\n const type = componentDefinition.type;\n const typePrototype = type.prototype;\n const declaredInputs = {};\n const def = {\n type: type,\n providersResolver: null,\n decls: componentDefinition.decls,\n vars: componentDefinition.vars,\n factory: null,\n template: componentDefinition.template || null,\n consts: componentDefinition.consts || null,\n ngContentSelectors: componentDefinition.ngContentSelectors,\n hostBindings: componentDefinition.hostBindings || null,\n hostVars: componentDefinition.hostVars || 0,\n hostAttrs: componentDefinition.hostAttrs || null,\n contentQueries: componentDefinition.contentQueries || null,\n declaredInputs: declaredInputs,\n inputs: null,\n outputs: null,\n exportAs: componentDefinition.exportAs || null,\n onPush: componentDefinition.changeDetection === ChangeDetectionStrategy.OnPush,\n directiveDefs: null,\n pipeDefs: null,\n selectors: componentDefinition.selectors || EMPTY_ARRAY,\n viewQuery: componentDefinition.viewQuery || null,\n features: componentDefinition.features || null,\n data: componentDefinition.data || {},\n // TODO(misko): convert ViewEncapsulation into const enum so that it can be used\n // directly in the next line. Also `None` should be 0 not 2.\n encapsulation: componentDefinition.encapsulation || ViewEncapsulation.Emulated,\n id: 'c',\n styles: componentDefinition.styles || EMPTY_ARRAY,\n _: null,\n setInput: null,\n schemas: componentDefinition.schemas || null,\n tView: null,\n };\n const directiveTypes = componentDefinition.directives;\n const feature = componentDefinition.features;\n const pipeTypes = componentDefinition.pipes;\n def.id += _renderCompCount++;\n def.inputs = invertObject(componentDefinition.inputs, declaredInputs),\n def.outputs = invertObject(componentDefinition.outputs),\n feature && feature.forEach((fn) => fn(def));\n def.directiveDefs = directiveTypes ?\n () => (typeof directiveTypes === 'function' ? directiveTypes() : directiveTypes)\n .map(extractDirectiveDef) :\n null;\n def.pipeDefs = pipeTypes ?\n () => (typeof pipeTypes === 'function' ? pipeTypes() : pipeTypes).map(extractPipeDef) :\n null;\n return def;\n });\n}\n/**\n * Generated next to NgModules to monkey-patch directive and pipe references onto a component's\n * definition, when generating a direct reference in the component file would otherwise create an\n * import cycle.\n *\n * See [this explanation](https://hackmd.io/Odw80D0pR6yfsOjg_7XCJg?view) for more details.\n *\n * @codeGenApi\n */\nfunction ɵɵsetComponentScope(type, directives, pipes) {\n const def = type.ɵcmp;\n def.directiveDefs = () => directives.map(extractDirectiveDef);\n def.pipeDefs = () => pipes.map(extractPipeDef);\n}\nfunction extractDirectiveDef(type) {\n const def = getComponentDef(type) || getDirectiveDef(type);\n if (ngDevMode && !def) {\n throw new Error(`'${type.name}' is neither 'ComponentType' or 'DirectiveType'.`);\n }\n return def;\n}\nfunction extractPipeDef(type) {\n const def = getPipeDef(type);\n if (ngDevMode && !def) {\n throw new Error(`'${type.name}' is not a 'PipeType'.`);\n }\n return def;\n}\nconst autoRegisterModuleById = {};\n/**\n * @codeGenApi\n */\nfunction ɵɵdefineNgModule(def) {\n const res = {\n type: def.type,\n bootstrap: def.bootstrap || EMPTY_ARRAY,\n declarations: def.declarations || EMPTY_ARRAY,\n imports: def.imports || EMPTY_ARRAY,\n exports: def.exports || EMPTY_ARRAY,\n transitiveCompileScopes: null,\n schemas: def.schemas || null,\n id: def.id || null,\n };\n if (def.id != null) {\n noSideEffects(() => {\n autoRegisterModuleById[def.id] = def.type;\n });\n }\n return res;\n}\n/**\n * Adds the module metadata that is necessary to compute the module's transitive scope to an\n * existing module definition.\n *\n * Scope metadata of modules is not used in production builds, so calls to this function can be\n * marked pure to tree-shake it from the bundle, allowing for all referenced declarations\n * to become eligible for tree-shaking as well.\n *\n * @codeGenApi\n */\nfunction ɵɵsetNgModuleScope(type, scope) {\n return noSideEffects(() => {\n const ngModuleDef = getNgModuleDef(type, true);\n ngModuleDef.declarations = scope.declarations || EMPTY_ARRAY;\n ngModuleDef.imports = scope.imports || EMPTY_ARRAY;\n ngModuleDef.exports = scope.exports || EMPTY_ARRAY;\n });\n}\n/**\n * Inverts an inputs or outputs lookup such that the keys, which were the\n * minified keys, are part of the values, and the values are parsed so that\n * the publicName of the property is the new key\n *\n * e.g. for\n *\n * ```\n * class Comp {\n * @Input()\n * propName1: string;\n *\n * @Input('publicName2')\n * declaredPropName2: number;\n * }\n * ```\n *\n * will be serialized as\n *\n * ```\n * {\n * propName1: 'propName1',\n * declaredPropName2: ['publicName2', 'declaredPropName2'],\n * }\n * ```\n *\n * which is than translated by the minifier as:\n *\n * ```\n * {\n * minifiedPropName1: 'propName1',\n * minifiedPropName2: ['publicName2', 'declaredPropName2'],\n * }\n * ```\n *\n * becomes: (public name => minifiedName)\n *\n * ```\n * {\n * 'propName1': 'minifiedPropName1',\n * 'publicName2': 'minifiedPropName2',\n * }\n * ```\n *\n * Optionally the function can take `secondary` which will result in: (public name => declared name)\n *\n * ```\n * {\n * 'propName1': 'propName1',\n * 'publicName2': 'declaredPropName2',\n * }\n * ```\n *\n\n */\nfunction invertObject(obj, secondary) {\n if (obj == null)\n return EMPTY_OBJ;\n const newLookup = {};\n for (const minifiedKey in obj) {\n if (obj.hasOwnProperty(minifiedKey)) {\n let publicName = obj[minifiedKey];\n let declaredName = publicName;\n if (Array.isArray(publicName)) {\n declaredName = publicName[1];\n publicName = publicName[0];\n }\n newLookup[publicName] = minifiedKey;\n if (secondary) {\n (secondary[publicName] = declaredName);\n }\n }\n }\n return newLookup;\n}\n/**\n * Create a directive definition object.\n *\n * # Example\n * ```ts\n * class MyDirective {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵdir = ɵɵdefineDirective({\n * ...\n * });\n * }\n * ```\n *\n * @codeGenApi\n */\nconst ɵɵdefineDirective = ɵɵdefineComponent;\n/**\n * Create a pipe definition object.\n *\n * # Example\n * ```\n * class MyPipe implements PipeTransform {\n * // Generated by Angular Template Compiler\n * static ɵpipe = definePipe({\n * ...\n * });\n * }\n * ```\n * @param pipeDef Pipe definition generated by the compiler\n *\n * @codeGenApi\n */\nfunction ɵɵdefinePipe(pipeDef) {\n return {\n type: pipeDef.type,\n name: pipeDef.name,\n factory: null,\n pure: pipeDef.pure !== false,\n onDestroy: pipeDef.type.prototype.ngOnDestroy || null\n };\n}\n/**\n * The following getter methods retrieve the definition from the type. Currently the retrieval\n * honors inheritance, but in the future we may change the rule to require that definitions are\n * explicit. This would require some sort of migration strategy.\n */\nfunction getComponentDef(type) {\n return type[NG_COMP_DEF] || null;\n}\nfunction getDirectiveDef(type) {\n return type[NG_DIR_DEF] || null;\n}\nfunction getPipeDef(type) {\n return type[NG_PIPE_DEF] || null;\n}\nfunction getNgModuleDef(type, throwNotFound) {\n const ngModuleDef = type[NG_MOD_DEF] || null;\n if (!ngModuleDef && throwNotFound === true) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵmod' property.`);\n }\n return ngModuleDef;\n}\nfunction getNgLocaleIdDef(type) {\n return type[NG_LOC_ID_DEF] || null;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Below are constants for LView indices to help us look up LView members\n// without having to remember the specific indices.\n// Uglify will inline these when minifying so there shouldn't be a cost.\nconst HOST = 0;\nconst TVIEW = 1;\nconst FLAGS = 2;\nconst PARENT = 3;\nconst NEXT = 4;\nconst TRANSPLANTED_VIEWS_TO_REFRESH = 5;\nconst T_HOST = 6;\nconst CLEANUP = 7;\nconst CONTEXT = 8;\nconst INJECTOR = 9;\nconst RENDERER_FACTORY = 10;\nconst RENDERER = 11;\nconst SANITIZER = 12;\nconst CHILD_HEAD = 13;\nconst CHILD_TAIL = 14;\n// FIXME(misko): Investigate if the three declarations aren't all same thing.\nconst DECLARATION_VIEW = 15;\nconst DECLARATION_COMPONENT_VIEW = 16;\nconst DECLARATION_LCONTAINER = 17;\nconst PREORDER_HOOK_FLAGS = 18;\nconst QUERIES = 19;\n/**\n * Size of LView's header. Necessary to adjust for it when setting slots.\n *\n * IMPORTANT: `HEADER_OFFSET` should only be referred to the in the `ɵɵ*` instructions to translate\n * instruction index into `LView` index. All other indexes should be in the `LView` index space and\n * there should be no need to refer to `HEADER_OFFSET` anywhere else.\n */\nconst HEADER_OFFSET = 20;\n/**\n * Converts `TViewType` into human readable text.\n * Make sure this matches with `TViewType`\n */\nconst TViewTypeAsString = [\n 'Root',\n 'Component',\n 'Embedded',\n];\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd = 1;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Special location which allows easy identification of type. If we have an array which was\n * retrieved from the `LView` and that array has `true` at `TYPE` location, we know it is\n * `LContainer`.\n */\nconst TYPE = 1;\n/**\n * Below are constants for LContainer indices to help us look up LContainer members\n * without having to remember the specific indices.\n * Uglify will inline these when minifying so there shouldn't be a cost.\n */\n/**\n * Flag to signify that this `LContainer` may have transplanted views which need to be change\n * detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.\n *\n * This flag, once set, is never unset for the `LContainer`. This means that when unset we can skip\n * a lot of work in `refreshEmbeddedViews`. But when set we still need to verify\n * that the `MOVED_VIEWS` are transplanted and on-push.\n */\nconst HAS_TRANSPLANTED_VIEWS = 2;\n// PARENT, NEXT, TRANSPLANTED_VIEWS_TO_REFRESH are indices 3, 4, and 5\n// As we already have these constants in LView, we don't need to re-create them.\n// T_HOST is index 6\n// We already have this constants in LView, we don't need to re-create it.\nconst NATIVE = 7;\nconst VIEW_REFS = 8;\nconst MOVED_VIEWS = 9;\n/**\n * Size of LContainer's header. Represents the index after which all views in the\n * container will be inserted. We need to keep a record of current views so we know\n * which views are already in the DOM (and don't need to be re-added) and so we can\n * remove views from the DOM when they are no longer required.\n */\nconst CONTAINER_HEADER_OFFSET = 10;\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$1 = 1;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * True if `value` is `LView`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLView(value) {\n return Array.isArray(value) && typeof value[TYPE] === 'object';\n}\n/**\n * True if `value` is `LContainer`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction isLContainer(value) {\n return Array.isArray(value) && value[TYPE] === true;\n}\nfunction isContentQueryHost(tNode) {\n return (tNode.flags & 8 /* hasContentQuery */) !== 0;\n}\nfunction isComponentHost(tNode) {\n return (tNode.flags & 2 /* isComponentHost */) === 2 /* isComponentHost */;\n}\nfunction isDirectiveHost(tNode) {\n return (tNode.flags & 1 /* isDirectiveHost */) === 1 /* isDirectiveHost */;\n}\nfunction isComponentDef(def) {\n return def.template !== null;\n}\nfunction isRootView(target) {\n return (target[FLAGS] & 512 /* IsRoot */) !== 0;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// [Assert functions do not constraint type when they are guarded by a truthy\n// expression.](https://github.com/microsoft/TypeScript/issues/37295)\nfunction assertTNodeForLView(tNode, lView) {\n assertTNodeForTView(tNode, lView[TVIEW]);\n}\nfunction assertTNodeForTView(tNode, tView) {\n assertTNode(tNode);\n tNode.hasOwnProperty('tView_') &&\n assertEqual(tNode.tView_, tView, 'This TNode does not belong to this TView.');\n}\nfunction assertTNode(tNode) {\n assertDefined(tNode, 'TNode must be defined');\n if (!(tNode && typeof tNode === 'object' && tNode.hasOwnProperty('directiveStylingLast'))) {\n throwError('Not of type TNode, got: ' + tNode);\n }\n}\nfunction assertTIcu(tIcu) {\n assertDefined(tIcu, 'Expected TIcu to be defined');\n if (!(typeof tIcu.currentCaseLViewIndex === 'number')) {\n throwError('Object is not of TIcu type.');\n }\n}\nfunction assertComponentType(actual, msg = 'Type passed in is not ComponentType, it does not have \\'ɵcmp\\' property.') {\n if (!getComponentDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertNgModuleType(actual, msg = 'Type passed in is not NgModuleType, it does not have \\'ɵmod\\' property.') {\n if (!getNgModuleDef(actual)) {\n throwError(msg);\n }\n}\nfunction assertCurrentTNodeIsParent(isParent) {\n assertEqual(isParent, true, 'currentTNode should be a parent');\n}\nfunction assertHasParent(tNode) {\n assertDefined(tNode, 'currentTNode should exist!');\n assertDefined(tNode.parent, 'currentTNode should have a parent');\n}\nfunction assertDataNext(lView, index, arr) {\n if (arr == null)\n arr = lView;\n assertEqual(arr.length, index, `index ${index} expected to be at the end of arr (length ${arr.length})`);\n}\nfunction assertLContainer(value) {\n assertDefined(value, 'LContainer must be defined');\n assertEqual(isLContainer(value), true, 'Expecting LContainer');\n}\nfunction assertLViewOrUndefined(value) {\n value && assertEqual(isLView(value), true, 'Expecting LView or undefined or null');\n}\nfunction assertLView(value) {\n assertDefined(value, 'LView must be defined');\n assertEqual(isLView(value), true, 'Expecting LView');\n}\nfunction assertFirstCreatePass(tView, errMessage) {\n assertEqual(tView.firstCreatePass, true, errMessage || 'Should only be called in first create pass.');\n}\nfunction assertFirstUpdatePass(tView, errMessage) {\n assertEqual(tView.firstUpdatePass, true, errMessage || 'Should only be called in first update pass.');\n}\n/**\n * This is a basic sanity check that an object is probably a directive def. DirectiveDef is\n * an interface, so we can't do a direct instanceof check.\n */\nfunction assertDirectiveDef(obj) {\n if (obj.type === undefined || obj.selectors == undefined || obj.inputs === undefined) {\n throwError(`Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.`);\n }\n}\nfunction assertIndexInDeclRange(lView, index) {\n const tView = lView[1];\n assertBetween(HEADER_OFFSET, tView.bindingStartIndex, index);\n}\nfunction assertIndexInVarsRange(lView, index) {\n const tView = lView[1];\n assertBetween(tView.bindingStartIndex, tView.expandoStartIndex, index);\n}\nfunction assertIndexInExpandoRange(lView, index) {\n const tView = lView[1];\n assertBetween(tView.expandoStartIndex, lView.length, index);\n}\nfunction assertBetween(lower, upper, index) {\n if (!(lower <= index && index < upper)) {\n throwError(`Index out of range (expecting ${lower} <= ${index} < ${upper})`);\n }\n}\n/**\n * This is a basic sanity check that the `injectorIndex` seems to point to what looks like a\n * NodeInjector data structure.\n *\n * @param lView `LView` which should be checked.\n * @param injectorIndex index into the `LView` where the `NodeInjector` is expected.\n */\nfunction assertNodeInjector(lView, injectorIndex) {\n assertIndexInExpandoRange(lView, injectorIndex);\n assertIndexInExpandoRange(lView, injectorIndex + 8 /* PARENT */);\n assertNumber(lView[injectorIndex + 0], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 1], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 2], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 3], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 4], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 5], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 6], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 7], 'injectorIndex should point to a bloom filter');\n assertNumber(lView[injectorIndex + 8 /* PARENT */], 'injectorIndex should point to parent injector');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction getFactoryDef(type, throwNotFound) {\n const hasFactoryDef = type.hasOwnProperty(NG_FACTORY_DEF);\n if (!hasFactoryDef && throwNotFound === true && ngDevMode) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵfac' property.`);\n }\n return hasFactoryDef ? type[NG_FACTORY_DEF] : null;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass RuntimeError extends Error {\n constructor(code, message) {\n super(formatRuntimeError(code, message));\n this.code = code;\n }\n}\n/** Called to format a runtime error */\nfunction formatRuntimeError(code, message) {\n const fullCode = code ? `NG0${code}: ` : '';\n return `${fullCode}${message}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Used for stringify render output in Ivy.\n * Important! This function is very performance-sensitive and we should\n * be extra careful not to introduce megamorphic reads in it.\n * Check `core/test/render3/perf/render_stringify` for benchmarks and alternate implementations.\n */\nfunction renderStringify(value) {\n if (typeof value === 'string')\n return value;\n if (value == null)\n return '';\n // Use `String` so that it invokes the `toString` method of the value. Note that this\n // appears to be faster than calling `value.toString` (see `render_stringify` benchmark).\n return String(value);\n}\n/**\n * Used to stringify a value so that it can be displayed in an error message.\n * Important! This function contains a megamorphic read and should only be\n * used for error messages.\n */\nfunction stringifyForError(value) {\n if (typeof value === 'function')\n return value.name || value.toString();\n if (typeof value === 'object' && value != null && typeof value.type === 'function') {\n return value.type.name || value.type.toString();\n }\n return renderStringify(value);\n}\n\n/** Called when directives inject each other (creating a circular dependency) */\nfunction throwCyclicDependencyError(token, path) {\n const depPath = path ? `. Dependency path: ${path.join(' > ')} > ${token}` : '';\n throw new RuntimeError(\"200\" /* CYCLIC_DI_DEPENDENCY */, `Circular dependency in DI detected for ${token}${depPath}`);\n}\nfunction throwMixedMultiProviderError() {\n throw new Error(`Cannot mix multi providers and regular providers`);\n}\nfunction throwInvalidProviderError(ngModuleType, providers, provider) {\n let ngModuleDetail = '';\n if (ngModuleType && providers) {\n const providerDetail = providers.map(v => v == provider ? '?' + provider + '?' : '...');\n ngModuleDetail =\n ` - only instances of Provider and Type are allowed, got: [${providerDetail.join(', ')}]`;\n }\n throw new Error(`Invalid provider for the NgModule '${stringify(ngModuleType)}'` + ngModuleDetail);\n}\n/** Throws an error when a token is not found in DI. */\nfunction throwProviderNotFoundError(token, injectorName) {\n const injectorDetails = injectorName ? ` in ${injectorName}` : '';\n throw new RuntimeError(\"201\" /* PROVIDER_NOT_FOUND */, `No provider for ${stringifyForError(token)} found${injectorDetails}`);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Represents a basic change from a previous to a new value for a single\n * property on a directive instance. Passed as a value in a\n * {@link SimpleChanges} object to the `ngOnChanges` hook.\n *\n * @see `OnChanges`\n *\n * @publicApi\n */\nclass SimpleChange {\n constructor(previousValue, currentValue, firstChange) {\n this.previousValue = previousValue;\n this.currentValue = currentValue;\n this.firstChange = firstChange;\n }\n /**\n * Check whether the new value is the first value assigned.\n */\n isFirstChange() {\n return this.firstChange;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The NgOnChangesFeature decorates a component with support for the ngOnChanges\n * lifecycle hook, so it should be included in any component that implements\n * that hook.\n *\n * If the component or directive uses inheritance, the NgOnChangesFeature MUST\n * be included as a feature AFTER {@link InheritDefinitionFeature}, otherwise\n * inherited properties will not be propagated to the ngOnChanges lifecycle\n * hook.\n *\n * Example usage:\n *\n * ```\n * static ɵcmp = defineComponent({\n * ...\n * inputs: {name: 'publicName'},\n * features: [NgOnChangesFeature]\n * });\n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵNgOnChangesFeature() {\n return NgOnChangesFeatureImpl;\n}\nfunction NgOnChangesFeatureImpl(definition) {\n if (definition.type.prototype.ngOnChanges) {\n definition.setInput = ngOnChangesSetInput;\n }\n return rememberChangeHistoryAndInvokeOnChangesHook;\n}\n// This option ensures that the ngOnChanges lifecycle hook will be inherited\n// from superclasses (in InheritDefinitionFeature).\n/** @nocollapse */\n// tslint:disable-next-line:no-toplevel-property-access\nɵɵNgOnChangesFeature.ngInherit = true;\n/**\n * This is a synthetic lifecycle hook which gets inserted into `TView.preOrderHooks` to simulate\n * `ngOnChanges`.\n *\n * The hook reads the `NgSimpleChangesStore` data from the component instance and if changes are\n * found it invokes `ngOnChanges` on the component instance.\n *\n * @param this Component instance. Because this function gets inserted into `TView.preOrderHooks`,\n * it is guaranteed to be called with component instance.\n */\nfunction rememberChangeHistoryAndInvokeOnChangesHook() {\n const simpleChangesStore = getSimpleChangesStore(this);\n const current = simpleChangesStore === null || simpleChangesStore === void 0 ? void 0 : simpleChangesStore.current;\n if (current) {\n const previous = simpleChangesStore.previous;\n if (previous === EMPTY_OBJ) {\n simpleChangesStore.previous = current;\n }\n else {\n // New changes are copied to the previous store, so that we don't lose history for inputs\n // which were not changed this time\n for (let key in current) {\n previous[key] = current[key];\n }\n }\n simpleChangesStore.current = null;\n this.ngOnChanges(current);\n }\n}\nfunction ngOnChangesSetInput(instance, value, publicName, privateName) {\n const simpleChangesStore = getSimpleChangesStore(instance) ||\n setSimpleChangesStore(instance, { previous: EMPTY_OBJ, current: null });\n const current = simpleChangesStore.current || (simpleChangesStore.current = {});\n const previous = simpleChangesStore.previous;\n const declaredName = this.declaredInputs[publicName];\n const previousChange = previous[declaredName];\n current[declaredName] = new SimpleChange(previousChange && previousChange.currentValue, value, previous === EMPTY_OBJ);\n instance[privateName] = value;\n}\nconst SIMPLE_CHANGES_STORE = '__ngSimpleChanges__';\nfunction getSimpleChangesStore(instance) {\n return instance[SIMPLE_CHANGES_STORE] || null;\n}\nfunction setSimpleChangesStore(instance, store) {\n return instance[SIMPLE_CHANGES_STORE] = store;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nconst MATH_ML_NAMESPACE = 'http://www.w3.org/1998/MathML/';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This property will be monkey-patched on elements, components and directives\n */\nconst MONKEY_PATCH_KEY_NAME = '__ngContext__';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Most of the use of `document` in Angular is from within the DI system so it is possible to simply\n * inject the `DOCUMENT` token and are done.\n *\n * Ivy is special because it does not rely upon the DI and must get hold of the document some other\n * way.\n *\n * The solution is to define `getDocument()` and `setDocument()` top-level functions for ivy.\n * Wherever ivy needs the global document, it calls `getDocument()` instead.\n *\n * When running ivy outside of a browser environment, it is necessary to call `setDocument()` to\n * tell ivy what the global `document` is.\n *\n * Angular does this for us in each of the standard platforms (`Browser`, `Server`, and `WebWorker`)\n * by calling `setDocument()` when providing the `DOCUMENT` token.\n */\nlet DOCUMENT = undefined;\n/**\n * Tell ivy what the `document` is for this platform.\n *\n * It is only necessary to call this if the current platform is not a browser.\n *\n * @param document The object representing the global `document` in this environment.\n */\nfunction setDocument(document) {\n DOCUMENT = document;\n}\n/**\n * Access the object that represents the `document` for this platform.\n *\n * Ivy calls this whenever it needs to access the `document` object.\n * For example to create the renderer or to do sanitization.\n */\nfunction getDocument() {\n if (DOCUMENT !== undefined) {\n return DOCUMENT;\n }\n else if (typeof document !== 'undefined') {\n return document;\n }\n // No \"document\" can be found. This should only happen if we are running ivy outside Angular and\n // the current platform is not a browser. Since this is not a supported scenario at the moment\n // this should not happen in Angular apps.\n // Once we support running ivy outside of Angular we will need to publish `setDocument()` as a\n // public API. Meanwhile we just return `undefined` and let the application fail.\n return undefined;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// TODO: cleanup once the code is merged in angular/angular\nvar RendererStyleFlags3;\n(function (RendererStyleFlags3) {\n RendererStyleFlags3[RendererStyleFlags3[\"Important\"] = 1] = \"Important\";\n RendererStyleFlags3[RendererStyleFlags3[\"DashCase\"] = 2] = \"DashCase\";\n})(RendererStyleFlags3 || (RendererStyleFlags3 = {}));\n/** Returns whether the `renderer` is a `ProceduralRenderer3` */\nfunction isProceduralRenderer(renderer) {\n return !!(renderer.listen);\n}\nconst ɵ0 = (hostElement, rendererType) => {\n return getDocument();\n};\nconst domRendererFactory3 = {\n createRenderer: ɵ0\n};\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$2 = 1;\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * For efficiency reasons we often put several different data types (`RNode`, `LView`, `LContainer`)\n * in same location in `LView`. This is because we don't want to pre-allocate space for it\n * because the storage is sparse. This file contains utilities for dealing with such data types.\n *\n * How do we know what is stored at a given location in `LView`.\n * - `Array.isArray(value) === false` => `RNode` (The normal storage value)\n * - `Array.isArray(value) === true` => then the `value[0]` represents the wrapped value.\n * - `typeof value[TYPE] === 'object'` => `LView`\n * - This happens when we have a component at a given location\n * - `typeof value[TYPE] === true` => `LContainer`\n * - This happens when we have `LContainer` binding at a given location.\n *\n *\n * NOTE: it is assumed that `Array.isArray` and `typeof` operations are very efficient.\n */\n/**\n * Returns `RNode`.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapRNode(value) {\n while (Array.isArray(value)) {\n value = value[HOST];\n }\n return value;\n}\n/**\n * Returns `LView` or `null` if not found.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapLView(value) {\n while (Array.isArray(value)) {\n // This check is same as `isLView()` but we don't call at as we don't want to call\n // `Array.isArray()` twice and give JITer more work for inlining.\n if (typeof value[TYPE] === 'object')\n return value;\n value = value[HOST];\n }\n return null;\n}\n/**\n * Returns `LContainer` or `null` if not found.\n * @param value wrapped value of `RNode`, `LView`, `LContainer`\n */\nfunction unwrapLContainer(value) {\n while (Array.isArray(value)) {\n // This check is same as `isLContainer()` but we don't call at as we don't want to call\n // `Array.isArray()` twice and give JITer more work for inlining.\n if (value[TYPE] === true)\n return value;\n value = value[HOST];\n }\n return null;\n}\n/**\n * Retrieves an element value from the provided `viewData`, by unwrapping\n * from any containers, component views, or style contexts.\n */\nfunction getNativeByIndex(index, lView) {\n ngDevMode && assertIndexInRange(lView, index);\n ngDevMode && assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Expected to be past HEADER_OFFSET');\n return unwrapRNode(lView[index]);\n}\n/**\n * Retrieve an `RNode` for a given `TNode` and `LView`.\n *\n * This function guarantees in dev mode to retrieve a non-null `RNode`.\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNode(tNode, lView) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n ngDevMode && assertIndexInRange(lView, tNode.index);\n const node = unwrapRNode(lView[tNode.index]);\n ngDevMode && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);\n return node;\n}\n/**\n * Retrieve an `RNode` or `null` for a given `TNode` and `LView`.\n *\n * Some `TNode`s don't have associated `RNode`s. For example `Projection`\n *\n * @param tNode\n * @param lView\n */\nfunction getNativeByTNodeOrNull(tNode, lView) {\n const index = tNode === null ? -1 : tNode.index;\n if (index !== -1) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n const node = unwrapRNode(lView[index]);\n ngDevMode && node !== null && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);\n return node;\n }\n return null;\n}\n// fixme(misko): The return Type should be `TNode|null`\nfunction getTNode(tView, index) {\n ngDevMode && assertGreaterThan(index, -1, 'wrong index for TNode');\n ngDevMode && assertLessThan(index, tView.data.length, 'wrong index for TNode');\n const tNode = tView.data[index];\n ngDevMode && tNode !== null && assertTNode(tNode);\n return tNode;\n}\n/** Retrieves a value from any `LView` or `TData`. */\nfunction load(view, index) {\n ngDevMode && assertIndexInRange(view, index);\n return view[index];\n}\nfunction getComponentLViewByIndex(nodeIndex, hostView) {\n // Could be an LView or an LContainer. If LContainer, unwrap to find LView.\n ngDevMode && assertIndexInRange(hostView, nodeIndex);\n const slotValue = hostView[nodeIndex];\n const lView = isLView(slotValue) ? slotValue : slotValue[HOST];\n return lView;\n}\n/**\n * Returns the monkey-patch value data present on the target (which could be\n * a component, directive or a DOM node).\n */\nfunction readPatchedData(target) {\n ngDevMode && assertDefined(target, 'Target expected');\n return target[MONKEY_PATCH_KEY_NAME] || null;\n}\nfunction readPatchedLView(target) {\n const value = readPatchedData(target);\n if (value) {\n return Array.isArray(value) ? value : value.lView;\n }\n return null;\n}\n/** Checks whether a given view is in creation mode */\nfunction isCreationMode(view) {\n return (view[FLAGS] & 4 /* CreationMode */) === 4 /* CreationMode */;\n}\n/**\n * Returns a boolean for whether the view is attached to the change detection tree.\n *\n * Note: This determines whether a view should be checked, not whether it's inserted\n * into a container. For that, you'll want `viewAttachedToContainer` below.\n */\nfunction viewAttachedToChangeDetector(view) {\n return (view[FLAGS] & 128 /* Attached */) === 128 /* Attached */;\n}\n/** Returns a boolean for whether the view is attached to a container. */\nfunction viewAttachedToContainer(view) {\n return isLContainer(view[PARENT]);\n}\nfunction getConstant(consts, index) {\n if (index === null || index === undefined)\n return null;\n ngDevMode && assertIndexInRange(consts, index);\n return consts[index];\n}\n/**\n * Resets the pre-order hook flags of the view.\n * @param lView the LView on which the flags are reset\n */\nfunction resetPreOrderHookFlags(lView) {\n lView[PREORDER_HOOK_FLAGS] = 0;\n}\n/**\n * Updates the `TRANSPLANTED_VIEWS_TO_REFRESH` counter on the `LContainer` as well as the parents\n * whose\n * 1. counter goes from 0 to 1, indicating that there is a new child that has a view to refresh\n * or\n * 2. counter goes from 1 to 0, indicating there are no more descendant views to refresh\n */\nfunction updateTransplantedViewCount(lContainer, amount) {\n lContainer[TRANSPLANTED_VIEWS_TO_REFRESH] += amount;\n let viewOrContainer = lContainer;\n let parent = lContainer[PARENT];\n while (parent !== null &&\n ((amount === 1 && viewOrContainer[TRANSPLANTED_VIEWS_TO_REFRESH] === 1) ||\n (amount === -1 && viewOrContainer[TRANSPLANTED_VIEWS_TO_REFRESH] === 0))) {\n parent[TRANSPLANTED_VIEWS_TO_REFRESH] += amount;\n viewOrContainer = parent;\n parent = parent[PARENT];\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst instructionState = {\n lFrame: createLFrame(null),\n bindingsEnabled: true,\n isInCheckNoChangesMode: false,\n};\n/**\n * Returns true if the instruction state stack is empty.\n *\n * Intended to be called from tests only (tree shaken otherwise).\n */\nfunction specOnlyIsInstructionStateEmpty() {\n return instructionState.lFrame.parent === null;\n}\nfunction getElementDepthCount() {\n return instructionState.lFrame.elementDepthCount;\n}\nfunction increaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount++;\n}\nfunction decreaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount--;\n}\nfunction getBindingsEnabled() {\n return instructionState.bindingsEnabled;\n}\n/**\n * Enables directive matching on elements.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n *
    \n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
    \n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵenableBindings() {\n instructionState.bindingsEnabled = true;\n}\n/**\n * Disables directive matching on element.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n *
    \n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
    \n * ```\n *\n * @codeGenApi\n */\nfunction ɵɵdisableBindings() {\n instructionState.bindingsEnabled = false;\n}\n/**\n * Return the current `LView`.\n */\nfunction getLView() {\n return instructionState.lFrame.lView;\n}\n/**\n * Return the current `TView`.\n */\nfunction getTView() {\n return instructionState.lFrame.tView;\n}\n/**\n * Restores `contextViewData` to the given OpaqueViewState instance.\n *\n * Used in conjunction with the getCurrentView() instruction to save a snapshot\n * of the current view and restore it when listeners are invoked. This allows\n * walking the declaration view tree in listeners to get vars from parent views.\n *\n * @param viewToRestore The OpaqueViewState instance to restore.\n *\n * @codeGenApi\n */\nfunction ɵɵrestoreView(viewToRestore) {\n instructionState.lFrame.contextLView = viewToRestore;\n}\nfunction getCurrentTNode() {\n let currentTNode = getCurrentTNodePlaceholderOk();\n while (currentTNode !== null && currentTNode.type === 64 /* Placeholder */) {\n currentTNode = currentTNode.parent;\n }\n return currentTNode;\n}\nfunction getCurrentTNodePlaceholderOk() {\n return instructionState.lFrame.currentTNode;\n}\nfunction getCurrentParentTNode() {\n const lFrame = instructionState.lFrame;\n const currentTNode = lFrame.currentTNode;\n return lFrame.isParent ? currentTNode : currentTNode.parent;\n}\nfunction setCurrentTNode(tNode, isParent) {\n ngDevMode && tNode && assertTNodeForTView(tNode, instructionState.lFrame.tView);\n const lFrame = instructionState.lFrame;\n lFrame.currentTNode = tNode;\n lFrame.isParent = isParent;\n}\nfunction isCurrentTNodeParent() {\n return instructionState.lFrame.isParent;\n}\nfunction setCurrentTNodeAsNotParent() {\n instructionState.lFrame.isParent = false;\n}\nfunction setCurrentTNodeAsParent() {\n instructionState.lFrame.isParent = true;\n}\nfunction getContextLView() {\n return instructionState.lFrame.contextLView;\n}\nfunction isInCheckNoChangesMode() {\n // TODO(misko): remove this from the LView since it is ngDevMode=true mode only.\n return instructionState.isInCheckNoChangesMode;\n}\nfunction setIsInCheckNoChangesMode(mode) {\n instructionState.isInCheckNoChangesMode = mode;\n}\n// top level variables should not be exported for performance reasons (PERF_NOTES.md)\nfunction getBindingRoot() {\n const lFrame = instructionState.lFrame;\n let index = lFrame.bindingRootIndex;\n if (index === -1) {\n index = lFrame.bindingRootIndex = lFrame.tView.bindingStartIndex;\n }\n return index;\n}\nfunction getBindingIndex() {\n return instructionState.lFrame.bindingIndex;\n}\nfunction setBindingIndex(value) {\n return instructionState.lFrame.bindingIndex = value;\n}\nfunction nextBindingIndex() {\n return instructionState.lFrame.bindingIndex++;\n}\nfunction incrementBindingIndex(count) {\n const lFrame = instructionState.lFrame;\n const index = lFrame.bindingIndex;\n lFrame.bindingIndex = lFrame.bindingIndex + count;\n return index;\n}\nfunction isInI18nBlock() {\n return instructionState.lFrame.inI18n;\n}\nfunction setInI18nBlock(isInI18nBlock) {\n instructionState.lFrame.inI18n = isInI18nBlock;\n}\n/**\n * Set a new binding root index so that host template functions can execute.\n *\n * Bindings inside the host template are 0 index. But because we don't know ahead of time\n * how many host bindings we have we can't pre-compute them. For this reason they are all\n * 0 index and we just shift the root so that they match next available location in the LView.\n *\n * @param bindingRootIndex Root index for `hostBindings`\n * @param currentDirectiveIndex `TData[currentDirectiveIndex]` will point to the current directive\n * whose `hostBindings` are being processed.\n */\nfunction setBindingRootForHostBindings(bindingRootIndex, currentDirectiveIndex) {\n const lFrame = instructionState.lFrame;\n lFrame.bindingIndex = lFrame.bindingRootIndex = bindingRootIndex;\n setCurrentDirectiveIndex(currentDirectiveIndex);\n}\n/**\n * When host binding is executing this points to the directive index.\n * `TView.data[getCurrentDirectiveIndex()]` is `DirectiveDef`\n * `LView[getCurrentDirectiveIndex()]` is directive instance.\n */\nfunction getCurrentDirectiveIndex() {\n return instructionState.lFrame.currentDirectiveIndex;\n}\n/**\n * Sets an index of a directive whose `hostBindings` are being processed.\n *\n * @param currentDirectiveIndex `TData` index where current directive instance can be found.\n */\nfunction setCurrentDirectiveIndex(currentDirectiveIndex) {\n instructionState.lFrame.currentDirectiveIndex = currentDirectiveIndex;\n}\n/**\n * Retrieve the current `DirectiveDef` which is active when `hostBindings` instruction is being\n * executed.\n *\n * @param tData Current `TData` where the `DirectiveDef` will be looked up at.\n */\nfunction getCurrentDirectiveDef(tData) {\n const currentDirectiveIndex = instructionState.lFrame.currentDirectiveIndex;\n return currentDirectiveIndex === -1 ? null : tData[currentDirectiveIndex];\n}\nfunction getCurrentQueryIndex() {\n return instructionState.lFrame.currentQueryIndex;\n}\nfunction setCurrentQueryIndex(value) {\n instructionState.lFrame.currentQueryIndex = value;\n}\n/**\n * Returns a `TNode` of the location where the current `LView` is declared at.\n *\n * @param lView an `LView` that we want to find parent `TNode` for.\n */\nfunction getDeclarationTNode(lView) {\n const tView = lView[TVIEW];\n // Return the declaration parent for embedded views\n if (tView.type === 2 /* Embedded */) {\n ngDevMode && assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n return tView.declTNode;\n }\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n // Falling back to `T_HOST` in case we cross component boundary.\n if (tView.type === 1 /* Component */) {\n return lView[T_HOST];\n }\n // Remaining TNode type is `TViewType.Root` which doesn't have a parent TNode.\n return null;\n}\n/**\n * This is a light weight version of the `enterView` which is needed by the DI system.\n *\n * @param lView `LView` location of the DI context.\n * @param tNode `TNode` for DI context\n * @param flags DI context flags. if `SkipSelf` flag is set than we walk up the declaration\n * tree from `tNode` until we find parent declared `TElementNode`.\n * @returns `true` if we have successfully entered DI associated with `tNode` (or with declared\n * `TNode` if `flags` has `SkipSelf`). Failing to enter DI implies that no associated\n * `NodeInjector` can be found and we should instead use `ModuleInjector`.\n * - If `true` than this call must be fallowed by `leaveDI`\n * - If `false` than this call failed and we should NOT call `leaveDI`\n */\nfunction enterDI(lView, tNode, flags) {\n ngDevMode && assertLViewOrUndefined(lView);\n if (flags & InjectFlags.SkipSelf) {\n ngDevMode && assertTNodeForTView(tNode, lView[TVIEW]);\n let parentTNode = tNode;\n let parentLView = lView;\n while (true) {\n ngDevMode && assertDefined(parentTNode, 'Parent TNode should be defined');\n parentTNode = parentTNode.parent;\n if (parentTNode === null && !(flags & InjectFlags.Host)) {\n parentTNode = getDeclarationTNode(parentLView);\n if (parentTNode === null)\n break;\n // In this case, a parent exists and is definitely an element. So it will definitely\n // have an existing lView as the declaration view, which is why we can assume it's defined.\n ngDevMode && assertDefined(parentLView, 'Parent LView should be defined');\n parentLView = parentLView[DECLARATION_VIEW];\n // In Ivy there are Comment nodes that correspond to ngIf and NgFor embedded directives\n // We want to skip those and look only at Elements and ElementContainers to ensure\n // we're looking at true parent nodes, and not content or other types.\n if (parentTNode.type & (2 /* Element */ | 8 /* ElementContainer */)) {\n break;\n }\n }\n else {\n break;\n }\n }\n if (parentTNode === null) {\n // If we failed to find a parent TNode this means that we should use module injector.\n return false;\n }\n else {\n tNode = parentTNode;\n lView = parentLView;\n }\n }\n ngDevMode && assertTNodeForLView(tNode, lView);\n const lFrame = instructionState.lFrame = allocLFrame();\n lFrame.currentTNode = tNode;\n lFrame.lView = lView;\n return true;\n}\n/**\n * Swap the current lView with a new lView.\n *\n * For performance reasons we store the lView in the top level of the module.\n * This way we minimize the number of properties to read. Whenever a new view\n * is entered we have to store the lView for later, and when the view is\n * exited the state has to be restored\n *\n * @param newView New lView to become active\n * @returns the previously active lView;\n */\nfunction enterView(newView) {\n ngDevMode && assertNotEqual(newView[0], newView[1], '????');\n ngDevMode && assertLViewOrUndefined(newView);\n const newLFrame = allocLFrame();\n if (ngDevMode) {\n assertEqual(newLFrame.isParent, true, 'Expected clean LFrame');\n assertEqual(newLFrame.lView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.tView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.selectedIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.elementDepthCount, 0, 'Expected clean LFrame');\n assertEqual(newLFrame.currentDirectiveIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentNamespace, null, 'Expected clean LFrame');\n assertEqual(newLFrame.bindingRootIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentQueryIndex, 0, 'Expected clean LFrame');\n }\n const tView = newView[TVIEW];\n instructionState.lFrame = newLFrame;\n ngDevMode && tView.firstChild && assertTNodeForTView(tView.firstChild, tView);\n newLFrame.currentTNode = tView.firstChild;\n newLFrame.lView = newView;\n newLFrame.tView = tView;\n newLFrame.contextLView = newView;\n newLFrame.bindingIndex = tView.bindingStartIndex;\n newLFrame.inI18n = false;\n}\n/**\n * Allocates next free LFrame. This function tries to reuse the `LFrame`s to lower memory pressure.\n */\nfunction allocLFrame() {\n const currentLFrame = instructionState.lFrame;\n const childLFrame = currentLFrame === null ? null : currentLFrame.child;\n const newLFrame = childLFrame === null ? createLFrame(currentLFrame) : childLFrame;\n return newLFrame;\n}\nfunction createLFrame(parent) {\n const lFrame = {\n currentTNode: null,\n isParent: true,\n lView: null,\n tView: null,\n selectedIndex: -1,\n contextLView: null,\n elementDepthCount: 0,\n currentNamespace: null,\n currentDirectiveIndex: -1,\n bindingRootIndex: -1,\n bindingIndex: -1,\n currentQueryIndex: 0,\n parent: parent,\n child: null,\n inI18n: false,\n };\n parent !== null && (parent.child = lFrame); // link the new LFrame for reuse.\n return lFrame;\n}\n/**\n * A lightweight version of leave which is used with DI.\n *\n * This function only resets `currentTNode` and `LView` as those are the only properties\n * used with DI (`enterDI()`).\n *\n * NOTE: This function is reexported as `leaveDI`. However `leaveDI` has return type of `void` where\n * as `leaveViewLight` has `LFrame`. This is so that `leaveViewLight` can be used in `leaveView`.\n */\nfunction leaveViewLight() {\n const oldLFrame = instructionState.lFrame;\n instructionState.lFrame = oldLFrame.parent;\n oldLFrame.currentTNode = null;\n oldLFrame.lView = null;\n return oldLFrame;\n}\n/**\n * This is a lightweight version of the `leaveView` which is needed by the DI system.\n *\n * NOTE: this function is an alias so that we can change the type of the function to have `void`\n * return type.\n */\nconst leaveDI = leaveViewLight;\n/**\n * Leave the current `LView`\n *\n * This pops the `LFrame` with the associated `LView` from the stack.\n *\n * IMPORTANT: We must zero out the `LFrame` values here otherwise they will be retained. This is\n * because for performance reasons we don't release `LFrame` but rather keep it for next use.\n */\nfunction leaveView() {\n const oldLFrame = leaveViewLight();\n oldLFrame.isParent = true;\n oldLFrame.tView = null;\n oldLFrame.selectedIndex = -1;\n oldLFrame.contextLView = null;\n oldLFrame.elementDepthCount = 0;\n oldLFrame.currentDirectiveIndex = -1;\n oldLFrame.currentNamespace = null;\n oldLFrame.bindingRootIndex = -1;\n oldLFrame.bindingIndex = -1;\n oldLFrame.currentQueryIndex = 0;\n}\nfunction nextContextImpl(level) {\n const contextLView = instructionState.lFrame.contextLView =\n walkUpViews(level, instructionState.lFrame.contextLView);\n return contextLView[CONTEXT];\n}\nfunction walkUpViews(nestingLevel, currentView) {\n while (nestingLevel > 0) {\n ngDevMode &&\n assertDefined(currentView[DECLARATION_VIEW], 'Declaration view should be defined if nesting level is greater than 0.');\n currentView = currentView[DECLARATION_VIEW];\n nestingLevel--;\n }\n return currentView;\n}\n/**\n * Gets the currently selected element index.\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n */\nfunction getSelectedIndex() {\n return instructionState.lFrame.selectedIndex;\n}\n/**\n * Sets the most recent index passed to {@link select}\n *\n * Used with {@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n *\n * (Note that if an \"exit function\" was set earlier (via `setElementExitFn()`) then that will be\n * run if and when the provided `index` value is different from the current selected index value.)\n */\nfunction setSelectedIndex(index) {\n ngDevMode && index !== -1 &&\n assertGreaterThanOrEqual(index, HEADER_OFFSET, 'Index must be past HEADER_OFFSET (or -1).');\n ngDevMode &&\n assertLessThan(index, instructionState.lFrame.lView.length, 'Can\\'t set index passed end of LView');\n instructionState.lFrame.selectedIndex = index;\n}\n/**\n * Gets the `tNode` that represents currently selected element.\n */\nfunction getSelectedTNode() {\n const lFrame = instructionState.lFrame;\n return getTNode(lFrame.tView, lFrame.selectedIndex);\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/2000/svg'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceSVG() {\n instructionState.lFrame.currentNamespace = SVG_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/1998/MathML/'` in global state.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceMathML() {\n instructionState.lFrame.currentNamespace = MATH_ML_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n *\n * @codeGenApi\n */\nfunction ɵɵnamespaceHTML() {\n namespaceHTMLInternal();\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n */\nfunction namespaceHTMLInternal() {\n instructionState.lFrame.currentNamespace = null;\n}\nfunction getNamespace() {\n return instructionState.lFrame.currentNamespace;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Adds all directive lifecycle hooks from the given `DirectiveDef` to the given `TView`.\n *\n * Must be run *only* on the first template pass.\n *\n * Sets up the pre-order hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * @param directiveIndex The index of the directive in LView\n * @param directiveDef The definition containing the hooks to setup in tView\n * @param tView The current TView\n */\nfunction registerPreOrderHooks(directiveIndex, directiveDef, tView) {\n ngDevMode && assertFirstCreatePass(tView);\n const { ngOnChanges, ngOnInit, ngDoCheck } = directiveDef.type.prototype;\n if (ngOnChanges) {\n const wrappedOnChanges = NgOnChangesFeatureImpl(directiveDef);\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(directiveIndex, wrappedOnChanges);\n (tView.preOrderCheckHooks || (tView.preOrderCheckHooks = []))\n .push(directiveIndex, wrappedOnChanges);\n }\n if (ngOnInit) {\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(0 - directiveIndex, ngOnInit);\n }\n if (ngDoCheck) {\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(directiveIndex, ngDoCheck);\n (tView.preOrderCheckHooks || (tView.preOrderCheckHooks = [])).push(directiveIndex, ngDoCheck);\n }\n}\n/**\n *\n * Loops through the directives on the provided `tNode` and queues hooks to be\n * run that are not initialization hooks.\n *\n * Should be executed during `elementEnd()` and similar to\n * preserve hook execution order. Content, view, and destroy hooks for projected\n * components and directives must be called *before* their hosts.\n *\n * Sets up the content, view, and destroy hooks on the provided `tView`,\n * see {@link HookData} for details about the data structure.\n *\n * NOTE: This does not set up `onChanges`, `onInit` or `doCheck`, those are set up\n * separately at `elementStart`.\n *\n * @param tView The current TView\n * @param tNode The TNode whose directives are to be searched for hooks to queue\n */\nfunction registerPostOrderHooks(tView, tNode) {\n ngDevMode && assertFirstCreatePass(tView);\n // It's necessary to loop through the directives at elementEnd() (rather than processing in\n // directiveCreate) so we can preserve the current hook order. Content, view, and destroy\n // hooks for projected components and directives must be called *before* their hosts.\n for (let i = tNode.directiveStart, end = tNode.directiveEnd; i < end; i++) {\n const directiveDef = tView.data[i];\n ngDevMode && assertDefined(directiveDef, 'Expecting DirectiveDef');\n const lifecycleHooks = directiveDef.type.prototype;\n const { ngAfterContentInit, ngAfterContentChecked, ngAfterViewInit, ngAfterViewChecked, ngOnDestroy } = lifecycleHooks;\n if (ngAfterContentInit) {\n (tView.contentHooks || (tView.contentHooks = [])).push(-i, ngAfterContentInit);\n }\n if (ngAfterContentChecked) {\n (tView.contentHooks || (tView.contentHooks = [])).push(i, ngAfterContentChecked);\n (tView.contentCheckHooks || (tView.contentCheckHooks = [])).push(i, ngAfterContentChecked);\n }\n if (ngAfterViewInit) {\n (tView.viewHooks || (tView.viewHooks = [])).push(-i, ngAfterViewInit);\n }\n if (ngAfterViewChecked) {\n (tView.viewHooks || (tView.viewHooks = [])).push(i, ngAfterViewChecked);\n (tView.viewCheckHooks || (tView.viewCheckHooks = [])).push(i, ngAfterViewChecked);\n }\n if (ngOnDestroy != null) {\n (tView.destroyHooks || (tView.destroyHooks = [])).push(i, ngOnDestroy);\n }\n }\n}\n/**\n * Executing hooks requires complex logic as we need to deal with 2 constraints.\n *\n * 1. Init hooks (ngOnInit, ngAfterContentInit, ngAfterViewInit) must all be executed once and only\n * once, across many change detection cycles. This must be true even if some hooks throw, or if\n * some recursively trigger a change detection cycle.\n * To solve that, it is required to track the state of the execution of these init hooks.\n * This is done by storing and maintaining flags in the view: the {@link InitPhaseState},\n * and the index within that phase. They can be seen as a cursor in the following structure:\n * [[onInit1, onInit2], [afterContentInit1], [afterViewInit1, afterViewInit2, afterViewInit3]]\n * They are are stored as flags in LView[FLAGS].\n *\n * 2. Pre-order hooks can be executed in batches, because of the select instruction.\n * To be able to pause and resume their execution, we also need some state about the hook's array\n * that is being processed:\n * - the index of the next hook to be executed\n * - the number of init hooks already found in the processed part of the array\n * They are are stored as flags in LView[PREORDER_HOOK_FLAGS].\n */\n/**\n * Executes pre-order check hooks ( OnChanges, DoChanges) given a view where all the init hooks were\n * executed once. This is a light version of executeInitAndCheckPreOrderHooks where we can skip read\n * / write of the init-hooks related flags.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeCheckHooks(lView, hooks, nodeIndex) {\n callHooks(lView, hooks, 3 /* InitPhaseCompleted */, nodeIndex);\n}\n/**\n * Executes post-order init and check hooks (one of AfterContentInit, AfterContentChecked,\n * AfterViewInit, AfterViewChecked) given a view where there are pending init hooks to be executed.\n * @param lView The LView where hooks are defined\n * @param hooks Hooks to be run\n * @param initPhase A phase for which hooks should be run\n * @param nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction executeInitAndCheckHooks(lView, hooks, initPhase, nodeIndex) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseCompleted */, 'Init pre-order hooks should not be called more than once');\n if ((lView[FLAGS] & 3 /* InitPhaseStateMask */) === initPhase) {\n callHooks(lView, hooks, initPhase, nodeIndex);\n }\n}\nfunction incrementInitPhaseFlags(lView, initPhase) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseCompleted */, 'Init hooks phase should not be incremented after all init hooks have been run.');\n let flags = lView[FLAGS];\n if ((flags & 3 /* InitPhaseStateMask */) === initPhase) {\n flags &= 2047 /* IndexWithinInitPhaseReset */;\n flags += 1 /* InitPhaseStateIncrementer */;\n lView[FLAGS] = flags;\n }\n}\n/**\n * Calls lifecycle hooks with their contexts, skipping init hooks if it's not\n * the first LView pass\n *\n * @param currentView The current view\n * @param arr The array in which the hooks are found\n * @param initPhaseState the current state of the init phase\n * @param currentNodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n */\nfunction callHooks(currentView, arr, initPhase, currentNodeIndex) {\n ngDevMode &&\n assertEqual(isInCheckNoChangesMode(), false, 'Hooks should never be run when in check no changes mode.');\n const startIndex = currentNodeIndex !== undefined ?\n (currentView[PREORDER_HOOK_FLAGS] & 65535 /* IndexOfTheNextPreOrderHookMaskMask */) :\n 0;\n const nodeIndexLimit = currentNodeIndex != null ? currentNodeIndex : -1;\n const max = arr.length - 1; // Stop the loop at length - 1, because we look for the hook at i + 1\n let lastNodeIndexFound = 0;\n for (let i = startIndex; i < max; i++) {\n const hook = arr[i + 1];\n if (typeof hook === 'number') {\n lastNodeIndexFound = arr[i];\n if (currentNodeIndex != null && lastNodeIndexFound >= currentNodeIndex) {\n break;\n }\n }\n else {\n const isInitHook = arr[i] < 0;\n if (isInitHook)\n currentView[PREORDER_HOOK_FLAGS] += 65536 /* NumberOfInitHooksCalledIncrementer */;\n if (lastNodeIndexFound < nodeIndexLimit || nodeIndexLimit == -1) {\n callHook(currentView, initPhase, arr, i);\n currentView[PREORDER_HOOK_FLAGS] =\n (currentView[PREORDER_HOOK_FLAGS] & 4294901760 /* NumberOfInitHooksCalledMask */) + i +\n 2;\n }\n i++;\n }\n }\n}\n/**\n * Execute one hook against the current `LView`.\n *\n * @param currentView The current view\n * @param initPhaseState the current state of the init phase\n * @param arr The array in which the hooks are found\n * @param i The current index within the hook data array\n */\nfunction callHook(currentView, initPhase, arr, i) {\n const isInitHook = arr[i] < 0;\n const hook = arr[i + 1];\n const directiveIndex = isInitHook ? -arr[i] : arr[i];\n const directive = currentView[directiveIndex];\n if (isInitHook) {\n const indexWithintInitPhase = currentView[FLAGS] >> 11 /* IndexWithinInitPhaseShift */;\n // The init phase state must be always checked here as it may have been recursively updated.\n if (indexWithintInitPhase <\n (currentView[PREORDER_HOOK_FLAGS] >> 16 /* NumberOfInitHooksCalledShift */) &&\n (currentView[FLAGS] & 3 /* InitPhaseStateMask */) === initPhase) {\n currentView[FLAGS] += 2048 /* IndexWithinInitPhaseIncrementer */;\n hook.call(directive);\n }\n }\n else {\n hook.call(directive);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NO_PARENT_INJECTOR = -1;\n/**\n * Each injector is saved in 9 contiguous slots in `LView` and 9 contiguous slots in\n * `TView.data`. This allows us to store information about the current node's tokens (which\n * can be shared in `TView`) as well as the tokens of its ancestor nodes (which cannot be\n * shared, so they live in `LView`).\n *\n * Each of these slots (aside from the last slot) contains a bloom filter. This bloom filter\n * determines whether a directive is available on the associated node or not. This prevents us\n * from searching the directives array at this level unless it's probable the directive is in it.\n *\n * See: https://en.wikipedia.org/wiki/Bloom_filter for more about bloom filters.\n *\n * Because all injectors have been flattened into `LView` and `TViewData`, they cannot typed\n * using interfaces as they were previously. The start index of each `LInjector` and `TInjector`\n * will differ based on where it is flattened into the main array, so it's not possible to know\n * the indices ahead of time and save their types here. The interfaces are still included here\n * for documentation purposes.\n *\n * export interface LInjector extends Array {\n *\n * // Cumulative bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Cumulative bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Cumulative bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Cumulative bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Cumulative bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Cumulative bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Cumulative bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Cumulative bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // We need to store a reference to the injector's parent so DI can keep looking up\n * // the injector tree until it finds the dependency it's looking for.\n * [PARENT_INJECTOR]: number;\n * }\n *\n * export interface TInjector extends Array {\n *\n * // Shared node bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Shared node bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Shared node bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Shared node bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Shared node bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Shared node bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Shared node bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Shared node bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // Necessary to find directive indices for a particular node.\n * [TNODE]: TElementNode|TElementContainerNode|TContainerNode;\n * }\n */\n/**\n * Factory for creating instances of injectors in the NodeInjector.\n *\n * This factory is complicated by the fact that it can resolve `multi` factories as well.\n *\n * NOTE: Some of the fields are optional which means that this class has two hidden classes.\n * - One without `multi` support (most common)\n * - One with `multi` values, (rare).\n *\n * Since VMs can cache up to 4 inline hidden classes this is OK.\n *\n * - Single factory: Only `resolving` and `factory` is defined.\n * - `providers` factory: `componentProviders` is a number and `index = -1`.\n * - `viewProviders` factory: `componentProviders` is a number and `index` points to `providers`.\n */\nclass NodeInjectorFactory {\n constructor(\n /**\n * Factory to invoke in order to create a new instance.\n */\n factory, \n /**\n * Set to `true` if the token is declared in `viewProviders` (or if it is component).\n */\n isViewProvider, injectImplementation) {\n this.factory = factory;\n /**\n * Marker set to true during factory invocation to see if we get into recursive loop.\n * Recursive loop causes an error to be displayed.\n */\n this.resolving = false;\n ngDevMode && assertDefined(factory, 'Factory not specified');\n ngDevMode && assertEqual(typeof factory, 'function', 'Expected factory function.');\n this.canSeeViewProviders = isViewProvider;\n this.injectImpl = injectImplementation;\n }\n}\nfunction isFactory(obj) {\n return obj instanceof NodeInjectorFactory;\n}\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$3 = 1;\n\n/**\n * Converts `TNodeType` into human readable text.\n * Make sure this matches with `TNodeType`\n */\nfunction toTNodeTypeAsString(tNodeType) {\n let text = '';\n (tNodeType & 1 /* Text */) && (text += '|Text');\n (tNodeType & 2 /* Element */) && (text += '|Element');\n (tNodeType & 4 /* Container */) && (text += '|Container');\n (tNodeType & 8 /* ElementContainer */) && (text += '|ElementContainer');\n (tNodeType & 16 /* Projection */) && (text += '|Projection');\n (tNodeType & 32 /* Icu */) && (text += '|IcuContainer');\n (tNodeType & 64 /* Placeholder */) && (text += '|Placeholder');\n return text.length > 0 ? text.substring(1) : text;\n}\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\nconst unusedValueExportToPlacateAjd$4 = 1;\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `class` binding.\n *\n * ```\n *
    \n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasClassInput(tNode) {\n return (tNode.flags & 16 /* hasClassInput */) !== 0;\n}\n/**\n * Returns `true` if the `TNode` has a directive which has `@Input()` for `style` binding.\n *\n * ```\n *
    \n * ```\n * and\n * ```\n * @Directive({\n * })\n * class MyDirective {\n * @Input()\n * class: string;\n * }\n * ```\n *\n * In the above case it is necessary to write the reconciled styling information into the\n * directive's input.\n *\n * @param tNode\n */\nfunction hasStyleInput(tNode) {\n return (tNode.flags & 32 /* hasStyleInput */) !== 0;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction assertTNodeType(tNode, expectedTypes, message) {\n assertDefined(tNode, 'should be called with a TNode');\n if ((tNode.type & expectedTypes) === 0) {\n throwError(message ||\n `Expected [${toTNodeTypeAsString(expectedTypes)}] but got ${toTNodeTypeAsString(tNode.type)}.`);\n }\n}\nfunction assertPureTNodeType(type) {\n if (!(type === 2 /* Element */ || //\n type === 1 /* Text */ || //\n type === 4 /* Container */ || //\n type === 8 /* ElementContainer */ || //\n type === 32 /* Icu */ || //\n type === 16 /* Projection */ || //\n type === 64 /* Placeholder */)) {\n throwError(`Expected TNodeType to have only a single type selected, but got ${toTNodeTypeAsString(type)}.`);\n }\n}\n\n/**\n * Assigns all attribute values to the provided element via the inferred renderer.\n *\n * This function accepts two forms of attribute entries:\n *\n * default: (key, value):\n * attrs = [key1, value1, key2, value2]\n *\n * namespaced: (NAMESPACE_MARKER, uri, name, value)\n * attrs = [NAMESPACE_MARKER, uri, name, value, NAMESPACE_MARKER, uri, name, value]\n *\n * The `attrs` array can contain a mix of both the default and namespaced entries.\n * The \"default\" values are set without a marker, but if the function comes across\n * a marker value then it will attempt to set a namespaced value. If the marker is\n * not of a namespaced value then the function will quit and return the index value\n * where it stopped during the iteration of the attrs array.\n *\n * See [AttributeMarker] to understand what the namespace marker value is.\n *\n * Note that this instruction does not support assigning style and class values to\n * an element. See `elementStart` and `elementHostAttrs` to learn how styling values\n * are applied to an element.\n * @param renderer The renderer to be used\n * @param native The element that the attributes will be assigned to\n * @param attrs The attribute array of values that will be assigned to the element\n * @returns the index value that was last accessed in the attributes array\n */\nfunction setUpAttributes(renderer, native, attrs) {\n const isProc = isProceduralRenderer(renderer);\n let i = 0;\n while (i < attrs.length) {\n const value = attrs[i];\n if (typeof value === 'number') {\n // only namespaces are supported. Other value types (such as style/class\n // entries) are not supported in this function.\n if (value !== 0 /* NamespaceURI */) {\n break;\n }\n // we just landed on the marker value ... therefore\n // we should skip to the next entry\n i++;\n const namespaceURI = attrs[i++];\n const attrName = attrs[i++];\n const attrVal = attrs[i++];\n ngDevMode && ngDevMode.rendererSetAttribute++;\n isProc ?\n renderer.setAttribute(native, attrName, attrVal, namespaceURI) :\n native.setAttributeNS(namespaceURI, attrName, attrVal);\n }\n else {\n // attrName is string;\n const attrName = value;\n const attrVal = attrs[++i];\n // Standard attributes\n ngDevMode && ngDevMode.rendererSetAttribute++;\n if (isAnimationProp(attrName)) {\n if (isProc) {\n renderer.setProperty(native, attrName, attrVal);\n }\n }\n else {\n isProc ?\n renderer.setAttribute(native, attrName, attrVal) :\n native.setAttribute(attrName, attrVal);\n }\n i++;\n }\n }\n // another piece of code may iterate over the same attributes array. Therefore\n // it may be helpful to return the exact spot where the attributes array exited\n // whether by running into an unsupported marker or if all the static values were\n // iterated over.\n return i;\n}\n/**\n * Test whether the given value is a marker that indicates that the following\n * attribute values in a `TAttributes` array are only the names of attributes,\n * and not name-value pairs.\n * @param marker The attribute marker to test.\n * @returns true if the marker is a \"name-only\" marker (e.g. `Bindings`, `Template` or `I18n`).\n */\nfunction isNameOnlyAttributeMarker(marker) {\n return marker === 3 /* Bindings */ || marker === 4 /* Template */ ||\n marker === 6 /* I18n */;\n}\nfunction isAnimationProp(name) {\n // Perf note: accessing charCodeAt to check for the first character of a string is faster as\n // compared to accessing a character at index 0 (ex. name[0]). The main reason for this is that\n // charCodeAt doesn't allocate memory to return a substring.\n return name.charCodeAt(0) === 64 /* AT_SIGN */;\n}\n/**\n * Merges `src` `TAttributes` into `dst` `TAttributes` removing any duplicates in the process.\n *\n * This merge function keeps the order of attrs same.\n *\n * @param dst Location of where the merged `TAttributes` should end up.\n * @param src `TAttributes` which should be appended to `dst`\n */\nfunction mergeHostAttrs(dst, src) {\n if (src === null || src.length === 0) {\n // do nothing\n }\n else if (dst === null || dst.length === 0) {\n // We have source, but dst is empty, just make a copy.\n dst = src.slice();\n }\n else {\n let srcMarker = -1 /* ImplicitAttributes */;\n for (let i = 0; i < src.length; i++) {\n const item = src[i];\n if (typeof item === 'number') {\n srcMarker = item;\n }\n else {\n if (srcMarker === 0 /* NamespaceURI */) {\n // Case where we need to consume `key1`, `key2`, `value` items.\n }\n else if (srcMarker === -1 /* ImplicitAttributes */ ||\n srcMarker === 2 /* Styles */) {\n // Case where we have to consume `key1` and `value` only.\n mergeHostAttribute(dst, srcMarker, item, null, src[++i]);\n }\n else {\n // Case where we have to consume `key1` only.\n mergeHostAttribute(dst, srcMarker, item, null, null);\n }\n }\n }\n }\n return dst;\n}\n/**\n * Append `key`/`value` to existing `TAttributes` taking region marker and duplicates into account.\n *\n * @param dst `TAttributes` to append to.\n * @param marker Region where the `key`/`value` should be added.\n * @param key1 Key to add to `TAttributes`\n * @param key2 Key to add to `TAttributes` (in case of `AttributeMarker.NamespaceURI`)\n * @param value Value to add or to overwrite to `TAttributes` Only used if `marker` is not Class.\n */\nfunction mergeHostAttribute(dst, marker, key1, key2, value) {\n let i = 0;\n // Assume that new markers will be inserted at the end.\n let markerInsertPosition = dst.length;\n // scan until correct type.\n if (marker === -1 /* ImplicitAttributes */) {\n markerInsertPosition = -1;\n }\n else {\n while (i < dst.length) {\n const dstValue = dst[i++];\n if (typeof dstValue === 'number') {\n if (dstValue === marker) {\n markerInsertPosition = -1;\n break;\n }\n else if (dstValue > marker) {\n // We need to save this as we want the markers to be inserted in specific order.\n markerInsertPosition = i - 1;\n break;\n }\n }\n }\n }\n // search until you find place of insertion\n while (i < dst.length) {\n const item = dst[i];\n if (typeof item === 'number') {\n // since `i` started as the index after the marker, we did not find it if we are at the next\n // marker\n break;\n }\n else if (item === key1) {\n // We already have same token\n if (key2 === null) {\n if (value !== null) {\n dst[i + 1] = value;\n }\n return;\n }\n else if (key2 === dst[i + 1]) {\n dst[i + 2] = value;\n return;\n }\n }\n // Increment counter.\n i++;\n if (key2 !== null)\n i++;\n if (value !== null)\n i++;\n }\n // insert at location.\n if (markerInsertPosition !== -1) {\n dst.splice(markerInsertPosition, 0, marker);\n i = markerInsertPosition + 1;\n }\n dst.splice(i++, 0, key1);\n if (key2 !== null) {\n dst.splice(i++, 0, key2);\n }\n if (value !== null) {\n dst.splice(i++, 0, value);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/// Parent Injector Utils ///////////////////////////////////////////////////////////////\nfunction hasParentInjector(parentLocation) {\n return parentLocation !== NO_PARENT_INJECTOR;\n}\nfunction getParentInjectorIndex(parentLocation) {\n ngDevMode && assertNumber(parentLocation, 'Number expected');\n ngDevMode && assertNotEqual(parentLocation, -1, 'Not a valid state.');\n const parentInjectorIndex = parentLocation & 32767 /* InjectorIndexMask */;\n ngDevMode &&\n assertGreaterThan(parentInjectorIndex, HEADER_OFFSET, 'Parent injector must be pointing past HEADER_OFFSET.');\n return parentLocation & 32767 /* InjectorIndexMask */;\n}\nfunction getParentInjectorViewOffset(parentLocation) {\n return parentLocation >> 16 /* ViewOffsetShift */;\n}\n/**\n * Unwraps a parent injector location number to find the view offset from the current injector,\n * then walks up the declaration view tree until the view is found that contains the parent\n * injector.\n *\n * @param location The location of the parent injector, which contains the view offset\n * @param startView The LView instance from which to start walking up the view tree\n * @returns The LView instance that contains the parent injector\n */\nfunction getParentInjectorView(location, startView) {\n let viewOffset = getParentInjectorViewOffset(location);\n let parentView = startView;\n // For most cases, the parent injector can be found on the host node (e.g. for component\n // or container), but we must keep the loop here to support the rarer case of deeply nested\n // tags or inline views, where the parent injector might live many views\n // above the child injector.\n while (viewOffset > 0) {\n parentView = parentView[DECLARATION_VIEW];\n viewOffset--;\n }\n return parentView;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Defines if the call to `inject` should include `viewProviders` in its resolution.\n *\n * This is set to true when we try to instantiate a component. This value is reset in\n * `getNodeInjectable` to a value which matches the declaration location of the token about to be\n * instantiated. This is done so that if we are injecting a token which was declared outside of\n * `viewProviders` we don't accidentally pull `viewProviders` in.\n *\n * Example:\n *\n * ```\n * @Injectable()\n * class MyService {\n * constructor(public value: String) {}\n * }\n *\n * @Component({\n * providers: [\n * MyService,\n * {provide: String, value: 'providers' }\n * ]\n * viewProviders: [\n * {provide: String, value: 'viewProviders'}\n * ]\n * })\n * class MyComponent {\n * constructor(myService: MyService, value: String) {\n * // We expect that Component can see into `viewProviders`.\n * expect(value).toEqual('viewProviders');\n * // `MyService` was not declared in `viewProviders` hence it can't see it.\n * expect(myService.value).toEqual('providers');\n * }\n * }\n *\n * ```\n */\nlet includeViewProviders = true;\nfunction setIncludeViewProviders(v) {\n const oldValue = includeViewProviders;\n includeViewProviders = v;\n return oldValue;\n}\n/**\n * The number of slots in each bloom filter (used by DI). The larger this number, the fewer\n * directives that will share slots, and thus, the fewer false positives when checking for\n * the existence of a directive.\n */\nconst BLOOM_SIZE = 256;\nconst BLOOM_MASK = BLOOM_SIZE - 1;\n/** Counter used to generate unique IDs for directives. */\nlet nextNgElementId = 0;\n/**\n * Registers this directive as present in its node's injector by flipping the directive's\n * corresponding bit in the injector's bloom filter.\n *\n * @param injectorIndex The index of the node injector where this token should be registered\n * @param tView The TView for the injector's bloom filters\n * @param type The directive token to register\n */\nfunction bloomAdd(injectorIndex, tView, type) {\n ngDevMode && assertEqual(tView.firstCreatePass, true, 'expected firstCreatePass to be true');\n let id;\n if (typeof type === 'string') {\n id = type.charCodeAt(0) || 0;\n }\n else if (type.hasOwnProperty(NG_ELEMENT_ID)) {\n id = type[NG_ELEMENT_ID];\n }\n // Set a unique ID on the directive type, so if something tries to inject the directive,\n // we can easily retrieve the ID and hash it into the bloom bit that should be checked.\n if (id == null) {\n id = type[NG_ELEMENT_ID] = nextNgElementId++;\n }\n // We only have BLOOM_SIZE (256) slots in our bloom filter (8 buckets * 32 bits each),\n // so all unique IDs must be modulo-ed into a number from 0 - 255 to fit into the filter.\n const bloomBit = id & BLOOM_MASK;\n // Create a mask that targets the specific bit associated with the directive.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomBit;\n // Use the raw bloomBit number to determine which bloom filter bucket we should check\n // e.g: bf0 = [0 - 31], bf1 = [32 - 63], bf2 = [64 - 95], bf3 = [96 - 127], etc\n const b7 = bloomBit & 0x80;\n const b6 = bloomBit & 0x40;\n const b5 = bloomBit & 0x20;\n const tData = tView.data;\n if (b7) {\n b6 ? (b5 ? (tData[injectorIndex + 7] |= mask) : (tData[injectorIndex + 6] |= mask)) :\n (b5 ? (tData[injectorIndex + 5] |= mask) : (tData[injectorIndex + 4] |= mask));\n }\n else {\n b6 ? (b5 ? (tData[injectorIndex + 3] |= mask) : (tData[injectorIndex + 2] |= mask)) :\n (b5 ? (tData[injectorIndex + 1] |= mask) : (tData[injectorIndex] |= mask));\n }\n}\n/**\n * Creates (or gets an existing) injector for a given element or container.\n *\n * @param tNode for which an injector should be retrieved / created.\n * @param lView View where the node is stored\n * @returns Node injector\n */\nfunction getOrCreateNodeInjectorForNode(tNode, lView) {\n const existingInjectorIndex = getInjectorIndex(tNode, lView);\n if (existingInjectorIndex !== -1) {\n return existingInjectorIndex;\n }\n const tView = lView[TVIEW];\n if (tView.firstCreatePass) {\n tNode.injectorIndex = lView.length;\n insertBloom(tView.data, tNode); // foundation for node bloom\n insertBloom(lView, null); // foundation for cumulative bloom\n insertBloom(tView.blueprint, null);\n }\n const parentLoc = getParentInjectorLocation(tNode, lView);\n const injectorIndex = tNode.injectorIndex;\n // If a parent injector can't be found, its location is set to -1.\n // In that case, we don't need to set up a cumulative bloom\n if (hasParentInjector(parentLoc)) {\n const parentIndex = getParentInjectorIndex(parentLoc);\n const parentLView = getParentInjectorView(parentLoc, lView);\n const parentData = parentLView[TVIEW].data;\n // Creates a cumulative bloom filter that merges the parent's bloom filter\n // and its own cumulative bloom (which contains tokens for all ancestors)\n for (let i = 0; i < 8 /* BLOOM_SIZE */; i++) {\n lView[injectorIndex + i] = parentLView[parentIndex + i] | parentData[parentIndex + i];\n }\n }\n lView[injectorIndex + 8 /* PARENT */] = parentLoc;\n return injectorIndex;\n}\nfunction insertBloom(arr, footer) {\n arr.push(0, 0, 0, 0, 0, 0, 0, 0, footer);\n}\nfunction getInjectorIndex(tNode, lView) {\n if (tNode.injectorIndex === -1 ||\n // If the injector index is the same as its parent's injector index, then the index has been\n // copied down from the parent node. No injector has been created yet on this node.\n (tNode.parent && tNode.parent.injectorIndex === tNode.injectorIndex) ||\n // After the first template pass, the injector index might exist but the parent values\n // might not have been calculated yet for this instance\n lView[tNode.injectorIndex + 8 /* PARENT */] === null) {\n return -1;\n }\n else {\n ngDevMode && assertIndexInRange(lView, tNode.injectorIndex);\n return tNode.injectorIndex;\n }\n}\n/**\n * Finds the index of the parent injector, with a view offset if applicable. Used to set the\n * parent injector initially.\n *\n * @returns Returns a number that is the combination of the number of LViews that we have to go up\n * to find the LView containing the parent inject AND the index of the injector within that LView.\n */\nfunction getParentInjectorLocation(tNode, lView) {\n if (tNode.parent && tNode.parent.injectorIndex !== -1) {\n // If we have a parent `TNode` and there is an injector associated with it we are done, because\n // the parent injector is within the current `LView`.\n return tNode.parent.injectorIndex; // ViewOffset is 0\n }\n // When parent injector location is computed it may be outside of the current view. (ie it could\n // be pointing to a declared parent location). This variable stores number of declaration parents\n // we need to walk up in order to find the parent injector location.\n let declarationViewOffset = 0;\n let parentTNode = null;\n let lViewCursor = lView;\n // The parent injector is not in the current `LView`. We will have to walk the declared parent\n // `LView` hierarchy and look for it. If we walk of the top, that means that there is no parent\n // `NodeInjector`.\n while (lViewCursor !== null) {\n // First determine the `parentTNode` location. The parent pointer differs based on `TView.type`.\n const tView = lViewCursor[TVIEW];\n const tViewType = tView.type;\n if (tViewType === 2 /* Embedded */) {\n ngDevMode &&\n assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');\n parentTNode = tView.declTNode;\n }\n else if (tViewType === 1 /* Component */) {\n // Components don't have `TView.declTNode` because each instance of component could be\n // inserted in different location, hence `TView.declTNode` is meaningless.\n parentTNode = lViewCursor[T_HOST];\n }\n else {\n ngDevMode && assertEqual(tView.type, 0 /* Root */, 'Root type expected');\n parentTNode = null;\n }\n if (parentTNode === null) {\n // If we have no parent, than we are done.\n return NO_PARENT_INJECTOR;\n }\n ngDevMode && parentTNode && assertTNodeForLView(parentTNode, lViewCursor[DECLARATION_VIEW]);\n // Every iteration of the loop requires that we go to the declared parent.\n declarationViewOffset++;\n lViewCursor = lViewCursor[DECLARATION_VIEW];\n if (parentTNode.injectorIndex !== -1) {\n // We found a NodeInjector which points to something.\n return (parentTNode.injectorIndex |\n (declarationViewOffset << 16 /* ViewOffsetShift */));\n }\n }\n return NO_PARENT_INJECTOR;\n}\n/**\n * Makes a type or an injection token public to the DI system by adding it to an\n * injector's bloom filter.\n *\n * @param di The node injector in which a directive will be added\n * @param token The type or the injection token to be made public\n */\nfunction diPublicInInjector(injectorIndex, tView, token) {\n bloomAdd(injectorIndex, tView, token);\n}\n/**\n * Inject static attribute value into directive constructor.\n *\n * This method is used with `factory` functions which are generated as part of\n * `defineDirective` or `defineComponent`. The method retrieves the static value\n * of an attribute. (Dynamic attributes are not supported since they are not resolved\n * at the time of injection and can change over time.)\n *\n * # Example\n * Given:\n * ```\n * @Component(...)\n * class MyComponent {\n * constructor(@Attribute('title') title: string) { ... }\n * }\n * ```\n * When instantiated with\n * ```\n * \n * ```\n *\n * Then factory method generated is:\n * ```\n * MyComponent.ɵcmp = defineComponent({\n * factory: () => new MyComponent(injectAttribute('title'))\n * ...\n * })\n * ```\n *\n * @publicApi\n */\nfunction injectAttributeImpl(tNode, attrNameToInject) {\n ngDevMode && assertTNodeType(tNode, 12 /* AnyContainer */ | 3 /* AnyRNode */);\n ngDevMode && assertDefined(tNode, 'expecting tNode');\n if (attrNameToInject === 'class') {\n return tNode.classes;\n }\n if (attrNameToInject === 'style') {\n return tNode.styles;\n }\n const attrs = tNode.attrs;\n if (attrs) {\n const attrsLength = attrs.length;\n let i = 0;\n while (i < attrsLength) {\n const value = attrs[i];\n // If we hit a `Bindings` or `Template` marker then we are done.\n if (isNameOnlyAttributeMarker(value))\n break;\n // Skip namespaced attributes\n if (value === 0 /* NamespaceURI */) {\n // we skip the next two values\n // as namespaced attributes looks like\n // [..., AttributeMarker.NamespaceURI, 'http://someuri.com/test', 'test:exist',\n // 'existValue', ...]\n i = i + 2;\n }\n else if (typeof value === 'number') {\n // Skip to the first value of the marked attribute.\n i++;\n while (i < attrsLength && typeof attrs[i] === 'string') {\n i++;\n }\n }\n else if (value === attrNameToInject) {\n return attrs[i + 1];\n }\n else {\n i = i + 2;\n }\n }\n }\n return null;\n}\nfunction notFoundValueOrThrow(notFoundValue, token, flags) {\n if (flags & InjectFlags.Optional) {\n return notFoundValue;\n }\n else {\n throwProviderNotFoundError(token, 'NodeInjector');\n }\n}\n/**\n * Returns the value associated to the given token from the ModuleInjector or throws exception\n *\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector or throws an exception\n */\nfunction lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue) {\n if (flags & InjectFlags.Optional && notFoundValue === undefined) {\n // This must be set or the NullInjector will throw for optional deps\n notFoundValue = null;\n }\n if ((flags & (InjectFlags.Self | InjectFlags.Host)) === 0) {\n const moduleInjector = lView[INJECTOR];\n // switch to `injectInjectorOnly` implementation for module injector, since module injector\n // should not have access to Component/Directive DI scope (that may happen through\n // `directiveInject` implementation)\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n if (moduleInjector) {\n return moduleInjector.get(token, notFoundValue, flags & InjectFlags.Optional);\n }\n else {\n return injectRootLimpMode(token, notFoundValue, flags & InjectFlags.Optional);\n }\n }\n finally {\n setInjectImplementation(previousInjectImplementation);\n }\n }\n return notFoundValueOrThrow(notFoundValue, token, flags);\n}\n/**\n * Returns the value associated to the given token from the NodeInjectors => ModuleInjector.\n *\n * Look for the injector providing the token by walking up the node injector tree and then\n * the module injector tree.\n *\n * This function patches `token` with `__NG_ELEMENT_ID__` which contains the id for the bloom\n * filter. `-1` is reserved for injecting `Injector` (implemented by `NodeInjector`)\n *\n * @param tNode The Node where the search for the injector should start\n * @param lView The `LView` that contains the `tNode`\n * @param token The token to look for\n * @param flags Injection flags\n * @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @returns the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction getOrCreateInjectable(tNode, lView, token, flags = InjectFlags.Default, notFoundValue) {\n if (tNode !== null) {\n const bloomHash = bloomHashBitOrFactory(token);\n // If the ID stored here is a function, this is a special object like ElementRef or TemplateRef\n // so just call the factory function to create it.\n if (typeof bloomHash === 'function') {\n if (!enterDI(lView, tNode, flags)) {\n // Failed to enter DI, try module injector instead. If a token is injected with the @Host\n // flag, the module injector is not searched for that token in Ivy.\n return (flags & InjectFlags.Host) ?\n notFoundValueOrThrow(notFoundValue, token, flags) :\n lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n }\n try {\n const value = bloomHash();\n if (value == null && !(flags & InjectFlags.Optional)) {\n throwProviderNotFoundError(token);\n }\n else {\n return value;\n }\n }\n finally {\n leaveDI();\n }\n }\n else if (typeof bloomHash === 'number') {\n // A reference to the previous injector TView that was found while climbing the element\n // injector tree. This is used to know if viewProviders can be accessed on the current\n // injector.\n let previousTView = null;\n let injectorIndex = getInjectorIndex(tNode, lView);\n let parentLocation = NO_PARENT_INJECTOR;\n let hostTElementNode = flags & InjectFlags.Host ? lView[DECLARATION_COMPONENT_VIEW][T_HOST] : null;\n // If we should skip this injector, or if there is no injector on this node, start by\n // searching the parent injector.\n if (injectorIndex === -1 || flags & InjectFlags.SkipSelf) {\n parentLocation = injectorIndex === -1 ? getParentInjectorLocation(tNode, lView) :\n lView[injectorIndex + 8 /* PARENT */];\n if (parentLocation === NO_PARENT_INJECTOR || !shouldSearchParent(flags, false)) {\n injectorIndex = -1;\n }\n else {\n previousTView = lView[TVIEW];\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n }\n // Traverse up the injector tree until we find a potential match or until we know there\n // *isn't* a match.\n while (injectorIndex !== -1) {\n ngDevMode && assertNodeInjector(lView, injectorIndex);\n // Check the current injector. If it matches, see if it contains token.\n const tView = lView[TVIEW];\n ngDevMode &&\n assertTNodeForLView(tView.data[injectorIndex + 8 /* TNODE */], lView);\n if (bloomHasToken(bloomHash, injectorIndex, tView.data)) {\n // At this point, we have an injector which *may* contain the token, so we step through\n // the providers and directives associated with the injector's corresponding node to get\n // the instance.\n const instance = searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode);\n if (instance !== NOT_FOUND) {\n return instance;\n }\n }\n parentLocation = lView[injectorIndex + 8 /* PARENT */];\n if (parentLocation !== NO_PARENT_INJECTOR &&\n shouldSearchParent(flags, lView[TVIEW].data[injectorIndex + 8 /* TNODE */] === hostTElementNode) &&\n bloomHasToken(bloomHash, injectorIndex, lView)) {\n // The def wasn't found anywhere on this node, so it was a false positive.\n // Traverse up the tree and continue searching.\n previousTView = tView;\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n else {\n // If we should not search parent OR If the ancestor bloom filter value does not have the\n // bit corresponding to the directive we can give up on traversing up to find the specific\n // injector.\n injectorIndex = -1;\n }\n }\n }\n }\n return lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);\n}\nconst NOT_FOUND = {};\nfunction createNodeInjector() {\n return new NodeInjector(getCurrentTNode(), getLView());\n}\nfunction searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode) {\n const currentTView = lView[TVIEW];\n const tNode = currentTView.data[injectorIndex + 8 /* TNODE */];\n // First, we need to determine if view providers can be accessed by the starting element.\n // There are two possibilities\n const canAccessViewProviders = previousTView == null ?\n // 1) This is the first invocation `previousTView == null` which means that we are at the\n // `TNode` of where injector is starting to look. In such a case the only time we are allowed\n // to look into the ViewProviders is if:\n // - we are on a component\n // - AND the injector set `includeViewProviders` to true (implying that the token can see\n // ViewProviders because it is the Component or a Service which itself was declared in\n // ViewProviders)\n (isComponentHost(tNode) && includeViewProviders) :\n // 2) `previousTView != null` which means that we are now walking across the parent nodes.\n // In such a case we are only allowed to look into the ViewProviders if:\n // - We just crossed from child View to Parent View `previousTView != currentTView`\n // - AND the parent TNode is an Element.\n // This means that we just came from the Component's View and therefore are allowed to see\n // into the ViewProviders.\n (previousTView != currentTView && ((tNode.type & 3 /* AnyRNode */) !== 0));\n // This special case happens when there is a @host on the inject and when we are searching\n // on the host element node.\n const isHostSpecialCase = (flags & InjectFlags.Host) && hostTElementNode === tNode;\n const injectableIdx = locateDirectiveOrProvider(tNode, currentTView, token, canAccessViewProviders, isHostSpecialCase);\n if (injectableIdx !== null) {\n return getNodeInjectable(lView, currentTView, injectableIdx, tNode);\n }\n else {\n return NOT_FOUND;\n }\n}\n/**\n * Searches for the given token among the node's directives and providers.\n *\n * @param tNode TNode on which directives are present.\n * @param tView The tView we are currently processing\n * @param token Provider token or type of a directive to look for.\n * @param canAccessViewProviders Whether view providers should be considered.\n * @param isHostSpecialCase Whether the host special case applies.\n * @returns Index of a found directive or provider, or null when none found.\n */\nfunction locateDirectiveOrProvider(tNode, tView, token, canAccessViewProviders, isHostSpecialCase) {\n const nodeProviderIndexes = tNode.providerIndexes;\n const tInjectables = tView.data;\n const injectablesStart = nodeProviderIndexes & 1048575 /* ProvidersStartIndexMask */;\n const directivesStart = tNode.directiveStart;\n const directiveEnd = tNode.directiveEnd;\n const cptViewProvidersCount = nodeProviderIndexes >> 20 /* CptViewProvidersCountShift */;\n const startingIndex = canAccessViewProviders ? injectablesStart : injectablesStart + cptViewProvidersCount;\n // When the host special case applies, only the viewProviders and the component are visible\n const endIndex = isHostSpecialCase ? injectablesStart + cptViewProvidersCount : directiveEnd;\n for (let i = startingIndex; i < endIndex; i++) {\n const providerTokenOrDef = tInjectables[i];\n if (i < directivesStart && token === providerTokenOrDef ||\n i >= directivesStart && providerTokenOrDef.type === token) {\n return i;\n }\n }\n if (isHostSpecialCase) {\n const dirDef = tInjectables[directivesStart];\n if (dirDef && isComponentDef(dirDef) && dirDef.type === token) {\n return directivesStart;\n }\n }\n return null;\n}\n/**\n * Retrieve or instantiate the injectable from the `LView` at particular `index`.\n *\n * This function checks to see if the value has already been instantiated and if so returns the\n * cached `injectable`. Otherwise if it detects that the value is still a factory it\n * instantiates the `injectable` and caches the value.\n */\nfunction getNodeInjectable(lView, tView, index, tNode) {\n let value = lView[index];\n const tData = tView.data;\n if (isFactory(value)) {\n const factory = value;\n if (factory.resolving) {\n throwCyclicDependencyError(stringifyForError(tData[index]));\n }\n const previousIncludeViewProviders = setIncludeViewProviders(factory.canSeeViewProviders);\n factory.resolving = true;\n const previousInjectImplementation = factory.injectImpl ? setInjectImplementation(factory.injectImpl) : null;\n const success = enterDI(lView, tNode, InjectFlags.Default);\n ngDevMode &&\n assertEqual(success, true, 'Because flags do not contain \\`SkipSelf\\' we expect this to always succeed.');\n try {\n value = lView[index] = factory.factory(undefined, tData, lView, tNode);\n // This code path is hit for both directives and providers.\n // For perf reasons, we want to avoid searching for hooks on providers.\n // It does no harm to try (the hooks just won't exist), but the extra\n // checks are unnecessary and this is a hot path. So we check to see\n // if the index of the dependency is in the directive range for this\n // tNode. If it's not, we know it's a provider and skip hook registration.\n if (tView.firstCreatePass && index >= tNode.directiveStart) {\n ngDevMode && assertDirectiveDef(tData[index]);\n registerPreOrderHooks(index, tData[index], tView);\n }\n }\n finally {\n previousInjectImplementation !== null &&\n setInjectImplementation(previousInjectImplementation);\n setIncludeViewProviders(previousIncludeViewProviders);\n factory.resolving = false;\n leaveDI();\n }\n }\n return value;\n}\n/**\n * Returns the bit in an injector's bloom filter that should be used to determine whether or not\n * the directive might be provided by the injector.\n *\n * When a directive is public, it is added to the bloom filter and given a unique ID that can be\n * retrieved on the Type. When the directive isn't public or the token is not a directive `null`\n * is returned as the node injector can not possibly provide that token.\n *\n * @param token the injection token\n * @returns the matching bit to check in the bloom filter or `null` if the token is not known.\n * When the returned value is negative then it represents special values such as `Injector`.\n */\nfunction bloomHashBitOrFactory(token) {\n ngDevMode && assertDefined(token, 'token must be defined');\n if (typeof token === 'string') {\n return token.charCodeAt(0) || 0;\n }\n const tokenId = \n // First check with `hasOwnProperty` so we don't get an inherited ID.\n token.hasOwnProperty(NG_ELEMENT_ID) ? token[NG_ELEMENT_ID] : undefined;\n // Negative token IDs are used for special objects such as `Injector`\n if (typeof tokenId === 'number') {\n if (tokenId >= 0) {\n return tokenId & BLOOM_MASK;\n }\n else {\n ngDevMode &&\n assertEqual(tokenId, -1 /* Injector */, 'Expecting to get Special Injector Id');\n return createNodeInjector;\n }\n }\n else {\n return tokenId;\n }\n}\nfunction bloomHasToken(bloomHash, injectorIndex, injectorView) {\n // Create a mask that targets the specific bit associated with the directive we're looking for.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n const mask = 1 << bloomHash;\n const b7 = bloomHash & 0x80;\n const b6 = bloomHash & 0x40;\n const b5 = bloomHash & 0x20;\n // Our bloom filter size is 256 bits, which is eight 32-bit bloom filter buckets:\n // bf0 = [0 - 31], bf1 = [32 - 63], bf2 = [64 - 95], bf3 = [96 - 127], etc.\n // Get the bloom filter value from the appropriate bucket based on the directive's bloomBit.\n let value;\n if (b7) {\n value = b6 ? (b5 ? injectorView[injectorIndex + 7] : injectorView[injectorIndex + 6]) :\n (b5 ? injectorView[injectorIndex + 5] : injectorView[injectorIndex + 4]);\n }\n else {\n value = b6 ? (b5 ? injectorView[injectorIndex + 3] : injectorView[injectorIndex + 2]) :\n (b5 ? injectorView[injectorIndex + 1] : injectorView[injectorIndex]);\n }\n // If the bloom filter value has the bit corresponding to the directive's bloomBit flipped on,\n // this injector is a potential match.\n return !!(value & mask);\n}\n/** Returns true if flags prevent parent injector from being searched for tokens */\nfunction shouldSearchParent(flags, isFirstHostTNode) {\n return !(flags & InjectFlags.Self) && !(flags & InjectFlags.Host && isFirstHostTNode);\n}\nclass NodeInjector {\n constructor(_tNode, _lView) {\n this._tNode = _tNode;\n this._lView = _lView;\n }\n get(token, notFoundValue) {\n return getOrCreateInjectable(this._tNode, this._lView, token, undefined, notFoundValue);\n }\n}\n/**\n * @codeGenApi\n */\nfunction ɵɵgetFactoryOf(type) {\n const typeAny = type;\n if (isForwardRef(type)) {\n return (() => {\n const factory = ɵɵgetFactoryOf(resolveForwardRef(typeAny));\n return factory ? factory() : null;\n });\n }\n let factory = getFactoryDef(typeAny);\n if (factory === null) {\n const injectorDef = getInjectorDef(typeAny);\n factory = injectorDef && injectorDef.factory;\n }\n return factory || null;\n}\n/**\n * @codeGenApi\n */\nfunction ɵɵgetInheritedFactory(type) {\n return noSideEffects(() => {\n const ownConstructor = type.prototype.constructor;\n const ownFactory = ownConstructor[NG_FACTORY_DEF] || ɵɵgetFactoryOf(ownConstructor);\n const objectPrototype = Object.prototype;\n let parent = Object.getPrototypeOf(type.prototype).constructor;\n // Go up the prototype until we hit `Object`.\n while (parent && parent !== objectPrototype) {\n const factory = parent[NG_FACTORY_DEF] || ɵɵgetFactoryOf(parent);\n // If we hit something that has a factory and the factory isn't the same as the type,\n // we've found the inherited factory. Note the check that the factory isn't the type's\n // own factory is redundant in most cases, but if the user has custom decorators on the\n // class, this lookup will start one level down in the prototype chain, causing us to\n // find the own factory first and potentially triggering an infinite loop downstream.\n if (factory && factory !== ownFactory) {\n return factory;\n }\n parent = Object.getPrototypeOf(parent);\n }\n // There is no factory defined. Either this was improper usage of inheritance\n // (no Angular decorator on the superclass) or there is no constructor at all\n // in the inheritance chain. Since the two cases cannot be distinguished, the\n // latter has to be assumed.\n return t => new t();\n });\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Facade for the attribute injection from DI.\n *\n * @codeGenApi\n */\nfunction ɵɵinjectAttribute(attrNameToInject) {\n return injectAttributeImpl(getCurrentTNode(), attrNameToInject);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ANNOTATIONS = '__annotations__';\nconst PARAMETERS = '__parameters__';\nconst PROP_METADATA = '__prop__metadata__';\n/**\n * @suppress {globalThis}\n */\nfunction makeDecorator(name, props, parentClass, additionalProcessing, typeFn) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function DecoratorFactory(...args) {\n if (this instanceof DecoratorFactory) {\n metaCtor.call(this, ...args);\n return this;\n }\n const annotationInstance = new DecoratorFactory(...args);\n return function TypeDecorator(cls) {\n if (typeFn)\n typeFn(cls, ...args);\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const annotations = cls.hasOwnProperty(ANNOTATIONS) ?\n cls[ANNOTATIONS] :\n Object.defineProperty(cls, ANNOTATIONS, { value: [] })[ANNOTATIONS];\n annotations.push(annotationInstance);\n if (additionalProcessing)\n additionalProcessing(cls);\n return cls;\n };\n }\n if (parentClass) {\n DecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n DecoratorFactory.prototype.ngMetadataName = name;\n DecoratorFactory.annotationCls = DecoratorFactory;\n return DecoratorFactory;\n });\n}\nfunction makeMetadataCtor(props) {\n return function ctor(...args) {\n if (props) {\n const values = props(...args);\n for (const propName in values) {\n this[propName] = values[propName];\n }\n }\n };\n}\nfunction makeParamDecorator(name, props, parentClass) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function ParamDecoratorFactory(...args) {\n if (this instanceof ParamDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const annotationInstance = new ParamDecoratorFactory(...args);\n ParamDecorator.annotation = annotationInstance;\n return ParamDecorator;\n function ParamDecorator(cls, unusedKey, index) {\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const parameters = cls.hasOwnProperty(PARAMETERS) ?\n cls[PARAMETERS] :\n Object.defineProperty(cls, PARAMETERS, { value: [] })[PARAMETERS];\n // there might be gaps if some in between parameters do not have annotations.\n // we pad with nulls.\n while (parameters.length <= index) {\n parameters.push(null);\n }\n (parameters[index] = parameters[index] || []).push(annotationInstance);\n return cls;\n }\n }\n if (parentClass) {\n ParamDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n ParamDecoratorFactory.prototype.ngMetadataName = name;\n ParamDecoratorFactory.annotationCls = ParamDecoratorFactory;\n return ParamDecoratorFactory;\n });\n}\nfunction makePropDecorator(name, props, parentClass, additionalProcessing) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function PropDecoratorFactory(...args) {\n if (this instanceof PropDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const decoratorInstance = new PropDecoratorFactory(...args);\n function PropDecorator(target, name) {\n const constructor = target.constructor;\n // Use of Object.defineProperty is important because it creates a non-enumerable property\n // which prevents the property from being copied during subclassing.\n const meta = constructor.hasOwnProperty(PROP_METADATA) ?\n constructor[PROP_METADATA] :\n Object.defineProperty(constructor, PROP_METADATA, { value: {} })[PROP_METADATA];\n meta[name] = meta.hasOwnProperty(name) && meta[name] || [];\n meta[name].unshift(decoratorInstance);\n if (additionalProcessing)\n additionalProcessing(target, name, ...args);\n }\n return PropDecorator;\n }\n if (parentClass) {\n PropDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n PropDecoratorFactory.prototype.ngMetadataName = name;\n PropDecoratorFactory.annotationCls = PropDecoratorFactory;\n return PropDecoratorFactory;\n });\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction CREATE_ATTRIBUTE_DECORATOR__PRE_R3__() {\n return makeParamDecorator('Attribute', (attributeName) => ({ attributeName }));\n}\nfunction CREATE_ATTRIBUTE_DECORATOR__POST_R3__() {\n return makeParamDecorator('Attribute', (attributeName) => ({ attributeName, __NG_ELEMENT_ID__: () => ɵɵinjectAttribute(attributeName) }));\n}\nconst CREATE_ATTRIBUTE_DECORATOR_IMPL = CREATE_ATTRIBUTE_DECORATOR__POST_R3__;\n/**\n * Attribute decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Attribute = CREATE_ATTRIBUTE_DECORATOR_IMPL();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Creates a token that can be used in a DI Provider.\n *\n * Use an `InjectionToken` whenever the type you are injecting is not reified (does not have a\n * runtime representation) such as when injecting an interface, callable type, array or\n * parameterized type.\n *\n * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by\n * the `Injector`. This provides additional level of type safety.\n *\n * ```\n * interface MyInterface {...}\n * var myInterface = injector.get(new InjectionToken('SomeToken'));\n * // myInterface is inferred to be MyInterface.\n * ```\n *\n * When creating an `InjectionToken`, you can optionally specify a factory function which returns\n * (possibly by creating) a default value of the parameterized type `T`. This sets up the\n * `InjectionToken` using this factory as a provider as if it was defined explicitly in the\n * application's root injector. If the factory function, which takes zero arguments, needs to inject\n * dependencies, it can do so using the `inject` function. See below for an example.\n *\n * Additionally, if a `factory` is specified you can also specify the `providedIn` option, which\n * overrides the above behavior and marks the token as belonging to a particular `@NgModule`. As\n * mentioned above, `'root'` is the default value for `providedIn`.\n *\n * @usageNotes\n * ### Basic Example\n *\n * ### Plain InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='InjectionToken'}\n *\n * ### Tree-shakable InjectionToken\n *\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\n *\n *\n * @publicApi\n */\nclass InjectionToken {\n constructor(_desc, options) {\n this._desc = _desc;\n /** @internal */\n this.ngMetadataName = 'InjectionToken';\n this.ɵprov = undefined;\n if (typeof options == 'number') {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n assertLessThan(options, 0, 'Only negative numbers are supported here');\n // This is a special hack to assign __NG_ELEMENT_ID__ to this instance.\n // See `InjectorMarkers`\n this.__NG_ELEMENT_ID__ = options;\n }\n else if (options !== undefined) {\n this.ɵprov = ɵɵdefineInjectable({\n token: this,\n providedIn: options.providedIn || 'root',\n factory: options.factory,\n });\n }\n }\n toString() {\n return `InjectionToken ${this._desc}`;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A DI token that you can use to create a virtual [provider](guide/glossary#provider)\n * that will populate the `entryComponents` field of components and NgModules\n * based on its `useValue` property value.\n * All components that are referenced in the `useValue` value (either directly\n * or in a nested array or map) are added to the `entryComponents` property.\n *\n * @usageNotes\n *\n * The following example shows how the router can populate the `entryComponents`\n * field of an NgModule based on a router configuration that refers\n * to components.\n *\n * ```typescript\n * // helper function inside the router\n * function provideRoutes(routes) {\n * return [\n * {provide: ROUTES, useValue: routes},\n * {provide: ANALYZE_FOR_ENTRY_COMPONENTS, useValue: routes, multi: true}\n * ];\n * }\n *\n * // user code\n * let routes = [\n * {path: '/root', component: RootComp},\n * {path: '/teams', component: TeamsComp}\n * ];\n *\n * @NgModule({\n * providers: [provideRoutes(routes)]\n * })\n * class ModuleWithRoutes {}\n * ```\n *\n * @publicApi\n * @deprecated Since 9.0.0. With Ivy, this property is no longer necessary.\n */\nconst ANALYZE_FOR_ENTRY_COMPONENTS = new InjectionToken('AnalyzeForEntryComponents');\n/**\n * Base class for query metadata.\n *\n * @see `ContentChildren`.\n * @see `ContentChild`.\n * @see `ViewChildren`.\n * @see `ViewChild`.\n *\n * @publicApi\n */\nclass Query {\n}\nconst ɵ0$1 = (selector, data = {}) => (Object.assign({ selector, first: false, isViewQuery: false, descendants: false }, data));\n/**\n * ContentChildren decorator and metadata.\n *\n *\n * @Annotation\n * @publicApi\n */\nconst ContentChildren = makePropDecorator('ContentChildren', ɵ0$1, Query);\nconst ɵ1 = (selector, data = {}) => (Object.assign({ selector, first: true, isViewQuery: false, descendants: true }, data));\n/**\n * ContentChild decorator and metadata.\n *\n *\n * @Annotation\n *\n * @publicApi\n */\nconst ContentChild = makePropDecorator('ContentChild', ɵ1, Query);\nconst ɵ2 = (selector, data = {}) => (Object.assign({ selector, first: false, isViewQuery: true, descendants: true }, data));\n/**\n * ViewChildren decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst ViewChildren = makePropDecorator('ViewChildren', ɵ2, Query);\nconst ɵ3 = (selector, data) => (Object.assign({ selector, first: true, isViewQuery: true, descendants: true }, data));\n/**\n * ViewChild decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst ViewChild = makePropDecorator('ViewChild', ɵ3, Query);\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar R3ResolvedDependencyType;\n(function (R3ResolvedDependencyType) {\n R3ResolvedDependencyType[R3ResolvedDependencyType[\"Token\"] = 0] = \"Token\";\n R3ResolvedDependencyType[R3ResolvedDependencyType[\"Attribute\"] = 1] = \"Attribute\";\n R3ResolvedDependencyType[R3ResolvedDependencyType[\"ChangeDetectorRef\"] = 2] = \"ChangeDetectorRef\";\n R3ResolvedDependencyType[R3ResolvedDependencyType[\"Invalid\"] = 3] = \"Invalid\";\n})(R3ResolvedDependencyType || (R3ResolvedDependencyType = {}));\nvar R3FactoryTarget;\n(function (R3FactoryTarget) {\n R3FactoryTarget[R3FactoryTarget[\"Directive\"] = 0] = \"Directive\";\n R3FactoryTarget[R3FactoryTarget[\"Component\"] = 1] = \"Component\";\n R3FactoryTarget[R3FactoryTarget[\"Injectable\"] = 2] = \"Injectable\";\n R3FactoryTarget[R3FactoryTarget[\"Pipe\"] = 3] = \"Pipe\";\n R3FactoryTarget[R3FactoryTarget[\"NgModule\"] = 4] = \"NgModule\";\n})(R3FactoryTarget || (R3FactoryTarget = {}));\nvar ViewEncapsulation$1;\n(function (ViewEncapsulation) {\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation$1 || (ViewEncapsulation$1 = {}));\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction getCompilerFacade() {\n const globalNg = _global['ng'];\n if (!globalNg || !globalNg.ɵcompilerFacade) {\n throw new Error(`Angular JIT compilation failed: '@angular/compiler' not loaded!\\n` +\n ` - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n` +\n ` - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n` +\n ` - Alternatively provide the compiler with 'import \"@angular/compiler\";' before bootstrapping.`);\n }\n return globalNg.ɵcompilerFacade;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * @description\n *\n * Represents a type that a Component or other object is instances of.\n *\n * An example of a `Type` is `MyCustomComponent` class, which in JavaScript is represented by\n * the `MyCustomComponent` constructor function.\n *\n * @publicApi\n */\nconst Type = Function;\nfunction isType(v) {\n return typeof v === 'function';\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Equivalent to ES6 spread, add each item to an array.\n *\n * @param items The items to add\n * @param arr The array to which you want to add the items\n */\nfunction addAllToArray(items, arr) {\n for (let i = 0; i < items.length; i++) {\n arr.push(items[i]);\n }\n}\n/**\n * Flattens an array.\n */\nfunction flatten(list, dst) {\n if (dst === undefined)\n dst = list;\n for (let i = 0; i < list.length; i++) {\n let item = list[i];\n if (Array.isArray(item)) {\n // we need to inline it.\n if (dst === list) {\n // Our assumption that the list was already flat was wrong and\n // we need to clone flat since we need to write to it.\n dst = list.slice(0, i);\n }\n flatten(item, dst);\n }\n else if (dst !== list) {\n dst.push(item);\n }\n }\n return dst;\n}\nfunction deepForEach(input, fn) {\n input.forEach(value => Array.isArray(value) ? deepForEach(value, fn) : fn(value));\n}\nfunction addToArray(arr, index, value) {\n // perf: array.push is faster than array.splice!\n if (index >= arr.length) {\n arr.push(value);\n }\n else {\n arr.splice(index, 0, value);\n }\n}\nfunction removeFromArray(arr, index) {\n // perf: array.pop is faster than array.splice!\n if (index >= arr.length - 1) {\n return arr.pop();\n }\n else {\n return arr.splice(index, 1)[0];\n }\n}\nfunction newArray(size, value) {\n const list = [];\n for (let i = 0; i < size; i++) {\n list.push(value);\n }\n return list;\n}\n/**\n * Remove item from array (Same as `Array.splice()` but faster.)\n *\n * `Array.splice()` is not as fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * https://jsperf.com/fast-array-splice (About 20x faster)\n *\n * @param array Array to splice\n * @param index Index of element in array to remove.\n * @param count Number of items to remove.\n */\nfunction arraySplice(array, index, count) {\n const length = array.length - count;\n while (index < length) {\n array[index] = array[index + count];\n index++;\n }\n while (count--) {\n array.pop(); // shrink the array\n }\n}\n/**\n * Same as `Array.splice(index, 0, value)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value Value to add to array.\n */\nfunction arrayInsert(array, index, value) {\n ngDevMode && assertLessThanOrEqual(index, array.length, 'Can\\'t insert past array end.');\n let end = array.length;\n while (end > index) {\n const previousEnd = end - 1;\n array[end] = array[previousEnd];\n end = previousEnd;\n }\n array[index] = value;\n}\n/**\n * Same as `Array.splice2(index, 0, value1, value2)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value1 Value to add to array.\n * @param value2 Value to add to array.\n */\nfunction arrayInsert2(array, index, value1, value2) {\n ngDevMode && assertLessThanOrEqual(index, array.length, 'Can\\'t insert past array end.');\n let end = array.length;\n if (end == index) {\n // inserting at the end.\n array.push(value1, value2);\n }\n else if (end === 1) {\n // corner case when we have less items in array than we have items to insert.\n array.push(value2, array[0]);\n array[0] = value1;\n }\n else {\n end--;\n array.push(array[end - 1], array[end]);\n while (end > index) {\n const previousEnd = end - 2;\n array[end] = array[previousEnd];\n end--;\n }\n array[index] = value1;\n array[index + 1] = value2;\n }\n}\n/**\n * Insert a `value` into an `array` so that the array remains sorted.\n *\n * NOTE:\n * - Duplicates are not allowed, and are ignored.\n * - This uses binary search algorithm for fast inserts.\n *\n * @param array A sorted array to insert into.\n * @param value The value to insert.\n * @returns index of the inserted value.\n */\nfunction arrayInsertSorted(array, value) {\n let index = arrayIndexOfSorted(array, value);\n if (index < 0) {\n // if we did not find it insert it.\n index = ~index;\n arrayInsert(array, index, value);\n }\n return index;\n}\n/**\n * Remove `value` from a sorted `array`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to remove from.\n * @param value The value to remove.\n * @returns index of the removed value.\n * - positive index if value found and removed.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * inserted)\n */\nfunction arrayRemoveSorted(array, value) {\n const index = arrayIndexOfSorted(array, value);\n if (index >= 0) {\n arraySplice(array, index, 1);\n }\n return index;\n}\n/**\n * Get an index of an `value` in a sorted `array`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * located)\n */\nfunction arrayIndexOfSorted(array, value) {\n return _arrayIndexOfSorted(array, value, 0);\n}\n/**\n * Set a `value` for a `key`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or create.\n * @param value The value to set for a `key`.\n * @returns index (always even) of where the value vas set.\n */\nfunction keyValueArraySet(keyValueArray, key, value) {\n let index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it set it.\n keyValueArray[index | 1] = value;\n }\n else {\n index = ~index;\n arrayInsert2(keyValueArray, index, key, value);\n }\n return index;\n}\n/**\n * Retrieve a `value` for a `key` (on `undefined` if not found.)\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @return The `value` stored at the `key` location or `undefined if not found.\n */\nfunction keyValueArrayGet(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it retrieve it.\n return keyValueArray[index | 1];\n }\n return undefined;\n}\n/**\n * Retrieve a `key` index value in the array or `-1` if not found.\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @returns index of where the key is (or should have been.)\n * - positive (even) index if key found.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been inserted.)\n */\nfunction keyValueArrayIndexOf(keyValueArray, key) {\n return _arrayIndexOfSorted(keyValueArray, key, 1);\n}\n/**\n * Delete a `key` (and `value`) from the `KeyValueArray`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or delete (if exist).\n * @returns index of where the key was (or should have been.)\n * - positive (even) index if key found and deleted.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been.)\n */\nfunction keyValueArrayDelete(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it remove it.\n arraySplice(keyValueArray, index, 2);\n }\n return index;\n}\n/**\n * INTERNAL: Get an index of an `value` in a sorted `array` by grouping search by `shift`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @param shift grouping shift.\n * - `0` means look at every location\n * - `1` means only look at every other (even) location (the odd locations are to be ignored as\n * they are values.)\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * inserted)\n */\nfunction _arrayIndexOfSorted(array, value, shift) {\n ngDevMode && assertEqual(Array.isArray(array), true, 'Expecting an array');\n let start = 0;\n let end = array.length >> shift;\n while (end !== start) {\n const middle = start + ((end - start) >> 1); // find the middle.\n const current = array[middle << shift];\n if (value === current) {\n return (middle << shift);\n }\n else if (current > value) {\n end = middle;\n }\n else {\n start = middle + 1; // We already searched middle so make it non-inclusive by adding 1\n }\n }\n return ~(end << shift);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/*\n * #########################\n * Attention: These Regular expressions have to hold even if the code is minified!\n * ##########################\n */\n/**\n * Regular expression that detects pass-through constructors for ES5 output. This Regex\n * intends to capture the common delegation pattern emitted by TypeScript and Babel. Also\n * it intends to capture the pattern where existing constructors have been downleveled from\n * ES2015 to ES5 using TypeScript w/ downlevel iteration. e.g.\n *\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, arguments) || this;\n * ```\n *\n * ```\n * function MyClass() {\n * var _this = _super.apply(this, __spread(arguments)) || this;\n * ```\n *\n * More details can be found in: https://github.com/angular/angular/issues/38453.\n */\nconst ES5_DELEGATE_CTOR = /^function\\s+\\S+\\(\\)\\s*{[\\s\\S]+\\.apply\\(this,\\s*(arguments|[^()]+\\(arguments\\))\\)/;\n/** Regular expression that detects ES2015 classes which extend from other classes. */\nconst ES2015_INHERITED_CLASS = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes and\n * have an explicit constructor defined.\n */\nconst ES2015_INHERITED_CLASS_WITH_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(/;\n/**\n * Regular expression that detects ES2015 classes which extend from other classes\n * and inherit a constructor.\n */\nconst ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\\s+[A-Za-z\\d$_]*\\s*extends\\s+[^{]+{[\\s\\S]*constructor\\s*\\(\\)\\s*{\\s*super\\(\\.\\.\\.arguments\\)/;\n/**\n * Determine whether a stringified type is a class which delegates its constructor\n * to its parent.\n *\n * This is not trivial since compiled code can actually contain a constructor function\n * even if the original source code did not. For instance, when the child class contains\n * an initialized instance property.\n */\nfunction isDelegateCtor(typeStr) {\n return ES5_DELEGATE_CTOR.test(typeStr) ||\n ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR.test(typeStr) ||\n (ES2015_INHERITED_CLASS.test(typeStr) && !ES2015_INHERITED_CLASS_WITH_CTOR.test(typeStr));\n}\nclass ReflectionCapabilities {\n constructor(reflect) {\n this._reflect = reflect || _global['Reflect'];\n }\n isReflectionEnabled() {\n return true;\n }\n factory(t) {\n return (...args) => new t(...args);\n }\n /** @internal */\n _zipTypesAndAnnotations(paramTypes, paramAnnotations) {\n let result;\n if (typeof paramTypes === 'undefined') {\n result = newArray(paramAnnotations.length);\n }\n else {\n result = newArray(paramTypes.length);\n }\n for (let i = 0; i < result.length; i++) {\n // TS outputs Object for parameters without types, while Traceur omits\n // the annotations. For now we preserve the Traceur behavior to aid\n // migration, but this can be revisited.\n if (typeof paramTypes === 'undefined') {\n result[i] = [];\n }\n else if (paramTypes[i] && paramTypes[i] != Object) {\n result[i] = [paramTypes[i]];\n }\n else {\n result[i] = [];\n }\n if (paramAnnotations && paramAnnotations[i] != null) {\n result[i] = result[i].concat(paramAnnotations[i]);\n }\n }\n return result;\n }\n _ownParameters(type, parentCtor) {\n const typeStr = type.toString();\n // If we have no decorators, we only have function.length as metadata.\n // In that case, to detect whether a child class declared an own constructor or not,\n // we need to look inside of that constructor to check whether it is\n // just calling the parent.\n // This also helps to work around for https://github.com/Microsoft/TypeScript/issues/12439\n // that sets 'design:paramtypes' to []\n // if a class inherits from another class but has no ctor declared itself.\n if (isDelegateCtor(typeStr)) {\n return null;\n }\n // Prefer the direct API.\n if (type.parameters && type.parameters !== parentCtor.parameters) {\n return type.parameters;\n }\n // API of tsickle for lowering decorators to properties on the class.\n const tsickleCtorParams = type.ctorParameters;\n if (tsickleCtorParams && tsickleCtorParams !== parentCtor.ctorParameters) {\n // Newer tsickle uses a function closure\n // Retain the non-function case for compatibility with older tsickle\n const ctorParameters = typeof tsickleCtorParams === 'function' ? tsickleCtorParams() : tsickleCtorParams;\n const paramTypes = ctorParameters.map((ctorParam) => ctorParam && ctorParam.type);\n const paramAnnotations = ctorParameters.map((ctorParam) => ctorParam && convertTsickleDecoratorIntoMetadata(ctorParam.decorators));\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // API for metadata created by invoking the decorators.\n const paramAnnotations = type.hasOwnProperty(PARAMETERS) && type[PARAMETERS];\n const paramTypes = this._reflect && this._reflect.getOwnMetadata &&\n this._reflect.getOwnMetadata('design:paramtypes', type);\n if (paramTypes || paramAnnotations) {\n return this._zipTypesAndAnnotations(paramTypes, paramAnnotations);\n }\n // If a class has no decorators, at least create metadata\n // based on function.length.\n // Note: We know that this is a real constructor as we checked\n // the content of the constructor above.\n return newArray(type.length);\n }\n parameters(type) {\n // Note: only report metadata if we have at least one class decorator\n // to stay in sync with the static reflector.\n if (!isType(type)) {\n return [];\n }\n const parentCtor = getParentCtor(type);\n let parameters = this._ownParameters(type, parentCtor);\n if (!parameters && parentCtor !== Object) {\n parameters = this.parameters(parentCtor);\n }\n return parameters || [];\n }\n _ownAnnotations(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.annotations && typeOrFunc.annotations !== parentCtor.annotations) {\n let annotations = typeOrFunc.annotations;\n if (typeof annotations === 'function' && annotations.annotations) {\n annotations = annotations.annotations;\n }\n return annotations;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.decorators && typeOrFunc.decorators !== parentCtor.decorators) {\n return convertTsickleDecoratorIntoMetadata(typeOrFunc.decorators);\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(ANNOTATIONS)) {\n return typeOrFunc[ANNOTATIONS];\n }\n return null;\n }\n annotations(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return [];\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const ownAnnotations = this._ownAnnotations(typeOrFunc, parentCtor) || [];\n const parentAnnotations = parentCtor !== Object ? this.annotations(parentCtor) : [];\n return parentAnnotations.concat(ownAnnotations);\n }\n _ownPropMetadata(typeOrFunc, parentCtor) {\n // Prefer the direct API.\n if (typeOrFunc.propMetadata &&\n typeOrFunc.propMetadata !== parentCtor.propMetadata) {\n let propMetadata = typeOrFunc.propMetadata;\n if (typeof propMetadata === 'function' && propMetadata.propMetadata) {\n propMetadata = propMetadata.propMetadata;\n }\n return propMetadata;\n }\n // API of tsickle for lowering decorators to properties on the class.\n if (typeOrFunc.propDecorators &&\n typeOrFunc.propDecorators !== parentCtor.propDecorators) {\n const propDecorators = typeOrFunc.propDecorators;\n const propMetadata = {};\n Object.keys(propDecorators).forEach(prop => {\n propMetadata[prop] = convertTsickleDecoratorIntoMetadata(propDecorators[prop]);\n });\n return propMetadata;\n }\n // API for metadata created by invoking the decorators.\n if (typeOrFunc.hasOwnProperty(PROP_METADATA)) {\n return typeOrFunc[PROP_METADATA];\n }\n return null;\n }\n propMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n const parentCtor = getParentCtor(typeOrFunc);\n const propMetadata = {};\n if (parentCtor !== Object) {\n const parentPropMetadata = this.propMetadata(parentCtor);\n Object.keys(parentPropMetadata).forEach((propName) => {\n propMetadata[propName] = parentPropMetadata[propName];\n });\n }\n const ownPropMetadata = this._ownPropMetadata(typeOrFunc, parentCtor);\n if (ownPropMetadata) {\n Object.keys(ownPropMetadata).forEach((propName) => {\n const decorators = [];\n if (propMetadata.hasOwnProperty(propName)) {\n decorators.push(...propMetadata[propName]);\n }\n decorators.push(...ownPropMetadata[propName]);\n propMetadata[propName] = decorators;\n });\n }\n return propMetadata;\n }\n ownPropMetadata(typeOrFunc) {\n if (!isType(typeOrFunc)) {\n return {};\n }\n return this._ownPropMetadata(typeOrFunc, getParentCtor(typeOrFunc)) || {};\n }\n hasLifecycleHook(type, lcProperty) {\n return type instanceof Type && lcProperty in type.prototype;\n }\n guards(type) {\n return {};\n }\n getter(name) {\n return new Function('o', 'return o.' + name + ';');\n }\n setter(name) {\n return new Function('o', 'v', 'return o.' + name + ' = v;');\n }\n method(name) {\n const functionBody = `if (!o.${name}) throw new Error('\"${name}\" is undefined');\n return o.${name}.apply(o, args);`;\n return new Function('o', 'args', functionBody);\n }\n // There is not a concept of import uri in Js, but this is useful in developing Dart applications.\n importUri(type) {\n // StaticSymbol\n if (typeof type === 'object' && type['filePath']) {\n return type['filePath'];\n }\n // Runtime type\n return `./${stringify(type)}`;\n }\n resourceUri(type) {\n return `./${stringify(type)}`;\n }\n resolveIdentifier(name, moduleUrl, members, runtime) {\n return runtime;\n }\n resolveEnum(enumIdentifier, name) {\n return enumIdentifier[name];\n }\n}\nfunction convertTsickleDecoratorIntoMetadata(decoratorInvocations) {\n if (!decoratorInvocations) {\n return [];\n }\n return decoratorInvocations.map(decoratorInvocation => {\n const decoratorType = decoratorInvocation.type;\n const annotationCls = decoratorType.annotationCls;\n const annotationArgs = decoratorInvocation.args ? decoratorInvocation.args : [];\n return new annotationCls(...annotationArgs);\n });\n}\nfunction getParentCtor(ctor) {\n const parentProto = ctor.prototype ? Object.getPrototypeOf(ctor.prototype) : null;\n const parentCtor = parentProto ? parentProto.constructor : null;\n // Note: We always use `Object` as the null value\n // to simplify checking later on.\n return parentCtor || Object;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ɵ0$2 = (token) => ({ token });\n/**\n * Inject decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Inject = makeParamDecorator('Inject', ɵ0$2);\n/**\n * Optional decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Optional = makeParamDecorator('Optional');\n/**\n * Self decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Self = makeParamDecorator('Self');\n/**\n * `SkipSelf` decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst SkipSelf = makeParamDecorator('SkipSelf');\n/**\n * Host decorator and metadata.\n *\n * @Annotation\n * @publicApi\n */\nconst Host = makeParamDecorator('Host');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet _reflect = null;\nfunction getReflect() {\n return (_reflect = _reflect || new ReflectionCapabilities());\n}\nfunction reflectDependencies(type) {\n return convertDependencies(getReflect().parameters(type));\n}\nfunction convertDependencies(deps) {\n const compiler = getCompilerFacade();\n return deps.map(dep => reflectDependency(compiler, dep));\n}\nfunction reflectDependency(compiler, dep) {\n const meta = {\n token: null,\n host: false,\n optional: false,\n resolved: compiler.R3ResolvedDependencyType.Token,\n self: false,\n skipSelf: false,\n };\n function setTokenAndResolvedType(token) {\n meta.resolved = compiler.R3ResolvedDependencyType.Token;\n meta.token = token;\n }\n if (Array.isArray(dep) && dep.length > 0) {\n for (let j = 0; j < dep.length; j++) {\n const param = dep[j];\n if (param === undefined) {\n // param may be undefined if type of dep is not set by ngtsc\n continue;\n }\n const proto = Object.getPrototypeOf(param);\n if (param instanceof Optional || proto.ngMetadataName === 'Optional') {\n meta.optional = true;\n }\n else if (param instanceof SkipSelf || proto.ngMetadataName === 'SkipSelf') {\n meta.skipSelf = true;\n }\n else if (param instanceof Self || proto.ngMetadataName === 'Self') {\n meta.self = true;\n }\n else if (param instanceof Host || proto.ngMetadataName === 'Host') {\n meta.host = true;\n }\n else if (param instanceof Inject) {\n meta.token = param.token;\n }\n else if (param instanceof Attribute) {\n if (param.attributeName === undefined) {\n throw new Error(`Attribute name must be defined.`);\n }\n meta.token = param.attributeName;\n meta.resolved = compiler.R3ResolvedDependencyType.Attribute;\n }\n else if (param.__ChangeDetectorRef__ === true) {\n meta.token = param;\n meta.resolved = compiler.R3ResolvedDependencyType.ChangeDetectorRef;\n }\n else {\n setTokenAndResolvedType(param);\n }\n }\n }\n else if (dep === undefined || (Array.isArray(dep) && dep.length === 0)) {\n meta.token = undefined;\n meta.resolved = R3ResolvedDependencyType.Invalid;\n }\n else {\n setTokenAndResolvedType(dep);\n }\n return meta;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Used to resolve resource URLs on `@Component` when used with JIT compilation.\n *\n * Example:\n * ```\n * @Component({\n * selector: 'my-comp',\n * templateUrl: 'my-comp.html', // This requires asynchronous resolution\n * })\n * class MyComponent{\n * }\n *\n * // Calling `renderComponent` will fail because `renderComponent` is a synchronous process\n * // and `MyComponent`'s `@Component.templateUrl` needs to be resolved asynchronously.\n *\n * // Calling `resolveComponentResources()` will resolve `@Component.templateUrl` into\n * // `@Component.template`, which allows `renderComponent` to proceed in a synchronous manner.\n *\n * // Use browser's `fetch()` function as the default resource resolution strategy.\n * resolveComponentResources(fetch).then(() => {\n * // After resolution all URLs have been converted into `template` strings.\n * renderComponent(MyComponent);\n * });\n *\n * ```\n *\n * NOTE: In AOT the resolution happens during compilation, and so there should be no need\n * to call this method outside JIT mode.\n *\n * @param resourceResolver a function which is responsible for returning a `Promise` to the\n * contents of the resolved URL. Browser's `fetch()` method is a good default implementation.\n */\nfunction resolveComponentResources(resourceResolver) {\n // Store all promises which are fetching the resources.\n const componentResolved = [];\n // Cache so that we don't fetch the same resource more than once.\n const urlMap = new Map();\n function cachedResourceResolve(url) {\n let promise = urlMap.get(url);\n if (!promise) {\n const resp = resourceResolver(url);\n urlMap.set(url, promise = resp.then(unwrapResponse));\n }\n return promise;\n }\n componentResourceResolutionQueue.forEach((component, type) => {\n const promises = [];\n if (component.templateUrl) {\n promises.push(cachedResourceResolve(component.templateUrl).then((template) => {\n component.template = template;\n }));\n }\n const styleUrls = component.styleUrls;\n const styles = component.styles || (component.styles = []);\n const styleOffset = component.styles.length;\n styleUrls && styleUrls.forEach((styleUrl, index) => {\n styles.push(''); // pre-allocate array.\n promises.push(cachedResourceResolve(styleUrl).then((style) => {\n styles[styleOffset + index] = style;\n styleUrls.splice(styleUrls.indexOf(styleUrl), 1);\n if (styleUrls.length == 0) {\n component.styleUrls = undefined;\n }\n }));\n });\n const fullyResolved = Promise.all(promises).then(() => componentDefResolved(type));\n componentResolved.push(fullyResolved);\n });\n clearResolutionOfComponentResourcesQueue();\n return Promise.all(componentResolved).then(() => undefined);\n}\nlet componentResourceResolutionQueue = new Map();\n// Track when existing ɵcmp for a Type is waiting on resources.\nconst componentDefPendingResolution = new Set();\nfunction maybeQueueResolutionOfComponentResources(type, metadata) {\n if (componentNeedsResolution(metadata)) {\n componentResourceResolutionQueue.set(type, metadata);\n componentDefPendingResolution.add(type);\n }\n}\nfunction isComponentDefPendingResolution(type) {\n return componentDefPendingResolution.has(type);\n}\nfunction componentNeedsResolution(component) {\n return !!((component.templateUrl && !component.hasOwnProperty('template')) ||\n component.styleUrls && component.styleUrls.length);\n}\nfunction clearResolutionOfComponentResourcesQueue() {\n const old = componentResourceResolutionQueue;\n componentResourceResolutionQueue = new Map();\n return old;\n}\nfunction restoreComponentResolutionQueue(queue) {\n componentDefPendingResolution.clear();\n queue.forEach((_, type) => componentDefPendingResolution.add(type));\n componentResourceResolutionQueue = queue;\n}\nfunction isComponentResourceResolutionQueueEmpty() {\n return componentResourceResolutionQueue.size === 0;\n}\nfunction unwrapResponse(response) {\n return typeof response == 'string' ? response : response.text();\n}\nfunction componentDefResolved(type) {\n componentDefPendingResolution.delete(type);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _THROW_IF_NOT_FOUND = {};\nconst THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND;\nconst NG_TEMP_TOKEN_PATH = 'ngTempTokenPath';\nconst NG_TOKEN_PATH = 'ngTokenPath';\nconst NEW_LINE = /\\n/gm;\nconst NO_NEW_LINE = 'ɵ';\nconst SOURCE = '__source';\nconst ɵ0$3 = getClosureSafeProperty;\nconst USE_VALUE = getClosureSafeProperty({ provide: String, useValue: ɵ0$3 });\n/**\n * Current injector value used by `inject`.\n * - `undefined`: it is an error to call `inject`\n * - `null`: `inject` can be called but there is no injector (limp-mode).\n * - Injector instance: Use the injector for resolution.\n */\nlet _currentInjector = undefined;\nfunction setCurrentInjector(injector) {\n const former = _currentInjector;\n _currentInjector = injector;\n return former;\n}\nfunction injectInjectorOnly(token, flags = InjectFlags.Default) {\n if (_currentInjector === undefined) {\n throw new Error(`inject() must be called from an injection context`);\n }\n else if (_currentInjector === null) {\n return injectRootLimpMode(token, undefined, flags);\n }\n else {\n return _currentInjector.get(token, flags & InjectFlags.Optional ? null : undefined, flags);\n }\n}\nfunction ɵɵinject(token, flags = InjectFlags.Default) {\n return (getInjectImplementation() || injectInjectorOnly)(resolveForwardRef(token), flags);\n}\n/**\n * Throws an error indicating that a factory function could not be generated by the compiler for a\n * particular class.\n *\n * This instruction allows the actual error message to be optimized away when ngDevMode is turned\n * off, saving bytes of generated code while still providing a good experience in dev mode.\n *\n * The name of the class is not mentioned here, but will be in the generated factory function name\n * and thus in the stack trace.\n *\n * @codeGenApi\n */\nfunction ɵɵinvalidFactoryDep(index) {\n const msg = ngDevMode ?\n `This constructor is not compatible with Angular Dependency Injection because its dependency at index ${index} of the parameter list is invalid.\nThis can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.\n\nPlease check that 1) the type for the parameter at index ${index} is correct and 2) the correct Angular decorators are defined for this class and its ancestors.` :\n 'invalid';\n throw new Error(msg);\n}\n/**\n * Injects a token from the currently active injector.\n *\n * Must be used in the context of a factory function such as one defined for an\n * `InjectionToken`. Throws an error if not called from such a context.\n *\n * Within such a factory function, using this function to request injection of a dependency\n * is faster and more type-safe than providing an additional array of dependencies\n * (as has been common with `useFactory` providers).\n *\n * @param token The injection token for the dependency to be injected.\n * @param flags Optional flags that control how injection is executed.\n * The flags correspond to injection strategies that can be specified with\n * parameter decorators `@Host`, `@Self`, `@SkipSef`, and `@Optional`.\n * @returns True if injection is successful, null otherwise.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\n *\n * @publicApi\n */\nconst inject = ɵɵinject;\nfunction injectArgs(types) {\n const args = [];\n for (let i = 0; i < types.length; i++) {\n const arg = resolveForwardRef(types[i]);\n if (Array.isArray(arg)) {\n if (arg.length === 0) {\n throw new Error('Arguments array must have arguments.');\n }\n let type = undefined;\n let flags = InjectFlags.Default;\n for (let j = 0; j < arg.length; j++) {\n const meta = arg[j];\n if (meta instanceof Optional || meta.ngMetadataName === 'Optional' || meta === Optional) {\n flags |= InjectFlags.Optional;\n }\n else if (meta instanceof SkipSelf || meta.ngMetadataName === 'SkipSelf' || meta === SkipSelf) {\n flags |= InjectFlags.SkipSelf;\n }\n else if (meta instanceof Self || meta.ngMetadataName === 'Self' || meta === Self) {\n flags |= InjectFlags.Self;\n }\n else if (meta instanceof Host || meta.ngMetadataName === 'Host' || meta === Host) {\n flags |= InjectFlags.Host;\n }\n else if (meta instanceof Inject || meta === Inject) {\n type = meta.token;\n }\n else {\n type = meta;\n }\n }\n args.push(ɵɵinject(type, flags));\n }\n else {\n args.push(ɵɵinject(arg));\n }\n }\n return args;\n}\nfunction catchInjectorError(e, token, injectorErrorName, source) {\n const tokenPath = e[NG_TEMP_TOKEN_PATH];\n if (token[SOURCE]) {\n tokenPath.unshift(token[SOURCE]);\n }\n e.message = formatError('\\n' + e.message, tokenPath, injectorErrorName, source);\n e[NG_TOKEN_PATH] = tokenPath;\n e[NG_TEMP_TOKEN_PATH] = null;\n throw e;\n}\nfunction formatError(text, obj, injectorErrorName, source = null) {\n text = text && text.charAt(0) === '\\n' && text.charAt(1) == NO_NEW_LINE ? text.substr(2) : text;\n let context = stringify(obj);\n if (Array.isArray(obj)) {\n context = obj.map(stringify).join(' -> ');\n }\n else if (typeof obj === 'object') {\n let parts = [];\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n let value = obj[key];\n parts.push(key + ':' + (typeof value === 'string' ? JSON.stringify(value) : stringify(value)));\n }\n }\n context = `{${parts.join(', ')}}`;\n }\n return `${injectorErrorName}${source ? '(' + source + ')' : ''}[${context}]: ${text.replace(NEW_LINE, '\\n ')}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The Trusted Types policy, or null if Trusted Types are not\n * enabled/supported, or undefined if the policy has not been created yet.\n */\nlet policy;\n/**\n * Returns the Trusted Types policy, or null if Trusted Types are not\n * enabled/supported. The first call to this function will create the policy.\n */\nfunction getPolicy() {\n if (policy === undefined) {\n policy = null;\n if (_global.trustedTypes) {\n try {\n policy = _global.trustedTypes.createPolicy('angular', {\n createHTML: (s) => s,\n createScript: (s) => s,\n createScriptURL: (s) => s,\n });\n }\n catch (_a) {\n // trustedTypes.createPolicy throws if called with a name that is\n // already registered, even in report-only mode. Until the API changes,\n // catch the error not to break the applications functionally. In such\n // cases, the code will fall back to using strings.\n }\n }\n }\n return policy;\n}\n/**\n * Unsafely promote a string to a TrustedHTML, falling back to strings when\n * Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that the\n * provided string will never cause an XSS vulnerability if used in a context\n * that will be interpreted as HTML by a browser, e.g. when assigning to\n * element.innerHTML.\n */\nfunction trustedHTMLFromString(html) {\n var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.createHTML(html)) || html;\n}\n/**\n * Unsafely promote a string to a TrustedScript, falling back to strings when\n * Trusted Types are not available.\n * @security In particular, it must be assured that the provided string will\n * never cause an XSS vulnerability if used in a context that will be\n * interpreted and executed as a script by a browser, e.g. when calling eval.\n */\nfunction trustedScriptFromString(script) {\n var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.createScript(script)) || script;\n}\n/**\n * Unsafely promote a string to a TrustedScriptURL, falling back to strings\n * when Trusted Types are not available.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that the\n * provided string will never cause an XSS vulnerability if used in a context\n * that will cause a browser to load and execute a resource, e.g. when\n * assigning to script.src.\n */\nfunction trustedScriptURLFromString(url) {\n var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.createScriptURL(url)) || url;\n}\n/**\n * Unsafely call the Function constructor with the given string arguments. It\n * is only available in development mode, and should be stripped out of\n * production code.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only called from development code, as use in production code can lead to\n * XSS vulnerabilities.\n */\nfunction newTrustedFunctionForDev(...args) {\n if (typeof ngDevMode === 'undefined') {\n throw new Error('newTrustedFunctionForDev should never be called in production');\n }\n if (!_global.trustedTypes) {\n // In environments that don't support Trusted Types, fall back to the most\n // straightforward implementation:\n return new Function(...args);\n }\n // Chrome currently does not support passing TrustedScript to the Function\n // constructor. The following implements the workaround proposed on the page\n // below, where the Chromium bug is also referenced:\n // https://github.com/w3c/webappsec-trusted-types/wiki/Trusted-Types-for-function-constructor\n const fnArgs = args.slice(0, -1).join(',');\n const fnBody = args.pop().toString();\n const body = `(function anonymous(${fnArgs}\n) { ${fnBody}\n})`;\n // Using eval directly confuses the compiler and prevents this module from\n // being stripped out of JS binaries even if not used. The global['eval']\n // indirection fixes that.\n const fn = _global['eval'](trustedScriptFromString(body));\n // To completely mimic the behavior of calling \"new Function\", two more\n // things need to happen:\n // 1. Stringifying the resulting function should return its source code\n fn.toString = () => body;\n // 2. When calling the resulting function, `this` should refer to `global`\n return fn.bind(_global);\n // When Trusted Types support in Function constructors is widely available,\n // the implementation of this function can be simplified to:\n // return new Function(...args.map(a => trustedScriptFromString(a)));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SafeValueImpl {\n constructor(changingThisBreaksApplicationSecurity) {\n this.changingThisBreaksApplicationSecurity = changingThisBreaksApplicationSecurity;\n }\n toString() {\n return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}` +\n ` (see https://g.co/ng/security#xss)`;\n }\n}\nclass SafeHtmlImpl extends SafeValueImpl {\n getTypeName() {\n return \"HTML\" /* Html */;\n }\n}\nclass SafeStyleImpl extends SafeValueImpl {\n getTypeName() {\n return \"Style\" /* Style */;\n }\n}\nclass SafeScriptImpl extends SafeValueImpl {\n getTypeName() {\n return \"Script\" /* Script */;\n }\n}\nclass SafeUrlImpl extends SafeValueImpl {\n getTypeName() {\n return \"URL\" /* Url */;\n }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl {\n getTypeName() {\n return \"ResourceURL\" /* ResourceUrl */;\n }\n}\nfunction unwrapSafeValue(value) {\n return value instanceof SafeValueImpl ? value.changingThisBreaksApplicationSecurity :\n value;\n}\nfunction allowSanitizationBypassAndThrow(value, type) {\n const actualType = getSanitizationBypassType(value);\n if (actualType != null && actualType !== type) {\n // Allow ResourceURLs in URL contexts, they are strictly more trusted.\n if (actualType === \"ResourceURL\" /* ResourceUrl */ && type === \"URL\" /* Url */)\n return true;\n throw new Error(`Required a safe ${type}, got a ${actualType} (see https://g.co/ng/security#xss)`);\n }\n return actualType === type;\n}\nfunction getSanitizationBypassType(value) {\n return value instanceof SafeValueImpl && value.getTypeName() || null;\n}\n/**\n * Mark `html` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link htmlSanitizer} to be trusted implicitly.\n *\n * @param trustedHtml `html` string which needs to be implicitly trusted.\n * @returns a `html` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustHtml(trustedHtml) {\n return new SafeHtmlImpl(trustedHtml);\n}\n/**\n * Mark `style` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link styleSanitizer} to be trusted implicitly.\n *\n * @param trustedStyle `style` string which needs to be implicitly trusted.\n * @returns a `style` hich has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustStyle(trustedStyle) {\n return new SafeStyleImpl(trustedStyle);\n}\n/**\n * Mark `script` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link scriptSanitizer} to be trusted implicitly.\n *\n * @param trustedScript `script` string which needs to be implicitly trusted.\n * @returns a `script` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustScript(trustedScript) {\n return new SafeScriptImpl(trustedScript);\n}\n/**\n * Mark `url` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link urlSanitizer} to be trusted implicitly.\n *\n * @param trustedUrl `url` string which needs to be implicitly trusted.\n * @returns a `url` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustUrl(trustedUrl) {\n return new SafeUrlImpl(trustedUrl);\n}\n/**\n * Mark `url` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {@link resourceUrlSanitizer} to be trusted implicitly.\n *\n * @param trustedResourceUrl `url` string which needs to be implicitly trusted.\n * @returns a `url` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustResourceUrl(trustedResourceUrl) {\n return new SafeResourceUrlImpl(trustedResourceUrl);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This helper is used to get hold of an inert tree of DOM elements containing dirty HTML\n * that needs sanitizing.\n * Depending upon browser support we use one of two strategies for doing this.\n * Default: DOMParser strategy\n * Fallback: InertDocument strategy\n */\nfunction getInertBodyHelper(defaultDoc) {\n const inertDocumentHelper = new InertDocumentHelper(defaultDoc);\n return isDOMParserAvailable() ? new DOMParserHelper(inertDocumentHelper) : inertDocumentHelper;\n}\n/**\n * Uses DOMParser to create and fill an inert body element.\n * This is the default strategy used in browsers that support it.\n */\nclass DOMParserHelper {\n constructor(inertDocumentHelper) {\n this.inertDocumentHelper = inertDocumentHelper;\n }\n getInertBodyElement(html) {\n // We add these extra elements to ensure that the rest of the content is parsed as expected\n // e.g. leading whitespace is maintained and tags like `` do not get hoisted to the\n // `` tag. Note that the `` tag is closed implicitly to prevent unclosed tags\n // in `html` from consuming the otherwise explicit `` tag.\n html = '' + html;\n try {\n const body = new window.DOMParser()\n .parseFromString(trustedHTMLFromString(html), 'text/html')\n .body;\n if (body === null) {\n // In some browsers (e.g. Mozilla/5.0 iPad AppleWebKit Mobile) the `body` property only\n // becomes available in the following tick of the JS engine. In that case we fall back to\n // the `inertDocumentHelper` instead.\n return this.inertDocumentHelper.getInertBodyElement(html);\n }\n body.removeChild(body.firstChild);\n return body;\n }\n catch (_a) {\n return null;\n }\n }\n}\n/**\n * Use an HTML5 `template` element, if supported, or an inert body element created via\n * `createHtmlDocument` to create and fill an inert DOM element.\n * This is the fallback strategy if the browser does not support DOMParser.\n */\nclass InertDocumentHelper {\n constructor(defaultDoc) {\n this.defaultDoc = defaultDoc;\n this.inertDocument = this.defaultDoc.implementation.createHTMLDocument('sanitization-inert');\n if (this.inertDocument.body == null) {\n // usually there should be only one body element in the document, but IE doesn't have any, so\n // we need to create one.\n const inertHtml = this.inertDocument.createElement('html');\n this.inertDocument.appendChild(inertHtml);\n const inertBodyElement = this.inertDocument.createElement('body');\n inertHtml.appendChild(inertBodyElement);\n }\n }\n getInertBodyElement(html) {\n // Prefer using