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 NumericFieldDoc: VitruvioComponentDoc = {
   component: "NumericField",
   summary: "Documentacao do componente NumericField mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "EntradaDeDados",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 3361, paineis: 1866, processos: 1495 }
   },
   sections: {
      purpose: "Componente de captura e edicao de dados em formularios e filtros.",
      basicUsage: "Usar NumericField no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "align",
         "caption",
         "columns",
         "decimalSeparator",
         "description",
         "enabled",
         "expand-ratio",
         "expandRatio",
         "focusTargetRef",
         "format",
         "groupingSeparator",
         "height",
         "id",
         "immediate",
         "inputPrompt",
         "keyCode",
         "margin",
         "mask",
         "maximumValue",
         "maxLength",
         "mininumValue",
         "minLength",
         "nextFocusOnEnter",
         "preservMask",
         "readonly",
         "readOnly",
         "required",
         "requiredMessage",
         "searchCaption",
         "spacing",
         "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"],
         "caption": [" ", " Dias do vermelho até amarelo:", " Dias maiores para o verde:", "% Max. Est. Origem", "% SOBRE VALOR DAS NFs", "abaMobile", "Agencia", "Agendamento", "Alerta Exp. Promoção:", "Alocação Pallet a Pallet", "Altura", "Alíquota Icms", "Ano", "AREA NBR", "Arquivo Id", "__TRUNCADO__"],
         "columns": ["10", "12", "6"],
         "decimalSeparator": [","],
         "description": ["", "% de tolerancia abaixo do sugerido.", "% de tolerancia acima do sugerido.", "Chave da tabela Entradas", "Codigo da loja!", "Componente Encargo kWh HFP - quantidade", "Componente Encargo kWh HP - quantidade", "Componente Fio kW HFP - quantidade", "Componente Fio kW HFP s/ ICMS - quantidade", "Componente Fio kW HP - quantidade", "Componente Fio kW HP s/ ICMS - quantidade", "Código da questão", "Código do cardápio usado na abertura automática", "Código gerado para o registro!", "Data em que a abertura da checklist ocorrerá.", "__TRUNCADO__"],
         "enabled": ["false", "true"],
         "expand-ratio": ["1.0"],
         "expandRatio": [".025", ".1", ".15", ".2", ".20", ".25", ".3", ".4", ".5", ".8", ".9", "0", "0.05", "0.08", "0.1", "__TRUNCADO__"],
         "focusTargetRef": ["QUANTIDADE_CONF"],
         "format": ["#####", "###,###,##0", "###,##0.00", "###,##0.0000", "#,##0.000"],
         "groupingSeparator": ["."],
         "height": ["100%"],
         "id": ["aberturaManual", "acaoPromo", "acordosAcoesDesconto", "agendamentoId", "alocacao_pallet", "altura", "Ano", "Ano1", "ano_filtro", "aposCadastro", "aprovarCCTaskId", "aprovarDev", "area_nbr", "arredondaCaixa", "ativo", "__TRUNCADO__"],
         "immediate": ["false", "true"],
         "inputPrompt": ["___", "Confirme a nova senha", "Digite a nova senha"],
         "keyCode": ["ENTER"],
         "margin": ["false"],
         "mask": ["####"],
         "maximumValue": ["100", "10000", "12", "15", "2199", "28", "300000", "360", "365", "500000", "9", "99", "999", "99999", "999999999", "__TRUNCADO__"],
         "maxLength": ["10", "15", "2", "20", "23", "3", "4", "44", "5", "50", "7", "8", "96", "99", "999999"],
         "mininumValue": ["0", "1"],
         "minLength": ["0", "8"],
         "nextFocusOnEnter": ["true"],
         "preservMask": ["false"],
         "readonly": ["true"],
         "readOnly": ["false", "true"],
         "required": ["false", "true"],
         "requiredMessage": ["Valor máximo: 15"],
         "searchCaption": ["Dias", "Duração da atividade", "Duração mínima (min)"],
         "spacing": ["true"],
         "text-transform": ["lowercase", "uppercase"],
         "type": ["decimal", "number", "string"],
         "updatable": ["true"],
         "visible": ["false", "false   ", "true"],
         "width": ["0%", "10%", "100", "100%", "100px", "110px", "120px", "15%", "150px", "20%", "200px", "25%", "30%", "300px", "305px", "__TRUNCADO__"]
      },
      propertyValueTypes: {
         "align": "enum",
         "caption": "text",
         "columns": "numeric",
         "decimalSeparator": "enum",
         "description": "text",
         "enabled": "boolean",
         "expand-ratio": "numeric",
         "expandRatio": "text",
         "focusTargetRef": "enum",
         "format": "enum",
         "groupingSeparator": "enum",
         "height": "numeric",
         "id": "text",
         "immediate": "boolean",
         "inputPrompt": "mixed",
         "keyCode": "enum",
         "margin": "boolean",
         "mask": "enum",
         "maximumValue": "numeric",
         "maxLength": "numeric",
         "mininumValue": "numeric",
         "minLength": "numeric",
         "nextFocusOnEnter": "boolean",
         "preservMask": "boolean",
         "readonly": "boolean",
         "readOnly": "boolean",
         "required": "boolean",
         "requiredMessage": "text",
         "searchCaption": "text",
         "spacing": "boolean",
         "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:398",
         "Vitruvio/Paineis/Ficha Azul_ Cadastro de Tipo.xml:155",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:321",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:497",
         "Vitruvio/Paineis/03 - Registro Temporário de Boletos BB.xml:285",
         "Vitruvio/Paineis/03 - Registro Temporário de Boletos BB.xml:380",
         "Vitruvio/Paineis/03 - Registro Temporário de Boletos BB.xml:381",
         "Vitruvio/Paineis/03 - Registro Temporário de Boletos BB.xml:382",
         "Vitruvio/Paineis/03 - Registro Temporário de Boletos BB.xml:383",
         "Vitruvio/Paineis/FIFO.xml:2120",
         "Vitruvio/Paineis/FIFO.xml:2198",
         "Vitruvio/Paineis/CD - Cadastro de Regras de Priorização WMS.xml:121"
      ],
      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 NumericFieldDoc;
