private createTimelineData()

in src/timeLine.ts [1260:1299]


    private createTimelineData(
        timelineSettings: Settings,
        startDate: Date,
        endDate: Date,
        timelineGranularityData: GranularityData,
        locale: string,
        localizationManager: powerbiVisualsApi.extensibility.ILocalizationManager,
    ) {
        const calendar: Calendar = this.calendarFactory.create(timelineSettings.weeksDetermintaionStandards, timelineSettings.calendar, timelineSettings.weekDay);

        timelineGranularityData.createGranularities(calendar, locale, localizationManager);
        timelineGranularityData.createLabels();

        if (this.initialized) {
            const actualEndDate: Date = GranularityData.NEXT_DAY(endDate);

            const daysPeriods: ITimelineDatePeriod[] = this.timelineGranularityData
                .getGranularity(GranularityType.day)
                .getDatePeriods();

            const prevStartDate: Date = daysPeriods[0].startDate;

            const prevEndDate: Date = daysPeriods[daysPeriods.length - 1].endDate;

            const changedSelection: boolean =
                startDate.getTime() !== prevStartDate.getTime()
                ||
                actualEndDate.getTime() !== prevEndDate.getTime();

            if (!changedSelection) {
                this.changeGranularity(
                    this.settings.granularity.granularity,
                    startDate,
                    actualEndDate,
                );
            } else {
                this.initialized = false;
            }
        }
    }