status:: $=return(await self.require.import("Code Modules/modulePB.js.md")).PBSingleNoteHeader(dv, "moduleUtils.js", "Status Tasks")

Status Tasks
  • Create the Note ✅ 2023-10-18
  • Write the YAML metadata ✅ 2023-10-18
  • Write the query

moduleUtils.js

UtilsTaskListCallout

export function UtilsTaskListCallout(dv, note, filter)
{
    const backticks = String.fromCharCode(96).repeat(3);
    const tasks = dv.page(note).file.tasks.where(item => filter(item));
    let md =  `>[!todo]- Tasks
    >${backticks}dataviewjs
    >dv.taskList(dv.array(JSON.parse('${JSON.stringify(tasks.array())}')), false)
    >${backticks}
    >`;
    return dv.span(md);
}
export function relativeDate(isoDateStr) {
    const deltaSecs = (new Date() - new Date(isoDateStr)) / 1000;
    let unit;
    let delta;
    if (deltaSecs < 60) {
        unit = "second";
        delta = deltaSecs;
    } else if (deltaSecs < 60 * 60) {
        unit = "minute";
        delta = Math.ceil(deltaSecs / 60);
    } else if (deltaSecs < 60 * 60 * 24) {
        unit = "hour";
        delta = Math.ceil(deltaSecs / 60 / 60);
    } else if (deltaSecs < 60 * 60 * 24 * 7) {
        unit = "day";
        delta = Math.ceil(deltaSecs / 60 / 60 / 24);
    } else if (deltaSecs < 60 * 60 * 24 * 7 * 4) {
        unit = "week";
        delta = Math.ceil(deltaSecs / 60 / 60 / 24 / 7);
    } else if (deltaSecs < 60 * 60 * 24 * 7 * 4 * 12) {
        unit = "month";
        delta = Math.ceil(deltaSecs / 60 / 60 / 24 / 7 / 4);
    } else {
        unit = "year";
        delta = Math.ceil(deltaSecs / 60 / 60 / 24 / 7 / 4 / 12);
    }
    const formatter = new Intl.RelativeTimeFormat("en", { style: "long", numeric: "auto" });
    return formatter.format(-delta, unit);
}
export function UtilsArray(end)
{
    let result = [];
    for (let i = 1; i <= end; i++) {
      result.push(i);
    }
    //console.log(result)
    return result.join(",");
}

Appearances

const inlinks = dv.current().file.inlinks
const outlinks = dv.current().file.outlinks.mutate(t=> t.embed = false)
const indexA = Array.from({ length: Math.max(inlinks.length, outlinks.length) }, (_, index) => index)
const data = indexA.map((i)=> [inlinks[i] || " ", outlinks[i] || " "])
const style = "<span style='font-size:smaller;color:var(--text-muted)'>("
dv.table(["inlinks "+ style + inlinks.length +")", "outlinks "+ style + outlinks.length +")"], data)
this.container.querySelectorAll(".table-view-table tr:first-of-type th:first-of-type > span.small-text")[0].style.visibility = "hidden";