private adjustFilterDatePeriod()

in src/timeLine.ts [1132:1162]


    private adjustFilterDatePeriod(): IAdjustedFilterDatePeriod {
        // It contains date boundaties that was taken from current slicer filter (filter range).
        // If nothing is selected in slicer the boundaries will be null.
        const filterDatePeriod: DatePeriodBase = <DatePeriodBase>(this.settings.general.datePeriod);

        // There may be the case when date boundaries that taken from data view are less than slicer filter dates.
        // The case may happen if there is another timeline slicer that works with the same data and already applied a filter.
        // In that case we need to correct slice filter dates.
        if (filterDatePeriod.startDate
            && this.datePeriod.startDate
            && filterDatePeriod.startDate.getTime() < this.datePeriod.startDate.getTime()
        ) {
            filterDatePeriod.startDate = null;
        }
        // End date from data is always less than date from slicer filter.
        // This means that we need to correct it before check.
        let adaptedDataEndDate: Date = null;
        if (this.datePeriod.endDate) {
            adaptedDataEndDate = new Date(<any>(this.datePeriod.endDate));
            adaptedDataEndDate.setDate(adaptedDataEndDate.getDate() + 1);
        }

        if (filterDatePeriod.endDate && adaptedDataEndDate && filterDatePeriod.endDate.getTime() > adaptedDataEndDate.getTime()) {
            filterDatePeriod.endDate = null;
        }

        return {
            adaptedDataEndDate,
            period: filterDatePeriod,
        }
    }