private static parseSettings()

in src/visual.ts [332:383]


    private static parseSettings(dataView: DataView, colorHelper: ColorHelper): Settings {
        let settings: Settings = Settings.parse<Settings>(dataView);
        if (!settings.general.enableColorbrewer) {
            if (settings.general.buckets > TableHeatMap.BucketCountMaxLimit) {
                settings.general.buckets = TableHeatMap.BucketCountMaxLimit;
            }
            if (settings.general.buckets < TableHeatMap.BucketCountMinLimit) {
                settings.general.buckets = TableHeatMap.BucketCountMinLimit;
            }
        } else {
            if (settings.general.colorbrewer === "") {
                settings.general.colorbrewer = TableHeatMap.DefaultColorbrewer;
            }
            let colorbrewerArray: IColorArray = colorbrewer[settings.general.colorbrewer];
            let minBucketNum: number = 0;
            let maxBucketNum: number = 0;
            for (let bucketIndex: number = TableHeatMap.BucketCountMinLimit; bucketIndex < TableHeatMap.ColorbrewerMaxBucketCount; bucketIndex++) {
                if (minBucketNum === 0 && (colorbrewerArray as Object).hasOwnProperty(bucketIndex.toString())) {
                    minBucketNum = bucketIndex;
                }
                if ((colorbrewerArray as Object).hasOwnProperty(bucketIndex.toString())) {
                    maxBucketNum = bucketIndex;
                }
            }

            if (settings.general.buckets > maxBucketNum) {
                settings.general.buckets = maxBucketNum;
            }
            if (settings.general.buckets < minBucketNum) {
                settings.general.buckets = minBucketNum;
            }
        }

        if (colorHelper.isHighContrast) {
            const foregroundColor: string = colorHelper.getThemeColor("foreground");
            const backgroundColor: string = colorHelper.getThemeColor("background");

            settings.labels.show = true;
            settings.labels.fill = foregroundColor;

            settings.xAxisLabels.fill = foregroundColor;
            settings.yAxisLabels.fill = foregroundColor;

            settings.general.enableColorbrewer = false;
            settings.general.gradientStart = backgroundColor;
            settings.general.gradientEnd = backgroundColor;
            settings.general.stroke = foregroundColor;
            settings.general.textColor = foregroundColor;
        }

        return settings;
    }