I solved it using a solution to another post here, I wrote this JS:
const { fieldModifier: f } = this.app.plugins.plugins["metadata-menu"].api;
dv.container.className = dv.container.className.includes('TaskTable') ? dv.container.className : `${dv.container.className} TaskTable`
const { query, filter } = input
const format = (dv, d, field) => {
function appendElement(newClass) {
let oldClass = element.getAttribute("class")
newClass = `${oldClass?oldClass:""} ${newClass}`
element.setAttribute("class", newClass)
}; let element = f(dv, d, field);
if (field.includes("Date ") && !isNaN(Date.parse(element.textContent)))
element.textContent = moment(element.textContent).format("YYYY-MM-DD")
if (field.includes("Date Due") && !isNaN(Date.parse(element.textContent)) && new Date(element.textContent) < new Date()) {
appendElement("TaskOverdue");
}; if (field === "Priority")
appendElement(`Priority${element.textContent}`);
return element;
};
pages = dv.pages(query).where(new Function('p', 'return ' + filter)).sort(page => page.Priority, "desc")
let rows = [];
for (let [i, p] of Object.entries(pages.values)) {
rows.push([
p.file.link,
await format(dv, p, "Date Due"),
await format(dv, p, "Task Size"),
await format(dv, p, "Priority"),
await format(dv, p, "Status"),
await format(dv, p, "Date Started"),
await format(dv, p, "Notes")
])
if (p.Notes) {
rows.push([p.Notes]);
}
}
dv.table(["",
" Due",
"Size",
"P #",
"Status",
" Started",
"Notes"],
rows);