{
  "$id": "https://github.com/data-fair/lib/colors",
  "type": "object",
  "title": "Palette de couleur",
  "description": "**Qualitative** : pour représenter des données catégorielles ou nominales.\n\n**Divergente** : accorde la même importance aux différentes valeurs des données.\n\n**Séquentielle** : pour des données ordonnées qui varient d'une valeur faible à une valeur forte (gradient)\n\n**Thème global** : utilise les couleurs principales de l'interface, peut être étendu en une palette pour plus de variété\n\n**Palette personnalisée** : choisissez vos propres couleurs",
  "x-exports": [
    "types",
    "schema"
  ],
  "default": {
    "type": "qualitative"
  },
  "required": ["type"],
  "oneOf": [
    {
      "title": "Palette qualitative",
      "required": [
        "type",
        "name"
      ],
      "properties": {
        "type": {
          "const": "qualitative"
        },
        "name": {
          "type": "string",
          "oneOf": [
            {
              "const": "Accent",
              "title": "Accent"
            },
            {
              "const": "Dark2",
              "title": "Foncé"
            },
            {
              "const": "Paired",
              "title": "Paires"
            },
            {
              "const": "Set1",
              "title": "Ensemble 1"
            },
            {
              "const": "Set2",
              "title": "Ensemble 2"
            },
            {
              "const": "Set3",
              "title": "Ensemble 3"
            },
            {
              "const": "Pastel1",
              "title": "Pastel 1"
            },
            {
              "const": "Pastel2",
              "title": "Pastel 2"
            }
          ],
          "default": "Accent"
        }
      }
    },
    {
      "title": "Palette divergente",
      "required": [
        "type",
        "name"
      ],
      "properties": {
        "type": {
          "const": "diverging"
        },
        "name": {
          "type": "string",
          "oneOf": [
            {
              "const": "BrBG",
              "title": "Marron-Bleu-Vert"
            },
            {
              "const": "PRGn",
              "title": "Violet-Vert"
            },
            {
              "const": "PiYG",
              "title": "Rose-Jaune-Vert"
            },
            {
              "const": "PuOr",
              "title": "Orange-Violet"
            },
            {
              "const": "RdBu",
              "title": "Rouge-Bleu"
            },
            {
              "const": "RdGy",
              "title": "Rouge-Gris"
            },
            {
              "const": "RdYlBu",
              "title": "Rouge-Jaune-Bleu"
            },
            {
              "const": "RdYlGn",
              "title": "Rouge-jaune-Vert"
            },
            {
              "const": "Spectral",
              "title": "Spectral"
            }
          ],
          "default": "RdYlGn"
        },
        "reverse": {
          "type": "boolean",
          "title": "Inverser"
        }
      }
    },
    {
      "title": "Palette séquentielle",
      "required": [
        "type",
        "name"
      ],
      "properties": {
        "type": {
          "const": "sequential"
        },
        "name": {
          "type": "string",
          "oneOf": [
            {
              "const": "Blues",
              "title": "Bleu"
            },
            {
              "const": "BuGn",
              "title": "Bleu-Vert"
            },
            {
              "const": "BuPu",
              "title": "Bleu-Violet"
            },
            {
              "const": "GnBu",
              "title": "Vert-Bleu"
            },
            {
              "const": "Greens",
              "title": "Vert"
            },
            {
              "const": "Greys",
              "title": "Gris"
            },
            {
              "const": "OrRd",
              "title": "Orange-Rouge"
            },
            {
              "const": "Oranges",
              "title": "Orange"
            },
            {
              "const": "PuBu",
              "title": "Violet-Bleu"
            },
            {
              "const": "PuBuGn",
              "title": "Violet-Bleu-Vert"
            },
            {
              "const": "PuRd",
              "title": "Violet-Rouge"
            },
            {
              "const": "Purples",
              "title": "Violet"
            },
            {
              "const": "RdPu",
              "title": "Rouge-Violet"
            },
            {
              "const": "Reds",
              "title": "Rouge"
            },
            {
              "const": "YlGn",
              "title": "Jaune-Vert"
            },
            {
              "const": "YlGnBu",
              "title": "Jaune-Vert-Bleu"
            },
            {
              "const": "YlOrBr",
              "title": "Jaune-Orange-Marron"
            },
            {
              "const": "YlOrRd",
              "title": "Jaune-Orange-Marron"
            }
          ],
          "default": "YlOrRd"
        },
        "reverse": {
          "type": "boolean",
          "title": "Inverser"
        }
      }
    },
    {
      "title": "Couleur et image spécifiques",
      "required": [
        "type",
        "styles"
      ],
      "properties": {
        "type": {
          "const": "manual"
        },
        "styles": {
          "title": "Couleurs et ordre",
          "type": "array",
          "x-fromUrl": "{datasets.0.href}/values_agg?field={styleField}&agg_size=100&size=0",
          "x-display": "list",
          "x-itemTitle": "value",
          "x-itemKey": "value",
          "x-itemsProp": "aggs",
          "items": {
            "type": "object",
            "required": ["value"],
            "properties": {
              "value": {
                "type": "string",
                "x-display": "hidden"
              },
              "color": {
                "type": "string",
                "title": "Couleur",
                "format": "hexcolor",
                "default": "#DDDDDD",
                "x-display": "color-picker"
              }
            }
          }
        }
      }
    },
    {
      "title": "Thème global",
      "properties": {
        "type": {
          "const": "vuetify-theme"
        },
        "generatePalette": {
          "type": "boolean",
          "title": "Générer une palette",
          "description": "Génère des couleurs complémentaires à partir de celles de l'interface. Autrement utilise uniquement les couleurs de l'interface.",
          "default": true
        },
        "paletteType": {
          "type": "string",
          "title": "Couleur de palette",
          "description": "Cette option n'aura d'effet que si vous avez coché l'option Générer une palette.",
          "oneOf": [
            {
              "const": "hues",
              "title": "Teintes"
            },
            {
              "const": "complementary",
              "title": "Complémentaire"
            }
          ],
          "default": "hues"
        }
      }
    },
    {
      "title": "Palette personnalisée",
      "properties": {
        "type": {
          "const": "custom"
        },
        "colorField": {
          "title": "Couleur par valeur d'un champ",
          "description": "Les champs multivalués ou ayant plus de 12 valeurs différentes ne peuvent pas être utilisés",
          "type": "string",
          "x-fromUrl": "{datasets.0.href}/schema?calculated=false&separator=false&maxCardinality=12",
          "x-itemTitle": "label",
          "x-itemKey": "key"
        },
        "colors": {
          "x-if": "colorscheme.colorField",
          "title": "Couleurs et ordre",
          "type": "array",
          "x-fromUrl": "{datasets.0.href}/values_agg?field={colorscheme.colorField}",
          "x-display": "list",
          "x-itemTitle": "value",
          "x-itemKey": "value",
          "x-itemsProp": "aggs",
          "items": {
            "type": "object",
            "required": ["value", "color"],
            "properties": {
              "value": {
                "type": "string",
                "x-display": "hidden"
              },
              "color": {
                "type": "string",
                "format": "hexcolor",
                "default": "#828282",
                "x-display": "color-picker"
              }
            }
          }
        },
        "defaultColor": {
          "title": "Couleur par défaut",
          "type": "string",
          "format": "hexcolor",
          "default": "#828282",
          "x-display": "color-picker"
        }
      }
    }
  ]
}