private static parseSettings()

in src/timeLine.ts [468:517]


    private static parseSettings(
        dataView: powerbiVisualsApi.DataView,
        jsonFilters: AdvancedFilter[],
        colorPalette: powerbiVisualsApi.extensibility.ISandboxExtendedColorPalette,
    ): Settings {
        const settings: Settings = Settings.parse<Settings>(dataView);

        Timeline.SET_VALID_CALENDAR_SETTINGS(settings.calendar);

        if (jsonFilters
            && jsonFilters[0]
            && jsonFilters[0].conditions
            && jsonFilters[0].conditions[0]
            && jsonFilters[0].conditions[1]
        ) {
            const startDate: Date = new Date(`${jsonFilters[0].conditions[0].value}`);
            const endDate: Date = new Date(`${jsonFilters[0].conditions[1].value}`);

            if (!isNaN(startDate.getTime()) && !isNaN(endDate.getTime())) {
                settings.general.datePeriod = DatePeriodBase.CREATE(startDate, endDate);
            } else {
                settings.general.datePeriod = DatePeriodBase.CREATEEMPTY();
            }
        } else {
            settings.general.datePeriod = DatePeriodBase.CREATEEMPTY();
        }

        if (colorPalette.isHighContrast) {
            const {
                foreground,
                background,
            } = colorPalette;

            settings.rangeHeader.fontColor = foreground.value;

            settings.cells.fillSelected = foreground.value;
            settings.cells.fillUnselected = background.value;
            settings.cells.strokeColor = foreground.value;
            settings.cells.selectedStrokeColor = background.value;

            settings.granularity.scaleColor = foreground.value;
            settings.granularity.sliderColor = foreground.value;

            settings.labels.fontColor = foreground.value;

            settings.cursor.color = foreground.value;
        }

        return settings;
    }