private mapColumns()

in powerbi-visual-builder/src_visual/visual.ts [135:202]


    private mapColumns(
      powerBIColumn: DataViewValueColumn | DataViewCategoryColumn,
      type: CharticulatorContainer.Specification.DataType,
      rawFormat?: string
    ): Array<{
      values: CharticulatorContainer.Specification.DataValue[];
      highlights: boolean[];
    }> {
      const columns = [
        {
          values: CharticulatorContainer.Dataset.convertColumnType(
            powerBIColumn.values.map(x => (x == null ? null : x.valueOf())),
            type
          ),
          highlights: powerBIColumn.values.map((value, i) => {
            return (powerBIColumn as DataViewValueColumn).highlights &&
              (powerBIColumn as DataViewValueColumn).highlights[i] != null &&
              value != null
              ? (powerBIColumn as DataViewValueColumn).highlights[
                  i
                ].valueOf() <= value.valueOf()
              : false;
          })
        }
      ];
      if (type === "date" || type === "boolean") {
        if (rawFormat) {
          columns.push({
            values: CharticulatorContainer.Dataset.convertColumnType(
              powerBIColumn.values.map(x => (x == null ? null : x.valueOf())),
              type
            ).map(x =>
              rawFormat ? applyDateFormat(x as Date, rawFormat) : x.toString()
            ),
            highlights: powerBIColumn.values.map((value, i) => {
              return (powerBIColumn as DataViewValueColumn).highlights &&
                (powerBIColumn as DataViewValueColumn).highlights[i] != null &&
                value != null
                ? (powerBIColumn as DataViewValueColumn).highlights[
                    i
                  ].valueOf() <= value.valueOf()
                : false;
            })
          });
        } else {
          columns.push({
            values: powerBIColumn.values.map(x =>
              x == null
                ? null
                : rawFormat
                ? applyDateFormat(x as Date, rawFormat)
                : x.toString()
            ),
            highlights: powerBIColumn.values.map((value, i) => {
              return (powerBIColumn as DataViewValueColumn).highlights &&
                (powerBIColumn as DataViewValueColumn).highlights[i] != null &&
                value != null
                ? (powerBIColumn as DataViewValueColumn).highlights[
                    i
                  ].valueOf() <= value.valueOf()
                : false;
            })
          });
        }
      }

      return columns;
    }