A configuração define os atributos de dados e estilo exigidos por uma visualização.
Espera-se que a configuração seja um arquivo JSON com a seguinte estrutura:
{
  "data": [{
    "id": string,
    "label": string,
    "elements": [{
      "type": enum(DataElement),
      "id": string,
      "label": string,
      "options": object(DataElementOptions)
    }]
  }],
  "style": [{
    "id": string,
    "label": string,
    "elements": [{
      "type": enum(StyleElement),
      "id": string,
      "label": string,
      "defaultValue": string | object
    }]
  }],
  "interactions": [{
    "id": string,
    "supportedActions": array(enum(InteractionType))
  }],
  "features": {
   "enableComparisonDateRange": boolean
  }
}
| Nome do campo | Tipo | Descrição | 
|---|---|---|
| data[] | Array(object) | A configuração de dados da visualização, que afeta o painel Dados do painel de propriedades. | 
| data[].id | string | O código da seção de dados. Precisa ser uma string com algum valor e sem espaços. | 
| data[].label | string | A etiqueta da seção de dados. | 
| data[].elements[] | string | Os elementos de dados que serão renderizados. | 
| data[].elements[].type | stringenum(DataElement) | O tipo de elemento de dados que será renderizado. | 
| data[].elements[].id | string | O código do elemento de dados. Precisa ser uma string com algum valor e sem espaços. | 
| data[].elements[].label | string | A etiqueta da dica do elemento de dados. | 
| data[].elements[].options | object(DataElementOptions) | As opções de dados do elemento. Depende do tipo de elemento de dados. | 
| style[] | Array(object) | A configuração de estilo exigida pela visualização, que afeta o painel Estilo do painel de propriedades. Cada objeto na matriz representa um elemento de estilo que será renderizado. A ordem dos elementos determina a ordem em que eles serão processados. | 
| style[].id | string | O código da seção de estilo. Precisa ser uma string com algum valor e sem espaços. | 
| style[].label | string | A etiqueta da seção de estilo. | 
| style[].elements | Array(object) | Os elementos de estilo que serão renderizados. | 
| style[].elements[].id | string | O código do elemento de estilo. Precisa ser uma string com algum valor e sem espaços. | 
| style[].elements[].type | stringenum(StyleElement) | Tipo de elemento de estilo. Por exemplo: seletor de fonte. | 
| style[].elements[].label | string | A dica ou etiqueta do elemento de estilo. É o texto da etiqueta de um elemento da caixa de seleção e o texto da dica de outros tipos de elemento. | 
| style[].elements[].options | Array(object) | optionsdo elemento. Válido apenas para os tipos de elemento de estiloSELECT_SINGLEeSELECT_RADIO. | 
| style[].elements[].defaultValue | string OR object | Valor padrão do elemento de estilo. Valores inválidos serão ignorados.* | 
| interactions[] | Array(object) | A configuração de interações da visualização, que determina se a visualização pode atuar como um filtro. | 
| interactions[].id | string | O código do elemento de interação. Precisa ser uma string com algum valor e sem espaços. | 
| interactions[].supportedActions | Array(enum(InteractionType) | As possíveis interações compatíveis. | 
| features | object | Os recursos que você quer ativar ou desativar na visualização. | 
| features.enableComparisonDateRange | boolean | Ative os períodos de comparação. Quando não especificado, o padrão é false. | 
*O defaultValue é uma string usada para tudo, exceto seletores de cores. Para cores, o defaultValue deve ser um objeto do seguinte formato:
{
    color: `string`
}
DataElement
Estes são os possíveis valores dos elementos de dados:
| Valor de enum | Descrição | 
|---|---|
| MÉTRICA | Renderiza um elemento de campo de métrica. | 
| DIMENSION | Processa um elemento de campo de dimensão. | 
| MAX_RESULTS | Define o máximo de linhas de dados que podem ser solicitadas por essa visualização | 
Opções de DataElement
Estes são os possíveis valores dos elementos de dados:
| Valor de enum | Tipo de opção | Opções disponíveis | 
|---|---|---|
| MÉTRICA | Objeto | max: number – o número máximo de métricas min: número – o número mínimo de métricas necessárias | 
| DIMENSION | Objeto | max: number – o número máximo de dimensões suportadas. mínimo: número – o número mínimo de dimensões necessárias supportedTypes: a lista de tipos compatíveis. supportedTypespode incluirTIME,GEOouDEFAULT | 
| MAX_RESULTS | Objeto | max: number – o número máximo de linhas que a visualização pode solicitar. Padrão: 2500 | 
StyleElement
Estes são os possíveis valores dos elementos de estilo:
| Valor de enum | Descrição | Tipo de dados defaultValue(configuração) | Tipo de dados value(mensagem) | Valor padrão | 
|---|---|---|---|---|
| FONT_COLOR | Renderiza o seletor de cores da fonte. Os valores válidos são códigos de cores hexadecimais. | STRING|OBJECT<Color> | STRING|OBJECT<Color> | Determinado pelo tema. | 
| FONT_SIZE | Renderiza o seletor de tamanho da fonte. Valores válidos: | NUMBER | NUMBER | 12 | 
| FONT_FAMILY | Renderiza o seletor de família de fontes. Os valores válidos são as seguintes fontes: Arial, e as seguintes fontes: Arial, Boogaloo, Bubbleg | STRING | STRING | Determinado pelo tema. | 
| Caixa de seleção | Renderiza uma caixa de seleção. | BOOLEAN | BOOLEAN | false | 
| TEXTINPUT | Renderiza uma caixa de entrada de texto. | STRING | STRING | "" | 
| TEXTAREA | Renderiza uma área grande de entrada de texto. | STRING | STRING | "" | 
| SELECT_SINGLE | Renderiza uma lista suspensa com valores predefinidos. | STRING(para defaultValue, options.label e options.value) | STRING | indefinido | 
| SELECT_RADIO | Renderiza um seletor de botão de opção com valores predefinidos. | STRING(para defaultValue, options.label e options.value) | STRING | indefinido | 
| FILL_COLOR | Processa um seletor de cores de preenchimento. Os valores válidos são códigos de cores hexadecimais. | STRING|OBJECT<Color> | OBJECT<Color> | Determinado pelo tema. | 
| BORDER_COLOR | Renderiza um seletor de cores de borda. Os valores válidos são códigos de cores hexadecimais. | STRING|OBJECT<Color> | OBJECT<Color> | Determinado pelo tema. | 
| AXIS_COLOR | Processa um seletor de cores do eixo. Os valores válidos são códigos de cores hexadecimais. | STRING|OBJECT<Color> | OBJECT<Color> | Determinado pelo tema. | 
| GRID_COLOR | Renderiza um seletor de cores da grade. Os valores válidos são códigos de cores hexadecimais. | STRING|OBJECT<Color> | OBJECT<Color> | Determinado pelo tema. | 
| OPACIDADE | Renderiza um seletor de opacidade. A unidade é %. Os valores válidos vão de 0 a 1 em incrementos de 0,1. | NUMBER | NUMBER | 1 | 
| LINE_WEIGHT | Renderiza um seletor de espessura da linha. Os valores válidos vão de 0 a 5. "0" será renderizado como "None" no menu suspenso. | NUMBER | NUMBER | |
| LINE_STYLE | Processa um seletor de estilo da linha. Valores padrão aceitáveis: solid,dashed,dotted,double. | STRING | STRING | "solid" | 
| BORDER_RADIUS | Renderiza um seletor de raio da borda. Os valores válidos são: 0, 1, 2, 3, 4, 5, 10, 15, 20, 25, 30, 40, 50, 60, 70, 80, 90, 100 | NUMBER | NUMBER | Determinado pelo tema. | 
| INTERVAL | Processa um seletor de intervalo. Os valores são números inteiros. | NUMBER | NUMBER | 0 | 
Os elementos de estilo configuram os ícones exibidos na guia Style do painel de propriedades.
Opções do elemento de estilo
Alguns elementos de estilo são compatíveis com opções
options: array(options)
| Valor de tipo enumerado | Objeto de opções | 
|---|---|
| SELECT_SINGLE | { label: `string`, value: `string` } | 
| SELECT_RADIO | { label: `string`, value: `string` } | 
| INTERVAL | { max: `number`, min: `number` } | 
Tipos de dados
Objeto<Cor>
{
  color: STRING<Color>,
  opacity: NUMBER<Opacity>
}
STRING<Color>
Um valor de string que contém um código de cor hexadecimal.
Exemplo
"color": "#0000ff"
NÚMERO<Opacidade>
Um valor numérico de 0 a 1 em incrementos de 0,10
Exemplo
"opacity": 0.2
InteractionType
O InteractionTypes configura as opções de interação disponíveis no estilo Data do painel de propriedades. No momento, somente "FILTER" é compatível.
| Valor de enum | Descrição | 
|---|---|
| "FILTER" | Permite que os usuários usem a visualização como filtro. | 
Exemplo de configuração
{
  "data": [{
    "id": "concepts",
    "label": "concepts",
    "elements": [
      {
        "id": "dimension1",
        "label": "first dimension",
        "type": "DIMENSION",
        "options": {
          "min": 1,
          "max": 3,
          "supportedTypes": ["DEFAULT"]
        }
      },
      {
        "id": "metric",
        "label": "metric",
        "type": "METRIC",
        "options": {
          "min": 1,
          "max": 3
        }
      }
    ]
  }],
  "style": [
    {
      "id": "colors",
      "label": "Highlight Colors",
      "elements": [
        {
          "id": "accentColor",
          "label": "Accent Color",
          "type": "SELECT_SINGLE",
          "defaultValue": "rain",
          "options": [
            {
              "label": "Summer",
              "value": "summer"
            },
            {
              "label": "Fall",
              "value": "fall"
            }
          ]
        },
        {
          "id": "reverseColor",
          "label": "Show reverse color",
          "defaultValue": false,
          "type": "CHECKBOX"
        },
        {
          "id": "fillColor",
          "label": "Fill Color",
          "defaultValue": {
            "color": "#0000ff"
          },
          "type": "FILL_COLOR"
        },
        {
          "id": "textOpacity",
          "label": "Text Opacity",
          "defaultValue": 0.2,
          "type": "OPACITY"
        },
        {
          "id": "customText",
          "label": "Custom Text",
          "defaultValue": "0.2",
          "type": "TEXTINPUT"
        }
      ]
    },
    {
      "id": "text",
      "label": "Highlight Text",
      "elements": [
        {
          "id": "textFontSize",
          "label": "Font size",
          "defaultValue": 10,
          "type": "FONT_SIZE"
        },
        {
          "id": "font",
          "label": "Font family",
          "defaultValue": "Arial",
          "type": "FONT_FAMILY"
        }
      ]
    }
  ],
  "interactions": [
    {
      "id": "interactionsConfigId",
      "supportedActions": ["FILTER"]
    }
  ],
  "features": {
    "enableComparisonDateRange": false
  }
}