export type VitruvioComponentDoc = {
   component: string;
   summary: string;
   status: "draft" | "review" | "ready";
   context: {
      module: string;
      family: string;
      mappedFrom: string[];
      occurrences: {
         total: number;
         paineis: number;
         processos: number;
      };
   };
   sections: {
      purpose: string;
      basicUsage: string;
      properties: string[];
      propertyValues: { [property: string]: string[] };
      propertyValueTypes: { [property: string]: "boolean" | "enum" | "numeric" | "text" | "mixed" };
      events: string[];
      examples: string[];
      notes: string[];
   };
};

const ComboBoxDoc: VitruvioComponentDoc = {
   component: "ComboBox",
   summary: "Documentacao do componente ComboBox mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "EntradaDeDados",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 751, paineis: 469, processos: 282 }
   },
   sections: {
      purpose: "Componente de captura e edicao de dados em formularios e filtros.",
      basicUsage: "Usar ComboBox no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "align",
         "allowNullSelection",
         "caption",
         "description",
         "enabled",
         "expand-ratio",
         "expandRatio",
         "height",
         "id",
         "immediate",
         "readOnly",
         "required",
         "searchCaption",
         "type",
         "updatable",
         "visible",
         "width"
      ],
      propertyValues: {
         "align": ["BOTTOM_LEFT", "BOTTOM_RIGHT", "MIDDLE_CENTER", "MIDDLE_LEFT", "MIDDLE_RIGHT", "TOP_CENTER", "TOP_LEFT"],
         "allowNullSelection": ["false", "true"],
         "caption": [" ", "Aceite Título Vencido", "Acompanhamento Peso Médio", "Agrupador", "Alertas", "Amostrar histórico de vendas:", "Análise", "Apresentação do produto", "Aprovação Comercial", "Aprovação Marketing", "Aprovação Oficial", "Aprovação Rappi", "Assunto", "Atividade", "Avulso", "__TRUNCADO__"],
         "description": ["Ação Criada", "Código do órgão negativador selecionado. | Preencher: SERASA; QUOD.", "Código para identificar o tipo de boleto de cobrança", "Definição do tipo de ocorrencia que terá o processo gerado", "Dia da semana", "Escolha qual o dia fixo na semana para a folga?", "Filtro de Pagos/Não pagos", "Filtro de Recebido/Não Recebido", "Filtro de Vencimento do pedido", "Informe a situação do cliente sobre o processo", "Informe a Área Relacionada", "Informe qual a operação NÂO funcionará no feriado", "Selecione a categoria", "Selecione a frequência em que o produto será pedido", "Selecione a tipo de embalagem", "__TRUNCADO__"],
         "enabled": ["false"],
         "expand-ratio": ["0.2"],
         "expandRatio": [".07", ".2", ".5", ".6", ".7", "0", "0.05", "0.1", "0.12", "0.15", "0.2", "0.20", "0.25", "0.3", "0.33", "__TRUNCADO__"],
         "height": ["100%"],
         "id": ["areaRelacionada", "cb__checkout", "cb__descricao", "cb__forma_pagamento", "cb__lim_max", "cb__lim_min", "cb__observacao", "cb__remover", "cb__situacao", "cb__status", "cb__tipo", "cb__tipo_todos", "cb_contagem", "cb_dia", "cb_historico", "__TRUNCADO__"],
         "immediate": ["true"],
         "readOnly": ["true"],
         "required": ["false", "true"],
         "searchCaption": ["1", "Passe o mouse para ver", "Selecione o tipo de questão", "Selecione uma opção"],
         "type": ["number", "string"],
         "updatable": ["true"],
         "visible": ["false", "true"],
         "width": ["100%", "175", "20%", "200px", "250", "250px", "30%", "300", "300px", "35%", "50%", "60px", "63%", "80%", "90%", "__TRUNCADO__"]
      },
      propertyValueTypes: {
         "align": "enum",
         "allowNullSelection": "boolean",
         "caption": "text",
         "description": "text",
         "enabled": "boolean",
         "expand-ratio": "numeric",
         "expandRatio": "mixed",
         "height": "numeric",
         "id": "text",
         "immediate": "boolean",
         "readOnly": "boolean",
         "required": "boolean",
         "searchCaption": "text",
         "type": "enum",
         "updatable": "boolean",
         "visible": "boolean",
         "width": "numeric"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/Manutenção de Gôndolas.xml:230",
         "Vitruvio/Paineis/03 - Registro Temporário de Boletos BB.xml:378",
         "Vitruvio/Paineis/Kanban - Cadastro de Projetos.xml:539",
         "Vitruvio/Paineis/Cadastro de Subtipos - Chamado Suporte TI.xml:152",
         "Vitruvio/Paineis/Itens em quarentena.xml:119",
         "Vitruvio/Paineis/Cadastro de Elementos.xml:1532",
         "Vitruvio/Paineis/Cadastro de Elementos.xml:1538",
         "Vitruvio/Paineis/Agendamento Solicitacao.xml:315",
         "Vitruvio/Paineis/PCP - Análise de Receitas.xml:136",
         "Vitruvio/Paineis/21 - Contratos - Saldos Trocas e Perdas.xml:358",
         "Vitruvio/Paineis/21 - Contratos - Saldos Trocas e Perdas.xml:381",
         "Vitruvio/Paineis/21 - Contratos - Saldos Trocas e Perdas.xml:409"
      ],
      notes: [
         "Mapeamento automatico baseado em uso observado nos XMLs de paineis e processos.",
         "Valores ruidosos/textos muito longos sao filtrados para facilitar consulta.",
         "propertyValueTypes classifica o perfil observado da propriedade (boolean, enum, numeric, text ou mixed).",
         "Validar com documentacao oficial do Vitruvio quando houver divergencia funcional."
      ]
   }
};

export default ComboBoxDoc;
