(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["vendor"],{ /***/ "/d8p": /*!*****************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/operators/repeat.js ***! \*****************************************************************/ /*! exports provided: repeat */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return repeat; }); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subscriber */ "7o/Q"); /* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/empty */ "EY2u"); function repeat(count = -1) { return (source) => { if (count === 0) { return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_1__["empty"])(); } else if (count < 0) { return source.lift(new RepeatOperator(-1, source)); } else { return source.lift(new RepeatOperator(count - 1, source)); } }; } class RepeatOperator { constructor(count, source) { this.count = count; this.source = source; } call(subscriber, source) { return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source)); } } class RepeatSubscriber extends _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"] { constructor(destination, count, source) { super(destination); this.count = count; this.source = source; } complete() { if (!this.isStopped) { const { source, count } = this; if (count === 0) { return super.complete(); } else if (count > -1) { this.count = count - 1; } source.subscribe(this._unsubscribeAndRecycle()); } } } //# sourceMappingURL=repeat.js.map /***/ }), /***/ "/uUt": /*!*******************************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js ***! \*******************************************************************************/ /*! exports provided: distinctUntilChanged */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinctUntilChanged", function() { return distinctUntilChanged; }); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subscriber */ "7o/Q"); function distinctUntilChanged(compare, keySelector) { return (source) => source.lift(new DistinctUntilChangedOperator(compare, keySelector)); } class DistinctUntilChangedOperator { constructor(compare, keySelector) { this.compare = compare; this.keySelector = keySelector; } call(subscriber, source) { return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector)); } } class DistinctUntilChangedSubscriber extends _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"] { constructor(destination, compare, keySelector) { super(destination); this.keySelector = keySelector; this.hasKey = false; if (typeof compare === 'function') { this.compare = compare; } } compare(x, y) { return x === y; } _next(value) { let key; try { const { keySelector } = this; key = keySelector ? keySelector(value) : value; } catch (err) { return this.destination.error(err); } let result = false; if (this.hasKey) { try { const { compare } = this; result = compare(this.key, key); } catch (err) { return this.destination.error(err); } } else { this.hasKey = true; } if (!result) { this.key = key; this.destination.next(value); } } } //# sourceMappingURL=distinctUntilChanged.js.map /***/ }), /***/ "02Lk": /*!*******************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/operators/distinct.js ***! \*******************************************************************/ /*! exports provided: distinct, DistinctSubscriber */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinct", function() { return distinct; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DistinctSubscriber", function() { return DistinctSubscriber; }); /* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../OuterSubscriber */ "l7GE"); /* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeToResult */ "ZUHj"); function distinct(keySelector, flushes) { return (source) => source.lift(new DistinctOperator(keySelector, flushes)); } class DistinctOperator { constructor(keySelector, flushes) { this.keySelector = keySelector; this.flushes = flushes; } call(subscriber, source) { return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes)); } } class DistinctSubscriber extends _OuterSubscriber__WEBPACK_IMPORTED_MODULE_0__["OuterSubscriber"] { constructor(destination, keySelector, flushes) { super(destination); this.keySelector = keySelector; this.values = new Set(); if (flushes) { this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__["subscribeToResult"])(this, flushes)); } } notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { this.values.clear(); } notifyError(error, innerSub) { this._error(error); } _next(value) { if (this.keySelector) { this._useKeySelector(value); } else { this._finalizeNext(value, value); } } _useKeySelector(value) { let key; const { destination } = this; try { key = this.keySelector(value); } catch (err) { destination.error(err); return; } this._finalizeNext(key, value); } _finalizeNext(key, value) { const { values } = this; if (!values.has(key)) { values.add(key); this.destination.next(value); } } } //# sourceMappingURL=distinct.js.map /***/ }), /***/ "04ZW": /*!****************************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/observable/fromEventPattern.js ***! \****************************************************************************/ /*! exports provided: fromEventPattern */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromEventPattern", function() { return fromEventPattern; }); /* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Observable */ "HDdC"); /* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ "DH7j"); /* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../util/isFunction */ "n6bG"); /* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../operators/map */ "lJxs"); function fromEventPattern(addHandler, removeHandler, resultSelector) { if (resultSelector) { return fromEventPattern(addHandler, removeHandler).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__["map"])(args => Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(args) ? resultSelector(...args) : resultSelector(args))); } return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](subscriber => { const handler = (...e) => subscriber.next(e.length === 1 ? e[0] : e); let retValue; try { retValue = addHandler(handler); } catch (err) { subscriber.error(err); return undefined; } if (!Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__["isFunction"])(removeHandler)) { return undefined; } return () => removeHandler(handler, retValue); }); } //# sourceMappingURL=fromEventPattern.js.map /***/ }), /***/ "05l1": /*!************************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/operators/publishReplay.js ***! \************************************************************************/ /*! exports provided: publishReplay */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return publishReplay; }); /* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../ReplaySubject */ "jtHE"); /* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./multicast */ "oB13"); function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) { if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') { scheduler = selectorOrScheduler; } const selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined; const subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__["ReplaySubject"](bufferSize, windowTime, scheduler); return (source) => Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(() => subject, selector)(source); } //# sourceMappingURL=publishReplay.js.map /***/ }), /***/ "0EQZ": /*!************************************************************************!*\ !*** ./node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/collections.js ***! \************************************************************************/ /*! exports provided: ArrayDataSource, DataSource, SelectionModel, UniqueSelectionDispatcher, getMultipleValuesInSingleSelectionError, isDataSource */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ArrayDataSource", function() { return ArrayDataSource; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DataSource", function() { return DataSource; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectionModel", function() { return SelectionModel; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UniqueSelectionDispatcher", function() { return UniqueSelectionDispatcher; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMultipleValuesInSingleSelectionError", function() { return getMultipleValuesInSingleSelectionError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDataSource", function() { return isDataSource; }); /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rxjs */ "qCKp"); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "fXoL"); /** * @fileoverview added by tsickle * Generated from: src/cdk/collections/data-source.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @abstract * @template T */ class DataSource { } if (false) {} /** * Checks whether an object is a data source. * @param {?} value * @return {?} */ function isDataSource(value) { // Check if the value is a DataSource by observing if it has a connect function. Cannot // be checked as an `instanceof DataSource` since people could create their own sources // that match the interface, but don't extend DataSource. return value && typeof value.connect === 'function'; } /** * @fileoverview added by tsickle * Generated from: src/cdk/collections/array-data-source.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * DataSource wrapper for a native array. * @template T */ class ArrayDataSource extends DataSource { /** * @param {?} _data */ constructor(_data) { super(); this._data = _data; } /** * @return {?} */ connect() { return Object(rxjs__WEBPACK_IMPORTED_MODULE_0__["isObservable"])(this._data) ? this._data : Object(rxjs__WEBPACK_IMPORTED_MODULE_0__["of"])(this._data); } /** * @return {?} */ disconnect() { } } if (false) {} /** * @fileoverview added by tsickle * Generated from: src/cdk/collections/collection-viewer.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * Interface for any component that provides a view of some data collection and wants to provide * information regarding the view and any changes made. * @record */ function CollectionViewer() { } if (false) {} /** * @fileoverview added by tsickle * Generated from: src/cdk/collections/selection-model.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Class to be used to power selecting one or more options from a list. * @template T */ class SelectionModel { /** * @param {?=} _multiple * @param {?=} initiallySelectedValues * @param {?=} _emitChanges */ constructor(_multiple = false, initiallySelectedValues, _emitChanges = true) { this._multiple = _multiple; this._emitChanges = _emitChanges; /** * Currently-selected values. */ this._selection = new Set(); /** * Keeps track of the deselected options that haven't been emitted by the change event. */ this._deselectedToEmit = []; /** * Keeps track of the selected options that haven't been emitted by the change event. */ this._selectedToEmit = []; /** * Event emitted when the value has changed. */ this.changed = new rxjs__WEBPACK_IMPORTED_MODULE_0__["Subject"](); if (initiallySelectedValues && initiallySelectedValues.length) { if (_multiple) { initiallySelectedValues.forEach((/** * @param {?} value * @return {?} */ value => this._markSelected(value))); } else { this._markSelected(initiallySelectedValues[0]); } // Clear the array in order to avoid firing the change event for preselected values. this._selectedToEmit.length = 0; } } /** * Selected values. * @return {?} */ get selected() { if (!this._selected) { this._selected = Array.from(this._selection.values()); } return this._selected; } /** * Selects a value or an array of values. * @param {...?} values * @return {?} */ select(...values) { this._verifyValueAssignment(values); values.forEach((/** * @param {?} value * @return {?} */ value => this._markSelected(value))); this._emitChangeEvent(); } /** * Deselects a value or an array of values. * @param {...?} values * @return {?} */ deselect(...values) { this._verifyValueAssignment(values); values.forEach((/** * @param {?} value * @return {?} */ value => this._unmarkSelected(value))); this._emitChangeEvent(); } /** * Toggles a value between selected and deselected. * @param {?} value * @return {?} */ toggle(value) { this.isSelected(value) ? this.deselect(value) : this.select(value); } /** * Clears all of the selected values. * @return {?} */ clear() { this._unmarkAll(); this._emitChangeEvent(); } /** * Determines whether a value is selected. * @param {?} value * @return {?} */ isSelected(value) { return this._selection.has(value); } /** * Determines whether the model does not have a value. * @return {?} */ isEmpty() { return this._selection.size === 0; } /** * Determines whether the model has a value. * @return {?} */ hasValue() { return !this.isEmpty(); } /** * Sorts the selected values based on a predicate function. * @param {?=} predicate * @return {?} */ sort(predicate) { if (this._multiple && this.selected) { (/** @type {?} */ (this._selected)).sort(predicate); } } /** * Gets whether multiple values can be selected. * @return {?} */ isMultipleSelection() { return this._multiple; } /** * Emits a change event and clears the records of selected and deselected values. * @private * @return {?} */ _emitChangeEvent() { // Clear the selected values so they can be re-cached. this._selected = null; if (this._selectedToEmit.length || this._deselectedToEmit.length) { this.changed.next({ source: this, added: this._selectedToEmit, removed: this._deselectedToEmit }); this._deselectedToEmit = []; this._selectedToEmit = []; } } /** * Selects a value. * @private * @param {?} value * @return {?} */ _markSelected(value) { if (!this.isSelected(value)) { if (!this._multiple) { this._unmarkAll(); } this._selection.add(value); if (this._emitChanges) { this._selectedToEmit.push(value); } } } /** * Deselects a value. * @private * @param {?} value * @return {?} */ _unmarkSelected(value) { if (this.isSelected(value)) { this._selection.delete(value); if (this._emitChanges) { this._deselectedToEmit.push(value); } } } /** * Clears out the selected values. * @private * @return {?} */ _unmarkAll() { if (!this.isEmpty()) { this._selection.forEach((/** * @param {?} value * @return {?} */ value => this._unmarkSelected(value))); } } /** * Verifies the value assignment and throws an error if the specified value array is * including multiple values while the selection model is not supporting multiple values. * @private * @param {?} values * @return {?} */ _verifyValueAssignment(values) { if (values.length > 1 && !this._multiple) { throw getMultipleValuesInSingleSelectionError(); } } } if (false) {} /** * Event emitted when the value of a MatSelectionModel has changed. * \@docs-private * @record * @template T */ function SelectionChange() { } if (false) {} /** * Returns an error that reports that multiple values are passed into a selection model * with a single value. * \@docs-private * @return {?} */ function getMultipleValuesInSingleSelectionError() { return Error('Cannot pass multiple values into SelectionModel with single-value mode.'); } /** * @fileoverview added by tsickle * Generated from: src/cdk/collections/unique-selection-dispatcher.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Class to coordinate unique selection based on name. * Intended to be consumed as an Angular service. * This service is needed because native radio change events are only fired on the item currently * being selected, and we still need to uncheck the previous selection. * * This service does not *store* any IDs and names because they may change at any time, so it is * less error-prone if they are simply passed through when the events occur. */ class UniqueSelectionDispatcher { constructor() { this._listeners = []; } /** * Notify other items that selection for the given name has been set. * @param {?} id ID of the item. * @param {?} name Name of the item. * @return {?} */ notify(id, name) { for (let listener of this._listeners) { listener(id, name); } } /** * Listen for future changes to item selection. * @param {?} listener * @return {?} Function used to deregister listener */ listen(listener) { this._listeners.push(listener); return (/** * @return {?} */ () => { this._listeners = this._listeners.filter((/** * @param {?} registered * @return {?} */ (registered) => { return listener !== registered; })); }); } /** * @return {?} */ ngOnDestroy() { this._listeners = []; } } UniqueSelectionDispatcher.ɵfac = function UniqueSelectionDispatcher_Factory(t) { return new (t || UniqueSelectionDispatcher)(); }; /** @nocollapse */ UniqueSelectionDispatcher.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineInjectable"])({ factory: function UniqueSelectionDispatcher_Factory() { return new UniqueSelectionDispatcher(); }, token: UniqueSelectionDispatcher, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵsetClassMetadata"](UniqueSelectionDispatcher, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return []; }, null); })(); if (false) {} /** * @fileoverview added by tsickle * Generated from: src/cdk/collections/tree-adapter.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * Interface for a class that can flatten hierarchical structured data and re-expand the flattened * data back into its original structure. Should be used in conjunction with the cdk-tree. * @record * @template T */ function TreeDataNodeFlattener() { } if (false) {} /** * @fileoverview added by tsickle * Generated from: src/cdk/collections/public-api.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * Generated bundle index. Do not edit. */ //# sourceMappingURL=collections.js.map /***/ }), /***/ "0EUg": /*!********************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/operators/concatAll.js ***! \********************************************************************/ /*! exports provided: concatAll */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatAll", function() { return concatAll; }); /* harmony import */ var _mergeAll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./mergeAll */ "bHdf"); function concatAll() { return Object(_mergeAll__WEBPACK_IMPORTED_MODULE_0__["mergeAll"])(1); } //# sourceMappingURL=concatAll.js.map /***/ }), /***/ "0Pi8": /*!******************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/operators/endWith.js ***! \******************************************************************/ /*! exports provided: endWith */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "endWith", function() { return endWith; }); /* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../observable/concat */ "GyhO"); /* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../observable/of */ "LRne"); function endWith(...array) { return (source) => Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__["concat"])(source, Object(_observable_of__WEBPACK_IMPORTED_MODULE_1__["of"])(...array)); } //# sourceMappingURL=endWith.js.map /***/ }), /***/ "128B": /*!*****************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/operators/reduce.js ***! \*****************************************************************/ /*! exports provided: reduce */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return reduce; }); /* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./scan */ "Kqap"); /* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./takeLast */ "BFxc"); /* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./defaultIfEmpty */ "xbPD"); /* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../util/pipe */ "mCNh"); function reduce(accumulator, seed) { if (arguments.length >= 2) { return function reduceOperatorFunctionWithSeed(source) { return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__["pipe"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__["scan"])(accumulator, seed), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__["takeLast"])(1), Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__["defaultIfEmpty"])(seed))(source); }; } return function reduceOperatorFunction(source) { return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__["pipe"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__["scan"])((acc, value, index) => accumulator(acc, value, index + 1)), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__["takeLast"])(1))(source); }; } //# sourceMappingURL=reduce.js.map /***/ }), /***/ "1G5W": /*!********************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js ***! \********************************************************************/ /*! exports provided: takeUntil */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "takeUntil", function() { return takeUntil; }); /* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../OuterSubscriber */ "l7GE"); /* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeToResult */ "ZUHj"); function takeUntil(notifier) { return (source) => source.lift(new TakeUntilOperator(notifier)); } class TakeUntilOperator { constructor(notifier) { this.notifier = notifier; } call(subscriber, source) { const takeUntilSubscriber = new TakeUntilSubscriber(subscriber); const notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__["subscribeToResult"])(takeUntilSubscriber, this.notifier); if (notifierSubscription && !takeUntilSubscriber.seenValue) { takeUntilSubscriber.add(notifierSubscription); return source.subscribe(takeUntilSubscriber); } return takeUntilSubscriber; } } class TakeUntilSubscriber extends _OuterSubscriber__WEBPACK_IMPORTED_MODULE_0__["OuterSubscriber"] { constructor(destination) { super(destination); this.seenValue = false; } notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { this.seenValue = true; this.complete(); } notifyComplete() { } } //# sourceMappingURL=takeUntil.js.map /***/ }), /***/ "1Ykd": /*!*********************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/operators/sampleTime.js ***! \*********************************************************************/ /*! exports provided: sampleTime */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sampleTime", function() { return sampleTime; }); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subscriber */ "7o/Q"); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../scheduler/async */ "D0XW"); function sampleTime(period, scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]) { return (source) => source.lift(new SampleTimeOperator(period, scheduler)); } class SampleTimeOperator { constructor(period, scheduler) { this.period = period; this.scheduler = scheduler; } call(subscriber, source) { return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler)); } } class SampleTimeSubscriber extends _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"] { constructor(destination, period, scheduler) { super(destination); this.period = period; this.scheduler = scheduler; this.hasValue = false; this.add(scheduler.schedule(dispatchNotification, period, { subscriber: this, period })); } _next(value) { this.lastValue = value; this.hasValue = true; } notifyNext() { if (this.hasValue) { this.hasValue = false; this.destination.next(this.lastValue); } } } function dispatchNotification(state) { let { subscriber, period } = state; subscriber.notifyNext(); this.schedule(state, period); } //# sourceMappingURL=sampleTime.js.map /***/ }), /***/ "1kSV": /*!***************************************************************************************!*\ !*** ./node_modules/@ng-bootstrap/ng-bootstrap/__ivy_ngcc__/fesm2015/ng-bootstrap.js ***! \***************************************************************************************/ /*! exports provided: ModalDismissReasons, NgbAccordion, NgbAccordionConfig, NgbAccordionModule, NgbActiveModal, NgbAlert, NgbAlertConfig, NgbAlertModule, NgbButtonLabel, NgbButtonsModule, NgbCalendar, NgbCalendarGregorian, NgbCalendarHebrew, NgbCalendarIslamicCivil, NgbCalendarIslamicUmalqura, NgbCalendarPersian, NgbCarousel, NgbCarouselConfig, NgbCarouselModule, NgbCheckBox, NgbCollapse, NgbCollapseConfig, NgbCollapseModule, NgbConfig, NgbDate, NgbDateAdapter, NgbDateNativeAdapter, NgbDateNativeUTCAdapter, NgbDateParserFormatter, NgbDatepicker, NgbDatepickerConfig, NgbDatepickerContent, NgbDatepickerI18n, NgbDatepickerI18nHebrew, NgbDatepickerKeyboardService, NgbDatepickerModule, NgbDatepickerMonth, NgbDropdown, NgbDropdownAnchor, NgbDropdownConfig, NgbDropdownItem, NgbDropdownMenu, NgbDropdownModule, NgbDropdownToggle, NgbHighlight, NgbInputDatepicker, NgbInputDatepickerConfig, NgbModal, NgbModalConfig, NgbModalModule, NgbModalRef, NgbModule, NgbNav, NgbNavConfig, NgbNavContent, NgbNavItem, NgbNavLink, NgbNavModule, NgbNavOutlet, NgbNavPane, NgbNavbar, NgbPagination, NgbPaginationConfig, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationModule, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious, NgbPanel, NgbPanelContent, NgbPanelHeader, NgbPanelTitle, NgbPanelToggle, NgbPopover, NgbPopoverConfig, NgbPopoverModule, NgbProgressbar, NgbProgressbarConfig, NgbProgressbarModule, NgbRadio, NgbRadioGroup, NgbRating, NgbRatingConfig, NgbRatingModule, NgbSlide, NgbSlideEventDirection, NgbSlideEventSource, NgbTimeAdapter, NgbTimepicker, NgbTimepickerConfig, NgbTimepickerI18n, NgbTimepickerModule, NgbToast, NgbToastConfig, NgbToastHeader, NgbToastModule, NgbTooltip, NgbTooltipConfig, NgbTooltipModule, NgbTypeahead, NgbTypeaheadConfig, NgbTypeaheadModule, ɵa, ɵb, ɵba, ɵbb, ɵbc, ɵc, ɵd, ɵe, ɵf, ɵg, ɵh, ɵi, ɵj, ɵk, ɵl, ɵm, ɵn, ɵo, ɵp, ɵq, ɵr, ɵs, ɵt, ɵu, ɵv, ɵw, ɵx, ɵy, ɵz */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ModalDismissReasons", function() { return ModalDismissReasons; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbAccordion", function() { return NgbAccordion; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbAccordionConfig", function() { return NgbAccordionConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbAccordionModule", function() { return NgbAccordionModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbActiveModal", function() { return NgbActiveModal; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbAlert", function() { return NgbAlert; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbAlertConfig", function() { return NgbAlertConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbAlertModule", function() { return NgbAlertModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbButtonLabel", function() { return NgbButtonLabel; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbButtonsModule", function() { return NgbButtonsModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbCalendar", function() { return NgbCalendar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbCalendarGregorian", function() { return NgbCalendarGregorian; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbCalendarHebrew", function() { return NgbCalendarHebrew; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbCalendarIslamicCivil", function() { return NgbCalendarIslamicCivil; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbCalendarIslamicUmalqura", function() { return NgbCalendarIslamicUmalqura; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbCalendarPersian", function() { return NgbCalendarPersian; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbCarousel", function() { return NgbCarousel; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbCarouselConfig", function() { return NgbCarouselConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbCarouselModule", function() { return NgbCarouselModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbCheckBox", function() { return NgbCheckBox; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbCollapse", function() { return NgbCollapse; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbCollapseConfig", function() { return NgbCollapseConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbCollapseModule", function() { return NgbCollapseModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbConfig", function() { return NgbConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDate", function() { return NgbDate; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDateAdapter", function() { return NgbDateAdapter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDateNativeAdapter", function() { return NgbDateNativeAdapter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDateNativeUTCAdapter", function() { return NgbDateNativeUTCAdapter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDateParserFormatter", function() { return NgbDateParserFormatter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDatepicker", function() { return NgbDatepicker; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDatepickerConfig", function() { return NgbDatepickerConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDatepickerContent", function() { return NgbDatepickerContent; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDatepickerI18n", function() { return NgbDatepickerI18n; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDatepickerI18nHebrew", function() { return NgbDatepickerI18nHebrew; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDatepickerKeyboardService", function() { return NgbDatepickerKeyboardService; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDatepickerModule", function() { return NgbDatepickerModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDatepickerMonth", function() { return NgbDatepickerMonth; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDropdown", function() { return NgbDropdown; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDropdownAnchor", function() { return NgbDropdownAnchor; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDropdownConfig", function() { return NgbDropdownConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDropdownItem", function() { return NgbDropdownItem; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDropdownMenu", function() { return NgbDropdownMenu; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDropdownModule", function() { return NgbDropdownModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbDropdownToggle", function() { return NgbDropdownToggle; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbHighlight", function() { return NgbHighlight; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbInputDatepicker", function() { return NgbInputDatepicker; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbInputDatepickerConfig", function() { return NgbInputDatepickerConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbModal", function() { return NgbModal; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbModalConfig", function() { return NgbModalConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbModalModule", function() { return NgbModalModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbModalRef", function() { return NgbModalRef; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbModule", function() { return NgbModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbNav", function() { return NgbNav; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbNavConfig", function() { return NgbNavConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbNavContent", function() { return NgbNavContent; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbNavItem", function() { return NgbNavItem; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbNavLink", function() { return NgbNavLink; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbNavModule", function() { return NgbNavModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbNavOutlet", function() { return NgbNavOutlet; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbNavPane", function() { return NgbNavPane; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbNavbar", function() { return NgbNavbar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPagination", function() { return NgbPagination; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPaginationConfig", function() { return NgbPaginationConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPaginationEllipsis", function() { return NgbPaginationEllipsis; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPaginationFirst", function() { return NgbPaginationFirst; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPaginationLast", function() { return NgbPaginationLast; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPaginationModule", function() { return NgbPaginationModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPaginationNext", function() { return NgbPaginationNext; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPaginationNumber", function() { return NgbPaginationNumber; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPaginationPrevious", function() { return NgbPaginationPrevious; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPanel", function() { return NgbPanel; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPanelContent", function() { return NgbPanelContent; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPanelHeader", function() { return NgbPanelHeader; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPanelTitle", function() { return NgbPanelTitle; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPanelToggle", function() { return NgbPanelToggle; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPopover", function() { return NgbPopover; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPopoverConfig", function() { return NgbPopoverConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbPopoverModule", function() { return NgbPopoverModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbProgressbar", function() { return NgbProgressbar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbProgressbarConfig", function() { return NgbProgressbarConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbProgressbarModule", function() { return NgbProgressbarModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbRadio", function() { return NgbRadio; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbRadioGroup", function() { return NgbRadioGroup; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbRating", function() { return NgbRating; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbRatingConfig", function() { return NgbRatingConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbRatingModule", function() { return NgbRatingModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbSlide", function() { return NgbSlide; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbSlideEventDirection", function() { return NgbSlideEventDirection; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbSlideEventSource", function() { return NgbSlideEventSource; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbTimeAdapter", function() { return NgbTimeAdapter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbTimepicker", function() { return NgbTimepicker; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbTimepickerConfig", function() { return NgbTimepickerConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbTimepickerI18n", function() { return NgbTimepickerI18n; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbTimepickerModule", function() { return NgbTimepickerModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbToast", function() { return NgbToast; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbToastConfig", function() { return NgbToastConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbToastHeader", function() { return NgbToastHeader; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbToastModule", function() { return NgbToastModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbTooltip", function() { return NgbTooltip; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbTooltipConfig", function() { return NgbTooltipConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbTooltipModule", function() { return NgbTooltipModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbTypeahead", function() { return NgbTypeahead; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbTypeaheadConfig", function() { return NgbTypeaheadConfig; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgbTypeaheadModule", function() { return NgbTypeaheadModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵa", function() { return NGB_CAROUSEL_DIRECTIVES; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵb", function() { return NGB_DATEPICKER_VALUE_ACCESSOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵba", function() { return Live; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵbb", function() { return NgbCalendarHijri; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵbc", function() { return ContentRef; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵc", function() { return NGB_DATEPICKER_CALENDAR_FACTORY; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵd", function() { return NgbDatepickerDayView; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵe", function() { return NgbDatepickerNavigation; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵf", function() { return NgbDatepickerNavigationSelect; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵg", function() { return NGB_DATEPICKER_18N_FACTORY; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵh", function() { return NgbDatepickerI18nDefault; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵi", function() { return NGB_DATEPICKER_DATE_ADAPTER_FACTORY; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵj", function() { return NgbDateStructAdapter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵk", function() { return NGB_DATEPICKER_PARSER_FORMATTER_FACTORY; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵl", function() { return NgbDateISOParserFormatter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵm", function() { return NgbPopoverWindow; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵn", function() { return NGB_DATEPICKER_TIME_ADAPTER_FACTORY; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵo", function() { return NgbTimeStructAdapter; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵp", function() { return NGB_TIMEPICKER_I18N_FACTORY; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵq", function() { return NgbTimepickerI18nDefault; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵr", function() { return NgbTooltipWindow; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵs", function() { return NgbTypeaheadWindow; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵt", function() { return NgbDatepickerService; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵu", function() { return NgbModalBackdrop; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵv", function() { return NgbModalWindow; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵw", function() { return NgbModalStack; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵx", function() { return ScrollBar; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵy", function() { return ARIA_LIVE_DELAY; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵz", function() { return ARIA_LIVE_DELAY_FACTORY; }); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "fXoL"); /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ "ofXK"); /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ "qCKp"); /* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ "kU1M"); /* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ "3Pt+"); function NgbAccordion_ng_template_0_ng_template_2_Template(rf, ctx) { } function NgbAccordion_ng_template_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "button", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbAccordion_ng_template_0_ng_template_2_Template, 0, 0, "ng-template", 4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const panel_r3 = ctx.$implicit; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngbPanelToggle", panel_r3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"](" ", panel_r3.title, ""); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", panel_r3.titleTpl == null ? null : panel_r3.titleTpl.templateRef); } } function NgbAccordion_ng_template_2_ng_template_2_Template(rf, ctx) { } function NgbAccordion_ng_template_2_div_3_ng_template_2_Template(rf, ctx) { } function NgbAccordion_ng_template_2_div_3_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 8); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 9); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbAccordion_ng_template_2_div_3_ng_template_2_Template, 0, 0, "ng-template", 4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const panel_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"]().$implicit; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpropertyInterpolate"]("id", panel_r5.id); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-labelledby", panel_r5.id + "-header"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", (panel_r5.contentTpl == null ? null : panel_r5.contentTpl.templateRef) || null); } } const _c0 = function (a0, a1) { return { $implicit: a0, opened: a1 }; }; function NgbAccordion_ng_template_2_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 5); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbAccordion_ng_template_2_ng_template_2_Template, 0, 0, "ng-template", 6); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](3, NgbAccordion_ng_template_2_div_3_Template, 3, 3, "div", 7); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const panel_r5 = ctx.$implicit; const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassMap"]("card " + (panel_r5.cardClass || "")); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassMap"]("card-header " + (panel_r5.type ? "bg-" + panel_r5.type : ctx_r2.type ? "bg-" + ctx_r2.type : "")); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpropertyInterpolate1"]("id", "", panel_r5.id, "-header"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", (panel_r5.headerTpl == null ? null : panel_r5.headerTpl.templateRef) || _r0)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction2"](8, _c0, panel_r5, panel_r5.isOpen)); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", !ctx_r2.destroyOnHide || panel_r5.isOpen || panel_r5.transitionRunning); } } function NgbAlert_button_1_Template(rf, ctx) { if (rf & 1) { const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "button", 1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbAlert_button_1_Template_button_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r2); const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r1.close(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "span", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2, "\u00D7"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } } const _c5 = ["*"]; function NgbCarousel_li_1_Template(rf, ctx) { if (rf & 1) { const _r6 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "li", 6); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbCarousel_li_1_Template_li_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r6); const slide_r4 = ctx.$implicit; const ctx_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); ctx_r5.focus(); return ctx_r5.select(slide_r4.id, ctx_r5.NgbSlideEventSource.INDICATOR); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const slide_r4 = ctx.$implicit; const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("active", slide_r4.id === ctx_r0.activeId); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-labelledby", "slide-" + slide_r4.id)("aria-controls", "slide-" + slide_r4.id)("aria-selected", slide_r4.id === ctx_r0.activeId); } } function NgbCarousel_div_3_ng_template_3_Template(rf, ctx) { } function NgbCarousel_div_3_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 7); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "span", 8); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](2, 9); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](3, NgbCarousel_div_3_ng_template_3_Template, 0, 0, "ng-template", 10); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const slide_r7 = ctx.$implicit; const i_r8 = ctx.index; const c_r9 = ctx.count; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("id", "slide-" + slide_r7.id); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18nExp"](i_r8 + 1)(c_r9); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18nApply"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", slide_r7.tplRef); } } function NgbCarousel_a_4_Template(rf, ctx) { if (rf & 1) { const _r12 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "a", 11); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbCarousel_a_4_Template_a_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r12); const ctx_r11 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r11.arrowLeft(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "span", 12); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "span", 8); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](3, 13); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } } function NgbCarousel_a_5_Template(rf, ctx) { if (rf & 1) { const _r14 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "a", 14); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbCarousel_a_5_Template_a_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r14); const ctx_r13 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r13.arrowRight(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "span", 15); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "span", 8); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](3, 16); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } } const _c12 = ["defaultDayTemplate"]; const _c13 = ["content"]; function NgbDatepicker_ng_template_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "div", 7); } if (rf & 2) { const date_r8 = ctx.date; const currentMonth_r9 = ctx.currentMonth; const selected_r10 = ctx.selected; const disabled_r11 = ctx.disabled; const focused_r12 = ctx.focused; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("date", date_r8)("currentMonth", currentMonth_r9)("selected", selected_r10)("disabled", disabled_r11)("focused", focused_r12); } } function NgbDatepicker_ng_template_2_div_0_div_1_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 12); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const month_r14 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"]().$implicit; const ctx_r16 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate2"](" ", ctx_r16.i18n.getMonthFullName(month_r14.number, month_r14.year), " ", ctx_r16.i18n.getYearNumerals(month_r14.year), " "); } } function NgbDatepicker_ng_template_2_div_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 9); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbDatepicker_ng_template_2_div_0_div_1_Template, 2, 2, "div", 10); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](2, "ngb-datepicker-month", 11); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const month_r14 = ctx.$implicit; const ctx_r13 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx_r13.navigation === "none" || ctx_r13.displayMonths > 1 && ctx_r13.navigation === "select"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("month", month_r14.firstDate); } } function NgbDatepicker_ng_template_2_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbDatepicker_ng_template_2_div_0_Template, 3, 2, "div", 8); } if (rf & 2) { const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx_r3.model.months); } } function NgbDatepicker_ngb_datepicker_navigation_5_Template(rf, ctx) { if (rf & 1) { const _r19 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "ngb-datepicker-navigation", 13); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("navigate", function NgbDatepicker_ngb_datepicker_navigation_5_Template_ngb_datepicker_navigation_navigate_0_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r19); const ctx_r18 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r18.onNavigateEvent($event); })("select", function NgbDatepicker_ngb_datepicker_navigation_5_Template_ngb_datepicker_navigation_select_0_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r19); const ctx_r20 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r20.onNavigateDateSelect($event); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵ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); } } function NgbDatepicker_ng_template_8_Template(rf, ctx) { } function NgbDatepicker_ng_template_9_Template(rf, ctx) { } function NgbDatepickerMonth_div_0_div_1_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "div", 5); } } function NgbDatepickerMonth_div_0_div_2_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 6); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const w_r4 = ctx.$implicit; const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"](" ", ctx_r3.i18n.getWeekdayShortName(w_r4), " "); } } function NgbDatepickerMonth_div_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbDatepickerMonth_div_0_div_1_Template, 1, 0, "div", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbDatepickerMonth_div_0_div_2_Template, 2, 1, "div", 4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx_r0.datepicker.showWeekNumbers); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx_r0.viewModel.weekdays); } } function NgbDatepickerMonth_ng_template_1_div_0_div_1_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 11); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const week_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2).$implicit; const ctx_r7 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](ctx_r7.i18n.getWeekNumerals(week_r5.number)); } } function NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_ng_template_0_Template(rf, ctx) { } function NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_ng_template_0_Template, 0, 0, "ng-template", 14); } if (rf & 2) { const day_r10 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"]().$implicit; const ctx_r11 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", ctx_r11.datepicker.dayTemplate)("ngTemplateOutletContext", day_r10.context); } } function NgbDatepickerMonth_ng_template_1_div_0_div_2_Template(rf, ctx) { if (rf & 1) { const _r15 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 12); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbDatepickerMonth_ng_template_1_div_0_div_2_Template_div_click_0_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r15); const day_r10 = ctx.$implicit; const ctx_r14 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](3); ctx_r14.doSelect(day_r10); return $event.preventDefault(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbDatepickerMonth_ng_template_1_div_0_div_2_ng_template_1_Template, 1, 2, "ng-template", 13); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const day_r10 = ctx.$implicit; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("disabled", day_r10.context.disabled)("hidden", day_r10.hidden)("ngb-dp-today", day_r10.context.today); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("tabindex", day_r10.tabindex); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-label", day_r10.ariaLabel); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", !day_r10.hidden); } } function NgbDatepickerMonth_ng_template_1_div_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 8); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbDatepickerMonth_ng_template_1_div_0_div_1_Template, 2, 1, "div", 9); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbDatepickerMonth_ng_template_1_div_0_div_2_Template, 2, 9, "div", 10); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const week_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"]().$implicit; const ctx_r6 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx_r6.datepicker.showWeekNumbers); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", week_r5.days); } } function NgbDatepickerMonth_ng_template_1_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbDatepickerMonth_ng_template_1_div_0_Template, 3, 2, "div", 7); } if (rf & 2) { const week_r5 = ctx.$implicit; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", !week_r5.collapsed); } } function NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template(rf, ctx) { if (rf & 1) { const _r3 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "ngb-datepicker-navigation-select", 7); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("select", function NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template_ngb_datepicker_navigation_select_select_0_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r3); const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r2.select.emit($event); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("date", ctx_r0.date)("disabled", ctx_r0.disabled)("months", ctx_r0.selectBoxes.months)("years", ctx_r0.selectBoxes.years); } } function NgbDatepickerNavigation_4_ng_template_0_div_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "div", 0); } } function NgbDatepickerNavigation_4_ng_template_0_div_3_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "div", 0); } } function NgbDatepickerNavigation_4_ng_template_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbDatepickerNavigation_4_ng_template_0_div_0_Template, 1, 0, "div", 9); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 10); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](3, NgbDatepickerNavigation_4_ng_template_0_div_3_Template, 1, 0, "div", 9); } if (rf & 2) { const month_r5 = ctx.$implicit; const i_r6 = ctx.index; const ctx_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", i_r6 > 0); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate2"](" ", ctx_r4.i18n.getMonthFullName(month_r5.number, month_r5.year), " ", ctx_r4.i18n.getYearNumerals(month_r5.year), " "); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", i_r6 !== ctx_r4.months.length - 1); } } function NgbDatepickerNavigation_4_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbDatepickerNavigation_4_ng_template_0_Template, 4, 4, "ng-template", 8); } if (rf & 2) { const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx_r1.months); } } const _c22 = ["ngbDatepickerDayView", ""]; const _c23 = ["month"]; const _c24 = ["year"]; function NgbDatepickerNavigationSelect_option_2_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "option", 5); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const m_r4 = ctx.$implicit; const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("value", m_r4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-label", ctx_r1.i18n.getMonthFullName(m_r4, ctx_r1.date == null ? null : ctx_r1.date.year)); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](ctx_r1.i18n.getMonthShortName(m_r4, ctx_r1.date == null ? null : ctx_r1.date.year)); } } function NgbDatepickerNavigationSelect_option_5_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "option", 5); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const y_r5 = ctx.$implicit; const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("value", y_r5); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](ctx_r3.i18n.getYearNumerals(y_r5)); } } const _c33 = ["dialog"]; const _c34 = ["ngbNavOutlet", ""]; function NgbNavOutlet_ng_template_0_div_0_ng_template_1_Template(rf, ctx) { } const _c35 = function (a0) { return { $implicit: a0 }; }; function NgbNavOutlet_ng_template_0_div_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbNavOutlet_ng_template_0_div_0_ng_template_1_Template, 0, 0, "ng-template", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const item_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"]().$implicit; const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("item", item_r1)("nav", ctx_r2.nav)("role", ctx_r2.paneRole); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", (item_r1.contentTpl == null ? null : item_r1.contentTpl.templateRef) || null)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction1"](5, _c35, item_r1.active || ctx_r2.isPanelTransitioning(item_r1))); } } function NgbNavOutlet_ng_template_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbNavOutlet_ng_template_0_div_0_Template, 2, 7, "div", 1); } if (rf & 2) { const item_r1 = ctx.$implicit; const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", item_r1.isPanelInDom() || ctx_r0.isPanelTransitioning(item_r1)); } } function NgbPagination_ng_template_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "span", 8); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](1, 9); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } } function NgbPagination_ng_template_2_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "span", 8); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](1, 10); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } } function NgbPagination_ng_template_4_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "span", 8); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](1, 11); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } } function NgbPagination_ng_template_6_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "span", 8); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](1, 12); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } } function NgbPagination_ng_template_8_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](0, "..."); } } function NgbPagination_ng_template_10_span_1_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "span", 14); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1, "(current)"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } } function NgbPagination_ng_template_10_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](0); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbPagination_ng_template_10_span_1_Template, 2, 0, "span", 13); } if (rf & 2) { const page_r17 = ctx.$implicit; const currentPage_r18 = ctx.currentPage; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"](" ", page_r17, " "); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", page_r17 === currentPage_r18); } } function NgbPagination_li_13_ng_template_2_Template(rf, ctx) { } const _c46 = function (a0, a1) { return { disabled: a0, currentPage: a1 }; }; function NgbPagination_li_13_Template(rf, ctx) { if (rf & 1) { const _r22 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "li", 15); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "a", 16); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbPagination_li_13_Template_a_click_1_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r22); const ctx_r21 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); ctx_r21.selectPage(1); return $event.preventDefault(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbPagination_li_13_ng_template_2_Template, 0, 0, "ng-template", 17); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r12 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("disabled", ctx_r12.previousDisabled()); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("tabindex", ctx_r12.previousDisabled() ? "-1" : null)("aria-disabled", ctx_r12.previousDisabled() ? "true" : null); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", (ctx_r12.tplFirst == null ? null : ctx_r12.tplFirst.templateRef) || _r0)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction2"](6, _c46, ctx_r12.previousDisabled(), ctx_r12.page)); } } function NgbPagination_li_14_ng_template_2_Template(rf, ctx) { } const _c49 = function (a0) { return { disabled: a0 }; }; function NgbPagination_li_14_Template(rf, ctx) { if (rf & 1) { const _r25 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "li", 15); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "a", 18); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbPagination_li_14_Template_a_click_1_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r25); const ctx_r24 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); ctx_r24.selectPage(ctx_r24.page - 1); return $event.preventDefault(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbPagination_li_14_ng_template_2_Template, 0, 0, "ng-template", 17); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r13 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("disabled", ctx_r13.previousDisabled()); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("tabindex", ctx_r13.previousDisabled() ? "-1" : null)("aria-disabled", ctx_r13.previousDisabled() ? "true" : null); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", (ctx_r13.tplPrevious == null ? null : ctx_r13.tplPrevious.templateRef) || _r2)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction1"](6, _c49, ctx_r13.previousDisabled())); } } function NgbPagination_li_15_a_1_ng_template_1_Template(rf, ctx) { } const _c50 = function (a1) { return { disabled: true, currentPage: a1 }; }; function NgbPagination_li_15_a_1_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "a", 21); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbPagination_li_15_a_1_ng_template_1_Template, 0, 0, "ng-template", 17); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r27 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); const _r8 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](9); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", (ctx_r27.tplEllipsis == null ? null : ctx_r27.tplEllipsis.templateRef) || _r8)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction1"](2, _c50, ctx_r27.page)); } } function NgbPagination_li_15_a_2_ng_template_1_Template(rf, ctx) { } const _c51 = function (a0, a1, a2) { return { disabled: a0, $implicit: a1, currentPage: a2 }; }; function NgbPagination_li_15_a_2_Template(rf, ctx) { if (rf & 1) { const _r33 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "a", 22); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbPagination_li_15_a_2_Template_a_click_0_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r33); const pageNumber_r26 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"]().$implicit; const ctx_r31 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); ctx_r31.selectPage(pageNumber_r26); return $event.preventDefault(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbPagination_li_15_a_2_ng_template_1_Template, 0, 0, "ng-template", 17); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const pageNumber_r26 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"]().$implicit; const ctx_r28 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); const _r10 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](11); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("tabindex", ctx_r28.disabled ? "-1" : null)("aria-disabled", ctx_r28.disabled ? "true" : null); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", (ctx_r28.tplNumber == null ? null : ctx_r28.tplNumber.templateRef) || _r10)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction3"](4, _c51, ctx_r28.disabled, pageNumber_r26, ctx_r28.page)); } } function NgbPagination_li_15_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "li", 15); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbPagination_li_15_a_1_Template, 2, 4, "a", 19); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbPagination_li_15_a_2_Template, 2, 8, "a", 20); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const pageNumber_r26 = ctx.$implicit; const ctx_r14 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("active", pageNumber_r26 === ctx_r14.page)("disabled", ctx_r14.isEllipsis(pageNumber_r26) || ctx_r14.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-current", pageNumber_r26 === ctx_r14.page ? "page" : null); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx_r14.isEllipsis(pageNumber_r26)); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", !ctx_r14.isEllipsis(pageNumber_r26)); } } function NgbPagination_li_16_ng_template_2_Template(rf, ctx) { } function NgbPagination_li_16_Template(rf, ctx) { if (rf & 1) { const _r37 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "li", 15); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "a", 23); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbPagination_li_16_Template_a_click_1_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r37); const ctx_r36 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); ctx_r36.selectPage(ctx_r36.page + 1); return $event.preventDefault(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbPagination_li_16_ng_template_2_Template, 0, 0, "ng-template", 17); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r15 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); const _r4 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](5); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("disabled", ctx_r15.nextDisabled()); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("tabindex", ctx_r15.nextDisabled() ? "-1" : null)("aria-disabled", ctx_r15.nextDisabled() ? "true" : null); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", (ctx_r15.tplNext == null ? null : ctx_r15.tplNext.templateRef) || _r4)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction2"](6, _c46, ctx_r15.nextDisabled(), ctx_r15.page)); } } function NgbPagination_li_17_ng_template_2_Template(rf, ctx) { } function NgbPagination_li_17_Template(rf, ctx) { if (rf & 1) { const _r40 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "li", 15); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "a", 24); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbPagination_li_17_Template_a_click_1_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r40); const ctx_r39 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); ctx_r39.selectPage(ctx_r39.pageCount); return $event.preventDefault(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbPagination_li_17_ng_template_2_Template, 0, 0, "ng-template", 17); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r16 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); const _r6 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](7); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("disabled", ctx_r16.nextDisabled()); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("tabindex", ctx_r16.nextDisabled() ? "-1" : null)("aria-disabled", ctx_r16.nextDisabled() ? "true" : null); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", (ctx_r16.tplLast == null ? null : ctx_r16.tplLast.templateRef) || _r6)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction2"](6, _c46, ctx_r16.nextDisabled(), ctx_r16.page)); } } function NgbPopoverWindow_h3_1_ng_template_1_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](0); } if (rf & 2) { const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](ctx_r2.title); } } function NgbPopoverWindow_h3_1_ng_template_3_Template(rf, ctx) { } function NgbPopoverWindow_h3_1_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "h3", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbPopoverWindow_h3_1_ng_template_1_Template, 1, 1, "ng-template", null, 4, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](3, NgbPopoverWindow_h3_1_ng_template_3_Template, 0, 0, "ng-template", 5); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](2); const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", ctx_r0.isTitleTemplate() ? ctx_r0.title : _r1)("ngTemplateOutletContext", ctx_r0.context); } } function NgbProgressbar_span_1_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "span"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](1, 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipe"](2, "percent"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18nExp"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpipeBind1"](2, 1, ctx_r0.getValue() / ctx_r0.max)); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18nApply"](1); } } function NgbRating_ng_template_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](0); } if (rf & 2) { const fill_r3 = ctx.fill; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](fill_r3 === 100 ? "\u2605" : "\u2606"); } } function NgbRating_ng_template_2_ng_template_3_Template(rf, ctx) { } function NgbRating_ng_template_2_Template(rf, ctx) { if (rf & 1) { const _r7 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "span", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "span", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("mouseenter", function NgbRating_ng_template_2_Template_span_mouseenter_2_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r7); const index_r4 = ctx.index; const ctx_r6 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r6.enter(index_r4 + 1); })("click", function NgbRating_ng_template_2_Template_span_click_2_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r7); const index_r4 = ctx.index; const ctx_r8 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r8.handleClick(index_r4 + 1); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](3, NgbRating_ng_template_2_ng_template_3_Template, 0, 0, "ng-template", 4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const index_r4 = ctx.index; const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate1"]("(", index_r4 < ctx_r2.nextRate ? "*" : " ", ")"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstyleProp"]("cursor", ctx_r2.isInteractive() ? "pointer" : "default"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", ctx_r2.starTemplate || ctx_r2.starTemplateFromContent || _r0)("ngTemplateOutletContext", ctx_r2.contexts[index_r4]); } } function NgbTimepicker_button_3_Template(rf, ctx) { if (rf & 1) { const _r9 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "button", 11); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbTimepicker_button_3_Template_button_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r9); const ctx_r8 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r8.changeHour(ctx_r8.hourStep); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "span", 12); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "span", 13); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](3, 14); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("btn-sm", ctx_r0.isSmallSize)("btn-lg", ctx_r0.isLargeSize)("disabled", ctx_r0.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", ctx_r0.disabled); } } function NgbTimepicker_button_5_Template(rf, ctx) { if (rf & 1) { const _r11 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "button", 11); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbTimepicker_button_5_Template_button_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r11); const ctx_r10 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r10.changeHour(-ctx_r10.hourStep); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "span", 15); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "span", 13); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](3, 16); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("btn-sm", ctx_r1.isSmallSize)("btn-lg", ctx_r1.isLargeSize)("disabled", ctx_r1.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", ctx_r1.disabled); } } function NgbTimepicker_button_9_Template(rf, ctx) { if (rf & 1) { const _r13 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "button", 11); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbTimepicker_button_9_Template_button_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r13); const ctx_r12 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r12.changeMinute(ctx_r12.minuteStep); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "span", 12); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "span", 13); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](3, 17); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("btn-sm", ctx_r2.isSmallSize)("btn-lg", ctx_r2.isLargeSize)("disabled", ctx_r2.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", ctx_r2.disabled); } } function NgbTimepicker_button_11_Template(rf, ctx) { if (rf & 1) { const _r15 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "button", 11); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbTimepicker_button_11_Template_button_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r15); const ctx_r14 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r14.changeMinute(-ctx_r14.minuteStep); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "span", 15); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "span", 13); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](3, 18); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("btn-sm", ctx_r3.isSmallSize)("btn-lg", ctx_r3.isLargeSize)("disabled", ctx_r3.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", ctx_r3.disabled); } } function NgbTimepicker_div_12_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 5); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1, ":"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } } function NgbTimepicker_div_13_button_1_Template(rf, ctx) { if (rf & 1) { const _r19 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "button", 11); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbTimepicker_div_13_button_1_Template_button_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r19); const ctx_r18 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); return ctx_r18.changeSecond(ctx_r18.secondStep); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "span", 12); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "span", 13); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](3, 21); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r16 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("btn-sm", ctx_r16.isSmallSize)("btn-lg", ctx_r16.isLargeSize)("disabled", ctx_r16.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", ctx_r16.disabled); } } function NgbTimepicker_div_13_button_3_Template(rf, ctx) { if (rf & 1) { const _r21 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "button", 11); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbTimepicker_div_13_button_3_Template_button_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r21); const ctx_r20 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); return ctx_r20.changeSecond(-ctx_r20.secondStep); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](1, "span", 15); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "span", 13); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](3, 22); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r17 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("btn-sm", ctx_r17.isSmallSize)("btn-lg", ctx_r17.isLargeSize)("disabled", ctx_r17.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", ctx_r17.disabled); } } function NgbTimepicker_div_13_Template(rf, ctx) { if (rf & 1) { const _r23 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 19); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbTimepicker_div_13_button_1_Template, 4, 7, "button", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "input", 20); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("change", function NgbTimepicker_div_13_Template_input_change_2_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r23); const ctx_r22 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r22.updateSecond($event.target.value); })("input", function NgbTimepicker_div_13_Template_input_input_2_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r23); const ctx_r24 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r24.formatInput($event.target); })("keydown.ArrowUp", function NgbTimepicker_div_13_Template_input_keydown_ArrowUp_2_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r23); const ctx_r25 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); ctx_r25.changeSecond(ctx_r25.secondStep); return $event.preventDefault(); })("keydown.ArrowDown", function NgbTimepicker_div_13_Template_input_keydown_ArrowDown_2_listener($event) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r23); const ctx_r26 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); ctx_r26.changeSecond(-ctx_r26.secondStep); return $event.preventDefault(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](3, NgbTimepicker_div_13_button_3_Template, 4, 7, "button", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx_r5.spinners); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("form-control-sm", ctx_r5.isSmallSize)("form-control-lg", ctx_r5.isLargeSize); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("value", ctx_r5.formatMinSec(ctx_r5.model == null ? null : ctx_r5.model.second))("readOnly", ctx_r5.readonlyInputs)("disabled", ctx_r5.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx_r5.spinners); } } function NgbTimepicker_div_14_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "div", 5); } } function NgbTimepicker_div_15_ng_container_2_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementContainerStart"](0); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](1, 27); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementContainerEnd"](); } if (rf & 2) { const ctx_r27 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18nExp"](ctx_r27.i18n.getAfternoonPeriod()); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18nApply"](1); } } function NgbTimepicker_div_15_ng_template_3_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18n"](0, 28); } if (rf & 2) { const ctx_r29 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18nExp"](ctx_r29.i18n.getMorningPeriod()); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵi18nApply"](0); } } function NgbTimepicker_div_15_Template(rf, ctx) { if (rf & 1) { const _r31 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 23); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "button", 24); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbTimepicker_div_15_Template_button_click_1_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r31); const ctx_r30 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r30.toggleMeridian(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbTimepicker_div_15_ng_container_2_Template, 2, 1, "ng-container", 25); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](3, NgbTimepicker_div_15_ng_template_3_Template, 1, 1, "ng-template", null, 26, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const _r28 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](4); const ctx_r7 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("btn-sm", ctx_r7.isSmallSize)("btn-lg", ctx_r7.isLargeSize)("disabled", ctx_r7.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", ctx_r7.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx_r7.model && ctx_r7.model.hour >= 12)("ngIfElse", _r28); } } function NgbToast_ng_template_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "strong", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](ctx_r1.header); } } function NgbToast_ng_template_2_ng_template_1_Template(rf, ctx) { } function NgbToast_ng_template_2_Template(rf, ctx) { if (rf & 1) { const _r5 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbToast_ng_template_2_ng_template_1_Template, 0, 0, "ng-template", 5); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "button", 6); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbToast_ng_template_2_Template_button_click_2_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r5); const ctx_r4 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r4.hide(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "span", 7); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](4, "\u00D7"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", ctx_r2.contentHeaderTpl || _r0); } } function NgbHighlight_ng_template_0_span_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "span"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const part_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"]().$implicit; const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassMap"](ctx_r3.highlightClass); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](part_r1); } } function NgbHighlight_ng_template_0_ng_template_1_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](0); } if (rf & 2) { const part_r1 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"]().$implicit; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](part_r1); } } function NgbHighlight_ng_template_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbHighlight_ng_template_0_span_0_Template, 2, 3, "span", 1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbHighlight_ng_template_0_ng_template_1_Template, 1, 1, "ng-template", null, 2, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); } if (rf & 2) { const isOdd_r2 = ctx.odd; const _r4 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", isOdd_r2)("ngIfElse", _r4); } } function NgbTypeaheadWindow_ng_template_0_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "ngb-highlight", 2); } if (rf & 2) { const result_r3 = ctx.result; const term_r4 = ctx.term; const formatter_r5 = ctx.formatter; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("result", formatter_r5(result_r3))("term", term_r4); } } function NgbTypeaheadWindow_ng_template_2_ng_template_1_Template(rf, ctx) { } const _c88 = function (a0, a1, a2) { return { result: a0, term: a1, formatter: a2 }; }; function NgbTypeaheadWindow_ng_template_2_Template(rf, ctx) { if (rf & 1) { const _r10 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetCurrentView"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "button", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("mouseenter", function NgbTypeaheadWindow_ng_template_2_Template_button_mouseenter_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r10); const idx_r7 = ctx.index; const ctx_r9 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r9.markActive(idx_r7); })("click", function NgbTypeaheadWindow_ng_template_2_Template_button_click_0_listener() { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵrestoreView"](_r10); const result_r6 = ctx.$implicit; const ctx_r11 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); return ctx_r11.select(result_r6); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbTypeaheadWindow_ng_template_2_ng_template_1_Template, 0, 0, "ng-template", 4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { const result_r6 = ctx.$implicit; const idx_r7 = ctx.index; const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵnextContext"](); const _r0 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("active", idx_r7 === ctx_r2.activeIdx); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("id", ctx_r2.id + "-" + idx_r7); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", ctx_r2.resultTemplate || _r0)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵpureFunction3"](5, _c88, result_r6, ctx_r2.term, ctx_r2.formatter)); } } function toInteger(value) { return parseInt(`${value}`, 10); } function toString(value) { return (value !== undefined && value !== null) ? `${value}` : ''; } function getValueInRange(value, max, min = 0) { return Math.max(Math.min(value, max), min); } function isString(value) { return typeof value === 'string'; } function isNumber(value) { return !isNaN(toInteger(value)); } function isInteger(value) { return typeof value === 'number' && isFinite(value) && Math.floor(value) === value; } function isDefined(value) { return value !== undefined && value !== null; } function padNumber(value) { if (isNumber(value)) { return `0${value}`.slice(-2); } else { return ''; } } function regExpEscape(text) { return text.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); } function hasClassName(element, className) { return element && element.className && element.className.split && element.className.split(/\s+/).indexOf(className) >= 0; } if (typeof Element !== 'undefined' && !Element.prototype.closest) { // Polyfill for ie10+ if (!Element.prototype.matches) { // IE uses the non-standard name: msMatchesSelector Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; } Element.prototype.closest = function (s) { let el = this; if (!document.documentElement.contains(el)) { return null; } do { if (el.matches(s)) { return el; } el = el.parentElement || el.parentNode; } while (el !== null && el.nodeType === 1); return null; }; } function closest(element, selector) { if (!selector) { return null; } /* * In certain browsers (e.g. Edge 44.18362.449.0) HTMLDocument does * not support `Element.prototype.closest`. To emulate the correct behaviour * we return null when the method is missing. * * Note that in evergreen browsers `closest(document.documentElement, 'html')` * will return the document element whilst in Edge null will be returned. This * compromise was deemed good enough. */ if (typeof element.closest === 'undefined') { return null; } return element.closest(selector); } /** * Force a browser reflow * @param element element where to apply the reflow */ function reflow(element) { return (element || document.body).offsetHeight; } const environment = { animation: true, transitionTimerDelayMs: 5, }; /** * Global ng-bootstrap config * * @since 8.0.0 */ class NgbConfig { constructor() { this.animation = environment.animation; } } NgbConfig.ɵfac = function NgbConfig_Factory(t) { return new (t || NgbConfig)(); }; NgbConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbConfig_Factory() { return new NgbConfig(); }, token: NgbConfig, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return []; }, null); })(); /** * A configuration service for the [NgbAccordion](#/components/accordion/api#NgbAccordion) component. * * You can inject this service, typically in your root component, and customize its properties * to provide default values for all accordions used in the application. */ class NgbAccordionConfig { constructor(ngbConfig) { this.closeOthers = false; this.animation = ngbConfig.animation; } } NgbAccordionConfig.ɵfac = function NgbAccordionConfig_Factory(t) { return new (t || NgbAccordionConfig)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](NgbConfig)); }; NgbAccordionConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbAccordionConfig_Factory() { return new NgbAccordionConfig(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(NgbConfig)); }, token: NgbAccordionConfig, providedIn: "root" }); NgbAccordionConfig.ctorParameters = () => [ { type: NgbConfig } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbAccordionConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return [{ type: NgbConfig }]; }, null); })(); function getTransitionDurationMs(element) { const { transitionDelay, transitionDuration } = window.getComputedStyle(element); const transitionDelaySec = parseFloat(transitionDelay); const transitionDurationSec = parseFloat(transitionDuration); return (transitionDelaySec + transitionDurationSec) * 1000; } const noopFn = () => { }; const ɵ0 = noopFn; const { transitionTimerDelayMs } = environment; const runningTransitions = new Map(); const ngbRunTransition = (element, startFn, options) => { // Getting initial context from options let context = options.context || {}; // Checking if there are already running transitions on the given element. const running = runningTransitions.get(element); if (running) { switch (options.runningTransition) { // If there is one running and we want for it to 'continue' to run, we have to cancel the new one. // We're not emitting any values, but simply completing the observable (EMPTY). case 'continue': return rxjs__WEBPACK_IMPORTED_MODULE_2__["EMPTY"]; // If there is one running and we want for it to 'stop', we have to complete the running one. // We're simply completing the running one and not emitting any values and merging newly provided context // with the one coming from currently running transition. case 'stop': running.transition$.complete(); context = Object.assign(running.context, context); runningTransitions.delete(element); } } // A reflow is required here, to be sure that everything is ready, // Without reflow, the transition will not be started for some widgets, at initialization time reflow(element); const endFn = startFn(element, context) || noopFn; // If 'prefer-reduced-motion' is enabled, the 'transition' will be set to 'none'. // If animations are disabled, we have to emit a value and complete the observable // In this case we have to call the end function, but can finish immediately by emitting a value, // completing the observable and executing end functions synchronously. if (!options.animation || window.getComputedStyle(element).transitionProperty === 'none') { endFn(); return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["of"])(undefined); } // Starting a new transition const transition$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); const stop$ = transition$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["endWith"])(true)); runningTransitions.set(element, { transition$, context }); const transitionDurationMs = getTransitionDurationMs(element); // 1. We have to both listen for the 'transitionend' event and have a 'just-in-case' timer, // because 'transitionend' event might not be fired in some browsers, if the transitioning // element becomes invisible (ex. when scrolling, making browser tab inactive, etc.). The timer // guarantees, that we'll release the DOM element and complete 'ngbRunTransition'. // 2. We need to filter transition end events, because they might bubble from shorter transitions // on inner DOM elements. We're only interested in the transition on the 'element' itself. const transitionEnd$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(element, 'transitionend').pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(stop$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["filter"])(({ target }) => target === element)); const timer$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["timer"])(transitionDurationMs + transitionTimerDelayMs).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(stop$)); Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["race"])(timer$, transitionEnd$).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(stop$)).subscribe(() => { runningTransitions.delete(element); endFn(); transition$.next(); transition$.complete(); }); return transition$.asObservable(); }; function measureCollapsingElementHeightPx(element) { // SSR fix for without injecting the PlatformId if (typeof navigator === 'undefined') { return '0px'; } const { classList } = element; const hasShownClass = classList.contains('show'); if (!hasShownClass) { classList.add('show'); } element.style.height = ''; const height = element.getBoundingClientRect().height + 'px'; if (!hasShownClass) { classList.remove('show'); } return height; } const ngbCollapsingTransition = (element, context) => { let { direction, maxHeight } = context; const { classList } = element; // No maxHeight -> running the transition for the first time if (!maxHeight) { maxHeight = measureCollapsingElementHeightPx(element); context.maxHeight = maxHeight; // Fix the height before starting the animation element.style.height = direction !== 'show' ? maxHeight : '0px'; classList.remove('collapse'); classList.remove('collapsing'); classList.remove('show'); reflow(element); // Start the animation classList.add('collapsing'); } // Start or revert the animation element.style.height = direction === 'show' ? maxHeight : '0px'; return () => { classList.remove('collapsing'); classList.add('collapse'); if (direction === 'show') { classList.add('show'); } else { classList.remove('show'); } element.style.height = ''; }; }; let nextId = 0; /** * A directive that wraps an accordion panel header with any HTML markup and a toggling button * marked with [`NgbPanelToggle`](#/components/accordion/api#NgbPanelToggle). * See the [header customization demo](#/components/accordion/examples#header) for more details. * * You can also use [`NgbPanelTitle`](#/components/accordion/api#NgbPanelTitle) to customize only the panel title. * * @since 4.1.0 */ class NgbPanelHeader { constructor(templateRef) { this.templateRef = templateRef; } } NgbPanelHeader.ɵfac = function NgbPanelHeader_Factory(t) { return new (t || NgbPanelHeader)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"])); }; NgbPanelHeader.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbPanelHeader, selectors: [["ng-template", "ngbPanelHeader", ""]] }); NgbPanelHeader.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPanelHeader, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'ng-template[ngbPanelHeader]' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] }]; }, null); })(); /** * A directive that wraps only the panel title with HTML markup inside. * * You can also use [`NgbPanelHeader`](#/components/accordion/api#NgbPanelHeader) to customize the full panel header. */ class NgbPanelTitle { constructor(templateRef) { this.templateRef = templateRef; } } NgbPanelTitle.ɵfac = function NgbPanelTitle_Factory(t) { return new (t || NgbPanelTitle)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"])); }; NgbPanelTitle.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbPanelTitle, selectors: [["ng-template", "ngbPanelTitle", ""]] }); NgbPanelTitle.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPanelTitle, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'ng-template[ngbPanelTitle]' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] }]; }, null); })(); /** * A directive that wraps the accordion panel content. */ class NgbPanelContent { constructor(templateRef) { this.templateRef = templateRef; } } NgbPanelContent.ɵfac = function NgbPanelContent_Factory(t) { return new (t || NgbPanelContent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"])); }; NgbPanelContent.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbPanelContent, selectors: [["ng-template", "ngbPanelContent", ""]] }); NgbPanelContent.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPanelContent, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'ng-template[ngbPanelContent]' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] }]; }, null); })(); /** * A directive that wraps an individual accordion panel with title and collapsible content. */ class NgbPanel { constructor() { /** * If `true`, the panel is disabled an can't be toggled. */ this.disabled = false; /** * An optional id for the panel that must be unique on the page. * * If not provided, it will be auto-generated in the `ngb-panel-xxx` format. */ this.id = `ngb-panel-${nextId++}`; this.isOpen = false; /* A flag to specified that the transition panel classes have been initialized */ this.initClassDone = false; /* A flag to specified if the panel is currently being animated, to ensure its presence in the dom */ this.transitionRunning = false; /** * An event emitted when the panel is shown, after the transition. It has no payload. * * @since 8.0.0 */ this.shown = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted when the panel is hidden, after the transition. It has no payload. * * @since 8.0.0 */ this.hidden = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); } ngAfterContentChecked() { // We are using @ContentChildren instead of @ContentChild as in the Angular version being used // only @ContentChildren allows us to specify the {descendants: false} option. // Without {descendants: false} we are hitting bugs described in: // https://github.com/ng-bootstrap/ng-bootstrap/issues/2240 this.titleTpl = this.titleTpls.first; this.headerTpl = this.headerTpls.first; this.contentTpl = this.contentTpls.first; } } NgbPanel.ɵfac = function NgbPanel_Factory(t) { return new (t || NgbPanel)(); }; NgbPanel.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbPanel, selectors: [["ngb-panel"]], contentQueries: function NgbPanel_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbPanelTitle, false); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbPanelHeader, false); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbPanelContent, false); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.titleTpls = _t); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.headerTpls = _t); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.contentTpls = _t); } }, inputs: { disabled: "disabled", id: "id", title: "title", type: "type", cardClass: "cardClass" }, outputs: { shown: "shown", hidden: "hidden" } }); NgbPanel.propDecorators = { disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], cardClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], titleTpls: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbPanelTitle, { descendants: false },] }], headerTpls: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbPanelHeader, { descendants: false },] }], contentTpls: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbPanelContent, { descendants: false },] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPanel, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'ngb-panel' }] }], function () { return []; }, { disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], cardClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], titleTpls: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbPanelTitle, { descendants: false }] }], headerTpls: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbPanelHeader, { descendants: false }] }], contentTpls: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbPanelContent, { descendants: false }] }] }); })(); /** * Accordion is a collection of collapsible panels (bootstrap cards). * * It can ensure only one panel is opened at a time and allows to customize panel * headers. */ class NgbAccordion { constructor(config, _element, _ngZone, _changeDetector) { this._element = _element; this._ngZone = _ngZone; this._changeDetector = _changeDetector; /** * An array or comma separated strings of panel ids that should be opened **initially**. * * For subsequent changes use methods like `expand()`, `collapse()`, etc. and * the `(panelChange)` event. */ this.activeIds = []; /** * If `true`, panel content will be detached from DOM and not simply hidden when the panel is collapsed. */ this.destroyOnHide = true; /** * Event emitted right before the panel toggle happens. * * See [NgbPanelChangeEvent](#/components/accordion/api#NgbPanelChangeEvent) for payload details. */ this.panelChange = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted when the expanding animation is finished on the panel. The payload is the panel id. * * @since 8.0.0 */ this.shown = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted when the collapsing animation is finished on the panel, and before the panel element is removed. * The payload is the panel id. * * @since 8.0.0 */ this.hidden = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this.animation = config.animation; this.type = config.type; this.closeOtherPanels = config.closeOthers; } /** * Checks if a panel with a given id is expanded. */ isExpanded(panelId) { return this.activeIds.indexOf(panelId) > -1; } /** * Expands a panel with a given id. * * Has no effect if the panel is already expanded or disabled. */ expand(panelId) { this._changeOpenState(this._findPanelById(panelId), true); } /** * Expands all panels, if `[closeOthers]` is `false`. * * If `[closeOthers]` is `true`, it will expand the first panel, unless there is already a panel opened. */ expandAll() { if (this.closeOtherPanels) { if (this.activeIds.length === 0 && this.panels.length) { this._changeOpenState(this.panels.first, true); } } else { this.panels.forEach(panel => this._changeOpenState(panel, true)); } } /** * Collapses a panel with the given id. * * Has no effect if the panel is already collapsed or disabled. */ collapse(panelId) { this._changeOpenState(this._findPanelById(panelId), false); } /** * Collapses all opened panels. */ collapseAll() { this.panels.forEach((panel) => { this._changeOpenState(panel, false); }); } /** * Toggles a panel with the given id. * * Has no effect if the panel is disabled. */ toggle(panelId) { const panel = this._findPanelById(panelId); if (panel) { this._changeOpenState(panel, !panel.isOpen); } } ngAfterContentChecked() { // active id updates if (isString(this.activeIds)) { this.activeIds = this.activeIds.split(/\s*,\s*/); } // update panels open states this.panels.forEach(panel => { panel.isOpen = !panel.disabled && this.activeIds.indexOf(panel.id) > -1; }); // closeOthers updates if (this.activeIds.length > 1 && this.closeOtherPanels) { this._closeOthers(this.activeIds[0], false); this._updateActiveIds(); } // Setup the initial classes here this._ngZone.onStable.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["take"])(1)).subscribe(() => { this.panels.forEach(panel => { const panelElement = this._getPanelElement(panel.id); if (panelElement) { if (!panel.initClassDone) { panel.initClassDone = true; const { classList } = panelElement; classList.add('collapse'); if (panel.isOpen) { classList.add('show'); } } } else { // Classes must be initialized next time it will be in the dom panel.initClassDone = false; } }); }); } _changeOpenState(panel, nextState) { if (panel != null && !panel.disabled && panel.isOpen !== nextState) { let defaultPrevented = false; this.panelChange.emit({ panelId: panel.id, nextState: nextState, preventDefault: () => { defaultPrevented = true; } }); if (!defaultPrevented) { panel.isOpen = nextState; panel.transitionRunning = true; if (nextState && this.closeOtherPanels) { this._closeOthers(panel.id); } this._updateActiveIds(); this._runTransitions(this.animation); } } } _closeOthers(panelId, enableTransition = true) { this.panels.forEach(panel => { if (panel.id !== panelId && panel.isOpen) { panel.isOpen = false; panel.transitionRunning = enableTransition; } }); } _findPanelById(panelId) { return this.panels.find(p => p.id === panelId) || null; } _updateActiveIds() { this.activeIds = this.panels.filter(panel => panel.isOpen && !panel.disabled).map(panel => panel.id); } _runTransitions(animation, emitEvent = true) { // detectChanges is performed to ensure that all panels are in the dom (via transitionRunning = true) // before starting the animation this._changeDetector.detectChanges(); this.panels.forEach(panel => { // When panel.transitionRunning is true, the transition needs to be started OR reversed, // The direction (show or hide) is choosen by each panel.isOpen state if (panel.transitionRunning) { const panelElement = this._getPanelElement(panel.id); ngbRunTransition(panelElement, ngbCollapsingTransition, { animation, runningTransition: 'stop', context: { direction: panel.isOpen ? 'show' : 'hide' } }).subscribe(() => { panel.transitionRunning = false; if (emitEvent) { const { id } = panel; if (panel.isOpen) { panel.shown.emit(); this.shown.emit(id); } else { panel.hidden.emit(); this.hidden.emit(id); } } }); } }); } _getPanelElement(panelId) { return this._element.nativeElement.querySelector('#' + panelId); } } NgbAccordion.ɵfac = function NgbAccordion_Factory(t) { return new (t || NgbAccordion)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbAccordionConfig), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"])); }; NgbAccordion.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbAccordion, selectors: [["ngb-accordion"]], contentQueries: function NgbAccordion_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbPanel, false); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.panels = _t); } }, hostAttrs: ["role", "tablist", 1, "accordion"], hostVars: 1, hostBindings: function NgbAccordion_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-multiselectable", !ctx.closeOtherPanels); } }, inputs: { activeIds: "activeIds", destroyOnHide: "destroyOnHide", animation: "animation", type: "type", closeOtherPanels: ["closeOthers", "closeOtherPanels"] }, outputs: { panelChange: "panelChange", shown: "shown", hidden: "hidden" }, exportAs: ["ngbAccordion"], decls: 3, vars: 1, consts: [["ngbPanelHeader", ""], ["t", ""], ["ngFor", "", 3, "ngForOf"], [1, "btn", "btn-link", 3, "ngbPanelToggle"], [3, "ngTemplateOutlet"], ["role", "tab", 3, "id"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["role", "tabpanel", 3, "id", 4, "ngIf"], ["role", "tabpanel", 3, "id"], [1, "card-body"]], template: function NgbAccordion_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbAccordion_ng_template_0_Template, 3, 3, "ng-template", 0, 1, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbAccordion_ng_template_2_Template, 4, 11, "ng-template", 2); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.panels); } }, directives: function () { return [NgbPanelHeader, _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgForOf"], NgbPanelToggle, _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgTemplateOutlet"], _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgIf"]]; }, encapsulation: 2 }); NgbAccordion.ctorParameters = () => [ { type: NgbAccordionConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] } ]; NgbAccordion.propDecorators = { panels: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbPanel,] }], animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], activeIds: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], closeOtherPanels: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['closeOthers',] }], destroyOnHide: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], panelChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbAccordion, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-accordion', exportAs: 'ngbAccordion', encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, host: { 'class': 'accordion', 'role': 'tablist', '[attr.aria-multiselectable]': '!closeOtherPanels' }, template: `
` }] }], function () { return [{ type: NgbAccordionConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }]; }, { activeIds: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], destroyOnHide: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], panelChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], closeOtherPanels: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['closeOthers'] }], panels: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbPanel] }] }); })(); /** * A directive to put on a button that toggles panel opening and closing. * * To be used inside the [`NgbPanelHeader`](#/components/accordion/api#NgbPanelHeader) * * @since 4.1.0 */ class NgbPanelToggle { constructor(accordion, panel) { this.accordion = accordion; this.panel = panel; } set ngbPanelToggle(panel) { if (panel) { this.panel = panel; } } } NgbPanelToggle.ɵfac = function NgbPanelToggle_Factory(t) { return new (t || NgbPanelToggle)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbAccordion), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbPanel, 9)); }; NgbPanelToggle.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbPanelToggle, selectors: [["button", "ngbPanelToggle", ""]], hostAttrs: ["type", "button"], hostVars: 5, hostBindings: function NgbPanelToggle_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbPanelToggle_click_HostBindingHandler() { return ctx.accordion.toggle(ctx.panel.id); }); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵhostProperty"]("disabled", ctx.panel.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-expanded", ctx.panel.isOpen)("aria-controls", ctx.panel.id); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("collapsed", !ctx.panel.isOpen); } }, inputs: { ngbPanelToggle: "ngbPanelToggle" } }); NgbPanelToggle.ctorParameters = () => [ { type: NgbAccordion }, { type: NgbPanel, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Host"] }] } ]; NgbPanelToggle.propDecorators = { ngbPanelToggle: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPanelToggle, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'button[ngbPanelToggle]', host: { 'type': 'button', '[disabled]': 'panel.disabled', '[class.collapsed]': '!panel.isOpen', '[attr.aria-expanded]': 'panel.isOpen', '[attr.aria-controls]': 'panel.id', '(click)': 'accordion.toggle(panel.id)' } }] }], function () { return [{ type: NgbAccordion }, { type: NgbPanel, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Host"] }] }]; }, { ngbPanelToggle: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); const NGB_ACCORDION_DIRECTIVES = [NgbAccordion, NgbPanel, NgbPanelTitle, NgbPanelContent, NgbPanelHeader, NgbPanelToggle]; class NgbAccordionModule { } NgbAccordionModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbAccordionModule }); NgbAccordionModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbAccordionModule_Factory(t) { return new (t || NgbAccordionModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbAccordionModule, { declarations: function () { return [NgbAccordion, NgbPanel, NgbPanelTitle, NgbPanelContent, NgbPanelHeader, NgbPanelToggle]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]; }, exports: function () { return [NgbAccordion, NgbPanel, NgbPanelTitle, NgbPanelContent, NgbPanelHeader, NgbPanelToggle]; } }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbAccordionModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: NGB_ACCORDION_DIRECTIVES, exports: NGB_ACCORDION_DIRECTIVES, imports: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]] }] }], null, null); })(); /** * A configuration service for the [NgbAlert](#/components/alert/api#NgbAlert) component. * * You can inject this service, typically in your root component, and customize its properties * to provide default values for all alerts used in the application. */ class NgbAlertConfig { constructor(ngbConfig) { this.dismissible = true; this.type = 'warning'; this.animation = ngbConfig.animation; } } NgbAlertConfig.ɵfac = function NgbAlertConfig_Factory(t) { return new (t || NgbAlertConfig)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](NgbConfig)); }; NgbAlertConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbAlertConfig_Factory() { return new NgbAlertConfig(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(NgbConfig)); }, token: NgbAlertConfig, providedIn: "root" }); NgbAlertConfig.ctorParameters = () => [ { type: NgbConfig } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbAlertConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return [{ type: NgbConfig }]; }, null); })(); const ngbAlertFadingTransition = ({ classList }) => { classList.remove('show'); }; /** * Alert is a component to provide contextual feedback messages for user. * * It supports several alert types and can be dismissed. */ class NgbAlert { constructor(config, _renderer, _element) { this._renderer = _renderer; this._element = _element; /** * An event emitted when the close button is clicked. It has no payload and only relevant for dismissible alerts. * * @since 8.0.0 */ this.closed = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this.dismissible = config.dismissible; this.type = config.type; this.animation = config.animation; } /** * Triggers alert closing programmatically (same as clicking on the close button (×)). * * The returned observable will emit and be completed once the closing transition has finished. * If the animations are turned off this happens synchronously. * * Alternatively you could listen or subscribe to the `(closed)` output * * @since 8.0.0 */ close() { const transition = ngbRunTransition(this._element.nativeElement, ngbAlertFadingTransition, { animation: this.animation, runningTransition: 'continue' }); transition.subscribe(() => this.closed.emit()); return transition; } ngOnChanges(changes) { const typeChange = changes['type']; if (typeChange && !typeChange.firstChange) { this._renderer.removeClass(this._element.nativeElement, `alert-${typeChange.previousValue}`); this._renderer.addClass(this._element.nativeElement, `alert-${typeChange.currentValue}`); } } ngOnInit() { this._renderer.addClass(this._element.nativeElement, `alert-${this.type}`); } } NgbAlert.ɵfac = function NgbAlert_Factory(t) { return new (t || NgbAlert)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbAlertConfig), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"])); }; NgbAlert.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbAlert, selectors: [["ngb-alert"]], hostAttrs: ["role", "alert", 1, "alert", "show"], hostVars: 4, hostBindings: function NgbAlert_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("fade", ctx.animation)("alert-dismissible", ctx.dismissible); } }, inputs: { dismissible: "dismissible", type: "type", animation: "animation" }, outputs: { closed: "closed" }, exportAs: ["ngbAlert"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]], ngContentSelectors: _c5, decls: 2, vars: 1, consts: function () { let i18n_1; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_alert_close$$FESM2015_NG_BOOTSTRAP_JS_2 = goog.getMsg("Close"); i18n_1 = MSG_EXTERNAL_ngb_alert_close$$FESM2015_NG_BOOTSTRAP_JS_2; } else { i18n_1 = $localize `:@@ngb.alert.close␟f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8␟7819314041543176992:Close`; } let i18n_3; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_alert_close$$FESM2015_NG_BOOTSTRAP_JS__4 = goog.getMsg("Close"); i18n_3 = MSG_EXTERNAL_ngb_alert_close$$FESM2015_NG_BOOTSTRAP_JS__4; } else { i18n_3 = $localize `:@@ngb.alert.close␟f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8␟7819314041543176992:Close`; } return [["type", "button", "class", "close", "aria-label", i18n_1, 3, "click", 4, "ngIf"], ["type", "button", "aria-label", i18n_3, 1, "close", 3, "click"], ["aria-hidden", "true"]]; }, template: function NgbAlert_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojectionDef"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojection"](0); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbAlert_button_1_Template, 3, 0, "button", 0); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.dismissible); } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgIf"]], styles: ["ngb-alert{display:block}"], encapsulation: 2, changeDetection: 0 }); NgbAlert.ctorParameters = () => [ { type: NgbAlertConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] } ]; NgbAlert.propDecorators = { animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], dismissible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], closed: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbAlert, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-alert', exportAs: 'ngbAlert', changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, host: { 'role': 'alert', 'class': 'alert show', '[class.fade]': 'animation', '[class.alert-dismissible]': 'dismissible' }, template: ` `, styles: ["ngb-alert{display:block}"] }] }], function () { return [{ type: NgbAlertConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }]; }, { closed: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], dismissible: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); class NgbAlertModule { } NgbAlertModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbAlertModule }); NgbAlertModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbAlertModule_Factory(t) { return new (t || NgbAlertModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbAlertModule, { declarations: function () { return [NgbAlert]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]; }, exports: function () { return [NgbAlert]; } }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbAlertModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: [NgbAlert], exports: [NgbAlert], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]], entryComponents: [NgbAlert] }] }], null, null); })(); class NgbButtonLabel { } NgbButtonLabel.ɵfac = function NgbButtonLabel_Factory(t) { return new (t || NgbButtonLabel)(); }; NgbButtonLabel.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbButtonLabel, selectors: [["", "ngbButtonLabel", ""]], hostVars: 8, hostBindings: function NgbButtonLabel_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("btn", true)("active", ctx.active)("disabled", ctx.disabled)("focus", ctx.focused); } } }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbButtonLabel, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbButtonLabel]', host: { '[class.btn]': 'true', '[class.active]': 'active', '[class.disabled]': 'disabled', '[class.focus]': 'focused' } }] }], null, null); })(); const NGB_CHECKBOX_VALUE_ACCESSOR = { provide: _angular_forms__WEBPACK_IMPORTED_MODULE_4__["NG_VALUE_ACCESSOR"], useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbCheckBox), multi: true }; /** * Allows to easily create Bootstrap-style checkbox buttons. * * Integrates with forms, so the value of a checked button is bound to the underlying form control * either in a reactive or template-driven way. */ class NgbCheckBox { constructor(_label, _cd) { this._label = _label; this._cd = _cd; /** * If `true`, the checkbox button will be disabled */ this.disabled = false; /** * The form control value when the checkbox is checked. */ this.valueChecked = true; /** * The form control value when the checkbox is unchecked. */ this.valueUnChecked = false; this.onChange = (_) => { }; this.onTouched = () => { }; } set focused(isFocused) { this._label.focused = isFocused; if (!isFocused) { this.onTouched(); } } onInputChange($event) { const modelToPropagate = $event.target.checked ? this.valueChecked : this.valueUnChecked; this.onChange(modelToPropagate); this.onTouched(); this.writeValue(modelToPropagate); } registerOnChange(fn) { this.onChange = fn; } registerOnTouched(fn) { this.onTouched = fn; } setDisabledState(isDisabled) { this.disabled = isDisabled; this._label.disabled = isDisabled; } writeValue(value) { this.checked = value === this.valueChecked; this._label.active = this.checked; // label won't be updated, if it is inside the OnPush component when [ngModel] changes this._cd.markForCheck(); } } NgbCheckBox.ɵfac = function NgbCheckBox_Factory(t) { return new (t || NgbCheckBox)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbButtonLabel), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"])); }; NgbCheckBox.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbCheckBox, selectors: [["", "ngbButton", "", "type", "checkbox"]], hostVars: 2, hostBindings: function NgbCheckBox_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("change", function NgbCheckBox_change_HostBindingHandler($event) { return ctx.onInputChange($event); })("focus", function NgbCheckBox_focus_HostBindingHandler() { return ctx.focused = true; })("blur", function NgbCheckBox_blur_HostBindingHandler() { return ctx.focused = false; }); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵhostProperty"]("checked", ctx.checked)("disabled", ctx.disabled); } }, inputs: { disabled: "disabled", valueChecked: "valueChecked", valueUnChecked: "valueUnChecked" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([NGB_CHECKBOX_VALUE_ACCESSOR])] }); NgbCheckBox.ctorParameters = () => [ { type: NgbButtonLabel }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] } ]; NgbCheckBox.propDecorators = { disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], valueChecked: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], valueUnChecked: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCheckBox, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbButton][type=checkbox]', host: { '[checked]': 'checked', '[disabled]': 'disabled', '(change)': 'onInputChange($event)', '(focus)': 'focused = true', '(blur)': 'focused = false' }, providers: [NGB_CHECKBOX_VALUE_ACCESSOR] }] }], function () { return [{ type: NgbButtonLabel }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }]; }, { disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], valueChecked: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], valueUnChecked: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); const NGB_RADIO_VALUE_ACCESSOR = { provide: _angular_forms__WEBPACK_IMPORTED_MODULE_4__["NG_VALUE_ACCESSOR"], useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbRadioGroup), multi: true }; let nextId$1 = 0; /** * Allows to easily create Bootstrap-style radio buttons. * * Integrates with forms, so the value of a checked button is bound to the underlying form control * either in a reactive or template-driven way. */ class NgbRadioGroup { constructor() { this._radios = new Set(); this._value = null; /** * Name of the radio group applied to radio input elements. * * Will be applied to all radio input elements inside the group, * unless [`NgbRadio`](#/components/buttons/api#NgbRadio)'s specify names themselves. * * If not provided, will be generated in the `ngb-radio-xx` format. */ this.name = `ngb-radio-${nextId$1++}`; this.onChange = (_) => { }; this.onTouched = () => { }; } get disabled() { return this._disabled; } set disabled(isDisabled) { this.setDisabledState(isDisabled); } onRadioChange(radio) { this.writeValue(radio.value); this.onChange(radio.value); } onRadioValueUpdate() { this._updateRadiosValue(); } register(radio) { this._radios.add(radio); } registerOnChange(fn) { this.onChange = fn; } registerOnTouched(fn) { this.onTouched = fn; } setDisabledState(isDisabled) { this._disabled = isDisabled; this._updateRadiosDisabled(); } unregister(radio) { this._radios.delete(radio); } writeValue(value) { this._value = value; this._updateRadiosValue(); } _updateRadiosValue() { this._radios.forEach((radio) => radio.updateValue(this._value)); } _updateRadiosDisabled() { this._radios.forEach((radio) => radio.updateDisabled()); } } NgbRadioGroup.ɵfac = function NgbRadioGroup_Factory(t) { return new (t || NgbRadioGroup)(); }; NgbRadioGroup.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbRadioGroup, selectors: [["", "ngbRadioGroup", ""]], hostAttrs: ["role", "radiogroup"], inputs: { name: "name" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([NGB_RADIO_VALUE_ACCESSOR])] }); NgbRadioGroup.propDecorators = { name: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbRadioGroup, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbRadioGroup]', host: { 'role': 'radiogroup' }, providers: [NGB_RADIO_VALUE_ACCESSOR] }] }], function () { return []; }, { name: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); /** * A directive that marks an input of type "radio" as a part of the * [`NgbRadioGroup`](#/components/buttons/api#NgbRadioGroup). */ class NgbRadio { constructor(_group, _label, _renderer, _element, _cd) { this._group = _group; this._label = _label; this._renderer = _renderer; this._element = _element; this._cd = _cd; this._value = null; this._group.register(this); this.updateDisabled(); } /** * The form control value when current radio button is checked. */ set value(value) { this._value = value; const stringValue = value ? value.toString() : ''; this._renderer.setProperty(this._element.nativeElement, 'value', stringValue); this._group.onRadioValueUpdate(); } /** * If `true`, current radio button will be disabled. */ set disabled(isDisabled) { this._disabled = isDisabled !== false; this.updateDisabled(); } set focused(isFocused) { if (this._label) { this._label.focused = isFocused; } if (!isFocused) { this._group.onTouched(); } } get checked() { return this._checked; } get disabled() { return this._group.disabled || this._disabled; } get value() { return this._value; } get nameAttr() { return this.name || this._group.name; } ngOnDestroy() { this._group.unregister(this); } onChange() { this._group.onRadioChange(this); } updateValue(value) { // label won't be updated, if it is inside the OnPush component when [ngModel] changes if (this.value !== value) { this._cd.markForCheck(); } this._checked = this.value === value; this._label.active = this._checked; } updateDisabled() { this._label.disabled = this.disabled; } } NgbRadio.ɵfac = function NgbRadio_Factory(t) { return new (t || NgbRadio)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbRadioGroup), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbButtonLabel), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"])); }; NgbRadio.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbRadio, selectors: [["", "ngbButton", "", "type", "radio"]], hostVars: 3, hostBindings: function NgbRadio_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("change", function NgbRadio_change_HostBindingHandler() { return ctx.onChange(); })("focus", function NgbRadio_focus_HostBindingHandler() { return ctx.focused = true; })("blur", function NgbRadio_blur_HostBindingHandler() { return ctx.focused = false; }); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵhostProperty"]("checked", ctx.checked)("disabled", ctx.disabled)("name", ctx.nameAttr); } }, inputs: { value: "value", disabled: "disabled", name: "name" } }); NgbRadio.ctorParameters = () => [ { type: NgbRadioGroup }, { type: NgbButtonLabel }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] } ]; NgbRadio.propDecorators = { name: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], value: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['value',] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['disabled',] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbRadio, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbButton][type=radio]', host: { '[checked]': 'checked', '[disabled]': 'disabled', '[name]': 'nameAttr', '(change)': 'onChange()', '(focus)': 'focused = true', '(blur)': 'focused = false' } }] }], function () { return [{ type: NgbRadioGroup }, { type: NgbButtonLabel }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }]; }, { value: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['value'] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['disabled'] }], name: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); const NGB_BUTTON_DIRECTIVES = [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio]; class NgbButtonsModule { } NgbButtonsModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbButtonsModule }); NgbButtonsModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbButtonsModule_Factory(t) { return new (t || NgbButtonsModule)(); } }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbButtonsModule, { declarations: [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio], exports: [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio] }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbButtonsModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: NGB_BUTTON_DIRECTIVES, exports: NGB_BUTTON_DIRECTIVES }] }], null, null); })(); /** * A configuration service for the [NgbCarousel](#/components/carousel/api#NgbCarousel) component. * * You can inject this service, typically in your root component, and customize its properties * to provide default values for all carousels used in the application. */ class NgbCarouselConfig { constructor(ngbConfig) { this.interval = 5000; this.wrap = true; this.keyboard = true; this.pauseOnHover = true; this.pauseOnFocus = true; this.showNavigationArrows = true; this.showNavigationIndicators = true; this.animation = ngbConfig.animation; } } NgbCarouselConfig.ɵfac = function NgbCarouselConfig_Factory(t) { return new (t || NgbCarouselConfig)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](NgbConfig)); }; NgbCarouselConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbCarouselConfig_Factory() { return new NgbCarouselConfig(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(NgbConfig)); }, token: NgbCarouselConfig, providedIn: "root" }); NgbCarouselConfig.ctorParameters = () => [ { type: NgbConfig } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCarouselConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return [{ type: NgbConfig }]; }, null); })(); /** * Defines the carousel slide transition direction. */ var NgbSlideEventDirection; (function (NgbSlideEventDirection) { NgbSlideEventDirection["LEFT"] = "left"; NgbSlideEventDirection["RIGHT"] = "right"; })(NgbSlideEventDirection || (NgbSlideEventDirection = {})); const isAnimated = ({ classList }) => { return classList.contains('carousel-item-left') || classList.contains('carousel-item-right'); }; const ɵ0$1 = isAnimated; const removeDirectionClasses = ({ classList }) => { classList.remove('carousel-item-left'); classList.remove('carousel-item-right'); }; const ɵ1 = removeDirectionClasses; const removeClasses = ({ classList }) => { removeDirectionClasses({ classList }); classList.remove('carousel-item-prev'); classList.remove('carousel-item-next'); }; const ɵ2 = removeClasses; const ngbCarouselTransitionIn = (element, { direction }) => { const { classList } = element; if (isAnimated(element)) { // Revert the transition removeDirectionClasses(element); } else { // For the 'in' transition, a 'pre-class' is applied to the element to ensure its visibility classList.add('carousel-item-' + (direction === NgbSlideEventDirection.LEFT ? 'next' : 'prev')); reflow(element); classList.add('carousel-item-' + direction); } return () => { removeClasses(element); classList.add('active'); }; }; const ngbCarouselTransitionOut = (element, { direction }) => { const { classList } = element; // direction is left or right, depending on the way the slide goes out. if (isAnimated(element)) { // Revert the transition removeDirectionClasses(element); } else { classList.add('carousel-item-' + direction); } return () => { removeClasses(element); classList.remove('active'); }; }; let nextId$2 = 0; /** * A directive that wraps the individual carousel slide. */ class NgbSlide { constructor(tplRef) { this.tplRef = tplRef; /** * Slide id that must be unique for the entire document. * * If not provided, will be generated in the `ngb-slide-xx` format. */ this.id = `ngb-slide-${nextId$2++}`; /** * An event emitted when the slide transition is finished * * @since 8.0.0 */ this.slid = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); } } NgbSlide.ɵfac = function NgbSlide_Factory(t) { return new (t || NgbSlide)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"])); }; NgbSlide.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbSlide, selectors: [["ng-template", "ngbSlide", ""]], inputs: { id: "id" }, outputs: { slid: "slid" } }); NgbSlide.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] } ]; NgbSlide.propDecorators = { id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], slid: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbSlide, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'ng-template[ngbSlide]' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] }]; }, { id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], slid: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }); })(); /** * Carousel is a component to easily create and control slideshows. * * Allows to set intervals, change the way user interacts with the slides and provides a programmatic API. */ class NgbCarousel { constructor(config, _platformId, _ngZone, _cd, _container) { this._platformId = _platformId; this._ngZone = _ngZone; this._cd = _cd; this._container = _container; this.NgbSlideEventSource = NgbSlideEventSource; this._destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); this._interval$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["BehaviorSubject"](0); this._mouseHover$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["BehaviorSubject"](false); this._focused$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["BehaviorSubject"](false); this._pauseOnHover$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["BehaviorSubject"](false); this._pauseOnFocus$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["BehaviorSubject"](false); this._pause$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["BehaviorSubject"](false); this._wrap$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["BehaviorSubject"](false); /** * An event emitted just before the slide transition starts. * * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details. */ this.slide = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted right after the slide transition is completed. * * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details. * * @since 8.0.0 */ this.slid = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /* * Keep the ids of the panels currently transitionning * in order to allow only the transition revertion */ this._transitionIds = null; this.animation = config.animation; this.interval = config.interval; this.wrap = config.wrap; this.keyboard = config.keyboard; this.pauseOnHover = config.pauseOnHover; this.pauseOnFocus = config.pauseOnFocus; this.showNavigationArrows = config.showNavigationArrows; this.showNavigationIndicators = config.showNavigationIndicators; } /** * Time in milliseconds before the next slide is shown. */ set interval(value) { this._interval$.next(value); } get interval() { return this._interval$.value; } /** * If `true`, will 'wrap' the carousel by switching from the last slide back to the first. */ set wrap(value) { this._wrap$.next(value); } get wrap() { return this._wrap$.value; } /** * If `true`, will pause slide switching when mouse cursor hovers the slide. * * @since 2.2.0 */ set pauseOnHover(value) { this._pauseOnHover$.next(value); } get pauseOnHover() { return this._pauseOnHover$.value; } /** * If `true`, will pause slide switching when the focus is inside the carousel. */ set pauseOnFocus(value) { this._pauseOnFocus$.next(value); } get pauseOnFocus() { return this._pauseOnFocus$.value; } set mouseHover(value) { this._mouseHover$.next(value); } get mouseHover() { return this._mouseHover$.value; } set focused(value) { this._focused$.next(value); } get focused() { return this._focused$.value; } arrowLeft() { this.focus(); this.prev(NgbSlideEventSource.ARROW_LEFT); } arrowRight() { this.focus(); this.next(NgbSlideEventSource.ARROW_RIGHT); } ngAfterContentInit() { // setInterval() doesn't play well with SSR and protractor, // so we should run it in the browser and outside Angular if (Object(_angular_common__WEBPACK_IMPORTED_MODULE_1__["isPlatformBrowser"])(this._platformId)) { this._ngZone.runOutsideAngular(() => { const hasNextSlide$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["combineLatest"])([ this.slide.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(slideEvent => slideEvent.current), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["startWith"])(this.activeId)), this._wrap$, this.slides.changes.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["startWith"])(null)) ]) .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(([currentSlideId, wrap]) => { const slideArr = this.slides.toArray(); const currentSlideIdx = this._getSlideIdxById(currentSlideId); return wrap ? slideArr.length > 1 : currentSlideIdx < slideArr.length - 1; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["distinctUntilChanged"])()); Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["combineLatest"])([ this._pause$, this._pauseOnHover$, this._mouseHover$, this._pauseOnFocus$, this._focused$, this._interval$, hasNextSlide$ ]) .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(([pause, pauseOnHover, mouseHover, pauseOnFocus, focused, interval, hasNextSlide]) => ((pause || (pauseOnHover && mouseHover) || (pauseOnFocus && focused) || !hasNextSlide) ? 0 : interval)), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["distinctUntilChanged"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["switchMap"])(interval => interval > 0 ? Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["timer"])(interval, interval) : rxjs__WEBPACK_IMPORTED_MODULE_2__["NEVER"]), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(this._destroy$)) .subscribe(() => this._ngZone.run(() => this.next(NgbSlideEventSource.TIMER))); }); } this.slides.changes.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(this._destroy$)).subscribe(() => this._cd.markForCheck()); } ngAfterContentChecked() { let activeSlide = this._getSlideById(this.activeId); this.activeId = activeSlide ? activeSlide.id : (this.slides.length ? this.slides.first.id : ''); } ngAfterViewInit() { // Initialize the 'active' class (not managed by the template) if (this.activeId) { const element = this._getSlideElement(this.activeId); if (element) { element.classList.add('active'); } } } ngOnDestroy() { this._destroy$.next(); } /** * Navigates to a slide with the specified identifier. */ select(slideId, source) { this._cycleToSelected(slideId, this._getSlideEventDirection(this.activeId, slideId), source); } /** * Navigates to the previous slide. */ prev(source) { this._cycleToSelected(this._getPrevSlide(this.activeId), NgbSlideEventDirection.RIGHT, source); } /** * Navigates to the next slide. */ next(source) { this._cycleToSelected(this._getNextSlide(this.activeId), NgbSlideEventDirection.LEFT, source); } /** * Pauses cycling through the slides. */ pause() { this._pause$.next(true); } /** * Restarts cycling through the slides from left to right. */ cycle() { this._pause$.next(false); } /** * Set the focus on the carousel. */ focus() { this._container.nativeElement.focus(); } _cycleToSelected(slideIdx, direction, source) { const transitionIds = this._transitionIds; if (transitionIds && (transitionIds[0] !== slideIdx || transitionIds[1] !== this.activeId)) { // Revert prevented return; } let selectedSlide = this._getSlideById(slideIdx); if (selectedSlide && selectedSlide.id !== this.activeId) { this._transitionIds = [this.activeId, slideIdx]; this.slide.emit({ prev: this.activeId, current: selectedSlide.id, direction: direction, paused: this._pause$.value, source }); const options = { animation: this.animation, runningTransition: 'stop', context: { direction }, }; const transitions = []; const activeSlide = this._getSlideById(this.activeId); if (activeSlide) { const activeSlideTransition = ngbRunTransition(this._getSlideElement(activeSlide.id), ngbCarouselTransitionOut, options); activeSlideTransition.subscribe(() => { activeSlide.slid.emit({ isShown: false, direction, source }); }); transitions.push(activeSlideTransition); } const previousId = this.activeId; this.activeId = selectedSlide.id; const nextSlide = this._getSlideById(this.activeId); const transition = ngbRunTransition(this._getSlideElement(selectedSlide.id), ngbCarouselTransitionIn, options); transition.subscribe(() => { nextSlide === null || nextSlide === void 0 ? void 0 : nextSlide.slid.emit({ isShown: true, direction, source }); }); transitions.push(transition); Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["zip"])(...transitions).pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["take"])(1)).subscribe(() => { this._transitionIds = null; this.slid.emit({ prev: previousId, current: selectedSlide.id, direction: direction, paused: this._pause$.value, source }); }); } // we get here after the interval fires or any external API call like next(), prev() or select() this._cd.markForCheck(); } _getSlideEventDirection(currentActiveSlideId, nextActiveSlideId) { const currentActiveSlideIdx = this._getSlideIdxById(currentActiveSlideId); const nextActiveSlideIdx = this._getSlideIdxById(nextActiveSlideId); return currentActiveSlideIdx > nextActiveSlideIdx ? NgbSlideEventDirection.RIGHT : NgbSlideEventDirection.LEFT; } _getSlideById(slideId) { return this.slides.find(slide => slide.id === slideId) || null; } _getSlideIdxById(slideId) { const slide = this._getSlideById(slideId); return slide != null ? this.slides.toArray().indexOf(slide) : -1; } _getNextSlide(currentSlideId) { const slideArr = this.slides.toArray(); const currentSlideIdx = this._getSlideIdxById(currentSlideId); const isLastSlide = currentSlideIdx === slideArr.length - 1; return isLastSlide ? (this.wrap ? slideArr[0].id : slideArr[slideArr.length - 1].id) : slideArr[currentSlideIdx + 1].id; } _getPrevSlide(currentSlideId) { const slideArr = this.slides.toArray(); const currentSlideIdx = this._getSlideIdxById(currentSlideId); const isFirstSlide = currentSlideIdx === 0; return isFirstSlide ? (this.wrap ? slideArr[slideArr.length - 1].id : slideArr[0].id) : slideArr[currentSlideIdx - 1].id; } _getSlideElement(slideId) { return this._container.nativeElement.querySelector(`#slide-${slideId}`); } } NgbCarousel.ɵfac = function NgbCarousel_Factory(t) { return new (t || NgbCarousel)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbCarouselConfig), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["PLATFORM_ID"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"])); }; NgbCarousel.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbCarousel, selectors: [["ngb-carousel"]], contentQueries: function NgbCarousel_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbSlide, false); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.slides = _t); } }, hostAttrs: ["tabIndex", "0", 1, "carousel", "slide"], hostVars: 3, hostBindings: function NgbCarousel_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("keydown.arrowLeft", function NgbCarousel_keydown_arrowLeft_HostBindingHandler() { return ctx.keyboard && ctx.arrowLeft(); })("keydown.arrowRight", function NgbCarousel_keydown_arrowRight_HostBindingHandler() { return ctx.keyboard && ctx.arrowRight(); })("mouseenter", function NgbCarousel_mouseenter_HostBindingHandler() { return ctx.mouseHover = true; })("mouseleave", function NgbCarousel_mouseleave_HostBindingHandler() { return ctx.mouseHover = false; })("focusin", function NgbCarousel_focusin_HostBindingHandler() { return ctx.focused = true; })("focusout", function NgbCarousel_focusout_HostBindingHandler() { return ctx.focused = false; }); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-activedescendant", ctx.activeId); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstyleProp"]("display", "block"); } }, inputs: { animation: "animation", interval: "interval", wrap: "wrap", keyboard: "keyboard", pauseOnHover: "pauseOnHover", pauseOnFocus: "pauseOnFocus", showNavigationArrows: "showNavigationArrows", showNavigationIndicators: "showNavigationIndicators", activeId: "activeId" }, outputs: { slide: "slide", slid: "slid" }, exportAs: ["ngbCarousel"], decls: 6, vars: 6, consts: function () { let i18n_6; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { /** * @desc Currently selected slide number read by screen reader */ const MSG_EXTERNAL_ngb_carousel_slide_number$$FESM2015_NG_BOOTSTRAP_JS__7 = goog.getMsg(" Slide {$interpolation} of {$interpolation_1} ", { "interpolation": "\uFFFD0\uFFFD", "interpolation_1": "\uFFFD1\uFFFD" }); i18n_6 = MSG_EXTERNAL_ngb_carousel_slide_number$$FESM2015_NG_BOOTSTRAP_JS__7; } else { i18n_6 = $localize `:Currently selected slide number read by screen reader@@ngb.carousel.slide-number␟a65b1b49aa7dd8c4f3004da6a8c2241814dae621␟783273603869937627: Slide ${"\uFFFD0\uFFFD"}:INTERPOLATION: of ${"\uFFFD1\uFFFD"}:INTERPOLATION_1: `; } let i18n_8; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_carousel_previous$$FESM2015_NG_BOOTSTRAP_JS__9 = goog.getMsg("Previous"); i18n_8 = MSG_EXTERNAL_ngb_carousel_previous$$FESM2015_NG_BOOTSTRAP_JS__9; } else { i18n_8 = $localize `:@@ngb.carousel.previous␟680d5c75b7fd8d37961083608b9fcdc4167b4c43␟4452427314943113135:Previous`; } let i18n_10; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_carousel_next$$FESM2015_NG_BOOTSTRAP_JS__11 = goog.getMsg("Next"); i18n_10 = MSG_EXTERNAL_ngb_carousel_next$$FESM2015_NG_BOOTSTRAP_JS__11; } else { i18n_10 = $localize `:@@ngb.carousel.next␟f732c304c7433e5a83ffcd862c3dce709a0f4982␟3885497195825665706:Next`; } return [["role", "tablist", 1, "carousel-indicators"], ["role", "tab", 3, "active", "click", 4, "ngFor", "ngForOf"], [1, "carousel-inner"], ["class", "carousel-item", "role", "tabpanel", 3, "id", 4, "ngFor", "ngForOf"], ["class", "carousel-control-prev", "role", "button", 3, "click", 4, "ngIf"], ["class", "carousel-control-next", "role", "button", 3, "click", 4, "ngIf"], ["role", "tab", 3, "click"], ["role", "tabpanel", 1, "carousel-item", 3, "id"], [1, "sr-only"], i18n_6, [3, "ngTemplateOutlet"], ["role", "button", 1, "carousel-control-prev", 3, "click"], ["aria-hidden", "true", 1, "carousel-control-prev-icon"], i18n_8, ["role", "button", 1, "carousel-control-next", 3, "click"], ["aria-hidden", "true", 1, "carousel-control-next-icon"], i18n_10]; }, template: function NgbCarousel_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "ol", 0); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbCarousel_li_1_Template, 1, 5, "li", 1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "div", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](3, NgbCarousel_div_3_Template, 4, 4, "div", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](4, NgbCarousel_a_4_Template, 4, 0, "a", 4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](5, NgbCarousel_a_5_Template, 4, 0, "a", 5); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("sr-only", !ctx.showNavigationIndicators); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.slides); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.slides); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.showNavigationArrows); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.showNavigationArrows); } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgForOf"], _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgIf"], _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgTemplateOutlet"]], encapsulation: 2, changeDetection: 0 }); NgbCarousel.ctorParameters = () => [ { type: NgbCarouselConfig }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["PLATFORM_ID"],] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] } ]; NgbCarousel.propDecorators = { slides: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbSlide,] }], animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], activeId: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], interval: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], wrap: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], keyboard: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], pauseOnHover: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], pauseOnFocus: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showNavigationArrows: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showNavigationIndicators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], slide: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], slid: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCarousel, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-carousel', exportAs: 'ngbCarousel', changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, host: { 'class': 'carousel slide', '[style.display]': '"block"', 'tabIndex': '0', '(keydown.arrowLeft)': 'keyboard && arrowLeft()', '(keydown.arrowRight)': 'keyboard && arrowRight()', '(mouseenter)': 'mouseHover = true', '(mouseleave)': 'mouseHover = false', '(focusin)': 'focused = true', '(focusout)': 'focused = false', '[attr.aria-activedescendant]': 'activeId' }, template: ` Previous Next ` }] }], function () { return [{ type: NgbCarouselConfig }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["PLATFORM_ID"]] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }]; }, { slide: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], slid: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], interval: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], wrap: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], keyboard: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], pauseOnHover: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], pauseOnFocus: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showNavigationArrows: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showNavigationIndicators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], activeId: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], slides: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbSlide] }] }); })(); var NgbSlideEventSource; (function (NgbSlideEventSource) { NgbSlideEventSource["TIMER"] = "timer"; NgbSlideEventSource["ARROW_LEFT"] = "arrowLeft"; NgbSlideEventSource["ARROW_RIGHT"] = "arrowRight"; NgbSlideEventSource["INDICATOR"] = "indicator"; })(NgbSlideEventSource || (NgbSlideEventSource = {})); const NGB_CAROUSEL_DIRECTIVES = [NgbCarousel, NgbSlide]; class NgbCarouselModule { } NgbCarouselModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbCarouselModule }); NgbCarouselModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbCarouselModule_Factory(t) { return new (t || NgbCarouselModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbCarouselModule, { declarations: function () { return [NgbCarousel, NgbSlide]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]; }, exports: function () { return [NgbCarousel, NgbSlide]; } }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCarouselModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: NGB_CAROUSEL_DIRECTIVES, exports: NGB_CAROUSEL_DIRECTIVES, imports: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]] }] }], null, null); })(); /** * A configuration service for the [NgbCollapse](#/components/collapse/api#NgbCollapse) component. * * You can inject this service, typically in your root component, and customize its properties * to provide default values for all collapses used in the application. */ class NgbCollapseConfig { constructor(ngbConfig) { this.animation = ngbConfig.animation; } } NgbCollapseConfig.ɵfac = function NgbCollapseConfig_Factory(t) { return new (t || NgbCollapseConfig)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](NgbConfig)); }; NgbCollapseConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbCollapseConfig_Factory() { return new NgbCollapseConfig(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(NgbConfig)); }, token: NgbCollapseConfig, providedIn: "root" }); NgbCollapseConfig.ctorParameters = () => [ { type: NgbConfig } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCollapseConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return [{ type: NgbConfig }]; }, null); })(); /** * A directive to provide a simple way of hiding and showing elements on the page. */ class NgbCollapse { constructor(_element, config) { this._element = _element; /** * If `true`, collapse will be animated. * * Animation is triggered only when clicked on triggering element * or via the `.toggle()` function * * @since 8.0.0 */ this.animation = false; /** * If `true`, will collapse the element or show it otherwise. */ this.collapsed = false; this.ngbCollapseChange = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted when the collapse element is shown, after the transition. It has no payload. * * @since 8.0.0 */ this.shown = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted when the collapse element is hidden, after the transition. It has no payload. * * @since 8.0.0 */ this.hidden = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this.animation = config.animation; } ngOnInit() { this._element.nativeElement.classList.add('collapse'); this._runTransition(this.collapsed, false, false); } ngOnChanges({ collapsed }) { if (!collapsed.firstChange) { this._runTransition(this.collapsed, this.animation); } } /** * Triggers collapsing programmatically. * * If there is a collapsing transition running already, it will be reversed. * If the animations are turned off this happens synchronously. * * @since 8.0.0 */ toggle(open = this.collapsed) { this.collapsed = !open; this.ngbCollapseChange.next(this.collapsed); this._runTransition(this.collapsed, this.animation); } _runTransition(collapsed, animation, emitEvent = true) { ngbRunTransition(this._element.nativeElement, ngbCollapsingTransition, { animation, runningTransition: 'stop', context: { direction: collapsed ? 'hide' : 'show' } }).subscribe(() => { if (emitEvent) { if (collapsed) { this.hidden.emit(); } else { this.shown.emit(); } } }); } } NgbCollapse.ɵfac = function NgbCollapse_Factory(t) { return new (t || NgbCollapse)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbCollapseConfig)); }; NgbCollapse.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbCollapse, selectors: [["", "ngbCollapse", ""]], inputs: { animation: "animation", collapsed: ["ngbCollapse", "collapsed"] }, outputs: { ngbCollapseChange: "ngbCollapseChange", shown: "shown", hidden: "hidden" }, exportAs: ["ngbCollapse"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]] }); NgbCollapse.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: NgbCollapseConfig } ]; NgbCollapse.propDecorators = { animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], collapsed: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['ngbCollapse',] }], ngbCollapseChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCollapse, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbCollapse]', exportAs: 'ngbCollapse' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: NgbCollapseConfig }]; }, { animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], collapsed: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['ngbCollapse'] }], ngbCollapseChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }); })(); class NgbCollapseModule { } NgbCollapseModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbCollapseModule }); NgbCollapseModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbCollapseModule_Factory(t) { return new (t || NgbCollapseModule)(); } }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbCollapseModule, { declarations: [NgbCollapse], exports: [NgbCollapse] }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCollapseModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: [NgbCollapse], exports: [NgbCollapse] }] }], null, null); })(); /** * A simple class that represents a date that datepicker also uses internally. * * It is the implementation of the `NgbDateStruct` interface that adds some convenience methods, * like `.equals()`, `.before()`, etc. * * All datepicker APIs consume `NgbDateStruct`, but return `NgbDate`. * * In many cases it is simpler to manipulate these objects together with * [`NgbCalendar`](#/components/datepicker/api#NgbCalendar) than native JS Dates. * * See the [date format overview](#/components/datepicker/overview#date-model) for more details. * * @since 3.0.0 */ class NgbDate { constructor(year, month, day) { this.year = isInteger(year) ? year : null; this.month = isInteger(month) ? month : null; this.day = isInteger(day) ? day : null; } /** * A **static method** that creates a new date object from the `NgbDateStruct`, * * ex. `NgbDate.from({year: 2000, month: 5, day: 1})`. * * If the `date` is already of `NgbDate` type, the method will return the same object. */ static from(date) { if (date instanceof NgbDate) { return date; } return date ? new NgbDate(date.year, date.month, date.day) : null; } /** * Checks if the current date is equal to another date. */ equals(other) { return other != null && this.year === other.year && this.month === other.month && this.day === other.day; } /** * Checks if the current date is before another date. */ before(other) { if (!other) { return false; } if (this.year === other.year) { if (this.month === other.month) { return this.day === other.day ? false : this.day < other.day; } else { return this.month < other.month; } } else { return this.year < other.year; } } /** * Checks if the current date is after another date. */ after(other) { if (!other) { return false; } if (this.year === other.year) { if (this.month === other.month) { return this.day === other.day ? false : this.day > other.day; } else { return this.month > other.month; } } else { return this.year > other.year; } } } function fromJSDate(jsDate) { return new NgbDate(jsDate.getFullYear(), jsDate.getMonth() + 1, jsDate.getDate()); } function toJSDate(date) { const jsDate = new Date(date.year, date.month - 1, date.day, 12); // this is done avoid 30 -> 1930 conversion if (!isNaN(jsDate.getTime())) { jsDate.setFullYear(date.year); } return jsDate; } function NGB_DATEPICKER_CALENDAR_FACTORY() { return new NgbCalendarGregorian(); } /** * A service that represents the calendar used by the datepicker. * * The default implementation uses the Gregorian calendar. You can inject it in your own * implementations if necessary to simplify `NgbDate` calculations. */ class NgbCalendar { } NgbCalendar.ɵfac = function NgbCalendar_Factory(t) { return new (t || NgbCalendar)(); }; NgbCalendar.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: NGB_DATEPICKER_CALENDAR_FACTORY, token: NgbCalendar, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCalendar, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_CALENDAR_FACTORY }] }], null, null); })(); class NgbCalendarGregorian extends NgbCalendar { getDaysPerWeek() { return 7; } getMonths() { return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; } getWeeksPerMonth() { return 6; } getNext(date, period = 'd', number = 1) { let jsDate = toJSDate(date); let checkMonth = true; let expectedMonth = jsDate.getMonth(); switch (period) { case 'y': jsDate.setFullYear(jsDate.getFullYear() + number); break; case 'm': expectedMonth += number; jsDate.setMonth(expectedMonth); expectedMonth = expectedMonth % 12; if (expectedMonth < 0) { expectedMonth = expectedMonth + 12; } break; case 'd': jsDate.setDate(jsDate.getDate() + number); checkMonth = false; break; default: return date; } if (checkMonth && jsDate.getMonth() !== expectedMonth) { // this means the destination month has less days than the initial month // let's go back to the end of the previous month: jsDate.setDate(0); } return fromJSDate(jsDate); } getPrev(date, period = 'd', number = 1) { return this.getNext(date, period, -number); } getWeekday(date) { let jsDate = toJSDate(date); let day = jsDate.getDay(); // in JS Date Sun=0, in ISO 8601 Sun=7 return day === 0 ? 7 : day; } getWeekNumber(week, firstDayOfWeek) { // in JS Date Sun=0, in ISO 8601 Sun=7 if (firstDayOfWeek === 7) { firstDayOfWeek = 0; } const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7; let date = week[thursdayIndex]; const jsDate = toJSDate(date); jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday const time = jsDate.getTime(); jsDate.setMonth(0); // Compare with Jan 1 jsDate.setDate(1); return Math.floor(Math.round((time - jsDate.getTime()) / 86400000) / 7) + 1; } getToday() { return fromJSDate(new Date()); } isValid(date) { if (!date || !isInteger(date.year) || !isInteger(date.month) || !isInteger(date.day)) { return false; } // year 0 doesn't exist in Gregorian calendar if (date.year === 0) { return false; } const jsDate = toJSDate(date); return !isNaN(jsDate.getTime()) && jsDate.getFullYear() === date.year && jsDate.getMonth() + 1 === date.month && jsDate.getDate() === date.day; } } NgbCalendarGregorian.ɵfac = function NgbCalendarGregorian_Factory(t) { return ɵNgbCalendarGregorian_BaseFactory(t || NgbCalendarGregorian); }; NgbCalendarGregorian.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbCalendarGregorian, factory: NgbCalendarGregorian.ɵfac }); const ɵNgbCalendarGregorian_BaseFactory = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NgbCalendarGregorian); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCalendarGregorian, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], null, null); })(); function isChangedDate(prev, next) { return !dateComparator(prev, next); } function isChangedMonth(prev, next) { return !prev && !next ? false : !prev || !next ? true : prev.year !== next.year || prev.month !== next.month; } function dateComparator(prev, next) { return (!prev && !next) || (!!prev && !!next && prev.equals(next)); } function checkMinBeforeMax(minDate, maxDate) { if (maxDate && minDate && maxDate.before(minDate)) { throw new Error(`'maxDate' ${maxDate} should be greater than 'minDate' ${minDate}`); } } function checkDateInRange(date, minDate, maxDate) { if (date && minDate && date.before(minDate)) { return minDate; } if (date && maxDate && date.after(maxDate)) { return maxDate; } return date || null; } function isDateSelectable(date, state) { const { minDate, maxDate, disabled, markDisabled } = state; // clang-format off return !(date === null || date === undefined || disabled || (markDisabled && markDisabled(date, { year: date.year, month: date.month })) || (minDate && date.before(minDate)) || (maxDate && date.after(maxDate))); // clang-format on } function generateSelectBoxMonths(calendar, date, minDate, maxDate) { if (!date) { return []; } let months = calendar.getMonths(date.year); if (minDate && date.year === minDate.year) { const index = months.findIndex(month => month === minDate.month); months = months.slice(index); } if (maxDate && date.year === maxDate.year) { const index = months.findIndex(month => month === maxDate.month); months = months.slice(0, index + 1); } return months; } function generateSelectBoxYears(date, minDate, maxDate) { if (!date) { return []; } const start = minDate ? Math.max(minDate.year, date.year - 500) : date.year - 10; const end = maxDate ? Math.min(maxDate.year, date.year + 500) : date.year + 10; const length = end - start + 1; const numbers = Array(length); for (let i = 0; i < length; i++) { numbers[i] = start + i; } return numbers; } function nextMonthDisabled(calendar, date, maxDate) { const nextDate = Object.assign(calendar.getNext(date, 'm'), { day: 1 }); return maxDate != null && nextDate.after(maxDate); } function prevMonthDisabled(calendar, date, minDate) { const prevDate = Object.assign(calendar.getPrev(date, 'm'), { day: 1 }); return minDate != null && (prevDate.year === minDate.year && prevDate.month < minDate.month || prevDate.year < minDate.year && minDate.month === 1); } function buildMonths(calendar, date, state, i18n, force) { const { displayMonths, months } = state; // move old months to a temporary array const monthsToReuse = months.splice(0, months.length); // generate new first dates, nullify or reuse months const firstDates = Array.from({ length: displayMonths }, (_, i) => { const firstDate = Object.assign(calendar.getNext(date, 'm', i), { day: 1 }); months[i] = null; if (!force) { const reusedIndex = monthsToReuse.findIndex(month => month.firstDate.equals(firstDate)); // move reused month back to months if (reusedIndex !== -1) { months[i] = monthsToReuse.splice(reusedIndex, 1)[0]; } } return firstDate; }); // rebuild nullified months firstDates.forEach((firstDate, i) => { if (months[i] === null) { months[i] = buildMonth(calendar, firstDate, state, i18n, monthsToReuse.shift() || {}); } }); return months; } function buildMonth(calendar, date, state, i18n, month = {}) { const { dayTemplateData, minDate, maxDate, firstDayOfWeek, markDisabled, outsideDays } = state; const calendarToday = calendar.getToday(); month.firstDate = null; month.lastDate = null; month.number = date.month; month.year = date.year; month.weeks = month.weeks || []; month.weekdays = month.weekdays || []; date = getFirstViewDate(calendar, date, firstDayOfWeek); // month has weeks for (let week = 0; week < calendar.getWeeksPerMonth(); week++) { let weekObject = month.weeks[week]; if (!weekObject) { weekObject = month.weeks[week] = { number: 0, days: [], collapsed: true }; } const days = weekObject.days; // week has days for (let day = 0; day < calendar.getDaysPerWeek(); day++) { if (week === 0) { month.weekdays[day] = calendar.getWeekday(date); } const newDate = new NgbDate(date.year, date.month, date.day); const nextDate = calendar.getNext(newDate); const ariaLabel = i18n.getDayAriaLabel(newDate); // marking date as disabled let disabled = !!((minDate && newDate.before(minDate)) || (maxDate && newDate.after(maxDate))); if (!disabled && markDisabled) { disabled = markDisabled(newDate, { month: month.number, year: month.year }); } // today let today = newDate.equals(calendarToday); // adding user-provided data to the context let contextUserData = dayTemplateData ? dayTemplateData(newDate, { month: month.number, year: month.year }) : undefined; // saving first date of the month if (month.firstDate === null && newDate.month === month.number) { month.firstDate = newDate; } // saving last date of the month if (newDate.month === month.number && nextDate.month !== month.number) { month.lastDate = newDate; } let dayObject = days[day]; if (!dayObject) { dayObject = days[day] = {}; } dayObject.date = newDate; dayObject.context = Object.assign(dayObject.context || {}, { $implicit: newDate, date: newDate, data: contextUserData, currentMonth: month.number, currentYear: month.year, disabled, focused: false, selected: false, today }); dayObject.tabindex = -1; dayObject.ariaLabel = ariaLabel; dayObject.hidden = false; date = nextDate; } weekObject.number = calendar.getWeekNumber(days.map(day => day.date), firstDayOfWeek); // marking week as collapsed weekObject.collapsed = outsideDays === 'collapsed' && days[0].date.month !== month.number && days[days.length - 1].date.month !== month.number; } return month; } function getFirstViewDate(calendar, date, firstDayOfWeek) { const daysPerWeek = calendar.getDaysPerWeek(); const firstMonthDate = new NgbDate(date.year, date.month, 1); const dayOfWeek = calendar.getWeekday(firstMonthDate) % daysPerWeek; return calendar.getPrev(firstMonthDate, 'd', (daysPerWeek + dayOfWeek - firstDayOfWeek) % daysPerWeek); } function NGB_DATEPICKER_18N_FACTORY(locale) { return new NgbDatepickerI18nDefault(locale); } /** * A service supplying i18n data to the datepicker component. * * The default implementation of this service uses the Angular locale and registered locale data for * weekdays and month names (as explained in the Angular i18n guide). * * It also provides a way to i18n data that depends on calendar calculations, like aria labels, day, week and year * numerals. For other static labels the datepicker uses the default Angular i18n. * * See the [i18n demo](#/components/datepicker/examples#i18n) and * [Hebrew calendar demo](#/components/datepicker/calendars#hebrew) on how to extend this class and define * a custom provider for i18n. */ class NgbDatepickerI18n { /** * Returns the textual representation of a day that is rendered in a day cell. * * @since 3.0.0 */ getDayNumerals(date) { return `${date.day}`; } /** * Returns the textual representation of a week number rendered by datepicker. * * @since 3.0.0 */ getWeekNumerals(weekNumber) { return `${weekNumber}`; } /** * Returns the textual representation of a year that is rendered in the datepicker year select box. * * @since 3.0.0 */ getYearNumerals(year) { return `${year}`; } } NgbDatepickerI18n.ɵfac = function NgbDatepickerI18n_Factory(t) { return new (t || NgbDatepickerI18n)(); }; NgbDatepickerI18n.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbDatepickerI18n_Factory() { return NGB_DATEPICKER_18N_FACTORY(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_core__WEBPACK_IMPORTED_MODULE_0__["LOCALE_ID"])); }, token: NgbDatepickerI18n, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDatepickerI18n, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_18N_FACTORY, deps: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["LOCALE_ID"]] }] }], null, null); })(); class NgbDatepickerI18nDefault extends NgbDatepickerI18n { constructor(_locale) { super(); this._locale = _locale; const weekdaysStartingOnSunday = Object(_angular_common__WEBPACK_IMPORTED_MODULE_1__["getLocaleDayNames"])(_locale, _angular_common__WEBPACK_IMPORTED_MODULE_1__["FormStyle"].Standalone, _angular_common__WEBPACK_IMPORTED_MODULE_1__["TranslationWidth"].Short); this._weekdaysShort = weekdaysStartingOnSunday.map((day, index) => weekdaysStartingOnSunday[(index + 1) % 7]); this._monthsShort = Object(_angular_common__WEBPACK_IMPORTED_MODULE_1__["getLocaleMonthNames"])(_locale, _angular_common__WEBPACK_IMPORTED_MODULE_1__["FormStyle"].Standalone, _angular_common__WEBPACK_IMPORTED_MODULE_1__["TranslationWidth"].Abbreviated); this._monthsFull = Object(_angular_common__WEBPACK_IMPORTED_MODULE_1__["getLocaleMonthNames"])(_locale, _angular_common__WEBPACK_IMPORTED_MODULE_1__["FormStyle"].Standalone, _angular_common__WEBPACK_IMPORTED_MODULE_1__["TranslationWidth"].Wide); } getWeekdayShortName(weekday) { return this._weekdaysShort[weekday - 1] || ''; } getMonthShortName(month) { return this._monthsShort[month - 1] || ''; } getMonthFullName(month) { return this._monthsFull[month - 1] || ''; } getDayAriaLabel(date) { const jsDate = new Date(date.year, date.month - 1, date.day); return Object(_angular_common__WEBPACK_IMPORTED_MODULE_1__["formatDate"])(jsDate, 'fullDate', this._locale); } } NgbDatepickerI18nDefault.ɵfac = function NgbDatepickerI18nDefault_Factory(t) { return new (t || NgbDatepickerI18nDefault)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["LOCALE_ID"])); }; NgbDatepickerI18nDefault.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbDatepickerI18nDefault, factory: NgbDatepickerI18nDefault.ɵfac }); NgbDatepickerI18nDefault.ctorParameters = () => [ { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["LOCALE_ID"],] }] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDatepickerI18nDefault, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], function () { return [{ type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["LOCALE_ID"]] }] }]; }, null); })(); class NgbDatepickerService { constructor(_calendar, _i18n) { this._calendar = _calendar; this._i18n = _i18n; this._VALIDATORS = { dayTemplateData: (dayTemplateData) => { if (this._state.dayTemplateData !== dayTemplateData) { return { dayTemplateData }; } }, displayMonths: (displayMonths) => { displayMonths = toInteger(displayMonths); if (isInteger(displayMonths) && displayMonths > 0 && this._state.displayMonths !== displayMonths) { return { displayMonths }; } }, disabled: (disabled) => { if (this._state.disabled !== disabled) { return { disabled }; } }, firstDayOfWeek: (firstDayOfWeek) => { firstDayOfWeek = toInteger(firstDayOfWeek); if (isInteger(firstDayOfWeek) && firstDayOfWeek >= 0 && this._state.firstDayOfWeek !== firstDayOfWeek) { return { firstDayOfWeek }; } }, focusVisible: (focusVisible) => { if (this._state.focusVisible !== focusVisible && !this._state.disabled) { return { focusVisible }; } }, markDisabled: (markDisabled) => { if (this._state.markDisabled !== markDisabled) { return { markDisabled }; } }, maxDate: (date) => { const maxDate = this.toValidDate(date, null); if (isChangedDate(this._state.maxDate, maxDate)) { return { maxDate }; } }, minDate: (date) => { const minDate = this.toValidDate(date, null); if (isChangedDate(this._state.minDate, minDate)) { return { minDate }; } }, navigation: (navigation) => { if (this._state.navigation !== navigation) { return { navigation }; } }, outsideDays: (outsideDays) => { if (this._state.outsideDays !== outsideDays) { return { outsideDays }; } } }; this._model$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); this._dateSelect$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); this._state = { dayTemplateData: null, markDisabled: null, maxDate: null, minDate: null, disabled: false, displayMonths: 1, firstDate: null, firstDayOfWeek: 1, lastDate: null, focusDate: null, focusVisible: false, months: [], navigation: 'select', outsideDays: 'visible', prevDisabled: false, nextDisabled: false, selectedDate: null, selectBoxes: { years: [], months: [] } }; } get model$() { return this._model$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["filter"])(model => model.months.length > 0)); } get dateSelect$() { return this._dateSelect$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["filter"])(date => date !== null)); } set(options) { let patch = Object.keys(options) .map(key => this._VALIDATORS[key](options[key])) .reduce((obj, part) => (Object.assign(Object.assign({}, obj), part)), {}); if (Object.keys(patch).length > 0) { this._nextState(patch); } } focus(date) { const focusedDate = this.toValidDate(date, null); if (focusedDate != null && !this._state.disabled && isChangedDate(this._state.focusDate, focusedDate)) { this._nextState({ focusDate: date }); } } focusSelect() { if (isDateSelectable(this._state.focusDate, this._state)) { this.select(this._state.focusDate, { emitEvent: true }); } } open(date) { const firstDate = this.toValidDate(date, this._calendar.getToday()); if (firstDate != null && !this._state.disabled && (!this._state.firstDate || isChangedMonth(this._state.firstDate, firstDate))) { this._nextState({ firstDate }); } } select(date, options = {}) { const selectedDate = this.toValidDate(date, null); if (selectedDate != null && !this._state.disabled) { if (isChangedDate(this._state.selectedDate, selectedDate)) { this._nextState({ selectedDate }); } if (options.emitEvent && isDateSelectable(selectedDate, this._state)) { this._dateSelect$.next(selectedDate); } } } toValidDate(date, defaultValue) { const ngbDate = NgbDate.from(date); if (defaultValue === undefined) { defaultValue = this._calendar.getToday(); } return this._calendar.isValid(ngbDate) ? ngbDate : defaultValue; } getMonth(struct) { for (let month of this._state.months) { if (struct.month === month.number && struct.year === month.year) { return month; } } throw new Error(`month ${struct.month} of year ${struct.year} not found`); } _nextState(patch) { const newState = this._updateState(patch); this._patchContexts(newState); this._state = newState; this._model$.next(this._state); } _patchContexts(state) { const { months, displayMonths, selectedDate, focusDate, focusVisible, disabled, outsideDays } = state; state.months.forEach(month => { month.weeks.forEach(week => { week.days.forEach(day => { // patch focus flag if (focusDate) { day.context.focused = focusDate.equals(day.date) && focusVisible; } // calculating tabindex day.tabindex = !disabled && focusDate && day.date.equals(focusDate) && focusDate.month === month.number ? 0 : -1; // override context disabled if (disabled === true) { day.context.disabled = true; } // patch selection flag if (selectedDate !== undefined) { day.context.selected = selectedDate !== null && selectedDate.equals(day.date); } // visibility if (month.number !== day.date.month) { day.hidden = outsideDays === 'hidden' || outsideDays === 'collapsed' || (displayMonths > 1 && day.date.after(months[0].firstDate) && day.date.before(months[displayMonths - 1].lastDate)); } }); }); }); } _updateState(patch) { // patching fields const state = Object.assign({}, this._state, patch); let startDate = state.firstDate; // min/max dates changed if ('minDate' in patch || 'maxDate' in patch) { checkMinBeforeMax(state.minDate, state.maxDate); state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate); state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate); startDate = state.focusDate; } // disabled if ('disabled' in patch) { state.focusVisible = false; } // initial rebuild via 'select()' if ('selectedDate' in patch && this._state.months.length === 0) { startDate = state.selectedDate; } // terminate early if only focus visibility was changed if ('focusVisible' in patch) { return state; } // focus date changed if ('focusDate' in patch) { state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate); startDate = state.focusDate; // nothing to rebuild if only focus changed and it is still visible if (state.months.length !== 0 && state.focusDate && !state.focusDate.before(state.firstDate) && !state.focusDate.after(state.lastDate)) { return state; } } // first date changed if ('firstDate' in patch) { state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate); startDate = state.firstDate; } // rebuilding months if (startDate) { const forceRebuild = 'dayTemplateData' in patch || 'firstDayOfWeek' in patch || 'markDisabled' in patch || 'minDate' in patch || 'maxDate' in patch || 'disabled' in patch || 'outsideDays' in patch; const months = buildMonths(this._calendar, startDate, state, this._i18n, forceRebuild); // updating months and boundary dates state.months = months; state.firstDate = months[0].firstDate; state.lastDate = months[months.length - 1].lastDate; // reset selected date if 'markDisabled' returns true if ('selectedDate' in patch && !isDateSelectable(state.selectedDate, state)) { state.selectedDate = null; } // adjusting focus after months were built if ('firstDate' in patch) { if (!state.focusDate || state.focusDate.before(state.firstDate) || state.focusDate.after(state.lastDate)) { state.focusDate = startDate; } } // adjusting months/years for the select box navigation const yearChanged = !this._state.firstDate || this._state.firstDate.year !== state.firstDate.year; const monthChanged = !this._state.firstDate || this._state.firstDate.month !== state.firstDate.month; if (state.navigation === 'select') { // years -> boundaries (min/max were changed) if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.years.length === 0 || yearChanged) { state.selectBoxes.years = generateSelectBoxYears(state.firstDate, state.minDate, state.maxDate); } // months -> when current year or boundaries change if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.months.length === 0 || yearChanged) { state.selectBoxes.months = generateSelectBoxMonths(this._calendar, state.firstDate, state.minDate, state.maxDate); } } else { state.selectBoxes = { years: [], months: [] }; } // updating navigation arrows -> boundaries change (min/max) or month/year changes if ((state.navigation === 'arrows' || state.navigation === 'select') && (monthChanged || yearChanged || 'minDate' in patch || 'maxDate' in patch || 'disabled' in patch)) { state.prevDisabled = state.disabled || prevMonthDisabled(this._calendar, state.firstDate, state.minDate); state.nextDisabled = state.disabled || nextMonthDisabled(this._calendar, state.lastDate, state.maxDate); } } return state; } } NgbDatepickerService.ɵfac = function NgbDatepickerService_Factory(t) { return new (t || NgbDatepickerService)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](NgbCalendar), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](NgbDatepickerI18n)); }; NgbDatepickerService.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbDatepickerService, factory: NgbDatepickerService.ɵfac }); NgbDatepickerService.ctorParameters = () => [ { type: NgbCalendar }, { type: NgbDatepickerI18n } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDatepickerService, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], function () { return [{ type: NgbCalendar }, { type: NgbDatepickerI18n }]; }, null); })(); // clang-format on var NavigationEvent; (function (NavigationEvent) { NavigationEvent[NavigationEvent["PREV"] = 0] = "PREV"; NavigationEvent[NavigationEvent["NEXT"] = 1] = "NEXT"; })(NavigationEvent || (NavigationEvent = {})); /** * A configuration service for the [`NgbDatepicker`](#/components/datepicker/api#NgbDatepicker) component. * * You can inject this service, typically in your root component, and customize the values of its properties in * order to provide default values for all the datepickers used in the application. */ class NgbDatepickerConfig { constructor() { this.displayMonths = 1; this.firstDayOfWeek = 1; this.navigation = 'select'; this.outsideDays = 'visible'; this.showWeekdays = true; this.showWeekNumbers = false; } } NgbDatepickerConfig.ɵfac = function NgbDatepickerConfig_Factory(t) { return new (t || NgbDatepickerConfig)(); }; NgbDatepickerConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbDatepickerConfig_Factory() { return new NgbDatepickerConfig(); }, token: NgbDatepickerConfig, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDatepickerConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return []; }, null); })(); function NGB_DATEPICKER_DATE_ADAPTER_FACTORY() { return new NgbDateStructAdapter(); } /** * An abstract service that does the conversion between the internal datepicker `NgbDateStruct` model and * any provided user date model `D`, ex. a string, a native date, etc. * * The adapter is used **only** for conversion when binding datepicker to a form control, * ex. `[(ngModel)]="userDateModel"`. Here `userDateModel` can be of any type. * * The default datepicker implementation assumes we use `NgbDateStruct` as a user model. * * See the [date format overview](#/components/datepicker/overview#date-model) for more details * and the [custom adapter demo](#/components/datepicker/examples#adapter) for an example. */ class NgbDateAdapter { } NgbDateAdapter.ɵfac = function NgbDateAdapter_Factory(t) { return new (t || NgbDateAdapter)(); }; NgbDateAdapter.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY, token: NgbDateAdapter, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDateAdapter, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY }] }], null, null); })(); class NgbDateStructAdapter extends NgbDateAdapter { /** * Converts a NgbDateStruct value into NgbDateStruct value */ fromModel(date) { return (date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day)) ? { year: date.year, month: date.month, day: date.day } : null; } /** * Converts a NgbDateStruct value into NgbDateStruct value */ toModel(date) { return (date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day)) ? { year: date.year, month: date.month, day: date.day } : null; } } NgbDateStructAdapter.ɵfac = function NgbDateStructAdapter_Factory(t) { return ɵNgbDateStructAdapter_BaseFactory(t || NgbDateStructAdapter); }; NgbDateStructAdapter.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbDateStructAdapter, factory: NgbDateStructAdapter.ɵfac }); const ɵNgbDateStructAdapter_BaseFactory = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NgbDateStructAdapter); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDateStructAdapter, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], null, null); })(); const NGB_DATEPICKER_VALUE_ACCESSOR = { provide: _angular_forms__WEBPACK_IMPORTED_MODULE_4__["NG_VALUE_ACCESSOR"], useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbDatepicker), multi: true }; /** * A directive that marks the content template that customizes the way datepicker months are displayed * * @since 5.3.0 */ class NgbDatepickerContent { constructor(templateRef) { this.templateRef = templateRef; } } NgbDatepickerContent.ɵfac = function NgbDatepickerContent_Factory(t) { return new (t || NgbDatepickerContent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"])); }; NgbDatepickerContent.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbDatepickerContent, selectors: [["ng-template", "ngbDatepickerContent", ""]] }); NgbDatepickerContent.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDatepickerContent, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'ng-template[ngbDatepickerContent]' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] }]; }, null); })(); /** * A highly configurable component that helps you with selecting calendar dates. * * `NgbDatepicker` is meant to be displayed inline on a page or put inside a popup. */ class NgbDatepicker { constructor(_service, _calendar, i18n, config, cd, _elementRef, _ngbDateAdapter, _ngZone) { this._service = _service; this._calendar = _calendar; this.i18n = i18n; this._elementRef = _elementRef; this._ngbDateAdapter = _ngbDateAdapter; this._ngZone = _ngZone; this._controlValue = null; this._destroyed$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); this._publicState = {}; /** * An event emitted right before the navigation happens and displayed month changes. * * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info. */ this.navigate = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted when user selects a date using keyboard or mouse. * * The payload of the event is currently selected `NgbDate`. * * @since 5.2.0 */ this.dateSelect = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this.onChange = (_) => { }; this.onTouched = () => { }; ['dayTemplate', 'dayTemplateData', 'displayMonths', 'firstDayOfWeek', 'footerTemplate', 'markDisabled', 'minDate', 'maxDate', 'navigation', 'outsideDays', 'showWeekdays', 'showWeekNumbers', 'startDate'] .forEach(input => this[input] = config[input]); _service.dateSelect$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(this._destroyed$)).subscribe(date => { this.dateSelect.emit(date); }); _service.model$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(this._destroyed$)).subscribe(model => { const newDate = model.firstDate; const oldDate = this.model ? this.model.firstDate : null; // update public state this._publicState = { maxDate: model.maxDate, minDate: model.minDate, firstDate: model.firstDate, lastDate: model.lastDate, focusedDate: model.focusDate, months: model.months.map(viewModel => viewModel.firstDate) }; let navigationPrevented = false; // emitting navigation event if the first month changes if (!newDate.equals(oldDate)) { this.navigate.emit({ current: oldDate ? { year: oldDate.year, month: oldDate.month } : null, next: { year: newDate.year, month: newDate.month }, preventDefault: () => navigationPrevented = true }); // can't prevent the very first navigation if (navigationPrevented && oldDate !== null) { this._service.open(oldDate); return; } } const newSelectedDate = model.selectedDate; const newFocusedDate = model.focusDate; const oldFocusedDate = this.model ? this.model.focusDate : null; this.model = model; // handling selection change if (isChangedDate(newSelectedDate, this._controlValue)) { this._controlValue = newSelectedDate; this.onTouched(); this.onChange(this._ngbDateAdapter.toModel(newSelectedDate)); } // handling focus change if (isChangedDate(newFocusedDate, oldFocusedDate) && oldFocusedDate && model.focusVisible) { this.focus(); } cd.markForCheck(); }); } /** * Returns the readonly public state of the datepicker * * @since 5.2.0 */ get state() { return this._publicState; } /** * Returns the calendar service used in the specific datepicker instance. * * @since 5.3.0 */ get calendar() { return this._calendar; } /** * Focuses on given date. */ focusDate(date) { this._service.focus(NgbDate.from(date)); } /** * Selects focused date. */ focusSelect() { this._service.focusSelect(); } focus() { this._ngZone.onStable.asObservable().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["take"])(1)).subscribe(() => { const elementToFocus = this._elementRef.nativeElement.querySelector('div.ngb-dp-day[tabindex="0"]'); if (elementToFocus) { elementToFocus.focus(); } }); } /** * Navigates to the provided date. * * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec. * If nothing or invalid date provided calendar will open current month. * * Use the `[startDate]` input as an alternative. */ navigateTo(date) { this._service.open(NgbDate.from(date ? date.day ? date : Object.assign(Object.assign({}, date), { day: 1 }) : null)); } ngAfterViewInit() { this._ngZone.runOutsideAngular(() => { const focusIns$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(this._contentEl.nativeElement, 'focusin'); const focusOuts$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(this._contentEl.nativeElement, 'focusout'); const { nativeElement } = this._elementRef; // we're changing 'focusVisible' only when entering or leaving months view // and ignoring all focus events where both 'target' and 'related' target are day cells Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["merge"])(focusIns$, focusOuts$) .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["filter"])(({ target, relatedTarget }) => !(hasClassName(target, 'ngb-dp-day') && hasClassName(relatedTarget, 'ngb-dp-day') && nativeElement.contains(target) && nativeElement.contains(relatedTarget))), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(this._destroyed$)) .subscribe(({ type }) => this._ngZone.run(() => this._service.set({ focusVisible: type === 'focusin' }))); }); } ngOnDestroy() { this._destroyed$.next(); } ngOnInit() { if (this.model === undefined) { const inputs = {}; ['dayTemplateData', 'displayMonths', 'markDisabled', 'firstDayOfWeek', 'navigation', 'minDate', 'maxDate', 'outsideDays'] .forEach(name => inputs[name] = this[name]); this._service.set(inputs); this.navigateTo(this.startDate); } if (!this.dayTemplate) { this.dayTemplate = this._defaultDayTemplate; } } ngOnChanges(changes) { const inputs = {}; ['dayTemplateData', 'displayMonths', 'markDisabled', 'firstDayOfWeek', 'navigation', 'minDate', 'maxDate', 'outsideDays'] .filter(name => name in changes) .forEach(name => inputs[name] = this[name]); this._service.set(inputs); if ('startDate' in changes) { const { currentValue, previousValue } = changes.startDate; if (isChangedMonth(previousValue, currentValue)) { this.navigateTo(this.startDate); } } } onDateSelect(date) { this._service.focus(date); this._service.select(date, { emitEvent: true }); } onNavigateDateSelect(date) { this._service.open(date); } onNavigateEvent(event) { switch (event) { case NavigationEvent.PREV: this._service.open(this._calendar.getPrev(this.model.firstDate, 'm', 1)); break; case NavigationEvent.NEXT: this._service.open(this._calendar.getNext(this.model.firstDate, 'm', 1)); break; } } registerOnChange(fn) { this.onChange = fn; } registerOnTouched(fn) { this.onTouched = fn; } setDisabledState(disabled) { this._service.set({ disabled }); } writeValue(value) { this._controlValue = NgbDate.from(this._ngbDateAdapter.fromModel(value)); this._service.select(this._controlValue); } } NgbDatepicker.ɵfac = function NgbDatepicker_Factory(t) { return new (t || NgbDatepicker)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDatepickerService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbCalendar), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDatepickerI18n), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDatepickerConfig), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDateAdapter), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"])); }; NgbDatepicker.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbDatepicker, selectors: [["ngb-datepicker"]], contentQueries: function NgbDatepicker_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstaticContentQuery"](dirIndex, NgbDatepickerContent, true); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.contentTemplate = _t.first); } }, viewQuery: function NgbDatepicker_Query(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstaticViewQuery"](_c12, true); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstaticViewQuery"](_c13, true); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx._defaultDayTemplate = _t.first); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx._contentEl = _t.first); } }, inputs: { dayTemplate: "dayTemplate", dayTemplateData: "dayTemplateData", displayMonths: "displayMonths", firstDayOfWeek: "firstDayOfWeek", footerTemplate: "footerTemplate", markDisabled: "markDisabled", maxDate: "maxDate", minDate: "minDate", navigation: "navigation", outsideDays: "outsideDays", showWeekdays: "showWeekdays", showWeekNumbers: "showWeekNumbers", startDate: "startDate" }, outputs: { navigate: "navigate", dateSelect: "dateSelect" }, exportAs: ["ngbDatepicker"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([NGB_DATEPICKER_VALUE_ACCESSOR, NgbDatepickerService]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]], decls: 10, vars: 5, consts: [["defaultDayTemplate", ""], ["defaultContentTemplate", ""], [1, "ngb-dp-header"], [3, "date", "months", "disabled", "showSelect", "prevDisabled", "nextDisabled", "selectBoxes", "navigate", "select", 4, "ngIf"], [1, "ngb-dp-content"], ["content", ""], [3, "ngTemplateOutlet"], ["ngbDatepickerDayView", "", 3, "date", "currentMonth", "selected", "disabled", "focused"], ["class", "ngb-dp-month", 4, "ngFor", "ngForOf"], [1, "ngb-dp-month"], ["class", "ngb-dp-month-name", 4, "ngIf"], [3, "month"], [1, "ngb-dp-month-name"], [3, "date", "months", "disabled", "showSelect", "prevDisabled", "nextDisabled", "selectBoxes", "navigate", "select"]], template: function NgbDatepicker_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbDatepicker_ng_template_0_Template, 1, 5, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbDatepicker_ng_template_2_Template, 1, 1, "ng-template", null, 1, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "div", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](5, NgbDatepicker_ngb_datepicker_navigation_5_Template, 1, 7, "ngb-datepicker-navigation", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "div", 4, 5); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](8, NgbDatepicker_ng_template_8_Template, 0, 0, "ng-template", 6); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](9, NgbDatepicker_ng_template_9_Template, 0, 0, "ng-template", 6); } if (rf & 2) { const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵreference"](3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](5); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.navigation !== "none"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("ngb-dp-months", !ctx.contentTemplate); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", (ctx.contentTemplate == null ? null : ctx.contentTemplate.templateRef) || _r2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngTemplateOutlet", ctx.footerTemplate); } }, directives: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgIf"], _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgTemplateOutlet"], NgbDatepickerDayView, _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgForOf"], NgbDatepickerMonth, NgbDatepickerNavigation]; }, styles: ["ngb-datepicker{border:1px solid #dfdfdf;border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}.ngb-dp-body{z-index:1050}.ngb-dp-header{background-color:#f8f9fa;background-color:var(--light);border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem}.ngb-dp-months{display:-ms-flexbox;display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{background-color:#f8f9fa;background-color:var(--light);font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,.ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-left:1rem}.ngb-dp-month:last-child .ngb-dp-week{padding-right:.25rem}.ngb-dp-month:first-child .ngb-dp-week{padding-left:.25rem}.ngb-dp-month .ngb-dp-week:last-child{padding-bottom:.25rem}"], encapsulation: 2, changeDetection: 0 }); NgbDatepicker.ctorParameters = () => [ { type: NgbDatepickerService }, { type: NgbCalendar }, { type: NgbDatepickerI18n }, { type: NgbDatepickerConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: NgbDateAdapter }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] } ]; NgbDatepicker.propDecorators = { _defaultDayTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], args: ['defaultDayTemplate', { static: true },] }], _contentEl: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], args: ['content', { static: true },] }], contentTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbDatepickerContent, { static: true },] }], dayTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], dayTemplateData: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], displayMonths: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], firstDayOfWeek: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], footerTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], markDisabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], maxDate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], minDate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], navigation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], outsideDays: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showWeekdays: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showWeekNumbers: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], startDate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], navigate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], dateSelect: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDatepicker, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ exportAs: 'ngbDatepicker', selector: 'ngb-datepicker', changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, template: `
{{ i18n.getMonthFullName(month.number, month.year) }} {{ i18n.getYearNumerals(month.year) }}
`, providers: [NGB_DATEPICKER_VALUE_ACCESSOR, NgbDatepickerService], styles: ["ngb-datepicker{border:1px solid #dfdfdf;border-radius:.25rem;display:inline-block}ngb-datepicker-month{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}.ngb-dp-body{z-index:1050}.ngb-dp-header{background-color:#f8f9fa;background-color:var(--light);border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem}.ngb-dp-months{display:-ms-flexbox;display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{background-color:#f8f9fa;background-color:var(--light);font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,.ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-left:1rem}.ngb-dp-month:last-child .ngb-dp-week{padding-right:.25rem}.ngb-dp-month:first-child .ngb-dp-week{padding-left:.25rem}.ngb-dp-month .ngb-dp-week:last-child{padding-bottom:.25rem}"] }] }], function () { return [{ type: NgbDatepickerService }, { type: NgbCalendar }, { type: NgbDatepickerI18n }, { type: NgbDatepickerConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: NgbDateAdapter }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }]; }, { navigate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], dateSelect: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], dayTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], _defaultDayTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], args: ['defaultDayTemplate', { static: true }] }], _contentEl: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], args: ['content', { static: true }] }], contentTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbDatepickerContent, { static: true }] }], dayTemplateData: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], displayMonths: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], firstDayOfWeek: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], footerTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], markDisabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], maxDate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], minDate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], navigation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], outsideDays: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showWeekdays: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showWeekNumbers: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], startDate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); var Key; (function (Key) { Key[Key["Tab"] = 9] = "Tab"; Key[Key["Enter"] = 13] = "Enter"; Key[Key["Escape"] = 27] = "Escape"; Key[Key["Space"] = 32] = "Space"; Key[Key["PageUp"] = 33] = "PageUp"; Key[Key["PageDown"] = 34] = "PageDown"; Key[Key["End"] = 35] = "End"; Key[Key["Home"] = 36] = "Home"; Key[Key["ArrowLeft"] = 37] = "ArrowLeft"; Key[Key["ArrowUp"] = 38] = "ArrowUp"; Key[Key["ArrowRight"] = 39] = "ArrowRight"; Key[Key["ArrowDown"] = 40] = "ArrowDown"; })(Key || (Key = {})); /** * A service that represents the keyboard navigation. * * Default keyboard shortcuts [are documented in the overview](#/components/datepicker/overview#keyboard-shortcuts) * * @since 5.2.0 */ class NgbDatepickerKeyboardService { /** * Processes a keyboard event. */ processKey(event, datepicker) { const { state, calendar } = datepicker; // tslint:disable-next-line:deprecation switch (event.which) { case Key.PageUp: datepicker.focusDate(calendar.getPrev(state.focusedDate, event.shiftKey ? 'y' : 'm', 1)); break; case Key.PageDown: datepicker.focusDate(calendar.getNext(state.focusedDate, event.shiftKey ? 'y' : 'm', 1)); break; case Key.End: datepicker.focusDate(event.shiftKey ? state.maxDate : state.lastDate); break; case Key.Home: datepicker.focusDate(event.shiftKey ? state.minDate : state.firstDate); break; case Key.ArrowLeft: datepicker.focusDate(calendar.getPrev(state.focusedDate, 'd', 1)); break; case Key.ArrowUp: datepicker.focusDate(calendar.getPrev(state.focusedDate, 'd', calendar.getDaysPerWeek())); break; case Key.ArrowRight: datepicker.focusDate(calendar.getNext(state.focusedDate, 'd', 1)); break; case Key.ArrowDown: datepicker.focusDate(calendar.getNext(state.focusedDate, 'd', calendar.getDaysPerWeek())); break; case Key.Enter: case Key.Space: datepicker.focusSelect(); break; default: return; } event.preventDefault(); event.stopPropagation(); } } NgbDatepickerKeyboardService.ɵfac = function NgbDatepickerKeyboardService_Factory(t) { return new (t || NgbDatepickerKeyboardService)(); }; NgbDatepickerKeyboardService.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbDatepickerKeyboardService_Factory() { return new NgbDatepickerKeyboardService(); }, token: NgbDatepickerKeyboardService, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDatepickerKeyboardService, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], null, null); })(); /** * A component that renders one month including all the days, weekdays and week numbers. Can be used inside * the `` when you want to customize months layout. * * For a usage example, see [custom month layout demo](#/components/datepicker/examples#custommonth) * * @since 5.3.0 */ class NgbDatepickerMonth { constructor(i18n, datepicker, _keyboardService, _service) { this.i18n = i18n; this.datepicker = datepicker; this._keyboardService = _keyboardService; this._service = _service; } /** * The first date of month to be rendered. * * This month must one of the months present in the * [datepicker state](#/components/datepicker/api#NgbDatepickerState). */ set month(month) { this.viewModel = this._service.getMonth(month); } onKeyDown(event) { this._keyboardService.processKey(event, this.datepicker); } doSelect(day) { if (!day.context.disabled && !day.hidden) { this.datepicker.onDateSelect(day.date); } } } NgbDatepickerMonth.ɵfac = function NgbDatepickerMonth_Factory(t) { return new (t || NgbDatepickerMonth)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDatepickerI18n), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDatepicker), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDatepickerKeyboardService), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDatepickerService)); }; NgbDatepickerMonth.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbDatepickerMonth, selectors: [["ngb-datepicker-month"]], hostAttrs: ["role", "grid"], hostBindings: function NgbDatepickerMonth_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("keydown", function NgbDatepickerMonth_keydown_HostBindingHandler($event) { return ctx.onKeyDown($event); }); } }, inputs: { month: "month" }, decls: 2, vars: 2, consts: [["class", "ngb-dp-week ngb-dp-weekdays", "role", "row", 4, "ngIf"], ["ngFor", "", 3, "ngForOf"], ["role", "row", 1, "ngb-dp-week", "ngb-dp-weekdays"], ["class", "ngb-dp-weekday ngb-dp-showweek", 4, "ngIf"], ["class", "ngb-dp-weekday small", "role", "columnheader", 4, "ngFor", "ngForOf"], [1, "ngb-dp-weekday", "ngb-dp-showweek"], ["role", "columnheader", 1, "ngb-dp-weekday", "small"], ["class", "ngb-dp-week", "role", "row", 4, "ngIf"], ["role", "row", 1, "ngb-dp-week"], ["class", "ngb-dp-week-number small text-muted", 4, "ngIf"], ["class", "ngb-dp-day", "role", "gridcell", 3, "disabled", "tabindex", "hidden", "ngb-dp-today", "click", 4, "ngFor", "ngForOf"], [1, "ngb-dp-week-number", "small", "text-muted"], ["role", "gridcell", 1, "ngb-dp-day", 3, "tabindex", "click"], [3, "ngIf"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function NgbDatepickerMonth_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbDatepickerMonth_div_0_Template, 3, 2, "div", 0); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbDatepickerMonth_ng_template_1_Template, 1, 1, "ng-template", 1); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.datepicker.showWeekdays); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.viewModel.weeks); } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgIf"], _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgForOf"], _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgTemplateOutlet"]], styles: ["ngb-datepicker-month{display:block}.ngb-dp-week-number,.ngb-dp-weekday{font-style:italic;line-height:2rem;text-align:center}.ngb-dp-weekday{color:#5bc0de;color:var(--info)}.ngb-dp-week{border-radius:.25rem;display:-ms-flexbox;display:flex}.ngb-dp-weekdays{background-color:#f8f9fa;background-color:var(--light);border-bottom:1px solid rgba(0,0,0,.125);border-radius:0}.ngb-dp-day,.ngb-dp-week-number,.ngb-dp-weekday{height:2rem;width:2rem}.ngb-dp-day{cursor:pointer}.ngb-dp-day.disabled,.ngb-dp-day.hidden{cursor:default;pointer-events:none}.ngb-dp-day[tabindex=\"0\"]{z-index:1}"], encapsulation: 2 }); NgbDatepickerMonth.ctorParameters = () => [ { type: NgbDatepickerI18n }, { type: NgbDatepicker }, { type: NgbDatepickerKeyboardService }, { type: NgbDatepickerService } ]; NgbDatepickerMonth.propDecorators = { month: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDatepickerMonth, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-datepicker-month', host: { 'role': 'grid', '(keydown)': 'onKeyDown($event)' }, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, template: `
{{ i18n.getWeekdayShortName(w) }}
{{ i18n.getWeekNumerals(week.number) }}
`, styles: ["ngb-datepicker-month{display:block}.ngb-dp-week-number,.ngb-dp-weekday{font-style:italic;line-height:2rem;text-align:center}.ngb-dp-weekday{color:#5bc0de;color:var(--info)}.ngb-dp-week{border-radius:.25rem;display:-ms-flexbox;display:flex}.ngb-dp-weekdays{background-color:#f8f9fa;background-color:var(--light);border-bottom:1px solid rgba(0,0,0,.125);border-radius:0}.ngb-dp-day,.ngb-dp-week-number,.ngb-dp-weekday{height:2rem;width:2rem}.ngb-dp-day{cursor:pointer}.ngb-dp-day.disabled,.ngb-dp-day.hidden{cursor:default;pointer-events:none}.ngb-dp-day[tabindex=\"0\"]{z-index:1}"] }] }], function () { return [{ type: NgbDatepickerI18n }, { type: NgbDatepicker }, { type: NgbDatepickerKeyboardService }, { type: NgbDatepickerService }]; }, { month: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); class NgbDatepickerNavigation { constructor(i18n) { this.i18n = i18n; this.navigation = NavigationEvent; this.months = []; this.navigate = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this.select = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); } onClickPrev(event) { event.currentTarget.focus(); this.navigate.emit(this.navigation.PREV); } onClickNext(event) { event.currentTarget.focus(); this.navigate.emit(this.navigation.NEXT); } } NgbDatepickerNavigation.ɵfac = function NgbDatepickerNavigation_Factory(t) { return new (t || NgbDatepickerNavigation)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDatepickerI18n)); }; NgbDatepickerNavigation.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbDatepickerNavigation, selectors: [["ngb-datepicker-navigation"]], inputs: { months: "months", date: "date", disabled: "disabled", showSelect: "showSelect", prevDisabled: "prevDisabled", nextDisabled: "nextDisabled", selectBoxes: "selectBoxes" }, outputs: { navigate: "navigate", select: "select" }, decls: 8, vars: 4, consts: function () { let i18n_14; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_15 = goog.getMsg("Previous month"); i18n_14 = MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_15; } else { i18n_14 = $localize `:@@ngb.datepicker.previous-month␟c3b08b07b5ab98e7cdcf18df39355690ab7d3884␟8586908745456864217:Previous month`; } let i18n_16; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_17 = goog.getMsg("Previous month"); i18n_16 = MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_17; } else { i18n_16 = $localize `:@@ngb.datepicker.previous-month␟c3b08b07b5ab98e7cdcf18df39355690ab7d3884␟8586908745456864217:Previous month`; } let i18n_18; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_19 = goog.getMsg("Next month"); i18n_18 = MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_19; } else { i18n_18 = $localize `:@@ngb.datepicker.next-month␟4bd046985cfe13040d5ef0cd881edce0968a111a␟3628374603023447227:Next month`; } let i18n_20; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_21 = goog.getMsg("Next month"); i18n_20 = MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_21; } else { i18n_20 = $localize `:@@ngb.datepicker.next-month␟4bd046985cfe13040d5ef0cd881edce0968a111a␟3628374603023447227:Next month`; } return [[1, "ngb-dp-arrow"], ["type", "button", "aria-label", i18n_14, "title", i18n_16, 1, "btn", "btn-link", "ngb-dp-arrow-btn", 3, "disabled", "click"], [1, "ngb-dp-navigation-chevron"], ["class", "ngb-dp-navigation-select", 3, "date", "disabled", "months", "years", "select", 4, "ngIf"], [4, "ngIf"], [1, "ngb-dp-arrow", "right"], ["type", "button", "aria-label", i18n_18, "title", i18n_20, 1, "btn", "btn-link", "ngb-dp-arrow-btn", 3, "disabled", "click"], [1, "ngb-dp-navigation-select", 3, "date", "disabled", "months", "years", "select"], ["ngFor", "", 3, "ngForOf"], ["class", "ngb-dp-arrow", 4, "ngIf"], [1, "ngb-dp-month-name"]]; }, template: function NgbDatepickerNavigation_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "button", 1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbDatepickerNavigation_Template_button_click_1_listener($event) { return ctx.onClickPrev($event); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](2, "span", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](3, NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template, 1, 4, "ngb-datepicker-navigation-select", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](4, NgbDatepickerNavigation_4_Template, 1, 1, undefined, 4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](5, "div", 5); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "button", 6); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbDatepickerNavigation_Template_button_click_6_listener($event) { return ctx.onClickNext($event); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](7, "span", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", ctx.prevDisabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.showSelect); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", !ctx.showSelect); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", ctx.nextDisabled); } }, directives: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgIf"], NgbDatepickerNavigationSelect, _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgForOf"]]; }, styles: ["ngb-datepicker-navigation{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.ngb-dp-navigation-chevron{-webkit-transform:rotate(-135deg);border-style:solid;border-width:.2em .2em 0 0;display:inline-block;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg);width:.75em}.right .ngb-dp-navigation-chevron{-webkit-transform:rotate(45deg);margin-left:.15em;margin-right:.25em;transform:rotate(45deg)}.ngb-dp-arrow{-ms-flex:1 1 auto;display:-ms-flexbox;display:flex;flex:1 1 auto;height:2rem;margin:0;padding-left:0;padding-right:0;width:2rem}.ngb-dp-arrow.right{-ms-flex-pack:end;justify-content:flex-end}.ngb-dp-arrow-btn{background-color:transparent;border:none;margin:0 .5rem;padding:0 .25rem;z-index:1}.ngb-dp-arrow-btn:focus{outline-style:auto;outline-width:1px}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{-ms-flex:1 1 9rem;display:-ms-flexbox;display:flex;flex:1 1 9rem}"], encapsulation: 2, changeDetection: 0 }); NgbDatepickerNavigation.ctorParameters = () => [ { type: NgbDatepickerI18n } ]; NgbDatepickerNavigation.propDecorators = { date: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], months: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showSelect: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], prevDisabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], nextDisabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], selectBoxes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], navigate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], select: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDatepickerNavigation, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-datepicker-navigation', changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, template: `
{{ i18n.getMonthFullName(month.number, month.year) }} {{ i18n.getYearNumerals(month.year) }}
`, styles: ["ngb-datepicker-navigation{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.ngb-dp-navigation-chevron{-webkit-transform:rotate(-135deg);border-style:solid;border-width:.2em .2em 0 0;display:inline-block;height:.75em;margin-left:.25em;margin-right:.15em;transform:rotate(-135deg);width:.75em}.right .ngb-dp-navigation-chevron{-webkit-transform:rotate(45deg);margin-left:.15em;margin-right:.25em;transform:rotate(45deg)}.ngb-dp-arrow{-ms-flex:1 1 auto;display:-ms-flexbox;display:flex;flex:1 1 auto;height:2rem;margin:0;padding-left:0;padding-right:0;width:2rem}.ngb-dp-arrow.right{-ms-flex-pack:end;justify-content:flex-end}.ngb-dp-arrow-btn{background-color:transparent;border:none;margin:0 .5rem;padding:0 .25rem;z-index:1}.ngb-dp-arrow-btn:focus{outline-style:auto;outline-width:1px}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{-ms-flex:1 1 9rem;display:-ms-flexbox;display:flex;flex:1 1 9rem}"] }] }], function () { return [{ type: NgbDatepickerI18n }]; }, { months: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], navigate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], select: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], date: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showSelect: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], prevDisabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], nextDisabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], selectBoxes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); const isContainedIn = (element, array) => array ? array.some(item => item.contains(element)) : false; const ɵ0$2 = isContainedIn; const matchesSelectorIfAny = (element, selector) => !selector || closest(element, selector) != null; const ɵ1$1 = matchesSelectorIfAny; const ɵ2$1 = () => { const isIOS = () => /iPad|iPhone|iPod/.test(navigator.userAgent) || (/Macintosh/.test(navigator.userAgent) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2); const isAndroid = () => /Android/.test(navigator.userAgent); return typeof navigator !== 'undefined' ? !!navigator.userAgent && (isIOS() || isAndroid()) : false; }; // we have to add a more significant delay to avoid re-opening when handling (click) on a toggling element // TODO: use proper Angular platform detection when NgbAutoClose becomes a service and we can inject PLATFORM_ID const isMobile = (ɵ2$1)(); // setting 'ngbAutoClose' synchronously on mobile results in immediate popup closing // when tapping on the triggering element const wrapAsyncForMobile = fn => isMobile ? () => setTimeout(() => fn(), 100) : fn; const ɵ3 = wrapAsyncForMobile; function ngbAutoClose(zone, document, type, close, closed$, insideElements, ignoreElements, insideSelector) { // closing on ESC and outside clicks if (type) { zone.runOutsideAngular(wrapAsyncForMobile(() => { const shouldCloseOnClick = (event) => { const element = event.target; if (event.button === 2 || isContainedIn(element, ignoreElements)) { return false; } if (type === 'inside') { return isContainedIn(element, insideElements) && matchesSelectorIfAny(element, insideSelector); } else if (type === 'outside') { return !isContainedIn(element, insideElements); } else /* if (type === true) */ { return matchesSelectorIfAny(element, insideSelector) || !isContainedIn(element, insideElements); } }; const escapes$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(document, 'keydown') .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(closed$), // tslint:disable-next-line:deprecation Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["filter"])(e => e.which === Key.Escape), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["tap"])(e => e.preventDefault())); // we have to pre-calculate 'shouldCloseOnClick' on 'mousedown', // because on 'mouseup' DOM nodes might be detached const mouseDowns$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(document, 'mousedown').pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(shouldCloseOnClick), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(closed$)); const closeableClicks$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(document, 'mouseup') .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["withLatestFrom"])(mouseDowns$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["filter"])(([_, shouldClose]) => shouldClose), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["delay"])(0), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(closed$)); Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["race"])([ escapes$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(_ => 0 /* ESCAPE */)), closeableClicks$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(_ => 1 /* CLICK */)) ]).subscribe((source) => zone.run(() => close(source))); })); } } const 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(', '); /** * Returns first and last focusable elements inside of a given element based on specific CSS selector */ function getFocusableBoundaryElements(element) { const list = Array.from(element.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR)) .filter(el => el.tabIndex !== -1); return [list[0], list[list.length - 1]]; } /** * Function that enforces browser focus to be trapped inside a DOM element. * * Works only for clicks inside the element and navigation with 'Tab', ignoring clicks outside of the element * * @param zone Angular zone * @param element The element around which focus will be trapped inside * @param stopFocusTrap$ The observable stream. When completed the focus trap will clean up listeners * and free internal resources * @param refocusOnClick Put the focus back to the last focused element whenever a click occurs on element (default to * false) */ const ngbFocusTrap = (zone, element, stopFocusTrap$, refocusOnClick = false) => { zone.runOutsideAngular(() => { // last focused element const lastFocusedElement$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(element, 'focusin').pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(stopFocusTrap$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(e => e.target)); // 'tab' / 'shift+tab' stream Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(element, 'keydown') .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(stopFocusTrap$), // tslint:disable:deprecation Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["filter"])(e => e.which === Key.Tab), // tslint:enable:deprecation Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["withLatestFrom"])(lastFocusedElement$)) .subscribe(([tabEvent, focusedElement]) => { const [first, last] = getFocusableBoundaryElements(element); if ((focusedElement === first || focusedElement === element) && tabEvent.shiftKey) { last.focus(); tabEvent.preventDefault(); } if (focusedElement === last && !tabEvent.shiftKey) { first.focus(); tabEvent.preventDefault(); } }); // inside click if (refocusOnClick) { Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(element, 'click') .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(stopFocusTrap$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["withLatestFrom"])(lastFocusedElement$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(arr => arr[1])) .subscribe(lastFocusedElement => lastFocusedElement.focus()); } }); }; // previous version: // https://github.com/angular-ui/bootstrap/blob/07c31d0731f7cb068a1932b8e01d2312b796b4ec/src/position/position.js class Positioning { getAllStyles(element) { return window.getComputedStyle(element); } getStyle(element, prop) { return this.getAllStyles(element)[prop]; } isStaticPositioned(element) { return (this.getStyle(element, 'position') || 'static') === 'static'; } offsetParent(element) { let offsetParentEl = element.offsetParent || document.documentElement; while (offsetParentEl && offsetParentEl !== document.documentElement && this.isStaticPositioned(offsetParentEl)) { offsetParentEl = offsetParentEl.offsetParent; } return offsetParentEl || document.documentElement; } position(element, round = true) { let elPosition; let parentOffset = { width: 0, height: 0, top: 0, bottom: 0, left: 0, right: 0 }; if (this.getStyle(element, 'position') === 'fixed') { elPosition = element.getBoundingClientRect(); elPosition = { top: elPosition.top, bottom: elPosition.bottom, left: elPosition.left, right: elPosition.right, height: elPosition.height, width: elPosition.width }; } else { const offsetParentEl = this.offsetParent(element); elPosition = this.offset(element, false); if (offsetParentEl !== document.documentElement) { parentOffset = this.offset(offsetParentEl, false); } parentOffset.top += offsetParentEl.clientTop; parentOffset.left += offsetParentEl.clientLeft; } elPosition.top -= parentOffset.top; elPosition.bottom -= parentOffset.top; elPosition.left -= parentOffset.left; elPosition.right -= parentOffset.left; if (round) { elPosition.top = Math.round(elPosition.top); elPosition.bottom = Math.round(elPosition.bottom); elPosition.left = Math.round(elPosition.left); elPosition.right = Math.round(elPosition.right); } return elPosition; } offset(element, round = true) { const elBcr = element.getBoundingClientRect(); const viewportOffset = { top: window.pageYOffset - document.documentElement.clientTop, left: window.pageXOffset - document.documentElement.clientLeft }; let elOffset = { height: elBcr.height || element.offsetHeight, width: elBcr.width || element.offsetWidth, top: elBcr.top + viewportOffset.top, bottom: elBcr.bottom + viewportOffset.top, left: elBcr.left + viewportOffset.left, right: elBcr.right + viewportOffset.left }; if (round) { elOffset.height = Math.round(elOffset.height); elOffset.width = Math.round(elOffset.width); elOffset.top = Math.round(elOffset.top); elOffset.bottom = Math.round(elOffset.bottom); elOffset.left = Math.round(elOffset.left); elOffset.right = Math.round(elOffset.right); } return elOffset; } /* Return false if the element to position is outside the viewport */ positionElements(hostElement, targetElement, placement, appendToBody) { const [placementPrimary = 'top', placementSecondary = 'center'] = placement.split('-'); const hostElPosition = appendToBody ? this.offset(hostElement, false) : this.position(hostElement, false); const targetElStyles = this.getAllStyles(targetElement); const marginTop = parseFloat(targetElStyles.marginTop); const marginBottom = parseFloat(targetElStyles.marginBottom); const marginLeft = parseFloat(targetElStyles.marginLeft); const marginRight = parseFloat(targetElStyles.marginRight); let topPosition = 0; let leftPosition = 0; switch (placementPrimary) { case 'top': topPosition = (hostElPosition.top - (targetElement.offsetHeight + marginTop + marginBottom)); break; case 'bottom': topPosition = (hostElPosition.top + hostElPosition.height); break; case 'left': leftPosition = (hostElPosition.left - (targetElement.offsetWidth + marginLeft + marginRight)); break; case 'right': leftPosition = (hostElPosition.left + hostElPosition.width); break; } switch (placementSecondary) { case 'top': topPosition = hostElPosition.top; break; case 'bottom': topPosition = hostElPosition.top + hostElPosition.height - targetElement.offsetHeight; break; case 'left': leftPosition = hostElPosition.left; break; case 'right': leftPosition = hostElPosition.left + hostElPosition.width - targetElement.offsetWidth; break; case 'center': if (placementPrimary === 'top' || placementPrimary === 'bottom') { leftPosition = (hostElPosition.left + hostElPosition.width / 2 - targetElement.offsetWidth / 2); } else { topPosition = (hostElPosition.top + hostElPosition.height / 2 - targetElement.offsetHeight / 2); } break; } /// The translate3d/gpu acceleration render a blurry text on chrome, the next line is commented until a browser fix // targetElement.style.transform = `translate3d(${Math.round(leftPosition)}px, ${Math.floor(topPosition)}px, 0px)`; targetElement.style.transform = `translate(${Math.round(leftPosition)}px, ${Math.round(topPosition)}px)`; // Check if the targetElement is inside the viewport const targetElBCR = targetElement.getBoundingClientRect(); const html = document.documentElement; const windowHeight = window.innerHeight || html.clientHeight; const windowWidth = window.innerWidth || html.clientWidth; return targetElBCR.left >= 0 && targetElBCR.top >= 0 && targetElBCR.right <= windowWidth && targetElBCR.bottom <= windowHeight; } } const placementSeparator = /\s+/; const positionService = new Positioning(); /* * Accept the placement array and applies the appropriate placement dependent on the viewport. * Returns the applied placement. * In case of auto placement, placements are selected in order * 'top', 'bottom', 'left', 'right', * 'top-left', 'top-right', * 'bottom-left', 'bottom-right', * 'left-top', 'left-bottom', * 'right-top', 'right-bottom'. * */ function positionElements(hostElement, targetElement, placement, appendToBody, baseClass) { let placementVals = Array.isArray(placement) ? placement : placement.split(placementSeparator); const allowedPlacements = [ 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right', 'left-top', 'left-bottom', 'right-top', 'right-bottom' ]; const classList = targetElement.classList; const addClassesToTarget = (targetPlacement) => { const [primary, secondary] = targetPlacement.split('-'); const classes = []; if (baseClass) { classes.push(`${baseClass}-${primary}`); if (secondary) { classes.push(`${baseClass}-${primary}-${secondary}`); } classes.forEach((classname) => { classList.add(classname); }); } return classes; }; // Remove old placement classes to avoid issues if (baseClass) { allowedPlacements.forEach((placementToRemove) => { classList.remove(`${baseClass}-${placementToRemove}`); }); } // replace auto placement with other placements let hasAuto = placementVals.findIndex(val => val === 'auto'); if (hasAuto >= 0) { allowedPlacements.forEach(function (obj) { if (placementVals.find(val => val.search('^' + obj) !== -1) == null) { placementVals.splice(hasAuto++, 1, obj); } }); } // coordinates where to position // Required for transform: const style = targetElement.style; style.position = 'absolute'; style.top = '0'; style.left = '0'; style['will-change'] = 'transform'; let testPlacement = null; let isInViewport = false; for (testPlacement of placementVals) { let addedClasses = addClassesToTarget(testPlacement); if (positionService.positionElements(hostElement, targetElement, testPlacement, appendToBody)) { isInViewport = true; break; } // Remove the baseClasses for further calculation if (baseClass) { addedClasses.forEach((classname) => { classList.remove(classname); }); } } if (!isInViewport) { // If nothing match, the first placement is the default one testPlacement = placementVals[0]; addClassesToTarget(testPlacement); positionService.positionElements(hostElement, targetElement, testPlacement, appendToBody); } return testPlacement; } function NGB_DATEPICKER_PARSER_FORMATTER_FACTORY() { return new NgbDateISOParserFormatter(); } /** * An abstract service for parsing and formatting dates for the * [`NgbInputDatepicker`](#/components/datepicker/api#NgbInputDatepicker) directive. * Converts between the internal `NgbDateStruct` model presentation and a `string` that is displayed in the * input element. * * When user types something in the input this service attempts to parse it into a `NgbDateStruct` object. * And vice versa, when users selects a date in the calendar with the mouse, it must be displayed as a `string` * in the input. * * Default implementation uses the ISO 8601 format, but you can provide another implementation via DI * to use an alternative string format or a custom parsing logic. * * See the [date format overview](#/components/datepicker/overview#date-model) for more details. */ class NgbDateParserFormatter { } NgbDateParserFormatter.ɵfac = function NgbDateParserFormatter_Factory(t) { return new (t || NgbDateParserFormatter)(); }; NgbDateParserFormatter.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY, token: NgbDateParserFormatter, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDateParserFormatter, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY }] }], null, null); })(); class NgbDateISOParserFormatter extends NgbDateParserFormatter { parse(value) { if (value != null) { const dateParts = value.trim().split('-'); if (dateParts.length === 1 && isNumber(dateParts[0])) { return { year: toInteger(dateParts[0]), month: null, day: null }; } else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) { return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: null }; } else if (dateParts.length === 3 && isNumber(dateParts[0]) && isNumber(dateParts[1]) && isNumber(dateParts[2])) { return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: toInteger(dateParts[2]) }; } } return null; } format(date) { return date ? `${date.year}-${isNumber(date.month) ? padNumber(date.month) : ''}-${isNumber(date.day) ? padNumber(date.day) : ''}` : ''; } } NgbDateISOParserFormatter.ɵfac = function NgbDateISOParserFormatter_Factory(t) { return ɵNgbDateISOParserFormatter_BaseFactory(t || NgbDateISOParserFormatter); }; NgbDateISOParserFormatter.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbDateISOParserFormatter, factory: NgbDateISOParserFormatter.ɵfac }); const ɵNgbDateISOParserFormatter_BaseFactory = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NgbDateISOParserFormatter); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDateISOParserFormatter, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], null, null); })(); /** * A configuration service for the [`NgbDatepickerInput`](#/components/datepicker/api#NgbDatepicker) component. * * You can inject this service, typically in your root component, and customize the values of its properties in * order to provide default values for all the datepicker inputs used in the application. * * @since 5.2.0 */ class NgbInputDatepickerConfig extends NgbDatepickerConfig { constructor() { super(...arguments); this.autoClose = true; this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right']; this.restoreFocus = true; } } NgbInputDatepickerConfig.ɵfac = function NgbInputDatepickerConfig_Factory(t) { return ɵNgbInputDatepickerConfig_BaseFactory(t || NgbInputDatepickerConfig); }; NgbInputDatepickerConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbInputDatepickerConfig_Factory() { return new NgbInputDatepickerConfig(); }, token: NgbInputDatepickerConfig, providedIn: "root" }); const ɵNgbInputDatepickerConfig_BaseFactory = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NgbInputDatepickerConfig); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbInputDatepickerConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], null, null); })(); const NGB_DATEPICKER_VALUE_ACCESSOR$1 = { provide: _angular_forms__WEBPACK_IMPORTED_MODULE_4__["NG_VALUE_ACCESSOR"], useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbInputDatepicker), multi: true }; const NGB_DATEPICKER_VALIDATOR = { provide: _angular_forms__WEBPACK_IMPORTED_MODULE_4__["NG_VALIDATORS"], useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbInputDatepicker), multi: true }; /** * A directive that allows to stick a datepicker popup to an input field. * * Manages interaction with the input field itself, does value formatting and provides forms integration. */ class NgbInputDatepicker { constructor(_parserFormatter, _elRef, _vcRef, _renderer, _cfr, _ngZone, _calendar, _dateAdapter, _document, _changeDetector, config) { this._parserFormatter = _parserFormatter; this._elRef = _elRef; this._vcRef = _vcRef; this._renderer = _renderer; this._cfr = _cfr; this._ngZone = _ngZone; this._calendar = _calendar; this._dateAdapter = _dateAdapter; this._document = _document; this._changeDetector = _changeDetector; this._cRef = null; this._disabled = false; this._elWithFocus = null; this._model = null; /** * An event emitted when user selects a date using keyboard or mouse. * * The payload of the event is currently selected `NgbDate`. * * @since 1.1.1 */ this.dateSelect = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * Event emitted right after the navigation happens and displayed month changes. * * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info. */ this.navigate = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event fired after closing datepicker window. * * @since 4.2.0 */ this.closed = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this._onChange = (_) => { }; this._onTouched = () => { }; this._validatorChange = () => { }; ['autoClose', 'container', 'positionTarget', 'placement'].forEach(input => this[input] = config[input]); this._zoneSubscription = _ngZone.onStable.subscribe(() => this._updatePopupPosition()); } get disabled() { return this._disabled; } set disabled(value) { this._disabled = value === '' || (value && value !== 'false'); if (this.isOpen()) { this._cRef.instance.setDisabledState(this._disabled); } } registerOnChange(fn) { this._onChange = fn; } registerOnTouched(fn) { this._onTouched = fn; } registerOnValidatorChange(fn) { this._validatorChange = fn; } setDisabledState(isDisabled) { this.disabled = isDisabled; } validate(c) { const { value } = c; if (value != null) { const ngbDate = this._fromDateStruct(this._dateAdapter.fromModel(value)); if (!ngbDate) { return { 'ngbDate': { invalid: value } }; } if (this.minDate && ngbDate.before(NgbDate.from(this.minDate))) { return { 'ngbDate': { minDate: { minDate: this.minDate, actual: value } } }; } if (this.maxDate && ngbDate.after(NgbDate.from(this.maxDate))) { return { 'ngbDate': { maxDate: { maxDate: this.maxDate, actual: value } } }; } } return null; } writeValue(value) { this._model = this._fromDateStruct(this._dateAdapter.fromModel(value)); this._writeModelValue(this._model); } manualDateChange(value, updateView = false) { const inputValueChanged = value !== this._inputValue; if (inputValueChanged) { this._inputValue = value; this._model = this._fromDateStruct(this._parserFormatter.parse(value)); } if (inputValueChanged || !updateView) { this._onChange(this._model ? this._dateAdapter.toModel(this._model) : (value === '' ? null : value)); } if (updateView && this._model) { this._writeModelValue(this._model); } } isOpen() { return !!this._cRef; } /** * Opens the datepicker popup. * * If the related form control contains a valid date, the corresponding month will be opened. */ open() { if (!this.isOpen()) { const cf = this._cfr.resolveComponentFactory(NgbDatepicker); this._cRef = this._vcRef.createComponent(cf); this._applyPopupStyling(this._cRef.location.nativeElement); this._applyDatepickerInputs(this._cRef.instance); this._subscribeForDatepickerOutputs(this._cRef.instance); this._cRef.instance.ngOnInit(); this._cRef.instance.writeValue(this._dateAdapter.toModel(this._model)); // date selection event handling this._cRef.instance.registerOnChange((selectedDate) => { this.writeValue(selectedDate); this._onChange(selectedDate); this._onTouched(); }); this._cRef.changeDetectorRef.detectChanges(); this._cRef.instance.setDisabledState(this.disabled); if (this.container === 'body') { this._document.querySelector(this.container).appendChild(this._cRef.location.nativeElement); } // focus handling this._elWithFocus = this._document.activeElement; ngbFocusTrap(this._ngZone, this._cRef.location.nativeElement, this.closed, true); this._cRef.instance.focus(); ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.closed, [], [this._elRef.nativeElement, this._cRef.location.nativeElement]); } } /** * Closes the datepicker popup. */ close() { if (this.isOpen()) { this._vcRef.remove(this._vcRef.indexOf(this._cRef.hostView)); this._cRef = null; this.closed.emit(); this._changeDetector.markForCheck(); // restore focus let elementToFocus = this._elWithFocus; if (isString(this.restoreFocus)) { elementToFocus = this._document.querySelector(this.restoreFocus); } else if (this.restoreFocus !== undefined) { elementToFocus = this.restoreFocus; } // in IE document.activeElement can contain an object without 'focus()' sometimes if (elementToFocus && elementToFocus['focus']) { elementToFocus.focus(); } else { this._document.body.focus(); } } } /** * Toggles the datepicker popup. */ toggle() { if (this.isOpen()) { this.close(); } else { this.open(); } } /** * Navigates to the provided date. * * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec. * If nothing or invalid date provided calendar will open current month. * * Use the `[startDate]` input as an alternative. */ navigateTo(date) { if (this.isOpen()) { this._cRef.instance.navigateTo(date); } } onBlur() { this._onTouched(); } onFocus() { this._elWithFocus = this._elRef.nativeElement; } ngOnChanges(changes) { if (changes['minDate'] || changes['maxDate']) { this._validatorChange(); if (this.isOpen()) { if (changes['minDate']) { this._cRef.instance.minDate = this.minDate; } if (changes['maxDate']) { this._cRef.instance.maxDate = this.maxDate; } this._cRef.instance.ngOnChanges(changes); } } } ngOnDestroy() { this.close(); this._zoneSubscription.unsubscribe(); } _applyDatepickerInputs(datepickerInstance) { ['dayTemplate', 'dayTemplateData', 'displayMonths', 'firstDayOfWeek', 'footerTemplate', 'markDisabled', 'minDate', 'maxDate', 'navigation', 'outsideDays', 'showNavigation', 'showWeekdays', 'showWeekNumbers'] .forEach((optionName) => { if (this[optionName] !== undefined) { datepickerInstance[optionName] = this[optionName]; } }); datepickerInstance.startDate = this.startDate || this._model; } _applyPopupStyling(nativeElement) { this._renderer.addClass(nativeElement, 'dropdown-menu'); this._renderer.addClass(nativeElement, 'show'); if (this.container === 'body') { this._renderer.addClass(nativeElement, 'ngb-dp-body'); } } _subscribeForDatepickerOutputs(datepickerInstance) { datepickerInstance.navigate.subscribe(navigateEvent => this.navigate.emit(navigateEvent)); datepickerInstance.dateSelect.subscribe(date => { this.dateSelect.emit(date); if (this.autoClose === true || this.autoClose === 'inside') { this.close(); } }); } _writeModelValue(model) { const value = this._parserFormatter.format(model); this._inputValue = value; this._renderer.setProperty(this._elRef.nativeElement, 'value', value); if (this.isOpen()) { this._cRef.instance.writeValue(this._dateAdapter.toModel(model)); this._onTouched(); } } _fromDateStruct(date) { const ngbDate = date ? new NgbDate(date.year, date.month, date.day) : null; return this._calendar.isValid(ngbDate) ? ngbDate : null; } _updatePopupPosition() { if (!this._cRef) { return; } let hostElement; if (isString(this.positionTarget)) { hostElement = this._document.querySelector(this.positionTarget); } else if (this.positionTarget instanceof HTMLElement) { hostElement = this.positionTarget; } else { hostElement = this._elRef.nativeElement; } if (this.positionTarget && !hostElement) { throw new Error('ngbDatepicker could not find element declared in [positionTarget] to position against.'); } positionElements(hostElement, this._cRef.location.nativeElement, this.placement, this.container === 'body'); } } NgbInputDatepicker.ɵfac = function NgbInputDatepicker_Factory(t) { return new (t || NgbInputDatepicker)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDateParserFormatter), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewContainerRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbCalendar), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDateAdapter), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbInputDatepickerConfig)); }; NgbInputDatepicker.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbInputDatepicker, selectors: [["input", "ngbDatepicker", ""]], hostVars: 1, hostBindings: function NgbInputDatepicker_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("input", function NgbInputDatepicker_input_HostBindingHandler($event) { return ctx.manualDateChange($event.target.value); })("change", function NgbInputDatepicker_change_HostBindingHandler($event) { return ctx.manualDateChange($event.target.value, true); })("focus", function NgbInputDatepicker_focus_HostBindingHandler() { return ctx.onFocus(); })("blur", function NgbInputDatepicker_blur_HostBindingHandler() { return ctx.onBlur(); }); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵhostProperty"]("disabled", ctx.disabled); } }, inputs: { disabled: "disabled", autoClose: "autoClose", dayTemplate: "dayTemplate", dayTemplateData: "dayTemplateData", displayMonths: "displayMonths", firstDayOfWeek: "firstDayOfWeek", footerTemplate: "footerTemplate", markDisabled: "markDisabled", minDate: "minDate", maxDate: "maxDate", navigation: "navigation", outsideDays: "outsideDays", placement: "placement", restoreFocus: "restoreFocus", showWeekdays: "showWeekdays", showWeekNumbers: "showWeekNumbers", startDate: "startDate", container: "container", positionTarget: "positionTarget" }, outputs: { dateSelect: "dateSelect", navigate: "navigate", closed: "closed" }, exportAs: ["ngbDatepicker"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([ NGB_DATEPICKER_VALUE_ACCESSOR$1, NGB_DATEPICKER_VALIDATOR, { provide: NgbDatepickerConfig, useExisting: NgbInputDatepickerConfig } ]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]] }); NgbInputDatepicker.ctorParameters = () => [ { type: NgbDateParserFormatter }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewContainerRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: NgbCalendar }, { type: NgbDateAdapter }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"],] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: NgbInputDatepickerConfig } ]; NgbInputDatepicker.propDecorators = { autoClose: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], dayTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], dayTemplateData: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], displayMonths: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], firstDayOfWeek: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], footerTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], markDisabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], minDate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], maxDate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], navigation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], outsideDays: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], placement: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], restoreFocus: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showWeekdays: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showWeekNumbers: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], startDate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], container: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], positionTarget: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], dateSelect: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], navigate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], closed: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbInputDatepicker, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'input[ngbDatepicker]', exportAs: 'ngbDatepicker', host: { '(input)': 'manualDateChange($event.target.value)', '(change)': 'manualDateChange($event.target.value, true)', '(focus)': 'onFocus()', '(blur)': 'onBlur()', '[disabled]': 'disabled' }, providers: [ NGB_DATEPICKER_VALUE_ACCESSOR$1, NGB_DATEPICKER_VALIDATOR, { provide: NgbDatepickerConfig, useExisting: NgbInputDatepickerConfig } ] }] }], function () { return [{ type: NgbDateParserFormatter }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewContainerRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: NgbCalendar }, { type: NgbDateAdapter }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: NgbInputDatepickerConfig }]; }, { dateSelect: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], navigate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], closed: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], autoClose: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], dayTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], dayTemplateData: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], displayMonths: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], firstDayOfWeek: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], footerTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], markDisabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], minDate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], maxDate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], navigation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], outsideDays: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], placement: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], restoreFocus: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showWeekdays: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showWeekNumbers: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], startDate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], container: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], positionTarget: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); class NgbDatepickerDayView { constructor(i18n) { this.i18n = i18n; } isMuted() { return !this.selected && (this.date.month !== this.currentMonth || this.disabled); } } NgbDatepickerDayView.ɵfac = function NgbDatepickerDayView_Factory(t) { return new (t || NgbDatepickerDayView)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDatepickerI18n)); }; NgbDatepickerDayView.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbDatepickerDayView, selectors: [["", "ngbDatepickerDayView", ""]], hostAttrs: [1, "btn-light"], hostVars: 10, hostBindings: function NgbDatepickerDayView_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("bg-primary", ctx.selected)("text-white", ctx.selected)("text-muted", ctx.isMuted())("outside", ctx.isMuted())("active", ctx.focused); } }, inputs: { currentMonth: "currentMonth", date: "date", disabled: "disabled", focused: "focused", selected: "selected" }, attrs: _c22, decls: 1, vars: 1, template: function NgbDatepickerDayView_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](0); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtextInterpolate"](ctx.i18n.getDayNumerals(ctx.date)); } }, styles: ["[ngbDatepickerDayView]{background:transparent;border-radius:.25rem;height:2rem;line-height:2rem;text-align:center;width:2rem}[ngbDatepickerDayView].outside{opacity:.5}"], encapsulation: 2, changeDetection: 0 }); NgbDatepickerDayView.ctorParameters = () => [ { type: NgbDatepickerI18n } ]; NgbDatepickerDayView.propDecorators = { currentMonth: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], date: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], focused: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], selected: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDatepickerDayView, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: '[ngbDatepickerDayView]', changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, host: { 'class': 'btn-light', '[class.bg-primary]': 'selected', '[class.text-white]': 'selected', '[class.text-muted]': 'isMuted()', '[class.outside]': 'isMuted()', '[class.active]': 'focused' }, template: `{{ i18n.getDayNumerals(date) }}`, styles: ["[ngbDatepickerDayView]{background:transparent;border-radius:.25rem;height:2rem;line-height:2rem;text-align:center;width:2rem}[ngbDatepickerDayView].outside{opacity:.5}"] }] }], function () { return [{ type: NgbDatepickerI18n }]; }, { currentMonth: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], date: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], focused: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], selected: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); class NgbDatepickerNavigationSelect { constructor(i18n, _renderer) { this.i18n = i18n; this._renderer = _renderer; this.select = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this._month = -1; this._year = -1; } changeMonth(month) { this.select.emit(new NgbDate(this.date.year, toInteger(month), 1)); } changeYear(year) { this.select.emit(new NgbDate(toInteger(year), this.date.month, 1)); } ngAfterViewChecked() { if (this.date) { if (this.date.month !== this._month) { this._month = this.date.month; this._renderer.setProperty(this.monthSelect.nativeElement, 'value', this._month); } if (this.date.year !== this._year) { this._year = this.date.year; this._renderer.setProperty(this.yearSelect.nativeElement, 'value', this._year); } } } } NgbDatepickerNavigationSelect.ɵfac = function NgbDatepickerNavigationSelect_Factory(t) { return new (t || NgbDatepickerNavigationSelect)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDatepickerI18n), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"])); }; NgbDatepickerNavigationSelect.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbDatepickerNavigationSelect, selectors: [["ngb-datepicker-navigation-select"]], viewQuery: function NgbDatepickerNavigationSelect_Query(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstaticViewQuery"](_c23, true, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstaticViewQuery"](_c24, true, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.monthSelect = _t.first); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.yearSelect = _t.first); } }, inputs: { date: "date", disabled: "disabled", months: "months", years: "years" }, outputs: { select: "select" }, decls: 6, vars: 4, consts: function () { let i18n_25; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_26 = goog.getMsg("Select month"); i18n_25 = MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_26; } else { i18n_25 = $localize `:@@ngb.datepicker.select-month␟1dbc84807f35518112f62e5775d1daebd3d8462b␟2253869508135064750:Select month`; } let i18n_27; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_28 = goog.getMsg("Select month"); i18n_27 = MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_28; } else { i18n_27 = $localize `:@@ngb.datepicker.select-month␟1dbc84807f35518112f62e5775d1daebd3d8462b␟2253869508135064750:Select month`; } let i18n_29; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_30 = goog.getMsg("Select year"); i18n_29 = MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_30; } else { i18n_29 = $localize `:@@ngb.datepicker.select-year␟8ceb09d002bf0c5d1cac171dfbffe1805d2b3962␟8852264961585484321:Select year`; } let i18n_31; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_32 = goog.getMsg("Select year"); i18n_31 = MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_32; } else { i18n_31 = $localize `:@@ngb.datepicker.select-year␟8ceb09d002bf0c5d1cac171dfbffe1805d2b3962␟8852264961585484321:Select year`; } return [["aria-label", i18n_25, "title", i18n_27, 1, "custom-select", 3, "disabled", "change"], ["month", ""], [3, "value", 4, "ngFor", "ngForOf"], ["aria-label", i18n_29, "title", i18n_31, 1, "custom-select", 3, "disabled", "change"], ["year", ""], [3, "value"]]; }, template: function NgbDatepickerNavigationSelect_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "select", 0, 1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("change", function NgbDatepickerNavigationSelect_Template_select_change_0_listener($event) { return ctx.changeMonth($event.target.value); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbDatepickerNavigationSelect_option_2_Template, 2, 3, "option", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "select", 3, 4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("change", function NgbDatepickerNavigationSelect_Template_select_change_3_listener($event) { return ctx.changeYear($event.target.value); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](5, NgbDatepickerNavigationSelect_option_5_Template, 2, 2, "option", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", ctx.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.months); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", ctx.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.years); } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgForOf"], _angular_forms__WEBPACK_IMPORTED_MODULE_4__["NgSelectOption"], _angular_forms__WEBPACK_IMPORTED_MODULE_4__["ɵangular_packages_forms_forms_x"]], styles: ["ngb-datepicker-navigation-select>.custom-select{-ms-flex:1 1 auto;flex:1 1 auto;font-size:.875rem;height:1.85rem;padding:0 .5rem}ngb-datepicker-navigation-select>.custom-select:focus{z-index:1}ngb-datepicker-navigation-select>.custom-select::-ms-value{background-color:transparent!important}"], encapsulation: 2, changeDetection: 0 }); NgbDatepickerNavigationSelect.ctorParameters = () => [ { type: NgbDatepickerI18n }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] } ]; NgbDatepickerNavigationSelect.propDecorators = { date: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], months: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], years: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], select: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], monthSelect: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], args: ['month', { static: true, read: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] },] }], yearSelect: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], args: ['year', { static: true, read: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] },] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDatepickerNavigationSelect, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-datepicker-navigation-select', changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, template: ` `, styles: ["ngb-datepicker-navigation-select>.custom-select{-ms-flex:1 1 auto;flex:1 1 auto;font-size:.875rem;height:1.85rem;padding:0 .5rem}ngb-datepicker-navigation-select>.custom-select:focus{z-index:1}ngb-datepicker-navigation-select>.custom-select::-ms-value{background-color:transparent!important}"] }] }], function () { return [{ type: NgbDatepickerI18n }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }]; }, { select: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], date: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], months: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], years: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], monthSelect: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], args: ['month', { static: true, read: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }] }], yearSelect: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], args: ['year', { static: true, read: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }] }] }); })(); class NgbCalendarHijri extends NgbCalendar { getDaysPerWeek() { return 7; } getMonths() { return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; } getWeeksPerMonth() { return 6; } getNext(date, period = 'd', number = 1) { date = new NgbDate(date.year, date.month, date.day); switch (period) { case 'y': date = this._setYear(date, date.year + number); date.month = 1; date.day = 1; return date; case 'm': date = this._setMonth(date, date.month + number); date.day = 1; return date; case 'd': return this._setDay(date, date.day + number); default: return date; } } getPrev(date, period = 'd', number = 1) { return this.getNext(date, period, -number); } getWeekday(date) { const day = this.toGregorian(date).getDay(); // in JS Date Sun=0, in ISO 8601 Sun=7 return day === 0 ? 7 : day; } getWeekNumber(week, firstDayOfWeek) { // in JS Date Sun=0, in ISO 8601 Sun=7 if (firstDayOfWeek === 7) { firstDayOfWeek = 0; } const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7; const date = week[thursdayIndex]; const jsDate = this.toGregorian(date); jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday const time = jsDate.getTime(); const MuhDate = this.toGregorian(new NgbDate(date.year, 1, 1)); // Compare with Muharram 1 return Math.floor(Math.round((time - MuhDate.getTime()) / 86400000) / 7) + 1; } getToday() { return this.fromGregorian(new Date()); } isValid(date) { return date != null && isNumber(date.year) && isNumber(date.month) && isNumber(date.day) && !isNaN(this.toGregorian(date).getTime()); } _setDay(date, day) { day = +day; let mDays = this.getDaysPerMonth(date.month, date.year); if (day <= 0) { while (day <= 0) { date = this._setMonth(date, date.month - 1); mDays = this.getDaysPerMonth(date.month, date.year); day += mDays; } } else if (day > mDays) { while (day > mDays) { day -= mDays; date = this._setMonth(date, date.month + 1); mDays = this.getDaysPerMonth(date.month, date.year); } } date.day = day; return date; } _setMonth(date, month) { month = +month; date.year = date.year + Math.floor((month - 1) / 12); date.month = Math.floor(((month - 1) % 12 + 12) % 12) + 1; return date; } _setYear(date, year) { date.year = +year; return date; } } NgbCalendarHijri.ɵfac = function NgbCalendarHijri_Factory(t) { return ɵNgbCalendarHijri_BaseFactory(t || NgbCalendarHijri); }; NgbCalendarHijri.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbCalendarHijri, factory: NgbCalendarHijri.ɵfac }); const ɵNgbCalendarHijri_BaseFactory = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NgbCalendarHijri); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCalendarHijri, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], null, null); })(); /** * Checks if islamic year is a leap year */ function isIslamicLeapYear(hYear) { return (14 + 11 * hYear) % 30 < 11; } /** * Checks if gregorian years is a leap year */ function isGregorianLeapYear(gDate) { const year = gDate.getFullYear(); return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; } /** * Returns the start of Hijri Month. * `hMonth` is 0 for Muharram, 1 for Safar, etc. * `hYear` is any Hijri hYear. */ function getIslamicMonthStart(hYear, hMonth) { return Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30.0); } /** * Returns the start of Hijri year. * `year` is any Hijri year. */ function getIslamicYearStart(year) { return (year - 1) * 354 + Math.floor((3 + 11 * year) / 30.0); } function mod(a, b) { return a - b * Math.floor(a / b); } /** * The civil calendar is one type of Hijri calendars used in islamic countries. * Uses a fixed cycle of alternating 29- and 30-day months, * with a leap day added to the last month of 11 out of every 30 years. * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types * All the calculations here are based on the equations from "Calendrical Calculations" By Edward M. Reingold, Nachum * Dershowitz. */ const GREGORIAN_EPOCH = 1721425.5; const ISLAMIC_EPOCH = 1948439.5; class NgbCalendarIslamicCivil extends NgbCalendarHijri { /** * Returns the equivalent islamic(civil) date value for a give input Gregorian date. * `gDate` is a JS Date to be converted to Hijri. */ fromGregorian(gDate) { const gYear = gDate.getFullYear(), gMonth = gDate.getMonth(), gDay = gDate.getDate(); let julianDay = GREGORIAN_EPOCH - 1 + 365 * (gYear - 1) + Math.floor((gYear - 1) / 4) + -Math.floor((gYear - 1) / 100) + Math.floor((gYear - 1) / 400) + Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear(gDate) ? -1 : -2) + gDay); julianDay = Math.floor(julianDay) + 0.5; const days = julianDay - ISLAMIC_EPOCH; const hYear = Math.floor((30 * days + 10646) / 10631.0); let hMonth = Math.ceil((days - 29 - getIslamicYearStart(hYear)) / 29.5); hMonth = Math.min(hMonth, 11); const hDay = Math.ceil(days - getIslamicMonthStart(hYear, hMonth)) + 1; return new NgbDate(hYear, hMonth + 1, hDay); } /** * Returns the equivalent JS date value for a give input islamic(civil) date. * `hDate` is an islamic(civil) date to be converted to Gregorian. */ toGregorian(hDate) { const hYear = hDate.year; const hMonth = hDate.month - 1; const hDay = hDate.day; const julianDay = hDay + Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30) + ISLAMIC_EPOCH - 1; const wjd = Math.floor(julianDay - 0.5) + 0.5, depoch = wjd - GREGORIAN_EPOCH, quadricent = Math.floor(depoch / 146097), dqc = mod(depoch, 146097), cent = Math.floor(dqc / 36524), dcent = mod(dqc, 36524), quad = Math.floor(dcent / 1461), dquad = mod(dcent, 1461), yindex = Math.floor(dquad / 365); let year = quadricent * 400 + cent * 100 + quad * 4 + yindex; if (!(cent === 4 || yindex === 4)) { year++; } const gYearStart = GREGORIAN_EPOCH + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) + Math.floor((year - 1) / 400); const yearday = wjd - gYearStart; const tjd = GREGORIAN_EPOCH - 1 + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) + Math.floor((year - 1) / 400) + Math.floor(739 / 12 + (isGregorianLeapYear(new Date(year, 3, 1)) ? -1 : -2) + 1); const leapadj = wjd < tjd ? 0 : isGregorianLeapYear(new Date(year, 3, 1)) ? 1 : 2; const month = Math.floor(((yearday + leapadj) * 12 + 373) / 367); const tjd2 = GREGORIAN_EPOCH - 1 + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) + Math.floor((year - 1) / 400) + Math.floor((367 * month - 362) / 12 + (month <= 2 ? 0 : isGregorianLeapYear(new Date(year, month - 1, 1)) ? -1 : -2) + 1); const day = wjd - tjd2 + 1; return new Date(year, month - 1, day); } /** * Returns the number of days in a specific Hijri month. * `month` is 1 for Muharram, 2 for Safar, etc. * `year` is any Hijri year. */ getDaysPerMonth(month, year) { year = year + Math.floor(month / 13); month = ((month - 1) % 12) + 1; let length = 29 + month % 2; if (month === 12 && isIslamicLeapYear(year)) { length++; } return length; } } NgbCalendarIslamicCivil.ɵfac = function NgbCalendarIslamicCivil_Factory(t) { return ɵNgbCalendarIslamicCivil_BaseFactory(t || NgbCalendarIslamicCivil); }; NgbCalendarIslamicCivil.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbCalendarIslamicCivil, factory: NgbCalendarIslamicCivil.ɵfac }); const ɵNgbCalendarIslamicCivil_BaseFactory = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NgbCalendarIslamicCivil); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCalendarIslamicCivil, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], null, null); })(); /** * Umalqura calendar is one type of Hijri calendars used in islamic countries. * This Calendar is used by Saudi Arabia for administrative purpose. * Unlike tabular calendars, the algorithm involves astronomical calculation, but it's still deterministic. * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types */ const GREGORIAN_FIRST_DATE = new Date(1882, 10, 12); const GREGORIAN_LAST_DATE = new Date(2174, 10, 25); const HIJRI_BEGIN = 1300; const HIJRI_END = 1600; const ONE_DAY = 1000 * 60 * 60 * 24; const MONTH_LENGTH = [ // 1300-1304 '101010101010', '110101010100', '111011001001', '011011010100', '011011101010', // 1305-1309 '001101101100', '101010101101', '010101010101', '011010101001', '011110010010', // 1310-1314 '101110101001', '010111010100', '101011011010', '010101011100', '110100101101', // 1315-1319 '011010010101', '011101001010', '101101010100', '101101101010', '010110101101', // 1320-1324 '010010101110', '101001001111', '010100010111', '011010001011', '011010100101', // 1325-1329 '101011010101', '001011010110', '100101011011', '010010011101', '101001001101', // 1330-1334 '110100100110', '110110010101', '010110101100', '100110110110', '001010111010', // 1335-1339 '101001011011', '010100101011', '101010010101', '011011001010', '101011101001', // 1340-1344 '001011110100', '100101110110', '001010110110', '100101010110', '101011001010', // 1345-1349 '101110100100', '101111010010', '010111011001', '001011011100', '100101101101', // 1350-1354 '010101001101', '101010100101', '101101010010', '101110100101', '010110110100', // 1355-1359 '100110110110', '010101010111', '001010010111', '010101001011', '011010100011', // 1360-1364 '011101010010', '101101100101', '010101101010', '101010101011', '010100101011', // 1365-1369 '110010010101', '110101001010', '110110100101', '010111001010', '101011010110', // 1370-1374 '100101010111', '010010101011', '100101001011', '101010100101', '101101010010', // 1375-1379 '101101101010', '010101110101', '001001110110', '100010110111', '010001011011', // 1380-1384 '010101010101', '010110101001', '010110110100', '100111011010', '010011011101', // 1385-1389 '001001101110', '100100110110', '101010101010', '110101010100', '110110110010', // 1390-1394 '010111010101', '001011011010', '100101011011', '010010101011', '101001010101', // 1395-1399 '101101001001', '101101100100', '101101110001', '010110110100', '101010110101', // 1400-1404 '101001010101', '110100100101', '111010010010', '111011001001', '011011010100', // 1405-1409 '101011101001', '100101101011', '010010101011', '101010010011', '110101001001', // 1410-1414 '110110100100', '110110110010', '101010111001', '010010111010', '101001011011', // 1415-1419 '010100101011', '101010010101', '101100101010', '101101010101', '010101011100', // 1420-1424 '010010111101', '001000111101', '100100011101', '101010010101', '101101001010', // 1425-1429 '101101011010', '010101101101', '001010110110', '100100111011', '010010011011', // 1430-1434 '011001010101', '011010101001', '011101010100', '101101101010', '010101101100', // 1435-1439 '101010101101', '010101010101', '101100101001', '101110010010', '101110101001', // 1440-1444 '010111010100', '101011011010', '010101011010', '101010101011', '010110010101', // 1445-1449 '011101001001', '011101100100', '101110101010', '010110110101', '001010110110', // 1450-1454 '101001010110', '111001001101', '101100100101', '101101010010', '101101101010', // 1455-1459 '010110101101', '001010101110', '100100101111', '010010010111', '011001001011', // 1460-1464 '011010100101', '011010101100', '101011010110', '010101011101', '010010011101', // 1465-1469 '101001001101', '110100010110', '110110010101', '010110101010', '010110110101', // 1470-1474 '001011011010', '100101011011', '010010101101', '010110010101', '011011001010', // 1475-1479 '011011100100', '101011101010', '010011110101', '001010110110', '100101010110', // 1480-1484 '101010101010', '101101010100', '101111010010', '010111011001', '001011101010', // 1485-1489 '100101101101', '010010101101', '101010010101', '101101001010', '101110100101', // 1490-1494 '010110110010', '100110110101', '010011010110', '101010010111', '010101000111', // 1495-1499 '011010010011', '011101001001', '101101010101', '010101101010', '101001101011', // 1500-1504 '010100101011', '101010001011', '110101000110', '110110100011', '010111001010', // 1505-1509 '101011010110', '010011011011', '001001101011', '100101001011', '101010100101', // 1510-1514 '101101010010', '101101101001', '010101110101', '000101110110', '100010110111', // 1515-1519 '001001011011', '010100101011', '010101100101', '010110110100', '100111011010', // 1520-1524 '010011101101', '000101101101', '100010110110', '101010100110', '110101010010', // 1525-1529 '110110101001', '010111010100', '101011011010', '100101011011', '010010101011', // 1530-1534 '011001010011', '011100101001', '011101100010', '101110101001', '010110110010', // 1535-1539 '101010110101', '010101010101', '101100100101', '110110010010', '111011001001', // 1540-1544 '011011010010', '101011101001', '010101101011', '010010101011', '101001010101', // 1545-1549 '110100101001', '110101010100', '110110101010', '100110110101', '010010111010', // 1550-1554 '101000111011', '010010011011', '101001001101', '101010101010', '101011010101', // 1555-1559 '001011011010', '100101011101', '010001011110', '101000101110', '110010011010', // 1560-1564 '110101010101', '011010110010', '011010111001', '010010111010', '101001011101', // 1565-1569 '010100101101', '101010010101', '101101010010', '101110101000', '101110110100', // 1570-1574 '010110111001', '001011011010', '100101011010', '101101001010', '110110100100', // 1575-1579 '111011010001', '011011101000', '101101101010', '010101101101', '010100110101', // 1580-1584 '011010010101', '110101001010', '110110101000', '110111010100', '011011011010', // 1585-1589 '010101011011', '001010011101', '011000101011', '101100010101', '101101001010', // 1590-1594 '101110010101', '010110101010', '101010101110', '100100101110', '110010001111', // 1595-1599 '010100100111', '011010010101', '011010101010', '101011010110', '010101011101', // 1600 '001010011101' ]; function getDaysDiff(date1, date2) { // Ignores the time part in date1 and date2: const time1 = Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate()); const time2 = Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate()); const diff = Math.abs(time1 - time2); return Math.round(diff / ONE_DAY); } class NgbCalendarIslamicUmalqura extends NgbCalendarIslamicCivil { /** * Returns the equivalent islamic(Umalqura) date value for a give input Gregorian date. * `gdate` is s JS Date to be converted to Hijri. */ fromGregorian(gDate) { let hDay = 1, hMonth = 0, hYear = 1300; let daysDiff = getDaysDiff(gDate, GREGORIAN_FIRST_DATE); if (gDate.getTime() - GREGORIAN_FIRST_DATE.getTime() >= 0 && gDate.getTime() - GREGORIAN_LAST_DATE.getTime() <= 0) { let year = 1300; for (let i = 0; i < MONTH_LENGTH.length; i++, year++) { for (let j = 0; j < 12; j++) { let numOfDays = +MONTH_LENGTH[i][j] + 29; if (daysDiff <= numOfDays) { hDay = daysDiff + 1; if (hDay > numOfDays) { hDay = 1; j++; } if (j > 11) { j = 0; year++; } hMonth = j; hYear = year; return new NgbDate(hYear, hMonth + 1, hDay); } daysDiff = daysDiff - numOfDays; } } return null; } else { return super.fromGregorian(gDate); } } /** * Converts the current Hijri date to Gregorian. */ toGregorian(hDate) { const hYear = hDate.year; const hMonth = hDate.month - 1; const hDay = hDate.day; let gDate = new Date(GREGORIAN_FIRST_DATE); let dayDiff = hDay - 1; if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) { for (let y = 0; y < hYear - HIJRI_BEGIN; y++) { for (let m = 0; m < 12; m++) { dayDiff += +MONTH_LENGTH[y][m] + 29; } } for (let m = 0; m < hMonth; m++) { dayDiff += +MONTH_LENGTH[hYear - HIJRI_BEGIN][m] + 29; } gDate.setDate(GREGORIAN_FIRST_DATE.getDate() + dayDiff); } else { gDate = super.toGregorian(hDate); } return gDate; } /** * Returns the number of days in a specific Hijri hMonth. * `hMonth` is 1 for Muharram, 2 for Safar, etc. * `hYear` is any Hijri hYear. */ getDaysPerMonth(hMonth, hYear) { if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) { const pos = hYear - HIJRI_BEGIN; return +MONTH_LENGTH[pos][hMonth - 1] + 29; } return super.getDaysPerMonth(hMonth, hYear); } } NgbCalendarIslamicUmalqura.ɵfac = function NgbCalendarIslamicUmalqura_Factory(t) { return ɵNgbCalendarIslamicUmalqura_BaseFactory(t || NgbCalendarIslamicUmalqura); }; NgbCalendarIslamicUmalqura.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbCalendarIslamicUmalqura, factory: NgbCalendarIslamicUmalqura.ɵfac }); const ɵNgbCalendarIslamicUmalqura_BaseFactory = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NgbCalendarIslamicUmalqura); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCalendarIslamicUmalqura, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], null, null); })(); /** * Returns the equivalent JS date value for a give input Jalali date. * `jalaliDate` is an Jalali date to be converted to Gregorian. */ function toGregorian(jalaliDate) { let jdn = jalaliToJulian(jalaliDate.year, jalaliDate.month, jalaliDate.day); let date = julianToGregorian(jdn); date.setHours(6, 30, 3, 200); return date; } /** * Returns the equivalent jalali date value for a give input Gregorian date. * `gdate` is a JS Date to be converted to jalali. * utc to local */ function fromGregorian(gdate) { let g2d = gregorianToJulian(gdate.getFullYear(), gdate.getMonth() + 1, gdate.getDate()); return julianToJalali(g2d); } function setJalaliYear(date, yearValue) { date.year = +yearValue; return date; } function setJalaliMonth(date, month) { month = +month; date.year = date.year + Math.floor((month - 1) / 12); date.month = Math.floor(((month - 1) % 12 + 12) % 12) + 1; return date; } function setJalaliDay(date, day) { let mDays = getDaysPerMonth(date.month, date.year); if (day <= 0) { while (day <= 0) { date = setJalaliMonth(date, date.month - 1); mDays = getDaysPerMonth(date.month, date.year); day += mDays; } } else if (day > mDays) { while (day > mDays) { day -= mDays; date = setJalaliMonth(date, date.month + 1); mDays = getDaysPerMonth(date.month, date.year); } } date.day = day; return date; } function mod$1(a, b) { return a - b * Math.floor(a / b); } function div(a, b) { return Math.trunc(a / b); } /* This function determines if the Jalali (Persian) year is leap (366-day long) or is the common year (365 days), and finds the day in March (Gregorian calendar) of the first day of the Jalali year (jalaliYear). @param jalaliYear Jalali calendar year (-61 to 3177) @return leap: number of years since the last leap year (0 to 4) gYear: Gregorian year of the beginning of Jalali year march: the March day of Farvardin the 1st (1st day of jalaliYear) @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm @see: http://www.fourmilab.ch/documents/calendar/ */ function jalCal(jalaliYear) { // Jalali years starting the 33-year rule. let breaks = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178]; const breaksLength = breaks.length; const gYear = jalaliYear + 621; let leapJ = -14; let jp = breaks[0]; if (jalaliYear < jp || jalaliYear >= breaks[breaksLength - 1]) { throw new Error('Invalid Jalali year ' + jalaliYear); } // Find the limiting years for the Jalali year jalaliYear. let jump; for (let i = 1; i < breaksLength; i += 1) { const jm = breaks[i]; jump = jm - jp; if (jalaliYear < jm) { break; } leapJ = leapJ + div(jump, 33) * 8 + div(mod$1(jump, 33), 4); jp = jm; } let n = jalaliYear - jp; // Find the number of leap years from AD 621 to the beginning // of the current Jalali year in the Persian calendar. leapJ = leapJ + div(n, 33) * 8 + div(mod$1(n, 33) + 3, 4); if (mod$1(jump, 33) === 4 && jump - n === 4) { leapJ += 1; } // And the same in the Gregorian calendar (until the year gYear). const leapG = div(gYear, 4) - div((div(gYear, 100) + 1) * 3, 4) - 150; // Determine the Gregorian date of Farvardin the 1st. const march = 20 + leapJ - leapG; // Find how many years have passed since the last leap year. if (jump - n < 6) { n = n - jump + div(jump + 4, 33) * 33; } let leap = mod$1(mod$1(n + 1, 33) - 1, 4); if (leap === -1) { leap = 4; } return { leap: leap, gy: gYear, march: march }; } /* Calculates Gregorian and Julian calendar dates from the Julian Day number (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both calendars) to some millions years ahead of the present. @param jdn Julian Day number @return gYear: Calendar year (years BC numbered 0, -1, -2, ...) gMonth: Calendar month (1 to 12) gDay: Calendar day of the month M (1 to 28/29/30/31) */ function julianToGregorian(julianDayNumber) { let j = 4 * julianDayNumber + 139361631; j = j + div(div(4 * julianDayNumber + 183187720, 146097) * 3, 4) * 4 - 3908; const i = div(mod$1(j, 1461), 4) * 5 + 308; const gDay = div(mod$1(i, 153), 5) + 1; const gMonth = mod$1(div(i, 153), 12) + 1; const gYear = div(j, 1461) - 100100 + div(8 - gMonth, 6); return new Date(gYear, gMonth - 1, gDay); } /* Converts a date of the Jalali calendar to the Julian Day number. @param jy Jalali year (1 to 3100) @param jm Jalali month (1 to 12) @param jd Jalali day (1 to 29/31) @return Julian Day number */ function gregorianToJulian(gy, gm, gd) { let d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4) + div(153 * mod$1(gm + 9, 12) + 2, 5) + gd - 34840408; d = d - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752; return d; } /* Converts the Julian Day number to a date in the Jalali calendar. @param julianDayNumber Julian Day number @return jalaliYear: Jalali year (1 to 3100) jalaliMonth: Jalali month (1 to 12) jalaliDay: Jalali day (1 to 29/31) */ function julianToJalali(julianDayNumber) { let gy = julianToGregorian(julianDayNumber).getFullYear() // Calculate Gregorian year (gy). , jalaliYear = gy - 621, r = jalCal(jalaliYear), gregorianDay = gregorianToJulian(gy, 3, r.march), jalaliDay, jalaliMonth, numberOfDays; // Find number of days that passed since 1 Farvardin. numberOfDays = julianDayNumber - gregorianDay; if (numberOfDays >= 0) { if (numberOfDays <= 185) { // The first 6 months. jalaliMonth = 1 + div(numberOfDays, 31); jalaliDay = mod$1(numberOfDays, 31) + 1; return new NgbDate(jalaliYear, jalaliMonth, jalaliDay); } else { // The remaining months. numberOfDays -= 186; } } else { // Previous Jalali year. jalaliYear -= 1; numberOfDays += 179; if (r.leap === 1) { numberOfDays += 1; } } jalaliMonth = 7 + div(numberOfDays, 30); jalaliDay = mod$1(numberOfDays, 30) + 1; return new NgbDate(jalaliYear, jalaliMonth, jalaliDay); } /* Converts a date of the Jalali calendar to the Julian Day number. @param jYear Jalali year (1 to 3100) @param jMonth Jalali month (1 to 12) @param jDay Jalali day (1 to 29/31) @return Julian Day number */ function jalaliToJulian(jYear, jMonth, jDay) { let r = jalCal(jYear); return gregorianToJulian(r.gy, 3, r.march) + (jMonth - 1) * 31 - div(jMonth, 7) * (jMonth - 7) + jDay - 1; } /** * Returns the number of days in a specific jalali month. */ function getDaysPerMonth(month, year) { if (month <= 6) { return 31; } if (month <= 11) { return 30; } if (jalCal(year).leap === 0) { return 30; } return 29; } class NgbCalendarPersian extends NgbCalendar { getDaysPerWeek() { return 7; } getMonths() { return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; } getWeeksPerMonth() { return 6; } getNext(date, period = 'd', number = 1) { date = new NgbDate(date.year, date.month, date.day); switch (period) { case 'y': date = setJalaliYear(date, date.year + number); date.month = 1; date.day = 1; return date; case 'm': date = setJalaliMonth(date, date.month + number); date.day = 1; return date; case 'd': return setJalaliDay(date, date.day + number); default: return date; } } getPrev(date, period = 'd', number = 1) { return this.getNext(date, period, -number); } getWeekday(date) { const day = toGregorian(date).getDay(); // in JS Date Sun=0, in ISO 8601 Sun=7 return day === 0 ? 7 : day; } getWeekNumber(week, firstDayOfWeek) { // in JS Date Sun=0, in ISO 8601 Sun=7 if (firstDayOfWeek === 7) { firstDayOfWeek = 0; } const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7; const date = week[thursdayIndex]; const jsDate = toGregorian(date); jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday const time = jsDate.getTime(); const startDate = toGregorian(new NgbDate(date.year, 1, 1)); return Math.floor(Math.round((time - startDate.getTime()) / 86400000) / 7) + 1; } getToday() { return fromGregorian(new Date()); } isValid(date) { return date != null && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) && !isNaN(toGregorian(date).getTime()); } } NgbCalendarPersian.ɵfac = function NgbCalendarPersian_Factory(t) { return ɵNgbCalendarPersian_BaseFactory(t || NgbCalendarPersian); }; NgbCalendarPersian.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbCalendarPersian, factory: NgbCalendarPersian.ɵfac }); const ɵNgbCalendarPersian_BaseFactory = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NgbCalendarPersian); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCalendarPersian, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], null, null); })(); const PARTS_PER_HOUR = 1080; const PARTS_PER_DAY = 24 * PARTS_PER_HOUR; const PARTS_FRACTIONAL_MONTH = 12 * PARTS_PER_HOUR + 793; const PARTS_PER_MONTH = 29 * PARTS_PER_DAY + PARTS_FRACTIONAL_MONTH; const BAHARAD = 11 * PARTS_PER_HOUR + 204; const HEBREW_DAY_ON_JAN_1_1970 = 2092591; const GREGORIAN_EPOCH$1 = 1721425.5; function isGregorianLeapYear$1(year) { return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0; } function numberOfFirstDayInYear(year) { let monthsBeforeYear = Math.floor((235 * year - 234) / 19); let fractionalMonthsBeforeYear = monthsBeforeYear * PARTS_FRACTIONAL_MONTH + BAHARAD; let dayNumber = monthsBeforeYear * 29 + Math.floor(fractionalMonthsBeforeYear / PARTS_PER_DAY); let timeOfDay = fractionalMonthsBeforeYear % PARTS_PER_DAY; let dayOfWeek = dayNumber % 7; // 0 == Monday if (dayOfWeek === 2 || dayOfWeek === 4 || dayOfWeek === 6) { dayNumber++; dayOfWeek = dayNumber % 7; } if (dayOfWeek === 1 && timeOfDay > 15 * PARTS_PER_HOUR + 204 && !isHebrewLeapYear(year)) { dayNumber += 2; } else if (dayOfWeek === 0 && timeOfDay > 21 * PARTS_PER_HOUR + 589 && isHebrewLeapYear(year - 1)) { dayNumber++; } return dayNumber; } function getDaysInGregorianMonth(month, year) { let days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; if (isGregorianLeapYear$1(year)) { days[1]++; } return days[month - 1]; } function getHebrewMonths(year) { return isHebrewLeapYear(year) ? 13 : 12; } /** * Returns the number of days in a specific Hebrew year. * `year` is any Hebrew year. */ function getDaysInHebrewYear(year) { return numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year); } function isHebrewLeapYear(year) { if (year != null) { let b = (year * 12 + 17) % 19; return b >= ((b < 0) ? -7 : 12); } return false; } /** * Returns the number of days in a specific Hebrew month. * `month` is 1 for Nisan, 2 for Iyar etc. Note: Hebrew leap year contains 13 months. * `year` is any Hebrew year. */ function getDaysInHebrewMonth(month, year) { let yearLength = numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year); let yearType = (yearLength <= 380 ? yearLength : (yearLength - 30)) - 353; let leapYear = isHebrewLeapYear(year); 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]; if (yearType > 0) { daysInMonth[2]++; // Kislev gets an extra day in normal or complete years. } if (yearType > 1) { daysInMonth[1]++; // Heshvan gets an extra day in complete years only. } return daysInMonth[month - 1]; } function getDayNumberInHebrewYear(date) { let numberOfDay = 0; for (let i = 1; i < date.month; i++) { numberOfDay += getDaysInHebrewMonth(i, date.year); } return numberOfDay + date.day; } function setHebrewMonth(date, val) { let after = val >= 0; if (!after) { val = -val; } while (val > 0) { if (after) { if (val > getHebrewMonths(date.year) - date.month) { val -= getHebrewMonths(date.year) - date.month + 1; date.year++; date.month = 1; } else { date.month += val; val = 0; } } else { if (val >= date.month) { date.year--; val -= date.month; date.month = getHebrewMonths(date.year); } else { date.month -= val; val = 0; } } } return date; } function setHebrewDay(date, val) { let after = val >= 0; if (!after) { val = -val; } while (val > 0) { if (after) { if (val > getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date)) { val -= getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date) + 1; date.year++; date.month = 1; date.day = 1; } else if (val > getDaysInHebrewMonth(date.month, date.year) - date.day) { val -= getDaysInHebrewMonth(date.month, date.year) - date.day + 1; date.month++; date.day = 1; } else { date.day += val; val = 0; } } else { if (val >= date.day) { val -= date.day; date.month--; if (date.month === 0) { date.year--; date.month = getHebrewMonths(date.year); } date.day = getDaysInHebrewMonth(date.month, date.year); } else { date.day -= val; val = 0; } } } return date; } /** * Returns the equivalent Hebrew date value for a give input Gregorian date. * `gdate` is a JS Date to be converted to Hebrew date. */ function fromGregorian$1(gdate) { const date = new Date(gdate); const gYear = date.getFullYear(), gMonth = date.getMonth(), gDay = date.getDate(); let julianDay = GREGORIAN_EPOCH$1 - 1 + 365 * (gYear - 1) + Math.floor((gYear - 1) / 4) - Math.floor((gYear - 1) / 100) + Math.floor((gYear - 1) / 400) + Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear$1(gYear) ? -1 : -2) + gDay); julianDay = Math.floor(julianDay + 0.5); let daysSinceHebEpoch = julianDay - 347997; let monthsSinceHebEpoch = Math.floor(daysSinceHebEpoch * PARTS_PER_DAY / PARTS_PER_MONTH); let hYear = Math.floor((monthsSinceHebEpoch * 19 + 234) / 235) + 1; let firstDayOfThisYear = numberOfFirstDayInYear(hYear); let dayOfYear = daysSinceHebEpoch - firstDayOfThisYear; while (dayOfYear < 1) { hYear--; firstDayOfThisYear = numberOfFirstDayInYear(hYear); dayOfYear = daysSinceHebEpoch - firstDayOfThisYear; } let hMonth = 1; let hDay = dayOfYear; while (hDay > getDaysInHebrewMonth(hMonth, hYear)) { hDay -= getDaysInHebrewMonth(hMonth, hYear); hMonth++; } return new NgbDate(hYear, hMonth, hDay); } /** * Returns the equivalent JS date value for a given Hebrew date. * `hebrewDate` is an Hebrew date to be converted to Gregorian. */ function toGregorian$1(hebrewDate) { const hYear = hebrewDate.year; const hMonth = hebrewDate.month; const hDay = hebrewDate.day; let days = numberOfFirstDayInYear(hYear); for (let i = 1; i < hMonth; i++) { days += getDaysInHebrewMonth(i, hYear); } days += hDay; let diffDays = days - HEBREW_DAY_ON_JAN_1_1970; let after = diffDays >= 0; if (!after) { diffDays = -diffDays; } let gYear = 1970; let gMonth = 1; let gDay = 1; while (diffDays > 0) { if (after) { if (diffDays >= (isGregorianLeapYear$1(gYear) ? 366 : 365)) { diffDays -= isGregorianLeapYear$1(gYear) ? 366 : 365; gYear++; } else if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) { diffDays -= getDaysInGregorianMonth(gMonth, gYear); gMonth++; } else { gDay += diffDays; diffDays = 0; } } else { if (diffDays >= (isGregorianLeapYear$1(gYear - 1) ? 366 : 365)) { diffDays -= isGregorianLeapYear$1(gYear - 1) ? 366 : 365; gYear--; } else { if (gMonth > 1) { gMonth--; } else { gMonth = 12; gYear--; } if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) { diffDays -= getDaysInGregorianMonth(gMonth, gYear); } else { gDay = getDaysInGregorianMonth(gMonth, gYear) - diffDays + 1; diffDays = 0; } } } } return new Date(gYear, gMonth - 1, gDay); } function hebrewNumerals(numerals) { if (!numerals) { return ''; } const hArray0_9 = ['', '\u05d0', '\u05d1', '\u05d2', '\u05d3', '\u05d4', '\u05d5', '\u05d6', '\u05d7', '\u05d8']; const hArray10_19 = [ '\u05d9', '\u05d9\u05d0', '\u05d9\u05d1', '\u05d9\u05d2', '\u05d9\u05d3', '\u05d8\u05d5', '\u05d8\u05d6', '\u05d9\u05d6', '\u05d9\u05d7', '\u05d9\u05d8' ]; const hArray20_90 = ['', '', '\u05db', '\u05dc', '\u05de', '\u05e0', '\u05e1', '\u05e2', '\u05e4', '\u05e6']; const hArray100_900 = [ '', '\u05e7', '\u05e8', '\u05e9', '\u05ea', '\u05ea\u05e7', '\u05ea\u05e8', '\u05ea\u05e9', '\u05ea\u05ea', '\u05ea\u05ea\u05e7' ]; const hArray1000_9000 = [ '', '\u05d0', '\u05d1', '\u05d1\u05d0', '\u05d1\u05d1', '\u05d4', '\u05d4\u05d0', '\u05d4\u05d1', '\u05d4\u05d1\u05d0', '\u05d4\u05d1\u05d1' ]; const geresh = '\u05f3', gershaim = '\u05f4'; let mem = 0; let result = []; let step = 0; while (numerals > 0) { let m = numerals % 10; if (step === 0) { mem = m; } else if (step === 1) { if (m !== 1) { result.unshift(hArray20_90[m], hArray0_9[mem]); } else { result.unshift(hArray10_19[mem]); } } else if (step === 2) { result.unshift(hArray100_900[m]); } else { if (m !== 5) { result.unshift(hArray1000_9000[m], geresh, ' '); } break; } numerals = Math.floor(numerals / 10); if (step === 0 && numerals === 0) { result.unshift(hArray0_9[m]); } step++; } result = result.join('').split(''); if (result.length === 1) { result.push(geresh); } else if (result.length > 1) { result.splice(result.length - 1, 0, gershaim); } return result.join(''); } /** * @since 3.2.0 */ class NgbCalendarHebrew extends NgbCalendar { getDaysPerWeek() { return 7; } getMonths(year) { if (year && isHebrewLeapYear(year)) { return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; } else { return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; } } getWeeksPerMonth() { return 6; } isValid(date) { if (date != null) { let b = isNumber(date.year) && isNumber(date.month) && isNumber(date.day); b = b && date.month > 0 && date.month <= (isHebrewLeapYear(date.year) ? 13 : 12); b = b && date.day > 0 && date.day <= getDaysInHebrewMonth(date.month, date.year); return b && !isNaN(toGregorian$1(date).getTime()); } return false; } getNext(date, period = 'd', number = 1) { date = new NgbDate(date.year, date.month, date.day); switch (period) { case 'y': date.year += number; date.month = 1; date.day = 1; return date; case 'm': date = setHebrewMonth(date, number); date.day = 1; return date; case 'd': return setHebrewDay(date, number); default: return date; } } getPrev(date, period = 'd', number = 1) { return this.getNext(date, period, -number); } getWeekday(date) { const day = toGregorian$1(date).getDay(); // in JS Date Sun=0, in ISO 8601 Sun=7 return day === 0 ? 7 : day; } getWeekNumber(week, firstDayOfWeek) { const date = week[week.length - 1]; return Math.ceil(getDayNumberInHebrewYear(date) / 7); } getToday() { return fromGregorian$1(new Date()); } /** * @since 3.4.0 */ toGregorian(date) { return fromJSDate(toGregorian$1(date)); } /** * @since 3.4.0 */ fromGregorian(date) { return fromGregorian$1(toJSDate(date)); } } NgbCalendarHebrew.ɵfac = function NgbCalendarHebrew_Factory(t) { return ɵNgbCalendarHebrew_BaseFactory(t || NgbCalendarHebrew); }; NgbCalendarHebrew.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbCalendarHebrew, factory: NgbCalendarHebrew.ɵfac }); const ɵNgbCalendarHebrew_BaseFactory = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NgbCalendarHebrew); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbCalendarHebrew, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], null, null); })(); const WEEKDAYS = ['שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת', 'ראשון']; const MONTHS = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול']; const MONTHS_LEAP = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר א׳', 'אדר ב׳', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול']; /** * @since 3.2.0 */ class NgbDatepickerI18nHebrew extends NgbDatepickerI18n { getMonthShortName(month, year) { return this.getMonthFullName(month, year); } getMonthFullName(month, year) { return isHebrewLeapYear(year) ? MONTHS_LEAP[month - 1] || '' : MONTHS[month - 1] || ''; } getWeekdayShortName(weekday) { return WEEKDAYS[weekday - 1] || ''; } getDayAriaLabel(date) { return `${hebrewNumerals(date.day)} ${this.getMonthFullName(date.month, date.year)} ${hebrewNumerals(date.year)}`; } getDayNumerals(date) { return hebrewNumerals(date.day); } getWeekNumerals(weekNumber) { return hebrewNumerals(weekNumber); } getYearNumerals(year) { return hebrewNumerals(year); } } NgbDatepickerI18nHebrew.ɵfac = function NgbDatepickerI18nHebrew_Factory(t) { return ɵNgbDatepickerI18nHebrew_BaseFactory(t || NgbDatepickerI18nHebrew); }; NgbDatepickerI18nHebrew.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbDatepickerI18nHebrew, factory: NgbDatepickerI18nHebrew.ɵfac }); const ɵNgbDatepickerI18nHebrew_BaseFactory = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NgbDatepickerI18nHebrew); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDatepickerI18nHebrew, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], null, null); })(); /** * [`NgbDateAdapter`](#/components/datepicker/api#NgbDateAdapter) implementation that uses * native javascript dates as a user date model. */ class NgbDateNativeAdapter extends NgbDateAdapter { /** * Converts a native `Date` to a `NgbDateStruct`. */ fromModel(date) { return (date instanceof Date && !isNaN(date.getTime())) ? this._fromNativeDate(date) : null; } /** * Converts a `NgbDateStruct` to a native `Date`. */ toModel(date) { return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) ? this._toNativeDate(date) : null; } _fromNativeDate(date) { return { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() }; } _toNativeDate(date) { const jsDate = new Date(date.year, date.month - 1, date.day, 12); // avoid 30 -> 1930 conversion jsDate.setFullYear(date.year); return jsDate; } } NgbDateNativeAdapter.ɵfac = function NgbDateNativeAdapter_Factory(t) { return ɵNgbDateNativeAdapter_BaseFactory(t || NgbDateNativeAdapter); }; NgbDateNativeAdapter.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbDateNativeAdapter, factory: NgbDateNativeAdapter.ɵfac }); const ɵNgbDateNativeAdapter_BaseFactory = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NgbDateNativeAdapter); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDateNativeAdapter, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], null, null); })(); /** * Same as [`NgbDateNativeAdapter`](#/components/datepicker/api#NgbDateNativeAdapter), but with UTC dates. * * @since 3.2.0 */ class NgbDateNativeUTCAdapter extends NgbDateNativeAdapter { _fromNativeDate(date) { return { year: date.getUTCFullYear(), month: date.getUTCMonth() + 1, day: date.getUTCDate() }; } _toNativeDate(date) { const jsDate = new Date(Date.UTC(date.year, date.month - 1, date.day)); // avoid 30 -> 1930 conversion jsDate.setUTCFullYear(date.year); return jsDate; } } NgbDateNativeUTCAdapter.ɵfac = function NgbDateNativeUTCAdapter_Factory(t) { return ɵNgbDateNativeUTCAdapter_BaseFactory(t || NgbDateNativeUTCAdapter); }; NgbDateNativeUTCAdapter.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbDateNativeUTCAdapter, factory: NgbDateNativeUTCAdapter.ɵfac }); const ɵNgbDateNativeUTCAdapter_BaseFactory = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NgbDateNativeUTCAdapter); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDateNativeUTCAdapter, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], null, null); })(); class NgbDatepickerModule { } NgbDatepickerModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbDatepickerModule }); NgbDatepickerModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbDatepickerModule_Factory(t) { return new (t || NgbDatepickerModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_4__["FormsModule"]]] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbDatepickerModule, { declarations: function () { return [NgbDatepicker, NgbDatepickerContent, NgbDatepickerMonth, NgbDatepickerNavigation, NgbDatepickerNavigationSelect, NgbDatepickerDayView, NgbInputDatepicker]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_4__["FormsModule"]]; }, exports: function () { return [NgbDatepicker, NgbDatepickerContent, NgbInputDatepicker, NgbDatepickerMonth]; } }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDatepickerModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: [ NgbDatepicker, NgbDatepickerContent, NgbDatepickerMonth, NgbDatepickerNavigation, NgbDatepickerNavigationSelect, NgbDatepickerDayView, NgbInputDatepicker ], exports: [NgbDatepicker, NgbDatepickerContent, NgbInputDatepicker, NgbDatepickerMonth], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"], _angular_forms__WEBPACK_IMPORTED_MODULE_4__["FormsModule"]], entryComponents: [NgbDatepicker] }] }], null, null); })(); /** * A configuration service for the [`NgbDropdown`](#/components/dropdown/api#NgbDropdown) component. * * You can inject this service, typically in your root component, and customize the values of its properties in * order to provide default values for all the dropdowns used in the application. */ class NgbDropdownConfig { constructor() { this.autoClose = true; this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right']; } } NgbDropdownConfig.ɵfac = function NgbDropdownConfig_Factory(t) { return new (t || NgbDropdownConfig)(); }; NgbDropdownConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbDropdownConfig_Factory() { return new NgbDropdownConfig(); }, token: NgbDropdownConfig, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDropdownConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return []; }, null); })(); class NgbNavbar { } NgbNavbar.ɵfac = function NgbNavbar_Factory(t) { return new (t || NgbNavbar)(); }; NgbNavbar.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbNavbar, selectors: [["", 8, "navbar"]] }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbNavbar, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '.navbar' }] }], null, null); })(); /** * A directive you should put on a dropdown item to enable keyboard navigation. * Arrow keys will move focus between items marked with this directive. * * @since 4.1.0 */ class NgbDropdownItem { constructor(elementRef) { this.elementRef = elementRef; this._disabled = false; } set disabled(value) { this._disabled = value === '' || value === true; // accept an empty attribute as true } get disabled() { return this._disabled; } } NgbDropdownItem.ɵfac = function NgbDropdownItem_Factory(t) { return new (t || NgbDropdownItem)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"])); }; NgbDropdownItem.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbDropdownItem, selectors: [["", "ngbDropdownItem", ""]], hostAttrs: [1, "dropdown-item"], hostVars: 2, hostBindings: function NgbDropdownItem_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("disabled", ctx.disabled); } }, inputs: { disabled: "disabled" } }); NgbDropdownItem.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] } ]; NgbDropdownItem.propDecorators = { disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDropdownItem, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbDropdownItem]', host: { 'class': 'dropdown-item', '[class.disabled]': 'disabled' } }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }]; }, { disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); /** * A directive that wraps dropdown menu content and dropdown items. */ class NgbDropdownMenu { constructor(dropdown, _elementRef) { this.dropdown = dropdown; this.placement = 'bottom'; this.isOpen = false; this.nativeElement = _elementRef.nativeElement; } } NgbDropdownMenu.ɵfac = function NgbDropdownMenu_Factory(t) { return new (t || NgbDropdownMenu)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbDropdown)), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"])); }; NgbDropdownMenu.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbDropdownMenu, selectors: [["", "ngbDropdownMenu", ""]], contentQueries: function NgbDropdownMenu_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbDropdownItem, false); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.menuItems = _t); } }, hostVars: 5, hostBindings: function NgbDropdownMenu_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("keydown.ArrowUp", function NgbDropdownMenu_keydown_ArrowUp_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })("keydown.ArrowDown", function NgbDropdownMenu_keydown_ArrowDown_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })("keydown.Home", function NgbDropdownMenu_keydown_Home_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })("keydown.End", function NgbDropdownMenu_keydown_End_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })("keydown.Enter", function NgbDropdownMenu_keydown_Enter_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })("keydown.Space", function NgbDropdownMenu_keydown_Space_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })("keydown.Tab", function NgbDropdownMenu_keydown_Tab_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })("keydown.Shift.Tab", function NgbDropdownMenu_keydown_Shift_Tab_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); }); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("x-placement", ctx.placement); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("dropdown-menu", true)("show", ctx.dropdown.isOpen()); } } }); NgbDropdownMenu.ctorParameters = () => [ { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbDropdown),] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] } ]; NgbDropdownMenu.propDecorators = { menuItems: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbDropdownItem,] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDropdownMenu, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbDropdownMenu]', host: { '[class.dropdown-menu]': 'true', '[class.show]': 'dropdown.isOpen()', '[attr.x-placement]': 'placement', '(keydown.ArrowUp)': 'dropdown.onKeyDown($event)', '(keydown.ArrowDown)': 'dropdown.onKeyDown($event)', '(keydown.Home)': 'dropdown.onKeyDown($event)', '(keydown.End)': 'dropdown.onKeyDown($event)', '(keydown.Enter)': 'dropdown.onKeyDown($event)', '(keydown.Space)': 'dropdown.onKeyDown($event)', '(keydown.Tab)': 'dropdown.onKeyDown($event)', '(keydown.Shift.Tab)': 'dropdown.onKeyDown($event)' } }] }], function () { return [{ type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbDropdown)] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }]; }, { menuItems: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbDropdownItem] }] }); })(); /** * A directive to mark an element to which dropdown menu will be anchored. * * This is a simple version of the `NgbDropdownToggle` directive. * It plays the same role, but doesn't listen to click events to toggle dropdown menu thus enabling support * for events other than click. * * @since 1.1.0 */ class NgbDropdownAnchor { constructor(dropdown, _elementRef) { this.dropdown = dropdown; this.nativeElement = _elementRef.nativeElement; } } NgbDropdownAnchor.ɵfac = function NgbDropdownAnchor_Factory(t) { return new (t || NgbDropdownAnchor)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbDropdown)), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"])); }; NgbDropdownAnchor.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbDropdownAnchor, selectors: [["", "ngbDropdownAnchor", ""]], hostAttrs: [1, "dropdown-toggle"], hostVars: 1, hostBindings: function NgbDropdownAnchor_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-expanded", ctx.dropdown.isOpen()); } } }); NgbDropdownAnchor.ctorParameters = () => [ { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbDropdown),] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDropdownAnchor, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbDropdownAnchor]', host: { 'class': 'dropdown-toggle', '[attr.aria-expanded]': 'dropdown.isOpen()' } }] }], function () { return [{ type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbDropdown)] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }]; }, null); })(); /** * A directive to mark an element that will toggle dropdown via the `click` event. * * You can also use `NgbDropdownAnchor` as an alternative. */ class NgbDropdownToggle extends NgbDropdownAnchor { constructor(dropdown, elementRef) { super(dropdown, elementRef); } } NgbDropdownToggle.ɵfac = function NgbDropdownToggle_Factory(t) { return new (t || NgbDropdownToggle)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbDropdown)), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"])); }; NgbDropdownToggle.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbDropdownToggle, selectors: [["", "ngbDropdownToggle", ""]], hostAttrs: [1, "dropdown-toggle"], hostVars: 1, hostBindings: function NgbDropdownToggle_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbDropdownToggle_click_HostBindingHandler() { return ctx.dropdown.toggle(); })("keydown.ArrowUp", function NgbDropdownToggle_keydown_ArrowUp_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })("keydown.ArrowDown", function NgbDropdownToggle_keydown_ArrowDown_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })("keydown.Home", function NgbDropdownToggle_keydown_Home_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })("keydown.End", function NgbDropdownToggle_keydown_End_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })("keydown.Tab", function NgbDropdownToggle_keydown_Tab_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })("keydown.Shift.Tab", function NgbDropdownToggle_keydown_Shift_Tab_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); }); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-expanded", ctx.dropdown.isOpen()); } }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([{ provide: NgbDropdownAnchor, useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbDropdownToggle) }]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵInheritDefinitionFeature"]] }); NgbDropdownToggle.ctorParameters = () => [ { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbDropdown),] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDropdownToggle, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbDropdownToggle]', host: { 'class': 'dropdown-toggle', '[attr.aria-expanded]': 'dropdown.isOpen()', '(click)': 'dropdown.toggle()', '(keydown.ArrowUp)': 'dropdown.onKeyDown($event)', '(keydown.ArrowDown)': 'dropdown.onKeyDown($event)', '(keydown.Home)': 'dropdown.onKeyDown($event)', '(keydown.End)': 'dropdown.onKeyDown($event)', '(keydown.Tab)': 'dropdown.onKeyDown($event)', '(keydown.Shift.Tab)': 'dropdown.onKeyDown($event)' }, providers: [{ provide: NgbDropdownAnchor, useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbDropdownToggle) }] }] }], function () { return [{ type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbDropdown)] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }]; }, null); })(); /** * A directive that provides contextual overlays for displaying lists of links and more. */ class NgbDropdown { constructor(_changeDetector, config, _document, _ngZone, _elementRef, _renderer, ngbNavbar) { this._changeDetector = _changeDetector; this._document = _document; this._ngZone = _ngZone; this._elementRef = _elementRef; this._renderer = _renderer; this._closed$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); this._bodyContainer = null; /** * Defines whether or not the dropdown menu is opened initially. */ this._open = false; /** * An event fired when the dropdown is opened or closed. * * The event payload is a `boolean`: * * `true` - the dropdown was opened * * `false` - the dropdown was closed */ this.openChange = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this.placement = config.placement; this.container = config.container; this.autoClose = config.autoClose; this.display = ngbNavbar ? 'static' : 'dynamic'; this._zoneSubscription = _ngZone.onStable.subscribe(() => { this._positionMenu(); }); } ngAfterContentInit() { this._ngZone.onStable.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["take"])(1)).subscribe(() => { this._applyPlacementClasses(); if (this._open) { this._setCloseHandlers(); } }); } ngOnChanges(changes) { if (changes.container && this._open) { this._applyContainer(this.container); } if (changes.placement && !changes.placement.isFirstChange) { this._applyPlacementClasses(); } } /** * Checks if the dropdown menu is open. */ isOpen() { return this._open; } /** * Opens the dropdown menu. */ open() { if (!this._open) { this._open = true; this._applyContainer(this.container); this.openChange.emit(true); this._setCloseHandlers(); if (this._anchor) { this._anchor.nativeElement.focus(); } } } _setCloseHandlers() { ngbAutoClose(this._ngZone, this._document, this.autoClose, (source) => { this.close(); if (source === 0 /* ESCAPE */) { this._anchor.nativeElement.focus(); } }, this._closed$, this._menu ? [this._menu.nativeElement] : [], this._anchor ? [this._anchor.nativeElement] : [], '.dropdown-item,.dropdown-divider'); } /** * Closes the dropdown menu. */ close() { if (this._open) { this._open = false; this._resetContainer(); this._closed$.next(); this.openChange.emit(false); this._changeDetector.markForCheck(); } } /** * Toggles the dropdown menu. */ toggle() { if (this.isOpen()) { this.close(); } else { this.open(); } } ngOnDestroy() { this._resetContainer(); this._closed$.next(); this._zoneSubscription.unsubscribe(); } onKeyDown(event) { // tslint:disable-next-line:deprecation const key = event.which; const itemElements = this._getMenuElements(); let position = -1; let itemElement = null; const isEventFromToggle = this._isEventFromToggle(event); if (!isEventFromToggle && itemElements.length) { itemElements.forEach((item, index) => { if (item.contains(event.target)) { itemElement = item; } if (item === this._document.activeElement) { position = index; } }); } // closing on Enter / Space if (key === Key.Space || key === Key.Enter) { if (itemElement && (this.autoClose === true || this.autoClose === 'inside')) { // Item is either a button or a link, so click will be triggered by the browser on Enter or Space. // So we have to register a one-time click handler that will fire after any user defined click handlers // to close the dropdown Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(itemElement, 'click').pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["take"])(1)).subscribe(() => this.close()); } return; } if (key === Key.Tab) { if (event.target && this.isOpen() && this.autoClose) { if (this._anchor.nativeElement === event.target) { if (this.container === 'body' && !event.shiftKey) { /* This case is special: user is using [Tab] from the anchor/toggle. User expects the next focusable element in the dropdown menu to get focus. But the menu is not a sibling to anchor/toggle, it is at the end of the body. Trick is to synchronously focus the menu element, and let the [keydown.Tab] go so that browser will focus the proper element (first one focusable in the menu) */ this._renderer.setAttribute(this._menu.nativeElement, 'tabindex', '0'); this._menu.nativeElement.focus(); this._renderer.removeAttribute(this._menu.nativeElement, 'tabindex'); } else if (event.shiftKey) { this.close(); } return; } else if (this.container === 'body') { const focusableElements = this._menu.nativeElement.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR); if (event.shiftKey && event.target === focusableElements[0]) { this._anchor.nativeElement.focus(); event.preventDefault(); } else if (!event.shiftKey && event.target === focusableElements[focusableElements.length - 1]) { this._anchor.nativeElement.focus(); this.close(); } } else { Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(event.target, 'focusout').pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["take"])(1)).subscribe(({ relatedTarget }) => { if (!this._elementRef.nativeElement.contains(relatedTarget)) { this.close(); } }); } } return; } // opening / navigating if (isEventFromToggle || itemElement) { this.open(); if (itemElements.length) { switch (key) { case Key.ArrowDown: position = Math.min(position + 1, itemElements.length - 1); break; case Key.ArrowUp: if (this._isDropup() && position === -1) { position = itemElements.length - 1; break; } position = Math.max(position - 1, 0); break; case Key.Home: position = 0; break; case Key.End: position = itemElements.length - 1; break; } itemElements[position].focus(); } event.preventDefault(); } } _isDropup() { return this._elementRef.nativeElement.classList.contains('dropup'); } _isEventFromToggle(event) { return this._anchor.nativeElement.contains(event.target); } _getMenuElements() { const menu = this._menu; if (menu == null) { return []; } return menu.menuItems.filter(item => !item.disabled).map(item => item.elementRef.nativeElement); } _positionMenu() { const menu = this._menu; if (this.isOpen() && menu) { this._applyPlacementClasses(this.display === 'dynamic' ? positionElements(this._anchor.nativeElement, this._bodyContainer || this._menu.nativeElement, this.placement, this.container === 'body') : this._getFirstPlacement(this.placement)); } } _getFirstPlacement(placement) { return Array.isArray(placement) ? placement[0] : placement.split(' ')[0]; } _resetContainer() { const renderer = this._renderer; if (this._menu) { const dropdownElement = this._elementRef.nativeElement; const dropdownMenuElement = this._menu.nativeElement; renderer.appendChild(dropdownElement, dropdownMenuElement); renderer.removeStyle(dropdownMenuElement, 'position'); renderer.removeStyle(dropdownMenuElement, 'transform'); } if (this._bodyContainer) { renderer.removeChild(this._document.body, this._bodyContainer); this._bodyContainer = null; } } _applyContainer(container = null) { this._resetContainer(); if (container === 'body') { const renderer = this._renderer; const dropdownMenuElement = this._menu.nativeElement; const bodyContainer = this._bodyContainer = this._bodyContainer || renderer.createElement('div'); // Override some styles to have the positionning working renderer.setStyle(bodyContainer, 'position', 'absolute'); renderer.setStyle(dropdownMenuElement, 'position', 'static'); renderer.setStyle(bodyContainer, 'z-index', '1050'); renderer.appendChild(bodyContainer, dropdownMenuElement); renderer.appendChild(this._document.body, bodyContainer); } } _applyPlacementClasses(placement) { const menu = this._menu; if (menu) { if (!placement) { placement = this._getFirstPlacement(this.placement); } const renderer = this._renderer; const dropdownElement = this._elementRef.nativeElement; // remove the current placement classes renderer.removeClass(dropdownElement, 'dropup'); renderer.removeClass(dropdownElement, 'dropdown'); menu.placement = this.display === 'static' ? null : placement; /* * apply the new placement * in case of top use up-arrow or down-arrow otherwise */ const dropdownClass = placement.search('^top') !== -1 ? 'dropup' : 'dropdown'; renderer.addClass(dropdownElement, dropdownClass); const bodyContainer = this._bodyContainer; if (bodyContainer) { renderer.removeClass(bodyContainer, 'dropup'); renderer.removeClass(bodyContainer, 'dropdown'); renderer.addClass(bodyContainer, dropdownClass); } } } } NgbDropdown.ɵfac = function NgbDropdown_Factory(t) { return new (t || NgbDropdown)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbDropdownConfig), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbNavbar, 8)); }; NgbDropdown.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbDropdown, selectors: [["", "ngbDropdown", ""]], contentQueries: function NgbDropdown_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbDropdownMenu, true); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbDropdownAnchor, true); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx._menu = _t.first); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx._anchor = _t.first); } }, hostVars: 2, hostBindings: function NgbDropdown_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("show", ctx.isOpen()); } }, inputs: { _open: ["open", "_open"], placement: "placement", container: "container", autoClose: "autoClose", display: "display" }, outputs: { openChange: "openChange" }, exportAs: ["ngbDropdown"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]] }); NgbDropdown.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: NgbDropdownConfig }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"],] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: NgbNavbar, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }] } ]; NgbDropdown.propDecorators = { _menu: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbDropdownMenu, { static: false },] }], _anchor: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbDropdownAnchor, { static: false },] }], autoClose: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], _open: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['open',] }], placement: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], container: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], display: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], openChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDropdown, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbDropdown]', exportAs: 'ngbDropdown', host: { '[class.show]': 'isOpen()' } }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: NgbDropdownConfig }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: NgbNavbar, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Optional"] }] }]; }, { _open: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['open'] }], openChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], placement: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], container: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], autoClose: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], display: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], _menu: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbDropdownMenu, { static: false }] }], _anchor: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbDropdownAnchor, { static: false }] }] }); })(); const NGB_DROPDOWN_DIRECTIVES = [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar]; class NgbDropdownModule { } NgbDropdownModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbDropdownModule }); NgbDropdownModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbDropdownModule_Factory(t) { return new (t || NgbDropdownModule)(); } }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbDropdownModule, { declarations: [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar], exports: [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar] }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbDropdownModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: NGB_DROPDOWN_DIRECTIVES, exports: NGB_DROPDOWN_DIRECTIVES }] }], null, null); })(); /** * A configuration service for the [`NgbModal`](#/components/modal/api#NgbModal) service. * * You can inject this service, typically in your root component, and customize the values of its properties in * order to provide default values for all modals used in the application. * * @since 3.1.0 */ class NgbModalConfig { constructor(ngbConfig) { this.backdrop = true; this.keyboard = true; this.animation = ngbConfig.animation; } } NgbModalConfig.ɵfac = function NgbModalConfig_Factory(t) { return new (t || NgbModalConfig)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](NgbConfig)); }; NgbModalConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbModalConfig_Factory() { return new NgbModalConfig(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(NgbConfig)); }, token: NgbModalConfig, providedIn: "root" }); NgbModalConfig.ctorParameters = () => [ { type: NgbConfig } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbModalConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return [{ type: NgbConfig }]; }, null); })(); class ContentRef { constructor(nodes, viewRef, componentRef) { this.nodes = nodes; this.viewRef = viewRef; this.componentRef = componentRef; } } class PopupService { constructor(_type, _injector, _viewContainerRef, _renderer, _ngZone, _componentFactoryResolver, _applicationRef) { this._type = _type; this._injector = _injector; this._viewContainerRef = _viewContainerRef; this._renderer = _renderer; this._ngZone = _ngZone; this._componentFactoryResolver = _componentFactoryResolver; this._applicationRef = _applicationRef; this._windowRef = null; this._contentRef = null; } open(content, context, animation = false) { if (!this._windowRef) { this._contentRef = this._getContentRef(content, context); this._windowRef = this._viewContainerRef.createComponent(this._componentFactoryResolver.resolveComponentFactory(this._type), this._viewContainerRef.length, this._injector, this._contentRef.nodes); } const { nativeElement } = this._windowRef.location; const onStable$ = this._ngZone.onStable.asObservable().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["take"])(1)); const transition$ = onStable$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["mergeMap"])(() => ngbRunTransition(nativeElement, ({ classList }) => classList.add('show'), { animation, runningTransition: 'continue' }))); return { windowRef: this._windowRef, transition$ }; } close(animation = false) { if (!this._windowRef) { return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["of"])(undefined); } return ngbRunTransition(this._windowRef.location.nativeElement, ({ classList }) => classList.remove('show'), { animation, runningTransition: 'stop' }) .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["tap"])(() => { var _a; if (this._windowRef) { // this is required because of the container='body' option this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView)); this._windowRef = null; } if ((_a = this._contentRef) === null || _a === void 0 ? void 0 : _a.viewRef) { this._applicationRef.detachView(this._contentRef.viewRef); this._contentRef.viewRef.destroy(); this._contentRef = null; } })); } _getContentRef(content, context) { if (!content) { return new ContentRef([]); } else if (content instanceof _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"]) { const viewRef = content.createEmbeddedView(context); this._applicationRef.attachView(viewRef); return new ContentRef([viewRef.rootNodes], viewRef); } else { return new ContentRef([[this._renderer.createText(`${content}`)]]); } } } const noop = () => { }; const ɵ0$3 = noop; /** * Utility to handle the scrollbar. * * It allows to compensate the lack of a vertical scrollbar by adding an * equivalent padding on the right of the body, and to remove this compensation. */ class ScrollBar { constructor(_document) { this._document = _document; } /** * To be called right before a potential vertical scrollbar would be removed: * * - if there was a scrollbar, adds some compensation padding to the body * to keep the same layout as when the scrollbar is there * - if there was none, there is nothing to do * * @return a callback used to revert the compensation (noop if there was none, * otherwise a function removing the padding) */ compensate() { const width = this._getWidth(); return !this._isPresent(width) ? noop : this._adjustBody(width); } /** * Adds a padding of the given width on the right of the body. * * @return a callback used to revert the padding to its previous value */ _adjustBody(scrollbarWidth) { const body = this._document.body; const userSetPaddingStyle = body.style.paddingRight; const actualPadding = parseFloat(window.getComputedStyle(body)['padding-right']); body.style['padding-right'] = `${actualPadding + scrollbarWidth}px`; return () => body.style['padding-right'] = userSetPaddingStyle; } /** * Tells whether a scrollbar is currently present on the body. * * @return true if scrollbar is present, false otherwise */ _isPresent(scrollbarWidth) { const rect = this._document.body.getBoundingClientRect(); const bodyToViewportGap = window.innerWidth - (rect.left + rect.right); const uncertainty = 0.1 * scrollbarWidth; return bodyToViewportGap >= scrollbarWidth - uncertainty; } /** * Calculates and returns the width of a scrollbar. * * @return the width of a scrollbar on this page */ _getWidth() { const measurer = this._document.createElement('div'); measurer.className = 'modal-scrollbar-measure'; const body = this._document.body; body.appendChild(measurer); const width = measurer.getBoundingClientRect().width - measurer.clientWidth; body.removeChild(measurer); return width; } } ScrollBar.ɵfac = function ScrollBar_Factory(t) { return new (t || ScrollBar)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"])); }; ScrollBar.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function ScrollBar_Factory() { return new ScrollBar(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"])); }, token: ScrollBar, providedIn: "root" }); ScrollBar.ctorParameters = () => [ { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"],] }] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](ScrollBar, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return [{ type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]] }] }]; }, null); })(); class NgbModalBackdrop { constructor(_el, _zone) { this._el = _el; this._zone = _zone; } ngOnInit() { this._zone.onStable.asObservable().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["take"])(1)).subscribe(() => { ngbRunTransition(this._el.nativeElement, ({ classList }) => classList.add('show'), { animation: this.animation, runningTransition: 'continue' }); }); } hide() { return ngbRunTransition(this._el.nativeElement, ({ classList }) => classList.remove('show'), { animation: this.animation, runningTransition: 'stop' }); } } NgbModalBackdrop.ɵfac = function NgbModalBackdrop_Factory(t) { return new (t || NgbModalBackdrop)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"])); }; NgbModalBackdrop.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbModalBackdrop, selectors: [["ngb-modal-backdrop"]], hostAttrs: [2, "z-index", "1050"], hostVars: 6, hostBindings: function NgbModalBackdrop_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassMap"]("modal-backdrop" + (ctx.backdropClass ? " " + ctx.backdropClass : "")); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("show", !ctx.animation)("fade", ctx.animation); } }, inputs: { animation: "animation", backdropClass: "backdropClass" }, decls: 0, vars: 0, template: function NgbModalBackdrop_Template(rf, ctx) { }, encapsulation: 2 }); NgbModalBackdrop.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] } ]; NgbModalBackdrop.propDecorators = { animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], backdropClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbModalBackdrop, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-modal-backdrop', encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, template: '', host: { '[class]': '"modal-backdrop" + (backdropClass ? " " + backdropClass : "")', '[class.show]': '!animation', '[class.fade]': 'animation', 'style': 'z-index: 1050' } }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }]; }, { animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], backdropClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); /** * A reference to the currently opened (active) modal. * * Instances of this class can be injected into your component passed as modal content. * So you can `.close()` or `.dismiss()` the modal window from your component. */ class NgbActiveModal { /** * Closes the modal with an optional `result` value. * * The `NgbModalRef.result` promise will be resolved with the provided value. */ close(result) { } /** * Dismisses the modal with an optional `reason` value. * * The `NgbModalRef.result` promise will be rejected with the provided value. */ dismiss(reason) { } } /** * A reference to the newly opened modal returned by the `NgbModal.open()` method. */ class NgbModalRef { constructor(_windowCmptRef, _contentRef, _backdropCmptRef, _beforeDismiss) { this._windowCmptRef = _windowCmptRef; this._contentRef = _contentRef; this._backdropCmptRef = _backdropCmptRef; this._beforeDismiss = _beforeDismiss; this._closed = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); this._dismissed = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); this._hidden = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); _windowCmptRef.instance.dismissEvent.subscribe((reason) => { this.dismiss(reason); }); this.result = new Promise((resolve, reject) => { this._resolve = resolve; this._reject = reject; }); this.result.then(null, () => { }); } /** * The instance of a component used for the modal content. * * When a `TemplateRef` is used as the content or when the modal is closed, will return `undefined`. */ get componentInstance() { if (this._contentRef && this._contentRef.componentRef) { return this._contentRef.componentRef.instance; } } /** * The observable that emits when the modal is closed via the `.close()` method. * * It will emit the result passed to the `.close()` method. * * @since 8.0.0 */ get closed() { return this._closed.asObservable().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(this._hidden)); } /** * The observable that emits when the modal is dismissed via the `.dismiss()` method. * * It will emit the reason passed to the `.dismissed()` method by the user, or one of the internal * reasons like backdrop click or ESC key press. * * @since 8.0.0 */ get dismissed() { return this._dismissed.asObservable().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(this._hidden)); } /** * The observable that emits when both modal window and backdrop are closed and animations were finished. * At this point modal and backdrop elements will be removed from the DOM tree. * * This observable will be completed after emitting. * * @since 8.0.0 */ get hidden() { return this._hidden.asObservable(); } /** * The observable that emits when modal is fully visible and animation was finished. * Modal DOM element is always available synchronously after calling 'modal.open()' service. * * This observable will be completed after emitting. * It will not emit, if modal is closed before open animation is finished. * * @since 8.0.0 */ get shown() { return this._windowCmptRef.instance.shown.asObservable(); } /** * Closes the modal with an optional `result` value. * * The `NgbMobalRef.result` promise will be resolved with the provided value. */ close(result) { if (this._windowCmptRef) { this._closed.next(result); this._resolve(result); this._removeModalElements(); } } _dismiss(reason) { this._dismissed.next(reason); this._reject(reason); this._removeModalElements(); } /** * Dismisses the modal with an optional `reason` value. * * The `NgbModalRef.result` promise will be rejected with the provided value. */ dismiss(reason) { if (this._windowCmptRef) { if (!this._beforeDismiss) { this._dismiss(reason); } else { const dismiss = this._beforeDismiss(); if (dismiss && dismiss.then) { dismiss.then(result => { if (result !== false) { this._dismiss(reason); } }, () => { }); } else if (dismiss !== false) { this._dismiss(reason); } } } } _removeModalElements() { const windowTransition$ = this._windowCmptRef.instance.hide(); const backdropTransition$ = this._backdropCmptRef ? this._backdropCmptRef.instance.hide() : Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["of"])(undefined); // hiding window windowTransition$.subscribe(() => { const { nativeElement } = this._windowCmptRef.location; nativeElement.parentNode.removeChild(nativeElement); this._windowCmptRef.destroy(); if (this._contentRef && this._contentRef.viewRef) { this._contentRef.viewRef.destroy(); } this._windowCmptRef = null; this._contentRef = null; }); // hiding backdrop backdropTransition$.subscribe(() => { if (this._backdropCmptRef) { const { nativeElement } = this._backdropCmptRef.location; nativeElement.parentNode.removeChild(nativeElement); this._backdropCmptRef.destroy(); this._backdropCmptRef = null; } }); // all done Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["zip"])(windowTransition$, backdropTransition$).subscribe(() => { this._hidden.next(); this._hidden.complete(); }); } } var ModalDismissReasons; (function (ModalDismissReasons) { ModalDismissReasons[ModalDismissReasons["BACKDROP_CLICK"] = 0] = "BACKDROP_CLICK"; ModalDismissReasons[ModalDismissReasons["ESC"] = 1] = "ESC"; })(ModalDismissReasons || (ModalDismissReasons = {})); class NgbModalWindow { constructor(_document, _elRef, _zone) { this._document = _document; this._elRef = _elRef; this._zone = _zone; this._closed$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); this._elWithFocus = null; // element that is focused prior to modal opening this.backdrop = true; this.keyboard = true; this.dismissEvent = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this.shown = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); this.hidden = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); } dismiss(reason) { this.dismissEvent.emit(reason); } ngOnInit() { this._elWithFocus = this._document.activeElement; } ngAfterViewInit() { this._show(); } ngOnDestroy() { this._disableEventHandling(); } hide() { const { nativeElement } = this._elRef; const context = { animation: this.animation, runningTransition: 'stop' }; const windowTransition$ = ngbRunTransition(nativeElement, () => nativeElement.classList.remove('show'), context); const dialogTransition$ = ngbRunTransition(this._dialogEl.nativeElement, () => { }, context); const transitions$ = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["zip"])(windowTransition$, dialogTransition$); transitions$.subscribe(() => { this.hidden.next(); this.hidden.complete(); }); this._disableEventHandling(); this._restoreFocus(); return transitions$; } _show() { const { nativeElement } = this._elRef; const context = { animation: this.animation, runningTransition: 'continue' }; const windowTransition$ = ngbRunTransition(nativeElement, () => nativeElement.classList.add('show'), context); const dialogTransition$ = ngbRunTransition(this._dialogEl.nativeElement, () => { }, context); Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["zip"])(windowTransition$, dialogTransition$).subscribe(() => { this.shown.next(); this.shown.complete(); }); this._enableEventHandling(); this._setFocus(); } _enableEventHandling() { const { nativeElement } = this._elRef; this._zone.runOutsideAngular(() => { Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(nativeElement, 'keydown') .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(this._closed$), // tslint:disable-next-line:deprecation Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["filter"])(e => e.which === Key.Escape)) .subscribe(event => { if (this.keyboard) { requestAnimationFrame(() => { if (!event.defaultPrevented) { this._zone.run(() => this.dismiss(ModalDismissReasons.ESC)); } }); } else if (this.backdrop === 'static') { this._bumpBackdrop(); } }); // We're listening to 'mousedown' and 'mouseup' to prevent modal from closing when pressing the mouse // inside the modal dialog and releasing it outside let preventClose = false; Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(this._dialogEl.nativeElement, 'mousedown') .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(this._closed$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["tap"])(() => preventClose = false), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["switchMap"])(() => Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(nativeElement, 'mouseup').pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(this._closed$), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["take"])(1))), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["filter"])(({ target }) => nativeElement === target)) .subscribe(() => { preventClose = true; }); // We're listening to 'click' to dismiss modal on modal window click, except when: // 1. clicking on modal dialog itself // 2. closing was prevented by mousedown/up handlers // 3. clicking on scrollbar when the viewport is too small and modal doesn't fit (click is not triggered at all) Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(nativeElement, 'click').pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["takeUntil"])(this._closed$)).subscribe(({ target }) => { if (nativeElement === target) { if (this.backdrop === 'static') { this._bumpBackdrop(); } else if (this.backdrop === true && !preventClose) { this._zone.run(() => this.dismiss(ModalDismissReasons.BACKDROP_CLICK)); } } preventClose = false; }); }); } _disableEventHandling() { this._closed$.next(); } _setFocus() { const { nativeElement } = this._elRef; if (!nativeElement.contains(document.activeElement)) { const autoFocusable = nativeElement.querySelector(`[ngbAutofocus]`); const firstFocusable = getFocusableBoundaryElements(nativeElement)[0]; const elementToFocus = autoFocusable || firstFocusable || nativeElement; elementToFocus.focus(); } } _restoreFocus() { const body = this._document.body; const elWithFocus = this._elWithFocus; let elementToFocus; if (elWithFocus && elWithFocus['focus'] && body.contains(elWithFocus)) { elementToFocus = elWithFocus; } else { elementToFocus = body; } this._zone.runOutsideAngular(() => { setTimeout(() => elementToFocus.focus()); this._elWithFocus = null; }); } _bumpBackdrop() { if (this.backdrop === 'static') { ngbRunTransition(this._elRef.nativeElement, ({ classList }) => { classList.add('modal-static'); return () => classList.remove('modal-static'); }, { animation: this.animation, runningTransition: 'continue' }); } } } NgbModalWindow.ɵfac = function NgbModalWindow_Factory(t) { return new (t || NgbModalWindow)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"])); }; NgbModalWindow.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbModalWindow, selectors: [["ngb-modal-window"]], viewQuery: function NgbModalWindow_Query(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstaticViewQuery"](_c33, true); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx._dialogEl = _t.first); } }, hostAttrs: ["role", "dialog", "tabindex", "-1"], hostVars: 7, hostBindings: function NgbModalWindow_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-modal", true)("aria-labelledby", ctx.ariaLabelledBy)("aria-describedby", ctx.ariaDescribedBy); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassMap"]("modal d-block" + (ctx.windowClass ? " " + ctx.windowClass : "")); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("fade", ctx.animation); } }, inputs: { backdrop: "backdrop", keyboard: "keyboard", animation: "animation", ariaLabelledBy: "ariaLabelledBy", ariaDescribedBy: "ariaDescribedBy", centered: "centered", scrollable: "scrollable", size: "size", windowClass: "windowClass" }, outputs: { dismissEvent: "dismiss" }, ngContentSelectors: _c5, decls: 4, vars: 2, consts: [["role", "document"], ["dialog", ""], [1, "modal-content"]], template: function NgbModalWindow_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojectionDef"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0, 1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "div", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojection"](3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassMap"]("modal-dialog" + (ctx.size ? " modal-" + ctx.size : "") + (ctx.centered ? " modal-dialog-centered" : "") + (ctx.scrollable ? " modal-dialog-scrollable" : "")); } }, styles: ["ngb-modal-window .component-host-scrollable{-ms-flex-direction:column;display:-ms-flexbox;display:flex;flex-direction:column;overflow:hidden}"], encapsulation: 2 }); NgbModalWindow.ctorParameters = () => [ { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"],] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] } ]; NgbModalWindow.propDecorators = { _dialogEl: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], args: ['dialog', { static: true },] }], animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], ariaLabelledBy: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], ariaDescribedBy: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], backdrop: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], centered: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], keyboard: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], scrollable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], windowClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], dismissEvent: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"], args: ['dismiss',] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbModalWindow, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-modal-window', host: { '[class]': '"modal d-block" + (windowClass ? " " + windowClass : "")', '[class.fade]': 'animation', 'role': 'dialog', 'tabindex': '-1', '[attr.aria-modal]': 'true', '[attr.aria-labelledby]': 'ariaLabelledBy', '[attr.aria-describedby]': 'ariaDescribedBy' }, template: `
`, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, styles: ["ngb-modal-window .component-host-scrollable{-ms-flex-direction:column;display:-ms-flexbox;display:flex;flex-direction:column;overflow:hidden}"] }] }], function () { return [{ type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }]; }, { backdrop: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], keyboard: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], dismissEvent: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"], args: ['dismiss'] }], _dialogEl: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChild"], args: ['dialog', { static: true }] }], animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], ariaLabelledBy: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], ariaDescribedBy: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], centered: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], scrollable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], windowClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); class NgbModalStack { constructor(_applicationRef, _injector, _document, _scrollBar, _rendererFactory, _ngZone) { this._applicationRef = _applicationRef; this._injector = _injector; this._document = _document; this._scrollBar = _scrollBar; this._rendererFactory = _rendererFactory; this._ngZone = _ngZone; this._activeWindowCmptHasChanged = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); this._ariaHiddenValues = new Map(); this._backdropAttributes = ['animation', 'backdropClass']; this._modalRefs = []; this._windowAttributes = [ 'animation', 'ariaLabelledBy', 'ariaDescribedBy', 'backdrop', 'centered', 'keyboard', 'scrollable', 'size', 'windowClass' ]; this._windowCmpts = []; this._activeInstances = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); // Trap focus on active WindowCmpt this._activeWindowCmptHasChanged.subscribe(() => { if (this._windowCmpts.length) { const activeWindowCmpt = this._windowCmpts[this._windowCmpts.length - 1]; ngbFocusTrap(this._ngZone, activeWindowCmpt.location.nativeElement, this._activeWindowCmptHasChanged); this._revertAriaHidden(); this._setAriaHidden(activeWindowCmpt.location.nativeElement); } }); } open(moduleCFR, contentInjector, content, options) { const containerEl = options.container instanceof HTMLElement ? options.container : isDefined(options.container) ? this._document.querySelector(options.container) : this._document.body; const renderer = this._rendererFactory.createRenderer(null, null); const revertPaddingForScrollBar = this._scrollBar.compensate(); const removeBodyClass = () => { if (!this._modalRefs.length) { renderer.removeClass(this._document.body, 'modal-open'); this._revertAriaHidden(); } }; if (!containerEl) { throw new Error(`The specified modal container "${options.container || 'body'}" was not found in the DOM.`); } const activeModal = new NgbActiveModal(); const contentRef = this._getContentRef(moduleCFR, options.injector || contentInjector, content, activeModal, options); let backdropCmptRef = options.backdrop !== false ? this._attachBackdrop(moduleCFR, containerEl) : undefined; let windowCmptRef = this._attachWindowComponent(moduleCFR, containerEl, contentRef); let ngbModalRef = new NgbModalRef(windowCmptRef, contentRef, backdropCmptRef, options.beforeDismiss); this._registerModalRef(ngbModalRef); this._registerWindowCmpt(windowCmptRef); ngbModalRef.result.then(revertPaddingForScrollBar, revertPaddingForScrollBar); ngbModalRef.result.then(removeBodyClass, removeBodyClass); activeModal.close = (result) => { ngbModalRef.close(result); }; activeModal.dismiss = (reason) => { ngbModalRef.dismiss(reason); }; this._applyWindowOptions(windowCmptRef.instance, options); if (this._modalRefs.length === 1) { renderer.addClass(this._document.body, 'modal-open'); } if (backdropCmptRef && backdropCmptRef.instance) { this._applyBackdropOptions(backdropCmptRef.instance, options); } return ngbModalRef; } get activeInstances() { return this._activeInstances; } dismissAll(reason) { this._modalRefs.forEach(ngbModalRef => ngbModalRef.dismiss(reason)); } hasOpenModals() { return this._modalRefs.length > 0; } _attachBackdrop(moduleCFR, containerEl) { let backdropFactory = moduleCFR.resolveComponentFactory(NgbModalBackdrop); let backdropCmptRef = backdropFactory.create(this._injector); this._applicationRef.attachView(backdropCmptRef.hostView); containerEl.appendChild(backdropCmptRef.location.nativeElement); return backdropCmptRef; } _attachWindowComponent(moduleCFR, containerEl, contentRef) { let windowFactory = moduleCFR.resolveComponentFactory(NgbModalWindow); let windowCmptRef = windowFactory.create(this._injector, contentRef.nodes); this._applicationRef.attachView(windowCmptRef.hostView); containerEl.appendChild(windowCmptRef.location.nativeElement); return windowCmptRef; } _applyWindowOptions(windowInstance, options) { this._windowAttributes.forEach((optionName) => { if (isDefined(options[optionName])) { windowInstance[optionName] = options[optionName]; } }); } _applyBackdropOptions(backdropInstance, options) { this._backdropAttributes.forEach((optionName) => { if (isDefined(options[optionName])) { backdropInstance[optionName] = options[optionName]; } }); } _getContentRef(moduleCFR, contentInjector, content, activeModal, options) { if (!content) { return new ContentRef([]); } else if (content instanceof _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"]) { return this._createFromTemplateRef(content, activeModal); } else if (isString(content)) { return this._createFromString(content); } else { return this._createFromComponent(moduleCFR, contentInjector, content, activeModal, options); } } _createFromTemplateRef(content, activeModal) { const context = { $implicit: activeModal, close(result) { activeModal.close(result); }, dismiss(reason) { activeModal.dismiss(reason); } }; const viewRef = content.createEmbeddedView(context); this._applicationRef.attachView(viewRef); return new ContentRef([viewRef.rootNodes], viewRef); } _createFromString(content) { const component = this._document.createTextNode(`${content}`); return new ContentRef([[component]]); } _createFromComponent(moduleCFR, contentInjector, content, context, options) { const contentCmptFactory = moduleCFR.resolveComponentFactory(content); const modalContentInjector = _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"].create({ providers: [{ provide: NgbActiveModal, useValue: context }], parent: contentInjector }); const componentRef = contentCmptFactory.create(modalContentInjector); const componentNativeEl = componentRef.location.nativeElement; if (options.scrollable) { componentNativeEl.classList.add('component-host-scrollable'); } this._applicationRef.attachView(componentRef.hostView); // FIXME: we should here get rid of the component nativeElement // and use `[Array.from(componentNativeEl.childNodes)]` instead and remove the above CSS class. return new ContentRef([[componentNativeEl]], componentRef.hostView, componentRef); } _setAriaHidden(element) { const parent = element.parentElement; if (parent && element !== this._document.body) { Array.from(parent.children).forEach(sibling => { if (sibling !== element && sibling.nodeName !== 'SCRIPT') { this._ariaHiddenValues.set(sibling, sibling.getAttribute('aria-hidden')); sibling.setAttribute('aria-hidden', 'true'); } }); this._setAriaHidden(parent); } } _revertAriaHidden() { this._ariaHiddenValues.forEach((value, element) => { if (value) { element.setAttribute('aria-hidden', value); } else { element.removeAttribute('aria-hidden'); } }); this._ariaHiddenValues.clear(); } _registerModalRef(ngbModalRef) { const unregisterModalRef = () => { const index = this._modalRefs.indexOf(ngbModalRef); if (index > -1) { this._modalRefs.splice(index, 1); this._activeInstances.emit(this._modalRefs); } }; this._modalRefs.push(ngbModalRef); this._activeInstances.emit(this._modalRefs); ngbModalRef.result.then(unregisterModalRef, unregisterModalRef); } _registerWindowCmpt(ngbWindowCmpt) { this._windowCmpts.push(ngbWindowCmpt); this._activeWindowCmptHasChanged.next(); ngbWindowCmpt.onDestroy(() => { const index = this._windowCmpts.indexOf(ngbWindowCmpt); if (index > -1) { this._windowCmpts.splice(index, 1); this._activeWindowCmptHasChanged.next(); } }); } } NgbModalStack.ɵfac = function NgbModalStack_Factory(t) { return new (t || NgbModalStack)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](ScrollBar), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["RendererFactory2"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"])); }; NgbModalStack.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbModalStack_Factory() { return new NgbModalStack(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"]), Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_core__WEBPACK_IMPORTED_MODULE_0__["INJECTOR"]), Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]), Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(ScrollBar), Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_core__WEBPACK_IMPORTED_MODULE_0__["RendererFactory2"]), Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"])); }, token: NgbModalStack, providedIn: "root" }); NgbModalStack.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"],] }] }, { type: ScrollBar }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["RendererFactory2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbModalStack, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]] }] }, { type: ScrollBar }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["RendererFactory2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }]; }, null); })(); /** * A service for opening modal windows. * * Creating a modal is straightforward: create a component or a template and pass it as an argument to * the `.open()` method. */ class NgbModal { constructor(_moduleCFR, _injector, _modalStack, _config) { this._moduleCFR = _moduleCFR; this._injector = _injector; this._modalStack = _modalStack; this._config = _config; } /** * Opens a new modal window with the specified content and supplied options. * * Content can be provided as a `TemplateRef` or a component type. If you pass a component type as content, * then instances of those components can be injected with an instance of the `NgbActiveModal` class. You can then * use `NgbActiveModal` methods to close / dismiss modals from "inside" of your component. * * Also see the [`NgbModalOptions`](#/components/modal/api#NgbModalOptions) for the list of supported options. */ open(content, options = {}) { const combinedOptions = Object.assign({}, this._config, options); return this._modalStack.open(this._moduleCFR, this._injector, content, combinedOptions); } /** * Returns an observable that holds the active modal instances. */ get activeInstances() { return this._modalStack.activeInstances; } /** * Dismisses all currently displayed modal windows with the supplied reason. * * @since 3.1.0 */ dismissAll(reason) { this._modalStack.dismissAll(reason); } /** * Indicates if there are currently any open modal windows in the application. * * @since 3.3.0 */ hasOpenModals() { return this._modalStack.hasOpenModals(); } } NgbModal.ɵfac = function NgbModal_Factory(t) { return new (t || NgbModal)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](NgbModalStack), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](NgbModalConfig)); }; NgbModal.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbModal_Factory() { return new NgbModal(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"]), Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_core__WEBPACK_IMPORTED_MODULE_0__["INJECTOR"]), Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(NgbModalStack), Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(NgbModalConfig)); }, token: NgbModal, providedIn: "root" }); NgbModal.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"] }, { type: NgbModalStack }, { type: NgbModalConfig } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbModal, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"] }, { type: NgbModalStack }, { type: NgbModalConfig }]; }, null); })(); class NgbModalModule { } NgbModalModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbModalModule }); NgbModalModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbModalModule_Factory(t) { return new (t || NgbModalModule)(); }, providers: [NgbModal] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbModalModule, { declarations: [NgbModalBackdrop, NgbModalWindow] }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbModalModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: [NgbModalBackdrop, NgbModalWindow], entryComponents: [NgbModalBackdrop, NgbModalWindow], providers: [NgbModal] }] }], null, null); })(); /** * A configuration service for the [`NgbNav`](#/components/nav/api#NgbNav) component. * * You can inject this service, typically in your root component, and customize the values of its properties in * order to provide default values for all the navs used in the application. * * @since 5.2.0 */ class NgbNavConfig { constructor(ngbConfig) { this.destroyOnHide = true; this.orientation = 'horizontal'; this.roles = 'tablist'; this.keyboard = false; this.animation = ngbConfig.animation; } } NgbNavConfig.ɵfac = function NgbNavConfig_Factory(t) { return new (t || NgbNavConfig)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](NgbConfig)); }; NgbNavConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbNavConfig_Factory() { return new NgbNavConfig(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(NgbConfig)); }, token: NgbNavConfig, providedIn: "root" }); NgbNavConfig.ctorParameters = () => [ { type: NgbConfig } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbNavConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return [{ type: NgbConfig }]; }, null); })(); const isValidNavId = (id) => isDefined(id) && id !== ''; const ɵ0$4 = isValidNavId; let navCounter = 0; /** * This directive must be used to wrap content to be displayed in the nav. * * @since 5.2.0 */ class NgbNavContent { constructor(templateRef) { this.templateRef = templateRef; } } NgbNavContent.ɵfac = function NgbNavContent_Factory(t) { return new (t || NgbNavContent)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"])); }; NgbNavContent.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbNavContent, selectors: [["ng-template", "ngbNavContent", ""]] }); NgbNavContent.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbNavContent, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'ng-template[ngbNavContent]' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] }]; }, null); })(); /** * The directive used to group nav link and related nav content. As well as set nav identifier and some options. * * @since 5.2.0 */ class NgbNavItem { constructor(nav, elementRef) { this.elementRef = elementRef; /** * If `true`, the current nav item is disabled and can't be toggled by user. * * Nevertheless disabled nav can be selected programmatically via the `.select()` method and the `[activeId]` binding. */ this.disabled = false; /** * An event emitted when the fade in transition is finished on the related nav content * * @since 8.0.0 */ this.shown = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted when the fade out transition is finished on the related nav content * * @since 8.0.0 */ this.hidden = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); // TODO: cf https://github.com/angular/angular/issues/30106 this._nav = nav; } ngAfterContentChecked() { // We are using @ContentChildren instead of @ContentChild as in the Angular version being used // only @ContentChildren allows us to specify the {descendants: false} option. // Without {descendants: false} we are hitting bugs described in: // https://github.com/ng-bootstrap/ng-bootstrap/issues/2240 this.contentTpl = this.contentTpls.first; } ngOnInit() { if (!isDefined(this.domId)) { this.domId = `ngb-nav-${navCounter++}`; } } get active() { return this._nav.activeId === this.id; } get id() { return isValidNavId(this._id) ? this._id : this.domId; } get panelDomId() { return `${this.domId}-panel`; } isPanelInDom() { return (isDefined(this.destroyOnHide) ? !this.destroyOnHide : !this._nav.destroyOnHide) || this.active; } } NgbNavItem.ɵfac = function NgbNavItem_Factory(t) { return new (t || NgbNavItem)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbNav)), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"])); }; NgbNavItem.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbNavItem, selectors: [["", "ngbNavItem", ""]], contentQueries: function NgbNavItem_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbNavContent, false); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.contentTpls = _t); } }, hostVars: 2, hostBindings: function NgbNavItem_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("nav-item", true); } }, inputs: { disabled: "disabled", domId: "domId", destroyOnHide: "destroyOnHide", _id: ["ngbNavItem", "_id"] }, outputs: { shown: "shown", hidden: "hidden" }, exportAs: ["ngbNavItem"] }); NgbNavItem.ctorParameters = () => [ { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbNav),] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] } ]; NgbNavItem.propDecorators = { destroyOnHide: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], domId: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], _id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['ngbNavItem',] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], contentTpls: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbNavContent, { descendants: false },] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbNavItem, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbNavItem]', exportAs: 'ngbNavItem', host: { '[class.nav-item]': 'true' } }] }], function () { return [{ type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbNav)] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }]; }, { disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], domId: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], destroyOnHide: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], _id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['ngbNavItem'] }], contentTpls: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbNavContent, { descendants: false }] }] }); })(); /** * A nav directive that helps with implementing tabbed navigation components. * * @since 5.2.0 */ class NgbNav { constructor(role, config, _cd, _document) { this.role = role; this._cd = _cd; this._document = _document; /** * The event emitted after the active nav changes * The payload of the event is the newly active nav id * * If you want to prevent nav change, you should use `(navChange)` event */ this.activeIdChange = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted when the fade in transition is finished for one of the items. * * Payload of the event is the nav id that was just shown. * * @since 8.0.0 */ this.shown = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted when the fade out transition is finished for one of the items. * * Payload of the event is the nav id that was just hidden. * * @since 8.0.0 */ this.hidden = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this.navItemChange$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); /** * The nav change event emitted right before the nav change happens on user click. * * This event won't be emitted if nav is changed programmatically via `[activeId]` or `.select()`. * * See [`NgbNavChangeEvent`](#/components/nav/api#NgbNavChangeEvent) for payload details. */ this.navChange = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this.animation = config.animation; this.destroyOnHide = config.destroyOnHide; this.orientation = config.orientation; this.roles = config.roles; this.keyboard = config.keyboard; } click(item) { if (!item.disabled) { this._updateActiveId(item.id); } } onKeyDown(event) { if (this.roles !== 'tablist' || !this.keyboard) { return; } // tslint:disable-next-line: deprecation const key = event.which; const enabledLinks = this.links.filter(link => !link.navItem.disabled); const { length } = enabledLinks; let position = -1; enabledLinks.forEach((link, index) => { if (link.elRef.nativeElement === this._document.activeElement) { position = index; } }); if (length) { switch (key) { case Key.ArrowLeft: if (this.orientation === 'vertical') { return; } position = (position - 1 + length) % length; break; case Key.ArrowRight: if (this.orientation === 'vertical') { return; } position = (position + 1) % length; break; case Key.ArrowDown: if (this.orientation === 'horizontal') { return; } position = (position + 1) % length; break; case Key.ArrowUp: if (this.orientation === 'horizontal') { return; } position = (position - 1 + length) % length; break; case Key.Home: position = 0; break; case Key.End: position = length - 1; break; } if (this.keyboard === 'changeWithArrows') { this.select(enabledLinks[position].navItem.id); } enabledLinks[position].elRef.nativeElement.focus(); event.preventDefault(); } } /** * Selects the nav with the given id and shows its associated pane. * Any other nav that was previously selected becomes unselected and its associated pane is hidden. */ select(id) { this._updateActiveId(id, false); } ngAfterContentInit() { if (!isDefined(this.activeId)) { const nextId = this.items.first ? this.items.first.id : null; if (isValidNavId(nextId)) { this._updateActiveId(nextId, false); this._cd.detectChanges(); } } } ngOnChanges({ activeId }) { if (activeId && !activeId.firstChange) { this._notifyItemChanged(activeId.currentValue); } } _updateActiveId(nextId, emitNavChange = true) { if (this.activeId !== nextId) { let defaultPrevented = false; if (emitNavChange) { this.navChange.emit({ activeId: this.activeId, nextId, preventDefault: () => { defaultPrevented = true; } }); } if (!defaultPrevented) { this.activeId = nextId; this.activeIdChange.emit(nextId); this._notifyItemChanged(nextId); } } } _notifyItemChanged(nextItemId) { this.navItemChange$.next(this._getItemById(nextItemId)); } _getItemById(itemId) { return this.items && this.items.find(item => item.id === itemId) || null; } } NgbNav.ɵfac = function NgbNav_Factory(t) { return new (t || NgbNav)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinjectAttribute"]('role'), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbNavConfig), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"])); }; NgbNav.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbNav, selectors: [["", "ngbNav", ""]], contentQueries: function NgbNav_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbNavItem, false); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbNavLink, true); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.items = _t); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.links = _t); } }, hostVars: 6, hostBindings: function NgbNav_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("keydown.arrowLeft", function NgbNav_keydown_arrowLeft_HostBindingHandler($event) { return ctx.onKeyDown($event); })("keydown.arrowRight", function NgbNav_keydown_arrowRight_HostBindingHandler($event) { return ctx.onKeyDown($event); })("keydown.arrowDown", function NgbNav_keydown_arrowDown_HostBindingHandler($event) { return ctx.onKeyDown($event); })("keydown.arrowUp", function NgbNav_keydown_arrowUp_HostBindingHandler($event) { return ctx.onKeyDown($event); })("keydown.Home", function NgbNav_keydown_Home_HostBindingHandler($event) { return ctx.onKeyDown($event); })("keydown.End", function NgbNav_keydown_End_HostBindingHandler($event) { return ctx.onKeyDown($event); }); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-orientation", ctx.orientation === "vertical" && ctx.roles === "tablist" ? "vertical" : undefined)("role", ctx.role ? ctx.role : ctx.roles ? "tablist" : undefined); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("nav", true)("flex-column", ctx.orientation === "vertical"); } }, inputs: { animation: "animation", destroyOnHide: "destroyOnHide", orientation: "orientation", roles: "roles", keyboard: "keyboard", activeId: "activeId" }, outputs: { activeIdChange: "activeIdChange", shown: "shown", hidden: "hidden", navChange: "navChange" }, exportAs: ["ngbNav"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]] }); NgbNav.ctorParameters = () => [ { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Attribute"], args: ['role',] }] }, { type: NgbNavConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"],] }] } ]; NgbNav.propDecorators = { activeId: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], activeIdChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], destroyOnHide: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], orientation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], roles: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], keyboard: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], items: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbNavItem,] }], links: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbNavLink), { descendants: true },] }], navChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbNav, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbNav]', exportAs: 'ngbNav', host: { '[class.nav]': 'true', '[class.flex-column]': `orientation === 'vertical'`, '[attr.aria-orientation]': `orientation === 'vertical' && roles === 'tablist' ? 'vertical' : undefined`, '[attr.role]': `role ? role : roles ? 'tablist' : undefined`, '(keydown.arrowLeft)': 'onKeyDown($event)', '(keydown.arrowRight)': 'onKeyDown($event)', '(keydown.arrowDown)': 'onKeyDown($event)', '(keydown.arrowUp)': 'onKeyDown($event)', '(keydown.Home)': 'onKeyDown($event)', '(keydown.End)': 'onKeyDown($event)' } }] }], function () { return [{ type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Attribute"], args: ['role'] }] }, { type: NgbNavConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]] }] }]; }, { activeIdChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], navChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], destroyOnHide: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], orientation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], roles: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], keyboard: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], activeId: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], items: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [NgbNavItem] }], links: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChildren"], args: [Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbNavLink), { descendants: true }] }] }); })(); /** * A directive to put on the nav link. * * @since 5.2.0 */ class NgbNavLink { constructor(role, navItem, nav, elRef) { this.role = role; this.navItem = navItem; this.nav = nav; this.elRef = elRef; } hasNavItemClass() { // with alternative markup we have to add `.nav-item` class, because `ngbNavItem` is on the ng-container return this.navItem.elementRef.nativeElement.nodeType === Node.COMMENT_NODE; } } NgbNavLink.ɵfac = function NgbNavLink_Factory(t) { return new (t || NgbNavLink)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinjectAttribute"]('role'), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbNavItem), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbNav), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"])); }; NgbNavLink.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbNavLink, selectors: [["a", "ngbNavLink", ""]], hostAttrs: ["href", ""], hostVars: 14, hostBindings: function NgbNavLink_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("click", function NgbNavLink_click_HostBindingHandler($event) { ctx.nav.click(ctx.navItem); return $event.preventDefault(); }); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵhostProperty"]("id", ctx.navItem.domId); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("role", ctx.role ? ctx.role : ctx.nav.roles ? "tab" : undefined)("tabindex", ctx.navItem.disabled ? -1 : undefined)("aria-controls", ctx.navItem.isPanelInDom() ? ctx.navItem.panelDomId : null)("aria-selected", ctx.navItem.active)("aria-disabled", ctx.navItem.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("nav-link", true)("nav-item", ctx.hasNavItemClass())("active", ctx.navItem.active)("disabled", ctx.navItem.disabled); } } }); NgbNavLink.ctorParameters = () => [ { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Attribute"], args: ['role',] }] }, { type: NgbNavItem }, { type: NgbNav }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbNavLink, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'a[ngbNavLink]', host: { '[id]': 'navItem.domId', '[class.nav-link]': 'true', '[class.nav-item]': 'hasNavItemClass()', '[attr.role]': `role ? role : nav.roles ? 'tab' : undefined`, 'href': '', '[class.active]': 'navItem.active', '[class.disabled]': 'navItem.disabled', '[attr.tabindex]': 'navItem.disabled ? -1 : undefined', '[attr.aria-controls]': 'navItem.isPanelInDom() ? navItem.panelDomId : null', '[attr.aria-selected]': 'navItem.active', '[attr.aria-disabled]': 'navItem.disabled', '(click)': 'nav.click(navItem); $event.preventDefault()' } }] }], function () { return [{ type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Attribute"], args: ['role'] }] }, { type: NgbNavItem }, { type: NgbNav }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }]; }, null); })(); const ngbNavFadeOutTransition = ({ classList }) => { classList.remove('show'); return () => classList.remove('active'); }; const ngbNavFadeInTransition = (element) => { element.classList.add('active'); reflow(element); element.classList.add('show'); }; const ngbNavFadeInNoReflowTransition = (element) => { element.classList.add('active'); element.classList.add('show'); }; class NgbNavPane { constructor(elRef) { this.elRef = elRef; } } NgbNavPane.ɵfac = function NgbNavPane_Factory(t) { return new (t || NgbNavPane)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"])); }; NgbNavPane.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbNavPane, selectors: [["", "ngbNavPane", ""]], hostAttrs: [1, "tab-pane"], hostVars: 5, hostBindings: function NgbNavPane_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵhostProperty"]("id", ctx.item.panelDomId); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("role", ctx.role ? ctx.role : ctx.nav.roles ? "tabpanel" : undefined)("aria-labelledby", ctx.item.domId); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("fade", ctx.nav.animation); } }, inputs: { item: "item", nav: "nav", role: "role" } }); NgbNavPane.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] } ]; NgbNavPane.propDecorators = { item: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], nav: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], role: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbNavPane, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbNavPane]', host: { '[id]': 'item.panelDomId', 'class': 'tab-pane', '[class.fade]': 'nav.animation', '[attr.role]': 'role ? role : nav.roles ? "tabpanel" : undefined', '[attr.aria-labelledby]': 'item.domId' } }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }]; }, { item: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], nav: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], role: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); /** * The outlet where currently active nav content will be displayed. * * @since 5.2.0 */ class NgbNavOutlet { constructor(_cd) { this._cd = _cd; this._activePane = null; } isPanelTransitioning(item) { var _a; return ((_a = this._activePane) === null || _a === void 0 ? void 0 : _a.item) === item; } ngAfterViewInit() { var _a, _b, _c; // initial display this._activePane = this._getActivePane(); (_a = this._activePane) === null || _a === void 0 ? void 0 : _a.elRef.nativeElement.classList.add('show'); (_b = this._activePane) === null || _b === void 0 ? void 0 : _b.elRef.nativeElement.classList.add('active'); // this will be emitted for all 3 types of nav changes: .select(), [activeId] or (click) this.nav.navItemChange$ .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["startWith"])(((_c = this._activePane) === null || _c === void 0 ? void 0 : _c.item) || null), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["distinctUntilChanged"])(), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["skip"])(1)) .subscribe(nextItem => { const options = { animation: this.nav.animation, runningTransition: 'stop' }; // fading out if (this._activePane) { ngbRunTransition(this._activePane.elRef.nativeElement, ngbNavFadeOutTransition, options).subscribe(() => { var _a; const activeItem = (_a = this._activePane) === null || _a === void 0 ? void 0 : _a.item; // next panel we're switching to will only appear in DOM after the change detection is done // and `this._panes` will be updated this._cd.detectChanges(); this._activePane = this._getPaneForItem(nextItem); // fading in if (this._activePane) { const fadeInTransition = this.nav.animation ? ngbNavFadeInTransition : ngbNavFadeInNoReflowTransition; ngbRunTransition(this._activePane.elRef.nativeElement, fadeInTransition, options).subscribe(() => { if (nextItem) { nextItem.shown.emit(); this.nav.shown.emit(nextItem.id); } }); } if (activeItem) { activeItem.hidden.emit(); this.nav.hidden.emit(activeItem.id); } }); } }); } _getPaneForItem(item) { return this._panes && this._panes.find(pane => pane.item === item) || null; } _getActivePane() { return this._panes && this._panes.find(pane => pane.item.active) || null; } } NgbNavOutlet.ɵfac = function NgbNavOutlet_Factory(t) { return new (t || NgbNavOutlet)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"])); }; NgbNavOutlet.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbNavOutlet, selectors: [["", "ngbNavOutlet", ""]], viewQuery: function NgbNavOutlet_Query(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵviewQuery"](NgbNavPane, true); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx._panes = _t); } }, hostVars: 2, hostBindings: function NgbNavOutlet_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("tab-content", true); } }, inputs: { paneRole: "paneRole", nav: ["ngbNavOutlet", "nav"] }, attrs: _c34, decls: 1, vars: 1, consts: [["ngFor", "", 3, "ngForOf"], ["ngbNavPane", "", 3, "item", "nav", "role", 4, "ngIf"], ["ngbNavPane", "", 3, "item", "nav", "role"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function NgbNavOutlet_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbNavOutlet_ng_template_0_Template, 1, 1, "ng-template", 0); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.nav.items); } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgForOf"], _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgIf"], NgbNavPane, _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgTemplateOutlet"]], encapsulation: 2 }); NgbNavOutlet.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] } ]; NgbNavOutlet.propDecorators = { _panes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChildren"], args: [NgbNavPane,] }], paneRole: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], nav: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['ngbNavOutlet',] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbNavOutlet, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: '[ngbNavOutlet]', host: { '[class.tab-content]': 'true' }, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, template: `
` }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }]; }, { _panes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewChildren"], args: [NgbNavPane] }], paneRole: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], nav: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"], args: ['ngbNavOutlet'] }] }); })(); const NGB_NAV_DIRECTIVES = [NgbNavContent, NgbNav, NgbNavItem, NgbNavLink, NgbNavOutlet, NgbNavPane]; class NgbNavModule { } NgbNavModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbNavModule }); NgbNavModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbNavModule_Factory(t) { return new (t || NgbNavModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbNavModule, { declarations: function () { return [NgbNavContent, NgbNav, NgbNavItem, NgbNavLink, NgbNavOutlet, NgbNavPane]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]; }, exports: function () { return [NgbNavContent, NgbNav, NgbNavItem, NgbNavLink, NgbNavOutlet, NgbNavPane]; } }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbNavModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: NGB_NAV_DIRECTIVES, exports: NGB_NAV_DIRECTIVES, imports: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]] }] }], null, null); })(); /** * A configuration service for the [`NgbPagination`](#/components/pagination/api#NgbPagination) component. * * You can inject this service, typically in your root component, and customize the values of its properties in * order to provide default values for all the paginations used in the application. */ class NgbPaginationConfig { constructor() { this.disabled = false; this.boundaryLinks = false; this.directionLinks = true; this.ellipses = true; this.maxSize = 0; this.pageSize = 10; this.rotate = false; } } NgbPaginationConfig.ɵfac = function NgbPaginationConfig_Factory(t) { return new (t || NgbPaginationConfig)(); }; NgbPaginationConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbPaginationConfig_Factory() { return new NgbPaginationConfig(); }, token: NgbPaginationConfig, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPaginationConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return []; }, null); })(); /** * A directive to match the 'ellipsis' link template * * @since 4.1.0 */ class NgbPaginationEllipsis { constructor(templateRef) { this.templateRef = templateRef; } } NgbPaginationEllipsis.ɵfac = function NgbPaginationEllipsis_Factory(t) { return new (t || NgbPaginationEllipsis)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"])); }; NgbPaginationEllipsis.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbPaginationEllipsis, selectors: [["ng-template", "ngbPaginationEllipsis", ""]] }); NgbPaginationEllipsis.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPaginationEllipsis, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'ng-template[ngbPaginationEllipsis]' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] }]; }, null); })(); /** * A directive to match the 'first' link template * * @since 4.1.0 */ class NgbPaginationFirst { constructor(templateRef) { this.templateRef = templateRef; } } NgbPaginationFirst.ɵfac = function NgbPaginationFirst_Factory(t) { return new (t || NgbPaginationFirst)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"])); }; NgbPaginationFirst.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbPaginationFirst, selectors: [["ng-template", "ngbPaginationFirst", ""]] }); NgbPaginationFirst.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPaginationFirst, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'ng-template[ngbPaginationFirst]' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] }]; }, null); })(); /** * A directive to match the 'last' link template * * @since 4.1.0 */ class NgbPaginationLast { constructor(templateRef) { this.templateRef = templateRef; } } NgbPaginationLast.ɵfac = function NgbPaginationLast_Factory(t) { return new (t || NgbPaginationLast)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"])); }; NgbPaginationLast.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbPaginationLast, selectors: [["ng-template", "ngbPaginationLast", ""]] }); NgbPaginationLast.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPaginationLast, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'ng-template[ngbPaginationLast]' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] }]; }, null); })(); /** * A directive to match the 'next' link template * * @since 4.1.0 */ class NgbPaginationNext { constructor(templateRef) { this.templateRef = templateRef; } } NgbPaginationNext.ɵfac = function NgbPaginationNext_Factory(t) { return new (t || NgbPaginationNext)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"])); }; NgbPaginationNext.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbPaginationNext, selectors: [["ng-template", "ngbPaginationNext", ""]] }); NgbPaginationNext.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPaginationNext, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'ng-template[ngbPaginationNext]' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] }]; }, null); })(); /** * A directive to match the page 'number' link template * * @since 4.1.0 */ class NgbPaginationNumber { constructor(templateRef) { this.templateRef = templateRef; } } NgbPaginationNumber.ɵfac = function NgbPaginationNumber_Factory(t) { return new (t || NgbPaginationNumber)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"])); }; NgbPaginationNumber.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbPaginationNumber, selectors: [["ng-template", "ngbPaginationNumber", ""]] }); NgbPaginationNumber.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPaginationNumber, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'ng-template[ngbPaginationNumber]' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] }]; }, null); })(); /** * A directive to match the 'previous' link template * * @since 4.1.0 */ class NgbPaginationPrevious { constructor(templateRef) { this.templateRef = templateRef; } } NgbPaginationPrevious.ɵfac = function NgbPaginationPrevious_Factory(t) { return new (t || NgbPaginationPrevious)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"])); }; NgbPaginationPrevious.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbPaginationPrevious, selectors: [["ng-template", "ngbPaginationPrevious", ""]] }); NgbPaginationPrevious.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPaginationPrevious, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'ng-template[ngbPaginationPrevious]' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"] }]; }, null); })(); /** * A component that displays page numbers and allows to customize them in several ways. */ class NgbPagination { constructor(config) { this.pageCount = 0; this.pages = []; /** * The current page. * * Page numbers start with `1`. */ this.page = 1; /** * An event fired when the page is changed. Will fire only if collection size is set and all values are valid. * * Event payload is the number of the newly selected page. * * Page numbers start with `1`. */ this.pageChange = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](true); this.disabled = config.disabled; this.boundaryLinks = config.boundaryLinks; this.directionLinks = config.directionLinks; this.ellipses = config.ellipses; this.maxSize = config.maxSize; this.pageSize = config.pageSize; this.rotate = config.rotate; this.size = config.size; } hasPrevious() { return this.page > 1; } hasNext() { return this.page < this.pageCount; } nextDisabled() { return !this.hasNext() || this.disabled; } previousDisabled() { return !this.hasPrevious() || this.disabled; } selectPage(pageNumber) { this._updatePages(pageNumber); } ngOnChanges(changes) { this._updatePages(this.page); } isEllipsis(pageNumber) { return pageNumber === -1; } /** * Appends ellipses and first/last page number to the displayed pages */ _applyEllipses(start, end) { if (this.ellipses) { if (start > 0) { // The first page will always be included. If the displayed range // starts after the third page, then add ellipsis. But if the range // starts on the third page, then add the second page instead of // an ellipsis, because the ellipsis would only hide a single page. if (start > 2) { this.pages.unshift(-1); } else if (start === 2) { this.pages.unshift(2); } this.pages.unshift(1); } if (end < this.pageCount) { // The last page will always be included. If the displayed range // ends before the third-last page, then add ellipsis. But if the range // ends on third-last page, then add the second-last page instead of // an ellipsis, because the ellipsis would only hide a single page. if (end < (this.pageCount - 2)) { this.pages.push(-1); } else if (end === (this.pageCount - 2)) { this.pages.push(this.pageCount - 1); } this.pages.push(this.pageCount); } } } /** * Rotates page numbers based on maxSize items visible. * Currently selected page stays in the middle: * * Ex. for selected page = 6: * [5,*6*,7] for maxSize = 3 * [4,5,*6*,7] for maxSize = 4 */ _applyRotation() { let start = 0; let end = this.pageCount; let leftOffset = Math.floor(this.maxSize / 2); let rightOffset = this.maxSize % 2 === 0 ? leftOffset - 1 : leftOffset; if (this.page <= leftOffset) { // very beginning, no rotation -> [0..maxSize] end = this.maxSize; } else if (this.pageCount - this.page < leftOffset) { // very end, no rotation -> [len-maxSize..len] start = this.pageCount - this.maxSize; } else { // rotate start = this.page - leftOffset - 1; end = this.page + rightOffset; } return [start, end]; } /** * Paginates page numbers based on maxSize items per page. */ _applyPagination() { let page = Math.ceil(this.page / this.maxSize) - 1; let start = page * this.maxSize; let end = start + this.maxSize; return [start, end]; } _setPageInRange(newPageNo) { const prevPageNo = this.page; this.page = getValueInRange(newPageNo, this.pageCount, 1); if (this.page !== prevPageNo && isNumber(this.collectionSize)) { this.pageChange.emit(this.page); } } _updatePages(newPage) { this.pageCount = Math.ceil(this.collectionSize / this.pageSize); if (!isNumber(this.pageCount)) { this.pageCount = 0; } // fill-in model needed to render pages this.pages.length = 0; for (let i = 1; i <= this.pageCount; i++) { this.pages.push(i); } // set page within 1..max range this._setPageInRange(newPage); // apply maxSize if necessary if (this.maxSize > 0 && this.pageCount > this.maxSize) { let start = 0; let end = this.pageCount; // either paginating or rotating page numbers if (this.rotate) { [start, end] = this._applyRotation(); } else { [start, end] = this._applyPagination(); } this.pages = this.pages.slice(start, end); // adding ellipses this._applyEllipses(start, end); } } } NgbPagination.ɵfac = function NgbPagination_Factory(t) { return new (t || NgbPagination)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbPaginationConfig)); }; NgbPagination.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbPagination, selectors: [["ngb-pagination"]], contentQueries: function NgbPagination_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbPaginationEllipsis, true); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbPaginationFirst, true); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbPaginationLast, true); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbPaginationNext, true); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbPaginationNumber, true); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, NgbPaginationPrevious, true); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.tplEllipsis = _t.first); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.tplFirst = _t.first); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.tplLast = _t.first); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.tplNext = _t.first); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.tplNumber = _t.first); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.tplPrevious = _t.first); } }, hostAttrs: ["role", "navigation"], inputs: { page: "page", disabled: "disabled", boundaryLinks: "boundaryLinks", directionLinks: "directionLinks", ellipses: "ellipses", maxSize: "maxSize", pageSize: "pageSize", rotate: "rotate", size: "size", collectionSize: "collectionSize" }, outputs: { pageChange: "pageChange" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]], decls: 18, vars: 7, consts: function () { let i18n_36; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_pagination_first$$FESM2015_NG_BOOTSTRAP_JS__37 = goog.getMsg("\u00AB\u00AB"); i18n_36 = MSG_EXTERNAL_ngb_pagination_first$$FESM2015_NG_BOOTSTRAP_JS__37; } else { i18n_36 = $localize `:@@ngb.pagination.first␟656506dfd46380956a655f919f1498d018f75ca0␟6867721956102594380:««`; } let i18n_38; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_pagination_previous$$FESM2015_NG_BOOTSTRAP_JS__39 = goog.getMsg("\u00AB"); i18n_38 = MSG_EXTERNAL_ngb_pagination_previous$$FESM2015_NG_BOOTSTRAP_JS__39; } else { i18n_38 = $localize `:@@ngb.pagination.previous␟6e52b6ee77a4848d899dd21b591c6fd499e3aef3␟6479320895410098858:«`; } let i18n_40; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_pagination_next$$FESM2015_NG_BOOTSTRAP_JS__41 = goog.getMsg("\u00BB"); i18n_40 = MSG_EXTERNAL_ngb_pagination_next$$FESM2015_NG_BOOTSTRAP_JS__41; } else { i18n_40 = $localize `:@@ngb.pagination.next␟ba9cbb4ff311464308a3627e4f1c3345d9fe6d7d␟5458177150283468089:»`; } let i18n_42; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_pagination_last$$FESM2015_NG_BOOTSTRAP_JS__43 = goog.getMsg("\u00BB\u00BB"); i18n_42 = MSG_EXTERNAL_ngb_pagination_last$$FESM2015_NG_BOOTSTRAP_JS__43; } else { i18n_42 = $localize `:@@ngb.pagination.last␟49f27a460bc97e7e00be5b37098bfa79884fc7d9␟5277020320267646988:»»`; } let i18n_44; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_pagination_first_aria$$FESM2015_NG_BOOTSTRAP_JS__45 = goog.getMsg("First"); i18n_44 = MSG_EXTERNAL_ngb_pagination_first_aria$$FESM2015_NG_BOOTSTRAP_JS__45; } else { i18n_44 = $localize `:@@ngb.pagination.first-aria␟f2f852318759c6396b5d3d17031d53817d7b38cc␟2241508602425256033:First`; } let i18n_47; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_pagination_previous_aria$$FESM2015_NG_BOOTSTRAP_JS__48 = goog.getMsg("Previous"); i18n_47 = MSG_EXTERNAL_ngb_pagination_previous_aria$$FESM2015_NG_BOOTSTRAP_JS__48; } else { i18n_47 = $localize `:@@ngb.pagination.previous-aria␟680d5c75b7fd8d37961083608b9fcdc4167b4c43␟4452427314943113135:Previous`; } let i18n_52; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_pagination_next_aria$$FESM2015_NG_BOOTSTRAP_JS__53 = goog.getMsg("Next"); i18n_52 = MSG_EXTERNAL_ngb_pagination_next_aria$$FESM2015_NG_BOOTSTRAP_JS__53; } else { i18n_52 = $localize `:@@ngb.pagination.next-aria␟f732c304c7433e5a83ffcd862c3dce709a0f4982␟3885497195825665706:Next`; } let i18n_54; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_pagination_last_aria$$FESM2015_NG_BOOTSTRAP_JS__55 = goog.getMsg("Last"); i18n_54 = MSG_EXTERNAL_ngb_pagination_last_aria$$FESM2015_NG_BOOTSTRAP_JS__55; } else { i18n_54 = $localize `:@@ngb.pagination.last-aria␟5c729788ba138508aca1bec050b610f7bf81db3e␟4882268002141858767:Last`; } return [["first", ""], ["previous", ""], ["next", ""], ["last", ""], ["ellipsis", ""], ["defaultNumber", ""], ["class", "page-item", 3, "disabled", 4, "ngIf"], ["class", "page-item", 3, "active", "disabled", 4, "ngFor", "ngForOf"], ["aria-hidden", "true"], i18n_36, i18n_38, i18n_40, i18n_42, ["class", "sr-only", 4, "ngIf"], [1, "sr-only"], [1, "page-item"], ["aria-label", i18n_44, "href", "", 1, "page-link", 3, "click"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["aria-label", i18n_47, "href", "", 1, "page-link", 3, "click"], ["class", "page-link", "tabindex", "-1", "aria-disabled", "true", 4, "ngIf"], ["class", "page-link", "href", "", 3, "click", 4, "ngIf"], ["tabindex", "-1", "aria-disabled", "true", 1, "page-link"], ["href", "", 1, "page-link", 3, "click"], ["aria-label", i18n_52, "href", "", 1, "page-link", 3, "click"], ["aria-label", i18n_54, "href", "", 1, "page-link", 3, "click"]]; }, template: function NgbPagination_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbPagination_ng_template_0_Template, 2, 0, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbPagination_ng_template_2_Template, 2, 0, "ng-template", null, 1, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](4, NgbPagination_ng_template_4_Template, 2, 0, "ng-template", null, 2, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](6, NgbPagination_ng_template_6_Template, 2, 0, "ng-template", null, 3, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](8, NgbPagination_ng_template_8_Template, 1, 0, "ng-template", null, 4, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](10, NgbPagination_ng_template_10_Template, 2, 2, "ng-template", null, 5, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](12, "ul"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](13, NgbPagination_li_13_Template, 3, 9, "li", 6); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](14, NgbPagination_li_14_Template, 3, 8, "li", 6); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](15, NgbPagination_li_15_Template, 3, 7, "li", 7); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](16, NgbPagination_li_16_Template, 3, 9, "li", 6); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](17, NgbPagination_li_17_Template, 3, 9, "li", 6); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](12); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassMap"]("pagination" + (ctx.size ? " pagination-" + ctx.size : "")); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.boundaryLinks); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.directionLinks); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.pages); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.directionLinks); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.boundaryLinks); } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgIf"], _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgForOf"], _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgTemplateOutlet"]], encapsulation: 2, changeDetection: 0 }); NgbPagination.ctorParameters = () => [ { type: NgbPaginationConfig } ]; NgbPagination.propDecorators = { tplEllipsis: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbPaginationEllipsis, { static: false },] }], tplFirst: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbPaginationFirst, { static: false },] }], tplLast: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbPaginationLast, { static: false },] }], tplNext: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbPaginationNext, { static: false },] }], tplNumber: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbPaginationNumber, { static: false },] }], tplPrevious: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbPaginationPrevious, { static: false },] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], boundaryLinks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], directionLinks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], ellipses: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], rotate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], collectionSize: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], maxSize: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], page: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], pageSize: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], pageChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPagination, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-pagination', changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, host: { 'role': 'navigation' }, template: ` ... {{ page }} (current) ` }] }], function () { return [{ type: NgbPaginationConfig }]; }, { page: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], pageChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], boundaryLinks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], directionLinks: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], ellipses: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], maxSize: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], pageSize: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], rotate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], tplEllipsis: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbPaginationEllipsis, { static: false }] }], tplFirst: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbPaginationFirst, { static: false }] }], tplLast: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbPaginationLast, { static: false }] }], tplNext: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbPaginationNext, { static: false }] }], tplNumber: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbPaginationNumber, { static: false }] }], tplPrevious: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbPaginationPrevious, { static: false }] }], collectionSize: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); const DIRECTIVES = [ NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious ]; class NgbPaginationModule { } NgbPaginationModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbPaginationModule }); NgbPaginationModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbPaginationModule_Factory(t) { return new (t || NgbPaginationModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbPaginationModule, { declarations: function () { return [NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]; }, exports: function () { return [NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious]; } }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPaginationModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: DIRECTIVES, exports: DIRECTIVES, imports: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]] }] }], null, null); })(); class Trigger { constructor(open, close) { this.open = open; this.close = close; if (!close) { this.close = open; } } isManual() { return this.open === 'manual' || this.close === 'manual'; } } const DEFAULT_ALIASES = { 'hover': ['mouseenter', 'mouseleave'], 'focus': ['focusin', 'focusout'], }; function parseTriggers(triggers, aliases = DEFAULT_ALIASES) { const trimmedTriggers = (triggers || '').trim(); if (trimmedTriggers.length === 0) { return []; } const parsedTriggers = trimmedTriggers.split(/\s+/).map(trigger => trigger.split(':')).map((triggerPair) => { let alias = aliases[triggerPair[0]] || triggerPair; return new Trigger(alias[0], alias[1]); }); const manualTriggers = parsedTriggers.filter(triggerPair => triggerPair.isManual()); if (manualTriggers.length > 1) { throw 'Triggers parse error: only one manual trigger is allowed'; } if (manualTriggers.length === 1 && parsedTriggers.length > 1) { throw 'Triggers parse error: manual trigger can\'t be mixed with other triggers'; } return parsedTriggers; } function observeTriggers(renderer, nativeElement, triggers, isOpenedFn) { return new rxjs__WEBPACK_IMPORTED_MODULE_2__["Observable"](subscriber => { const listeners = []; const openFn = () => subscriber.next(true); const closeFn = () => subscriber.next(false); const toggleFn = () => subscriber.next(!isOpenedFn()); triggers.forEach((trigger) => { if (trigger.open === trigger.close) { listeners.push(renderer.listen(nativeElement, trigger.open, toggleFn)); } else { listeners.push(renderer.listen(nativeElement, trigger.open, openFn), renderer.listen(nativeElement, trigger.close, closeFn)); } }); return () => { listeners.forEach(unsubscribeFn => unsubscribeFn()); }; }); } const delayOrNoop = (time) => time > 0 ? Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["delay"])(time) : (a) => a; const ɵ0$5 = delayOrNoop; function triggerDelay(openDelay, closeDelay, isOpenedFn) { return (input$) => { let pending = null; const filteredInput$ = input$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(open => ({ open })), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["filter"])(event => { const currentlyOpen = isOpenedFn(); if (currentlyOpen !== event.open && (!pending || pending.open === currentlyOpen)) { pending = event; return true; } if (pending && pending.open !== event.open) { pending = null; } return false; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["share"])()); const delayedOpen$ = filteredInput$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["filter"])(event => event.open), delayOrNoop(openDelay)); const delayedClose$ = filteredInput$.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["filter"])(event => !event.open), delayOrNoop(closeDelay)); return Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["merge"])(delayedOpen$, delayedClose$) .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["filter"])(event => { if (event === pending) { pending = null; return event.open !== isOpenedFn(); } return false; }), Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])(event => event.open)); }; } function listenToTriggers(renderer, nativeElement, triggers, isOpenedFn, openFn, closeFn, openDelay = 0, closeDelay = 0) { const parsedTriggers = parseTriggers(triggers); if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) { return () => { }; } const subscription = observeTriggers(renderer, nativeElement, parsedTriggers, isOpenedFn) .pipe(triggerDelay(openDelay, closeDelay, isOpenedFn)) .subscribe(open => (open ? openFn() : closeFn())); return () => subscription.unsubscribe(); } /** * A configuration service for the [`NgbPopover`](#/components/popover/api#NgbPopover) component. * * You can inject this service, typically in your root component, and customize the values of its properties in * order to provide default values for all the popovers used in the application. */ class NgbPopoverConfig { constructor(ngbConfig) { this.autoClose = true; this.placement = 'auto'; this.triggers = 'click'; this.disablePopover = false; this.openDelay = 0; this.closeDelay = 0; this.animation = ngbConfig.animation; } } NgbPopoverConfig.ɵfac = function NgbPopoverConfig_Factory(t) { return new (t || NgbPopoverConfig)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](NgbConfig)); }; NgbPopoverConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbPopoverConfig_Factory() { return new NgbPopoverConfig(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(NgbConfig)); }, token: NgbPopoverConfig, providedIn: "root" }); NgbPopoverConfig.ctorParameters = () => [ { type: NgbConfig } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPopoverConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return [{ type: NgbConfig }]; }, null); })(); let nextId$3 = 0; class NgbPopoverWindow { isTitleTemplate() { return this.title instanceof _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"]; } } NgbPopoverWindow.ɵfac = function NgbPopoverWindow_Factory(t) { return new (t || NgbPopoverWindow)(); }; NgbPopoverWindow.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbPopoverWindow, selectors: [["ngb-popover-window"]], hostAttrs: ["role", "tooltip"], hostVars: 5, hostBindings: function NgbPopoverWindow_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵhostProperty"]("id", ctx.id); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassMap"]("popover" + (ctx.popoverClass ? " " + ctx.popoverClass : "")); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("fade", ctx.animation); } }, inputs: { animation: "animation", title: "title", id: "id", popoverClass: "popoverClass", context: "context" }, ngContentSelectors: _c5, decls: 4, vars: 1, consts: [[1, "arrow"], ["class", "popover-header", 4, "ngIf"], [1, "popover-body"], [1, "popover-header"], ["simpleTitle", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function NgbPopoverWindow_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojectionDef"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "div", 0); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbPopoverWindow_h3_1_Template, 4, 2, "h3", 1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "div", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojection"](3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.title); } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgIf"], _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgTemplateOutlet"]], styles: ["ngb-popover-window.bs-popover-bottom>.arrow,ngb-popover-window.bs-popover-top>.arrow{left:50%;margin-left:-.5rem}ngb-popover-window.bs-popover-bottom-left>.arrow,ngb-popover-window.bs-popover-top-left>.arrow{left:2em}ngb-popover-window.bs-popover-bottom-right>.arrow,ngb-popover-window.bs-popover-top-right>.arrow{left:auto;right:2em}ngb-popover-window.bs-popover-left>.arrow,ngb-popover-window.bs-popover-right>.arrow{margin-top:-.5rem;top:50%}ngb-popover-window.bs-popover-left-top>.arrow,ngb-popover-window.bs-popover-right-top>.arrow{top:.7em}ngb-popover-window.bs-popover-left-bottom>.arrow,ngb-popover-window.bs-popover-right-bottom>.arrow{bottom:.7em;top:auto}"], encapsulation: 2, changeDetection: 0 }); NgbPopoverWindow.propDecorators = { animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], popoverClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], context: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPopoverWindow, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-popover-window', changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, host: { '[class]': '"popover" + (popoverClass ? " " + popoverClass : "")', '[class.fade]': 'animation', 'role': 'tooltip', '[id]': 'id' }, template: `

{{title}}

`, styles: ["ngb-popover-window.bs-popover-bottom>.arrow,ngb-popover-window.bs-popover-top>.arrow{left:50%;margin-left:-.5rem}ngb-popover-window.bs-popover-bottom-left>.arrow,ngb-popover-window.bs-popover-top-left>.arrow{left:2em}ngb-popover-window.bs-popover-bottom-right>.arrow,ngb-popover-window.bs-popover-top-right>.arrow{left:auto;right:2em}ngb-popover-window.bs-popover-left>.arrow,ngb-popover-window.bs-popover-right>.arrow{margin-top:-.5rem;top:50%}ngb-popover-window.bs-popover-left-top>.arrow,ngb-popover-window.bs-popover-right-top>.arrow{top:.7em}ngb-popover-window.bs-popover-left-bottom>.arrow,ngb-popover-window.bs-popover-right-bottom>.arrow{bottom:.7em;top:auto}"] }] }], null, { animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], title: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], popoverClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], context: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); /** * A lightweight and extensible directive for fancy popover creation. */ class NgbPopover { constructor(_elementRef, _renderer, injector, componentFactoryResolver, viewContainerRef, config, _ngZone, _document, _changeDetector, applicationRef) { this._elementRef = _elementRef; this._renderer = _renderer; this._ngZone = _ngZone; this._document = _document; this._changeDetector = _changeDetector; /** * An event emitted when the popover opening animation has finished. Contains no payload. */ this.shown = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted when the popover closing animation has finished. Contains no payload. * * At this point popover is not in the DOM anymore. */ this.hidden = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this._ngbPopoverWindowId = `ngb-popover-${nextId$3++}`; this._windowRef = null; this.animation = config.animation; this.autoClose = config.autoClose; this.placement = config.placement; this.triggers = config.triggers; this.container = config.container; this.disablePopover = config.disablePopover; this.popoverClass = config.popoverClass; this.openDelay = config.openDelay; this.closeDelay = config.closeDelay; this._popupService = new PopupService(NgbPopoverWindow, injector, viewContainerRef, _renderer, this._ngZone, componentFactoryResolver, applicationRef); this._zoneSubscription = _ngZone.onStable.subscribe(() => { if (this._windowRef) { positionElements(this._elementRef.nativeElement, this._windowRef.location.nativeElement, this.placement, this.container === 'body', 'bs-popover'); } }); } _isDisabled() { if (this.disablePopover) { return true; } if (!this.ngbPopover && !this.popoverTitle) { return true; } return false; } /** * Opens the popover. * * This is considered to be a "manual" triggering. * The `context` is an optional value to be injected into the popover template when it is created. */ open(context) { if (!this._windowRef && !this._isDisabled()) { // this type assertion is safe because otherwise _isDisabled would return true const { windowRef, transition$ } = this._popupService.open(this.ngbPopover, context, this.animation); this._windowRef = windowRef; this._windowRef.instance.animation = this.animation; this._windowRef.instance.title = this.popoverTitle; this._windowRef.instance.context = context; this._windowRef.instance.popoverClass = this.popoverClass; this._windowRef.instance.id = this._ngbPopoverWindowId; this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-describedby', this._ngbPopoverWindowId); if (this.container === 'body') { this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement); } // We need to detect changes, because we don't know where .open() might be called from. // Ex. opening popover from one of lifecycle hooks that run after the CD // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception this._windowRef.changeDetectorRef.detectChanges(); // We need to mark for check, because popover won't work inside the OnPush component. // Ex. when we use expression like `{{ popover.isOpen() : 'opened' : 'closed' }}` // inside the template of an OnPush component and we change the popover from // open -> closed, the expression in question won't be updated unless we explicitly // mark the parent component to be checked. this._windowRef.changeDetectorRef.markForCheck(); ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [this._windowRef.location.nativeElement]); transition$.subscribe(() => this.shown.emit()); } } /** * Closes the popover. * * This is considered to be a "manual" triggering of the popover. */ close() { if (this._windowRef) { this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-describedby'); this._popupService.close(this.animation).subscribe(() => { this._windowRef = null; this.hidden.emit(); this._changeDetector.markForCheck(); }); } } /** * Toggles the popover. * * This is considered to be a "manual" triggering of the popover. */ toggle() { if (this._windowRef) { this.close(); } else { this.open(); } } /** * Returns `true`, if the popover is currently shown. */ isOpen() { return this._windowRef != null; } ngOnInit() { this._unregisterListenersFn = listenToTriggers(this._renderer, this._elementRef.nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay); } ngOnChanges({ ngbPopover, popoverTitle, disablePopover, popoverClass }) { if (popoverClass && this.isOpen()) { this._windowRef.instance.popoverClass = popoverClass.currentValue; } // close popover if title and content become empty, or disablePopover set to true if ((ngbPopover || popoverTitle || disablePopover) && this._isDisabled()) { this.close(); } } ngOnDestroy() { this.close(); // This check is needed as it might happen that ngOnDestroy is called before ngOnInit // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199 if (this._unregisterListenersFn) { this._unregisterListenersFn(); } this._zoneSubscription.unsubscribe(); } } NgbPopover.ɵfac = function NgbPopover_Factory(t) { return new (t || NgbPopover)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewContainerRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbPopoverConfig), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"])); }; NgbPopover.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbPopover, selectors: [["", "ngbPopover", ""]], inputs: { animation: "animation", autoClose: "autoClose", placement: "placement", triggers: "triggers", container: "container", disablePopover: "disablePopover", popoverClass: "popoverClass", openDelay: "openDelay", closeDelay: "closeDelay", ngbPopover: "ngbPopover", popoverTitle: "popoverTitle" }, outputs: { shown: "shown", hidden: "hidden" }, exportAs: ["ngbPopover"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]] }); NgbPopover.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewContainerRef"] }, { type: NgbPopoverConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"],] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"] } ]; NgbPopover.propDecorators = { animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], autoClose: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], ngbPopover: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], popoverTitle: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], placement: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], triggers: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], container: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], disablePopover: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], popoverClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], openDelay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], closeDelay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPopover, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbPopover]', exportAs: 'ngbPopover' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewContainerRef"] }, { type: NgbPopoverConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"] }]; }, { shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], autoClose: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], placement: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], triggers: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], container: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], disablePopover: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], popoverClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], openDelay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], closeDelay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], ngbPopover: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], popoverTitle: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); class NgbPopoverModule { } NgbPopoverModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbPopoverModule }); NgbPopoverModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbPopoverModule_Factory(t) { return new (t || NgbPopoverModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbPopoverModule, { declarations: function () { return [NgbPopover, NgbPopoverWindow]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]; }, exports: function () { return [NgbPopover]; } }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbPopoverModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: [NgbPopover, NgbPopoverWindow], exports: [NgbPopover], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]], entryComponents: [NgbPopoverWindow] }] }], null, null); })(); /** * A configuration service for the [`NgbProgressbar`](#/components/progressbar/api#NgbProgressbar) component. * * You can inject this service, typically in your root component, and customize the values of its properties in * order to provide default values for all the progress bars used in the application. */ class NgbProgressbarConfig { constructor() { this.max = 100; this.animated = false; this.striped = false; this.showValue = false; } } NgbProgressbarConfig.ɵfac = function NgbProgressbarConfig_Factory(t) { return new (t || NgbProgressbarConfig)(); }; NgbProgressbarConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbProgressbarConfig_Factory() { return new NgbProgressbarConfig(); }, token: NgbProgressbarConfig, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbProgressbarConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return []; }, null); })(); /** * A directive that provides feedback on the progress of a workflow or an action. */ class NgbProgressbar { constructor(config) { /** * The current value for the progress bar. * * Should be in the `[0, max]` range. */ this.value = 0; this.max = config.max; this.animated = config.animated; this.striped = config.striped; this.textType = config.textType; this.type = config.type; this.showValue = config.showValue; this.height = config.height; } /** * The maximal value to be displayed in the progress bar. * * Should be a positive number. Will default to 100 otherwise. */ set max(max) { this._max = !isNumber(max) || max <= 0 ? 100 : max; } get max() { return this._max; } getValue() { return getValueInRange(this.value, this.max); } getPercentValue() { return 100 * this.getValue() / this.max; } } NgbProgressbar.ɵfac = function NgbProgressbar_Factory(t) { return new (t || NgbProgressbar)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbProgressbarConfig)); }; NgbProgressbar.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbProgressbar, selectors: [["ngb-progressbar"]], hostAttrs: [1, "progress"], hostVars: 2, hostBindings: function NgbProgressbar_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstyleProp"]("height", ctx.height); } }, inputs: { value: "value", max: "max", animated: "animated", striped: "striped", textType: "textType", type: "type", showValue: "showValue", height: "height" }, ngContentSelectors: _c5, decls: 3, vars: 11, consts: function () { let i18n_56; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_progressbar_value$$FESM2015_NG_BOOTSTRAP_JS__57 = goog.getMsg("{$interpolation}", { "interpolation": "\uFFFD0\uFFFD" }); i18n_56 = MSG_EXTERNAL_ngb_progressbar_value$$FESM2015_NG_BOOTSTRAP_JS__57; } else { i18n_56 = $localize `:@@ngb.progressbar.value␟f8e9a947b9db4252c0e9905765338712f2fd032f␟3720830768741091151:${"\uFFFD0\uFFFD"}:INTERPOLATION:`; } return [["role", "progressbar", "aria-valuemin", "0"], [4, "ngIf"], i18n_56]; }, template: function NgbProgressbar_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojectionDef"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "div", 0); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](1, NgbProgressbar_span_1_Template, 3, 3, "span", 1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojection"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassMapInterpolate4"]("progress-bar", ctx.type ? " bg-" + ctx.type : "", "", ctx.textType ? " text-" + ctx.textType : "", "\n ", ctx.animated ? " progress-bar-animated" : "", "", ctx.striped ? " progress-bar-striped" : "", ""); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstyleProp"]("width", ctx.getPercentValue(), "%"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-valuenow", ctx.getValue())("aria-valuemax", ctx.max); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.showValue); } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgIf"]], pipes: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["PercentPipe"]], encapsulation: 2, changeDetection: 0 }); NgbProgressbar.ctorParameters = () => [ { type: NgbProgressbarConfig } ]; NgbProgressbar.propDecorators = { max: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], animated: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], striped: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showValue: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], textType: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], value: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], height: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], args: ['style.height',] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbProgressbar, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-progressbar', changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, host: { class: 'progress' }, template: `
{{getValue() / max | percent}}
` }] }], function () { return [{ type: NgbProgressbarConfig }]; }, { value: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], max: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], animated: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], striped: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], textType: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], type: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showValue: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], height: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["HostBinding"], args: ['style.height'] }] }); })(); class NgbProgressbarModule { } NgbProgressbarModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbProgressbarModule }); NgbProgressbarModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbProgressbarModule_Factory(t) { return new (t || NgbProgressbarModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbProgressbarModule, { declarations: function () { return [NgbProgressbar]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]; }, exports: function () { return [NgbProgressbar]; } }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbProgressbarModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: [NgbProgressbar], exports: [NgbProgressbar], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]] }] }], null, null); })(); /** * A configuration service for the [`NgbRating`](#/components/rating/api#NgbRating) component. * * You can inject this service, typically in your root component, and customize the values of its properties in * order to provide default values for all the ratings used in the application. */ class NgbRatingConfig { constructor() { this.max = 10; this.readonly = false; this.resettable = false; } } NgbRatingConfig.ɵfac = function NgbRatingConfig_Factory(t) { return new (t || NgbRatingConfig)(); }; NgbRatingConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbRatingConfig_Factory() { return new NgbRatingConfig(); }, token: NgbRatingConfig, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbRatingConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return []; }, null); })(); const NGB_RATING_VALUE_ACCESSOR = { provide: _angular_forms__WEBPACK_IMPORTED_MODULE_4__["NG_VALUE_ACCESSOR"], useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbRating), multi: true }; /** * A directive that helps visualising and interacting with a star rating bar. */ class NgbRating { constructor(config, _changeDetectorRef) { this._changeDetectorRef = _changeDetectorRef; this.contexts = []; this.disabled = false; /** * An event emitted when the user is hovering over a given rating. * * Event payload equals to the rating being hovered over. */ this.hover = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted when the user stops hovering over a given rating. * * Event payload equals to the rating of the last item being hovered over. */ this.leave = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted when the user selects a new rating. * * Event payload equals to the newly selected rating. */ this.rateChange = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](true); this.onChange = (_) => { }; this.onTouched = () => { }; this.max = config.max; this.readonly = config.readonly; } ariaValueText() { return `${this.nextRate} out of ${this.max}`; } isInteractive() { return !this.readonly && !this.disabled; } enter(value) { if (this.isInteractive()) { this._updateState(value); } this.hover.emit(value); } handleBlur() { this.onTouched(); } handleClick(value) { if (this.isInteractive()) { this.update(this.resettable && this.rate === value ? 0 : value); } } handleKeyDown(event) { // tslint:disable-next-line:deprecation switch (event.which) { case Key.ArrowDown: case Key.ArrowLeft: this.update(this.rate - 1); break; case Key.ArrowUp: case Key.ArrowRight: this.update(this.rate + 1); break; case Key.Home: this.update(0); break; case Key.End: this.update(this.max); break; default: return; } // note 'return' in default case event.preventDefault(); } ngOnChanges(changes) { if (changes['rate']) { this.update(this.rate); } } ngOnInit() { this.contexts = Array.from({ length: this.max }, (v, k) => ({ fill: 0, index: k })); this._updateState(this.rate); } registerOnChange(fn) { this.onChange = fn; } registerOnTouched(fn) { this.onTouched = fn; } reset() { this.leave.emit(this.nextRate); this._updateState(this.rate); } setDisabledState(isDisabled) { this.disabled = isDisabled; } update(value, internalChange = true) { const newRate = getValueInRange(value, this.max, 0); if (this.isInteractive() && this.rate !== newRate) { this.rate = newRate; this.rateChange.emit(this.rate); } if (internalChange) { this.onChange(this.rate); this.onTouched(); } this._updateState(this.rate); } writeValue(value) { this.update(value, false); this._changeDetectorRef.markForCheck(); } _updateState(nextValue) { this.nextRate = nextValue; this.contexts.forEach((context, index) => context.fill = Math.round(getValueInRange(nextValue - index, 1, 0) * 100)); } } NgbRating.ɵfac = function NgbRating_Factory(t) { return new (t || NgbRating)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbRatingConfig), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"])); }; NgbRating.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbRating, selectors: [["ngb-rating"]], contentQueries: function NgbRating_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵcontentQuery"](dirIndex, _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"], true); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.starTemplateFromContent = _t.first); } }, hostAttrs: ["role", "slider", "aria-valuemin", "0", 1, "d-inline-flex"], hostVars: 5, hostBindings: function NgbRating_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("blur", function NgbRating_blur_HostBindingHandler() { return ctx.handleBlur(); })("keydown", function NgbRating_keydown_HostBindingHandler($event) { return ctx.handleKeyDown($event); })("mouseleave", function NgbRating_mouseleave_HostBindingHandler() { return ctx.reset(); }); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵhostProperty"]("tabindex", ctx.disabled ? -1 : 0); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-valuemax", ctx.max)("aria-valuenow", ctx.nextRate)("aria-valuetext", ctx.ariaValueText())("aria-disabled", ctx.readonly ? true : null); } }, inputs: { max: "max", readonly: "readonly", rate: "rate", resettable: "resettable", starTemplate: "starTemplate" }, outputs: { hover: "hover", leave: "leave", rateChange: "rateChange" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([NGB_RATING_VALUE_ACCESSOR]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]], decls: 3, vars: 1, consts: [["t", ""], ["ngFor", "", 3, "ngForOf"], [1, "sr-only"], [3, "mouseenter", "click"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function NgbRating_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbRating_ng_template_0_Template, 1, 1, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbRating_ng_template_2_Template, 4, 5, "ng-template", 1); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.contexts); } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgForOf"], _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgTemplateOutlet"]], encapsulation: 2, changeDetection: 0 }); NgbRating.ctorParameters = () => [ { type: NgbRatingConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] } ]; NgbRating.propDecorators = { max: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], rate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], readonly: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], resettable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], starTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], starTemplateFromContent: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"], { static: false },] }], hover: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], leave: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], rateChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbRating, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-rating', changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, host: { 'class': 'd-inline-flex', '[tabindex]': 'disabled ? -1 : 0', 'role': 'slider', 'aria-valuemin': '0', '[attr.aria-valuemax]': 'max', '[attr.aria-valuenow]': 'nextRate', '[attr.aria-valuetext]': 'ariaValueText()', '[attr.aria-disabled]': 'readonly ? true : null', '(blur)': 'handleBlur()', '(keydown)': 'handleKeyDown($event)', '(mouseleave)': 'reset()' }, template: ` {{ fill === 100 ? '★' : '☆' }} ({{ index < nextRate ? '*' : ' ' }}) `, providers: [NGB_RATING_VALUE_ACCESSOR] }] }], function () { return [{ type: NgbRatingConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }]; }, { hover: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], leave: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], rateChange: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], max: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], readonly: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], rate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], resettable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], starTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], starTemplateFromContent: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"], { static: false }] }] }); })(); class NgbRatingModule { } NgbRatingModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbRatingModule }); NgbRatingModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbRatingModule_Factory(t) { return new (t || NgbRatingModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbRatingModule, { declarations: function () { return [NgbRating]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]; }, exports: function () { return [NgbRating]; } }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbRatingModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: [NgbRating], exports: [NgbRating], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]] }] }], null, null); })(); class NgbTime { constructor(hour, minute, second) { this.hour = toInteger(hour); this.minute = toInteger(minute); this.second = toInteger(second); } changeHour(step = 1) { this.updateHour((isNaN(this.hour) ? 0 : this.hour) + step); } updateHour(hour) { if (isNumber(hour)) { this.hour = (hour < 0 ? 24 + hour : hour) % 24; } else { this.hour = NaN; } } changeMinute(step = 1) { this.updateMinute((isNaN(this.minute) ? 0 : this.minute) + step); } updateMinute(minute) { if (isNumber(minute)) { this.minute = minute % 60 < 0 ? 60 + minute % 60 : minute % 60; this.changeHour(Math.floor(minute / 60)); } else { this.minute = NaN; } } changeSecond(step = 1) { this.updateSecond((isNaN(this.second) ? 0 : this.second) + step); } updateSecond(second) { if (isNumber(second)) { this.second = second < 0 ? 60 + second % 60 : second % 60; this.changeMinute(Math.floor(second / 60)); } else { this.second = NaN; } } isValid(checkSecs = true) { return isNumber(this.hour) && isNumber(this.minute) && (checkSecs ? isNumber(this.second) : true); } toString() { return `${this.hour || 0}:${this.minute || 0}:${this.second || 0}`; } } /** * A configuration service for the [`NgbTimepicker`](#/components/timepicker/api#NgbTimepicker) component. * * You can inject this service, typically in your root component, and customize the values of its properties in * order to provide default values for all the timepickers used in the application. */ class NgbTimepickerConfig { constructor() { this.meridian = false; this.spinners = true; this.seconds = false; this.hourStep = 1; this.minuteStep = 1; this.secondStep = 1; this.disabled = false; this.readonlyInputs = false; this.size = 'medium'; } } NgbTimepickerConfig.ɵfac = function NgbTimepickerConfig_Factory(t) { return new (t || NgbTimepickerConfig)(); }; NgbTimepickerConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbTimepickerConfig_Factory() { return new NgbTimepickerConfig(); }, token: NgbTimepickerConfig, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTimepickerConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return []; }, null); })(); function NGB_DATEPICKER_TIME_ADAPTER_FACTORY() { return new NgbTimeStructAdapter(); } /** * An abstract service that does the conversion between the internal timepicker `NgbTimeStruct` model and * any provided user time model `T`, ex. a string, a native date, etc. * * The adapter is used **only** for conversion when binding timepicker to a form control, * ex. `[(ngModel)]="userTimeModel"`. Here `userTimeModel` can be of any type. * * The default timepicker implementation assumes we use `NgbTimeStruct` as a user model. * * See the [custom time adapter demo](#/components/timepicker/examples#adapter) for an example. * * @since 2.2.0 */ class NgbTimeAdapter { } NgbTimeAdapter.ɵfac = function NgbTimeAdapter_Factory(t) { return new (t || NgbTimeAdapter)(); }; NgbTimeAdapter.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY, token: NgbTimeAdapter, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTimeAdapter, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY }] }], null, null); })(); class NgbTimeStructAdapter extends NgbTimeAdapter { /** * Converts a NgbTimeStruct value into NgbTimeStruct value */ fromModel(time) { return (time && isInteger(time.hour) && isInteger(time.minute)) ? { hour: time.hour, minute: time.minute, second: isInteger(time.second) ? time.second : null } : null; } /** * Converts a NgbTimeStruct value into NgbTimeStruct value */ toModel(time) { return (time && isInteger(time.hour) && isInteger(time.minute)) ? { hour: time.hour, minute: time.minute, second: isInteger(time.second) ? time.second : null } : null; } } NgbTimeStructAdapter.ɵfac = function NgbTimeStructAdapter_Factory(t) { return ɵNgbTimeStructAdapter_BaseFactory(t || NgbTimeStructAdapter); }; NgbTimeStructAdapter.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbTimeStructAdapter, factory: NgbTimeStructAdapter.ɵfac }); const ɵNgbTimeStructAdapter_BaseFactory = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵgetInheritedFactory"](NgbTimeStructAdapter); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTimeStructAdapter, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], null, null); })(); function NGB_TIMEPICKER_I18N_FACTORY(locale) { return new NgbTimepickerI18nDefault(locale); } /** * Type of the service supplying day periods (for example, 'AM' and 'PM') to NgbTimepicker component. * The default implementation of this service honors the Angular locale, and uses the registered locale data, * as explained in the Angular i18n guide. */ class NgbTimepickerI18n { } NgbTimepickerI18n.ɵfac = function NgbTimepickerI18n_Factory(t) { return new (t || NgbTimepickerI18n)(); }; NgbTimepickerI18n.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbTimepickerI18n_Factory() { return NGB_TIMEPICKER_I18N_FACTORY(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_core__WEBPACK_IMPORTED_MODULE_0__["LOCALE_ID"])); }, token: NgbTimepickerI18n, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTimepickerI18n, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root', useFactory: NGB_TIMEPICKER_I18N_FACTORY, deps: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["LOCALE_ID"]] }] }], null, null); })(); class NgbTimepickerI18nDefault extends NgbTimepickerI18n { constructor(locale) { super(); this._periods = Object(_angular_common__WEBPACK_IMPORTED_MODULE_1__["getLocaleDayPeriods"])(locale, _angular_common__WEBPACK_IMPORTED_MODULE_1__["FormStyle"].Standalone, _angular_common__WEBPACK_IMPORTED_MODULE_1__["TranslationWidth"].Narrow); } getMorningPeriod() { return this._periods[0]; } getAfternoonPeriod() { return this._periods[1]; } } NgbTimepickerI18nDefault.ɵfac = function NgbTimepickerI18nDefault_Factory(t) { return new (t || NgbTimepickerI18nDefault)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["LOCALE_ID"])); }; NgbTimepickerI18nDefault.ɵprov = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"]({ token: NgbTimepickerI18nDefault, factory: NgbTimepickerI18nDefault.ɵfac }); NgbTimepickerI18nDefault.ctorParameters = () => [ { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["LOCALE_ID"],] }] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTimepickerI18nDefault, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"] }], function () { return [{ type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["LOCALE_ID"]] }] }]; }, null); })(); const FILTER_REGEX = /[^0-9]/g; const NGB_TIMEPICKER_VALUE_ACCESSOR = { provide: _angular_forms__WEBPACK_IMPORTED_MODULE_4__["NG_VALUE_ACCESSOR"], useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbTimepicker), multi: true }; /** * A directive that helps with wth picking hours, minutes and seconds. */ class NgbTimepicker { constructor(_config, _ngbTimeAdapter, _cd, i18n) { this._config = _config; this._ngbTimeAdapter = _ngbTimeAdapter; this._cd = _cd; this.i18n = i18n; this.onChange = (_) => { }; this.onTouched = () => { }; this.meridian = _config.meridian; this.spinners = _config.spinners; this.seconds = _config.seconds; this.hourStep = _config.hourStep; this.minuteStep = _config.minuteStep; this.secondStep = _config.secondStep; this.disabled = _config.disabled; this.readonlyInputs = _config.readonlyInputs; this.size = _config.size; } /** * The number of hours to add/subtract when clicking hour spinners. */ set hourStep(step) { this._hourStep = isInteger(step) ? step : this._config.hourStep; } get hourStep() { return this._hourStep; } /** * The number of minutes to add/subtract when clicking minute spinners. */ set minuteStep(step) { this._minuteStep = isInteger(step) ? step : this._config.minuteStep; } get minuteStep() { return this._minuteStep; } /** * The number of seconds to add/subtract when clicking second spinners. */ set secondStep(step) { this._secondStep = isInteger(step) ? step : this._config.secondStep; } get secondStep() { return this._secondStep; } writeValue(value) { const structValue = this._ngbTimeAdapter.fromModel(value); this.model = structValue ? new NgbTime(structValue.hour, structValue.minute, structValue.second) : new NgbTime(); if (!this.seconds && (!structValue || !isNumber(structValue.second))) { this.model.second = 0; } this._cd.markForCheck(); } registerOnChange(fn) { this.onChange = fn; } registerOnTouched(fn) { this.onTouched = fn; } setDisabledState(isDisabled) { this.disabled = isDisabled; } changeHour(step) { this.model.changeHour(step); this.propagateModelChange(); } changeMinute(step) { this.model.changeMinute(step); this.propagateModelChange(); } changeSecond(step) { this.model.changeSecond(step); this.propagateModelChange(); } updateHour(newVal) { const isPM = this.model.hour >= 12; const enteredHour = toInteger(newVal); if (this.meridian && (isPM && enteredHour < 12 || !isPM && enteredHour === 12)) { this.model.updateHour(enteredHour + 12); } else { this.model.updateHour(enteredHour); } this.propagateModelChange(); } updateMinute(newVal) { this.model.updateMinute(toInteger(newVal)); this.propagateModelChange(); } updateSecond(newVal) { this.model.updateSecond(toInteger(newVal)); this.propagateModelChange(); } toggleMeridian() { if (this.meridian) { this.changeHour(12); } } formatInput(input) { input.value = input.value.replace(FILTER_REGEX, ''); } formatHour(value) { if (isNumber(value)) { if (this.meridian) { return padNumber(value % 12 === 0 ? 12 : value % 12); } else { return padNumber(value % 24); } } else { return padNumber(NaN); } } formatMinSec(value) { return padNumber(isNumber(value) ? value : NaN); } get isSmallSize() { return this.size === 'small'; } get isLargeSize() { return this.size === 'large'; } ngOnChanges(changes) { if (changes['seconds'] && !this.seconds && this.model && !isNumber(this.model.second)) { this.model.second = 0; this.propagateModelChange(false); } } propagateModelChange(touched = true) { if (touched) { this.onTouched(); } if (this.model.isValid(this.seconds)) { this.onChange(this._ngbTimeAdapter.toModel({ hour: this.model.hour, minute: this.model.minute, second: this.model.second })); } else { this.onChange(this._ngbTimeAdapter.toModel(null)); } } } NgbTimepicker.ɵfac = function NgbTimepicker_Factory(t) { return new (t || NgbTimepicker)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbTimepickerConfig), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbTimeAdapter), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbTimepickerI18n)); }; NgbTimepicker.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbTimepicker, selectors: [["ngb-timepicker"]], inputs: { meridian: "meridian", spinners: "spinners", seconds: "seconds", hourStep: "hourStep", minuteStep: "minuteStep", secondStep: "secondStep", readonlyInputs: "readonlyInputs", size: "size" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([NGB_TIMEPICKER_VALUE_ACCESSOR]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]], decls: 16, vars: 25, consts: function () { let i18n_58; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_HH$$FESM2015_NG_BOOTSTRAP_JS_59 = goog.getMsg("HH"); i18n_58 = MSG_EXTERNAL_ngb_timepicker_HH$$FESM2015_NG_BOOTSTRAP_JS_59; } else { i18n_58 = $localize `:@@ngb.timepicker.HH␟ce676ab1d6d98f85c836381cf100a4a91ef95a1f␟4043638465245303811:HH`; } let i18n_60; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_hours$$FESM2015_NG_BOOTSTRAP_JS_61 = goog.getMsg("Hours"); i18n_60 = MSG_EXTERNAL_ngb_timepicker_hours$$FESM2015_NG_BOOTSTRAP_JS_61; } else { i18n_60 = $localize `:@@ngb.timepicker.hours␟3bbce5fef7e1151da052a4e529453edb340e3912␟8070396816726827304:Hours`; } let i18n_62; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_MM$$FESM2015_NG_BOOTSTRAP_JS_63 = goog.getMsg("MM"); i18n_62 = MSG_EXTERNAL_ngb_timepicker_MM$$FESM2015_NG_BOOTSTRAP_JS_63; } else { i18n_62 = $localize `:@@ngb.timepicker.MM␟72c8edf6a50068a05bde70991e36b1e881f4ca54␟1647282246509919852:MM`; } let i18n_64; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_minutes$$FESM2015_NG_BOOTSTRAP_JS_65 = goog.getMsg("Minutes"); i18n_64 = MSG_EXTERNAL_ngb_timepicker_minutes$$FESM2015_NG_BOOTSTRAP_JS_65; } else { i18n_64 = $localize `:@@ngb.timepicker.minutes␟41e62daa962947c0d23ded0981975d1bddf0bf38␟5531237363767747080:Minutes`; } let i18n_66; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_increment_hours$$FESM2015_NG_BOOTSTRAP_JS__67 = goog.getMsg("Increment hours"); i18n_66 = MSG_EXTERNAL_ngb_timepicker_increment_hours$$FESM2015_NG_BOOTSTRAP_JS__67; } else { i18n_66 = $localize `:@@ngb.timepicker.increment-hours␟cb74bc1d625a6c1742f0d7d47306cf495780c218␟5939278348542933629:Increment hours`; } let i18n_68; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_decrement_hours$$FESM2015_NG_BOOTSTRAP_JS__69 = goog.getMsg("Decrement hours"); i18n_68 = MSG_EXTERNAL_ngb_timepicker_decrement_hours$$FESM2015_NG_BOOTSTRAP_JS__69; } else { i18n_68 = $localize `:@@ngb.timepicker.decrement-hours␟147c7a19429da7d999e247d22e33fee370b1691b␟3651829882940481818:Decrement hours`; } let i18n_70; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_increment_minutes$$FESM2015_NG_BOOTSTRAP_JS__71 = goog.getMsg("Increment minutes"); i18n_70 = MSG_EXTERNAL_ngb_timepicker_increment_minutes$$FESM2015_NG_BOOTSTRAP_JS__71; } else { i18n_70 = $localize `:@@ngb.timepicker.increment-minutes␟f5a4a3bc05e053f6732475d0e74875ec01c3a348␟180147720391025024:Increment minutes`; } let i18n_72; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_decrement_minutes$$FESM2015_NG_BOOTSTRAP_JS__73 = goog.getMsg("Decrement minutes"); i18n_72 = MSG_EXTERNAL_ngb_timepicker_decrement_minutes$$FESM2015_NG_BOOTSTRAP_JS__73; } else { i18n_72 = $localize `:@@ngb.timepicker.decrement-minutes␟c1a6899e529c096da5b660385d4e77fe1f7ad271␟7447789825403243588:Decrement minutes`; } let i18n_74; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_SS$$FESM2015_NG_BOOTSTRAP_JS__75 = goog.getMsg("SS"); i18n_74 = MSG_EXTERNAL_ngb_timepicker_SS$$FESM2015_NG_BOOTSTRAP_JS__75; } else { i18n_74 = $localize `:@@ngb.timepicker.SS␟ebe38d36a40a2383c5fefa9b4608ffbda08bd4a3␟3628127143071124194:SS`; } let i18n_76; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_seconds$$FESM2015_NG_BOOTSTRAP_JS__77 = goog.getMsg("Seconds"); i18n_76 = MSG_EXTERNAL_ngb_timepicker_seconds$$FESM2015_NG_BOOTSTRAP_JS__77; } else { i18n_76 = $localize `:@@ngb.timepicker.seconds␟4f2ed9e71a7c981db3e50ae2fedb28aff2ec4e6c␟8874012390997067175:Seconds`; } let i18n_78; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_increment_seconds$$FESM2015_NG_BOOTSTRAP_JS___79 = goog.getMsg("Increment seconds"); i18n_78 = MSG_EXTERNAL_ngb_timepicker_increment_seconds$$FESM2015_NG_BOOTSTRAP_JS___79; } else { i18n_78 = $localize `:@@ngb.timepicker.increment-seconds␟912322ecee7d659d04dcf494a70e22e49d334b26␟5364772110539092174:Increment seconds`; } let i18n_80; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_decrement_seconds$$FESM2015_NG_BOOTSTRAP_JS___81 = goog.getMsg("Decrement seconds"); i18n_80 = MSG_EXTERNAL_ngb_timepicker_decrement_seconds$$FESM2015_NG_BOOTSTRAP_JS___81; } else { i18n_80 = $localize `:@@ngb.timepicker.decrement-seconds␟5db47ac104294243a70eb9124fbea9d0004ddf69␟753633511487974857:Decrement seconds`; } let i18n_82; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_PM$$FESM2015_NG_BOOTSTRAP_JS___83 = goog.getMsg("{$interpolation}", { "interpolation": "\uFFFD0\uFFFD" }); i18n_82 = MSG_EXTERNAL_ngb_timepicker_PM$$FESM2015_NG_BOOTSTRAP_JS___83; } else { i18n_82 = $localize `:@@ngb.timepicker.PM␟8d6e691e10306c1b34c6b26805151aaea320ef7f␟3564199131264287502:${"\uFFFD0\uFFFD"}:INTERPOLATION:`; } let i18n_84; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_timepicker_AM$$FESM2015_NG_BOOTSTRAP_JS___85 = goog.getMsg("{$interpolation}", { "interpolation": "\uFFFD0\uFFFD" }); i18n_84 = MSG_EXTERNAL_ngb_timepicker_AM$$FESM2015_NG_BOOTSTRAP_JS___85; } else { i18n_84 = $localize `:@@ngb.timepicker.AM␟69a1f176a93998876952adac57c3bc3863b6105e␟4592818992509942761:${"\uFFFD0\uFFFD"}:INTERPOLATION:`; } return [[3, "disabled"], [1, "ngb-tp"], [1, "ngb-tp-input-container", "ngb-tp-hour"], ["tabindex", "-1", "type", "button", "class", "btn btn-link", 3, "btn-sm", "btn-lg", "disabled", "click", 4, "ngIf"], ["type", "text", "maxlength", "2", "inputmode", "numeric", "placeholder", i18n_58, "aria-label", i18n_60, 1, "ngb-tp-input", "form-control", 3, "value", "readOnly", "disabled", "change", "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_62, "aria-label", i18n_64, 1, "ngb-tp-input", "form-control", 3, "value", "readOnly", "disabled", "change", "input", "keydown.ArrowUp", "keydown.ArrowDown"], ["class", "ngb-tp-spacer", 4, "ngIf"], ["class", "ngb-tp-input-container ngb-tp-second", 4, "ngIf"], ["class", "ngb-tp-meridian", 4, "ngIf"], ["tabindex", "-1", "type", "button", 1, "btn", "btn-link", 3, "disabled", "click"], [1, "chevron", "ngb-tp-chevron"], [1, "sr-only"], i18n_66, [1, "chevron", "ngb-tp-chevron", "bottom"], i18n_68, i18n_70, i18n_72, [1, "ngb-tp-input-container", "ngb-tp-second"], ["type", "text", "maxlength", "2", "inputmode", "numeric", "placeholder", i18n_74, "aria-label", i18n_76, 1, "ngb-tp-input", "form-control", 3, "value", "readOnly", "disabled", "change", "input", "keydown.ArrowUp", "keydown.ArrowDown"], i18n_78, i18n_80, [1, "ngb-tp-meridian"], ["type", "button", 1, "btn", "btn-outline-primary", 3, "disabled", "click"], [4, "ngIf", "ngIfElse"], ["am", ""], i18n_82, i18n_84]; }, template: function NgbTimepicker_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](0, "fieldset", 0); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](2, "div", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](3, NgbTimepicker_button_3_Template, 4, 7, "button", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](4, "input", 4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("change", function NgbTimepicker_Template_input_change_4_listener($event) { return ctx.updateHour($event.target.value); })("input", function NgbTimepicker_Template_input_input_4_listener($event) { return ctx.formatInput($event.target); })("keydown.ArrowUp", function NgbTimepicker_Template_input_keydown_ArrowUp_4_listener($event) { ctx.changeHour(ctx.hourStep); return $event.preventDefault(); })("keydown.ArrowDown", function NgbTimepicker_Template_input_keydown_ArrowDown_4_listener($event) { ctx.changeHour(-ctx.hourStep); return $event.preventDefault(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](5, NgbTimepicker_button_5_Template, 4, 7, "button", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](6, "div", 5); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtext"](7, ":"); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](8, "div", 6); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](9, NgbTimepicker_button_9_Template, 4, 7, "button", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](10, "input", 7); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("change", function NgbTimepicker_Template_input_change_10_listener($event) { return ctx.updateMinute($event.target.value); })("input", function NgbTimepicker_Template_input_input_10_listener($event) { return ctx.formatInput($event.target); })("keydown.ArrowUp", function NgbTimepicker_Template_input_keydown_ArrowUp_10_listener($event) { ctx.changeMinute(ctx.minuteStep); return $event.preventDefault(); })("keydown.ArrowDown", function NgbTimepicker_Template_input_keydown_ArrowDown_10_listener($event) { ctx.changeMinute(-ctx.minuteStep); return $event.preventDefault(); }); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](11, NgbTimepicker_button_11_Template, 4, 7, "button", 3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](12, NgbTimepicker_div_12_Template, 2, 0, "div", 8); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](13, NgbTimepicker_div_13_Template, 4, 9, "div", 9); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](14, NgbTimepicker_div_14_Template, 1, 0, "div", 8); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](15, NgbTimepicker_div_15_Template, 5, 9, "div", 10); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("disabled", ctx.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("disabled", ctx.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](3); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.spinners); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("form-control-sm", ctx.isSmallSize)("form-control-lg", ctx.isLargeSize); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("value", ctx.formatHour(ctx.model == null ? null : ctx.model.hour))("readOnly", ctx.readonlyInputs)("disabled", ctx.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.spinners); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.spinners); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("form-control-sm", ctx.isSmallSize)("form-control-lg", ctx.isLargeSize); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("value", ctx.formatMinSec(ctx.model == null ? null : ctx.model.minute))("readOnly", ctx.readonlyInputs)("disabled", ctx.disabled); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.spinners); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.seconds); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.seconds); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.meridian); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.meridian); } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgIf"]], styles: ["ngb-timepicker{font-size:1rem}.ngb-tp{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.ngb-tp-input-container{width:4em}.ngb-tp-chevron:before{-webkit-transform:rotate(-45deg);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{-webkit-transform:rotate(135deg);top:-.3em;transform:rotate(135deg)}.ngb-tp-input{text-align:center}.ngb-tp-hour,.ngb-tp-meridian,.ngb-tp-minute,.ngb-tp-second{-ms-flex-align:center;-ms-flex-direction:column;-ms-flex-pack:distribute;align-items:center;display:-ms-flexbox;display:flex;flex-direction:column;justify-content:space-around}.ngb-tp-spacer{text-align:center;width:1em}"], encapsulation: 2 }); NgbTimepicker.ctorParameters = () => [ { type: NgbTimepickerConfig }, { type: NgbTimeAdapter }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: NgbTimepickerI18n } ]; NgbTimepicker.propDecorators = { meridian: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], spinners: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], seconds: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], hourStep: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], minuteStep: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], secondStep: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], readonlyInputs: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTimepicker, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-timepicker', encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, template: `
:
:
`, providers: [NGB_TIMEPICKER_VALUE_ACCESSOR], styles: ["ngb-timepicker{font-size:1rem}.ngb-tp{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex}.ngb-tp-input-container{width:4em}.ngb-tp-chevron:before{-webkit-transform:rotate(-45deg);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{-webkit-transform:rotate(135deg);top:-.3em;transform:rotate(135deg)}.ngb-tp-input{text-align:center}.ngb-tp-hour,.ngb-tp-meridian,.ngb-tp-minute,.ngb-tp-second{-ms-flex-align:center;-ms-flex-direction:column;-ms-flex-pack:distribute;align-items:center;display:-ms-flexbox;display:flex;flex-direction:column;justify-content:space-around}.ngb-tp-spacer{text-align:center;width:1em}"] }] }], function () { return [{ type: NgbTimepickerConfig }, { type: NgbTimeAdapter }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: NgbTimepickerI18n }]; }, { meridian: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], spinners: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], seconds: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], hourStep: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], minuteStep: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], secondStep: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], readonlyInputs: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], size: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); class NgbTimepickerModule { } NgbTimepickerModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbTimepickerModule }); NgbTimepickerModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbTimepickerModule_Factory(t) { return new (t || NgbTimepickerModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbTimepickerModule, { declarations: function () { return [NgbTimepicker]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]; }, exports: function () { return [NgbTimepicker]; } }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTimepickerModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: [NgbTimepicker], exports: [NgbTimepicker], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]] }] }], null, null); })(); /** * Configuration service for the NgbToast component. You can inject this service, typically in your root component, * and customize the values of its properties in order to provide default values for all the toasts used in the * application. * * @since 5.0.0 */ class NgbToastConfig { constructor(ngbConfig) { this.autohide = true; this.delay = 500; this.ariaLive = 'polite'; this.animation = ngbConfig.animation; } } NgbToastConfig.ɵfac = function NgbToastConfig_Factory(t) { return new (t || NgbToastConfig)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](NgbConfig)); }; NgbToastConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbToastConfig_Factory() { return new NgbToastConfig(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(NgbConfig)); }, token: NgbToastConfig, providedIn: "root" }); NgbToastConfig.ctorParameters = () => [ { type: NgbConfig } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbToastConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return [{ type: NgbConfig }]; }, null); })(); const ngbToastFadeInTransition = ({ classList }) => { classList.remove('hide'); classList.add('showing'); return () => { classList.remove('showing'); classList.add('show'); }; }; const ngbToastFadeOutTransition = ({ classList }) => { classList.remove('show'); return () => { classList.add('hide'); }; }; /** * This directive allows the usage of HTML markup or other directives * inside of the toast's header. * * @since 5.0.0 */ class NgbToastHeader { } NgbToastHeader.ɵfac = function NgbToastHeader_Factory(t) { return new (t || NgbToastHeader)(); }; NgbToastHeader.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbToastHeader, selectors: [["", "ngbToastHeader", ""]] }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbToastHeader, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbToastHeader]' }] }], null, null); })(); /** * Toasts provide feedback messages as notifications to the user. * Goal is to mimic the push notifications available both on mobile and desktop operating systems. * * @since 5.0.0 */ class NgbToast { constructor(ariaLive, config, _zone, _element) { this.ariaLive = ariaLive; this._zone = _zone; this._element = _element; /** * A template like `` can be * used in the projected content to allow markup usage. */ this.contentHeaderTpl = null; /** * An event fired after the animation triggered by calling `.show()` method has finished. * * @since 8.0.0 */ this.shown = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event fired after the animation triggered by calling `.hide()` method has finished. * * It can only occur in 2 different scenarios: * - `autohide` timeout fires * - user clicks on a closing cross * * Additionally this output is purely informative. The toast won't be removed from DOM automatically, it's up * to the user to take care of that. * * @since 8.0.0 */ this.hidden = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); if (this.ariaLive == null) { this.ariaLive = config.ariaLive; } this.delay = config.delay; this.autohide = config.autohide; this.animation = config.animation; } ngAfterContentInit() { this._zone.onStable.asObservable().pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["take"])(1)).subscribe(() => { this._init(); this.show(); }); } ngOnChanges(changes) { if ('autohide' in changes) { this._clearTimeout(); this._init(); } } /** * Triggers toast closing programmatically. * * The returned observable will emit and be completed once the closing transition has finished. * If the animations are turned off this happens synchronously. * * Alternatively you could listen or subscribe to the `(hidden)` output * * @since 8.0.0 */ hide() { this._clearTimeout(); const transition = ngbRunTransition(this._element.nativeElement, ngbToastFadeOutTransition, { animation: this.animation, runningTransition: 'stop' }); transition.subscribe(() => { this.hidden.emit(); }); return transition; } /** * Triggers toast opening programmatically. * * The returned observable will emit and be completed once the opening transition has finished. * If the animations are turned off this happens synchronously. * * Alternatively you could listen or subscribe to the `(shown)` output * * @since 8.0.0 */ show() { const transition = ngbRunTransition(this._element.nativeElement, ngbToastFadeInTransition, { animation: this.animation, runningTransition: 'continue', }); transition.subscribe(() => { this.shown.emit(); }); return transition; } _init() { if (this.autohide && !this._timeoutID) { this._timeoutID = setTimeout(() => this.hide(), this.delay); } } _clearTimeout() { if (this._timeoutID) { clearTimeout(this._timeoutID); this._timeoutID = null; } } } NgbToast.ɵfac = function NgbToast_Factory(t) { return new (t || NgbToast)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinjectAttribute"]('aria-live'), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbToastConfig), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"])); }; NgbToast.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbToast, selectors: [["ngb-toast"]], contentQueries: function NgbToast_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵstaticContentQuery"](dirIndex, NgbToastHeader, true, _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"]); } if (rf & 2) { let _t; _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵloadQuery"]()) && (ctx.contentHeaderTpl = _t.first); } }, hostAttrs: ["role", "alert", "aria-atomic", "true", 1, "toast"], hostVars: 3, hostBindings: function NgbToast_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-live", ctx.ariaLive); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("fade", ctx.animation); } }, inputs: { delay: "delay", autohide: "autohide", animation: "animation", header: "header" }, outputs: { shown: "shown", hidden: "hidden" }, exportAs: ["ngbToast"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]], ngContentSelectors: _c5, decls: 5, vars: 1, consts: function () { let i18n_86; if (typeof ngI18nClosureMode !== "undefined" && ngI18nClosureMode) { const MSG_EXTERNAL_ngb_toast_close_aria$$FESM2015_NG_BOOTSTRAP_JS__87 = goog.getMsg("Close"); i18n_86 = MSG_EXTERNAL_ngb_toast_close_aria$$FESM2015_NG_BOOTSTRAP_JS__87; } else { i18n_86 = $localize `:@@ngb.toast.close-aria␟f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8␟7819314041543176992:Close`; } return [["headerTpl", ""], [3, "ngIf"], [1, "toast-body"], [1, "mr-auto"], [1, "toast-header"], [3, "ngTemplateOutlet"], ["type", "button", "aria-label", i18n_86, 1, "close", 3, "click"], ["aria-hidden", "true"]]; }, template: function NgbToast_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojectionDef"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbToast_ng_template_0_Template, 2, 1, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbToast_ng_template_2_Template, 5, 1, "ng-template", 1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](3, "div", 2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojection"](4); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngIf", ctx.contentHeaderTpl || ctx.header); } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgIf"], _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgTemplateOutlet"]], styles: [".ngb-toasts{margin:.5em;position:fixed;right:0;top:0;z-index:1200}ngb-toast{display:block}ngb-toast .toast-header .close{margin-bottom:.25rem;margin-left:auto}"], encapsulation: 2 }); NgbToast.ctorParameters = () => [ { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Attribute"], args: ['aria-live',] }] }, { type: NgbToastConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] } ]; NgbToast.propDecorators = { animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], delay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], autohide: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], header: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], contentHeaderTpl: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbToastHeader, { read: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"], static: true },] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbToast, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-toast', exportAs: 'ngbToast', encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, host: { 'role': 'alert', '[attr.aria-live]': 'ariaLive', 'aria-atomic': 'true', 'class': 'toast', '[class.fade]': 'animation' }, template: ` {{header}}
`, styles: [".ngb-toasts{margin:.5em;position:fixed;right:0;top:0;z-index:1200}ngb-toast{display:block}ngb-toast .toast-header .close{margin-bottom:.25rem;margin-left:auto}"] }] }], function () { return [{ type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Attribute"], args: ['aria-live'] }] }, { type: NgbToastConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }]; }, { contentHeaderTpl: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ContentChild"], args: [NgbToastHeader, { read: _angular_core__WEBPACK_IMPORTED_MODULE_0__["TemplateRef"], static: true }] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], delay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], autohide: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], header: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); class NgbToastModule { } NgbToastModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbToastModule }); NgbToastModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbToastModule_Factory(t) { return new (t || NgbToastModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbToastModule, { declarations: function () { return [NgbToast, NgbToastHeader]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]; }, exports: function () { return [NgbToast, NgbToastHeader]; } }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbToastModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: [NgbToast, NgbToastHeader], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]], exports: [NgbToast, NgbToastHeader] }] }], null, null); })(); /** * A configuration service for the [`NgbTooltip`](#/components/tooltip/api#NgbTooltip) component. * * You can inject this service, typically in your root component, and customize the values of its properties in * order to provide default values for all the tooltips used in the application. */ class NgbTooltipConfig { constructor(ngbConfig) { this.autoClose = true; this.placement = 'auto'; this.triggers = 'hover focus'; this.disableTooltip = false; this.openDelay = 0; this.closeDelay = 0; this.animation = ngbConfig.animation; } } NgbTooltipConfig.ɵfac = function NgbTooltipConfig_Factory(t) { return new (t || NgbTooltipConfig)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](NgbConfig)); }; NgbTooltipConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbTooltipConfig_Factory() { return new NgbTooltipConfig(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(NgbConfig)); }, token: NgbTooltipConfig, providedIn: "root" }); NgbTooltipConfig.ctorParameters = () => [ { type: NgbConfig } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTooltipConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return [{ type: NgbConfig }]; }, null); })(); let nextId$4 = 0; class NgbTooltipWindow { } NgbTooltipWindow.ɵfac = function NgbTooltipWindow_Factory(t) { return new (t || NgbTooltipWindow)(); }; NgbTooltipWindow.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbTooltipWindow, selectors: [["ngb-tooltip-window"]], hostAttrs: ["role", "tooltip"], hostVars: 5, hostBindings: function NgbTooltipWindow_HostBindings(rf, ctx) { if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵhostProperty"]("id", ctx.id); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassMap"]("tooltip" + (ctx.tooltipClass ? " " + ctx.tooltipClass : "")); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("fade", ctx.animation); } }, inputs: { animation: "animation", id: "id", tooltipClass: "tooltipClass" }, ngContentSelectors: _c5, decls: 3, vars: 0, consts: [[1, "arrow"], [1, "tooltip-inner"]], template: function NgbTooltipWindow_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojectionDef"](); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelement"](0, "div", 0); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementStart"](1, "div", 1); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵprojection"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵelementEnd"](); } }, styles: ["ngb-tooltip-window.bs-tooltip-bottom .arrow,ngb-tooltip-window.bs-tooltip-top .arrow{left:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-bottom-left .arrow,ngb-tooltip-window.bs-tooltip-top-left .arrow{left:1em}ngb-tooltip-window.bs-tooltip-bottom-right .arrow,ngb-tooltip-window.bs-tooltip-top-right .arrow{left:auto;right:.8rem}ngb-tooltip-window.bs-tooltip-left .arrow,ngb-tooltip-window.bs-tooltip-right .arrow{top:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-left-top .arrow,ngb-tooltip-window.bs-tooltip-right-top .arrow{top:.4rem}ngb-tooltip-window.bs-tooltip-left-bottom .arrow,ngb-tooltip-window.bs-tooltip-right-bottom .arrow{bottom:.4rem;top:auto}"], encapsulation: 2, changeDetection: 0 }); NgbTooltipWindow.propDecorators = { animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], tooltipClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTooltipWindow, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-tooltip-window', changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, host: { '[class]': '"tooltip" + (tooltipClass ? " " + tooltipClass : "")', '[class.fade]': 'animation', 'role': 'tooltip', '[id]': 'id' }, template: `
`, styles: ["ngb-tooltip-window.bs-tooltip-bottom .arrow,ngb-tooltip-window.bs-tooltip-top .arrow{left:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-bottom-left .arrow,ngb-tooltip-window.bs-tooltip-top-left .arrow{left:1em}ngb-tooltip-window.bs-tooltip-bottom-right .arrow,ngb-tooltip-window.bs-tooltip-top-right .arrow{left:auto;right:.8rem}ngb-tooltip-window.bs-tooltip-left .arrow,ngb-tooltip-window.bs-tooltip-right .arrow{top:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-left-top .arrow,ngb-tooltip-window.bs-tooltip-right-top .arrow{top:.4rem}ngb-tooltip-window.bs-tooltip-left-bottom .arrow,ngb-tooltip-window.bs-tooltip-right-bottom .arrow{bottom:.4rem;top:auto}"] }] }], null, { animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], tooltipClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); /** * A lightweight and extensible directive for fancy tooltip creation. */ class NgbTooltip { constructor(_elementRef, _renderer, injector, componentFactoryResolver, viewContainerRef, config, _ngZone, _document, _changeDetector, applicationRef) { this._elementRef = _elementRef; this._renderer = _renderer; this._ngZone = _ngZone; this._document = _document; this._changeDetector = _changeDetector; /** * An event emitted when the tooltip opening animation has finished. Contains no payload. */ this.shown = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); /** * An event emitted when the tooltip closing animation has finished. Contains no payload. */ this.hidden = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this._ngbTooltipWindowId = `ngb-tooltip-${nextId$4++}`; this._windowRef = null; this.animation = config.animation; this.autoClose = config.autoClose; this.placement = config.placement; this.triggers = config.triggers; this.container = config.container; this.disableTooltip = config.disableTooltip; this.tooltipClass = config.tooltipClass; this.openDelay = config.openDelay; this.closeDelay = config.closeDelay; this._popupService = new PopupService(NgbTooltipWindow, injector, viewContainerRef, _renderer, this._ngZone, componentFactoryResolver, applicationRef); this._zoneSubscription = _ngZone.onStable.subscribe(() => { if (this._windowRef) { positionElements(this._elementRef.nativeElement, this._windowRef.location.nativeElement, this.placement, this.container === 'body', 'bs-tooltip'); } }); } /** * The string content or a `TemplateRef` for the content to be displayed in the tooltip. * * If the content if falsy, the tooltip won't open. */ set ngbTooltip(value) { this._ngbTooltip = value; if (!value && this._windowRef) { this.close(); } } get ngbTooltip() { return this._ngbTooltip; } /** * Opens the tooltip. * * This is considered to be a "manual" triggering. * The `context` is an optional value to be injected into the tooltip template when it is created. */ open(context) { if (!this._windowRef && this._ngbTooltip && !this.disableTooltip) { const { windowRef, transition$ } = this._popupService.open(this._ngbTooltip, context, this.animation); this._windowRef = windowRef; this._windowRef.instance.animation = this.animation; this._windowRef.instance.tooltipClass = this.tooltipClass; this._windowRef.instance.id = this._ngbTooltipWindowId; this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-describedby', this._ngbTooltipWindowId); if (this.container === 'body') { this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement); } // We need to detect changes, because we don't know where .open() might be called from. // Ex. opening tooltip from one of lifecycle hooks that run after the CD // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception this._windowRef.changeDetectorRef.detectChanges(); // We need to mark for check, because tooltip won't work inside the OnPush component. // Ex. when we use expression like `{{ tooltip.isOpen() : 'opened' : 'closed' }}` // inside the template of an OnPush component and we change the tooltip from // open -> closed, the expression in question won't be updated unless we explicitly // mark the parent component to be checked. this._windowRef.changeDetectorRef.markForCheck(); ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [this._windowRef.location.nativeElement]); transition$.subscribe(() => this.shown.emit()); } } /** * Closes the tooltip. * * This is considered to be a "manual" triggering of the tooltip. */ close() { if (this._windowRef != null) { this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-describedby'); this._popupService.close(this.animation).subscribe(() => { this._windowRef = null; this.hidden.emit(); this._changeDetector.markForCheck(); }); } } /** * Toggles the tooltip. * * This is considered to be a "manual" triggering of the tooltip. */ toggle() { if (this._windowRef) { this.close(); } else { this.open(); } } /** * Returns `true`, if the popover is currently shown. */ isOpen() { return this._windowRef != null; } ngOnInit() { this._unregisterListenersFn = listenToTriggers(this._renderer, this._elementRef.nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay); } ngOnChanges({ tooltipClass }) { if (tooltipClass && this.isOpen()) { this._windowRef.instance.tooltipClass = tooltipClass.currentValue; } } ngOnDestroy() { this.close(); // This check is needed as it might happen that ngOnDestroy is called before ngOnInit // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199 if (this._unregisterListenersFn) { this._unregisterListenersFn(); } this._zoneSubscription.unsubscribe(); } } NgbTooltip.ɵfac = function NgbTooltip_Factory(t) { return new (t || NgbTooltip)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewContainerRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbTooltipConfig), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"])); }; NgbTooltip.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbTooltip, selectors: [["", "ngbTooltip", ""]], inputs: { animation: "animation", autoClose: "autoClose", placement: "placement", triggers: "triggers", container: "container", disableTooltip: "disableTooltip", tooltipClass: "tooltipClass", openDelay: "openDelay", closeDelay: "closeDelay", ngbTooltip: "ngbTooltip" }, outputs: { shown: "shown", hidden: "hidden" }, exportAs: ["ngbTooltip"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]] }); NgbTooltip.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewContainerRef"] }, { type: NgbTooltipConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"],] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"] } ]; NgbTooltip.propDecorators = { animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], autoClose: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], placement: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], triggers: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], container: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], disableTooltip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], tooltipClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], openDelay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], closeDelay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], ngbTooltip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTooltip, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: '[ngbTooltip]', exportAs: 'ngbTooltip' }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewContainerRef"] }, { type: NgbTooltipConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"] }]; }, { shown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], hidden: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], animation: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], autoClose: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], placement: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], triggers: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], container: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], disableTooltip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], tooltipClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], openDelay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], closeDelay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], ngbTooltip: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); class NgbTooltipModule { } NgbTooltipModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbTooltipModule }); NgbTooltipModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbTooltipModule_Factory(t) { return new (t || NgbTooltipModule)(); } }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbTooltipModule, { declarations: [NgbTooltip, NgbTooltipWindow], exports: [NgbTooltip] }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTooltipModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: [NgbTooltip, NgbTooltipWindow], exports: [NgbTooltip], entryComponents: [NgbTooltipWindow] }] }], null, null); })(); /** * A component that helps with text highlighting. * * If splits the `result` text into parts that contain the searched `term` and generates the HTML markup to simplify * highlighting: * * Ex. `result="Alaska"` and `term="as"` will produce `Alaska`. */ class NgbHighlight { constructor() { /** * The CSS class for `` elements wrapping the `term` inside the `result`. */ this.highlightClass = 'ngb-highlight'; } ngOnChanges(changes) { const result = toString(this.result); const terms = Array.isArray(this.term) ? this.term : [this.term]; const escapedTerms = terms.map(term => regExpEscape(toString(term))).filter(term => term); this.parts = escapedTerms.length ? result.split(new RegExp(`(${escapedTerms.join('|')})`, 'gmi')) : [result]; } } NgbHighlight.ɵfac = function NgbHighlight_Factory(t) { return new (t || NgbHighlight)(); }; NgbHighlight.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbHighlight, selectors: [["ngb-highlight"]], inputs: { highlightClass: "highlightClass", result: "result", term: "term" }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵNgOnChangesFeature"]], decls: 1, vars: 1, consts: [["ngFor", "", 3, "ngForOf"], [3, "class", 4, "ngIf", "ngIfElse"], ["even", ""]], template: function NgbHighlight_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbHighlight_ng_template_0_Template, 3, 2, "ng-template", 0); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.parts); } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgForOf"], _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgIf"]], styles: [".ngb-highlight{font-weight:700}"], encapsulation: 2, changeDetection: 0 }); NgbHighlight.propDecorators = { highlightClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], result: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], term: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbHighlight, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-highlight', changeDetection: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectionStrategy"].OnPush, encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, template: `` + `{{part}}{{part}}` + ``, styles: [".ngb-highlight{font-weight:700}"] }] }], function () { return []; }, { highlightClass: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], result: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], term: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); class NgbTypeaheadWindow { constructor() { this.activeIdx = 0; /** * Flag indicating if the first row should be active initially */ this.focusFirst = true; /** * A function used to format a given result before display. This function should return a formatted string without any * HTML markup */ this.formatter = toString; /** * Event raised when user selects a particular result row */ this.selectEvent = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this.activeChangeEvent = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); } hasActive() { return this.activeIdx > -1 && this.activeIdx < this.results.length; } getActive() { return this.results[this.activeIdx]; } markActive(activeIdx) { this.activeIdx = activeIdx; this._activeChanged(); } next() { if (this.activeIdx === this.results.length - 1) { this.activeIdx = this.focusFirst ? (this.activeIdx + 1) % this.results.length : -1; } else { this.activeIdx++; } this._activeChanged(); } prev() { if (this.activeIdx < 0) { this.activeIdx = this.results.length - 1; } else if (this.activeIdx === 0) { this.activeIdx = this.focusFirst ? this.results.length - 1 : -1; } else { this.activeIdx--; } this._activeChanged(); } resetActive() { this.activeIdx = this.focusFirst ? 0 : -1; this._activeChanged(); } select(item) { this.selectEvent.emit(item); } ngOnInit() { this.resetActive(); } _activeChanged() { this.activeChangeEvent.emit(this.activeIdx >= 0 ? this.id + '-' + this.activeIdx : undefined); } } NgbTypeaheadWindow.ɵfac = function NgbTypeaheadWindow_Factory(t) { return new (t || NgbTypeaheadWindow)(); }; NgbTypeaheadWindow.ɵcmp = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineComponent"]({ type: NgbTypeaheadWindow, selectors: [["ngb-typeahead-window"]], hostAttrs: ["role", "listbox", 1, "dropdown-menu", "show"], hostVars: 1, hostBindings: function NgbTypeaheadWindow_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("mousedown", function NgbTypeaheadWindow_mousedown_HostBindingHandler($event) { return $event.preventDefault(); }); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵhostProperty"]("id", ctx.id); } }, inputs: { focusFirst: "focusFirst", formatter: "formatter", id: "id", results: "results", term: "term", resultTemplate: "resultTemplate" }, outputs: { selectEvent: "select", activeChangeEvent: "activeChange" }, exportAs: ["ngbTypeaheadWindow"], decls: 3, vars: 1, consts: [["rt", ""], ["ngFor", "", 3, "ngForOf"], [3, "result", "term"], ["type", "button", "role", "option", 1, "dropdown-item", 3, "id", "mouseenter", "click"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function NgbTypeaheadWindow_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](0, NgbTypeaheadWindow_ng_template_0_Template, 1, 2, "ng-template", null, 0, _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplateRefExtractor"]); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵtemplate"](2, NgbTypeaheadWindow_ng_template_2_Template, 2, 9, "ng-template", 1); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵproperty"]("ngForOf", ctx.results); } }, directives: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["NgForOf"], NgbHighlight, _angular_common__WEBPACK_IMPORTED_MODULE_1__["NgTemplateOutlet"]], encapsulation: 2 }); NgbTypeaheadWindow.propDecorators = { id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], focusFirst: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], results: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], term: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], formatter: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], resultTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], selectEvent: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"], args: ['select',] }], activeChangeEvent: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"], args: ['activeChange',] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTypeaheadWindow, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"], args: [{ selector: 'ngb-typeahead-window', exportAs: 'ngbTypeaheadWindow', encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewEncapsulation"].None, host: { '(mousedown)': '$event.preventDefault()', 'class': 'dropdown-menu show', 'role': 'listbox', '[id]': 'id' }, template: ` ` }] }], function () { return []; }, { focusFirst: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], formatter: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], selectEvent: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"], args: ['select'] }], activeChangeEvent: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"], args: ['activeChange'] }], id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], results: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], term: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], resultTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); const ARIA_LIVE_DELAY = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["InjectionToken"]('live announcer delay', { providedIn: 'root', factory: ARIA_LIVE_DELAY_FACTORY }); function ARIA_LIVE_DELAY_FACTORY() { return 100; } function getLiveElement(document, lazyCreate = false) { let element = document.body.querySelector('#ngb-live'); if (element == null && lazyCreate) { element = document.createElement('div'); element.setAttribute('id', 'ngb-live'); element.setAttribute('aria-live', 'polite'); element.setAttribute('aria-atomic', 'true'); element.classList.add('sr-only'); document.body.appendChild(element); } return element; } class Live { constructor(_document, _delay) { this._document = _document; this._delay = _delay; } ngOnDestroy() { const element = getLiveElement(this._document); if (element) { // if exists, it will always be attached to the element.parentElement.removeChild(element); } } say(message) { const element = getLiveElement(this._document, true); const delay = this._delay; if (element != null) { element.textContent = ''; const setText = () => element.textContent = message; if (delay === null) { setText(); } else { setTimeout(setText, delay); } } } } Live.ɵfac = function Live_Factory(t) { return new (t || Live)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"](ARIA_LIVE_DELAY)); }; Live.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function Live_Factory() { return new Live(Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]), Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵinject"])(ARIA_LIVE_DELAY)); }, token: Live, providedIn: "root" }); Live.ctorParameters = () => [ { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"],] }] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [ARIA_LIVE_DELAY,] }] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](Live, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return [{ type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]] }] }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [ARIA_LIVE_DELAY] }] }]; }, null); })(); /** * A configuration service for the [`NgbTypeahead`](#/components/typeahead/api#NgbTypeahead) component. * * You can inject this service, typically in your root component, and customize the values of its properties in * order to provide default values for all the typeaheads used in the application. */ class NgbTypeaheadConfig { constructor() { this.editable = true; this.focusFirst = true; this.showHint = false; this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right']; } } NgbTypeaheadConfig.ɵfac = function NgbTypeaheadConfig_Factory(t) { return new (t || NgbTypeaheadConfig)(); }; NgbTypeaheadConfig.ɵprov = Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjectable"])({ factory: function NgbTypeaheadConfig_Factory() { return new NgbTypeaheadConfig(); }, token: NgbTypeaheadConfig, providedIn: "root" }); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTypeaheadConfig, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injectable"], args: [{ providedIn: 'root' }] }], function () { return []; }, null); })(); const NGB_TYPEAHEAD_VALUE_ACCESSOR = { provide: _angular_forms__WEBPACK_IMPORTED_MODULE_4__["NG_VALUE_ACCESSOR"], useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => NgbTypeahead), multi: true }; let nextWindowId = 0; /** * A directive providing a simple way of creating powerful typeaheads from any text input. */ class NgbTypeahead { constructor(_elementRef, viewContainerRef, _renderer, injector, componentFactoryResolver, config, ngZone, _live, _document, _ngZone, _changeDetector, applicationRef) { this._elementRef = _elementRef; this._renderer = _renderer; this._live = _live; this._document = _document; this._ngZone = _ngZone; this._changeDetector = _changeDetector; this._subscription = null; this._closed$ = new rxjs__WEBPACK_IMPORTED_MODULE_2__["Subject"](); this._inputValueBackup = null; this._windowRef = null; /** * The value for the `autocomplete` attribute for the `` element. * * Defaults to `"off"` to disable the native browser autocomplete, but you can override it if necessary. * * @since 2.1.0 */ this.autocomplete = 'off'; /** * The preferred placement of the typeahead. * * Possible values are `"top"`, `"top-left"`, `"top-right"`, `"bottom"`, `"bottom-left"`, * `"bottom-right"`, `"left"`, `"left-top"`, `"left-bottom"`, `"right"`, `"right-top"`, * `"right-bottom"` * * Accepts an array of strings or a string with space separated possible values. * * The default order of preference is `"bottom-left bottom-right top-left top-right"` * * Please see the [positioning overview](#/positioning) for more details. */ this.placement = 'bottom-left'; /** * An event emitted right before an item is selected from the result list. * * Event payload is of type [`NgbTypeaheadSelectItemEvent`](#/components/typeahead/api#NgbTypeaheadSelectItemEvent). */ this.selectItem = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); this.activeDescendant = null; this.popupId = `ngb-typeahead-${nextWindowId++}`; this._onTouched = () => { }; this._onChange = (_) => { }; this.container = config.container; this.editable = config.editable; this.focusFirst = config.focusFirst; this.showHint = config.showHint; this.placement = config.placement; this._valueChanges = Object(rxjs__WEBPACK_IMPORTED_MODULE_2__["fromEvent"])(_elementRef.nativeElement, 'input') .pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["map"])($event => $event.target.value)); this._resubscribeTypeahead = new rxjs__WEBPACK_IMPORTED_MODULE_2__["BehaviorSubject"](null); this._popupService = new PopupService(NgbTypeaheadWindow, injector, viewContainerRef, _renderer, this._ngZone, componentFactoryResolver, applicationRef); this._zoneSubscription = ngZone.onStable.subscribe(() => { if (this.isPopupOpen()) { positionElements(this._elementRef.nativeElement, this._windowRef.location.nativeElement, this.placement, this.container === 'body'); } }); } ngOnInit() { const inputValues$ = this._valueChanges.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["tap"])(value => { this._inputValueBackup = this.showHint ? value : null; this._onChange(this.editable ? value : undefined); })); const results$ = inputValues$.pipe(this.ngbTypeahead); const userInput$ = this._resubscribeTypeahead.pipe(Object(rxjs_operators__WEBPACK_IMPORTED_MODULE_3__["switchMap"])(() => results$)); this._subscription = this._subscribeToUserInput(userInput$); } ngOnDestroy() { this._closePopup(); this._unsubscribeFromUserInput(); this._zoneSubscription.unsubscribe(); } registerOnChange(fn) { this._onChange = fn; } registerOnTouched(fn) { this._onTouched = fn; } writeValue(value) { this._writeInputValue(this._formatItemForInput(value)); if (this.showHint) { this._inputValueBackup = value; } } setDisabledState(isDisabled) { this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled); } /** * Dismisses typeahead popup window */ dismissPopup() { if (this.isPopupOpen()) { this._resubscribeTypeahead.next(null); this._closePopup(); if (this.showHint && this._inputValueBackup !== null) { this._writeInputValue(this._inputValueBackup); } this._changeDetector.markForCheck(); } } /** * Returns true if the typeahead popup window is displayed */ isPopupOpen() { return this._windowRef != null; } handleBlur() { this._resubscribeTypeahead.next(null); this._onTouched(); } handleKeyDown(event) { if (!this.isPopupOpen()) { return; } // tslint:disable-next-line:deprecation switch (event.which) { case Key.ArrowDown: event.preventDefault(); this._windowRef.instance.next(); this._showHint(); break; case Key.ArrowUp: event.preventDefault(); this._windowRef.instance.prev(); this._showHint(); break; case Key.Enter: case Key.Tab: const result = this._windowRef.instance.getActive(); if (isDefined(result)) { event.preventDefault(); event.stopPropagation(); this._selectResult(result); } this._closePopup(); break; } } _openPopup() { if (!this.isPopupOpen()) { this._inputValueBackup = this._elementRef.nativeElement.value; const { windowRef } = this._popupService.open(); this._windowRef = windowRef; this._windowRef.instance.id = this.popupId; this._windowRef.instance.selectEvent.subscribe((result) => this._selectResultClosePopup(result)); this._windowRef.instance.activeChangeEvent.subscribe((activeId) => this.activeDescendant = activeId); if (this.container === 'body') { this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement); } this._changeDetector.markForCheck(); ngbAutoClose(this._ngZone, this._document, 'outside', () => this.dismissPopup(), this._closed$, [this._elementRef.nativeElement, this._windowRef.location.nativeElement]); } } _closePopup() { this._popupService.close().subscribe(() => { this._closed$.next(); this._windowRef = null; this.activeDescendant = null; }); } _selectResult(result) { let defaultPrevented = false; this.selectItem.emit({ item: result, preventDefault: () => { defaultPrevented = true; } }); this._resubscribeTypeahead.next(null); if (!defaultPrevented) { this.writeValue(result); this._onChange(result); } } _selectResultClosePopup(result) { this._selectResult(result); this._closePopup(); } _showHint() { var _a; if (this.showHint && ((_a = this._windowRef) === null || _a === void 0 ? void 0 : _a.instance.hasActive()) && this._inputValueBackup != null) { const userInputLowerCase = this._inputValueBackup.toLowerCase(); const formattedVal = this._formatItemForInput(this._windowRef.instance.getActive()); if (userInputLowerCase === formattedVal.substr(0, this._inputValueBackup.length).toLowerCase()) { this._writeInputValue(this._inputValueBackup + formattedVal.substr(this._inputValueBackup.length)); this._elementRef.nativeElement['setSelectionRange'].apply(this._elementRef.nativeElement, [this._inputValueBackup.length, formattedVal.length]); } else { this._writeInputValue(formattedVal); } } } _formatItemForInput(item) { return item != null && this.inputFormatter ? this.inputFormatter(item) : toString(item); } _writeInputValue(value) { this._renderer.setProperty(this._elementRef.nativeElement, 'value', toString(value)); } _subscribeToUserInput(userInput$) { return userInput$.subscribe((results) => { if (!results || results.length === 0) { this._closePopup(); } else { this._openPopup(); this._windowRef.instance.focusFirst = this.focusFirst; this._windowRef.instance.results = results; this._windowRef.instance.term = this._elementRef.nativeElement.value; if (this.resultFormatter) { this._windowRef.instance.formatter = this.resultFormatter; } if (this.resultTemplate) { this._windowRef.instance.resultTemplate = this.resultTemplate; } this._windowRef.instance.resetActive(); // The observable stream we are subscribing to might have async steps // and if a component containing typeahead is using the OnPush strategy // the change detection turn wouldn't be invoked automatically. this._windowRef.changeDetectorRef.detectChanges(); this._showHint(); } // live announcer const count = results ? results.length : 0; this._live.say(count === 0 ? 'No results available' : `${count} result${count === 1 ? '' : 's'} available`); }); } _unsubscribeFromUserInput() { if (this._subscription) { this._subscription.unsubscribe(); } this._subscription = null; } } NgbTypeahead.ɵfac = function NgbTypeahead_Factory(t) { return new (t || NgbTypeahead)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewContainerRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](NgbTypeaheadConfig), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](Live), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"])); }; NgbTypeahead.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: NgbTypeahead, selectors: [["input", "ngbTypeahead", ""]], hostAttrs: ["autocapitalize", "off", "autocorrect", "off", "role", "combobox", "aria-multiline", "false"], hostVars: 7, hostBindings: function NgbTypeahead_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("blur", function NgbTypeahead_blur_HostBindingHandler() { return ctx.handleBlur(); })("keydown", function NgbTypeahead_keydown_HostBindingHandler($event) { return ctx.handleKeyDown($event); }); } if (rf & 2) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵhostProperty"]("autocomplete", ctx.autocomplete); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵattribute"]("aria-autocomplete", ctx.showHint ? "both" : "list")("aria-activedescendant", ctx.activeDescendant)("aria-owns", ctx.isPopupOpen() ? ctx.popupId : null)("aria-expanded", ctx.isPopupOpen()); _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵclassProp"]("open", ctx.isPopupOpen()); } }, inputs: { autocomplete: "autocomplete", placement: "placement", container: "container", editable: "editable", focusFirst: "focusFirst", showHint: "showHint", inputFormatter: "inputFormatter", ngbTypeahead: "ngbTypeahead", resultFormatter: "resultFormatter", resultTemplate: "resultTemplate" }, outputs: { selectItem: "selectItem" }, exportAs: ["ngbTypeahead"], features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([NGB_TYPEAHEAD_VALUE_ACCESSOR])] }); NgbTypeahead.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewContainerRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"] }, { type: NgbTypeaheadConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: Live }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"],] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"] } ]; NgbTypeahead.propDecorators = { autocomplete: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], container: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], editable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], focusFirst: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], inputFormatter: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], ngbTypeahead: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], resultFormatter: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], resultTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showHint: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], placement: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], selectItem: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }] }; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTypeahead, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'input[ngbTypeahead]', exportAs: 'ngbTypeahead', host: { '(blur)': 'handleBlur()', '[class.open]': 'isPopupOpen()', '(keydown)': 'handleKeyDown($event)', '[autocomplete]': 'autocomplete', 'autocapitalize': 'off', 'autocorrect': 'off', 'role': 'combobox', 'aria-multiline': 'false', '[attr.aria-autocomplete]': 'showHint ? "both" : "list"', '[attr.aria-activedescendant]': 'activeDescendant', '[attr.aria-owns]': 'isPopupOpen() ? popupId : null', '[attr.aria-expanded]': 'isPopupOpen()' }, providers: [NGB_TYPEAHEAD_VALUE_ACCESSOR] }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ViewContainerRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Injector"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ComponentFactoryResolver"] }, { type: NgbTypeaheadConfig }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: Live }, { type: undefined, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Inject"], args: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["DOCUMENT"]] }] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgZone"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ChangeDetectorRef"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ApplicationRef"] }]; }, { autocomplete: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], placement: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], selectItem: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Output"] }], container: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], editable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], focusFirst: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], showHint: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], inputFormatter: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], ngbTypeahead: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], resultFormatter: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }], resultTemplate: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Input"] }] }); })(); class NgbTypeaheadModule { } NgbTypeaheadModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbTypeaheadModule }); NgbTypeaheadModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbTypeaheadModule_Factory(t) { return new (t || NgbTypeaheadModule)(); }, imports: [[_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbTypeaheadModule, { declarations: function () { return [NgbTypeahead, NgbHighlight, NgbTypeaheadWindow]; }, imports: function () { return [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]]; }, exports: function () { return [NgbTypeahead, NgbHighlight]; } }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbTypeaheadModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ declarations: [NgbTypeahead, NgbHighlight, NgbTypeaheadWindow], exports: [NgbTypeahead, NgbHighlight], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_1__["CommonModule"]], entryComponents: [NgbTypeaheadWindow] }] }], null, null); })(); const NGB_MODULES = [ NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule ]; class NgbModule { } NgbModule.ɵmod = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineNgModule"]({ type: NgbModule }); NgbModule.ɵinj = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineInjector"]({ factory: function NgbModule_Factory(t) { return new (t || NgbModule)(); }, imports: [NGB_MODULES, NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule] }); (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵsetNgModuleScope"](NgbModule, { imports: [NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule], exports: [NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbNavModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTimepickerModule, NgbToastModule, NgbTooltipModule, NgbTypeaheadModule] }); })(); /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](NgbModule, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["NgModule"], args: [{ imports: NGB_MODULES, exports: NGB_MODULES }] }], null, null); })(); /** * Generated bundle index. Do not edit. */ //# sourceMappingURL=ng-bootstrap.js.map /***/ }), /***/ "1uah": /*!***************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/observable/zip.js ***! \***************************************************************/ /*! exports provided: zip, ZipOperator, ZipSubscriber */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return zip; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZipOperator", function() { return ZipOperator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZipSubscriber", function() { return ZipSubscriber; }); /* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./fromArray */ "yCtX"); /* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isArray */ "DH7j"); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscriber */ "7o/Q"); /* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../OuterSubscriber */ "l7GE"); /* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../util/subscribeToResult */ "ZUHj"); /* harmony import */ var _internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../internal/symbol/iterator */ "Lhse"); function zip(...observables) { const resultSelector = observables[observables.length - 1]; if (typeof resultSelector === 'function') { observables.pop(); } return Object(_fromArray__WEBPACK_IMPORTED_MODULE_0__["fromArray"])(observables, undefined).lift(new ZipOperator(resultSelector)); } class ZipOperator { constructor(resultSelector) { this.resultSelector = resultSelector; } call(subscriber, source) { return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector)); } } class ZipSubscriber extends _Subscriber__WEBPACK_IMPORTED_MODULE_2__["Subscriber"] { constructor(destination, resultSelector, values = Object.create(null)) { super(destination); this.iterators = []; this.active = 0; this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null; this.values = values; } _next(value) { const iterators = this.iterators; if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(value)) { iterators.push(new StaticArrayIterator(value)); } else if (typeof value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_5__["iterator"]] === 'function') { iterators.push(new StaticIterator(value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_5__["iterator"]]())); } else { iterators.push(new ZipBufferIterator(this.destination, this, value)); } } _complete() { const iterators = this.iterators; const len = iterators.length; this.unsubscribe(); if (len === 0) { this.destination.complete(); return; } this.active = len; for (let i = 0; i < len; i++) { let iterator = iterators[i]; if (iterator.stillUnsubscribed) { const destination = this.destination; destination.add(iterator.subscribe(iterator, i)); } else { this.active--; } } } notifyInactive() { this.active--; if (this.active === 0) { this.destination.complete(); } } checkIterators() { const iterators = this.iterators; const len = iterators.length; const destination = this.destination; for (let i = 0; i < len; i++) { let iterator = iterators[i]; if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) { return; } } let shouldComplete = false; const args = []; for (let i = 0; i < len; i++) { let iterator = iterators[i]; let result = iterator.next(); if (iterator.hasCompleted()) { shouldComplete = true; } if (result.done) { destination.complete(); return; } args.push(result.value); } if (this.resultSelector) { this._tryresultSelector(args); } else { destination.next(args); } if (shouldComplete) { destination.complete(); } } _tryresultSelector(args) { let result; try { result = this.resultSelector.apply(this, args); } catch (err) { this.destination.error(err); return; } this.destination.next(result); } } class StaticIterator { constructor(iterator) { this.iterator = iterator; this.nextResult = iterator.next(); } hasValue() { return true; } next() { const result = this.nextResult; this.nextResult = this.iterator.next(); return result; } hasCompleted() { const nextResult = this.nextResult; return nextResult && nextResult.done; } } class StaticArrayIterator { constructor(array) { this.array = array; this.index = 0; this.length = 0; this.length = array.length; } [_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_5__["iterator"]]() { return this; } next(value) { const i = this.index++; const array = this.array; return i < this.length ? { value: array[i], done: false } : { value: null, done: true }; } hasValue() { return this.array.length > this.index; } hasCompleted() { return this.array.length === this.index; } } class ZipBufferIterator extends _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"] { constructor(destination, parent, observable) { super(destination); this.parent = parent; this.observable = observable; this.stillUnsubscribed = true; this.buffer = []; this.isComplete = false; } [_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_5__["iterator"]]() { return this; } next() { const buffer = this.buffer; if (buffer.length === 0 && this.isComplete) { return { value: null, done: true }; } else { return { value: buffer.shift(), done: false }; } } hasValue() { return this.buffer.length > 0; } hasCompleted() { return this.buffer.length === 0 && this.isComplete; } notifyComplete() { if (this.buffer.length > 0) { this.isComplete = true; this.parent.notifyInactive(); } else { this.destination.complete(); } } notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) { this.buffer.push(innerValue); this.parent.checkIterators(); } subscribe(value, index) { return Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, this.observable, this, index); } } //# sourceMappingURL=zip.js.map /***/ }), /***/ "2QA8": /*!********************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js ***! \********************************************************************/ /*! exports provided: rxSubscriber, $$rxSubscriber */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rxSubscriber", function() { return rxSubscriber; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$$rxSubscriber", function() { return $$rxSubscriber; }); const rxSubscriber = (() => typeof Symbol === 'function' ? Symbol('rxSubscriber') : '@@rxSubscriber_' + Math.random())(); const $$rxSubscriber = rxSubscriber; //# sourceMappingURL=rxSubscriber.js.map /***/ }), /***/ "2QGa": /*!*********************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/observable/partition.js ***! \*********************************************************************/ /*! exports provided: partition */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return partition; }); /* harmony import */ var _util_not__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../util/not */ "F97/"); /* harmony import */ var _util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/subscribeTo */ "SeVD"); /* harmony import */ var _operators_filter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../operators/filter */ "pLZG"); /* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Observable */ "HDdC"); function partition(source, predicate, thisArg) { return [ Object(_operators_filter__WEBPACK_IMPORTED_MODULE_2__["filter"])(predicate, thisArg)(new _Observable__WEBPACK_IMPORTED_MODULE_3__["Observable"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(source))), Object(_operators_filter__WEBPACK_IMPORTED_MODULE_2__["filter"])(Object(_util_not__WEBPACK_IMPORTED_MODULE_0__["not"])(predicate, thisArg))(new _Observable__WEBPACK_IMPORTED_MODULE_3__["Observable"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(source))) ]; } //# sourceMappingURL=partition.js.map /***/ }), /***/ "2Vo4": /*!****************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/BehaviorSubject.js ***! \****************************************************************/ /*! exports provided: BehaviorSubject */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BehaviorSubject", function() { return BehaviorSubject; }); /* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Subject */ "XNiG"); /* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./util/ObjectUnsubscribedError */ "9ppp"); class BehaviorSubject extends _Subject__WEBPACK_IMPORTED_MODULE_0__["Subject"] { constructor(_value) { super(); this._value = _value; } get value() { return this.getValue(); } _subscribe(subscriber) { const subscription = super._subscribe(subscriber); if (subscription && !subscription.closed) { subscriber.next(this._value); } return subscription; } getValue() { if (this.hasError) { throw this.thrownError; } else if (this.closed) { throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_1__["ObjectUnsubscribedError"](); } else { return this._value; } } next(value) { super.next(this._value = value); } } //# sourceMappingURL=BehaviorSubject.js.map /***/ }), /***/ "2fFW": /*!*******************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/config.js ***! \*******************************************************/ /*! exports provided: config */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "config", function() { return config; }); let _enable_super_gross_mode_that_will_cause_bad_things = false; const config = { Promise: undefined, set useDeprecatedSynchronousErrorHandling(value) { if (value) { const error = new Error(); console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n' + error.stack); } else if (_enable_super_gross_mode_that_will_cause_bad_things) { console.log('RxJS: Back to a better error behavior. Thank you. <3'); } _enable_super_gross_mode_that_will_cause_bad_things = value; }, get useDeprecatedSynchronousErrorHandling() { return _enable_super_gross_mode_that_will_cause_bad_things; }, }; //# sourceMappingURL=config.js.map /***/ }), /***/ "32Ea": /*!********************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/operators/skipWhile.js ***! \********************************************************************/ /*! exports provided: skipWhile */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skipWhile", function() { return skipWhile; }); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Subscriber */ "7o/Q"); function skipWhile(predicate) { return (source) => source.lift(new SkipWhileOperator(predicate)); } class SkipWhileOperator { constructor(predicate) { this.predicate = predicate; } call(subscriber, source) { return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate)); } } class SkipWhileSubscriber extends _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"] { constructor(destination, predicate) { super(destination); this.predicate = predicate; this.skipping = true; this.index = 0; } _next(value) { const destination = this.destination; if (this.skipping) { this.tryCallPredicate(value); } if (!this.skipping) { destination.next(value); } } tryCallPredicate(value) { try { const result = this.predicate(value, this.index++); this.skipping = Boolean(result); } catch (err) { this.destination.error(err); } } } //# sourceMappingURL=skipWhile.js.map /***/ }), /***/ "3E0/": /*!****************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/operators/delay.js ***! \****************************************************************/ /*! exports provided: delay */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return delay; }); /* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../scheduler/async */ "D0XW"); /* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../util/isDate */ "mlxB"); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Subscriber */ "7o/Q"); /* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Notification */ "WMd4"); function delay(delay, scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"]) { const absoluteDelay = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_1__["isDate"])(delay); const delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay); return (source) => source.lift(new DelayOperator(delayFor, scheduler)); } class DelayOperator { constructor(delay, scheduler) { this.delay = delay; this.scheduler = scheduler; } call(subscriber, source) { return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler)); } } class DelaySubscriber extends _Subscriber__WEBPACK_IMPORTED_MODULE_2__["Subscriber"] { constructor(destination, delay, scheduler) { super(destination); this.delay = delay; this.scheduler = scheduler; this.queue = []; this.active = false; this.errored = false; } static dispatch(state) { const source = state.source; const queue = source.queue; const scheduler = state.scheduler; const destination = state.destination; while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) { queue.shift().notification.observe(destination); } if (queue.length > 0) { const delay = Math.max(0, queue[0].time - scheduler.now()); this.schedule(state, delay); } else { this.unsubscribe(); source.active = false; } } _schedule(scheduler) { this.active = true; const destination = this.destination; destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { source: this, destination: this.destination, scheduler: scheduler })); } scheduleNotification(notification) { if (this.errored === true) { return; } const scheduler = this.scheduler; const message = new DelayMessage(scheduler.now() + this.delay, notification); this.queue.push(message); if (this.active === false) { this._schedule(scheduler); } } _next(value) { this.scheduleNotification(_Notification__WEBPACK_IMPORTED_MODULE_3__["Notification"].createNext(value)); } _error(err) { this.errored = true; this.queue = []; this.destination.error(err); this.unsubscribe(); } _complete() { this.scheduleNotification(_Notification__WEBPACK_IMPORTED_MODULE_3__["Notification"].createComplete()); this.unsubscribe(); } } class DelayMessage { constructor(time, notification) { this.time = time; this.notification = notification; } } //# sourceMappingURL=delay.js.map /***/ }), /***/ "3N8a": /*!**********************************************************************!*\ !*** ./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js ***! \**********************************************************************/ /*! exports provided: AsyncAction */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncAction", function() { return AsyncAction; }); /* harmony import */ var _Action__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Action */ "7ve7"); class AsyncAction extends _Action__WEBPACK_IMPORTED_MODULE_0__["Action"] { constructor(scheduler, work) { super(scheduler, work); this.scheduler = scheduler; this.work = work; this.pending = false; } schedule(state, delay = 0) { if (this.closed) { return this; } this.state = state; const id = this.id; const scheduler = this.scheduler; if (id != null) { this.id = this.recycleAsyncId(scheduler, id, delay); } this.pending = true; this.delay = delay; this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); return this; } requestAsyncId(scheduler, id, delay = 0) { return setInterval(scheduler.flush.bind(scheduler, this), delay); } recycleAsyncId(scheduler, id, delay = 0) { if (delay !== null && this.delay === delay && this.pending === false) { return id; } clearInterval(id); return undefined; } execute(state, delay) { if (this.closed) { return new Error('executing a cancelled action'); } this.pending = false; const error = this._execute(state, delay); if (error) { return error; } else if (this.pending === false && this.id != null) { this.id = this.recycleAsyncId(this.scheduler, this.id, null); } } _execute(state, delay) { let errored = false; let errorValue = undefined; try { this.work(state); } catch (e) { errored = true; errorValue = !!e && e || new Error(e); } if (errored) { this.unsubscribe(); return errorValue; } } _unsubscribe() { const id = this.id; const scheduler = this.scheduler; const actions = scheduler.actions; const index = actions.indexOf(this); this.work = null; this.state = null; this.pending = false; this.scheduler = null; if (index !== -1) { actions.splice(index, 1); } if (id != null) { this.id = this.recycleAsyncId(scheduler, id, null); } this.delay = null; } } //# sourceMappingURL=AsyncAction.js.map /***/ }), /***/ "3Pt+": /*!********************************************************************!*\ !*** ./node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js ***! \********************************************************************/ /*! exports provided: AbstractControl, AbstractControlDirective, AbstractFormGroupDirective, COMPOSITION_BUFFER_MODE, CheckboxControlValueAccessor, CheckboxRequiredValidator, ControlContainer, DefaultValueAccessor, EmailValidator, FormArray, FormArrayName, FormBuilder, FormControl, FormControlDirective, FormControlName, FormGroup, FormGroupDirective, FormGroupName, FormsModule, MaxLengthValidator, MinLengthValidator, NG_ASYNC_VALIDATORS, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgControl, NgControlStatus, NgControlStatusGroup, NgForm, NgModel, NgModelGroup, NgSelectOption, NumberValueAccessor, PatternValidator, RadioControlValueAccessor, RangeValueAccessor, ReactiveFormsModule, RequiredValidator, SelectControlValueAccessor, SelectMultipleControlValueAccessor, VERSION, Validators, ɵInternalFormsSharedModule, ɵNgNoValidate, ɵNgSelectMultipleOption, ɵangular_packages_forms_forms_a, ɵangular_packages_forms_forms_b, ɵangular_packages_forms_forms_ba, ɵangular_packages_forms_forms_bb, ɵangular_packages_forms_forms_bc, ɵangular_packages_forms_forms_bd, ɵangular_packages_forms_forms_be, ɵangular_packages_forms_forms_c, ɵangular_packages_forms_forms_d, ɵangular_packages_forms_forms_e, ɵangular_packages_forms_forms_f, ɵangular_packages_forms_forms_g, ɵangular_packages_forms_forms_h, ɵangular_packages_forms_forms_i, ɵangular_packages_forms_forms_j, ɵangular_packages_forms_forms_k, ɵangular_packages_forms_forms_l, ɵangular_packages_forms_forms_m, ɵangular_packages_forms_forms_n, ɵangular_packages_forms_forms_o, ɵangular_packages_forms_forms_p, ɵangular_packages_forms_forms_q, ɵangular_packages_forms_forms_r, ɵangular_packages_forms_forms_s, ɵangular_packages_forms_forms_t, ɵangular_packages_forms_forms_u, ɵangular_packages_forms_forms_v, ɵangular_packages_forms_forms_w, ɵangular_packages_forms_forms_x, ɵangular_packages_forms_forms_y, ɵangular_packages_forms_forms_z */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AbstractControl", function() { return AbstractControl; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AbstractControlDirective", function() { return AbstractControlDirective; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AbstractFormGroupDirective", function() { return AbstractFormGroupDirective; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "COMPOSITION_BUFFER_MODE", function() { return COMPOSITION_BUFFER_MODE; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckboxControlValueAccessor", function() { return CheckboxControlValueAccessor; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CheckboxRequiredValidator", function() { return CheckboxRequiredValidator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ControlContainer", function() { return ControlContainer; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DefaultValueAccessor", function() { return DefaultValueAccessor; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EmailValidator", function() { return EmailValidator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormArray", function() { return FormArray; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormArrayName", function() { return FormArrayName; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormBuilder", function() { return FormBuilder; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormControl", function() { return FormControl; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormControlDirective", function() { return FormControlDirective; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormControlName", function() { return FormControlName; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormGroup", function() { return FormGroup; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormGroupDirective", function() { return FormGroupDirective; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormGroupName", function() { return FormGroupName; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FormsModule", function() { return FormsModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MaxLengthValidator", function() { return MaxLengthValidator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MinLengthValidator", function() { return MinLengthValidator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NG_ASYNC_VALIDATORS", function() { return NG_ASYNC_VALIDATORS; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NG_VALIDATORS", function() { return NG_VALIDATORS; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NG_VALUE_ACCESSOR", function() { return NG_VALUE_ACCESSOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgControl", function() { return NgControl; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgControlStatus", function() { return NgControlStatus; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgControlStatusGroup", function() { return NgControlStatusGroup; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgForm", function() { return NgForm; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgModel", function() { return NgModel; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgModelGroup", function() { return NgModelGroup; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NgSelectOption", function() { return NgSelectOption; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NumberValueAccessor", function() { return NumberValueAccessor; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PatternValidator", function() { return PatternValidator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RadioControlValueAccessor", function() { return RadioControlValueAccessor; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RangeValueAccessor", function() { return RangeValueAccessor; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReactiveFormsModule", function() { return ReactiveFormsModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RequiredValidator", function() { return RequiredValidator; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectControlValueAccessor", function() { return SelectControlValueAccessor; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SelectMultipleControlValueAccessor", function() { return SelectMultipleControlValueAccessor; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VERSION", function() { return VERSION; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Validators", function() { return Validators; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵInternalFormsSharedModule", function() { return ɵInternalFormsSharedModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵNgNoValidate", function() { return ɵNgNoValidate; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵNgSelectMultipleOption", function() { return ɵNgSelectMultipleOption; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_a", function() { return SHARED_FORM_DIRECTIVES; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_b", function() { return TEMPLATE_DRIVEN_DIRECTIVES; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_ba", function() { return CHECKBOX_REQUIRED_VALIDATOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_bb", function() { return EMAIL_VALIDATOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_bc", function() { return MIN_LENGTH_VALIDATOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_bd", function() { return MAX_LENGTH_VALIDATOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_be", function() { return PATTERN_VALIDATOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_c", function() { return REACTIVE_DRIVEN_DIRECTIVES; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_d", function() { return ɵInternalFormsSharedModule; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_e", function() { return CHECKBOX_VALUE_ACCESSOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_f", function() { return DEFAULT_VALUE_ACCESSOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_g", function() { return AbstractControlStatus; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_h", function() { return ngControlStatusHost; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_i", function() { return formDirectiveProvider; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_j", function() { return formControlBinding; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_k", function() { return modelGroupProvider; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_l", function() { return NUMBER_VALUE_ACCESSOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_m", function() { return RADIO_VALUE_ACCESSOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_n", function() { return RadioControlRegistry; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_o", function() { return RANGE_VALUE_ACCESSOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_p", function() { return NG_MODEL_WITH_FORM_CONTROL_WARNING; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_q", function() { return formControlBinding$1; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_r", function() { return controlNameBinding; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_s", function() { return formDirectiveProvider$1; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_t", function() { return formGroupNameProvider; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_u", function() { return formArrayNameProvider; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_v", function() { return SELECT_VALUE_ACCESSOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_w", function() { return SELECT_MULTIPLE_VALUE_ACCESSOR; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_x", function() { return ɵNgSelectMultipleOption; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_y", function() { return ɵNgNoValidate; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ɵangular_packages_forms_forms_z", function() { return REQUIRED_VALIDATOR; }); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "fXoL"); /* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/common */ "ofXK"); /* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rxjs */ "qCKp"); /* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs/operators */ "kU1M"); /** * @license Angular v11.0.4 * (c) 2010-2020 Google LLC. https://angular.io/ * License: MIT */ /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * Used to provide a `ControlValueAccessor` for form controls. * * See `DefaultValueAccessor` for how to implement one. * * @publicApi */ const NG_VALUE_ACCESSOR = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["InjectionToken"]('NgValueAccessor'); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ const CHECKBOX_VALUE_ACCESSOR = { provide: NG_VALUE_ACCESSOR, useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => CheckboxControlValueAccessor), multi: true, }; /** * @description * A `ControlValueAccessor` for writing a value and listening to changes on a checkbox input * element. * * @usageNotes * * ### Using a checkbox with a reactive form. * * The following example shows how to use a checkbox with a reactive form. * * ```ts * const rememberLoginControl = new FormControl(); * ``` * * ``` * * ``` * * @ngModule ReactiveFormsModule * @ngModule FormsModule * @publicApi */ class CheckboxControlValueAccessor { constructor(_renderer, _elementRef) { this._renderer = _renderer; this._elementRef = _elementRef; /** * The registered callback function called when a change event occurs on the input element. * @nodoc */ this.onChange = (_) => { }; /** * The registered callback function called when a blur event occurs on the input element. * @nodoc */ this.onTouched = () => { }; } /** * Sets the "checked" property on the input element. * @nodoc */ writeValue(value) { this._renderer.setProperty(this._elementRef.nativeElement, 'checked', value); } /** * Registers a function called when the control value changes. * @nodoc */ registerOnChange(fn) { this.onChange = fn; } /** * Registers a function called when the control is touched. * @nodoc */ registerOnTouched(fn) { this.onTouched = fn; } /** * Sets the "disabled" property on the input element. * @nodoc */ setDisabledState(isDisabled) { this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled); } } CheckboxControlValueAccessor.ɵfac = function CheckboxControlValueAccessor_Factory(t) { return new (t || CheckboxControlValueAccessor)(_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"]), _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"])); }; CheckboxControlValueAccessor.ɵdir = _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵdefineDirective"]({ type: CheckboxControlValueAccessor, selectors: [["input", "type", "checkbox", "formControlName", ""], ["input", "type", "checkbox", "formControl", ""], ["input", "type", "checkbox", "ngModel", ""]], hostBindings: function CheckboxControlValueAccessor_HostBindings(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵlistener"]("change", function CheckboxControlValueAccessor_change_HostBindingHandler($event) { return ctx.onChange($event.target.checked); })("blur", function CheckboxControlValueAccessor_blur_HostBindingHandler() { return ctx.onTouched(); }); } }, features: [_angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵɵProvidersFeature"]([CHECKBOX_VALUE_ACCESSOR])] }); CheckboxControlValueAccessor.ctorParameters = () => [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] } ]; /*@__PURE__*/ (function () { _angular_core__WEBPACK_IMPORTED_MODULE_0__["ɵsetClassMetadata"](CheckboxControlValueAccessor, [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Directive"], args: [{ selector: 'input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]', host: { '(change)': 'onChange($event.target.checked)', '(blur)': 'onTouched()' }, providers: [CHECKBOX_VALUE_ACCESSOR] }] }], function () { return [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["Renderer2"] }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_0__["ElementRef"] }]; }, null); })(); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ const DEFAULT_VALUE_ACCESSOR = { provide: NG_VALUE_ACCESSOR, useExisting: Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["forwardRef"])(() => DefaultValueAccessor), multi: true }; /** * We must check whether the agent is Android because composition events * behave differently between iOS and Android. */ function _isAndroid() { const userAgent = Object(_angular_common__WEBPACK_IMPORTED_MODULE_1__["ɵgetDOM"])() ? Object(_angular_common__WEBPACK_IMPORTED_MODULE_1__["ɵgetDOM"])().getUserAgent() : ''; return /android (\d+)/.test(userAgent.toLowerCase()); } /** * @description * Provide this token to control if form directives buffer IME input until * the "compositionend" event occurs. * @publicApi */ const COMPOSITION_BUFFER_MODE = new _angular_core__WEBPACK_IMPORTED_MODULE_0__["InjectionToken"]('CompositionEventMode'); /** * @description * * {@searchKeywords ngDefaultControl} * * The default `ControlValueAccessor` for writing a value and listening to changes on input * elements. The accessor is used by the `FormControlDirective`, `FormControlName`, and * `NgModel` directives. * * @usageNotes * * ### Using the default value accessor * * The following example shows how to use an input element that activates the default value accessor * (in this case, a text field). * * ```ts * const firstNameControl = new FormControl(); * ``` * * ``` * * ``` * * This value accessor is used by default for `` and `