diff --git a/lib/content-services/src/lib/search/components/search-date-range/search-date-range.component.html b/lib/content-services/src/lib/search/components/search-date-range/search-date-range.component.html
index 1363c2d52f..d00f35358e 100644
--- a/lib/content-services/src/lib/search/components/search-date-range/search-date-range.component.html
+++ b/lib/content-services/src/lib/search/components/search-date-range/search-date-range.component.html
@@ -6,8 +6,8 @@
[errorStateMatcher]="matcher"
placeholder="{{ 'SEARCH.FILTER.RANGE.FROM-DATE' | translate }}"
[matDatepicker]="fromDatepicker"
- [max]="getFromMaxDate()"
- (focusout)="onChangedHandler($event, from)"
+ [max]="fromMaxDate"
+ (dateChange)="onChangedHandler($event, from)"
data-automation-id="date-range-from-input">
@@ -25,7 +25,7 @@
[matDatepicker]="toDatepicker"
[min]="from.value"
[max]="maxDate"
- (focusout)="onChangedHandler($event, to)"
+ (dateChange)="onChangedHandler($event, to)"
data-automation-id="date-range-to-input">
diff --git a/lib/content-services/src/lib/search/components/search-date-range/search-date-range.component.spec.ts b/lib/content-services/src/lib/search/components/search-date-range/search-date-range.component.spec.ts
index e5ff7d76b8..bda21cf9c5 100644
--- a/lib/content-services/src/lib/search/components/search-date-range/search-date-range.component.spec.ts
+++ b/lib/content-services/src/lib/search/components/search-date-range/search-date-range.component.spec.ts
@@ -74,7 +74,7 @@ describe('SearchDateRangeComponent', () => {
const momentFromInput = moment(inputString, dateFormatFixture);
expect(momentFromInput.isValid()).toBeTruthy();
- component.onChangedHandler({ srcElement: { value: inputString } }, component.from);
+ component.onChangedHandler({ value: inputString }, component.from);
expect(component.from.value.toString()).toEqual(momentFromInput.toString());
});
@@ -86,7 +86,7 @@ describe('SearchDateRangeComponent', () => {
const momentFromInput = moment(inputString, dateFormatFixture);
expect(momentFromInput.isValid()).toBeFalsy();
- component.onChangedHandler({ srcElement: { value: inputString } }, component.from);
+ component.onChangedHandler({ value: inputString }, component.from);
expect(component.from.value.toString()).not.toEqual(momentFromInput.toString());
});
@@ -156,7 +156,7 @@ describe('SearchDateRangeComponent', () => {
fixture.detectChanges();
const input = fixture.debugElement.nativeElement.querySelector('[data-automation-id="date-range-from-input"]');
input.value = '10-05-18';
- input.dispatchEvent(new Event('focusout'));
+ input.dispatchEvent(new Event('input'));
fixture.detectChanges();
fixture.whenStable().then(() => {
expect(component.getFromValidationMessage()).toEqual('SEARCH.FILTER.VALIDATION.INVALID-DATE');
@@ -167,7 +167,7 @@ describe('SearchDateRangeComponent', () => {
fixture.detectChanges();
const input = fixture.debugElement.nativeElement.querySelector('[data-automation-id="date-range-from-input"]');
input.value = '10/10/2018';
- input.dispatchEvent(new Event('focusout'));
+ input.dispatchEvent(new Event('input'));
fixture.detectChanges();
fixture.whenStable().then(() => {
fixture.detectChanges();
diff --git a/lib/content-services/src/lib/search/components/search-date-range/search-date-range.component.ts b/lib/content-services/src/lib/search/components/search-date-range/search-date-range.component.ts
index 5845b96c55..0e00e54acd 100644
--- a/lib/content-services/src/lib/search/components/search-date-range/search-date-range.component.ts
+++ b/lib/content-services/src/lib/search/components/search-date-range/search-date-range.component.ts
@@ -56,6 +56,7 @@ export class SearchDateRangeComponent implements SearchWidget, OnInit, OnDestroy
context?: SearchQueryBuilderService;
datePickerDateFormat = DEFAULT_FORMAT_DATE;
maxDate: any;
+ fromMaxDate: any;
isActive = false;
startValue: any;
@@ -119,6 +120,8 @@ export class SearchDateRangeComponent implements SearchWidget, OnInit, OnDestroy
from: this.from,
to: this.to
});
+
+ this.setFromMaxDate();
}
ngOnDestroy() {
@@ -178,8 +181,7 @@ export class SearchDateRangeComponent implements SearchWidget, OnInit, OnDestroy
onChangedHandler(event: any, formControl: FormControl) {
- const inputValue = event.srcElement.value;
-
+ const inputValue = event.value;
const formatDate = this.dateAdapter.parse(inputValue, this.datePickerDateFormat);
if (formatDate && formatDate.isValid()) {
formControl.setValue(formatDate);
@@ -187,11 +189,9 @@ export class SearchDateRangeComponent implements SearchWidget, OnInit, OnDestroy
formControl.setErrors({
'invalidOnChange': true
});
- } else {
- formControl.setErrors({
- 'required': true
- });
}
+
+ this.setFromMaxDate();
}
setLocale(locale) {
@@ -207,13 +207,13 @@ export class SearchDateRangeComponent implements SearchWidget, OnInit, OnDestroy
event.srcElement.click();
}
- getFromMaxDate(): any {
+ setFromMaxDate(): any {
let maxDate: string;
if (!this.to.value || this.maxDate && (moment(this.maxDate).isBefore(this.to.value))) {
maxDate = this.maxDate;
} else {
maxDate = moment(this.to.value);
}
- return maxDate;
+ this.fromMaxDate = maxDate;
}
}