class CustomTemplateCard extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: 'open' });
}
connectedCallback() {
const name = this.getAttribute('name') || '';
const status = this.getAttribute('status') || '';
const category = this.getAttribute('category') || '';
const language = this.getAttribute('language') || '';
this.shadowRoot.innerHTML = `
${name.replace(/_/g, ' ')}
${this.getCategoryName(category)}
${language}
${this.getStatusName(status)}
`;
}
getStatusClass(status) {
switch(status) {
case 'approved': return 'badge-approved';
case 'pending': return 'badge-pending';
case 'rejected': return 'badge-rejected';
default: return 'bg-gray-100 text-gray-800';
}
}
getStatusName(status) {
switch(status) {
case 'approved': return 'Approved';
case 'pending': return 'Pending';
case 'rejected': return 'Rejected';
default: return status;
}
}
getCategoryClass(category) {
switch(category) {
case 'transactional': return 'badge-transactional';
case 'marketing': return 'badge-marketing';
case 'seasonal': return 'badge-seasonal';
default: return 'bg-gray-100 text-gray-800';
}
}
getCategoryName(category) {
switch(category) {
case 'transactional': return 'Transactional';
case 'marketing': return 'Marketing';
case 'seasonal': return 'Seasonal';
default: return category;
}
}
}
customElements.define('custom-template-card', CustomTemplateCard);