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 TextFieldDoc: VitruvioComponentDoc = {
   component: "TextField",
   summary: "Documentacao do componente TextField mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "EntradaDeDados",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 5285, paineis: 2562, processos: 2723 }
   },
   sections: {
      purpose: "Componente de captura e edicao de dados em formularios e filtros.",
      basicUsage: "Usar TextField no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "align",
         "allowElevationForGroups",
         "caption",
         "columns",
         "description",
         "descrition",
         "enable",
         "enabled",
         "expandRatio",
         "focusNextFieldOnValueChange",
         "focusTargetRef",
         "format",
         "height",
         "id",
         "ignoreValueChanges",
         "immediate",
         "inputPrompt",
         "keyCode",
         "library",
         "maxLength",
         "minLength",
         "multivalue",
         "nextFocusOnEnter",
         "prefix",
         "readOnly",
         "readony",
         "required",
         "requiredMessage",
         "suffix",
         "text-transform",
         "type",
         "updatable",
         "visible",
         "width"
      ],
      propertyValues: {
         "align": ["BOTTOM_CENTER", "BOTTOM_LEFT", "BOTTOM_RIGHT", "MIDDLE_CENTER", "MIDDLE_LEFT", "MIDDLE_RIGHT", "TOP_CENTER", "TOP_LEFT", "TOP_RIGHT"],
         "allowElevationForGroups": ["fifo_bullight_supervisor_loja_notif, fifo_bullight_gerencia_loja_notif, fifo_bullight_gerencia_notif, fifo_bullight_compradores_notif", "fifo_verdemar_supervisor_loja_notif, fifo_verdemar_gerencia_loja_notif, fifo_verdemar_gerencia_notif, fifo_verdemar_compradores_notif"],
         "caption": ["", " ", "    ", "% gasto ao valor do equipamento", "Aberto por", "Aberto por:", "Acordo", "Admissão", "Agencia", "Agenda(s) vinculada(s)", "agendaAltera", "Agrupador", "Agrupador I", "Agrupador II", "Agrupador III", "__TRUNCADO__"],
         "columns": ["20", "48", "64"],
         "description": ["", "0 = Origem | 1 = Destino ", "0-pesquisa por codigo| 1-pesquisa por texto", "App Key da Autenticação no BB", "Classe da conta!", "Client ID da Autenticação no BB", "Client Secret da Autenticação no BB", "Código configurado na impressão do relatório", "Código promocional que será utilizado pelo cliente.", "Descreva o local onde está a balança.", "Descrição da configuração", "Descrição da conta!", "Descrição da Mecânica criada", "Descrição do campo outros", "Descrição do componente", "__TRUNCADO__"],
         "descrition": ["Representante da empresa", "Representante fornecedor"],
         "enable": ["false", "true"],
         "enabled": ["false", "true"],
         "expandRatio": [".1", ".2", ".25", ".3", ".4", ".5", ".6", ".7", ".75", ".8", ".9", "0", "0.05", "0.1", "0.10", "__TRUNCADO__"],
         "focusNextFieldOnValueChange": ["true"],
         "focusTargetRef": ["PACKING_CONF"],
         "format": ["#,##0.000"],
         "height": ["100%", "300px", "30px", "350px"],
         "id": ["abertoPor", "acao", "ACAO_PROMOCIONAL_WIND", "acaocomprador", "acaoPromocional", "acaoPromoInv", "acompanhante", "AGRUPADOR", "agrupadorText", "ajuda", "ano_escala", "aprovador", "aquisicaoGasto", "areaRelacionada2", "artefato", "__TRUNCADO__"],
         "ignoreValueChanges": ["false"],
         "immediate": ["false", "true"],
         "inputPrompt": ["A mesma utilizada para acessar o Senior", "A mesma utilizada para acessar o Wappi", "Código de barras ou linha digitável", "Ex: 12345678901@superverdemar.com.br"],
         "keyCode": ["ENTER"],
         "library": ["zbar"],
         "maxLength": ["10", "100", "1000", "11", "120", "128", "13", "15", "150", "165", "18", "2", "20", "200", "2000", "__TRUNCADO__"],
         "minLength": ["0", "10", "100", "14", "2", "25", "4", "44", "5", "6", "7", "8"],
         "multivalue": ["false", "true"],
         "nextFocusOnEnter": ["true"],
         "prefix": [""],
         "readOnly": ["false", "true"],
         "readony": ["true"],
         "required": ["false", "true"],
         "requiredMessage": ["Informe a marca do produto", "Necessário informar um cliente para realizar abertura do processo.", "Obrigatório informar uma descrição para a agenda.", "Tamanho maximo de 20 caracteres.", "É obrigatório informar uma descrição para iniciar o processo."],
         "suffix": [""],
         "text-transform": ["lowercase", "uppercase", "UPPERCASE"],
         "type": ["date", "email", "number", "string"],
         "updatable": ["true"],
         "visible": ["false", "false\t", "true"],
         "width": ["\t100%", "0%", "10%", "100%", "100% ", "100px", "110px", "125", "127px", "130px", "150px", "20%", "200px", "25%", "250px", "__TRUNCADO__"]
      },
      propertyValueTypes: {
         "align": "enum",
         "allowElevationForGroups": "mixed",
         "caption": "text",
         "columns": "numeric",
         "description": "text",
         "descrition": "mixed",
         "enable": "boolean",
         "enabled": "boolean",
         "expandRatio": "text",
         "focusNextFieldOnValueChange": "boolean",
         "focusTargetRef": "enum",
         "format": "enum",
         "height": "numeric",
         "id": "text",
         "ignoreValueChanges": "boolean",
         "immediate": "boolean",
         "inputPrompt": "mixed",
         "keyCode": "enum",
         "library": "enum",
         "maxLength": "numeric",
         "minLength": "numeric",
         "multivalue": "boolean",
         "nextFocusOnEnter": "boolean",
         "prefix": "text",
         "readOnly": "boolean",
         "readony": "boolean",
         "required": "boolean",
         "requiredMessage": "text",
         "suffix": "text",
         "text-transform": "text",
         "type": "enum",
         "updatable": "boolean",
         "visible": "boolean",
         "width": "numeric"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/imp - Pônica - aux - Ações(Previsão_Real).xml:630",
         "Vitruvio/Paineis/Ficha Azul_ Cadastro de Tipo.xml:156",
         "Vitruvio/Paineis/Relatório de Transferências.xml:41",
         "Vitruvio/Paineis/Relatório de Transferências.xml:56",
         "Vitruvio/Paineis/imp - Pônica - aux - Detalhes Pré Pedido.xml:133",
         "Vitruvio/Paineis/Cadastro de Usuários.xml:248",
         "Vitruvio/Paineis/Cadastro de Usuários.xml:515",
         "Vitruvio/Paineis/Cadastro de Usuários.xml:553",
         "Vitruvio/Paineis/Cadastro de Usuários.xml:635",
         "Vitruvio/Paineis/Manutenção de Gôndolas.xml:139",
         "Vitruvio/Paineis/Manutenção de Gôndolas.xml:451",
         "Vitruvio/Paineis/Cadastro - Metas.xml:183"
      ],
      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 TextFieldDoc;
