{"version":3,"sources":["node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs","node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-form-field.mjs","node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-input.mjs","node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-textarea.mjs","node_modules/@ngx-formly/core/fesm2020/ngx-formly-core-select.mjs","node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-radio.mjs","node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-checkbox.mjs","node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-multicheckbox.mjs","node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-select.mjs","node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-addons.mjs","node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap.mjs","src/app/pages/error/generic-error-page/generic-error-page.component.ts","src/app/custom/addl/shared/models/app-shared.model.ts","src/app/custom/addl/shared/constants.ts","src/app/custom/addl/state/subscription/subscription.actions.ts","src/app/custom/addl/shared/dynamic-form/constants.ts","src/app/custom/addl/shared/models/dynamic-form-raw.model.ts","src/app/custom/addl/shared/services/driver-api.service.ts","src/app/custom/addl/shared/services/dynamic-form.service.ts","node_modules/@angular/material/fesm2022/grid-list.mjs","src/app/shared/services/universal-filter.service.ts","node_modules/@popperjs/core/lib/enums.js","node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","node_modules/@popperjs/core/lib/dom-utils/getWindow.js","node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","node_modules/@popperjs/core/lib/modifiers/applyStyles.js","node_modules/@popperjs/core/lib/utils/getBasePlacement.js","node_modules/@popperjs/core/lib/utils/math.js","node_modules/@popperjs/core/lib/utils/userAgent.js","node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","node_modules/@popperjs/core/lib/dom-utils/contains.js","node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","node_modules/@popperjs/core/lib/utils/within.js","node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","node_modules/@popperjs/core/lib/utils/expandToHashMap.js","node_modules/@popperjs/core/lib/modifiers/arrow.js","node_modules/@popperjs/core/lib/utils/getVariation.js","node_modules/@popperjs/core/lib/modifiers/computeStyles.js","node_modules/@popperjs/core/lib/modifiers/eventListeners.js","node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","node_modules/@popperjs/core/lib/utils/rectToClientRect.js","node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","node_modules/@popperjs/core/lib/utils/computeOffsets.js","node_modules/@popperjs/core/lib/utils/detectOverflow.js","node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","node_modules/@popperjs/core/lib/modifiers/flip.js","node_modules/@popperjs/core/lib/modifiers/offset.js","node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","node_modules/@popperjs/core/lib/utils/getAltAxis.js","node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","node_modules/@popperjs/core/lib/utils/orderModifiers.js","node_modules/@popperjs/core/lib/utils/debounce.js","node_modules/@popperjs/core/lib/utils/mergeByName.js","node_modules/@popperjs/core/lib/createPopper.js","node_modules/@popperjs/core/lib/popper-lite.js","node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs","src/app/custom/addl/shared/notifications/error/error.component.ts","src/app/custom/addl/shared/notifications/error/error.component.html"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Type, TemplateRef, ComponentRef, ChangeDetectorRef, InjectionToken, Injectable, Optional, Directive, Input, ViewContainerRef, Component, ViewChild, EventEmitter, ChangeDetectionStrategy, Output, ContentChildren, Inject, ViewChildren, NgModule } from '@angular/core';\nimport * as i2 from '@angular/forms';\nimport { AbstractControl, FormGroup, FormArray, FormControl, NgControl, Validators } from '@angular/forms';\nimport { isObservable, merge, of, Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged, startWith, debounceTime, filter, switchMap, take, tap, map } from 'rxjs/operators';\nimport * as i2$1 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport * as i1 from '@angular/platform-browser';\nconst _c0 = [\"container\"];\nfunction FormlyField_ng_template_0_Template(rf, ctx) {}\nfunction FormlyGroup_formly_field_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"formly-field\", 1);\n }\n if (rf & 2) {\n const f_r1 = ctx.$implicit;\n i0.ɵɵproperty(\"field\", f_r1);\n }\n}\nconst _c1 = [\"*\"];\nconst _c2 = [\"fieldComponent\"];\nfunction disableTreeValidityCall(form, callback) {\n const _updateTreeValidity = form._updateTreeValidity.bind(form);\n form._updateTreeValidity = () => {};\n callback();\n form._updateTreeValidity = _updateTreeValidity;\n}\nfunction getFieldId(formId, field, index) {\n if (field.id) {\n return field.id;\n }\n let type = field.type;\n if (!type && field.template) {\n type = 'template';\n }\n if (type instanceof Type) {\n type = type.prototype.constructor.name;\n }\n return [formId, type, field.key, index].join('_');\n}\nfunction hasKey(field) {\n return !isNil(field.key) && field.key !== '' && (!Array.isArray(field.key) || field.key.length > 0);\n}\nfunction getKeyPath(field) {\n if (!hasKey(field)) {\n return [];\n }\n /* We store the keyPath in the field for performance reasons. This function will be called frequently. */\n if (field._keyPath?.key !== field.key) {\n let path = [];\n if (typeof field.key === 'string') {\n const key = field.key.indexOf('[') === -1 ? field.key : field.key.replace(/\\[(\\w+)\\]/g, '.$1');\n path = key.indexOf('.') !== -1 ? key.split('.') : [key];\n } else if (Array.isArray(field.key)) {\n path = field.key.slice(0);\n } else {\n path = [`${field.key}`];\n }\n defineHiddenProp(field, '_keyPath', {\n key: field.key,\n path\n });\n }\n return field._keyPath.path.slice(0);\n}\nconst FORMLY_VALIDATORS = ['required', 'pattern', 'minLength', 'maxLength', 'min', 'max'];\nfunction assignFieldValue(field, value) {\n let paths = getKeyPath(field);\n if (paths.length === 0) {\n return;\n }\n let root = field;\n while (root.parent) {\n root = root.parent;\n paths = [...getKeyPath(root), ...paths];\n }\n if (value === undefined && field.resetOnHide) {\n const k = paths.pop();\n const m = paths.reduce((model, path) => model[path] || {}, root.model);\n delete m[k];\n return;\n }\n assignModelValue(root.model, paths, value);\n}\nfunction assignModelValue(model, paths, value) {\n for (let i = 0; i < paths.length - 1; i++) {\n const path = paths[i];\n if (!model[path] || !isObject(model[path])) {\n model[path] = /^\\d+$/.test(paths[i + 1]) ? [] : {};\n }\n model = model[path];\n }\n model[paths[paths.length - 1]] = clone(value);\n}\nfunction getFieldValue(field) {\n let model = field.parent ? field.parent.model : field.model;\n for (const path of getKeyPath(field)) {\n if (!model) {\n return model;\n }\n model = model[path];\n }\n return model;\n}\nfunction reverseDeepMerge(dest, ...args) {\n args.forEach(src => {\n for (const srcArg in src) {\n if (isNil(dest[srcArg]) || isBlankString(dest[srcArg])) {\n dest[srcArg] = clone(src[srcArg]);\n } else if (objAndSameType(dest[srcArg], src[srcArg])) {\n reverseDeepMerge(dest[srcArg], src[srcArg]);\n }\n }\n });\n return dest;\n}\n// check a value is null or undefined\nfunction isNil(value) {\n return value == null;\n}\nfunction isUndefined(value) {\n return value === undefined;\n}\nfunction isBlankString(value) {\n return value === '';\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\nfunction objAndSameType(obj1, obj2) {\n return isObject(obj1) && isObject(obj2) && Object.getPrototypeOf(obj1) === Object.getPrototypeOf(obj2) && !(Array.isArray(obj1) || Array.isArray(obj2));\n}\nfunction isObject(x) {\n return x != null && typeof x === 'object';\n}\nfunction isPromise(obj) {\n return !!obj && typeof obj.then === 'function';\n}\nfunction clone(value) {\n if (!isObject(value) || isObservable(value) || value instanceof TemplateRef || /* instanceof SafeHtmlImpl */value.changingThisBreaksApplicationSecurity || ['RegExp', 'FileList', 'File', 'Blob'].indexOf(value.constructor.name) !== -1) {\n return value;\n }\n if (value instanceof Set) {\n return new Set(value);\n }\n if (value instanceof Map) {\n return new Map(value);\n }\n if (value instanceof Uint8Array) {\n return new Uint8Array(value);\n }\n if (value instanceof Uint16Array) {\n return new Uint16Array(value);\n }\n if (value instanceof Uint32Array) {\n return new Uint32Array(value);\n }\n // https://github.com/moment/moment/blob/master/moment.js#L252\n if (value._isAMomentObject && isFunction(value.clone)) {\n return value.clone();\n }\n if (value instanceof AbstractControl) {\n return null;\n }\n if (value instanceof Date) {\n return new Date(value.getTime());\n }\n if (Array.isArray(value)) {\n return value.slice(0).map(v => clone(v));\n }\n // best way to clone a js object maybe\n // https://stackoverflow.com/questions/41474986/how-to-clone-a-javascript-es6-class-instance\n const proto = Object.getPrototypeOf(value);\n let c = Object.create(proto);\n c = Object.setPrototypeOf(c, proto);\n // need to make a deep copy so we dont use Object.assign\n // also Object.assign wont copy property descriptor exactly\n return Object.keys(value).reduce((newVal, prop) => {\n const propDesc = Object.getOwnPropertyDescriptor(value, prop);\n if (propDesc.get) {\n Object.defineProperty(newVal, prop, propDesc);\n } else {\n newVal[prop] = clone(value[prop]);\n }\n return newVal;\n }, c);\n}\nfunction defineHiddenProp(field, prop, defaultValue) {\n Object.defineProperty(field, prop, {\n enumerable: false,\n writable: true,\n configurable: true\n });\n field[prop] = defaultValue;\n}\nfunction observeDeep(source, paths, setFn) {\n let observers = [];\n const unsubscribe = () => {\n observers.forEach(observer => observer());\n observers = [];\n };\n const observer = observe(source, paths, ({\n firstChange,\n currentValue\n }) => {\n !firstChange && setFn();\n unsubscribe();\n if (isObject(currentValue) && currentValue.constructor.name === 'Object') {\n Object.keys(currentValue).forEach(prop => {\n observers.push(observeDeep(source, [...paths, prop], setFn));\n });\n }\n });\n return () => {\n observer.unsubscribe();\n unsubscribe();\n };\n}\nfunction observe(o, paths, setFn) {\n if (!o._observers) {\n defineHiddenProp(o, '_observers', {});\n }\n let target = o;\n for (let i = 0; i < paths.length - 1; i++) {\n if (!target[paths[i]] || !isObject(target[paths[i]])) {\n target[paths[i]] = /^\\d+$/.test(paths[i + 1]) ? [] : {};\n }\n target = target[paths[i]];\n }\n const key = paths[paths.length - 1];\n const prop = paths.join('.');\n if (!o._observers[prop]) {\n o._observers[prop] = {\n value: target[key],\n onChange: []\n };\n }\n const state = o._observers[prop];\n if (target[key] !== state.value) {\n state.value = target[key];\n }\n if (setFn && state.onChange.indexOf(setFn) === -1) {\n state.onChange.push(setFn);\n setFn({\n currentValue: state.value,\n firstChange: true\n });\n if (state.onChange.length >= 1 && isObject(target)) {\n const {\n enumerable\n } = Object.getOwnPropertyDescriptor(target, key) || {\n enumerable: true\n };\n Object.defineProperty(target, key, {\n enumerable,\n configurable: true,\n get: () => state.value,\n set: currentValue => {\n if (currentValue !== state.value) {\n const previousValue = state.value;\n state.value = currentValue;\n state.onChange.forEach(changeFn => changeFn({\n previousValue,\n currentValue,\n firstChange: false\n }));\n }\n }\n });\n }\n }\n return {\n setValue(currentValue, emitEvent = true) {\n if (currentValue === state.value) {\n return;\n }\n const previousValue = state.value;\n state.value = currentValue;\n state.onChange.forEach(changeFn => {\n if (changeFn !== setFn && emitEvent) {\n changeFn({\n previousValue,\n currentValue,\n firstChange: false\n });\n }\n });\n },\n unsubscribe() {\n state.onChange = state.onChange.filter(changeFn => changeFn !== setFn);\n if (state.onChange.length === 0) {\n delete o._observers[prop];\n }\n }\n };\n}\nfunction getField(f, key) {\n key = Array.isArray(key) ? key.join('.') : key;\n if (!f.fieldGroup) {\n return undefined;\n }\n for (let i = 0, len = f.fieldGroup.length; i < len; i++) {\n const c = f.fieldGroup[i];\n const k = Array.isArray(c.key) ? c.key.join('.') : c.key;\n if (k === key) {\n return c;\n }\n if (c.fieldGroup && (isNil(k) || key.indexOf(`${k}.`) === 0)) {\n const field = getField(c, isNil(k) ? key : key.slice(k.length + 1));\n if (field) {\n return field;\n }\n }\n }\n return undefined;\n}\nfunction markFieldForCheck(field) {\n field._componentRefs?.forEach(ref => {\n // NOTE: we cannot use ref.changeDetectorRef, see https://github.com/ngx-formly/ngx-formly/issues/2191\n if (ref instanceof ComponentRef) {\n const changeDetectorRef = ref.injector.get(ChangeDetectorRef);\n changeDetectorRef.markForCheck();\n } else {\n ref.markForCheck();\n }\n });\n}\n\n/**\n * An InjectionToken for registering additional formly config options (types, wrappers ...).\n */\nconst FORMLY_CONFIG = new InjectionToken('FORMLY_CONFIG');\n/**\n * Maintains list of formly config options. This can be used to register new field type.\n */\nclass FormlyConfig {\n constructor() {\n this.types = {};\n this.validators = {};\n this.wrappers = {};\n this.messages = {};\n this.extras = {\n checkExpressionOn: 'modelChange',\n lazyRender: true,\n resetFieldOnHide: true,\n renderFormlyFieldElement: true,\n showError(field) {\n return field.formControl?.invalid && (field.formControl?.touched || field.options.parentForm?.submitted || !!field.field.validation?.show);\n }\n };\n this.extensions = {};\n this.presets = {};\n this.extensionsByPriority = {};\n }\n addConfig(config) {\n if (config.types) {\n config.types.forEach(type => this.setType(type));\n }\n if (config.validators) {\n config.validators.forEach(validator => this.setValidator(validator));\n }\n if (config.wrappers) {\n config.wrappers.forEach(wrapper => this.setWrapper(wrapper));\n }\n if (config.validationMessages) {\n config.validationMessages.forEach(validation => this.addValidatorMessage(validation.name, validation.message));\n }\n if (config.extensions) {\n this.setSortedExtensions(config.extensions);\n }\n if (config.extras) {\n this.extras = {\n ...this.extras,\n ...config.extras\n };\n }\n if (config.presets) {\n this.presets = {\n ...this.presets,\n ...config.presets.reduce((acc, curr) => ({\n ...acc,\n [curr.name]: curr.config\n }), {})\n };\n }\n }\n /**\n * Allows you to specify a custom type which you can use in your field configuration.\n * You can pass an object of options, or an array of objects of options.\n */\n setType(options) {\n if (Array.isArray(options)) {\n options.forEach(option => this.setType(option));\n } else {\n if (!this.types[options.name]) {\n this.types[options.name] = {\n name: options.name\n };\n }\n ['component', 'extends', 'defaultOptions', 'wrappers'].forEach(prop => {\n if (options.hasOwnProperty(prop)) {\n this.types[options.name][prop] = options[prop];\n }\n });\n }\n }\n getType(name, throwIfNotFound = false) {\n if (name instanceof Type) {\n return {\n component: name,\n name: name.prototype.constructor.name\n };\n }\n if (!this.types[name]) {\n if (throwIfNotFound) {\n throw new Error(`[Formly Error] The type \"${name}\" could not be found. Please make sure that is registered through the FormlyModule declaration.`);\n }\n return null;\n }\n this.mergeExtendedType(name);\n return this.types[name];\n }\n /** @ignore */\n getMergedField(field = {}) {\n const type = this.getType(field.type);\n if (!type) {\n return;\n }\n if (type.defaultOptions) {\n reverseDeepMerge(field, type.defaultOptions);\n }\n const extendDefaults = type.extends && this.getType(type.extends).defaultOptions;\n if (extendDefaults) {\n reverseDeepMerge(field, extendDefaults);\n }\n if (field?.optionsTypes) {\n field.optionsTypes.forEach(option => {\n const defaultOptions = this.getType(option).defaultOptions;\n if (defaultOptions) {\n reverseDeepMerge(field, defaultOptions);\n }\n });\n }\n const componentRef = this.resolveFieldTypeRef(field);\n if (componentRef?.instance?.defaultOptions) {\n reverseDeepMerge(field, componentRef.instance.defaultOptions);\n }\n if (!field.wrappers && type.wrappers) {\n field.wrappers = [...type.wrappers];\n }\n }\n /** @ignore @internal */\n resolveFieldTypeRef(field = {}) {\n const type = this.getType(field.type);\n if (!type) {\n return null;\n }\n if (!type.component || type._componentRef) {\n return type._componentRef;\n }\n const {\n _viewContainerRef,\n _injector\n } = field.options;\n if (!_viewContainerRef || !_injector) {\n return null;\n }\n const componentRef = _viewContainerRef.createComponent(type.component, {\n injector: _injector\n });\n defineHiddenProp(type, '_componentRef', componentRef);\n try {\n componentRef.destroy();\n } catch (e) {\n console.error(`An error occurred while destroying the Formly component type \"${field.type}\"`, e);\n }\n return type._componentRef;\n }\n setWrapper(options) {\n this.wrappers[options.name] = options;\n if (options.types) {\n options.types.forEach(type => {\n this.setTypeWrapper(type, options.name);\n });\n }\n }\n getWrapper(name) {\n if (name instanceof Type) {\n return {\n component: name,\n name: name.prototype.constructor.name\n };\n }\n if (!this.wrappers[name]) {\n throw new Error(`[Formly Error] The wrapper \"${name}\" could not be found. Please make sure that is registered through the FormlyModule declaration.`);\n }\n return this.wrappers[name];\n }\n /** @ignore */\n setTypeWrapper(type, name) {\n if (!this.types[type]) {\n this.types[type] = {};\n }\n if (!this.types[type].wrappers) {\n this.types[type].wrappers = [];\n }\n if (this.types[type].wrappers.indexOf(name) === -1) {\n this.types[type].wrappers.push(name);\n }\n }\n setValidator(options) {\n this.validators[options.name] = options;\n }\n getValidator(name) {\n if (!this.validators[name]) {\n throw new Error(`[Formly Error] The validator \"${name}\" could not be found. Please make sure that is registered through the FormlyModule declaration.`);\n }\n return this.validators[name];\n }\n addValidatorMessage(name, message) {\n this.messages[name] = message;\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const deprecated = {\n minlength: 'minLength',\n maxlength: 'maxLength'\n };\n if (deprecated[name]) {\n console.warn(`Formly deprecation: passing validation messages key '${name}' is deprecated since v6.0, use '${deprecated[name]}' instead.`);\n this.messages[deprecated[name]] = message;\n }\n }\n }\n getValidatorMessage(name) {\n return this.messages[name];\n }\n setSortedExtensions(extensionOptions) {\n // insert new extensions, grouped by priority\n extensionOptions.forEach(extensionOption => {\n const priority = extensionOption.priority ?? 1;\n this.extensionsByPriority[priority] = {\n ...this.extensionsByPriority[priority],\n [extensionOption.name]: extensionOption.extension\n };\n });\n // flatten extensions object with sorted keys\n this.extensions = Object.keys(this.extensionsByPriority).map(Number).sort((a, b) => a - b).reduce((acc, prio) => ({\n ...acc,\n ...this.extensionsByPriority[prio]\n }), {});\n }\n mergeExtendedType(name) {\n if (!this.types[name].extends) {\n return;\n }\n const extendedType = this.getType(this.types[name].extends);\n if (!this.types[name].component) {\n this.types[name].component = extendedType.component;\n }\n if (!this.types[name].wrappers) {\n this.types[name].wrappers = extendedType.wrappers;\n }\n }\n}\nFormlyConfig.ɵfac = function FormlyConfig_Factory(t) {\n return new (t || FormlyConfig)();\n};\nFormlyConfig.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FormlyConfig,\n factory: FormlyConfig.ɵfac,\n providedIn: 'root'\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nclass FormlyFormBuilder {\n constructor(config, injector, viewContainerRef, parentForm) {\n this.config = config;\n this.injector = injector;\n this.viewContainerRef = viewContainerRef;\n this.parentForm = parentForm;\n }\n buildForm(form, fieldGroup = [], model, options) {\n this.build({\n fieldGroup,\n model,\n form,\n options\n });\n }\n build(field) {\n if (!this.config.extensions.core) {\n throw new Error('NgxFormly: missing `forRoot()` call. use `forRoot()` when registering the `FormlyModule`.');\n }\n if (!field.parent) {\n this._setOptions(field);\n }\n disableTreeValidityCall(field.form, () => {\n this._build(field);\n if (!field.parent) {\n const options = field.options;\n options.checkExpressions?.(field, true);\n options._detectChanges?.(field);\n }\n });\n }\n _build(field) {\n if (!field) {\n return;\n }\n const extensions = Object.values(this.config.extensions);\n extensions.forEach(extension => extension.prePopulate?.(field));\n extensions.forEach(extension => extension.onPopulate?.(field));\n field.fieldGroup?.forEach(f => this._build(f));\n extensions.forEach(extension => extension.postPopulate?.(field));\n }\n _setOptions(field) {\n field.form = field.form || new FormGroup({});\n field.model = field.model || {};\n field.options = field.options || {};\n const options = field.options;\n if (!options._viewContainerRef) {\n defineHiddenProp(options, '_viewContainerRef', this.viewContainerRef);\n }\n if (!options._injector) {\n defineHiddenProp(options, '_injector', this.injector);\n }\n if (!options.build) {\n options._buildForm = () => {\n console.warn(`Formly: 'options._buildForm' is deprecated since v6.0, use 'options.build' instead.`);\n this.build(field);\n };\n options.build = (f = field) => {\n this.build(f);\n return f;\n };\n }\n if (!options.parentForm && this.parentForm) {\n defineHiddenProp(options, 'parentForm', this.parentForm);\n observe(options, ['parentForm', 'submitted'], ({\n firstChange\n }) => {\n if (!firstChange) {\n options.detectChanges(field);\n }\n });\n }\n }\n}\nFormlyFormBuilder.ɵfac = function FormlyFormBuilder_Factory(t) {\n return new (t || FormlyFormBuilder)(i0.ɵɵinject(FormlyConfig), i0.ɵɵinject(i0.Injector), i0.ɵɵinject(i0.ViewContainerRef, 8), i0.ɵɵinject(i2.FormGroupDirective, 8));\n};\nFormlyFormBuilder.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FormlyFormBuilder,\n factory: FormlyFormBuilder.ɵfac,\n providedIn: 'root'\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyFormBuilder, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () {\n return [{\n type: FormlyConfig\n }, {\n type: i0.Injector\n }, {\n type: i0.ViewContainerRef,\n decorators: [{\n type: Optional\n }]\n }, {\n type: i2.FormGroupDirective,\n decorators: [{\n type: Optional\n }]\n }];\n }, null);\n})();\nfunction unregisterControl(field, emitEvent = false) {\n const control = field.formControl;\n const fieldIndex = control._fields ? control._fields.indexOf(field) : -1;\n if (fieldIndex !== -1) {\n control._fields.splice(fieldIndex, 1);\n }\n const form = control.parent;\n if (!form) {\n return;\n }\n const opts = {\n emitEvent\n };\n if (form instanceof FormArray) {\n const key = form.controls.findIndex(c => c === control);\n if (key !== -1) {\n form.removeAt(key, opts);\n }\n } else if (form instanceof FormGroup) {\n const paths = getKeyPath(field);\n const key = paths[paths.length - 1];\n if (form.get([key]) === control) {\n form.removeControl(key, opts);\n }\n }\n control.setParent(null);\n}\nfunction findControl(field) {\n if (field.formControl) {\n return field.formControl;\n }\n if (field.shareFormControl === false) {\n return null;\n }\n return field.form?.get(getKeyPath(field));\n}\nfunction registerControl(field, control, emitEvent = false) {\n control = control || field.formControl;\n if (!control._fields) {\n defineHiddenProp(control, '_fields', []);\n }\n if (control._fields.indexOf(field) === -1) {\n control._fields.push(field);\n }\n if (!field.formControl && control) {\n defineHiddenProp(field, 'formControl', control);\n control.setValidators(null);\n control.setAsyncValidators(null);\n field.props.disabled = !!field.props.disabled;\n const disabledObserver = observe(field, ['props', 'disabled'], ({\n firstChange,\n currentValue\n }) => {\n if (!firstChange) {\n currentValue ? field.formControl.disable() : field.formControl.enable();\n }\n });\n if (control instanceof FormControl) {\n control.registerOnDisabledChange(disabledObserver.setValue);\n }\n }\n if (!field.form || !hasKey(field)) {\n return;\n }\n let form = field.form;\n const paths = getKeyPath(field);\n const value = getFieldValue(field);\n if (!(isNil(control.value) && isNil(value)) && control.value !== value && control instanceof FormControl) {\n control.patchValue(value);\n }\n for (let i = 0; i < paths.length - 1; i++) {\n const path = paths[i];\n if (!form.get([path])) {\n form.setControl(path, new FormGroup({}), {\n emitEvent\n });\n }\n form = form.get([path]);\n }\n const key = paths[paths.length - 1];\n if (!field._hide && form.get([key]) !== control) {\n form.setControl(key, control, {\n emitEvent\n });\n }\n}\nfunction updateValidity(c, onlySelf = false) {\n const status = c.status;\n const value = c.value;\n c.updateValueAndValidity({\n emitEvent: false,\n onlySelf\n });\n if (status !== c.status) {\n c.statusChanges.emit(c.status);\n }\n if (value !== c.value) {\n c.valueChanges.emit(c.value);\n }\n}\nfunction clearControl(form) {\n delete form?._fields;\n form.setValidators(null);\n form.setAsyncValidators(null);\n if (form instanceof FormGroup || form instanceof FormArray) {\n Object.values(form.controls).forEach(c => clearControl(c));\n }\n}\nclass FormlyTemplate {\n constructor(ref) {\n this.ref = ref;\n }\n ngOnChanges() {\n this.name = this.name || 'formly-group';\n }\n}\nFormlyTemplate.ɵfac = function FormlyTemplate_Factory(t) {\n return new (t || FormlyTemplate)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n};\nFormlyTemplate.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FormlyTemplate,\n selectors: [[\"\", \"formlyTemplate\", \"\"]],\n inputs: {\n name: [i0.ɵɵInputFlags.None, \"formlyTemplate\", \"name\"]\n },\n features: [i0.ɵɵNgOnChangesFeature]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyTemplate, [{\n type: Directive,\n args: [{\n selector: '[formlyTemplate]'\n }]\n }], function () {\n return [{\n type: i0.TemplateRef\n }];\n }, {\n name: [{\n type: Input,\n args: ['formlyTemplate']\n }]\n });\n})();\n// workarround for https://github.com/angular/angular/issues/43227#issuecomment-904173738\nclass FormlyFieldTemplates {}\nFormlyFieldTemplates.ɵfac = function FormlyFieldTemplates_Factory(t) {\n return new (t || FormlyFieldTemplates)();\n};\nFormlyFieldTemplates.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FormlyFieldTemplates,\n factory: FormlyFieldTemplates.ɵfac\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyFieldTemplates, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * The `` component is used to render the UI widget (layout + type) of a given `field`.\n */\nclass FormlyField {\n constructor(config, renderer, _elementRef, hostContainerRef, form) {\n this.config = config;\n this.renderer = renderer;\n this._elementRef = _elementRef;\n this.hostContainerRef = hostContainerRef;\n this.form = form;\n this.hostObservers = [];\n this.componentRefs = [];\n this.hooksObservers = [];\n this.detectFieldBuild = false;\n this.valueChangesUnsubscribe = () => {};\n }\n get containerRef() {\n return this.config.extras.renderFormlyFieldElement ? this.viewContainerRef : this.hostContainerRef;\n }\n get elementRef() {\n if (this.config.extras.renderFormlyFieldElement) {\n return this._elementRef;\n }\n if (this.componentRefs?.[0] instanceof ComponentRef) {\n return this.componentRefs[0].location;\n }\n return null;\n }\n ngAfterContentInit() {\n this.triggerHook('afterContentInit');\n }\n ngAfterViewInit() {\n this.triggerHook('afterViewInit');\n }\n ngDoCheck() {\n if (this.detectFieldBuild && this.field && this.field.options) {\n this.render();\n }\n }\n ngOnInit() {\n this.triggerHook('onInit');\n }\n ngOnChanges(changes) {\n this.triggerHook('onChanges', changes);\n }\n ngOnDestroy() {\n this.resetRefs(this.field);\n this.hostObservers.forEach(hostObserver => hostObserver.unsubscribe());\n this.hooksObservers.forEach(unsubscribe => unsubscribe());\n this.valueChangesUnsubscribe();\n this.triggerHook('onDestroy');\n }\n renderField(containerRef, f, wrappers = []) {\n if (this.containerRef === containerRef) {\n this.resetRefs(this.field);\n this.containerRef.clear();\n wrappers = this.field?.wrappers;\n }\n if (wrappers?.length > 0) {\n const [wrapper, ...wps] = wrappers;\n const {\n component\n } = this.config.getWrapper(wrapper);\n const ref = containerRef.createComponent(component);\n this.attachComponentRef(ref, f);\n observe(ref.instance, ['fieldComponent'], ({\n currentValue,\n previousValue,\n firstChange\n }) => {\n if (currentValue) {\n if (previousValue && previousValue._lContainer === currentValue._lContainer) {\n return;\n }\n const viewRef = previousValue ? previousValue.detach() : null;\n if (viewRef && !viewRef.destroyed) {\n currentValue.insert(viewRef);\n } else {\n this.renderField(currentValue, f, wps);\n }\n !firstChange && ref.changeDetectorRef.detectChanges();\n }\n });\n } else if (f?.type) {\n const inlineType = this.form?.templates?.find(ref => ref.name === f.type);\n let ref;\n if (inlineType) {\n ref = containerRef.createEmbeddedView(inlineType.ref, {\n $implicit: f\n });\n } else {\n const {\n component\n } = this.config.getType(f.type, true);\n ref = containerRef.createComponent(component);\n }\n this.attachComponentRef(ref, f);\n }\n }\n triggerHook(name, changes) {\n if (name === 'onInit' || name === 'onChanges' && changes.field && !changes.field.firstChange) {\n this.valueChangesUnsubscribe();\n this.valueChangesUnsubscribe = this.fieldChanges(this.field);\n }\n if (this.field?.hooks?.[name]) {\n if (!changes || changes.field) {\n const r = this.field.hooks[name](this.field);\n if (isObservable(r) && ['onInit', 'afterContentInit', 'afterViewInit'].indexOf(name) !== -1) {\n const sub = r.subscribe();\n this.hooksObservers.push(() => sub.unsubscribe());\n }\n }\n }\n if (name === 'onChanges' && changes.field) {\n this.resetRefs(changes.field.previousValue);\n this.render();\n }\n }\n attachComponentRef(ref, field) {\n this.componentRefs.push(ref);\n field._componentRefs.push(ref);\n if (ref instanceof ComponentRef) {\n Object.assign(ref.instance, {\n field\n });\n }\n }\n render() {\n if (!this.field) {\n return;\n }\n // require Formly build\n if (!this.field.options) {\n this.detectFieldBuild = true;\n return;\n }\n this.detectFieldBuild = false;\n this.hostObservers.forEach(hostObserver => hostObserver.unsubscribe());\n this.hostObservers = [observe(this.field, ['hide'], ({\n firstChange,\n currentValue\n }) => {\n const containerRef = this.containerRef;\n if (this.config.extras.lazyRender === false) {\n firstChange && this.renderField(containerRef, this.field);\n if (!firstChange || firstChange && currentValue) {\n this.elementRef && this.renderer.setStyle(this.elementRef.nativeElement, 'display', currentValue ? 'none' : '');\n }\n } else {\n if (currentValue) {\n containerRef.clear();\n if (this.field.className) {\n this.renderer.removeAttribute(this.elementRef.nativeElement, 'class');\n }\n } else {\n this.renderField(containerRef, this.field);\n if (this.field.className) {\n this.renderer.setAttribute(this.elementRef.nativeElement, 'class', this.field.className);\n }\n }\n }\n !firstChange && this.field.options.detectChanges(this.field);\n }), observe(this.field, ['className'], ({\n firstChange,\n currentValue\n }) => {\n if ((!firstChange || firstChange && currentValue) && (!this.config.extras.lazyRender || this.field.hide !== true)) {\n this.elementRef && this.renderer.setAttribute(this.elementRef.nativeElement, 'class', currentValue);\n }\n }), ...['touched', 'pristine', 'status'].map(prop => observe(this.field, ['formControl', prop], ({\n firstChange\n }) => !firstChange && markFieldForCheck(this.field)))];\n }\n resetRefs(field) {\n if (field) {\n if (field._localFields) {\n field._localFields = [];\n } else {\n defineHiddenProp(this.field, '_localFields', []);\n }\n if (field._componentRefs) {\n field._componentRefs = field._componentRefs.filter(ref => this.componentRefs.indexOf(ref) === -1);\n } else {\n defineHiddenProp(this.field, '_componentRefs', []);\n }\n }\n this.componentRefs = [];\n }\n fieldChanges(field) {\n if (!field) {\n return () => {};\n }\n const subscribes = [observeDeep(field, ['props'], () => field.options.detectChanges(field))];\n if (field.options) {\n subscribes.push(observeDeep(field.options, ['formState'], () => field.options.detectChanges(field)));\n }\n for (const key of Object.keys(field._expressions || {})) {\n const expressionObserver = observe(field, ['_expressions', key], ({\n currentValue,\n previousValue\n }) => {\n if (previousValue?.subscription) {\n previousValue.subscription.unsubscribe();\n previousValue.subscription = null;\n }\n if (isObservable(currentValue.value$)) {\n currentValue.subscription = currentValue.value$.subscribe();\n }\n });\n subscribes.push(() => {\n if (field._expressions[key]?.subscription) {\n field._expressions[key].subscription.unsubscribe();\n }\n expressionObserver.unsubscribe();\n });\n }\n for (const path of [['focus'], ['template'], ['fieldGroupClassName'], ['validation', 'show']]) {\n const fieldObserver = observe(field, path, ({\n firstChange\n }) => !firstChange && field.options.detectChanges(field));\n subscribes.push(() => fieldObserver.unsubscribe());\n }\n if (field.formControl && !field.fieldGroup) {\n const control = field.formControl;\n let valueChanges = control.valueChanges.pipe(distinctUntilChanged((x, y) => {\n if (x !== y || Array.isArray(x) || isObject(x)) {\n return false;\n }\n return true;\n }));\n if (control.value !== getFieldValue(field)) {\n valueChanges = valueChanges.pipe(startWith(control.value));\n }\n const {\n updateOn,\n debounce\n } = field.modelOptions;\n if ((!updateOn || updateOn === 'change') && debounce?.default > 0) {\n valueChanges = control.valueChanges.pipe(debounceTime(debounce.default));\n }\n const sub = valueChanges.subscribe(value => {\n // workaround for https://github.com/angular/angular/issues/13792\n if (control._fields?.length > 1 && control instanceof FormControl) {\n control.patchValue(value, {\n emitEvent: false,\n onlySelf: true\n });\n }\n field.parsers?.forEach(parserFn => value = parserFn(value));\n if (value !== field.formControl.value) {\n field.formControl.setValue(value);\n return;\n }\n if (hasKey(field)) {\n assignFieldValue(field, value);\n }\n field.options.fieldChanges.next({\n value,\n field,\n type: 'valueChanges'\n });\n });\n subscribes.push(() => sub.unsubscribe());\n }\n let templateFieldsSubs = [];\n observe(field, ['_localFields'], ({\n currentValue\n }) => {\n templateFieldsSubs.forEach(unsubscribe => unsubscribe());\n templateFieldsSubs = (currentValue || []).map(f => this.fieldChanges(f));\n });\n return () => {\n subscribes.forEach(unsubscribe => unsubscribe());\n templateFieldsSubs.forEach(unsubscribe => unsubscribe());\n };\n }\n}\nFormlyField.ɵfac = function FormlyField_Factory(t) {\n return new (t || FormlyField)(i0.ɵɵdirectiveInject(FormlyConfig), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(FormlyFieldTemplates, 8));\n};\nFormlyField.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FormlyField,\n selectors: [[\"formly-field\"]],\n viewQuery: function FormlyField_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7, ViewContainerRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.viewContainerRef = _t.first);\n }\n },\n inputs: {\n field: \"field\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 2,\n vars: 0,\n consts: [[\"container\", \"\"]],\n template: function FormlyField_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyField_ng_template_0_Template, 0, 0, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n },\n styles: [\"[_nghost-%COMP%]:empty{display:none}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyField, [{\n type: Component,\n args: [{\n selector: 'formly-field',\n template: '',\n styles: [\":host:empty{display:none}\\n\"]\n }]\n }], function () {\n return [{\n type: FormlyConfig\n }, {\n type: i0.Renderer2\n }, {\n type: i0.ElementRef\n }, {\n type: i0.ViewContainerRef\n }, {\n type: FormlyFieldTemplates,\n decorators: [{\n type: Optional\n }]\n }];\n }, {\n field: [{\n type: Input\n }],\n viewContainerRef: [{\n type: ViewChild,\n args: ['container', {\n read: ViewContainerRef,\n static: true\n }]\n }]\n });\n})();\n\n/**\n * The `` component is the main container of the form,\n * which takes care of managing the form state\n * and delegates the rendering of each field to `` component.\n */\nclass FormlyForm {\n constructor(builder, config, ngZone, fieldTemplates) {\n this.builder = builder;\n this.config = config;\n this.ngZone = ngZone;\n this.fieldTemplates = fieldTemplates;\n /** Event that is emitted when the model value is changed */\n this.modelChange = new EventEmitter();\n this.field = {\n type: 'formly-group'\n };\n this._modelChangeValue = {};\n this.valueChangesUnsubscribe = () => {};\n }\n /** The form instance which allow to track model value and validation status. */\n set form(form) {\n this.field.form = form;\n }\n get form() {\n return this.field.form;\n }\n /** The model to be represented by the form. */\n set model(model) {\n if (this.config.extras.immutable && this._modelChangeValue === model) {\n return;\n }\n this.setField({\n model\n });\n }\n get model() {\n return this.field.model;\n }\n /** The field configurations for building the form. */\n set fields(fieldGroup) {\n this.setField({\n fieldGroup\n });\n }\n get fields() {\n return this.field.fieldGroup;\n }\n /** Options for the form. */\n set options(options) {\n this.setField({\n options\n });\n }\n get options() {\n return this.field.options;\n }\n set templates(templates) {\n this.fieldTemplates.templates = templates;\n }\n ngDoCheck() {\n if (this.config.extras.checkExpressionOn === 'changeDetectionCheck') {\n this.checkExpressionChange();\n }\n }\n ngOnChanges(changes) {\n if (changes.fields && this.form) {\n clearControl(this.form);\n }\n if (changes.fields || changes.form || changes.model && this._modelChangeValue !== changes.model.currentValue) {\n this.valueChangesUnsubscribe();\n this.builder.build(this.field);\n this.valueChangesUnsubscribe = this.valueChanges();\n }\n }\n ngOnDestroy() {\n this.valueChangesUnsubscribe();\n }\n checkExpressionChange() {\n this.field.options.checkExpressions?.(this.field);\n }\n valueChanges() {\n this.valueChangesUnsubscribe();\n const sub = this.field.options.fieldChanges.pipe(filter(({\n field,\n type\n }) => hasKey(field) && type === 'valueChanges'), switchMap(() => this.ngZone.onStable.asObservable().pipe(take(1)))).subscribe(() => this.ngZone.runGuarded(() => {\n // runGuarded is used to keep in sync the expression changes\n // https://github.com/ngx-formly/ngx-formly/issues/2095\n this.checkExpressionChange();\n this.modelChange.emit(this._modelChangeValue = clone(this.model));\n }));\n return () => sub.unsubscribe();\n }\n setField(field) {\n if (this.config.extras.immutable) {\n this.field = {\n ...this.field,\n ...clone(field)\n };\n } else {\n Object.keys(field).forEach(p => this.field[p] = field[p]);\n }\n }\n}\nFormlyForm.ɵfac = function FormlyForm_Factory(t) {\n return new (t || FormlyForm)(i0.ɵɵdirectiveInject(FormlyFormBuilder), i0.ɵɵdirectiveInject(FormlyConfig), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(FormlyFieldTemplates));\n};\nFormlyForm.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FormlyForm,\n selectors: [[\"formly-form\"]],\n contentQueries: function FormlyForm_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, FormlyTemplate, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);\n }\n },\n inputs: {\n form: \"form\",\n model: \"model\",\n fields: \"fields\",\n options: \"options\"\n },\n outputs: {\n modelChange: \"modelChange\"\n },\n features: [i0.ɵɵProvidersFeature([FormlyFormBuilder, FormlyFieldTemplates]), i0.ɵɵNgOnChangesFeature],\n decls: 1,\n vars: 1,\n consts: [[3, \"field\"]],\n template: function FormlyForm_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"formly-field\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"field\", ctx.field);\n }\n },\n dependencies: [FormlyField],\n encapsulation: 2,\n changeDetection: 0\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyForm, [{\n type: Component,\n args: [{\n selector: 'formly-form',\n template: '',\n providers: [FormlyFormBuilder, FormlyFieldTemplates],\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () {\n return [{\n type: FormlyFormBuilder\n }, {\n type: FormlyConfig\n }, {\n type: i0.NgZone\n }, {\n type: FormlyFieldTemplates\n }];\n }, {\n form: [{\n type: Input\n }],\n model: [{\n type: Input\n }],\n fields: [{\n type: Input\n }],\n options: [{\n type: Input\n }],\n modelChange: [{\n type: Output\n }],\n templates: [{\n type: ContentChildren,\n args: [FormlyTemplate]\n }]\n });\n})();\n\n/**\n * Allow to link the `field` HTML attributes (`id`, `name` ...) and Event attributes (`focus`, `blur` ...) to an element in the DOM.\n */\nclass FormlyAttributes {\n constructor(renderer, elementRef, _document) {\n this.renderer = renderer;\n this.elementRef = elementRef;\n this.uiAttributesCache = {};\n /**\n * HostBinding doesn't register listeners conditionally which may produce some perf issues.\n *\n * Formly issue: https://github.com/ngx-formly/ngx-formly/issues/1991\n */\n this.uiEvents = {\n listeners: [],\n events: ['click', 'keyup', 'keydown', 'keypress', 'focus', 'blur', 'change'],\n callback: (eventName, $event) => {\n switch (eventName) {\n case 'focus':\n return this.onFocus($event);\n case 'blur':\n return this.onBlur($event);\n case 'change':\n return this.onChange($event);\n default:\n return this.props[eventName](this.field, $event);\n }\n }\n };\n this.document = _document;\n }\n get props() {\n return this.field.props || {};\n }\n get fieldAttrElements() {\n return this.field?.['_elementRefs'] || [];\n }\n ngOnChanges(changes) {\n if (changes.field) {\n this.field.name && this.setAttribute('name', this.field.name);\n this.uiEvents.listeners.forEach(listener => listener());\n this.uiEvents.events.forEach(eventName => {\n if (this.props?.[eventName] || ['focus', 'blur', 'change'].indexOf(eventName) !== -1) {\n this.uiEvents.listeners.push(this.renderer.listen(this.elementRef.nativeElement, eventName, e => this.uiEvents.callback(eventName, e)));\n }\n });\n if (this.props?.attributes) {\n observe(this.field, ['props', 'attributes'], ({\n currentValue,\n previousValue\n }) => {\n if (previousValue) {\n Object.keys(previousValue).forEach(attr => this.removeAttribute(attr));\n }\n if (currentValue) {\n Object.keys(currentValue).forEach(attr => {\n if (currentValue[attr] != null) {\n this.setAttribute(attr, currentValue[attr]);\n }\n });\n }\n });\n }\n this.detachElementRef(changes.field.previousValue);\n this.attachElementRef(changes.field.currentValue);\n if (this.fieldAttrElements.length === 1) {\n !this.id && this.field.id && this.setAttribute('id', this.field.id);\n this.focusObserver = observe(this.field, ['focus'], ({\n currentValue\n }) => {\n this.toggleFocus(currentValue);\n });\n }\n }\n if (changes.id) {\n this.setAttribute('id', this.id);\n }\n }\n /**\n * We need to re-evaluate all the attributes on every change detection cycle, because\n * by using a HostBinding we run into certain edge cases. This means that whatever logic\n * is in here has to be super lean or we risk seriously damaging or destroying the performance.\n *\n * Formly issue: https://github.com/ngx-formly/ngx-formly/issues/1317\n * Material issue: https://github.com/angular/components/issues/14024\n */\n ngDoCheck() {\n if (!this.uiAttributes) {\n const element = this.elementRef.nativeElement;\n this.uiAttributes = [...FORMLY_VALIDATORS, 'tabindex', 'placeholder', 'readonly', 'disabled', 'step'].filter(attr => !element.hasAttribute || !element.hasAttribute(attr));\n }\n for (let i = 0; i < this.uiAttributes.length; i++) {\n const attr = this.uiAttributes[i];\n const value = this.props[attr];\n if (this.uiAttributesCache[attr] !== value && (!this.props.attributes || !this.props.attributes.hasOwnProperty(attr.toLowerCase()))) {\n this.uiAttributesCache[attr] = value;\n if (value || value === 0) {\n this.setAttribute(attr, value === true ? attr : `${value}`);\n } else {\n this.removeAttribute(attr);\n }\n }\n }\n }\n ngOnDestroy() {\n this.uiEvents.listeners.forEach(listener => listener());\n this.detachElementRef(this.field);\n this.focusObserver?.unsubscribe();\n }\n toggleFocus(value) {\n const element = this.fieldAttrElements ? this.fieldAttrElements[0] : null;\n if (!element || !element.nativeElement.focus) {\n return;\n }\n const isFocused = !!this.document.activeElement && this.fieldAttrElements.some(({\n nativeElement\n }) => this.document.activeElement === nativeElement || nativeElement.contains(this.document.activeElement));\n if (value && !isFocused) {\n Promise.resolve().then(() => element.nativeElement.focus());\n } else if (!value && isFocused) {\n Promise.resolve().then(() => element.nativeElement.blur());\n }\n }\n onFocus($event) {\n this.focusObserver?.setValue(true);\n this.props.focus?.(this.field, $event);\n }\n onBlur($event) {\n this.focusObserver?.setValue(false);\n this.props.blur?.(this.field, $event);\n }\n // handle custom `change` event, for regular ones rely on DOM listener\n onHostChange($event) {\n if ($event instanceof Event) {\n return;\n }\n this.onChange($event);\n }\n onChange($event) {\n this.props.change?.(this.field, $event);\n this.field.formControl?.markAsDirty();\n }\n attachElementRef(f) {\n if (!f) {\n return;\n }\n if (f['_elementRefs']?.indexOf(this.elementRef) === -1) {\n f['_elementRefs'].push(this.elementRef);\n } else {\n defineHiddenProp(f, '_elementRefs', [this.elementRef]);\n }\n }\n detachElementRef(f) {\n const index = f?.['_elementRefs'] ? this.fieldAttrElements.indexOf(this.elementRef) : -1;\n if (index !== -1) {\n f['_elementRefs'].splice(index, 1);\n }\n }\n setAttribute(attr, value) {\n this.renderer.setAttribute(this.elementRef.nativeElement, attr, value);\n }\n removeAttribute(attr) {\n this.renderer.removeAttribute(this.elementRef.nativeElement, attr);\n }\n}\nFormlyAttributes.ɵfac = function FormlyAttributes_Factory(t) {\n return new (t || FormlyAttributes)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(DOCUMENT));\n};\nFormlyAttributes.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FormlyAttributes,\n selectors: [[\"\", \"formlyAttributes\", \"\"]],\n hostBindings: function FormlyAttributes_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"change\", function FormlyAttributes_change_HostBindingHandler($event) {\n return ctx.onHostChange($event);\n });\n }\n },\n inputs: {\n field: [i0.ɵɵInputFlags.None, \"formlyAttributes\", \"field\"],\n id: \"id\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyAttributes, [{\n type: Directive,\n args: [{\n selector: '[formlyAttributes]',\n host: {\n '(change)': 'onHostChange($event)'\n }\n }]\n }], function () {\n return [{\n type: i0.Renderer2\n }, {\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, {\n field: [{\n type: Input,\n args: ['formlyAttributes']\n }],\n id: [{\n type: Input\n }]\n });\n})();\nclass FieldType {\n constructor() {\n this.field = {};\n }\n set _formlyControls(controls) {\n const f = this.field;\n f._localFields = controls.map(c => c.control._fields || []).flat().filter(f => f.formControl !== this.field.formControl);\n }\n get model() {\n return this.field.model;\n }\n get form() {\n return this.field.form;\n }\n get options() {\n return this.field.options;\n }\n get key() {\n return this.field.key;\n }\n get formControl() {\n return this.field.formControl;\n }\n get props() {\n return this.field.props || {};\n }\n /** @deprecated Use `props` instead. */\n get to() {\n return this.props;\n }\n get showError() {\n return this.options.showError(this);\n }\n get id() {\n return this.field.id;\n }\n get formState() {\n return this.options?.formState || {};\n }\n}\nFieldType.ɵfac = function FieldType_Factory(t) {\n return new (t || FieldType)();\n};\nFieldType.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FieldType,\n viewQuery: function FieldType_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(NgControl, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._formlyControls = _t);\n }\n },\n inputs: {\n field: \"field\"\n }\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FieldType, [{\n type: Directive\n }], null, {\n _formlyControls: [{\n type: ViewChildren,\n args: [NgControl]\n }],\n field: [{\n type: Input\n }]\n });\n})();\n\n/** @ignore */\nclass FormlyGroup extends FieldType {}\nFormlyGroup.ɵfac = /* @__PURE__ */(() => {\n let ɵFormlyGroup_BaseFactory;\n return function FormlyGroup_Factory(t) {\n return (ɵFormlyGroup_BaseFactory || (ɵFormlyGroup_BaseFactory = i0.ɵɵgetInheritedFactory(FormlyGroup)))(t || FormlyGroup);\n };\n})();\nFormlyGroup.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FormlyGroup,\n selectors: [[\"formly-group\"]],\n hostVars: 2,\n hostBindings: function FormlyGroup_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassMap(ctx.field.fieldGroupClassName || \"\");\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n ngContentSelectors: _c1,\n decls: 2,\n vars: 1,\n consts: [[3, \"field\", 4, \"ngFor\", \"ngForOf\"], [3, \"field\"]],\n template: function FormlyGroup_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, FormlyGroup_formly_field_0_Template, 1, 1, \"formly-field\", 0);\n i0.ɵɵprojection(1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngForOf\", ctx.field.fieldGroup);\n }\n },\n dependencies: [FormlyField, i2$1.NgForOf],\n encapsulation: 2,\n changeDetection: 0\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyGroup, [{\n type: Component,\n args: [{\n selector: 'formly-group',\n template: `\n \n \n `,\n host: {\n '[class]': 'field.fieldGroupClassName || \"\"'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], null, null);\n})();\n\n/**\n * The `` component renders the error message of a given `field`.\n */\nclass FormlyValidationMessage {\n constructor(config) {\n this.config = config;\n }\n ngOnChanges() {\n const EXPR_VALIDATORS = FORMLY_VALIDATORS.map(v => `templateOptions.${v}`);\n this.errorMessage$ = merge(this.field.formControl.statusChanges, !this.field.options ? of(null) : this.field.options.fieldChanges.pipe(filter(({\n field,\n type,\n property\n }) => {\n return field === this.field && type === 'expressionChanges' && (property.indexOf('validation') !== -1 || EXPR_VALIDATORS.indexOf(property) !== -1);\n }))).pipe(startWith(null), switchMap(() => isObservable(this.errorMessage) ? this.errorMessage : of(this.errorMessage)));\n }\n get errorMessage() {\n const fieldForm = this.field.formControl;\n for (const error in fieldForm.errors) {\n if (fieldForm.errors.hasOwnProperty(error)) {\n let message = this.config.getValidatorMessage(error);\n if (isObject(fieldForm.errors[error])) {\n if (fieldForm.errors[error].errorPath) {\n return undefined;\n }\n if (fieldForm.errors[error].message) {\n message = fieldForm.errors[error].message;\n }\n }\n if (this.field.validation?.messages?.[error]) {\n message = this.field.validation.messages[error];\n }\n if (this.field.validators?.[error]?.message) {\n message = this.field.validators[error].message;\n }\n if (this.field.asyncValidators?.[error]?.message) {\n message = this.field.asyncValidators[error].message;\n }\n if (typeof message === 'function') {\n return message(fieldForm.errors[error], this.field);\n }\n return message;\n }\n }\n return undefined;\n }\n}\nFormlyValidationMessage.ɵfac = function FormlyValidationMessage_Factory(t) {\n return new (t || FormlyValidationMessage)(i0.ɵɵdirectiveInject(FormlyConfig));\n};\nFormlyValidationMessage.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FormlyValidationMessage,\n selectors: [[\"formly-validation-message\"]],\n inputs: {\n field: \"field\"\n },\n features: [i0.ɵɵNgOnChangesFeature],\n decls: 2,\n vars: 3,\n template: function FormlyValidationMessage_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n i0.ɵɵpipe(1, \"async\");\n }\n if (rf & 2) {\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(1, 1, ctx.errorMessage$));\n }\n },\n dependencies: [i2$1.AsyncPipe],\n encapsulation: 2,\n changeDetection: 0\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyValidationMessage, [{\n type: Component,\n args: [{\n selector: 'formly-validation-message',\n template: '{{ errorMessage$ | async }}',\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () {\n return [{\n type: FormlyConfig\n }];\n }, {\n field: [{\n type: Input\n }]\n });\n})();\nclass FieldArrayType extends FieldType {\n onPopulate(field) {\n if (hasKey(field)) {\n const control = findControl(field);\n registerControl(field, control ? control : new FormArray([], {\n updateOn: field.modelOptions.updateOn\n }));\n }\n field.fieldGroup = field.fieldGroup || [];\n const length = Array.isArray(field.model) ? field.model.length : 0;\n if (field.fieldGroup.length > length) {\n for (let i = field.fieldGroup.length - 1; i >= length; --i) {\n unregisterControl(field.fieldGroup[i], true);\n field.fieldGroup.splice(i, 1);\n }\n }\n for (let i = field.fieldGroup.length; i < length; i++) {\n const f = {\n ...clone(typeof field.fieldArray === 'function' ? field.fieldArray(field) : field.fieldArray)\n };\n if (f.key !== null) {\n f.key = `${i}`;\n }\n field.fieldGroup.push(f);\n }\n }\n add(i, initialModel, {\n markAsDirty\n } = {\n markAsDirty: true\n }) {\n i = i == null ? this.field.fieldGroup.length : i;\n if (!this.model) {\n assignFieldValue(this.field, []);\n }\n this.model.splice(i, 0, initialModel ? clone(initialModel) : undefined);\n this._build();\n markAsDirty && this.formControl.markAsDirty();\n }\n remove(i, {\n markAsDirty\n } = {\n markAsDirty: true\n }) {\n this.model.splice(i, 1);\n const field = this.field.fieldGroup[i];\n this.field.fieldGroup.splice(i, 1);\n this.field.fieldGroup.forEach((f, key) => this.updateArrayElementKey(f, `${key}`));\n unregisterControl(field, true);\n this._build();\n markAsDirty && this.formControl.markAsDirty();\n }\n _build() {\n const fields = this.field.formControl._fields ?? [this.field];\n fields.forEach(f => this.options.build(f));\n this.field.options.detectChanges(this.field);\n this.options.fieldChanges.next({\n field: this.field,\n value: getFieldValue(this.field),\n type: 'valueChanges'\n });\n }\n updateArrayElementKey(f, newKey) {\n if (hasKey(f)) {\n f.key = newKey;\n return;\n }\n if (!f.fieldGroup?.length) {\n return;\n }\n for (let i = 0; i < f.fieldGroup.length; i++) {\n this.updateArrayElementKey(f.fieldGroup[i], newKey);\n }\n }\n}\nFieldArrayType.ɵfac = /* @__PURE__ */(() => {\n let ɵFieldArrayType_BaseFactory;\n return function FieldArrayType_Factory(t) {\n return (ɵFieldArrayType_BaseFactory || (ɵFieldArrayType_BaseFactory = i0.ɵɵgetInheritedFactory(FieldArrayType)))(t || FieldArrayType);\n };\n})();\nFieldArrayType.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FieldArrayType,\n features: [i0.ɵɵInheritDefinitionFeature]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FieldArrayType, [{\n type: Directive\n }], null, null);\n})();\nclass FieldWrapper extends FieldType {\n set _formlyControls(_) {}\n set _staticContent(content) {\n this.fieldComponent = content;\n }\n}\nFieldWrapper.ɵfac = /* @__PURE__ */(() => {\n let ɵFieldWrapper_BaseFactory;\n return function FieldWrapper_Factory(t) {\n return (ɵFieldWrapper_BaseFactory || (ɵFieldWrapper_BaseFactory = i0.ɵɵgetInheritedFactory(FieldWrapper)))(t || FieldWrapper);\n };\n})();\nFieldWrapper.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FieldWrapper,\n viewQuery: function FieldWrapper_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c2, 5, ViewContainerRef);\n i0.ɵɵviewQuery(_c2, 7, ViewContainerRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fieldComponent = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._staticContent = _t.first);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FieldWrapper, [{\n type: Directive\n }], null, {\n fieldComponent: [{\n type: ViewChild,\n args: ['fieldComponent', {\n read: ViewContainerRef\n }]\n }],\n _staticContent: [{\n type: ViewChild,\n args: ['fieldComponent', {\n read: ViewContainerRef,\n static: true\n }]\n }]\n });\n})();\n\n/** @ignore */\nclass FormlyTemplateType extends FieldType {\n constructor(sanitizer) {\n super();\n this.sanitizer = sanitizer;\n this.innerHtml = {};\n }\n get template() {\n if (this.field && this.field.template !== this.innerHtml.template) {\n this.innerHtml = {\n template: this.field.template,\n content: this.props.safeHtml ? this.sanitizer.bypassSecurityTrustHtml(this.field.template) : this.field.template\n };\n }\n return this.innerHtml.content;\n }\n}\nFormlyTemplateType.ɵfac = function FormlyTemplateType_Factory(t) {\n return new (t || FormlyTemplateType)(i0.ɵɵdirectiveInject(i1.DomSanitizer));\n};\nFormlyTemplateType.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FormlyTemplateType,\n selectors: [[\"formly-template\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 1,\n vars: 1,\n consts: [[3, \"innerHtml\"]],\n template: function FormlyTemplateType_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"innerHtml\", ctx.template, i0.ɵɵsanitizeHtml);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyTemplateType, [{\n type: Component,\n args: [{\n selector: 'formly-template',\n template: `
`,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () {\n return [{\n type: i1.DomSanitizer\n }];\n }, null);\n})();\nfunction evalStringExpression(expression, argNames) {\n try {\n return Function(...argNames, `return ${expression};`);\n } catch (error) {\n console.error(error);\n }\n}\nfunction evalExpression(expression, thisArg, argVal) {\n if (typeof expression === 'function') {\n return expression.apply(thisArg, argVal);\n } else {\n return expression ? true : false;\n }\n}\nclass FieldExpressionExtension {\n onPopulate(field) {\n if (field._expressions) {\n return;\n }\n // cache built expression\n defineHiddenProp(field, '_expressions', {});\n observe(field, ['hide'], ({\n currentValue,\n firstChange\n }) => {\n defineHiddenProp(field, '_hide', !!currentValue);\n if (!firstChange || firstChange && currentValue === true) {\n field.props.hidden = currentValue;\n field.options._hiddenFieldsForCheck.push(field);\n }\n });\n if (field.hideExpression) {\n observe(field, ['hideExpression'], ({\n currentValue: expr\n }) => {\n field._expressions.hide = this.parseExpressions(field, 'hide', typeof expr === 'boolean' ? () => expr : expr);\n });\n }\n const evalExpr = (key, expr) => {\n if (typeof expr === 'string' || isFunction(expr)) {\n field._expressions[key] = this.parseExpressions(field, key, expr);\n } else if (expr instanceof Observable) {\n field._expressions[key] = {\n value$: expr.pipe(tap(v => {\n this.evalExpr(field, key, v);\n field.options._detectChanges(field);\n }))\n };\n }\n };\n field.expressions = field.expressions || {};\n for (const key of Object.keys(field.expressions)) {\n observe(field, ['expressions', key], ({\n currentValue: expr\n }) => {\n evalExpr(key, isFunction(expr) ? (...args) => expr(field, args[3]) : expr);\n });\n }\n field.expressionProperties = field.expressionProperties || {};\n for (const key of Object.keys(field.expressionProperties)) {\n observe(field, ['expressionProperties', key], ({\n currentValue\n }) => evalExpr(key, currentValue));\n }\n }\n postPopulate(field) {\n if (field.parent) {\n return;\n }\n if (!field.options.checkExpressions) {\n let checkLocked = false;\n field.options.checkExpressions = (f, ignoreCache) => {\n if (checkLocked) {\n return;\n }\n checkLocked = true;\n const fieldChanged = this.checkExpressions(f, ignoreCache);\n const options = field.options;\n options._hiddenFieldsForCheck.sort(f => f.hide ? -1 : 1).forEach(f => this.changeHideState(f, f.hide, !ignoreCache));\n options._hiddenFieldsForCheck = [];\n if (fieldChanged) {\n this.checkExpressions(field);\n }\n checkLocked = false;\n };\n field.options._checkField = (f, ignoreCache) => {\n console.warn(`Formly: 'options._checkField' is deprecated since v6.0, use 'options.checkExpressions' instead.`);\n field.options.checkExpressions(f, ignoreCache);\n };\n }\n }\n parseExpressions(field, path, expr) {\n let parentExpression;\n if (field.parent && ['hide', 'props.disabled'].includes(path)) {\n const rootValue = f => {\n return path === 'hide' ? f.hide : f.props.disabled;\n };\n parentExpression = () => {\n let root = field.parent;\n while (root.parent && !rootValue(root)) {\n root = root.parent;\n }\n return rootValue(root);\n };\n }\n expr = expr || (() => false);\n if (typeof expr === 'string') {\n expr = evalStringExpression(expr, ['model', 'formState', 'field']);\n }\n let currentValue;\n return {\n callback: ignoreCache => {\n try {\n const exprValue = evalExpression(parentExpression ? (...args) => parentExpression(field) || expr(...args) : expr, {\n field\n }, [field.model, field.options.formState, field, ignoreCache]);\n if (ignoreCache || currentValue !== exprValue && (!isObject(exprValue) || isObservable(exprValue) || JSON.stringify(exprValue) !== JSON.stringify(currentValue))) {\n currentValue = exprValue;\n this.evalExpr(field, path, exprValue);\n return true;\n }\n return false;\n } catch (error) {\n error.message = `[Formly Error] [Expression \"${path}\"] ${error.message}`;\n throw error;\n }\n }\n };\n }\n checkExpressions(field, ignoreCache = false) {\n if (!field) {\n return false;\n }\n let fieldChanged = false;\n if (field._expressions) {\n for (const key of Object.keys(field._expressions)) {\n field._expressions[key].callback?.(ignoreCache) && (fieldChanged = true);\n }\n }\n field.fieldGroup?.forEach(f => this.checkExpressions(f, ignoreCache) && (fieldChanged = true));\n return fieldChanged;\n }\n changeDisabledState(field, value) {\n if (field.fieldGroup) {\n field.fieldGroup.filter(f => !f._expressions.hasOwnProperty('props.disabled')).forEach(f => this.changeDisabledState(f, value));\n }\n if (hasKey(field) && field.props.disabled !== value) {\n field.props.disabled = value;\n }\n }\n changeHideState(field, hide, resetOnHide) {\n if (field.fieldGroup) {\n field.fieldGroup.filter(f => !f._expressions.hide).forEach(f => this.changeHideState(f, hide, resetOnHide));\n }\n if (field.formControl && hasKey(field)) {\n defineHiddenProp(field, '_hide', !!(hide || field.hide));\n const c = field.formControl;\n if (c._fields?.length > 1) {\n updateValidity(c);\n }\n if (hide === true && (!c._fields || c._fields.every(f => !!f._hide))) {\n unregisterControl(field, true);\n if (resetOnHide && field.resetOnHide) {\n assignFieldValue(field, undefined);\n field.formControl.reset({\n value: undefined,\n disabled: field.formControl.disabled\n });\n field.options.fieldChanges.next({\n value: undefined,\n field,\n type: 'valueChanges'\n });\n if (field.fieldGroup && field.formControl instanceof FormArray) {\n field.fieldGroup.length = 0;\n }\n }\n } else if (hide === false) {\n if (field.resetOnHide && !isUndefined(field.defaultValue) && isUndefined(getFieldValue(field))) {\n assignFieldValue(field, field.defaultValue);\n }\n registerControl(field, undefined, true);\n if (field.resetOnHide && field.fieldArray && field.fieldGroup?.length !== field.model?.length) {\n field.options.build(field);\n }\n }\n }\n if (field.options.fieldChanges) {\n field.options.fieldChanges.next({\n field,\n type: 'hidden',\n value: hide\n });\n }\n }\n evalExpr(field, prop, value) {\n if (prop.indexOf('model.') === 0) {\n const key = prop.replace(/^model\\./, ''),\n parent = field.fieldGroup ? field : field.parent;\n let control = field?.key === key ? field.formControl : field.form.get(key);\n if (!control && field.get(key)) {\n control = field.get(key).formControl;\n }\n assignFieldValue({\n key,\n parent,\n model: field.model\n }, value);\n if (control && !(isNil(control.value) && isNil(value)) && control.value !== value) {\n control.patchValue(value);\n }\n } else {\n try {\n let target = field;\n const paths = this._evalExpressionPath(field, prop);\n const lastIndex = paths.length - 1;\n for (let i = 0; i < lastIndex; i++) {\n target = target[paths[i]];\n }\n target[paths[lastIndex]] = value;\n } catch (error) {\n error.message = `[Formly Error] [Expression \"${prop}\"] ${error.message}`;\n throw error;\n }\n if (['templateOptions.disabled', 'props.disabled'].includes(prop) && hasKey(field)) {\n this.changeDisabledState(field, value);\n }\n }\n this.emitExpressionChanges(field, prop, value);\n }\n emitExpressionChanges(field, property, value) {\n if (!field.options.fieldChanges) {\n return;\n }\n field.options.fieldChanges.next({\n field,\n type: 'expressionChanges',\n property,\n value\n });\n }\n _evalExpressionPath(field, prop) {\n if (field._expressions[prop] && field._expressions[prop].paths) {\n return field._expressions[prop].paths;\n }\n let paths = [];\n if (prop.indexOf('[') === -1) {\n paths = prop.split('.');\n } else {\n prop.split(/[[\\]]{1,2}/) // https://stackoverflow.com/a/20198206\n .filter(p => p).forEach(path => {\n const arrayPath = path.match(/['|\"](.*?)['|\"]/);\n if (arrayPath) {\n paths.push(arrayPath[1]);\n } else {\n paths.push(...path.split('.').filter(p => p));\n }\n });\n }\n if (field._expressions[prop]) {\n field._expressions[prop].paths = paths;\n }\n return paths;\n }\n}\nclass FieldValidationExtension {\n constructor(config) {\n this.config = config;\n }\n onPopulate(field) {\n this.initFieldValidation(field, 'validators');\n this.initFieldValidation(field, 'asyncValidators');\n }\n initFieldValidation(field, type) {\n const validators = [];\n if (type === 'validators' && !(field.hasOwnProperty('fieldGroup') && !hasKey(field))) {\n validators.push(this.getPredefinedFieldValidation(field));\n }\n if (field[type]) {\n for (const validatorName of Object.keys(field[type])) {\n validatorName === 'validation' ? validators.push(...field[type].validation.map(v => this.wrapNgValidatorFn(field, v))) : validators.push(this.wrapNgValidatorFn(field, field[type][validatorName], validatorName));\n }\n }\n defineHiddenProp(field, '_' + type, validators);\n }\n getPredefinedFieldValidation(field) {\n let VALIDATORS = [];\n FORMLY_VALIDATORS.forEach(opt => observe(field, ['props', opt], ({\n currentValue,\n firstChange\n }) => {\n VALIDATORS = VALIDATORS.filter(o => o !== opt);\n if (opt === 'required' && currentValue != null && typeof currentValue !== 'boolean') {\n console.warn(`Formly: Invalid prop 'required' of type '${typeof currentValue}', expected 'boolean' (Field:${field.key}).`);\n }\n if (currentValue != null && currentValue !== false) {\n VALIDATORS.push(opt);\n }\n if (!firstChange && field.formControl) {\n updateValidity(field.formControl);\n }\n }));\n return control => {\n if (VALIDATORS.length === 0) {\n return null;\n }\n return Validators.compose(VALIDATORS.map(opt => () => {\n const value = field.props[opt];\n switch (opt) {\n case 'required':\n return Validators.required(control);\n case 'pattern':\n return Validators.pattern(value)(control);\n case 'minLength':\n const minLengthResult = Validators.minLength(value)(control);\n const minLengthKey = this.config.getValidatorMessage('minlength') || field.validation?.messages?.minlength ? 'minlength' : 'minLength';\n return minLengthResult ? {\n [minLengthKey]: minLengthResult.minlength\n } : null;\n case 'maxLength':\n const maxLengthResult = Validators.maxLength(value)(control);\n const maxLengthKey = this.config.getValidatorMessage('maxlength') || field.validation?.messages?.maxlength ? 'maxlength' : 'maxLength';\n return maxLengthResult ? {\n [maxLengthKey]: maxLengthResult.maxlength\n } : null;\n case 'min':\n return Validators.min(value)(control);\n case 'max':\n return Validators.max(value)(control);\n default:\n return null;\n }\n }))(control);\n };\n }\n wrapNgValidatorFn(field, validator, validatorName) {\n let validatorOption;\n if (typeof validator === 'string') {\n validatorOption = clone(this.config.getValidator(validator));\n }\n if (typeof validator === 'object' && validator.name) {\n validatorOption = clone(this.config.getValidator(validator.name));\n if (validator.options) {\n validatorOption.options = validator.options;\n }\n }\n if (typeof validator === 'object' && validator.expression) {\n const {\n expression,\n ...options\n } = validator;\n validatorOption = {\n name: validatorName,\n validation: expression,\n options: Object.keys(options).length > 0 ? options : null\n };\n }\n if (typeof validator === 'function') {\n validatorOption = {\n name: validatorName,\n validation: validator\n };\n }\n return control => {\n const errors = validatorOption.validation(control, field, validatorOption.options);\n if (isPromise(errors)) {\n return errors.then(v => this.handleResult(field, validatorName ? !!v : v, validatorOption));\n }\n if (isObservable(errors)) {\n return errors.pipe(map(v => this.handleResult(field, validatorName ? !!v : v, validatorOption)));\n }\n return this.handleResult(field, validatorName ? !!errors : errors, validatorOption);\n };\n }\n handleResult(field, errors, {\n name,\n options\n }) {\n if (typeof errors === 'boolean') {\n errors = errors ? null : {\n [name]: options ? options : true\n };\n }\n const ctrl = field.formControl;\n ctrl?._childrenErrors?.[name]?.();\n if (isObject(errors)) {\n Object.keys(errors).forEach(name => {\n const errorPath = errors[name].errorPath ? errors[name].errorPath : options?.errorPath;\n const childCtrl = errorPath ? field.formControl.get(errorPath) : null;\n if (childCtrl) {\n const {\n errorPath: _errorPath,\n ...opts\n } = errors[name];\n childCtrl.setErrors({\n ...(childCtrl.errors || {}),\n [name]: opts\n });\n !ctrl._childrenErrors && defineHiddenProp(ctrl, '_childrenErrors', {});\n ctrl._childrenErrors[name] = () => {\n const {\n [name]: _toDelete,\n ...childErrors\n } = childCtrl.errors || {};\n childCtrl.setErrors(Object.keys(childErrors).length === 0 ? null : childErrors);\n };\n }\n });\n }\n return errors;\n }\n}\nclass FieldFormExtension {\n prePopulate(field) {\n if (!this.root) {\n this.root = field;\n }\n if (field.parent) {\n Object.defineProperty(field, 'form', {\n get: () => field.parent.formControl,\n configurable: true\n });\n }\n }\n onPopulate(field) {\n if (field.hasOwnProperty('fieldGroup') && !hasKey(field)) {\n defineHiddenProp(field, 'formControl', field.form);\n } else {\n this.addFormControl(field);\n }\n }\n postPopulate(field) {\n if (this.root !== field) {\n return;\n }\n this.root = null;\n const markForCheck = this.setValidators(field);\n if (markForCheck && field.parent) {\n let parent = field.parent;\n while (parent) {\n if (hasKey(parent) || !parent.parent) {\n updateValidity(parent.formControl, true);\n }\n parent = parent.parent;\n }\n }\n }\n addFormControl(field) {\n let control = findControl(field);\n if (field.fieldArray) {\n return;\n }\n if (!control) {\n const controlOptions = {\n updateOn: field.modelOptions.updateOn\n };\n if (field.fieldGroup) {\n control = new FormGroup({}, controlOptions);\n } else {\n const value = hasKey(field) ? getFieldValue(field) : field.defaultValue;\n control = new FormControl({\n value,\n disabled: !!field.props.disabled\n }, {\n ...controlOptions,\n initialValueIsDefault: true\n });\n }\n }\n registerControl(field, control);\n }\n setValidators(field, disabled = false) {\n if (disabled === false && hasKey(field) && field.props?.disabled) {\n disabled = true;\n }\n let markForCheck = false;\n field.fieldGroup?.forEach(f => f && this.setValidators(f, disabled) && (markForCheck = true));\n if (hasKey(field) || !field.parent || !hasKey(field) && !field.fieldGroup) {\n const {\n formControl: c\n } = field;\n if (c) {\n if (hasKey(field) && c instanceof FormControl) {\n if (disabled && c.enabled) {\n c.disable({\n emitEvent: false,\n onlySelf: true\n });\n markForCheck = true;\n }\n if (!disabled && c.disabled) {\n c.enable({\n emitEvent: false,\n onlySelf: true\n });\n markForCheck = true;\n }\n }\n if (null === c.validator && this.hasValidators(field, '_validators')) {\n c.setValidators(() => {\n const v = Validators.compose(this.mergeValidators(field, '_validators'));\n return v ? v(c) : null;\n });\n markForCheck = true;\n }\n if (null === c.asyncValidator && this.hasValidators(field, '_asyncValidators')) {\n c.setAsyncValidators(() => {\n const v = Validators.composeAsync(this.mergeValidators(field, '_asyncValidators'));\n return v ? v(c) : of(null);\n });\n markForCheck = true;\n }\n if (markForCheck) {\n updateValidity(c, true);\n // update validity of `FormGroup` instance created by field with nested key.\n let parent = c.parent;\n for (let i = 1; i < getKeyPath(field).length; i++) {\n if (parent) {\n updateValidity(parent, true);\n parent = parent.parent;\n }\n }\n }\n }\n }\n return markForCheck;\n }\n hasValidators(field, type) {\n const c = field.formControl;\n if (c?._fields?.length > 1 && c._fields.some(f => f[type].length > 0)) {\n return true;\n } else if (field[type].length > 0) {\n return true;\n }\n return field.fieldGroup?.some(f => f?.fieldGroup && !hasKey(f) && this.hasValidators(f, type));\n }\n mergeValidators(field, type) {\n const validators = [];\n const c = field.formControl;\n if (c?._fields?.length > 1) {\n c._fields.filter(f => !f._hide).forEach(f => validators.push(...f[type]));\n } else if (field[type]) {\n validators.push(...field[type]);\n }\n if (field.fieldGroup) {\n field.fieldGroup.filter(f => f?.fieldGroup && !hasKey(f)).forEach(f => validators.push(...this.mergeValidators(f, type)));\n }\n return validators;\n }\n}\nclass CoreExtension {\n constructor(config) {\n this.config = config;\n this.formId = 0;\n }\n prePopulate(field) {\n const root = field.parent;\n this.initRootOptions(field);\n this.initFieldProps(field);\n if (root) {\n Object.defineProperty(field, 'options', {\n get: () => root.options,\n configurable: true\n });\n Object.defineProperty(field, 'model', {\n get: () => hasKey(field) && field.fieldGroup ? getFieldValue(field) : root.model,\n configurable: true\n });\n }\n Object.defineProperty(field, 'get', {\n value: key => getField(field, key),\n configurable: true\n });\n this.getFieldComponentInstance(field).prePopulate?.(field);\n }\n onPopulate(field) {\n this.initFieldOptions(field);\n this.getFieldComponentInstance(field).onPopulate?.(field);\n if (field.fieldGroup) {\n field.fieldGroup.forEach((f, index) => {\n if (f) {\n Object.defineProperty(f, 'parent', {\n get: () => field,\n configurable: true\n });\n Object.defineProperty(f, 'index', {\n get: () => index,\n configurable: true\n });\n }\n this.formId++;\n });\n }\n }\n postPopulate(field) {\n this.getFieldComponentInstance(field).postPopulate?.(field);\n }\n initFieldProps(field) {\n field.props ?? (field.props = field.templateOptions);\n Object.defineProperty(field, 'templateOptions', {\n get: () => field.props,\n set: props => field.props = props,\n configurable: true\n });\n }\n initRootOptions(field) {\n if (field.parent) {\n return;\n }\n const options = field.options;\n field.options.formState = field.options.formState || {};\n if (!options.showError) {\n options.showError = this.config.extras.showError;\n }\n if (!options.fieldChanges) {\n defineHiddenProp(options, 'fieldChanges', new Subject());\n }\n if (!options._hiddenFieldsForCheck) {\n options._hiddenFieldsForCheck = [];\n }\n options._markForCheck = f => {\n console.warn(`Formly: 'options._markForCheck' is deprecated since v6.0, use 'options.detectChanges' instead.`);\n options.detectChanges(f);\n };\n options._detectChanges = f => {\n if (f._componentRefs) {\n markFieldForCheck(f);\n }\n f.fieldGroup?.forEach(f => f && options._detectChanges(f));\n };\n options.detectChanges = f => {\n f.options.checkExpressions?.(f);\n options._detectChanges(f);\n };\n options.resetModel = model => {\n model = clone(model ?? options._initialModel);\n if (field.model) {\n Object.keys(field.model).forEach(k => delete field.model[k]);\n Object.assign(field.model, model || {});\n }\n observe(options, ['parentForm', 'submitted']).setValue(false, false);\n options.build(field);\n field.form.reset(field.model);\n };\n options.updateInitialValue = model => options._initialModel = clone(model ?? field.model);\n field.options.updateInitialValue();\n }\n initFieldOptions(field) {\n reverseDeepMerge(field, {\n id: getFieldId(`formly_${this.formId}`, field, field.index),\n hooks: {},\n modelOptions: {},\n validation: {\n messages: {}\n },\n props: !field.type || !hasKey(field) ? {} : {\n label: '',\n placeholder: '',\n disabled: false\n }\n });\n if (this.config.extras.resetFieldOnHide && field.resetOnHide !== false) {\n field.resetOnHide = true;\n }\n if (field.type !== 'formly-template' && (field.template || field.expressions?.template || field.expressionProperties?.template)) {\n field.type = 'formly-template';\n }\n if (!field.type && field.fieldGroup) {\n field.type = 'formly-group';\n }\n if (field.type) {\n this.config.getMergedField(field);\n }\n if (hasKey(field) && !isUndefined(field.defaultValue) && isUndefined(getFieldValue(field))) {\n const isHidden = f => f.hide || f.expressions?.hide || f.hideExpression;\n let setDefaultValue = !field.resetOnHide || !isHidden(field);\n if (!isHidden(field) && field.resetOnHide) {\n let parent = field.parent;\n while (parent && !isHidden(parent)) {\n parent = parent.parent;\n }\n setDefaultValue = !parent || !isHidden(parent);\n }\n if (setDefaultValue) {\n assignFieldValue(field, field.defaultValue);\n }\n }\n field.wrappers = field.wrappers || [];\n }\n getFieldComponentInstance(field) {\n const componentRefInstance = () => {\n let componentRef = this.config.resolveFieldTypeRef(field);\n const fieldComponentRef = field._componentRefs?.slice(-1)[0];\n if (fieldComponentRef instanceof ComponentRef && fieldComponentRef?.componentType === componentRef?.componentType) {\n componentRef = fieldComponentRef;\n }\n return componentRef?.instance;\n };\n if (!field._proxyInstance) {\n defineHiddenProp(field, '_proxyInstance', new Proxy({}, {\n get: (_, prop) => componentRefInstance()?.[prop],\n set: (_, prop, value) => componentRefInstance()[prop] = value\n }));\n }\n return field._proxyInstance;\n }\n}\nfunction defaultFormlyConfig(config) {\n return {\n types: [{\n name: 'formly-group',\n component: FormlyGroup\n }, {\n name: 'formly-template',\n component: FormlyTemplateType\n }],\n extensions: [{\n name: 'core',\n extension: new CoreExtension(config),\n priority: -250\n }, {\n name: 'field-validation',\n extension: new FieldValidationExtension(config),\n priority: -200\n }, {\n name: 'field-form',\n extension: new FieldFormExtension(),\n priority: -150\n }, {\n name: 'field-expression',\n extension: new FieldExpressionExtension(),\n priority: -100\n }]\n };\n}\nclass FormlyModule {\n constructor(configService, configs = []) {\n if (!configs) {\n return;\n }\n configs.forEach(config => configService.addConfig(config));\n }\n static forRoot(config = {}) {\n return {\n ngModule: FormlyModule,\n providers: [{\n provide: FORMLY_CONFIG,\n multi: true,\n useFactory: defaultFormlyConfig,\n deps: [FormlyConfig]\n }, {\n provide: FORMLY_CONFIG,\n useValue: config,\n multi: true\n }, FormlyConfig, FormlyFormBuilder]\n };\n }\n static forChild(config = {}) {\n return {\n ngModule: FormlyModule,\n providers: [{\n provide: FORMLY_CONFIG,\n multi: true,\n useFactory: defaultFormlyConfig,\n deps: [FormlyConfig]\n }, {\n provide: FORMLY_CONFIG,\n useValue: config,\n multi: true\n }, FormlyFormBuilder]\n };\n }\n}\nFormlyModule.ɵfac = function FormlyModule_Factory(t) {\n return new (t || FormlyModule)(i0.ɵɵinject(FormlyConfig), i0.ɵɵinject(FORMLY_CONFIG, 8));\n};\nFormlyModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FormlyModule\n});\nFormlyModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule]]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyModule, [{\n type: NgModule,\n args: [{\n declarations: [FormlyTemplate, FormlyForm, FormlyField, FormlyAttributes, FormlyGroup, FormlyValidationMessage, FormlyTemplateType],\n exports: [FormlyTemplate, FormlyForm, FormlyField, FormlyAttributes, FormlyGroup, FormlyValidationMessage],\n imports: [CommonModule]\n }]\n }], function () {\n return [{\n type: FormlyConfig\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [FORMLY_CONFIG]\n }]\n }];\n }, null);\n})();\n\n/*\n * Public API Surface of core\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FORMLY_CONFIG, FieldArrayType, FieldType, FieldWrapper, FormlyConfig, FormlyField, FormlyForm, FormlyFormBuilder, FormlyModule, FormlyAttributes as ɵFormlyAttributes, FormlyGroup as ɵFormlyGroup, FormlyTemplate as ɵFormlyTemplate, FormlyValidationMessage as ɵFormlyValidationMessage, clone as ɵclone, defineHiddenProp as ɵdefineHiddenProp, getFieldValue as ɵgetFieldValue, hasKey as ɵhasKey, observe as ɵobserve, reverseDeepMerge as ɵreverseDeepMerge };\n","import * as i0 from '@angular/core';\nimport { Component, NgModule, Directive, Optional, ViewChild } from '@angular/core';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i1 from '@ngx-formly/core';\nimport { FieldWrapper, FormlyModule, FieldType as FieldType$1 } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nfunction FormlyWrapperFormField_ng_template_0_label_0_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 9);\n i0.ɵɵtext(1, \"*\");\n i0.ɵɵelementEnd();\n }\n}\nfunction FormlyWrapperFormField_ng_template_0_label_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"label\", 7);\n i0.ɵɵtext(1);\n i0.ɵɵtemplate(2, FormlyWrapperFormField_ng_template_0_label_0_span_2_Template, 2, 0, \"span\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r8 = i0.ɵɵnextContext(2);\n i0.ɵɵattribute(\"for\", ctx_r8.id);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r8.props.label, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r8.props.required && ctx_r8.props.hideRequiredMarker !== true);\n }\n}\nfunction FormlyWrapperFormField_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyWrapperFormField_ng_template_0_label_0_Template, 3, 3, \"label\", 6);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.props.label && ctx_r0.props.hideLabel !== true);\n }\n}\nfunction FormlyWrapperFormField_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementContainer(1, 10);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const _r1 = i0.ɵɵreference(1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", _r1);\n }\n}\nfunction FormlyWrapperFormField_ng_template_4_Template(rf, ctx) {}\nfunction FormlyWrapperFormField_ng_container_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementContainer(1, 10);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n i0.ɵɵnextContext();\n const _r1 = i0.ɵɵreference(1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", _r1);\n }\n}\nfunction FormlyWrapperFormField_div_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 11);\n i0.ɵɵelement(1, \"formly-validation-message\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r6 = i0.ɵɵnextContext();\n i0.ɵɵstyleProp(\"display\", \"block\");\n i0.ɵɵadvance();\n i0.ɵɵpropertyInterpolate1(\"id\", \"\", ctx_r6.id, \"-formly-validation-error\");\n i0.ɵɵproperty(\"field\", ctx_r6.field);\n }\n}\nfunction FormlyWrapperFormField_small_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"small\", 13);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r7 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r7.props.description);\n }\n}\nconst _c0 = [\"fieldTypeTemplate\"];\nclass FormlyWrapperFormField extends FieldWrapper {}\nFormlyWrapperFormField.ɵfac = /* @__PURE__ */(() => {\n let ɵFormlyWrapperFormField_BaseFactory;\n return function FormlyWrapperFormField_Factory(t) {\n return (ɵFormlyWrapperFormField_BaseFactory || (ɵFormlyWrapperFormField_BaseFactory = i0.ɵɵgetInheritedFactory(FormlyWrapperFormField)))(t || FormlyWrapperFormField);\n };\n})();\nFormlyWrapperFormField.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FormlyWrapperFormField,\n selectors: [[\"formly-wrapper-form-field\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 9,\n vars: 8,\n consts: [[\"labelTemplate\", \"\"], [1, \"mb-3\"], [4, \"ngIf\"], [\"fieldComponent\", \"\"], [\"class\", \"invalid-feedback\", 3, \"display\", 4, \"ngIf\"], [\"class\", \"form-text text-muted\", 4, \"ngIf\"], [\"class\", \"form-label\", 4, \"ngIf\"], [1, \"form-label\"], [\"aria-hidden\", \"true\", 4, \"ngIf\"], [\"aria-hidden\", \"true\"], [3, \"ngTemplateOutlet\"], [1, \"invalid-feedback\"], [\"role\", \"alert\", 3, \"id\", \"field\"], [1, \"form-text\", \"text-muted\"]],\n template: function FormlyWrapperFormField_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyWrapperFormField_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementStart(2, \"div\", 1);\n i0.ɵɵtemplate(3, FormlyWrapperFormField_ng_container_3_Template, 2, 1, \"ng-container\", 2)(4, FormlyWrapperFormField_ng_template_4_Template, 0, 0, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor)(6, FormlyWrapperFormField_ng_container_6_Template, 2, 1, \"ng-container\", 2)(7, FormlyWrapperFormField_div_7_Template, 2, 4, \"div\", 4)(8, FormlyWrapperFormField_small_8_Template, 2, 1, \"small\", 5);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"form-floating\", ctx.props.labelPosition === \"floating\")(\"has-error\", ctx.showError);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.props.labelPosition !== \"floating\");\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.props.labelPosition === \"floating\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.showError);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.props.description);\n }\n },\n dependencies: [i1.ɵFormlyValidationMessage, i2.NgIf, i2.NgTemplateOutlet],\n encapsulation: 2\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyWrapperFormField, [{\n type: Component,\n args: [{\n selector: 'formly-wrapper-form-field',\n template: `\n \n \n \n\n
\n \n \n \n\n \n\n \n \n \n\n
\n \n
\n\n {{ props.description }}\n
\n `\n }]\n }], null, null);\n})();\nclass FormlyBootstrapFormFieldModule {}\nFormlyBootstrapFormFieldModule.ɵfac = function FormlyBootstrapFormFieldModule_Factory(t) {\n return new (t || FormlyBootstrapFormFieldModule)();\n};\nFormlyBootstrapFormFieldModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FormlyBootstrapFormFieldModule\n});\nFormlyBootstrapFormFieldModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule, ReactiveFormsModule, FormlyModule.forChild({\n wrappers: [{\n name: 'form-field',\n component: FormlyWrapperFormField\n }]\n })]]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyBootstrapFormFieldModule, [{\n type: NgModule,\n args: [{\n declarations: [FormlyWrapperFormField],\n imports: [CommonModule, ReactiveFormsModule, FormlyModule.forChild({\n wrappers: [{\n name: 'form-field',\n component: FormlyWrapperFormField\n }]\n })]\n }]\n }], null, null);\n})();\nclass FieldType extends FieldType$1 {\n constructor(hostContainerRef) {\n super();\n this.hostContainerRef = hostContainerRef;\n }\n set content(templateRef) {\n if (templateRef && this.hostContainerRef) {\n this.hostContainerRef.createEmbeddedView(templateRef);\n }\n }\n}\nFieldType.ɵfac = function FieldType_Factory(t) {\n return new (t || FieldType)(i0.ɵɵdirectiveInject(i0.ViewContainerRef, 8));\n};\nFieldType.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: FieldType,\n viewQuery: function FieldType_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FieldType, [{\n type: Directive\n }], function () {\n return [{\n type: i0.ViewContainerRef,\n decorators: [{\n type: Optional\n }]\n }];\n }, {\n content: [{\n type: ViewChild,\n args: ['fieldTypeTemplate', {\n static: true\n }]\n }]\n });\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FieldType, FormlyBootstrapFormFieldModule };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i3 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i2 from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\nfunction FormlyFieldInput_ng_template_0_input_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 3);\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"is-invalid\", ctx_r2.showError);\n i0.ɵɵproperty(\"type\", ctx_r2.type)(\"formControl\", ctx_r2.formControl)(\"formlyAttributes\", ctx_r2.field);\n i0.ɵɵattribute(\"aria-describedby\", ctx_r2.id + \"-formly-validation-error\")(\"aria-invalid\", ctx_r2.showError);\n }\n}\nfunction FormlyFieldInput_ng_template_0_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"input\", 4);\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"is-invalid\", ctx_r3.showError);\n i0.ɵɵproperty(\"formControl\", ctx_r3.formControl)(\"formlyAttributes\", ctx_r3.field);\n i0.ɵɵattribute(\"aria-describedby\", ctx_r3.id + \"-formly-validation-error\")(\"aria-invalid\", ctx_r3.showError);\n }\n}\nfunction FormlyFieldInput_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyFieldInput_ng_template_0_input_0_Template, 1, 7, \"input\", 1)(1, FormlyFieldInput_ng_template_0_ng_template_1_Template, 1, 6, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const _r4 = i0.ɵɵreference(2);\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.type !== \"number\")(\"ngIfElse\", _r4);\n }\n}\nclass FormlyFieldInput extends FieldType {\n get type() {\n return this.props.type || 'text';\n }\n}\nFormlyFieldInput.ɵfac = /* @__PURE__ */(() => {\n let ɵFormlyFieldInput_BaseFactory;\n return function FormlyFieldInput_Factory(t) {\n return (ɵFormlyFieldInput_BaseFactory || (ɵFormlyFieldInput_BaseFactory = i0.ɵɵgetInheritedFactory(FormlyFieldInput)))(t || FormlyFieldInput);\n };\n})();\nFormlyFieldInput.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FormlyFieldInput,\n selectors: [[\"formly-field-input\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 0,\n consts: [[\"fieldTypeTemplate\", \"\"], [\"class\", \"form-control\", 3, \"type\", \"formControl\", \"formlyAttributes\", \"is-invalid\", 4, \"ngIf\", \"ngIfElse\"], [\"numberTmp\", \"\"], [1, \"form-control\", 3, \"type\", \"formControl\", \"formlyAttributes\"], [\"type\", \"number\", 1, \"form-control\", 3, \"formControl\", \"formlyAttributes\"]],\n template: function FormlyFieldInput_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyFieldInput_ng_template_0_Template, 3, 2, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n },\n dependencies: [i1.NgIf, i2.DefaultValueAccessor, i2.NgControlStatus, i2.FormControlDirective, i3.ɵFormlyAttributes, i2.NumberValueAccessor],\n encapsulation: 2,\n changeDetection: 0\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyFieldInput, [{\n type: Component,\n args: [{\n selector: 'formly-field-input',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], null, null);\n})();\nclass FormlyBootstrapInputModule {}\nFormlyBootstrapInputModule.ɵfac = function FormlyBootstrapInputModule_Factory(t) {\n return new (t || FormlyBootstrapInputModule)();\n};\nFormlyBootstrapInputModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FormlyBootstrapInputModule\n});\nFormlyBootstrapInputModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule, ReactiveFormsModule, FormlyBootstrapFormFieldModule, FormlyModule.forChild({\n types: [{\n name: 'input',\n component: FormlyFieldInput,\n wrappers: ['form-field']\n }, {\n name: 'string',\n extends: 'input'\n }, {\n name: 'number',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number'\n }\n }\n }, {\n name: 'integer',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number'\n }\n }\n }]\n })]]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyBootstrapInputModule, [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldInput],\n imports: [CommonModule, ReactiveFormsModule, FormlyBootstrapFormFieldModule, FormlyModule.forChild({\n types: [{\n name: 'input',\n component: FormlyFieldInput,\n wrappers: ['form-field']\n }, {\n name: 'string',\n extends: 'input'\n }, {\n name: 'number',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number'\n }\n }\n }, {\n name: 'integer',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number'\n }\n }\n }]\n })]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapInputModule, FormlyFieldInput };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i2 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i1 from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\nfunction FormlyFieldTextArea_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"textarea\", 1);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"is-invalid\", ctx_r0.showError);\n i0.ɵɵproperty(\"formControl\", ctx_r0.formControl)(\"cols\", ctx_r0.props.cols)(\"rows\", ctx_r0.props.rows)(\"formlyAttributes\", ctx_r0.field);\n i0.ɵɵattribute(\"aria-describedby\", ctx_r0.id + \"-formly-validation-error\")(\"aria-invalid\", ctx_r0.showError);\n }\n}\nclass FormlyFieldTextArea extends FieldType {\n constructor() {\n super(...arguments);\n this.defaultOptions = {\n props: {\n cols: 1,\n rows: 1\n }\n };\n }\n}\nFormlyFieldTextArea.ɵfac = /* @__PURE__ */(() => {\n let ɵFormlyFieldTextArea_BaseFactory;\n return function FormlyFieldTextArea_Factory(t) {\n return (ɵFormlyFieldTextArea_BaseFactory || (ɵFormlyFieldTextArea_BaseFactory = i0.ɵɵgetInheritedFactory(FormlyFieldTextArea)))(t || FormlyFieldTextArea);\n };\n})();\nFormlyFieldTextArea.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FormlyFieldTextArea,\n selectors: [[\"formly-field-textarea\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 0,\n consts: [[\"fieldTypeTemplate\", \"\"], [1, \"form-control\", 3, \"formControl\", \"cols\", \"rows\", \"formlyAttributes\"]],\n template: function FormlyFieldTextArea_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyFieldTextArea_ng_template_0_Template, 1, 8, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n },\n dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.FormControlDirective, i2.ɵFormlyAttributes],\n encapsulation: 2,\n changeDetection: 0\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyFieldTextArea, [{\n type: Component,\n args: [{\n selector: 'formly-field-textarea',\n template: `\n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], null, null);\n})();\nclass FormlyBootstrapTextAreaModule {}\nFormlyBootstrapTextAreaModule.ɵfac = function FormlyBootstrapTextAreaModule_Factory(t) {\n return new (t || FormlyBootstrapTextAreaModule)();\n};\nFormlyBootstrapTextAreaModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FormlyBootstrapTextAreaModule\n});\nFormlyBootstrapTextAreaModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule, ReactiveFormsModule, FormlyBootstrapFormFieldModule, FormlyModule.forChild({\n types: [{\n name: 'textarea',\n component: FormlyFieldTextArea,\n wrappers: ['form-field']\n }]\n })]]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyBootstrapTextAreaModule, [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldTextArea],\n imports: [CommonModule, ReactiveFormsModule, FormlyBootstrapFormFieldModule, FormlyModule.forChild({\n types: [{\n name: 'textarea',\n component: FormlyFieldTextArea,\n wrappers: ['form-field']\n }]\n })]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapTextAreaModule, FormlyFieldTextArea };\n","import * as i0 from '@angular/core';\nimport { Pipe, NgModule } from '@angular/core';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { map, filter, tap } from 'rxjs/operators';\nclass FormlySelectOptionsPipe {\n transform(options, field) {\n if (!(options instanceof Observable)) {\n options = this.observableOf(options, field);\n } else {\n this.dispose();\n }\n return options.pipe(map(value => this.transformOptions(value, field)));\n }\n ngOnDestroy() {\n this.dispose();\n }\n transformOptions(options, field) {\n const to = this.transformSelectProps(field);\n const opts = [];\n const groups = {};\n options?.forEach(option => {\n const o = this.transformOption(option, to);\n if (o.group) {\n const id = groups[o.label];\n if (id === undefined) {\n groups[o.label] = opts.push(o) - 1;\n } else {\n o.group.forEach(o => opts[id].group.push(o));\n }\n } else {\n opts.push(o);\n }\n });\n return opts;\n }\n transformOption(option, props) {\n const group = props.groupProp(option);\n if (Array.isArray(group)) {\n return {\n label: props.labelProp(option),\n group: group.map(opt => this.transformOption(opt, props))\n };\n }\n option = {\n label: props.labelProp(option),\n value: props.valueProp(option),\n disabled: !!props.disabledProp(option)\n };\n if (group) {\n return {\n label: group,\n group: [option]\n };\n }\n return option;\n }\n transformSelectProps(field) {\n const props = field?.props || field?.templateOptions || {};\n const selectPropFn = prop => typeof prop === 'function' ? prop : o => o[prop];\n return {\n groupProp: selectPropFn(props.groupProp || 'group'),\n labelProp: selectPropFn(props.labelProp || 'label'),\n valueProp: selectPropFn(props.valueProp || 'value'),\n disabledProp: selectPropFn(props.disabledProp || 'disabled')\n };\n }\n dispose() {\n if (this._options) {\n this._options.complete();\n this._options = null;\n }\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n }\n observableOf(options, f) {\n this.dispose();\n if (f && f.options && f.options.fieldChanges) {\n this._subscription = f.options.fieldChanges.pipe(filter(({\n property,\n type,\n field\n }) => {\n return type === 'expressionChanges' && (property.indexOf('templateOptions.options') === 0 || property.indexOf('props.options') === 0) && field === f && Array.isArray(field.props.options) && !!this._options;\n }), tap(() => this._options.next(f.props.options))).subscribe();\n }\n this._options = new BehaviorSubject(options);\n return this._options.asObservable();\n }\n}\nFormlySelectOptionsPipe.ɵfac = function FormlySelectOptionsPipe_Factory(t) {\n return new (t || FormlySelectOptionsPipe)();\n};\nFormlySelectOptionsPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"formlySelectOptions\",\n type: FormlySelectOptionsPipe,\n pure: true\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlySelectOptionsPipe, [{\n type: Pipe,\n args: [{\n name: 'formlySelectOptions'\n }]\n }], null, null);\n})();\nclass FormlySelectModule {}\nFormlySelectModule.ɵfac = function FormlySelectModule_Factory(t) {\n return new (t || FormlySelectModule)();\n};\nFormlySelectModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FormlySelectModule\n});\nFormlySelectModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlySelectModule, [{\n type: NgModule,\n args: [{\n declarations: [FormlySelectOptionsPipe],\n exports: [FormlySelectOptionsPipe]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlySelectModule, FormlySelectOptionsPipe };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i3 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i2 from '@angular/forms';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport * as i4 from '@ngx-formly/core/select';\nimport { FormlySelectModule } from '@ngx-formly/core/select';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\nfunction FormlyFieldRadio_ng_template_0_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2);\n i0.ɵɵelement(1, \"input\", 3);\n i0.ɵɵelementStart(2, \"label\", 4);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const option_r3 = ctx.$implicit;\n const i_r4 = ctx.index;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"form-check-inline\", ctx_r2.props.formCheck === \"inline\");\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"is-invalid\", ctx_r2.showError);\n i0.ɵɵproperty(\"id\", ctx_r2.id + \"_\" + i_r4)(\"name\", ctx_r2.field.name || ctx_r2.id)(\"value\", option_r3.value)(\"formControl\", option_r3.disabled ? ctx_r2.disabledControl : ctx_r2.formControl)(\"formlyAttributes\", ctx_r2.field);\n i0.ɵɵattribute(\"value\", option_r3.value)(\"aria-describedby\", ctx_r2.id + \"-formly-validation-error\")(\"aria-invalid\", ctx_r2.showError);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"for\", ctx_r2.id + \"_\" + i_r4);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", option_r3.label, \" \");\n }\n}\nfunction FormlyFieldRadio_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyFieldRadio_ng_template_0_div_0_Template, 4, 14, \"div\", 1);\n i0.ɵɵpipe(1, \"async\");\n i0.ɵɵpipe(2, \"formlySelectOptions\");\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(1, 1, i0.ɵɵpipeBind2(2, 3, ctx_r0.props.options, ctx_r0.field)));\n }\n}\nclass FormlyFieldRadio extends FieldType {\n constructor() {\n super(...arguments);\n this.defaultOptions = {\n props: {\n formCheck: 'default'\n }\n };\n }\n get disabledControl() {\n return new FormControl({\n value: this.formControl.value,\n disabled: true\n });\n }\n}\nFormlyFieldRadio.ɵfac = /* @__PURE__ */(() => {\n let ɵFormlyFieldRadio_BaseFactory;\n return function FormlyFieldRadio_Factory(t) {\n return (ɵFormlyFieldRadio_BaseFactory || (ɵFormlyFieldRadio_BaseFactory = i0.ɵɵgetInheritedFactory(FormlyFieldRadio)))(t || FormlyFieldRadio);\n };\n})();\nFormlyFieldRadio.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FormlyFieldRadio,\n selectors: [[\"formly-field-radio\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 0,\n consts: [[\"fieldTypeTemplate\", \"\"], [\"class\", \"form-check\", 3, \"form-check-inline\", 4, \"ngFor\", \"ngForOf\"], [1, \"form-check\"], [\"type\", \"radio\", 1, \"form-check-input\", 3, \"id\", \"name\", \"value\", \"formControl\", \"formlyAttributes\"], [1, \"form-check-label\", 3, \"for\"]],\n template: function FormlyFieldRadio_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyFieldRadio_ng_template_0_Template, 3, 6, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n },\n dependencies: [i1.NgForOf, i2.RadioControlValueAccessor, i2.DefaultValueAccessor, i2.NgControlStatus, i2.FormControlDirective, i3.ɵFormlyAttributes, i1.AsyncPipe, i4.FormlySelectOptionsPipe],\n encapsulation: 2,\n changeDetection: 0\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyFieldRadio, [{\n type: Component,\n args: [{\n selector: 'formly-field-radio',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], null, null);\n})();\nclass FormlyBootstrapRadioModule {}\nFormlyBootstrapRadioModule.ɵfac = function FormlyBootstrapRadioModule_Factory(t) {\n return new (t || FormlyBootstrapRadioModule)();\n};\nFormlyBootstrapRadioModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FormlyBootstrapRadioModule\n});\nFormlyBootstrapRadioModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule, ReactiveFormsModule, FormlyBootstrapFormFieldModule, FormlySelectModule, FormlyModule.forChild({\n types: [{\n name: 'radio',\n component: FormlyFieldRadio,\n wrappers: ['form-field']\n }]\n })]]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyBootstrapRadioModule, [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldRadio],\n imports: [CommonModule, ReactiveFormsModule, FormlyBootstrapFormFieldModule, FormlySelectModule, FormlyModule.forChild({\n types: [{\n name: 'radio',\n component: FormlyFieldRadio,\n wrappers: ['form-field']\n }]\n })]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapRadioModule, FormlyFieldRadio };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i3 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i2 from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\nfunction FormlyFieldCheckbox_ng_template_0_label_2_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 6);\n i0.ɵɵtext(1, \"*\");\n i0.ɵɵelementEnd();\n }\n}\nfunction FormlyFieldCheckbox_ng_template_0_label_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"label\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵtemplate(2, FormlyFieldCheckbox_ng_template_0_label_2_span_2_Template, 2, 0, \"span\", 5);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"for\", ctx_r2.id);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r2.props.label, \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.props.required && ctx_r2.props.hideRequiredMarker !== true);\n }\n}\nconst _c0 = (a0, a1) => ({\n \"form-check-inline\": a0,\n \"form-switch\": a1\n});\nfunction FormlyFieldCheckbox_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵelement(1, \"input\", 2);\n i0.ɵɵtemplate(2, FormlyFieldCheckbox_ng_template_0_label_2_Template, 3, 3, \"label\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(11, _c0, ctx_r0.props.formCheck === \"inline\" || ctx_r0.props.formCheck === \"inline-switch\", ctx_r0.props.formCheck === \"switch\" || ctx_r0.props.formCheck === \"inline-switch\"));\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"is-invalid\", ctx_r0.showError)(\"position-static\", ctx_r0.props.formCheck === \"nolabel\");\n i0.ɵɵproperty(\"indeterminate\", ctx_r0.props.indeterminate && ctx_r0.formControl.value == null)(\"formControl\", ctx_r0.formControl)(\"formlyAttributes\", ctx_r0.field);\n i0.ɵɵattribute(\"aria-describedby\", ctx_r0.id + \"-formly-validation-error\")(\"aria-invalid\", ctx_r0.showError);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.props.formCheck !== \"nolabel\");\n }\n}\nclass FormlyFieldCheckbox extends FieldType {\n constructor() {\n super(...arguments);\n this.defaultOptions = {\n props: {\n indeterminate: true,\n hideLabel: true,\n formCheck: 'default'\n }\n };\n }\n}\nFormlyFieldCheckbox.ɵfac = /* @__PURE__ */(() => {\n let ɵFormlyFieldCheckbox_BaseFactory;\n return function FormlyFieldCheckbox_Factory(t) {\n return (ɵFormlyFieldCheckbox_BaseFactory || (ɵFormlyFieldCheckbox_BaseFactory = i0.ɵɵgetInheritedFactory(FormlyFieldCheckbox)))(t || FormlyFieldCheckbox);\n };\n})();\nFormlyFieldCheckbox.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FormlyFieldCheckbox,\n selectors: [[\"formly-field-checkbox\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 0,\n consts: [[\"fieldTypeTemplate\", \"\"], [1, \"form-check\", 3, \"ngClass\"], [\"type\", \"checkbox\", 1, \"form-check-input\", 3, \"indeterminate\", \"formControl\", \"formlyAttributes\"], [\"class\", \"form-check-label\", 3, \"for\", 4, \"ngIf\"], [1, \"form-check-label\", 3, \"for\"], [\"aria-hidden\", \"true\", 4, \"ngIf\"], [\"aria-hidden\", \"true\"]],\n template: function FormlyFieldCheckbox_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyFieldCheckbox_ng_template_0_Template, 3, 14, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n },\n dependencies: [i1.NgClass, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.FormControlDirective, i3.ɵFormlyAttributes, i1.NgIf],\n encapsulation: 2,\n changeDetection: 0\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyFieldCheckbox, [{\n type: Component,\n args: [{\n selector: 'formly-field-checkbox',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], null, null);\n})();\nclass FormlyBootstrapCheckboxModule {}\nFormlyBootstrapCheckboxModule.ɵfac = function FormlyBootstrapCheckboxModule_Factory(t) {\n return new (t || FormlyBootstrapCheckboxModule)();\n};\nFormlyBootstrapCheckboxModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FormlyBootstrapCheckboxModule\n});\nFormlyBootstrapCheckboxModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule, ReactiveFormsModule, FormlyBootstrapFormFieldModule, FormlyModule.forChild({\n types: [{\n name: 'checkbox',\n component: FormlyFieldCheckbox,\n wrappers: ['form-field']\n }, {\n name: 'boolean',\n extends: 'checkbox'\n }]\n })]]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyBootstrapCheckboxModule, [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldCheckbox],\n imports: [CommonModule, ReactiveFormsModule, FormlyBootstrapFormFieldModule, FormlyModule.forChild({\n types: [{\n name: 'checkbox',\n component: FormlyFieldCheckbox,\n wrappers: ['form-field']\n }, {\n name: 'boolean',\n extends: 'checkbox'\n }]\n })]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapCheckboxModule, FormlyFieldCheckbox };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport * as i2 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i3 from '@ngx-formly/core/select';\nimport { FormlySelectModule } from '@ngx-formly/core/select';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\nconst _c0 = (a0, a1) => ({\n \"form-check-inline\": a0,\n \"form-switch\": a1\n});\nfunction FormlyFieldMultiCheckbox_ng_template_0_div_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 2)(1, \"input\", 3);\n i0.ɵɵlistener(\"change\", function FormlyFieldMultiCheckbox_ng_template_0_div_0_Template_input_change_1_listener($event) {\n const restoredCtx = i0.ɵɵrestoreView(_r6);\n const option_r3 = restoredCtx.$implicit;\n const ctx_r5 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r5.onChange(option_r3.value, $event.target.checked));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"label\", 4);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const option_r3 = ctx.$implicit;\n const i_r4 = ctx.index;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(12, _c0, ctx_r2.props.formCheck === \"inline\" || ctx_r2.props.formCheck === \"inline-switch\", ctx_r2.props.formCheck === \"switch\" || ctx_r2.props.formCheck === \"inline-switch\"));\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"is-invalid\", ctx_r2.showError);\n i0.ɵɵproperty(\"id\", ctx_r2.id + \"_\" + i_r4)(\"value\", option_r3.value)(\"checked\", ctx_r2.isChecked(option_r3))(\"formlyAttributes\", ctx_r2.field)(\"disabled\", ctx_r2.formControl.disabled || option_r3.disabled);\n i0.ɵɵattribute(\"aria-describedby\", ctx_r2.id + \"-formly-validation-error\")(\"aria-invalid\", ctx_r2.showError);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"for\", ctx_r2.id + \"_\" + i_r4);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", option_r3.label, \" \");\n }\n}\nfunction FormlyFieldMultiCheckbox_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyFieldMultiCheckbox_ng_template_0_div_0_Template, 4, 15, \"div\", 1);\n i0.ɵɵpipe(1, \"async\");\n i0.ɵɵpipe(2, \"formlySelectOptions\");\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngForOf\", i0.ɵɵpipeBind1(1, 1, i0.ɵɵpipeBind2(2, 3, ctx_r0.props.options, ctx_r0.field)));\n }\n}\nclass FormlyFieldMultiCheckbox extends FieldType {\n constructor() {\n super(...arguments);\n this.defaultOptions = {\n props: {\n formCheck: 'default' // 'default' | 'inline' | 'switch' | 'inline-switch'\n }\n };\n }\n onChange(value, checked) {\n this.formControl.markAsDirty();\n if (this.props.type === 'array') {\n this.formControl.patchValue(checked ? [...(this.formControl.value || []), value] : [...(this.formControl.value || [])].filter(o => o !== value));\n } else {\n this.formControl.patchValue({\n ...this.formControl.value,\n [value]: checked\n });\n }\n this.formControl.markAsTouched();\n }\n isChecked(option) {\n const value = this.formControl.value;\n return value && (this.props.type === 'array' ? value.indexOf(option.value) !== -1 : value[option.value]);\n }\n}\nFormlyFieldMultiCheckbox.ɵfac = /* @__PURE__ */(() => {\n let ɵFormlyFieldMultiCheckbox_BaseFactory;\n return function FormlyFieldMultiCheckbox_Factory(t) {\n return (ɵFormlyFieldMultiCheckbox_BaseFactory || (ɵFormlyFieldMultiCheckbox_BaseFactory = i0.ɵɵgetInheritedFactory(FormlyFieldMultiCheckbox)))(t || FormlyFieldMultiCheckbox);\n };\n})();\nFormlyFieldMultiCheckbox.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FormlyFieldMultiCheckbox,\n selectors: [[\"formly-field-multicheckbox\"]],\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 0,\n consts: [[\"fieldTypeTemplate\", \"\"], [\"class\", \"form-check\", 3, \"ngClass\", 4, \"ngFor\", \"ngForOf\"], [1, \"form-check\", 3, \"ngClass\"], [\"type\", \"checkbox\", 1, \"form-check-input\", 3, \"id\", \"value\", \"checked\", \"formlyAttributes\", \"disabled\", \"change\"], [1, \"form-check-label\", 3, \"for\"]],\n template: function FormlyFieldMultiCheckbox_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyFieldMultiCheckbox_ng_template_0_Template, 3, 6, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n },\n dependencies: [i1.NgForOf, i1.NgClass, i2.ɵFormlyAttributes, i1.AsyncPipe, i3.FormlySelectOptionsPipe],\n encapsulation: 2,\n changeDetection: 0\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyFieldMultiCheckbox, [{\n type: Component,\n args: [{\n selector: 'formly-field-multicheckbox',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], null, null);\n})();\nclass FormlyBootstrapMultiCheckboxModule {}\nFormlyBootstrapMultiCheckboxModule.ɵfac = function FormlyBootstrapMultiCheckboxModule_Factory(t) {\n return new (t || FormlyBootstrapMultiCheckboxModule)();\n};\nFormlyBootstrapMultiCheckboxModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FormlyBootstrapMultiCheckboxModule\n});\nFormlyBootstrapMultiCheckboxModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule, ReactiveFormsModule, FormlyBootstrapFormFieldModule, FormlySelectModule, FormlyModule.forChild({\n types: [{\n name: 'multicheckbox',\n component: FormlyFieldMultiCheckbox,\n wrappers: ['form-field']\n }]\n })]]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyBootstrapMultiCheckboxModule, [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldMultiCheckbox],\n imports: [CommonModule, ReactiveFormsModule, FormlyBootstrapFormFieldModule, FormlySelectModule, FormlyModule.forChild({\n types: [{\n name: 'multicheckbox',\n component: FormlyFieldMultiCheckbox,\n wrappers: ['form-field']\n }]\n })]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapMultiCheckboxModule, FormlyFieldMultiCheckbox };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i2 from '@angular/forms';\nimport { SelectControlValueAccessor, ReactiveFormsModule } from '@angular/forms';\nimport * as i3 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i4 from '@ngx-formly/core/select';\nimport { FormlySelectModule } from '@ngx-formly/core/select';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\nimport { take } from 'rxjs/operators';\nfunction FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_option_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 8);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const opt_r8 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"ngValue\", opt_r8.value)(\"disabled\", opt_r8.disabled);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", opt_r8.label, \" \");\n }\n}\nfunction FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_ng_template_2_option_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 8);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const child_r14 = ctx.$implicit;\n i0.ɵɵproperty(\"ngValue\", child_r14.value)(\"disabled\", child_r14.disabled);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", child_r14.label, \" \");\n }\n}\nfunction FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"optgroup\", 9);\n i0.ɵɵtemplate(1, FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_ng_template_2_option_1_Template, 2, 3, \"option\", 10);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const opt_r8 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"label\", opt_r8.label);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", opt_r8.group);\n }\n}\nfunction FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_option_1_Template, 2, 3, \"option\", 6)(2, FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_ng_template_2_Template, 2, 2, \"ng-template\", null, 7, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const opt_r8 = ctx.$implicit;\n const _r11 = i0.ɵɵreference(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !opt_r8.group)(\"ngIfElse\", _r11);\n }\n}\nfunction FormlyFieldSelect_ng_template_0_select_0_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_Template, 4, 2, \"ng-container\", 5);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const opts_r6 = ctx.ngIf;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", opts_r6);\n }\n}\nfunction FormlyFieldSelect_ng_template_0_select_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"select\", 3);\n i0.ɵɵtemplate(1, FormlyFieldSelect_ng_template_0_select_0_ng_container_1_Template, 2, 1, \"ng-container\", 4);\n i0.ɵɵpipe(2, \"async\");\n i0.ɵɵpipe(3, \"formlySelectOptions\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"is-invalid\", ctx_r2.showError);\n i0.ɵɵproperty(\"formControl\", ctx_r2.formControl)(\"compareWith\", ctx_r2.props.compareWith)(\"formlyAttributes\", ctx_r2.field);\n i0.ɵɵattribute(\"aria-describedby\", ctx_r2.id + \"-formly-validation-error\")(\"aria-invalid\", ctx_r2.showError);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", i0.ɵɵpipeBind1(2, 8, i0.ɵɵpipeBind2(3, 10, ctx_r2.props.options, ctx_r2.field)));\n }\n}\nfunction FormlyFieldSelect_ng_template_0_ng_template_1_option_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 13);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r16 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngValue\", undefined);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r16.props.placeholder);\n }\n}\nfunction FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_option_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 8);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const opt_r20 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"ngValue\", opt_r20.value)(\"disabled\", opt_r20.disabled);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", opt_r20.label, \" \");\n }\n}\nfunction FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_ng_template_2_option_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 8);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const child_r26 = ctx.$implicit;\n i0.ɵɵproperty(\"ngValue\", child_r26.value)(\"disabled\", child_r26.disabled);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", child_r26.label, \" \");\n }\n}\nfunction FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"optgroup\", 9);\n i0.ɵɵtemplate(1, FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_ng_template_2_option_1_Template, 2, 3, \"option\", 10);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const opt_r20 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"label\", opt_r20.label);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", opt_r20.group);\n }\n}\nfunction FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_option_1_Template, 2, 3, \"option\", 6)(2, FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_ng_template_2_Template, 2, 2, \"ng-template\", null, 7, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const opt_r20 = ctx.$implicit;\n const _r23 = i0.ɵɵreference(3);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !opt_r20.group)(\"ngIfElse\", _r23);\n }\n}\nfunction FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_Template, 4, 2, \"ng-container\", 5);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const opts_r18 = ctx.ngIf;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", opts_r18);\n }\n}\nfunction FormlyFieldSelect_ng_template_0_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"select\", 11);\n i0.ɵɵtemplate(1, FormlyFieldSelect_ng_template_0_ng_template_1_option_1_Template, 2, 2, \"option\", 12)(2, FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_Template, 2, 1, \"ng-container\", 4);\n i0.ɵɵpipe(3, \"async\");\n i0.ɵɵpipe(4, \"formlySelectOptions\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"is-invalid\", ctx_r3.showError);\n i0.ɵɵproperty(\"formControl\", ctx_r3.formControl)(\"compareWith\", ctx_r3.props.compareWith)(\"formlyAttributes\", ctx_r3.field);\n i0.ɵɵattribute(\"aria-describedby\", ctx_r3.id + \"-formly-validation-error\")(\"aria-invalid\", ctx_r3.showError);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.props.placeholder);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", i0.ɵɵpipeBind1(3, 9, i0.ɵɵpipeBind2(4, 11, ctx_r3.props.options, ctx_r3.field)));\n }\n}\nfunction FormlyFieldSelect_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyFieldSelect_ng_template_0_select_0_Template, 4, 13, \"select\", 1)(1, FormlyFieldSelect_ng_template_0_ng_template_1_Template, 5, 14, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const _r4 = i0.ɵɵreference(2);\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.props.multiple)(\"ngIfElse\", _r4);\n }\n}\nclass FormlyFieldSelect extends FieldType {\n constructor(ngZone, hostContainerRef) {\n super(hostContainerRef);\n this.ngZone = ngZone;\n this.defaultOptions = {\n props: {\n compareWith(o1, o2) {\n return o1 === o2;\n }\n }\n };\n }\n // workaround for https://github.com/angular/angular/issues/10010\n /**\n * TODO: Check if this is still needed\n */\n set selectAccessor(s) {\n if (!s) {\n return;\n }\n const writeValue = s.writeValue.bind(s);\n if (s._getOptionId(s.value) === null) {\n writeValue(s.value);\n }\n s.writeValue = value => {\n const id = s._idCounter;\n writeValue(value);\n if (value === null) {\n this.ngZone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n if (id !== s._idCounter && s._getOptionId(value) === null && s._elementRef.nativeElement.selectedIndex !== -1) {\n writeValue(value);\n }\n });\n }\n };\n }\n}\nFormlyFieldSelect.ɵfac = function FormlyFieldSelect_Factory(t) {\n return new (t || FormlyFieldSelect)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ViewContainerRef));\n};\nFormlyFieldSelect.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FormlyFieldSelect,\n selectors: [[\"formly-field-select\"]],\n viewQuery: function FormlyFieldSelect_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(SelectControlValueAccessor, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.selectAccessor = _t.first);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 0,\n consts: [[\"fieldTypeTemplate\", \"\"], [\"class\", \"form-select\", \"multiple\", \"\", 3, \"formControl\", \"compareWith\", \"is-invalid\", \"formlyAttributes\", 4, \"ngIf\", \"ngIfElse\"], [\"singleSelect\", \"\"], [\"multiple\", \"\", 1, \"form-select\", 3, \"formControl\", \"compareWith\", \"formlyAttributes\"], [4, \"ngIf\"], [4, \"ngFor\", \"ngForOf\"], [3, \"ngValue\", \"disabled\", 4, \"ngIf\", \"ngIfElse\"], [\"optgroup\", \"\"], [3, \"ngValue\", \"disabled\"], [3, \"label\"], [3, \"ngValue\", \"disabled\", 4, \"ngFor\", \"ngForOf\"], [1, \"form-select\", 3, \"formControl\", \"compareWith\", \"formlyAttributes\"], [3, \"ngValue\", 4, \"ngIf\"], [3, \"ngValue\"]],\n template: function FormlyFieldSelect_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyFieldSelect_ng_template_0_Template, 3, 2, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n },\n dependencies: [i1.NgIf, i2.SelectMultipleControlValueAccessor, i2.NgControlStatus, i2.FormControlDirective, i3.ɵFormlyAttributes, i1.NgForOf, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.SelectControlValueAccessor, i1.AsyncPipe, i4.FormlySelectOptionsPipe],\n encapsulation: 2,\n changeDetection: 0\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyFieldSelect, [{\n type: Component,\n args: [{\n selector: 'formly-field-select',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () {\n return [{\n type: i0.NgZone\n }, {\n type: i0.ViewContainerRef\n }];\n }, {\n selectAccessor: [{\n type: ViewChild,\n args: [SelectControlValueAccessor]\n }]\n });\n})();\nclass FormlyBootstrapSelectModule {}\nFormlyBootstrapSelectModule.ɵfac = function FormlyBootstrapSelectModule_Factory(t) {\n return new (t || FormlyBootstrapSelectModule)();\n};\nFormlyBootstrapSelectModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FormlyBootstrapSelectModule\n});\nFormlyBootstrapSelectModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule, ReactiveFormsModule, FormlyBootstrapFormFieldModule, FormlySelectModule, FormlyModule.forChild({\n types: [{\n name: 'select',\n component: FormlyFieldSelect,\n wrappers: ['form-field']\n }, {\n name: 'enum',\n extends: 'select'\n }]\n })]]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyBootstrapSelectModule, [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldSelect],\n imports: [CommonModule, ReactiveFormsModule, FormlyBootstrapFormFieldModule, FormlySelectModule, FormlyModule.forChild({\n types: [{\n name: 'select',\n component: FormlyFieldSelect,\n wrappers: ['form-field']\n }, {\n name: 'enum',\n extends: 'select'\n }]\n })]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapSelectModule, FormlyFieldSelect };\n","import * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ViewChild, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i1$1 from '@ngx-formly/core';\nimport { FieldWrapper, FormlyModule } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nconst _c0 = [\"fieldTypeTemplate\"];\nfunction FormlyWrapperAddons_ng_template_0_div_1_i_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"i\", 7);\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r5.props.addonLeft.class);\n }\n}\nfunction FormlyWrapperAddons_ng_template_0_div_1_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r6 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r6.props.addonLeft.text);\n }\n}\nfunction FormlyWrapperAddons_ng_template_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 4);\n i0.ɵɵlistener(\"click\", function FormlyWrapperAddons_ng_template_0_div_1_Template_div_click_0_listener($event) {\n i0.ɵɵrestoreView(_r8);\n const ctx_r7 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r7.addonLeftClick($event));\n });\n i0.ɵɵtemplate(1, FormlyWrapperAddons_ng_template_0_div_1_i_1_Template, 1, 1, \"i\", 5)(2, FormlyWrapperAddons_ng_template_0_div_1_span_2_Template, 2, 1, \"span\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"input-group-btn\", ctx_r2.props.addonLeft.onClick);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.props.addonLeft.class);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.props.addonLeft.text);\n }\n}\nfunction FormlyWrapperAddons_ng_template_0_div_4_i_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"i\", 7);\n }\n if (rf & 2) {\n const ctx_r9 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", ctx_r9.props.addonRight.class);\n }\n}\nfunction FormlyWrapperAddons_ng_template_0_div_4_span_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r10 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r10.props.addonRight.text);\n }\n}\nfunction FormlyWrapperAddons_ng_template_0_div_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r12 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 4);\n i0.ɵɵlistener(\"click\", function FormlyWrapperAddons_ng_template_0_div_4_Template_div_click_0_listener($event) {\n i0.ɵɵrestoreView(_r12);\n const ctx_r11 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r11.addonRightClick($event));\n });\n i0.ɵɵtemplate(1, FormlyWrapperAddons_ng_template_0_div_4_i_1_Template, 1, 1, \"i\", 5)(2, FormlyWrapperAddons_ng_template_0_div_4_span_2_Template, 2, 1, \"span\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"input-group-btn\", ctx_r4.props.addonRight.onClick);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r4.props.addonRight.class);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r4.props.addonRight.text);\n }\n}\nfunction FormlyWrapperAddons_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵtemplate(1, FormlyWrapperAddons_ng_template_0_div_1_Template, 3, 4, \"div\", 2);\n i0.ɵɵelementContainer(2, null, 3);\n i0.ɵɵtemplate(4, FormlyWrapperAddons_ng_template_0_div_4_Template, 3, 4, \"div\", 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"has-validation\", ctx_r0.showError);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.props.addonLeft);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.props.addonRight);\n }\n}\nclass FormlyWrapperAddons extends FieldWrapper {\n constructor(hostContainerRef) {\n super();\n this.hostContainerRef = hostContainerRef;\n }\n set content(templateRef) {\n if (templateRef && this.hostContainerRef) {\n this.hostContainerRef.createEmbeddedView(templateRef);\n }\n }\n addonRightClick($event) {\n this.props.addonRight.onClick?.(this.field, $event);\n }\n addonLeftClick($event) {\n this.props.addonLeft.onClick?.(this.field, $event);\n }\n}\nFormlyWrapperAddons.ɵfac = function FormlyWrapperAddons_Factory(t) {\n return new (t || FormlyWrapperAddons)(i0.ɵɵdirectiveInject(i0.ViewContainerRef));\n};\nFormlyWrapperAddons.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: FormlyWrapperAddons,\n selectors: [[\"formly-wrapper-addons\"]],\n viewQuery: function FormlyWrapperAddons_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.content = _t.first);\n }\n },\n features: [i0.ɵɵInheritDefinitionFeature],\n decls: 2,\n vars: 0,\n consts: [[\"fieldTypeTemplate\", \"\"], [1, \"input-group\"], [\"class\", \"input-group-text\", 3, \"input-group-btn\", \"click\", 4, \"ngIf\"], [\"fieldComponent\", \"\"], [1, \"input-group-text\", 3, \"click\"], [3, \"ngClass\", 4, \"ngIf\"], [4, \"ngIf\"], [3, \"ngClass\"]],\n template: function FormlyWrapperAddons_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, FormlyWrapperAddons_ng_template_0_Template, 5, 4, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n },\n dependencies: [i1.NgIf, i1.NgClass],\n styles: [\"formly-wrapper-form-field .input-group-btn{cursor:pointer}\\n\"],\n encapsulation: 2\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyWrapperAddons, [{\n type: Component,\n args: [{\n selector: 'formly-wrapper-addons',\n encapsulation: ViewEncapsulation.None,\n template: \"\\n
\\n \\n \\n {{ props.addonLeft.text }}\\n
\\n \\n \\n \\n {{ props.addonRight.text }}\\n \\n \\n
\\n\",\n styles: [\"formly-wrapper-form-field .input-group-btn{cursor:pointer}\\n\"]\n }]\n }], function () {\n return [{\n type: i0.ViewContainerRef\n }];\n }, {\n content: [{\n type: ViewChild,\n args: ['fieldTypeTemplate', {\n static: true\n }]\n }]\n });\n})();\nfunction addonsExtension(field) {\n if (!field.props || field.wrappers && field.wrappers.indexOf('addons') !== -1) {\n return;\n }\n if (field.props.addonLeft || field.props.addonRight) {\n field.wrappers = [...(field.wrappers || []), 'addons'];\n }\n}\nclass FormlyBootstrapAddonsModule {}\nFormlyBootstrapAddonsModule.ɵfac = function FormlyBootstrapAddonsModule_Factory(t) {\n return new (t || FormlyBootstrapAddonsModule)();\n};\nFormlyBootstrapAddonsModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FormlyBootstrapAddonsModule\n});\nFormlyBootstrapAddonsModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule, ReactiveFormsModule, FormlyModule.forChild({\n wrappers: [{\n name: 'addons',\n component: FormlyWrapperAddons\n }],\n extensions: [{\n name: 'addons',\n extension: {\n postPopulate: addonsExtension\n }\n }]\n })]]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyBootstrapAddonsModule, [{\n type: NgModule,\n args: [{\n declarations: [FormlyWrapperAddons],\n imports: [CommonModule, ReactiveFormsModule, FormlyModule.forChild({\n wrappers: [{\n name: 'addons',\n component: FormlyWrapperAddons\n }],\n extensions: [{\n name: 'addons',\n extension: {\n postPopulate: addonsExtension\n }\n }]\n })]\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapAddonsModule };\n","import * as i0 from '@angular/core';\nimport { NgModule } from '@angular/core';\nimport { FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\nimport { FormlyBootstrapInputModule } from '@ngx-formly/bootstrap/input';\nimport { FormlyBootstrapTextAreaModule } from '@ngx-formly/bootstrap/textarea';\nimport { FormlyBootstrapRadioModule } from '@ngx-formly/bootstrap/radio';\nimport { FormlyBootstrapCheckboxModule } from '@ngx-formly/bootstrap/checkbox';\nimport { FormlyBootstrapMultiCheckboxModule } from '@ngx-formly/bootstrap/multicheckbox';\nimport { FormlyBootstrapSelectModule } from '@ngx-formly/bootstrap/select';\nimport { FormlyBootstrapAddonsModule } from '@ngx-formly/bootstrap/addons';\nclass FormlyBootstrapModule {}\nFormlyBootstrapModule.ɵfac = function FormlyBootstrapModule_Factory(t) {\n return new (t || FormlyBootstrapModule)();\n};\nFormlyBootstrapModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: FormlyBootstrapModule\n});\nFormlyBootstrapModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[FormlyBootstrapFormFieldModule, FormlyBootstrapInputModule, FormlyBootstrapTextAreaModule, FormlyBootstrapRadioModule, FormlyBootstrapCheckboxModule, FormlyBootstrapMultiCheckboxModule, FormlyBootstrapSelectModule, FormlyBootstrapAddonsModule]]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FormlyBootstrapModule, [{\n type: NgModule,\n args: [{\n imports: [FormlyBootstrapFormFieldModule, FormlyBootstrapInputModule, FormlyBootstrapTextAreaModule, FormlyBootstrapRadioModule, FormlyBootstrapCheckboxModule, FormlyBootstrapMultiCheckboxModule, FormlyBootstrapSelectModule, FormlyBootstrapAddonsModule]\n }]\n }], null, null);\n})();\n\n/*\n * Public API Surface of bootstrap\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapModule };\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { CommonModule, NgIf } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ErrorComponent } from '../../../components';\n\n@Component({\n selector: 'app-generic-error-page',\n standalone: true,\n imports: [NgIf, TranslateModule, ErrorComponent],\n template: ``,\n})\nexport class GenericErrorPageComponent {}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\n\nexport interface Paging {\n pageNumber: number;\n pageSize: number;\n sortBy: string;\n sortOrder: SortDirectionEnum;\n}\nexport enum SortDirectionEnum {\n ASC = 'ASC',\n DESC = 'DESC',\n}\n\nexport enum ViewMode {\n Create,\n Edit,\n View,\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { SortDirectionEnum } from './models/app-shared.model';\n\nexport const CONSTANTS = {\n API: {\n DRIVER_CONFIGURATOR: {\n API_BASE_PATH: '/api/v1/drivers',\n },\n DRIVER_GENERATOR: {\n API_BASE_PATH: '/api/v1/drivers',\n },\n NEWS: {\n API_BASE_PATH: '/api/v1/news',\n },\n SUBSCRIPTION_DETAILS: {\n API_BASE_PATH: '/api/v1/subscriptions/overview',\n },\n SUBSCRIPTION_LIST: {\n API_BASE_PATH: '/api/v1/subscriptions',\n },\n SUBSCRIPTION_LIST_TO_SAVE_SUBSCRIPTIONS: {\n API_BASE_PATH: '/api/v1/subscriptions/configureDeLibVersion',\n },\n VERSION_LIST: {\n API_BASE_PATH: '/api/v1/delib-versions',\n CONFIGURATION_TREE: '/configurationTree',\n VERSIONS: '/versions',\n INFO_TEXT: '/infoText',\n },\n },\n DRIVER_BUILT_GENERATION: {\n SUCCESS: 'REQUEST_BUILT_GENERATION_SUCCESS',\n },\n DRIVER_DELETE: {\n SUCCESS: 'REQUEST_DELETION_SUCCESS',\n },\n DRIVER_HISTORY: {\n PAGE_SIZE: 10,\n },\n DRIVER_LIST: {\n NOTIFICATION_AUTO_HIDE_DURATION: 10000,\n PAGE_SIZE: 10,\n INITIAL_SORT_BY: 'lastModified',\n INITIAL_SORT_ORDER: SortDirectionEnum.DESC,\n },\n DRIVER_REJECT_SERIES_STATUS_CHANGE: {\n SUCCESS: 'REQUEST_REJECT_SERIES_STATUS_CHANGE_SUCCESS',\n },\n DRIVER_REQUEST_SERIES_APPROVAL: {\n SUCCESS: 'REQUEST_SERIES_APPROVAL_SUCCESS',\n },\n DRIVER_SAVE: {\n SUCCESS: 'DRIVER_SAVE_SUCCESS',\n },\n DRIVER_SERIES_STATUS_CHANGE: {\n SUCCESS: 'REQUEST_SERIES_STATUS_CHANGE_SUCCESS',\n },\n FORM: {\n ACTIONS: {\n CANCEL: 'CANCEL',\n EDIT: 'EDIT',\n DELETE: 'DELETE',\n SAVE: 'SAVE',\n GENERIC: {\n PRIMARY: 'PRIMARY',\n SECONDARY: 'SECONDARY',\n },\n RESULTS: {\n PRIMARY_SUCCESS: 'PRIMARY_SUCCESS',\n SECONDARY_SUCCESS: 'SECONDARY_SUCCESS',\n SAVE_SUCCESS: 'SAVE_SUCCESS',\n SAVE_ERROR: 'SAVE_ERROR',\n },\n },\n LAYOUT: {\n RADIO: {\n NUMBER_OF_BUTTONS_FULLSIZE: 5,\n NUMBER_OF_BUTTONS_REDUCED: 4,\n },\n },\n VALIDATION: {\n NAME: {\n MAXLENGTH: 25,\n PATTERN: /^[a-zA-Z0-9]*$/,\n },\n TIME_RASTER_DEVICE_RUN: {\n MAX: 20000,\n MIN: 1,\n PATTERN: '^[0-9]*$',\n },\n TIME_RASTER_GET_SAMPLES: {\n MAX: 20000,\n MIN: 1,\n PATTERN: '^[0-9]*$',\n },\n },\n VIEWMODE: {\n CREATE: 'create',\n EDIT: 'edit',\n VIEW: 'view',\n },\n CONFIGURATION: {\n STATUS: {\n READY_TO_GENERATE: 'READY_TO_GENERATE',\n UNFINISHED_CONFIGURATION: 'UNFINISHED_CONFIGURATION',\n GENERATING: 'GENERATING',\n READY_TO_DOWNLOAD: 'READY_TO_DOWNLOAD',\n WAITING_FOR_SERIES_APPROVAL: 'WAITING_FOR_SERIES_APPROVAL',\n SERIES: 'SERIES',\n },\n SENSOR: [\n {\n inputField: 'componentType',\n fieldsToReset: [\n 'configuration.timeRasterDeviceRun',\n 'configuration.physicalType',\n 'configuration.actuatorType',\n 'configuration.electricalType',\n 'configuration.diagnosticGroundKeying',\n 'configuration.timeRasterGetSamplesForFilter',\n 'configuration.plausibilityCheck',\n ],\n },\n { inputField: 'timeRasterDeviceRun', fieldsToReset: [] },\n {\n inputField: 'physicalType',\n fieldsToReset: [\n 'configuration.electricalType',\n 'configuration.timeRasterGetSamplesForFilter',\n 'configuration.plausibilityCheck',\n ],\n },\n { inputField: 'electricalType', fieldsToReset: [] },\n {\n inputField: 'timeRasterGetSamplesForFilter',\n fieldsToReset: [],\n },\n { inputField: 'plausibilityCheck', fieldsToReset: [] },\n ],\n ACTUATOR: [\n {\n inputField: 'componentType',\n fieldsToReset: [\n 'configuration.timeRasterDeviceRun',\n 'configuration.physicalType',\n 'configuration.actuatorType',\n 'configuration.electricalType',\n 'configuration.diagnosticGroundKeying',\n 'configuration.timeRasterGetSamplesForFilter',\n 'configuration.plausibilityCheck',\n ],\n },\n { inputField: 'timeRasterDeviceRun', fieldsToReset: [] },\n {\n inputField: 'actuatorType',\n fieldsToReset: ['configuration.diagnosticGroundKeying'],\n },\n {\n inputField: 'electricalType',\n fieldsToReset: ['configuration.diagnosticGroundKeying'],\n },\n { inputField: 'diagnosticGroundKeying', fieldsToReset: [] },\n ],\n },\n PAYLOAD: {\n SUFFIX_CHAR: '_',\n },\n },\n REGEX: {\n DELIB: {\n PATTERN: /^.*\\//,\n },\n },\n // DELib configuration\n DELIB: {\n FORM: {\n ACTIONS: {\n CANCEL: 'CANCEL',\n EDIT: 'EDIT',\n SAVE: 'SAVE',\n RESULTS: {\n SAVE_SUCCESS: 'DELIB_SAVE_SUCCESS',\n SAVE_ERROR: 'SAVE_ERROR',\n },\n },\n FIELDS: {\n DELIB_VERSION: {\n VALIDATION: {\n MAXLENGTH: 100,\n },\n },\n RQMS_ID: {\n VALIDATION: {\n MAXLENGTH: 100,\n },\n },\n },\n },\n VERSION_LIST: {\n PAGE_NUMBER: 1,\n PAGE_SIZE: 10,\n INITIAL_SORT_BY: 'createdOn',\n INITIAL_SORT_ORDER: SortDirectionEnum.DESC,\n NOTIFICATION_AUTO_HIDE_DURATION: 10000,\n FETCH_DATA_FROM_GIT: { SUCCESS: 'REQUEST_FETCH_DATA_FROM_GIT_SUCCESS' },\n },\n },\n // News configuration\n NEWS: {\n ACTIONS: {\n CANCEL: 'CANCEL',\n SAVE: 'SAVE',\n RESULTS: {\n DELETE_SUCCESS: 'NEWS_DELETE_SUCCESS',\n SAVE_SUCCESS: 'NEWS_SAVE_SUCCESS',\n SAVE_WARNING: 'NEWS_SAVE_WARNING',\n SAVE_ERROR: 'SAVE_ERROR',\n },\n },\n FORM: {\n FIELDS: {\n NEWS_ICON: {\n ACCEPT: '.png,.svg',\n VALIDATION: {\n PATTERN: /\\.(png|svg)$/i,\n },\n },\n HEADLINE: {\n VALIDATION: {\n MAXLENGTH: 50,\n },\n },\n DETAIL_DESC: {\n VALIDATION: {\n MAXLENGTH: 10000,\n },\n },\n SHORT_DESC: {\n VALIDATION: {\n MAXLENGTH: 255,\n },\n },\n },\n },\n NEWS_LIST: {\n PAGE_NUMBER: 1,\n PAGE_SIZE: 10,\n },\n },\n SHARED: {\n DATE_FORMAT: {\n DATE: 'MMM d, y',\n DATE_TIME: 'MMM d, y, h:mm a',\n },\n FORM: {\n DROP_DOWN: {\n EMPTY_ENTRY: 'EMPTY_ENTRY',\n },\n },\n },\n SUBSCRIPTION_LIST: {\n PAGE_NUMBER: 1,\n PAGE_SIZE: 10,\n },\n SUBSCRIPTIONS: {\n FORM: {\n ACTIONS: {\n RESULTS: {\n SAVE_SUCCESS: 'SUBSCRIPTIONS_SAVE_SUCCESS',\n },\n },\n },\n },\n SUBSCRIPTION_LIST_TO_ADD_SUBSCRIPTIONS: {\n PAGE_NUMBER: 1,\n PAGE_SIZE: 0,\n INITIAL_SORT_BY: 'id',\n INITIAL_SORT_ORDER: SortDirectionEnum.ASC,\n MAX_DROPDOWN_NUMBER: 10,\n MIN_DROPDOWN_NUMBER: 1,\n },\n};\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { Action } from '@ngrx/store';\nimport { SubscriptionDetail } from '../../shared/models/subscriptionView.model';\n\nexport const FETCH_SUBSCRIPTION = '[ADDL Subscription] Fetch subscription';\nexport const SET_SUBSCRIPTION = '[ADDL Subscription] Set subscription';\n\nexport class FetchSubscription implements Action {\n readonly type = FETCH_SUBSCRIPTION;\n}\n\nexport class SetSubscription implements Action {\n readonly type = SET_SUBSCRIPTION;\n\n constructor(public payload: SubscriptionDetail) {}\n}\n\nexport type SubscriptionActions = FetchSubscription | SetSubscription;\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\n\nexport const dynamicFormConstants = {\n formly: {\n inputType: {\n mapping: [\n { shemaType: 'text', uiComponent: 'app-addl-textfield' },\n { shemaType: 'number', uiComponent: 'app-addl-number' },\n { shemaType: 'radio', uiComponent: 'app-addl-radio' },\n ],\n dataType: {\n number: 'number',\n text: 'text',\n },\n },\n },\n};\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nexport interface DynamicFormRaw {\n $id: string;\n $schema: string;\n allOf?: ConditionalProperty[];\n properties: {\n [key: string]: DriverProperty;\n };\n required: string[];\n title: string;\n type: SchemaType;\n unevaluatedProperties?: boolean;\n validationDependency?: SchemaValidationDependency[];\n}\n\nexport interface ConditionalProperty {\n if: {\n properties: {\n [key: string]: {\n const: string;\n };\n };\n };\n then: {\n properties: {\n [key: string]: DriverProperty;\n };\n };\n}\n\nexport interface DriverProperty {\n type: DataType;\n enum?: string[];\n widget: Widget;\n}\n\nexport interface Widget {\n inputType: InputType;\n heading?: string;\n position?: number;\n}\n\nexport interface SchemaValidationDependency {\n leftOperandPropertyName: string;\n comparisonOperator: ComparisonOperator;\n rightOperandPropertyName: string;\n}\n\nexport enum ComparisonOperator {\n equalTo = 'equalTo',\n greaterThan = 'greaterThan',\n greaterThanOrEqualTo = 'greaterThanOrEqualTo',\n lessThan = 'lessThan',\n lessThanOrEqualTo = 'lessThanOrEqualTo',\n notEqualTo = 'notEqualTo',\n}\n\nexport enum DataType {\n NUMBER = 'number',\n STRING = 'string',\n}\n\nexport enum InputType {\n INPUT = 'input',\n RADIO = 'radio',\n}\n\nexport enum SchemaType {\n OBJECT = 'object',\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { map, Observable } from 'rxjs';\nimport { AppState } from 'src/app/shared/data/state/app.state.model';\nimport { LoggerService } from 'src/app/shared/services/logger.service';\nimport { CONSTANTS } from '../constants';\nimport { Paging, SortDirectionEnum } from '../models/app-shared.model';\nimport { DriverStatus, UsedDriverStatuses } from '../models/driver-status';\nimport { Driver, DriverListResult } from '../models/driver.model';\nimport { Filter } from '../models/filter.model';\n\n/**\n * DriverApiService for communication with Driver configurator\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DriverApiService {\n #baseUrlConfigurator: string = '';\n #baseUrlGenerator: string = '';\n #queryParamsForGetDrivers: Paging = {\n pageNumber: 1,\n pageSize: CONSTANTS.DRIVER_LIST.PAGE_SIZE,\n sortBy: CONSTANTS.DRIVER_LIST.INITIAL_SORT_BY,\n sortOrder: CONSTANTS.DRIVER_LIST.INITIAL_SORT_ORDER,\n };\n\n filter: Filter | null = null;\n\n constructor(\n private http: HttpClient,\n private logger: LoggerService,\n private store$: Store\n ) {\n this.store$\n .select(\n (state) =>\n state.subscription.subscription.appConfiguration.customConfig?.API\n ?.baseUrl\n )\n .subscribe(\n (data) =>\n (this.#baseUrlConfigurator =\n data + CONSTANTS.API.DRIVER_CONFIGURATOR.API_BASE_PATH)\n );\n\n this.store$\n .select(\n (state) =>\n state.subscription.subscription.appConfiguration.customConfig?.API\n ?.baseUrlGenerator\n )\n .subscribe(\n (data) =>\n (this.#baseUrlGenerator =\n data + CONSTANTS.API.DRIVER_CONFIGURATOR.API_BASE_PATH)\n );\n\n this.logger.log(\n 'ArtifactService.constructor: baseUrl = ',\n `${this.#baseUrlGenerator}`\n );\n }\n\n get baseUrlConfigurator() {\n return this.#baseUrlConfigurator;\n }\n\n get baseUrlGenerator() {\n return this.#baseUrlGenerator;\n }\n\n /**\n * POST request to the backend for creating of a driver\n * @param driver\n */\n createDriver(driver: any) {\n return this.http.post(this.baseUrlConfigurator, driver, {\n observe: 'response',\n });\n }\n\n /**\n * DELETE request to the backend for deleting the driver with the given id\n * @param driverId\n */\n deleteDriver(driverId: string) {\n return this.http.delete(this.baseUrlConfigurator + '/' + driverId, {\n observe: 'response',\n });\n }\n\n /**\n * GET request for retrieving the driver with the given id\n * @param id\n */\n loadDriver(id: string): Observable {\n return this.http.get(this.baseUrlConfigurator + '/' + id);\n }\n\n loadDrivers(): Observable;\n loadDrivers(queryParams: {\n pageNumber?: number;\n pageSize?: number;\n sortBy?: string;\n sortOrder?: SortDirectionEnum;\n }): Observable;\n\n /**\n * GET request to load all drivers on the given page\n * @param queryParams\n */\n loadDrivers(queryParams?: {\n pageNumber?: number;\n pageSize?: number;\n sortBy?: string;\n sortOrder?: SortDirectionEnum;\n }): Observable {\n let params = {};\n\n if (queryParams) {\n Object.assign(this.#queryParamsForGetDrivers, queryParams);\n }\n Object.assign(params, this.#queryParamsForGetDrivers);\n if (this.filter) {\n Object.assign(params, {\n filter: JSON.stringify(this.filter.filters),\n });\n }\n return this.http.get(this.baseUrlConfigurator, {\n params: params,\n });\n }\n\n /**\n * PUT request for updating a driver with given id and payload\n * @param driverId\n * @param driver\n */\n updateDriver(driverId: string, driver: any) {\n return this.http.put(this.baseUrlConfigurator + '/' + driverId, driver, {\n observe: 'response',\n });\n }\n\n /**\n * PATCH request for updating the status of a driver\n * @param id driver id\n * @param status\n */\n updateDriverStatus(id: string, status: DriverStatus) {\n return this.http.patch(this.baseUrlConfigurator + '/' + id + '/series', {\n status: status,\n });\n }\n\n /**\n * Checks whether a driver name already exists\n * @param driverName\n */\n isDriverNameUnique(driverName: string): Observable {\n return this.http\n .get<{ exists: boolean }>(\n this.baseUrlConfigurator + '/existence/' + driverName\n )\n .pipe(map((response) => !response.exists));\n }\n\n /**\n * Gets all possible statuses for driver\n */\n loadStatus(): Observable {\n return this.http.get(\n this.baseUrlConfigurator + '/statuses'\n );\n }\n\n /**\n * PUT request to build or rebuild a driver\n * @param id driver id\n * @param queryParams contains isRebuild boolean indicating whether build or rebuild is needed\n */\n startBuildOrRebuildDriver(\n id: string,\n queryParams: {\n isRebuild: boolean;\n }\n ) {\n return this.http.put(\n this.#baseUrlGenerator + '/' + id,\n {},\n {\n params: queryParams,\n }\n );\n }\n}\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { Injectable } from '@angular/core';\nimport { AbstractControl, FormControl } from '@angular/forms';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { FormlyValueChangeEvent } from '@ngx-formly/core/lib/models';\nimport { BehaviorSubject, filter, Observable, tap } from 'rxjs';\nimport { dynamicFormConstants } from '../dynamic-form/constants';\nimport {\n ComparisonOperator,\n DynamicFormRaw,\n SchemaValidationDependency,\n} from '../models/dynamic-form-raw.model';\nimport { DriverApiService } from './driver-api.service';\n\n/**\n * Service for creation of the dynamic form\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class DynamicFormService {\n // Constants\n inputTypes = dynamicFormConstants.formly.inputType;\n fieldInfoTextIsShownFor$ = new BehaviorSubject<{\n infoTextKey: string;\n fieldHeading: string;\n }>({ infoTextKey: '', fieldHeading: '' });\n // Used to evaluate which fields are active (fields are activated step by step)\n activeTillDisplayOrder$ = new BehaviorSubject(1);\n\n // Initial used to indentify whether it is edit mode or not\n isEditMode$ = new BehaviorSubject(false);\n\n constructor(private driverApi: DriverApiService) {}\n\n // Get and set value to identify whether it is edit mode or not\n getValue(): Observable {\n return this.isEditMode$.asObservable();\n }\n setValue(isEditMode$: boolean): void {\n this.isEditMode$.next(isEditMode$);\n }\n\n /**\n * Transforms a configurationTree, which defines the form for creating a device driver,\n * into the data structure the formly library expects\n * @param configurationTree\n * @returns FormlyFieldConfig[]\n */\n dynamicFormRawToFormlyFieldConfig(\n configurationTree: DynamicFormRaw\n ): FormlyFieldConfig[] {\n let formlyFields: FormlyFieldConfig[] = [];\n\n // Creates a FormlyField for each entry in configurationTree.properties\n Object.entries(configurationTree.properties).forEach(\n ([propertyKey, properties]) => {\n let formField: FormlyFieldConfig = { props: {} };\n\n formField.key =\n propertyKey === 'name' ? propertyKey : `configuration.${propertyKey}`;\n this._mapProperties(formField, properties);\n\n /* If it is edit mode don't display the field name */\n if (propertyKey === 'name' && this.isEditMode$.value) {\n formField.expressions = {\n 'props.disabled': `model.name`,\n 'hide': `model.name`,\n };\n }\n\n // Async validators\n if (formField.key === 'name' && !this.isEditMode$.value) {\n formField = {\n ...formField,\n asyncValidators: {\n uniqueDriverName: {\n expression: (control: AbstractControl) => {\n return this.driverApi.isDriverNameUnique(control.value);\n },\n },\n },\n };\n }\n\n // Activate form fields step by step using onInit hook\n const hooks = this._addHooks();\n formField = {\n ...formField,\n hooks,\n };\n\n formlyFields.push(formField);\n }\n );\n\n // Create form fields by configurationTree.allOf (conditional properties)\n //iterates through {if then} objects in the allOf list of the configurationTree\n configurationTree.allOf?.forEach((conditionalProperty) => {\n //foreach {if then} tuple iterate through \"then.properties\"\n Object.entries(conditionalProperty.then.properties).forEach(\n //e.g. propertyKey - diagnosticGroundKeying; property - DriverProperty object //ToDo rename properties to property, cause to one key there is only one DriverProperty\n ([propertyKey, properties]) => {\n let formField: FormlyFieldConfig = { props: {} };\n\n formField.key = `configuration.${propertyKey}`;\n this._mapProperties(formField, properties);\n\n // Setup conditional behaviour\n let controllingFieldName: string = Object.keys(\n conditionalProperty.if.properties\n )[0]; //e.g. component type\n console.log(controllingFieldName);\n\n let controllingFieldValue =\n conditionalProperty.if.properties[controllingFieldName].const; //e.g. Sensor\n formField.expressions = {\n 'props.disabled': `model.configuration.${controllingFieldName} !== \"${controllingFieldValue}\"`,\n 'hide': `model.configuration.${controllingFieldName} !== \"${controllingFieldValue}\"`,\n }; //check whether the model.configuration (the form value) is set to the controllingFieldValue,\n //e.g. if the component type is set to sensor\n //if that is not the case, use formly props.disabled and hide not to show that option\n\n // Activate form fields step by step using onInit hook\n const hooks = this._addHooks();\n formField = {\n ...formField,\n hooks,\n };\n\n formlyFields.push(formField);\n }\n );\n });\n // Add custom validation to form fields by configurationTree.validationDepenency\n configurationTree.validationDependency?.forEach(\n (field1Validation: SchemaValidationDependency) => {\n // Find formly field index\n const field1Index = formlyFields.findIndex(\n (element) =>\n element.key ===\n 'configuration.' + field1Validation.leftOperandPropertyName\n );\n\n // Add validation to formly field\n formlyFields[field1Index] = {\n ...formlyFields[field1Index],\n ...this.getValidationConfiguration(field1Validation),\n };\n\n // Find formly field index of 2nd field\n const field2Index = formlyFields.findIndex(\n (element) =>\n element.key ===\n 'configuration.' + field1Validation.rightOperandPropertyName\n );\n // Create SchemaValidationDependency object for 2nd field (required for adding the actual validation config)\n const field2comparisonOperator: ComparisonOperator | null =\n this.getOppositeComparisonOperator(\n field1Validation.comparisonOperator\n );\n if (field2comparisonOperator) {\n const field2Validation: SchemaValidationDependency = {\n leftOperandPropertyName: field1Validation.rightOperandPropertyName,\n comparisonOperator: field2comparisonOperator,\n rightOperandPropertyName: field1Validation.leftOperandPropertyName,\n };\n // Add validation to 2nd formly field\n formlyFields[field2Index] = {\n ...formlyFields[field2Index],\n ...this.getValidationConfiguration(field2Validation),\n };\n }\n }\n );\n\n const sortedFields = [...formlyFields].sort(this.compareDisplayOrder);\n const maxDisplayOrder =\n sortedFields[sortedFields.length - 1].props!['displayOrder'];\n if (this.isEditMode$.value) {\n this.activeTillDisplayOrder$.next(maxDisplayOrder);\n }\n return sortedFields;\n }\n\n /**\n * OnInit hook for activation of form fields step by step\n */\n _addHooks = () => {\n return {\n //onInit subscribe to the options.fieldChanges and check the emitted event\n onInit: (field: FormlyFieldConfig) => {\n return field.options!.fieldChanges?.pipe(\n filter((event: FormlyValueChangeEvent) => {\n return (\n event.type === 'valueChanges' &&\n event.field === field &&\n event.value !== undefined &&\n event.value !== null\n );\n }),\n tap((event: FormlyValueChangeEvent) => {\n // Don't set activeTillDisplayOrder$ to a lower value(1) than already reached\n // if the name is changed, don't reset the content\n if (\n !(\n this.activeTillDisplayOrder$.getValue() >\n event.field.props!['displayOrder'] &&\n event.field.props!['displayOrder'] == 1\n )\n ) {\n this.activeTillDisplayOrder$.next(\n event.field.props!['displayOrder'] + 1\n );\n }\n })\n );\n },\n };\n };\n\n compareDisplayOrder(field1: FormlyFieldConfig, field2: FormlyFieldConfig) {\n if (field1.props!['displayOrder'] < field2.props!['displayOrder']) {\n return -1;\n }\n if (field1.props!['displayOrder'] > field2.props!['displayOrder']) {\n return 1;\n }\n return 0;\n }\n\n compareValues(\n leftOperandValue: number,\n comparisonOperator: ComparisonOperator,\n rightOperandValue: number\n ): boolean {\n switch (comparisonOperator) {\n case ComparisonOperator.equalTo:\n return leftOperandValue === rightOperandValue;\n case ComparisonOperator.greaterThan:\n return leftOperandValue > rightOperandValue;\n case ComparisonOperator.greaterThanOrEqualTo:\n return leftOperandValue >= rightOperandValue;\n case ComparisonOperator.lessThan:\n return leftOperandValue < rightOperandValue;\n case ComparisonOperator.lessThanOrEqualTo:\n return leftOperandValue <= rightOperandValue;\n case ComparisonOperator.notEqualTo:\n return leftOperandValue !== rightOperandValue;\n default:\n return true;\n }\n }\n\n getOppositeComparisonOperator = (\n comparisonOperator: ComparisonOperator\n ): ComparisonOperator | null => {\n switch (comparisonOperator) {\n case ComparisonOperator.equalTo:\n return ComparisonOperator.notEqualTo;\n case ComparisonOperator.greaterThan:\n return ComparisonOperator.lessThan;\n case ComparisonOperator.greaterThanOrEqualTo:\n return ComparisonOperator.lessThanOrEqualTo;\n case ComparisonOperator.lessThan:\n return ComparisonOperator.greaterThan;\n case ComparisonOperator.lessThanOrEqualTo:\n return ComparisonOperator.greaterThanOrEqualTo;\n case ComparisonOperator.notEqualTo:\n return ComparisonOperator.equalTo;\n default:\n return null;\n }\n };\n\n getValidationConfiguration = (\n customValidation: SchemaValidationDependency\n ) => {\n return {\n validators: {\n customValidation: {\n expression: (control: FormControl) => {\n const leftOperandValue = control.value;\n const rightOperandValue =\n control.parent?.value[customValidation.rightOperandPropertyName];\n return (\n !leftOperandValue ||\n !rightOperandValue ||\n this.compareValues(\n leftOperandValue,\n customValidation.comparisonOperator,\n rightOperandValue\n )\n );\n },\n },\n },\n };\n };\n\n /**\n * Mapping of configurationTree properties to formly properties\n * @param formField\n * @param properties\n */\n _mapProperties = (formField: FormlyFieldConfig, properties: object | []) => {\n const isBoolean = (type: string): boolean =>\n type.indexOf('boolean') !== -1 || type === 'boolean';\n\n const processEnumProperty = (value: string[]) => {\n formField.props!.options = value\n .filter((element) => element !== null)\n .map((element) => {\n return {\n value: element,\n label: element,\n };\n });\n };\n\n const processInputTypeProperty = (value: string) => {\n const customComponentName = this.inputTypes.mapping.find(\n (entry) => entry?.shemaType === value\n );\n\n formField.type = customComponentName?.uiComponent ?? 'text';\n\n if (isBoolean(formField.props?.type!)) {\n formField.props!.options = [\n { value: true, label: 'Yes' },\n { value: false, label: 'No' },\n ];\n }\n };\n\n const processWidgetProperty = (value: object) => {\n this._mapProperties(formField, value);\n };\n\n Object.entries(properties).forEach(([key, value]) => {\n switch (key) {\n case 'enum':\n processEnumProperty(value);\n break;\n case 'inputType':\n processInputTypeProperty(value);\n break;\n case 'maximum':\n formField.props!.max = value;\n break;\n case 'minimum':\n formField.props!.min = value;\n break;\n case 'pattern':\n formField.props!.pattern = new RegExp(value);\n break;\n case 'widget':\n processWidgetProperty(value);\n break;\n default:\n formField.props![key] = value;\n break;\n }\n });\n };\n\n showInfoText(infoTextKey: string, fieldHeading: string) {\n this.fieldInfoTextIsShownFor$.next({ infoTextKey, fieldHeading });\n }\n}\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Component, ViewEncapsulation, ChangeDetectionStrategy, Optional, Inject, Input, ContentChildren, Directive, NgModule } from '@angular/core';\nimport { setLines, MatLine, MatLineModule, MatCommonModule } from '@angular/material/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport * as i1 from '@angular/cdk/bidi';\n\n/**\n * Class for determining, from a list of tiles, the (row, col) position of each of those tiles\n * in the grid. This is necessary (rather than just rendering the tiles in normal document flow)\n * because the tiles can have a rowspan.\n *\n * The positioning algorithm greedily places each tile as soon as it encounters a gap in the grid\n * large enough to accommodate it so that the tiles still render in the same order in which they\n * are given.\n *\n * The basis of the algorithm is the use of an array to track the already placed tiles. Each\n * element of the array corresponds to a column, and the value indicates how many cells in that\n * column are already occupied; zero indicates an empty cell. Moving \"down\" to the next row\n * decrements each value in the tracking array (indicating that the column is one cell closer to\n * being free).\n *\n * @docs-private\n */\nconst _c0 = [\"*\"];\nconst _c1 = [[[\"\", \"mat-grid-avatar\", \"\"], [\"\", \"matGridAvatar\", \"\"]], [[\"\", \"mat-line\", \"\"], [\"\", \"matLine\", \"\"]], \"*\"];\nconst _c2 = [\"[mat-grid-avatar], [matGridAvatar]\", \"[mat-line], [matLine]\", \"*\"];\nconst _c3 = \".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-grid-tile-header,.mat-grid-tile .mat-grid-tile-footer{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-header>*,.mat-grid-tile .mat-grid-tile-footer>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-tile-header.mat-2-line,.mat-grid-tile .mat-grid-tile-footer.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}.mat-grid-tile-header{font-size:var(--mat-grid-list-tile-header-primary-text-size)}.mat-grid-tile-header .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:var(--mat-grid-list-tile-header-secondary-text-size)}.mat-grid-tile-footer{font-size:var(--mat-grid-list-tile-footer-primary-text-size)}.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:var(--mat-grid-list-tile-footer-secondary-text-size)}.mat-grid-tile-content{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}\";\nclass TileCoordinator {\n constructor() {\n /** Index at which the search for the next gap will start. */\n this.columnIndex = 0;\n /** The current row index. */\n this.rowIndex = 0;\n }\n /** Gets the total number of rows occupied by tiles */\n get rowCount() {\n return this.rowIndex + 1;\n }\n /**\n * Gets the total span of rows occupied by tiles.\n * Ex: A list with 1 row that contains a tile with rowspan 2 will have a total rowspan of 2.\n */\n get rowspan() {\n const lastRowMax = Math.max(...this.tracker);\n // if any of the tiles has a rowspan that pushes it beyond the total row count,\n // add the difference to the rowcount\n return lastRowMax > 1 ? this.rowCount + lastRowMax - 1 : this.rowCount;\n }\n /**\n * Updates the tile positions.\n * @param numColumns Amount of columns in the grid.\n * @param tiles Tiles to be positioned.\n */\n update(numColumns, tiles) {\n this.columnIndex = 0;\n this.rowIndex = 0;\n this.tracker = new Array(numColumns);\n this.tracker.fill(0, 0, this.tracker.length);\n this.positions = tiles.map(tile => this._trackTile(tile));\n }\n /** Calculates the row and col position of a tile. */\n _trackTile(tile) {\n // Find a gap large enough for this tile.\n const gapStartIndex = this._findMatchingGap(tile.colspan);\n // Place tile in the resulting gap.\n this._markTilePosition(gapStartIndex, tile);\n // The next time we look for a gap, the search will start at columnIndex, which should be\n // immediately after the tile that has just been placed.\n this.columnIndex = gapStartIndex + tile.colspan;\n return new TilePosition(this.rowIndex, gapStartIndex);\n }\n /** Finds the next available space large enough to fit the tile. */\n _findMatchingGap(tileCols) {\n if (tileCols > this.tracker.length && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`mat-grid-list: tile with colspan ${tileCols} is wider than ` + `grid with cols=\"${this.tracker.length}\".`);\n }\n // Start index is inclusive, end index is exclusive.\n let gapStartIndex = -1;\n let gapEndIndex = -1;\n // Look for a gap large enough to fit the given tile. Empty spaces are marked with a zero.\n do {\n // If we've reached the end of the row, go to the next row.\n if (this.columnIndex + tileCols > this.tracker.length) {\n this._nextRow();\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n continue;\n }\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n // If there are no more empty spaces in this row at all, move on to the next row.\n if (gapStartIndex == -1) {\n this._nextRow();\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n continue;\n }\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n // If a gap large enough isn't found, we want to start looking immediately after the current\n // gap on the next iteration.\n this.columnIndex = gapStartIndex + 1;\n // Continue iterating until we find a gap wide enough for this tile. Since gapEndIndex is\n // exclusive, gapEndIndex is 0 means we didn't find a gap and should continue.\n } while (gapEndIndex - gapStartIndex < tileCols || gapEndIndex == 0);\n // If we still didn't manage to find a gap, ensure that the index is\n // at least zero so the tile doesn't get pulled out of the grid.\n return Math.max(gapStartIndex, 0);\n }\n /** Move \"down\" to the next row. */\n _nextRow() {\n this.columnIndex = 0;\n this.rowIndex++;\n // Decrement all spaces by one to reflect moving down one row.\n for (let i = 0; i < this.tracker.length; i++) {\n this.tracker[i] = Math.max(0, this.tracker[i] - 1);\n }\n }\n /**\n * Finds the end index (exclusive) of a gap given the index from which to start looking.\n * The gap ends when a non-zero value is found.\n */\n _findGapEndIndex(gapStartIndex) {\n for (let i = gapStartIndex + 1; i < this.tracker.length; i++) {\n if (this.tracker[i] != 0) {\n return i;\n }\n }\n // The gap ends with the end of the row.\n return this.tracker.length;\n }\n /** Update the tile tracker to account for the given tile in the given space. */\n _markTilePosition(start, tile) {\n for (let i = 0; i < tile.colspan; i++) {\n this.tracker[start + i] = tile.rowspan;\n }\n }\n}\n/**\n * Simple data structure for tile position (row, col).\n * @docs-private\n */\nclass TilePosition {\n constructor(row, col) {\n this.row = row;\n this.col = col;\n }\n}\n\n/**\n * Injection token used to provide a grid list to a tile and to avoid circular imports.\n * @docs-private\n */\nconst MAT_GRID_LIST = new InjectionToken('MAT_GRID_LIST');\nclass MatGridTile {\n constructor(_element, _gridList) {\n this._element = _element;\n this._gridList = _gridList;\n this._rowspan = 1;\n this._colspan = 1;\n }\n /** Amount of rows that the grid tile takes up. */\n get rowspan() {\n return this._rowspan;\n }\n set rowspan(value) {\n this._rowspan = Math.round(coerceNumberProperty(value));\n }\n /** Amount of columns that the grid tile takes up. */\n get colspan() {\n return this._colspan;\n }\n set colspan(value) {\n this._colspan = Math.round(coerceNumberProperty(value));\n }\n /**\n * Sets the style of the grid-tile element. Needs to be set manually to avoid\n * \"Changed after checked\" errors that would occur with HostBinding.\n */\n _setStyle(property, value) {\n this._element.nativeElement.style[property] = value;\n }\n static {\n this.ɵfac = function MatGridTile_Factory(t) {\n return new (t || MatGridTile)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(MAT_GRID_LIST, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatGridTile,\n selectors: [[\"mat-grid-tile\"]],\n hostAttrs: [1, \"mat-grid-tile\"],\n hostVars: 2,\n hostBindings: function MatGridTile_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"rowspan\", ctx.rowspan)(\"colspan\", ctx.colspan);\n }\n },\n inputs: {\n rowspan: \"rowspan\",\n colspan: \"colspan\"\n },\n exportAs: [\"matGridTile\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 2,\n vars: 0,\n consts: [[1, \"mat-grid-tile-content\"]],\n template: function MatGridTile_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n },\n styles: [\".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-grid-tile-header,.mat-grid-tile .mat-grid-tile-footer{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-header>*,.mat-grid-tile .mat-grid-tile-footer>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-tile-header.mat-2-line,.mat-grid-tile .mat-grid-tile-footer.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}.mat-grid-tile-header{font-size:var(--mat-grid-list-tile-header-primary-text-size)}.mat-grid-tile-header .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:var(--mat-grid-list-tile-header-secondary-text-size)}.mat-grid-tile-footer{font-size:var(--mat-grid-list-tile-footer-primary-text-size)}.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:var(--mat-grid-list-tile-footer-secondary-text-size)}.mat-grid-tile-content{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatGridTile, [{\n type: Component,\n args: [{\n selector: 'mat-grid-tile',\n exportAs: 'matGridTile',\n host: {\n 'class': 'mat-grid-tile',\n // Ensures that the \"rowspan\" and \"colspan\" input value is reflected in\n // the DOM. This is needed for the grid-tile harness.\n '[attr.rowspan]': 'rowspan',\n '[attr.colspan]': 'colspan'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n template: \"
\\n \\n
\\n\",\n styles: [\".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-grid-tile-header,.mat-grid-tile .mat-grid-tile-footer{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-header>*,.mat-grid-tile .mat-grid-tile-footer>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-tile-header.mat-2-line,.mat-grid-tile .mat-grid-tile-footer.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}.mat-grid-tile-header{font-size:var(--mat-grid-list-tile-header-primary-text-size)}.mat-grid-tile-header .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:var(--mat-grid-list-tile-header-secondary-text-size)}.mat-grid-tile-footer{font-size:var(--mat-grid-list-tile-footer-primary-text-size)}.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:var(--mat-grid-list-tile-footer-secondary-text-size)}.mat-grid-tile-content{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}\"]\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MAT_GRID_LIST]\n }]\n }], {\n rowspan: [{\n type: Input\n }],\n colspan: [{\n type: Input\n }]\n });\n})();\nclass MatGridTileText {\n constructor(_element) {\n this._element = _element;\n }\n ngAfterContentInit() {\n setLines(this._lines, this._element);\n }\n static {\n this.ɵfac = function MatGridTileText_Factory(t) {\n return new (t || MatGridTileText)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatGridTileText,\n selectors: [[\"mat-grid-tile-header\"], [\"mat-grid-tile-footer\"]],\n contentQueries: function MatGridTileText_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatLine, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._lines = _t);\n }\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c2,\n decls: 4,\n vars: 0,\n consts: [[1, \"mat-grid-list-text\"]],\n template: function MatGridTileText_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c1);\n i0.ɵɵprojection(0);\n i0.ɵɵelementStart(1, \"div\", 0);\n i0.ɵɵprojection(2, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵprojection(3, 2);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatGridTileText, [{\n type: Component,\n args: [{\n selector: 'mat-grid-tile-header, mat-grid-tile-footer',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n template: \"\\n
\\n\\n\"\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n _lines: [{\n type: ContentChildren,\n args: [MatLine, {\n descendants: true\n }]\n }]\n });\n})();\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nclass MatGridAvatarCssMatStyler {\n static {\n this.ɵfac = function MatGridAvatarCssMatStyler_Factory(t) {\n return new (t || MatGridAvatarCssMatStyler)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatGridAvatarCssMatStyler,\n selectors: [[\"\", \"mat-grid-avatar\", \"\"], [\"\", \"matGridAvatar\", \"\"]],\n hostAttrs: [1, \"mat-grid-avatar\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatGridAvatarCssMatStyler, [{\n type: Directive,\n args: [{\n selector: '[mat-grid-avatar], [matGridAvatar]',\n host: {\n 'class': 'mat-grid-avatar'\n },\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nclass MatGridTileHeaderCssMatStyler {\n static {\n this.ɵfac = function MatGridTileHeaderCssMatStyler_Factory(t) {\n return new (t || MatGridTileHeaderCssMatStyler)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatGridTileHeaderCssMatStyler,\n selectors: [[\"mat-grid-tile-header\"]],\n hostAttrs: [1, \"mat-grid-tile-header\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatGridTileHeaderCssMatStyler, [{\n type: Directive,\n args: [{\n selector: 'mat-grid-tile-header',\n host: {\n 'class': 'mat-grid-tile-header'\n },\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * @docs-private\n */\nclass MatGridTileFooterCssMatStyler {\n static {\n this.ɵfac = function MatGridTileFooterCssMatStyler_Factory(t) {\n return new (t || MatGridTileFooterCssMatStyler)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatGridTileFooterCssMatStyler,\n selectors: [[\"mat-grid-tile-footer\"]],\n hostAttrs: [1, \"mat-grid-tile-footer\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatGridTileFooterCssMatStyler, [{\n type: Directive,\n args: [{\n selector: 'mat-grid-tile-footer',\n host: {\n 'class': 'mat-grid-tile-footer'\n },\n standalone: true\n }]\n }], null, null);\n})();\n\n/**\n * RegExp that can be used to check whether a value will\n * be allowed inside a CSS `calc()` expression.\n */\nconst cssCalcAllowedValue = /^-?\\d+((\\.\\d+)?[A-Za-z%$]?)+$/;\n/**\n * Sets the style properties for an individual tile, given the position calculated by the\n * Tile Coordinator.\n * @docs-private\n */\nclass TileStyler {\n constructor() {\n this._rows = 0;\n this._rowspan = 0;\n }\n /**\n * Adds grid-list layout info once it is available. Cannot be processed in the constructor\n * because these properties haven't been calculated by that point.\n *\n * @param gutterSize Size of the grid's gutter.\n * @param tracker Instance of the TileCoordinator.\n * @param cols Amount of columns in the grid.\n * @param direction Layout direction of the grid.\n */\n init(gutterSize, tracker, cols, direction) {\n this._gutterSize = normalizeUnits(gutterSize);\n this._rows = tracker.rowCount;\n this._rowspan = tracker.rowspan;\n this._cols = cols;\n this._direction = direction;\n }\n /**\n * Computes the amount of space a single 1x1 tile would take up (width or height).\n * Used as a basis for other calculations.\n * @param sizePercent Percent of the total grid-list space that one 1x1 tile would take up.\n * @param gutterFraction Fraction of the gutter size taken up by one 1x1 tile.\n * @return The size of a 1x1 tile as an expression that can be evaluated via CSS calc().\n */\n getBaseTileSize(sizePercent, gutterFraction) {\n // Take the base size percent (as would be if evenly dividing the size between cells),\n // and then subtracting the size of one gutter. However, since there are no gutters on the\n // edges, each tile only uses a fraction (gutterShare = numGutters / numCells) of the gutter\n // size. (Imagine having one gutter per tile, and then breaking up the extra gutter on the\n // edge evenly among the cells).\n return `(${sizePercent}% - (${this._gutterSize} * ${gutterFraction}))`;\n }\n /**\n * Gets The horizontal or vertical position of a tile, e.g., the 'top' or 'left' property value.\n * @param offset Number of tiles that have already been rendered in the row/column.\n * @param baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n * @return Position of the tile as a CSS calc() expression.\n */\n getTilePosition(baseSize, offset) {\n // The position comes the size of a 1x1 tile plus gutter for each previous tile in the\n // row/column (offset).\n return offset === 0 ? '0' : calc(`(${baseSize} + ${this._gutterSize}) * ${offset}`);\n }\n /**\n * Gets the actual size of a tile, e.g., width or height, taking rowspan or colspan into account.\n * @param baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n * @param span The tile's rowspan or colspan.\n * @return Size of the tile as a CSS calc() expression.\n */\n getTileSize(baseSize, span) {\n return `(${baseSize} * ${span}) + (${span - 1} * ${this._gutterSize})`;\n }\n /**\n * Sets the style properties to be applied to a tile for the given row and column index.\n * @param tile Tile to which to apply the styling.\n * @param rowIndex Index of the tile's row.\n * @param colIndex Index of the tile's column.\n */\n setStyle(tile, rowIndex, colIndex) {\n // Percent of the available horizontal space that one column takes up.\n let percentWidthPerTile = 100 / this._cols;\n // Fraction of the vertical gutter size that each column takes up.\n // For example, if there are 5 columns, each column uses 4/5 = 0.8 times the gutter width.\n let gutterWidthFractionPerTile = (this._cols - 1) / this._cols;\n this.setColStyles(tile, colIndex, percentWidthPerTile, gutterWidthFractionPerTile);\n this.setRowStyles(tile, rowIndex, percentWidthPerTile, gutterWidthFractionPerTile);\n }\n /** Sets the horizontal placement of the tile in the list. */\n setColStyles(tile, colIndex, percentWidth, gutterWidth) {\n // Base horizontal size of a column.\n let baseTileWidth = this.getBaseTileSize(percentWidth, gutterWidth);\n // The width and horizontal position of each tile is always calculated the same way, but the\n // height and vertical position depends on the rowMode.\n let side = this._direction === 'rtl' ? 'right' : 'left';\n tile._setStyle(side, this.getTilePosition(baseTileWidth, colIndex));\n tile._setStyle('width', calc(this.getTileSize(baseTileWidth, tile.colspan)));\n }\n /**\n * Calculates the total size taken up by gutters across one axis of a list.\n */\n getGutterSpan() {\n return `${this._gutterSize} * (${this._rowspan} - 1)`;\n }\n /**\n * Calculates the total size taken up by tiles across one axis of a list.\n * @param tileHeight Height of the tile.\n */\n getTileSpan(tileHeight) {\n return `${this._rowspan} * ${this.getTileSize(tileHeight, 1)}`;\n }\n /**\n * Calculates the computed height and returns the correct style property to set.\n * This method can be implemented by each type of TileStyler.\n * @docs-private\n */\n getComputedHeight() {\n return null;\n }\n}\n/**\n * This type of styler is instantiated when the user passes in a fixed row height.\n * Example ``\n * @docs-private\n */\nclass FixedTileStyler extends TileStyler {\n constructor(fixedRowHeight) {\n super();\n this.fixedRowHeight = fixedRowHeight;\n }\n init(gutterSize, tracker, cols, direction) {\n super.init(gutterSize, tracker, cols, direction);\n this.fixedRowHeight = normalizeUnits(this.fixedRowHeight);\n if (!cssCalcAllowedValue.test(this.fixedRowHeight) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Invalid value \"${this.fixedRowHeight}\" set as rowHeight.`);\n }\n }\n setRowStyles(tile, rowIndex) {\n tile._setStyle('top', this.getTilePosition(this.fixedRowHeight, rowIndex));\n tile._setStyle('height', calc(this.getTileSize(this.fixedRowHeight, tile.rowspan)));\n }\n getComputedHeight() {\n return ['height', calc(`${this.getTileSpan(this.fixedRowHeight)} + ${this.getGutterSpan()}`)];\n }\n reset(list) {\n list._setListStyle(['height', null]);\n if (list._tiles) {\n list._tiles.forEach(tile => {\n tile._setStyle('top', null);\n tile._setStyle('height', null);\n });\n }\n }\n}\n/**\n * This type of styler is instantiated when the user passes in a width:height ratio\n * for the row height. Example ``\n * @docs-private\n */\nclass RatioTileStyler extends TileStyler {\n constructor(value) {\n super();\n this._parseRatio(value);\n }\n setRowStyles(tile, rowIndex, percentWidth, gutterWidth) {\n let percentHeightPerTile = percentWidth / this.rowHeightRatio;\n this.baseTileHeight = this.getBaseTileSize(percentHeightPerTile, gutterWidth);\n // Use padding-top and margin-top to maintain the given aspect ratio, as\n // a percentage-based value for these properties is applied versus the *width* of the\n // containing block. See http://www.w3.org/TR/CSS2/box.html#margin-properties\n tile._setStyle('marginTop', this.getTilePosition(this.baseTileHeight, rowIndex));\n tile._setStyle('paddingTop', calc(this.getTileSize(this.baseTileHeight, tile.rowspan)));\n }\n getComputedHeight() {\n return ['paddingBottom', calc(`${this.getTileSpan(this.baseTileHeight)} + ${this.getGutterSpan()}`)];\n }\n reset(list) {\n list._setListStyle(['paddingBottom', null]);\n list._tiles.forEach(tile => {\n tile._setStyle('marginTop', null);\n tile._setStyle('paddingTop', null);\n });\n }\n _parseRatio(value) {\n const ratioParts = value.split(':');\n if (ratioParts.length !== 2 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`mat-grid-list: invalid ratio given for row-height: \"${value}\"`);\n }\n this.rowHeightRatio = parseFloat(ratioParts[0]) / parseFloat(ratioParts[1]);\n }\n}\n/**\n * This type of styler is instantiated when the user selects a \"fit\" row height mode.\n * In other words, the row height will reflect the total height of the container divided\n * by the number of rows. Example ``\n *\n * @docs-private\n */\nclass FitTileStyler extends TileStyler {\n setRowStyles(tile, rowIndex) {\n // Percent of the available vertical space that one row takes up.\n let percentHeightPerTile = 100 / this._rowspan;\n // Fraction of the horizontal gutter size that each column takes up.\n let gutterHeightPerTile = (this._rows - 1) / this._rows;\n // Base vertical size of a column.\n let baseTileHeight = this.getBaseTileSize(percentHeightPerTile, gutterHeightPerTile);\n tile._setStyle('top', this.getTilePosition(baseTileHeight, rowIndex));\n tile._setStyle('height', calc(this.getTileSize(baseTileHeight, tile.rowspan)));\n }\n reset(list) {\n if (list._tiles) {\n list._tiles.forEach(tile => {\n tile._setStyle('top', null);\n tile._setStyle('height', null);\n });\n }\n }\n}\n/** Wraps a CSS string in a calc function */\nfunction calc(exp) {\n return `calc(${exp})`;\n}\n/** Appends pixels to a CSS string if no units are given. */\nfunction normalizeUnits(value) {\n return value.match(/([A-Za-z%]+)$/) ? value : `${value}px`;\n}\n\n// TODO(kara): Conditional (responsive) column count / row size.\n// TODO(kara): Re-layout on window resize / media change (debounced).\n// TODO(kara): gridTileHeader and gridTileFooter.\nconst MAT_FIT_MODE = 'fit';\nclass MatGridList {\n constructor(_element, _dir) {\n this._element = _element;\n this._dir = _dir;\n /** The amount of space between tiles. This will be something like '5px' or '2em'. */\n this._gutter = '1px';\n }\n /** Amount of columns in the grid list. */\n get cols() {\n return this._cols;\n }\n set cols(value) {\n this._cols = Math.max(1, Math.round(coerceNumberProperty(value)));\n }\n /** Size of the grid list's gutter in pixels. */\n get gutterSize() {\n return this._gutter;\n }\n set gutterSize(value) {\n this._gutter = `${value == null ? '' : value}`;\n }\n /** Set internal representation of row height from the user-provided value. */\n get rowHeight() {\n return this._rowHeight;\n }\n set rowHeight(value) {\n const newValue = `${value == null ? '' : value}`;\n if (newValue !== this._rowHeight) {\n this._rowHeight = newValue;\n this._setTileStyler(this._rowHeight);\n }\n }\n ngOnInit() {\n this._checkCols();\n this._checkRowHeight();\n }\n /**\n * The layout calculation is fairly cheap if nothing changes, so there's little cost\n * to run it frequently.\n */\n ngAfterContentChecked() {\n this._layoutTiles();\n }\n /** Throw a friendly error if cols property is missing */\n _checkCols() {\n if (!this.cols && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`mat-grid-list: must pass in number of columns. ` + `Example: `);\n }\n }\n /** Default to equal width:height if rowHeight property is missing */\n _checkRowHeight() {\n if (!this._rowHeight) {\n this._setTileStyler('1:1');\n }\n }\n /** Creates correct Tile Styler subtype based on rowHeight passed in by user */\n _setTileStyler(rowHeight) {\n if (this._tileStyler) {\n this._tileStyler.reset(this);\n }\n if (rowHeight === MAT_FIT_MODE) {\n this._tileStyler = new FitTileStyler();\n } else if (rowHeight && rowHeight.indexOf(':') > -1) {\n this._tileStyler = new RatioTileStyler(rowHeight);\n } else {\n this._tileStyler = new FixedTileStyler(rowHeight);\n }\n }\n /** Computes and applies the size and position for all children grid tiles. */\n _layoutTiles() {\n if (!this._tileCoordinator) {\n this._tileCoordinator = new TileCoordinator();\n }\n const tracker = this._tileCoordinator;\n const tiles = this._tiles.filter(tile => !tile._gridList || tile._gridList === this);\n const direction = this._dir ? this._dir.value : 'ltr';\n this._tileCoordinator.update(this.cols, tiles);\n this._tileStyler.init(this.gutterSize, tracker, this.cols, direction);\n tiles.forEach((tile, index) => {\n const pos = tracker.positions[index];\n this._tileStyler.setStyle(tile, pos.row, pos.col);\n });\n this._setListStyle(this._tileStyler.getComputedHeight());\n }\n /** Sets style on the main grid-list element, given the style name and value. */\n _setListStyle(style) {\n if (style) {\n this._element.nativeElement.style[style[0]] = style[1];\n }\n }\n static {\n this.ɵfac = function MatGridList_Factory(t) {\n return new (t || MatGridList)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Directionality, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatGridList,\n selectors: [[\"mat-grid-list\"]],\n contentQueries: function MatGridList_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatGridTile, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._tiles = _t);\n }\n },\n hostAttrs: [1, \"mat-grid-list\"],\n hostVars: 1,\n hostBindings: function MatGridList_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"cols\", ctx.cols);\n }\n },\n inputs: {\n cols: \"cols\",\n gutterSize: \"gutterSize\",\n rowHeight: \"rowHeight\"\n },\n exportAs: [\"matGridList\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: MAT_GRID_LIST,\n useExisting: MatGridList\n }]), i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 2,\n vars: 0,\n template: function MatGridList_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵprojection(1);\n i0.ɵɵelementEnd();\n }\n },\n styles: [_c3],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatGridList, [{\n type: Component,\n args: [{\n selector: 'mat-grid-list',\n exportAs: 'matGridList',\n host: {\n 'class': 'mat-grid-list',\n // Ensures that the \"cols\" input value is reflected in the DOM. This is\n // needed for the grid-list harness.\n '[attr.cols]': 'cols'\n },\n providers: [{\n provide: MAT_GRID_LIST,\n useExisting: MatGridList\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n template: \"
\\n \\n
\",\n styles: [\".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-grid-tile-header,.mat-grid-tile .mat-grid-tile-footer{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-header>*,.mat-grid-tile .mat-grid-tile-footer>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-tile-header.mat-2-line,.mat-grid-tile .mat-grid-tile-footer.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;flex:auto;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:normal;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}.mat-grid-tile-header{font-size:var(--mat-grid-list-tile-header-primary-text-size)}.mat-grid-tile-header .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-header .mat-line:nth-child(n+2){font-size:var(--mat-grid-list-tile-header-secondary-text-size)}.mat-grid-tile-footer{font-size:var(--mat-grid-list-tile-footer-primary-text-size)}.mat-grid-tile-footer .mat-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;box-sizing:border-box}.mat-grid-tile-footer .mat-line:nth-child(n+2){font-size:var(--mat-grid-list-tile-footer-secondary-text-size)}.mat-grid-tile-content{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}\"]\n }]\n }], () => [{\n type: i0.ElementRef\n }, {\n type: i1.Directionality,\n decorators: [{\n type: Optional\n }]\n }], {\n _tiles: [{\n type: ContentChildren,\n args: [MatGridTile, {\n descendants: true\n }]\n }],\n cols: [{\n type: Input\n }],\n gutterSize: [{\n type: Input\n }],\n rowHeight: [{\n type: Input\n }]\n });\n})();\nclass MatGridListModule {\n static {\n this.ɵfac = function MatGridListModule_Factory(t) {\n return new (t || MatGridListModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatGridListModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatLineModule, MatCommonModule, MatLineModule, MatCommonModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MatGridListModule, [{\n type: NgModule,\n args: [{\n imports: [MatLineModule, MatCommonModule, MatGridList, MatGridTile, MatGridTileText, MatGridTileHeaderCssMatStyler, MatGridTileFooterCssMatStyler, MatGridAvatarCssMatStyler],\n exports: [MatGridList, MatGridTile, MatGridTileText, MatLineModule, MatCommonModule, MatGridTileHeaderCssMatStyler, MatGridTileFooterCssMatStyler, MatGridAvatarCssMatStyler]\n }]\n }], null, null);\n})();\n\n// Privately exported for the grid-list harness.\nconst ɵTileCoordinator = TileCoordinator;\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MatGridAvatarCssMatStyler, MatGridList, MatGridListModule, MatGridTile, MatGridTileFooterCssMatStyler, MatGridTileHeaderCssMatStyler, MatGridTileText, ɵTileCoordinator };\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { catchError, first, map, of, throwError } from 'rxjs';\nimport { env } from '../../../environments/environment';\nimport { mockUniversalFilterApiResponse } from '../../dashboard/integrations/insights/insights.mock';\nimport { FilterConfig } from '../models/filter-config.model';\nimport { LoggerService } from './logger.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UniversalFilterService {\n readonly #baseUrl: string;\n\n constructor(\n private logger: LoggerService,\n private httpClient: HttpClient\n ) {\n this.#baseUrl = env.API_ADDON_URL;\n this.logger.log(\n 'UniversalFilterService.constructor: baseUrl = ',\n `${this.#baseUrl}`\n );\n }\n\n /**\n * @description find all filters\n * @returns a FindError or array of filter objects\n */\n getAllFilters() {\n this.logger.log(\n 'UniversalFilterService.getAllFilters: ',\n `${this.#baseUrl}/globalfilters`\n );\n\n return this.httpClient\n .get(`${this.#baseUrl}/globalfilters`)\n .pipe(\n first(),\n catchError((error) => {\n if (env.environment === 'local') {\n return of(mockUniversalFilterApiResponse);\n }\n return throwError(() => error);\n })\n );\n }\n\n updateQuickFilter(name: string, filter: FilterConfig) {\n this.logger.debug('UniversalFilterService.update: filter=', filter);\n const url = `${this.#baseUrl}/globalfilters?oldName=${name}`;\n\n this.logger.debug('UniversalFilterService.update: filterDto=', filter);\n return this.httpClient.put(url, filter, { observe: 'body' }).pipe(\n first(),\n map((_) => filter)\n );\n }\n\n addQuickFilter(filter: FilterConfig) {\n this.logger.debug('UniversalFilterService.add: filter=', filter);\n const url = `${this.#baseUrl}/globalfilters`;\n\n this.logger.debug('UniversalFilterService.add: filterDto=', filter);\n return this.httpClient.put(url, filter, { observe: 'body' }).pipe(\n first(),\n map((_) => filter)\n );\n }\n\n deleteQuickFilter(filterId: string) {\n this.logger.debug('UniversalFilterService.add: name=', filterId);\n const url = `${this.#baseUrl}/globalfilters?name=${filterId}`;\n\n this.logger.debug('UniversalFilterService.add: filterDto=', filterId);\n return this.httpClient.delete(url, { observe: 'body' }).pipe(\n first(),\n map((_) => filterId)\n );\n }\n}\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import * as i0 from '@angular/core';\nimport { Injectable, inject, ElementRef, NgZone, EventEmitter, Directive, Input, Output, ViewContainerRef, TemplateRef, ContentChild, ChangeDetectorRef, DestroyRef, ContentChildren, NgModule, Component, ChangeDetectionStrategy, ViewEncapsulation, PLATFORM_ID, LOCALE_ID, ViewChild, Injector, forwardRef, ApplicationRef, EnvironmentInjector, createComponent, Attribute, ViewChildren, HostBinding, InjectionToken } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, EMPTY, of, Subject, fromEvent, timer, race, BehaviorSubject, combineLatest, NEVER, zip, merge } from 'rxjs';\nimport { endWith, takeUntil, filter, map, distinctUntilChanged, startWith, switchMap, take, tap, withLatestFrom, delay, mergeMap, skip, finalize } from 'rxjs/operators';\nimport { isPlatformBrowser, NgTemplateOutlet, FormStyle, TranslationWidth, getLocaleMonthNames, getLocaleDayNames, formatDate, DOCUMENT, PercentPipe, getLocaleDayPeriods } from '@angular/common';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';\nimport { flip, preventOverflow, arrow, createPopperLite, offset } from '@popperjs/core';\nfunction NgbAlert_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 1);\n i0.ɵɵlistener(\"click\", function NgbAlert_Conditional_1_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r2);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.close());\n });\n i0.ɵɵelementEnd();\n }\n}\nconst _c0 = [\"*\"];\nfunction NgbCarousel_For_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 2);\n i0.ɵɵlistener(\"click\", function NgbCarousel_For_2_Template_button_click_0_listener() {\n const restoredCtx = i0.ɵɵrestoreView(_r9);\n const slide_r3 = restoredCtx.$implicit;\n const ctx_r8 = i0.ɵɵnextContext();\n ctx_r8.focus();\n return i0.ɵɵresetView(ctx_r8.select(slide_r3.id, ctx_r8.NgbSlideEventSource.INDICATOR));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const slide_r3 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"active\", slide_r3.id === ctx_r0.activeId);\n i0.ɵɵattribute(\"aria-labelledby\", \"slide-\" + slide_r3.id)(\"aria-controls\", \"slide-\" + slide_r3.id)(\"aria-selected\", slide_r3.id === ctx_r0.activeId);\n }\n}\nfunction NgbCarousel_For_5_ng_template_3_Template(rf, ctx) {}\nfunction NgbCarousel_For_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 3)(1, \"span\", 4);\n i0.ɵɵi18n(2, 5);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, NgbCarousel_For_5_ng_template_3_Template, 0, 0, \"ng-template\", 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const slide_r10 = ctx.$implicit;\n const i_r11 = ctx.$index;\n const c_r13 = ctx.$count;\n i0.ɵɵproperty(\"id\", \"slide-\" + slide_r10.id);\n i0.ɵɵadvance(2);\n i0.ɵɵi18nExp(i_r11 + 1)(c_r13);\n i0.ɵɵi18nApply(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", slide_r10.templateRef);\n }\n}\nfunction NgbCarousel_Conditional_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r17 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 7);\n i0.ɵɵlistener(\"click\", function NgbCarousel_Conditional_6_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r17);\n const ctx_r16 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r16.arrowLeft());\n });\n i0.ɵɵelement(1, \"span\", 8);\n i0.ɵɵelementStart(2, \"span\", 9);\n i0.ɵɵi18n(3, 10);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"button\", 11);\n i0.ɵɵlistener(\"click\", function NgbCarousel_Conditional_6_Template_button_click_4_listener() {\n i0.ɵɵrestoreView(_r17);\n const ctx_r18 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r18.arrowRight());\n });\n i0.ɵɵelement(5, \"span\", 12);\n i0.ɵɵelementStart(6, \"span\", 9);\n i0.ɵɵi18n(7, 13);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"aria-labelledby\", ctx_r2.id + \"-previous\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"id\", ctx_r2.id + \"-previous\");\n i0.ɵɵadvance(2);\n i0.ɵɵattribute(\"aria-labelledby\", ctx_r2.id + \"-next\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"id\", ctx_r2.id + \"-next\");\n }\n}\nconst _c1 = [\"ngbDatepickerDayView\", \"\"];\nconst _c2 = [\"month\"];\nconst _c3 = [\"year\"];\nfunction NgbDatepickerNavigationSelect_For_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const m_r4 = ctx.$implicit;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"value\", m_r4);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.i18n.getMonthFullName(m_r4, ctx_r1.date.year));\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.i18n.getMonthShortName(m_r4, ctx_r1.date.year));\n }\n}\nfunction NgbDatepickerNavigationSelect_For_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"option\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const y_r9 = ctx.$implicit;\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"value\", y_r9);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r3.i18n.getYearNumerals(y_r9));\n }\n}\nfunction NgbDatepickerNavigation_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ngb-datepicker-navigation-select\", 6);\n i0.ɵɵlistener(\"select\", function NgbDatepickerNavigation_Conditional_3_Template_ngb_datepicker_navigation_select_select_0_listener($event) {\n i0.ɵɵrestoreView(_r3);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.select.emit($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"date\", ctx_r0.date)(\"disabled\", ctx_r0.disabled)(\"months\", ctx_r0.selectBoxes.months)(\"years\", ctx_r0.selectBoxes.years);\n }\n}\nfunction NgbDatepickerNavigation_Conditional_4_For_1_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 9);\n }\n}\nfunction NgbDatepickerNavigation_Conditional_4_For_1_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 9);\n }\n}\nfunction NgbDatepickerNavigation_Conditional_4_For_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbDatepickerNavigation_Conditional_4_For_1_Conditional_0_Template, 1, 0, \"div\", 7);\n i0.ɵɵelementStart(1, \"div\", 8);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, NgbDatepickerNavigation_Conditional_4_For_1_Conditional_3_Template, 1, 0, \"div\", 7);\n }\n if (rf & 2) {\n const month_r5 = ctx.$implicit;\n const i_r6 = ctx.$index;\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵconditional(0, i_r6 > 0 ? 0 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx_r4.i18n.getMonthLabel(month_r5.firstDate), \" \");\n i0.ɵɵadvance();\n i0.ɵɵconditional(3, i_r6 !== ctx_r4.months.length - 1 ? 3 : -1);\n }\n}\nfunction NgbDatepickerNavigation_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, NgbDatepickerNavigation_Conditional_4_For_1_Template, 4, 3, null, null, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵrepeater(ctx_r1.months);\n }\n}\nfunction NgbDatepickerMonth_Conditional_0_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 3);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r2.i18n.getWeekLabel());\n }\n}\nfunction NgbDatepickerMonth_Conditional_0_For_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 4);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const weekday_r4 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(weekday_r4);\n }\n}\nfunction NgbDatepickerMonth_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵtemplate(1, NgbDatepickerMonth_Conditional_0_Conditional_1_Template, 2, 1, \"div\", 2);\n i0.ɵɵrepeaterCreate(2, NgbDatepickerMonth_Conditional_0_For_3_Template, 2, 1, \"div\", 5, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx_r0.datepicker.showWeekNumbers ? 1 : -1);\n i0.ɵɵadvance();\n i0.ɵɵrepeater(ctx_r0.viewModel.weekdays);\n }\n}\nfunction NgbDatepickerMonth_For_2_Conditional_0_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 9);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const week_r9 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r15 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r15.i18n.getWeekNumerals(week_r9.number));\n }\n}\nfunction NgbDatepickerMonth_For_2_Conditional_0_For_3_Conditional_1_ng_template_0_Template(rf, ctx) {}\nfunction NgbDatepickerMonth_For_2_Conditional_0_For_3_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbDatepickerMonth_For_2_Conditional_0_For_3_Conditional_1_ng_template_0_Template, 0, 0, \"ng-template\", 11);\n }\n if (rf & 2) {\n const day_r18 = i0.ɵɵnextContext().$implicit;\n const ctx_r23 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r23.datepicker.dayTemplate)(\"ngTemplateOutletContext\", day_r18.context);\n }\n}\nfunction NgbDatepickerMonth_For_2_Conditional_0_For_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r27 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 10);\n i0.ɵɵlistener(\"click\", function NgbDatepickerMonth_For_2_Conditional_0_For_3_Template_div_click_0_listener($event) {\n const restoredCtx = i0.ɵɵrestoreView(_r27);\n const day_r18 = restoredCtx.$implicit;\n const ctx_r26 = i0.ɵɵnextContext(3);\n ctx_r26.doSelect(day_r18);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵtemplate(1, NgbDatepickerMonth_For_2_Conditional_0_For_3_Conditional_1_Template, 1, 2, null, 11);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const day_r18 = ctx.$implicit;\n i0.ɵɵclassProp(\"disabled\", day_r18.context.disabled)(\"hidden\", day_r18.hidden)(\"ngb-dp-today\", day_r18.context.today);\n i0.ɵɵproperty(\"tabindex\", day_r18.tabindex);\n i0.ɵɵattribute(\"aria-label\", day_r18.ariaLabel);\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, !day_r18.hidden ? 1 : -1);\n }\n}\nfunction NgbDatepickerMonth_For_2_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 7);\n i0.ɵɵtemplate(1, NgbDatepickerMonth_For_2_Conditional_0_Conditional_1_Template, 2, 1, \"div\", 8);\n i0.ɵɵrepeaterCreate(2, NgbDatepickerMonth_For_2_Conditional_0_For_3_Template, 2, 9, \"div\", 12, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const week_r9 = i0.ɵɵnextContext().$implicit;\n const ctx_r14 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx_r14.datepicker.showWeekNumbers ? 1 : -1);\n i0.ɵɵadvance();\n i0.ɵɵrepeater(week_r9.days);\n }\n}\nfunction NgbDatepickerMonth_For_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbDatepickerMonth_For_2_Conditional_0_Template, 4, 1, \"div\", 6);\n }\n if (rf & 2) {\n const week_r9 = ctx.$implicit;\n i0.ɵɵconditional(0, !week_r9.collapsed ? 0 : -1);\n }\n}\nconst _c4 = [\"defaultDayTemplate\"];\nconst _c5 = [\"content\"];\nfunction NgbDatepicker_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 8);\n }\n if (rf & 2) {\n const date_r8 = ctx.date;\n const currentMonth_r9 = ctx.currentMonth;\n const selected_r10 = ctx.selected;\n const disabled_r11 = ctx.disabled;\n const focused_r12 = ctx.focused;\n i0.ɵɵproperty(\"date\", date_r8)(\"currentMonth\", currentMonth_r9)(\"selected\", selected_r10)(\"disabled\", disabled_r11)(\"focused\", focused_r12);\n }\n}\nfunction NgbDatepicker_ng_template_2_For_1_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 12);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const month_r14 = i0.ɵɵnextContext().$implicit;\n const ctx_r19 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r19.i18n.getMonthLabel(month_r14.firstDate), \" \");\n }\n}\nfunction NgbDatepicker_ng_template_2_For_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 9);\n i0.ɵɵtemplate(1, NgbDatepicker_ng_template_2_For_1_Conditional_1_Template, 2, 1, \"div\", 10);\n i0.ɵɵelement(2, \"ngb-datepicker-month\", 11);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const month_r14 = ctx.$implicit;\n const ctx_r13 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx_r13.navigation === \"none\" || ctx_r13.displayMonths > 1 && ctx_r13.navigation === \"select\" ? 1 : -1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"month\", month_r14.firstDate);\n }\n}\nfunction NgbDatepicker_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, NgbDatepicker_ng_template_2_For_1_Template, 3, 2, \"div\", 13, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵrepeater(ctx_r2.model.months);\n }\n}\nfunction NgbDatepicker_Conditional_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r22 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ngb-datepicker-navigation\", 14);\n i0.ɵɵlistener(\"navigate\", function NgbDatepicker_Conditional_5_Template_ngb_datepicker_navigation_navigate_0_listener($event) {\n i0.ɵɵrestoreView(_r22);\n const ctx_r21 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r21.onNavigateEvent($event));\n })(\"select\", function NgbDatepicker_Conditional_5_Template_ngb_datepicker_navigation_select_0_listener($event) {\n i0.ɵɵrestoreView(_r22);\n const ctx_r23 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r23.onNavigateDateSelect($event));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"date\", ctx_r4.model.firstDate)(\"months\", ctx_r4.model.months)(\"disabled\", ctx_r4.model.disabled)(\"showSelect\", ctx_r4.model.navigation === \"select\")(\"prevDisabled\", ctx_r4.model.prevDisabled)(\"nextDisabled\", ctx_r4.model.nextDisabled)(\"selectBoxes\", ctx_r4.model.selectBoxes);\n }\n}\nfunction NgbDatepicker_ng_template_8_Template(rf, ctx) {}\nfunction NgbDatepicker_ng_template_9_Template(rf, ctx) {}\nconst _c6 = a0 => ({\n $implicit: a0\n});\nconst _c7 = [\"dialog\"];\nconst _c8 = [\"ngbNavOutlet\", \"\"];\nfunction NgbNavOutlet_For_1_Conditional_0_ng_template_1_Template(rf, ctx) {}\nfunction NgbNavOutlet_For_1_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, NgbNavOutlet_For_1_Conditional_0_ng_template_1_Template, 0, 0, \"ng-template\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r1 = i0.ɵɵnextContext().$implicit;\n const ctx_r6 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"item\", item_r1)(\"nav\", ctx_r6.nav)(\"role\", ctx_r6.paneRole);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (item_r1.contentTpl == null ? null : item_r1.contentTpl.templateRef) || null)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(5, _c6, item_r1.active || ctx_r6.isPanelTransitioning(item_r1)));\n }\n}\nfunction NgbNavOutlet_For_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbNavOutlet_For_1_Conditional_0_Template, 2, 7, \"div\", 0);\n }\n if (rf & 2) {\n const item_r1 = ctx.$implicit;\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵconditional(0, item_r1.isPanelInDom() || ctx_r0.isPanelTransitioning(item_r1) ? 0 : -1);\n }\n}\nfunction NgbPagination_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 9);\n i0.ɵɵi18n(1, 10);\n i0.ɵɵelementEnd();\n }\n}\nfunction NgbPagination_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 9);\n i0.ɵɵi18n(1, 11);\n i0.ɵɵelementEnd();\n }\n}\nfunction NgbPagination_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 9);\n i0.ɵɵi18n(1, 12);\n i0.ɵɵelementEnd();\n }\n}\nfunction NgbPagination_ng_template_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 9);\n i0.ɵɵi18n(1, 13);\n i0.ɵɵelementEnd();\n }\n}\nfunction NgbPagination_ng_template_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0, \"...\");\n }\n}\nfunction NgbPagination_ng_template_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const page_r19 = ctx.$implicit;\n i0.ɵɵtextInterpolate(page_r19);\n }\n}\nfunction NgbPagination_ng_template_12_For_1_Conditional_1_ng_template_1_Template(rf, ctx) {}\nconst _c9 = a1 => ({\n disabled: true,\n currentPage: a1\n});\nfunction NgbPagination_ng_template_12_For_1_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"a\", 16);\n i0.ɵɵtemplate(1, NgbPagination_ng_template_12_For_1_Conditional_1_ng_template_1_Template, 0, 0, \"ng-template\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const page_r21 = i0.ɵɵnextContext(2).$implicit;\n const ctx_r30 = i0.ɵɵnextContext();\n const _r9 = i0.ɵɵreference(9);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r30.tplEllipsis == null ? null : ctx_r30.tplEllipsis.templateRef) || _r9)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c9, page_r21));\n }\n}\nfunction NgbPagination_ng_template_12_For_1_Conditional_2_ng_template_1_Template(rf, ctx) {}\nconst _c10 = (a0, a1, a2) => ({\n disabled: a0,\n $implicit: a1,\n currentPage: a2\n});\nfunction NgbPagination_ng_template_12_For_1_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r37 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"a\", 17);\n i0.ɵɵlistener(\"click\", function NgbPagination_ng_template_12_For_1_Conditional_2_Template_a_click_0_listener($event) {\n i0.ɵɵrestoreView(_r37);\n const pageNumber_r25 = i0.ɵɵnextContext().$implicit;\n const ctx_r35 = i0.ɵɵnextContext(2);\n ctx_r35.selectPage(pageNumber_r25);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵtemplate(1, NgbPagination_ng_template_12_For_1_Conditional_2_ng_template_1_Template, 0, 0, \"ng-template\", 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const pageNumber_r25 = i0.ɵɵnextContext().$implicit;\n const ctx_r38 = i0.ɵɵnextContext();\n const disabled_r23 = ctx_r38.disabled;\n const page_r21 = ctx_r38.$implicit;\n const ctx_r31 = i0.ɵɵnextContext();\n const _r11 = i0.ɵɵreference(11);\n i0.ɵɵattribute(\"tabindex\", disabled_r23 ? \"-1\" : null)(\"aria-disabled\", disabled_r23 ? \"true\" : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r31.tplNumber == null ? null : ctx_r31.tplNumber.templateRef) || _r11)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction3(4, _c10, disabled_r23, pageNumber_r25, page_r21));\n }\n}\nfunction NgbPagination_ng_template_12_For_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 14);\n i0.ɵɵtemplate(1, NgbPagination_ng_template_12_For_1_Conditional_1_Template, 2, 4, \"a\", 15)(2, NgbPagination_ng_template_12_For_1_Conditional_2_Template, 2, 8);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const pageNumber_r25 = ctx.$implicit;\n const ctx_r40 = i0.ɵɵnextContext();\n const page_r21 = ctx_r40.$implicit;\n const disabled_r23 = ctx_r40.disabled;\n const ctx_r24 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"active\", pageNumber_r25 === page_r21)(\"disabled\", ctx_r24.isEllipsis(pageNumber_r25) || disabled_r23);\n i0.ɵɵattribute(\"aria-current\", pageNumber_r25 === page_r21 ? \"page\" : null);\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx_r24.isEllipsis(pageNumber_r25) ? 1 : 2);\n }\n}\nfunction NgbPagination_ng_template_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, NgbPagination_ng_template_12_For_1_Template, 3, 6, \"li\", 18, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n const pages_r22 = ctx.pages;\n i0.ɵɵrepeater(pages_r22);\n }\n}\nfunction NgbPagination_Conditional_15_ng_template_2_Template(rf, ctx) {}\nconst _c11 = (a0, a1) => ({\n disabled: a0,\n currentPage: a1\n});\nfunction NgbPagination_Conditional_15_Template(rf, ctx) {\n if (rf & 1) {\n const _r43 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 14)(1, \"a\", 19);\n i0.ɵɵlistener(\"click\", function NgbPagination_Conditional_15_Template_a_click_1_listener($event) {\n i0.ɵɵrestoreView(_r43);\n const ctx_r42 = i0.ɵɵnextContext();\n ctx_r42.selectPage(1);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵtemplate(2, NgbPagination_Conditional_15_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r14 = i0.ɵɵnextContext();\n const _r1 = i0.ɵɵreference(1);\n i0.ɵɵclassProp(\"disabled\", ctx_r14.previousDisabled());\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"tabindex\", ctx_r14.previousDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r14.previousDisabled() ? \"true\" : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r14.tplFirst == null ? null : ctx_r14.tplFirst.templateRef) || _r1)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(6, _c11, ctx_r14.previousDisabled(), ctx_r14.page));\n }\n}\nfunction NgbPagination_Conditional_16_ng_template_2_Template(rf, ctx) {}\nconst _c12 = a0 => ({\n disabled: a0\n});\nfunction NgbPagination_Conditional_16_Template(rf, ctx) {\n if (rf & 1) {\n const _r46 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 14)(1, \"a\", 20);\n i0.ɵɵlistener(\"click\", function NgbPagination_Conditional_16_Template_a_click_1_listener($event) {\n i0.ɵɵrestoreView(_r46);\n const ctx_r45 = i0.ɵɵnextContext();\n ctx_r45.selectPage(ctx_r45.page - 1);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵtemplate(2, NgbPagination_Conditional_16_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r15 = i0.ɵɵnextContext();\n const _r3 = i0.ɵɵreference(3);\n i0.ɵɵclassProp(\"disabled\", ctx_r15.previousDisabled());\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"tabindex\", ctx_r15.previousDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r15.previousDisabled() ? \"true\" : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r15.tplPrevious == null ? null : ctx_r15.tplPrevious.templateRef) || _r3)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(6, _c12, ctx_r15.previousDisabled()));\n }\n}\nfunction NgbPagination_ng_template_17_Template(rf, ctx) {}\nfunction NgbPagination_Conditional_18_ng_template_2_Template(rf, ctx) {}\nfunction NgbPagination_Conditional_18_Template(rf, ctx) {\n if (rf & 1) {\n const _r49 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 14)(1, \"a\", 21);\n i0.ɵɵlistener(\"click\", function NgbPagination_Conditional_18_Template_a_click_1_listener($event) {\n i0.ɵɵrestoreView(_r49);\n const ctx_r48 = i0.ɵɵnextContext();\n ctx_r48.selectPage(ctx_r48.page + 1);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵtemplate(2, NgbPagination_Conditional_18_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r17 = i0.ɵɵnextContext();\n const _r5 = i0.ɵɵreference(5);\n i0.ɵɵclassProp(\"disabled\", ctx_r17.nextDisabled());\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"tabindex\", ctx_r17.nextDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r17.nextDisabled() ? \"true\" : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r17.tplNext == null ? null : ctx_r17.tplNext.templateRef) || _r5)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(6, _c11, ctx_r17.nextDisabled(), ctx_r17.page));\n }\n}\nfunction NgbPagination_Conditional_19_ng_template_2_Template(rf, ctx) {}\nfunction NgbPagination_Conditional_19_Template(rf, ctx) {\n if (rf & 1) {\n const _r52 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 14)(1, \"a\", 22);\n i0.ɵɵlistener(\"click\", function NgbPagination_Conditional_19_Template_a_click_1_listener($event) {\n i0.ɵɵrestoreView(_r52);\n const ctx_r51 = i0.ɵɵnextContext();\n ctx_r51.selectPage(ctx_r51.pageCount);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵtemplate(2, NgbPagination_Conditional_19_ng_template_2_Template, 0, 0, \"ng-template\", 8);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r18 = i0.ɵɵnextContext();\n const _r7 = i0.ɵɵreference(7);\n i0.ɵɵclassProp(\"disabled\", ctx_r18.nextDisabled());\n i0.ɵɵadvance();\n i0.ɵɵattribute(\"tabindex\", ctx_r18.nextDisabled() ? \"-1\" : null)(\"aria-disabled\", ctx_r18.nextDisabled() ? \"true\" : null);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r18.tplLast == null ? null : ctx_r18.tplLast.templateRef) || _r7)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(6, _c11, ctx_r18.nextDisabled(), ctx_r18.page));\n }\n}\nconst _c13 = (a0, a1, a2) => ({\n $implicit: a0,\n pages: a1,\n disabled: a2\n});\nfunction NgbPopoverWindow_Conditional_1_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵtextInterpolate(ctx_r1.title);\n }\n}\nfunction NgbPopoverWindow_Conditional_1_ng_template_3_Template(rf, ctx) {}\nfunction NgbPopoverWindow_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"h3\", 3);\n i0.ɵɵtemplate(1, NgbPopoverWindow_Conditional_1_ng_template_1_Template, 1, 1, \"ng-template\", null, 4, i0.ɵɵtemplateRefExtractor)(3, NgbPopoverWindow_Conditional_1_ng_template_3_Template, 0, 0, \"ng-template\", 5);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const _r2 = i0.ɵɵreference(2);\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.isTitleTemplate() ? ctx_r0.title : _r2)(\"ngTemplateOutletContext\", ctx_r0.context);\n }\n}\nfunction NgbProgressbar_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵi18n(1, 0);\n i0.ɵɵpipe(2, \"percent\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵi18nExp(i0.ɵɵpipeBind1(2, 1, ctx_r0.getValue() / ctx_r0.max));\n i0.ɵɵi18nApply(1);\n }\n}\nfunction NgbRating_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const fill_r3 = ctx.fill;\n i0.ɵɵtextInterpolate(fill_r3 === 100 ? \"\\u2605\" : \"\\u2606\");\n }\n}\nfunction NgbRating_For_3_ng_template_3_Template(rf, ctx) {}\nfunction NgbRating_For_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 1);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"span\", 2);\n i0.ɵɵlistener(\"mouseenter\", function NgbRating_For_3_Template_span_mouseenter_2_listener() {\n const restoredCtx = i0.ɵɵrestoreView(_r11);\n const index_r5 = restoredCtx.$index;\n const ctx_r10 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r10.enter(index_r5 + 1));\n })(\"click\", function NgbRating_For_3_Template_span_click_2_listener() {\n const restoredCtx = i0.ɵɵrestoreView(_r11);\n const index_r5 = restoredCtx.$index;\n const ctx_r12 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r12.handleClick(index_r5 + 1));\n });\n i0.ɵɵtemplate(3, NgbRating_For_3_ng_template_3_Template, 0, 0, \"ng-template\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const index_r5 = ctx.$index;\n const ctx_r2 = i0.ɵɵnextContext();\n const _r1 = i0.ɵɵreference(1);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"(\", index_r5 < ctx_r2.nextRate ? \"*\" : \" \", \")\");\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"cursor\", ctx_r2.isInteractive() ? \"pointer\" : \"default\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.starTemplate || ctx_r2.starTemplateFromContent || _r1)(\"ngTemplateOutletContext\", ctx_r2.contexts[index_r5]);\n }\n}\nfunction NgbTimepicker_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 8);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_3_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r6 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r6.changeHour(ctx_r6.hourStep));\n });\n i0.ɵɵelement(1, \"span\", 9);\n i0.ɵɵelementStart(2, \"span\", 10);\n i0.ɵɵi18n(3, 11);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"btn-sm\", ctx_r0.isSmallSize)(\"btn-lg\", ctx_r0.isLargeSize)(\"disabled\", ctx_r0.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r0.disabled);\n }\n}\nfunction NgbTimepicker_Conditional_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 8);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_5_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r9);\n const ctx_r8 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r8.changeHour(-ctx_r8.hourStep));\n });\n i0.ɵɵelement(1, \"span\", 12);\n i0.ɵɵelementStart(2, \"span\", 10);\n i0.ɵɵi18n(3, 13);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"btn-sm\", ctx_r1.isSmallSize)(\"btn-lg\", ctx_r1.isLargeSize)(\"disabled\", ctx_r1.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r1.disabled);\n }\n}\nfunction NgbTimepicker_Conditional_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 8);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_9_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r11);\n const ctx_r10 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r10.changeMinute(ctx_r10.minuteStep));\n });\n i0.ɵɵelement(1, \"span\", 9);\n i0.ɵɵelementStart(2, \"span\", 10);\n i0.ɵɵi18n(3, 14);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"btn-sm\", ctx_r2.isSmallSize)(\"btn-lg\", ctx_r2.isLargeSize)(\"disabled\", ctx_r2.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r2.disabled);\n }\n}\nfunction NgbTimepicker_Conditional_11_Template(rf, ctx) {\n if (rf & 1) {\n const _r13 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 8);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_11_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r13);\n const ctx_r12 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r12.changeMinute(-ctx_r12.minuteStep));\n });\n i0.ɵɵelement(1, \"span\", 12);\n i0.ɵɵelementStart(2, \"span\", 10);\n i0.ɵɵi18n(3, 15);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"btn-sm\", ctx_r3.isSmallSize)(\"btn-lg\", ctx_r3.isLargeSize)(\"disabled\", ctx_r3.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r3.disabled);\n }\n}\nfunction NgbTimepicker_Conditional_12_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r17 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 8);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_12_Conditional_3_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r17);\n const ctx_r16 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r16.changeSecond(ctx_r16.secondStep));\n });\n i0.ɵɵelement(1, \"span\", 9);\n i0.ɵɵelementStart(2, \"span\", 10);\n i0.ɵɵi18n(3, 18);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r14 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"btn-sm\", ctx_r14.isSmallSize)(\"btn-lg\", ctx_r14.isLargeSize)(\"disabled\", ctx_r14.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r14.disabled);\n }\n}\nfunction NgbTimepicker_Conditional_12_Conditional_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r19 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 8);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_12_Conditional_5_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r19);\n const ctx_r18 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r18.changeSecond(-ctx_r18.secondStep));\n });\n i0.ɵɵelement(1, \"span\", 12);\n i0.ɵɵelementStart(2, \"span\", 10);\n i0.ɵɵi18n(3, 19);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r15 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"btn-sm\", ctx_r15.isSmallSize)(\"btn-lg\", ctx_r15.isLargeSize)(\"disabled\", ctx_r15.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r15.disabled);\n }\n}\nfunction NgbTimepicker_Conditional_12_Template(rf, ctx) {\n if (rf & 1) {\n const _r21 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 5);\n i0.ɵɵtext(1, \":\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"div\", 16);\n i0.ɵɵtemplate(3, NgbTimepicker_Conditional_12_Conditional_3_Template, 4, 7, \"button\", 3);\n i0.ɵɵelementStart(4, \"input\", 17);\n i0.ɵɵlistener(\"change\", function NgbTimepicker_Conditional_12_Template_input_change_4_listener($event) {\n i0.ɵɵrestoreView(_r21);\n const ctx_r20 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r20.updateSecond($event.target.value));\n })(\"blur\", function NgbTimepicker_Conditional_12_Template_input_blur_4_listener() {\n i0.ɵɵrestoreView(_r21);\n const ctx_r22 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r22.handleBlur());\n })(\"input\", function NgbTimepicker_Conditional_12_Template_input_input_4_listener($event) {\n i0.ɵɵrestoreView(_r21);\n const ctx_r23 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r23.formatInput($event.target));\n })(\"keydown.ArrowUp\", function NgbTimepicker_Conditional_12_Template_input_keydown_ArrowUp_4_listener($event) {\n i0.ɵɵrestoreView(_r21);\n const ctx_r24 = i0.ɵɵnextContext();\n ctx_r24.changeSecond(ctx_r24.secondStep);\n return i0.ɵɵresetView($event.preventDefault());\n })(\"keydown.ArrowDown\", function NgbTimepicker_Conditional_12_Template_input_keydown_ArrowDown_4_listener($event) {\n i0.ɵɵrestoreView(_r21);\n const ctx_r25 = i0.ɵɵnextContext();\n ctx_r25.changeSecond(-ctx_r25.secondStep);\n return i0.ɵɵresetView($event.preventDefault());\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, NgbTimepicker_Conditional_12_Conditional_5_Template, 4, 7, \"button\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵadvance(3);\n i0.ɵɵconditional(3, ctx_r4.spinners ? 3 : -1);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"form-control-sm\", ctx_r4.isSmallSize)(\"form-control-lg\", ctx_r4.isLargeSize);\n i0.ɵɵproperty(\"value\", ctx_r4.formatMinSec(ctx_r4.model == null ? null : ctx_r4.model.second))(\"readOnly\", ctx_r4.readonlyInputs)(\"disabled\", ctx_r4.disabled);\n i0.ɵɵadvance();\n i0.ɵɵconditional(5, ctx_r4.spinners ? 5 : -1);\n }\n}\nfunction NgbTimepicker_Conditional_13_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵi18n(1, 22);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r26 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵi18nExp(ctx_r26.i18n.getAfternoonPeriod());\n i0.ɵɵi18nApply(1);\n }\n}\nfunction NgbTimepicker_Conditional_13_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r27 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r27.i18n.getMorningPeriod());\n }\n}\nfunction NgbTimepicker_Conditional_13_Template(rf, ctx) {\n if (rf & 1) {\n const _r29 = i0.ɵɵgetCurrentView();\n i0.ɵɵelement(0, \"div\", 5);\n i0.ɵɵelementStart(1, \"div\", 20)(2, \"button\", 21);\n i0.ɵɵlistener(\"click\", function NgbTimepicker_Conditional_13_Template_button_click_2_listener() {\n i0.ɵɵrestoreView(_r29);\n const ctx_r28 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r28.toggleMeridian());\n });\n i0.ɵɵtemplate(3, NgbTimepicker_Conditional_13_Conditional_3_Template, 2, 1, \"ng-container\")(4, NgbTimepicker_Conditional_13_Conditional_4_Template, 2, 1);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"btn-sm\", ctx_r5.isSmallSize)(\"btn-lg\", ctx_r5.isLargeSize)(\"disabled\", ctx_r5.disabled);\n i0.ɵɵproperty(\"disabled\", ctx_r5.disabled);\n i0.ɵɵadvance();\n i0.ɵɵconditional(3, ctx_r5.model && ctx_r5.model.hour >= 12 ? 3 : 4);\n }\n}\nfunction NgbToast_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"strong\", 3);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0.header);\n }\n}\nfunction NgbToast_Conditional_2_ng_template_1_Template(rf, ctx) {}\nfunction NgbToast_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 4);\n i0.ɵɵtemplate(1, NgbToast_Conditional_2_ng_template_1_Template, 0, 0, \"ng-template\", 5);\n i0.ɵɵelementStart(2, \"button\", 6);\n i0.ɵɵlistener(\"click\", function NgbToast_Conditional_2_Template_button_click_2_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.hide());\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n const _r1 = i0.ɵɵreference(1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.contentHeaderTpl || _r1);\n }\n}\nfunction NgbHighlight_For_1_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const part_r1 = i0.ɵɵnextContext().$implicit;\n const ctx_r6 = i0.ɵɵnextContext();\n i0.ɵɵclassMap(ctx_r6.highlightClass);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(part_r1);\n }\n}\nfunction NgbHighlight_For_1_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const part_r1 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(part_r1);\n }\n}\nfunction NgbHighlight_For_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbHighlight_For_1_Conditional_0_Template, 2, 4, \"span\", 0)(1, NgbHighlight_For_1_Conditional_1_Template, 2, 1);\n }\n if (rf & 2) {\n const $index_r2 = ctx.$index;\n i0.ɵɵconditional(0, $index_r2 % 2 !== 0 ? 0 : 1);\n }\n}\nfunction NgbTypeaheadWindow_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"ngb-highlight\", 1);\n }\n if (rf & 2) {\n const result_r3 = ctx.result;\n const term_r4 = ctx.term;\n const formatter_r5 = ctx.formatter;\n i0.ɵɵproperty(\"result\", formatter_r5(result_r3))(\"term\", term_r4);\n }\n}\nfunction NgbTypeaheadWindow_For_3_ng_template_1_Template(rf, ctx) {}\nconst _c14 = (a0, a1, a2) => ({\n result: a0,\n term: a1,\n formatter: a2\n});\nfunction NgbTypeaheadWindow_For_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r13 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 2);\n i0.ɵɵlistener(\"mouseenter\", function NgbTypeaheadWindow_For_3_Template_button_mouseenter_0_listener() {\n const restoredCtx = i0.ɵɵrestoreView(_r13);\n const idx_r7 = restoredCtx.$index;\n const ctx_r12 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r12.markActive(idx_r7));\n })(\"click\", function NgbTypeaheadWindow_For_3_Template_button_click_0_listener() {\n const restoredCtx = i0.ɵɵrestoreView(_r13);\n const result_r6 = restoredCtx.$implicit;\n const ctx_r14 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r14.select(result_r6));\n });\n i0.ɵɵtemplate(1, NgbTypeaheadWindow_For_3_ng_template_1_Template, 0, 0, \"ng-template\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const result_r6 = ctx.$implicit;\n const idx_r7 = ctx.$index;\n const ctx_r2 = i0.ɵɵnextContext();\n const _r1 = i0.ɵɵreference(1);\n i0.ɵɵclassProp(\"active\", idx_r7 === ctx_r2.activeIdx);\n i0.ɵɵproperty(\"id\", ctx_r2.id + \"-\" + idx_r7);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.resultTemplate || _r1)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction3(5, _c14, result_r6, ctx_r2.term, ctx_r2.formatter));\n }\n}\nconst environment = {\n animation: true,\n transitionTimerDelayMs: 5\n};\n\n/**\n * Global ng-bootstrap config\n *\n * @since 8.0.0\n */\nclass NgbConfig {\n constructor() {\n this.animation = environment.animation;\n }\n static {\n this.ɵfac = function NgbConfig_Factory(t) {\n return new (t || NgbConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbConfig,\n factory: NgbConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbAccordionDirective`](#/components/accordion/api#NgbAccordionDirective).\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all accordions used in the application.\n */\nclass NgbAccordionConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.closeOthers = false;\n this.destroyOnHide = true;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static {\n this.ɵfac = function NgbAccordionConfig_Factory(t) {\n return new (t || NgbAccordionConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbAccordionConfig,\n factory: NgbAccordionConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nfunction getTransitionDurationMs(element) {\n const {\n transitionDelay,\n transitionDuration\n } = window.getComputedStyle(element);\n const transitionDelaySec = parseFloat(transitionDelay);\n const transitionDurationSec = parseFloat(transitionDuration);\n return (transitionDelaySec + transitionDurationSec) * 1000;\n}\nfunction toInteger(value) {\n return parseInt(`${value}`, 10);\n}\nfunction toString(value) {\n return value !== undefined && value !== null ? `${value}` : '';\n}\nfunction getValueInRange(value, max, min = 0) {\n return Math.max(Math.min(value, max), min);\n}\nfunction isString(value) {\n return typeof value === 'string';\n}\nfunction isNumber(value) {\n return !isNaN(toInteger(value));\n}\nfunction isInteger(value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isPromise(v) {\n return v && v.then;\n}\nfunction padNumber(value) {\n if (isNumber(value)) {\n return `0${value}`.slice(-2);\n } else {\n return '';\n }\n}\nfunction regExpEscape(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\nfunction closest(element, selector) {\n if (!selector) {\n return null;\n }\n /*\n * In certain browsers (e.g. Edge 44.18362.449.0) HTMLDocument does\n * not support `Element.prototype.closest`. To emulate the correct behaviour\n * we return null when the method is missing.\n *\n * Note that in evergreen browsers `closest(document.documentElement, 'html')`\n * will return the document element whilst in Edge null will be returned. This\n * compromise was deemed good enough.\n */\n if (typeof element.closest === 'undefined') {\n return null;\n }\n return element.closest(selector);\n}\n/**\n * Force a browser reflow\n * @param element element where to apply the reflow\n */\nfunction reflow(element) {\n return (element || document.body).getBoundingClientRect();\n}\n/**\n * Creates an observable where all callbacks are executed inside a given zone\n *\n * @param zone\n */\nfunction runInZone(zone) {\n return source => {\n return new Observable(observer => {\n const next = value => zone.run(() => observer.next(value));\n const error = e => zone.run(() => observer.error(e));\n const complete = () => zone.run(() => observer.complete());\n return source.subscribe({\n next,\n error,\n complete\n });\n });\n };\n}\nfunction removeAccents(str) {\n return str.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\n}\n/**\n * Returns the active element in the given root.\n * If the active element is inside a shadow root, it is searched recursively.\n */\nfunction getActiveElement(root = document) {\n const activeEl = root?.activeElement;\n if (!activeEl) {\n return null;\n }\n return activeEl.shadowRoot ? getActiveElement(activeEl.shadowRoot) : activeEl;\n}\nconst noopFn = () => {};\nconst {\n transitionTimerDelayMs\n} = environment;\nconst runningTransitions = new Map();\nconst ngbRunTransition = (zone, element, startFn, options) => {\n // Getting initial context from options\n let context = options.context || {};\n // Checking if there are already running transitions on the given element.\n const running = runningTransitions.get(element);\n if (running) {\n switch (options.runningTransition) {\n // If there is one running and we want for it to 'continue' to run, we have to cancel the new one.\n // We're not emitting any values, but simply completing the observable (EMPTY).\n case 'continue':\n return EMPTY;\n // If there is one running and we want for it to 'stop', we have to complete the running one.\n // We're simply completing the running one and not emitting any values and merging newly provided context\n // with the one coming from currently running transition.\n case 'stop':\n zone.run(() => running.transition$.complete());\n context = Object.assign(running.context, context);\n runningTransitions.delete(element);\n }\n }\n // Running the start function\n const endFn = startFn(element, options.animation, context) || noopFn;\n // If 'prefer-reduced-motion' is enabled, the 'transition' will be set to 'none'.\n // If animations are disabled, we have to emit a value and complete the observable\n // In this case we have to call the end function, but can finish immediately by emitting a value,\n // completing the observable and executing end functions synchronously.\n if (!options.animation || window.getComputedStyle(element).transitionProperty === 'none') {\n zone.run(() => endFn());\n return of(undefined).pipe(runInZone(zone));\n }\n // Starting a new transition\n const transition$ = new Subject();\n const finishTransition$ = new Subject();\n const stop$ = transition$.pipe(endWith(true));\n runningTransitions.set(element, {\n transition$,\n complete: () => {\n finishTransition$.next();\n finishTransition$.complete();\n },\n context\n });\n const transitionDurationMs = getTransitionDurationMs(element);\n // 1. We have to both listen for the 'transitionend' event and have a 'just-in-case' timer,\n // because 'transitionend' event might not be fired in some browsers, if the transitioning\n // element becomes invisible (ex. when scrolling, making browser tab inactive, etc.). The timer\n // guarantees, that we'll release the DOM element and complete 'ngbRunTransition'.\n // 2. We need to filter transition end events, because they might bubble from shorter transitions\n // on inner DOM elements. We're only interested in the transition on the 'element' itself.\n zone.runOutsideAngular(() => {\n const transitionEnd$ = fromEvent(element, 'transitionend').pipe(takeUntil(stop$), filter(({\n target\n }) => target === element));\n const timer$ = timer(transitionDurationMs + transitionTimerDelayMs).pipe(takeUntil(stop$));\n race(timer$, transitionEnd$, finishTransition$).pipe(takeUntil(stop$)).subscribe(() => {\n runningTransitions.delete(element);\n zone.run(() => {\n endFn();\n transition$.next();\n transition$.complete();\n });\n });\n });\n return transition$.asObservable();\n};\nconst ngbCompleteTransition = element => {\n runningTransitions.get(element)?.complete();\n};\nfunction measureCollapsingElementDimensionPx(element, dimension) {\n // SSR fix for without injecting the PlatformId\n if (typeof navigator === 'undefined') {\n return '0px';\n }\n const {\n classList\n } = element;\n const hasShownClass = classList.contains('show');\n if (!hasShownClass) {\n classList.add('show');\n }\n element.style[dimension] = '';\n const dimensionSize = element.getBoundingClientRect()[dimension] + 'px';\n if (!hasShownClass) {\n classList.remove('show');\n }\n return dimensionSize;\n}\nconst ngbCollapsingTransition = (element, animation, context) => {\n let {\n direction,\n maxSize,\n dimension\n } = context;\n const {\n classList\n } = element;\n function setInitialClasses() {\n classList.add('collapse');\n if (direction === 'show') {\n classList.add('show');\n } else {\n classList.remove('show');\n }\n }\n // without animations we just need to set initial classes\n if (!animation) {\n setInitialClasses();\n return;\n }\n // No maxHeight -> running the transition for the first time\n if (!maxSize) {\n maxSize = measureCollapsingElementDimensionPx(element, dimension);\n context.maxSize = maxSize;\n // Fix the height before starting the animation\n element.style[dimension] = direction !== 'show' ? maxSize : '0px';\n classList.remove('collapse');\n classList.remove('collapsing');\n classList.remove('show');\n reflow(element);\n // Start the animation\n classList.add('collapsing');\n }\n // Start or revert the animation\n element.style[dimension] = direction === 'show' ? maxSize : '0px';\n return () => {\n setInitialClasses();\n classList.remove('collapsing');\n element.style[dimension] = '';\n };\n};\n\n/**\n * A configuration service for the [NgbCollapse](#/components/collapse/api#NgbCollapse) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all collapses used in the application.\n */\nclass NgbCollapseConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.horizontal = false;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static {\n this.ɵfac = function NgbCollapseConfig_Factory(t) {\n return new (t || NgbCollapseConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCollapseConfig,\n factory: NgbCollapseConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCollapseConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A directive to provide a simple way of hiding and showing elements on the\n * page.\n */\nclass NgbCollapse {\n constructor() {\n this._config = inject(NgbCollapseConfig);\n this._element = inject(ElementRef);\n this._zone = inject(NgZone);\n /**\n * If `true`, collapse will be animated.\n *\n * Animation is triggered only when clicked on triggering element\n * or via the `.toggle()` function\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * Flag used to track if the collapse setter is invoked during initialization\n * or not. This distinction is made in order to avoid running the transition during initialization.\n */\n this._afterInit = false;\n this._isCollapsed = false;\n this.ngbCollapseChange = new EventEmitter();\n /**\n * If `true`, will collapse horizontally.\n *\n * @since 13.1.0\n */\n this.horizontal = this._config.horizontal;\n /**\n * An event emitted when the collapse element is shown, after the transition.\n * It has no payload.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the collapse element is hidden, after the transition.\n * It has no payload.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n }\n /**\n * If `true`, will collapse the element or show it otherwise.\n */\n set collapsed(isCollapsed) {\n if (this._isCollapsed !== isCollapsed) {\n this._isCollapsed = isCollapsed;\n if (this._afterInit) {\n this._runTransitionWithEvents(isCollapsed, this.animation);\n }\n }\n }\n ngOnInit() {\n this._runTransition(this._isCollapsed, false);\n this._afterInit = true;\n }\n /**\n * Triggers collapsing programmatically.\n *\n * If there is a collapsing transition running already, it will be reversed.\n * If the animations are turned off this happens synchronously.\n *\n * @since 8.0.0\n */\n toggle(open = this._isCollapsed) {\n this.collapsed = !open;\n this.ngbCollapseChange.next(this._isCollapsed);\n }\n _runTransition(collapsed, animation) {\n return ngbRunTransition(this._zone, this._element.nativeElement, ngbCollapsingTransition, {\n animation,\n runningTransition: 'stop',\n context: {\n direction: collapsed ? 'hide' : 'show',\n dimension: this.horizontal ? 'width' : 'height'\n }\n });\n }\n _runTransitionWithEvents(collapsed, animation) {\n this._runTransition(collapsed, animation).subscribe(() => {\n if (collapsed) {\n this.hidden.emit();\n } else {\n this.shown.emit();\n }\n });\n }\n static {\n this.ɵfac = function NgbCollapse_Factory(t) {\n return new (t || NgbCollapse)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbCollapse,\n selectors: [[\"\", \"ngbCollapse\", \"\"]],\n hostVars: 2,\n hostBindings: function NgbCollapse_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"collapse-horizontal\", ctx.horizontal);\n }\n },\n inputs: {\n animation: \"animation\",\n collapsed: [i0.ɵɵInputFlags.None, \"ngbCollapse\", \"collapsed\"],\n horizontal: \"horizontal\"\n },\n outputs: {\n ngbCollapseChange: \"ngbCollapseChange\",\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbCollapse\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCollapse, [{\n type: Directive,\n args: [{\n selector: '[ngbCollapse]',\n exportAs: 'ngbCollapse',\n standalone: true,\n host: {\n '[class.collapse-horizontal]': 'horizontal'\n }\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n collapsed: [{\n type: Input,\n args: ['ngbCollapse']\n }],\n ngbCollapseChange: [{\n type: Output\n }],\n horizontal: [{\n type: Input\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }]\n });\n})();\nlet nextId$3 = 0;\n/**\n * A directive that wraps the content of an accordion item's collapsible body.\n *\n * The actual content is provided in a child `ng-template` element.\n * Depending on the state of the accordion, the template will be either inserted or removed from the DOM.\n *\n * @since 14.1.0\n */\nclass NgbAccordionBody {\n constructor() {\n this._vcr = inject(ViewContainerRef);\n this._element = inject(ElementRef).nativeElement;\n this._item = inject(NgbAccordionItem);\n this._viewRef = null;\n }\n ngAfterContentChecked() {\n if (this._bodyTpl) {\n if (this._item._shouldBeInDOM) {\n this._createViewIfNotExists();\n } else {\n this._destroyViewIfExists();\n }\n }\n }\n ngOnDestroy() {\n this._destroyViewIfExists();\n }\n _destroyViewIfExists() {\n if (this._viewRef) {\n this._viewRef.destroy();\n this._viewRef = null;\n }\n }\n _createViewIfNotExists() {\n if (!this._viewRef) {\n this._viewRef = this._vcr.createEmbeddedView(this._bodyTpl);\n this._viewRef.detectChanges();\n for (const node of this._viewRef.rootNodes) {\n this._element.appendChild(node);\n }\n }\n }\n static {\n this.ɵfac = function NgbAccordionBody_Factory(t) {\n return new (t || NgbAccordionBody)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionBody,\n selectors: [[\"\", \"ngbAccordionBody\", \"\"]],\n contentQueries: function NgbAccordionBody_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, TemplateRef, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._bodyTpl = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function NgbAccordionBody_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"accordion-body\", true);\n }\n },\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionBody, [{\n type: Directive,\n args: [{\n selector: '[ngbAccordionBody]',\n standalone: true,\n host: {\n '[class.accordion-body]': 'true'\n }\n }]\n }], null, {\n _bodyTpl: [{\n type: ContentChild,\n args: [TemplateRef, {\n static: true\n }]\n }]\n });\n})();\n/**\n * A directive that wraps the collapsible item's content of the accordion.\n *\n * Internally it reuses the [`NgbCollapse` directive](#/components/collapse)\n *\n * @since 14.1.0\n */\nclass NgbAccordionCollapse {\n constructor() {\n this.item = inject(NgbAccordionItem);\n this.ngbCollapse = inject(NgbCollapse);\n }\n static {\n this.ɵfac = function NgbAccordionCollapse_Factory(t) {\n return new (t || NgbAccordionCollapse)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionCollapse,\n selectors: [[\"\", \"ngbAccordionCollapse\", \"\"]],\n hostAttrs: [\"role\", \"region\"],\n hostVars: 4,\n hostBindings: function NgbAccordionCollapse_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.item.collapseId);\n i0.ɵɵattribute(\"aria-labelledby\", ctx.item.toggleId);\n i0.ɵɵclassProp(\"accordion-collapse\", true);\n }\n },\n exportAs: [\"ngbAccordionCollapse\"],\n standalone: true,\n features: [i0.ɵɵHostDirectivesFeature([NgbCollapse])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionCollapse, [{\n type: Directive,\n args: [{\n exportAs: 'ngbAccordionCollapse',\n standalone: true,\n selector: '[ngbAccordionCollapse]',\n host: {\n role: 'region',\n '[class.accordion-collapse]': 'true',\n '[id]': 'item.collapseId',\n '[attr.aria-labelledby]': 'item.toggleId'\n },\n hostDirectives: [NgbCollapse]\n }]\n }], null, null);\n})();\n/**\n * A directive to put on a toggling element inside the accordion item's header.\n * It will register click handlers that toggle the associated panel and will handle accessibility attributes.\n *\n * This directive is used internally by the [`NgbAccordionButton` directive](#/components/accordion/api#NgbAccordionButton).\n *\n * @since 14.1.0\n */\nclass NgbAccordionToggle {\n constructor() {\n this.item = inject(NgbAccordionItem);\n this.accordion = inject(NgbAccordionDirective);\n }\n static {\n this.ɵfac = function NgbAccordionToggle_Factory(t) {\n return new (t || NgbAccordionToggle)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionToggle,\n selectors: [[\"\", \"ngbAccordionToggle\", \"\"]],\n hostVars: 5,\n hostBindings: function NgbAccordionToggle_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function NgbAccordionToggle_click_HostBindingHandler() {\n return !ctx.item.disabled && ctx.accordion.toggle(ctx.item.id);\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.item.toggleId);\n i0.ɵɵattribute(\"aria-controls\", ctx.item.collapseId)(\"aria-expanded\", !ctx.item.collapsed);\n i0.ɵɵclassProp(\"collapsed\", ctx.item.collapsed);\n }\n },\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionToggle, [{\n type: Directive,\n args: [{\n selector: '[ngbAccordionToggle]',\n standalone: true,\n host: {\n '[id]': 'item.toggleId',\n '[class.collapsed]': 'item.collapsed',\n '[attr.aria-controls]': 'item.collapseId',\n '[attr.aria-expanded]': '!item.collapsed',\n '(click)': '!item.disabled && accordion.toggle(item.id)'\n }\n }]\n }], null, null);\n})();\n/**\n * A directive to put on a button element inside an accordion item's header.\n *\n * If you want a custom markup for the header, you can also use the [`NgbAccordionToggle` directive](#/components/accordion/api#NgbAccordionToggle).\n *\n * @since 14.1.0\n */\nclass NgbAccordionButton {\n constructor() {\n this.item = inject(NgbAccordionItem);\n }\n static {\n this.ɵfac = function NgbAccordionButton_Factory(t) {\n return new (t || NgbAccordionButton)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionButton,\n selectors: [[\"button\", \"ngbAccordionButton\", \"\"]],\n hostAttrs: [\"type\", \"button\"],\n hostVars: 3,\n hostBindings: function NgbAccordionButton_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"disabled\", ctx.item.disabled);\n i0.ɵɵclassProp(\"accordion-button\", true);\n }\n },\n standalone: true,\n features: [i0.ɵɵHostDirectivesFeature([NgbAccordionToggle])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionButton, [{\n type: Directive,\n args: [{\n selector: 'button[ngbAccordionButton]',\n standalone: true,\n host: {\n '[disabled]': 'item.disabled',\n '[class.accordion-button]': 'true',\n type: 'button'\n },\n hostDirectives: [NgbAccordionToggle]\n }]\n }], null, null);\n})();\n/**\n * A directive that wraps an accordion item's header.\n *\n * @since 14.1.0\n */\nclass NgbAccordionHeader {\n constructor() {\n this.item = inject(NgbAccordionItem);\n }\n static {\n this.ɵfac = function NgbAccordionHeader_Factory(t) {\n return new (t || NgbAccordionHeader)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionHeader,\n selectors: [[\"\", \"ngbAccordionHeader\", \"\"]],\n hostAttrs: [\"role\", \"heading\"],\n hostVars: 4,\n hostBindings: function NgbAccordionHeader_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"accordion-header\", true)(\"collapsed\", ctx.item.collapsed);\n }\n },\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionHeader, [{\n type: Directive,\n args: [{\n selector: '[ngbAccordionHeader]',\n standalone: true,\n host: {\n role: 'heading',\n '[class.accordion-header]': 'true',\n '[class.collapsed]': 'item.collapsed'\n }\n }]\n }], null, null);\n})();\n/**\n * A directive that wraps an accordion item: a toggleable header + body that collapses.\n *\n * You can get hold of the `NgbAccordionItem` instance in the template with `#item=\"ngbAccordionItem\"`.\n * It allows to check if the item is collapsed or not, toggle the collapse state, etc.\n *\n * Every accordion item has a string ID that is automatically generated in the `ngb-accordion-item-XX` format, unless provided explicitly.\n *\n * @since 14.1.0\n */\nclass NgbAccordionItem {\n constructor() {\n this._accordion = inject(NgbAccordionDirective);\n this._cd = inject(ChangeDetectorRef);\n this._destroyRef = inject(DestroyRef);\n this._collapsed = true;\n this._id = `ngb-accordion-item-${nextId$3++}`;\n this._collapseAnimationRunning = false;\n /**\n * If `true`, the accordion item will be disabled.\n * It won't react to user's clicks, but still will be toggelable programmatically.\n */\n this.disabled = false;\n /**\n * Event emitted before the expanding animation starts. It has no payload.\n *\n * @since 15.1.0\n */\n this.show = new EventEmitter();\n /**\n * Event emitted when the expanding animation is finished. It has no payload.\n */\n this.shown = new EventEmitter();\n /**\n * Event emitted before the collapsing animation starts. It has no payload.\n *\n * @since 15.1.0\n */\n this.hide = new EventEmitter();\n /**\n * Event emitted when the collapsing animation is finished and before the content is removed from DOM.\n * It has no payload.\n */\n this.hidden = new EventEmitter();\n }\n /**\n * Sets the custom ID of the accordion item. It must be unique for the document.\n *\n * @param id The ID of the accordion item, must be a non-empty string\n */\n set id(id) {\n if (isString(id) && id !== '') {\n this._id = id;\n }\n }\n /**\n * If `true`, the content of the accordion item's body will be removed from the DOM. It will be just hidden otherwise.\n *\n * This property can also be set up on the parent [`NgbAccordion` directive](#/components/accordion/api#NgbAccordionDirective).\n */\n set destroyOnHide(destroyOnHide) {\n this._destroyOnHide = destroyOnHide;\n }\n get destroyOnHide() {\n return this._destroyOnHide === undefined ? this._accordion.destroyOnHide : this._destroyOnHide;\n }\n /**\n *\tIf `true`, the accordion item will be collapsed. Otherwise, it will be expanded.\n *\n * @param collapsed New state of the accordion item.\n */\n set collapsed(collapsed) {\n if (collapsed) {\n this.collapse();\n } else {\n this.expand();\n }\n }\n get collapsed() {\n return this._collapsed;\n }\n get id() {\n return `${this._id}`;\n }\n get toggleId() {\n return `${this.id}-toggle`;\n }\n get collapseId() {\n return `${this.id}-collapse`;\n }\n get _shouldBeInDOM() {\n return !this.collapsed || this._collapseAnimationRunning || !this.destroyOnHide;\n }\n ngAfterContentInit() {\n const {\n ngbCollapse\n } = this._collapse;\n // we need to disable the animation for the first init\n ngbCollapse.animation = false;\n ngbCollapse.collapsed = this.collapsed;\n // we set the animation to the default of the accordion\n ngbCollapse.animation = this._accordion.animation;\n // event forwarding from 'ngbCollapse' to 'ngbAccordion'\n ngbCollapse.hidden.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n // when the animation finishes we can remove the template from DOM\n this._collapseAnimationRunning = false;\n this.hidden.emit();\n this._accordion.hidden.emit(this.id);\n });\n ngbCollapse.shown.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this.shown.emit();\n this._accordion.shown.emit(this.id);\n });\n }\n /**\n * Toggles an accordion item.\n */\n toggle() {\n this.collapsed = !this.collapsed;\n }\n /**\n * Expands an accordion item.\n */\n expand() {\n if (this.collapsed) {\n // checking if accordion allows to expand the panel in respect to 'closeOthers' flag\n if (!this._accordion._ensureCanExpand(this)) {\n return;\n }\n this._collapsed = false;\n // need if the accordion is used inside a component having OnPush change detection strategy\n this._cd.markForCheck();\n // we need force CD to get template into DOM before starting animation to calculate its height correctly\n // this will synchronously put the item body into DOM, because `this._collapsed` was flipped to `false`\n this._cd.detectChanges();\n // firing events before starting animations\n this.show.emit();\n this._accordion.show.emit(this.id);\n // we also need to make sure 'animation' flag is up-to- date\n this._collapse.ngbCollapse.animation = this._accordion.animation;\n this._collapse.ngbCollapse.collapsed = false;\n }\n }\n /**\n * Collapses an accordion item.\n */\n collapse() {\n if (!this.collapsed) {\n this._collapsed = true;\n this._collapseAnimationRunning = true;\n // need if the accordion is used inside a component having OnPush change detection strategy\n this._cd.markForCheck();\n // firing events before starting animations\n this.hide.emit();\n this._accordion.hide.emit(this.id);\n // we also need to make sure 'animation' flag is up-to- date\n this._collapse.ngbCollapse.animation = this._accordion.animation;\n this._collapse.ngbCollapse.collapsed = true;\n }\n }\n static {\n this.ɵfac = function NgbAccordionItem_Factory(t) {\n return new (t || NgbAccordionItem)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionItem,\n selectors: [[\"\", \"ngbAccordionItem\", \"\"]],\n contentQueries: function NgbAccordionItem_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbAccordionCollapse, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._collapse = _t.first);\n }\n },\n hostVars: 3,\n hostBindings: function NgbAccordionItem_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵclassProp(\"accordion-item\", true);\n }\n },\n inputs: {\n id: [i0.ɵɵInputFlags.None, \"ngbAccordionItem\", \"id\"],\n destroyOnHide: \"destroyOnHide\",\n disabled: \"disabled\",\n collapsed: \"collapsed\"\n },\n outputs: {\n show: \"show\",\n shown: \"shown\",\n hide: \"hide\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbAccordionItem\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionItem, [{\n type: Directive,\n args: [{\n selector: '[ngbAccordionItem]',\n exportAs: 'ngbAccordionItem',\n standalone: true,\n host: {\n '[class.accordion-item]': 'true',\n '[id]': 'id'\n }\n }]\n }], null, {\n _collapse: [{\n type: ContentChild,\n args: [NgbAccordionCollapse, {\n static: true\n }]\n }],\n id: [{\n type: Input,\n args: ['ngbAccordionItem']\n }],\n destroyOnHide: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n collapsed: [{\n type: Input\n }],\n show: [{\n type: Output\n }],\n shown: [{\n type: Output\n }],\n hide: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }]\n });\n})();\n/**\n * Accordion is a stack of cards that have a header and collapsible body.\n *\n * This directive is a container for these items and provides an API to handle them.\n *\n * @since 14.1.0\n */\nclass NgbAccordionDirective {\n constructor() {\n this._config = inject(NgbAccordionConfig);\n this._anItemWasAlreadyExpandedDuringInitialisation = false;\n /**\n * If `true`, accordion will be animated.\n */\n this.animation = this._config.animation;\n /**\n * If `true`, only one item at the time can stay open.\n */\n this.closeOthers = this._config.closeOthers;\n /**\n * If `true`, the content of the accordion items body will be removed from the DOM. It will be just hidden otherwise.\n *\n * This property can be overwritten at the [`NgbAccordionItem`](#/components/accordion/api#NgbAccordionItem) level\n */\n this.destroyOnHide = this._config.destroyOnHide;\n /**\n * Event emitted before expanding animation starts. The payload is the id of shown accordion item.\n *\n * @since 15.1.0\n */\n this.show = new EventEmitter();\n /**\n * Event emitted when the expanding animation is finished. The payload is the id of shown accordion item.\n */\n this.shown = new EventEmitter();\n /**\n * Event emitted before the collapsing animation starts. The payload is the id of hidden accordion item.\n *\n * @since 15.1.0\n */\n this.hide = new EventEmitter();\n /**\n * Event emitted when the collapsing animation is finished and before the content is removed from DOM.\n * The payload is the id of hidden accordion item.\n */\n this.hidden = new EventEmitter();\n }\n /**\n * Toggles an item with the given id.\n *\n * It will toggle an item, even if it is disabled.\n *\n * @param itemId The id of the item to toggle.\n */\n toggle(itemId) {\n this._getItem(itemId)?.toggle();\n }\n /**\n * Expands an item with the given id.\n *\n * If `closeOthers` is `true`, it will collapse other panels.\n *\n * @param itemId The id of the item to expand.\n */\n expand(itemId) {\n this._getItem(itemId)?.expand();\n }\n /**\n * Expands all items.\n *\n * If `closeOthers` is `true` and all items are closed, it will open the first one. Otherwise, it will keep the opened one.\n */\n expandAll() {\n if (this._items) {\n if (this.closeOthers) {\n // we check if there is an item open and if it is not we can expand the first item\n // (otherwise we toggle nothing)\n if (!this._items.find(item => !item.collapsed)) {\n this._items.first.expand();\n }\n } else {\n this._items.forEach(item => item.expand());\n }\n }\n }\n /**\n * Collapses an item with the given id.\n *\n * Has no effect if the `itemId` does not correspond to any item.\n *\n * @param itemId The id of the item to collapse.\n */\n collapse(itemId) {\n this._getItem(itemId)?.collapse();\n }\n /**\n * Collapses all items.\n */\n collapseAll() {\n this._items?.forEach(item => item.collapse());\n }\n /**\n * Checks if an item with the given id is expanded.\n *\n * If the `itemId` does not correspond to any item, it returns `false`.\n *\n * @param itemId The id of the item to check.\n */\n isExpanded(itemId) {\n const item = this._getItem(itemId);\n return item ? !item.collapsed : false;\n }\n /**\n * It checks, if the item can be expanded in the current state of the accordion.\n * With `closeOthers` there can be only one expanded item at a time.\n *\n * @internal\n */\n _ensureCanExpand(toExpand) {\n if (!this.closeOthers) {\n return true;\n }\n // special case during the initialization of the [collapse]=\"false\" inputs\n // `this._items` QueryList is not yet initialized, but we need to ensure only one item can be expanded at a time\n if (!this._items) {\n if (!this._anItemWasAlreadyExpandedDuringInitialisation) {\n this._anItemWasAlreadyExpandedDuringInitialisation = true;\n return true;\n }\n return false;\n }\n // if there is an expanded item, we need to collapse it first\n this._items.find(item => !item.collapsed && toExpand !== item)?.collapse();\n return true;\n }\n _getItem(itemId) {\n return this._items?.find(item => item.id === itemId);\n }\n static {\n this.ɵfac = function NgbAccordionDirective_Factory(t) {\n return new (t || NgbAccordionDirective)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbAccordionDirective,\n selectors: [[\"\", \"ngbAccordion\", \"\"]],\n contentQueries: function NgbAccordionDirective_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbAccordionItem, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._items = _t);\n }\n },\n hostVars: 2,\n hostBindings: function NgbAccordionDirective_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"accordion\", true);\n }\n },\n inputs: {\n animation: \"animation\",\n closeOthers: \"closeOthers\",\n destroyOnHide: \"destroyOnHide\"\n },\n outputs: {\n show: \"show\",\n shown: \"shown\",\n hide: \"hide\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbAccordion\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionDirective, [{\n type: Directive,\n args: [{\n selector: '[ngbAccordion]',\n standalone: true,\n exportAs: 'ngbAccordion',\n host: {\n '[class.accordion]': 'true'\n }\n }]\n }], null, {\n _items: [{\n type: ContentChildren,\n args: [NgbAccordionItem, {\n descendants: false\n }]\n }],\n animation: [{\n type: Input\n }],\n closeOthers: [{\n type: Input\n }],\n destroyOnHide: [{\n type: Input\n }],\n show: [{\n type: Output\n }],\n shown: [{\n type: Output\n }],\n hide: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }]\n });\n})();\nconst NGB_ACCORDION_DIRECTIVES = [NgbAccordionButton, NgbAccordionDirective, NgbAccordionItem, NgbAccordionHeader, NgbAccordionToggle, NgbAccordionBody, NgbAccordionCollapse];\nclass NgbAccordionModule {\n static {\n this.ɵfac = function NgbAccordionModule_Factory(t) {\n return new (t || NgbAccordionModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbAccordionModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAccordionModule, [{\n type: NgModule,\n args: [{\n imports: NGB_ACCORDION_DIRECTIVES,\n exports: NGB_ACCORDION_DIRECTIVES\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [NgbAlert](#/components/alert/api#NgbAlert) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all alerts used in the application.\n */\nclass NgbAlertConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.dismissible = true;\n this.type = 'warning';\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static {\n this.ɵfac = function NgbAlertConfig_Factory(t) {\n return new (t || NgbAlertConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbAlertConfig,\n factory: NgbAlertConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAlertConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nconst ngbAlertFadingTransition = ({\n classList\n}) => {\n classList.remove('show');\n};\n\n/**\n * Alert is a component to provide contextual feedback messages for user.\n *\n * It supports several alert types and can be dismissed.\n */\nclass NgbAlert {\n constructor() {\n this._config = inject(NgbAlertConfig);\n this._elementRef = inject(ElementRef);\n this._zone = inject(NgZone);\n /**\n * If `true`, alert closing will be animated.\n *\n * Animation is triggered only when clicked on the close button (×)\n * or via the `.close()` function\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * If `true`, alert can be dismissed by the user.\n *\n * The close button (×) will be displayed and you can be notified\n * of the event with the `(closed)` output.\n */\n this.dismissible = this._config.dismissible;\n /**\n * Type of the alert.\n *\n * Bootstrap provides styles for the following types: `'success'`, `'info'`, `'warning'`, `'danger'`, `'primary'`,\n * `'secondary'`, `'light'` and `'dark'`.\n */\n this.type = this._config.type;\n /**\n * An event emitted when the close button is clicked. It has no payload and only relevant for dismissible alerts.\n *\n * @since 8.0.0\n */\n this.closed = new EventEmitter();\n }\n /**\n * Triggers alert closing programmatically (same as clicking on the close button (×)).\n *\n * The returned observable will emit and be completed once the closing transition has finished.\n * If the animations are turned off this happens synchronously.\n *\n * Alternatively you could listen or subscribe to the `(closed)` output\n *\n * @since 8.0.0\n */\n close() {\n const transition = ngbRunTransition(this._zone, this._elementRef.nativeElement, ngbAlertFadingTransition, {\n animation: this.animation,\n runningTransition: 'continue'\n });\n transition.subscribe(() => this.closed.emit());\n return transition;\n }\n static {\n this.ɵfac = function NgbAlert_Factory(t) {\n return new (t || NgbAlert)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbAlert,\n selectors: [[\"ngb-alert\"]],\n hostAttrs: [\"role\", \"alert\"],\n hostVars: 6,\n hostBindings: function NgbAlert_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassMap(\"alert show\" + (ctx.type ? \" alert-\" + ctx.type : \"\"));\n i0.ɵɵclassProp(\"fade\", ctx.animation)(\"alert-dismissible\", ctx.dismissible);\n }\n },\n inputs: {\n animation: \"animation\",\n dismissible: \"dismissible\",\n type: \"type\"\n },\n outputs: {\n closed: \"closed\"\n },\n exportAs: [\"ngbAlert\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 2,\n vars: 1,\n consts: () => {\n let i18n_0;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_0 = goog.getMsg(\"Close\");\n i18n_0 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_0;\n } else {\n i18n_0 = $localize`:@@ngb.alert.close:Close`;\n }\n return [[\"type\", \"button\", \"class\", \"btn-close\", \"aria-label\", i18n_0], [\"type\", \"button\", \"aria-label\", i18n_0, 1, \"btn-close\", 3, \"click\"]];\n },\n template: function NgbAlert_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n i0.ɵɵtemplate(1, NgbAlert_Conditional_1_Template, 1, 0, \"button\", 0);\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx.dismissible ? 1 : -1);\n }\n },\n styles: [\"ngb-alert{display:block}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAlert, [{\n type: Component,\n args: [{\n selector: 'ngb-alert',\n exportAs: 'ngbAlert',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'alert',\n '[class]': '\"alert show\" + (type ? \" alert-\" + type : \"\")',\n '[class.fade]': 'animation',\n '[class.alert-dismissible]': 'dismissible'\n },\n template: `\n\t\t\n\t\t@if (dismissible) {\n\t\t\t\n\t\t}\n\t`,\n styles: [\"ngb-alert{display:block}\\n\"]\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n dismissible: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n closed: [{\n type: Output\n }]\n });\n})();\nclass NgbAlertModule {\n static {\n this.ɵfac = function NgbAlertModule_Factory(t) {\n return new (t || NgbAlertModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbAlertModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbAlertModule, [{\n type: NgModule,\n args: [{\n imports: [NgbAlert],\n exports: [NgbAlert]\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [NgbCarousel](#/components/carousel/api#NgbCarousel) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all carousels used in the application.\n */\nclass NgbCarouselConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.interval = 5000;\n this.wrap = true;\n this.keyboard = true;\n this.pauseOnHover = true;\n this.pauseOnFocus = true;\n this.showNavigationArrows = true;\n this.showNavigationIndicators = true;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static {\n this.ɵfac = function NgbCarouselConfig_Factory(t) {\n return new (t || NgbCarouselConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCarouselConfig,\n factory: NgbCarouselConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCarouselConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * Defines the carousel slide transition direction.\n */\nvar NgbSlideEventDirection;\n(function (NgbSlideEventDirection) {\n NgbSlideEventDirection[\"START\"] = \"start\";\n NgbSlideEventDirection[\"END\"] = \"end\";\n})(NgbSlideEventDirection || (NgbSlideEventDirection = {}));\nconst isBeingAnimated = ({\n classList\n}) => {\n return classList.contains('carousel-item-start') || classList.contains('carousel-item-end');\n};\nconst removeDirectionClasses = classList => {\n classList.remove('carousel-item-start');\n classList.remove('carousel-item-end');\n};\nconst removeClasses = classList => {\n removeDirectionClasses(classList);\n classList.remove('carousel-item-prev');\n classList.remove('carousel-item-next');\n};\nconst ngbCarouselTransitionIn = (element, animation, {\n direction\n}) => {\n const {\n classList\n } = element;\n if (!animation) {\n removeDirectionClasses(classList);\n removeClasses(classList);\n classList.add('active');\n return;\n }\n if (isBeingAnimated(element)) {\n // Revert the transition\n removeDirectionClasses(classList);\n } else {\n // For the 'in' transition, a 'pre-class' is applied to the element to ensure its visibility\n classList.add('carousel-item-' + (direction === NgbSlideEventDirection.START ? 'next' : 'prev'));\n reflow(element);\n classList.add('carousel-item-' + direction);\n }\n return () => {\n removeClasses(classList);\n classList.add('active');\n };\n};\nconst ngbCarouselTransitionOut = (element, animation, {\n direction\n}) => {\n const {\n classList\n } = element;\n if (!animation) {\n removeDirectionClasses(classList);\n removeClasses(classList);\n classList.remove('active');\n return;\n }\n // direction is left or right, depending on the way the slide goes out.\n if (isBeingAnimated(element)) {\n // Revert the transition\n removeDirectionClasses(classList);\n } else {\n classList.add('carousel-item-' + direction);\n }\n return () => {\n removeClasses(classList);\n classList.remove('active');\n };\n};\nlet nextId$2 = 0;\nlet carouselId = 0;\n/**\n * A directive that wraps the individual carousel slide.\n */\nclass NgbSlide {\n constructor() {\n this.templateRef = inject(TemplateRef);\n /**\n * Slide id that must be unique for the entire document.\n *\n * If not provided, will be generated in the `ngb-slide-xx` format.\n */\n this.id = `ngb-slide-${nextId$2++}`;\n /**\n * An event emitted when the slide transition is finished\n *\n * @since 8.0.0\n */\n this.slid = new EventEmitter();\n }\n static {\n this.ɵfac = function NgbSlide_Factory(t) {\n return new (t || NgbSlide)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbSlide,\n selectors: [[\"ng-template\", \"ngbSlide\", \"\"]],\n inputs: {\n id: \"id\"\n },\n outputs: {\n slid: \"slid\"\n },\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbSlide, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbSlide]',\n standalone: true\n }]\n }], null, {\n id: [{\n type: Input\n }],\n slid: [{\n type: Output\n }]\n });\n})();\n/**\n * Carousel is a component to easily create and control slideshows.\n *\n * Allows to set intervals, change the way user interacts with the slides and provides a programmatic API.\n */\nclass NgbCarousel {\n constructor() {\n this.NgbSlideEventSource = NgbSlideEventSource;\n this._config = inject(NgbCarouselConfig);\n this._platformId = inject(PLATFORM_ID);\n this._ngZone = inject(NgZone);\n this._cd = inject(ChangeDetectorRef);\n this._container = inject(ElementRef);\n this._destroyRef = inject(DestroyRef);\n this._interval$ = new BehaviorSubject(this._config.interval);\n this._mouseHover$ = new BehaviorSubject(false);\n this._focused$ = new BehaviorSubject(false);\n this._pauseOnHover$ = new BehaviorSubject(this._config.pauseOnHover);\n this._pauseOnFocus$ = new BehaviorSubject(this._config.pauseOnFocus);\n this._pause$ = new BehaviorSubject(false);\n this._wrap$ = new BehaviorSubject(this._config.wrap);\n this.id = `ngb-carousel-${carouselId++}`;\n /**\n * A flag to enable/disable the animations.\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * If `true`, allows to interact with carousel using keyboard 'arrow left' and 'arrow right'.\n */\n this.keyboard = this._config.keyboard;\n /**\n * If `true`, 'previous' and 'next' navigation arrows will be visible on the slide.\n *\n * @since 2.2.0\n */\n this.showNavigationArrows = this._config.showNavigationArrows;\n /**\n * If `true`, navigation indicators at the bottom of the slide will be visible.\n *\n * @since 2.2.0\n */\n this.showNavigationIndicators = this._config.showNavigationIndicators;\n /**\n * An event emitted just before the slide transition starts.\n *\n * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details.\n */\n this.slide = new EventEmitter();\n /**\n * An event emitted right after the slide transition is completed.\n *\n * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details.\n *\n * @since 8.0.0\n */\n this.slid = new EventEmitter();\n /*\n * Keep the ids of the panels currently transitionning\n * in order to allow only the transition revertion\n */\n this._transitionIds = null;\n }\n /**\n * Time in milliseconds before the next slide is shown.\n */\n set interval(value) {\n this._interval$.next(value);\n }\n get interval() {\n return this._interval$.value;\n }\n /**\n * If `true`, will 'wrap' the carousel by switching from the last slide back to the first.\n */\n set wrap(value) {\n this._wrap$.next(value);\n }\n get wrap() {\n return this._wrap$.value;\n }\n /**\n * If `true`, will pause slide switching when mouse cursor hovers the slide.\n *\n * @since 2.2.0\n */\n set pauseOnHover(value) {\n this._pauseOnHover$.next(value);\n }\n get pauseOnHover() {\n return this._pauseOnHover$.value;\n }\n /**\n * If `true`, will pause slide switching when the focus is inside the carousel.\n */\n set pauseOnFocus(value) {\n this._pauseOnFocus$.next(value);\n }\n get pauseOnFocus() {\n return this._pauseOnFocus$.value;\n }\n set mouseHover(value) {\n this._mouseHover$.next(value);\n }\n get mouseHover() {\n return this._mouseHover$.value;\n }\n set focused(value) {\n this._focused$.next(value);\n }\n get focused() {\n return this._focused$.value;\n }\n arrowLeft() {\n this.focus();\n this.prev(NgbSlideEventSource.ARROW_LEFT);\n }\n arrowRight() {\n this.focus();\n this.next(NgbSlideEventSource.ARROW_RIGHT);\n }\n ngAfterContentInit() {\n // setInterval() doesn't play well with SSR and protractor,\n // so we should run it in the browser and outside Angular\n if (isPlatformBrowser(this._platformId)) {\n this._ngZone.runOutsideAngular(() => {\n const hasNextSlide$ = combineLatest([this.slide.pipe(map(slideEvent => slideEvent.current), startWith(this.activeId)), this._wrap$, this.slides.changes.pipe(startWith(null))]).pipe(map(([currentSlideId, wrap]) => {\n const slideArr = this.slides.toArray();\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n return wrap ? slideArr.length > 1 : currentSlideIdx < slideArr.length - 1;\n }), distinctUntilChanged());\n combineLatest([this._pause$, this._pauseOnHover$, this._mouseHover$, this._pauseOnFocus$, this._focused$, this._interval$, hasNextSlide$]).pipe(map(([pause, pauseOnHover, mouseHover, pauseOnFocus, focused, interval, hasNextSlide]) => pause || pauseOnHover && mouseHover || pauseOnFocus && focused || !hasNextSlide ? 0 : interval), distinctUntilChanged(), switchMap(interval => interval > 0 ? timer(interval, interval) : NEVER), takeUntilDestroyed(this._destroyRef)).subscribe(() => this._ngZone.run(() => this.next(NgbSlideEventSource.TIMER)));\n });\n }\n this.slides.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._transitionIds?.forEach(id => ngbCompleteTransition(this._getSlideElement(id)));\n this._transitionIds = null;\n this._cd.markForCheck();\n // The following code need to be done asynchronously, after the dom becomes stable,\n // otherwise all changes will be undone.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n for (const {\n id\n } of this.slides) {\n const element = this._getSlideElement(id);\n if (id === this.activeId) {\n element.classList.add('active');\n } else {\n element.classList.remove('active');\n }\n }\n });\n });\n }\n ngAfterContentChecked() {\n let activeSlide = this._getSlideById(this.activeId);\n this.activeId = activeSlide ? activeSlide.id : this.slides.length ? this.slides.first.id : '';\n }\n ngAfterViewInit() {\n // Initialize the 'active' class (not managed by the template)\n if (this.activeId) {\n const element = this._getSlideElement(this.activeId);\n if (element) {\n element.classList.add('active');\n }\n }\n }\n /**\n * Navigates to a slide with the specified identifier.\n */\n select(slideId, source) {\n this._cycleToSelected(slideId, this._getSlideEventDirection(this.activeId, slideId), source);\n }\n /**\n * Navigates to the previous slide.\n */\n prev(source) {\n this._cycleToSelected(this._getPrevSlide(this.activeId), NgbSlideEventDirection.END, source);\n }\n /**\n * Navigates to the next slide.\n */\n next(source) {\n this._cycleToSelected(this._getNextSlide(this.activeId), NgbSlideEventDirection.START, source);\n }\n /**\n * Pauses cycling through the slides.\n */\n pause() {\n this._pause$.next(true);\n }\n /**\n * Restarts cycling through the slides from start to end.\n */\n cycle() {\n this._pause$.next(false);\n }\n /**\n * Set the focus on the carousel.\n */\n focus() {\n this._container.nativeElement.focus();\n }\n _cycleToSelected(slideIdx, direction, source) {\n const transitionIds = this._transitionIds;\n if (transitionIds && (transitionIds[0] !== slideIdx || transitionIds[1] !== this.activeId)) {\n // Revert prevented\n return;\n }\n let selectedSlide = this._getSlideById(slideIdx);\n if (selectedSlide && selectedSlide.id !== this.activeId) {\n this._transitionIds = [this.activeId, slideIdx];\n this.slide.emit({\n prev: this.activeId,\n current: selectedSlide.id,\n direction: direction,\n paused: this._pause$.value,\n source\n });\n const options = {\n animation: this.animation,\n runningTransition: 'stop',\n context: {\n direction\n }\n };\n const transitions = [];\n const activeSlide = this._getSlideById(this.activeId);\n if (activeSlide) {\n const activeSlideTransition = ngbRunTransition(this._ngZone, this._getSlideElement(activeSlide.id), ngbCarouselTransitionOut, options);\n activeSlideTransition.subscribe(() => {\n activeSlide.slid.emit({\n isShown: false,\n direction,\n source\n });\n });\n transitions.push(activeSlideTransition);\n }\n const previousId = this.activeId;\n this.activeId = selectedSlide.id;\n const nextSlide = this._getSlideById(this.activeId);\n const transition = ngbRunTransition(this._ngZone, this._getSlideElement(selectedSlide.id), ngbCarouselTransitionIn, options);\n transition.subscribe(() => {\n nextSlide?.slid.emit({\n isShown: true,\n direction,\n source\n });\n });\n transitions.push(transition);\n zip(...transitions).pipe(take(1)).subscribe(() => {\n this._transitionIds = null;\n this.slid.emit({\n prev: previousId,\n current: selectedSlide.id,\n direction: direction,\n paused: this._pause$.value,\n source\n });\n });\n }\n // we get here after the interval fires or any external API call like next(), prev() or select()\n this._cd.markForCheck();\n }\n _getSlideEventDirection(currentActiveSlideId, nextActiveSlideId) {\n const currentActiveSlideIdx = this._getSlideIdxById(currentActiveSlideId);\n const nextActiveSlideIdx = this._getSlideIdxById(nextActiveSlideId);\n return currentActiveSlideIdx > nextActiveSlideIdx ? NgbSlideEventDirection.END : NgbSlideEventDirection.START;\n }\n _getSlideById(slideId) {\n return this.slides.find(slide => slide.id === slideId) || null;\n }\n _getSlideIdxById(slideId) {\n const slide = this._getSlideById(slideId);\n return slide != null ? this.slides.toArray().indexOf(slide) : -1;\n }\n _getNextSlide(currentSlideId) {\n const slideArr = this.slides.toArray();\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n const isLastSlide = currentSlideIdx === slideArr.length - 1;\n return isLastSlide ? this.wrap ? slideArr[0].id : slideArr[slideArr.length - 1].id : slideArr[currentSlideIdx + 1].id;\n }\n _getPrevSlide(currentSlideId) {\n const slideArr = this.slides.toArray();\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n const isFirstSlide = currentSlideIdx === 0;\n return isFirstSlide ? this.wrap ? slideArr[slideArr.length - 1].id : slideArr[0].id : slideArr[currentSlideIdx - 1].id;\n }\n _getSlideElement(slideId) {\n return this._container.nativeElement.querySelector(`#slide-${slideId}`);\n }\n static {\n this.ɵfac = function NgbCarousel_Factory(t) {\n return new (t || NgbCarousel)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbCarousel,\n selectors: [[\"ngb-carousel\"]],\n contentQueries: function NgbCarousel_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbSlide, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.slides = _t);\n }\n },\n hostAttrs: [\"tabIndex\", \"0\", 1, \"carousel\", \"slide\"],\n hostVars: 3,\n hostBindings: function NgbCarousel_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown.arrowLeft\", function NgbCarousel_keydown_arrowLeft_HostBindingHandler() {\n return ctx.keyboard && ctx.arrowLeft();\n })(\"keydown.arrowRight\", function NgbCarousel_keydown_arrowRight_HostBindingHandler() {\n return ctx.keyboard && ctx.arrowRight();\n })(\"mouseenter\", function NgbCarousel_mouseenter_HostBindingHandler() {\n return ctx.mouseHover = true;\n })(\"mouseleave\", function NgbCarousel_mouseleave_HostBindingHandler() {\n return ctx.mouseHover = false;\n })(\"focusin\", function NgbCarousel_focusin_HostBindingHandler() {\n return ctx.focused = true;\n })(\"focusout\", function NgbCarousel_focusout_HostBindingHandler() {\n return ctx.focused = false;\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-activedescendant\", \"slide-\" + ctx.activeId);\n i0.ɵɵstyleProp(\"display\", \"block\");\n }\n },\n inputs: {\n animation: \"animation\",\n activeId: \"activeId\",\n interval: \"interval\",\n wrap: \"wrap\",\n keyboard: \"keyboard\",\n pauseOnHover: \"pauseOnHover\",\n pauseOnFocus: \"pauseOnFocus\",\n showNavigationArrows: \"showNavigationArrows\",\n showNavigationIndicators: \"showNavigationIndicators\"\n },\n outputs: {\n slide: \"slide\",\n slid: \"slid\"\n },\n exportAs: [\"ngbCarousel\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 7,\n vars: 3,\n consts: () => {\n let i18n_1;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @desc Currently selected slide number read by screen reader\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__0 = goog.getMsg(\" Slide {$interpolation} of {$interpolation_1} \", {\n \"interpolation\": \"\\uFFFD0\\uFFFD\",\n \"interpolation_1\": \"\\uFFFD1\\uFFFD\"\n }, {\n original_code: {\n \"interpolation\": \"{{ i + 1 }}\",\n \"interpolation_1\": \"{{ c }}\"\n }\n });\n i18n_1 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__0;\n } else {\n i18n_1 = $localize`:Currently selected slide number read by screen reader@@ngb.carousel.slide-number: Slide ${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION: of ${\"\\uFFFD1\\uFFFD\"}:INTERPOLATION_1: `;\n }\n let i18n_2;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__1 = goog.getMsg(\"Previous\");\n i18n_2 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__1;\n } else {\n i18n_2 = $localize`:@@ngb.carousel.previous:Previous`;\n }\n let i18n_3;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__2 = goog.getMsg(\"Next\");\n i18n_3 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__2;\n } else {\n i18n_3 = $localize`:@@ngb.carousel.next:Next`;\n }\n return [[\"role\", \"tablist\", 1, \"carousel-indicators\"], [1, \"carousel-inner\"], [\"type\", \"button\", \"data-bs-target\", \"\", \"role\", \"tab\", 3, \"click\"], [\"role\", \"tabpanel\", 1, \"carousel-item\", 3, \"id\"], [1, \"visually-hidden\"], i18n_1, [3, \"ngTemplateOutlet\"], [\"type\", \"button\", 1, \"carousel-control-prev\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"carousel-control-prev-icon\"], [1, \"visually-hidden\", 3, \"id\"], i18n_2, [\"type\", \"button\", 1, \"carousel-control-next\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"carousel-control-next-icon\"], i18n_3, [\"type\", \"button\", \"data-bs-target\", \"\", \"role\", \"tab\", 3, \"active\"], [\"class\", \"carousel-item\", \"role\", \"tabpanel\", 3, \"id\"]];\n },\n template: function NgbCarousel_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵrepeaterCreate(1, NgbCarousel_For_2_Template, 1, 5, \"button\", 14, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 1);\n i0.ɵɵrepeaterCreate(4, NgbCarousel_For_5_Template, 4, 4, \"div\", 15, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, NgbCarousel_Conditional_6_Template, 8, 4);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"visually-hidden\", !ctx.showNavigationIndicators);\n i0.ɵɵadvance();\n i0.ɵɵrepeater(ctx.slides);\n i0.ɵɵadvance(3);\n i0.ɵɵrepeater(ctx.slides);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(6, ctx.showNavigationArrows ? 6 : -1);\n }\n },\n dependencies: [NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCarousel, [{\n type: Component,\n args: [{\n selector: 'ngb-carousel',\n exportAs: 'ngbCarousel',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'carousel slide',\n '[style.display]': '\"block\"',\n tabIndex: '0',\n '(keydown.arrowLeft)': 'keyboard && arrowLeft()',\n '(keydown.arrowRight)': 'keyboard && arrowRight()',\n '(mouseenter)': 'mouseHover = true',\n '(mouseleave)': 'mouseHover = false',\n '(focusin)': 'focused = true',\n '(focusout)': 'focused = false',\n '[attr.aria-activedescendant]': `'slide-' + activeId`\n },\n template: `\n\t\t
\n\t\t\t@for (slide of slides; track slide) {\n\t\t\t\t\n\t\t\t}\n\t\t
\n\t\t
\n\t\t\t@for (slide of slides; track slide; let i = $index; let c = $count) {\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\tSlide {{ i + 1 }} of {{ c }}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t}\n\t\t
\n\t\t@if (showNavigationArrows) {\n\t\t\t\n\t\t\t\t\n\t\t\t\tPrevious\n\t\t\t\n\t\t\t\n\t\t}\n\t`\n }]\n }], null, {\n slides: [{\n type: ContentChildren,\n args: [NgbSlide]\n }],\n animation: [{\n type: Input\n }],\n activeId: [{\n type: Input\n }],\n interval: [{\n type: Input\n }],\n wrap: [{\n type: Input\n }],\n keyboard: [{\n type: Input\n }],\n pauseOnHover: [{\n type: Input\n }],\n pauseOnFocus: [{\n type: Input\n }],\n showNavigationArrows: [{\n type: Input\n }],\n showNavigationIndicators: [{\n type: Input\n }],\n slide: [{\n type: Output\n }],\n slid: [{\n type: Output\n }]\n });\n})();\nvar NgbSlideEventSource;\n(function (NgbSlideEventSource) {\n NgbSlideEventSource[\"TIMER\"] = \"timer\";\n NgbSlideEventSource[\"ARROW_LEFT\"] = \"arrowLeft\";\n NgbSlideEventSource[\"ARROW_RIGHT\"] = \"arrowRight\";\n NgbSlideEventSource[\"INDICATOR\"] = \"indicator\";\n})(NgbSlideEventSource || (NgbSlideEventSource = {}));\nclass NgbCarouselModule {\n static {\n this.ɵfac = function NgbCarouselModule_Factory(t) {\n return new (t || NgbCarouselModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbCarouselModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCarouselModule, [{\n type: NgModule,\n args: [{\n imports: [NgbCarousel, NgbSlide],\n exports: [NgbCarousel, NgbSlide]\n }]\n }], null, null);\n})();\nclass NgbCollapseModule {\n static {\n this.ɵfac = function NgbCollapseModule_Factory(t) {\n return new (t || NgbCollapseModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbCollapseModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCollapseModule, [{\n type: NgModule,\n args: [{\n imports: [NgbCollapse],\n exports: [NgbCollapse]\n }]\n }], null, null);\n})();\n\n/**\n * A simple class that represents a date that datepicker also uses internally.\n *\n * It is the implementation of the `NgbDateStruct` interface that adds some convenience methods,\n * like `.equals()`, `.before()`, etc.\n *\n * All datepicker APIs consume `NgbDateStruct`, but return `NgbDate`.\n *\n * In many cases it is simpler to manipulate these objects together with\n * [`NgbCalendar`](#/components/datepicker/api#NgbCalendar) than native JS Dates.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\n *\n * @since 3.0.0\n */\nclass NgbDate {\n /**\n * A **static method** that creates a new date object from the `NgbDateStruct`,\n *\n * ex. `NgbDate.from({year: 2000, month: 5, day: 1})`.\n *\n * If the `date` is already of `NgbDate` type, the method will return the same object.\n */\n static from(date) {\n if (date instanceof NgbDate) {\n return date;\n }\n return date ? new NgbDate(date.year, date.month, date.day) : null;\n }\n constructor(year, month, day) {\n this.year = isInteger(year) ? year : null;\n this.month = isInteger(month) ? month : null;\n this.day = isInteger(day) ? day : null;\n }\n /**\n * Checks if the current date is equal to another date.\n */\n equals(other) {\n return other != null && this.year === other.year && this.month === other.month && this.day === other.day;\n }\n /**\n * Checks if the current date is before another date.\n */\n before(other) {\n if (!other) {\n return false;\n }\n if (this.year === other.year) {\n if (this.month === other.month) {\n return this.day === other.day ? false : this.day < other.day;\n } else {\n return this.month < other.month;\n }\n } else {\n return this.year < other.year;\n }\n }\n /**\n * Checks if the current date is after another date.\n */\n after(other) {\n if (!other) {\n return false;\n }\n if (this.year === other.year) {\n if (this.month === other.month) {\n return this.day === other.day ? false : this.day > other.day;\n } else {\n return this.month > other.month;\n }\n } else {\n return this.year > other.year;\n }\n }\n}\nfunction fromJSDate(jsDate) {\n return new NgbDate(jsDate.getFullYear(), jsDate.getMonth() + 1, jsDate.getDate());\n}\nfunction toJSDate(date) {\n const jsDate = new Date(date.year, date.month - 1, date.day, 12);\n // this is done avoid 30 -> 1930 conversion\n if (!isNaN(jsDate.getTime())) {\n jsDate.setFullYear(date.year);\n }\n return jsDate;\n}\nfunction NGB_DATEPICKER_CALENDAR_FACTORY() {\n return new NgbCalendarGregorian();\n}\n/**\n * A service that represents the calendar used by the datepicker.\n *\n * The default implementation uses the Gregorian calendar. You can inject it in your own\n * implementations if necessary to simplify `NgbDate` calculations.\n */\nclass NgbCalendar {\n static {\n this.ɵfac = function NgbCalendar_Factory(t) {\n return new (t || NgbCalendar)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendar,\n factory: () => NGB_DATEPICKER_CALENDAR_FACTORY(),\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendar, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: NGB_DATEPICKER_CALENDAR_FACTORY\n }]\n }], null, null);\n})();\nclass NgbCalendarGregorian extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths() {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n getWeeksPerMonth() {\n return 6;\n }\n getNext(date, period = 'd', number = 1) {\n let jsDate = toJSDate(date);\n let checkMonth = true;\n let expectedMonth = jsDate.getMonth();\n switch (period) {\n case 'y':\n jsDate.setFullYear(jsDate.getFullYear() + number);\n break;\n case 'm':\n expectedMonth += number;\n jsDate.setMonth(expectedMonth);\n expectedMonth = expectedMonth % 12;\n if (expectedMonth < 0) {\n expectedMonth = expectedMonth + 12;\n }\n break;\n case 'd':\n jsDate.setDate(jsDate.getDate() + number);\n checkMonth = false;\n break;\n default:\n return date;\n }\n if (checkMonth && jsDate.getMonth() !== expectedMonth) {\n // this means the destination month has less days than the initial month\n // let's go back to the end of the previous month:\n jsDate.setDate(0);\n }\n return fromJSDate(jsDate);\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n let jsDate = toJSDate(date);\n let day = jsDate.getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n let date = week[thursdayIndex];\n const jsDate = toJSDate(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n jsDate.setMonth(0); // Compare with Jan 1\n jsDate.setDate(1);\n return Math.floor(Math.round((time - jsDate.getTime()) / 86400000) / 7) + 1;\n }\n getToday() {\n return fromJSDate(new Date());\n }\n isValid(date) {\n if (!date || !isInteger(date.year) || !isInteger(date.month) || !isInteger(date.day)) {\n return false;\n }\n // year 0 doesn't exist in Gregorian calendar\n if (date.year === 0) {\n return false;\n }\n const jsDate = toJSDate(date);\n return !isNaN(jsDate.getTime()) && jsDate.getFullYear() === date.year && jsDate.getMonth() + 1 === date.month && jsDate.getDate() === date.day;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarGregorian_BaseFactory;\n return function NgbCalendarGregorian_Factory(t) {\n return (ɵNgbCalendarGregorian_BaseFactory || (ɵNgbCalendarGregorian_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarGregorian)))(t || NgbCalendarGregorian);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarGregorian,\n factory: NgbCalendarGregorian.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarGregorian, [{\n type: Injectable\n }], null, null);\n})();\nfunction isChangedDate(prev, next) {\n return !dateComparator(prev, next);\n}\nfunction isChangedMonth(prev, next) {\n return !prev && !next ? false : !prev || !next ? true : prev.year !== next.year || prev.month !== next.month;\n}\nfunction dateComparator(prev, next) {\n return !prev && !next || !!prev && !!next && prev.equals(next);\n}\nfunction checkMinBeforeMax(minDate, maxDate) {\n if (maxDate && minDate && maxDate.before(minDate)) {\n throw new Error(`'maxDate' ${maxDate} should be greater than 'minDate' ${minDate}`);\n }\n}\nfunction checkDateInRange(date, minDate, maxDate) {\n if (date && minDate && date.before(minDate)) {\n return minDate;\n }\n if (date && maxDate && date.after(maxDate)) {\n return maxDate;\n }\n return date || null;\n}\nfunction isDateSelectable(date, state) {\n const {\n minDate,\n maxDate,\n disabled,\n markDisabled\n } = state;\n return !(date === null || date === undefined || disabled || markDisabled && markDisabled(date, {\n year: date.year,\n month: date.month\n }) || minDate && date.before(minDate) || maxDate && date.after(maxDate));\n}\nfunction generateSelectBoxMonths(calendar, date, minDate, maxDate) {\n if (!date) {\n return [];\n }\n let months = calendar.getMonths(date.year);\n if (minDate && date.year === minDate.year) {\n const index = months.findIndex(month => month === minDate.month);\n months = months.slice(index);\n }\n if (maxDate && date.year === maxDate.year) {\n const index = months.findIndex(month => month === maxDate.month);\n months = months.slice(0, index + 1);\n }\n return months;\n}\nfunction generateSelectBoxYears(date, minDate, maxDate) {\n if (!date) {\n return [];\n }\n const start = minDate ? Math.max(minDate.year, date.year - 500) : date.year - 10;\n const end = maxDate ? Math.min(maxDate.year, date.year + 500) : date.year + 10;\n const length = end - start + 1;\n const numbers = Array(length);\n for (let i = 0; i < length; i++) {\n numbers[i] = start + i;\n }\n return numbers;\n}\nfunction nextMonthDisabled(calendar, date, maxDate) {\n const nextDate = Object.assign(calendar.getNext(date, 'm'), {\n day: 1\n });\n return maxDate != null && nextDate.after(maxDate);\n}\nfunction prevMonthDisabled(calendar, date, minDate) {\n const prevDate = Object.assign(calendar.getPrev(date, 'm'), {\n day: 1\n });\n return minDate != null && (prevDate.year === minDate.year && prevDate.month < minDate.month || prevDate.year < minDate.year && minDate.month === 1);\n}\nfunction buildMonths(calendar, date, state, i18n, force) {\n const {\n displayMonths,\n months\n } = state;\n // move old months to a temporary array\n const monthsToReuse = months.splice(0, months.length);\n // generate new first dates, nullify or reuse months\n const firstDates = Array.from({\n length: displayMonths\n }, (_, i) => {\n const firstDate = Object.assign(calendar.getNext(date, 'm', i), {\n day: 1\n });\n months[i] = null;\n if (!force) {\n const reusedIndex = monthsToReuse.findIndex(month => month.firstDate.equals(firstDate));\n // move reused month back to months\n if (reusedIndex !== -1) {\n months[i] = monthsToReuse.splice(reusedIndex, 1)[0];\n }\n }\n return firstDate;\n });\n // rebuild nullified months\n firstDates.forEach((firstDate, i) => {\n if (months[i] === null) {\n months[i] = buildMonth(calendar, firstDate, state, i18n, monthsToReuse.shift() || {});\n }\n });\n return months;\n}\nfunction buildMonth(calendar, date, state, i18n, month = {}) {\n const {\n dayTemplateData,\n minDate,\n maxDate,\n firstDayOfWeek,\n markDisabled,\n outsideDays,\n weekdayWidth,\n weekdaysVisible\n } = state;\n const calendarToday = calendar.getToday();\n month.firstDate = null;\n month.lastDate = null;\n month.number = date.month;\n month.year = date.year;\n month.weeks = month.weeks || [];\n month.weekdays = month.weekdays || [];\n date = getFirstViewDate(calendar, date, firstDayOfWeek);\n // clearing weekdays, if not visible\n if (!weekdaysVisible) {\n month.weekdays.length = 0;\n }\n // month has weeks\n for (let week = 0; week < calendar.getWeeksPerMonth(); week++) {\n let weekObject = month.weeks[week];\n if (!weekObject) {\n weekObject = month.weeks[week] = {\n number: 0,\n days: [],\n collapsed: true\n };\n }\n const days = weekObject.days;\n // week has days\n for (let day = 0; day < calendar.getDaysPerWeek(); day++) {\n if (week === 0 && weekdaysVisible) {\n month.weekdays[day] = i18n.getWeekdayLabel(calendar.getWeekday(date), weekdayWidth);\n }\n const newDate = new NgbDate(date.year, date.month, date.day);\n const nextDate = calendar.getNext(newDate);\n const ariaLabel = i18n.getDayAriaLabel(newDate);\n // marking date as disabled\n let disabled = !!(minDate && newDate.before(minDate) || maxDate && newDate.after(maxDate));\n if (!disabled && markDisabled) {\n disabled = markDisabled(newDate, {\n month: month.number,\n year: month.year\n });\n }\n // today\n let today = newDate.equals(calendarToday);\n // adding user-provided data to the context\n let contextUserData = dayTemplateData ? dayTemplateData(newDate, {\n month: month.number,\n year: month.year\n }) : undefined;\n // saving first date of the month\n if (month.firstDate === null && newDate.month === month.number) {\n month.firstDate = newDate;\n }\n // saving last date of the month\n if (newDate.month === month.number && nextDate.month !== month.number) {\n month.lastDate = newDate;\n }\n let dayObject = days[day];\n if (!dayObject) {\n dayObject = days[day] = {};\n }\n dayObject.date = newDate;\n dayObject.context = Object.assign(dayObject.context || {}, {\n $implicit: newDate,\n date: newDate,\n data: contextUserData,\n currentMonth: month.number,\n currentYear: month.year,\n disabled,\n focused: false,\n selected: false,\n today\n });\n dayObject.tabindex = -1;\n dayObject.ariaLabel = ariaLabel;\n dayObject.hidden = false;\n date = nextDate;\n }\n weekObject.number = calendar.getWeekNumber(days.map(day => day.date), firstDayOfWeek);\n // marking week as collapsed\n weekObject.collapsed = outsideDays === 'collapsed' && days[0].date.month !== month.number && days[days.length - 1].date.month !== month.number;\n }\n return month;\n}\nfunction getFirstViewDate(calendar, date, firstDayOfWeek) {\n const daysPerWeek = calendar.getDaysPerWeek();\n const firstMonthDate = new NgbDate(date.year, date.month, 1);\n const dayOfWeek = calendar.getWeekday(firstMonthDate) % daysPerWeek;\n return calendar.getPrev(firstMonthDate, 'd', (daysPerWeek + dayOfWeek - firstDayOfWeek) % daysPerWeek);\n}\n\n/**\n * A service supplying i18n data to the datepicker component.\n *\n * The default implementation of this service uses the Angular locale and registered locale data for\n * weekdays and month names (as explained in the Angular i18n guide).\n *\n * It also provides a way to i18n data that depends on calendar calculations, like aria labels, day, week and year\n * numerals. For other static labels the datepicker uses the default Angular i18n.\n *\n * See the [i18n demo](#/components/datepicker/examples#i18n) and\n * [Hebrew calendar demo](#/components/datepicker/calendars#hebrew) on how to extend this class and define\n * a custom provider for i18n.\n */\nclass NgbDatepickerI18n {\n /**\n * Returns the text label to display above the day view.\n *\n * @since 9.1.0\n */\n getMonthLabel(date) {\n return `${this.getMonthFullName(date.month, date.year)} ${this.getYearNumerals(date.year)}`;\n }\n /**\n * Returns the textual representation of a day that is rendered in a day cell.\n *\n * @since 3.0.0\n */\n getDayNumerals(date) {\n return `${date.day}`;\n }\n /**\n * Returns the textual representation of a week number rendered by datepicker.\n *\n * @since 3.0.0\n */\n getWeekNumerals(weekNumber) {\n return `${weekNumber}`;\n }\n /**\n * Returns the textual representation of a year that is rendered in the datepicker year select box.\n *\n * @since 3.0.0\n */\n getYearNumerals(year) {\n return `${year}`;\n }\n /**\n * Returns the week label to display in the heading of the month view.\n *\n * @since 9.1.0\n */\n getWeekLabel() {\n return '';\n }\n static {\n this.ɵfac = function NgbDatepickerI18n_Factory(t) {\n return new (t || NgbDatepickerI18n)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerI18n,\n factory: () => (() => new NgbDatepickerI18nDefault())(),\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerI18n, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: () => new NgbDatepickerI18nDefault()\n }]\n }], null, null);\n})();\n/**\n * A service providing default implementation for the datepicker i18n.\n * It can be used as a base implementation if necessary.\n *\n * @since 9.1.0\n */\nclass NgbDatepickerI18nDefault extends NgbDatepickerI18n {\n constructor() {\n super(...arguments);\n this._locale = inject(LOCALE_ID);\n this._monthsShort = getLocaleMonthNames(this._locale, FormStyle.Standalone, TranslationWidth.Abbreviated);\n this._monthsFull = getLocaleMonthNames(this._locale, FormStyle.Standalone, TranslationWidth.Wide);\n }\n getWeekdayLabel(weekday, width) {\n const weekdaysStartingOnSunday = getLocaleDayNames(this._locale, FormStyle.Standalone, width === undefined ? TranslationWidth.Short : width);\n const weekdays = weekdaysStartingOnSunday.map((day, index) => weekdaysStartingOnSunday[(index + 1) % 7]);\n return weekdays[weekday - 1] || '';\n }\n getMonthShortName(month) {\n return this._monthsShort[month - 1] || '';\n }\n getMonthFullName(month) {\n return this._monthsFull[month - 1] || '';\n }\n getDayAriaLabel(date) {\n const jsDate = new Date(date.year, date.month - 1, date.day);\n return formatDate(jsDate, 'fullDate', this._locale);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDatepickerI18nDefault_BaseFactory;\n return function NgbDatepickerI18nDefault_Factory(t) {\n return (ɵNgbDatepickerI18nDefault_BaseFactory || (ɵNgbDatepickerI18nDefault_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDatepickerI18nDefault)))(t || NgbDatepickerI18nDefault);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerI18nDefault,\n factory: NgbDatepickerI18nDefault.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerI18nDefault, [{\n type: Injectable\n }], null, null);\n})();\nclass NgbDatepickerService {\n constructor() {\n this._VALIDATORS = {\n dayTemplateData: dayTemplateData => {\n if (this._state.dayTemplateData !== dayTemplateData) {\n return {\n dayTemplateData\n };\n }\n },\n displayMonths: displayMonths => {\n displayMonths = toInteger(displayMonths);\n if (isInteger(displayMonths) && displayMonths > 0 && this._state.displayMonths !== displayMonths) {\n return {\n displayMonths\n };\n }\n },\n disabled: disabled => {\n if (this._state.disabled !== disabled) {\n return {\n disabled\n };\n }\n },\n firstDayOfWeek: firstDayOfWeek => {\n firstDayOfWeek = toInteger(firstDayOfWeek);\n if (isInteger(firstDayOfWeek) && firstDayOfWeek >= 0 && this._state.firstDayOfWeek !== firstDayOfWeek) {\n return {\n firstDayOfWeek\n };\n }\n },\n focusVisible: focusVisible => {\n if (this._state.focusVisible !== focusVisible && !this._state.disabled) {\n return {\n focusVisible\n };\n }\n },\n markDisabled: markDisabled => {\n if (this._state.markDisabled !== markDisabled) {\n return {\n markDisabled\n };\n }\n },\n maxDate: date => {\n const maxDate = this.toValidDate(date, null);\n if (isChangedDate(this._state.maxDate, maxDate)) {\n return {\n maxDate\n };\n }\n },\n minDate: date => {\n const minDate = this.toValidDate(date, null);\n if (isChangedDate(this._state.minDate, minDate)) {\n return {\n minDate\n };\n }\n },\n navigation: navigation => {\n if (this._state.navigation !== navigation) {\n return {\n navigation\n };\n }\n },\n outsideDays: outsideDays => {\n if (this._state.outsideDays !== outsideDays) {\n return {\n outsideDays\n };\n }\n },\n weekdays: weekdays => {\n const weekdayWidth = weekdays === true || weekdays === false ? TranslationWidth.Short : weekdays;\n const weekdaysVisible = weekdays === true || weekdays === false ? weekdays : true;\n if (this._state.weekdayWidth !== weekdayWidth || this._state.weekdaysVisible !== weekdaysVisible) {\n return {\n weekdayWidth,\n weekdaysVisible\n };\n }\n }\n };\n this._calendar = inject(NgbCalendar);\n this._i18n = inject(NgbDatepickerI18n);\n this._model$ = new Subject();\n this._dateSelect$ = new Subject();\n this._state = {\n dayTemplateData: null,\n markDisabled: null,\n maxDate: null,\n minDate: null,\n disabled: false,\n displayMonths: 1,\n firstDate: null,\n firstDayOfWeek: 1,\n lastDate: null,\n focusDate: null,\n focusVisible: false,\n months: [],\n navigation: 'select',\n outsideDays: 'visible',\n prevDisabled: false,\n nextDisabled: false,\n selectedDate: null,\n selectBoxes: {\n years: [],\n months: []\n },\n weekdayWidth: TranslationWidth.Short,\n weekdaysVisible: true\n };\n }\n get model$() {\n return this._model$.pipe(filter(model => model.months.length > 0));\n }\n get dateSelect$() {\n return this._dateSelect$.pipe(filter(date => date !== null));\n }\n set(options) {\n let patch = Object.keys(options).map(key => this._VALIDATORS[key](options[key])).reduce((obj, part) => ({\n ...obj,\n ...part\n }), {});\n if (Object.keys(patch).length > 0) {\n this._nextState(patch);\n }\n }\n focus(date) {\n const focusedDate = this.toValidDate(date, null);\n if (focusedDate != null && !this._state.disabled && isChangedDate(this._state.focusDate, focusedDate)) {\n this._nextState({\n focusDate: date\n });\n }\n }\n focusSelect() {\n if (isDateSelectable(this._state.focusDate, this._state)) {\n this.select(this._state.focusDate, {\n emitEvent: true\n });\n }\n }\n open(date) {\n const firstDate = this.toValidDate(date, this._calendar.getToday());\n if (firstDate != null && !this._state.disabled && (!this._state.firstDate || isChangedMonth(this._state.firstDate, firstDate))) {\n this._nextState({\n firstDate\n });\n }\n }\n select(date, options = {}) {\n const selectedDate = this.toValidDate(date, null);\n if (selectedDate != null && !this._state.disabled) {\n if (isChangedDate(this._state.selectedDate, selectedDate)) {\n this._nextState({\n selectedDate\n });\n }\n if (options.emitEvent && isDateSelectable(selectedDate, this._state)) {\n this._dateSelect$.next(selectedDate);\n }\n }\n }\n toValidDate(date, defaultValue) {\n const ngbDate = NgbDate.from(date);\n if (defaultValue === undefined) {\n defaultValue = this._calendar.getToday();\n }\n return this._calendar.isValid(ngbDate) ? ngbDate : defaultValue;\n }\n getMonth(struct) {\n for (let month of this._state.months) {\n if (struct.month === month.number && struct.year === month.year) {\n return month;\n }\n }\n throw new Error(`month ${struct.month} of year ${struct.year} not found`);\n }\n _nextState(patch) {\n const newState = this._updateState(patch);\n this._patchContexts(newState);\n this._state = newState;\n this._model$.next(this._state);\n }\n _patchContexts(state) {\n const {\n months,\n displayMonths,\n selectedDate,\n focusDate,\n focusVisible,\n disabled,\n outsideDays\n } = state;\n state.months.forEach(month => {\n month.weeks.forEach(week => {\n week.days.forEach(day => {\n // patch focus flag\n if (focusDate) {\n day.context.focused = focusDate.equals(day.date) && focusVisible;\n }\n // calculating tabindex\n day.tabindex = !disabled && focusDate && day.date.equals(focusDate) && focusDate.month === month.number ? 0 : -1;\n // override context disabled\n if (disabled === true) {\n day.context.disabled = true;\n }\n // patch selection flag\n if (selectedDate !== undefined) {\n day.context.selected = selectedDate !== null && selectedDate.equals(day.date);\n }\n // visibility\n if (month.number !== day.date.month) {\n day.hidden = outsideDays === 'hidden' || outsideDays === 'collapsed' || displayMonths > 1 && day.date.after(months[0].firstDate) && day.date.before(months[displayMonths - 1].lastDate);\n }\n });\n });\n });\n }\n _updateState(patch) {\n // patching fields\n const state = Object.assign({}, this._state, patch);\n let startDate = state.firstDate;\n // min/max dates changed\n if ('minDate' in patch || 'maxDate' in patch) {\n checkMinBeforeMax(state.minDate, state.maxDate);\n state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate);\n state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate);\n startDate = state.focusDate;\n }\n // disabled\n if ('disabled' in patch) {\n state.focusVisible = false;\n }\n // initial rebuild via 'select()'\n if ('selectedDate' in patch && this._state.months.length === 0) {\n startDate = state.selectedDate;\n }\n // terminate early if only focus visibility was changed\n if ('focusVisible' in patch) {\n return state;\n }\n // focus date changed\n if ('focusDate' in patch) {\n state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate);\n startDate = state.focusDate;\n // nothing to rebuild if only focus changed and it is still visible\n if (state.months.length !== 0 && state.focusDate && !state.focusDate.before(state.firstDate) && !state.focusDate.after(state.lastDate)) {\n return state;\n }\n }\n // first date changed\n if ('firstDate' in patch) {\n state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate);\n startDate = state.firstDate;\n }\n // rebuilding months\n if (startDate) {\n const forceRebuild = 'dayTemplateData' in patch || 'firstDayOfWeek' in patch || 'markDisabled' in patch || 'minDate' in patch || 'maxDate' in patch || 'disabled' in patch || 'outsideDays' in patch || 'weekdaysVisible' in patch;\n const months = buildMonths(this._calendar, startDate, state, this._i18n, forceRebuild);\n // updating months and boundary dates\n state.months = months;\n state.firstDate = months[0].firstDate;\n state.lastDate = months[months.length - 1].lastDate;\n // reset selected date if 'markDisabled' returns true\n if ('selectedDate' in patch && !isDateSelectable(state.selectedDate, state)) {\n state.selectedDate = null;\n }\n // adjusting focus after months were built\n if ('firstDate' in patch) {\n if (!state.focusDate || state.focusDate.before(state.firstDate) || state.focusDate.after(state.lastDate)) {\n state.focusDate = startDate;\n }\n }\n // adjusting months/years for the select box navigation\n const yearChanged = !this._state.firstDate || this._state.firstDate.year !== state.firstDate.year;\n const monthChanged = !this._state.firstDate || this._state.firstDate.month !== state.firstDate.month;\n if (state.navigation === 'select') {\n // years -> boundaries (min/max were changed)\n if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.years.length === 0 || yearChanged) {\n state.selectBoxes.years = generateSelectBoxYears(state.firstDate, state.minDate, state.maxDate);\n }\n // months -> when current year or boundaries change\n if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.months.length === 0 || yearChanged) {\n state.selectBoxes.months = generateSelectBoxMonths(this._calendar, state.firstDate, state.minDate, state.maxDate);\n }\n } else {\n state.selectBoxes = {\n years: [],\n months: []\n };\n }\n // updating navigation arrows -> boundaries change (min/max) or month/year changes\n if ((state.navigation === 'arrows' || state.navigation === 'select') && (monthChanged || yearChanged || 'minDate' in patch || 'maxDate' in patch || 'disabled' in patch)) {\n state.prevDisabled = state.disabled || prevMonthDisabled(this._calendar, state.firstDate, state.minDate);\n state.nextDisabled = state.disabled || nextMonthDisabled(this._calendar, state.lastDate, state.maxDate);\n }\n }\n return state;\n }\n static {\n this.ɵfac = function NgbDatepickerService_Factory(t) {\n return new (t || NgbDatepickerService)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerService,\n factory: NgbDatepickerService.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerService, [{\n type: Injectable\n }], null, null);\n})();\nvar NavigationEvent;\n(function (NavigationEvent) {\n NavigationEvent[NavigationEvent[\"PREV\"] = 0] = \"PREV\";\n NavigationEvent[NavigationEvent[\"NEXT\"] = 1] = \"NEXT\";\n})(NavigationEvent || (NavigationEvent = {}));\n\n/**\n * A configuration service for the [`NgbDatepicker`](#/components/datepicker/api#NgbDatepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the datepickers used in the application.\n */\nclass NgbDatepickerConfig {\n constructor() {\n this.displayMonths = 1;\n this.firstDayOfWeek = 1;\n this.navigation = 'select';\n this.outsideDays = 'visible';\n this.showWeekNumbers = false;\n this.weekdays = TranslationWidth.Short;\n }\n static {\n this.ɵfac = function NgbDatepickerConfig_Factory(t) {\n return new (t || NgbDatepickerConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerConfig,\n factory: NgbDatepickerConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nfunction NGB_DATEPICKER_DATE_ADAPTER_FACTORY() {\n return new NgbDateStructAdapter();\n}\n/**\n * An abstract service that does the conversion between the internal datepicker `NgbDateStruct` model and\n * any provided user date model `D`, ex. a string, a native date, etc.\n *\n * The adapter is used **only** for conversion when binding datepicker to a form control,\n * ex. `[(ngModel)]=\"userDateModel\"`. Here `userDateModel` can be of any type.\n *\n * The default datepicker implementation assumes we use `NgbDateStruct` as a user model.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details\n * and the [custom adapter demo](#/components/datepicker/examples#adapter) for an example.\n */\nclass NgbDateAdapter {\n static {\n this.ɵfac = function NgbDateAdapter_Factory(t) {\n return new (t || NgbDateAdapter)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDateAdapter,\n factory: () => NGB_DATEPICKER_DATE_ADAPTER_FACTORY(),\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDateAdapter, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY\n }]\n }], null, null);\n})();\nclass NgbDateStructAdapter extends NgbDateAdapter {\n /**\n * Converts a NgbDateStruct value into NgbDateStruct value\n */\n fromModel(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) ? {\n year: date.year,\n month: date.month,\n day: date.day\n } : null;\n }\n /**\n * Converts a NgbDateStruct value into NgbDateStruct value\n */\n toModel(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) ? {\n year: date.year,\n month: date.month,\n day: date.day\n } : null;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDateStructAdapter_BaseFactory;\n return function NgbDateStructAdapter_Factory(t) {\n return (ɵNgbDateStructAdapter_BaseFactory || (ɵNgbDateStructAdapter_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDateStructAdapter)))(t || NgbDateStructAdapter);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDateStructAdapter,\n factory: NgbDateStructAdapter.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDateStructAdapter, [{\n type: Injectable\n }], null, null);\n})();\nvar Key;\n(function (Key) {\n Key[Key[\"Tab\"] = 9] = \"Tab\";\n Key[Key[\"Enter\"] = 13] = \"Enter\";\n Key[Key[\"Escape\"] = 27] = \"Escape\";\n Key[Key[\"Space\"] = 32] = \"Space\";\n Key[Key[\"PageUp\"] = 33] = \"PageUp\";\n Key[Key[\"PageDown\"] = 34] = \"PageDown\";\n Key[Key[\"End\"] = 35] = \"End\";\n Key[Key[\"Home\"] = 36] = \"Home\";\n Key[Key[\"ArrowLeft\"] = 37] = \"ArrowLeft\";\n Key[Key[\"ArrowUp\"] = 38] = \"ArrowUp\";\n Key[Key[\"ArrowRight\"] = 39] = \"ArrowRight\";\n Key[Key[\"ArrowDown\"] = 40] = \"ArrowDown\";\n})(Key || (Key = {}));\n\n/**\n * A service that represents the keyboard navigation.\n *\n * Default keyboard shortcuts [are documented in the overview](#/components/datepicker/overview#keyboard-shortcuts)\n *\n * @since 5.2.0\n */\nclass NgbDatepickerKeyboardService {\n /**\n * Processes a keyboard event.\n */\n processKey(event, datepicker) {\n const {\n state,\n calendar\n } = datepicker;\n /* eslint-disable-next-line deprecation/deprecation */\n switch (event.which) {\n case Key.PageUp:\n datepicker.focusDate(calendar.getPrev(state.focusedDate, event.shiftKey ? 'y' : 'm', 1));\n break;\n case Key.PageDown:\n datepicker.focusDate(calendar.getNext(state.focusedDate, event.shiftKey ? 'y' : 'm', 1));\n break;\n case Key.End:\n datepicker.focusDate(event.shiftKey ? state.maxDate : state.lastDate);\n break;\n case Key.Home:\n datepicker.focusDate(event.shiftKey ? state.minDate : state.firstDate);\n break;\n case Key.ArrowLeft:\n datepicker.focusDate(calendar.getPrev(state.focusedDate, 'd', 1));\n break;\n case Key.ArrowUp:\n datepicker.focusDate(calendar.getPrev(state.focusedDate, 'd', calendar.getDaysPerWeek()));\n break;\n case Key.ArrowRight:\n datepicker.focusDate(calendar.getNext(state.focusedDate, 'd', 1));\n break;\n case Key.ArrowDown:\n datepicker.focusDate(calendar.getNext(state.focusedDate, 'd', calendar.getDaysPerWeek()));\n break;\n case Key.Enter:\n case Key.Space:\n datepicker.focusSelect();\n break;\n default:\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n }\n static {\n this.ɵfac = function NgbDatepickerKeyboardService_Factory(t) {\n return new (t || NgbDatepickerKeyboardService)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerKeyboardService,\n factory: NgbDatepickerKeyboardService.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerKeyboardService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nclass NgbDatepickerDayView {\n constructor() {\n this.i18n = inject(NgbDatepickerI18n);\n }\n isMuted() {\n return !this.selected && (this.date.month !== this.currentMonth || this.disabled);\n }\n static {\n this.ɵfac = function NgbDatepickerDayView_Factory(t) {\n return new (t || NgbDatepickerDayView)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbDatepickerDayView,\n selectors: [[\"\", \"ngbDatepickerDayView\", \"\"]],\n hostAttrs: [1, \"btn-light\"],\n hostVars: 10,\n hostBindings: function NgbDatepickerDayView_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"bg-primary\", ctx.selected)(\"text-white\", ctx.selected)(\"text-muted\", ctx.isMuted())(\"outside\", ctx.isMuted())(\"active\", ctx.focused);\n }\n },\n inputs: {\n currentMonth: \"currentMonth\",\n date: \"date\",\n disabled: \"disabled\",\n focused: \"focused\",\n selected: \"selected\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c1,\n decls: 1,\n vars: 1,\n template: function NgbDatepickerDayView_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n i0.ɵɵtextInterpolate(ctx.i18n.getDayNumerals(ctx.date));\n }\n },\n styles: [\"[ngbDatepickerDayView]{text-align:center;width:2rem;height:2rem;line-height:2rem;border-radius:.25rem;background:transparent}[ngbDatepickerDayView]:hover:not(.bg-primary),[ngbDatepickerDayView].active:not(.bg-primary){background-color:var(--bs-tertiary-bg);outline:1px solid var(--bs-border-color)}[ngbDatepickerDayView].outside{opacity:.5}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerDayView, [{\n type: Component,\n args: [{\n selector: '[ngbDatepickerDayView]',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'btn-light',\n '[class.bg-primary]': 'selected',\n '[class.text-white]': 'selected',\n '[class.text-muted]': 'isMuted()',\n '[class.outside]': 'isMuted()',\n '[class.active]': 'focused'\n },\n template: `{{ i18n.getDayNumerals(date) }}`,\n styles: [\"[ngbDatepickerDayView]{text-align:center;width:2rem;height:2rem;line-height:2rem;border-radius:.25rem;background:transparent}[ngbDatepickerDayView]:hover:not(.bg-primary),[ngbDatepickerDayView].active:not(.bg-primary){background-color:var(--bs-tertiary-bg);outline:1px solid var(--bs-border-color)}[ngbDatepickerDayView].outside{opacity:.5}\\n\"]\n }]\n }], null, {\n currentMonth: [{\n type: Input\n }],\n date: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n focused: [{\n type: Input\n }],\n selected: [{\n type: Input\n }]\n });\n})();\nclass NgbDatepickerNavigationSelect {\n constructor() {\n this._month = -1;\n this._year = -1;\n this.i18n = inject(NgbDatepickerI18n);\n this.select = new EventEmitter();\n }\n changeMonth(month) {\n this.select.emit(new NgbDate(this.date.year, toInteger(month), 1));\n }\n changeYear(year) {\n this.select.emit(new NgbDate(toInteger(year), this.date.month, 1));\n }\n ngAfterViewChecked() {\n if (this.date) {\n if (this.date.month !== this._month) {\n this._month = this.date.month;\n this.monthSelect.nativeElement.value = `${this._month}`;\n }\n if (this.date.year !== this._year) {\n this._year = this.date.year;\n this.yearSelect.nativeElement.value = `${this._year}`;\n }\n }\n }\n static {\n this.ɵfac = function NgbDatepickerNavigationSelect_Factory(t) {\n return new (t || NgbDatepickerNavigationSelect)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbDatepickerNavigationSelect,\n selectors: [[\"ngb-datepicker-navigation-select\"]],\n viewQuery: function NgbDatepickerNavigationSelect_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c2, 7, ElementRef);\n i0.ɵɵviewQuery(_c3, 7, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.monthSelect = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.yearSelect = _t.first);\n }\n },\n inputs: {\n date: \"date\",\n disabled: \"disabled\",\n months: \"months\",\n years: \"years\"\n },\n outputs: {\n select: \"select\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 8,\n vars: 2,\n consts: () => {\n let i18n_4;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_1 = goog.getMsg(\"Select month\");\n i18n_4 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_1;\n } else {\n i18n_4 = $localize`:@@ngb.datepicker.select-month:Select month`;\n }\n let i18n_5;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_2 = goog.getMsg(\"Select month\");\n i18n_5 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_2;\n } else {\n i18n_5 = $localize`:@@ngb.datepicker.select-month:Select month`;\n }\n let i18n_6;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_3 = goog.getMsg(\"Select year\");\n i18n_6 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_3;\n } else {\n i18n_6 = $localize`:@@ngb.datepicker.select-year:Select year`;\n }\n let i18n_7;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_4 = goog.getMsg(\"Select year\");\n i18n_7 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_4;\n } else {\n i18n_7 = $localize`:@@ngb.datepicker.select-year:Select year`;\n }\n return [[\"aria-label\", i18n_4, \"title\", i18n_5, 1, \"form-select\", 3, \"disabled\", \"change\"], [\"month\", \"\"], [\"aria-label\", i18n_6, \"title\", i18n_7, 1, \"form-select\", 3, \"disabled\", \"change\"], [\"year\", \"\"], [3, \"value\"]];\n },\n template: function NgbDatepickerNavigationSelect_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"select\", 0, 1);\n i0.ɵɵlistener(\"change\", function NgbDatepickerNavigationSelect_Template_select_change_0_listener($event) {\n return ctx.changeMonth($event.target.value);\n });\n i0.ɵɵrepeaterCreate(2, NgbDatepickerNavigationSelect_For_3_Template, 2, 3, \"option\", 4, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"select\", 2, 3);\n i0.ɵɵlistener(\"change\", function NgbDatepickerNavigationSelect_Template_select_change_4_listener($event) {\n return ctx.changeYear($event.target.value);\n });\n i0.ɵɵrepeaterCreate(6, NgbDatepickerNavigationSelect_For_7_Template, 2, 2, \"option\", 4, i0.ɵɵrepeaterTrackByIdentity);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"disabled\", ctx.disabled);\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx.months);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"disabled\", ctx.disabled);\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx.years);\n }\n },\n styles: [\"ngb-datepicker-navigation-select>.form-select{flex:1 1 auto;padding:0 .5rem;font-size:.875rem;height:1.85rem}ngb-datepicker-navigation-select>.form-select:focus{z-index:1}ngb-datepicker-navigation-select>.form-select::-ms-value{background-color:transparent!important}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerNavigationSelect, [{\n type: Component,\n args: [{\n selector: 'ngb-datepicker-navigation-select',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n\t\t\n\t\t\t@for (m of months; track m) {\n\t\t\t\t\n\t\t\t}\n\t\t\t@for (y of years; track y) {\n\t\t\t\t\n\t\t\t}\n\t\t\n\t`,\n styles: [\"ngb-datepicker-navigation-select>.form-select{flex:1 1 auto;padding:0 .5rem;font-size:.875rem;height:1.85rem}ngb-datepicker-navigation-select>.form-select:focus{z-index:1}ngb-datepicker-navigation-select>.form-select::-ms-value{background-color:transparent!important}\\n\"]\n }]\n }], null, {\n date: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n months: [{\n type: Input\n }],\n years: [{\n type: Input\n }],\n select: [{\n type: Output\n }],\n monthSelect: [{\n type: ViewChild,\n args: ['month', {\n static: true,\n read: ElementRef\n }]\n }],\n yearSelect: [{\n type: ViewChild,\n args: ['year', {\n static: true,\n read: ElementRef\n }]\n }]\n });\n})();\nclass NgbDatepickerNavigation {\n constructor() {\n this.navigation = NavigationEvent;\n this.i18n = inject(NgbDatepickerI18n);\n this.months = [];\n this.navigate = new EventEmitter();\n this.select = new EventEmitter();\n }\n onClickPrev(event) {\n event.currentTarget.focus();\n this.navigate.emit(this.navigation.PREV);\n }\n onClickNext(event) {\n event.currentTarget.focus();\n this.navigate.emit(this.navigation.NEXT);\n }\n static {\n this.ɵfac = function NgbDatepickerNavigation_Factory(t) {\n return new (t || NgbDatepickerNavigation)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbDatepickerNavigation,\n selectors: [[\"ngb-datepicker-navigation\"]],\n inputs: {\n date: \"date\",\n disabled: \"disabled\",\n months: \"months\",\n showSelect: \"showSelect\",\n prevDisabled: \"prevDisabled\",\n nextDisabled: \"nextDisabled\",\n selectBoxes: \"selectBoxes\"\n },\n outputs: {\n navigate: \"navigate\",\n select: \"select\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 8,\n vars: 4,\n consts: () => {\n let i18n_8;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_5 = goog.getMsg(\"Previous month\");\n i18n_8 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_5;\n } else {\n i18n_8 = $localize`:@@ngb.datepicker.previous-month:Previous month`;\n }\n let i18n_9;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_6 = goog.getMsg(\"Previous month\");\n i18n_9 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_6;\n } else {\n i18n_9 = $localize`:@@ngb.datepicker.previous-month:Previous month`;\n }\n let i18n_10;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_7 = goog.getMsg(\"Next month\");\n i18n_10 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_7;\n } else {\n i18n_10 = $localize`:@@ngb.datepicker.next-month:Next month`;\n }\n let i18n_11;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_8 = goog.getMsg(\"Next month\");\n i18n_11 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_8;\n } else {\n i18n_11 = $localize`:@@ngb.datepicker.next-month:Next month`;\n }\n return [[1, \"ngb-dp-arrow\", \"ngb-dp-arrow-prev\"], [\"type\", \"button\", \"aria-label\", i18n_8, \"title\", i18n_9, 1, \"btn\", \"btn-link\", \"ngb-dp-arrow-btn\", 3, \"disabled\", \"click\"], [1, \"ngb-dp-navigation-chevron\"], [\"class\", \"ngb-dp-navigation-select\", 3, \"date\", \"disabled\", \"months\", \"years\"], [1, \"ngb-dp-arrow\", \"ngb-dp-arrow-next\"], [\"type\", \"button\", \"aria-label\", i18n_10, \"title\", i18n_11, 1, \"btn\", \"btn-link\", \"ngb-dp-arrow-btn\", 3, \"disabled\", \"click\"], [1, \"ngb-dp-navigation-select\", 3, \"date\", \"disabled\", \"months\", \"years\", \"select\"], [\"class\", \"ngb-dp-arrow\"], [1, \"ngb-dp-month-name\"], [1, \"ngb-dp-arrow\"]];\n },\n template: function NgbDatepickerNavigation_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0)(1, \"button\", 1);\n i0.ɵɵlistener(\"click\", function NgbDatepickerNavigation_Template_button_click_1_listener($event) {\n return ctx.onClickPrev($event);\n });\n i0.ɵɵelement(2, \"span\", 2);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(3, NgbDatepickerNavigation_Conditional_3_Template, 1, 4, \"ngb-datepicker-navigation-select\", 3)(4, NgbDatepickerNavigation_Conditional_4_Template, 2, 0);\n i0.ɵɵelementStart(5, \"div\", 4)(6, \"button\", 5);\n i0.ɵɵlistener(\"click\", function NgbDatepickerNavigation_Template_button_click_6_listener($event) {\n return ctx.onClickNext($event);\n });\n i0.ɵɵelement(7, \"span\", 2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"disabled\", ctx.prevDisabled);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(3, ctx.showSelect ? 3 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(4, !ctx.showSelect ? 4 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"disabled\", ctx.nextDisabled);\n }\n },\n dependencies: [NgbDatepickerNavigationSelect],\n styles: [\"ngb-datepicker-navigation{display:flex;align-items:center}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;width:.75em;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg)}.ngb-dp-arrow{display:flex;flex:1 1 auto;padding-right:0;padding-left:0;margin:0;width:2rem;height:2rem}.ngb-dp-arrow-next{justify-content:flex-end}.ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(45deg);margin-left:.15em;margin-right:.25em}.ngb-dp-arrow-btn{padding:0 .25rem;margin:0 .5rem;border:none;background-color:transparent;z-index:1}.ngb-dp-arrow-btn:focus{outline-width:1px;outline-style:auto}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{display:flex;flex:1 1 9rem}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerNavigation, [{\n type: Component,\n args: [{\n selector: 'ngb-datepicker-navigation',\n standalone: true,\n imports: [NgbDatepickerNavigationSelect],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t\t@if (showSelect) {\n\t\t\t\n\t\t}\n\n\t\t@if (!showSelect) {\n\t\t\t@for (month of months; track month; let i = $index) {\n\t\t\t\t@if (i > 0) {\n\t\t\t\t\t
\n\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t\t{{ i18n.getMonthLabel(month.firstDate) }}\n\t\t\t\t
\n\t\t\t\t@if (i !== months.length - 1) {\n\t\t\t\t\t
\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t
\n\t`,\n styles: [\"ngb-datepicker-navigation{display:flex;align-items:center}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;width:.75em;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg)}.ngb-dp-arrow{display:flex;flex:1 1 auto;padding-right:0;padding-left:0;margin:0;width:2rem;height:2rem}.ngb-dp-arrow-next{justify-content:flex-end}.ngb-dp-arrow-next .ngb-dp-navigation-chevron{transform:rotate(45deg);margin-left:.15em;margin-right:.25em}.ngb-dp-arrow-btn{padding:0 .25rem;margin:0 .5rem;border:none;background-color:transparent;z-index:1}.ngb-dp-arrow-btn:focus{outline-width:1px;outline-style:auto}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{display:flex;flex:1 1 9rem}\\n\"]\n }]\n }], null, {\n date: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n months: [{\n type: Input\n }],\n showSelect: [{\n type: Input\n }],\n prevDisabled: [{\n type: Input\n }],\n nextDisabled: [{\n type: Input\n }],\n selectBoxes: [{\n type: Input\n }],\n navigate: [{\n type: Output\n }],\n select: [{\n type: Output\n }]\n });\n})();\n\n/**\n * A directive that marks the content template that customizes the way datepicker months are displayed\n *\n * @since 5.3.0\n */\nclass NgbDatepickerContent {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static {\n this.ɵfac = function NgbDatepickerContent_Factory(t) {\n return new (t || NgbDatepickerContent)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDatepickerContent,\n selectors: [[\"ng-template\", \"ngbDatepickerContent\", \"\"]],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerContent, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbDatepickerContent]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A component that renders one month including all the days, weekdays and week numbers. Can be used inside\n * the `` when you want to customize months layout.\n *\n * For a usage example, see [custom month layout demo](#/components/datepicker/examples#custommonth)\n *\n * @since 5.3.0\n */\nclass NgbDatepickerMonth {\n constructor() {\n this._keyboardService = inject(NgbDatepickerKeyboardService);\n this._service = inject(NgbDatepickerService);\n this.i18n = inject(NgbDatepickerI18n);\n this.datepicker = inject(NgbDatepicker);\n }\n /**\n * The first date of month to be rendered.\n *\n * This month must one of the months present in the\n * [datepicker state](#/components/datepicker/api#NgbDatepickerState).\n */\n set month(month) {\n this.viewModel = this._service.getMonth(month);\n }\n onKeyDown(event) {\n this._keyboardService.processKey(event, this.datepicker);\n }\n doSelect(day) {\n if (!day.context.disabled && !day.hidden) {\n this.datepicker.onDateSelect(day.date);\n }\n }\n static {\n this.ɵfac = function NgbDatepickerMonth_Factory(t) {\n return new (t || NgbDatepickerMonth)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbDatepickerMonth,\n selectors: [[\"ngb-datepicker-month\"]],\n hostAttrs: [\"role\", \"grid\"],\n hostBindings: function NgbDatepickerMonth_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function NgbDatepickerMonth_keydown_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n });\n }\n },\n inputs: {\n month: \"month\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 1,\n consts: [[\"class\", \"ngb-dp-week ngb-dp-weekdays\", \"role\", \"row\"], [\"role\", \"row\", 1, \"ngb-dp-week\", \"ngb-dp-weekdays\"], [\"class\", \"ngb-dp-weekday ngb-dp-showweek small\"], [1, \"ngb-dp-weekday\", \"ngb-dp-showweek\", \"small\"], [\"role\", \"columnheader\", 1, \"ngb-dp-weekday\", \"small\"], [\"class\", \"ngb-dp-weekday small\", \"role\", \"columnheader\"], [\"class\", \"ngb-dp-week\", \"role\", \"row\"], [\"role\", \"row\", 1, \"ngb-dp-week\"], [\"class\", \"ngb-dp-week-number small text-muted\"], [1, \"ngb-dp-week-number\", \"small\", \"text-muted\"], [\"role\", \"gridcell\", 1, \"ngb-dp-day\", 3, \"tabindex\", \"click\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"ngb-dp-day\", \"role\", \"gridcell\", 3, \"disabled\", \"tabindex\", \"hidden\", \"ngb-dp-today\"]],\n template: function NgbDatepickerMonth_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbDatepickerMonth_Conditional_0_Template, 4, 1, \"div\", 0);\n i0.ɵɵrepeaterCreate(1, NgbDatepickerMonth_For_2_Template, 1, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n i0.ɵɵconditional(0, ctx.viewModel.weekdays.length > 0 ? 0 : -1);\n i0.ɵɵadvance();\n i0.ɵɵrepeater(ctx.viewModel.weeks);\n }\n },\n dependencies: [NgTemplateOutlet],\n styles: [\"ngb-datepicker-month{display:block}.ngb-dp-weekday,.ngb-dp-week-number{line-height:2rem;text-align:center;font-style:italic}.ngb-dp-weekday{color:var(--bs-info)}.ngb-dp-week{border-radius:.25rem;display:flex}.ngb-dp-weekdays{border-bottom:1px solid var(--bs-border-color);border-radius:0;background-color:var(--bs-tertiary-bg)}.ngb-dp-day,.ngb-dp-weekday,.ngb-dp-week-number{width:2rem;height:2rem}.ngb-dp-day{cursor:pointer}.ngb-dp-day.disabled,.ngb-dp-day.hidden{cursor:default;pointer-events:none}.ngb-dp-day[tabindex=\\\"0\\\"]{z-index:1}\\n\"],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerMonth, [{\n type: Component,\n args: [{\n selector: 'ngb-datepicker-month',\n standalone: true,\n imports: [NgTemplateOutlet],\n host: {\n role: 'grid',\n '(keydown)': 'onKeyDown($event)'\n },\n encapsulation: ViewEncapsulation.None,\n template: `\n\t\t@if (viewModel.weekdays.length > 0) {\n\t\t\t
\n\t\t\t\t@if (datepicker.showWeekNumbers) {\n\t\t\t\t\t
{{ i18n.getWeekLabel() }}
\n\t\t\t\t}\n\t\t\t\t@for (weekday of viewModel.weekdays; track weekday) {\n\t\t\t\t\t
{{ weekday }}
\n\t\t\t\t}\n\t\t\t
\n\t\t}\n\t\t@for (week of viewModel.weeks; track week) {\n\t\t\t@if (!week.collapsed) {\n\t\t\t\t
\n\t\t\t\t\t@if (datepicker.showWeekNumbers) {\n\t\t\t\t\t\t
{{ i18n.getWeekNumerals(week.number) }}
\n\t\t\t\t\t}\n\t\t\t\t\t@for (day of week.days; track day) {\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t@if (!day.hidden) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t`,\n styles: [\"ngb-datepicker-month{display:block}.ngb-dp-weekday,.ngb-dp-week-number{line-height:2rem;text-align:center;font-style:italic}.ngb-dp-weekday{color:var(--bs-info)}.ngb-dp-week{border-radius:.25rem;display:flex}.ngb-dp-weekdays{border-bottom:1px solid var(--bs-border-color);border-radius:0;background-color:var(--bs-tertiary-bg)}.ngb-dp-day,.ngb-dp-weekday,.ngb-dp-week-number{width:2rem;height:2rem}.ngb-dp-day{cursor:pointer}.ngb-dp-day.disabled,.ngb-dp-day.hidden{cursor:default;pointer-events:none}.ngb-dp-day[tabindex=\\\"0\\\"]{z-index:1}\\n\"]\n }]\n }], null, {\n month: [{\n type: Input\n }]\n });\n})();\n/**\n * A highly configurable component that helps you with selecting calendar dates.\n *\n * `NgbDatepicker` is meant to be displayed inline on a page or put inside a popup.\n */\nclass NgbDatepicker {\n constructor() {\n this.injector = inject(Injector);\n this._service = inject(NgbDatepickerService);\n this._calendar = inject(NgbCalendar);\n this._i18n = inject(NgbDatepickerI18n);\n this._config = inject(NgbDatepickerConfig);\n this._nativeElement = inject(ElementRef).nativeElement;\n this._ngbDateAdapter = inject(NgbDateAdapter);\n this._ngZone = inject(NgZone);\n this._destroyRef = inject(DestroyRef);\n this._controlValue = null;\n this._publicState = {};\n /**\n * The reference to a custom template for the day.\n *\n * Allows to completely override the way a day 'cell' in the calendar is displayed.\n *\n * See [`DayTemplateContext`](#/components/datepicker/api#DayTemplateContext) for the data you get inside.\n */\n this.dayTemplate = this._config.dayTemplate;\n /**\n * The callback to pass any arbitrary data to the template cell via the\n * [`DayTemplateContext`](#/components/datepicker/api#DayTemplateContext)'s `data` parameter.\n *\n * `current` is the month that is currently displayed by the datepicker.\n *\n * @since 3.3.0\n */\n this.dayTemplateData = this._config.dayTemplateData;\n /**\n * The number of months to display.\n */\n this.displayMonths = this._config.displayMonths;\n /**\n * The first day of the week.\n *\n * With default calendar we use ISO 8601: 'weekday' is 1=Mon ... 7=Sun.\n */\n this.firstDayOfWeek = this._config.firstDayOfWeek;\n /**\n * The reference to the custom template for the datepicker footer.\n *\n * @since 3.3.0\n */\n this.footerTemplate = this._config.footerTemplate;\n /**\n * The callback to mark some dates as disabled.\n *\n * It is called for each new date when navigating to a different month.\n *\n * `current` is the month that is currently displayed by the datepicker.\n */\n this.markDisabled = this._config.markDisabled;\n /**\n * The latest date that can be displayed or selected.\n *\n * If not provided, 'year' select box will display 10 years after the current month.\n */\n this.maxDate = this._config.maxDate;\n /**\n * The earliest date that can be displayed or selected.\n *\n * If not provided, 'year' select box will display 10 years before the current month.\n */\n this.minDate = this._config.minDate;\n /**\n * Navigation type.\n *\n * * `\"select\"` - select boxes for month and navigation arrows\n * * `\"arrows\"` - only navigation arrows\n * * `\"none\"` - no navigation visible at all\n */\n this.navigation = this._config.navigation;\n /**\n * The way of displaying days that don't belong to the current month.\n *\n * * `\"visible\"` - days are visible\n * * `\"hidden\"` - days are hidden, white space preserved\n * * `\"collapsed\"` - days are collapsed, so the datepicker height might change between months\n *\n * For the 2+ months view, days in between months are never shown.\n */\n this.outsideDays = this._config.outsideDays;\n /**\n * If `true`, week numbers will be displayed.\n */\n this.showWeekNumbers = this._config.showWeekNumbers;\n /**\n * The date to open calendar with.\n *\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n * If nothing or invalid date is provided, calendar will open with current month.\n *\n * You could use `navigateTo(date)` method as an alternative.\n */\n this.startDate = this._config.startDate;\n /**\n * The way weekdays should be displayed.\n *\n * * `true` - weekdays are displayed using default width\n * * `false` - weekdays are not displayed\n * * `TranslationWidth` - weekdays are displayed using specified width\n *\n * @since 9.1.0\n */\n this.weekdays = this._config.weekdays;\n /**\n * An event emitted right before the navigation happens and displayed month changes.\n *\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\n */\n this.navigate = new EventEmitter();\n /**\n * An event emitted when user selects a date using keyboard or mouse.\n *\n * The payload of the event is currently selected `NgbDate`.\n *\n * @since 5.2.0\n */\n this.dateSelect = new EventEmitter();\n this.onChange = _ => {};\n this.onTouched = () => {};\n const cd = inject(ChangeDetectorRef);\n this._service.dateSelect$.pipe(takeUntilDestroyed()).subscribe(date => {\n this.dateSelect.emit(date);\n });\n this._service.model$.pipe(takeUntilDestroyed()).subscribe(model => {\n const newDate = model.firstDate;\n const oldDate = this.model ? this.model.firstDate : null;\n // update public state\n this._publicState = {\n maxDate: model.maxDate,\n minDate: model.minDate,\n firstDate: model.firstDate,\n lastDate: model.lastDate,\n focusedDate: model.focusDate,\n months: model.months.map(viewModel => viewModel.firstDate)\n };\n let navigationPrevented = false;\n // emitting navigation event if the first month changes\n if (!newDate.equals(oldDate)) {\n this.navigate.emit({\n current: oldDate ? {\n year: oldDate.year,\n month: oldDate.month\n } : null,\n next: {\n year: newDate.year,\n month: newDate.month\n },\n preventDefault: () => navigationPrevented = true\n });\n // can't prevent the very first navigation\n if (navigationPrevented && oldDate !== null) {\n this._service.open(oldDate);\n return;\n }\n }\n const newSelectedDate = model.selectedDate;\n const newFocusedDate = model.focusDate;\n const oldFocusedDate = this.model ? this.model.focusDate : null;\n this.model = model;\n // handling selection change\n if (isChangedDate(newSelectedDate, this._controlValue)) {\n this._controlValue = newSelectedDate;\n this.onTouched();\n this.onChange(this._ngbDateAdapter.toModel(newSelectedDate));\n }\n // handling focus change\n if (isChangedDate(newFocusedDate, oldFocusedDate) && oldFocusedDate && model.focusVisible) {\n this.focus();\n }\n cd.markForCheck();\n });\n }\n /**\n * Returns the readonly public state of the datepicker\n *\n * @since 5.2.0\n */\n get state() {\n return this._publicState;\n }\n /**\n * Returns the calendar service used in the specific datepicker instance.\n *\n * @since 5.3.0\n */\n get calendar() {\n return this._calendar;\n }\n /**\n * Returns the i18n service used in the specific datepicker instance.\n *\n * @since 14.2.0\n */\n get i18n() {\n return this._i18n;\n }\n /**\n * Focuses on given date.\n */\n focusDate(date) {\n this._service.focus(NgbDate.from(date));\n }\n /**\n * Selects focused date.\n */\n focusSelect() {\n this._service.focusSelect();\n }\n focus() {\n this._ngZone.onStable.asObservable().pipe(take(1)).subscribe(() => this._nativeElement.querySelector('div.ngb-dp-day[tabindex=\"0\"]')?.focus());\n }\n /**\n * Navigates to the provided date.\n *\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n * If nothing or invalid date provided calendar will open current month.\n *\n * Use the `[startDate]` input as an alternative.\n */\n navigateTo(date) {\n this._service.open(NgbDate.from(date ? date.day ? date : {\n ...date,\n day: 1\n } : null));\n }\n ngAfterViewInit() {\n this._ngZone.runOutsideAngular(() => {\n const focusIns$ = fromEvent(this._contentEl.nativeElement, 'focusin');\n const focusOuts$ = fromEvent(this._contentEl.nativeElement, 'focusout');\n // we're changing 'focusVisible' only when entering or leaving months view\n // and ignoring all focus events where both 'target' and 'related' target are day cells\n merge(focusIns$, focusOuts$).pipe(filter(focusEvent => {\n const target = focusEvent.target;\n const relatedTarget = focusEvent.relatedTarget;\n return !(target?.classList.contains('ngb-dp-day') && relatedTarget?.classList.contains('ngb-dp-day') && this._nativeElement.contains(target) && this._nativeElement.contains(relatedTarget));\n }), takeUntilDestroyed(this._destroyRef)).subscribe(({\n type\n }) => this._ngZone.run(() => this._service.set({\n focusVisible: type === 'focusin'\n })));\n });\n }\n ngOnInit() {\n if (this.model === undefined) {\n const inputs = {};\n ['dayTemplateData', 'displayMonths', 'markDisabled', 'firstDayOfWeek', 'navigation', 'minDate', 'maxDate', 'outsideDays', 'weekdays'].forEach(name => inputs[name] = this[name]);\n this._service.set(inputs);\n this.navigateTo(this.startDate);\n }\n if (!this.dayTemplate) {\n this.dayTemplate = this._defaultDayTemplate;\n }\n }\n ngOnChanges(changes) {\n const inputs = {};\n ['dayTemplateData', 'displayMonths', 'markDisabled', 'firstDayOfWeek', 'navigation', 'minDate', 'maxDate', 'outsideDays', 'weekdays'].filter(name => name in changes).forEach(name => inputs[name] = this[name]);\n this._service.set(inputs);\n if ('startDate' in changes) {\n const {\n currentValue,\n previousValue\n } = changes.startDate;\n if (isChangedMonth(previousValue, currentValue)) {\n this.navigateTo(this.startDate);\n }\n }\n }\n onDateSelect(date) {\n this._service.focus(date);\n this._service.select(date, {\n emitEvent: true\n });\n }\n onNavigateDateSelect(date) {\n this._service.open(date);\n }\n onNavigateEvent(event) {\n switch (event) {\n case NavigationEvent.PREV:\n this._service.open(this._calendar.getPrev(this.model.firstDate, 'm', 1));\n break;\n case NavigationEvent.NEXT:\n this._service.open(this._calendar.getNext(this.model.firstDate, 'm', 1));\n break;\n }\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n setDisabledState(disabled) {\n this._service.set({\n disabled\n });\n }\n writeValue(value) {\n this._controlValue = NgbDate.from(this._ngbDateAdapter.fromModel(value));\n this._service.select(this._controlValue);\n }\n static {\n this.ɵfac = function NgbDatepicker_Factory(t) {\n return new (t || NgbDatepicker)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbDatepicker,\n selectors: [[\"ngb-datepicker\"]],\n contentQueries: function NgbDatepicker_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbDatepickerContent, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplateFromContent = _t.first);\n }\n },\n viewQuery: function NgbDatepicker_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c4, 7);\n i0.ɵɵviewQuery(_c5, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._defaultDayTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._contentEl = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function NgbDatepicker_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"disabled\", ctx.model.disabled);\n }\n },\n inputs: {\n contentTemplate: \"contentTemplate\",\n dayTemplate: \"dayTemplate\",\n dayTemplateData: \"dayTemplateData\",\n displayMonths: \"displayMonths\",\n firstDayOfWeek: \"firstDayOfWeek\",\n footerTemplate: \"footerTemplate\",\n markDisabled: \"markDisabled\",\n maxDate: \"maxDate\",\n minDate: \"minDate\",\n navigation: \"navigation\",\n outsideDays: \"outsideDays\",\n showWeekNumbers: \"showWeekNumbers\",\n startDate: \"startDate\",\n weekdays: \"weekdays\"\n },\n outputs: {\n navigate: \"navigate\",\n dateSelect: \"dateSelect\"\n },\n exportAs: [\"ngbDatepicker\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbDatepicker),\n multi: true\n }, NgbDatepickerService]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 10,\n vars: 9,\n consts: [[\"defaultDayTemplate\", \"\"], [\"defaultContentTemplate\", \"\"], [1, \"ngb-dp-header\"], [3, \"date\", \"months\", \"disabled\", \"showSelect\", \"prevDisabled\", \"nextDisabled\", \"selectBoxes\"], [1, \"ngb-dp-content\"], [\"content\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\", \"ngTemplateOutletInjector\"], [3, \"ngTemplateOutlet\"], [\"ngbDatepickerDayView\", \"\", 3, \"date\", \"currentMonth\", \"selected\", \"disabled\", \"focused\"], [1, \"ngb-dp-month\"], [\"class\", \"ngb-dp-month-name\"], [3, \"month\"], [1, \"ngb-dp-month-name\"], [\"class\", \"ngb-dp-month\"], [3, \"date\", \"months\", \"disabled\", \"showSelect\", \"prevDisabled\", \"nextDisabled\", \"selectBoxes\", \"navigate\", \"select\"]],\n template: function NgbDatepicker_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbDatepicker_ng_template_0_Template, 1, 5, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor)(2, NgbDatepicker_ng_template_2_Template, 2, 0, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementStart(4, \"div\", 2);\n i0.ɵɵtemplate(5, NgbDatepicker_Conditional_5_Template, 1, 7, \"ngb-datepicker-navigation\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"div\", 4, 5);\n i0.ɵɵtemplate(8, NgbDatepicker_ng_template_8_Template, 0, 0, \"ng-template\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(9, NgbDatepicker_ng_template_9_Template, 0, 0, \"ng-template\", 7);\n }\n if (rf & 2) {\n const _r3 = i0.ɵɵreference(3);\n i0.ɵɵadvance(5);\n i0.ɵɵconditional(5, ctx.navigation !== \"none\" ? 5 : -1);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"ngb-dp-months\", !ctx.contentTemplate);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.contentTemplate || (ctx.contentTemplateFromContent == null ? null : ctx.contentTemplateFromContent.templateRef) || _r3)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(7, _c6, ctx))(\"ngTemplateOutletInjector\", ctx.injector);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.footerTemplate);\n }\n },\n dependencies: [NgTemplateOutlet, NgbDatepickerDayView, NgbDatepickerMonth, NgbDatepickerNavigation],\n styles: [\"ngb-datepicker{border:1px solid var(--bs-border-color);border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}ngb-datepicker.disabled .ngb-dp-weekday,ngb-datepicker.disabled .ngb-dp-week-number,ngb-datepicker.disabled .ngb-dp-month-name{color:var(--bs-text-muted)}.ngb-dp-body{z-index:1055}.ngb-dp-header{border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem;background-color:var(--bs-tertiary-bg)}.ngb-dp-months{display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center;background-color:var(--bs-tertiary-bg)}.ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,.ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-left:1rem}.ngb-dp-month:last-child .ngb-dp-week{padding-right:.25rem}.ngb-dp-month:first-child .ngb-dp-week{padding-left:.25rem}.ngb-dp-month .ngb-dp-week:last-child{padding-bottom:.25rem}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepicker, [{\n type: Component,\n args: [{\n exportAs: 'ngbDatepicker',\n selector: 'ngb-datepicker',\n standalone: true,\n imports: [NgTemplateOutlet, NgbDatepickerDayView, NgbDatepickerMonth, NgbDatepickerNavigation],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class.disabled]': 'model.disabled'\n },\n template: `\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\n\t\t\n\t\t\t@for (month of model.months; track month; let i = $index) {\n\t\t\t\t
\n\t\t\t\t\t@if (navigation === 'none' || (displayMonths > 1 && navigation === 'select')) {\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{{ i18n.getMonthLabel(month.firstDate) }}\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t}\n\t\t
\n\n\t\t
\n\t\t\t@if (navigation !== 'none') {\n\t\t\t\t\n\t\t\t}\n\t\t
\n\n\t\t
\n\t\t\t\n\t\t
\n\n\t\t\n\t`,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbDatepicker),\n multi: true\n }, NgbDatepickerService],\n styles: [\"ngb-datepicker{border:1px solid var(--bs-border-color);border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}ngb-datepicker.disabled .ngb-dp-weekday,ngb-datepicker.disabled .ngb-dp-week-number,ngb-datepicker.disabled .ngb-dp-month-name{color:var(--bs-text-muted)}.ngb-dp-body{z-index:1055}.ngb-dp-header{border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem;background-color:var(--bs-tertiary-bg)}.ngb-dp-months{display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center;background-color:var(--bs-tertiary-bg)}.ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,.ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-left:1rem}.ngb-dp-month:last-child .ngb-dp-week{padding-right:.25rem}.ngb-dp-month:first-child .ngb-dp-week{padding-left:.25rem}.ngb-dp-month .ngb-dp-week:last-child{padding-bottom:.25rem}\\n\"]\n }]\n }], () => [], {\n _defaultDayTemplate: [{\n type: ViewChild,\n args: ['defaultDayTemplate', {\n static: true\n }]\n }],\n _contentEl: [{\n type: ViewChild,\n args: ['content', {\n static: true\n }]\n }],\n contentTemplate: [{\n type: Input\n }],\n contentTemplateFromContent: [{\n type: ContentChild,\n args: [NgbDatepickerContent, {\n static: true\n }]\n }],\n dayTemplate: [{\n type: Input\n }],\n dayTemplateData: [{\n type: Input\n }],\n displayMonths: [{\n type: Input\n }],\n firstDayOfWeek: [{\n type: Input\n }],\n footerTemplate: [{\n type: Input\n }],\n markDisabled: [{\n type: Input\n }],\n maxDate: [{\n type: Input\n }],\n minDate: [{\n type: Input\n }],\n navigation: [{\n type: Input\n }],\n outsideDays: [{\n type: Input\n }],\n showWeekNumbers: [{\n type: Input\n }],\n startDate: [{\n type: Input\n }],\n weekdays: [{\n type: Input\n }],\n navigate: [{\n type: Output\n }],\n dateSelect: [{\n type: Output\n }]\n });\n})();\nconst isContainedIn = (element, array) => array ? array.some(item => item.contains(element)) : false;\nconst matchesSelectorIfAny = (element, selector) => !selector || closest(element, selector) != null;\n// we have to add a more significant delay to avoid re-opening when handling (click) on a toggling element\n// TODO: use proper Angular platform detection when NgbAutoClose becomes a service and we can inject PLATFORM_ID\nconst isMobile = (() => {\n const isIOS = () => /iPad|iPhone|iPod/.test(navigator.userAgent) || /Macintosh/.test(navigator.userAgent) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2;\n const isAndroid = () => /Android/.test(navigator.userAgent);\n return typeof navigator !== 'undefined' ? !!navigator.userAgent && (isIOS() || isAndroid()) : false;\n})();\n// setting 'ngbAutoClose' synchronously on mobile results in immediate popup closing\n// when tapping on the triggering element\nconst wrapAsyncForMobile = fn => isMobile ? () => setTimeout(() => fn(), 100) : fn;\nfunction ngbAutoClose(zone, document, type, close, closed$, insideElements, ignoreElements, insideSelector) {\n // closing on ESC and outside clicks\n if (type) {\n zone.runOutsideAngular(wrapAsyncForMobile(() => {\n const shouldCloseOnClick = event => {\n const element = event.target;\n if (event.button === 2 || isContainedIn(element, ignoreElements)) {\n return false;\n }\n if (type === 'inside') {\n return isContainedIn(element, insideElements) && matchesSelectorIfAny(element, insideSelector);\n } else if (type === 'outside') {\n return !isContainedIn(element, insideElements);\n } /* if (type === true) */else {\n return matchesSelectorIfAny(element, insideSelector) || !isContainedIn(element, insideElements);\n }\n };\n const escapes$ = fromEvent(document, 'keydown').pipe(takeUntil(closed$), /* eslint-disable-next-line deprecation/deprecation */\n filter(e => e.which === Key.Escape), tap(e => e.preventDefault()));\n // we have to pre-calculate 'shouldCloseOnClick' on 'mousedown',\n // because on 'mouseup' DOM nodes might be detached\n const mouseDowns$ = fromEvent(document, 'mousedown').pipe(map(shouldCloseOnClick), takeUntil(closed$));\n const closeableClicks$ = fromEvent(document, 'mouseup').pipe(withLatestFrom(mouseDowns$), filter(([_, shouldClose]) => shouldClose), delay(0), takeUntil(closed$));\n race([escapes$.pipe(map(_ => 0 /* SOURCE.ESCAPE */)), closeableClicks$.pipe(map(_ => 1 /* SOURCE.CLICK */))]).subscribe(source => zone.run(() => close(source)));\n }));\n }\n}\nconst FOCUSABLE_ELEMENTS_SELECTOR = ['a[href]', 'button:not([disabled])', 'input:not([disabled]):not([type=\"hidden\"])', 'select:not([disabled])', 'textarea:not([disabled])', '[contenteditable]', '[tabindex]:not([tabindex=\"-1\"])'].join(', ');\n/**\n * Returns first and last focusable elements inside of a given element based on specific CSS selector\n */\nfunction getFocusableBoundaryElements(element) {\n const list = Array.from(element.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR)).filter(el => el.tabIndex !== -1);\n return [list[0], list[list.length - 1]];\n}\n/**\n * Function that enforces browser focus to be trapped inside a DOM element.\n *\n * Works only for clicks inside the element and navigation with 'Tab', ignoring clicks outside of the element\n *\n * @param zone Angular zone\n * @param element The element around which focus will be trapped inside\n * @param stopFocusTrap$ The observable stream. When completed the focus trap will clean up listeners\n * and free internal resources\n * @param refocusOnClick Put the focus back to the last focused element whenever a click occurs on element (default to\n * false)\n */\nconst ngbFocusTrap = (zone, element, stopFocusTrap$, refocusOnClick = false) => {\n zone.runOutsideAngular(() => {\n // last focused element\n const lastFocusedElement$ = fromEvent(element, 'focusin').pipe(takeUntil(stopFocusTrap$), map(e => e.target));\n // 'tab' / 'shift+tab' stream\n fromEvent(element, 'keydown').pipe(takeUntil(stopFocusTrap$), /* eslint-disable-next-line deprecation/deprecation */\n filter(e => e.which === Key.Tab), withLatestFrom(lastFocusedElement$)).subscribe(([tabEvent, focusedElement]) => {\n const [first, last] = getFocusableBoundaryElements(element);\n if ((focusedElement === first || focusedElement === element) && tabEvent.shiftKey) {\n last.focus();\n tabEvent.preventDefault();\n }\n if (focusedElement === last && !tabEvent.shiftKey) {\n first.focus();\n tabEvent.preventDefault();\n }\n });\n // inside click\n if (refocusOnClick) {\n fromEvent(element, 'click').pipe(takeUntil(stopFocusTrap$), withLatestFrom(lastFocusedElement$), map(arr => arr[1])).subscribe(lastFocusedElement => lastFocusedElement.focus());\n }\n });\n};\nclass NgbRTL {\n constructor() {\n this._element = inject(DOCUMENT).documentElement;\n }\n isRTL() {\n return (this._element.getAttribute('dir') || '').toLowerCase() === 'rtl';\n }\n static {\n this.ɵfac = function NgbRTL_Factory(t) {\n return new (t || NgbRTL)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbRTL,\n factory: NgbRTL.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbRTL, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nconst placementSeparator = /\\s+/;\nconst spacesRegExp = / +/gi;\n/**\n * Matching classes from the Bootstrap ones to the poppers ones.\n * The first index of each array is used for the left to right direction,\n * the second one is used for the right to left, defaulting to the first index (when LTR and RTL lead to the same class)\n *\n * See [Bootstrap alignments](https://getbootstrap.com/docs/5.1/components/dropdowns/#alignment-options)\n * and [Popper placements](https://popper.js.org/docs/v2/constructors/#options)\n */\nconst bootstrapPopperMatches = {\n top: ['top'],\n bottom: ['bottom'],\n start: ['left', 'right'],\n left: ['left'],\n end: ['right', 'left'],\n right: ['right'],\n 'top-start': ['top-start', 'top-end'],\n 'top-left': ['top-start'],\n 'top-end': ['top-end', 'top-start'],\n 'top-right': ['top-end'],\n 'bottom-start': ['bottom-start', 'bottom-end'],\n 'bottom-left': ['bottom-start'],\n 'bottom-end': ['bottom-end', 'bottom-start'],\n 'bottom-right': ['bottom-end'],\n 'start-top': ['left-start', 'right-start'],\n 'left-top': ['left-start'],\n 'start-bottom': ['left-end', 'right-end'],\n 'left-bottom': ['left-end'],\n 'end-top': ['right-start', 'left-start'],\n 'right-top': ['right-start'],\n 'end-bottom': ['right-end', 'left-end'],\n 'right-bottom': ['right-end']\n};\nfunction getPopperClassPlacement(placement, isRTL) {\n const [leftClass, rightClass] = bootstrapPopperMatches[placement];\n return isRTL ? rightClass || leftClass : leftClass;\n}\nconst popperStartPrimaryPlacement = /^left/;\nconst popperEndPrimaryPlacement = /^right/;\nconst popperStartSecondaryPlacement = /^start/;\nconst popperEndSecondaryPlacement = /^end/;\nfunction getBootstrapBaseClassPlacement(baseClass, placement) {\n let [primary, secondary] = placement.split('-');\n const newPrimary = primary.replace(popperStartPrimaryPlacement, 'start').replace(popperEndPrimaryPlacement, 'end');\n let classnames = [newPrimary];\n if (secondary) {\n let newSecondary = secondary;\n if (primary === 'left' || primary === 'right') {\n newSecondary = newSecondary.replace(popperStartSecondaryPlacement, 'top').replace(popperEndSecondaryPlacement, 'bottom');\n }\n classnames.push(`${newPrimary}-${newSecondary}`);\n }\n if (baseClass) {\n classnames = classnames.map(classname => `${baseClass}-${classname}`);\n }\n return classnames.join(' ');\n}\n/*\n * Accept the placement array and applies the appropriate placement dependent on the viewport.\n * Returns the applied placement.\n * In case of auto placement, placements are selected in order\n * 'top', 'bottom', 'start', 'end',\n * 'top-start', 'top-end',\n * 'bottom-start', 'bottom-end',\n * 'start-top', 'start-bottom',\n * 'end-top', 'end-bottom'.\n * */\nfunction getPopperOptions({\n placement,\n baseClass\n}, rtl) {\n let placementVals = Array.isArray(placement) ? placement : placement.split(placementSeparator);\n // No need to consider left and right here, as start and end are enough, and it is used for 'auto' placement only\n const allowedPlacements = ['top', 'bottom', 'start', 'end', 'top-start', 'top-end', 'bottom-start', 'bottom-end', 'start-top', 'start-bottom', 'end-top', 'end-bottom'];\n // replace auto placement with other placements\n let hasAuto = placementVals.findIndex(val => val === 'auto');\n if (hasAuto >= 0) {\n allowedPlacements.forEach(function (obj) {\n if (placementVals.find(val => val.search('^' + obj) !== -1) == null) {\n placementVals.splice(hasAuto++, 1, obj);\n }\n });\n }\n const popperPlacements = placementVals.map(_placement => {\n return getPopperClassPlacement(_placement, rtl.isRTL());\n });\n let mainPlacement = popperPlacements.shift();\n const bsModifier = {\n name: 'bootstrapClasses',\n enabled: !!baseClass,\n phase: 'write',\n fn({\n state\n }) {\n const bsClassRegExp = new RegExp(baseClass + '(-[a-z]+)*', 'gi');\n const popperElement = state.elements.popper;\n const popperPlacement = state.placement;\n let className = popperElement.className;\n // Remove old bootstrap classes\n className = className.replace(bsClassRegExp, '');\n // Add current placements\n className += ` ${getBootstrapBaseClassPlacement(baseClass, popperPlacement)}`;\n // Remove multiple spaces\n className = className.trim().replace(spacesRegExp, ' ');\n // Reassign\n popperElement.className = className;\n }\n };\n return {\n placement: mainPlacement,\n modifiers: [bsModifier, flip, preventOverflow, arrow, {\n enabled: true,\n name: 'flip',\n options: {\n fallbackPlacements: popperPlacements\n }\n }, {\n enabled: true,\n name: 'preventOverflow',\n phase: 'main',\n fn: function () {}\n }]\n };\n}\nfunction noop(arg) {\n return arg;\n}\nfunction ngbPositioning() {\n const rtl = inject(NgbRTL);\n let popperInstance = null;\n return {\n createPopper(positioningOption) {\n if (!popperInstance) {\n const updatePopperOptions = positioningOption.updatePopperOptions || noop;\n let popperOptions = updatePopperOptions(getPopperOptions(positioningOption, rtl));\n popperInstance = createPopperLite(positioningOption.hostElement, positioningOption.targetElement, popperOptions);\n }\n },\n update() {\n if (popperInstance) {\n popperInstance.update();\n }\n },\n setOptions(positioningOption) {\n if (popperInstance) {\n const updatePopperOptions = positioningOption.updatePopperOptions || noop;\n let popperOptions = updatePopperOptions(getPopperOptions(positioningOption, rtl));\n popperInstance.setOptions(popperOptions);\n }\n },\n destroy() {\n if (popperInstance) {\n popperInstance.destroy();\n popperInstance = null;\n }\n }\n };\n}\nfunction NGB_DATEPICKER_PARSER_FORMATTER_FACTORY() {\n return new NgbDateISOParserFormatter();\n}\n/**\n * An abstract service for parsing and formatting dates for the\n * [`NgbInputDatepicker`](#/components/datepicker/api#NgbInputDatepicker) directive.\n * Converts between the internal `NgbDateStruct` model presentation and a `string` that is displayed in the\n * input element.\n *\n * When user types something in the input this service attempts to parse it into a `NgbDateStruct` object.\n * And vice versa, when users selects a date in the calendar with the mouse, it must be displayed as a `string`\n * in the input.\n *\n * Default implementation uses the ISO 8601 format, but you can provide another implementation via DI\n * to use an alternative string format or a custom parsing logic.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\n */\nclass NgbDateParserFormatter {\n static {\n this.ɵfac = function NgbDateParserFormatter_Factory(t) {\n return new (t || NgbDateParserFormatter)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDateParserFormatter,\n factory: () => NGB_DATEPICKER_PARSER_FORMATTER_FACTORY(),\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDateParserFormatter, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY\n }]\n }], null, null);\n})();\nclass NgbDateISOParserFormatter extends NgbDateParserFormatter {\n parse(value) {\n if (value != null) {\n const dateParts = value.trim().split('-');\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\n return {\n year: toInteger(dateParts[0]),\n month: null,\n day: null\n };\n } else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\n return {\n year: toInteger(dateParts[0]),\n month: toInteger(dateParts[1]),\n day: null\n };\n } else if (dateParts.length === 3 && isNumber(dateParts[0]) && isNumber(dateParts[1]) && isNumber(dateParts[2])) {\n return {\n year: toInteger(dateParts[0]),\n month: toInteger(dateParts[1]),\n day: toInteger(dateParts[2])\n };\n }\n }\n return null;\n }\n format(date) {\n return date ? `${date.year}-${isNumber(date.month) ? padNumber(date.month) : ''}-${isNumber(date.day) ? padNumber(date.day) : ''}` : '';\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDateISOParserFormatter_BaseFactory;\n return function NgbDateISOParserFormatter_Factory(t) {\n return (ɵNgbDateISOParserFormatter_BaseFactory || (ɵNgbDateISOParserFormatter_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDateISOParserFormatter)))(t || NgbDateISOParserFormatter);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDateISOParserFormatter,\n factory: NgbDateISOParserFormatter.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDateISOParserFormatter, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbDatepickerInput`](#/components/datepicker/api#NgbDatepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the datepicker inputs used in the application.\n *\n * @since 5.2.0\n */\nclass NgbInputDatepickerConfig extends NgbDatepickerConfig {\n constructor() {\n super(...arguments);\n this.autoClose = true;\n this.placement = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];\n this.popperOptions = options => options;\n this.restoreFocus = true;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbInputDatepickerConfig_BaseFactory;\n return function NgbInputDatepickerConfig_Factory(t) {\n return (ɵNgbInputDatepickerConfig_BaseFactory || (ɵNgbInputDatepickerConfig_BaseFactory = i0.ɵɵgetInheritedFactory(NgbInputDatepickerConfig)))(t || NgbInputDatepickerConfig);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbInputDatepickerConfig,\n factory: NgbInputDatepickerConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbInputDatepickerConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nfunction addPopperOffset(offset$1) {\n return options => {\n options.modifiers.push(offset, {\n name: 'offset',\n options: {\n offset: () => offset$1\n }\n });\n return options;\n };\n}\n\n/**\n * A directive that allows to stick a datepicker popup to an input field.\n *\n * Manages interaction with the input field itself, does value formatting and provides forms integration.\n */\nclass NgbInputDatepicker {\n constructor() {\n this._parserFormatter = inject(NgbDateParserFormatter);\n this._elRef = inject(ElementRef);\n this._vcRef = inject(ViewContainerRef);\n this._ngZone = inject(NgZone);\n this._calendar = inject(NgbCalendar);\n this._dateAdapter = inject(NgbDateAdapter);\n this._document = inject(DOCUMENT);\n this._changeDetector = inject(ChangeDetectorRef);\n this._config = inject(NgbInputDatepickerConfig);\n this._cRef = null;\n this._disabled = false;\n this._elWithFocus = null;\n this._model = null;\n this._positioning = ngbPositioning();\n this._destroyCloseHandlers$ = new Subject();\n /**\n * Indicates whether the datepicker popup should be closed automatically after date selection / outside click or not.\n *\n * * `true` - the popup will close on both date selection and outside click.\n * * `false` - the popup can only be closed manually via `close()` or `toggle()` methods.\n * * `\"inside\"` - the popup will close on date selection, but not outside clicks.\n * * `\"outside\"` - the popup will close only on the outside click and not on date selection/inside clicks.\n *\n * @since 3.0.0\n */\n this.autoClose = this._config.autoClose;\n /**\n * The preferred placement of the datepicker popup, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"bottom-start bottom-end top-start top-end\"`\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the popup.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * A selector specifying the element the datepicker popup should be appended to.\n *\n * Currently only supports `\"body\"`.\n */\n this.container = this._config.container;\n /**\n * A css selector or html element specifying the element the datepicker popup should be positioned against.\n *\n * By default the input is used as a target.\n *\n * @since 4.2.0\n */\n this.positionTarget = this._config.positionTarget;\n /**\n * An event emitted when user selects a date using keyboard or mouse.\n *\n * The payload of the event is currently selected `NgbDate`.\n *\n * @since 1.1.1\n */\n this.dateSelect = new EventEmitter();\n /**\n * Event emitted right after the navigation happens and displayed month changes.\n *\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\n */\n this.navigate = new EventEmitter();\n /**\n * An event fired after closing datepicker window.\n *\n * @since 4.2.0\n */\n this.closed = new EventEmitter();\n this._onChange = _ => {};\n this._onTouched = () => {};\n this._validatorChange = () => {};\n }\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value === '' || value && value !== 'false';\n if (this.isOpen()) {\n this._cRef.instance.setDisabledState(this._disabled);\n }\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n registerOnValidatorChange(fn) {\n this._validatorChange = fn;\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n validate(c) {\n const {\n value\n } = c;\n if (value != null) {\n const ngbDate = this._fromDateStruct(this._dateAdapter.fromModel(value));\n if (!ngbDate) {\n return {\n ngbDate: {\n invalid: value\n }\n };\n }\n if (this.minDate && ngbDate.before(NgbDate.from(this.minDate))) {\n return {\n ngbDate: {\n minDate: {\n minDate: this.minDate,\n actual: value\n }\n }\n };\n }\n if (this.maxDate && ngbDate.after(NgbDate.from(this.maxDate))) {\n return {\n ngbDate: {\n maxDate: {\n maxDate: this.maxDate,\n actual: value\n }\n }\n };\n }\n }\n return null;\n }\n writeValue(value) {\n this._model = this._fromDateStruct(this._dateAdapter.fromModel(value));\n this._writeModelValue(this._model);\n }\n manualDateChange(value, updateView = false) {\n const inputValueChanged = value !== this._inputValue;\n if (inputValueChanged) {\n this._inputValue = value;\n this._model = this._fromDateStruct(this._parserFormatter.parse(value));\n }\n if (inputValueChanged || !updateView) {\n this._onChange(this._model ? this._dateAdapter.toModel(this._model) : value === '' ? null : value);\n }\n if (updateView && this._model) {\n this._writeModelValue(this._model);\n }\n }\n isOpen() {\n return !!this._cRef;\n }\n /**\n * Opens the datepicker popup.\n *\n * If the related form control contains a valid date, the corresponding month will be opened.\n */\n open() {\n if (!this.isOpen()) {\n this._cRef = this._vcRef.createComponent(NgbDatepicker);\n this._applyPopupStyling(this._cRef.location.nativeElement);\n this._applyDatepickerInputs(this._cRef);\n this._subscribeForDatepickerOutputs(this._cRef.instance);\n this._cRef.instance.ngOnInit();\n this._cRef.instance.writeValue(this._dateAdapter.toModel(this._model));\n // date selection event handling\n this._cRef.instance.registerOnChange(selectedDate => {\n this.writeValue(selectedDate);\n this._onChange(selectedDate);\n this._onTouched();\n });\n this._cRef.changeDetectorRef.detectChanges();\n this._cRef.instance.setDisabledState(this.disabled);\n if (this.container === 'body') {\n this._document.querySelector(this.container)?.appendChild(this._cRef.location.nativeElement);\n }\n // focus handling\n this._elWithFocus = this._document.activeElement;\n ngbFocusTrap(this._ngZone, this._cRef.location.nativeElement, this.closed, true);\n setTimeout(() => this._cRef?.instance.focus());\n let hostElement;\n if (isString(this.positionTarget)) {\n hostElement = this._document.querySelector(this.positionTarget);\n } else if (this.positionTarget instanceof HTMLElement) {\n hostElement = this.positionTarget;\n } else {\n hostElement = this._elRef.nativeElement;\n }\n if (this.positionTarget && !hostElement) {\n throw new Error('ngbDatepicker could not find element declared in [positionTarget] to position against.');\n }\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n if (this._cRef && hostElement) {\n this._positioning.createPopper({\n hostElement,\n targetElement: this._cRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n updatePopperOptions: options => this.popperOptions(addPopperOffset([0, 2])(options))\n });\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n }\n });\n this._setCloseHandlers();\n }\n }\n /**\n * Closes the datepicker popup.\n */\n close() {\n if (this.isOpen()) {\n this._vcRef.remove(this._vcRef.indexOf(this._cRef.hostView));\n this._cRef = null;\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this._destroyCloseHandlers$.next();\n this.closed.emit();\n this._changeDetector.markForCheck();\n // restore focus\n let elementToFocus = this._elWithFocus;\n if (isString(this.restoreFocus)) {\n elementToFocus = this._document.querySelector(this.restoreFocus);\n } else if (this.restoreFocus !== undefined) {\n elementToFocus = this.restoreFocus;\n }\n // in IE document.activeElement can contain an object without 'focus()' sometimes\n if (elementToFocus && elementToFocus['focus']) {\n elementToFocus.focus();\n } else {\n this._document.body.focus();\n }\n }\n }\n /**\n * Toggles the datepicker popup.\n */\n toggle() {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n /**\n * Navigates to the provided date.\n *\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n * If nothing or invalid date provided calendar will open current month.\n *\n * Use the `[startDate]` input as an alternative.\n */\n navigateTo(date) {\n if (this.isOpen()) {\n this._cRef.instance.navigateTo(date);\n }\n }\n onBlur() {\n this._onTouched();\n }\n onFocus() {\n this._elWithFocus = this._elRef.nativeElement;\n }\n ngOnChanges(changes) {\n if (changes['minDate'] || changes['maxDate']) {\n this._validatorChange();\n if (this.isOpen()) {\n if (changes['minDate']) {\n this._cRef.setInput('minDate', this.minDate);\n }\n if (changes['maxDate']) {\n this._cRef.setInput('maxDate', this.maxDate);\n }\n }\n }\n if (changes['datepickerClass']) {\n const {\n currentValue,\n previousValue\n } = changes['datepickerClass'];\n this._applyPopupClass(currentValue, previousValue);\n }\n if (changes['autoClose'] && this.isOpen()) {\n this._setCloseHandlers();\n }\n }\n ngOnDestroy() {\n this.close();\n }\n _applyDatepickerInputs(datepickerComponentRef) {\n ['contentTemplate', 'dayTemplate', 'dayTemplateData', 'displayMonths', 'firstDayOfWeek', 'footerTemplate', 'markDisabled', 'minDate', 'maxDate', 'navigation', 'outsideDays', 'showNavigation', 'showWeekNumbers', 'weekdays'].forEach(inputName => {\n if (this[inputName] !== undefined) {\n datepickerComponentRef.setInput(inputName, this[inputName]);\n }\n });\n datepickerComponentRef.setInput('startDate', this.startDate || this._model);\n }\n _applyPopupClass(newClass, oldClass) {\n const popupEl = this._cRef?.location.nativeElement;\n if (popupEl) {\n if (newClass) {\n popupEl.classList.add(newClass);\n }\n if (oldClass) {\n popupEl.classList.remove(oldClass);\n }\n }\n }\n _applyPopupStyling(nativeElement) {\n nativeElement.classList.add('dropdown-menu', 'show');\n if (this.container === 'body') {\n nativeElement.classList.add('ngb-dp-body');\n }\n this._applyPopupClass(this.datepickerClass);\n }\n _subscribeForDatepickerOutputs(datepickerInstance) {\n datepickerInstance.navigate.subscribe(navigateEvent => this.navigate.emit(navigateEvent));\n datepickerInstance.dateSelect.subscribe(date => {\n this.dateSelect.emit(date);\n if (this.autoClose === true || this.autoClose === 'inside') {\n this.close();\n }\n });\n }\n _writeModelValue(model) {\n const value = this._parserFormatter.format(model);\n this._inputValue = value;\n this._elRef.nativeElement.value = value;\n if (this.isOpen()) {\n this._cRef.instance.writeValue(this._dateAdapter.toModel(model));\n this._onTouched();\n }\n }\n _fromDateStruct(date) {\n const ngbDate = date ? new NgbDate(date.year, date.month, date.day) : null;\n return this._calendar.isValid(ngbDate) ? ngbDate : null;\n }\n _setCloseHandlers() {\n this._destroyCloseHandlers$.next();\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this._destroyCloseHandlers$, [], [this._elRef.nativeElement, this._cRef.location.nativeElement]);\n }\n static {\n this.ɵfac = function NgbInputDatepicker_Factory(t) {\n return new (t || NgbInputDatepicker)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbInputDatepicker,\n selectors: [[\"input\", \"ngbDatepicker\", \"\"]],\n hostVars: 1,\n hostBindings: function NgbInputDatepicker_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"input\", function NgbInputDatepicker_input_HostBindingHandler($event) {\n return ctx.manualDateChange($event.target.value);\n })(\"change\", function NgbInputDatepicker_change_HostBindingHandler($event) {\n return ctx.manualDateChange($event.target.value, true);\n })(\"focus\", function NgbInputDatepicker_focus_HostBindingHandler() {\n return ctx.onFocus();\n })(\"blur\", function NgbInputDatepicker_blur_HostBindingHandler() {\n return ctx.onBlur();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"disabled\", ctx.disabled);\n }\n },\n inputs: {\n autoClose: \"autoClose\",\n contentTemplate: \"contentTemplate\",\n datepickerClass: \"datepickerClass\",\n dayTemplate: \"dayTemplate\",\n dayTemplateData: \"dayTemplateData\",\n displayMonths: \"displayMonths\",\n firstDayOfWeek: \"firstDayOfWeek\",\n footerTemplate: \"footerTemplate\",\n markDisabled: \"markDisabled\",\n minDate: \"minDate\",\n maxDate: \"maxDate\",\n navigation: \"navigation\",\n outsideDays: \"outsideDays\",\n placement: \"placement\",\n popperOptions: \"popperOptions\",\n restoreFocus: \"restoreFocus\",\n showWeekNumbers: \"showWeekNumbers\",\n startDate: \"startDate\",\n container: \"container\",\n positionTarget: \"positionTarget\",\n weekdays: \"weekdays\",\n disabled: \"disabled\"\n },\n outputs: {\n dateSelect: \"dateSelect\",\n navigate: \"navigate\",\n closed: \"closed\"\n },\n exportAs: [\"ngbDatepicker\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbInputDatepicker),\n multi: true\n }, {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NgbInputDatepicker),\n multi: true\n }, {\n provide: NgbDatepickerConfig,\n useExisting: NgbInputDatepickerConfig\n }]), i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbInputDatepicker, [{\n type: Directive,\n args: [{\n selector: 'input[ngbDatepicker]',\n exportAs: 'ngbDatepicker',\n standalone: true,\n host: {\n '(input)': 'manualDateChange($event.target.value)',\n '(change)': 'manualDateChange($event.target.value, true)',\n '(focus)': 'onFocus()',\n '(blur)': 'onBlur()',\n '[disabled]': 'disabled'\n },\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbInputDatepicker),\n multi: true\n }, {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NgbInputDatepicker),\n multi: true\n }, {\n provide: NgbDatepickerConfig,\n useExisting: NgbInputDatepickerConfig\n }]\n }]\n }], null, {\n autoClose: [{\n type: Input\n }],\n contentTemplate: [{\n type: Input\n }],\n datepickerClass: [{\n type: Input\n }],\n dayTemplate: [{\n type: Input\n }],\n dayTemplateData: [{\n type: Input\n }],\n displayMonths: [{\n type: Input\n }],\n firstDayOfWeek: [{\n type: Input\n }],\n footerTemplate: [{\n type: Input\n }],\n markDisabled: [{\n type: Input\n }],\n minDate: [{\n type: Input\n }],\n maxDate: [{\n type: Input\n }],\n navigation: [{\n type: Input\n }],\n outsideDays: [{\n type: Input\n }],\n placement: [{\n type: Input\n }],\n popperOptions: [{\n type: Input\n }],\n restoreFocus: [{\n type: Input\n }],\n showWeekNumbers: [{\n type: Input\n }],\n startDate: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n positionTarget: [{\n type: Input\n }],\n weekdays: [{\n type: Input\n }],\n dateSelect: [{\n type: Output\n }],\n navigate: [{\n type: Output\n }],\n closed: [{\n type: Output\n }],\n disabled: [{\n type: Input\n }]\n });\n})();\nclass NgbCalendarHijri extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths() {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n getWeeksPerMonth() {\n return 6;\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date = this._setYear(date, date.year + number);\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = this._setMonth(date, date.month + number);\n date.day = 1;\n return date;\n case 'd':\n return this._setDay(date, date.day + number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const day = this.toGregorian(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n const date = week[thursdayIndex];\n const jsDate = this.toGregorian(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n const MuhDate = this.toGregorian(new NgbDate(date.year, 1, 1)); // Compare with Muharram 1\n return Math.floor(Math.round((time - MuhDate.getTime()) / 86400000) / 7) + 1;\n }\n getToday() {\n return this.fromGregorian(new Date());\n }\n isValid(date) {\n return date != null && isNumber(date.year) && isNumber(date.month) && isNumber(date.day) && !isNaN(this.toGregorian(date).getTime());\n }\n _setDay(date, day) {\n day = +day;\n let mDays = this.getDaysPerMonth(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = this._setMonth(date, date.month - 1);\n mDays = this.getDaysPerMonth(date.month, date.year);\n day += mDays;\n }\n } else if (day > mDays) {\n while (day > mDays) {\n day -= mDays;\n date = this._setMonth(date, date.month + 1);\n mDays = this.getDaysPerMonth(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n }\n _setMonth(date, month) {\n month = +month;\n date.year = date.year + Math.floor((month - 1) / 12);\n date.month = Math.floor(((month - 1) % 12 + 12) % 12) + 1;\n return date;\n }\n _setYear(date, year) {\n date.year = +year;\n return date;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarHijri_BaseFactory;\n return function NgbCalendarHijri_Factory(t) {\n return (ɵNgbCalendarHijri_BaseFactory || (ɵNgbCalendarHijri_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarHijri)))(t || NgbCalendarHijri);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarHijri,\n factory: NgbCalendarHijri.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarHijri, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * Checks if islamic year is a leap year\n */\nfunction isIslamicLeapYear(hYear) {\n return (14 + 11 * hYear) % 30 < 11;\n}\n/**\n * Checks if gregorian years is a leap year\n */\nfunction isGregorianLeapYear$1(gDate) {\n const year = gDate.getFullYear();\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\n/**\n * Returns the start of Hijri Month.\n * `hMonth` is 0 for Muharram, 1 for Safar, etc.\n * `hYear` is any Hijri hYear.\n */\nfunction getIslamicMonthStart(hYear, hMonth) {\n return Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30.0);\n}\n/**\n * Returns the start of Hijri year.\n * `year` is any Hijri year.\n */\nfunction getIslamicYearStart(year) {\n return (year - 1) * 354 + Math.floor((3 + 11 * year) / 30.0);\n}\nfunction mod$1(a, b) {\n return a - b * Math.floor(a / b);\n}\n/**\n * The civil calendar is one type of Hijri calendars used in islamic countries.\n * Uses a fixed cycle of alternating 29- and 30-day months,\n * with a leap day added to the last month of 11 out of every 30 years.\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\n * All the calculations here are based on the equations from \"Calendrical Calculations\" By Edward M. Reingold, Nachum\n * Dershowitz.\n */\nconst GREGORIAN_EPOCH$1 = 1721425.5;\nconst ISLAMIC_EPOCH = 1948439.5;\nclass NgbCalendarIslamicCivil extends NgbCalendarHijri {\n /**\n * Returns the equivalent islamic(civil) date value for a give input Gregorian date.\n * `gDate` is a JS Date to be converted to Hijri.\n */\n fromGregorian(gDate) {\n const gYear = gDate.getFullYear(),\n gMonth = gDate.getMonth(),\n gDay = gDate.getDate();\n let julianDay = GREGORIAN_EPOCH$1 - 1 + 365 * (gYear - 1) + Math.floor((gYear - 1) / 4) + -Math.floor((gYear - 1) / 100) + Math.floor((gYear - 1) / 400) + Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear$1(gDate) ? -1 : -2) + gDay);\n julianDay = Math.floor(julianDay) + 0.5;\n const days = julianDay - ISLAMIC_EPOCH;\n const hYear = Math.floor((30 * days + 10646) / 10631.0);\n let hMonth = Math.ceil((days - 29 - getIslamicYearStart(hYear)) / 29.5);\n hMonth = Math.min(hMonth, 11);\n const hDay = Math.ceil(days - getIslamicMonthStart(hYear, hMonth)) + 1;\n return new NgbDate(hYear, hMonth + 1, hDay);\n }\n /**\n * Returns the equivalent JS date value for a give input islamic(civil) date.\n * `hDate` is an islamic(civil) date to be converted to Gregorian.\n */\n toGregorian(hDate) {\n const hYear = hDate.year;\n const hMonth = hDate.month - 1;\n const hDay = hDate.day;\n const julianDay = hDay + Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30) + ISLAMIC_EPOCH - 1;\n const wjd = Math.floor(julianDay - 0.5) + 0.5,\n depoch = wjd - GREGORIAN_EPOCH$1,\n quadricent = Math.floor(depoch / 146097),\n dqc = mod$1(depoch, 146097),\n cent = Math.floor(dqc / 36524),\n dcent = mod$1(dqc, 36524),\n quad = Math.floor(dcent / 1461),\n dquad = mod$1(dcent, 1461),\n yindex = Math.floor(dquad / 365);\n let year = quadricent * 400 + cent * 100 + quad * 4 + yindex;\n if (!(cent === 4 || yindex === 4)) {\n year++;\n }\n const gYearStart = GREGORIAN_EPOCH$1 + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) + Math.floor((year - 1) / 400);\n const yearday = wjd - gYearStart;\n const tjd = GREGORIAN_EPOCH$1 - 1 + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) + Math.floor((year - 1) / 400) + Math.floor(739 / 12 + (isGregorianLeapYear$1(new Date(year, 3, 1)) ? -1 : -2) + 1);\n const leapadj = wjd < tjd ? 0 : isGregorianLeapYear$1(new Date(year, 3, 1)) ? 1 : 2;\n const month = Math.floor(((yearday + leapadj) * 12 + 373) / 367);\n const tjd2 = GREGORIAN_EPOCH$1 - 1 + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) + Math.floor((year - 1) / 400) + Math.floor((367 * month - 362) / 12 + (month <= 2 ? 0 : isGregorianLeapYear$1(new Date(year, month - 1, 1)) ? -1 : -2) + 1);\n const day = wjd - tjd2 + 1;\n return new Date(year, month - 1, day);\n }\n /**\n * Returns the number of days in a specific Hijri month.\n * `month` is 1 for Muharram, 2 for Safar, etc.\n * `year` is any Hijri year.\n */\n getDaysPerMonth(month, year) {\n year = year + Math.floor(month / 13);\n month = (month - 1) % 12 + 1;\n let length = 29 + month % 2;\n if (month === 12 && isIslamicLeapYear(year)) {\n length++;\n }\n return length;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarIslamicCivil_BaseFactory;\n return function NgbCalendarIslamicCivil_Factory(t) {\n return (ɵNgbCalendarIslamicCivil_BaseFactory || (ɵNgbCalendarIslamicCivil_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarIslamicCivil)))(t || NgbCalendarIslamicCivil);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarIslamicCivil,\n factory: NgbCalendarIslamicCivil.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarIslamicCivil, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * Umalqura calendar is one type of Hijri calendars used in islamic countries.\n * This Calendar is used by Saudi Arabia for administrative purpose.\n * Unlike tabular calendars, the algorithm involves astronomical calculation, but it's still deterministic.\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\n */\nconst GREGORIAN_FIRST_DATE = new Date(1882, 10, 12);\nconst GREGORIAN_LAST_DATE = new Date(2174, 10, 25);\nconst HIJRI_BEGIN = 1300;\nconst HIJRI_END = 1600;\nconst ONE_DAY = 1000 * 60 * 60 * 24;\nconst MONTH_LENGTH = [\n// 1300-1304\n'101010101010', '110101010100', '111011001001', '011011010100', '011011101010',\n// 1305-1309\n'001101101100', '101010101101', '010101010101', '011010101001', '011110010010',\n// 1310-1314\n'101110101001', '010111010100', '101011011010', '010101011100', '110100101101',\n// 1315-1319\n'011010010101', '011101001010', '101101010100', '101101101010', '010110101101',\n// 1320-1324\n'010010101110', '101001001111', '010100010111', '011010001011', '011010100101',\n// 1325-1329\n'101011010101', '001011010110', '100101011011', '010010011101', '101001001101',\n// 1330-1334\n'110100100110', '110110010101', '010110101100', '100110110110', '001010111010',\n// 1335-1339\n'101001011011', '010100101011', '101010010101', '011011001010', '101011101001',\n// 1340-1344\n'001011110100', '100101110110', '001010110110', '100101010110', '101011001010',\n// 1345-1349\n'101110100100', '101111010010', '010111011001', '001011011100', '100101101101',\n// 1350-1354\n'010101001101', '101010100101', '101101010010', '101110100101', '010110110100',\n// 1355-1359\n'100110110110', '010101010111', '001010010111', '010101001011', '011010100011',\n// 1360-1364\n'011101010010', '101101100101', '010101101010', '101010101011', '010100101011',\n// 1365-1369\n'110010010101', '110101001010', '110110100101', '010111001010', '101011010110',\n// 1370-1374\n'100101010111', '010010101011', '100101001011', '101010100101', '101101010010',\n// 1375-1379\n'101101101010', '010101110101', '001001110110', '100010110111', '010001011011',\n// 1380-1384\n'010101010101', '010110101001', '010110110100', '100111011010', '010011011101',\n// 1385-1389\n'001001101110', '100100110110', '101010101010', '110101010100', '110110110010',\n// 1390-1394\n'010111010101', '001011011010', '100101011011', '010010101011', '101001010101',\n// 1395-1399\n'101101001001', '101101100100', '101101110001', '010110110100', '101010110101',\n// 1400-1404\n'101001010101', '110100100101', '111010010010', '111011001001', '011011010100',\n// 1405-1409\n'101011101001', '100101101011', '010010101011', '101010010011', '110101001001',\n// 1410-1414\n'110110100100', '110110110010', '101010111001', '010010111010', '101001011011',\n// 1415-1419\n'010100101011', '101010010101', '101100101010', '101101010101', '010101011100',\n// 1420-1424\n'010010111101', '001000111101', '100100011101', '101010010101', '101101001010',\n// 1425-1429\n'101101011010', '010101101101', '001010110110', '100100111011', '010010011011',\n// 1430-1434\n'011001010101', '011010101001', '011101010100', '101101101010', '010101101100',\n// 1435-1439\n'101010101101', '010101010101', '101100101001', '101110010010', '101110101001',\n// 1440-1444\n'010111010100', '101011011010', '010101011010', '101010101011', '010110010101',\n// 1445-1449\n'011101001001', '011101100100', '101110101010', '010110110101', '001010110110',\n// 1450-1454\n'101001010110', '111001001101', '101100100101', '101101010010', '101101101010',\n// 1455-1459\n'010110101101', '001010101110', '100100101111', '010010010111', '011001001011',\n// 1460-1464\n'011010100101', '011010101100', '101011010110', '010101011101', '010010011101',\n// 1465-1469\n'101001001101', '110100010110', '110110010101', '010110101010', '010110110101',\n// 1470-1474\n'001011011010', '100101011011', '010010101101', '010110010101', '011011001010',\n// 1475-1479\n'011011100100', '101011101010', '010011110101', '001010110110', '100101010110',\n// 1480-1484\n'101010101010', '101101010100', '101111010010', '010111011001', '001011101010',\n// 1485-1489\n'100101101101', '010010101101', '101010010101', '101101001010', '101110100101',\n// 1490-1494\n'010110110010', '100110110101', '010011010110', '101010010111', '010101000111',\n// 1495-1499\n'011010010011', '011101001001', '101101010101', '010101101010', '101001101011',\n// 1500-1504\n'010100101011', '101010001011', '110101000110', '110110100011', '010111001010',\n// 1505-1509\n'101011010110', '010011011011', '001001101011', '100101001011', '101010100101',\n// 1510-1514\n'101101010010', '101101101001', '010101110101', '000101110110', '100010110111',\n// 1515-1519\n'001001011011', '010100101011', '010101100101', '010110110100', '100111011010',\n// 1520-1524\n'010011101101', '000101101101', '100010110110', '101010100110', '110101010010',\n// 1525-1529\n'110110101001', '010111010100', '101011011010', '100101011011', '010010101011',\n// 1530-1534\n'011001010011', '011100101001', '011101100010', '101110101001', '010110110010',\n// 1535-1539\n'101010110101', '010101010101', '101100100101', '110110010010', '111011001001',\n// 1540-1544\n'011011010010', '101011101001', '010101101011', '010010101011', '101001010101',\n// 1545-1549\n'110100101001', '110101010100', '110110101010', '100110110101', '010010111010',\n// 1550-1554\n'101000111011', '010010011011', '101001001101', '101010101010', '101011010101',\n// 1555-1559\n'001011011010', '100101011101', '010001011110', '101000101110', '110010011010',\n// 1560-1564\n'110101010101', '011010110010', '011010111001', '010010111010', '101001011101',\n// 1565-1569\n'010100101101', '101010010101', '101101010010', '101110101000', '101110110100',\n// 1570-1574\n'010110111001', '001011011010', '100101011010', '101101001010', '110110100100',\n// 1575-1579\n'111011010001', '011011101000', '101101101010', '010101101101', '010100110101',\n// 1580-1584\n'011010010101', '110101001010', '110110101000', '110111010100', '011011011010',\n// 1585-1589\n'010101011011', '001010011101', '011000101011', '101100010101', '101101001010',\n// 1590-1594\n'101110010101', '010110101010', '101010101110', '100100101110', '110010001111',\n// 1595-1599\n'010100100111', '011010010101', '011010101010', '101011010110', '010101011101',\n// 1600\n'001010011101'];\nfunction getDaysDiff(date1, date2) {\n // Ignores the time part in date1 and date2:\n const time1 = Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate());\n const time2 = Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate());\n const diff = Math.abs(time1 - time2);\n return Math.round(diff / ONE_DAY);\n}\nclass NgbCalendarIslamicUmalqura extends NgbCalendarIslamicCivil {\n /**\n * Returns the equivalent islamic(Umalqura) date value for a give input Gregorian date.\n * `gdate` is s JS Date to be converted to Hijri.\n */\n fromGregorian(gDate) {\n let hDay = 1,\n hMonth = 0,\n hYear = 1300;\n let daysDiff = getDaysDiff(gDate, GREGORIAN_FIRST_DATE);\n if (gDate.getTime() - GREGORIAN_FIRST_DATE.getTime() >= 0 && gDate.getTime() - GREGORIAN_LAST_DATE.getTime() <= 0) {\n let year = 1300;\n for (let i = 0; i < MONTH_LENGTH.length; i++, year++) {\n for (let j = 0; j < 12; j++) {\n let numOfDays = +MONTH_LENGTH[i][j] + 29;\n if (daysDiff <= numOfDays) {\n hDay = daysDiff + 1;\n if (hDay > numOfDays) {\n hDay = 1;\n j++;\n }\n if (j > 11) {\n j = 0;\n year++;\n }\n hMonth = j;\n hYear = year;\n return new NgbDate(hYear, hMonth + 1, hDay);\n }\n daysDiff = daysDiff - numOfDays;\n }\n }\n return null;\n } else {\n return super.fromGregorian(gDate);\n }\n }\n /**\n * Converts the current Hijri date to Gregorian.\n */\n toGregorian(hDate) {\n const hYear = hDate.year;\n const hMonth = hDate.month - 1;\n const hDay = hDate.day;\n let gDate = new Date(GREGORIAN_FIRST_DATE);\n let dayDiff = hDay - 1;\n if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) {\n for (let y = 0; y < hYear - HIJRI_BEGIN; y++) {\n for (let m = 0; m < 12; m++) {\n dayDiff += +MONTH_LENGTH[y][m] + 29;\n }\n }\n for (let m = 0; m < hMonth; m++) {\n dayDiff += +MONTH_LENGTH[hYear - HIJRI_BEGIN][m] + 29;\n }\n gDate.setDate(GREGORIAN_FIRST_DATE.getDate() + dayDiff);\n } else {\n gDate = super.toGregorian(hDate);\n }\n return gDate;\n }\n /**\n * Returns the number of days in a specific Hijri hMonth.\n * `hMonth` is 1 for Muharram, 2 for Safar, etc.\n * `hYear` is any Hijri hYear.\n */\n getDaysPerMonth(hMonth, hYear) {\n if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) {\n const pos = hYear - HIJRI_BEGIN;\n return +MONTH_LENGTH[pos][hMonth - 1] + 29;\n }\n return super.getDaysPerMonth(hMonth, hYear);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarIslamicUmalqura_BaseFactory;\n return function NgbCalendarIslamicUmalqura_Factory(t) {\n return (ɵNgbCalendarIslamicUmalqura_BaseFactory || (ɵNgbCalendarIslamicUmalqura_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarIslamicUmalqura)))(t || NgbCalendarIslamicUmalqura);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarIslamicUmalqura,\n factory: NgbCalendarIslamicUmalqura.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarIslamicUmalqura, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * Returns the equivalent JS date value for a give input Jalali date.\n * `jalaliDate` is an Jalali date to be converted to Gregorian.\n */\nfunction toGregorian$3(jalaliDate) {\n let jdn = jalaliToJulian(jalaliDate.year, jalaliDate.month, jalaliDate.day);\n let date = julianToGregorian$1(jdn);\n date.setHours(6, 30, 3, 200);\n return date;\n}\n/**\n * Returns the equivalent jalali date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to jalali.\n * utc to local\n */\nfunction fromGregorian$3(gdate) {\n let g2d = gregorianToJulian$1(gdate.getFullYear(), gdate.getMonth() + 1, gdate.getDate());\n return julianToJalali(g2d);\n}\nfunction setJalaliYear(date, yearValue) {\n date.year = +yearValue;\n return date;\n}\nfunction setJalaliMonth(date, month) {\n month = +month;\n date.year = date.year + Math.floor((month - 1) / 12);\n date.month = Math.floor(((month - 1) % 12 + 12) % 12) + 1;\n return date;\n}\nfunction setJalaliDay(date, day) {\n let mDays = getDaysPerMonth$1(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = setJalaliMonth(date, date.month - 1);\n mDays = getDaysPerMonth$1(date.month, date.year);\n day += mDays;\n }\n } else if (day > mDays) {\n while (day > mDays) {\n day -= mDays;\n date = setJalaliMonth(date, date.month + 1);\n mDays = getDaysPerMonth$1(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n}\nfunction mod(a, b) {\n return a - b * Math.floor(a / b);\n}\nfunction div(a, b) {\n return Math.trunc(a / b);\n}\n/*\n This function determines if the Jalali (Persian) year is\n leap (366-day long) or is the common year (365 days), and\n finds the day in March (Gregorian calendar) of the first\n day of the Jalali year (jalaliYear).\n @param jalaliYear Jalali calendar year (-61 to 3177)\n @return\n leap: number of years since the last leap year (0 to 4)\n gYear: Gregorian year of the beginning of Jalali year\n march: the March day of Farvardin the 1st (1st day of jalaliYear)\n @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm\n @see: http://www.fourmilab.ch/documents/calendar/\n */\nfunction jalCal(jalaliYear) {\n // Jalali years starting the 33-year rule.\n let breaks = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178];\n const breaksLength = breaks.length;\n const gYear = jalaliYear + 621;\n let leapJ = -14;\n let jp = breaks[0];\n if (jalaliYear < jp || jalaliYear >= breaks[breaksLength - 1]) {\n throw new Error('Invalid Jalali year ' + jalaliYear);\n }\n // Find the limiting years for the Jalali year jalaliYear.\n let jump;\n for (let i = 1; i < breaksLength; i += 1) {\n const jm = breaks[i];\n jump = jm - jp;\n if (jalaliYear < jm) {\n break;\n }\n leapJ = leapJ + div(jump, 33) * 8 + div(mod(jump, 33), 4);\n jp = jm;\n }\n let n = jalaliYear - jp;\n // Find the number of leap years from AD 621 to the beginning\n // of the current Jalali year in the Persian calendar.\n leapJ = leapJ + div(n, 33) * 8 + div(mod(n, 33) + 3, 4);\n if (mod(jump, 33) === 4 && jump - n === 4) {\n leapJ += 1;\n }\n // And the same in the Gregorian calendar (until the year gYear).\n const leapG = div(gYear, 4) - div((div(gYear, 100) + 1) * 3, 4) - 150;\n // Determine the Gregorian date of Farvardin the 1st.\n const march = 20 + leapJ - leapG;\n // Find how many years have passed since the last leap year.\n if (jump - n < 6) {\n n = n - jump + div(jump + 4, 33) * 33;\n }\n let leap = mod(mod(n + 1, 33) - 1, 4);\n if (leap === -1) {\n leap = 4;\n }\n return {\n leap: leap,\n gy: gYear,\n march: march\n };\n}\n/*\n Calculates Gregorian and Julian calendar dates from the Julian Day number\n (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both\n calendars) to some millions years ahead of the present.\n @param jdn Julian Day number\n @return\n gYear: Calendar year (years BC numbered 0, -1, -2, ...)\n gMonth: Calendar month (1 to 12)\n gDay: Calendar day of the month M (1 to 28/29/30/31)\n */\nfunction julianToGregorian$1(julianDayNumber) {\n let j = 4 * julianDayNumber + 139361631;\n j = j + div(div(4 * julianDayNumber + 183187720, 146097) * 3, 4) * 4 - 3908;\n const i = div(mod(j, 1461), 4) * 5 + 308;\n const gDay = div(mod(i, 153), 5) + 1;\n const gMonth = mod(div(i, 153), 12) + 1;\n const gYear = div(j, 1461) - 100100 + div(8 - gMonth, 6);\n return new Date(gYear, gMonth - 1, gDay);\n}\n/*\n Converts a date of the Jalali calendar to the Julian Day number.\n @param jy Jalali year (1 to 3100)\n @param jm Jalali month (1 to 12)\n @param jd Jalali day (1 to 29/31)\n @return Julian Day number\n */\nfunction gregorianToJulian$1(gy, gm, gd) {\n let d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4) + div(153 * mod(gm + 9, 12) + 2, 5) + gd - 34840408;\n d = d - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752;\n return d;\n}\n/*\n Converts the Julian Day number to a date in the Jalali calendar.\n @param julianDayNumber Julian Day number\n @return\n jalaliYear: Jalali year (1 to 3100)\n jalaliMonth: Jalali month (1 to 12)\n jalaliDay: Jalali day (1 to 29/31)\n */\nfunction julianToJalali(julianDayNumber) {\n let gy = julianToGregorian$1(julianDayNumber).getFullYear(),\n // Calculate Gregorian year (gy).\n jalaliYear = gy - 621,\n r = jalCal(jalaliYear),\n gregorianDay = gregorianToJulian$1(gy, 3, r.march),\n jalaliDay,\n jalaliMonth,\n numberOfDays;\n // Find number of days that passed since 1 Farvardin.\n numberOfDays = julianDayNumber - gregorianDay;\n if (numberOfDays >= 0) {\n if (numberOfDays <= 185) {\n // The first 6 months.\n jalaliMonth = 1 + div(numberOfDays, 31);\n jalaliDay = mod(numberOfDays, 31) + 1;\n return new NgbDate(jalaliYear, jalaliMonth, jalaliDay);\n } else {\n // The remaining months.\n numberOfDays -= 186;\n }\n } else {\n // Previous Jalali year.\n jalaliYear -= 1;\n numberOfDays += 179;\n if (r.leap === 1) {\n numberOfDays += 1;\n }\n }\n jalaliMonth = 7 + div(numberOfDays, 30);\n jalaliDay = mod(numberOfDays, 30) + 1;\n return new NgbDate(jalaliYear, jalaliMonth, jalaliDay);\n}\n/*\n Converts a date of the Jalali calendar to the Julian Day number.\n @param jYear Jalali year (1 to 3100)\n @param jMonth Jalali month (1 to 12)\n @param jDay Jalali day (1 to 29/31)\n @return Julian Day number\n */\nfunction jalaliToJulian(jYear, jMonth, jDay) {\n let r = jalCal(jYear);\n return gregorianToJulian$1(r.gy, 3, r.march) + (jMonth - 1) * 31 - div(jMonth, 7) * (jMonth - 7) + jDay - 1;\n}\n/**\n * Returns the number of days in a specific jalali month.\n */\nfunction getDaysPerMonth$1(month, year) {\n if (month <= 6) {\n return 31;\n }\n if (month <= 11) {\n return 30;\n }\n if (jalCal(year).leap === 0) {\n return 30;\n }\n return 29;\n}\nclass NgbCalendarPersian extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths() {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n getWeeksPerMonth() {\n return 6;\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date = setJalaliYear(date, date.year + number);\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = setJalaliMonth(date, date.month + number);\n date.day = 1;\n return date;\n case 'd':\n return setJalaliDay(date, date.day + number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const day = toGregorian$3(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n const date = week[thursdayIndex];\n const jsDate = toGregorian$3(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n const startDate = toGregorian$3(new NgbDate(date.year, 1, 1));\n return Math.floor(Math.round((time - startDate.getTime()) / 86400000) / 7) + 1;\n }\n getToday() {\n return fromGregorian$3(new Date());\n }\n isValid(date) {\n return date != null && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) && !isNaN(toGregorian$3(date).getTime());\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarPersian_BaseFactory;\n return function NgbCalendarPersian_Factory(t) {\n return (ɵNgbCalendarPersian_BaseFactory || (ɵNgbCalendarPersian_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarPersian)))(t || NgbCalendarPersian);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarPersian,\n factory: NgbCalendarPersian.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarPersian, [{\n type: Injectable\n }], null, null);\n})();\nconst PARTS_PER_HOUR = 1080;\nconst PARTS_PER_DAY = 24 * PARTS_PER_HOUR;\nconst PARTS_FRACTIONAL_MONTH = 12 * PARTS_PER_HOUR + 793;\nconst PARTS_PER_MONTH = 29 * PARTS_PER_DAY + PARTS_FRACTIONAL_MONTH;\nconst BAHARAD = 11 * PARTS_PER_HOUR + 204;\nconst HEBREW_DAY_ON_JAN_1_1970 = 2092591;\nconst GREGORIAN_EPOCH = 1721425.5;\nfunction isGregorianLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\nfunction numberOfFirstDayInYear(year) {\n let monthsBeforeYear = Math.floor((235 * year - 234) / 19);\n let fractionalMonthsBeforeYear = monthsBeforeYear * PARTS_FRACTIONAL_MONTH + BAHARAD;\n let dayNumber = monthsBeforeYear * 29 + Math.floor(fractionalMonthsBeforeYear / PARTS_PER_DAY);\n let timeOfDay = fractionalMonthsBeforeYear % PARTS_PER_DAY;\n let dayOfWeek = dayNumber % 7; // 0 == Monday\n if (dayOfWeek === 2 || dayOfWeek === 4 || dayOfWeek === 6) {\n dayNumber++;\n dayOfWeek = dayNumber % 7;\n }\n if (dayOfWeek === 1 && timeOfDay > 15 * PARTS_PER_HOUR + 204 && !isHebrewLeapYear(year)) {\n dayNumber += 2;\n } else if (dayOfWeek === 0 && timeOfDay > 21 * PARTS_PER_HOUR + 589 && isHebrewLeapYear(year - 1)) {\n dayNumber++;\n }\n return dayNumber;\n}\nfunction getDaysInGregorianMonth(month, year) {\n let days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (isGregorianLeapYear(year)) {\n days[1]++;\n }\n return days[month - 1];\n}\nfunction getHebrewMonths(year) {\n return isHebrewLeapYear(year) ? 13 : 12;\n}\n/**\n * Returns the number of days in a specific Hebrew year.\n * `year` is any Hebrew year.\n */\nfunction getDaysInHebrewYear(year) {\n return numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year);\n}\nfunction isHebrewLeapYear(year) {\n if (year != null) {\n let b = (year * 12 + 17) % 19;\n return b >= (b < 0 ? -7 : 12);\n }\n return false;\n}\n/**\n * Returns the number of days in a specific Hebrew month.\n * `month` is 1 for Nisan, 2 for Iyar etc. Note: Hebrew leap year contains 13 months.\n * `year` is any Hebrew year.\n */\nfunction getDaysInHebrewMonth(month, year) {\n let yearLength = numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year);\n let yearType = (yearLength <= 380 ? yearLength : yearLength - 30) - 353;\n let leapYear = isHebrewLeapYear(year);\n let daysInMonth = leapYear ? [30, 29, 29, 29, 30, 30, 29, 30, 29, 30, 29, 30, 29] : [30, 29, 29, 29, 30, 29, 30, 29, 30, 29, 30, 29];\n if (yearType > 0) {\n daysInMonth[2]++; // Kislev gets an extra day in normal or complete years.\n }\n if (yearType > 1) {\n daysInMonth[1]++; // Heshvan gets an extra day in complete years only.\n }\n return daysInMonth[month - 1];\n}\nfunction getDayNumberInHebrewYear(date) {\n let numberOfDay = 0;\n for (let i = 1; i < date.month; i++) {\n numberOfDay += getDaysInHebrewMonth(i, date.year);\n }\n return numberOfDay + date.day;\n}\nfunction setHebrewMonth(date, val) {\n let after = val >= 0;\n if (!after) {\n val = -val;\n }\n while (val > 0) {\n if (after) {\n if (val > getHebrewMonths(date.year) - date.month) {\n val -= getHebrewMonths(date.year) - date.month + 1;\n date.year++;\n date.month = 1;\n } else {\n date.month += val;\n val = 0;\n }\n } else {\n if (val >= date.month) {\n date.year--;\n val -= date.month;\n date.month = getHebrewMonths(date.year);\n } else {\n date.month -= val;\n val = 0;\n }\n }\n }\n return date;\n}\nfunction setHebrewDay(date, val) {\n let after = val >= 0;\n if (!after) {\n val = -val;\n }\n while (val > 0) {\n if (after) {\n if (val > getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date)) {\n val -= getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date) + 1;\n date.year++;\n date.month = 1;\n date.day = 1;\n } else if (val > getDaysInHebrewMonth(date.month, date.year) - date.day) {\n val -= getDaysInHebrewMonth(date.month, date.year) - date.day + 1;\n date.month++;\n date.day = 1;\n } else {\n date.day += val;\n val = 0;\n }\n } else {\n if (val >= date.day) {\n val -= date.day;\n date.month--;\n if (date.month === 0) {\n date.year--;\n date.month = getHebrewMonths(date.year);\n }\n date.day = getDaysInHebrewMonth(date.month, date.year);\n } else {\n date.day -= val;\n val = 0;\n }\n }\n }\n return date;\n}\n/**\n * Returns the equivalent Hebrew date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to Hebrew date.\n */\nfunction fromGregorian$2(gdate) {\n const date = new Date(gdate);\n const gYear = date.getFullYear(),\n gMonth = date.getMonth(),\n gDay = date.getDate();\n let julianDay = GREGORIAN_EPOCH - 1 + 365 * (gYear - 1) + Math.floor((gYear - 1) / 4) - Math.floor((gYear - 1) / 100) + Math.floor((gYear - 1) / 400) + Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear(gYear) ? -1 : -2) + gDay);\n julianDay = Math.floor(julianDay + 0.5);\n let daysSinceHebEpoch = julianDay - 347997;\n let monthsSinceHebEpoch = Math.floor(daysSinceHebEpoch * PARTS_PER_DAY / PARTS_PER_MONTH);\n let hYear = Math.floor((monthsSinceHebEpoch * 19 + 234) / 235) + 1;\n let firstDayOfThisYear = numberOfFirstDayInYear(hYear);\n let dayOfYear = daysSinceHebEpoch - firstDayOfThisYear;\n while (dayOfYear < 1) {\n hYear--;\n firstDayOfThisYear = numberOfFirstDayInYear(hYear);\n dayOfYear = daysSinceHebEpoch - firstDayOfThisYear;\n }\n let hMonth = 1;\n let hDay = dayOfYear;\n while (hDay > getDaysInHebrewMonth(hMonth, hYear)) {\n hDay -= getDaysInHebrewMonth(hMonth, hYear);\n hMonth++;\n }\n return new NgbDate(hYear, hMonth, hDay);\n}\n/**\n * Returns the equivalent JS date value for a given Hebrew date.\n * `hebrewDate` is an Hebrew date to be converted to Gregorian.\n */\nfunction toGregorian$2(hebrewDate) {\n const hYear = hebrewDate.year;\n const hMonth = hebrewDate.month;\n const hDay = hebrewDate.day;\n let days = numberOfFirstDayInYear(hYear);\n for (let i = 1; i < hMonth; i++) {\n days += getDaysInHebrewMonth(i, hYear);\n }\n days += hDay;\n let diffDays = days - HEBREW_DAY_ON_JAN_1_1970;\n let after = diffDays >= 0;\n if (!after) {\n diffDays = -diffDays;\n }\n let gYear = 1970;\n let gMonth = 1;\n let gDay = 1;\n while (diffDays > 0) {\n if (after) {\n if (diffDays >= (isGregorianLeapYear(gYear) ? 366 : 365)) {\n diffDays -= isGregorianLeapYear(gYear) ? 366 : 365;\n gYear++;\n } else if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) {\n diffDays -= getDaysInGregorianMonth(gMonth, gYear);\n gMonth++;\n } else {\n gDay += diffDays;\n diffDays = 0;\n }\n } else {\n if (diffDays >= (isGregorianLeapYear(gYear - 1) ? 366 : 365)) {\n diffDays -= isGregorianLeapYear(gYear - 1) ? 366 : 365;\n gYear--;\n } else {\n if (gMonth > 1) {\n gMonth--;\n } else {\n gMonth = 12;\n gYear--;\n }\n if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) {\n diffDays -= getDaysInGregorianMonth(gMonth, gYear);\n } else {\n gDay = getDaysInGregorianMonth(gMonth, gYear) - diffDays + 1;\n diffDays = 0;\n }\n }\n }\n }\n return new Date(gYear, gMonth - 1, gDay);\n}\nfunction hebrewNumerals(numerals) {\n if (!numerals) {\n return '';\n }\n const hArray0_9 = ['', '\\u05d0', '\\u05d1', '\\u05d2', '\\u05d3', '\\u05d4', '\\u05d5', '\\u05d6', '\\u05d7', '\\u05d8'];\n const hArray10_19 = ['\\u05d9', '\\u05d9\\u05d0', '\\u05d9\\u05d1', '\\u05d9\\u05d2', '\\u05d9\\u05d3', '\\u05d8\\u05d5', '\\u05d8\\u05d6', '\\u05d9\\u05d6', '\\u05d9\\u05d7', '\\u05d9\\u05d8'];\n const hArray20_90 = ['', '', '\\u05db', '\\u05dc', '\\u05de', '\\u05e0', '\\u05e1', '\\u05e2', '\\u05e4', '\\u05e6'];\n const hArray100_900 = ['', '\\u05e7', '\\u05e8', '\\u05e9', '\\u05ea', '\\u05ea\\u05e7', '\\u05ea\\u05e8', '\\u05ea\\u05e9', '\\u05ea\\u05ea', '\\u05ea\\u05ea\\u05e7'];\n const hArray1000_9000 = ['', '\\u05d0', '\\u05d1', '\\u05d1\\u05d0', '\\u05d1\\u05d1', '\\u05d4', '\\u05d4\\u05d0', '\\u05d4\\u05d1', '\\u05d4\\u05d1\\u05d0', '\\u05d4\\u05d1\\u05d1'];\n const geresh = '\\u05f3',\n gershaim = '\\u05f4';\n let mem = 0;\n let result = [];\n let step = 0;\n while (numerals > 0) {\n let m = numerals % 10;\n if (step === 0) {\n mem = m;\n } else if (step === 1) {\n if (m !== 1) {\n result.unshift(hArray20_90[m], hArray0_9[mem]);\n } else {\n result.unshift(hArray10_19[mem]);\n }\n } else if (step === 2) {\n result.unshift(hArray100_900[m]);\n } else {\n if (m !== 5) {\n result.unshift(hArray1000_9000[m], geresh, ' ');\n }\n break;\n }\n numerals = Math.floor(numerals / 10);\n if (step === 0 && numerals === 0) {\n result.unshift(hArray0_9[m]);\n }\n step++;\n }\n result = result.join('').split('');\n if (result.length === 1) {\n result.push(geresh);\n } else if (result.length > 1) {\n result.splice(result.length - 1, 0, gershaim);\n }\n return result.join('');\n}\n\n/**\n * @since 3.2.0\n */\nclass NgbCalendarHebrew extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths(year) {\n if (year && isHebrewLeapYear(year)) {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];\n } else {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n }\n getWeeksPerMonth() {\n return 6;\n }\n isValid(date) {\n if (date != null) {\n let b = isNumber(date.year) && isNumber(date.month) && isNumber(date.day);\n b = b && date.month > 0 && date.month <= (isHebrewLeapYear(date.year) ? 13 : 12);\n b = b && date.day > 0 && date.day <= getDaysInHebrewMonth(date.month, date.year);\n return b && !isNaN(toGregorian$2(date).getTime());\n }\n return false;\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date.year += number;\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = setHebrewMonth(date, number);\n date.day = 1;\n return date;\n case 'd':\n return setHebrewDay(date, number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const day = toGregorian$2(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n const date = week[week.length - 1];\n return Math.ceil(getDayNumberInHebrewYear(date) / 7);\n }\n getToday() {\n return fromGregorian$2(new Date());\n }\n /**\n * @since 3.4.0\n */\n toGregorian(date) {\n return fromJSDate(toGregorian$2(date));\n }\n /**\n * @since 3.4.0\n */\n fromGregorian(date) {\n return fromGregorian$2(toJSDate(date));\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarHebrew_BaseFactory;\n return function NgbCalendarHebrew_Factory(t) {\n return (ɵNgbCalendarHebrew_BaseFactory || (ɵNgbCalendarHebrew_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarHebrew)))(t || NgbCalendarHebrew);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarHebrew,\n factory: NgbCalendarHebrew.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarHebrew, [{\n type: Injectable\n }], null, null);\n})();\nconst WEEKDAYS$1 = ['שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת', 'ראשון'];\nconst MONTHS$1 = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];\nconst MONTHS_LEAP = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר א׳', 'אדר ב׳', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];\n/**\n * @since 3.2.0\n */\nclass NgbDatepickerI18nHebrew extends NgbDatepickerI18n {\n getMonthShortName(month, year) {\n return this.getMonthFullName(month, year);\n }\n getMonthFullName(month, year) {\n return isHebrewLeapYear(year) ? MONTHS_LEAP[month - 1] || '' : MONTHS$1[month - 1] || '';\n }\n getWeekdayLabel(weekday, width) {\n return WEEKDAYS$1[weekday - 1] || '';\n }\n getDayAriaLabel(date) {\n return `${hebrewNumerals(date.day)} ${this.getMonthFullName(date.month, date.year)} ${hebrewNumerals(date.year)}`;\n }\n getDayNumerals(date) {\n return hebrewNumerals(date.day);\n }\n getWeekNumerals(weekNumber) {\n return hebrewNumerals(weekNumber);\n }\n getYearNumerals(year) {\n return hebrewNumerals(year);\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDatepickerI18nHebrew_BaseFactory;\n return function NgbDatepickerI18nHebrew_Factory(t) {\n return (ɵNgbDatepickerI18nHebrew_BaseFactory || (ɵNgbDatepickerI18nHebrew_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDatepickerI18nHebrew)))(t || NgbDatepickerI18nHebrew);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerI18nHebrew,\n factory: NgbDatepickerI18nHebrew.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerI18nHebrew, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * Returns the equivalent JS date value for a give input Buddhist date.\n * `date` is an Buddhist date to be converted to Gregorian.\n */\nfunction toGregorian$1(date) {\n return new Date(date.year - 543, date.month - 1, date.day);\n}\n/**\n * Returns the equivalent Buddhist date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to Buddhist.\n * utc to local\n */\nfunction fromGregorian$1(gdate) {\n return new NgbDate(gdate.getFullYear() + 543, gdate.getMonth() + 1, gdate.getDate());\n}\n\n/**\n * @since 9.1.0\n */\nclass NgbCalendarBuddhist extends NgbCalendarGregorian {\n getToday() {\n return fromGregorian$1(new Date());\n }\n getNext(date, period = 'd', number = 1) {\n let jsDate = toGregorian$1(date);\n let checkMonth = true;\n let expectedMonth = jsDate.getMonth();\n switch (period) {\n case 'y':\n jsDate.setFullYear(jsDate.getFullYear() + number);\n break;\n case 'm':\n expectedMonth += number;\n jsDate.setMonth(expectedMonth);\n expectedMonth = expectedMonth % 12;\n if (expectedMonth < 0) {\n expectedMonth = expectedMonth + 12;\n }\n break;\n case 'd':\n jsDate.setDate(jsDate.getDate() + number);\n checkMonth = false;\n break;\n default:\n return date;\n }\n if (checkMonth && jsDate.getMonth() !== expectedMonth) {\n // this means the destination month has less days than the initial month\n // let's go back to the end of the previous month:\n jsDate.setDate(0);\n }\n return fromGregorian$1(jsDate);\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n let jsDate = toGregorian$1(date);\n let day = jsDate.getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n let date = week[thursdayIndex];\n const jsDate = toGregorian$1(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n jsDate.setMonth(0); // Compare with Jan 1\n jsDate.setDate(1);\n return Math.floor(Math.round((time - jsDate.getTime()) / 86400000) / 7) + 1;\n }\n isValid(date) {\n if (!date || !isInteger(date.year) || !isInteger(date.month) || !isInteger(date.day)) {\n return false;\n }\n // year 0 doesn't exist in Gregorian calendar\n if (date.year === 0) {\n return false;\n }\n const jsDate = toGregorian$1(date);\n return !isNaN(jsDate.getTime()) && jsDate.getFullYear() === date.year - 543 && jsDate.getMonth() + 1 === date.month && jsDate.getDate() === date.day;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarBuddhist_BaseFactory;\n return function NgbCalendarBuddhist_Factory(t) {\n return (ɵNgbCalendarBuddhist_BaseFactory || (ɵNgbCalendarBuddhist_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarBuddhist)))(t || NgbCalendarBuddhist);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarBuddhist,\n factory: NgbCalendarBuddhist.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarBuddhist, [{\n type: Injectable\n }], null, null);\n})();\nconst JD_EPOCH = 1724220.5;\nconst DAYSPERMONTH = [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5];\n/**\n * Determine whether this date is in a leap year.\n * * `year` is the year to examine\n * returns boolean - true if this is a leap year, false if not\n * */\nfunction isEthiopianLeapYear(year) {\n if (year != null) {\n return year % 4 == 3 || year % 4 == -1;\n }\n return false;\n}\n/**\n * Sets the Ethiopian year.\n * * `date` is Ethiopian date\n * * `yearValue` incremented year\n * returns NgbDate - ethiopian date\n * */\nfunction setEthiopianYear(date, yearValue) {\n date.year = +yearValue;\n return date;\n}\n/**\n * Sets the Ethiopian month.\n * * `date` is Ethiopian date\n * * `val` incremented month\n * returns NgbDate - Ethiopian date\n * */\nfunction setEthiopianMonth(date, val) {\n val = +val;\n date.year = date.year + Math.floor((val - 1) / 13);\n date.month = Math.floor(((val - 1) % 13 + 13) % 13) + 1;\n return date;\n}\n/**\n * Sets the Ethiopian day.\n * * `date` is Ethiopian date\n * * `day` incremented day\n * returns NgbDate - Ethiopian date\n * */\nfunction setEthiopianDay(date, day) {\n let mDays = getDaysPerMonth(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = setEthiopianMonth(date, date.month - 1);\n mDays = getDaysPerMonth(date.month, date.year);\n day += mDays;\n }\n } else if (day > mDays) {\n while (day > mDays) {\n day -= mDays;\n date = setEthiopianMonth(date, date.month + 1);\n mDays = getDaysPerMonth(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n}\nfunction getDaysPerMonth(month, year) {\n let leapYear = isEthiopianLeapYear(year);\n return DAYSPERMONTH[month - 1] + (month === 13 && leapYear ? 1 : 0);\n}\nfunction toGregorian(ethiopianDate) {\n let jdn = ethiopianToJulian(ethiopianDate.year, ethiopianDate.month, ethiopianDate.day);\n let date = julianToGregorian(jdn);\n date.setHours(6, 30, 3, 200);\n return date;\n}\nfunction fromGregorian(gdate) {\n let g2d = gregorianToJulian(gdate.getFullYear(), gdate.getMonth() + 1, gdate.getDate());\n return juilianToEthiopia(g2d);\n}\nfunction ethiopianToJulian(year, month, day) {\n if (year < 0) {\n year++;\n } // No year zero\n return day + (month - 1) * 30 + (year - 1) * 365 + Math.floor(year / 4) + JD_EPOCH - 1;\n}\nfunction juilianToEthiopia(jd) {\n let c = Math.floor(jd) + 0.5 - JD_EPOCH;\n let year = Math.floor((c - Math.floor((c + 366) / 1461)) / 365) + 1;\n if (year <= 0) {\n year--;\n } // No year zero\n c = Math.floor(jd) + 0.5 - ethiopianToJulian(year, 1, 1);\n let month = Math.floor(c / 30) + 1;\n let day = c - (month - 1) * 30 + 1;\n return new NgbDate(year, month, day);\n}\nfunction julianToGregorian(jd) {\n let z = Math.floor(jd + 0.5);\n let a = Math.floor((z - 1867216.25) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n let b = a + 1524;\n let c = Math.floor((b - 122.1) / 365.25);\n let d = Math.floor(365.25 * c);\n let e = Math.floor((b - d) / 30.6001);\n let day = b - d - Math.floor(e * 30.6001);\n let month = e - (e > 13.5 ? 13 : 1);\n let year = c - (month > 2.5 ? 4716 : 4715);\n if (year <= 0) {\n year--;\n } // No year zero\n return new Date(year, month, day);\n}\nfunction gregorianToJulian(year, month, day) {\n if (year < 0) {\n year++;\n } // No year zero\n // Jean Meeus algorithm, \"Astronomical Algorithms\", 1991\n if (month < 3) {\n month += 12;\n year--;\n }\n let a = Math.floor(year / 100);\n let b = 2 - a + Math.floor(a / 4);\n return Math.floor(365.25 * (year + 4716)) + Math.floor(30.6001 * (month + 1)) + day + b - 1524.5;\n}\n\n/**\n * @since 16.0.0\n */\nclass NgbCalendarEthiopian extends NgbCalendar {\n getDaysPerWeek() {\n return 7;\n }\n getMonths(year) {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];\n }\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date = setEthiopianYear(date, date.year + number);\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = setEthiopianMonth(date, date.month + number);\n date.day = 1;\n return date;\n case 'd':\n return setEthiopianDay(date, date.day + number);\n default:\n return date;\n }\n }\n getPrev(date, period = 'd', number = 1) {\n return this.getNext(date, period, -number);\n }\n getWeekday(date) {\n const dt = Math.floor(ethiopianToJulian(date.year, date.month, date.day) + 3) % 7;\n return dt === 0 ? 7 : dt;\n }\n getWeekNumber(week, firstDayOfWeek) {\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n const date = week[thursdayIndex];\n const jsDate = toGregorian(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n const time = jsDate.getTime();\n const startDate = toGregorian(new NgbDate(date.year, 1, 1));\n return Math.floor(Math.round((time - startDate.getTime()) / 86400000) / 7) + 1;\n }\n getWeeksPerMonth() {\n return 6;\n }\n getToday() {\n return fromGregorian(new Date());\n }\n isValid(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) && !isNaN(toGregorian(date).getTime());\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbCalendarEthiopian_BaseFactory;\n return function NgbCalendarEthiopian_Factory(t) {\n return (ɵNgbCalendarEthiopian_BaseFactory || (ɵNgbCalendarEthiopian_BaseFactory = i0.ɵɵgetInheritedFactory(NgbCalendarEthiopian)))(t || NgbCalendarEthiopian);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbCalendarEthiopian,\n factory: NgbCalendarEthiopian.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbCalendarEthiopian, [{\n type: Injectable\n }], null, null);\n})();\nconst WEEKDAYS = ['እሑድ', 'ሰኞ', 'ማክሰኞ', 'ረቡዕ', 'ሓሙስ', 'ዓርብ', 'ቅዳሜ'];\nconst MONTHS = ['መስከረም', 'ጥቅምት', 'ኅዳር', 'ታህሣሥ', 'ጥር', 'የካቲት', 'መጋቢት', 'ሚያዝያ', 'ግንቦት', 'ሰኔ', 'ሐምሌ', 'ነሐሴ', 'ጳጉሜ'];\n/**\n * @since 16.0.0\n */\nclass NgbDatepickerI18nAmharic extends NgbDatepickerI18n {\n getMonthShortName(month, year) {\n return this.getMonthFullName(month, year);\n }\n getMonthFullName(month, year) {\n return MONTHS[month - 1];\n }\n getWeekdayLabel(weekday, width) {\n return WEEKDAYS[weekday - 1];\n }\n getDayAriaLabel(date) {\n return `${date.day} ${this.getMonthFullName(date.month, date.year)} ${date.year}`;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDatepickerI18nAmharic_BaseFactory;\n return function NgbDatepickerI18nAmharic_Factory(t) {\n return (ɵNgbDatepickerI18nAmharic_BaseFactory || (ɵNgbDatepickerI18nAmharic_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDatepickerI18nAmharic)))(t || NgbDatepickerI18nAmharic);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDatepickerI18nAmharic,\n factory: NgbDatepickerI18nAmharic.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerI18nAmharic, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * [`NgbDateAdapter`](#/components/datepicker/api#NgbDateAdapter) implementation that uses\n * native javascript dates as a user date model.\n */\nclass NgbDateNativeAdapter extends NgbDateAdapter {\n /**\n * Converts a native `Date` to a `NgbDateStruct`.\n */\n fromModel(date) {\n return date instanceof Date && !isNaN(date.getTime()) ? this._fromNativeDate(date) : null;\n }\n /**\n * Converts a `NgbDateStruct` to a native `Date`.\n */\n toModel(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) ? this._toNativeDate(date) : null;\n }\n _fromNativeDate(date) {\n return {\n year: date.getFullYear(),\n month: date.getMonth() + 1,\n day: date.getDate()\n };\n }\n _toNativeDate(date) {\n const jsDate = new Date(date.year, date.month - 1, date.day, 12);\n // avoid 30 -> 1930 conversion\n jsDate.setFullYear(date.year);\n return jsDate;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDateNativeAdapter_BaseFactory;\n return function NgbDateNativeAdapter_Factory(t) {\n return (ɵNgbDateNativeAdapter_BaseFactory || (ɵNgbDateNativeAdapter_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDateNativeAdapter)))(t || NgbDateNativeAdapter);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDateNativeAdapter,\n factory: NgbDateNativeAdapter.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDateNativeAdapter, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * Same as [`NgbDateNativeAdapter`](#/components/datepicker/api#NgbDateNativeAdapter), but with UTC dates.\n *\n * @since 3.2.0\n */\nclass NgbDateNativeUTCAdapter extends NgbDateNativeAdapter {\n _fromNativeDate(date) {\n return {\n year: date.getUTCFullYear(),\n month: date.getUTCMonth() + 1,\n day: date.getUTCDate()\n };\n }\n _toNativeDate(date) {\n const jsDate = new Date(Date.UTC(date.year, date.month - 1, date.day));\n // avoid 30 -> 1930 conversion\n jsDate.setUTCFullYear(date.year);\n return jsDate;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDateNativeUTCAdapter_BaseFactory;\n return function NgbDateNativeUTCAdapter_Factory(t) {\n return (ɵNgbDateNativeUTCAdapter_BaseFactory || (ɵNgbDateNativeUTCAdapter_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDateNativeUTCAdapter)))(t || NgbDateNativeUTCAdapter);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDateNativeUTCAdapter,\n factory: NgbDateNativeUTCAdapter.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDateNativeUTCAdapter, [{\n type: Injectable\n }], null, null);\n})();\nconst NGB_DATEPICKER_DIRECTIVES = [NgbDatepicker, NgbDatepickerContent, NgbInputDatepicker, NgbDatepickerMonth];\nclass NgbDatepickerModule {\n static {\n this.ɵfac = function NgbDatepickerModule_Factory(t) {\n return new (t || NgbDatepickerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbDatepickerModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDatepickerModule, [{\n type: NgModule,\n args: [{\n exports: NGB_DATEPICKER_DIRECTIVES,\n imports: NGB_DATEPICKER_DIRECTIVES\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbDropdown`](#/components/dropdown/api#NgbDropdown) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the dropdowns used in the application.\n */\nclass NgbDropdownConfig {\n constructor() {\n this.autoClose = true;\n this.placement = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];\n this.popperOptions = options => options;\n this.container = null;\n }\n static {\n this.ɵfac = function NgbDropdownConfig_Factory(t) {\n return new (t || NgbDropdownConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbDropdownConfig,\n factory: NgbDropdownConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A directive you should put on a dropdown item to enable keyboard navigation.\n * Arrow keys will move focus between items marked with this directive.\n *\n * @since 4.1.0\n */\nclass NgbDropdownItem {\n constructor() {\n this._disabled = false;\n this.nativeElement = inject(ElementRef).nativeElement;\n this.tabindex = 0;\n }\n set disabled(value) {\n this._disabled = value === '' || value === true; // accept an empty attribute as true\n }\n get disabled() {\n return this._disabled;\n }\n static {\n this.ɵfac = function NgbDropdownItem_Factory(t) {\n return new (t || NgbDropdownItem)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDropdownItem,\n selectors: [[\"\", \"ngbDropdownItem\", \"\"]],\n hostAttrs: [1, \"dropdown-item\"],\n hostVars: 3,\n hostBindings: function NgbDropdownItem_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"tabIndex\", ctx.disabled ? -1 : ctx.tabindex);\n i0.ɵɵclassProp(\"disabled\", ctx.disabled);\n }\n },\n inputs: {\n tabindex: \"tabindex\",\n disabled: \"disabled\"\n },\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownItem, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownItem]',\n standalone: true,\n host: {\n class: 'dropdown-item',\n '[class.disabled]': 'disabled',\n '[tabIndex]': 'disabled ? -1 : tabindex'\n }\n }]\n }], null, {\n tabindex: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }]\n });\n})();\n/**\n * A directive that will be applied if dropdown item is a button.\n * It will only set the disabled property.\n */\nclass NgbDropdownButtonItem {\n constructor() {\n this.item = inject(NgbDropdownItem);\n }\n static {\n this.ɵfac = function NgbDropdownButtonItem_Factory(t) {\n return new (t || NgbDropdownButtonItem)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDropdownButtonItem,\n selectors: [[\"button\", \"ngbDropdownItem\", \"\"]],\n hostVars: 1,\n hostBindings: function NgbDropdownButtonItem_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"disabled\", ctx.item.disabled);\n }\n },\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownButtonItem, [{\n type: Directive,\n args: [{\n selector: 'button[ngbDropdownItem]',\n standalone: true,\n host: {\n '[disabled]': 'item.disabled'\n }\n }]\n }], null, null);\n})();\n/**\n * A directive that wraps dropdown menu content and dropdown items.\n */\nclass NgbDropdownMenu {\n constructor() {\n this.dropdown = inject(NgbDropdown);\n this.nativeElement = inject(ElementRef).nativeElement;\n }\n static {\n this.ɵfac = function NgbDropdownMenu_Factory(t) {\n return new (t || NgbDropdownMenu)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDropdownMenu,\n selectors: [[\"\", \"ngbDropdownMenu\", \"\"]],\n contentQueries: function NgbDropdownMenu_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbDropdownItem, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.menuItems = _t);\n }\n },\n hostVars: 4,\n hostBindings: function NgbDropdownMenu_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown.ArrowUp\", function NgbDropdownMenu_keydown_ArrowUp_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.ArrowDown\", function NgbDropdownMenu_keydown_ArrowDown_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Home\", function NgbDropdownMenu_keydown_Home_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.End\", function NgbDropdownMenu_keydown_End_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Enter\", function NgbDropdownMenu_keydown_Enter_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Space\", function NgbDropdownMenu_keydown_Space_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Tab\", function NgbDropdownMenu_keydown_Tab_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Shift.Tab\", function NgbDropdownMenu_keydown_Shift_Tab_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"dropdown-menu\", true)(\"show\", ctx.dropdown.isOpen());\n }\n },\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownMenu, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownMenu]',\n standalone: true,\n host: {\n '[class.dropdown-menu]': 'true',\n '[class.show]': 'dropdown.isOpen()',\n '(keydown.ArrowUp)': 'dropdown.onKeyDown($event)',\n '(keydown.ArrowDown)': 'dropdown.onKeyDown($event)',\n '(keydown.Home)': 'dropdown.onKeyDown($event)',\n '(keydown.End)': 'dropdown.onKeyDown($event)',\n '(keydown.Enter)': 'dropdown.onKeyDown($event)',\n '(keydown.Space)': 'dropdown.onKeyDown($event)',\n '(keydown.Tab)': 'dropdown.onKeyDown($event)',\n '(keydown.Shift.Tab)': 'dropdown.onKeyDown($event)'\n }\n }]\n }], null, {\n menuItems: [{\n type: ContentChildren,\n args: [NgbDropdownItem]\n }]\n });\n})();\n/**\n * A directive to mark an element to which dropdown menu will be anchored.\n *\n * This is a simple version of the `NgbDropdownToggle` directive.\n * It plays the same role, but doesn't listen to click events to toggle dropdown menu thus enabling support\n * for events other than click.\n *\n * @since 1.1.0\n */\nclass NgbDropdownAnchor {\n constructor() {\n this.dropdown = inject(NgbDropdown);\n this.nativeElement = inject(ElementRef).nativeElement;\n }\n static {\n this.ɵfac = function NgbDropdownAnchor_Factory(t) {\n return new (t || NgbDropdownAnchor)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDropdownAnchor,\n selectors: [[\"\", \"ngbDropdownAnchor\", \"\"]],\n hostAttrs: [1, \"dropdown-toggle\"],\n hostVars: 3,\n hostBindings: function NgbDropdownAnchor_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-expanded\", ctx.dropdown.isOpen());\n i0.ɵɵclassProp(\"show\", ctx.dropdown.isOpen());\n }\n },\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownAnchor, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownAnchor]',\n standalone: true,\n host: {\n class: 'dropdown-toggle',\n '[class.show]': 'dropdown.isOpen()',\n '[attr.aria-expanded]': 'dropdown.isOpen()'\n }\n }]\n }], null, null);\n})();\n/**\n * A directive to mark an element that will toggle dropdown via the `click` event.\n *\n * You can also use `NgbDropdownAnchor` as an alternative.\n */\nclass NgbDropdownToggle extends NgbDropdownAnchor {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbDropdownToggle_BaseFactory;\n return function NgbDropdownToggle_Factory(t) {\n return (ɵNgbDropdownToggle_BaseFactory || (ɵNgbDropdownToggle_BaseFactory = i0.ɵɵgetInheritedFactory(NgbDropdownToggle)))(t || NgbDropdownToggle);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDropdownToggle,\n selectors: [[\"\", \"ngbDropdownToggle\", \"\"]],\n hostAttrs: [1, \"dropdown-toggle\"],\n hostVars: 3,\n hostBindings: function NgbDropdownToggle_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function NgbDropdownToggle_click_HostBindingHandler() {\n return ctx.dropdown.toggle();\n })(\"keydown.ArrowUp\", function NgbDropdownToggle_keydown_ArrowUp_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.ArrowDown\", function NgbDropdownToggle_keydown_ArrowDown_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Home\", function NgbDropdownToggle_keydown_Home_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.End\", function NgbDropdownToggle_keydown_End_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Tab\", function NgbDropdownToggle_keydown_Tab_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n })(\"keydown.Shift.Tab\", function NgbDropdownToggle_keydown_Shift_Tab_HostBindingHandler($event) {\n return ctx.dropdown.onKeyDown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-expanded\", ctx.dropdown.isOpen());\n i0.ɵɵclassProp(\"show\", ctx.dropdown.isOpen());\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NgbDropdownAnchor,\n useExisting: forwardRef(() => NgbDropdownToggle)\n }]), i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownToggle, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownToggle]',\n standalone: true,\n host: {\n class: 'dropdown-toggle',\n '[class.show]': 'dropdown.isOpen()',\n '[attr.aria-expanded]': 'dropdown.isOpen()',\n '(click)': 'dropdown.toggle()',\n '(keydown.ArrowUp)': 'dropdown.onKeyDown($event)',\n '(keydown.ArrowDown)': 'dropdown.onKeyDown($event)',\n '(keydown.Home)': 'dropdown.onKeyDown($event)',\n '(keydown.End)': 'dropdown.onKeyDown($event)',\n '(keydown.Tab)': 'dropdown.onKeyDown($event)',\n '(keydown.Shift.Tab)': 'dropdown.onKeyDown($event)'\n },\n providers: [{\n provide: NgbDropdownAnchor,\n useExisting: forwardRef(() => NgbDropdownToggle)\n }]\n }]\n }], null, null);\n})();\n/**\n * A directive that provides contextual overlays for displaying lists of links and more.\n */\nclass NgbDropdown {\n constructor() {\n this._changeDetector = inject(ChangeDetectorRef);\n this._config = inject(NgbDropdownConfig);\n this._document = inject(DOCUMENT);\n this._ngZone = inject(NgZone);\n this._nativeElement = inject(ElementRef).nativeElement;\n this._destroyCloseHandlers$ = new Subject();\n this._bodyContainer = null;\n this._positioning = ngbPositioning();\n /**\n * Indicates whether the dropdown should be closed when clicking one of dropdown items or pressing ESC.\n *\n * * `true` - the dropdown will close on both outside and inside (menu) clicks.\n * * `false` - the dropdown can only be closed manually via `close()` or `toggle()` methods.\n * * `\"inside\"` - the dropdown will close on inside menu clicks, but not outside clicks.\n * * `\"outside\"` - the dropdown will close only on the outside clicks and not on menu clicks.\n */\n this.autoClose = this._config.autoClose;\n /**\n * Defines whether or not the dropdown menu is opened initially.\n */\n this._open = false;\n /**\n * The preferred placement of the dropdown, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"bottom-start bottom-end top-start top-end\"`\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the dropdown.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * A selector specifying the element the dropdown should be appended to.\n * Currently only supports \"body\".\n *\n * @since 4.1.0\n */\n this.container = this._config.container;\n /**\n * An event fired when the dropdown is opened or closed.\n *\n * The event payload is a `boolean`:\n * * `true` - the dropdown was opened\n * * `false` - the dropdown was closed\n */\n this.openChange = new EventEmitter();\n }\n ngOnInit() {\n if (!this.display) {\n this.display = this._nativeElement.closest('.navbar') ? 'static' : 'dynamic';\n }\n }\n ngAfterContentInit() {\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n this._applyPlacementClasses();\n if (this._open) {\n this._setCloseHandlers();\n }\n });\n }\n ngOnChanges(changes) {\n if (changes.container && this._open) {\n this._applyContainer(this.container);\n }\n if (changes.placement && !changes.placement.firstChange) {\n this._positioning.setOptions({\n hostElement: this._anchor.nativeElement,\n targetElement: this._bodyContainer || this._menu.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body'\n });\n this._applyPlacementClasses();\n }\n if (changes.dropdownClass) {\n const {\n currentValue,\n previousValue\n } = changes.dropdownClass;\n this._applyCustomDropdownClass(currentValue, previousValue);\n }\n if (changes.autoClose && this._open) {\n this.autoClose = changes.autoClose.currentValue;\n this._setCloseHandlers();\n }\n }\n /**\n * Checks if the dropdown menu is open.\n */\n isOpen() {\n return this._open;\n }\n /**\n * Opens the dropdown menu.\n */\n open() {\n if (!this._open) {\n this._open = true;\n this._applyContainer(this.container);\n this.openChange.emit(true);\n this._setCloseHandlers();\n if (this._anchor) {\n this._anchor.nativeElement.focus();\n if (this.display === 'dynamic') {\n this._ngZone.runOutsideAngular(() => {\n this._positioning.createPopper({\n hostElement: this._anchor.nativeElement,\n targetElement: this._bodyContainer || this._menu.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n updatePopperOptions: options => this.popperOptions(addPopperOffset([0, 2])(options))\n });\n this._applyPlacementClasses();\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positionMenu());\n });\n }\n }\n }\n }\n _setCloseHandlers() {\n this._destroyCloseHandlers$.next(); // destroy any existing close handlers\n ngbAutoClose(this._ngZone, this._document, this.autoClose, source => {\n this.close();\n if (source === 0 /* SOURCE.ESCAPE */) {\n this._anchor.nativeElement.focus();\n }\n }, this._destroyCloseHandlers$, this._menu ? [this._menu.nativeElement] : [], this._anchor ? [this._anchor.nativeElement] : [], '.dropdown-item,.dropdown-divider');\n }\n /**\n * Closes the dropdown menu.\n */\n close() {\n if (this._open) {\n this._open = false;\n this._resetContainer();\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this._destroyCloseHandlers$.next();\n this.openChange.emit(false);\n this._changeDetector.markForCheck();\n }\n }\n /**\n * Toggles the dropdown menu.\n */\n toggle() {\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n }\n ngOnDestroy() {\n this.close();\n }\n onKeyDown(event) {\n /* eslint-disable-next-line deprecation/deprecation */\n const key = event.which;\n const itemElements = this._getMenuElements();\n let position = -1;\n let itemElement = null;\n const isEventFromToggle = this._isEventFromToggle(event);\n if (!isEventFromToggle && itemElements.length) {\n itemElements.forEach((item, index) => {\n if (item.contains(event.target)) {\n itemElement = item;\n }\n if (item === getActiveElement(this._document)) {\n position = index;\n }\n });\n }\n // closing on Enter / Space\n if (key === Key.Space || key === Key.Enter) {\n if (itemElement && (this.autoClose === true || this.autoClose === 'inside')) {\n // Item is either a button or a link, so click will be triggered by the browser on Enter or Space.\n // So we have to register a one-time click handler that will fire after any user defined click handlers\n // to close the dropdown\n fromEvent(itemElement, 'click').pipe(take(1)).subscribe(() => this.close());\n }\n return;\n }\n if (key === Key.Tab) {\n if (event.target && this.isOpen() && this.autoClose) {\n if (this._anchor.nativeElement === event.target) {\n if (this.container === 'body' && !event.shiftKey) {\n /* This case is special: user is using [Tab] from the anchor/toggle.\n User expects the next focusable element in the dropdown menu to get focus.\n But the menu is not a sibling to anchor/toggle, it is at the end of the body.\n Trick is to synchronously focus the menu element, and let the [keydown.Tab] go\n so that browser will focus the proper element (first one focusable in the menu) */\n this._menu.nativeElement.setAttribute('tabindex', '0');\n this._menu.nativeElement.focus();\n this._menu.nativeElement.removeAttribute('tabindex');\n } else if (event.shiftKey) {\n this.close();\n }\n return;\n } else if (this.container === 'body') {\n const focusableElements = this._menu.nativeElement.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR);\n if (event.shiftKey && event.target === focusableElements[0]) {\n this._anchor.nativeElement.focus();\n event.preventDefault();\n } else if (!event.shiftKey && event.target === focusableElements[focusableElements.length - 1]) {\n this._anchor.nativeElement.focus();\n this.close();\n }\n } else {\n fromEvent(event.target, 'focusout').pipe(take(1)).subscribe(({\n relatedTarget\n }) => {\n if (!this._nativeElement.contains(relatedTarget)) {\n this.close();\n }\n });\n }\n }\n return;\n }\n // opening / navigating\n if (isEventFromToggle || itemElement) {\n this.open();\n if (itemElements.length) {\n switch (key) {\n case Key.ArrowDown:\n position = Math.min(position + 1, itemElements.length - 1);\n break;\n case Key.ArrowUp:\n if (this._isDropup() && position === -1) {\n position = itemElements.length - 1;\n break;\n }\n position = Math.max(position - 1, 0);\n break;\n case Key.Home:\n position = 0;\n break;\n case Key.End:\n position = itemElements.length - 1;\n break;\n }\n itemElements[position].focus();\n }\n event.preventDefault();\n }\n }\n _isDropup() {\n return this._nativeElement.classList.contains('dropup');\n }\n _isEventFromToggle(event) {\n return this._anchor.nativeElement.contains(event.target);\n }\n _getMenuElements() {\n return this._menu ? this._menu.menuItems.filter(({\n disabled\n }) => !disabled).map(({\n nativeElement\n }) => nativeElement) : [];\n }\n _positionMenu() {\n const menu = this._menu;\n if (this.isOpen() && menu) {\n if (this.display === 'dynamic') {\n this._positioning.update();\n this._applyPlacementClasses();\n } else {\n this._applyPlacementClasses(this._getFirstPlacement(this.placement));\n }\n }\n }\n _getFirstPlacement(placement) {\n return Array.isArray(placement) ? placement[0] : placement.split(' ')[0];\n }\n _resetContainer() {\n if (this._menu) {\n this._nativeElement.appendChild(this._menu.nativeElement);\n }\n if (this._bodyContainer) {\n this._document.body.removeChild(this._bodyContainer);\n this._bodyContainer = null;\n }\n }\n _applyContainer(container = null) {\n this._resetContainer();\n if (container === 'body') {\n const dropdownMenuElement = this._menu.nativeElement;\n const bodyContainer = this._bodyContainer = this._bodyContainer || this._document.createElement('div');\n // Override some styles to have the positioning working\n bodyContainer.style.position = 'absolute';\n dropdownMenuElement.style.position = 'static';\n bodyContainer.style.zIndex = '1055';\n bodyContainer.appendChild(dropdownMenuElement);\n this._document.body.appendChild(bodyContainer);\n }\n this._applyCustomDropdownClass(this.dropdownClass);\n }\n _applyCustomDropdownClass(newClass, oldClass) {\n const targetElement = this.container === 'body' ? this._bodyContainer : this._nativeElement;\n if (targetElement) {\n if (oldClass) {\n targetElement.classList.remove(oldClass);\n }\n if (newClass) {\n targetElement.classList.add(newClass);\n }\n }\n }\n _applyPlacementClasses(placement) {\n if (this._menu) {\n if (!placement) {\n placement = this._getFirstPlacement(this.placement);\n }\n // remove the current placement classes\n this._nativeElement.classList.remove('dropup', 'dropdown');\n if (this.display === 'static') {\n this._menu.nativeElement.setAttribute('data-bs-popper', 'static');\n } else {\n this._menu.nativeElement.removeAttribute('data-bs-popper');\n }\n /*\n * apply the new placement\n * in case of top use up-arrow or down-arrow otherwise\n */\n const dropdownClass = placement.search('^top') !== -1 ? 'dropup' : 'dropdown';\n this._nativeElement.classList.add(dropdownClass);\n if (this._bodyContainer) {\n this._bodyContainer.classList.remove('dropup', 'dropdown');\n this._bodyContainer.classList.add(dropdownClass);\n }\n }\n }\n static {\n this.ɵfac = function NgbDropdown_Factory(t) {\n return new (t || NgbDropdown)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbDropdown,\n selectors: [[\"\", \"ngbDropdown\", \"\"]],\n contentQueries: function NgbDropdown_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbDropdownMenu, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbDropdownAnchor, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._menu = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._anchor = _t.first);\n }\n },\n hostVars: 2,\n hostBindings: function NgbDropdown_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"show\", ctx.isOpen());\n }\n },\n inputs: {\n autoClose: \"autoClose\",\n dropdownClass: \"dropdownClass\",\n _open: [i0.ɵɵInputFlags.None, \"open\", \"_open\"],\n placement: \"placement\",\n popperOptions: \"popperOptions\",\n container: \"container\",\n display: \"display\"\n },\n outputs: {\n openChange: \"openChange\"\n },\n exportAs: [\"ngbDropdown\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdown, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdown]',\n exportAs: 'ngbDropdown',\n standalone: true,\n host: {\n '[class.show]': 'isOpen()'\n }\n }]\n }], null, {\n _menu: [{\n type: ContentChild,\n args: [NgbDropdownMenu, {\n static: false\n }]\n }],\n _anchor: [{\n type: ContentChild,\n args: [NgbDropdownAnchor, {\n static: false\n }]\n }],\n autoClose: [{\n type: Input\n }],\n dropdownClass: [{\n type: Input\n }],\n _open: [{\n type: Input,\n args: ['open']\n }],\n placement: [{\n type: Input\n }],\n popperOptions: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n display: [{\n type: Input\n }],\n openChange: [{\n type: Output\n }]\n });\n})();\nconst NGB_DROPDOWN_DIRECTIVES = [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbDropdownButtonItem];\nclass NgbDropdownModule {\n static {\n this.ɵfac = function NgbDropdownModule_Factory(t) {\n return new (t || NgbDropdownModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbDropdownModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbDropdownModule, [{\n type: NgModule,\n args: [{\n imports: NGB_DROPDOWN_DIRECTIVES,\n exports: NGB_DROPDOWN_DIRECTIVES\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbModal`](#/components/modal/api#NgbModal) service.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all modals used in the application.\n *\n * @since 3.1.0\n */\nclass NgbModalConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.backdrop = true;\n this.fullscreen = false;\n this.keyboard = true;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static {\n this.ɵfac = function NgbModalConfig_Factory(t) {\n return new (t || NgbModalConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbModalConfig,\n factory: NgbModalConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModalConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nclass ContentRef {\n constructor(nodes, viewRef, componentRef) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\nclass PopupService {\n constructor(_componentType) {\n this._componentType = _componentType;\n this._windowRef = null;\n this._contentRef = null;\n this._document = inject(DOCUMENT);\n this._applicationRef = inject(ApplicationRef);\n this._injector = inject(Injector);\n this._viewContainerRef = inject(ViewContainerRef);\n this._ngZone = inject(NgZone);\n }\n open(content, templateContext, animation = false) {\n if (!this._windowRef) {\n this._contentRef = this._getContentRef(content, templateContext);\n this._windowRef = this._viewContainerRef.createComponent(this._componentType, {\n injector: this._injector,\n projectableNodes: this._contentRef.nodes\n });\n }\n const {\n nativeElement\n } = this._windowRef.location;\n const transition$ = this._ngZone.onStable.pipe(take(1), mergeMap(() => ngbRunTransition(this._ngZone, nativeElement, ({\n classList\n }) => classList.add('show'), {\n animation,\n runningTransition: 'continue'\n })));\n return {\n windowRef: this._windowRef,\n transition$\n };\n }\n close(animation = false) {\n if (!this._windowRef) {\n return of(undefined);\n }\n return ngbRunTransition(this._ngZone, this._windowRef.location.nativeElement, ({\n classList\n }) => classList.remove('show'), {\n animation,\n runningTransition: 'stop'\n }).pipe(tap(() => {\n if (this._windowRef) {\n // this is required because of the container='body' option\n this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView));\n this._windowRef = null;\n }\n if (this._contentRef?.viewRef) {\n this._applicationRef.detachView(this._contentRef.viewRef);\n this._contentRef.viewRef.destroy();\n this._contentRef = null;\n }\n }));\n }\n _getContentRef(content, templateContext) {\n if (!content) {\n return new ContentRef([]);\n } else if (content instanceof TemplateRef) {\n const viewRef = content.createEmbeddedView(templateContext);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n } else {\n return new ContentRef([[this._document.createTextNode(`${content}`)]]);\n }\n }\n}\n\n/**\n * Utility to handle the scrollbar.\n *\n * It allows to hide the scrollbar and compensate the lack of a vertical scrollbar\n * by adding an equivalent padding on the right of the body, and to revert this change.\n */\nclass ScrollBar {\n constructor() {\n this._document = inject(DOCUMENT);\n }\n /**\n * To be called to hide a potential vertical scrollbar:\n * - if a scrollbar is there and has a width greater than 0, adds some compensation\n * padding to the body to keep the same layout as when the scrollbar is there\n * - adds overflow: hidden\n *\n * @return a callback used to revert the change\n */\n hide() {\n const scrollbarWidth = Math.abs(window.innerWidth - this._document.documentElement.clientWidth);\n const body = this._document.body;\n const bodyStyle = body.style;\n const {\n overflow,\n paddingRight\n } = bodyStyle;\n if (scrollbarWidth > 0) {\n const actualPadding = parseFloat(window.getComputedStyle(body).paddingRight);\n bodyStyle.paddingRight = `${actualPadding + scrollbarWidth}px`;\n }\n bodyStyle.overflow = 'hidden';\n return () => {\n if (scrollbarWidth > 0) {\n bodyStyle.paddingRight = paddingRight;\n }\n bodyStyle.overflow = overflow;\n };\n }\n static {\n this.ɵfac = function ScrollBar_Factory(t) {\n return new (t || ScrollBar)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ScrollBar,\n factory: ScrollBar.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ScrollBar, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nclass NgbModalBackdrop {\n constructor() {\n this._nativeElement = inject(ElementRef).nativeElement;\n this._zone = inject(NgZone);\n }\n ngOnInit() {\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n ngbRunTransition(this._zone, this._nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n }, {\n animation: this.animation,\n runningTransition: 'continue'\n });\n });\n }\n hide() {\n return ngbRunTransition(this._zone, this._nativeElement, ({\n classList\n }) => classList.remove('show'), {\n animation: this.animation,\n runningTransition: 'stop'\n });\n }\n static {\n this.ɵfac = function NgbModalBackdrop_Factory(t) {\n return new (t || NgbModalBackdrop)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbModalBackdrop,\n selectors: [[\"ngb-modal-backdrop\"]],\n hostAttrs: [2, \"z-index\", \"1055\"],\n hostVars: 6,\n hostBindings: function NgbModalBackdrop_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassMap(\"modal-backdrop\" + (ctx.backdropClass ? \" \" + ctx.backdropClass : \"\"));\n i0.ɵɵclassProp(\"show\", !ctx.animation)(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n backdropClass: \"backdropClass\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function NgbModalBackdrop_Template(rf, ctx) {},\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModalBackdrop, [{\n type: Component,\n args: [{\n selector: 'ngb-modal-backdrop',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n template: '',\n host: {\n '[class]': '\"modal-backdrop\" + (backdropClass ? \" \" + backdropClass : \"\")',\n '[class.show]': '!animation',\n '[class.fade]': 'animation',\n style: 'z-index: 1055'\n }\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n backdropClass: [{\n type: Input\n }]\n });\n})();\n\n/**\n * A reference to the currently opened (active) modal.\n *\n * Instances of this class can be injected into your component passed as modal content.\n * So you can `.update()`, `.close()` or `.dismiss()` the modal window from your component.\n */\nclass NgbActiveModal {\n /**\n * Updates options of an opened modal.\n *\n * @since 14.2.0\n */\n update(options) {}\n /**\n * Closes the modal with an optional `result` value.\n *\n * The `NgbModalRef.result` promise will be resolved with the provided value.\n */\n close(result) {}\n /**\n * Dismisses the modal with an optional `reason` value.\n *\n * The `NgbModalRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) {}\n}\nconst WINDOW_ATTRIBUTES = ['animation', 'ariaLabelledBy', 'ariaDescribedBy', 'backdrop', 'centered', 'fullscreen', 'keyboard', 'scrollable', 'size', 'windowClass', 'modalDialogClass'];\nconst BACKDROP_ATTRIBUTES = ['animation', 'backdropClass'];\n/**\n * A reference to the newly opened modal returned by the `NgbModal.open()` method.\n */\nclass NgbModalRef {\n _applyWindowOptions(windowInstance, options) {\n WINDOW_ATTRIBUTES.forEach(optionName => {\n if (isDefined(options[optionName])) {\n windowInstance[optionName] = options[optionName];\n }\n });\n }\n _applyBackdropOptions(backdropInstance, options) {\n BACKDROP_ATTRIBUTES.forEach(optionName => {\n if (isDefined(options[optionName])) {\n backdropInstance[optionName] = options[optionName];\n }\n });\n }\n /**\n * Updates options of an opened modal.\n *\n * @since 14.2.0\n */\n update(options) {\n this._applyWindowOptions(this._windowCmptRef.instance, options);\n if (this._backdropCmptRef && this._backdropCmptRef.instance) {\n this._applyBackdropOptions(this._backdropCmptRef.instance, options);\n }\n }\n /**\n * The instance of a component used for the modal content.\n *\n * When a `TemplateRef` is used as the content or when the modal is closed, will return `undefined`.\n */\n get componentInstance() {\n if (this._contentRef && this._contentRef.componentRef) {\n return this._contentRef.componentRef.instance;\n }\n }\n /**\n * The observable that emits when the modal is closed via the `.close()` method.\n *\n * It will emit the result passed to the `.close()` method.\n *\n * @since 8.0.0\n */\n get closed() {\n return this._closed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when the modal is dismissed via the `.dismiss()` method.\n *\n * It will emit the reason passed to the `.dismissed()` method by the user, or one of the internal\n * reasons like backdrop click or ESC key press.\n *\n * @since 8.0.0\n */\n get dismissed() {\n return this._dismissed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when both modal window and backdrop are closed and animations were finished.\n * At this point modal and backdrop elements will be removed from the DOM tree.\n *\n * This observable will be completed after emitting.\n *\n * @since 8.0.0\n */\n get hidden() {\n return this._hidden.asObservable();\n }\n /**\n * The observable that emits when modal is fully visible and animation was finished.\n * Modal DOM element is always available synchronously after calling 'modal.open()' service.\n *\n * This observable will be completed after emitting.\n * It will not emit, if modal is closed before open animation is finished.\n *\n * @since 8.0.0\n */\n get shown() {\n return this._windowCmptRef.instance.shown.asObservable();\n }\n constructor(_windowCmptRef, _contentRef, _backdropCmptRef, _beforeDismiss) {\n this._windowCmptRef = _windowCmptRef;\n this._contentRef = _contentRef;\n this._backdropCmptRef = _backdropCmptRef;\n this._beforeDismiss = _beforeDismiss;\n this._closed = new Subject();\n this._dismissed = new Subject();\n this._hidden = new Subject();\n _windowCmptRef.instance.dismissEvent.subscribe(reason => {\n this.dismiss(reason);\n });\n this.result = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n this.result.then(null, () => {});\n }\n /**\n * Closes the modal with an optional `result` value.\n *\n * The `NgbMobalRef.result` promise will be resolved with the provided value.\n */\n close(result) {\n if (this._windowCmptRef) {\n this._closed.next(result);\n this._resolve(result);\n this._removeModalElements();\n }\n }\n _dismiss(reason) {\n this._dismissed.next(reason);\n this._reject(reason);\n this._removeModalElements();\n }\n /**\n * Dismisses the modal with an optional `reason` value.\n *\n * The `NgbModalRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) {\n if (this._windowCmptRef) {\n if (!this._beforeDismiss) {\n this._dismiss(reason);\n } else {\n const dismiss = this._beforeDismiss();\n if (isPromise(dismiss)) {\n dismiss.then(result => {\n if (result !== false) {\n this._dismiss(reason);\n }\n }, () => {});\n } else if (dismiss !== false) {\n this._dismiss(reason);\n }\n }\n }\n }\n _removeModalElements() {\n const windowTransition$ = this._windowCmptRef.instance.hide();\n const backdropTransition$ = this._backdropCmptRef ? this._backdropCmptRef.instance.hide() : of(undefined);\n // hiding window\n windowTransition$.subscribe(() => {\n const {\n nativeElement\n } = this._windowCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._windowCmptRef.destroy();\n if (this._contentRef && this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n this._windowCmptRef = null;\n this._contentRef = null;\n });\n // hiding backdrop\n backdropTransition$.subscribe(() => {\n if (this._backdropCmptRef) {\n const {\n nativeElement\n } = this._backdropCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._backdropCmptRef.destroy();\n this._backdropCmptRef = null;\n }\n });\n // all done\n zip(windowTransition$, backdropTransition$).subscribe(() => {\n this._hidden.next();\n this._hidden.complete();\n });\n }\n}\nvar ModalDismissReasons;\n(function (ModalDismissReasons) {\n ModalDismissReasons[ModalDismissReasons[\"BACKDROP_CLICK\"] = 0] = \"BACKDROP_CLICK\";\n ModalDismissReasons[ModalDismissReasons[\"ESC\"] = 1] = \"ESC\";\n})(ModalDismissReasons || (ModalDismissReasons = {}));\nclass NgbModalWindow {\n constructor() {\n this._document = inject(DOCUMENT);\n this._elRef = inject(ElementRef);\n this._zone = inject(NgZone);\n this._closed$ = new Subject();\n this._elWithFocus = null; // element that is focused prior to modal opening\n this.backdrop = true;\n this.keyboard = true;\n this.dismissEvent = new EventEmitter();\n this.shown = new Subject();\n this.hidden = new Subject();\n }\n get fullscreenClass() {\n return this.fullscreen === true ? ' modal-fullscreen' : isString(this.fullscreen) ? ` modal-fullscreen-${this.fullscreen}-down` : '';\n }\n dismiss(reason) {\n this.dismissEvent.emit(reason);\n }\n ngOnInit() {\n this._elWithFocus = this._document.activeElement;\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n this._show();\n });\n }\n ngOnDestroy() {\n this._disableEventHandling();\n }\n hide() {\n const {\n nativeElement\n } = this._elRef;\n const context = {\n animation: this.animation,\n runningTransition: 'stop'\n };\n const windowTransition$ = ngbRunTransition(this._zone, nativeElement, () => nativeElement.classList.remove('show'), context);\n const dialogTransition$ = ngbRunTransition(this._zone, this._dialogEl.nativeElement, () => {}, context);\n const transitions$ = zip(windowTransition$, dialogTransition$);\n transitions$.subscribe(() => {\n this.hidden.next();\n this.hidden.complete();\n });\n this._disableEventHandling();\n this._restoreFocus();\n return transitions$;\n }\n _show() {\n const context = {\n animation: this.animation,\n runningTransition: 'continue'\n };\n const windowTransition$ = ngbRunTransition(this._zone, this._elRef.nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n }, context);\n const dialogTransition$ = ngbRunTransition(this._zone, this._dialogEl.nativeElement, () => {}, context);\n zip(windowTransition$, dialogTransition$).subscribe(() => {\n this.shown.next();\n this.shown.complete();\n });\n this._enableEventHandling();\n this._setFocus();\n }\n _enableEventHandling() {\n const {\n nativeElement\n } = this._elRef;\n this._zone.runOutsideAngular(() => {\n fromEvent(nativeElement, 'keydown').pipe(takeUntil(this._closed$), /* eslint-disable-next-line deprecation/deprecation */\n filter(e => e.which === Key.Escape)).subscribe(event => {\n if (this.keyboard) {\n requestAnimationFrame(() => {\n if (!event.defaultPrevented) {\n this._zone.run(() => this.dismiss(ModalDismissReasons.ESC));\n }\n });\n } else if (this.backdrop === 'static') {\n this._bumpBackdrop();\n }\n });\n // We're listening to 'mousedown' and 'mouseup' to prevent modal from closing when pressing the mouse\n // inside the modal dialog and releasing it outside\n let preventClose = false;\n fromEvent(this._dialogEl.nativeElement, 'mousedown').pipe(takeUntil(this._closed$), tap(() => preventClose = false), switchMap(() => fromEvent(nativeElement, 'mouseup').pipe(takeUntil(this._closed$), take(1))), filter(({\n target\n }) => nativeElement === target)).subscribe(() => {\n preventClose = true;\n });\n // We're listening to 'click' to dismiss modal on modal window click, except when:\n // 1. clicking on modal dialog itself\n // 2. closing was prevented by mousedown/up handlers\n // 3. clicking on scrollbar when the viewport is too small and modal doesn't fit (click is not triggered at all)\n fromEvent(nativeElement, 'click').pipe(takeUntil(this._closed$)).subscribe(({\n target\n }) => {\n if (nativeElement === target) {\n if (this.backdrop === 'static') {\n this._bumpBackdrop();\n } else if (this.backdrop === true && !preventClose) {\n this._zone.run(() => this.dismiss(ModalDismissReasons.BACKDROP_CLICK));\n }\n }\n preventClose = false;\n });\n });\n }\n _disableEventHandling() {\n this._closed$.next();\n }\n _setFocus() {\n const {\n nativeElement\n } = this._elRef;\n if (!nativeElement.contains(document.activeElement)) {\n const autoFocusable = nativeElement.querySelector(`[ngbAutofocus]`);\n const firstFocusable = getFocusableBoundaryElements(nativeElement)[0];\n const elementToFocus = autoFocusable || firstFocusable || nativeElement;\n elementToFocus.focus();\n }\n }\n _restoreFocus() {\n const body = this._document.body;\n const elWithFocus = this._elWithFocus;\n let elementToFocus;\n if (elWithFocus && elWithFocus['focus'] && body.contains(elWithFocus)) {\n elementToFocus = elWithFocus;\n } else {\n elementToFocus = body;\n }\n this._zone.runOutsideAngular(() => {\n setTimeout(() => elementToFocus.focus());\n this._elWithFocus = null;\n });\n }\n _bumpBackdrop() {\n if (this.backdrop === 'static') {\n ngbRunTransition(this._zone, this._elRef.nativeElement, ({\n classList\n }) => {\n classList.add('modal-static');\n return () => classList.remove('modal-static');\n }, {\n animation: this.animation,\n runningTransition: 'continue'\n });\n }\n }\n static {\n this.ɵfac = function NgbModalWindow_Factory(t) {\n return new (t || NgbModalWindow)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbModalWindow,\n selectors: [[\"ngb-modal-window\"]],\n viewQuery: function NgbModalWindow_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c7, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._dialogEl = _t.first);\n }\n },\n hostAttrs: [\"role\", \"dialog\", \"tabindex\", \"-1\"],\n hostVars: 7,\n hostBindings: function NgbModalWindow_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-modal\", true)(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-describedby\", ctx.ariaDescribedBy);\n i0.ɵɵclassMap(\"modal d-block\" + (ctx.windowClass ? \" \" + ctx.windowClass : \"\"));\n i0.ɵɵclassProp(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n ariaLabelledBy: \"ariaLabelledBy\",\n ariaDescribedBy: \"ariaDescribedBy\",\n backdrop: \"backdrop\",\n centered: \"centered\",\n fullscreen: \"fullscreen\",\n keyboard: \"keyboard\",\n scrollable: \"scrollable\",\n size: \"size\",\n windowClass: \"windowClass\",\n modalDialogClass: \"modalDialogClass\"\n },\n outputs: {\n dismissEvent: \"dismiss\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 4,\n vars: 2,\n consts: [[\"role\", \"document\"], [\"dialog\", \"\"], [1, \"modal-content\"]],\n template: function NgbModalWindow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\", 0, 1)(2, \"div\", 2);\n i0.ɵɵprojection(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵclassMap(\"modal-dialog\" + (ctx.size ? \" modal-\" + ctx.size : \"\") + (ctx.centered ? \" modal-dialog-centered\" : \"\") + ctx.fullscreenClass + (ctx.scrollable ? \" modal-dialog-scrollable\" : \"\") + (ctx.modalDialogClass ? \" \" + ctx.modalDialogClass : \"\"));\n }\n },\n styles: [\"ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\\n\"],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModalWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-modal-window',\n standalone: true,\n host: {\n '[class]': '\"modal d-block\" + (windowClass ? \" \" + windowClass : \"\")',\n '[class.fade]': 'animation',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.aria-describedby]': 'ariaDescribedBy'\n },\n template: `\n\t\t\n\t\t\t
\n\t\t\n\t`,\n encapsulation: ViewEncapsulation.None,\n styles: [\"ngb-modal-window .component-host-scrollable{display:flex;flex-direction:column;overflow:hidden}\\n\"]\n }]\n }], null, {\n _dialogEl: [{\n type: ViewChild,\n args: ['dialog', {\n static: true\n }]\n }],\n animation: [{\n type: Input\n }],\n ariaLabelledBy: [{\n type: Input\n }],\n ariaDescribedBy: [{\n type: Input\n }],\n backdrop: [{\n type: Input\n }],\n centered: [{\n type: Input\n }],\n fullscreen: [{\n type: Input\n }],\n keyboard: [{\n type: Input\n }],\n scrollable: [{\n type: Input\n }],\n size: [{\n type: Input\n }],\n windowClass: [{\n type: Input\n }],\n modalDialogClass: [{\n type: Input\n }],\n dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }]\n });\n})();\nclass NgbModalStack {\n constructor() {\n this._applicationRef = inject(ApplicationRef);\n this._injector = inject(Injector);\n this._environmentInjector = inject(EnvironmentInjector);\n this._document = inject(DOCUMENT);\n this._scrollBar = inject(ScrollBar);\n this._activeWindowCmptHasChanged = new Subject();\n this._ariaHiddenValues = new Map();\n this._scrollBarRestoreFn = null;\n this._modalRefs = [];\n this._windowCmpts = [];\n this._activeInstances = new EventEmitter();\n const ngZone = inject(NgZone);\n // Trap focus on active WindowCmpt\n this._activeWindowCmptHasChanged.subscribe(() => {\n if (this._windowCmpts.length) {\n const activeWindowCmpt = this._windowCmpts[this._windowCmpts.length - 1];\n ngbFocusTrap(ngZone, activeWindowCmpt.location.nativeElement, this._activeWindowCmptHasChanged);\n this._revertAriaHidden();\n this._setAriaHidden(activeWindowCmpt.location.nativeElement);\n }\n });\n }\n _restoreScrollBar() {\n const scrollBarRestoreFn = this._scrollBarRestoreFn;\n if (scrollBarRestoreFn) {\n this._scrollBarRestoreFn = null;\n scrollBarRestoreFn();\n }\n }\n _hideScrollBar() {\n if (!this._scrollBarRestoreFn) {\n this._scrollBarRestoreFn = this._scrollBar.hide();\n }\n }\n open(contentInjector, content, options) {\n const containerEl = options.container instanceof HTMLElement ? options.container : isDefined(options.container) ? this._document.querySelector(options.container) : this._document.body;\n if (!containerEl) {\n throw new Error(`The specified modal container \"${options.container || 'body'}\" was not found in the DOM.`);\n }\n this._hideScrollBar();\n const activeModal = new NgbActiveModal();\n contentInjector = options.injector || contentInjector;\n const environmentInjector = contentInjector.get(EnvironmentInjector, null) || this._environmentInjector;\n const contentRef = this._getContentRef(contentInjector, environmentInjector, content, activeModal, options);\n let backdropCmptRef = options.backdrop !== false ? this._attachBackdrop(containerEl) : undefined;\n let windowCmptRef = this._attachWindowComponent(containerEl, contentRef.nodes);\n let ngbModalRef = new NgbModalRef(windowCmptRef, contentRef, backdropCmptRef, options.beforeDismiss);\n this._registerModalRef(ngbModalRef);\n this._registerWindowCmpt(windowCmptRef);\n // We have to cleanup DOM after the last modal when BOTH 'hidden' was emitted and 'result' promise was resolved:\n // - with animations OFF, 'hidden' emits synchronously, then 'result' is resolved asynchronously\n // - with animations ON, 'result' is resolved asynchronously, then 'hidden' emits asynchronously\n ngbModalRef.hidden.pipe(take(1)).subscribe(() => Promise.resolve(true).then(() => {\n if (!this._modalRefs.length) {\n this._document.body.classList.remove('modal-open');\n this._restoreScrollBar();\n this._revertAriaHidden();\n }\n }));\n activeModal.close = result => {\n ngbModalRef.close(result);\n };\n activeModal.dismiss = reason => {\n ngbModalRef.dismiss(reason);\n };\n activeModal.update = options => {\n ngbModalRef.update(options);\n };\n ngbModalRef.update(options);\n if (this._modalRefs.length === 1) {\n this._document.body.classList.add('modal-open');\n }\n if (backdropCmptRef && backdropCmptRef.instance) {\n backdropCmptRef.changeDetectorRef.detectChanges();\n }\n windowCmptRef.changeDetectorRef.detectChanges();\n return ngbModalRef;\n }\n get activeInstances() {\n return this._activeInstances;\n }\n dismissAll(reason) {\n this._modalRefs.forEach(ngbModalRef => ngbModalRef.dismiss(reason));\n }\n hasOpenModals() {\n return this._modalRefs.length > 0;\n }\n _attachBackdrop(containerEl) {\n let backdropCmptRef = createComponent(NgbModalBackdrop, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector\n });\n this._applicationRef.attachView(backdropCmptRef.hostView);\n containerEl.appendChild(backdropCmptRef.location.nativeElement);\n return backdropCmptRef;\n }\n _attachWindowComponent(containerEl, projectableNodes) {\n let windowCmptRef = createComponent(NgbModalWindow, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector,\n projectableNodes\n });\n this._applicationRef.attachView(windowCmptRef.hostView);\n containerEl.appendChild(windowCmptRef.location.nativeElement);\n return windowCmptRef;\n }\n _getContentRef(contentInjector, environmentInjector, content, activeModal, options) {\n if (!content) {\n return new ContentRef([]);\n } else if (content instanceof TemplateRef) {\n return this._createFromTemplateRef(content, activeModal);\n } else if (isString(content)) {\n return this._createFromString(content);\n } else {\n return this._createFromComponent(contentInjector, environmentInjector, content, activeModal, options);\n }\n }\n _createFromTemplateRef(templateRef, activeModal) {\n const context = {\n $implicit: activeModal,\n close(result) {\n activeModal.close(result);\n },\n dismiss(reason) {\n activeModal.dismiss(reason);\n }\n };\n const viewRef = templateRef.createEmbeddedView(context);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n _createFromString(content) {\n const component = this._document.createTextNode(`${content}`);\n return new ContentRef([[component]]);\n }\n _createFromComponent(contentInjector, environmentInjector, componentType, context, options) {\n const elementInjector = Injector.create({\n providers: [{\n provide: NgbActiveModal,\n useValue: context\n }],\n parent: contentInjector\n });\n const componentRef = createComponent(componentType, {\n environmentInjector,\n elementInjector\n });\n const componentNativeEl = componentRef.location.nativeElement;\n if (options.scrollable) {\n componentNativeEl.classList.add('component-host-scrollable');\n }\n this._applicationRef.attachView(componentRef.hostView);\n // FIXME: we should here get rid of the component nativeElement\n // and use `[Array.from(componentNativeEl.childNodes)]` instead and remove the above CSS class.\n return new ContentRef([[componentNativeEl]], componentRef.hostView, componentRef);\n }\n _setAriaHidden(element) {\n const parent = element.parentElement;\n if (parent && element !== this._document.body) {\n Array.from(parent.children).forEach(sibling => {\n if (sibling !== element && sibling.nodeName !== 'SCRIPT') {\n this._ariaHiddenValues.set(sibling, sibling.getAttribute('aria-hidden'));\n sibling.setAttribute('aria-hidden', 'true');\n }\n });\n this._setAriaHidden(parent);\n }\n }\n _revertAriaHidden() {\n this._ariaHiddenValues.forEach((value, element) => {\n if (value) {\n element.setAttribute('aria-hidden', value);\n } else {\n element.removeAttribute('aria-hidden');\n }\n });\n this._ariaHiddenValues.clear();\n }\n _registerModalRef(ngbModalRef) {\n const unregisterModalRef = () => {\n const index = this._modalRefs.indexOf(ngbModalRef);\n if (index > -1) {\n this._modalRefs.splice(index, 1);\n this._activeInstances.emit(this._modalRefs);\n }\n };\n this._modalRefs.push(ngbModalRef);\n this._activeInstances.emit(this._modalRefs);\n ngbModalRef.result.then(unregisterModalRef, unregisterModalRef);\n }\n _registerWindowCmpt(ngbWindowCmpt) {\n this._windowCmpts.push(ngbWindowCmpt);\n this._activeWindowCmptHasChanged.next();\n ngbWindowCmpt.onDestroy(() => {\n const index = this._windowCmpts.indexOf(ngbWindowCmpt);\n if (index > -1) {\n this._windowCmpts.splice(index, 1);\n this._activeWindowCmptHasChanged.next();\n }\n });\n }\n static {\n this.ɵfac = function NgbModalStack_Factory(t) {\n return new (t || NgbModalStack)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbModalStack,\n factory: NgbModalStack.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModalStack, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [], null);\n})();\n\n/**\n * A service for opening modal windows.\n *\n * Creating a modal is straightforward: create a component or a template and pass it as an argument to\n * the `.open()` method.\n */\nclass NgbModal {\n constructor() {\n this._injector = inject(Injector);\n this._modalStack = inject(NgbModalStack);\n this._config = inject(NgbModalConfig);\n }\n /**\n * Opens a new modal window with the specified content and supplied options.\n *\n * Content can be provided as a `TemplateRef` or a component type. If you pass a component type as content,\n * then instances of those components can be injected with an instance of the `NgbActiveModal` class. You can then\n * use `NgbActiveModal` methods to close / dismiss modals from \"inside\" of your component.\n *\n * Also see the [`NgbModalOptions`](#/components/modal/api#NgbModalOptions) for the list of supported options.\n */\n open(content, options = {}) {\n const combinedOptions = {\n ...this._config,\n animation: this._config.animation,\n ...options\n };\n return this._modalStack.open(this._injector, content, combinedOptions);\n }\n /**\n * Returns an observable that holds the active modal instances.\n */\n get activeInstances() {\n return this._modalStack.activeInstances;\n }\n /**\n * Dismisses all currently displayed modal windows with the supplied reason.\n *\n * @since 3.1.0\n */\n dismissAll(reason) {\n this._modalStack.dismissAll(reason);\n }\n /**\n * Indicates if there are currently any open modal windows in the application.\n *\n * @since 3.3.0\n */\n hasOpenModals() {\n return this._modalStack.hasOpenModals();\n }\n static {\n this.ɵfac = function NgbModal_Factory(t) {\n return new (t || NgbModal)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbModal,\n factory: NgbModal.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModal, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nclass NgbModalModule {\n static {\n this.ɵfac = function NgbModalModule_Factory(t) {\n return new (t || NgbModalModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbModalModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [NgbModal]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModalModule, [{\n type: NgModule,\n args: [{\n providers: [NgbModal]\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbNav`](#/components/nav/api#NgbNav) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the navs used in the application.\n *\n * @since 5.2.0\n */\nclass NgbNavConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.destroyOnHide = true;\n this.orientation = 'horizontal';\n this.roles = 'tablist';\n this.keyboard = true;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static {\n this.ɵfac = function NgbNavConfig_Factory(t) {\n return new (t || NgbNavConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbNavConfig,\n factory: NgbNavConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nconst isValidNavId = id => isDefined(id) && id !== '';\nlet navCounter = 0;\n/**\n * This directive must be used to wrap content to be displayed in the nav.\n *\n * @since 5.2.0\n */\nclass NgbNavContent {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static {\n this.ɵfac = function NgbNavContent_Factory(t) {\n return new (t || NgbNavContent)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavContent,\n selectors: [[\"ng-template\", \"ngbNavContent\", \"\"]],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavContent, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbNavContent]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * This directive applies a specific role on a non-container based ngbNavItem.\n *\n * @since 14.1.0\n */\nclass NgbNavItemRole {\n constructor(role) {\n this.role = role;\n this.nav = inject(NgbNav);\n }\n static {\n this.ɵfac = function NgbNavItemRole_Factory(t) {\n return new (t || NgbNavItemRole)(i0.ɵɵinjectAttribute('role'));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavItemRole,\n selectors: [[\"\", \"ngbNavItem\", \"\", 5, \"ng-container\"]],\n hostVars: 1,\n hostBindings: function NgbNavItemRole_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"role\", ctx.role ? ctx.role : ctx.nav.roles ? \"presentation\" : undefined);\n }\n },\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavItemRole, [{\n type: Directive,\n args: [{\n selector: '[ngbNavItem]:not(ng-container)',\n standalone: true,\n host: {\n '[attr.role]': `role ? role : nav.roles ? 'presentation' : undefined`\n }\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['role']\n }]\n }], null);\n})();\n/**\n * The directive used to group nav link and related nav content. As well as set nav identifier and some options.\n *\n * @since 5.2.0\n */\nclass NgbNavItem {\n constructor() {\n this._nav = inject(NgbNav);\n this._nativeElement = inject(ElementRef).nativeElement;\n /**\n * If `true`, the current nav item is disabled and can't be toggled by user.\n *\n * Nevertheless disabled nav can be selected programmatically via the `.select()` method and the `[activeId]` binding.\n */\n this.disabled = false;\n /**\n * An event emitted when the fade in transition is finished on the related nav content\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the fade out transition is finished on the related nav content\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n }\n ngAfterContentChecked() {\n // We are using @ContentChildren instead of @ContentChild as in the Angular version being used\n // only @ContentChildren allows us to specify the {descendants: false} option.\n // Without {descendants: false} we are hitting bugs described in:\n // https://github.com/ng-bootstrap/ng-bootstrap/issues/2240\n this.contentTpl = this.contentTpls.first;\n }\n ngOnInit() {\n if (!isDefined(this.domId)) {\n this.domId = `ngb-nav-${navCounter++}`;\n }\n }\n get active() {\n return this._nav.activeId === this.id;\n }\n get id() {\n return isValidNavId(this._id) ? this._id : this.domId;\n }\n get panelDomId() {\n return `${this.domId}-panel`;\n }\n isPanelInDom() {\n return (isDefined(this.destroyOnHide) ? !this.destroyOnHide : !this._nav.destroyOnHide) || this.active;\n }\n /**\n * @internal\n */\n isNgContainer() {\n return this._nativeElement.nodeType === Node.COMMENT_NODE;\n }\n static {\n this.ɵfac = function NgbNavItem_Factory(t) {\n return new (t || NgbNavItem)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavItem,\n selectors: [[\"\", \"ngbNavItem\", \"\"]],\n contentQueries: function NgbNavItem_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbNavContent, 4);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTpls = _t);\n }\n },\n hostVars: 2,\n hostBindings: function NgbNavItem_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"nav-item\", true);\n }\n },\n inputs: {\n destroyOnHide: \"destroyOnHide\",\n disabled: \"disabled\",\n domId: \"domId\",\n _id: [i0.ɵɵInputFlags.None, \"ngbNavItem\", \"_id\"]\n },\n outputs: {\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbNavItem\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavItem, [{\n type: Directive,\n args: [{\n selector: '[ngbNavItem]',\n exportAs: 'ngbNavItem',\n standalone: true,\n host: {\n '[class.nav-item]': 'true'\n }\n }]\n }], null, {\n destroyOnHide: [{\n type: Input\n }],\n disabled: [{\n type: Input\n }],\n domId: [{\n type: Input\n }],\n _id: [{\n type: Input,\n args: ['ngbNavItem']\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n contentTpls: [{\n type: ContentChildren,\n args: [NgbNavContent, {\n descendants: false\n }]\n }]\n });\n})();\n/**\n * A nav directive that helps with implementing tabbed navigation components.\n *\n * @since 5.2.0\n */\nclass NgbNav {\n constructor(role) {\n this.role = role;\n this._config = inject(NgbNavConfig);\n this._cd = inject(ChangeDetectorRef);\n this._document = inject(DOCUMENT);\n this._nativeElement = inject(ElementRef).nativeElement;\n this.destroyRef = inject(DestroyRef);\n this._navigatingWithKeyboard = false;\n /**\n * The event emitted after the active nav changes\n * The payload of the event is the newly active nav id\n *\n * If you want to prevent nav change, you should use `(navChange)` event\n */\n this.activeIdChange = new EventEmitter();\n /**\n * If `true`, nav change will be animated.\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * If `true`, non-active nav content will be removed from DOM\n * Otherwise it will just be hidden\n */\n this.destroyOnHide = this._config.destroyOnHide;\n /**\n * The orientation of navs.\n *\n * Using `vertical` will also add the `aria-orientation` attribute\n */\n this.orientation = this._config.orientation;\n /**\n * Role attribute generating strategy:\n * - `false` - no role attributes will be generated\n * - `'tablist'` - 'tablist', 'tab' and 'tabpanel' will be generated (default)\n */\n this.roles = this._config.roles;\n /**\n * Keyboard support for nav focus/selection using arrow keys.\n *\n * * `true` - navs will be focused using keyboard arrow keys\n * * `false` - no keyboard support\n * * `'changeWithArrows'` - nav will be selected using keyboard arrow keys\n *\n * See the [list of available keyboard shortcuts](#/components/nav/overview#keyboard-shortcuts).\n *\n * @since 6.1.0\n */\n this.keyboard = this._config.keyboard;\n /**\n * An event emitted when the fade in transition is finished for one of the items.\n *\n * Payload of the event is the nav id that was just shown.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the fade out transition is finished for one of the items.\n *\n * Payload of the event is the nav id that was just hidden.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n this.navItemChange$ = new Subject();\n /**\n * The nav change event emitted right before the nav change happens on user click.\n *\n * This event won't be emitted if nav is changed programmatically via `[activeId]` or `.select()`.\n *\n * See [`NgbNavChangeEvent`](#/components/nav/api#NgbNavChangeEvent) for payload details.\n */\n this.navChange = new EventEmitter();\n }\n click(item) {\n if (!item.disabled) {\n this._updateActiveId(item.id);\n }\n }\n onFocusout({\n relatedTarget\n }) {\n if (!this._nativeElement.contains(relatedTarget)) {\n this._navigatingWithKeyboard = false;\n }\n }\n onKeyDown(event) {\n if (this.roles !== 'tablist' || !this.keyboard) {\n return;\n }\n /* eslint-disable-next-line deprecation/deprecation */\n const key = event.which;\n const enabledLinks = this.links.filter(link => !link.navItem.disabled);\n const {\n length\n } = enabledLinks;\n let position = -1;\n enabledLinks.forEach((link, index) => {\n if (link.nativeElement === this._document.activeElement) {\n position = index;\n }\n });\n if (length) {\n switch (key) {\n case Key.ArrowUp:\n case Key.ArrowLeft:\n position = (position - 1 + length) % length;\n break;\n case Key.ArrowRight:\n case Key.ArrowDown:\n position = (position + 1) % length;\n break;\n case Key.Home:\n position = 0;\n break;\n case Key.End:\n position = length - 1;\n break;\n }\n if (this.keyboard === 'changeWithArrows') {\n this.select(enabledLinks[position].navItem.id);\n }\n enabledLinks[position].nativeElement.focus();\n this._navigatingWithKeyboard = true;\n event.preventDefault();\n }\n }\n /**\n * Selects the nav with the given id and shows its associated pane.\n * Any other nav that was previously selected becomes unselected and its associated pane is hidden.\n */\n select(id) {\n this._updateActiveId(id, false);\n }\n ngAfterContentInit() {\n if (!isDefined(this.activeId)) {\n const nextId = this.items.first ? this.items.first.id : null;\n if (isValidNavId(nextId)) {\n this._updateActiveId(nextId, false);\n this._cd.detectChanges();\n }\n }\n this.items.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this._notifyItemChanged(this.activeId));\n }\n ngOnChanges({\n activeId\n }) {\n if (activeId && !activeId.firstChange) {\n this._notifyItemChanged(activeId.currentValue);\n }\n }\n _updateActiveId(nextId, emitNavChange = true) {\n if (this.activeId !== nextId) {\n let defaultPrevented = false;\n if (emitNavChange) {\n this.navChange.emit({\n activeId: this.activeId,\n nextId,\n preventDefault: () => {\n defaultPrevented = true;\n }\n });\n }\n if (!defaultPrevented) {\n this.activeId = nextId;\n this.activeIdChange.emit(nextId);\n this._notifyItemChanged(nextId);\n }\n }\n }\n _notifyItemChanged(nextItemId) {\n this.navItemChange$.next(this._getItemById(nextItemId));\n }\n _getItemById(itemId) {\n return this.items && this.items.find(item => item.id === itemId) || null;\n }\n static {\n this.ɵfac = function NgbNav_Factory(t) {\n return new (t || NgbNav)(i0.ɵɵinjectAttribute('role'));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNav,\n selectors: [[\"\", \"ngbNav\", \"\"]],\n contentQueries: function NgbNav_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbNavItem, 4);\n i0.ɵɵcontentQuery(dirIndex, NgbNavLinkBase, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.items = _t);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.links = _t);\n }\n },\n hostVars: 6,\n hostBindings: function NgbNav_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown.arrowLeft\", function NgbNav_keydown_arrowLeft_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n })(\"keydown.arrowRight\", function NgbNav_keydown_arrowRight_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n })(\"keydown.arrowDown\", function NgbNav_keydown_arrowDown_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n })(\"keydown.arrowUp\", function NgbNav_keydown_arrowUp_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n })(\"keydown.Home\", function NgbNav_keydown_Home_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n })(\"keydown.End\", function NgbNav_keydown_End_HostBindingHandler($event) {\n return ctx.onKeyDown($event);\n })(\"focusout\", function NgbNav_focusout_HostBindingHandler($event) {\n return ctx.onFocusout($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-orientation\", ctx.orientation === \"vertical\" && ctx.roles === \"tablist\" ? \"vertical\" : undefined)(\"role\", ctx.role ? ctx.role : ctx.roles ? \"tablist\" : undefined);\n i0.ɵɵclassProp(\"nav\", true)(\"flex-column\", ctx.orientation === \"vertical\");\n }\n },\n inputs: {\n activeId: \"activeId\",\n animation: \"animation\",\n destroyOnHide: \"destroyOnHide\",\n orientation: \"orientation\",\n roles: \"roles\",\n keyboard: \"keyboard\"\n },\n outputs: {\n activeIdChange: \"activeIdChange\",\n shown: \"shown\",\n hidden: \"hidden\",\n navChange: \"navChange\"\n },\n exportAs: [\"ngbNav\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNav, [{\n type: Directive,\n args: [{\n selector: '[ngbNav]',\n exportAs: 'ngbNav',\n standalone: true,\n host: {\n '[class.nav]': 'true',\n '[class.flex-column]': `orientation === 'vertical'`,\n '[attr.aria-orientation]': `orientation === 'vertical' && roles === 'tablist' ? 'vertical' : undefined`,\n '[attr.role]': `role ? role : roles ? 'tablist' : undefined`,\n '(keydown.arrowLeft)': 'onKeyDown($event)',\n '(keydown.arrowRight)': 'onKeyDown($event)',\n '(keydown.arrowDown)': 'onKeyDown($event)',\n '(keydown.arrowUp)': 'onKeyDown($event)',\n '(keydown.Home)': 'onKeyDown($event)',\n '(keydown.End)': 'onKeyDown($event)',\n '(focusout)': 'onFocusout($event)'\n }\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['role']\n }]\n }], {\n activeId: [{\n type: Input\n }],\n activeIdChange: [{\n type: Output\n }],\n animation: [{\n type: Input\n }],\n destroyOnHide: [{\n type: Input\n }],\n orientation: [{\n type: Input\n }],\n roles: [{\n type: Input\n }],\n keyboard: [{\n type: Input\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n items: [{\n type: ContentChildren,\n args: [NgbNavItem]\n }],\n links: [{\n type: ContentChildren,\n args: [forwardRef(() => NgbNavLinkBase), {\n descendants: true\n }]\n }],\n navChange: [{\n type: Output\n }]\n });\n})();\nclass NgbNavLinkBase {\n constructor(role) {\n this.role = role;\n this.navItem = inject(NgbNavItem);\n this.nav = inject(NgbNav);\n this.nativeElement = inject(ElementRef).nativeElement;\n }\n get tabindex() {\n if (this.nav.keyboard === false) {\n return this.navItem.disabled ? -1 : undefined;\n }\n if (this.nav._navigatingWithKeyboard) {\n return -1;\n }\n return this.navItem.disabled || !this.navItem.active ? -1 : undefined;\n }\n static {\n this.ɵfac = function NgbNavLinkBase_Factory(t) {\n return new (t || NgbNavLinkBase)(i0.ɵɵinjectAttribute('role'));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavLinkBase,\n selectors: [[\"\", \"ngbNavLink\", \"\"]],\n hostVars: 14,\n hostBindings: function NgbNavLinkBase_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.navItem.domId);\n i0.ɵɵattribute(\"role\", ctx.role ? ctx.role : ctx.nav.roles ? \"tab\" : undefined)(\"tabindex\", ctx.tabindex)(\"aria-controls\", ctx.navItem.isPanelInDom() ? ctx.navItem.panelDomId : null)(\"aria-selected\", ctx.navItem.active)(\"aria-disabled\", ctx.navItem.disabled);\n i0.ɵɵclassProp(\"nav-link\", true)(\"nav-item\", ctx.navItem.isNgContainer())(\"active\", ctx.navItem.active)(\"disabled\", ctx.navItem.disabled);\n }\n },\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavLinkBase, [{\n type: Directive,\n args: [{\n selector: '[ngbNavLink]',\n standalone: true,\n host: {\n '[id]': 'navItem.domId',\n '[class.nav-link]': 'true',\n '[class.nav-item]': 'navItem.isNgContainer()',\n '[attr.role]': `role ? role : nav.roles ? 'tab' : undefined`,\n '[class.active]': 'navItem.active',\n '[class.disabled]': 'navItem.disabled',\n '[attr.tabindex]': 'tabindex',\n '[attr.aria-controls]': 'navItem.isPanelInDom() ? navItem.panelDomId : null',\n '[attr.aria-selected]': 'navItem.active',\n '[attr.aria-disabled]': 'navItem.disabled'\n }\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['role']\n }]\n }], null);\n})();\n/**\n * A directive to mark the nav link when used on a button element.\n */\nclass NgbNavLinkButton extends NgbNavLinkBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbNavLinkButton_BaseFactory;\n return function NgbNavLinkButton_Factory(t) {\n return (ɵNgbNavLinkButton_BaseFactory || (ɵNgbNavLinkButton_BaseFactory = i0.ɵɵgetInheritedFactory(NgbNavLinkButton)))(t || NgbNavLinkButton);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavLinkButton,\n selectors: [[\"button\", \"ngbNavLink\", \"\"]],\n hostAttrs: [\"type\", \"button\"],\n hostVars: 1,\n hostBindings: function NgbNavLinkButton_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function NgbNavLinkButton_click_HostBindingHandler() {\n return ctx.nav.click(ctx.navItem);\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"disabled\", ctx.navItem.disabled);\n }\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavLinkButton, [{\n type: Directive,\n args: [{\n selector: 'button[ngbNavLink]',\n standalone: true,\n host: {\n type: 'button',\n '[disabled]': 'navItem.disabled',\n '(click)': 'nav.click(navItem)'\n }\n }]\n }], null, null);\n})();\n/**\n * A directive to mark the nav link when used on a link element.\n *\n * @since 5.2.0\n */\nclass NgbNavLink extends NgbNavLinkBase {\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbNavLink_BaseFactory;\n return function NgbNavLink_Factory(t) {\n return (ɵNgbNavLink_BaseFactory || (ɵNgbNavLink_BaseFactory = i0.ɵɵgetInheritedFactory(NgbNavLink)))(t || NgbNavLink);\n };\n })();\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavLink,\n selectors: [[\"a\", \"ngbNavLink\", \"\"]],\n hostAttrs: [\"href\", \"\"],\n hostBindings: function NgbNavLink_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function NgbNavLink_click_HostBindingHandler($event) {\n ctx.nav.click(ctx.navItem);\n return $event.preventDefault();\n });\n }\n },\n standalone: true,\n features: [i0.ɵɵInheritDefinitionFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavLink, [{\n type: Directive,\n args: [{\n selector: 'a[ngbNavLink]',\n standalone: true,\n host: {\n href: '',\n '(click)': 'nav.click(navItem); $event.preventDefault()'\n }\n }]\n }], null, null);\n})();\nconst ngbNavFadeOutTransition = ({\n classList\n}) => {\n classList.remove('show');\n return () => classList.remove('active');\n};\nconst ngbNavFadeInTransition = (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n};\nclass NgbNavPane {\n constructor() {\n this.nativeElement = inject(ElementRef).nativeElement;\n }\n static {\n this.ɵfac = function NgbNavPane_Factory(t) {\n return new (t || NgbNavPane)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbNavPane,\n selectors: [[\"\", \"ngbNavPane\", \"\"]],\n hostAttrs: [1, \"tab-pane\"],\n hostVars: 5,\n hostBindings: function NgbNavPane_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.item.panelDomId);\n i0.ɵɵattribute(\"role\", ctx.role ? ctx.role : ctx.nav.roles ? \"tabpanel\" : undefined)(\"aria-labelledby\", ctx.item.domId);\n i0.ɵɵclassProp(\"fade\", ctx.nav.animation);\n }\n },\n inputs: {\n item: \"item\",\n nav: \"nav\",\n role: \"role\"\n },\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavPane, [{\n type: Directive,\n args: [{\n selector: '[ngbNavPane]',\n standalone: true,\n host: {\n '[id]': 'item.panelDomId',\n class: 'tab-pane',\n '[class.fade]': 'nav.animation',\n '[attr.role]': 'role ? role : nav.roles ? \"tabpanel\" : undefined',\n '[attr.aria-labelledby]': 'item.domId'\n }\n }]\n }], null, {\n item: [{\n type: Input\n }],\n nav: [{\n type: Input\n }],\n role: [{\n type: Input\n }]\n });\n})();\n/**\n * The outlet where currently active nav content will be displayed.\n *\n * @since 5.2.0\n */\nclass NgbNavOutlet {\n constructor() {\n this._cd = inject(ChangeDetectorRef);\n this._ngZone = inject(NgZone);\n this._activePane = null;\n }\n isPanelTransitioning(item) {\n return this._activePane?.item === item;\n }\n ngAfterViewInit() {\n // initial display\n this._updateActivePane();\n // this will be emitted for all 3 types of nav changes: .select(), [activeId] or (click)\n this.nav.navItemChange$.pipe(takeUntilDestroyed(this.nav.destroyRef), startWith(this._activePane?.item || null), distinctUntilChanged(), skip(1)).subscribe(nextItem => {\n const options = {\n animation: this.nav.animation,\n runningTransition: 'stop'\n };\n // next panel we're switching to will only appear in DOM after the change detection is done\n // and `this._panes` will be updated\n this._cd.detectChanges();\n // fading out\n if (this._activePane) {\n ngbRunTransition(this._ngZone, this._activePane.nativeElement, ngbNavFadeOutTransition, options).subscribe(() => {\n const activeItem = this._activePane?.item;\n this._activePane = this._getPaneForItem(nextItem);\n // mark for check when transition finishes as outlet or parent containers might be OnPush\n // without this the panes that have \"faded out\" will stay in DOM\n this._cd.markForCheck();\n // fading in\n if (this._activePane) {\n // we have to add the '.active' class before running the transition,\n // because it should be in place before `ngbRunTransition` does `reflow()`\n this._activePane.nativeElement.classList.add('active');\n ngbRunTransition(this._ngZone, this._activePane.nativeElement, ngbNavFadeInTransition, options).subscribe(() => {\n if (nextItem) {\n nextItem.shown.emit();\n this.nav.shown.emit(nextItem.id);\n }\n });\n }\n if (activeItem) {\n activeItem.hidden.emit();\n this.nav.hidden.emit(activeItem.id);\n }\n });\n } else {\n this._updateActivePane();\n }\n });\n }\n _updateActivePane() {\n this._activePane = this._getActivePane();\n this._activePane?.nativeElement.classList.add('show');\n this._activePane?.nativeElement.classList.add('active');\n }\n _getPaneForItem(item) {\n return this._panes && this._panes.find(pane => pane.item === item) || null;\n }\n _getActivePane() {\n return this._panes && this._panes.find(pane => pane.item.active) || null;\n }\n static {\n this.ɵfac = function NgbNavOutlet_Factory(t) {\n return new (t || NgbNavOutlet)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbNavOutlet,\n selectors: [[\"\", \"ngbNavOutlet\", \"\"]],\n viewQuery: function NgbNavOutlet_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(NgbNavPane, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._panes = _t);\n }\n },\n hostVars: 2,\n hostBindings: function NgbNavOutlet_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵclassProp(\"tab-content\", true);\n }\n },\n inputs: {\n paneRole: \"paneRole\",\n nav: [i0.ɵɵInputFlags.None, \"ngbNavOutlet\", \"nav\"]\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n attrs: _c8,\n decls: 2,\n vars: 0,\n consts: [[\"ngbNavPane\", \"\", 3, \"item\", \"nav\", \"role\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgbNavOutlet_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, NgbNavOutlet_For_1_Template, 1, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n i0.ɵɵrepeater(ctx.nav.items);\n }\n },\n dependencies: [NgbNavPane, NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavOutlet, [{\n type: Component,\n args: [{\n selector: '[ngbNavOutlet]',\n standalone: true,\n imports: [NgbNavPane, NgTemplateOutlet],\n host: {\n '[class.tab-content]': 'true'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n\t\t@for (item of nav.items; track item) {\n\t\t\t@if (item.isPanelInDom() || isPanelTransitioning(item)) {\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t}\n\t\t}\n\t`\n }]\n }], null, {\n _panes: [{\n type: ViewChildren,\n args: [NgbNavPane]\n }],\n paneRole: [{\n type: Input\n }],\n nav: [{\n type: Input,\n args: ['ngbNavOutlet']\n }]\n });\n})();\nconst NGB_NAV_DIRECTIVES = [NgbNavContent, NgbNav, NgbNavItem, NgbNavItemRole, NgbNavLink, NgbNavLinkButton, NgbNavLinkBase, NgbNavOutlet, NgbNavPane];\nclass NgbNavModule {\n static {\n this.ɵfac = function NgbNavModule_Factory(t) {\n return new (t || NgbNavModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbNavModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbNavModule, [{\n type: NgModule,\n args: [{\n imports: NGB_NAV_DIRECTIVES,\n exports: NGB_NAV_DIRECTIVES\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbPagination`](#/components/pagination/api#NgbPagination) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the paginations used in the application.\n */\nclass NgbPaginationConfig {\n constructor() {\n this.disabled = false;\n this.boundaryLinks = false;\n this.directionLinks = true;\n this.ellipses = true;\n this.maxSize = 0;\n this.pageSize = 10;\n this.rotate = false;\n }\n static {\n this.ɵfac = function NgbPaginationConfig_Factory(t) {\n return new (t || NgbPaginationConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbPaginationConfig,\n factory: NgbPaginationConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A directive to match the 'ellipsis' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationEllipsis {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static {\n this.ɵfac = function NgbPaginationEllipsis_Factory(t) {\n return new (t || NgbPaginationEllipsis)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationEllipsis,\n selectors: [[\"ng-template\", \"ngbPaginationEllipsis\", \"\"]],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationEllipsis, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationEllipsis]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A directive to match the 'first' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationFirst {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static {\n this.ɵfac = function NgbPaginationFirst_Factory(t) {\n return new (t || NgbPaginationFirst)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationFirst,\n selectors: [[\"ng-template\", \"ngbPaginationFirst\", \"\"]],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationFirst, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationFirst]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A directive to match the 'last' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationLast {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static {\n this.ɵfac = function NgbPaginationLast_Factory(t) {\n return new (t || NgbPaginationLast)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationLast,\n selectors: [[\"ng-template\", \"ngbPaginationLast\", \"\"]],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationLast, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationLast]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A directive to match the 'next' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationNext {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static {\n this.ɵfac = function NgbPaginationNext_Factory(t) {\n return new (t || NgbPaginationNext)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationNext,\n selectors: [[\"ng-template\", \"ngbPaginationNext\", \"\"]],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationNext, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationNext]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A directive to match the page 'number' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationNumber {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static {\n this.ɵfac = function NgbPaginationNumber_Factory(t) {\n return new (t || NgbPaginationNumber)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationNumber,\n selectors: [[\"ng-template\", \"ngbPaginationNumber\", \"\"]],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationNumber, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationNumber]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A directive to match the 'previous' link template\n *\n * @since 4.1.0\n */\nclass NgbPaginationPrevious {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static {\n this.ɵfac = function NgbPaginationPrevious_Factory(t) {\n return new (t || NgbPaginationPrevious)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationPrevious,\n selectors: [[\"ng-template\", \"ngbPaginationPrevious\", \"\"]],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationPrevious, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationPrevious]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A directive to match the 'pages' whole content\n *\n * @since 9.1.0\n */\nclass NgbPaginationPages {\n constructor() {\n this.templateRef = inject(TemplateRef);\n }\n static {\n this.ɵfac = function NgbPaginationPages_Factory(t) {\n return new (t || NgbPaginationPages)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPaginationPages,\n selectors: [[\"ng-template\", \"ngbPaginationPages\", \"\"]],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationPages, [{\n type: Directive,\n args: [{\n selector: 'ng-template[ngbPaginationPages]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * A component that displays page numbers and allows to customize them in several ways.\n */\nclass NgbPagination {\n constructor() {\n this._config = inject(NgbPaginationConfig);\n this.pageCount = 0;\n this.pages = [];\n /**\n * If `true`, pagination links will be disabled.\n */\n this.disabled = this._config.disabled;\n /**\n * If `true`, the \"First\" and \"Last\" page links are shown.\n */\n this.boundaryLinks = this._config.boundaryLinks;\n /**\n * If `true`, the \"Next\" and \"Previous\" page links are shown.\n */\n this.directionLinks = this._config.directionLinks;\n /**\n * If `true`, the ellipsis symbols and first/last page numbers will be shown when `maxSize` > number of pages.\n */\n this.ellipses = this._config.ellipses;\n /**\n * Whether to rotate pages when `maxSize` > number of pages.\n *\n * The current page always stays in the middle if `true`.\n */\n this.rotate = this._config.rotate;\n /**\n * The maximum number of pages to display.\n */\n this.maxSize = this._config.maxSize;\n /**\n * The current page.\n *\n * Page numbers start with `1`.\n */\n this.page = 1;\n /**\n * The number of items per page.\n */\n this.pageSize = this._config.pageSize;\n /**\n * An event fired when the page is changed. Will fire only if collection size is set and all values are valid.\n *\n * Event payload is the number of the newly selected page.\n *\n * Page numbers start with `1`.\n */\n this.pageChange = new EventEmitter(true);\n /**\n * The pagination display size.\n *\n * Bootstrap currently supports small and large sizes.\n *\n * If the passed value is a string (ex. 'custom'), it will just add the `pagination-custom` css class\n */\n this.size = this._config.size;\n }\n hasPrevious() {\n return this.page > 1;\n }\n hasNext() {\n return this.page < this.pageCount;\n }\n nextDisabled() {\n return !this.hasNext() || this.disabled;\n }\n previousDisabled() {\n return !this.hasPrevious() || this.disabled;\n }\n selectPage(pageNumber) {\n this._updatePages(pageNumber);\n }\n ngOnChanges(changes) {\n this._updatePages(this.page);\n }\n isEllipsis(pageNumber) {\n return pageNumber === -1;\n }\n /**\n * Appends ellipses and first/last page number to the displayed pages\n */\n _applyEllipses(start, end) {\n if (this.ellipses) {\n if (start > 0) {\n // The first page will always be included. If the displayed range\n // starts after the third page, then add ellipsis. But if the range\n // starts on the third page, then add the second page instead of\n // an ellipsis, because the ellipsis would only hide a single page.\n if (start > 2) {\n this.pages.unshift(-1);\n } else if (start === 2) {\n this.pages.unshift(2);\n }\n this.pages.unshift(1);\n }\n if (end < this.pageCount) {\n // The last page will always be included. If the displayed range\n // ends before the third-last page, then add ellipsis. But if the range\n // ends on third-last page, then add the second-last page instead of\n // an ellipsis, because the ellipsis would only hide a single page.\n if (end < this.pageCount - 2) {\n this.pages.push(-1);\n } else if (end === this.pageCount - 2) {\n this.pages.push(this.pageCount - 1);\n }\n this.pages.push(this.pageCount);\n }\n }\n }\n /**\n * Rotates page numbers based on maxSize items visible.\n * Currently selected page stays in the middle:\n *\n * Ex. for selected page = 6:\n * [5,*6*,7] for maxSize = 3\n * [4,5,*6*,7] for maxSize = 4\n */\n _applyRotation() {\n let start = 0;\n let end = this.pageCount;\n let leftOffset = Math.floor(this.maxSize / 2);\n let rightOffset = this.maxSize % 2 === 0 ? leftOffset - 1 : leftOffset;\n if (this.page <= leftOffset) {\n // very beginning, no rotation -> [0..maxSize]\n end = this.maxSize;\n } else if (this.pageCount - this.page < leftOffset) {\n // very end, no rotation -> [len-maxSize..len]\n start = this.pageCount - this.maxSize;\n } else {\n // rotate\n start = this.page - leftOffset - 1;\n end = this.page + rightOffset;\n }\n return [start, end];\n }\n /**\n * Paginates page numbers based on maxSize items per page.\n */\n _applyPagination() {\n let page = Math.ceil(this.page / this.maxSize) - 1;\n let start = page * this.maxSize;\n let end = start + this.maxSize;\n return [start, end];\n }\n _setPageInRange(newPageNo) {\n const prevPageNo = this.page;\n this.page = getValueInRange(newPageNo, this.pageCount, 1);\n if (this.page !== prevPageNo && isNumber(this.collectionSize)) {\n this.pageChange.emit(this.page);\n }\n }\n _updatePages(newPage) {\n this.pageCount = Math.ceil(this.collectionSize / this.pageSize);\n if (!isNumber(this.pageCount)) {\n this.pageCount = 0;\n }\n // fill-in model needed to render pages\n this.pages.length = 0;\n for (let i = 1; i <= this.pageCount; i++) {\n this.pages.push(i);\n }\n // set page within 1..max range\n this._setPageInRange(newPage);\n // apply maxSize if necessary\n if (this.maxSize > 0 && this.pageCount > this.maxSize) {\n let start = 0;\n let end = this.pageCount;\n // either paginating or rotating page numbers\n if (this.rotate) {\n [start, end] = this._applyRotation();\n } else {\n [start, end] = this._applyPagination();\n }\n this.pages = this.pages.slice(start, end);\n // adding ellipses\n this._applyEllipses(start, end);\n }\n }\n static {\n this.ɵfac = function NgbPagination_Factory(t) {\n return new (t || NgbPagination)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbPagination,\n selectors: [[\"ngb-pagination\"]],\n contentQueries: function NgbPagination_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationEllipsis, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationFirst, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationLast, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationNext, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationNumber, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationPrevious, 5);\n i0.ɵɵcontentQuery(dirIndex, NgbPaginationPages, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplEllipsis = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplFirst = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplLast = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplNext = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplNumber = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplPrevious = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tplPages = _t.first);\n }\n },\n hostAttrs: [\"role\", \"navigation\"],\n inputs: {\n disabled: \"disabled\",\n boundaryLinks: \"boundaryLinks\",\n directionLinks: \"directionLinks\",\n ellipses: \"ellipses\",\n rotate: \"rotate\",\n collectionSize: \"collectionSize\",\n maxSize: \"maxSize\",\n page: \"page\",\n pageSize: \"pageSize\",\n size: \"size\"\n },\n outputs: {\n pageChange: \"pageChange\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 20,\n vars: 12,\n consts: () => {\n let i18n_12;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__3 = goog.getMsg(\"\\xAB\\xAB\");\n i18n_12 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__3;\n } else {\n i18n_12 = $localize`:@@ngb.pagination.first:««`;\n }\n let i18n_13;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__4 = goog.getMsg(\"\\xAB\");\n i18n_13 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__4;\n } else {\n i18n_13 = $localize`:@@ngb.pagination.previous:«`;\n }\n let i18n_14;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__5 = goog.getMsg(\"\\xBB\");\n i18n_14 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__5;\n } else {\n i18n_14 = $localize`:@@ngb.pagination.next:»`;\n }\n let i18n_15;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__6 = goog.getMsg(\"\\xBB\\xBB\");\n i18n_15 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__6;\n } else {\n i18n_15 = $localize`:@@ngb.pagination.last:»»`;\n }\n let i18n_16;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__7 = goog.getMsg(\"First\");\n i18n_16 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__7;\n } else {\n i18n_16 = $localize`:@@ngb.pagination.first-aria:First`;\n }\n let i18n_17;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__8 = goog.getMsg(\"Previous\");\n i18n_17 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__8;\n } else {\n i18n_17 = $localize`:@@ngb.pagination.previous-aria:Previous`;\n }\n let i18n_18;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__9 = goog.getMsg(\"Next\");\n i18n_18 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__9;\n } else {\n i18n_18 = $localize`:@@ngb.pagination.next-aria:Next`;\n }\n let i18n_19;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__10 = goog.getMsg(\"Last\");\n i18n_19 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__10;\n } else {\n i18n_19 = $localize`:@@ngb.pagination.last-aria:Last`;\n }\n return [[\"first\", \"\"], [\"previous\", \"\"], [\"next\", \"\"], [\"last\", \"\"], [\"ellipsis\", \"\"], [\"defaultNumber\", \"\"], [\"defaultPages\", \"\"], [\"class\", \"page-item\", 3, \"disabled\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"aria-hidden\", \"true\"], i18n_12, i18n_13, i18n_14, i18n_15, [1, \"page-item\"], [\"class\", \"page-link\", \"tabindex\", \"-1\", \"aria-disabled\", \"true\"], [\"tabindex\", \"-1\", \"aria-disabled\", \"true\", 1, \"page-link\"], [\"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"class\", \"page-item\", 3, \"active\", \"disabled\"], [\"aria-label\", i18n_16, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_17, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_18, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_19, \"href\", \"\", 1, \"page-link\", 3, \"click\"]];\n },\n template: function NgbPagination_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbPagination_ng_template_0_Template, 2, 0, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor)(2, NgbPagination_ng_template_2_Template, 2, 0, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor)(4, NgbPagination_ng_template_4_Template, 2, 0, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor)(6, NgbPagination_ng_template_6_Template, 2, 0, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor)(8, NgbPagination_ng_template_8_Template, 1, 0, \"ng-template\", null, 4, i0.ɵɵtemplateRefExtractor)(10, NgbPagination_ng_template_10_Template, 1, 1, \"ng-template\", null, 5, i0.ɵɵtemplateRefExtractor)(12, NgbPagination_ng_template_12_Template, 2, 0, \"ng-template\", null, 6, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementStart(14, \"ul\");\n i0.ɵɵtemplate(15, NgbPagination_Conditional_15_Template, 3, 9, \"li\", 7)(16, NgbPagination_Conditional_16_Template, 3, 8, \"li\", 7)(17, NgbPagination_ng_template_17_Template, 0, 0, \"ng-template\", 8)(18, NgbPagination_Conditional_18_Template, 3, 9, \"li\", 7)(19, NgbPagination_Conditional_19_Template, 3, 9, \"li\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const _r13 = i0.ɵɵreference(13);\n i0.ɵɵadvance(14);\n i0.ɵɵclassMap(\"pagination\" + (ctx.size ? \" pagination-\" + ctx.size : \"\"));\n i0.ɵɵadvance();\n i0.ɵɵconditional(15, ctx.boundaryLinks ? 15 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(16, ctx.directionLinks ? 16 : -1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", (ctx.tplPages == null ? null : ctx.tplPages.templateRef) || _r13)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction3(8, _c13, ctx.page, ctx.pages, ctx.disabled));\n i0.ɵɵadvance();\n i0.ɵɵconditional(18, ctx.directionLinks ? 18 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(19, ctx.boundaryLinks ? 19 : -1);\n }\n },\n dependencies: [NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPagination, [{\n type: Component,\n args: [{\n selector: 'ngb-pagination',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n role: 'navigation'\n },\n template: `\n\t\t««\n\t\t«\n\t\t»\n\t\t»»\n\t\t...\n\t\t{{ page }}\n\t\t\n\t\t\t@for (pageNumber of pages; track pageNumber) {\n\t\t\t\t\n\t\t\t\t\t@if (isEllipsis(pageNumber)) {\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t
    \n\t\t\t@if (boundaryLinks) {\n\t\t\t\t
  • \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
  • \n\t\t\t}\n\t\t\t@if (directionLinks) {\n\t\t\t\t
  • \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
  • \n\t\t\t}\n\t\t\t\n\t\t\t@if (directionLinks) {\n\t\t\t\t
  • \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
  • \n\t\t\t}\n\t\t\t@if (boundaryLinks) {\n\t\t\t\t
  • \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
  • \n\t\t\t}\n\t\t
\n\t`\n }]\n }], null, {\n tplEllipsis: [{\n type: ContentChild,\n args: [NgbPaginationEllipsis, {\n static: false\n }]\n }],\n tplFirst: [{\n type: ContentChild,\n args: [NgbPaginationFirst, {\n static: false\n }]\n }],\n tplLast: [{\n type: ContentChild,\n args: [NgbPaginationLast, {\n static: false\n }]\n }],\n tplNext: [{\n type: ContentChild,\n args: [NgbPaginationNext, {\n static: false\n }]\n }],\n tplNumber: [{\n type: ContentChild,\n args: [NgbPaginationNumber, {\n static: false\n }]\n }],\n tplPrevious: [{\n type: ContentChild,\n args: [NgbPaginationPrevious, {\n static: false\n }]\n }],\n tplPages: [{\n type: ContentChild,\n args: [NgbPaginationPages, {\n static: false\n }]\n }],\n disabled: [{\n type: Input\n }],\n boundaryLinks: [{\n type: Input\n }],\n directionLinks: [{\n type: Input\n }],\n ellipses: [{\n type: Input\n }],\n rotate: [{\n type: Input\n }],\n collectionSize: [{\n type: Input,\n args: [{\n required: true\n }]\n }],\n maxSize: [{\n type: Input\n }],\n page: [{\n type: Input\n }],\n pageSize: [{\n type: Input\n }],\n pageChange: [{\n type: Output\n }],\n size: [{\n type: Input\n }]\n });\n})();\nconst NGB_PAGINATION_DIRECTIVES = [NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious, NgbPaginationPages];\nclass NgbPaginationModule {\n static {\n this.ɵfac = function NgbPaginationModule_Factory(t) {\n return new (t || NgbPaginationModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbPaginationModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPaginationModule, [{\n type: NgModule,\n args: [{\n imports: NGB_PAGINATION_DIRECTIVES,\n exports: NGB_PAGINATION_DIRECTIVES\n }]\n }], null, null);\n})();\nconst ALIASES = {\n hover: ['mouseenter', 'mouseleave'],\n focus: ['focusin', 'focusout']\n};\nfunction parseTriggers(triggers) {\n const trimmedTriggers = (triggers || '').trim();\n if (trimmedTriggers.length === 0) {\n return [];\n }\n const parsedTriggers = trimmedTriggers.split(/\\s+/).map(trigger => trigger.split(':')).map(triggerPair => ALIASES[triggerPair[0]] || triggerPair);\n const manualTriggers = parsedTriggers.filter(triggerPair => triggerPair.includes('manual'));\n if (manualTriggers.length > 1) {\n throw `Triggers parse error: only one manual trigger is allowed`;\n }\n if (manualTriggers.length === 1 && parsedTriggers.length > 1) {\n throw `Triggers parse error: manual trigger can't be mixed with other triggers`;\n }\n return manualTriggers.length ? [] : parsedTriggers;\n}\nfunction listenToTriggers(element, triggers, isOpenedFn, openFn, closeFn, openDelayMs = 0, closeDelayMs = 0) {\n const parsedTriggers = parseTriggers(triggers);\n if (parsedTriggers.length === 0) {\n return () => {};\n }\n const activeOpenTriggers = new Set();\n const cleanupFns = [];\n let timeout;\n function addEventListener(name, listener) {\n element.addEventListener(name, listener);\n cleanupFns.push(() => element.removeEventListener(name, listener));\n }\n function withDelay(fn, delayMs) {\n clearTimeout(timeout);\n if (delayMs > 0) {\n timeout = setTimeout(fn, delayMs);\n } else {\n fn();\n }\n }\n for (const [openTrigger, closeTrigger] of parsedTriggers) {\n if (!closeTrigger) {\n addEventListener(openTrigger, () => isOpenedFn() ? withDelay(closeFn, closeDelayMs) : withDelay(openFn, openDelayMs));\n } else {\n addEventListener(openTrigger, () => {\n activeOpenTriggers.add(openTrigger);\n withDelay(() => activeOpenTriggers.size > 0 && openFn(), openDelayMs);\n });\n addEventListener(closeTrigger, () => {\n activeOpenTriggers.delete(openTrigger);\n withDelay(() => activeOpenTriggers.size === 0 && closeFn(), closeDelayMs);\n });\n }\n }\n return () => cleanupFns.forEach(cleanupFn => cleanupFn());\n}\n\n/**\n * A configuration service for the [`NgbPopover`](#/components/popover/api#NgbPopover) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the popovers used in the application.\n */\nclass NgbPopoverConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.autoClose = true;\n this.placement = 'auto';\n this.popperOptions = options => options;\n this.triggers = 'click';\n this.disablePopover = false;\n this.openDelay = 0;\n this.closeDelay = 0;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static {\n this.ɵfac = function NgbPopoverConfig_Factory(t) {\n return new (t || NgbPopoverConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbPopoverConfig,\n factory: NgbPopoverConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPopoverConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nlet nextId$1 = 0;\nclass NgbPopoverWindow {\n isTitleTemplate() {\n return this.title instanceof TemplateRef;\n }\n static {\n this.ɵfac = function NgbPopoverWindow_Factory(t) {\n return new (t || NgbPopoverWindow)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbPopoverWindow,\n selectors: [[\"ngb-popover-window\"]],\n hostAttrs: [\"role\", \"tooltip\", 2, \"position\", \"absolute\"],\n hostVars: 5,\n hostBindings: function NgbPopoverWindow_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵclassMap(\"popover\" + (ctx.popoverClass ? \" \" + ctx.popoverClass : \"\"));\n i0.ɵɵclassProp(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n title: \"title\",\n id: \"id\",\n popoverClass: \"popoverClass\",\n context: \"context\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 4,\n vars: 1,\n consts: [[\"data-popper-arrow\", \"\", 1, \"popover-arrow\"], [\"class\", \"popover-header\"], [1, \"popover-body\"], [1, \"popover-header\"], [\"simpleTitle\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgbPopoverWindow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"div\", 0);\n i0.ɵɵtemplate(1, NgbPopoverWindow_Conditional_1_Template, 4, 2, \"h3\", 1);\n i0.ɵɵelementStart(2, \"div\", 2);\n i0.ɵɵprojection(3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx.title ? 1 : -1);\n }\n },\n dependencies: [NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPopoverWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-popover-window',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"popover\" + (popoverClass ? \" \" + popoverClass : \"\")',\n '[class.fade]': 'animation',\n role: 'tooltip',\n '[id]': 'id',\n style: 'position: absolute;'\n },\n template: `\n\t\t
\n\t\t@if (title) {\n\t\t\t

\n\t\t\t\t{{ title }}\n\t\t\t\t\n\t\t\t

\n\t\t}\n\t\t
\n\t\t\t\n\t\t
\n\t`\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n title: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n popoverClass: [{\n type: Input\n }],\n context: [{\n type: Input\n }]\n });\n})();\n/**\n * A lightweight and extensible directive for fancy popover creation.\n */\nclass NgbPopover {\n constructor() {\n this._config = inject(NgbPopoverConfig);\n /**\n * If `true`, popover opening and closing will be animated.\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * Indicates whether the popover should be closed on `Escape` key and inside/outside clicks:\n *\n * * `true` - closes on both outside and inside clicks as well as `Escape` presses\n * * `false` - disables the autoClose feature (NB: triggers still apply)\n * * `\"inside\"` - closes on inside clicks as well as Escape presses\n * * `\"outside\"` - closes on outside clicks (sometimes also achievable through triggers)\n * as well as `Escape` presses\n *\n * @since 3.0.0\n */\n this.autoClose = this._config.autoClose;\n /**\n * The preferred placement of the popover, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"auto\"`.\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the popover.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * Specifies events that should trigger the tooltip.\n *\n * Supports a space separated list of event names.\n * For more details see the [triggers demo](#/components/popover/examples#triggers).\n */\n this.triggers = this._config.triggers;\n /**\n * A selector specifying the element the popover should be appended to.\n *\n * Currently only supports `body`.\n */\n this.container = this._config.container;\n /**\n * If `true`, popover is disabled and won't be displayed.\n *\n * @since 1.1.0\n */\n this.disablePopover = this._config.disablePopover;\n /**\n * An optional class applied to the popover window element.\n *\n * @since 2.2.0\n */\n this.popoverClass = this._config.popoverClass;\n /**\n * The opening delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n *\n * @since 4.1.0\n */\n this.openDelay = this._config.openDelay;\n /**\n * The closing delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n *\n * @since 4.1.0\n */\n this.closeDelay = this._config.closeDelay;\n /**\n * An event emitted when the popover opening animation has finished. Contains no payload.\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the popover closing animation has finished. Contains no payload.\n *\n * At this point popover is not in the DOM anymore.\n */\n this.hidden = new EventEmitter();\n this._nativeElement = inject(ElementRef).nativeElement;\n this._ngZone = inject(NgZone);\n this._document = inject(DOCUMENT);\n this._changeDetector = inject(ChangeDetectorRef);\n this._ngbPopoverWindowId = `ngb-popover-${nextId$1++}`;\n this._popupService = new PopupService(NgbPopoverWindow);\n this._windowRef = null;\n this._positioning = ngbPositioning();\n }\n /**\n * Opens the popover.\n *\n * This is considered to be a \"manual\" triggering.\n * The `context` is an optional value to be injected into the popover template when it is created.\n */\n open(context) {\n if (!this._windowRef && !this._isDisabled()) {\n // this type assertion is safe because otherwise _isDisabled would return true\n const {\n windowRef,\n transition$\n } = this._popupService.open(this.ngbPopover, context ?? this.popoverContext, this.animation);\n this._windowRef = windowRef;\n this._windowRef.setInput('animation', this.animation);\n this._windowRef.setInput('title', this.popoverTitle);\n this._windowRef.setInput('context', context ?? this.popoverContext);\n this._windowRef.setInput('popoverClass', this.popoverClass);\n this._windowRef.setInput('id', this._ngbPopoverWindowId);\n this._getPositionTargetElement().setAttribute('aria-describedby', this._ngbPopoverWindowId);\n if (this.container === 'body') {\n this._document.body.appendChild(this._windowRef.location.nativeElement);\n }\n // We need to detect changes, because we don't know where .open() might be called from.\n // Ex. opening popover from one of lifecycle hooks that run after the CD\n // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception\n this._windowRef.changeDetectorRef.detectChanges();\n // We need to mark for check, because popover won't work inside the OnPush component.\n // Ex. when we use expression like `{{ popover.isOpen() : 'opened' : 'closed' }}`\n // inside the template of an OnPush component and we change the popover from\n // open -> closed, the expression in question won't be updated unless we explicitly\n // mark the parent component to be checked.\n this._windowRef.changeDetectorRef.markForCheck();\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n this._positioning.createPopper({\n hostElement: this._getPositionTargetElement(),\n targetElement: this._windowRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n baseClass: 'bs-popover',\n updatePopperOptions: options => this.popperOptions(addPopperOffset([0, 8])(options))\n });\n Promise.resolve().then(() => {\n // This update is required for correct arrow placement\n this._positioning.update();\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n });\n });\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [this._windowRef.location.nativeElement]);\n transition$.subscribe(() => this.shown.emit());\n }\n }\n /**\n * Closes the popover.\n *\n * This is considered to be a \"manual\" triggering of the popover.\n */\n close(animation = this.animation) {\n if (this._windowRef) {\n this._getPositionTargetElement().removeAttribute('aria-describedby');\n this._popupService.close(animation).subscribe(() => {\n this._windowRef = null;\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this.hidden.emit();\n this._changeDetector.markForCheck();\n });\n }\n }\n /**\n * Toggles the popover.\n *\n * This is considered to be a \"manual\" triggering of the popover.\n */\n toggle() {\n if (this._windowRef) {\n this.close();\n } else {\n this.open();\n }\n }\n /**\n * Returns `true`, if the popover is currently shown.\n */\n isOpen() {\n return this._windowRef != null;\n }\n ngOnInit() {\n this._unregisterListenersFn = listenToTriggers(this._nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay);\n }\n ngOnChanges({\n ngbPopover,\n popoverTitle,\n disablePopover,\n popoverClass\n }) {\n if (popoverClass && this.isOpen()) {\n this._windowRef.setInput('popoverClass', popoverClass.currentValue);\n }\n // close popover if title and content become empty, or disablePopover set to true\n if ((ngbPopover || popoverTitle || disablePopover) && this._isDisabled()) {\n this.close();\n }\n }\n ngOnDestroy() {\n this.close(false);\n // This check is needed as it might happen that ngOnDestroy is called before ngOnInit\n // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199\n this._unregisterListenersFn?.();\n }\n _isDisabled() {\n return this.disablePopover ? true : !this.ngbPopover && !this.popoverTitle;\n }\n _getPositionTargetElement() {\n return (isString(this.positionTarget) ? this._document.querySelector(this.positionTarget) : this.positionTarget) || this._nativeElement;\n }\n static {\n this.ɵfac = function NgbPopover_Factory(t) {\n return new (t || NgbPopover)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbPopover,\n selectors: [[\"\", \"ngbPopover\", \"\"]],\n inputs: {\n animation: \"animation\",\n autoClose: \"autoClose\",\n ngbPopover: \"ngbPopover\",\n popoverTitle: \"popoverTitle\",\n placement: \"placement\",\n popperOptions: \"popperOptions\",\n triggers: \"triggers\",\n positionTarget: \"positionTarget\",\n container: \"container\",\n disablePopover: \"disablePopover\",\n popoverClass: \"popoverClass\",\n popoverContext: \"popoverContext\",\n openDelay: \"openDelay\",\n closeDelay: \"closeDelay\"\n },\n outputs: {\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbPopover\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPopover, [{\n type: Directive,\n args: [{\n selector: '[ngbPopover]',\n exportAs: 'ngbPopover',\n standalone: true\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n autoClose: [{\n type: Input\n }],\n ngbPopover: [{\n type: Input\n }],\n popoverTitle: [{\n type: Input\n }],\n placement: [{\n type: Input\n }],\n popperOptions: [{\n type: Input\n }],\n triggers: [{\n type: Input\n }],\n positionTarget: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n disablePopover: [{\n type: Input\n }],\n popoverClass: [{\n type: Input\n }],\n popoverContext: [{\n type: Input\n }],\n openDelay: [{\n type: Input\n }],\n closeDelay: [{\n type: Input\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }]\n });\n})();\nclass NgbPopoverModule {\n static {\n this.ɵfac = function NgbPopoverModule_Factory(t) {\n return new (t || NgbPopoverModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbPopoverModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbPopoverModule, [{\n type: NgModule,\n args: [{\n imports: [NgbPopover],\n exports: [NgbPopover]\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbProgressbar`](#/components/progressbar/api#NgbProgressbar) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the progress bars used in the application.\n */\nclass NgbProgressbarConfig {\n constructor() {\n this.max = 100;\n this.animated = false;\n this.ariaLabel = 'progress bar';\n this.striped = false;\n this.showValue = false;\n }\n static {\n this.ɵfac = function NgbProgressbarConfig_Factory(t) {\n return new (t || NgbProgressbarConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbProgressbarConfig,\n factory: NgbProgressbarConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbProgressbarConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A directive that provides feedback on the progress of a workflow or an action.\n */\nclass NgbProgressbar {\n /**\n * The maximal value to be displayed in the progress bar.\n *\n * Should be a positive number. Will default to 100 otherwise.\n */\n set max(max) {\n this._max = !isNumber(max) || max <= 0 ? 100 : max;\n }\n get max() {\n return this._max;\n }\n constructor() {\n this._config = inject(NgbProgressbarConfig);\n this.stacked = inject(NgbProgressbarStacked, {\n optional: true\n });\n /**\n * If `true`, the stripes on the progress bar are animated.\n *\n * Takes effect only for browsers supporting CSS3 animations, and if `striped` is `true`.\n */\n this.animated = this._config.animated;\n /**\n * The accessible progress bar name.\n *\n * @since 13.1.0\n */\n this.ariaLabel = this._config.ariaLabel;\n /**\n * If `true`, the progress bars will be displayed as striped.\n */\n this.striped = this._config.striped;\n /**\n * If `true`, the current percentage will be shown in the `xx%` format.\n */\n this.showValue = this._config.showValue;\n /**\n * Optional text variant type of the progress bar.\n *\n * Supports types based on Bootstrap background color variants, like:\n * `\"success\"`, `\"info\"`, `\"warning\"`, `\"danger\"`, `\"primary\"`, `\"secondary\"`, `\"dark\"` and so on.\n *\n * @since 5.2.0\n */\n this.textType = this._config.textType;\n /**\n * The type of the progress bar.\n *\n * Supports types based on Bootstrap background color variants, like:\n * `\"success\"`, `\"info\"`, `\"warning\"`, `\"danger\"`, `\"primary\"`, `\"secondary\"`, `\"dark\"` and so on.\n */\n this.type = this._config.type;\n /**\n * The current value for the progress bar.\n *\n * Should be in the `[0, max]` range.\n */\n this.value = 0;\n /**\n * The height of the progress bar.\n *\n * Accepts any valid CSS height values, ex. `\"2rem\"`\n */\n this.height = this._config.height;\n this.max = this._config.max;\n }\n getValue() {\n return getValueInRange(this.value, this.max);\n }\n getPercentValue() {\n return 100 * this.getValue() / this.max;\n }\n static {\n this.ɵfac = function NgbProgressbar_Factory(t) {\n return new (t || NgbProgressbar)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbProgressbar,\n selectors: [[\"ngb-progressbar\"]],\n hostAttrs: [\"role\", \"progressbar\", \"aria-valuemin\", \"0\", 1, \"progress\"],\n hostVars: 7,\n hostBindings: function NgbProgressbar_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuenow\", ctx.getValue())(\"aria-valuemax\", ctx.max)(\"aria-label\", ctx.ariaLabel);\n i0.ɵɵstyleProp(\"width\", ctx.stacked ? ctx.getPercentValue() : null, \"%\")(\"height\", ctx.height);\n }\n },\n inputs: {\n max: \"max\",\n animated: \"animated\",\n ariaLabel: \"ariaLabel\",\n striped: \"striped\",\n showValue: \"showValue\",\n textType: \"textType\",\n type: \"type\",\n value: \"value\",\n height: \"height\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 3,\n vars: 11,\n consts: () => {\n let i18n_20;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__11 = goog.getMsg(\"{$interpolation}\", {\n \"interpolation\": \"\\uFFFD0\\uFFFD\"\n }, {\n original_code: {\n \"interpolation\": \"{{ getValue() / max | percent }}\"\n }\n });\n i18n_20 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__11;\n } else {\n i18n_20 = $localize`:@@ngb.progressbar.value:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n }\n return [i18n_20];\n },\n template: function NgbProgressbar_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, NgbProgressbar_Conditional_1_Template, 3, 3, \"span\");\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵclassMapInterpolate2(\"progress-bar\", ctx.type ? ctx.textType ? \" bg-\" + ctx.type : \" text-bg-\" + ctx.type : \"\", \"\", ctx.textType ? \" text-\" + ctx.textType : \"\", \"\");\n i0.ɵɵstyleProp(\"width\", !ctx.stacked ? ctx.getPercentValue() : null, \"%\");\n i0.ɵɵclassProp(\"progress-bar-animated\", ctx.animated)(\"progress-bar-striped\", ctx.striped);\n i0.ɵɵadvance();\n i0.ɵɵconditional(1, ctx.showValue ? 1 : -1);\n }\n },\n dependencies: [PercentPipe],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbProgressbar, [{\n type: Component,\n args: [{\n selector: 'ngb-progressbar',\n standalone: true,\n imports: [PercentPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'progress',\n role: 'progressbar',\n '[attr.aria-valuenow]': 'getValue()',\n 'aria-valuemin': '0',\n '[attr.aria-valuemax]': 'max',\n '[attr.aria-label]': 'ariaLabel',\n '[style.width.%]': 'stacked ? getPercentValue() : null'\n },\n template: `\n\t\t\n\t\t\t@if (showValue) {\n\t\t\t\t{{ getValue() / max | percent }}\n\t\t\t}\n\t\t\t\n\t\t\n\t`\n }]\n }], () => [], {\n max: [{\n type: Input\n }],\n animated: [{\n type: Input\n }],\n ariaLabel: [{\n type: Input\n }],\n striped: [{\n type: Input\n }],\n showValue: [{\n type: Input\n }],\n textType: [{\n type: Input\n }],\n type: [{\n type: Input\n }],\n value: [{\n type: Input,\n args: [{\n required: true\n }]\n }],\n height: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['style.height']\n }]\n });\n})();\n/**\n * A directive that allow to stack progress bars.\n *\n * @since 16.0.0\n */\nclass NgbProgressbarStacked {\n static {\n this.ɵfac = function NgbProgressbarStacked_Factory(t) {\n return new (t || NgbProgressbarStacked)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbProgressbarStacked,\n selectors: [[\"ngb-progressbar-stacked\"]],\n hostAttrs: [1, \"progress-stacked\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function NgbProgressbarStacked_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbProgressbarStacked, [{\n type: Component,\n args: [{\n selector: 'ngb-progressbar-stacked',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'progress-stacked'\n },\n template: ``\n }]\n }], null, null);\n})();\nclass NgbProgressbarModule {\n static {\n this.ɵfac = function NgbProgressbarModule_Factory(t) {\n return new (t || NgbProgressbarModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbProgressbarModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbProgressbarModule, [{\n type: NgModule,\n args: [{\n imports: [NgbProgressbar, NgbProgressbarStacked],\n exports: [NgbProgressbar, NgbProgressbarStacked]\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbRating`](#/components/rating/api#NgbRating) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the ratings used in the application.\n */\nclass NgbRatingConfig {\n constructor() {\n this.max = 10;\n this.readonly = false;\n this.resettable = false;\n this.tabindex = 0;\n }\n static {\n this.ɵfac = function NgbRatingConfig_Factory(t) {\n return new (t || NgbRatingConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbRatingConfig,\n factory: NgbRatingConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbRatingConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A directive that helps visualising and interacting with a star rating bar.\n */\nclass NgbRating {\n constructor() {\n this.contexts = [];\n this._config = inject(NgbRatingConfig);\n this._changeDetectorRef = inject(ChangeDetectorRef);\n /**\n * If `true`, the rating can't be changed or focused.\n */\n this.disabled = false;\n /**\n * The maximal rating that can be given.\n */\n this.max = this._config.max;\n /**\n * If `true`, the rating can't be changed.\n */\n this.readonly = this._config.readonly;\n /**\n * If `true`, the rating can be reset to `0` by mouse clicking currently set rating.\n */\n this.resettable = this._config.resettable;\n /**\n * Allows setting a custom rating tabindex.\n * If the component is disabled, `tabindex` will still be set to `-1`.\n *\n * @since 13.1.0\n */\n this.tabindex = this._config.tabindex;\n /**\n * An event emitted when the user is hovering over a given rating.\n *\n * Event payload equals to the rating being hovered over.\n */\n this.hover = new EventEmitter();\n /**\n * An event emitted when the user stops hovering over a given rating.\n *\n * Event payload equals to the rating of the last item being hovered over.\n */\n this.leave = new EventEmitter();\n /**\n * An event emitted when the rating is changed.\n *\n * Event payload equals to the newly selected rating.\n */\n this.rateChange = new EventEmitter(true);\n this.onChange = _ => {};\n this.onTouched = () => {};\n }\n /**\n * Allows to provide a function to set a custom aria-valuetext\n *\n * @since 14.1.0\n */\n ariaValueText(current, max) {\n return `${current} out of ${max}`;\n }\n isInteractive() {\n return !this.readonly && !this.disabled;\n }\n enter(value) {\n if (this.isInteractive()) {\n this._updateState(value);\n }\n this.hover.emit(value);\n }\n handleBlur() {\n this.onTouched();\n }\n handleClick(value) {\n if (this.isInteractive()) {\n this.update(this.resettable && this.rate === value ? 0 : value);\n }\n }\n handleKeyDown(event) {\n /* eslint-disable-next-line deprecation/deprecation */\n switch (event.which) {\n case Key.ArrowDown:\n case Key.ArrowLeft:\n this.update(this.rate - 1);\n break;\n case Key.ArrowUp:\n case Key.ArrowRight:\n this.update(this.rate + 1);\n break;\n case Key.Home:\n this.update(0);\n break;\n case Key.End:\n this.update(this.max);\n break;\n default:\n return;\n }\n // note 'return' in default case\n event.preventDefault();\n }\n ngOnChanges(changes) {\n if (changes['rate']) {\n this.update(this.rate);\n }\n if (changes['max']) {\n this._updateMax();\n }\n }\n ngOnInit() {\n this._setupContexts();\n this._updateState(this.rate);\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n reset() {\n this.leave.emit(this.nextRate);\n this._updateState(this.rate);\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n update(value, internalChange = true) {\n const newRate = getValueInRange(value, this.max, 0);\n if (this.isInteractive() && this.rate !== newRate) {\n this.rate = newRate;\n this.rateChange.emit(this.rate);\n }\n if (internalChange) {\n this.onChange(this.rate);\n this.onTouched();\n }\n this._updateState(this.rate);\n }\n writeValue(value) {\n this.update(value, false);\n this._changeDetectorRef.markForCheck();\n }\n _updateState(nextValue) {\n this.nextRate = nextValue;\n this.contexts.forEach((context, index) => context.fill = Math.round(getValueInRange(nextValue - index, 1, 0) * 100));\n }\n _updateMax() {\n if (this.max > 0) {\n this._setupContexts();\n this.update(this.rate);\n }\n }\n _setupContexts() {\n this.contexts = Array.from({\n length: this.max\n }, (v, k) => ({\n fill: 0,\n index: k\n }));\n }\n static {\n this.ɵfac = function NgbRating_Factory(t) {\n return new (t || NgbRating)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbRating,\n selectors: [[\"ngb-rating\"]],\n contentQueries: function NgbRating_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.starTemplateFromContent = _t.first);\n }\n },\n hostAttrs: [\"role\", \"slider\", \"aria-valuemin\", \"0\", 1, \"d-inline-flex\"],\n hostVars: 6,\n hostBindings: function NgbRating_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"blur\", function NgbRating_blur_HostBindingHandler() {\n return ctx.handleBlur();\n })(\"keydown\", function NgbRating_keydown_HostBindingHandler($event) {\n return ctx.handleKeyDown($event);\n })(\"mouseleave\", function NgbRating_mouseleave_HostBindingHandler() {\n return ctx.reset();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"tabindex\", ctx.disabled ? -1 : ctx.tabindex);\n i0.ɵɵattribute(\"aria-valuemax\", ctx.max)(\"aria-valuenow\", ctx.nextRate)(\"aria-valuetext\", ctx.ariaValueText(ctx.nextRate, ctx.max))(\"aria-readonly\", ctx.readonly && !ctx.disabled ? true : null)(\"aria-disabled\", ctx.disabled ? true : null);\n }\n },\n inputs: {\n disabled: \"disabled\",\n max: \"max\",\n rate: \"rate\",\n readonly: \"readonly\",\n resettable: \"resettable\",\n starTemplate: \"starTemplate\",\n tabindex: \"tabindex\",\n ariaValueText: \"ariaValueText\"\n },\n outputs: {\n hover: \"hover\",\n leave: \"leave\",\n rateChange: \"rateChange\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbRating),\n multi: true\n }]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 4,\n vars: 0,\n consts: [[\"t\", \"\"], [1, \"visually-hidden\"], [3, \"mouseenter\", \"click\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgbRating_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbRating_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵrepeaterCreate(2, NgbRating_For_3_Template, 4, 5, null, null, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx.contexts);\n }\n },\n dependencies: [NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbRating, [{\n type: Component,\n args: [{\n selector: 'ngb-rating',\n standalone: true,\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'd-inline-flex',\n '[tabindex]': 'disabled ? -1 : tabindex',\n role: 'slider',\n 'aria-valuemin': '0',\n '[attr.aria-valuemax]': 'max',\n '[attr.aria-valuenow]': 'nextRate',\n '[attr.aria-valuetext]': 'ariaValueText(nextRate, max)',\n '[attr.aria-readonly]': 'readonly && !disabled ? true : null',\n '[attr.aria-disabled]': 'disabled ? true : null',\n '(blur)': 'handleBlur()',\n '(keydown)': 'handleKeyDown($event)',\n '(mouseleave)': 'reset()'\n },\n template: `\n\t\t{{ fill === 100 ? '★' : '☆' }}\n\t\t@for (_ of contexts; track _; let index = $index) {\n\t\t\t({{ index < nextRate ? '*' : ' ' }})\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t}\n\t`,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbRating),\n multi: true\n }]\n }]\n }], null, {\n disabled: [{\n type: Input\n }],\n max: [{\n type: Input\n }],\n rate: [{\n type: Input\n }],\n readonly: [{\n type: Input\n }],\n resettable: [{\n type: Input\n }],\n starTemplate: [{\n type: Input\n }],\n starTemplateFromContent: [{\n type: ContentChild,\n args: [TemplateRef, {\n static: false\n }]\n }],\n tabindex: [{\n type: Input\n }],\n ariaValueText: [{\n type: Input\n }],\n hover: [{\n type: Output\n }],\n leave: [{\n type: Output\n }],\n rateChange: [{\n type: Output\n }]\n });\n})();\nclass NgbRatingModule {\n static {\n this.ɵfac = function NgbRatingModule_Factory(t) {\n return new (t || NgbRatingModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbRatingModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbRatingModule, [{\n type: NgModule,\n args: [{\n imports: [NgbRating],\n exports: [NgbRating]\n }]\n }], null, null);\n})();\nfunction toFragmentElement(container, id) {\n if (!container || id == null) {\n return null;\n }\n return isString(id) ? container.querySelector(`#${CSS.escape(id)}`) : id;\n}\nfunction getOrderedFragments(container, fragments) {\n const selector = [...fragments].map(({\n id\n }) => `#${CSS.escape(id)}`).join(',');\n return Array.from(container.querySelectorAll(selector));\n}\nconst defaultProcessChanges = (state, changeActive, ctx) => {\n const {\n rootElement,\n fragments,\n scrollSpy,\n options,\n entries\n } = state;\n const orderedFragments = getOrderedFragments(rootElement, fragments);\n if (!ctx.initialized) {\n ctx.initialized = true;\n ctx.gapFragment = null;\n ctx.visibleFragments = new Set();\n // special case when one of the fragments was pre-selected\n const preSelectedFragment = toFragmentElement(rootElement, options?.initialFragment);\n if (preSelectedFragment) {\n scrollSpy.scrollTo(preSelectedFragment);\n return;\n }\n }\n for (const entry of entries) {\n const {\n isIntersecting,\n target: fragment\n } = entry;\n // 1. an entry became visible\n if (isIntersecting) {\n // if we were in-between two elements, we have to clear it up\n if (ctx.gapFragment) {\n ctx.visibleFragments.delete(ctx.gapFragment);\n ctx.gapFragment = null;\n }\n ctx.visibleFragments.add(fragment);\n }\n // 2. an entry became invisible\n else {\n ctx.visibleFragments.delete(fragment);\n // nothing is visible anymore, but something just was actually\n if (ctx.visibleFragments.size === 0 && scrollSpy.active !== '') {\n // 2.1 scrolling down - keeping the same element\n if (entry.boundingClientRect.top < entry.rootBounds.top) {\n ctx.gapFragment = fragment;\n ctx.visibleFragments.add(ctx.gapFragment);\n }\n // 2.2 scrolling up - getting the previous element\n else {\n // scrolling up and no more fragments above\n if (fragment === orderedFragments[0]) {\n ctx.gapFragment = null;\n ctx.visibleFragments.clear();\n changeActive('');\n return;\n }\n // getting previous fragment\n else {\n const fragmentIndex = orderedFragments.indexOf(fragment);\n ctx.gapFragment = orderedFragments[fragmentIndex - 1] || null;\n if (ctx.gapFragment) {\n ctx.visibleFragments.add(ctx.gapFragment);\n }\n }\n }\n }\n }\n }\n // getting the first visible element in the DOM order of the fragments\n for (const fragment of orderedFragments) {\n if (ctx.visibleFragments.has(fragment)) {\n changeActive(fragment.id);\n break;\n }\n }\n};\n\n/**\n * A configuration service for the [`NgbScrollSpyService`](#/components/scrollspy/api#NgbScrollSpyService).\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all scrollspies used in the application.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyConfig {\n constructor() {\n this.scrollBehavior = 'smooth';\n this.processChanges = defaultProcessChanges;\n }\n static {\n this.ɵfac = function NgbScrollSpyConfig_Factory(t) {\n return new (t || NgbScrollSpyConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbScrollSpyConfig,\n factory: NgbScrollSpyConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpyConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nconst MATCH_THRESHOLD = 3;\n/**\n * A scrollspy service that allows tracking of elements scrolling in and out of view.\n *\n * It can be instantiated manually, or automatically by the `ngbScrollSpy` directive.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyService {\n constructor() {\n this._observer = null;\n this._containerElement = null;\n this._fragments = new Set();\n this._preRegisteredFragments = new Set();\n this._active$ = new Subject();\n this._distinctActive$ = this._active$.pipe(distinctUntilChanged());\n this._active = '';\n this._config = inject(NgbScrollSpyConfig);\n this._document = inject(DOCUMENT);\n this._platformId = inject(PLATFORM_ID);\n this._scrollBehavior = this._config.scrollBehavior;\n this._diChangeDetectorRef = inject(ChangeDetectorRef, {\n optional: true\n });\n this._changeDetectorRef = this._diChangeDetectorRef;\n this._zone = inject(NgZone);\n this._distinctActive$.pipe(takeUntilDestroyed()).subscribe(active => {\n this._active = active;\n this._changeDetectorRef?.markForCheck();\n });\n }\n /**\n * Getter for the currently active fragment id. Returns empty string if none.\n */\n get active() {\n return this._active;\n }\n /**\n * An observable emitting the currently active fragment. Emits empty string if none.\n */\n get active$() {\n return this._distinctActive$;\n }\n /**\n * Starts the scrollspy service and observes specified fragments.\n *\n * You can specify a list of options to pass, like the root element, initial fragment, scroll behavior, etc.\n * See the [`NgbScrollSpyOptions`](#/components/scrollspy/api#NgbScrollSpyOptions) interface for more details.\n */\n start(options) {\n if (isPlatformBrowser(this._platformId)) {\n this._cleanup();\n const {\n root,\n rootMargin,\n scrollBehavior,\n threshold,\n fragments,\n changeDetectorRef,\n processChanges\n } = {\n ...options\n };\n this._containerElement = root ?? this._document.documentElement;\n this._changeDetectorRef = changeDetectorRef ?? this._diChangeDetectorRef;\n this._scrollBehavior = scrollBehavior ?? this._config.scrollBehavior;\n const processChangesFn = processChanges ?? this._config.processChanges;\n const context = {};\n this._observer = new IntersectionObserver(entries => processChangesFn({\n entries,\n rootElement: this._containerElement,\n fragments: this._fragments,\n scrollSpy: this,\n options: {\n ...options\n }\n }, active => this._active$.next(active), context), {\n root: root ?? this._document,\n ...(rootMargin && {\n rootMargin\n }),\n ...(threshold && {\n threshold\n })\n });\n // merging fragments added before starting and the ones passed as options\n for (const element of [...this._preRegisteredFragments, ...(fragments ?? [])]) {\n this.observe(element);\n }\n this._preRegisteredFragments.clear();\n }\n }\n /**\n * Stops the service and unobserves all fragments.\n */\n stop() {\n this._cleanup();\n this._active$.next('');\n }\n /**\n * Scrolls to a fragment, it must be known to the service and contained in the root element.\n * An id or an element reference can be passed.\n *\n * [`NgbScrollToOptions`](#/components/scrollspy/api#NgbScrollToOptions) can be passed.\n */\n scrollTo(fragment, options) {\n const {\n behavior\n } = {\n behavior: this._scrollBehavior,\n ...options\n };\n if (this._containerElement) {\n const fragmentElement = toFragmentElement(this._containerElement, fragment);\n if (fragmentElement) {\n const heightPx = fragmentElement.offsetTop - this._containerElement.offsetTop;\n this._containerElement.scrollTo({\n top: heightPx,\n behavior\n });\n let lastOffset = this._containerElement.scrollTop;\n let matchCounter = 0;\n // we should update the active section only after scrolling is finished\n // and there is no clean way to do it at the moment\n const containerElement = this._containerElement;\n this._zone.runOutsideAngular(() => {\n const updateActiveWhenScrollingIsFinished = () => {\n const sameOffsetAsLastTime = lastOffset === containerElement.scrollTop;\n if (sameOffsetAsLastTime) {\n matchCounter++;\n } else {\n matchCounter = 0;\n }\n if (!sameOffsetAsLastTime || sameOffsetAsLastTime && matchCounter < MATCH_THRESHOLD) {\n lastOffset = containerElement.scrollTop;\n requestAnimationFrame(updateActiveWhenScrollingIsFinished);\n } else {\n this._zone.run(() => this._active$.next(fragmentElement.id));\n }\n };\n requestAnimationFrame(updateActiveWhenScrollingIsFinished);\n });\n }\n }\n }\n /**\n * Adds a fragment to observe. It must be contained in the root element.\n * An id or an element reference can be passed.\n */\n observe(fragment) {\n if (!this._observer) {\n this._preRegisteredFragments.add(fragment);\n return;\n }\n const fragmentElement = toFragmentElement(this._containerElement, fragment);\n if (fragmentElement && !this._fragments.has(fragmentElement)) {\n this._fragments.add(fragmentElement);\n this._observer.observe(fragmentElement);\n }\n }\n /**\n * Unobserves a fragment.\n * An id or an element reference can be passed.\n */\n unobserve(fragment) {\n if (!this._observer) {\n this._preRegisteredFragments.delete(fragment);\n return;\n }\n const fragmentElement = toFragmentElement(this._containerElement, fragment);\n if (fragmentElement) {\n this._fragments.delete(fragmentElement);\n // we're removing and re-adding all current fragments to recompute active one\n this._observer.disconnect();\n for (const fragment of this._fragments) {\n this._observer.observe(fragment);\n }\n }\n }\n ngOnDestroy() {\n this._cleanup();\n }\n _cleanup() {\n this._fragments.clear();\n this._observer?.disconnect();\n this._changeDetectorRef = this._diChangeDetectorRef;\n this._scrollBehavior = this._config.scrollBehavior;\n this._observer = null;\n this._containerElement = null;\n }\n static {\n this.ɵfac = function NgbScrollSpyService_Factory(t) {\n return new (t || NgbScrollSpyService)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbScrollSpyService,\n factory: NgbScrollSpyService.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpyService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [], null);\n})();\n\n/**\n * A helper directive to that links menu items and fragments together.\n *\n * It will automatically add the `.active` class to the menu item when the associated fragment becomes active.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyItem {\n constructor() {\n this._changeDetector = inject(ChangeDetectorRef);\n this._scrollSpyMenu = inject(NgbScrollSpyMenu, {\n optional: true\n });\n this._scrollSpyAPI = this._scrollSpyMenu ?? inject(NgbScrollSpyService);\n this._destroyRef = inject(DestroyRef);\n this._isActive = false;\n }\n /**\n * References the scroll spy directive, the id of the associated fragment and the parent menu item.\n *\n * Can be used like:\n * - `ngbScrollSpyItem=\"fragmentId\"`\n * - `[ngbScrollSpyItem]=\"scrollSpy\" fragment=\"fragmentId\"\n * - `[ngbScrollSpyItem]=\"[scrollSpy, 'fragmentId']\"` parent=\"parentId\"`\n * - `[ngbScrollSpyItem]=\"[scrollSpy, 'fragmentId', 'parentId']\"`\n *\n * As well as together with `[fragment]` and `[parent]` inputs.\n */\n set data(data) {\n if (Array.isArray(data)) {\n this._scrollSpyAPI = data[0];\n this.fragment = data[1];\n this.parent ??= data[2];\n } else if (data instanceof NgbScrollSpy) {\n this._scrollSpyAPI = data;\n } else if (isString(data)) {\n this.fragment = data;\n }\n }\n ngOnInit() {\n // if it is not a part of a bigger menu, it should handle activation itself\n if (!this._scrollSpyMenu) {\n this._scrollSpyAPI.active$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(active => {\n if (active === this.fragment) {\n this._activate();\n } else {\n this._deactivate();\n }\n this._changeDetector.markForCheck();\n });\n }\n }\n /**\n * @internal\n */\n _activate() {\n this._isActive = true;\n if (this._scrollSpyMenu) {\n this._scrollSpyMenu.getItem(this.parent ?? '')?._activate();\n }\n }\n /**\n * @internal\n */\n _deactivate() {\n this._isActive = false;\n if (this._scrollSpyMenu) {\n this._scrollSpyMenu.getItem(this.parent ?? '')?._deactivate();\n }\n }\n /**\n * Returns `true`, if the associated fragment is active.\n */\n isActive() {\n return this._isActive;\n }\n /**\n * Scrolls to the associated fragment.\n */\n scrollTo(options) {\n this._scrollSpyAPI.scrollTo(this.fragment, options);\n }\n static {\n this.ɵfac = function NgbScrollSpyItem_Factory(t) {\n return new (t || NgbScrollSpyItem)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbScrollSpyItem,\n selectors: [[\"\", \"ngbScrollSpyItem\", \"\"]],\n hostVars: 2,\n hostBindings: function NgbScrollSpyItem_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function NgbScrollSpyItem_click_HostBindingHandler() {\n return ctx.scrollTo();\n });\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"active\", ctx.isActive());\n }\n },\n inputs: {\n data: [i0.ɵɵInputFlags.None, \"ngbScrollSpyItem\", \"data\"],\n fragment: \"fragment\",\n parent: \"parent\"\n },\n exportAs: [\"ngbScrollSpyItem\"],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpyItem, [{\n type: Directive,\n args: [{\n selector: '[ngbScrollSpyItem]',\n standalone: true,\n exportAs: 'ngbScrollSpyItem',\n host: {\n '[class.active]': 'isActive()',\n '(click)': 'scrollTo();'\n }\n }]\n }], null, {\n data: [{\n type: Input,\n args: ['ngbScrollSpyItem']\n }],\n fragment: [{\n type: Input\n }],\n parent: [{\n type: Input\n }]\n });\n})();\n/**\n * An optional scroll spy menu directive to build hierarchical menus\n * and simplify the [`NgbScrollSpyItem`](#/components/scrollspy/api#NgbScrollSpyItem) configuration.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyMenu {\n constructor() {\n this._scrollSpyRef = inject(NgbScrollSpyService);\n this._destroyRef = inject(DestroyRef);\n this._map = new Map();\n this._lastActiveItem = null;\n }\n set scrollSpy(scrollSpy) {\n this._scrollSpyRef = scrollSpy;\n }\n get active() {\n return this._scrollSpyRef.active;\n }\n get active$() {\n return this._scrollSpyRef.active$;\n }\n scrollTo(fragment, options) {\n this._scrollSpyRef.scrollTo(fragment, options);\n }\n getItem(id) {\n return this._map.get(id);\n }\n ngAfterViewInit() {\n this._items.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => this._rebuildMap());\n this._rebuildMap();\n this._scrollSpyRef.active$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(activeId => {\n this._lastActiveItem?._deactivate();\n const item = this._map.get(activeId);\n if (item) {\n item._activate();\n this._lastActiveItem = item;\n }\n });\n }\n _rebuildMap() {\n this._map.clear();\n for (let item of this._items) {\n this._map.set(item.fragment, item);\n }\n }\n static {\n this.ɵfac = function NgbScrollSpyMenu_Factory(t) {\n return new (t || NgbScrollSpyMenu)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbScrollSpyMenu,\n selectors: [[\"\", \"ngbScrollSpyMenu\", \"\"]],\n contentQueries: function NgbScrollSpyMenu_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbScrollSpyItem, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._items = _t);\n }\n },\n inputs: {\n scrollSpy: [i0.ɵɵInputFlags.None, \"ngbScrollSpyMenu\", \"scrollSpy\"]\n },\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpyMenu, [{\n type: Directive,\n args: [{\n selector: '[ngbScrollSpyMenu]',\n standalone: true\n }]\n }], null, {\n _items: [{\n type: ContentChildren,\n args: [NgbScrollSpyItem, {\n descendants: true\n }]\n }],\n scrollSpy: [{\n type: Input,\n args: ['ngbScrollSpyMenu']\n }]\n });\n})();\n/**\n * A directive to put on a scrollable container.\n *\n * It will instantiate a [`NgbScrollSpyService`](#/components/scrollspy/api#NgbScrollSpyService).\n *\n * @since 15.1.0\n */\nclass NgbScrollSpy {\n constructor() {\n this._initialFragment = null;\n this._service = inject(NgbScrollSpyService);\n this._nativeElement = inject(ElementRef).nativeElement;\n /**\n * An event raised when the active section changes.\n *\n * Payload is the id of the new active section, empty string if none.\n */\n this.activeChange = this._service.active$;\n }\n set active(fragment) {\n this._initialFragment = fragment;\n this.scrollTo(fragment);\n }\n /**\n * Getter/setter for the currently active fragment id.\n */\n get active() {\n return this._service.active;\n }\n /**\n * Returns an observable that emits currently active section id.\n */\n get active$() {\n return this._service.active$;\n }\n ngAfterViewInit() {\n this._service.start({\n processChanges: this.processChanges,\n root: this._nativeElement,\n rootMargin: this.rootMargin,\n threshold: this.threshold,\n ...(this._initialFragment && {\n initialFragment: this._initialFragment\n })\n });\n }\n /**\n * @internal\n */\n _registerFragment(fragment) {\n this._service.observe(fragment.id);\n }\n /**\n * @internal\n */\n _unregisterFragment(fragment) {\n this._service.unobserve(fragment.id);\n }\n /**\n * Scrolls to a fragment that is identified by the `ngbScrollSpyFragment` directive.\n * An id or an element reference can be passed.\n */\n scrollTo(fragment, options) {\n this._service.scrollTo(fragment, {\n ...(this.scrollBehavior && {\n behavior: this.scrollBehavior\n }),\n ...options\n });\n }\n static {\n this.ɵfac = function NgbScrollSpy_Factory(t) {\n return new (t || NgbScrollSpy)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbScrollSpy,\n selectors: [[\"\", \"ngbScrollSpy\", \"\"]],\n hostAttrs: [\"tabindex\", \"0\", 2, \"overflow-y\", \"auto\"],\n inputs: {\n processChanges: \"processChanges\",\n rootMargin: \"rootMargin\",\n scrollBehavior: \"scrollBehavior\",\n threshold: \"threshold\",\n active: \"active\"\n },\n outputs: {\n activeChange: \"activeChange\"\n },\n exportAs: [\"ngbScrollSpy\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([NgbScrollSpyService])]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpy, [{\n type: Directive,\n args: [{\n selector: '[ngbScrollSpy]',\n standalone: true,\n exportAs: 'ngbScrollSpy',\n host: {\n tabindex: '0',\n style: 'overflow-y: auto'\n },\n providers: [NgbScrollSpyService]\n }]\n }], null, {\n processChanges: [{\n type: Input\n }],\n rootMargin: [{\n type: Input\n }],\n scrollBehavior: [{\n type: Input\n }],\n threshold: [{\n type: Input\n }],\n active: [{\n type: Input\n }],\n activeChange: [{\n type: Output\n }]\n });\n})();\n/**\n * A directive to put on a fragment observed inside a scrollspy container.\n *\n * @since 15.1.0\n */\nclass NgbScrollSpyFragment {\n constructor() {\n this._destroyRef = inject(DestroyRef);\n this._scrollSpy = inject(NgbScrollSpy);\n }\n ngAfterViewInit() {\n this._scrollSpy._registerFragment(this);\n this._destroyRef.onDestroy(() => this._scrollSpy._unregisterFragment(this));\n }\n static {\n this.ɵfac = function NgbScrollSpyFragment_Factory(t) {\n return new (t || NgbScrollSpyFragment)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbScrollSpyFragment,\n selectors: [[\"\", \"ngbScrollSpyFragment\", \"\"]],\n hostVars: 1,\n hostBindings: function NgbScrollSpyFragment_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n }\n },\n inputs: {\n id: [i0.ɵɵInputFlags.None, \"ngbScrollSpyFragment\", \"id\"]\n },\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpyFragment, [{\n type: Directive,\n args: [{\n selector: '[ngbScrollSpyFragment]',\n standalone: true,\n host: {\n '[id]': 'id'\n }\n }]\n }], null, {\n id: [{\n type: Input,\n args: ['ngbScrollSpyFragment']\n }]\n });\n})();\nclass NgbScrollSpyModule {\n static {\n this.ɵfac = function NgbScrollSpyModule_Factory(t) {\n return new (t || NgbScrollSpyModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbScrollSpyModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbScrollSpyModule, [{\n type: NgModule,\n args: [{\n imports: [NgbScrollSpy, NgbScrollSpyItem, NgbScrollSpyFragment, NgbScrollSpyMenu],\n exports: [NgbScrollSpy, NgbScrollSpyItem, NgbScrollSpyFragment, NgbScrollSpyMenu]\n }]\n }], null, null);\n})();\nclass NgbTime {\n constructor(hour, minute, second) {\n this.hour = toInteger(hour);\n this.minute = toInteger(minute);\n this.second = toInteger(second);\n }\n changeHour(step = 1) {\n this.updateHour((isNaN(this.hour) ? 0 : this.hour) + step);\n }\n updateHour(hour) {\n if (isNumber(hour)) {\n this.hour = (hour < 0 ? 24 + hour : hour) % 24;\n } else {\n this.hour = NaN;\n }\n }\n changeMinute(step = 1) {\n this.updateMinute((isNaN(this.minute) ? 0 : this.minute) + step);\n }\n updateMinute(minute) {\n if (isNumber(minute)) {\n this.minute = minute % 60 < 0 ? 60 + minute % 60 : minute % 60;\n this.changeHour(Math.floor(minute / 60));\n } else {\n this.minute = NaN;\n }\n }\n changeSecond(step = 1) {\n this.updateSecond((isNaN(this.second) ? 0 : this.second) + step);\n }\n updateSecond(second) {\n if (isNumber(second)) {\n this.second = second < 0 ? 60 + second % 60 : second % 60;\n this.changeMinute(Math.floor(second / 60));\n } else {\n this.second = NaN;\n }\n }\n isValid(checkSecs = true) {\n return isNumber(this.hour) && isNumber(this.minute) && (checkSecs ? isNumber(this.second) : true);\n }\n toString() {\n return `${this.hour || 0}:${this.minute || 0}:${this.second || 0}`;\n }\n}\n\n/**\n * A configuration service for the [`NgbTimepicker`](#/components/timepicker/api#NgbTimepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the timepickers used in the application.\n */\nclass NgbTimepickerConfig {\n constructor() {\n this.meridian = false;\n this.spinners = true;\n this.seconds = false;\n this.hourStep = 1;\n this.minuteStep = 1;\n this.secondStep = 1;\n this.disabled = false;\n this.readonlyInputs = false;\n this.size = 'medium';\n }\n static {\n this.ɵfac = function NgbTimepickerConfig_Factory(t) {\n return new (t || NgbTimepickerConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTimepickerConfig,\n factory: NgbTimepickerConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimepickerConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nfunction NGB_DATEPICKER_TIME_ADAPTER_FACTORY() {\n return new NgbTimeStructAdapter();\n}\n/**\n * An abstract service that does the conversion between the internal timepicker `NgbTimeStruct` model and\n * any provided user time model `T`, ex. a string, a native date, etc.\n *\n * The adapter is used **only** for conversion when binding timepicker to a form control,\n * ex. `[(ngModel)]=\"userTimeModel\"`. Here `userTimeModel` can be of any type.\n *\n * The default timepicker implementation assumes we use `NgbTimeStruct` as a user model.\n *\n * See the [custom time adapter demo](#/components/timepicker/examples#adapter) for an example.\n *\n * @since 2.2.0\n */\nclass NgbTimeAdapter {\n static {\n this.ɵfac = function NgbTimeAdapter_Factory(t) {\n return new (t || NgbTimeAdapter)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTimeAdapter,\n factory: () => NGB_DATEPICKER_TIME_ADAPTER_FACTORY(),\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimeAdapter, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY\n }]\n }], null, null);\n})();\nclass NgbTimeStructAdapter extends NgbTimeAdapter {\n /**\n * Converts a NgbTimeStruct value into NgbTimeStruct value\n */\n fromModel(time) {\n return time && isInteger(time.hour) && isInteger(time.minute) ? {\n hour: time.hour,\n minute: time.minute,\n second: isInteger(time.second) ? time.second : null\n } : null;\n }\n /**\n * Converts a NgbTimeStruct value into NgbTimeStruct value\n */\n toModel(time) {\n return time && isInteger(time.hour) && isInteger(time.minute) ? {\n hour: time.hour,\n minute: time.minute,\n second: isInteger(time.second) ? time.second : null\n } : null;\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbTimeStructAdapter_BaseFactory;\n return function NgbTimeStructAdapter_Factory(t) {\n return (ɵNgbTimeStructAdapter_BaseFactory || (ɵNgbTimeStructAdapter_BaseFactory = i0.ɵɵgetInheritedFactory(NgbTimeStructAdapter)))(t || NgbTimeStructAdapter);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTimeStructAdapter,\n factory: NgbTimeStructAdapter.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimeStructAdapter, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * Type of the service supplying day periods (for example, 'AM' and 'PM') to NgbTimepicker component.\n * The default implementation of this service honors the Angular locale, and uses the registered locale data,\n * as explained in the Angular i18n guide.\n */\nclass NgbTimepickerI18n {\n static {\n this.ɵfac = function NgbTimepickerI18n_Factory(t) {\n return new (t || NgbTimepickerI18n)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTimepickerI18n,\n factory: () => (() => new NgbTimepickerI18nDefault())(),\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimepickerI18n, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: () => new NgbTimepickerI18nDefault()\n }]\n }], null, null);\n})();\nclass NgbTimepickerI18nDefault extends NgbTimepickerI18n {\n constructor() {\n super(...arguments);\n this._periods = getLocaleDayPeriods(inject(LOCALE_ID), FormStyle.Standalone, TranslationWidth.Narrow);\n }\n getMorningPeriod() {\n return this._periods[0];\n }\n getAfternoonPeriod() {\n return this._periods[1];\n }\n static {\n this.ɵfac = /* @__PURE__ */(() => {\n let ɵNgbTimepickerI18nDefault_BaseFactory;\n return function NgbTimepickerI18nDefault_Factory(t) {\n return (ɵNgbTimepickerI18nDefault_BaseFactory || (ɵNgbTimepickerI18nDefault_BaseFactory = i0.ɵɵgetInheritedFactory(NgbTimepickerI18nDefault)))(t || NgbTimepickerI18nDefault);\n };\n })();\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTimepickerI18nDefault,\n factory: NgbTimepickerI18nDefault.ɵfac\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimepickerI18nDefault, [{\n type: Injectable\n }], null, null);\n})();\nconst FILTER_REGEX = /[^0-9]/g;\n/**\n * A directive that helps with wth picking hours, minutes and seconds.\n */\nclass NgbTimepicker {\n /**\n * The number of hours to add/subtract when clicking hour spinners.\n */\n set hourStep(step) {\n this._hourStep = isInteger(step) ? step : this._config.hourStep;\n }\n get hourStep() {\n return this._hourStep;\n }\n /**\n * The number of minutes to add/subtract when clicking minute spinners.\n */\n set minuteStep(step) {\n this._minuteStep = isInteger(step) ? step : this._config.minuteStep;\n }\n get minuteStep() {\n return this._minuteStep;\n }\n /**\n * The number of seconds to add/subtract when clicking second spinners.\n */\n set secondStep(step) {\n this._secondStep = isInteger(step) ? step : this._config.secondStep;\n }\n get secondStep() {\n return this._secondStep;\n }\n constructor(_config, _ngbTimeAdapter, _cd, i18n) {\n this._config = _config;\n this._ngbTimeAdapter = _ngbTimeAdapter;\n this._cd = _cd;\n this.i18n = i18n;\n this.onChange = _ => {};\n this.onTouched = () => {};\n this.meridian = _config.meridian;\n this.spinners = _config.spinners;\n this.seconds = _config.seconds;\n this.hourStep = _config.hourStep;\n this.minuteStep = _config.minuteStep;\n this.secondStep = _config.secondStep;\n this.disabled = _config.disabled;\n this.readonlyInputs = _config.readonlyInputs;\n this.size = _config.size;\n }\n writeValue(value) {\n const structValue = this._ngbTimeAdapter.fromModel(value);\n this.model = structValue ? new NgbTime(structValue.hour, structValue.minute, structValue.second) : new NgbTime();\n if (!this.seconds && (!structValue || !isNumber(structValue.second))) {\n this.model.second = 0;\n }\n this._cd.markForCheck();\n }\n registerOnChange(fn) {\n this.onChange = fn;\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n /**\n * Increments the hours by the given step.\n */\n changeHour(step) {\n this.model?.changeHour(step);\n this.propagateModelChange();\n }\n /**\n * Increments the minutes by the given step.\n */\n changeMinute(step) {\n this.model?.changeMinute(step);\n this.propagateModelChange();\n }\n /**\n * Increments the seconds by the given step.\n */\n changeSecond(step) {\n this.model?.changeSecond(step);\n this.propagateModelChange();\n }\n /**\n * Update hours with the new value.\n */\n updateHour(newVal) {\n const isPM = this.model ? this.model.hour >= 12 : false;\n const enteredHour = toInteger(newVal);\n if (this.meridian && (isPM && enteredHour < 12 || !isPM && enteredHour === 12)) {\n this.model?.updateHour(enteredHour + 12);\n } else {\n this.model?.updateHour(enteredHour);\n }\n this.propagateModelChange();\n }\n /**\n * Update minutes with the new value.\n */\n updateMinute(newVal) {\n this.model?.updateMinute(toInteger(newVal));\n this.propagateModelChange();\n }\n /**\n * Update seconds with the new value.\n */\n updateSecond(newVal) {\n this.model?.updateSecond(toInteger(newVal));\n this.propagateModelChange();\n }\n toggleMeridian() {\n if (this.meridian) {\n this.changeHour(12);\n }\n }\n formatInput(input) {\n input.value = input.value.replace(FILTER_REGEX, '');\n }\n formatHour(value) {\n if (isNumber(value)) {\n if (this.meridian) {\n return padNumber(value % 12 === 0 ? 12 : value % 12);\n } else {\n return padNumber(value % 24);\n }\n } else {\n return padNumber(NaN);\n }\n }\n formatMinSec(value) {\n return padNumber(isNumber(value) ? value : NaN);\n }\n handleBlur() {\n this.onTouched();\n }\n get isSmallSize() {\n return this.size === 'small';\n }\n get isLargeSize() {\n return this.size === 'large';\n }\n ngOnChanges(changes) {\n if (changes['seconds'] && !this.seconds && this.model && !isNumber(this.model.second)) {\n this.model.second = 0;\n this.propagateModelChange(false);\n }\n }\n propagateModelChange(touched = true) {\n if (touched) {\n this.onTouched();\n }\n if (this.model?.isValid(this.seconds)) {\n this.onChange(this._ngbTimeAdapter.toModel({\n hour: this.model.hour,\n minute: this.model.minute,\n second: this.model.second\n }));\n } else {\n this.onChange(this._ngbTimeAdapter.toModel(null));\n }\n }\n static {\n this.ɵfac = function NgbTimepicker_Factory(t) {\n return new (t || NgbTimepicker)(i0.ɵɵdirectiveInject(NgbTimepickerConfig), i0.ɵɵdirectiveInject(NgbTimeAdapter), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(NgbTimepickerI18n));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbTimepicker,\n selectors: [[\"ngb-timepicker\"]],\n inputs: {\n meridian: \"meridian\",\n spinners: \"spinners\",\n seconds: \"seconds\",\n hourStep: \"hourStep\",\n minuteStep: \"minuteStep\",\n secondStep: \"secondStep\",\n readonlyInputs: \"readonlyInputs\",\n size: \"size\"\n },\n exportAs: [\"ngbTimepicker\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbTimepicker),\n multi: true\n }]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 14,\n vars: 23,\n consts: () => {\n let i18n_21;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_9 = goog.getMsg(\"HH\");\n i18n_21 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_9;\n } else {\n i18n_21 = $localize`:@@ngb.timepicker.HH:HH`;\n }\n let i18n_22;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_10 = goog.getMsg(\"Hours\");\n i18n_22 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_10;\n } else {\n i18n_22 = $localize`:@@ngb.timepicker.hours:Hours`;\n }\n let i18n_23;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_11 = goog.getMsg(\"MM\");\n i18n_23 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_11;\n } else {\n i18n_23 = $localize`:@@ngb.timepicker.MM:MM`;\n }\n let i18n_24;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_12 = goog.getMsg(\"Minutes\");\n i18n_24 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS_12;\n } else {\n i18n_24 = $localize`:@@ngb.timepicker.minutes:Minutes`;\n }\n let i18n_25;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__12 = goog.getMsg(\"Increment hours\");\n i18n_25 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__12;\n } else {\n i18n_25 = $localize`:@@ngb.timepicker.increment-hours:Increment hours`;\n }\n let i18n_26;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__13 = goog.getMsg(\"Decrement hours\");\n i18n_26 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__13;\n } else {\n i18n_26 = $localize`:@@ngb.timepicker.decrement-hours:Decrement hours`;\n }\n let i18n_27;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__14 = goog.getMsg(\"Increment minutes\");\n i18n_27 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__14;\n } else {\n i18n_27 = $localize`:@@ngb.timepicker.increment-minutes:Increment minutes`;\n }\n let i18n_28;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__15 = goog.getMsg(\"Decrement minutes\");\n i18n_28 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__15;\n } else {\n i18n_28 = $localize`:@@ngb.timepicker.decrement-minutes:Decrement minutes`;\n }\n let i18n_29;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__16 = goog.getMsg(\"SS\");\n i18n_29 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__16;\n } else {\n i18n_29 = $localize`:@@ngb.timepicker.SS:SS`;\n }\n let i18n_30;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__17 = goog.getMsg(\"Seconds\");\n i18n_30 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__17;\n } else {\n i18n_30 = $localize`:@@ngb.timepicker.seconds:Seconds`;\n }\n let i18n_31;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS___0 = goog.getMsg(\"Increment seconds\");\n i18n_31 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS___0;\n } else {\n i18n_31 = $localize`:@@ngb.timepicker.increment-seconds:Increment seconds`;\n }\n let i18n_32;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS___1 = goog.getMsg(\"Decrement seconds\");\n i18n_32 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS___1;\n } else {\n i18n_32 = $localize`:@@ngb.timepicker.decrement-seconds:Decrement seconds`;\n }\n let i18n_33;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS___2 = goog.getMsg(\"{$interpolation}\", {\n \"interpolation\": \"\\uFFFD0\\uFFFD\"\n }, {\n original_code: {\n \"interpolation\": \"{{ i18n.getAfternoonPeriod() }}\"\n }\n });\n i18n_33 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS___2;\n } else {\n i18n_33 = $localize`:@@ngb.timepicker.PM:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:`;\n }\n return [[3, \"disabled\"], [1, \"ngb-tp\"], [1, \"ngb-tp-input-container\", \"ngb-tp-hour\"], [\"tabindex\", \"-1\", \"type\", \"button\", \"class\", \"btn btn-link\", 3, \"btn-sm\", \"btn-lg\", \"disabled\"], [\"type\", \"text\", \"maxlength\", \"2\", \"inputmode\", \"numeric\", \"placeholder\", i18n_21, \"aria-label\", i18n_22, 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_23, \"aria-label\", i18n_24, 1, \"ngb-tp-input\", \"form-control\", 3, \"value\", \"readOnly\", \"disabled\", \"change\", \"blur\", \"input\", \"keydown.ArrowUp\", \"keydown.ArrowDown\"], [\"tabindex\", \"-1\", \"type\", \"button\", 1, \"btn\", \"btn-link\", 3, \"disabled\", \"click\"], [1, \"chevron\", \"ngb-tp-chevron\"], [1, \"visually-hidden\"], i18n_25, [1, \"chevron\", \"ngb-tp-chevron\", \"bottom\"], i18n_26, i18n_27, i18n_28, [1, \"ngb-tp-input-container\", \"ngb-tp-second\"], [\"type\", \"text\", \"maxlength\", \"2\", \"inputmode\", \"numeric\", \"placeholder\", i18n_29, \"aria-label\", i18n_30, 1, \"ngb-tp-input\", \"form-control\", 3, \"value\", \"readOnly\", \"disabled\", \"change\", \"blur\", \"input\", \"keydown.ArrowUp\", \"keydown.ArrowDown\"], i18n_31, i18n_32, [1, \"ngb-tp-meridian\"], [\"type\", \"button\", 1, \"btn\", \"btn-outline-primary\", 3, \"disabled\", \"click\"], i18n_33];\n },\n template: function NgbTimepicker_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"fieldset\", 0)(1, \"div\", 1)(2, \"div\", 2);\n i0.ɵɵtemplate(3, NgbTimepicker_Conditional_3_Template, 4, 7, \"button\", 3);\n i0.ɵɵelementStart(4, \"input\", 4);\n i0.ɵɵlistener(\"change\", function NgbTimepicker_Template_input_change_4_listener($event) {\n return ctx.updateHour($event.target.value);\n })(\"blur\", function NgbTimepicker_Template_input_blur_4_listener() {\n return ctx.handleBlur();\n })(\"input\", function NgbTimepicker_Template_input_input_4_listener($event) {\n return ctx.formatInput($event.target);\n })(\"keydown.ArrowUp\", function NgbTimepicker_Template_input_keydown_ArrowUp_4_listener($event) {\n ctx.changeHour(ctx.hourStep);\n return $event.preventDefault();\n })(\"keydown.ArrowDown\", function NgbTimepicker_Template_input_keydown_ArrowDown_4_listener($event) {\n ctx.changeHour(-ctx.hourStep);\n return $event.preventDefault();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(5, NgbTimepicker_Conditional_5_Template, 4, 7, \"button\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"div\", 5);\n i0.ɵɵtext(7, \":\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"div\", 6);\n i0.ɵɵtemplate(9, NgbTimepicker_Conditional_9_Template, 4, 7, \"button\", 3);\n i0.ɵɵelementStart(10, \"input\", 7);\n i0.ɵɵlistener(\"change\", function NgbTimepicker_Template_input_change_10_listener($event) {\n return ctx.updateMinute($event.target.value);\n })(\"blur\", function NgbTimepicker_Template_input_blur_10_listener() {\n return ctx.handleBlur();\n })(\"input\", function NgbTimepicker_Template_input_input_10_listener($event) {\n return ctx.formatInput($event.target);\n })(\"keydown.ArrowUp\", function NgbTimepicker_Template_input_keydown_ArrowUp_10_listener($event) {\n ctx.changeMinute(ctx.minuteStep);\n return $event.preventDefault();\n })(\"keydown.ArrowDown\", function NgbTimepicker_Template_input_keydown_ArrowDown_10_listener($event) {\n ctx.changeMinute(-ctx.minuteStep);\n return $event.preventDefault();\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(11, NgbTimepicker_Conditional_11_Template, 4, 7, \"button\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(12, NgbTimepicker_Conditional_12_Template, 6, 9)(13, NgbTimepicker_Conditional_13_Template, 5, 8);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"disabled\", ctx.disabled);\n i0.ɵɵproperty(\"disabled\", ctx.disabled);\n i0.ɵɵadvance(3);\n i0.ɵɵconditional(3, ctx.spinners ? 3 : -1);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"form-control-sm\", ctx.isSmallSize)(\"form-control-lg\", ctx.isLargeSize);\n i0.ɵɵproperty(\"value\", ctx.formatHour(ctx.model == null ? null : ctx.model.hour))(\"readOnly\", ctx.readonlyInputs)(\"disabled\", ctx.disabled);\n i0.ɵɵadvance();\n i0.ɵɵconditional(5, ctx.spinners ? 5 : -1);\n i0.ɵɵadvance(4);\n i0.ɵɵconditional(9, ctx.spinners ? 9 : -1);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"form-control-sm\", ctx.isSmallSize)(\"form-control-lg\", ctx.isLargeSize);\n i0.ɵɵproperty(\"value\", ctx.formatMinSec(ctx.model == null ? null : ctx.model.minute))(\"readOnly\", ctx.readonlyInputs)(\"disabled\", ctx.disabled);\n i0.ɵɵadvance();\n i0.ɵɵconditional(11, ctx.spinners ? 11 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(12, ctx.seconds ? 12 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(13, ctx.meridian ? 13 : -1);\n }\n },\n styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{display:flex;align-items:center}.ngb-tp-input-container{width:4em}.ngb-tp-chevron:before{border-style:solid;border-width:.29em .29em 0 0;content:\\\"\\\";display:inline-block;height:.69em;left:.05em;position:relative;top:.15em;transform:rotate(-45deg);vertical-align:middle;width:.69em}.ngb-tp-chevron.bottom:before{top:-.3em;transform:rotate(135deg)}.ngb-tp-input{text-align:center}.ngb-tp-hour,.ngb-tp-minute,.ngb-tp-second,.ngb-tp-meridian{display:flex;flex-direction:column;align-items:center;justify-content:space-around}.ngb-tp-spacer{width:1em;text-align:center}\\n\"],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimepicker, [{\n type: Component,\n args: [{\n exportAs: 'ngbTimepicker',\n selector: 'ngb-timepicker',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n template: `\n\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tIncrement hours\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tDecrement hours\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t
:
\n\t\t\t\t
\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tIncrement minutes\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tDecrement minutes\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t
\n\t\t\t\t@if (seconds) {\n\t\t\t\t\t
:
\n\t\t\t\t\t
\n\t\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tIncrement seconds\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t@if (spinners) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tDecrement seconds\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t
\n\t\t\t\t}\n\t\t\t\t@if (meridian) {\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t@if (model && model.hour >= 12) {\n\t\t\t\t\t\t\t\t{{ i18n.getAfternoonPeriod() }}\n\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t{{ i18n.getMorningPeriod() }}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t}\n\t\t\t
\n\t\t
\n\t`,\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbTimepicker),\n multi: true\n }],\n styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{display:flex;align-items:center}.ngb-tp-input-container{width:4em}.ngb-tp-chevron:before{border-style:solid;border-width:.29em .29em 0 0;content:\\\"\\\";display:inline-block;height:.69em;left:.05em;position:relative;top:.15em;transform:rotate(-45deg);vertical-align:middle;width:.69em}.ngb-tp-chevron.bottom:before{top:-.3em;transform:rotate(135deg)}.ngb-tp-input{text-align:center}.ngb-tp-hour,.ngb-tp-minute,.ngb-tp-second,.ngb-tp-meridian{display:flex;flex-direction:column;align-items:center;justify-content:space-around}.ngb-tp-spacer{width:1em;text-align:center}\\n\"]\n }]\n }], () => [{\n type: NgbTimepickerConfig\n }, {\n type: NgbTimeAdapter\n }, {\n type: i0.ChangeDetectorRef\n }, {\n type: NgbTimepickerI18n\n }], {\n meridian: [{\n type: Input\n }],\n spinners: [{\n type: Input\n }],\n seconds: [{\n type: Input\n }],\n hourStep: [{\n type: Input\n }],\n minuteStep: [{\n type: Input\n }],\n secondStep: [{\n type: Input\n }],\n readonlyInputs: [{\n type: Input\n }],\n size: [{\n type: Input\n }]\n });\n})();\nclass NgbTimepickerModule {\n static {\n this.ɵfac = function NgbTimepickerModule_Factory(t) {\n return new (t || NgbTimepickerModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbTimepickerModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTimepickerModule, [{\n type: NgModule,\n args: [{\n imports: [NgbTimepicker],\n exports: [NgbTimepicker]\n }]\n }], null, null);\n})();\n\n/**\n * Configuration service for the NgbToast component. You can inject this service, typically in your root component,\n * and customize the values of its properties in order to provide default values for all the toasts used in the\n * application.\n *\n * @since 5.0.0\n */\nclass NgbToastConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.autohide = true;\n this.delay = 5000;\n this.ariaLive = 'polite';\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static {\n this.ɵfac = function NgbToastConfig_Factory(t) {\n return new (t || NgbToastConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbToastConfig,\n factory: NgbToastConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbToastConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nconst ngbToastFadeInTransition = (element, animation) => {\n const {\n classList\n } = element;\n if (animation) {\n classList.add('fade');\n } else {\n classList.add('show');\n return;\n }\n reflow(element);\n classList.add('show', 'showing');\n return () => {\n classList.remove('showing');\n };\n};\nconst ngbToastFadeOutTransition = ({\n classList\n}) => {\n classList.add('showing');\n return () => {\n classList.remove('show', 'showing');\n };\n};\n\n/**\n * This directive allows the usage of HTML markup or other directives\n * inside of the toast's header.\n *\n * @since 5.0.0\n */\nclass NgbToastHeader {\n static {\n this.ɵfac = function NgbToastHeader_Factory(t) {\n return new (t || NgbToastHeader)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbToastHeader,\n selectors: [[\"\", \"ngbToastHeader\", \"\"]],\n standalone: true\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbToastHeader, [{\n type: Directive,\n args: [{\n selector: '[ngbToastHeader]',\n standalone: true\n }]\n }], null, null);\n})();\n/**\n * Toasts provide feedback messages as notifications to the user.\n * Goal is to mimic the push notifications available both on mobile and desktop operating systems.\n *\n * @since 5.0.0\n */\nclass NgbToast {\n constructor(ariaLive) {\n this.ariaLive = ariaLive;\n this._config = inject(NgbToastConfig);\n this._zone = inject(NgZone);\n this._element = inject(ElementRef);\n /**\n * If `true`, toast opening and closing will be animated.\n *\n * Animation is triggered only when the `.hide()` or `.show()` functions are called\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * Delay after which the toast will hide (ms).\n * default: `500` (ms) (inherited from NgbToastConfig)\n */\n this.delay = this._config.delay;\n /**\n * Auto hide the toast after a delay in ms.\n * default: `true` (inherited from NgbToastConfig)\n */\n this.autohide = this._config.autohide;\n /**\n * A template like `` can be\n * used in the projected content to allow markup usage.\n */\n this.contentHeaderTpl = null;\n /**\n * An event fired after the animation triggered by calling `.show()` method has finished.\n *\n * @since 8.0.0\n */\n this.shown = new EventEmitter();\n /**\n * An event fired after the animation triggered by calling `.hide()` method has finished.\n *\n * It can only occur in 2 different scenarios:\n * - `autohide` timeout fires\n * - user clicks on a closing cross\n *\n * Additionally this output is purely informative. The toast won't be removed from DOM automatically, it's up\n * to the user to take care of that.\n *\n * @since 8.0.0\n */\n this.hidden = new EventEmitter();\n this.ariaLive ??= this._config.ariaLive;\n }\n ngAfterContentInit() {\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n this._init();\n this.show();\n });\n }\n ngOnChanges(changes) {\n if ('autohide' in changes) {\n this._clearTimeout();\n this._init();\n }\n }\n /**\n * Triggers toast closing programmatically.\n *\n * The returned observable will emit and be completed once the closing transition has finished.\n * If the animations are turned off this happens synchronously.\n *\n * Alternatively you could listen or subscribe to the `(hidden)` output\n *\n * @since 8.0.0\n */\n hide() {\n this._clearTimeout();\n const transition = ngbRunTransition(this._zone, this._element.nativeElement, ngbToastFadeOutTransition, {\n animation: this.animation,\n runningTransition: 'stop'\n });\n transition.subscribe(() => {\n this.hidden.emit();\n });\n return transition;\n }\n /**\n * Triggers toast opening programmatically.\n *\n * The returned observable will emit and be completed once the opening transition has finished.\n * If the animations are turned off this happens synchronously.\n *\n * Alternatively you could listen or subscribe to the `(shown)` output\n *\n * @since 8.0.0\n */\n show() {\n const transition = ngbRunTransition(this._zone, this._element.nativeElement, ngbToastFadeInTransition, {\n animation: this.animation,\n runningTransition: 'continue'\n });\n transition.subscribe(() => {\n this.shown.emit();\n });\n return transition;\n }\n _init() {\n if (this.autohide && !this._timeoutID) {\n this._timeoutID = setTimeout(() => this.hide(), this.delay);\n }\n }\n _clearTimeout() {\n if (this._timeoutID) {\n clearTimeout(this._timeoutID);\n this._timeoutID = null;\n }\n }\n static {\n this.ɵfac = function NgbToast_Factory(t) {\n return new (t || NgbToast)(i0.ɵɵinjectAttribute('aria-live'));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbToast,\n selectors: [[\"ngb-toast\"]],\n contentQueries: function NgbToast_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgbToastHeader, 7, TemplateRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentHeaderTpl = _t.first);\n }\n },\n hostAttrs: [\"role\", \"alert\", \"aria-atomic\", \"true\", 1, \"toast\"],\n hostVars: 3,\n hostBindings: function NgbToast_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-live\", ctx.ariaLive);\n i0.ɵɵclassProp(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n delay: \"delay\",\n autohide: \"autohide\",\n header: \"header\"\n },\n outputs: {\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbToast\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 5,\n vars: 1,\n consts: () => {\n let i18n_34;\n if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__18 = goog.getMsg(\"Close\");\n i18n_34 = MSG__HOME_VSTS_WORK_1_S_NODE_MODULES__NG_BOOTSTRAP_NG_BOOTSTRAP_FESM2022_NG_BOOTSTRAP_MJS__18;\n } else {\n i18n_34 = $localize`:@@ngb.toast.close-aria:Close`;\n }\n return [[\"headerTpl\", \"\"], [\"class\", \"toast-header\"], [1, \"toast-body\"], [1, \"me-auto\"], [1, \"toast-header\"], [3, \"ngTemplateOutlet\"], [\"type\", \"button\", \"aria-label\", i18n_34, 1, \"btn-close\", 3, \"click\"]];\n },\n template: function NgbToast_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, NgbToast_ng_template_0_Template, 2, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor)(2, NgbToast_Conditional_2_Template, 3, 1, \"div\", 1);\n i0.ɵɵelementStart(3, \"div\", 2);\n i0.ɵɵprojection(4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(2, ctx.contentHeaderTpl || ctx.header ? 2 : -1);\n }\n },\n dependencies: [NgTemplateOutlet],\n styles: [\"ngb-toast{display:block}ngb-toast .toast-header .close{margin-left:auto;margin-bottom:.25rem}\\n\"],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbToast, [{\n type: Component,\n args: [{\n selector: 'ngb-toast',\n exportAs: 'ngbToast',\n standalone: true,\n imports: [NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n host: {\n role: 'alert',\n '[attr.aria-live]': 'ariaLive',\n 'aria-atomic': 'true',\n class: 'toast',\n '[class.fade]': 'animation'\n },\n template: `\n\t\t\n\t\t\t{{ header }}\n\t\t\n\t\t@if (contentHeaderTpl || header) {\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t}\n\t\t
\n\t\t\t\n\t\t
\n\t`,\n styles: [\"ngb-toast{display:block}ngb-toast .toast-header .close{margin-left:auto;margin-bottom:.25rem}\\n\"]\n }]\n }], () => [{\n type: undefined,\n decorators: [{\n type: Attribute,\n args: ['aria-live']\n }]\n }], {\n animation: [{\n type: Input\n }],\n delay: [{\n type: Input\n }],\n autohide: [{\n type: Input\n }],\n header: [{\n type: Input\n }],\n contentHeaderTpl: [{\n type: ContentChild,\n args: [NgbToastHeader, {\n read: TemplateRef,\n static: true\n }]\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }]\n });\n})();\nclass NgbToastModule {\n static {\n this.ɵfac = function NgbToastModule_Factory(t) {\n return new (t || NgbToastModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbToastModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbToastModule, [{\n type: NgModule,\n args: [{\n imports: [NgbToast, NgbToastHeader],\n exports: [NgbToast, NgbToastHeader]\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbTooltip`](#/components/tooltip/api#NgbTooltip) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the tooltips used in the application.\n */\nclass NgbTooltipConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.autoClose = true;\n this.placement = 'auto';\n this.popperOptions = options => options;\n this.triggers = 'hover focus';\n this.disableTooltip = false;\n this.openDelay = 0;\n this.closeDelay = 0;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static {\n this.ɵfac = function NgbTooltipConfig_Factory(t) {\n return new (t || NgbTooltipConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTooltipConfig,\n factory: NgbTooltipConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTooltipConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nlet nextId = 0;\nclass NgbTooltipWindow {\n static {\n this.ɵfac = function NgbTooltipWindow_Factory(t) {\n return new (t || NgbTooltipWindow)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbTooltipWindow,\n selectors: [[\"ngb-tooltip-window\"]],\n hostAttrs: [\"role\", \"tooltip\"],\n hostVars: 5,\n hostBindings: function NgbTooltipWindow_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵclassMap(\"tooltip\" + (ctx.tooltipClass ? \" \" + ctx.tooltipClass : \"\"));\n i0.ɵɵclassProp(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n id: \"id\",\n tooltipClass: \"tooltipClass\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 3,\n vars: 0,\n consts: [[\"data-popper-arrow\", \"\", 1, \"tooltip-arrow\"], [1, \"tooltip-inner\"]],\n template: function NgbTooltipWindow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵelement(0, \"div\", 0);\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵprojection(2);\n i0.ɵɵelementEnd();\n }\n },\n styles: [\"ngb-tooltip-window{pointer-events:none;position:absolute}ngb-tooltip-window .tooltip-inner{pointer-events:auto}ngb-tooltip-window.bs-tooltip-top,ngb-tooltip-window.bs-tooltip-bottom{padding-left:0;padding-right:0}ngb-tooltip-window.bs-tooltip-start,ngb-tooltip-window.bs-tooltip-end{padding-top:0;padding-bottom:0}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTooltipWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-tooltip-window',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"tooltip\" + (tooltipClass ? \" \" + tooltipClass : \"\")',\n '[class.fade]': 'animation',\n role: 'tooltip',\n '[id]': 'id'\n },\n template: `\n\t\t
\n\t\t
\n\t\t\t\n\t\t
\n\t`,\n styles: [\"ngb-tooltip-window{pointer-events:none;position:absolute}ngb-tooltip-window .tooltip-inner{pointer-events:auto}ngb-tooltip-window.bs-tooltip-top,ngb-tooltip-window.bs-tooltip-bottom{padding-left:0;padding-right:0}ngb-tooltip-window.bs-tooltip-start,ngb-tooltip-window.bs-tooltip-end{padding-top:0;padding-bottom:0}\\n\"]\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n id: [{\n type: Input\n }],\n tooltipClass: [{\n type: Input\n }]\n });\n})();\n/**\n * A lightweight and extensible directive for fancy tooltip creation.\n */\nclass NgbTooltip {\n constructor() {\n this._config = inject(NgbTooltipConfig);\n /**\n * If `true`, tooltip opening and closing will be animated.\n *\n * @since 8.0.0\n */\n this.animation = this._config.animation;\n /**\n * Indicates whether the tooltip should be closed on `Escape` key and inside/outside clicks:\n *\n * * `true` - closes on both outside and inside clicks as well as `Escape` presses\n * * `false` - disables the autoClose feature (NB: triggers still apply)\n * * `\"inside\"` - closes on inside clicks as well as Escape presses\n * * `\"outside\"` - closes on outside clicks (sometimes also achievable through triggers)\n * as well as `Escape` presses\n *\n * @since 3.0.0\n */\n this.autoClose = this._config.autoClose;\n /**\n * The preferred placement of the tooltip, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"auto\"`.\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the tooltip.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * Specifies events that should trigger the tooltip.\n *\n * Supports a space separated list of event names.\n * For more details see the [triggers demo](#/components/tooltip/examples#triggers).\n */\n this.triggers = this._config.triggers;\n /**\n * A selector specifying the element the tooltip should be appended to.\n *\n * Currently only supports `\"body\"`.\n */\n this.container = this._config.container;\n /**\n * If `true`, tooltip is disabled and won't be displayed.\n *\n * @since 1.1.0\n */\n this.disableTooltip = this._config.disableTooltip;\n /**\n * An optional class applied to the tooltip window element.\n *\n * @since 3.2.0\n */\n this.tooltipClass = this._config.tooltipClass;\n /**\n * The opening delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n *\n * @since 4.1.0\n */\n this.openDelay = this._config.openDelay;\n /**\n * The closing delay in ms. Works only for \"non-manual\" opening triggers defined by the `triggers` input.\n *\n * @since 4.1.0\n */\n this.closeDelay = this._config.closeDelay;\n /**\n * An event emitted when the tooltip opening animation has finished. Contains no payload.\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the tooltip closing animation has finished. Contains no payload.\n */\n this.hidden = new EventEmitter();\n this._nativeElement = inject(ElementRef).nativeElement;\n this._ngZone = inject(NgZone);\n this._document = inject(DOCUMENT);\n this._changeDetector = inject(ChangeDetectorRef);\n this._ngbTooltipWindowId = `ngb-tooltip-${nextId++}`;\n this._popupService = new PopupService(NgbTooltipWindow);\n this._windowRef = null;\n this._positioning = ngbPositioning();\n }\n /**\n * The string content or a `TemplateRef` for the content to be displayed in the tooltip.\n *\n * If the content if falsy, the tooltip won't open.\n */\n set ngbTooltip(value) {\n this._ngbTooltip = value;\n if (!value && this._windowRef) {\n this.close();\n }\n }\n get ngbTooltip() {\n return this._ngbTooltip;\n }\n /**\n * Opens the tooltip.\n *\n * This is considered to be a \"manual\" triggering.\n * The `context` is an optional value to be injected into the tooltip template when it is created.\n */\n open(context) {\n if (!this._windowRef && this._ngbTooltip && !this.disableTooltip) {\n const {\n windowRef,\n transition$\n } = this._popupService.open(this._ngbTooltip, context ?? this.tooltipContext, this.animation);\n this._windowRef = windowRef;\n this._windowRef.setInput('animation', this.animation);\n this._windowRef.setInput('tooltipClass', this.tooltipClass);\n this._windowRef.setInput('id', this._ngbTooltipWindowId);\n this._getPositionTargetElement().setAttribute('aria-describedby', this._ngbTooltipWindowId);\n if (this.container === 'body') {\n this._document.body.appendChild(this._windowRef.location.nativeElement);\n }\n // We need to detect changes, because we don't know where .open() might be called from.\n // Ex. opening tooltip from one of lifecycle hooks that run after the CD\n // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception\n this._windowRef.changeDetectorRef.detectChanges();\n // We need to mark for check, because tooltip won't work inside the OnPush component.\n // Ex. when we use expression like `{{ tooltip.isOpen() : 'opened' : 'closed' }}`\n // inside the template of an OnPush component and we change the tooltip from\n // open -> closed, the expression in question won't be updated unless we explicitly\n // mark the parent component to be checked.\n this._windowRef.changeDetectorRef.markForCheck();\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n this._positioning.createPopper({\n hostElement: this._getPositionTargetElement(),\n targetElement: this._windowRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n baseClass: 'bs-tooltip',\n updatePopperOptions: options => this.popperOptions(addPopperOffset([0, 6])(options))\n });\n Promise.resolve().then(() => {\n // This update is required for correct arrow placement\n this._positioning.update();\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n });\n });\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [this._windowRef.location.nativeElement], [this._nativeElement]);\n transition$.subscribe(() => this.shown.emit());\n }\n }\n /**\n * Closes the tooltip.\n *\n * This is considered to be a \"manual\" triggering of the tooltip.\n */\n close(animation = this.animation) {\n if (this._windowRef != null) {\n this._getPositionTargetElement().removeAttribute('aria-describedby');\n this._popupService.close(animation).subscribe(() => {\n this._windowRef = null;\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this.hidden.emit();\n this._changeDetector.markForCheck();\n });\n }\n }\n /**\n * Toggles the tooltip.\n *\n * This is considered to be a \"manual\" triggering of the tooltip.\n */\n toggle() {\n if (this._windowRef) {\n this.close();\n } else {\n this.open();\n }\n }\n /**\n * Returns `true`, if the popover is currently shown.\n */\n isOpen() {\n return this._windowRef != null;\n }\n ngOnInit() {\n this._unregisterListenersFn = listenToTriggers(this._nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay);\n }\n ngOnChanges({\n tooltipClass\n }) {\n if (tooltipClass && this.isOpen()) {\n this._windowRef.setInput('tooltipClass', tooltipClass.currentValue);\n }\n }\n ngOnDestroy() {\n this.close(false);\n // This check is needed as it might happen that ngOnDestroy is called before ngOnInit\n // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199\n this._unregisterListenersFn?.();\n }\n _getPositionTargetElement() {\n return (isString(this.positionTarget) ? this._document.querySelector(this.positionTarget) : this.positionTarget) || this._nativeElement;\n }\n static {\n this.ɵfac = function NgbTooltip_Factory(t) {\n return new (t || NgbTooltip)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbTooltip,\n selectors: [[\"\", \"ngbTooltip\", \"\"]],\n inputs: {\n animation: \"animation\",\n autoClose: \"autoClose\",\n placement: \"placement\",\n popperOptions: \"popperOptions\",\n triggers: \"triggers\",\n positionTarget: \"positionTarget\",\n container: \"container\",\n disableTooltip: \"disableTooltip\",\n tooltipClass: \"tooltipClass\",\n tooltipContext: \"tooltipContext\",\n openDelay: \"openDelay\",\n closeDelay: \"closeDelay\",\n ngbTooltip: \"ngbTooltip\"\n },\n outputs: {\n shown: \"shown\",\n hidden: \"hidden\"\n },\n exportAs: [\"ngbTooltip\"],\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTooltip, [{\n type: Directive,\n args: [{\n selector: '[ngbTooltip]',\n standalone: true,\n exportAs: 'ngbTooltip'\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n autoClose: [{\n type: Input\n }],\n placement: [{\n type: Input\n }],\n popperOptions: [{\n type: Input\n }],\n triggers: [{\n type: Input\n }],\n positionTarget: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n disableTooltip: [{\n type: Input\n }],\n tooltipClass: [{\n type: Input\n }],\n tooltipContext: [{\n type: Input\n }],\n openDelay: [{\n type: Input\n }],\n closeDelay: [{\n type: Input\n }],\n shown: [{\n type: Output\n }],\n hidden: [{\n type: Output\n }],\n ngbTooltip: [{\n type: Input\n }]\n });\n})();\nclass NgbTooltipModule {\n static {\n this.ɵfac = function NgbTooltipModule_Factory(t) {\n return new (t || NgbTooltipModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbTooltipModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTooltipModule, [{\n type: NgModule,\n args: [{\n imports: [NgbTooltip],\n exports: [NgbTooltip]\n }]\n }], null, null);\n})();\n\n/**\n * A component that helps with text highlighting.\n *\n * It splits the `result` text into parts that contain the searched `term` and generates the HTML markup to simplify\n * highlighting:\n *\n * Ex. `result=\"Alaska\"` and `term=\"as\"` will produce `Alaska`.\n */\nclass NgbHighlight {\n constructor() {\n /**\n * The CSS class for `` elements wrapping the `term` inside the `result`.\n */\n this.highlightClass = 'ngb-highlight';\n /**\n * Boolean option to determine if the highlighting should be sensitive to accents or not.\n *\n * This feature is only available for browsers that implement the `String.normalize` function\n * (typically not Internet Explorer).\n * If you want to use this feature in a browser that does not implement `String.normalize`,\n * you will have to include a polyfill in your application (`unorm` for example).\n *\n * @since 9.1.0\n */\n this.accentSensitive = true;\n }\n ngOnChanges(changes) {\n if (!this.accentSensitive && !String.prototype.normalize) {\n console.warn('The `accentSensitive` input in `ngb-highlight` cannot be set to `false` in a browser ' + 'that does not implement the `String.normalize` function. ' + 'You will have to include a polyfill in your application to use this feature in the current browser.');\n this.accentSensitive = true;\n }\n const result = toString(this.result);\n const terms = Array.isArray(this.term) ? this.term : [this.term];\n const prepareTerm = term => this.accentSensitive ? term : removeAccents(term);\n const escapedTerms = terms.map(term => regExpEscape(prepareTerm(toString(term)))).filter(term => term);\n const toSplit = this.accentSensitive ? result : removeAccents(result);\n const parts = escapedTerms.length ? toSplit.split(new RegExp(`(${escapedTerms.join('|')})`, 'gmi')) : [result];\n if (this.accentSensitive) {\n this.parts = parts;\n } else {\n let offset = 0;\n this.parts = parts.map(part => result.substring(offset, offset += part.length));\n }\n }\n static {\n this.ɵfac = function NgbHighlight_Factory(t) {\n return new (t || NgbHighlight)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbHighlight,\n selectors: [[\"ngb-highlight\"]],\n inputs: {\n highlightClass: \"highlightClass\",\n result: \"result\",\n term: \"term\",\n accentSensitive: \"accentSensitive\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 0,\n consts: [[3, \"class\"]],\n template: function NgbHighlight_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, NgbHighlight_For_1_Template, 2, 1, null, null, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n i0.ɵɵrepeater(ctx.parts);\n }\n },\n styles: [\".ngb-highlight{font-weight:700}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbHighlight, [{\n type: Component,\n args: [{\n selector: 'ngb-highlight',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n template: `\n\t\t@for (part of parts; track part; let odd = $odd) {\n\t\t\t@if (odd) {\n\t\t\t\t{{ part }}\n\t\t\t} @else {\n\t\t\t\t{{ part }}\n\t\t\t}\n\t\t}\n\t`,\n styles: [\".ngb-highlight{font-weight:700}\\n\"]\n }]\n }], null, {\n highlightClass: [{\n type: Input\n }],\n result: [{\n type: Input,\n args: [{\n required: true\n }]\n }],\n term: [{\n type: Input,\n args: [{\n required: true\n }]\n }],\n accentSensitive: [{\n type: Input\n }]\n });\n})();\nconst ARIA_LIVE_DELAY = new InjectionToken('live announcer delay', {\n providedIn: 'root',\n factory: () => 100\n});\nfunction getLiveElement(document, lazyCreate = false) {\n let element = document.body.querySelector('#ngb-live');\n if (element == null && lazyCreate) {\n element = document.createElement('div');\n element.setAttribute('id', 'ngb-live');\n element.setAttribute('aria-live', 'polite');\n element.setAttribute('aria-atomic', 'true');\n element.classList.add('visually-hidden');\n document.body.appendChild(element);\n }\n return element;\n}\nclass Live {\n constructor() {\n this._document = inject(DOCUMENT);\n this._delay = inject(ARIA_LIVE_DELAY);\n }\n ngOnDestroy() {\n const element = getLiveElement(this._document);\n if (element) {\n // if exists, it will always be attached to the \n element.parentElement.removeChild(element);\n }\n }\n say(message) {\n const element = getLiveElement(this._document, true);\n const delay = this._delay;\n if (element != null) {\n element.textContent = '';\n const setText = () => element.textContent = message;\n if (delay === null) {\n setText();\n } else {\n setTimeout(setText, delay);\n }\n }\n }\n static {\n this.ɵfac = function Live_Factory(t) {\n return new (t || Live)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Live,\n factory: Live.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Live, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbTypeahead`](#/components/typeahead/api#NgbTypeahead) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the typeaheads used in the application.\n */\nclass NgbTypeaheadConfig {\n constructor() {\n this.editable = true;\n this.focusFirst = true;\n this.selectOnExact = false;\n this.showHint = false;\n this.placement = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];\n this.popperOptions = options => options;\n }\n static {\n this.ɵfac = function NgbTypeaheadConfig_Factory(t) {\n return new (t || NgbTypeaheadConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbTypeaheadConfig,\n factory: NgbTypeaheadConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTypeaheadConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nclass NgbTypeaheadWindow {\n constructor() {\n this.activeIdx = 0;\n /**\n * Flag indicating if the first row should be active initially\n */\n this.focusFirst = true;\n /**\n * A function used to format a given result before display. This function should return a formatted string without any\n * HTML markup\n */\n this.formatter = toString;\n /**\n * Event raised when user selects a particular result row\n */\n this.selectEvent = new EventEmitter();\n this.activeChangeEvent = new EventEmitter();\n }\n hasActive() {\n return this.activeIdx > -1 && this.activeIdx < this.results.length;\n }\n getActive() {\n return this.results[this.activeIdx];\n }\n markActive(activeIdx) {\n this.activeIdx = activeIdx;\n this._activeChanged();\n }\n next() {\n if (this.activeIdx === this.results.length - 1) {\n this.activeIdx = this.focusFirst ? (this.activeIdx + 1) % this.results.length : -1;\n } else {\n this.activeIdx++;\n }\n this._activeChanged();\n }\n prev() {\n if (this.activeIdx < 0) {\n this.activeIdx = this.results.length - 1;\n } else if (this.activeIdx === 0) {\n this.activeIdx = this.focusFirst ? this.results.length - 1 : -1;\n } else {\n this.activeIdx--;\n }\n this._activeChanged();\n }\n resetActive() {\n this.activeIdx = this.focusFirst ? 0 : -1;\n this._activeChanged();\n }\n select(item) {\n this.selectEvent.emit(item);\n }\n ngOnInit() {\n this.resetActive();\n }\n _activeChanged() {\n this.activeChangeEvent.emit(this.activeIdx >= 0 ? this.id + '-' + this.activeIdx : undefined);\n }\n static {\n this.ɵfac = function NgbTypeaheadWindow_Factory(t) {\n return new (t || NgbTypeaheadWindow)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbTypeaheadWindow,\n selectors: [[\"ngb-typeahead-window\"]],\n hostAttrs: [\"role\", \"listbox\"],\n hostVars: 3,\n hostBindings: function NgbTypeaheadWindow_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mousedown\", function NgbTypeaheadWindow_mousedown_HostBindingHandler($event) {\n return $event.preventDefault();\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"id\", ctx.id);\n i0.ɵɵclassMap(\"dropdown-menu show\" + (ctx.popupClass ? \" \" + ctx.popupClass : \"\"));\n }\n },\n inputs: {\n id: \"id\",\n focusFirst: \"focusFirst\",\n results: \"results\",\n term: \"term\",\n formatter: \"formatter\",\n resultTemplate: \"resultTemplate\",\n popupClass: \"popupClass\"\n },\n outputs: {\n selectEvent: \"select\",\n activeChangeEvent: \"activeChange\"\n },\n exportAs: [\"ngbTypeaheadWindow\"],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 4,\n vars: 0,\n consts: [[\"rt\", \"\"], [3, \"result\", \"term\"], [\"type\", \"button\", \"role\", \"option\", 1, \"dropdown-item\", 3, \"id\", \"mouseenter\", \"click\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"type\", \"button\", \"class\", \"dropdown-item\", \"role\", \"option\", 3, \"id\", \"active\"]],\n template: function NgbTypeaheadWindow_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgbTypeaheadWindow_ng_template_0_Template, 1, 2, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵrepeaterCreate(2, NgbTypeaheadWindow_For_3_Template, 2, 9, \"button\", 4, i0.ɵɵrepeaterTrackByIdentity);\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx.results);\n }\n },\n dependencies: [NgbHighlight, NgTemplateOutlet],\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTypeaheadWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-typeahead-window',\n exportAs: 'ngbTypeaheadWindow',\n standalone: true,\n imports: [NgbHighlight, NgTemplateOutlet],\n encapsulation: ViewEncapsulation.None,\n host: {\n '(mousedown)': '$event.preventDefault()',\n '[class]': '\"dropdown-menu show\" + (popupClass ? \" \" + popupClass : \"\")',\n role: 'listbox',\n '[id]': 'id'\n },\n template: `\n\t\t\n\t\t\t\n\t\t\n\t\t@for (result of results; track result; let idx = $index) {\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t}\n\t`\n }]\n }], null, {\n id: [{\n type: Input\n }],\n focusFirst: [{\n type: Input\n }],\n results: [{\n type: Input\n }],\n term: [{\n type: Input\n }],\n formatter: [{\n type: Input\n }],\n resultTemplate: [{\n type: Input\n }],\n popupClass: [{\n type: Input\n }],\n selectEvent: [{\n type: Output,\n args: ['select']\n }],\n activeChangeEvent: [{\n type: Output,\n args: ['activeChange']\n }]\n });\n})();\nlet nextWindowId = 0;\n/**\n * A directive providing a simple way of creating powerful typeaheads from any text input.\n */\nclass NgbTypeahead {\n constructor() {\n this._nativeElement = inject(ElementRef).nativeElement;\n this._config = inject(NgbTypeaheadConfig);\n this._live = inject(Live);\n this._document = inject(DOCUMENT);\n this._ngZone = inject(NgZone);\n this._changeDetector = inject(ChangeDetectorRef);\n this._popupService = new PopupService(NgbTypeaheadWindow);\n this._positioning = ngbPositioning();\n this._subscription = null;\n this._closed$ = new Subject();\n this._inputValueBackup = null;\n this._inputValueForSelectOnExact = null;\n this._valueChanges$ = fromEvent(this._nativeElement, 'input').pipe(map($event => $event.target.value));\n this._resubscribeTypeahead$ = new BehaviorSubject(null);\n this._windowRef = null;\n /**\n * The value for the `autocomplete` attribute for the `` element.\n *\n * Defaults to `\"off\"` to disable the native browser autocomplete, but you can override it if necessary.\n *\n * @since 2.1.0\n */\n this.autocomplete = 'off';\n /**\n * A selector specifying the element the typeahead popup will be appended to.\n *\n * Currently only supports `\"body\"`.\n */\n this.container = this._config.container;\n /**\n * If `true`, model values will not be restricted only to items selected from the popup.\n */\n this.editable = this._config.editable;\n /**\n * If `true`, the first item in the result list will always stay focused while typing.\n */\n this.focusFirst = this._config.focusFirst;\n /**\n * If `true`, automatically selects the item when it is the only one that exactly matches the user input\n *\n * @since 14.2.0\n */\n this.selectOnExact = this._config.selectOnExact;\n /**\n * If `true`, will show the hint in the `` when an item in the result list matches.\n */\n this.showHint = this._config.showHint;\n /**\n * The preferred placement of the typeahead, among the [possible values](#/guides/positioning#api).\n *\n * The default order of preference is `\"bottom-start bottom-end top-start top-end\"`\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = this._config.placement;\n /**\n * Allows to change default Popper options when positioning the typeahead.\n * Receives current popper options and returns modified ones.\n *\n * @since 13.1.0\n */\n this.popperOptions = this._config.popperOptions;\n /**\n * An event emitted right before an item is selected from the result list.\n *\n * Event payload is of type [`NgbTypeaheadSelectItemEvent`](#/components/typeahead/api#NgbTypeaheadSelectItemEvent).\n */\n this.selectItem = new EventEmitter();\n this.activeDescendant = null;\n this.popupId = `ngb-typeahead-${nextWindowId++}`;\n this._onTouched = () => {};\n this._onChange = _ => {};\n }\n ngOnInit() {\n this._subscribeToUserInput();\n }\n ngOnChanges({\n ngbTypeahead\n }) {\n if (ngbTypeahead && !ngbTypeahead.firstChange) {\n this._unsubscribeFromUserInput();\n this._subscribeToUserInput();\n }\n }\n ngOnDestroy() {\n this._closePopup();\n this._unsubscribeFromUserInput();\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n writeValue(value) {\n this._writeInputValue(this._formatItemForInput(value));\n if (this.showHint) {\n this._inputValueBackup = value;\n }\n }\n setDisabledState(isDisabled) {\n this._nativeElement.disabled = isDisabled;\n }\n /**\n * Dismisses typeahead popup window\n */\n dismissPopup() {\n if (this.isPopupOpen()) {\n this._resubscribeTypeahead$.next(null);\n this._closePopup();\n if (this.showHint && this._inputValueBackup !== null) {\n this._writeInputValue(this._inputValueBackup);\n }\n this._changeDetector.markForCheck();\n }\n }\n /**\n * Returns true if the typeahead popup window is displayed\n */\n isPopupOpen() {\n return this._windowRef != null;\n }\n handleBlur() {\n this._resubscribeTypeahead$.next(null);\n this._onTouched();\n }\n handleKeyDown(event) {\n if (!this.isPopupOpen()) {\n return;\n }\n /* eslint-disable-next-line deprecation/deprecation */\n switch (event.which) {\n case Key.ArrowDown:\n event.preventDefault();\n this._windowRef.instance.next();\n this._showHint();\n break;\n case Key.ArrowUp:\n event.preventDefault();\n this._windowRef.instance.prev();\n this._showHint();\n break;\n case Key.Enter:\n case Key.Tab:\n {\n const result = this._windowRef.instance.getActive();\n if (isDefined(result)) {\n event.preventDefault();\n event.stopPropagation();\n this._selectResult(result);\n }\n this._closePopup();\n break;\n }\n }\n }\n _openPopup() {\n if (!this.isPopupOpen()) {\n this._inputValueBackup = this._nativeElement.value;\n const {\n windowRef\n } = this._popupService.open();\n this._windowRef = windowRef;\n this._windowRef.setInput('id', this.popupId);\n this._windowRef.setInput('popupClass', this.popupClass);\n this._windowRef.instance.selectEvent.subscribe(result => this._selectResultClosePopup(result));\n this._windowRef.instance.activeChangeEvent.subscribe(activeId => this.activeDescendant = activeId);\n if (this.container === 'body') {\n this._windowRef.location.nativeElement.style.zIndex = '1055';\n this._document.body.appendChild(this._windowRef.location.nativeElement);\n }\n this._changeDetector.markForCheck();\n // Setting up popper and scheduling updates when zone is stable\n this._ngZone.runOutsideAngular(() => {\n if (this._windowRef) {\n this._positioning.createPopper({\n hostElement: this._nativeElement,\n targetElement: this._windowRef.location.nativeElement,\n placement: this.placement,\n appendToBody: this.container === 'body',\n updatePopperOptions: options => this.popperOptions(addPopperOffset([0, 2])(options))\n });\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => this._positioning.update());\n }\n });\n ngbAutoClose(this._ngZone, this._document, 'outside', () => this.dismissPopup(), this._closed$, [this._nativeElement, this._windowRef.location.nativeElement]);\n }\n }\n _closePopup() {\n this._popupService.close().subscribe(() => {\n this._positioning.destroy();\n this._zoneSubscription?.unsubscribe();\n this._closed$.next();\n this._windowRef = null;\n this.activeDescendant = null;\n });\n }\n _selectResult(result) {\n let defaultPrevented = false;\n this.selectItem.emit({\n item: result,\n preventDefault: () => {\n defaultPrevented = true;\n }\n });\n this._resubscribeTypeahead$.next(null);\n if (!defaultPrevented) {\n this.writeValue(result);\n this._onChange(result);\n }\n }\n _selectResultClosePopup(result) {\n this._selectResult(result);\n this._closePopup();\n }\n _showHint() {\n if (this.showHint && this._windowRef?.instance.hasActive() && this._inputValueBackup != null) {\n const userInputLowerCase = this._inputValueBackup.toLowerCase();\n const formattedVal = this._formatItemForInput(this._windowRef.instance.getActive());\n if (userInputLowerCase === formattedVal.substring(0, this._inputValueBackup.length).toLowerCase()) {\n this._writeInputValue(this._inputValueBackup + formattedVal.substring(this._inputValueBackup.length));\n this._nativeElement['setSelectionRange'].apply(this._nativeElement, [this._inputValueBackup.length, formattedVal.length]);\n } else {\n this._writeInputValue(formattedVal);\n }\n }\n }\n _formatItemForInput(item) {\n return item != null && this.inputFormatter ? this.inputFormatter(item) : toString(item);\n }\n _writeInputValue(value) {\n this._nativeElement.value = toString(value);\n }\n _subscribeToUserInput() {\n const results$ = this._valueChanges$.pipe(tap(value => {\n this._inputValueBackup = this.showHint ? value : null;\n this._inputValueForSelectOnExact = this.selectOnExact ? value : null;\n this._onChange(this.editable ? value : undefined);\n }), this.ngbTypeahead ? this.ngbTypeahead : () => of([]));\n this._subscription = this._resubscribeTypeahead$.pipe(switchMap(() => results$)).subscribe(results => {\n if (!results || results.length === 0) {\n this._closePopup();\n } else {\n // when there is only one result and this matches the input value\n if (this.selectOnExact && results.length === 1 && this._formatItemForInput(results[0]) === this._inputValueForSelectOnExact) {\n this._selectResult(results[0]);\n this._closePopup();\n } else {\n this._openPopup();\n this._windowRef.setInput('focusFirst', this.focusFirst);\n this._windowRef.setInput('results', results);\n this._windowRef.setInput('term', this._nativeElement.value);\n if (this.resultFormatter) {\n this._windowRef.setInput('formatter', this.resultFormatter);\n }\n if (this.resultTemplate) {\n this._windowRef.setInput('resultTemplate', this.resultTemplate);\n }\n this._windowRef.instance.resetActive();\n // The observable stream we are subscribing to might have async steps\n // and if a component containing typeahead is using the OnPush strategy\n // the change detection turn wouldn't be invoked automatically.\n this._windowRef.changeDetectorRef.detectChanges();\n this._showHint();\n }\n }\n // live announcer\n const count = results ? results.length : 0;\n this._live.say(count === 0 ? 'No results available' : `${count} result${count === 1 ? '' : 's'} available`);\n });\n }\n _unsubscribeFromUserInput() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n this._subscription = null;\n }\n static {\n this.ɵfac = function NgbTypeahead_Factory(t) {\n return new (t || NgbTypeahead)();\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgbTypeahead,\n selectors: [[\"input\", \"ngbTypeahead\", \"\"]],\n hostAttrs: [\"autocapitalize\", \"off\", \"autocorrect\", \"off\", \"role\", \"combobox\"],\n hostVars: 7,\n hostBindings: function NgbTypeahead_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"blur\", function NgbTypeahead_blur_HostBindingHandler() {\n return ctx.handleBlur();\n })(\"keydown\", function NgbTypeahead_keydown_HostBindingHandler($event) {\n return ctx.handleKeyDown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵhostProperty(\"autocomplete\", ctx.autocomplete);\n i0.ɵɵattribute(\"aria-autocomplete\", ctx.showHint ? \"both\" : \"list\")(\"aria-activedescendant\", ctx.activeDescendant)(\"aria-owns\", ctx.isPopupOpen() ? ctx.popupId : null)(\"aria-expanded\", ctx.isPopupOpen());\n i0.ɵɵclassProp(\"open\", ctx.isPopupOpen());\n }\n },\n inputs: {\n autocomplete: \"autocomplete\",\n container: \"container\",\n editable: \"editable\",\n focusFirst: \"focusFirst\",\n inputFormatter: \"inputFormatter\",\n ngbTypeahead: \"ngbTypeahead\",\n resultFormatter: \"resultFormatter\",\n resultTemplate: \"resultTemplate\",\n selectOnExact: \"selectOnExact\",\n showHint: \"showHint\",\n placement: \"placement\",\n popperOptions: \"popperOptions\",\n popupClass: \"popupClass\"\n },\n outputs: {\n selectItem: \"selectItem\"\n },\n exportAs: [\"ngbTypeahead\"],\n standalone: true,\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbTypeahead),\n multi: true\n }]), i0.ɵɵNgOnChangesFeature]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTypeahead, [{\n type: Directive,\n args: [{\n selector: 'input[ngbTypeahead]',\n exportAs: 'ngbTypeahead',\n standalone: true,\n host: {\n '(blur)': 'handleBlur()',\n '[class.open]': 'isPopupOpen()',\n '(keydown)': 'handleKeyDown($event)',\n '[autocomplete]': 'autocomplete',\n autocapitalize: 'off',\n autocorrect: 'off',\n role: 'combobox',\n '[attr.aria-autocomplete]': 'showHint ? \"both\" : \"list\"',\n '[attr.aria-activedescendant]': 'activeDescendant',\n '[attr.aria-owns]': 'isPopupOpen() ? popupId : null',\n '[attr.aria-expanded]': 'isPopupOpen()'\n },\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbTypeahead),\n multi: true\n }]\n }]\n }], null, {\n autocomplete: [{\n type: Input\n }],\n container: [{\n type: Input\n }],\n editable: [{\n type: Input\n }],\n focusFirst: [{\n type: Input\n }],\n inputFormatter: [{\n type: Input\n }],\n ngbTypeahead: [{\n type: Input\n }],\n resultFormatter: [{\n type: Input\n }],\n resultTemplate: [{\n type: Input\n }],\n selectOnExact: [{\n type: Input\n }],\n showHint: [{\n type: Input\n }],\n placement: [{\n type: Input\n }],\n popperOptions: [{\n type: Input\n }],\n popupClass: [{\n type: Input\n }],\n selectItem: [{\n type: Output\n }]\n });\n})();\nclass NgbTypeaheadModule {\n static {\n this.ɵfac = function NgbTypeaheadModule_Factory(t) {\n return new (t || NgbTypeaheadModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbTypeaheadModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbTypeaheadModule, [{\n type: NgModule,\n args: [{\n imports: [NgbHighlight, NgbTypeahead],\n exports: [NgbHighlight, NgbTypeahead]\n }]\n }], null, null);\n})();\n\n/**\n * A configuration service for the [`NgbOffcanvas`](#/components/offcanvas/api#NgbOffcanvas) service.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all offcanvases used in the application.\n *\n * @since 12.1.0\n */\nclass NgbOffcanvasConfig {\n constructor() {\n this._ngbConfig = inject(NgbConfig);\n this.backdrop = true;\n this.keyboard = true;\n this.position = 'start';\n this.scroll = false;\n }\n get animation() {\n return this._animation ?? this._ngbConfig.animation;\n }\n set animation(animation) {\n this._animation = animation;\n }\n static {\n this.ɵfac = function NgbOffcanvasConfig_Factory(t) {\n return new (t || NgbOffcanvasConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbOffcanvasConfig,\n factory: NgbOffcanvasConfig.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbOffcanvasConfig, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\n\n/**\n * A reference to the currently opened (active) offcanvas.\n *\n * Instances of this class can be injected into your component passed as offcanvas content.\n * So you can `.close()` or `.dismiss()` the offcanvas window from your component.\n *\n * @since 12.1.0\n */\nclass NgbActiveOffcanvas {\n /**\n * Closes the offcanvas with an optional `result` value.\n *\n * The `NgbOffcanvasRef.result` promise will be resolved with the provided value.\n */\n close(result) {}\n /**\n * Dismisses the offcanvas with an optional `reason` value.\n *\n * The `NgbOffcanvasRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) {}\n}\n/**\n * A reference to the newly opened offcanvas returned by the `NgbOffcanvas.open()` method.\n *\n * @since 12.1.0\n */\nclass NgbOffcanvasRef {\n /**\n * The instance of a component used for the offcanvas content.\n *\n * When a `TemplateRef` is used as the content or when the offcanvas is closed, will return `undefined`.\n */\n get componentInstance() {\n if (this._contentRef && this._contentRef.componentRef) {\n return this._contentRef.componentRef.instance;\n }\n }\n /**\n * The observable that emits when the offcanvas is closed via the `.close()` method.\n *\n * It will emit the result passed to the `.close()` method.\n */\n get closed() {\n return this._closed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when the offcanvas is dismissed via the `.dismiss()` method.\n *\n * It will emit the reason passed to the `.dismissed()` method by the user, or one of the internal\n * reasons like backdrop click or ESC key press.\n */\n get dismissed() {\n return this._dismissed.asObservable().pipe(takeUntil(this._hidden));\n }\n /**\n * The observable that emits when both offcanvas window and backdrop are closed and animations were finished.\n * At this point offcanvas and backdrop elements will be removed from the DOM tree.\n *\n * This observable will be completed after emitting.\n */\n get hidden() {\n return this._hidden.asObservable();\n }\n /**\n * The observable that emits when offcanvas is fully visible and animation was finished.\n * The offcanvas DOM element is always available synchronously after calling 'offcanvas.open()' service.\n *\n * This observable will be completed after emitting.\n * It will not emit, if offcanvas is closed before open animation is finished.\n */\n get shown() {\n return this._panelCmptRef.instance.shown.asObservable();\n }\n constructor(_panelCmptRef, _contentRef, _backdropCmptRef, _beforeDismiss) {\n this._panelCmptRef = _panelCmptRef;\n this._contentRef = _contentRef;\n this._backdropCmptRef = _backdropCmptRef;\n this._beforeDismiss = _beforeDismiss;\n this._closed = new Subject();\n this._dismissed = new Subject();\n this._hidden = new Subject();\n _panelCmptRef.instance.dismissEvent.subscribe(reason => {\n this.dismiss(reason);\n });\n if (_backdropCmptRef) {\n _backdropCmptRef.instance.dismissEvent.subscribe(reason => {\n this.dismiss(reason);\n });\n }\n this.result = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n this.result.then(null, () => {});\n }\n /**\n * Closes the offcanvas with an optional `result` value.\n *\n * The `NgbMobalRef.result` promise will be resolved with the provided value.\n */\n close(result) {\n if (this._panelCmptRef) {\n this._closed.next(result);\n this._resolve(result);\n this._removeOffcanvasElements();\n }\n }\n _dismiss(reason) {\n this._dismissed.next(reason);\n this._reject(reason);\n this._removeOffcanvasElements();\n }\n /**\n * Dismisses the offcanvas with an optional `reason` value.\n *\n * The `NgbOffcanvasRef.result` promise will be rejected with the provided value.\n */\n dismiss(reason) {\n if (this._panelCmptRef) {\n if (!this._beforeDismiss) {\n this._dismiss(reason);\n } else {\n const dismiss = this._beforeDismiss();\n if (isPromise(dismiss)) {\n dismiss.then(result => {\n if (result !== false) {\n this._dismiss(reason);\n }\n }, () => {});\n } else if (dismiss !== false) {\n this._dismiss(reason);\n }\n }\n }\n }\n _removeOffcanvasElements() {\n const panelTransition$ = this._panelCmptRef.instance.hide();\n const backdropTransition$ = this._backdropCmptRef ? this._backdropCmptRef.instance.hide() : of(undefined);\n // hiding panel\n panelTransition$.subscribe(() => {\n const {\n nativeElement\n } = this._panelCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._panelCmptRef.destroy();\n if (this._contentRef && this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n this._panelCmptRef = null;\n this._contentRef = null;\n });\n // hiding backdrop\n backdropTransition$.subscribe(() => {\n if (this._backdropCmptRef) {\n const {\n nativeElement\n } = this._backdropCmptRef.location;\n nativeElement.parentNode.removeChild(nativeElement);\n this._backdropCmptRef.destroy();\n this._backdropCmptRef = null;\n }\n });\n // all done\n zip(panelTransition$, backdropTransition$).subscribe(() => {\n this._hidden.next();\n this._hidden.complete();\n });\n }\n}\nvar OffcanvasDismissReasons;\n(function (OffcanvasDismissReasons) {\n OffcanvasDismissReasons[OffcanvasDismissReasons[\"BACKDROP_CLICK\"] = 0] = \"BACKDROP_CLICK\";\n OffcanvasDismissReasons[OffcanvasDismissReasons[\"ESC\"] = 1] = \"ESC\";\n})(OffcanvasDismissReasons || (OffcanvasDismissReasons = {}));\nclass NgbOffcanvasBackdrop {\n constructor() {\n this._nativeElement = inject(ElementRef).nativeElement;\n this._zone = inject(NgZone);\n this.dismissEvent = new EventEmitter();\n }\n ngOnInit() {\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n ngbRunTransition(this._zone, this._nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show');\n }, {\n animation: this.animation,\n runningTransition: 'continue'\n });\n });\n }\n hide() {\n return ngbRunTransition(this._zone, this._nativeElement, ({\n classList\n }) => classList.remove('show'), {\n animation: this.animation,\n runningTransition: 'stop'\n });\n }\n dismiss() {\n if (!this.static) {\n this.dismissEvent.emit(OffcanvasDismissReasons.BACKDROP_CLICK);\n }\n }\n static {\n this.ɵfac = function NgbOffcanvasBackdrop_Factory(t) {\n return new (t || NgbOffcanvasBackdrop)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbOffcanvasBackdrop,\n selectors: [[\"ngb-offcanvas-backdrop\"]],\n hostVars: 6,\n hostBindings: function NgbOffcanvasBackdrop_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"mousedown\", function NgbOffcanvasBackdrop_mousedown_HostBindingHandler() {\n return ctx.dismiss();\n });\n }\n if (rf & 2) {\n i0.ɵɵclassMap(\"offcanvas-backdrop\" + (ctx.backdropClass ? \" \" + ctx.backdropClass : \"\"));\n i0.ɵɵclassProp(\"show\", !ctx.animation)(\"fade\", ctx.animation);\n }\n },\n inputs: {\n animation: \"animation\",\n backdropClass: \"backdropClass\",\n static: \"static\"\n },\n outputs: {\n dismissEvent: \"dismiss\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 0,\n vars: 0,\n template: function NgbOffcanvasBackdrop_Template(rf, ctx) {},\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbOffcanvasBackdrop, [{\n type: Component,\n args: [{\n selector: 'ngb-offcanvas-backdrop',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n template: '',\n host: {\n '[class]': '\"offcanvas-backdrop\" + (backdropClass ? \" \" + backdropClass : \"\")',\n '[class.show]': '!animation',\n '[class.fade]': 'animation',\n '(mousedown)': 'dismiss()'\n }\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n backdropClass: [{\n type: Input\n }],\n static: [{\n type: Input\n }],\n dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }]\n });\n})();\nclass NgbOffcanvasPanel {\n constructor() {\n this._document = inject(DOCUMENT);\n this._elRef = inject(ElementRef);\n this._zone = inject(NgZone);\n this._closed$ = new Subject();\n this._elWithFocus = null; // element that is focused prior to offcanvas opening\n this.keyboard = true;\n this.position = 'start';\n this.dismissEvent = new EventEmitter();\n this.shown = new Subject();\n this.hidden = new Subject();\n }\n dismiss(reason) {\n this.dismissEvent.emit(reason);\n }\n ngOnInit() {\n this._elWithFocus = this._document.activeElement;\n this._zone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n this._show();\n });\n }\n ngOnDestroy() {\n this._disableEventHandling();\n }\n hide() {\n const context = {\n animation: this.animation,\n runningTransition: 'stop'\n };\n const offcanvasTransition$ = ngbRunTransition(this._zone, this._elRef.nativeElement, element => {\n element.classList.remove('showing');\n element.classList.add('hiding');\n return () => element.classList.remove('show', 'hiding');\n }, context);\n offcanvasTransition$.subscribe(() => {\n this.hidden.next();\n this.hidden.complete();\n });\n this._disableEventHandling();\n this._restoreFocus();\n return offcanvasTransition$;\n }\n _show() {\n const context = {\n animation: this.animation,\n runningTransition: 'continue'\n };\n const offcanvasTransition$ = ngbRunTransition(this._zone, this._elRef.nativeElement, (element, animation) => {\n if (animation) {\n reflow(element);\n }\n element.classList.add('show', 'showing');\n return () => element.classList.remove('showing');\n }, context);\n offcanvasTransition$.subscribe(() => {\n this.shown.next();\n this.shown.complete();\n });\n this._enableEventHandling();\n this._setFocus();\n }\n _enableEventHandling() {\n const {\n nativeElement\n } = this._elRef;\n this._zone.runOutsideAngular(() => {\n fromEvent(nativeElement, 'keydown').pipe(takeUntil(this._closed$), /* eslint-disable-next-line deprecation/deprecation */\n filter(e => e.which === Key.Escape)).subscribe(event => {\n if (this.keyboard) {\n requestAnimationFrame(() => {\n if (!event.defaultPrevented) {\n this._zone.run(() => this.dismiss(OffcanvasDismissReasons.ESC));\n }\n });\n }\n });\n });\n }\n _disableEventHandling() {\n this._closed$.next();\n }\n _setFocus() {\n const {\n nativeElement\n } = this._elRef;\n if (!nativeElement.contains(document.activeElement)) {\n const autoFocusable = nativeElement.querySelector(`[ngbAutofocus]`);\n const firstFocusable = getFocusableBoundaryElements(nativeElement)[0];\n const elementToFocus = autoFocusable || firstFocusable || nativeElement;\n elementToFocus.focus();\n }\n }\n _restoreFocus() {\n const body = this._document.body;\n const elWithFocus = this._elWithFocus;\n let elementToFocus;\n if (elWithFocus && elWithFocus['focus'] && body.contains(elWithFocus)) {\n elementToFocus = elWithFocus;\n } else {\n elementToFocus = body;\n }\n this._zone.runOutsideAngular(() => {\n setTimeout(() => elementToFocus.focus());\n this._elWithFocus = null;\n });\n }\n static {\n this.ɵfac = function NgbOffcanvasPanel_Factory(t) {\n return new (t || NgbOffcanvasPanel)();\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgbOffcanvasPanel,\n selectors: [[\"ngb-offcanvas-panel\"]],\n hostAttrs: [\"role\", \"dialog\", \"tabindex\", \"-1\"],\n hostVars: 5,\n hostBindings: function NgbOffcanvasPanel_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-modal\", true)(\"aria-labelledby\", ctx.ariaLabelledBy)(\"aria-describedby\", ctx.ariaDescribedBy);\n i0.ɵɵclassMap(\"offcanvas offcanvas-\" + ctx.position + (ctx.panelClass ? \" \" + ctx.panelClass : \"\"));\n }\n },\n inputs: {\n animation: \"animation\",\n ariaLabelledBy: \"ariaLabelledBy\",\n ariaDescribedBy: \"ariaDescribedBy\",\n keyboard: \"keyboard\",\n panelClass: \"panelClass\",\n position: \"position\"\n },\n outputs: {\n dismissEvent: \"dismiss\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c0,\n decls: 1,\n vars: 0,\n template: function NgbOffcanvasPanel_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbOffcanvasPanel, [{\n type: Component,\n args: [{\n selector: 'ngb-offcanvas-panel',\n standalone: true,\n template: '',\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': '\"offcanvas offcanvas-\" + position + (panelClass ? \" \" + panelClass : \"\")',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'ariaLabelledBy',\n '[attr.aria-describedby]': 'ariaDescribedBy'\n }\n }]\n }], null, {\n animation: [{\n type: Input\n }],\n ariaLabelledBy: [{\n type: Input\n }],\n ariaDescribedBy: [{\n type: Input\n }],\n keyboard: [{\n type: Input\n }],\n panelClass: [{\n type: Input\n }],\n position: [{\n type: Input\n }],\n dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }]\n });\n})();\nclass NgbOffcanvasStack {\n constructor() {\n this._applicationRef = inject(ApplicationRef);\n this._injector = inject(Injector);\n this._document = inject(DOCUMENT);\n this._scrollBar = inject(ScrollBar);\n this._activePanelCmptHasChanged = new Subject();\n this._scrollBarRestoreFn = null;\n this._backdropAttributes = ['animation', 'backdropClass'];\n this._panelAttributes = ['animation', 'ariaDescribedBy', 'ariaLabelledBy', 'keyboard', 'panelClass', 'position'];\n this._activeInstance = new EventEmitter();\n const ngZone = inject(NgZone);\n // Trap focus on active PanelCmpt\n this._activePanelCmptHasChanged.subscribe(() => {\n if (this._panelCmpt) {\n ngbFocusTrap(ngZone, this._panelCmpt.location.nativeElement, this._activePanelCmptHasChanged);\n }\n });\n }\n _restoreScrollBar() {\n const scrollBarRestoreFn = this._scrollBarRestoreFn;\n if (scrollBarRestoreFn) {\n this._scrollBarRestoreFn = null;\n scrollBarRestoreFn();\n }\n }\n _hideScrollBar() {\n if (!this._scrollBarRestoreFn) {\n this._scrollBarRestoreFn = this._scrollBar.hide();\n }\n }\n open(contentInjector, content, options) {\n const containerEl = options.container instanceof HTMLElement ? options.container : isDefined(options.container) ? this._document.querySelector(options.container) : this._document.body;\n if (!containerEl) {\n throw new Error(`The specified offcanvas container \"${options.container || 'body'}\" was not found in the DOM.`);\n }\n if (!options.scroll) {\n this._hideScrollBar();\n }\n const activeOffcanvas = new NgbActiveOffcanvas();\n const contentRef = this._getContentRef(options.injector || contentInjector, content, activeOffcanvas);\n let backdropCmptRef = options.backdrop !== false ? this._attachBackdrop(containerEl) : undefined;\n let panelCmptRef = this._attachWindowComponent(containerEl, contentRef.nodes);\n let ngbOffcanvasRef = new NgbOffcanvasRef(panelCmptRef, contentRef, backdropCmptRef, options.beforeDismiss);\n this._registerOffcanvasRef(ngbOffcanvasRef);\n this._registerPanelCmpt(panelCmptRef);\n ngbOffcanvasRef.hidden.pipe(finalize(() => this._restoreScrollBar())).subscribe();\n activeOffcanvas.close = result => {\n ngbOffcanvasRef.close(result);\n };\n activeOffcanvas.dismiss = reason => {\n ngbOffcanvasRef.dismiss(reason);\n };\n this._applyPanelOptions(panelCmptRef.instance, options);\n if (backdropCmptRef && backdropCmptRef.instance) {\n this._applyBackdropOptions(backdropCmptRef.instance, options);\n backdropCmptRef.changeDetectorRef.detectChanges();\n }\n panelCmptRef.changeDetectorRef.detectChanges();\n return ngbOffcanvasRef;\n }\n get activeInstance() {\n return this._activeInstance;\n }\n dismiss(reason) {\n this._offcanvasRef?.dismiss(reason);\n }\n hasOpenOffcanvas() {\n return !!this._offcanvasRef;\n }\n _attachBackdrop(containerEl) {\n let backdropCmptRef = createComponent(NgbOffcanvasBackdrop, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector\n });\n this._applicationRef.attachView(backdropCmptRef.hostView);\n containerEl.appendChild(backdropCmptRef.location.nativeElement);\n return backdropCmptRef;\n }\n _attachWindowComponent(containerEl, projectableNodes) {\n let panelCmptRef = createComponent(NgbOffcanvasPanel, {\n environmentInjector: this._applicationRef.injector,\n elementInjector: this._injector,\n projectableNodes\n });\n this._applicationRef.attachView(panelCmptRef.hostView);\n containerEl.appendChild(panelCmptRef.location.nativeElement);\n return panelCmptRef;\n }\n _applyPanelOptions(windowInstance, options) {\n this._panelAttributes.forEach(optionName => {\n if (isDefined(options[optionName])) {\n windowInstance[optionName] = options[optionName];\n }\n });\n }\n _applyBackdropOptions(backdropInstance, options) {\n this._backdropAttributes.forEach(optionName => {\n if (isDefined(options[optionName])) {\n backdropInstance[optionName] = options[optionName];\n }\n });\n backdropInstance.static = options.backdrop === 'static';\n }\n _getContentRef(contentInjector, content, activeOffcanvas) {\n if (!content) {\n return new ContentRef([]);\n } else if (content instanceof TemplateRef) {\n return this._createFromTemplateRef(content, activeOffcanvas);\n } else if (isString(content)) {\n return this._createFromString(content);\n } else {\n return this._createFromComponent(contentInjector, content, activeOffcanvas);\n }\n }\n _createFromTemplateRef(templateRef, activeOffcanvas) {\n const context = {\n $implicit: activeOffcanvas,\n close(result) {\n activeOffcanvas.close(result);\n },\n dismiss(reason) {\n activeOffcanvas.dismiss(reason);\n }\n };\n const viewRef = templateRef.createEmbeddedView(context);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n _createFromString(content) {\n const component = this._document.createTextNode(`${content}`);\n return new ContentRef([[component]]);\n }\n _createFromComponent(contentInjector, componentType, context) {\n const elementInjector = Injector.create({\n providers: [{\n provide: NgbActiveOffcanvas,\n useValue: context\n }],\n parent: contentInjector\n });\n const componentRef = createComponent(componentType, {\n environmentInjector: this._applicationRef.injector,\n elementInjector\n });\n const componentNativeEl = componentRef.location.nativeElement;\n this._applicationRef.attachView(componentRef.hostView);\n return new ContentRef([[componentNativeEl]], componentRef.hostView, componentRef);\n }\n _registerOffcanvasRef(ngbOffcanvasRef) {\n const unregisterOffcanvasRef = () => {\n this._offcanvasRef = undefined;\n this._activeInstance.emit(this._offcanvasRef);\n };\n this._offcanvasRef = ngbOffcanvasRef;\n this._activeInstance.emit(this._offcanvasRef);\n ngbOffcanvasRef.result.then(unregisterOffcanvasRef, unregisterOffcanvasRef);\n }\n _registerPanelCmpt(ngbPanelCmpt) {\n this._panelCmpt = ngbPanelCmpt;\n this._activePanelCmptHasChanged.next();\n ngbPanelCmpt.onDestroy(() => {\n this._panelCmpt = undefined;\n this._activePanelCmptHasChanged.next();\n });\n }\n static {\n this.ɵfac = function NgbOffcanvasStack_Factory(t) {\n return new (t || NgbOffcanvasStack)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbOffcanvasStack,\n factory: NgbOffcanvasStack.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbOffcanvasStack, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], () => [], null);\n})();\n\n/**\n * A service for opening an offcanvas.\n *\n * Creating an offcanvas is straightforward: create a component or a template and pass it as an argument to\n * the `.open()` method.\n *\n * @since 12.1.0\n */\nclass NgbOffcanvas {\n constructor() {\n this._injector = inject(Injector);\n this._offcanvasStack = inject(NgbOffcanvasStack);\n this._config = inject(NgbOffcanvasConfig);\n }\n /**\n * Opens a new offcanvas panel with the specified content and supplied options.\n *\n * Content can be provided as a `TemplateRef` or a component type. If you pass a component type as content,\n * then instances of those components can be injected with an instance of the `NgbActiveOffcanvas` class. You can then\n * use `NgbActiveOffcanvas` methods to close / dismiss offcanvas from \"inside\" of your component.\n *\n * Also see the [`NgbOffcanvasOptions`](#/components/offcanvas/api#NgbOffcanvasOptions) for the list of supported\n * options.\n */\n open(content, options = {}) {\n const combinedOptions = {\n ...this._config,\n animation: this._config.animation,\n ...options\n };\n return this._offcanvasStack.open(this._injector, content, combinedOptions);\n }\n /**\n * Returns an observable that holds the active offcanvas instance.\n */\n get activeInstance() {\n return this._offcanvasStack.activeInstance;\n }\n /**\n * Dismisses the currently displayed offcanvas with the supplied reason.\n */\n dismiss(reason) {\n this._offcanvasStack.dismiss(reason);\n }\n /**\n * Indicates if there is currently an open offcanvas in the application.\n */\n hasOpenOffcanvas() {\n return this._offcanvasStack.hasOpenOffcanvas();\n }\n static {\n this.ɵfac = function NgbOffcanvas_Factory(t) {\n return new (t || NgbOffcanvas)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgbOffcanvas,\n factory: NgbOffcanvas.ɵfac,\n providedIn: 'root'\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbOffcanvas, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], null, null);\n})();\nclass NgbOffcanvasModule {\n static {\n this.ɵfac = function NgbOffcanvasModule_Factory(t) {\n return new (t || NgbOffcanvasModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbOffcanvasModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbOffcanvasModule, [{\n type: NgModule,\n args: [{}]\n }], null, null);\n})();\nconst NGB_MODULES = [NgbAccordionModule, NgbAlertModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbOffcanvasModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbScrollSpyModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule];\nclass NgbModule {\n static {\n this.ɵfac = function NgbModule_Factory(t) {\n return new (t || NgbModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgbModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [NGB_MODULES, NgbAccordionModule, NgbAlertModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbOffcanvasModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbScrollSpyModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule]\n });\n }\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NgbModule, [{\n type: NgModule,\n args: [{\n imports: NGB_MODULES,\n exports: NGB_MODULES\n }]\n }], null, null);\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ModalDismissReasons, NgbAccordionBody, NgbAccordionButton, NgbAccordionCollapse, NgbAccordionConfig, NgbAccordionDirective, NgbAccordionHeader, NgbAccordionItem, NgbAccordionModule, NgbAccordionToggle, NgbActiveModal, NgbActiveOffcanvas, NgbAlert, NgbAlertConfig, NgbAlertModule, NgbCalendar, NgbCalendarBuddhist, NgbCalendarEthiopian, NgbCalendarGregorian, NgbCalendarHebrew, NgbCalendarIslamicCivil, NgbCalendarIslamicUmalqura, NgbCalendarPersian, NgbCarousel, NgbCarouselConfig, NgbCarouselModule, NgbCollapse, NgbCollapseConfig, NgbCollapseModule, NgbConfig, NgbDate, NgbDateAdapter, NgbDateNativeAdapter, NgbDateNativeUTCAdapter, NgbDateParserFormatter, NgbDateStructAdapter, NgbDatepicker, NgbDatepickerConfig, NgbDatepickerContent, NgbDatepickerI18n, NgbDatepickerI18nAmharic, NgbDatepickerI18nDefault, NgbDatepickerI18nHebrew, NgbDatepickerKeyboardService, NgbDatepickerModule, NgbDatepickerMonth, NgbDropdown, NgbDropdownAnchor, NgbDropdownButtonItem, NgbDropdownConfig, NgbDropdownItem, NgbDropdownMenu, NgbDropdownModule, NgbDropdownToggle, NgbHighlight, NgbInputDatepicker, NgbInputDatepickerConfig, NgbModal, NgbModalConfig, NgbModalModule, NgbModalRef, NgbModule, NgbNav, NgbNavConfig, NgbNavContent, NgbNavItem, NgbNavItemRole, NgbNavLink, NgbNavLinkBase, NgbNavLinkButton, NgbNavModule, NgbNavOutlet, NgbNavPane, NgbOffcanvas, NgbOffcanvasConfig, NgbOffcanvasModule, NgbOffcanvasRef, NgbPagination, NgbPaginationConfig, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationModule, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPages, NgbPaginationPrevious, NgbPopover, NgbPopoverConfig, NgbPopoverModule, NgbProgressbar, NgbProgressbarConfig, NgbProgressbarModule, NgbProgressbarStacked, NgbRating, NgbRatingConfig, NgbRatingModule, NgbScrollSpy, NgbScrollSpyConfig, NgbScrollSpyFragment, NgbScrollSpyItem, NgbScrollSpyMenu, NgbScrollSpyModule, NgbScrollSpyService, NgbSlide, NgbSlideEventDirection, NgbSlideEventSource, NgbTimeAdapter, NgbTimepicker, NgbTimepickerConfig, NgbTimepickerI18n, NgbTimepickerModule, NgbToast, NgbToastConfig, NgbToastHeader, NgbToastModule, NgbTooltip, NgbTooltipConfig, NgbTooltipModule, NgbTypeahead, NgbTypeaheadConfig, NgbTypeaheadModule, OffcanvasDismissReasons };\n","/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { NgIf } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AuthService } from 'src/app/shared/services/auth.service';\n\n/**\n * Error notification component\n */\n@Component({\n standalone: true,\n selector: 'app-error',\n templateUrl: './error.component.html',\n styleUrls: ['./error.component.scss', '../../ddaap-styles.scss'],\n imports: [NgIf, TranslateModule],\n})\nexport class ErrorComponent {\n doRedirectOnClose = false;\n\n @Input() errorMessage?: string | null;\n @Output() closeErrorNotification = new EventEmitter();\n\n constructor(\n private authService: AuthService,\n private activeModal: NgbActiveModal\n ) {}\n\n onCloseErrorNotification() {\n if (this.doRedirectOnClose) {\n this.authService.redirectToPageBasedOnLoginState();\n }\n this.activeModal.dismiss();\n this.errorMessage = null;\n this.closeErrorNotification.emit();\n }\n}\n","\n\n \n \n \n \n \n\n"],"mappings":"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AgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA,EAAgB;AAAA;AAAA,EAEhE;AAAc;AACd,SAAS,YAAY,OAAO,OAAO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","names":["observer","ref","debounce","f","name","_a","_c0","FieldType","FieldType_Factory","FieldType_Query","FieldType","FieldType","o","FieldType","_c0","FieldType","_c0","FieldType","FieldType","_c0","SortDirectionEnum","ViewMode","ComparisonOperator","DataType","InputType","SchemaType","_c0","_c1","_c2","start","offset","filter","name","style","window","min","max","toPaddingObject","popperOffsets","min","max","offset","effect","popper","effect","window","hash","clippingParents","reference","popperOffsets","offset","placements","placement","placements","placement","_loop","_i","checks","offset","popperOffsets","offset","min","max","map","fn","merged","defaultModifiers","createPopper","reference","popper","options","fn","state","effect","noopFn","_c0","_c1","_c2","_c3","_c12","_c13","max","min","isPromise","NgbSlideEventDirection","NgbSlideEventSource","start","end","NavigationEvent","Key","fn","document","first","ModalDismissReasons","options","nextId","fragment","offset","delay","OffcanvasDismissReasons","ErrorComponent"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,19,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74]}