"use strict";
// Class definition
var KTAppInboxReply = function () {
// Private functions
const handlePreviewText = () => {
// Get all messages
const accordions = document.querySelectorAll('[data-kt-inbox-message="message_wrapper"]');
accordions.forEach(accordion => {
// Set variables
const header = accordion.querySelector('[data-kt-inbox-message="header"]');
const previewText = accordion.querySelector('[data-kt-inbox-message="preview"]');
const details = accordion.querySelector('[data-kt-inbox-message="details"]');
const message = accordion.querySelector('[data-kt-inbox-message="message"]');
// Init bootstrap collapse -- more info: https://getbootstrap.com/docs/5.1/components/collapse/#via-javascript
const collapse = new bootstrap.Collapse(message, { toggle: false });
// Handle header click action
header.addEventListener('click', e => {
// Return if KTMenu or buttons are clicked
if (e.target.closest('[data-kt-menu-trigger="click"]') || e.target.closest('.btn')) {
return;
} else {
previewText.classList.toggle('d-none');
details.classList.toggle('d-none');
collapse.toggle();
}
});
});
}
// Init reply form
const initForm = () => {
// Set variables
const form = document.querySelector('#kt_inbox_reply_form');
const allTagify = form.querySelectorAll('[data-kt-inbox-form="tagify"]');
// Handle CC and BCC
handleCCandBCC(form);
// Handle submit form
handleSubmit(form);
// Init tagify
allTagify.forEach(tagify => {
initTagify(tagify);
});
// Init quill editor
initQuill(form);
// Init dropzone
initDropzone(form);
}
// Handle CC and BCC toggle
const handleCCandBCC = (el) => {
// Get elements
const ccElement = el.querySelector('[data-kt-inbox-form="cc"]');
const ccButton = el.querySelector('[data-kt-inbox-form="cc_button"]');
const ccClose = el.querySelector('[data-kt-inbox-form="cc_close"]');
const bccElement = el.querySelector('[data-kt-inbox-form="bcc"]');
const bccButton = el.querySelector('[data-kt-inbox-form="bcc_button"]');
const bccClose = el.querySelector('[data-kt-inbox-form="bcc_close"]');
// Handle CC button click
ccButton.addEventListener('click', e => {
e.preventDefault();
ccElement.classList.remove('d-none');
ccElement.classList.add('d-flex');
});
// Handle CC close button click
ccClose.addEventListener('click', e => {
e.preventDefault();
ccElement.classList.add('d-none');
ccElement.classList.remove('d-flex');
});
// Handle BCC button click
bccButton.addEventListener('click', e => {
e.preventDefault();
bccElement.classList.remove('d-none');
bccElement.classList.add('d-flex');
});
// Handle CC close button click
bccClose.addEventListener('click', e => {
e.preventDefault();
bccElement.classList.add('d-none');
bccElement.classList.remove('d-flex');
});
}
// Handle submit form
const handleSubmit = (el) => {
const submitButton = el.querySelector('[data-kt-inbox-form="send"]');
// Handle button click event
submitButton.addEventListener("click", function () {
// Activate indicator
submitButton.setAttribute("data-kt-indicator", "on");
// Disable indicator after 3 seconds
setTimeout(function () {
submitButton.removeAttribute("data-kt-indicator");
}, 3000);
});
}
// Init tagify
const initTagify = (el) => {
var inputElm = el;
const usersList = [
{ value: 1, name: 'Emma Smith', avatar: 'avatars/300-6.jpg', email: 'e.smith@kpmg.com.au' },
{ value: 2, name: 'Max Smith', avatar: 'avatars/300-1.jpg', email: 'max@kt.com' },
{ value: 3, name: 'Sean Bean', avatar: 'avatars/300-5.jpg', email: 'sean@dellito.com' },
{ value: 4, name: 'Brian Cox', avatar: 'avatars/300-25.jpg', email: 'brian@exchange.com' },
{ value: 5, name: 'Francis Mitcham', avatar: 'avatars/300-9.jpg', email: 'f.mitcham@kpmg.com.au' },
{ value: 6, name: 'Dan Wilson', avatar: 'avatars/300-23.jpg', email: 'dam@consilting.com' },
{ value: 7, name: 'Ana Crown', avatar: 'avatars/300-12.jpg', email: 'ana.cf@limtel.com' },
{ value: 8, name: 'John Miller', avatar: 'avatars/300-13.jpg', email: 'miller@mapple.com' }
];
function tagTemplate(tagData) {
return `