@duoduo-oba/ng-devui
Version:
DevUI components based on Angular
812 lines • 67.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: date-range-picker.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { NG_VALUE_ACCESSOR } from '@angular/forms';
import { Component, forwardRef, Input, Output, EventEmitter, ElementRef, ViewContainerRef, Renderer2, HostListener, ViewChild, TemplateRef } from '@angular/core';
import { CdkOverlayOrigin } from '@angular/cdk/overlay';
import { SelectDateRangeChangeReason } from './date-range-change-event-args.model';
import { DatePickerConfigService as DatePickerConfig } from './date-picker.config.service';
import { I18nService } from '@duoduo-oba/ng-devui/i18n';
import { DefaultDateConverter } from '@duoduo-oba/ng-devui/utils';
import { cornerFadeInOut } from '@duoduo-oba/ng-devui/utils';
import { Subject, fromEvent } from 'rxjs';
import { distinctUntilChanged, debounceTime } from 'rxjs/operators';
var DateRangePickerComponent = /** @class */ (function () {
function DateRangePickerComponent(elementRef, viewContainerRef, renderer, datePickerConfig, i18n) {
var _this = this;
this.elementRef = elementRef;
this.viewContainerRef = viewContainerRef;
this.renderer = renderer;
this.datePickerConfig = datePickerConfig;
this.i18n = i18n;
this.selectedRange = [null, null];
this.showTime = false;
this.hideOnRangeSelected = false;
this.splitter = ' - ';
this.selectedRangeChange = new EventEmitter();
this._isOpen = false;
this.clickShow = false;
this.currentCalendars = [null, null];
this.hoverOnDate = new Subject();
this.datepickerPosition = 'bottom';
this.onChange = (/**
* @param {?} _
* @return {?}
*/
function (_) { return null; });
this.onTouched = (/**
* @return {?}
*/
function () { return null; });
this.chooseDate = (/**
* @param {?} range
* @return {?}
*/
function (range) {
_this.writeValue(range);
_this.notifyValueChange(range, SelectDateRangeChangeReason.date);
if (!_this.showTime && _this.hideOnRangeSelected) {
_this.hide();
}
});
this.clearAll = (/**
* @return {?}
*/
function () {
_this.rangeChange({ selectedRange: [null, null] });
});
this._dateConfig = datePickerConfig['dateConfig'];
this.dateConverter = datePickerConfig['dateConfig'].dateConverter || new DefaultDateConverter();
this.inputSub = fromEvent(this.elementRef.nativeElement, 'input')
.pipe(debounceTime(300)).subscribe((/**
* @param {?} event
* @return {?}
*/
function (event) {
_this.transUserInputToDatepicker(event);
}));
}
Object.defineProperty(DateRangePickerComponent.prototype, "dateConfig", {
get: /**
* @return {?}
*/
function () {
return this._dateConfig;
},
set: /**
* @param {?} dateConfig
* @return {?}
*/
function (dateConfig) {
if (dateConfig) {
this._dateConfig = dateConfig;
this._dateFormat = this.showTime ? dateConfig.format.time : dateConfig.format.date;
}
else {
this._dateConfig = this.datePickerConfig.dateConfig;
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(DateRangePickerComponent.prototype, "dateFormat", {
get: /**
* @return {?}
*/
function () {
return this._dateFormat;
},
set: /**
* @param {?} dateFormat
* @return {?}
*/
function (dateFormat) {
if (this._dateFormat !== dateFormat) {
this._dateFormat = dateFormat;
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(DateRangePickerComponent.prototype, "maxDate", {
get: /**
* @return {?}
*/
function () {
return this._maxDate;
},
set: /**
* @param {?} date
* @return {?}
*/
function (date) {
/** @type {?} */
var parseDate = this.convertDate(date);
if (parseDate) {
this._maxDate = parseDate;
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(DateRangePickerComponent.prototype, "minDate", {
get: /**
* @return {?}
*/
function () {
return this._minDate;
},
set: /**
* @param {?} date
* @return {?}
*/
function (date) {
/** @type {?} */
var parseDate = this.convertDate(date);
if (parseDate) {
this._minDate = parseDate;
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(DateRangePickerComponent.prototype, "isOpen", {
get: /**
* @return {?}
*/
function () {
return this._isOpen;
},
set: /**
* @param {?} isOpen
* @return {?}
*/
function (isOpen) {
this._isOpen = isOpen;
if (!isOpen && !this.rangeEnd) {
this.rangeStart = null;
}
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
DateRangePickerComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this._minDate = this.minDate ? new Date(this.minDate) : new Date(this.dateConfig.min, 0, 1, 0, 0, 0);
this._maxDate = this.maxDate ? new Date(this.maxDate) : new Date(this.dateConfig.max, 11, 31, 23, 59, 59);
this.setI18nText();
this.updateCdkConnectedOverlayOrigin();
this.subscribeHoverActions();
};
/**
* @param {?} fn
* @return {?}
*/
DateRangePickerComponent.prototype.registerOnChange = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onChange = fn;
};
/**
* @param {?} fn
* @return {?}
*/
DateRangePickerComponent.prototype.registerOnTouched = /**
* @param {?} fn
* @return {?}
*/
function (fn) {
this.onTouched = fn;
};
/**
* @param {?} selectedRange
* @return {?}
*/
DateRangePickerComponent.prototype.writeValue = /**
* @param {?} selectedRange
* @return {?}
*/
function (selectedRange) {
var _a;
if (selectedRange) {
this.selectedRange = selectedRange;
if (Array.isArray(this.selectedRange)) {
_a = tslib_1.__read(this.selectedRange, 2), this.rangeStart = _a[0], this.rangeEnd = _a[1];
}
this.writeModelValue(selectedRange);
}
};
/**
* @return {?}
*/
DateRangePickerComponent.prototype.setI18nText = /**
* @return {?}
*/
function () {
var _this = this;
this.i18nLocale = this.i18n.getI18nText().locale;
this.i18nSubscription = this.i18n.langChange().subscribe((/**
* @param {?} data
* @return {?}
*/
function (data) {
_this.i18nLocale = data.locale;
}));
};
/**
* @param {?} data
* @return {?}
*/
DateRangePickerComponent.prototype.rangeChange = /**
* @param {?} data
* @return {?}
*/
function (data) {
this.chooseDate(data.selectedRange);
};
/**
* @return {?}
*/
DateRangePickerComponent.prototype.updateCdkConnectedOverlayOrigin = /**
* @return {?}
*/
function () {
if (this.elementRef.nativeElement) {
this.cdkConnectedOverlayOrigin = new CdkOverlayOrigin(this.elementRef.nativeElement);
}
};
/**
* @param {?} $event
* @param {?=} clickShow
* @return {?}
*/
DateRangePickerComponent.prototype.toggle = /**
* @param {?} $event
* @param {?=} clickShow
* @return {?}
*/
function ($event, clickShow) {
this.isOpen = !this.isOpen;
this.clickShow = clickShow;
};
/**
* @return {?}
*/
DateRangePickerComponent.prototype.hide = /**
* @return {?}
*/
function () {
this.isOpen = false;
};
/**
* @private
* @param {?} input
* @return {?}
*/
DateRangePickerComponent.prototype.writeModelValue = /**
* @private
* @param {?} input
* @return {?}
*/
function (input) {
if (Array.isArray(input) && input.every((/**
* @param {?} _
* @return {?}
*/
function (_) { return !!_; }))) {
this.renderer.setProperty(this.elementRef.nativeElement, 'value', this.formatDateRange(input));
}
else {
this.renderer.setProperty(this.elementRef.nativeElement, 'value', '');
}
};
/**
* @private
* @param {?} arr
* @return {?}
*/
DateRangePickerComponent.prototype.formatDateRange = /**
* @private
* @param {?} arr
* @return {?}
*/
function (arr) {
var _this = this;
return arr.map((/**
* @param {?} date
* @param {?} i
* @return {?}
*/
function (date, i) {
return date ? _this.dateConverter.format(date, _this.dateFormat, _this.locale || _this.i18nLocale) : ['Start', 'End'][i];
})).join(this.splitter);
};
/**
* @param {?} $event
* @return {?}
*/
DateRangePickerComponent.prototype.onBlur = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
this.onTouched();
};
/**
* @param {?} $event
* @return {?}
*/
DateRangePickerComponent.prototype.onDocumentClick = /**
* @param {?} $event
* @return {?}
*/
function ($event) {
if (this.templateWrap && this.templateWrap.nativeElement.contains($event.target) && !this.hideOnRangeSelected) {
this.isOpen = true;
}
else if (this.elementRef.nativeElement !== $event.target && !this.clickShow) {
this.isOpen = false;
}
else {
this.clickShow = false;
}
};
/**
* @param {?} position
* @return {?}
*/
DateRangePickerComponent.prototype.onPositionChange = /**
* @param {?} position
* @return {?}
*/
function (position) {
switch (position.connectionPair.overlayY) {
case 'top':
case 'center':
this.datepickerPosition = 'bottom';
break;
case 'bottom':
this.datepickerPosition = 'top';
}
};
/**
* @param {?} date
* @return {?}
*/
DateRangePickerComponent.prototype.convertDate = /**
* @param {?} date
* @return {?}
*/
function (date) {
return date ?
this.dateConverter.parse(date, this.dateFormat, this.locale || this.i18nLocale) : null;
};
/**
* @param {?} event
* @return {?}
*/
DateRangePickerComponent.prototype.selectingDate = /**
* @param {?} event
* @return {?}
*/
function (event) {
this.hoverOnDate.next(event);
};
/**
* @return {?}
*/
DateRangePickerComponent.prototype.subscribeHoverActions = /**
* @return {?}
*/
function () {
var _this = this;
this.hoverOnDate.pipe(distinctUntilChanged()).subscribe((/**
* @param {?} date
* @return {?}
*/
function (date) {
_this.previewRangeEnd(date);
}));
};
/**
* @param {?} date
* @return {?}
*/
DateRangePickerComponent.prototype.previewRangeEnd = /**
* @param {?} date
* @return {?}
*/
function (date) {
if (date) {
this.leftPicker['previewEnd'] = date;
this.rightPicker['previewEnd'] = date;
}
};
/**
* @param {?} rangeStart
* @param {?} picker
* @return {?}
*/
DateRangePickerComponent.prototype.syncRangeStart = /**
* @param {?} rangeStart
* @param {?} picker
* @return {?}
*/
function (rangeStart, picker) {
picker.selectRange(rangeStart, true);
};
/**
* @param {?} currentCalender
* @param {?} orientation
* @return {?}
*/
DateRangePickerComponent.prototype.syncPickerPair = /**
* @param {?} currentCalender
* @param {?} orientation
* @return {?}
*/
function (currentCalender, orientation) {
switch (orientation) {
case 'left':
this.currentCalendars[0] = currentCalender;
break;
case 'right':
this.currentCalendars[1] = currentCalender;
break;
}
};
/**
* @param {?} range
* @param {?=} reason
* @return {?}
*/
DateRangePickerComponent.prototype.notifyValueChange = /**
* @param {?} range
* @param {?=} reason
* @return {?}
*/
function (range, reason) {
/** @type {?} */
var currentReason;
this.onChange(range);
if (reason === undefined) {
currentReason = SelectDateRangeChangeReason.time;
}
else {
currentReason = reason;
}
this.selectedRangeChange.emit({
reason: currentReason,
selectedRange: range
});
};
/**
* @return {?}
*/
DateRangePickerComponent.prototype.consolidateTime = /**
* @return {?}
*/
function () {
/** @type {?} */
var rangeStart = this.rangeStart;
/** @type {?} */
var rangeEnd = this.rangeEnd;
/** @type {?} */
var rangeStartTime = this.leftPicker['currentTime'];
/** @type {?} */
var rangeEndTime = this.rightPicker['currentTime'];
this.rangeStart = new Date(rangeStart.getFullYear(), rangeStart.getMonth(), rangeStart.getDate(), rangeStartTime.hour, rangeStartTime.minute, rangeStartTime.second);
this.rangeEnd = new Date(rangeEnd.getFullYear(), rangeEnd.getMonth(), rangeEnd.getDate(), rangeEndTime.hour, rangeEndTime.minute, rangeEndTime.second);
/** @type {?} */
var newRange = [this.rangeStart, this.rangeEnd];
this.onTouched();
this.writeValue(newRange);
this.notifyValueChange(newRange, SelectDateRangeChangeReason.button);
this.hide();
};
/**
* @private
* @param {?} event
* @return {?}
*/
DateRangePickerComponent.prototype.transUserInputToDatepicker = /**
* @private
* @param {?} event
* @return {?}
*/
function (event) {
var _this = this;
if (!this.showTime && !this.disabled) {
/** @type {?} */
var value = event.target.value;
if (!value) {
this.clearAll();
return;
}
/** @type {?} */
var valueList = value.split(this.splitter);
/** @type {?} */
var valueFormat = void 0;
// 如果拆出来6个,则为日期间分隔符和年月日间分隔符相同的情况,此情况允许
if (valueList.length === 6 && valueList.every((/**
* @param {?} val
* @return {?}
*/
function (val) { return !!val; }))) {
/** @type {?} */
var curValueList_1 = [];
valueList.forEach((/**
* @param {?} val
* @param {?} index
* @return {?}
*/
function (val, index) {
// 根据下标,前三个组装在一起,后三个组装在一起,不需要考虑分隔符,后面会format
if ((index + 1) % 3 === 1) {
curValueList_1.push(val);
}
else {
curValueList_1[Math.ceil(index / 3) - 1] = curValueList_1[Math.ceil(index / 3) - 1] + '-' + val;
}
}));
valueList = curValueList_1;
}
// 不管拆出来是6还是2个,都需要组装成2个日期
if (valueList.length === 2 && valueList.every((/**
* @param {?} val
* @return {?}
*/
function (val) { return !!val; }))) {
if (valueList[0] !== valueList[1]) {
// 判断前后两日期是否相等
/** @type {?} */
var valueTimeList = valueList.map((/**
* @param {?} val
* @return {?}
*/
function (val) { return (new Date(val + " 00:00:00")).getTime(); }));
valueFormat = this.formatDateRange(valueList.map((/**
* @param {?} numValue
* @return {?}
*/
function (numValue) { return new Date(numValue); })));
if (value === valueFormat && !valueTimeList.every((/**
* @param {?} val
* @return {?}
*/
function (val) { return val >= _this.minDate.getTime() && val <= _this.maxDate.getTime(); }))) {
// 判断前后俩日期是否小于最小或大于最大,若是则不合法,恢复之前的
this.writeValue(this.selectedRange);
return;
}
else {
// 判断前后俩日期是否大于最小,小于最大,若是则合法,进行如下操作
// 此时包括value为NaN既日期格式不正确的情况,对其进行处理下方判断会过滤掉
valueList = valueList.map((/**
* @param {?} val
* @return {?}
*/
function (val) { return new Date(val).getTime(); })).sort((/**
* @param {?} a
* @param {?} b
* @return {?}
*/
function (a, b) { return a - b; })).map((/**
* @param {?} numValue
* @return {?}
*/
function (numValue) { return new Date(numValue); }));
}
}
else {
// 前后相等的情况下恢复之前的
this.writeValue(this.selectedRange);
return;
}
if (valueFormat && value === valueFormat) {
this.chooseDate(valueList);
}
}
}
else {
this.writeValue(this.selectedRange);
}
};
/**
* @return {?}
*/
DateRangePickerComponent.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
this.hide();
if (this.inputSub) {
this.inputSub.unsubscribe();
}
if (this.i18nSubscription) {
this.i18nSubscription.unsubscribe();
}
};
DateRangePickerComponent.decorators = [
{ type: Component, args: [{
selector: '[dDateRangePicker]',
providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: forwardRef((/**
* @return {?}
*/
function () { return DateRangePickerComponent; })),
multi: true
}],
exportAs: 'dateRangePicker',
template: "\n <ng-template cdk-connected-overlay\n [cdkConnectedOverlayOrigin]=\"cdkConnectedOverlayOrigin\"\n [cdkConnectedOverlayOpen]=\"isOpen\"\n (backdropClick)=\"isOpen=false\"\n (positionChange)=\"onPositionChange($event)\">\n <div [@cornerFadeInOut]=\"isOpen ? datepickerPosition : 'void'\" class=\"devui-date-range-wrapper\">\n <div class=\"devui-date-range-picker\">\n <d-datepicker-range-single [locale]=\"locale || i18nLocale\" class=\"devui-date-picker\"\n [cssClass]=\"cssClass\"\n [disabled]=\"disabled\" [dateConverter]=\"dateConverter\" (rangeSelected)=\"rangeChange($event)\"\n [dateFormat]=\"dateFormat\" [dateConfig]=\"dateConfig\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\" (hoverOnDate)=\"selectingDate($event)\" [rangePicker]=\"true\"\n [selectedRange]=\"[rangeStart, rangeEnd]\" (rangeSelecting)=\"syncRangeStart($event, rightPicker)\"\n (syncPickerPair)=\"syncPickerPair($event, 'left')\"\n [currentCalendars]=\"currentCalendars\"\n [showTime]=\"showTime\"\n #leftPicker></d-datepicker-range-single>\n <d-datepicker-range-single [locale]=\"locale || i18nLocale\" class=\"devui-date-picker\"\n [cssClass]=\"cssClass\"\n [disabled]=\"disabled\" [dateConverter]=\"dateConverter\" (rangeSelected)=\"rangeChange($event)\"\n [dateFormat]=\"dateFormat\" [dateConfig]=\"dateConfig\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\" (hoverOnDate)=\"selectingDate($event)\" [rangePicker]=\"true\"\n [selectedRange]=\"[rangeStart, rangeEnd]\" (rangeSelecting)=\"syncRangeStart($event, leftPicker)\"\n (syncPickerPair)=\"syncPickerPair($event, 'right')\" [isAuxiliary]=\"true\"\n [currentCalendars]=\"currentCalendars\"\n [showTime]=\"showTime\"\n (consolidateTime)=\"consolidateTime()\"\n #rightPicker></d-datepicker-range-single>\n </div>\n <div class=\"devui-date-range-custom\" *ngIf=\"customViewTemplate\" #templateWrap>\n <ng-template\n [ngTemplateOutlet]=\"customViewTemplate\"\n [ngTemplateOutletContext]=\"{\n $implicit: this,\n clearAll: clearAll,\n chooseDate: chooseDate,\n rangeStart: rangeStart,\n rangeEnd: rangeEnd\n }\"\n ></ng-template>\n </div>\n </div>\n </ng-template>\n ",
animations: [
cornerFadeInOut
],
styles: [".devui-date-range-wrapper{display:-webkit-inline-box!important;display:inline-flex!important;box-shadow:0 4px 8px 0 rgba(41,48,64,.2);background-color:#fff;-webkit-transform:perspective(1px) translate3d(0,0,0);transform:perspective(1px) translate3d(0,0,0);-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.devui-date-range-wrapper .devui-date-range-picker{display:-webkit-inline-box!important;display:inline-flex!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.devui-date-range-wrapper .devui-date-range-picker::after{content:'';position:absolute;top:29px;width:100%;height:1px;border-bottom:1px solid #adb0b8}.devui-date-range-wrapper .devui-date-range-custom{width:500px;border-top:1px solid #adb0b8}.devui-date-picker:not(:last-child){margin-right:20px}"]
}] }
];
/** @nocollapse */
DateRangePickerComponent.ctorParameters = function () { return [
{ type: ElementRef },
{ type: ViewContainerRef },
{ type: Renderer2 },
{ type: DatePickerConfig },
{ type: I18nService }
]; };
DateRangePickerComponent.propDecorators = {
dateConfig: [{ type: Input }],
dateFormat: [{ type: Input }],
maxDate: [{ type: Input }],
minDate: [{ type: Input }],
locale: [{ type: Input }],
cssClass: [{ type: Input }],
disabled: [{ type: Input }],
dateConverter: [{ type: Input }],
selectedRange: [{ type: Input }],
showTime: [{ type: Input }],
hideOnRangeSelected: [{ type: Input }],
customViewTemplate: [{ type: Input }],
splitter: [{ type: Input }],
selectedRangeChange: [{ type: Output }],
leftPicker: [{ type: ViewChild, args: ['leftPicker', { static: false },] }],
rightPicker: [{ type: ViewChild, args: ['rightPicker', { static: false },] }],
templateWrap: [{ type: ViewChild, args: ['templateWrap', { static: false },] }],
onBlur: [{ type: HostListener, args: ['blur', ['$event'],] }],
onDocumentClick: [{ type: HostListener, args: ['document:click', ['$event'],] }]
};
return DateRangePickerComponent;
}());
export { DateRangePickerComponent };
if (false) {
/** @type {?} */
DateRangePickerComponent.prototype.locale;
/** @type {?} */
DateRangePickerComponent.prototype.cssClass;
/** @type {?} */
DateRangePickerComponent.prototype.disabled;
/** @type {?} */
DateRangePickerComponent.prototype.dateConverter;
/** @type {?} */
DateRangePickerComponent.prototype.selectedRange;
/** @type {?} */
DateRangePickerComponent.prototype.showTime;
/** @type {?} */
DateRangePickerComponent.prototype.hideOnRangeSelected;
/** @type {?} */
DateRangePickerComponent.prototype.customViewTemplate;
/** @type {?} */
DateRangePickerComponent.prototype.splitter;
/** @type {?} */
DateRangePickerComponent.prototype.selectedRangeChange;
/** @type {?} */
DateRangePickerComponent.prototype.leftPicker;
/** @type {?} */
DateRangePickerComponent.prototype.rightPicker;
/** @type {?} */
DateRangePickerComponent.prototype.templateWrap;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype._isOpen;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype._dateConfig;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype._dateFormat;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype._maxDate;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype._minDate;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype.clickShow;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype.inputSub;
/** @type {?} */
DateRangePickerComponent.prototype.currentCalendars;
/** @type {?} */
DateRangePickerComponent.prototype.cdkConnectedOverlayOrigin;
/** @type {?} */
DateRangePickerComponent.prototype.i18nLocale;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype.i18nSubscription;
/** @type {?} */
DateRangePickerComponent.prototype.hoverOnDate;
/** @type {?} */
DateRangePickerComponent.prototype.datepickerPosition;
/** @type {?} */
DateRangePickerComponent.prototype.rangeStart;
/** @type {?} */
DateRangePickerComponent.prototype.rangeEnd;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype.onChange;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype.onTouched;
/** @type {?} */
DateRangePickerComponent.prototype.chooseDate;
/** @type {?} */
DateRangePickerComponent.prototype.clearAll;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype.elementRef;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype.viewContainerRef;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype.renderer;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype.datePickerConfig;
/**
* @type {?}
* @private
*/
DateRangePickerComponent.prototype.i18n;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZGV2dWkvZGF0ZXBpY2tlci8iLCJzb3VyY2VzIjpbImRhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBRVYsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osVUFBVSxFQUNWLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFNBQVMsRUFFVCxXQUFXLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUF5RCxNQUFNLHNCQUFzQixDQUFDO0FBRS9HLE9BQU8sRUFBa0MsMkJBQTJCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLElBQUksZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRTtJQXFKRSxrQ0FBb0IsVUFBc0IsRUFBVSxnQkFBa0MsRUFDbEUsUUFBbUIsRUFBVSxnQkFBa0MsRUFBVSxJQUFpQjtRQUQ5RyxpQkFXQztRQVhtQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsRSxhQUFRLEdBQVIs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QUFnQixFQUFFLENBQUMsUUFBUSxDQUFDOztJQTRKNUMsK0JBQUM7Q0FBQSxBQTNZRCxJQTJZQztTQS9VWSx3QkFBd0I7OztJQTBEbkMsMENBQXdCOztJQUN4Qiw0Q0FBMEI7O0lBQzFCLDRDQUEyQjs7SUFDM0IsaURBQXNDOztJQUN0QyxpREFBc0M7O0lBQ3RDLDRDQUEwQjs7SUFDMUIsdURBQXFDOztJQUNyQyxzREFBOEM7O0lBQzlDLDRDQUE0Qjs7SUFDNUIsdURBQW1GOztJQUNuRiw4Q0FBbUU7O0lBQ25FLCtDQUFxRTs7SUFDckUsZ0RBQXVFOzs7OztJQUN2RSwyQ0FBd0I7Ozs7O0lBQ3hCLCtDQUF5Qjs7Ozs7SUFDekIsK0NBQTRCOzs7OztJQUM1Qiw0Q0FBdUI7Ozs7O0lBQ3ZCLDRDQUF1Qjs7Ozs7SUFDdkIsNkNBQTBCOzs7OztJQUMxQiw0Q0FBK0I7O0lBQy9CLG9EQUF1Qzs7SUFDdkMsNkRBQXNDOztJQUN0Qyw4Q0FBMkM7Ozs7O0lBQzNDLG9EQUF1Qzs7SUFDdkMsK0NBQXFEOztJQUNyRCxzREFBcUQ7O0lBQ3JELDhDQUFXOztJQUNYLDRDQUFTOzs7OztJQUNULDRDQUFvQzs7Ozs7SUFDcEMsNkNBQStCOztJQW9EL0IsOENBSUM7O0lBNExELDRDQUVDOzs7OztJQXBQVyw4Q0FBOEI7Ozs7O0lBQUUsb0RBQTBDOzs7OztJQUMxRSw0Q0FBMkI7Ozs7O0lBQUUsb0RBQTBDOzs7OztJQUFFLHdDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBPbkluaXQsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBFbGVtZW50UmVmLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBWaWV3Q2hpbGQsXHJcbiAgT25EZXN0cm95LFxyXG4gIFRlbXBsYXRlUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENka092ZXJsYXlPcmlnaW4sIENvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbkNoYW5nZSwgVmVydGljYWxDb25uZWN0aW9uUG9zIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBEYXRlQ29udmVydGVyIH0gZnJvbSAnbmctZGV2dWkvdXRpbHMnO1xyXG5pbXBvcnQgeyBTZWxlY3REYXRlUmFuZ2VDaGFuZ2VFdmVudEFyZ3MsIFNlbGVjdERhdGVSYW5nZUNoYW5nZVJlYXNvbiB9IGZyb20gJy4vZGF0ZS1yYW5nZS1jaGFuZ2UtZXZlbnQtYXJncy5tb2RlbCc7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb25maWdTZXJ2aWNlIGFzIERhdGVQaWNrZXJDb25maWcgfSBmcm9tICcuL2RhdGUtcGlja2VyLmNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSTE4blNlcnZpY2UsIEkxOG5JbnRlcmZhY2UgfSBmcm9tICduZy1kZXZ1aS9pMThuJztcclxuaW1wb3J0IHsgRGVmYXVsdERhdGVDb252ZXJ0ZXIgfSBmcm9tICduZy1kZXZ1aS91dGlscyc7XHJcbmltcG9ydCB7IGNvcm5lckZhZGVJbk91dCB9IGZyb20gJ25nLWRldnVpL3V0aWxzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnW2REYXRlUmFuZ2VQaWNrZXJdJyxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCksXHJcbiAgICBtdWx0aTogdHJ1ZVxyXG4gIH1dLFxyXG4gIGV4cG9ydEFzOiAnZGF0ZVJhbmdlUGlja2VyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLXRlbXBsYXRlIGNkay1jb25uZWN0ZWQtb3ZlcmxheVxyXG4gICAgICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cImNka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5cIlxyXG4gICAgICAgICAgICAgICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJpc09wZW5cIlxyXG4gICAgICAgICAgICAgICAgIChiYWNrZHJvcENsaWNrKT1cImlzT3Blbj1mYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgKHBvc2l0aW9uQ2hhbmdlKT1cIm9uUG9zaXRpb25DaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2IFtAY29ybmVyRmFkZUluT3V0XT1cImlzT3BlbiA/IGRhdGVwaWNrZXJQb3NpdGlvbiA6ICd2b2lkJ1wiIGNsYXNzPVwiZGV2dWktZGF0ZS1yYW5nZS13cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldnVpLWRhdGUtcmFuZ2UtcGlja2VyXCI+XHJcbiAgICAgICAgICA8ZC1kYXRlcGlja2VyLXJhbmdlLXNpbmdsZSBbbG9jYWxlXT1cImxvY2FsZSB8fCBpMThuTG9jYWxlXCIgY2xhc3M9XCJkZXZ1aS1kYXRlLXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nzc0NsYXNzXT1cImNzc0NsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbZGF0ZUNvbnZlcnRlcl09XCJkYXRlQ29udmVydGVyXCIgKHJhbmdlU2VsZWN0ZWQpPVwicmFuZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGVGb3JtYXRdPVwiZGF0ZUZvcm1hdFwiIFtkYXRlQ29uZmlnXT1cImRhdGVDb25maWdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIiAoaG92ZXJPbkRhdGUpPVwic2VsZWN0aW5nRGF0ZSgkZXZlbnQpXCIgW3JhbmdlUGlja2VyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFJhbmdlXT1cIltyYW5nZVN0YXJ0LCByYW5nZUVuZF1cIiAocmFuZ2VTZWxlY3RpbmcpPVwic3luY1JhbmdlU3RhcnQoJGV2ZW50LCByaWdodFBpY2tlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzeW5jUGlja2VyUGFpcik9XCJzeW5jUGlja2VyUGFpcigkZXZlbnQsICdsZWZ0JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXJyZW50Q2FsZW5kYXJzXT1cImN1cnJlbnRDYWxlbmRhcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VGltZV09XCJzaG93VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI2xlZnRQaWNrZXI+PC9kLWRhdGVwaWNrZXItcmFuZ2Utc2luZ2xlPlxyXG4gICAgICAgICAgPGQtZGF0ZXBpY2tlci1yYW5nZS1zaW5nbGUgW2xvY2FsZV09XCJsb2NhbGUgfHwgaTE4bkxvY2FsZVwiIGNsYXNzPVwiZGV2dWktZGF0ZS1waWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjc3NDbGFzc109XCJjc3NDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2Fi