{
"version": 3,
"sources": ["../ui/web_modules/@ng-bootstrap/ng-bootstrap.js"],
"sourcesContent": ["import { d as __read, b as __extends, f as __assign, e as __values } from '../common/tslib.es6-c4a4947b.js';\nimport { e as map, a as Subject, O as Observable } from '../common/mergeMap-64c6f393.js';\nimport { m as merge } from '../common/merge-183efbc7.js';\nimport { c as combineLatest, B as BehaviorSubject } from '../common/concat-981db672.js';\nimport '../common/Notification-9e07e457.js';\nimport { f as filter } from '../common/filter-d76a729c.js';\nimport { t as timer, r as race } from '../common/timer-a781bf0e.js';\nimport '../common/ArgumentOutOfRangeError-91c779f5.js';\nimport '../common/forkJoin-269e2e92.js';\nimport { N as NEVER, f as fromEvent } from '../common/never-2f7c2de7.js';\nimport { s as startWith, d as distinctUntilChanged, t as takeUntil, a as tap, w as withLatestFrom, b as delay } from '../common/withLatestFrom-853e2e94.js';\nimport { t as take } from '../common/take-7bfdafe5.js';\nimport { s as share } from '../common/share-d41e3509.js';\nimport { s as switchMap } from '../common/switchMap-c513d696.js';\nimport { \u0275\u0275defineInjectable, Directive, Input, ContentChildren, Component, ViewEncapsulation, Output, Optional, Host, ChangeDetectionStrategy, Renderer2, ElementRef, forwardRef, ChangeDetectorRef, Inject, PLATFORM_ID, NgZone, HostListener, Injectable, LOCALE_ID as LOCALE_ID$1, \u0275\u0275inject, ViewChild, ContentChild, ViewContainerRef, ComponentFactoryResolver, TemplateRef, Injector, ApplicationRef, RendererFactory2, INJECTOR, Attribute, InjectionToken, EventEmitter, NgModule } from '../@angular/core.js';\nimport { isPlatformBrowser, formatDate, DOCUMENT, CommonModule, getLocaleDayNames, TranslationWidth, FormStyle, getLocaleMonthNames, getLocaleDayPeriods } from '../@angular/common.js';\nimport '../@angular/platform-browser.js';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule } from '../@angular/forms.js';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} value\n * @return {?}\n */\nfunction toInteger(value) {\n return parseInt(\"\" + value, 10);\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction toString(value) {\n return (value !== undefined && value !== null) ? \"\" + value : '';\n}\n/**\n * @param {?} value\n * @param {?} max\n * @param {?=} min\n * @return {?}\n */\nfunction getValueInRange(value, max, min) {\n if (min === void 0) { min = 0; }\n return Math.max(Math.min(value, max), min);\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isString(value) {\n return typeof value === 'string';\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isNumber(value) {\n return !isNaN(toInteger(value));\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isInteger(value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction padNumber(value) {\n if (isNumber(value)) {\n return (\"0\" + value).slice(-2);\n }\n else {\n return '';\n }\n}\n/**\n * @param {?} text\n * @return {?}\n */\nfunction regExpEscape(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction hasClassName(element, className) {\n return element && element.className && element.className.split &&\n element.className.split(/\\s+/).indexOf(className) >= 0;\n}\nif (typeof Element !== 'undefined' && !Element.prototype.closest) {\n // Polyfill for ie10+\n if (!Element.prototype.matches) {\n // IE uses the non-standard name: msMatchesSelector\n Element.prototype.matches = ((/** @type {?} */ (Element.prototype))).msMatchesSelector || Element.prototype.webkitMatchesSelector;\n }\n Element.prototype.closest = (/**\n * @param {?} s\n * @return {?}\n */\n function (s) {\n /** @type {?} */\n var el = this;\n if (!document.documentElement.contains(el)) {\n return null;\n }\n do {\n if (el.matches(s)) {\n return el;\n }\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n });\n}\n/**\n * @param {?} element\n * @param {?} selector\n * @return {?}\n */\nfunction closest(element, selector) {\n if (!selector) {\n return null;\n }\n return element.closest(selector);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [NgbAccordion](#/components/accordion/api#NgbAccordion) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all accordions used in the application.\n */\nvar NgbAccordionConfig = /** @class */ (function () {\n function NgbAccordionConfig() {\n this.closeOthers = false;\n }\n NgbAccordionConfig.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] }\n ];\n /** @nocollapse */ NgbAccordionConfig.ngInjectableDef = \u0275\u0275defineInjectable({ factory: function NgbAccordionConfig_Factory() { return new NgbAccordionConfig(); }, token: NgbAccordionConfig, providedIn: \"root\" });\n return NgbAccordionConfig;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar nextId = 0;\n/**\n * A directive that wraps an accordion panel header with any HTML markup and a toggling button\n * marked with [`NgbPanelToggle`](#/components/accordion/api#NgbPanelToggle).\n * See the [header customization demo](#/components/accordion/examples#header) for more details.\n *\n * You can also use [`NgbPanelTitle`](#/components/accordion/api#NgbPanelTitle) to customize only the panel title.\n *\n * \\@since 4.1.0\n */\nvar NgbPanelHeader = /** @class */ (function () {\n function NgbPanelHeader(templateRef) {\n this.templateRef = templateRef;\n }\n NgbPanelHeader.decorators = [\n { type: Directive, args: [{ selector: 'ng-template[ngbPanelHeader]' },] }\n ];\n /** @nocollapse */\n NgbPanelHeader.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return NgbPanelHeader;\n}());\n/**\n * A directive that wraps only the panel title with HTML markup inside.\n *\n * You can also use [`NgbPanelHeader`](#/components/accordion/api#NgbPanelHeader) to customize the full panel header.\n */\nvar NgbPanelTitle = /** @class */ (function () {\n function NgbPanelTitle(templateRef) {\n this.templateRef = templateRef;\n }\n NgbPanelTitle.decorators = [\n { type: Directive, args: [{ selector: 'ng-template[ngbPanelTitle]' },] }\n ];\n /** @nocollapse */\n NgbPanelTitle.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return NgbPanelTitle;\n}());\n/**\n * A directive that wraps the accordion panel content.\n */\nvar NgbPanelContent = /** @class */ (function () {\n function NgbPanelContent(templateRef) {\n this.templateRef = templateRef;\n }\n NgbPanelContent.decorators = [\n { type: Directive, args: [{ selector: 'ng-template[ngbPanelContent]' },] }\n ];\n /** @nocollapse */\n NgbPanelContent.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return NgbPanelContent;\n}());\n/**\n * A directive that wraps an individual accordion panel with title and collapsible content.\n */\nvar NgbPanel = /** @class */ (function () {\n function NgbPanel() {\n /**\n * If `true`, the panel is disabled an can't be toggled.\n */\n this.disabled = false;\n /**\n * An optional id for the panel that must be unique on the page.\n *\n * If not provided, it will be auto-generated in the `ngb-panel-xxx` format.\n */\n this.id = \"ngb-panel-\" + nextId++;\n this.isOpen = false;\n }\n /**\n * @return {?}\n */\n NgbPanel.prototype.ngAfterContentChecked = /**\n * @return {?}\n */\n function () {\n // We are using @ContentChildren instead of @ContentChild as in the Angular version being used\n // only @ContentChildren allows us to specify the {descendants: false} option.\n // Without {descendants: false} we are hitting bugs described in:\n // https://github.com/ng-bootstrap/ng-bootstrap/issues/2240\n this.titleTpl = this.titleTpls.first;\n this.headerTpl = this.headerTpls.first;\n this.contentTpl = this.contentTpls.first;\n };\n NgbPanel.decorators = [\n { type: Directive, args: [{ selector: 'ngb-panel' },] }\n ];\n NgbPanel.propDecorators = {\n disabled: [{ type: Input }],\n id: [{ type: Input }],\n title: [{ type: Input }],\n type: [{ type: Input }],\n cardClass: [{ type: Input }],\n titleTpls: [{ type: ContentChildren, args: [NgbPanelTitle, { descendants: false },] }],\n headerTpls: [{ type: ContentChildren, args: [NgbPanelHeader, { descendants: false },] }],\n contentTpls: [{ type: ContentChildren, args: [NgbPanelContent, { descendants: false },] }]\n };\n return NgbPanel;\n}());\n/**\n * Accordion is a collection of collapsible panels (bootstrap cards).\n *\n * It can ensure only one panel is opened at a time and allows to customize panel\n * headers.\n */\nvar NgbAccordion = /** @class */ (function () {\n function NgbAccordion(config) {\n /**\n * An array or comma separated strings of panel ids that should be opened **initially**.\n *\n * For subsequent changes use methods like `expand()`, `collapse()`, etc. and\n * the `(panelChange)` event.\n */\n this.activeIds = [];\n /**\n * If `true`, panel content will be detached from DOM and not simply hidden when the panel is collapsed.\n */\n this.destroyOnHide = true;\n /**\n * Event emitted right before the panel toggle happens.\n *\n * See [NgbPanelChangeEvent](#/components/accordion/api#NgbPanelChangeEvent) for payload details.\n */\n this.panelChange = new EventEmitter();\n this.type = config.type;\n this.closeOtherPanels = config.closeOthers;\n }\n /**\n * Checks if a panel with a given id is expanded.\n */\n /**\n * Checks if a panel with a given id is expanded.\n * @param {?} panelId\n * @return {?}\n */\n NgbAccordion.prototype.isExpanded = /**\n * Checks if a panel with a given id is expanded.\n * @param {?} panelId\n * @return {?}\n */\n function (panelId) { return this.activeIds.indexOf(panelId) > -1; };\n /**\n * Expands a panel with a given id.\n *\n * Has no effect if the panel is already expanded or disabled.\n */\n /**\n * Expands a panel with a given id.\n *\n * Has no effect if the panel is already expanded or disabled.\n * @param {?} panelId\n * @return {?}\n */\n NgbAccordion.prototype.expand = /**\n * Expands a panel with a given id.\n *\n * Has no effect if the panel is already expanded or disabled.\n * @param {?} panelId\n * @return {?}\n */\n function (panelId) { this._changeOpenState(this._findPanelById(panelId), true); };\n /**\n * Expands all panels, if `[closeOthers]` is `false`.\n *\n * If `[closeOthers]` is `true`, it will expand the first panel, unless there is already a panel opened.\n */\n /**\n * Expands all panels, if `[closeOthers]` is `false`.\n *\n * If `[closeOthers]` is `true`, it will expand the first panel, unless there is already a panel opened.\n * @return {?}\n */\n NgbAccordion.prototype.expandAll = /**\n * Expands all panels, if `[closeOthers]` is `false`.\n *\n * If `[closeOthers]` is `true`, it will expand the first panel, unless there is already a panel opened.\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.closeOtherPanels) {\n if (this.activeIds.length === 0 && this.panels.length) {\n this._changeOpenState(this.panels.first, true);\n }\n }\n else {\n this.panels.forEach((/**\n * @param {?} panel\n * @return {?}\n */\n function (panel) { return _this._changeOpenState(panel, true); }));\n }\n };\n /**\n * Collapses a panel with the given id.\n *\n * Has no effect if the panel is already collapsed or disabled.\n */\n /**\n * Collapses a panel with the given id.\n *\n * Has no effect if the panel is already collapsed or disabled.\n * @param {?} panelId\n * @return {?}\n */\n NgbAccordion.prototype.collapse = /**\n * Collapses a panel with the given id.\n *\n * Has no effect if the panel is already collapsed or disabled.\n * @param {?} panelId\n * @return {?}\n */\n function (panelId) { this._changeOpenState(this._findPanelById(panelId), false); };\n /**\n * Collapses all opened panels.\n */\n /**\n * Collapses all opened panels.\n * @return {?}\n */\n NgbAccordion.prototype.collapseAll = /**\n * Collapses all opened panels.\n * @return {?}\n */\n function () {\n var _this = this;\n this.panels.forEach((/**\n * @param {?} panel\n * @return {?}\n */\n function (panel) { _this._changeOpenState(panel, false); }));\n };\n /**\n * Toggles a panel with the given id.\n *\n * Has no effect if the panel is disabled.\n */\n /**\n * Toggles a panel with the given id.\n *\n * Has no effect if the panel is disabled.\n * @param {?} panelId\n * @return {?}\n */\n NgbAccordion.prototype.toggle = /**\n * Toggles a panel with the given id.\n *\n * Has no effect if the panel is disabled.\n * @param {?} panelId\n * @return {?}\n */\n function (panelId) {\n /** @type {?} */\n var panel = this._findPanelById(panelId);\n if (panel) {\n this._changeOpenState(panel, !panel.isOpen);\n }\n };\n /**\n * @return {?}\n */\n NgbAccordion.prototype.ngAfterContentChecked = /**\n * @return {?}\n */\n function () {\n var _this = this;\n // active id updates\n if (isString(this.activeIds)) {\n this.activeIds = this.activeIds.split(/\\s*,\\s*/);\n }\n // update panels open states\n this.panels.forEach((/**\n * @param {?} panel\n * @return {?}\n */\n function (panel) { return panel.isOpen = !panel.disabled && _this.activeIds.indexOf(panel.id) > -1; }));\n // closeOthers updates\n if (this.activeIds.length > 1 && this.closeOtherPanels) {\n this._closeOthers(this.activeIds[0]);\n this._updateActiveIds();\n }\n };\n /**\n * @private\n * @param {?} panel\n * @param {?} nextState\n * @return {?}\n */\n NgbAccordion.prototype._changeOpenState = /**\n * @private\n * @param {?} panel\n * @param {?} nextState\n * @return {?}\n */\n function (panel, nextState) {\n if (panel && !panel.disabled && panel.isOpen !== nextState) {\n /** @type {?} */\n var defaultPrevented_1 = false;\n this.panelChange.emit({ panelId: panel.id, nextState: nextState, preventDefault: (/**\n * @return {?}\n */\n function () { defaultPrevented_1 = true; }) });\n if (!defaultPrevented_1) {\n panel.isOpen = nextState;\n if (nextState && this.closeOtherPanels) {\n this._closeOthers(panel.id);\n }\n this._updateActiveIds();\n }\n }\n };\n /**\n * @private\n * @param {?} panelId\n * @return {?}\n */\n NgbAccordion.prototype._closeOthers = /**\n * @private\n * @param {?} panelId\n * @return {?}\n */\n function (panelId) {\n this.panels.forEach((/**\n * @param {?} panel\n * @return {?}\n */\n function (panel) {\n if (panel.id !== panelId) {\n panel.isOpen = false;\n }\n }));\n };\n /**\n * @private\n * @param {?} panelId\n * @return {?}\n */\n NgbAccordion.prototype._findPanelById = /**\n * @private\n * @param {?} panelId\n * @return {?}\n */\n function (panelId) { return this.panels.find((/**\n * @param {?} p\n * @return {?}\n */\n function (p) { return p.id === panelId; })); };\n /**\n * @private\n * @return {?}\n */\n NgbAccordion.prototype._updateActiveIds = /**\n * @private\n * @return {?}\n */\n function () {\n this.activeIds = this.panels.filter((/**\n * @param {?} panel\n * @return {?}\n */\n function (panel) { return panel.isOpen && !panel.disabled; })).map((/**\n * @param {?} panel\n * @return {?}\n */\n function (panel) { return panel.id; }));\n };\n NgbAccordion.decorators = [\n { type: Component, args: [{\n selector: 'ngb-accordion',\n exportAs: 'ngbAccordion',\n encapsulation: ViewEncapsulation.None,\n host: { 'class': 'accordion', 'role': 'tablist', '[attr.aria-multiselectable]': '!closeOtherPanels' },\n template: \"\\n