@govbr-ds/webcomponents
Version:
Biblioteca de Web Components baseado no GovBR-DS
48 lines (41 loc) • 2.08 kB
JavaScript
if (!window.elementsToListen && !window.eventsToListen) {
const elementsToListen = document.querySelectorAll('br-message')
const eventsToListen = ['brDidClose']
window.elementsToListen = true
elementsToListen.forEach((domElement) => {
eventsToListen.forEach((event) => {
domElement.addEventListener(event, function (event) {
console.log({
Evento: event.type,
Elemento: domElement.outerHTML,
...(event.detail && { Detail: event.detail }),
...(event.data && { Data: event.data }),
})
})
})
})
}
// TODO: 1 - O utilitário do GovBR foi utilizado na construção do componente Message, que não é um componente de feedback.
// No entanto, o GovBR utilizou esse utilitário para construir o componente, e o mesmo foi reaproveitado na criação do componente de mensagem.
// Isso gerou um problema na implementação do Web Component Message, pois o utilitário adiciona um espaçamento no final do componente,
// o que não é desejado para a exibição correta da mensagem.
// TODO: 2 - Corrigir utilizando o acesso via shadowRoot.
// No entanto, mesmo acessando o elemento através do shadowRoot, o ajuste não foi aplicado corretamente.
// Há algum problema na aplicação do CSS dentro do shadowRoot que precisa ser investigado.
// // JAVASCRIPT IMPLEMENTADO PARA A CORREÇÃO
// document.addEventListener('DOMContentLoaded', function () {
// console.log('DOM fully loaded and parsed')
// const message = document.querySelectorAll('br-message')
// console.log('Message:', message)
// message.forEach((element) => {
// console.log('Element:', element)
// console.log(element.classList.add('mb-0'))
// const elementHtml = element.shadowRoot
// console.log('ShadowRoot:', elementHtml)
// const message = elementHtml.querySelector('.br-message')
// console.log('Message:', message)
// // add margin bottom 0
// message.classList.add('mb-0')
// })
// })
// TODO: 3 - Demonstrar a solução implementada diretamente no componente e os exemplos ajustados