// ==UserScript==
// @name Vfs PORTUGAL Overlay
// @namespace [Link]
// @version 1.9
// @description Preenchimento automático com interface personalizada
// @author MaurícioJS
// @match [Link]
// ==/UserScript==
(function () {
'use strict';
const campos = {
primeiro_nome: '[placeholder="Enter your first name"]',
ultimo_nome: '[placeholder="Please enter last name."]',
data_nascimento: '#dateOfBirth',
nacionalidade: '.mat-select-value', // Para nacionalidade
sexo: '.mat-select-value', // Para sexo
data_exp: '#passportExpirtyDate',
numero_passaporte: '[placeholder="Enter passport number"]',
numero_telefone: '[placeholder="012345648382"]',
email: '[placeholder="Enter Email Address"]',
codigo_discagem: '[placeholder="44"]',
};
const dadosPerfis = [
{
id: "Pro1",
nome: "Daniel SCHENG",
dados: {
primeiro_nome: "DANIEL FORTUNATO DA CONCEIÇÃO",
ultimo_nome: "SETAS",
data_nascimento: "16/07/2005",
nacionalidade: "ANGOLA",
sexo: "Male",
data_exp: "24/05/2033",
numero_passaporte: "N3052256",
codigo_discagem: "244",
numero_telefone: "954908685",
email: "sacalasacala170@[Link]",
},
},
{
id: "Pro2",
nome: "licardo sheng",
dados: {
primeiro_nome: "JOEL LEITÃO",
ultimo_nome: "MATIAS",
data_nascimento: "22/11/2001",
nacionalidade: "ANGOLA",
sexo: "Male",
data_exp: "30/10/2033",
numero_passaporte: "N3169704",
codigo_discagem: "244",
numero_telefone: "954908685",
email: "sacalasacala170@[Link]",
},
},
{
id: "Pro3",
nome: "Kliverth nacional",
dados: {
primeiro_nome: "KLIVERTH PEDRO FERNANDES",
ultimo_nome: "NETO",
data_nascimento: "06/01/2006",
nacionalidade: "ANGOLA",
sexo: "Male",
data_exp: "01/04/2034",
numero_passaporte: "N3226649",
codigo_discagem: "244",
numero_telefone: "954908685",
email: "sacalasacala170@[Link]",
},
},
{
id: "Pro4",
nome: "miro sheng",
dados: {
primeiro_nome: "CANHALA AURÉLIO",
ultimo_nome: "SAMBA",
data_nascimento: "17/04/2003",
nacionalidade: "ANGOLA",
sexo: "Male",
data_exp: "27/02/2033",
numero_passaporte: "N2988288",
codigo_discagem: "244",
numero_telefone: "954908685",
email: "sacalasacala170@[Link]",
},
},
{
id: "Pro5",
nome: "CASTRO schenguein",
dados: {
primeiro_nome:"CASTRO",
ultimo_nome: "PEDRO",
data_nascimento: "02/01/1986",
nacionalidade: "ANGOLA",
sexo: "Male",
data_exp: "06/12/2026",
numero_passaporte: "N2123376",
codigo_discagem: "244",
numero_telefone: "957876543",
email: "beneditootnielb@[Link]",
},
},
];
function criarPainel() {
const painel = [Link]("div");
[Link] = "painel-preenchimento";
[Link] = `
position: fixed;
top: 10px;
right: 20%;
width: auto;
max-width: 300px;
background: rgba(0, 0, 0, 0.8);
color: white;
border-radius: 5px;
z-index: 9999;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
padding: 10px;
font-family: Arial, sans-serif;
display: flex;
flex-wrap: wrap;
gap: 5px;
justify-content: center;
`;
[Link]((perfil) => {
const button = [Link]("button");
[Link] = [Link];
[Link] = `
padding: 5px 10px;
border: none;
border-radius: 5px;
font-size: 12px;
cursor: pointer;
background-color: #03b131;
color: white;
font-weight: bold;
`;
[Link]("click", () => preencherCampos(getCampos(),
[Link]));
[Link](button);
});
[Link](painel);
}
function getCampos() {
return [Link](
[Link](campos).map(([key, selector]) => [key,
[Link](selector)])
);
}
function atualizarCampo(campo, valor) {
if (campo) {
[Link] = valor || "";
[Link](new Event("input", { bubbles: true }));
[Link](new Event("change", { bubbles: true }));
}
}
function preencherCampos(campos, dados) {
[Link](dados).forEach(([key, value]) => {
if (key === "nacionalidade" || key === "sexo") {
selecionarOpcaoPorTexto(campos[key], value);
} else {
atualizarCampo(campos[key], value);
}
});
}
function selecionarOpcaoPorTexto(campo, texto) {
if (!campo) {
[Link]("Campo não encontrado para selecionar opção.");
return;
}
// Abrir o dropdown
[Link]();
// Aguardar o dropdown abrir e localizar a opção
setTimeout(() => {
const opcoes = [...[Link]("mat-option .mat-option-
text")];
const opcao = [Link](
(opt) => [Link]().toLowerCase() ===
[Link]().toLowerCase()
);
if (opcao) {
[Link]();
} else {
[Link]("Opção com texto ","${texto}"," não encontrada.");
}
}, 500);
}
criarPainel();
})();