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 ButtonWidgetDoc: VitruvioComponentDoc = {
   component: "ButtonWidget",
   summary: "Documentacao do componente ButtonWidget mapeada a partir de exemplos reais de XML.",
   status: "draft",
   context: {
      module: "Vitruvio",
      family: "Visualizacao",
      mappedFrom: ["Vitruvio/Paineis", "Vitruvio/Processos"],
      occurrences: { total: 5395, paineis: 4228, processos: 1167 }
   },
   sections: {
      purpose: "Componente para exibicao de informacoes, resultados e feedback visual.",
      basicUsage: "Usar ButtonWidget no contexto adequado da tela; as propriedades abaixo foram observadas em exemplos reais do projeto.",
      properties: [
         "align",
         "alwaysEnabled",
         "bindEnableStatusWhenAsync",
         "caption",
         "color",
         "cssAlign",
         "debounceTime",
         "defaultIcon",
         "description",
         "disableOnClick",
         "draggable",
         "enableOnClick",
         "expand-ratio",
         "expandRatio",
         "fontColor",
         "fontSize",
         "height",
         "icon",
         "iconColor",
         "id",
         "keyCode",
         "margin",
         "mode",
         "modifierKey",
         "size",
         "spacing",
         "style",
         "type",
         "uppercase",
         "visible",
         "width"
      ],
      propertyValues: {
         "align": ["BOTTOM_CENTER", "BOTTOM_LEFT", "BOTTOM_RIGHT", "CENTER", "LEFT", "MIDDLE_CENTER", "MIDDLE_LEFT", "MIDDLE_RIGHT", "RIGHT", "TOP_CENTER", "TOP_LEFT", "TOP_RIGHT"],
         "alwaysEnabled": ["true"],
         "bindEnableStatusWhenAsync": ["true"],
         "caption": ["", " ", "   ", "   Pesquisar", "  Anexar foto da gôndola", "  Aprovar Quantidades", "  Reprovar Quantidades", " Abrir anexo (Cotação)", " Compartilhar", " Confirmar", " Câmera", " Excluir", " Exibir foto do\r\n\t\t\t\t\t\t\tproduto", " Galeria", " Gerar Relatório", "__TRUNCADO__"],
         "color": ["#17738F", "#2a50c3", "#7FFF00", "#9C1D09", "#F2EBC7", "#F78259", "#FDD835", "#FF6347", "BLACK", "black", "BLUE", "blue", "chocolate", "danger", "dark", "__TRUNCADO__"],
         "cssAlign": ["", "MIDDLE_CENTER", "top: 0%; right: 0%; z-index: 1000;", "top: 0%; right: 0%; z-index: 2;", "top: 17%; left: 45%; right: 45%; z-index: 1000;"],
         "debounceTime": ["1500"],
         "defaultIcon": ["ADD", "ARCHIVE", "ARROW_DOWN", "ARROW_LEFT", "ARROW_RIGHT", "ARROW_UP", "ARROWS", "ATTACHED", "BACK", "CALCULATOR", "CALENDAR", "CAMERA", "CHART", "CHECK", "COMMENTS", "__TRUNCADO__"],
         "description": ["", " ", "Abertura de processo de Cadastro de produtos para Manutenção", "Abertura de processo de Cadastro de produtos para o suporte", "Abertura dos detalhes de produtos", "Abre a janela de distribuição de loja/setor do item", "Abre as informações da entrada no ERP Superus", "Abre janela para confirmar o protocolo dos itens selecionados.", "Abre janela para confirmar remoção de protocolos.", "Abre novo Crud para inserir novo fornecedor", "Abre o formulário para adicão de um novo registro", "Abre o painel para gerenciar os certificados cadastrados por empresa", "Abre os detalhes da última compra deste produto", "Abre os detalhes de orçamento de todos os itens comprados", "Abre painel de ajuda", "__TRUNCADO__"],
         "disableOnClick": ["true"],
         "draggable": ["true"],
         "enableOnClick": ["true"],
         "expand-ratio": ["0", "0.1"],
         "expandRatio": [".1", ".15", ".2", ".3", ".35", ".4", ".45", ".5", ".6", ".8", "0", "0.0", "0.01", "0.02", "0.03", "__TRUNCADO__"],
         "fontColor": ["#212121", "black"],
         "fontSize": ["1.5rem", "1.6rem", "3.0rem"],
         "height": ["100%", "100px", "20%", "20px", "23", "25", "25px", "27px", "30", "30px", "31px", "40", "40%", "40px", "50%", "__TRUNCADO__"],
         "icon": ["", "add", "ADD", "alert", "alert-outline", "APLICAR", "arrow-back", "arrow-left", "arrow-right", "attach", "attachment", "ATUALIZAR", "back", "camera", "camera-outline", "__TRUNCADO__"],
         "iconColor": ["black"],
         "id": ["abreRedistribuir", "abrir_formulario_alteracao_assistida", "abrir_wl_relatorio", "abrirWindowDeDuplicidade", "aceitar_tudo_comprador", "addBalanca", "addOrdem", "addprocesso", "addquestao", "adicionar", "adicionarEmail", "adicionarPecaBt", "ajuda_medicao_card", "ajuda_simnao_card", "allowButton", "__TRUNCADO__"],
         "keyCode": ["ENTER"],
         "margin": ["false", "true"],
         "mode": ["text"],
         "modifierKey": ["CTRL", "SHIFT"],
         "size": ["HUGE", "LARGE", "SMALL", "TINY"],
         "spacing": ["false"],
         "style": ["BLACK", "BLUE", "BORDERLESS", "BORDERLESS_COLORED", "DANGER", "FRIENDLY", "GRAY", "GREEN", "ICON_ONLY", "LINK", "ORANGE", "PRIMARY", "PURPLE", "RED"],
         "type": ["text"],
         "uppercase": ["true"],
         "visible": ["false", "False", "true"],
         "width": ["10", "10%", "100", "100%", "100% ", "100px", "105", "10px", "11%", "110px", "120", "120px", "136px", "15%", "150", "__TRUNCADO__"]
      },
      propertyValueTypes: {
         "align": "enum",
         "alwaysEnabled": "boolean",
         "bindEnableStatusWhenAsync": "boolean",
         "caption": "text",
         "color": "mixed",
         "cssAlign": "mixed",
         "debounceTime": "numeric",
         "defaultIcon": "text",
         "description": "text",
         "disableOnClick": "boolean",
         "draggable": "boolean",
         "enableOnClick": "boolean",
         "expand-ratio": "numeric",
         "expandRatio": "text",
         "fontColor": "enum",
         "fontSize": "enum",
         "height": "mixed",
         "icon": "text",
         "iconColor": "enum",
         "id": "text",
         "keyCode": "enum",
         "margin": "boolean",
         "mode": "enum",
         "modifierKey": "enum",
         "size": "enum",
         "spacing": "boolean",
         "style": "enum",
         "type": "enum",
         "uppercase": "boolean",
         "visible": "boolean",
         "width": "numeric"
      },
      events: [

      ],
      examples: [
         "Vitruvio/Paineis/imp - Pônica - aux - Ações(Previsão_Real).xml:390",
         "Vitruvio/Paineis/imp - Pônica - aux - Ações(Previsão_Real).xml:556",
         "Vitruvio/Paineis/imp - Pônica - aux - Ações(Previsão_Real).xml:566",
         "Vitruvio/Paineis/imp - Pônica - aux - Ações(Previsão_Real).xml:614",
         "Vitruvio/Paineis/Ficha Azul_ Cadastro de Tipo.xml:70",
         "Vitruvio/Paineis/Ficha Azul_ Cadastro de Tipo.xml:207",
         "Vitruvio/Paineis/Ficha Azul_ Cadastro de Tipo.xml:225",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:668",
         "Vitruvio/Paineis/Impressão de etiqueta LJ06 WS.xml:682",
         "Vitruvio/Paineis/Relatório de Transferências.xml:109",
         "Vitruvio/Paineis/Cadastro de Usuários.xml:878",
         "Vitruvio/Paineis/Cadastro de Usuários.xml:898"
      ],
      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 ButtonWidgetDoc;
