map.apps Bundle APIs 4.20.2
    Preparing search index...

    Interface FormattingInfoProvider

    Extension point of the FormatterFacade. An FormattingInfoProvider is requested for each column and field combination. It provides metadata about how a column should be rendered. These metadata is attached to a column and used to pick the correct formatter.

    NOTE: This interface is a proof of concept please provide feedback if you use it.

    A FormatterInfoProvider needs to be registered as provides: result-api.FormattingInfoProvider.

     export class CustomFormatting implements FormattingInfoProvider {

    resolveFormattingInfo(
    fields: FieldData[],
    context: {
    dataSourceId: string;
    isDomainValueField(fieldName: string): boolean;
    hasFormatter(formatterId: string): boolean;
    defaultFormat(field: DatasetField): FormattingInfo | undefined;
    }
    ): FormattingInfo | "hide" | undefined {
    if (fields.length !== 1) {
    // support only single field columns
    return undefined;
    }

    if (context.dataSourceId === "my-datasource") {
    const fieldName = fields[0]!.name;
    if (fieldName.startWith("Shape")){
    // hide unwanted fields
    return "hide";
    }

    if (fieldName === "X-Coord" || fieldName === "Y-Coord" ){
    // show coordinates without grouping and always 3 digits
    return {
    formatterId: "intl-number",
    align: "right",
    formatterOptions: {
    minFractionDigits: 3,
    maxFractionDigits: 3,
    useGrouping: false
    }
    };

    if (fieldName === "Creation-Date"){
    return {
    formatterId: "intl-datetime",
    formatterOptions: {
    dateTimeFormat: "date" // date | time | datetime
    }
    };
    }
    }
    }
    interface FormattingInfoProvider {
        resolveFormattingInfo(
            fields: FieldData[],
            context: {
                dataSourceId: string;
                defaultFormat(field: FieldData): FormattingInfo | undefined;
                hasFormatter(formatterId: string): boolean;
                isDomainValueField(fieldName: string): boolean;
            },
        ): FormattingInfo
        | "hide"
        | undefined;
    }
    Index

    Methods

    • Resolve a formatting infos for a column, which may be a combination of multiple fields.

      Parameters

      • fields: FieldData[]

        the dataset fields referenced by a column.

      • context: {
            dataSourceId: string;
            defaultFormat(field: FieldData): FormattingInfo | undefined;
            hasFormatter(formatterId: string): boolean;
            isDomainValueField(fieldName: string): boolean;
        }
        context: {
        // dataSourceId to react to special datasets
        dataSourceId: string;
        // method to check if a field is a domain value field.
        isDomainValueField(fieldName: string): boolean;
        // method to check if a formatter is available
        hasFormatter(formatterId: string): boolean;
        // method to lookup the default formatting info for a field
        defaultFormat(field: DatasetField): FormattingInfo | undefined;
        }

      Returns FormattingInfo | "hide" | undefined

      • 'hide' if the column should complete be hidden
      • undefined if this provider can not provide information, this means the next provider is checked or the default format is applied
      • FormattingInfo a formatting info for this column