main c2eb28db21b1 cached
110 files
7.2 MB
1.9M tokens
2892 symbols
1 requests
Download .txt
Showing preview only (7,601K chars total). Download the full file or copy to clipboard to get everything.
Repository: uwidev/life-disciplines-projects
Branch: main
Commit: c2eb28db21b1
Files: 110
Total size: 7.2 MB

Directory structure:
gitextract_3mavbe2u/

├── .obsidian/
│   ├── app.json
│   ├── appearance.json
│   ├── community-plugins.json
│   ├── core-plugins.json
│   ├── graph.json
│   ├── hotkeys.json
│   ├── plugins/
│   │   ├── calendar/
│   │   │   ├── data.json
│   │   │   ├── main.js
│   │   │   └── manifest.json
│   │   ├── dataview/
│   │   │   ├── main.js
│   │   │   ├── manifest.json
│   │   │   └── styles.css
│   │   ├── hotkeysplus-obsidian/
│   │   │   ├── main.js
│   │   │   └── manifest.json
│   │   ├── maximise-active-pane-obsidian/
│   │   │   ├── main.js
│   │   │   ├── manifest.json
│   │   │   └── styles.css
│   │   ├── nldates-obsidian/
│   │   │   ├── data.json
│   │   │   ├── main.js
│   │   │   └── manifest.json
│   │   ├── note-refactor-obsidian/
│   │   │   ├── data.json
│   │   │   ├── main.js
│   │   │   ├── manifest.json
│   │   │   └── styles.css
│   │   ├── obsidian-tasks-plugin/
│   │   │   ├── data.json
│   │   │   ├── main.js
│   │   │   ├── manifest.json
│   │   │   └── styles.css
│   │   ├── periodic-notes/
│   │   │   ├── data.json
│   │   │   ├── main.js
│   │   │   ├── manifest.json
│   │   │   └── styles.css
│   │   └── templater-obsidian/
│   │       ├── data.json
│   │       ├── main.js
│   │       ├── manifest.json
│   │       └── styles.css
│   ├── starred.json
│   └── workspace
├── 00 🏠 Main Dashboard.md
├── 000 Inbox/
│   └── 00 ❗ Readme.md
├── 100 Projects/
│   └── Setup/
│       ├── 00 🧰 Setup.md
│       ├── 10 💗 Defining Life.md
│       ├── 11 🔀 Divergence to Disciplines.md
│       ├── 12 🔂 Convergence to Ikigai.md
│       └── 13 🎎 Ikigai Expansion.md
├── 200 Disciplines/
│   └── 210 🎀 Well-being (EXAMPLE)/
│       ├── 210 🎀 Well-being (EXAMPLE).md
│       ├── 211 🎨 Alternative Dashboard (EXAMPLE).md
│       └── Random Note of Abundant Information (EXAMPLE).md
├── 300 Habits/
│   └── Flossing (Habit).md
├── 400 Life/
│   └── 400 💗 Life.md
├── 500 Alignment/
│   ├── 510 Daily/
│   │   └── .gitignore
│   ├── 520 Weekly/
│   │   └── .gitignore
│   ├── 530 Monthly/
│   │   └── .gitignore
│   ├── 540 Quarterly/
│   │   └── .gitignore
│   └── 550 Yearly/
│       └── .gitignore
├── 600 Resources/
│   ├── Agile Project Management.md
│   ├── Artifacts (Scrum).md
│   ├── Ceremonies (Scrum).md
│   ├── Dashboards.md
│   ├── Decision Paralysis.md
│   ├── Disciplines.md
│   ├── Dynamics.md
│   ├── Friction.md
│   ├── Fundamentals of LDP.md
│   ├── Getting Things Done.md
│   ├── Habits.md
│   ├── Ikigai.md
│   ├── Inbox.md
│   ├── Kanban (Agile).md
│   ├── Kanban vs Scrum.md
│   ├── Life (LDP).md
│   ├── Minimalism.md
│   ├── Note Tags.md
│   ├── Ongoing Tasks.md
│   ├── Philosophy - How to Approach LDP.md
│   ├── Pillars, Pipelines, Vaults (PPV).md
│   ├── Pillars.md
│   ├── Planned Tasks.md
│   ├── Projects.md
│   ├── Resources.md
│   ├── Scrum (Agile).md
│   ├── Simple Integration Into Obsidian.md
│   ├── Sprints (Scrum).md
│   ├── Suggestions After Learning Initial LDP.md
│   ├── Systems Thinking.md
│   ├── Systems.md
│   ├── Tags As Categories and Characteristics.md
│   ├── Tags As Categories.md
│   ├── Tags As Characteristics.md
│   ├── Tasks as Habits in Obsidian.md
│   ├── Tasks.md
│   ├── True Deadlines.md
│   ├── When to Tag.md
│   ├── Work Hierarchy (Scrum).md
│   └── Working with LDP.md
├── 700 Views/
│   ├── Habits (View).md
│   ├── Ongoing Tasks (View).md
│   └── Planned Tasks (View).md
├── 800 Templates/
│   ├── Due.md
│   ├── Em Dash.md
│   ├── Note.md
│   ├── Repeat.md
│   ├── arrowleft.md
│   ├── arrowright.md
│   ├── cite.md
│   ├── no.md
│   └── yes.md
├── 99 🗃️ Master Backlog.md
├── README.md
└── Workbench.md

================================================
FILE CONTENTS
================================================

================================================
FILE: .obsidian/app.json
================================================
{
  "foldHeading": true,
  "foldIndent": true,
  "newFileLocation": "current",
  "attachmentFolderPath": "./",
  "alwaysUpdateLinks": true,
  "spellcheckDictionary": [
    "codeblocks",
    "frontmatter",
    "Frontmatter",
    "Ikigai",
    "Ikigais",
    "Readme",
    "setup",
    "skillsets",
    "Zettelkasten"
  ],
  "spellcheck": true
}

================================================
FILE: .obsidian/appearance.json
================================================
{
  "baseFontSize": 15
}

================================================
FILE: .obsidian/community-plugins.json
================================================
[
  "calendar",
  "dataview",
  "nldates-obsidian",
  "periodic-notes",
  "obsidian-tasks-plugin",
  "templater-obsidian",
  "maximise-active-pane-obsidian",
  "hotkeysplus-obsidian",
  "note-refactor-obsidian"
]

================================================
FILE: .obsidian/core-plugins.json
================================================
[
  "file-explorer",
  "global-search",
  "switcher",
  "graph",
  "backlink",
  "tag-pane",
  "page-preview",
  "note-composer",
  "command-palette",
  "starred",
  "markdown-importer",
  "outline",
  "word-count",
  "open-with-default-app",
  "file-recovery"
]

================================================
FILE: .obsidian/graph.json
================================================
{
  "collapse-filter": false,
  "search": "-path:000",
  "showTags": false,
  "showAttachments": false,
  "hideUnresolved": false,
  "showOrphans": true,
  "collapse-color-groups": true,
  "colorGroups": [
    {
      "query": "",
      "color": {
        "a": 1,
        "rgb": 14701138
      }
    }
  ],
  "collapse-display": true,
  "showArrow": false,
  "textFadeMultiplier": 0,
  "nodeSizeMultiplier": 1,
  "lineSizeMultiplier": 1,
  "collapse-forces": true,
  "centerStrength": 0.518713248970312,
  "repelStrength": 10,
  "linkStrength": 1,
  "linkDistance": 250,
  "scale": 0.9681619554185495,
  "close": false
}

================================================
FILE: .obsidian/hotkeys.json
================================================
{
  "obsidian-shortcuts-for-starred-files:open-file-in-new-pane-1": [
    {
      "modifiers": [
        "Alt",
        "Shift"
      ],
      "key": "1"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-in-new-pane-2": [
    {
      "modifiers": [
        "Alt",
        "Shift"
      ],
      "key": "2"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-in-new-pane-5": [
    {
      "modifiers": [
        "Alt",
        "Shift"
      ],
      "key": "5"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-in-new-pane-6": [
    {
      "modifiers": [
        "Alt",
        "Shift"
      ],
      "key": "6"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-in-new-pane-3": [
    {
      "modifiers": [
        "Alt",
        "Shift"
      ],
      "key": "3"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-in-new-pane-4": [
    {
      "modifiers": [
        "Alt",
        "Shift"
      ],
      "key": "4"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-in-new-pane-7": [
    {
      "modifiers": [
        "Alt",
        "Shift"
      ],
      "key": "7"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-in-new-pane-8": [
    {
      "modifiers": [
        "Alt",
        "Shift"
      ],
      "key": "8"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-in-new-pane-9": [
    {
      "modifiers": [
        "Alt",
        "Shift"
      ],
      "key": "9"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-1": [
    {
      "modifiers": [
        "Alt"
      ],
      "key": "1"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-2": [
    {
      "modifiers": [
        "Alt"
      ],
      "key": "2"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-3": [
    {
      "modifiers": [
        "Alt"
      ],
      "key": "3"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-4": [
    {
      "modifiers": [
        "Alt"
      ],
      "key": "4"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-5": [
    {
      "modifiers": [
        "Alt"
      ],
      "key": "5"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-6": [
    {
      "modifiers": [
        "Alt"
      ],
      "key": "6"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-7": [
    {
      "modifiers": [
        "Alt"
      ],
      "key": "7"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-8": [
    {
      "modifiers": [
        "Alt"
      ],
      "key": "8"
    }
  ],
  "obsidian-shortcuts-for-starred-files:open-file-9": [
    {
      "modifiers": [
        "Alt"
      ],
      "key": "9"
    }
  ],
  "editor:swap-line-up": [
    {
      "modifiers": [
        "Alt"
      ],
      "key": "W"
    }
  ],
  "editor:swap-line-down": [
    {
      "modifiers": [
        "Alt"
      ],
      "key": "S"
    }
  ],
  "note-refactor-obsidian:app:extract-selection-first-line": [
    {
      "modifiers": [
        "Mod",
        "Shift"
      ],
      "key": "M"
    }
  ],
  "note-refactor-obsidian:app:extract-selection-content-only": [
    {
      "modifiers": [
        "Alt",
        "Shift"
      ],
      "key": "M"
    }
  ],
  "hotkeysplus-obsidian:toggle-bullet-number": [
    {
      "modifiers": [
        "Mod"
      ],
      "key": "3"
    }
  ],
  "periodic-notes:open-daily-note": [
    {
      "modifiers": [
        "Mod"
      ],
      "key": "T"
    }
  ]
}

================================================
FILE: .obsidian/plugins/calendar/data.json
================================================
{
  "shouldConfirmBeforeCreate": true,
  "weekStart": "locale",
  "wordsPerDot": 250,
  "showWeeklyNote": true,
  "weeklyNoteFormat": "",
  "weeklyNoteTemplate": "",
  "weeklyNoteFolder": "",
  "localeOverride": "system-default"
}

================================================
FILE: .obsidian/plugins/calendar/main.js
================================================
'use strict';

var obsidian = require('obsidian');

function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }

var obsidian__default = /*#__PURE__*/_interopDefaultLegacy(obsidian);

const DEFAULT_WEEK_FORMAT = "gggg-[W]ww";
const DEFAULT_WORDS_PER_DOT = 250;
const VIEW_TYPE_CALENDAR = "calendar";
const TRIGGER_ON_OPEN = "calendar:open";

const DEFAULT_DAILY_NOTE_FORMAT = "YYYY-MM-DD";
const DEFAULT_WEEKLY_NOTE_FORMAT = "gggg-[W]ww";
const DEFAULT_MONTHLY_NOTE_FORMAT = "YYYY-MM";

function shouldUsePeriodicNotesSettings(periodicity) {
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    const periodicNotes = window.app.plugins.getPlugin("periodic-notes");
    return periodicNotes && periodicNotes.settings?.[periodicity]?.enabled;
}
/**
 * Read the user settings for the `daily-notes` plugin
 * to keep behavior of creating a new note in-sync.
 */
function getDailyNoteSettings() {
    try {
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        const { internalPlugins, plugins } = window.app;
        if (shouldUsePeriodicNotesSettings("daily")) {
            const { format, folder, template } = plugins.getPlugin("periodic-notes")?.settings?.daily || {};
            return {
                format: format || DEFAULT_DAILY_NOTE_FORMAT,
                folder: folder?.trim() || "",
                template: template?.trim() || "",
            };
        }
        const { folder, format, template } = internalPlugins.getPluginById("daily-notes")?.instance?.options || {};
        return {
            format: format || DEFAULT_DAILY_NOTE_FORMAT,
            folder: folder?.trim() || "",
            template: template?.trim() || "",
        };
    }
    catch (err) {
        console.info("No custom daily note settings found!", err);
    }
}
/**
 * Read the user settings for the `weekly-notes` plugin
 * to keep behavior of creating a new note in-sync.
 */
function getWeeklyNoteSettings() {
    try {
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        const pluginManager = window.app.plugins;
        const calendarSettings = pluginManager.getPlugin("calendar")?.options;
        const periodicNotesSettings = pluginManager.getPlugin("periodic-notes")
            ?.settings?.weekly;
        if (shouldUsePeriodicNotesSettings("weekly")) {
            return {
                format: periodicNotesSettings.format || DEFAULT_WEEKLY_NOTE_FORMAT,
                folder: periodicNotesSettings.folder?.trim() || "",
                template: periodicNotesSettings.template?.trim() || "",
            };
        }
        const settings = calendarSettings || {};
        return {
            format: settings.weeklyNoteFormat || DEFAULT_WEEKLY_NOTE_FORMAT,
            folder: settings.weeklyNoteFolder?.trim() || "",
            template: settings.weeklyNoteTemplate?.trim() || "",
        };
    }
    catch (err) {
        console.info("No custom weekly note settings found!", err);
    }
}
/**
 * Read the user settings for the `periodic-notes` plugin
 * to keep behavior of creating a new note in-sync.
 */
function getMonthlyNoteSettings() {
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    const pluginManager = window.app.plugins;
    try {
        const settings = (shouldUsePeriodicNotesSettings("monthly") &&
            pluginManager.getPlugin("periodic-notes")?.settings?.monthly) ||
            {};
        return {
            format: settings.format || DEFAULT_MONTHLY_NOTE_FORMAT,
            folder: settings.folder?.trim() || "",
            template: settings.template?.trim() || "",
        };
    }
    catch (err) {
        console.info("No custom monthly note settings found!", err);
    }
}

/**
 * dateUID is a way of weekly identifying daily/weekly/monthly notes.
 * They are prefixed with the granularity to avoid ambiguity.
 */
function getDateUID$1(date, granularity = "day") {
    const ts = date.clone().startOf(granularity).format();
    return `${granularity}-${ts}`;
}
function removeEscapedCharacters(format) {
    return format.replace(/\[[^\]]*\]/g, ""); // remove everything within brackets
}
/**
 * XXX: When parsing dates that contain both week numbers and months,
 * Moment choses to ignore the week numbers. For the week dateUID, we
 * want the opposite behavior. Strip the MMM from the format to patch.
 */
function isFormatAmbiguous(format, granularity) {
    if (granularity === "week") {
        const cleanFormat = removeEscapedCharacters(format);
        return (/w{1,2}/i.test(cleanFormat) &&
            (/M{1,4}/.test(cleanFormat) || /D{1,4}/.test(cleanFormat)));
    }
    return false;
}
function getDateFromFile(file, granularity) {
    const getSettings = {
        day: getDailyNoteSettings,
        week: getWeeklyNoteSettings,
        month: getMonthlyNoteSettings,
    };
    const format = getSettings[granularity]().format.split("/").pop();
    const noteDate = window.moment(file.basename, format, true);
    if (!noteDate.isValid()) {
        return null;
    }
    if (isFormatAmbiguous(format, granularity)) {
        if (granularity === "week") {
            const cleanFormat = removeEscapedCharacters(format);
            if (/w{1,2}/i.test(cleanFormat)) {
                return window.moment(file.basename, 
                // If format contains week, remove day & month formatting
                format.replace(/M{1,4}/g, "").replace(/D{1,4}/g, ""), false);
            }
        }
    }
    return noteDate;
}

// Credit: @creationix/path.js
function join(...partSegments) {
    // Split the inputs into a list of path commands.
    let parts = [];
    for (let i = 0, l = partSegments.length; i < l; i++) {
        parts = parts.concat(partSegments[i].split("/"));
    }
    // Interpret the path commands to get the new resolved path.
    const newParts = [];
    for (let i = 0, l = parts.length; i < l; i++) {
        const part = parts[i];
        // Remove leading and trailing slashes
        // Also remove "." segments
        if (!part || part === ".")
            continue;
        // Push new path segments.
        else
            newParts.push(part);
    }
    // Preserve the initial slash if there was one.
    if (parts[0] === "")
        newParts.unshift("");
    // Turn back into a single string path.
    return newParts.join("/");
}
async function ensureFolderExists(path) {
    const dirs = path.replace(/\\/g, "/").split("/");
    dirs.pop(); // remove basename
    if (dirs.length) {
        const dir = join(...dirs);
        if (!window.app.vault.getAbstractFileByPath(dir)) {
            await window.app.vault.createFolder(dir);
        }
    }
}
async function getNotePath(directory, filename) {
    if (!filename.endsWith(".md")) {
        filename += ".md";
    }
    const path = obsidian__default['default'].normalizePath(join(directory, filename));
    await ensureFolderExists(path);
    return path;
}
async function getTemplateInfo(template) {
    const { metadataCache, vault } = window.app;
    const templatePath = obsidian__default['default'].normalizePath(template);
    if (templatePath === "/") {
        return Promise.resolve(["", null]);
    }
    try {
        const templateFile = metadataCache.getFirstLinkpathDest(templatePath, "");
        const contents = await vault.cachedRead(templateFile);
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        const IFoldInfo = window.app.foldManager.load(templateFile);
        return [contents, IFoldInfo];
    }
    catch (err) {
        console.error(`Failed to read the daily note template '${templatePath}'`, err);
        new obsidian__default['default'].Notice("Failed to read the daily note template");
        return ["", null];
    }
}

class DailyNotesFolderMissingError extends Error {
}
/**
 * This function mimics the behavior of the daily-notes plugin
 * so it will replace {{date}}, {{title}}, and {{time}} with the
 * formatted timestamp.
 *
 * Note: it has an added bonus that it's not 'today' specific.
 */
async function createDailyNote(date) {
    const app = window.app;
    const { vault } = app;
    const moment = window.moment;
    const { template, format, folder } = getDailyNoteSettings();
    const [templateContents, IFoldInfo] = await getTemplateInfo(template);
    const filename = date.format(format);
    const normalizedPath = await getNotePath(folder, filename);
    try {
        const createdFile = await vault.create(normalizedPath, templateContents
            .replace(/{{\s*date\s*}}/gi, filename)
            .replace(/{{\s*time\s*}}/gi, moment().format("HH:mm"))
            .replace(/{{\s*title\s*}}/gi, filename)
            .replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_, _timeOrDate, calc, timeDelta, unit, momentFormat) => {
            const now = moment();
            const currentDate = date.clone().set({
                hour: now.get("hour"),
                minute: now.get("minute"),
                second: now.get("second"),
            });
            if (calc) {
                currentDate.add(parseInt(timeDelta, 10), unit);
            }
            if (momentFormat) {
                return currentDate.format(momentFormat.substring(1).trim());
            }
            return currentDate.format(format);
        })
            .replace(/{{\s*yesterday\s*}}/gi, date.clone().subtract(1, "day").format(format))
            .replace(/{{\s*tomorrow\s*}}/gi, date.clone().add(1, "d").format(format)));
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        app.foldManager.save(createdFile, IFoldInfo);
        return createdFile;
    }
    catch (err) {
        console.error(`Failed to create file: '${normalizedPath}'`, err);
        new obsidian__default['default'].Notice("Unable to create new file.");
    }
}
function getDailyNote(date, dailyNotes) {
    return dailyNotes[getDateUID$1(date, "day")] ?? null;
}
function getAllDailyNotes() {
    /**
     * Find all daily notes in the daily note folder
     */
    const { vault } = window.app;
    const { folder } = getDailyNoteSettings();
    const dailyNotesFolder = vault.getAbstractFileByPath(obsidian__default['default'].normalizePath(folder));
    if (!dailyNotesFolder) {
        throw new DailyNotesFolderMissingError("Failed to find daily notes folder");
    }
    const dailyNotes = {};
    obsidian__default['default'].Vault.recurseChildren(dailyNotesFolder, (note) => {
        if (note instanceof obsidian__default['default'].TFile) {
            const date = getDateFromFile(note, "day");
            if (date) {
                const dateString = getDateUID$1(date, "day");
                dailyNotes[dateString] = note;
            }
        }
    });
    return dailyNotes;
}

class WeeklyNotesFolderMissingError extends Error {
}
function getDaysOfWeek$1() {
    const { moment } = window;
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    let weekStart = moment.localeData()._week.dow;
    const daysOfWeek = [
        "sunday",
        "monday",
        "tuesday",
        "wednesday",
        "thursday",
        "friday",
        "saturday",
    ];
    while (weekStart) {
        daysOfWeek.push(daysOfWeek.shift());
        weekStart--;
    }
    return daysOfWeek;
}
function getDayOfWeekNumericalValue(dayOfWeekName) {
    return getDaysOfWeek$1().indexOf(dayOfWeekName.toLowerCase());
}
async function createWeeklyNote(date) {
    const { vault } = window.app;
    const { template, format, folder } = getWeeklyNoteSettings();
    const [templateContents, IFoldInfo] = await getTemplateInfo(template);
    const filename = date.format(format);
    const normalizedPath = await getNotePath(folder, filename);
    try {
        const createdFile = await vault.create(normalizedPath, templateContents
            .replace(/{{\s*(date|time)\s*(([+-]\d+)([yqmwdhs]))?\s*(:.+?)?}}/gi, (_, _timeOrDate, calc, timeDelta, unit, momentFormat) => {
            const now = window.moment();
            const currentDate = date.clone().set({
                hour: now.get("hour"),
                minute: now.get("minute"),
                second: now.get("second"),
            });
            if (calc) {
                currentDate.add(parseInt(timeDelta, 10), unit);
            }
            if (momentFormat) {
                return currentDate.format(momentFormat.substring(1).trim());
            }
            return currentDate.format(format);
        })
            .replace(/{{\s*title\s*}}/gi, filename)
            .replace(/{{\s*time\s*}}/gi, window.moment().format("HH:mm"))
            .replace(/{{\s*(sunday|monday|tuesday|wednesday|thursday|friday|saturday)\s*:(.*?)}}/gi, (_, dayOfWeek, momentFormat) => {
            const day = getDayOfWeekNumericalValue(dayOfWeek);
            return date.weekday(day).format(momentFormat.trim());
        }));
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        window.app.foldManager.save(createdFile, IFoldInfo);
        return createdFile;
    }
    catch (err) {
        console.error(`Failed to create file: '${normalizedPath}'`, err);
        new obsidian__default['default'].Notice("Unable to create new file.");
    }
}
function getWeeklyNote(date, weeklyNotes) {
    return weeklyNotes[getDateUID$1(date, "week")] ?? null;
}
function getAllWeeklyNotes() {
    const { vault } = window.app;
    const { folder } = getWeeklyNoteSettings();
    const weeklyNotesFolder = vault.getAbstractFileByPath(obsidian__default['default'].normalizePath(folder));
    if (!weeklyNotesFolder) {
        throw new WeeklyNotesFolderMissingError("Failed to find weekly notes folder");
    }
    const weeklyNotes = {};
    obsidian__default['default'].Vault.recurseChildren(weeklyNotesFolder, (note) => {
        if (note instanceof obsidian__default['default'].TFile) {
            const date = getDateFromFile(note, "week");
            if (date) {
                const dateString = getDateUID$1(date, "week");
                weeklyNotes[dateString] = note;
            }
        }
    });
    return weeklyNotes;
}

function appHasDailyNotesPluginLoaded() {
    const { app } = window;
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    const dailyNotesPlugin = app.internalPlugins.plugins["daily-notes"];
    if (dailyNotesPlugin && dailyNotesPlugin.enabled) {
        return true;
    }
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    const periodicNotes = app.plugins.getPlugin("periodic-notes");
    return periodicNotes && periodicNotes.settings?.daily?.enabled;
}
var appHasDailyNotesPluginLoaded_1 = appHasDailyNotesPluginLoaded;
var createDailyNote_1 = createDailyNote;
var createWeeklyNote_1 = createWeeklyNote;
var getAllDailyNotes_1 = getAllDailyNotes;
var getAllWeeklyNotes_1 = getAllWeeklyNotes;
var getDailyNote_1 = getDailyNote;
var getDailyNoteSettings_1 = getDailyNoteSettings;
var getDateFromFile_1 = getDateFromFile;
var getDateUID_1$1 = getDateUID$1;
var getWeeklyNote_1 = getWeeklyNote;
var getWeeklyNoteSettings_1 = getWeeklyNoteSettings;

function noop$1() { }
function run$1(fn) {
    return fn();
}
function blank_object$1() {
    return Object.create(null);
}
function run_all$1(fns) {
    fns.forEach(run$1);
}
function is_function$1(thing) {
    return typeof thing === 'function';
}
function safe_not_equal$1(a, b) {
    return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');
}
function not_equal$1(a, b) {
    return a != a ? b == b : a !== b;
}
function is_empty$1(obj) {
    return Object.keys(obj).length === 0;
}
function subscribe(store, ...callbacks) {
    if (store == null) {
        return noop$1;
    }
    const unsub = store.subscribe(...callbacks);
    return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;
}
function get_store_value(store) {
    let value;
    subscribe(store, _ => value = _)();
    return value;
}
function component_subscribe(component, store, callback) {
    component.$$.on_destroy.push(subscribe(store, callback));
}
function detach$1(node) {
    node.parentNode.removeChild(node);
}
function children$1(element) {
    return Array.from(element.childNodes);
}

let current_component$1;
function set_current_component$1(component) {
    current_component$1 = component;
}
function get_current_component$1() {
    if (!current_component$1)
        throw new Error('Function called outside component initialization');
    return current_component$1;
}
function onDestroy(fn) {
    get_current_component$1().$$.on_destroy.push(fn);
}

const dirty_components$1 = [];
const binding_callbacks$1 = [];
const render_callbacks$1 = [];
const flush_callbacks$1 = [];
const resolved_promise$1 = Promise.resolve();
let update_scheduled$1 = false;
function schedule_update$1() {
    if (!update_scheduled$1) {
        update_scheduled$1 = true;
        resolved_promise$1.then(flush$1);
    }
}
function add_render_callback$1(fn) {
    render_callbacks$1.push(fn);
}
function add_flush_callback(fn) {
    flush_callbacks$1.push(fn);
}
let flushing$1 = false;
const seen_callbacks$1 = new Set();
function flush$1() {
    if (flushing$1)
        return;
    flushing$1 = true;
    do {
        // first, call beforeUpdate functions
        // and update components
        for (let i = 0; i < dirty_components$1.length; i += 1) {
            const component = dirty_components$1[i];
            set_current_component$1(component);
            update$1(component.$$);
        }
        set_current_component$1(null);
        dirty_components$1.length = 0;
        while (binding_callbacks$1.length)
            binding_callbacks$1.pop()();
        // then, once components are updated, call
        // afterUpdate functions. This may cause
        // subsequent updates...
        for (let i = 0; i < render_callbacks$1.length; i += 1) {
            const callback = render_callbacks$1[i];
            if (!seen_callbacks$1.has(callback)) {
                // ...so guard against infinite loops
                seen_callbacks$1.add(callback);
                callback();
            }
        }
        render_callbacks$1.length = 0;
    } while (dirty_components$1.length);
    while (flush_callbacks$1.length) {
        flush_callbacks$1.pop()();
    }
    update_scheduled$1 = false;
    flushing$1 = false;
    seen_callbacks$1.clear();
}
function update$1($$) {
    if ($$.fragment !== null) {
        $$.update();
        run_all$1($$.before_update);
        const dirty = $$.dirty;
        $$.dirty = [-1];
        $$.fragment && $$.fragment.p($$.ctx, dirty);
        $$.after_update.forEach(add_render_callback$1);
    }
}
const outroing$1 = new Set();
let outros$1;
function transition_in$1(block, local) {
    if (block && block.i) {
        outroing$1.delete(block);
        block.i(local);
    }
}
function transition_out$1(block, local, detach, callback) {
    if (block && block.o) {
        if (outroing$1.has(block))
            return;
        outroing$1.add(block);
        outros$1.c.push(() => {
            outroing$1.delete(block);
            if (callback) {
                if (detach)
                    block.d(1);
                callback();
            }
        });
        block.o(local);
    }
}

function bind(component, name, callback) {
    const index = component.$$.props[name];
    if (index !== undefined) {
        component.$$.bound[index] = callback;
        callback(component.$$.ctx[index]);
    }
}
function create_component$1(block) {
    block && block.c();
}
function mount_component$1(component, target, anchor, customElement) {
    const { fragment, on_mount, on_destroy, after_update } = component.$$;
    fragment && fragment.m(target, anchor);
    if (!customElement) {
        // onMount happens before the initial afterUpdate
        add_render_callback$1(() => {
            const new_on_destroy = on_mount.map(run$1).filter(is_function$1);
            if (on_destroy) {
                on_destroy.push(...new_on_destroy);
            }
            else {
                // Edge case - component was destroyed immediately,
                // most likely as a result of a binding initialising
                run_all$1(new_on_destroy);
            }
            component.$$.on_mount = [];
        });
    }
    after_update.forEach(add_render_callback$1);
}
function destroy_component$1(component, detaching) {
    const $$ = component.$$;
    if ($$.fragment !== null) {
        run_all$1($$.on_destroy);
        $$.fragment && $$.fragment.d(detaching);
        // TODO null out other refs, including component.$$ (but need to
        // preserve final state?)
        $$.on_destroy = $$.fragment = null;
        $$.ctx = [];
    }
}
function make_dirty$1(component, i) {
    if (component.$$.dirty[0] === -1) {
        dirty_components$1.push(component);
        schedule_update$1();
        component.$$.dirty.fill(0);
    }
    component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));
}
function init$1(component, options, instance, create_fragment, not_equal, props, dirty = [-1]) {
    const parent_component = current_component$1;
    set_current_component$1(component);
    const $$ = component.$$ = {
        fragment: null,
        ctx: null,
        // state
        props,
        update: noop$1,
        not_equal,
        bound: blank_object$1(),
        // lifecycle
        on_mount: [],
        on_destroy: [],
        on_disconnect: [],
        before_update: [],
        after_update: [],
        context: new Map(parent_component ? parent_component.$$.context : []),
        // everything else
        callbacks: blank_object$1(),
        dirty,
        skip_bound: false
    };
    let ready = false;
    $$.ctx = instance
        ? instance(component, options.props || {}, (i, ret, ...rest) => {
            const value = rest.length ? rest[0] : ret;
            if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {
                if (!$$.skip_bound && $$.bound[i])
                    $$.bound[i](value);
                if (ready)
                    make_dirty$1(component, i);
            }
            return ret;
        })
        : [];
    $$.update();
    ready = true;
    run_all$1($$.before_update);
    // `false` as a special case of no DOM component
    $$.fragment = create_fragment ? create_fragment($$.ctx) : false;
    if (options.target) {
        if (options.hydrate) {
            const nodes = children$1(options.target);
            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
            $$.fragment && $$.fragment.l(nodes);
            nodes.forEach(detach$1);
        }
        else {
            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
            $$.fragment && $$.fragment.c();
        }
        if (options.intro)
            transition_in$1(component.$$.fragment);
        mount_component$1(component, options.target, options.anchor, options.customElement);
        flush$1();
    }
    set_current_component$1(parent_component);
}
/**
 * Base class for Svelte components. Used when dev=false.
 */
class SvelteComponent$1 {
    $destroy() {
        destroy_component$1(this, 1);
        this.$destroy = noop$1;
    }
    $on(type, callback) {
        const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));
        callbacks.push(callback);
        return () => {
            const index = callbacks.indexOf(callback);
            if (index !== -1)
                callbacks.splice(index, 1);
        };
    }
    $set($$props) {
        if (this.$$set && !is_empty$1($$props)) {
            this.$$.skip_bound = true;
            this.$$set($$props);
            this.$$.skip_bound = false;
        }
    }
}

const subscriber_queue = [];
/**
 * Create a `Writable` store that allows both updating and reading by subscription.
 * @param {*=}value initial value
 * @param {StartStopNotifier=}start start and stop notifications for subscriptions
 */
function writable(value, start = noop$1) {
    let stop;
    const subscribers = [];
    function set(new_value) {
        if (safe_not_equal$1(value, new_value)) {
            value = new_value;
            if (stop) { // store is ready
                const run_queue = !subscriber_queue.length;
                for (let i = 0; i < subscribers.length; i += 1) {
                    const s = subscribers[i];
                    s[1]();
                    subscriber_queue.push(s, value);
                }
                if (run_queue) {
                    for (let i = 0; i < subscriber_queue.length; i += 2) {
                        subscriber_queue[i][0](subscriber_queue[i + 1]);
                    }
                    subscriber_queue.length = 0;
                }
            }
        }
    }
    function update(fn) {
        set(fn(value));
    }
    function subscribe(run, invalidate = noop$1) {
        const subscriber = [run, invalidate];
        subscribers.push(subscriber);
        if (subscribers.length === 1) {
            stop = start(set) || noop$1;
        }
        run(value);
        return () => {
            const index = subscribers.indexOf(subscriber);
            if (index !== -1) {
                subscribers.splice(index, 1);
            }
            if (subscribers.length === 0) {
                stop();
                stop = null;
            }
        };
    }
    return { set, update, subscribe };
}

const weekdays$1 = [
    "sunday",
    "monday",
    "tuesday",
    "wednesday",
    "thursday",
    "friday",
    "saturday",
];
const defaultSettings = Object.freeze({
    shouldConfirmBeforeCreate: true,
    weekStart: "locale",
    wordsPerDot: DEFAULT_WORDS_PER_DOT,
    showWeeklyNote: false,
    weeklyNoteFormat: "",
    weeklyNoteTemplate: "",
    weeklyNoteFolder: "",
    localeOverride: "system-default",
});
function appHasPeriodicNotesPluginLoaded() {
    var _a, _b;
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    const periodicNotes = window.app.plugins.getPlugin("periodic-notes");
    return periodicNotes && ((_b = (_a = periodicNotes.settings) === null || _a === void 0 ? void 0 : _a.weekly) === null || _b === void 0 ? void 0 : _b.enabled);
}
class CalendarSettingsTab extends obsidian.PluginSettingTab {
    constructor(app, plugin) {
        super(app, plugin);
        this.plugin = plugin;
    }
    display() {
        this.containerEl.empty();
        if (!appHasDailyNotesPluginLoaded_1()) {
            this.containerEl.createDiv("settings-banner", (banner) => {
                banner.createEl("h3", {
                    text: "⚠️ Daily Notes plugin not enabled",
                });
                banner.createEl("p", {
                    cls: "setting-item-description",
                    text: "The calendar is best used in conjunction with either the Daily Notes plugin or the Periodic Notes plugin (available in the Community Plugins catalog).",
                });
            });
        }
        this.containerEl.createEl("h3", {
            text: "General Settings",
        });
        this.addDotThresholdSetting();
        this.addWeekStartSetting();
        this.addConfirmCreateSetting();
        this.addShowWeeklyNoteSetting();
        if (this.plugin.options.showWeeklyNote &&
            !appHasPeriodicNotesPluginLoaded()) {
            this.containerEl.createEl("h3", {
                text: "Weekly Note Settings",
            });
            this.containerEl.createEl("p", {
                cls: "setting-item-description",
                text: "Note: Weekly Note settings are moving. You are encouraged to install the 'Periodic Notes' plugin to keep the functionality in the future.",
            });
            this.addWeeklyNoteFormatSetting();
            this.addWeeklyNoteTemplateSetting();
            this.addWeeklyNoteFolderSetting();
        }
        this.containerEl.createEl("h3", {
            text: "Advanced Settings",
        });
        this.addLocaleOverrideSetting();
    }
    addDotThresholdSetting() {
        new obsidian.Setting(this.containerEl)
            .setName("Words per dot")
            .setDesc("How many words should be represented by a single dot?")
            .addText((textfield) => {
            textfield.setPlaceholder(String(DEFAULT_WORDS_PER_DOT));
            textfield.inputEl.type = "number";
            textfield.setValue(String(this.plugin.options.wordsPerDot));
            textfield.onChange(async (value) => {
                this.plugin.writeOptions(() => ({
                    wordsPerDot: value !== "" ? Number(value) : undefined,
                }));
            });
        });
    }
    addWeekStartSetting() {
        const { moment } = window;
        const localizedWeekdays = moment.weekdays();
        const localeWeekStartNum = window._bundledLocaleWeekSpec.dow;
        const localeWeekStart = moment.weekdays()[localeWeekStartNum];
        new obsidian.Setting(this.containerEl)
            .setName("Start week on:")
            .setDesc("Choose what day of the week to start. Select 'Locale default' to use the default specified by moment.js")
            .addDropdown((dropdown) => {
            dropdown.addOption("locale", `Locale default (${localeWeekStart})`);
            localizedWeekdays.forEach((day, i) => {
                dropdown.addOption(weekdays$1[i], day);
            });
            dropdown.setValue(this.plugin.options.weekStart);
            dropdown.onChange(async (value) => {
                this.plugin.writeOptions(() => ({
                    weekStart: value,
                }));
            });
        });
    }
    addConfirmCreateSetting() {
        new obsidian.Setting(this.containerEl)
            .setName("Confirm before creating new note")
            .setDesc("Show a confirmation modal before creating a new note")
            .addToggle((toggle) => {
            toggle.setValue(this.plugin.options.shouldConfirmBeforeCreate);
            toggle.onChange(async (value) => {
                this.plugin.writeOptions(() => ({
                    shouldConfirmBeforeCreate: value,
                }));
            });
        });
    }
    addShowWeeklyNoteSetting() {
        new obsidian.Setting(this.containerEl)
            .setName("Show week number")
            .setDesc("Enable this to add a column with the week number")
            .addToggle((toggle) => {
            toggle.setValue(this.plugin.options.showWeeklyNote);
            toggle.onChange(async (value) => {
                this.plugin.writeOptions(() => ({ showWeeklyNote: value }));
                this.display(); // show/hide weekly settings
            });
        });
    }
    addWeeklyNoteFormatSetting() {
        new obsidian.Setting(this.containerEl)
            .setName("Weekly note format")
            .setDesc("For more syntax help, refer to format reference")
            .addText((textfield) => {
            textfield.setValue(this.plugin.options.weeklyNoteFormat);
            textfield.setPlaceholder(DEFAULT_WEEK_FORMAT);
            textfield.onChange(async (value) => {
                this.plugin.writeOptions(() => ({ weeklyNoteFormat: value }));
            });
        });
    }
    addWeeklyNoteTemplateSetting() {
        new obsidian.Setting(this.containerEl)
            .setName("Weekly note template")
            .setDesc("Choose the file you want to use as the template for your weekly notes")
            .addText((textfield) => {
            textfield.setValue(this.plugin.options.weeklyNoteTemplate);
            textfield.onChange(async (value) => {
                this.plugin.writeOptions(() => ({ weeklyNoteTemplate: value }));
            });
        });
    }
    addWeeklyNoteFolderSetting() {
        new obsidian.Setting(this.containerEl)
            .setName("Weekly note folder")
            .setDesc("New weekly notes will be placed here")
            .addText((textfield) => {
            textfield.setValue(this.plugin.options.weeklyNoteFolder);
            textfield.onChange(async (value) => {
                this.plugin.writeOptions(() => ({ weeklyNoteFolder: value }));
            });
        });
    }
    addLocaleOverrideSetting() {
        var _a;
        const { moment } = window;
        const sysLocale = (_a = navigator.language) === null || _a === void 0 ? void 0 : _a.toLowerCase();
        new obsidian.Setting(this.containerEl)
            .setName("Override locale:")
            .setDesc("Set this if you want to use a locale different from the default")
            .addDropdown((dropdown) => {
            dropdown.addOption("system-default", `Same as system (${sysLocale})`);
            moment.locales().forEach((locale) => {
                dropdown.addOption(locale, locale);
            });
            dropdown.setValue(this.plugin.options.localeOverride);
            dropdown.onChange(async (value) => {
                this.plugin.writeOptions(() => ({
                    localeOverride: value,
                }));
            });
        });
    }
}

const classList = (obj) => {
    return Object.entries(obj)
        .filter(([_k, v]) => !!v)
        .map(([k, _k]) => k);
};
function clamp(num, lowerBound, upperBound) {
    return Math.min(Math.max(lowerBound, num), upperBound);
}
function partition(arr, predicate) {
    const pass = [];
    const fail = [];
    arr.forEach((elem) => {
        if (predicate(elem)) {
            pass.push(elem);
        }
        else {
            fail.push(elem);
        }
    });
    return [pass, fail];
}
/**
 * Lookup the dateUID for a given file. It compares the filename
 * to the daily and weekly note formats to find a match.
 *
 * @param file
 */
function getDateUIDFromFile(file) {
    if (!file) {
        return null;
    }
    // TODO: I'm not checking the path!
    let date = getDateFromFile_1(file, "day");
    if (date) {
        return getDateUID_1$1(date, "day");
    }
    date = getDateFromFile_1(file, "week");
    if (date) {
        return getDateUID_1$1(date, "week");
    }
    return null;
}
function getWordCount(text) {
    const spaceDelimitedChars = /A-Za-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/
        .source;
    const nonSpaceDelimitedWords = /\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u4E00-\u9FD5/
        .source;
    const pattern = new RegExp([
        `(?:[0-9]+(?:(?:,|\\.)[0-9]+)*|[\\-${spaceDelimitedChars}])+`,
        nonSpaceDelimitedWords,
    ].join("|"), "g");
    return (text.match(pattern) || []).length;
}

function createDailyNotesStore() {
    let hasError = false;
    const store = writable(null);
    return Object.assign({ reindex: () => {
            try {
                const dailyNotes = getAllDailyNotes_1();
                store.set(dailyNotes);
                hasError = false;
            }
            catch (err) {
                if (!hasError) {
                    // Avoid error being shown multiple times
                    console.log("[Calendar] Failed to find daily notes folder", err);
                }
                store.set({});
                hasError = true;
            }
        } }, store);
}
function createWeeklyNotesStore() {
    let hasError = false;
    const store = writable(null);
    return Object.assign({ reindex: () => {
            try {
                const weeklyNotes = getAllWeeklyNotes_1();
                store.set(weeklyNotes);
                hasError = false;
            }
            catch (err) {
                if (!hasError) {
                    // Avoid error being shown multiple times
                    console.log("[Calendar] Failed to find weekly notes folder", err);
                }
                store.set({});
                hasError = true;
            }
        } }, store);
}
const settings = writable(defaultSettings);
const dailyNotes = createDailyNotesStore();
const weeklyNotes = createWeeklyNotesStore();
function createSelectedFileStore() {
    const store = writable(null);
    return Object.assign({ setFile: (file) => {
            const id = getDateUIDFromFile(file);
            store.set(id);
        } }, store);
}
const activeFile = createSelectedFileStore();

class ConfirmationModal extends obsidian.Modal {
    constructor(app, config) {
        super(app);
        const { cta, onAccept, text, title } = config;
        this.contentEl.createEl("h2", { text: title });
        this.contentEl.createEl("p", { text });
        this.contentEl.createDiv("modal-button-container", (buttonsEl) => {
            buttonsEl
                .createEl("button", { text: "Never mind" })
                .addEventListener("click", () => this.close());
            buttonsEl
                .createEl("button", {
                cls: "mod-cta",
                text: cta,
            })
                .addEventListener("click", async (e) => {
                await onAccept(e);
                this.close();
            });
        });
    }
}
function createConfirmationDialog({ cta, onAccept, text, title, }) {
    new ConfirmationModal(window.app, { cta, onAccept, text, title }).open();
}

/**
 * Create a Daily Note for a given date.
 */
async function tryToCreateDailyNote(date, inNewSplit, settings, cb) {
    const { workspace } = window.app;
    const { format } = getDailyNoteSettings_1();
    const filename = date.format(format);
    const createFile = async () => {
        const dailyNote = await createDailyNote_1(date);
        const leaf = inNewSplit
            ? workspace.splitActiveLeaf()
            : workspace.getUnpinnedLeaf();
        await leaf.openFile(dailyNote);
        cb === null || cb === void 0 ? void 0 : cb(dailyNote);
    };
    if (settings.shouldConfirmBeforeCreate) {
        createConfirmationDialog({
            cta: "Create",
            onAccept: createFile,
            text: `File ${filename} does not exist. Would you like to create it?`,
            title: "New Daily Note",
        });
    }
    else {
        await createFile();
    }
}

/**
 * Create a Weekly Note for a given date.
 */
async function tryToCreateWeeklyNote(date, inNewSplit, settings, cb) {
    const { workspace } = window.app;
    const { format } = getWeeklyNoteSettings_1();
    const filename = date.format(format);
    const createFile = async () => {
        const dailyNote = await createWeeklyNote_1(date);
        const leaf = inNewSplit
            ? workspace.splitActiveLeaf()
            : workspace.getUnpinnedLeaf();
        await leaf.openFile(dailyNote);
        cb === null || cb === void 0 ? void 0 : cb(dailyNote);
    };
    if (settings.shouldConfirmBeforeCreate) {
        createConfirmationDialog({
            cta: "Create",
            onAccept: createFile,
            text: `File ${filename} does not exist. Would you like to create it?`,
            title: "New Weekly Note",
        });
    }
    else {
        await createFile();
    }
}

function noop() { }
function assign(tar, src) {
    // @ts-ignore
    for (const k in src)
        tar[k] = src[k];
    return tar;
}
function is_promise(value) {
    return value && typeof value === 'object' && typeof value.then === 'function';
}
function run(fn) {
    return fn();
}
function blank_object() {
    return Object.create(null);
}
function run_all(fns) {
    fns.forEach(run);
}
function is_function(thing) {
    return typeof thing === 'function';
}
function safe_not_equal(a, b) {
    return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');
}
function not_equal(a, b) {
    return a != a ? b == b : a !== b;
}
function is_empty(obj) {
    return Object.keys(obj).length === 0;
}
function create_slot(definition, ctx, $$scope, fn) {
    if (definition) {
        const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);
        return definition[0](slot_ctx);
    }
}
function get_slot_context(definition, ctx, $$scope, fn) {
    return definition[1] && fn
        ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))
        : $$scope.ctx;
}
function get_slot_changes(definition, $$scope, dirty, fn) {
    if (definition[2] && fn) {
        const lets = definition[2](fn(dirty));
        if ($$scope.dirty === undefined) {
            return lets;
        }
        if (typeof lets === 'object') {
            const merged = [];
            const len = Math.max($$scope.dirty.length, lets.length);
            for (let i = 0; i < len; i += 1) {
                merged[i] = $$scope.dirty[i] | lets[i];
            }
            return merged;
        }
        return $$scope.dirty | lets;
    }
    return $$scope.dirty;
}
function update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {
    const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);
    if (slot_changes) {
        const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);
        slot.p(slot_context, slot_changes);
    }
}
function null_to_empty(value) {
    return value == null ? '' : value;
}

function append(target, node) {
    target.appendChild(node);
}
function insert(target, node, anchor) {
    target.insertBefore(node, anchor || null);
}
function detach(node) {
    node.parentNode.removeChild(node);
}
function destroy_each(iterations, detaching) {
    for (let i = 0; i < iterations.length; i += 1) {
        if (iterations[i])
            iterations[i].d(detaching);
    }
}
function element(name) {
    return document.createElement(name);
}
function svg_element(name) {
    return document.createElementNS('http://www.w3.org/2000/svg', name);
}
function text(data) {
    return document.createTextNode(data);
}
function space() {
    return text(' ');
}
function empty() {
    return text('');
}
function listen(node, event, handler, options) {
    node.addEventListener(event, handler, options);
    return () => node.removeEventListener(event, handler, options);
}
function attr(node, attribute, value) {
    if (value == null)
        node.removeAttribute(attribute);
    else if (node.getAttribute(attribute) !== value)
        node.setAttribute(attribute, value);
}
function set_attributes(node, attributes) {
    // @ts-ignore
    const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);
    for (const key in attributes) {
        if (attributes[key] == null) {
            node.removeAttribute(key);
        }
        else if (key === 'style') {
            node.style.cssText = attributes[key];
        }
        else if (key === '__value') {
            node.value = node[key] = attributes[key];
        }
        else if (descriptors[key] && descriptors[key].set) {
            node[key] = attributes[key];
        }
        else {
            attr(node, key, attributes[key]);
        }
    }
}
function children(element) {
    return Array.from(element.childNodes);
}
function set_data(text, data) {
    data = '' + data;
    if (text.wholeText !== data)
        text.data = data;
}
function toggle_class(element, name, toggle) {
    element.classList[toggle ? 'add' : 'remove'](name);
}

let current_component;
function set_current_component(component) {
    current_component = component;
}
function get_current_component() {
    if (!current_component)
        throw new Error('Function called outside component initialization');
    return current_component;
}

const dirty_components = [];
const binding_callbacks = [];
const render_callbacks = [];
const flush_callbacks = [];
const resolved_promise = Promise.resolve();
let update_scheduled = false;
function schedule_update() {
    if (!update_scheduled) {
        update_scheduled = true;
        resolved_promise.then(flush);
    }
}
function add_render_callback(fn) {
    render_callbacks.push(fn);
}
let flushing = false;
const seen_callbacks = new Set();
function flush() {
    if (flushing)
        return;
    flushing = true;
    do {
        // first, call beforeUpdate functions
        // and update components
        for (let i = 0; i < dirty_components.length; i += 1) {
            const component = dirty_components[i];
            set_current_component(component);
            update(component.$$);
        }
        set_current_component(null);
        dirty_components.length = 0;
        while (binding_callbacks.length)
            binding_callbacks.pop()();
        // then, once components are updated, call
        // afterUpdate functions. This may cause
        // subsequent updates...
        for (let i = 0; i < render_callbacks.length; i += 1) {
            const callback = render_callbacks[i];
            if (!seen_callbacks.has(callback)) {
                // ...so guard against infinite loops
                seen_callbacks.add(callback);
                callback();
            }
        }
        render_callbacks.length = 0;
    } while (dirty_components.length);
    while (flush_callbacks.length) {
        flush_callbacks.pop()();
    }
    update_scheduled = false;
    flushing = false;
    seen_callbacks.clear();
}
function update($$) {
    if ($$.fragment !== null) {
        $$.update();
        run_all($$.before_update);
        const dirty = $$.dirty;
        $$.dirty = [-1];
        $$.fragment && $$.fragment.p($$.ctx, dirty);
        $$.after_update.forEach(add_render_callback);
    }
}
const outroing = new Set();
let outros;
function group_outros() {
    outros = {
        r: 0,
        c: [],
        p: outros // parent group
    };
}
function check_outros() {
    if (!outros.r) {
        run_all(outros.c);
    }
    outros = outros.p;
}
function transition_in(block, local) {
    if (block && block.i) {
        outroing.delete(block);
        block.i(local);
    }
}
function transition_out(block, local, detach, callback) {
    if (block && block.o) {
        if (outroing.has(block))
            return;
        outroing.add(block);
        outros.c.push(() => {
            outroing.delete(block);
            if (callback) {
                if (detach)
                    block.d(1);
                callback();
            }
        });
        block.o(local);
    }
}

function handle_promise(promise, info) {
    const token = info.token = {};
    function update(type, index, key, value) {
        if (info.token !== token)
            return;
        info.resolved = value;
        let child_ctx = info.ctx;
        if (key !== undefined) {
            child_ctx = child_ctx.slice();
            child_ctx[key] = value;
        }
        const block = type && (info.current = type)(child_ctx);
        let needs_flush = false;
        if (info.block) {
            if (info.blocks) {
                info.blocks.forEach((block, i) => {
                    if (i !== index && block) {
                        group_outros();
                        transition_out(block, 1, 1, () => {
                            if (info.blocks[i] === block) {
                                info.blocks[i] = null;
                            }
                        });
                        check_outros();
                    }
                });
            }
            else {
                info.block.d(1);
            }
            block.c();
            transition_in(block, 1);
            block.m(info.mount(), info.anchor);
            needs_flush = true;
        }
        info.block = block;
        if (info.blocks)
            info.blocks[index] = block;
        if (needs_flush) {
            flush();
        }
    }
    if (is_promise(promise)) {
        const current_component = get_current_component();
        promise.then(value => {
            set_current_component(current_component);
            update(info.then, 1, info.value, value);
            set_current_component(null);
        }, error => {
            set_current_component(current_component);
            update(info.catch, 2, info.error, error);
            set_current_component(null);
            if (!info.hasCatch) {
                throw error;
            }
        });
        // if we previously had a then/catch block, destroy it
        if (info.current !== info.pending) {
            update(info.pending, 0);
            return true;
        }
    }
    else {
        if (info.current !== info.then) {
            update(info.then, 1, info.value, promise);
            return true;
        }
        info.resolved = promise;
    }
}
function outro_and_destroy_block(block, lookup) {
    transition_out(block, 1, 1, () => {
        lookup.delete(block.key);
    });
}
function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {
    let o = old_blocks.length;
    let n = list.length;
    let i = o;
    const old_indexes = {};
    while (i--)
        old_indexes[old_blocks[i].key] = i;
    const new_blocks = [];
    const new_lookup = new Map();
    const deltas = new Map();
    i = n;
    while (i--) {
        const child_ctx = get_context(ctx, list, i);
        const key = get_key(child_ctx);
        let block = lookup.get(key);
        if (!block) {
            block = create_each_block(key, child_ctx);
            block.c();
        }
        else if (dynamic) {
            block.p(child_ctx, dirty);
        }
        new_lookup.set(key, new_blocks[i] = block);
        if (key in old_indexes)
            deltas.set(key, Math.abs(i - old_indexes[key]));
    }
    const will_move = new Set();
    const did_move = new Set();
    function insert(block) {
        transition_in(block, 1);
        block.m(node, next);
        lookup.set(block.key, block);
        next = block.first;
        n--;
    }
    while (o && n) {
        const new_block = new_blocks[n - 1];
        const old_block = old_blocks[o - 1];
        const new_key = new_block.key;
        const old_key = old_block.key;
        if (new_block === old_block) {
            // do nothing
            next = new_block.first;
            o--;
            n--;
        }
        else if (!new_lookup.has(old_key)) {
            // remove old block
            destroy(old_block, lookup);
            o--;
        }
        else if (!lookup.has(new_key) || will_move.has(new_key)) {
            insert(new_block);
        }
        else if (did_move.has(old_key)) {
            o--;
        }
        else if (deltas.get(new_key) > deltas.get(old_key)) {
            did_move.add(new_key);
            insert(new_block);
        }
        else {
            will_move.add(old_key);
            o--;
        }
    }
    while (o--) {
        const old_block = old_blocks[o];
        if (!new_lookup.has(old_block.key))
            destroy(old_block, lookup);
    }
    while (n)
        insert(new_blocks[n - 1]);
    return new_blocks;
}

function get_spread_update(levels, updates) {
    const update = {};
    const to_null_out = {};
    const accounted_for = { $$scope: 1 };
    let i = levels.length;
    while (i--) {
        const o = levels[i];
        const n = updates[i];
        if (n) {
            for (const key in o) {
                if (!(key in n))
                    to_null_out[key] = 1;
            }
            for (const key in n) {
                if (!accounted_for[key]) {
                    update[key] = n[key];
                    accounted_for[key] = 1;
                }
            }
            levels[i] = n;
        }
        else {
            for (const key in o) {
                accounted_for[key] = 1;
            }
        }
    }
    for (const key in to_null_out) {
        if (!(key in update))
            update[key] = undefined;
    }
    return update;
}
function get_spread_object(spread_props) {
    return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};
}
function create_component(block) {
    block && block.c();
}
function mount_component(component, target, anchor, customElement) {
    const { fragment, on_mount, on_destroy, after_update } = component.$$;
    fragment && fragment.m(target, anchor);
    if (!customElement) {
        // onMount happens before the initial afterUpdate
        add_render_callback(() => {
            const new_on_destroy = on_mount.map(run).filter(is_function);
            if (on_destroy) {
                on_destroy.push(...new_on_destroy);
            }
            else {
                // Edge case - component was destroyed immediately,
                // most likely as a result of a binding initialising
                run_all(new_on_destroy);
            }
            component.$$.on_mount = [];
        });
    }
    after_update.forEach(add_render_callback);
}
function destroy_component(component, detaching) {
    const $$ = component.$$;
    if ($$.fragment !== null) {
        run_all($$.on_destroy);
        $$.fragment && $$.fragment.d(detaching);
        // TODO null out other refs, including component.$$ (but need to
        // preserve final state?)
        $$.on_destroy = $$.fragment = null;
        $$.ctx = [];
    }
}
function make_dirty(component, i) {
    if (component.$$.dirty[0] === -1) {
        dirty_components.push(component);
        schedule_update();
        component.$$.dirty.fill(0);
    }
    component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));
}
function init(component, options, instance, create_fragment, not_equal, props, dirty = [-1]) {
    const parent_component = current_component;
    set_current_component(component);
    const $$ = component.$$ = {
        fragment: null,
        ctx: null,
        // state
        props,
        update: noop,
        not_equal,
        bound: blank_object(),
        // lifecycle
        on_mount: [],
        on_destroy: [],
        on_disconnect: [],
        before_update: [],
        after_update: [],
        context: new Map(parent_component ? parent_component.$$.context : []),
        // everything else
        callbacks: blank_object(),
        dirty,
        skip_bound: false
    };
    let ready = false;
    $$.ctx = instance
        ? instance(component, options.props || {}, (i, ret, ...rest) => {
            const value = rest.length ? rest[0] : ret;
            if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {
                if (!$$.skip_bound && $$.bound[i])
                    $$.bound[i](value);
                if (ready)
                    make_dirty(component, i);
            }
            return ret;
        })
        : [];
    $$.update();
    ready = true;
    run_all($$.before_update);
    // `false` as a special case of no DOM component
    $$.fragment = create_fragment ? create_fragment($$.ctx) : false;
    if (options.target) {
        if (options.hydrate) {
            const nodes = children(options.target);
            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
            $$.fragment && $$.fragment.l(nodes);
            nodes.forEach(detach);
        }
        else {
            // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
            $$.fragment && $$.fragment.c();
        }
        if (options.intro)
            transition_in(component.$$.fragment);
        mount_component(component, options.target, options.anchor, options.customElement);
        flush();
    }
    set_current_component(parent_component);
}
/**
 * Base class for Svelte components. Used when dev=false.
 */
class SvelteComponent {
    $destroy() {
        destroy_component(this, 1);
        this.$destroy = noop;
    }
    $on(type, callback) {
        const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));
        callbacks.push(callback);
        return () => {
            const index = callbacks.indexOf(callback);
            if (index !== -1)
                callbacks.splice(index, 1);
        };
    }
    $set($$props) {
        if (this.$$set && !is_empty($$props)) {
            this.$$.skip_bound = true;
            this.$$set($$props);
            this.$$.skip_bound = false;
        }
    }
}

/**
 * dateUID is a way of weekly identifying daily/weekly/monthly notes.
 * They are prefixed with the granularity to avoid ambiguity.
 */
function getDateUID(date, granularity = "day") {
    const ts = date.clone().startOf(granularity).format();
    return `${granularity}-${ts}`;
}
var getDateUID_1 = getDateUID;

/* src/components/Dot.svelte generated by Svelte v3.35.0 */

function add_css$5() {
	var style = element("style");
	style.id = "svelte-1widvzq-style";
	style.textContent = ".dot.svelte-1widvzq,.hollow.svelte-1widvzq{display:inline-block;height:6px;width:6px;margin:0 1px}.filled.svelte-1widvzq{fill:var(--color-dot)}.active.filled.svelte-1widvzq{fill:var(--text-on-accent)}.hollow.svelte-1widvzq{fill:none;stroke:var(--color-dot)}.active.hollow.svelte-1widvzq{fill:none;stroke:var(--text-on-accent)}";
	append(document.head, style);
}

// (14:0) {:else}
function create_else_block$1(ctx) {
	let svg;
	let circle;
	let svg_class_value;

	return {
		c() {
			svg = svg_element("svg");
			circle = svg_element("circle");
			attr(circle, "cx", "3");
			attr(circle, "cy", "3");
			attr(circle, "r", "2");
			attr(svg, "class", svg_class_value = "" + (null_to_empty(`hollow ${/*className*/ ctx[0]}`) + " svelte-1widvzq"));
			attr(svg, "viewBox", "0 0 6 6");
			attr(svg, "xmlns", "http://www.w3.org/2000/svg");
			toggle_class(svg, "active", /*isActive*/ ctx[2]);
		},
		m(target, anchor) {
			insert(target, svg, anchor);
			append(svg, circle);
		},
		p(ctx, dirty) {
			if (dirty & /*className*/ 1 && svg_class_value !== (svg_class_value = "" + (null_to_empty(`hollow ${/*className*/ ctx[0]}`) + " svelte-1widvzq"))) {
				attr(svg, "class", svg_class_value);
			}

			if (dirty & /*className, isActive*/ 5) {
				toggle_class(svg, "active", /*isActive*/ ctx[2]);
			}
		},
		d(detaching) {
			if (detaching) detach(svg);
		}
	};
}

// (6:0) {#if isFilled}
function create_if_block$2(ctx) {
	let svg;
	let circle;
	let svg_class_value;

	return {
		c() {
			svg = svg_element("svg");
			circle = svg_element("circle");
			attr(circle, "cx", "3");
			attr(circle, "cy", "3");
			attr(circle, "r", "2");
			attr(svg, "class", svg_class_value = "" + (null_to_empty(`dot filled ${/*className*/ ctx[0]}`) + " svelte-1widvzq"));
			attr(svg, "viewBox", "0 0 6 6");
			attr(svg, "xmlns", "http://www.w3.org/2000/svg");
			toggle_class(svg, "active", /*isActive*/ ctx[2]);
		},
		m(target, anchor) {
			insert(target, svg, anchor);
			append(svg, circle);
		},
		p(ctx, dirty) {
			if (dirty & /*className*/ 1 && svg_class_value !== (svg_class_value = "" + (null_to_empty(`dot filled ${/*className*/ ctx[0]}`) + " svelte-1widvzq"))) {
				attr(svg, "class", svg_class_value);
			}

			if (dirty & /*className, isActive*/ 5) {
				toggle_class(svg, "active", /*isActive*/ ctx[2]);
			}
		},
		d(detaching) {
			if (detaching) detach(svg);
		}
	};
}

function create_fragment$6(ctx) {
	let if_block_anchor;

	function select_block_type(ctx, dirty) {
		if (/*isFilled*/ ctx[1]) return create_if_block$2;
		return create_else_block$1;
	}

	let current_block_type = select_block_type(ctx);
	let if_block = current_block_type(ctx);

	return {
		c() {
			if_block.c();
			if_block_anchor = empty();
		},
		m(target, anchor) {
			if_block.m(target, anchor);
			insert(target, if_block_anchor, anchor);
		},
		p(ctx, [dirty]) {
			if (current_block_type === (current_block_type = select_block_type(ctx)) && if_block) {
				if_block.p(ctx, dirty);
			} else {
				if_block.d(1);
				if_block = current_block_type(ctx);

				if (if_block) {
					if_block.c();
					if_block.m(if_block_anchor.parentNode, if_block_anchor);
				}
			}
		},
		i: noop,
		o: noop,
		d(detaching) {
			if_block.d(detaching);
			if (detaching) detach(if_block_anchor);
		}
	};
}

function instance$6($$self, $$props, $$invalidate) {
	let { className = "" } = $$props;
	let { isFilled } = $$props;
	let { isActive } = $$props;

	$$self.$$set = $$props => {
		if ("className" in $$props) $$invalidate(0, className = $$props.className);
		if ("isFilled" in $$props) $$invalidate(1, isFilled = $$props.isFilled);
		if ("isActive" in $$props) $$invalidate(2, isActive = $$props.isActive);
	};

	return [className, isFilled, isActive];
}

class Dot extends SvelteComponent {
	constructor(options) {
		super();
		if (!document.getElementById("svelte-1widvzq-style")) add_css$5();
		init(this, options, instance$6, create_fragment$6, safe_not_equal, { className: 0, isFilled: 1, isActive: 2 });
	}
}

/* src/components/MetadataResolver.svelte generated by Svelte v3.35.0 */

const get_default_slot_changes_1 = dirty => ({});
const get_default_slot_context_1 = ctx => ({ metadata: null });
const get_default_slot_changes = dirty => ({ metadata: dirty & /*metadata*/ 1 });
const get_default_slot_context = ctx => ({ metadata: /*resolvedMeta*/ ctx[3] });

// (11:0) {:else}
function create_else_block(ctx) {
	let current;
	const default_slot_template = /*#slots*/ ctx[2].default;
	const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[1], get_default_slot_context_1);

	return {
		c() {
			if (default_slot) default_slot.c();
		},
		m(target, anchor) {
			if (default_slot) {
				default_slot.m(target, anchor);
			}

			current = true;
		},
		p(ctx, dirty) {
			if (default_slot) {
				if (default_slot.p && dirty & /*$$scope*/ 2) {
					update_slot(default_slot, default_slot_template, ctx, /*$$scope*/ ctx[1], dirty, get_default_slot_changes_1, get_default_slot_context_1);
				}
			}
		},
		i(local) {
			if (current) return;
			transition_in(default_slot, local);
			current = true;
		},
		o(local) {
			transition_out(default_slot, local);
			current = false;
		},
		d(detaching) {
			if (default_slot) default_slot.d(detaching);
		}
	};
}

// (7:0) {#if metadata}
function create_if_block$1(ctx) {
	let await_block_anchor;
	let promise;
	let current;

	let info = {
		ctx,
		current: null,
		token: null,
		hasCatch: false,
		pending: create_pending_block,
		then: create_then_block,
		catch: create_catch_block,
		value: 3,
		blocks: [,,,]
	};

	handle_promise(promise = /*metadata*/ ctx[0], info);

	return {
		c() {
			await_block_anchor = empty();
			info.block.c();
		},
		m(target, anchor) {
			insert(target, await_block_anchor, anchor);
			info.block.m(target, info.anchor = anchor);
			info.mount = () => await_block_anchor.parentNode;
			info.anchor = await_block_anchor;
			current = true;
		},
		p(new_ctx, dirty) {
			ctx = new_ctx;
			info.ctx = ctx;

			if (dirty & /*metadata*/ 1 && promise !== (promise = /*metadata*/ ctx[0]) && handle_promise(promise, info)) ; else {
				const child_ctx = ctx.slice();
				child_ctx[3] = info.resolved;
				info.block.p(child_ctx, dirty);
			}
		},
		i(local) {
			if (current) return;
			transition_in(info.block);
			current = true;
		},
		o(local) {
			for (let i = 0; i < 3; i += 1) {
				const block = info.blocks[i];
				transition_out(block);
			}

			current = false;
		},
		d(detaching) {
			if (detaching) detach(await_block_anchor);
			info.block.d(detaching);
			info.token = null;
			info = null;
		}
	};
}

// (1:0) <svelte:options immutable />  <script lang="ts">; export let metadata; </script>  {#if metadata}
function create_catch_block(ctx) {
	return {
		c: noop,
		m: noop,
		p: noop,
		i: noop,
		o: noop,
		d: noop
	};
}

// (8:37)      <slot metadata="{resolvedMeta}
function create_then_block(ctx) {
	let current;
	const default_slot_template = /*#slots*/ ctx[2].default;
	const default_slot = create_slot(default_slot_template, ctx, /*$$scope*/ ctx[1], get_default_slot_context);

	return {
		c() {
			if (default_slot) default_slot.c();
		},
		m(target, anchor) {
			if (default_slot) {
				default_slot.m(target, anchor);
			}

			current = true;
		},
		p(ctx, dirty) {
			if (default_slot) {
				if (default_slot.p && dirty & /*$$scope, metadata*/ 3) {
					update_slot(default_slot, default_slot_template, ctx, /*$$scope*/ ctx[1], dirty, get_default_slot_changes, get_default_slot_context);
				}
			}
		},
		i(local) {
			if (current) return;
			transition_in(default_slot, local);
			current = true;
		},
		o(local) {
			transition_out(default_slot, local);
			current = false;
		},
		d(detaching) {
			if (default_slot) default_slot.d(detaching);
		}
	};
}

// (1:0) <svelte:options immutable />  <script lang="ts">; export let metadata; </script>  {#if metadata}
function create_pending_block(ctx) {
	return {
		c: noop,
		m: noop,
		p: noop,
		i: noop,
		o: noop,
		d: noop
	};
}

function create_fragment$5(ctx) {
	let current_block_type_index;
	let if_block;
	let if_block_anchor;
	let current;
	const if_block_creators = [create_if_block$1, create_else_block];
	const if_blocks = [];

	function select_block_type(ctx, dirty) {
		if (/*metadata*/ ctx[0]) return 0;
		return 1;
	}

	current_block_type_index = select_block_type(ctx);
	if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);

	return {
		c() {
			if_block.c();
			if_block_anchor = empty();
		},
		m(target, anchor) {
			if_blocks[current_block_type_index].m(target, anchor);
			insert(target, if_block_anchor, anchor);
			current = true;
		},
		p(ctx, [dirty]) {
			let previous_block_index = current_block_type_index;
			current_block_type_index = select_block_type(ctx);

			if (current_block_type_index === previous_block_index) {
				if_blocks[current_block_type_index].p(ctx, dirty);
			} else {
				group_outros();

				transition_out(if_blocks[previous_block_index], 1, 1, () => {
					if_blocks[previous_block_index] = null;
				});

				check_outros();
				if_block = if_blocks[current_block_type_index];

				if (!if_block) {
					if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx);
					if_block.c();
				} else {
					if_block.p(ctx, dirty);
				}

				transition_in(if_block, 1);
				if_block.m(if_block_anchor.parentNode, if_block_anchor);
			}
		},
		i(local) {
			if (current) return;
			transition_in(if_block);
			current = true;
		},
		o(local) {
			transition_out(if_block);
			current = false;
		},
		d(detaching) {
			if_blocks[current_block_type_index].d(detaching);
			if (detaching) detach(if_block_anchor);
		}
	};
}

function instance$5($$self, $$props, $$invalidate) {
	let { $$slots: slots = {}, $$scope } = $$props;
	
	let { metadata } = $$props;

	$$self.$$set = $$props => {
		if ("metadata" in $$props) $$invalidate(0, metadata = $$props.metadata);
		if ("$$scope" in $$props) $$invalidate(1, $$scope = $$props.$$scope);
	};

	return [metadata, $$scope, slots];
}

class MetadataResolver extends SvelteComponent {
	constructor(options) {
		super();
		init(this, options, instance$5, create_fragment$5, not_equal, { metadata: 0 });
	}
}

function isMacOS() {
    return navigator.appVersion.indexOf("Mac") !== -1;
}
function isMetaPressed(e) {
    return isMacOS() ? e.metaKey : e.ctrlKey;
}
function getDaysOfWeek(..._args) {
    return window.moment.weekdaysShort(true);
}
function isWeekend(date) {
    return date.isoWeekday() === 6 || date.isoWeekday() === 7;
}
function getStartOfWeek(days) {
    return days[0].weekday(0);
}
/**
 * Generate a 2D array of daily information to power
 * the calendar view.
 */
function getMonth(displayedMonth, ..._args) {
    const locale = window.moment().locale();
    const month = [];
    let week;
    const startOfMonth = displayedMonth.clone().locale(locale).date(1);
    const startOffset = startOfMonth.weekday();
    let date = startOfMonth.clone().subtract(startOffset, "days");
    for (let _day = 0; _day < 42; _day++) {
        if (_day % 7 === 0) {
            week = {
                days: [],
                weekNum: date.week(),
            };
            month.push(week);
        }
        week.days.push(date);
        date = date.clone().add(1, "days");
    }
    return month;
}

/* src/components/Day.svelte generated by Svelte v3.35.0 */

function add_css$4() {
	var style = element("style");
	style.id = "svelte-q3wqg9-style";
	style.textContent = ".day.svelte-q3wqg9{background-color:var(--color-background-day);border-radius:4px;color:var(--color-text-day);cursor:pointer;font-size:0.8em;height:100%;padding:4px;position:relative;text-align:center;transition:background-color 0.1s ease-in, color 0.1s ease-in;vertical-align:baseline}.day.svelte-q3wqg9:hover{background-color:var(--interactive-hover)}.day.active.svelte-q3wqg9:hover{background-color:var(--interactive-accent-hover)}.adjacent-month.svelte-q3wqg9{opacity:0.25}.today.svelte-q3wqg9{color:var(--color-text-today)}.day.svelte-q3wqg9:active,.active.svelte-q3wqg9,.active.today.svelte-q3wqg9{color:var(--text-on-accent);background-color:var(--interactive-accent)}.dot-container.svelte-q3wqg9{display:flex;flex-wrap:wrap;justify-content:center;line-height:6px;min-height:6px}";
	append(document.head, style);
}

function get_each_context$2(ctx, list, i) {
	const child_ctx = ctx.slice();
	child_ctx[11] = list[i];
	return child_ctx;
}

// (36:8) {#each metadata.dots as dot}
function create_each_block$2(ctx) {
	let dot;
	let current;
	const dot_spread_levels = [/*dot*/ ctx[11]];
	let dot_props = {};

	for (let i = 0; i < dot_spread_levels.length; i += 1) {
		dot_props = assign(dot_props, dot_spread_levels[i]);
	}

	dot = new Dot({ props: dot_props });

	return {
		c() {
			create_component(dot.$$.fragment);
		},
		m(target, anchor) {
			mount_component(dot, target, anchor);
			current = true;
		},
		p(ctx, dirty) {
			const dot_changes = (dirty & /*metadata*/ 128)
			? get_spread_update(dot_spread_levels, [get_spread_object(/*dot*/ ctx[11])])
			: {};

			dot.$set(dot_changes);
		},
		i(local) {
			if (current) return;
			transition_in(dot.$$.fragment, local);
			current = true;
		},
		o(local) {
			transition_out(dot.$$.fragment, local);
			current = false;
		},
		d(detaching) {
			destroy_component(dot, detaching);
		}
	};
}

// (22:2) <MetadataResolver metadata="{metadata}" let:metadata>
function create_default_slot$1(ctx) {
	let div1;
	let t0_value = /*date*/ ctx[0].format("D") + "";
	let t0;
	let t1;
	let div0;
	let div1_class_value;
	let current;
	let mounted;
	let dispose;
	let each_value = /*metadata*/ ctx[7].dots;
	let each_blocks = [];

	for (let i = 0; i < each_value.length; i += 1) {
		each_blocks[i] = create_each_block$2(get_each_context$2(ctx, each_value, i));
	}

	const out = i => transition_out(each_blocks[i], 1, 1, () => {
		each_blocks[i] = null;
	});

	let div1_levels = [
		{
			class: div1_class_value = `day ${/*metadata*/ ctx[7].classes.join(" ")}`
		},
		/*metadata*/ ctx[7].dataAttributes || {}
	];

	let div1_data = {};

	for (let i = 0; i < div1_levels.length; i += 1) {
		div1_data = assign(div1_data, div1_levels[i]);
	}

	return {
		c() {
			div1 = element("div");
			t0 = text(t0_value);
			t1 = space();
			div0 = element("div");

			for (let i = 0; i < each_blocks.length; i += 1) {
				each_blocks[i].c();
			}

			attr(div0, "class", "dot-container svelte-q3wqg9");
			set_attributes(div1, div1_data);
			toggle_class(div1, "active", /*selectedId*/ ctx[6] === getDateUID_1(/*date*/ ctx[0], "day"));
			toggle_class(div1, "adjacent-month", !/*date*/ ctx[0].isSame(/*displayedMonth*/ ctx[5], "month"));
			toggle_class(div1, "today", /*date*/ ctx[0].isSame(/*today*/ ctx[4], "day"));
			toggle_class(div1, "svelte-q3wqg9", true);
		},
		m(target, anchor) {
			insert(target, div1, anchor);
			append(div1, t0);
			append(div1, t1);
			append(div1, div0);

			for (let i = 0; i < each_blocks.length; i += 1) {
				each_blocks[i].m(div0, null);
			}

			current = true;

			if (!mounted) {
				dispose = [
					listen(div1, "click", function () {
						if (is_function(/*onClick*/ ctx[2] && /*click_handler*/ ctx[8])) (/*onClick*/ ctx[2] && /*click_handler*/ ctx[8]).apply(this, arguments);
					}),
					listen(div1, "contextmenu", function () {
						if (is_function(/*onContextMenu*/ ctx[3] && /*contextmenu_handler*/ ctx[9])) (/*onContextMenu*/ ctx[3] && /*contextmenu_handler*/ ctx[9]).apply(this, arguments);
					}),
					listen(div1, "pointerover", function () {
						if (is_function(/*onHover*/ ctx[1] && /*pointerover_handler*/ ctx[10])) (/*onHover*/ ctx[1] && /*pointerover_handler*/ ctx[10]).apply(this, arguments);
					})
				];

				mounted = true;
			}
		},
		p(new_ctx, dirty) {
			ctx = new_ctx;
			if ((!current || dirty & /*date*/ 1) && t0_value !== (t0_value = /*date*/ ctx[0].format("D") + "")) set_data(t0, t0_value);

			if (dirty & /*metadata*/ 128) {
				each_value = /*metadata*/ ctx[7].dots;
				let i;

				for (i = 0; i < each_value.length; i += 1) {
					const child_ctx = get_each_context$2(ctx, each_value, i);

					if (each_blocks[i]) {
						each_blocks[i].p(child_ctx, dirty);
						transition_in(each_blocks[i], 1);
					} else {
						each_blocks[i] = create_each_block$2(child_ctx);
						each_blocks[i].c();
						transition_in(each_blocks[i], 1);
						each_blocks[i].m(div0, null);
					}
				}

				group_outros();

				for (i = each_value.length; i < each_blocks.length; i += 1) {
					out(i);
				}

				check_outros();
			}

			set_attributes(div1, div1_data = get_spread_update(div1_levels, [
				(!current || dirty & /*metadata*/ 128 && div1_class_value !== (div1_class_value = `day ${/*metadata*/ ctx[7].classes.join(" ")}`)) && { class: div1_class_value },
				dirty & /*metadata*/ 128 && (/*metadata*/ ctx[7].dataAttributes || {})
			]));

			toggle_class(div1, "active", /*selectedId*/ ctx[6] === getDateUID_1(/*date*/ ctx[0], "day"));
			toggle_class(div1, "adjacent-month", !/*date*/ ctx[0].isSame(/*displayedMonth*/ ctx[5], "month"));
			toggle_class(div1, "today", /*date*/ ctx[0].isSame(/*today*/ ctx[4], "day"));
			toggle_class(div1, "svelte-q3wqg9", true);
		},
		i(local) {
			if (current) return;

			for (let i = 0; i < each_value.length; i += 1) {
				transition_in(each_blocks[i]);
			}

			current = true;
		},
		o(local) {
			each_blocks = each_blocks.filter(Boolean);

			for (let i = 0; i < each_blocks.length; i += 1) {
				transition_out(each_blocks[i]);
			}

			current = false;
		},
		d(detaching) {
			if (detaching) detach(div1);
			destroy_each(each_blocks, detaching);
			mounted = false;
			run_all(dispose);
		}
	};
}

function create_fragment$4(ctx) {
	let td;
	let metadataresolver;
	let current;

	metadataresolver = new MetadataResolver({
			props: {
				metadata: /*metadata*/ ctx[7],
				$$slots: {
					default: [
						create_default_slot$1,
						({ metadata }) => ({ 7: metadata }),
						({ metadata }) => metadata ? 128 : 0
					]
				},
				$$scope: { ctx }
			}
		});

	return {
		c() {
			td = element("td");
			create_component(metadataresolver.$$.fragment);
		},
		m(target, anchor) {
			insert(target, td, anchor);
			mount_component(metadataresolver, td, null);
			current = true;
		},
		p(ctx, [dirty]) {
			const metadataresolver_changes = {};
			if (dirty & /*metadata*/ 128) metadataresolver_changes.metadata = /*metadata*/ ctx[7];

			if (dirty & /*$$scope, metadata, selectedId, date, displayedMonth, today, onClick, onContextMenu, onHover*/ 16639) {
				metadataresolver_changes.$$scope = { dirty, ctx };
			}

			metadataresolver.$set(metadataresolver_changes);
		},
		i(local) {
			if (current) return;
			transition_in(metadataresolver.$$.fragment, local);
			current = true;
		},
		o(local) {
			transition_out(metadataresolver.$$.fragment, local);
			current = false;
		},
		d(detaching) {
			if (detaching) detach(td);
			destroy_component(metadataresolver);
		}
	};
}

function instance$4($$self, $$props, $$invalidate) {
	
	
	let { date } = $$props;
	let { metadata } = $$props;
	let { onHover } = $$props;
	let { onClick } = $$props;
	let { onContextMenu } = $$props;
	let { today } = $$props;
	let { displayedMonth = null } = $$props;
	let { selectedId = null } = $$props;
	const click_handler = e => onClick(date, isMetaPressed(e));
	const contextmenu_handler = e => onContextMenu(date, e);
	const pointerover_handler = e => onHover(date, e.target, isMetaPressed(e));

	$$self.$$set = $$props => {
		if ("date" in $$props) $$invalidate(0, date = $$props.date);
		if ("metadata" in $$props) $$invalidate(7, metadata = $$props.metadata);
		if ("onHover" in $$props) $$invalidate(1, onHover = $$props.onHover);
		if ("onClick" in $$props) $$invalidate(2, onClick = $$props.onClick);
		if ("onContextMenu" in $$props) $$invalidate(3, onContextMenu = $$props.onContextMenu);
		if ("today" in $$props) $$invalidate(4, today = $$props.today);
		if ("displayedMonth" in $$props) $$invalidate(5, displayedMonth = $$props.displayedMonth);
		if ("selectedId" in $$props) $$invalidate(6, selectedId = $$props.selectedId);
	};

	return [
		date,
		onHover,
		onClick,
		onContextMenu,
		today,
		displayedMonth,
		selectedId,
		metadata,
		click_handler,
		contextmenu_handler,
		pointerover_handler
	];
}

class Day extends SvelteComponent {
	constructor(options) {
		super();
		if (!document.getElementById("svelte-q3wqg9-style")) add_css$4();

		init(this, options, instance$4, create_fragment$4, not_equal, {
			date: 0,
			metadata: 7,
			onHover: 1,
			onClick: 2,
			onContextMenu: 3,
			today: 4,
			displayedMonth: 5,
			selectedId: 6
		});
	}
}

/* src/components/Arrow.svelte generated by Svelte v3.35.0 */

function add_css$3() {
	var style = element("style");
	style.id = "svelte-156w7na-style";
	style.textContent = ".arrow.svelte-156w7na.svelte-156w7na{align-items:center;cursor:pointer;display:flex;justify-content:center;width:24px}.arrow.is-mobile.svelte-156w7na.svelte-156w7na{width:32px}.right.svelte-156w7na.svelte-156w7na{transform:rotate(180deg)}.arrow.svelte-156w7na svg.svelte-156w7na{color:var(--color-arrow);height:16px;width:16px}";
	append(document.head, style);
}

function create_fragment$3(ctx) {
	let div;
	let svg;
	let path;
	let mounted;
	let dispose;

	return {
		c() {
			div = element("div");
			svg = svg_element("svg");
			path = svg_element("path");
			attr(path, "fill", "currentColor");
			attr(path, "d", "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z");
			attr(svg, "focusable", "false");
			attr(svg, "role", "img");
			attr(svg, "xmlns", "http://www.w3.org/2000/svg");
			attr(svg, "viewBox", "0 0 320 512");
			attr(svg, "class", "svelte-156w7na");
			attr(div, "class", "arrow svelte-156w7na");
			attr(div, "aria-label", /*tooltip*/ ctx[1]);
			toggle_class(div, "is-mobile", /*isMobile*/ ctx[3]);
			toggle_class(div, "right", /*direction*/ ctx[2] === "right");
		},
		m(target, anchor) {
			insert(target, div, anchor);
			append(div, svg);
			append(svg, path);

			if (!mounted) {
				dispose = listen(div, "click", function () {
					if (is_function(/*onClick*/ ctx[0])) /*onClick*/ ctx[0].apply(this, arguments);
				});

				mounted = true;
			}
		},
		p(new_ctx, [dirty]) {
			ctx = new_ctx;

			if (dirty & /*tooltip*/ 2) {
				attr(div, "aria-label", /*tooltip*/ ctx[1]);
			}

			if (dirty & /*direction*/ 4) {
				toggle_class(div, "right", /*direction*/ ctx[2] === "right");
			}
		},
		i: noop,
		o: noop,
		d(detaching) {
			if (detaching) detach(div);
			mounted = false;
			dispose();
		}
	};
}

function instance$3($$self, $$props, $$invalidate) {
	let { onClick } = $$props;
	let { tooltip } = $$props;
	let { direction } = $$props;

	// eslint-disable-next-line @typescript-eslint/no-explicit-any
	let isMobile = window.app.isMobile;

	$$self.$$set = $$props => {
		if ("onClick" in $$props) $$invalidate(0, onClick = $$props.onClick);
		if ("tooltip" in $$props) $$invalidate(1, tooltip = $$props.tooltip);
		if ("direction" in $$props) $$invalidate(2, direction = $$props.direction);
	};

	return [onClick, tooltip, direction, isMobile];
}

class Arrow extends SvelteComponent {
	constructor(options) {
		super();
		if (!document.getElementById("svelte-156w7na-style")) add_css$3();
		init(this, options, instance$3, create_fragment$3, safe_not_equal, { onClick: 0, tooltip: 1, direction: 2 });
	}
}

/* src/components/Nav.svelte generated by Svelte v3.35.0 */

function add_css$2() {
	var style = element("style");
	style.id = "svelte-1vwr9dd-style";
	style.textContent = ".nav.svelte-1vwr9dd.svelte-1vwr9dd{align-items:center;display:flex;margin:0.6em 0 1em;padding:0 8px;width:100%}.nav.is-mobile.svelte-1vwr9dd.svelte-1vwr9dd{padding:0}.title.svelte-1vwr9dd.svelte-1vwr9dd{color:var(--color-text-title);font-size:1.5em;margin:0}.is-mobile.svelte-1vwr9dd .title.svelte-1vwr9dd{font-size:1.3em}.month.svelte-1vwr9dd.svelte-1vwr9dd{font-weight:500;text-transform:capitalize}.year.svelte-1vwr9dd.svelte-1vwr9dd{color:var(--interactive-accent)}.right-nav.svelte-1vwr9dd.svelte-1vwr9dd{display:flex;justify-content:center;margin-left:auto}.reset-button.svelte-1vwr9dd.svelte-1vwr9dd{cursor:pointer;border-radius:4px;color:var(--text-muted);font-size:0.7em;font-weight:600;letter-spacing:1px;margin:0 4px;padding:0px 4px;text-transform:uppercase}.is-mobile.svelte-1vwr9dd .reset-button.svelte-1vwr9dd{display:none}";
	append(document.head, style);
}

function create_fragment$2(ctx) {
	let div2;
	let h3;
	let span0;
	let t0_value = /*displayedMonth*/ ctx[0].format("MMM") + "";
	let t0;
	let t1;
	let span1;
	let t2_value = /*displayedMonth*/ ctx[0].format("YYYY") + "";
	let t2;
	let t3;
	let div1;
	let arrow0;
	let t4;
	let div0;
	let t6;
	let arrow1;
	let current;
	let mounted;
	let dispose;

	arrow0 = new Arrow({
			props: {
				direction: "left",
				onClick: /*decrementDisplayedMonth*/ ctx[3],
				tooltip: "Previous Month"
			}
		});

	arrow1 = new Arrow({
			props: {
				direction: "right",
				onClick: /*incrementDisplayedMonth*/ ctx[2],
				tooltip: "Next Month"
			}
		});

	return {
		c() {
			div2 = element("div");
			h3 = element("h3");
			span0 = element("span");
			t0 = text(t0_value);
			t1 = space();
			span1 = element("span");
			t2 = text(t2_value);
			t3 = space();
			div1 = element("div");
			create_component(arrow0.$$.fragment);
			t4 = space();
			div0 = element("div");
			div0.textContent = `${/*todayDisplayStr*/ ctx[4]}`;
			t6 = space();
			create_component(arrow1.$$.fragment);
			attr(span0, "class", "month svelte-1vwr9dd");
			attr(span1, "class", "year svelte-1vwr9dd");
			attr(h3, "class", "title svelte-1vwr9dd");
			attr(div0, "class", "reset-button svelte-1vwr9dd");
			attr(div1, "class", "right-nav svelte-1vwr9dd");
			attr(div2, "class", "nav svelte-1vwr9dd");
			toggle_class(div2, "is-mobile", /*isMobile*/ ctx[5]);
		},
		m(target, anchor) {
			insert(target, div2, anchor);
			append(div2, h3);
			append(h3, span0);
			append(span0, t0);
			append(h3, t1);
			append(h3, span1);
			append(span1, t2);
			append(div2, t3);
			append(div2, div1);
			mount_component(arrow0, div1, null);
			append(div1, t4);
			append(div1, div0);
			append(div1, t6);
			mount_component(arrow1, div1, null);
			current = true;

			if (!mounted) {
				dispose = [
					listen(h3, "click", function () {
						if (is_function(/*resetDisplayedMonth*/ ctx[1])) /*resetDisplayedMonth*/ ctx[1].apply(this, arguments);
					}),
					listen(div0, "click", function () {
						if (is_function(/*resetDisplayedMonth*/ ctx[1])) /*resetDisplayedMonth*/ ctx[1].apply(this, arguments);
					})
				];

				mounted = true;
			}
		},
		p(new_ctx, [dirty]) {
			ctx = new_ctx;
			if ((!current || dirty & /*displayedMonth*/ 1) && t0_value !== (t0_value = /*displayedMonth*/ ctx[0].format("MMM") + "")) set_data(t0, t0_value);
			if ((!current || dirty & /*displayedMonth*/ 1) && t2_value !== (t2_value = /*displayedMonth*/ ctx[0].format("YYYY") + "")) set_data(t2, t2_value);
			const arrow0_changes = {};
			if (dirty & /*decrementDisplayedMonth*/ 8) arrow0_changes.onClick = /*decrementDisplayedMonth*/ ctx[3];
			arrow0.$set(arrow0_changes);
			const arrow1_changes = {};
			if (dirty & /*incrementDisplayedMonth*/ 4) arrow1_changes.onClick = /*incrementDisplayedMonth*/ ctx[2];
			arrow1.$set(arrow1_changes);
		},
		i(local) {
			if (current) return;
			transition_in(arrow0.$$.fragment, local);
			transition_in(arrow1.$$.fragment, local);
			current = true;
		},
		o(local) {
			transition_out(arrow0.$$.fragment, local);
			transition_out(arrow1.$$.fragment, local);
			current = false;
		},
		d(detaching) {
			if (detaching) detach(div2);
			destroy_component(arrow0);
			destroy_component(arrow1);
			mounted = false;
			run_all(dispose);
		}
	};
}

function instance$2($$self, $$props, $$invalidate) {
	
	let { displayedMonth } = $$props;
	let { today } = $$props;
	let { resetDisplayedMonth } = $$props;
	let { incrementDisplayedMonth } = $$props;
	let { decrementDisplayedMonth } = $$props;

	// Get the word 'Today' but localized to the current language
	const todayDisplayStr = today.calendar().split(/\d|\s/)[0];

	// eslint-disable-next-line @typescript-eslint/no-explicit-any
	let isMobile = window.app.isMobile;

	$$self.$$set = $$props => {
		if ("displayedMonth" in $$props) $$invalidate(0, displayedMonth = $$props.displayedMonth);
		if ("today" in $$props) $$invalidate(6, today = $$props.today);
		if ("resetDisplayedMonth" in $$props) $$invalidate(1, resetDisplayedMonth = $$props.resetDisplayedMonth);
		if ("incrementDisplayedMonth" in $$props) $$invalidate(2, incrementDisplayedMonth = $$props.incrementDisplayedMonth);
		if ("decrementDisplayedMonth" in $$props) $$invalidate(3, decrementDisplayedMonth = $$props.decrementDisplayedMonth);
	};

	return [
		displayedMonth,
		resetDisplayedMonth,
		incrementDisplayedMonth,
		decrementDisplayedMonth,
		todayDisplayStr,
		isMobile,
		today
	];
}

class Nav extends SvelteComponent {
	constructor(options) {
		super();
		if (!document.getElementById("svelte-1vwr9dd-style")) add_css$2();

		init(this, options, instance$2, create_fragment$2, safe_not_equal, {
			displayedMonth: 0,
			today: 6,
			resetDisplayedMonth: 1,
			incrementDisplayedMonth: 2,
			decrementDisplayedMonth: 3
		});
	}
}

/* src/components/WeekNum.svelte generated by Svelte v3.35.0 */

function add_css$1() {
	var style = element("style");
	style.id = "svelte-egt0yd-style";
	style.textContent = "td.svelte-egt0yd{border-right:1px solid var(--background-modifier-border)}.week-num.svelte-egt0yd{background-color:var(--color-background-weeknum);border-radius:4px;color:var(--color-text-weeknum);cursor:pointer;font-size:0.65em;height:100%;padding:4px;text-align:center;transition:background-color 0.1s ease-in, color 0.1s ease-in;vertical-align:baseline}.week-num.svelte-egt0yd:hover{background-color:var(--interactive-hover)}.week-num.active.svelte-egt0yd:hover{background-color:var(--interactive-accent-hover)}.active.svelte-egt0yd{color:var(--text-on-accent);background-color:var(--interactive-accent)}.dot-container.svelte-egt0yd{display:flex;flex-wrap:wrap;justify-content:center;line-height:6px;min-height:6px}";
	append(document.head, style);
}

function get_each_context$1(ctx, list, i) {
	const child_ctx = ctx.slice();
	child_ctx[11] = list[i];
	return child_ctx;
}

// (35:8) {#each metadata.dots as dot}
function create_each_block$1(ctx) {
	let dot;
	let current;
	const dot_spread_levels = [/*dot*/ ctx[11]];
	let dot_props = {};

	for (let i = 0; i < dot_spread_levels.length; i += 1) {
		dot_props = assign(dot_props, dot_spread_levels[i]);
	}

	dot = new Dot({ props: dot_props });

	return {
		c() {
			create_component(dot.$$.fragment);
		},
		m(target, anchor) {
			mount_component(dot, target, anchor);
			current = true;
		},
		p(ctx, dirty) {
			const dot_changes = (dirty & /*metadata*/ 64)
			? get_spread_update(dot_spread_levels, [get_spread_object(/*dot*/ ctx[11])])
			: {};

			dot.$set(dot_changes);
		},
		i(local) {
			if (current) return;
			transition_in(dot.$$.fragment, local);
			current = true;
		},
		o(local) {
			transition_out(dot.$$.fragment, local);
			current = false;
		},
		d(detaching) {
			destroy_component(dot, detaching);
		}
	};
}

// (24:2) <MetadataResolver metadata="{metadata}" let:metadata>
function create_default_slot(ctx) {
	let div1;
	let t0;
	let t1;
	let div0;
	let div1_class_value;
	let current;
	let mounted;
	let dispose;
	let each_value = /*metadata*/ ctx[6].dots;
	let each_blocks = [];

	for (let i = 0; i < each_value.length; i += 1) {
		each_blocks[i] = create_each_block$1(get_each_context$1(ctx, each_value, i));
	}

	const out = i => transition_out(each_blocks[i], 1, 1, () => {
		each_blocks[i] = null;
	});

	return {
		c() {
			div1 = element("div");
			t0 = text(/*weekNum*/ ctx[0]);
			t1 = space();
			div0 = element("div");

			for (let i = 0; i < each_blocks.length; i += 1) {
				each_blocks[i].c();
			}

			attr(div0, "class", "dot-container svelte-egt0yd");
			attr(div1, "class", div1_class_value = "" + (null_to_empty(`week-num ${/*metadata*/ ctx[6].classes.join(" ")}`) + " svelte-egt0yd"));
			toggle_class(div1, "active", /*selectedId*/ ctx[5] === getDateUID_1(/*days*/ ctx[1][0], "week"));
		},
		m(target, anchor) {
			insert(target, div1, anchor);
			append(div1, t0);
			append(div1, t1);
			append(div1, div0);

			for (let i = 0; i < each_blocks.length; i += 1) {
				each_blocks[i].m(div0, null);
			}

			current = true;

			if (!mounted) {
				dispose = [
					listen(div1, "click", function () {
						if (is_function(/*onClick*/ ctx[3] && /*click_handler*/ ctx[8])) (/*onClick*/ ctx[3] && /*click_handler*/ ctx[8]).apply(this, arguments);
					}),
					listen(div1, "contextmenu", function () {
						if (is_function(/*onContextMenu*/ ctx[4] && /*contextmenu_handler*/ ctx[9])) (/*onContextMenu*/ ctx[4] && /*contextmenu_handler*/ ctx[9]).apply(this, arguments);
					}),
					listen(div1, "pointerover", function () {
						if (is_function(/*onHover*/ ctx[2] && /*pointerover_handler*/ ctx[10])) (/*onHover*/ ctx[2] && /*pointerover_handler*/ ctx[10]).apply(this, arguments);
					})
				];

				mounted = true;
			}
		},
		p(new_ctx, dirty) {
			ctx = new_ctx;
			if (!current || dirty & /*weekNum*/ 1) set_data(t0, /*weekNum*/ ctx[0]);

			if (dirty & /*metadata*/ 64) {
				each_value = /*metadata*/ ctx[6].dots;
				let i;

				for (i = 0; i < each_value.length; i += 1) {
					const child_ctx = get_each_context$1(ctx, each_value, i);

					if (each_blocks[i]) {
						each_blocks[i].p(child_ctx, dirty);
						transition_in(each_blocks[i], 1);
					} else {
						each_blocks[i] = create_each_block$1(child_ctx);
						each_blocks[i].c();
						transition_in(each_blocks[i], 1);
						each_blocks[i].m(div0, null);
					}
				}

				group_outros();

				for (i = each_value.length; i < each_blocks.length; i += 1) {
					out(i);
				}

				check_outros();
			}

			if (!current || dirty & /*metadata*/ 64 && div1_class_value !== (div1_class_value = "" + (null_to_empty(`week-num ${/*metadata*/ ctx[6].classes.join(" ")}`) + " svelte-egt0yd"))) {
				attr(div1, "class", div1_class_value);
			}

			if (dirty & /*metadata, selectedId, getDateUID, days*/ 98) {
				toggle_class(div1, "active", /*selectedId*/ ctx[5] === getDateUID_1(/*days*/ ctx[1][0], "week"));
			}
		},
		i(local) {
			if (current) return;

			for (let i = 0; i < each_value.length; i += 1) {
				transition_in(each_blocks[i]);
			}

			current = true;
		},
		o(local) {
			each_blocks = each_blocks.filter(Boolean);

			for (let i = 0; i < each_blocks.length; i += 1) {
				transition_out(each_blocks[i]);
			}

			current = false;
		},
		d(detaching) {
			if (detaching) detach(div1);
			destroy_each(each_blocks, detaching);
			mounted = false;
			run_all(dispose);
		}
	};
}

function create_fragment$1(ctx) {
	let td;
	let metadataresolver;
	let current;

	metadataresolver = new MetadataResolver({
			props: {
				metadata: /*metadata*/ ctx[6],
				$$slots: {
					default: [
						create_default_slot,
						({ metadata }) => ({ 6: metadata }),
						({ metadata }) => metadata ? 64 : 0
					]
				},
				$$scope: { ctx }
			}
		});

	return {
		c() {
			td = element("td");
			create_component(metadataresolver.$$.fragment);
			attr(td, "class", "svelte-egt0yd");
		},
		m(target, anchor) {
			insert(target, td, anchor);
			mount_component(metadataresolver, td, null);
			current = true;
		},
		p(ctx, [dirty]) {
			const metadataresolver_changes = {};
			if (dirty & /*metadata*/ 64) metadataresolver_changes.metadata = /*metadata*/ ctx[6];

			if (dirty & /*$$scope, metadata, selectedId, days, onClick, startOfWeek, onContextMenu, onHover, weekNum*/ 16639) {
				metadataresolver_changes.$$scope = { dirty, ctx };
			}

			metadataresolver.$set(metadataresolver_changes);
		},
		i(local) {
			if (current) return;
			transition_in(metadataresolver.$$.fragment, local);
			current = true;
		},
		o(local) {
			transition_out(metadataresolver.$$.fragment, local);
			current = false;
		},
		d(detaching) {
			if (detaching) detach(td);
			destroy_component(metadataresolver);
		}
	};
}

function instance$1($$self, $$props, $$invalidate) {
	
	
	let { weekNum } = $$props;
	let { days } = $$props;
	let { metadata } = $$props;
	let { onHover } = $$props;
	let { onClick } = $$props;
	let { onContextMenu } = $$props;
	let { selectedId = null } = $$props;
	let startOfWeek;
	const click_handler = e => onClick(startOfWeek, isMetaPressed(e));
	const contextmenu_handler = e => onContextMenu(days[0], e);
	const pointerover_handler = e => onHover(startOfWeek, e.target, isMetaPressed(e));

	$$self.$$set = $$props => {
		if ("weekNum" in $$props) $$invalidate(0, weekNum = $$props.weekNum);
		if ("days" in $$props) $$invalidate(1, days = $$props.days);
		if ("metadata" in $$props) $$invalidate(6, metadata = $$props.metadata);
		if ("onHover" in $$props) $$invalidate(2, onHover = $$props.onHover);
		if ("onClick" in $$props) $$invalidate(3, onClick = $$props.onClick);
		if ("onContextMenu" in $$props) $$invalidate(4, onContextMenu = $$props.onContextMenu);
		if ("selectedId" in $$props) $$invalidate(5, selectedId = $$props.selectedId);
	};

	$$self.$$.update = () => {
		if ($$self.$$.dirty & /*days*/ 2) {
			$$invalidate(7, startOfWeek = getStartOfWeek(days));
		}
	};

	return [
		weekNum,
		days,
		onHover,
		onClick,
		onContextMenu,
		selectedId,
		metadata,
		startOfWeek,
		click_handler,
		contextmenu_handler,
		pointerover_handler
	];
}

class WeekNum extends SvelteComponent {
	constructor(options) {
		super();
		if (!document.getElementById("svelte-egt0yd-style")) add_css$1();

		init(this, options, instance$1, create_fragment$1, not_equal, {
			weekNum: 0,
			days: 1,
			metadata: 6,
			onHover: 2,
			onClick: 3,
			onContextMenu: 4,
			selectedId: 5
		});
	}
}

async function metadataReducer(promisedMetadata) {
    const meta = {
        dots: [],
        classes: [],
        dataAttributes: {},
    };
    const metas = await Promise.all(promisedMetadata);
    return metas.reduce((acc, meta) => ({
        classes: [...acc.classes, ...(meta.classes || [])],
        dataAttributes: Object.assign(acc.dataAttributes, meta.dataAttributes),
        dots: [...acc.dots, ...(meta.dots || [])],
    }), meta);
}
function getDailyMetadata(sources, date, ..._args) {
    return metadataReducer(sources.map((source) => source.getDailyMetadata(date)));
}
function getWeeklyMetadata(sources, date, ..._args) {
    return metadataReducer(sources.map((source) => source.getWeeklyMetadata(date)));
}

/* src/components/Calendar.svelte generated by Svelte v3.35.0 */

function add_css() {
	var style = element("style");
	style.id = "svelte-pcimu8-style";
	style.textContent = ".container.svelte-pcimu8{--color-background-heading:transparent;--color-background-day:transparent;--color-background-weeknum:transparent;--color-background-weekend:transparent;--color-dot:var(--text-muted);--color-arrow:var(--text-muted);--color-button:var(--text-muted);--color-text-title:var(--text-normal);--color-text-heading:var(--text-muted);--color-text-day:var(--text-normal);--color-text-today:var(--interactive-accent);--color-text-weeknum:var(--text-muted)}.container.svelte-pcimu8{padding:0 8px}.container.is-mobile.svelte-pcimu8{padding:0}th.svelte-pcimu8{text-align:center}.weekend.svelte-pcimu8{background-color:var(--color-background-weekend)}.calendar.svelte-pcimu8{border-collapse:collapse;width:100%}th.svelte-pcimu8{background-color:var(--color-background-heading);color:var(--color-text-heading);font-size:0.6em;letter-spacing:1px;padding:4px;text-transform:uppercase}";
	append(document.head, style);
}

function get_each_context(ctx, list, i) {
	const child_ctx = ctx.slice();
	child_ctx[18] = list[i];
	return child_ctx;
}

function get_each_context_1(ctx, list, i) {
	const child_ctx = ctx.slice();
	child_ctx[21] = list[i];
	return child_ctx;
}

function get_each_context_2(ctx, list, i) {
	const child_ctx = ctx.slice();
	child_ctx[24] = list[i];
	return child_ctx;
}

function get_each_context_3(ctx, list, i) {
	const child_ctx = ctx.slice();
	child_ctx[27] = list[i];
	return child_ctx;
}

// (55:6) {#if showWeekNums}
function create_if_block_2(ctx) {
	let col;

	return {
		c() {
			col = element("col");
		},
		m(target, anchor) {
			insert(target, col, anchor);
		},
		d(detaching) {
			if (detaching) detach(col);
		}
	};
}

// (58:6) {#each month[1].days as date}
function create_each_block_3(ctx) {
	let col;

	return {
		c() {
			col = element("col");
			attr(col, "class", "svelte-pcimu8");
			toggle_class(col, "weekend", isWeekend(/*date*/ ctx[27]));
		},
		m(target, anchor) {
			insert(target, col, anchor);
		},
		p(ctx, dirty) {
			if (dirty & /*isWeekend, month*/ 16384) {
				toggle_class(col, "weekend", isWeekend(/*date*/ ctx[27]));
			}
		},
		d(detaching) {
			if (detaching) detach(col);
		}
	};
}

// (64:8) {#if showWeekNums}
function create_if_block_1(ctx) {
	let th;

	return {
		c() {
			th = element("th");
			th.textContent = "W";
			attr(th, "class", "svelte-pcimu8");
		},
		m(target, anchor) {
			insert(target, th, anchor);
		},
		d(detaching) {
			if (detaching) detach(th);
		}
	};
}

// (67:8) {#each daysOfWeek as dayOfWeek}
function create_each_block_2(ctx) {
	let th;
	let t_value = /*dayOfWeek*/ ctx[24] + "";
	let t;

	return {
		c() {
			th = element("th");
			t = text(t_value);
			attr(th, "class", "svelte-pcimu8");
		},
		m(target, anchor) {
			insert(target, th, anchor);
			append(th, t);
		},
		p(ctx, dirty) {
			if (dirty & /*daysOfWeek*/ 32768 && t_value !== (t_value = /*dayOfWeek*/ ctx[24] + "")) set_data(t, t_value);
		},
		d(detaching) {
			if (detaching) detach(th);
		}
	};
}

// (75:10) {#if showWeekNums}
function create_if_block(ctx) {
	let weeknum;
	let current;

	const weeknum_spread_levels = [
		/*week*/ ctx[18],
		{
			metadata: getWeeklyMetadata(/*sources*/ ctx[8], /*week*/ ctx[18].days[0], /*today*/ ctx[10])
		},
		{ onClick: /*onClickWeek*/ ctx[7] },
		{
			onContextMenu: /*onContextMenuWeek*/ ctx[5]
		},
		{ onHover: /*onHoverWeek*/ ctx[3] },
		{ selectedId: /*selectedId*/ ctx[9] }
	];

	let weeknum_props = {};

	for (let i = 0; i < weeknum_spread_levels.length; i += 1) {
		weeknum_props = assign(weeknum_props, weeknum_spread_levels[i]);
	}

	weeknum = new WeekNum({ props: weeknum_props });

	return {
		c() {
			create_component(weeknum.$$.fragment);
		},
		m(target, anchor) {
			mount_component(weeknum, target, anchor);
			current = true;
		},
		p(ctx, dirty) {
			const weeknum_changes = (dirty & /*month, getWeeklyMetadata, sources, today, onClickWeek, onContextMenuWeek, onHoverWeek, selectedId*/ 18344)
			? get_spread_update(weeknum_spread_levels, [
					dirty & /*month*/ 16384 && get_spread_object(/*week*/ ctx[18]),
					dirty & /*getWeeklyMetadata, sources, month, today*/ 17664 && {
						metadata: getWeeklyMetadata(/*sources*/ ctx[8], /*week*/ ctx[18].days[0], /*today*/ ctx[10])
					},
					dirty & /*onClickWeek*/ 128 && { onClick: /*onClickWeek*/ ctx[7] },
					dirty & /*onContextMenuWeek*/ 32 && {
						onContextMenu: /*onContextMenuWeek*/ ctx[5]
					},
					dirty & /*onHoverWeek*/ 8 && { onHover: /*onHoverWeek*/ ctx[3] },
					dirty & /*selectedId*/ 512 && { selectedId: /*selectedId*/ ctx[9] }
				])
			: {};

			weeknum.$set(weeknum_changes);
		},
		i(local) {
			if (current) return;
			transition_in(weeknum.$$.fragment, local);
			current = true;
		},
		o(local) {
			transition_out(weeknum.$$.fragment, local);
			current = false;
		},
		d(detaching) {
			destroy_component(weeknum, detaching);
		}
	};
}

// (85:10) {#each week.days as day (day.format())}
function create_each_block_1(key_1, ctx) {
	let first;
	let day;
	let current;

	day = new Day({
			props: {
				date: /*day*/ ctx[21],
				today: /*today*/ ctx[10],
				displayedMonth: /*displayedMonth*/ ctx[0],
				onClick: /*onClickDay*/ ctx[6],
				onContextMenu: /*onContextMenuDay*/ ctx[4],
				onHover: /*onHoverDay*/ ctx[2],
				metadata: getDailyMetadata(/*sources*/ ctx[8], /*day*/ ctx[21], /*today*/ ctx[10]),
				selectedId: /*selectedId*/ ctx[9]
			}
		});

	return {
		key: key_1,
		first: null,
		c() {
			first = empty();
			create_component(day.$$.fragment);
			this.first = first;
		},
		m(target, anchor) {
			insert(target, first, anchor);
			mount_component(day, target, anchor);
			current = true;
		},
		p(new_ctx, dirty) {
			ctx = new_ctx;
			const day_changes = {};
			if (dirty & /*month*/ 16384) day_changes.date = /*day*/ ctx[21];
			if (dirty & /*today*/ 1024) day_changes.today = /*today*/ ctx[10];
			if (dirty & /*displayedMonth*/ 1) day_changes.displayedMonth = /*displayedMonth*/ ctx[0];
			if (dirty & /*onClickDay*/ 64) day_changes.onClick = /*onClickDay*/ ctx[6];
			if (dirty & /*onContextMenuDay*/ 16) day_changes.onContextMenu = /*onContextMenuDay*/ ctx[4];
			if (dirty & /*onHoverDay*/ 4) day_changes.onHover = /*onHoverDay*/ ctx[2];
			if (dirty & /*sources, month, today*/ 17664) day_changes.metadata = getDailyMetadata(/*sources*/ ctx[8], /*day*/ ctx[21], /*today*/ ctx[10]);
			if (dirty & /*selectedId*/ 512) day_changes.selectedId = /*selectedId*/ ctx[9];
			day.$set(day_changes);
		},
		i(local) {
			if (current) return;
			transition_in(day.$$.fragment, local);
			current = true;
		},
		o(local) {
			transition_out(day.$$.fragment, local);
			current = false;
		},
		d(detaching) {
			if (detaching) detach(first);
			destroy_component(day, detaching);
		}
	};
}

// (73:6) {#each month as week (week.weekNum)}
function create_each_block(key_1, ctx) {
	let tr;
	let t0;
	let each_blocks = [];
	let each_1_lookup = new Map();
	let t1;
	let current;
	let if_block = /*showWeekNums*/ ctx[1] && create_if_block(ctx);
	let each_value_1 = /*week*/ ctx[18].days;
	const get_key = ctx => /*day*/ ctx[21].format();

	for (let i = 0; i < each_value_1.length; i += 1) {
		let child_ctx = get_each_context_1(ctx, each_value_1, i);
		let key = get_key(child_ctx);
		each_1_lookup.set(key, each_blocks[i] = create_each_block_1(key, child_ctx));
	}

	return {
		key: key_1,
		first: null,
		c() {
			tr = element("tr");
			if (if_block) if_block.c();
			t0 = space();

			for (let i = 0; i < each_blocks.length; i += 1) {
				each_blocks[i].c();
			}

			t1 = space();
			this.first = tr;
		},
		m(target, anchor) {
			insert(target, tr, anchor);
			if (if_block) if_block.m(tr, null);
			append(tr, t0);

			for (let i = 0; i < each_blocks.length; i += 1) {
				each_blocks[i].m(tr, null);
			}

			append(tr, t1);
			current = true;
		},
		p(new_ctx, dirty) {
			ctx = new_ctx;

			if (/*showWeekNums*/ ctx[1]) {
				if (if_block) {
					if_block.p(ctx, dirty);

					if (dirty & /*showWeekNums*/ 2) {
						transition_in(if_block, 1);
					}
				} else {
					if_block = create_if_block(ctx);
					if_block.c();
					transition_in(if_block, 1);
					if_block.m(tr, t0);
				}
			} else if (if_block) {
				group_outros();

				transition_out(if_block, 1, 1, () => {
					if_block = null;
				});

				check_outros();
			}

			if (dirty & /*month, today, displayedMonth, onClickDay, onContextMenuDay, onHoverDay, getDailyMetadata, sources, selectedId*/ 18261) {
				each_value_1 = /*week*/ ctx[18].days;
				group_outros();
				each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value_1, each_1_lookup, tr, outro_and_destroy_block, create_each_block_1, t1, get_each_context_1);
				check_outros();
			}
		},
		i(local) {
			if (current) return;
			transition_in(if_block);

			for (let i = 0; i < each_value_1.length; i += 1) {
				transition_in(each_blocks[i]);
			}

			current = true;
		},
		o(local) {
			transition_out(if_block);

			for (let i = 0; i < each_blocks.length; i += 1) {
				transition_out(each_blocks[i]);
			}

			current = false;
		},
		d(detaching) {
			if (detaching) detach(tr);
			if (if_block) if_block.d();

			for (let i = 0; i < each_blocks.length; i += 1) {
				each_blocks[i].d();
			}
		}
	};
}

function create_fragment$7(ctx) {
	let div;
	let nav;
	let t0;
	let table;
	let colgroup;
	let t1;
	let t2;
	let thead;
	let tr;
	let t3;
	let t4;
	let tbody;
	let each_blocks = [];
	let each2_lookup = new Map();
	let current;

	nav = new Nav({
			props: {
				today: /*today*/ ctx[10],
				displayedMonth: /*displayedMonth*/ ctx[0],
				incrementDisplayedMonth: /*incrementDisplayedMonth*/ ctx[11],
				decrementDisplayedMonth: /*decrementDisplayedMonth*/ ctx[12],
				resetDisplayedMonth: /*resetDisplayedMonth*/ ctx[13]
			}
		});

	let if_block0 = /*showWeekNums*/ ctx[1] && create_if_block_2();
	let each_value_3 = /*month*/ ctx[14][1].days;
	let each_blocks_2 = [];

	for (let i = 0; i < each_value_3.length; i += 1) {
		each_blocks_2[i] = create_each_block_3(get_each_context_3(ctx, each_value_3, i));
	}

	let if_block1 = /*showWeekNums*/ ctx[1] && create_if_block_1();
	let each_value_2 = /*daysOfWeek*/ ctx[15];
	let each_blocks_1 = [];

	for (let i = 0; i < each_value_2.length; i += 1) {
		each_blocks_1[i] = create_each_block_2(get_each_context_2(ctx, each_value_2, i));
	}

	let each_value = /*month*/ ctx[14];
	const get_key = ctx => /*week*/ ctx[18].weekNum;

	for (let i = 0; i < each_value.length; i += 1) {
		let child_ctx = get_each_context(ctx, each_value, i);
		let key = get_key(child_ctx);
		each2_lookup.set(key, each_blocks[i] = create_each_block(key, child_ctx));
	}

	return {
		c() {
			div = element("div");
			create_component(nav.$$.fragment);
			t0 = space();
			table = element("table");
			colgroup = element("colgroup");
			if (if_block0) if_block0.c();
			t1 = space();

			for (let i = 0; i < each_blocks_2.length; i += 1) {
				each_blocks_2[i].c();
			}

			t2 = space();
			thead = element("thead");
			tr = element("tr");
			if (if_block1) if_block1.c();
			t3 = space();

			for (let i = 0; i < each_blocks_1.length; i += 1) {
				each_blocks_1[i].c();
			}

			t4 = space();
			tbody = element("tbody");

			for (let i = 0; i < each_blocks.length; i += 1) {
				each_blocks[i].c();
			}

			attr(table, "class", "calendar svelte-pcimu8");
			attr(div, "id", "calendar-container");
			attr(div, "class", "container svelte-pcimu8");
			toggle_class(div, "is-mobile", /*isMobile*/ ctx[16]);
		},
		m(target, anchor) {
			insert(target, div, anchor);
			mount_component(nav, div, null);
			append(div, t0);
			append(div, table);
			append(table, colgroup);
			if (if_block0) if_block0.m(colgroup, null);
			append(colgroup, t1);

			for (let i = 0; i < each_blocks_2.length; i += 1) {
				each_blocks_2[i].m(colgroup, null);
			}

			append(table, t2);
			append(table, thead);
			append(thead, tr);
			if (if_block1) if_block1.m(tr, null);
			append(tr, t3);

			for (let i = 0; i < each_blocks_1.length; i += 1) {
				each_blocks_1[i].m(tr, null);
			}

			append(table, t4);
			append(table, tbody);

			for (let i = 0; i < each_blocks.length; i += 1) {
				each_blocks[i].m(tbody, null);
			}

			current = true;
		},
		p(ctx, [dirty]) {
			const nav_changes = {};
			if (dirty & /*today*/ 1024) nav_changes.today = /*today*/ ctx[10];
			if (dirty & /*displayedMonth*/ 1) nav_changes.displayedMonth = /*displayedMonth*/ ctx[0];
			nav.$set(nav_changes);

			if (/*showWeekNums*/ ctx[1]) {
				if (if_block0) ; else {
					if_block0 = create_if_block_2();
					if_block0.c();
					if_block0.m(colgroup, t1);
				}
			} else if (if_block0) {
				if_block0.d(1);
				if_block0 = null;
			}

			if (dirty & /*isWeekend, month*/ 16384) {
				each_value_3 = /*month*/ ctx[14][1].days;
				let i;

				for (i = 0; i < each_value_3.length; i += 1) {
					const child_ctx = get_each_context_3(ctx, each_value_3, i);

					if (each_blocks_2[i]) {
						each_blocks_2[i].p(child_ctx, dirty);
					} else {
						each_blocks_2[i] = create_each_block_3(child_ctx);
						each_blocks_2[i].c();
						each_blocks_2[i].m(colgroup, null);
					}
				}

				for (; i < each_blocks_2.length; i += 1) {
					each_blocks_2[i].d(1);
				}

				each_blocks_2.length = each_value_3.length;
			}

			if (/*showWeekNums*/ ctx[1]) {
				if (if_block1) ; else {
					if_block1 = create_if_block_1();
					if_block1.c();
					if_block1.m(tr, t3);
				}
			} else if (if_block1) {
				if_block1.d(1);
				if_block1 = null;
			}

			if (dirty & /*daysOfWeek*/ 32768) {
				each_value_2 = /*daysOfWeek*/ ctx[15];
				let i;

				for (i = 0; i < each_value_2.length; i += 1) {
					const child_ctx = get_each_context_2(ctx, each_value_2, i);

					if (each_blocks_1[i]) {
						each_blocks_1[i].p(child_ctx, dirty);
					} else {
						each_blocks_1[i] = create_each_block_2(child_ctx);
						each_blocks_1[i].c();
						each_blocks_1[i].m(tr, null);
					}
				}

				for (; i < each_blocks_1.length; i += 1) {
					each_blocks_1[i].d(1);
				}

				each_blocks_1.length = each_value_2.length;
			}

			if (dirty & /*month, today, displayedMonth, onClickDay, onContextMenuDay, onHoverDay, getDailyMetadata, sources, selectedId, getWeeklyMetadata, onClickWeek, onContextMenuWeek, onHoverWeek, showWeekNums*/ 18431) {
				each_value = /*month*/ ctx[14];
				group_outros();
				each_blocks = update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each2_lookup, tbody, outro_and_destroy_block, create_each_block, null, get_each_context);
				check_outros();
			}
		},
		i(local) {
			if (current) return;
			transition_in(nav.$$.fragment, local);

			for (let i = 0; i < each_value.length; i += 1) {
				transition_in(each_blocks[i]);
			}

			current = true;
		},
		o(local) {
			transition_out(nav.$$.fragment, local);

			for (let i = 0; i < each_blocks.length; i += 1) {
				transition_out(each_blocks[i]);
			}

			current = false;
		},
		d(detaching) {
			if (detaching) detach(div);
			destroy_component(nav);
			if (if_block0) if_block0.d();
			destroy_each(each_blocks_2, detaching);
			if (if_block1) if_block1.d();
			destroy_each(each_blocks_1, detaching);

			for (let i = 0; i < each_blocks.length; i += 1) {
				each_blocks[i].d();
			}
		}
	};
}

function instance$7($$self, $$props, $$invalidate) {
	
	
	let { localeData } = $$props;
	let { showWeekNums = false } = $$props;
	let { onHoverDay } = $$props;
	let { onHoverWeek } = $$props;
	let { onContextMenuDay } = $$props;
	let { onContextMenuWeek } = $$props;
	let { onClickDay } = $$props;
	let { onClickWeek } = $$props;
	let { sources = [] } = $$props;
	let { selectedId } = $$props;
	let { today = window.moment() } = $$props;
	let { displayedMonth = today } = $$props;
	let month;
	let daysOfWeek;

	// eslint-disable-next-line @typescript-eslint/no-explicit-any
	let isMobile = window.app.isMobile;

	function incrementDisplayedMonth() {
		$$invalidate(0, displayedMonth = displayedMonth.clone().add(1, "month"));
	}

	function decrementDisplayedMonth() {
		$$invalidate(0, displayedMonth = displayedMonth.clone().subtract(1, "month"));
	}

	function resetDisplayedMonth() {
		$$invalidate(0, displayedMonth = today.clone());
	}

	$$self.$$set = $$props => {
		if ("localeData" in $$props) $$invalidate(17, localeData = $$props.localeData);
		if ("showWeekNums" in $$props) $$invalidate(1, showWeekNums = $$props.showWeekNums);
		if ("onHoverDay" in $$props) $$invalidate(2, onHoverDay = $$props.onHoverDay);
		if ("onHoverWeek" in $$props) $$invalidate(3, onHoverWeek = $$props.onHoverWeek);
		if ("onContextMenuDay" in $$props) $$invalidate(4, onContextMenuDay = $$props.onContextMenuDay);
		if ("onContextMenuWeek" in $$props) $$invalidate(5, onContextMenuWeek = $$props.onContextMenuWeek);
		if ("onClickDay" in $$props) $$invalidate(6, onClickDay = $$props.onClickDay);
		if ("onClickWeek" in $$props) $$invalidate(7, onClickWeek = $$props.onClickWeek);
		if ("sources" in $$props) $$invalidate(8, sources = $$props.sources);
		if ("selectedId" in $$props) $$invalidate(9, selectedId = $$props.selectedId);
		if ("today" in $$props) $$invalidate(10, today = $$props.today);
		if ("displayedMonth" in $$props) $$invalidate(0, displayedMonth = $$props.displayedMonth);
	};

	$$self.$$.update = () => {
		if ($$self.$$.dirty & /*displayedMonth, localeData*/ 131073) {
			$$invalidate(14, month = getMonth(displayedMonth, localeData));
		}

		if ($$self.$$.dirty & /*today, localeData*/ 132096) {
			$$invalidate(15, daysOfWeek = getDaysOfWeek(today, localeData));
		}
	};

	return [
		displayedMonth,
		showWeekNums,
		onHoverDay,
		onHoverWeek,
		onContextMenuDay,
		onContextMenuWeek,
		onClickDay,
		onClickWeek,
		sources,
		selectedId,
		today,
		incrementDisplayedMonth,
		decrementDisplayedMonth,
		resetDisplayedMonth,
		month,
		daysOfWeek,
		isMobile,
		localeData
	];
}

class Calendar$1 extends SvelteComponent {
	constructor(options) {
		super();
		if (!document.getElementById("svelte-pcimu8-style")) add_css();

		init(this, options, instance$7, create_fragment$7, not_equal, {
			localeData: 17,
			showWeekNums: 1,
			onHoverDay: 2,
			onHoverWeek: 3,
			onContextMenuDay: 4,
			onContextMenuWeek: 5,
			onClickDay: 6,
			onClickWeek: 7,
			sources: 8,
			selectedId: 9,
			today: 10,
			displayedMonth: 0,
			incrementDisplayedMonth: 11,
			decrementDisplayedMonth: 12,
			resetDisplayedMonth: 13
		});
	}

	get incrementDisplayedMonth() {
		return this.$$.ctx[11];
	}

	get decrementDisplayedMonth() {
		return this.$$.ctx[12];
	}

	get resetDisplayedMonth() {
		return this.$$.ctx[13];
	}
}

const langToMomentLocale = {
    en: "en-gb",
    zh: "zh-cn",
    "zh-TW": "zh-tw",
    ru: "ru",
    ko: "ko",
    it: "it",
    id: "id",
    ro: "ro",
    "pt-BR": "pt-br",
    cz: "cs",
    da: "da",
    de: "de",
    es: "es",
    fr: "fr",
    no: "nn",
    pl: "pl",
    pt: "pt",
    tr: "tr",
    hi: "hi",
    nl: "nl",
    ar: "ar",
    ja: "ja",
};
const weekdays = [
    "sunday",
    "monday",
    "tuesday",
    "wednesday",
    "thursday",
    "friday",
    "saturday",
];
function overrideGlobalMomentWeekStart(weekStart) {
    const { moment } = window;
    const currentLocale = moment.locale();
    // Save the initial locale weekspec so that we can restore
    // it when toggling between the different options in settings.
    if (!window._bundledLocaleWeekSpec) {
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        window._bundledLocaleWeekSpec = moment.localeData()._week;
    }
    if (weekStart === "locale") {
        moment.updateLocale(currentLocale, {
            week: window._bundledLocaleWeekSpec,
        });
    }
    else {
        moment.updateLocale(currentLocale, {
            week: {
                dow: weekdays.indexOf(weekStart) || 0,
            },
        });
    }
}
/**
 * Sets the locale used by the calendar. This allows the calendar to
 * default to the user's locale (e.g. Start Week on Sunday/Monday/Friday)
 *
 * @param localeOverride locale string (e.g. "en-US")
 */
function configureGlobalMomentLocale(localeOverride = "system-default", weekStart = "locale") {
    var _a;
    const obsidianLang = localStorage.getItem("language") || "en";
    const systemLang = (_a = navigator.language) === null || _a === void 0 ? void 0 : _a.toLowerCase();
    let momentLocale = langToMomentLocale[obsidianLang];
    if (localeOverride !== "system-default") {
        momentLocale = localeOverride;
    }
    else if (systemLang.startsWith(obsidianLang)) {
        // If the system locale is more specific (en-gb vs en), use the system locale.
        momentLocale = systemLang;
    }
    const currentLocale = window.moment.locale(momentLocale);
    console.debug(`[Calendar] Trying to switch Moment.js global locale to ${momentLocale}, got ${currentLocale}`);
    overrideGlobalMomentWeekStart(weekStart);
    return currentLocale;
}

/* src/ui/Calendar.svelte generated by Svelte v3.35.0 */

function create_fragment(ctx) {
	let calendarbase;
	let updating_displayedMonth;
	let current;

	function calendarbase_displayedMonth_binding(value) {
		/*calendarbase_displayedMonth_binding*/ ctx[12](value);
	}

	let calendarbase_props = {
		sources: /*sources*/ ctx[1],
		today: /*today*/ ctx[9],
		onHoverDay: /*onHoverDay*/ ctx[2],
		onHoverWeek: /*onHoverWeek*/ ctx[3],
		onContextMenuDay: /*onContextMenuDay*/ ctx[6],
		onContextMenuWeek: /*onContextMenuWeek*/ ctx[7],
		onClickDay: /*onClickDay*/ ctx[4],
		onClickWeek: /*onClickWeek*/ ctx[5],
		localeData: /*today*/ ctx[9].localeData(),
		selectedId: /*$activeFile*/ ctx[10],
		showWeekNums: /*$settings*/ ctx[8].showWeeklyNote
	};

	if (/*displayedMonth*/ ctx[0] !== void 0) {
		calendarbase_props.displayedMonth = /*displayedMonth*/ ctx[0];
	}

	calendarbase = new Calendar$1({ props: calendarbase_props });
	binding_callbacks$1.push(() => bind(calendarbase, "displayedMonth", calendarbase_displayedMonth_binding));

	return {
		c() {
			create_component$1(calendarbase.$$.fragment);
		},
		m(target, anchor) {
			mount_component$1(calendarbase, target, anchor);
			current = true;
		},
		p(ctx, [dirty]) {
			const calendarbase_changes = {};
			if (dirty & /*sources*/ 2) calendarbase_changes.sources = /*sources*/ ctx[1];
			if (dirty & /*today*/ 512) calendarbase_changes.today = /*today*/ ctx[9];
			if (dirty & /*onHoverDay*/ 4) calendarbase_changes.onHoverDay = /*onHoverDay*/ ctx[2];
			if (dirty & /*onHoverWeek*/ 8) calendarbase_changes.onHoverWeek = /*onHoverWeek*/ ctx[3];
			if (dirty & /*onContextMenuDay*/ 64) calendarbase_changes.onContextMenuDay = /*onContextMenuDay*/ ctx[6];
			if (dirty & /*onContextMenuWeek*/ 128) calendarbase_changes.onContextMenuWeek = /*onContextMenuWeek*/ ctx[7];
			if (dirty & /*onClickDay*/ 16) calendarbase_changes.onClickDay = /*onClickDay*/ ctx[4];
			if (dirty & /*onClickWeek*/ 32) calendarbase_changes.onClickWeek = /*onClickWeek*/ ctx[5];
			if (dirty & /*today*/ 512) calendarbase_changes.localeData = /*today*/ ctx[9].localeData();
			if (dirty & /*$activeFile*/ 1024) calendarbase_changes.selectedId = /*$activeFile*/ ctx[10];
			if (dirty & /*$settings*/ 256) calendarbase_changes.showWeekNums = /*$settings*/ ctx[8].showWeeklyNote;

			if (!updating_displayedMonth && dirty & /*displayedMonth*/ 1) {
				updating_displayedMonth = true;
				calendarbase_changes.displayedMonth = /*displayedMonth*/ ctx[0];
				add_flush_callback(() => updating_displayedMonth = false);
			}

			calendarbase.$set(calendarbase_changes);
		},
		i(local) {
			if (current) return;
			transition_in$1(calendarbase.$$.fragment, local);
			current = true;
		},
		o(local) {
			transition_out$1(calendarbase.$$.fragment, local);
			current = false;
		},
		d(detaching) {
			destroy_component$1(calendarbase, detaching);
		}
	};
}

function instance($$self, $$props, $$invalidate) {
	let $settings;
	let $activeFile;
	component_subscribe($$self, settings, $$value => $$invalidate(8, $settings = $$value));
	component_subscribe($$self, activeFile, $$value => $$invalidate(10, $activeFile = $$value));
	
	
	let today;
	let { displayedMonth = today } = $$props;
	let { sources } = $$props;
	let { onHoverDay } = $$props;
	let { onHoverWeek } = $$props;
	let { onClickDay } = $$props;
	let { onClickWeek } = $$props;
	let { onContextMenuDay } = $$props;
	let { onContextMenuWeek } = $$props;

	function tick() {
		$$invalidate(9, today = window.moment());
	}

	function getToday(settings) {
		configureGlobalMomentLocale(settings.localeOverride, settings.weekStart);
		dailyNotes.reindex();
		weeklyNotes.reindex();
		return window.moment();
	}

	// 1 minute heartbeat to keep `today` reflecting the current day
	let heartbeat = setInterval(
		() => {
			tick();
			const isViewingCurrentMonth = displayedMonth.isSame(today, "day");

			if (isViewingCurrentMonth) {
				// if it's midnight on the last day of the month, this will
				// update the display to show the new month.
				$$invalidate(0, displayedMonth = today);
			}
		},
		1000 * 60
	);

	onDestroy(() => {
		clearInterval(heartbeat);
	});

	function calendarbase_displayedMonth_binding(value) {
		displayedMonth = value;
		$$invalidate(0, displayedMonth);
	}

	$$self.$$set = $$props => {
		if ("displayedMonth" in $$props) $$invalidate(0, displayedMonth = $$props.displayedMonth);
		if ("sources" in $$props) $$invalidate(1, sources = $$props.sources);
		if ("onHoverDay" in $$props) $$invalidate(2, onHoverDay = $$props.onHoverDay);
		if ("onHoverWeek" in $$props) $$invalidate(3, onHoverWeek = $$props.onHoverWeek);
		if ("onClickDay" in $$props) $$invalidate(4, onClickDay = $$props.onClickDay);
		if ("onClickWeek" in $$props) $$invalidate(5, onClickWeek = $$props.onClickWeek);
		if ("onContextMenuDay" in $$props) $$invalidate(6, onContextMenuDay = $$props.onContextMenuDay);
		if ("onContextMenuWeek" in $$props) $$invalidate(7, onContextMenuWeek = $$props.onContextMenuWeek);
	};

	$$self.$$.update = () => {
		if ($$self.$$.dirty & /*$settings*/ 256) {
			$$invalidate(9, today = getToday($settings));
		}
	};

	return [
		displayedMonth,
		sources,
		onHoverDay,
		onHoverWeek,
		onClickDay,
		onClickWeek,
		onContextMenuDay,
		onContextMenuWeek,
		$settings,
		today,
		$activeFile,
		tick,
		calendarbase_displayedMonth_binding
	];
}

class Calendar extends SvelteComponent$1 {
	constructor(options) {
		super();

		init$1(this, options, instance, create_fragment, not_equal$1, {
			displayedMonth: 0,
			sources: 1,
			onHoverDay: 2,
			onHoverWeek: 3,
			onClickDay: 4,
			onClickWeek: 5,
			onContextMenuDay: 6,
			onContextMenuWeek: 7,
			tick: 11
		});
	}

	get tick() {
		return this.$$.ctx[11];
	}
}

function showFileMenu(app, file, position) {
    const fileMenu = new obsidian.Menu(app);
    fileMenu.addItem((item) => item
        .setTitle("Delete")
        .setIcon("trash")
        .onClick(() => {
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        app.fileManager.promptForFileDeletion(file);
    }));
    app.workspace.trigger("file-menu", fileMenu, file, "calendar-context-menu", null);
    fileMenu.showAtPosition(position);
}

const getStreakClasses = (file) => {
    return classList({
        "has-note": !!file,
    });
};
const streakSource = {
    getDailyMetadata: async (date) => {
        const file = getDailyNote_1(date, get_store_value(dailyNotes));
        return {
            classes: getStreakClasses(file),
            dots: [],
        };
    },
    getWeeklyMetadata: async (date) => {
        const file = getWeeklyNote_1(date, get_store_value(weeklyNotes));
        return {
            classes: getStreakClasses(file),
            dots: [],
        };
    },
};

function getNoteTags(note) {
    var _a;
    if (!note) {
        return [];
    }
    const { metadataCache } = window.app;
    const frontmatter = (_a = metadataCache.getFileCache(note)) === null || _a === void 0 ? void 0 : _a.frontmatter;
    const tags = [];
    if (frontmatter) {
        const frontmatterTags = obsidian.parseFrontMatterTags(frontmatter) || [];
        tags.push(...frontmatterTags);
    }
    // strip the '#' at the beginning
    return tags.map((tag) => tag.substring(1));
}
function getFormattedTagAttributes(note) {
    const attrs = {};
    const tags = getNoteTags(note);
    const [emojiTags, nonEmojiTags] = partition(tags, (tag) => /(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|\ud83c[\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|\ud83c[\ude32-\ude3a]|\ud83c[\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/.test(tag));
    if (nonEmojiTags) {
        attrs["data-tags"] = nonEmojiTags.join(" ");
    }
    if (emojiTags) {
        attrs["data-emoji-tag"] = emojiTags[0];
    }
    return attrs;
}
const customTagsSource = {
    getDailyMetadata: async (date) => {
        const file = getDailyNote_1(date, get_store_value(dailyNotes));
        return {
            dataAttributes: getFormattedTagAttributes(file),
            dots: [],
        };
    },
    getWeeklyMetadata: async (date) => {
        const file = getWeeklyNote_1(date, get_store_value(weeklyNotes));
        return {
            dataAttributes: getFormattedTagAttributes(file),
            dots: [],
        };
    },
};

async function getNumberOfRemainingTasks(note) {
    if (!note) {
        return 0;
    }
    const { vault } = window.app;
    const fileContents = await vault.cachedRead(note);
    return (fileContents.match(/(-|\*) \[ \]/g) || []).length;
}
async function getDotsForDailyNote$1(dailyNote) {
    if (!dailyNote) {
        return [];
    }
    const numTasks = await getNumberOfRemainingTasks(dailyNote);
    const dots = [];
    if (numTasks) {
        dots.push({
            className: "task",
            color: "default",
            isFilled: false,
        });
    }
    return dots;
}
const tasksSource = {
    getDailyMetadata: async (date) => {
        const file = getDailyNote_1(date, get_store_value(dailyNotes));
        const dots = await getDotsForDailyNote$1(file);
        return {
            dots,
        };
    },
    getWeeklyMetadata: async (date) => {
        const file = getWeeklyNote_1(date, get_store_value(weeklyNotes));
        const dots = await getDotsForDailyNote$1(file);
        return {
            dots,
        };
    },
};

const NUM_MAX_DOTS = 5;
async function getWordLengthAsDots(note) {
    const { wordsPerDot = DEFAULT_WORDS_PER_DOT } = get_store_value(settings);
    if (!note || wordsPerDot <= 0) {
        return 0;
    }
    const fileContents = await window.app.vault.cachedRead(note);
    const wordCount = getWordCount(fileContents);
    const numDots = wordCount / wordsPerDot;
    return clamp(Math.floor(numDots), 1, NUM_MAX_DOTS);
}
async function getDotsForDailyNote(dailyNote) {
    if (!dailyNote) {
        return [];
    }
    const numSolidDots = await getWordLengthAsDots(dailyNote);
    const dots = [];
    for (let i = 0; i < numSolidDots; i++) {
        dots.push({
            color: "default",
            isFilled: true,
        });
    }
    return dots;
}
const wordCountSource = {
    getDailyMetadata: async (date) => {
        const file = getDailyNote_1(date, get_store_value(dailyNotes));
        const dots = await getDotsForDailyNote(file);
        return {
            dots,
        };
    },
    getWeeklyMetadata: async (date) => {
        const file = getWeeklyNote_1(date, get_store_value(weeklyNotes));
        const dots = await getDotsForDailyNote(file);
        return {
            dots,
        };
    },
};

class CalendarView extends obsidian.ItemView {
    constructor(leaf) {
        super(leaf);
        this.openOrCreateDailyNote = this.openOrCreateDailyNote.bind(this);
        this.openOrCreateWeeklyNote = this.openOrCreateWeeklyNote.bind(this);
        this.onNoteSettingsUpdate = this.onNoteSettingsUpdate.bind(this);
        this.onFileCreated = this.onFileCreated.bind(this);
        this.onFileDeleted = this.onFileDeleted.bind(this);
        this.onFileModified = this.onFileModified.bind(this);
        this.onFileOpen = this.onFileOpen.bind(this);
        this.onHoverDay = this.onHoverDay.bind(this);
        this.onHoverWeek = this.onHoverWeek.bind(this);
        this.onContextMenuDay = this.onContextMenuDay.bind(this);
        this.onContextMenuWeek = this.onContextMenuWeek.bind(this);
        this.registerEvent(
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        this.app.workspace.on("periodic-notes:settings-updated", this.onNoteSettingsUpdate));
        this.registerEvent(this.app.vault.on("create", this.onFileCreated));
        this.registerEvent(this.app.vault.on("delete", this.onFileDeleted));
        this.registerEvent(this.app.vault.on("modify", this.onFileModified));
        this.registerEvent(this.app.workspace.on("file-open", this.onFileOpen));
        this.settings = null;
        settings.subscribe((val) => {
            this.settings = val;
            // Refresh the calendar if settings change
            if (this.calendar) {
                this.calendar.tick();
            }
        });
    }
    getViewType() {
        return VIEW_TYPE_CALENDAR;
    }
    getDisplayText() {
        return "Calendar";
    }
    getIcon() {
        return "calendar-with-checkmark";
    }
    onClose() {
        if (this.calendar) {
            this.calendar.$destroy();
        }
        return Promise.resolve();
    }
    async onOpen() {
        // Integration point: external plugins can listen for `calendar:open`
        // to feed in additional sources.
        const sources = [
            customTagsSource,
            streakSource,
            wordCountSource,
            tasksSource,
        ];
        this.app.workspace.trigger(TRIGGER_ON_OPEN, sources);
        this.calendar = new Calendar({
            // eslint-disable-next-line @typescript-eslint/no-explicit-any
            target: this.contentEl,
            props: {
                onClickDay: this.openOrCreateDailyNote,
                onClickWeek: this.openOrCreateWeeklyNote,
                onHoverDay: this.onHoverDay,
                onHoverWeek: this.onHoverWeek,
                onContextMenuDay: this.onContextMenuDay,
                onContextMenuWeek: this.onContextMenuWeek,
                sources,
            },
        });
    }
    onHoverDay(date, targetEl, isMetaPressed) {
        if (!isMetaPressed) {
            return;
        }
        const { format } = getDailyNoteSettings_1();
        const note = getDailyNote_1(date, get_store_value(dailyNotes));
        this.app.workspace.trigger("link-hover", this, targetEl, date.format(format), note === null || note === void 0 ? void 0 : note.path);
    }
    onHoverWeek(date, targetEl, isMetaPressed) {
        if (!isMetaPressed) {
            return;
        }
        const note = getWeeklyNote_1(date, get_store_value(weeklyNotes));
        const { format } = getWeeklyNoteSettings_1();
        this.app.workspace.trigger("link-hover", this, targetEl, date.format(format), note === null || note === void 0 ? void 0 : note.path);
    }
    onContextMenuDay(date, event) {
        const note = getDailyNote_1(date, get_store_value(dailyNotes));
        if (!note) {
            // If no file exists for a given day, show nothing.
            return;
        }
        showFileMenu(this.app, note, {
            x: event.pageX,
            y: event.pageY,
        });
    }
    onContextMenuWeek(date, event) {
        const note = getWeeklyNote_1(date, get_store_value(weeklyNotes));
        if (!note) {
            // If no file exists for a given day, show nothing.
            return;
        }
        showFileMenu(this.app, note, {
            x: event.pageX,
            y: event.pageY,
        });
    }
    onNoteSettingsUpdate() {
        dailyNotes.reindex();
        weeklyNotes.reindex();
        this.updateActiveFile();
    }
    async onFileDeleted(file) {
        if (getDateFromFile_1(file, "day")) {
            dailyNotes.reindex();
            this.updateActiveFile();
        }
        if (getDateFromFile_1(file, "week")) {
            weeklyNotes.reindex();
            this.updateActiveFile();
        }
    }
    async onFileModified(file) {
        const date = getDateFromFile_1(file, "day") || getDateFromFile_1(file, "week");
        if (date && this.calendar) {
            this.calendar.tick();
        }
    }
    onFileCreated(file) {
        if (this.app.workspace.layoutReady && this.calendar) {
            if (getDateFromFile_1(file, "day")) {
                dailyNotes.reindex();
                this.calendar.tick();
            }
            if (getDateFromFile_1(file, "week")) {
                weeklyNotes.reindex();
                this.calendar.tick();
            }
        }
    }
    onFileOpen(_file) {
        if (this.app.workspace.layoutReady) {
            this.updateActiveFile();
        }
    }
    updateActiveFile() {
        const { view } = this.app.workspace.activeLeaf;
        let file = null;
        if (view instanceof obsidian.FileView) {
            file = view.file;
        }
        activeFile.setFile(file);
        if (this.calendar) {
            this.calendar.tick();
        }
    }
    revealActiveNote() {
        const { moment } = window;
        const { activeLeaf } = this.app.workspace;
        if (activeLeaf.view instanceof obsidian.FileView) {
            // Check to see if the active note is a daily-note
            let date = getDateFromFile_1(activeLeaf.view.file, "day");
            if (date) {
                this.calendar.$set({ displayedMonth: date });
                return;
            }
            // Check to see if the active note is a weekly-note
            const { format } = getWeeklyNoteSettings_1();
            date = moment(activeLeaf.view.file.basename, format, true);
            if (date.isValid()) {
                this.calendar.$set({ displayedMonth: date });
                return;
            }
        }
    }
    async openOrCreateWeeklyNote(date, inNewSplit) {
        const { workspace } = this.app;
        const startOfWeek = date.clone().startOf("week");
        const existingFile = getWeeklyNote_1(date, get_store_value(weeklyNotes));
        if (!existingFile) {
            // File doesn't exist
            tryToCreateWeeklyNote(startOfWeek, inNewSplit, this.settings, (file) => {
                activeFile.setFile(file);
            });
            return;
        }
        const leaf = inNewSplit
            ? workspace.splitActiveLeaf()
            : workspace.getUnpinnedLeaf();
        await leaf.openFile(existingFile);
        activeFile.setFile(existingFile);
    }
    async openOrCreateDailyNote(date, inNewSplit) {
        const { workspace } = this.app;
        const existingFile = getDailyNote_1(date, get_store_value(dailyNotes));
        if (!existingFile) {
            // File doesn't exist
            tryToCreateDailyNote(date, inNewSplit, this.settings, (dailyNote) => {
                activeFile.setFile(dailyNote);
            });
            return;
        }
        // eslint-disable-next-line @typescript-eslint/no-explicit-any
        const mode = this.app.vault.getConfig("defaultViewMode");
        const leaf = inNewSplit
            ? workspace.splitActiveLeaf()
            : workspace.getUnpinnedLeaf();
        await leaf.openFile(existingFile, { mode });
        activeFile.setFile(existingFile);
    }
}

class CalendarPlugin extends obsidian.Plugin {
    onunload() {
        this.app.workspace
            .getLeavesOfType(VIEW_TYPE_CALENDAR)
            .forEach((leaf) => leaf.detach());
    }
    async onload() {
        this.register(settings.subscribe((value) => {
            this.options = value;
        }));
        this.registerView(VIEW_TYPE_CALENDAR, (leaf) => (this.view = new CalendarView(leaf)));
        this.addCommand({
            id: "show-calendar-view",
            name: "Open view",
            checkCallback: (checking) => {
                if (checking) {
                    return (this.app.workspace.getLeavesOfType(VIEW_TYPE_CALENDAR).length === 0);
                }
                this.initLeaf();
            },
        });
        this.addCommand({
            id: "open-weekly-note",
            name: "Open Weekly Note",
            checkCallback: (checking) => {
                if (checking) {
                    return !appHasPeriodicNotesPluginLoaded();
                }
                this.view.openOrCreateWeeklyNote(window.moment(), false);
            },
        });
        this.addCommand({
            id: "reveal-active-note",
            name: "Reveal active note",
            callback: () => this.view.revealActiveNote(),
        });
        await this.loadOptions();
        this.addSettingTab(new CalendarSettingsTab(this.app, this));
        if (this.app.workspace.layoutReady) {
            this.initLeaf();
        }
        else {
            this.registerEvent(this.app.workspace.on("layout-ready", this.initLeaf.bind(this)));
        }
    }
    initLeaf() {
        if (this.app.workspace.getLeavesOfType(VIEW_TYPE_CALENDAR).length) {
            return;
        }
        this.app.workspace.getRightLeaf(false).setViewState({
            type: VIEW_TYPE_CALENDAR,
        });
    }
    async loadOptions() {
        const options = await this.loadData();
        settings.update((old) => {
            return Object.assign(Object.assign({}, old), (options || {}));
        });
        await this.saveData(this.options);
    }
    async writeOptions(changeOpts) {
        settings.update((old) => (Object.assign(Object.assign({}, old), changeOpts(old))));
        await this.saveData(this.options);
    }
}

module.exports = CalendarPlugin;


================================================
FILE: .obsidian/plugins/calendar/manifest.json
================================================
{
  "id": "calendar",
  "name": "Calendar",
  "description": "Calendar view of your daily notes",
  "version": "1.5.10",
  "author": "Liam Cain",
  "authorUrl": "https://github.com/liamcain/",
  "isDesktopOnly": false,
  "minAppVersion": "0.9.11"
}


================================================
FILE: .obsidian/plugins/dataview/main.js
================================================
'use strict';

var obsidian = require('obsidian');

/*! *****************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */

function __awaiter(thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
}

var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};

var luxon = {};

Object.defineProperty(luxon, '__esModule', { value: true });

function _defineProperties(target, props) {
  for (var i = 0; i < props.length; i++) {
    var descriptor = props[i];
    descriptor.enumerable = descriptor.enumerable || false;
    descriptor.configurable = true;
    if ("value" in descriptor) descriptor.writable = true;
    Object.defineProperty(target, descriptor.key, descriptor);
  }
}

function _createClass(Constructor, protoProps, staticProps) {
  if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  if (staticProps) _defineProperties(Constructor, staticProps);
  return Constructor;
}

function _extends() {
  _extends = Object.assign || function (target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = arguments[i];

      for (var key in source) {
        if (Object.prototype.hasOwnProperty.call(source, key)) {
          target[key] = source[key];
        }
      }
    }

    return target;
  };

  return _extends.apply(this, arguments);
}

function _inheritsLoose(subClass, superClass) {
  subClass.prototype = Object.create(superClass.prototype);
  subClass.prototype.constructor = subClass;

  _setPrototypeOf(subClass, superClass);
}

function _getPrototypeOf(o) {
  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
    return o.__proto__ || Object.getPrototypeOf(o);
  };
  return _getPrototypeOf(o);
}

function _setPrototypeOf(o, p) {
  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
    o.__proto__ = p;
    return o;
  };

  return _setPrototypeOf(o, p);
}

function _isNativeReflectConstruct() {
  if (typeof Reflect === "undefined" || !Reflect.construct) return false;
  if (Reflect.construct.sham) return false;
  if (typeof Proxy === "function") return true;

  try {
    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
    return true;
  } catch (e) {
    return false;
  }
}

function _construct(Parent, args, Class) {
  if (_isNativeReflectConstruct()) {
    _construct = Reflect.construct;
  } else {
    _construct = function _construct(Parent, args, Class) {
      var a = [null];
      a.push.apply(a, args);
      var Constructor = Function.bind.apply(Parent, a);
      var instance = new Constructor();
      if (Class) _setPrototypeOf(instance, Class.prototype);
      return instance;
    };
  }

  return _construct.apply(null, arguments);
}

function _isNativeFunction(fn) {
  return Function.toString.call(fn).indexOf("[native code]") !== -1;
}

function _wrapNativeSuper(Class) {
  var _cache = typeof Map === "function" ? new Map() : undefined;

  _wrapNativeSuper = function _wrapNativeSuper(Class) {
    if (Class === null || !_isNativeFunction(Class)) return Class;

    if (typeof Class !== "function") {
      throw new TypeError("Super expression must either be null or a function");
    }

    if (typeof _cache !== "undefined") {
      if (_cache.has(Class)) return _cache.get(Class);

      _cache.set(Class, Wrapper);
    }

    function Wrapper() {
      return _construct(Class, arguments, _getPrototypeOf(this).constructor);
    }

    Wrapper.prototype = Object.create(Class.prototype, {
      constructor: {
        value: Wrapper,
        enumerable: false,
        writable: true,
        configurable: true
      }
    });
    return _setPrototypeOf(Wrapper, Class);
  };

  return _wrapNativeSuper(Class);
}

function _objectWithoutPropertiesLoose(source, excluded) {
  if (source == null) return {};
  var target = {};
  var sourceKeys = Object.keys(source);
  var key, i;

  for (i = 0; i < sourceKeys.length; i++) {
    key = sourceKeys[i];
    if (excluded.indexOf(key) >= 0) continue;
    target[key] = source[key];
  }

  return target;
}

function _unsupportedIterableToArray(o, minLen) {
  if (!o) return;
  if (typeof o === "string") return _arrayLikeToArray(o, minLen);
  var n = Object.prototype.toString.call(o).slice(8, -1);
  if (n === "Object" && o.constructor) n = o.constructor.name;
  if (n === "Map" || n === "Set") return Array.from(o);
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
}

function _arrayLikeToArray(arr, len) {
  if (len == null || len > arr.length) len = arr.length;

  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];

  return arr2;
}

function _createForOfIteratorHelperLoose(o, allowArrayLike) {
  var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
  if (it) return (it = it.call(o)).next.bind(it);

  if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
    if (it) o = it;
    var i = 0;
    return function () {
      if (i >= o.length) return {
        done: true
      };
      return {
        done: false,
        value: o[i++]
      };
    };
  }

  throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}

// these aren't really private, but nor are they really useful to document

/**
 * @private
 */
var LuxonError = /*#__PURE__*/function (_Error) {
  _inheritsLoose(LuxonError, _Error);

  function LuxonError() {
    return _Error.apply(this, arguments) || this;
  }

  return LuxonError;
}( /*#__PURE__*/_wrapNativeSuper(Error));
/**
 * @private
 */


var InvalidDateTimeError = /*#__PURE__*/function (_LuxonError) {
  _inheritsLoose(InvalidDateTimeError, _LuxonError);

  function InvalidDateTimeError(reason) {
    return _LuxonError.call(this, "Invalid DateTime: " + reason.toMessage()) || this;
  }

  return InvalidDateTimeError;
}(LuxonError);
/**
 * @private
 */

var InvalidIntervalError = /*#__PURE__*/function (_LuxonError2) {
  _inheritsLoose(InvalidIntervalError, _LuxonError2);

  function InvalidIntervalError(reason) {
    return _LuxonError2.call(this, "Invalid Interval: " + reason.toMessage()) || this;
  }

  return InvalidIntervalError;
}(LuxonError);
/**
 * @private
 */

var InvalidDurationError = /*#__PURE__*/function (_LuxonError3) {
  _inheritsLoose(InvalidDurationError, _LuxonError3);

  function InvalidDurationError(reason) {
    return _LuxonError3.call(this, "Invalid Duration: " + reason.toMessage()) || this;
  }

  return InvalidDurationError;
}(LuxonError);
/**
 * @private
 */

var ConflictingSpecificationError = /*#__PURE__*/function (_LuxonError4) {
  _inheritsLoose(ConflictingSpecificationError, _LuxonError4);

  function ConflictingSpecificationError() {
    return _LuxonError4.apply(this, arguments) || this;
  }

  return ConflictingSpecificationError;
}(LuxonError);
/**
 * @private
 */

var InvalidUnitError = /*#__PURE__*/function (_LuxonError5) {
  _inheritsLoose(InvalidUnitError, _LuxonError5);

  function InvalidUnitError(unit) {
    return _LuxonError5.call(this, "Invalid unit " + unit) || this;
  }

  return InvalidUnitError;
}(LuxonError);
/**
 * @private
 */

var InvalidArgumentError = /*#__PURE__*/function (_LuxonError6) {
  _inheritsLoose(InvalidArgumentError, _LuxonError6);

  function InvalidArgumentError() {
    return _LuxonError6.apply(this, arguments) || this;
  }

  return InvalidArgumentError;
}(LuxonError);
/**
 * @private
 */

var ZoneIsAbstractError = /*#__PURE__*/function (_LuxonError7) {
  _inheritsLoose(ZoneIsAbstractError, _LuxonError7);

  function ZoneIsAbstractError() {
    return _LuxonError7.call(this, "Zone is an abstract class") || this;
  }

  return ZoneIsAbstractError;
}(LuxonError);

/**
 * @private
 */
var n = "numeric",
    s = "short",
    l = "long";
var DATE_SHORT = {
  year: n,
  month: n,
  day: n
};
var DATE_MED = {
  year: n,
  month: s,
  day: n
};
var DATE_MED_WITH_WEEKDAY = {
  year: n,
  month: s,
  day: n,
  weekday: s
};
var DATE_FULL = {
  year: n,
  month: l,
  day: n
};
var DATE_HUGE = {
  year: n,
  month: l,
  day: n,
  weekday: l
};
var TIME_SIMPLE = {
  hour: n,
  minute: n
};
var TIME_WITH_SECONDS = {
  hour: n,
  minute: n,
  second: n
};
var TIME_WITH_SHORT_OFFSET = {
  hour: n,
  minute: n,
  second: n,
  timeZoneName: s
};
var TIME_WITH_LONG_OFFSET = {
  hour: n,
  minute: n,
  second: n,
  timeZoneName: l
};
var TIME_24_SIMPLE = {
  hour: n,
  minute: n,
  hourCycle: "h23"
};
var TIME_24_WITH_SECONDS = {
  hour: n,
  minute: n,
  second: n,
  hourCycle: "h23"
};
var TIME_24_WITH_SHORT_OFFSET = {
  hour: n,
  minute: n,
  second: n,
  hourCycle: "h23",
  timeZoneName: s
};
var TIME_24_WITH_LONG_OFFSET = {
  hour: n,
  minute: n,
  second: n,
  hourCycle: "h23",
  timeZoneName: l
};
var DATETIME_SHORT = {
  year: n,
  month: n,
  day: n,
  hour: n,
  minute: n
};
var DATETIME_SHORT_WITH_SECONDS = {
  year: n,
  month: n,
  day: n,
  hour: n,
  minute: n,
  second: n
};
var DATETIME_MED = {
  year: n,
  month: s,
  day: n,
  hour: n,
  minute: n
};
var DATETIME_MED_WITH_SECONDS = {
  year: n,
  month: s,
  day: n,
  hour: n,
  minute: n,
  second: n
};
var DATETIME_MED_WITH_WEEKDAY = {
  year: n,
  month: s,
  day: n,
  weekday: s,
  hour: n,
  minute: n
};
var DATETIME_FULL = {
  year: n,
  month: l,
  day: n,
  hour: n,
  minute: n,
  timeZoneName: s
};
var DATETIME_FULL_WITH_SECONDS = {
  year: n,
  month: l,
  day: n,
  hour: n,
  minute: n,
  second: n,
  timeZoneName: s
};
var DATETIME_HUGE = {
  year: n,
  month: l,
  day: n,
  weekday: l,
  hour: n,
  minute: n,
  timeZoneName: l
};
var DATETIME_HUGE_WITH_SECONDS = {
  year: n,
  month: l,
  day: n,
  weekday: l,
  hour: n,
  minute: n,
  second: n,
  timeZoneName: l
};

/**
 * @private
 */
// TYPES

function isUndefined(o) {
  return typeof o === "undefined";
}
function isNumber(o) {
  return typeof o === "number";
}
function isInteger(o) {
  return typeof o === "number" && o % 1 === 0;
}
function isString(o) {
  return typeof o === "string";
}
function isDate(o) {
  return Object.prototype.toString.call(o) === "[object Date]";
} // CAPABILITIES

function hasRelative() {
  try {
    return typeof Intl !== "undefined" && !!Intl.RelativeTimeFormat;
  } catch (e) {
    return false;
  }
} // OBJECTS AND ARRAYS

function maybeArray(thing) {
  return Array.isArray(thing) ? thing : [thing];
}
function bestBy(arr, by, compare) {
  if (arr.length === 0) {
    return undefined;
  }

  return arr.reduce(function (best, next) {
    var pair = [by(next), next];

    if (!best) {
      return pair;
    } else if (compare(best[0], pair[0]) === best[0]) {
      return best;
    } else {
      return pair;
    }
  }, null)[1];
}
function pick(obj, keys) {
  return keys.reduce(function (a, k) {
    a[k] = obj[k];
    return a;
  }, {});
}
function hasOwnProperty(obj, prop) {
  return Object.prototype.hasOwnProperty.call(obj, prop);
} // NUMBERS AND STRINGS

function integerBetween(thing, bottom, top) {
  return isInteger(thing) && thing >= bottom && thing <= top;
} // x % n but takes the sign of n instead of x

function floorMod(x, n) {
  return x - n * Math.floor(x / n);
}
function padStart(input, n) {
  if (n === void 0) {
    n = 2;
  }

  var minus = input < 0 ? "-" : "";
  var target = minus ? input * -1 : input;
  var result;

  if (target.toString().length < n) {
    result = ("0".repeat(n) + target).slice(-n);
  } else {
    result = target.toString();
  }

  return "" + minus + result;
}
function parseInteger(string) {
  if (isUndefined(string) || string === null || string === "") {
    return undefined;
  } else {
    return parseInt(string, 10);
  }
}
function parseMillis(fraction) {
  // Return undefined (instead of 0) in these cases, where fraction is not set
  if (isUndefined(fraction) || fraction === null || fraction === "") {
    return undefined;
  } else {
    var f = parseFloat("0." + fraction) * 1000;
    return Math.floor(f);
  }
}
function roundTo(number, digits, towardZero) {
  if (towardZero === void 0) {
    towardZero = false;
  }

  var factor = Math.pow(10, digits),
      rounder = towardZero ? Math.trunc : Math.round;
  return rounder(number * factor) / factor;
} // DATE BASICS

function isLeapYear(year) {
  return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
}
function daysInYear(year) {
  return isLeapYear(year) ? 366 : 365;
}
function daysInMonth(year, month) {
  var modMonth = floorMod(month - 1, 12) + 1,
      modYear = year + (month - modMonth) / 12;

  if (modMonth === 2) {
    return isLeapYear(modYear) ? 29 : 28;
  } else {
    return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];
  }
} // covert a calendar object to a local timestamp (epoch, but with the offset baked in)

function objToLocalTS(obj) {
  var d = Date.UTC(obj.year, obj.month - 1, obj.day, obj.hour, obj.minute, obj.second, obj.millisecond); // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that

  if (obj.year < 100 && obj.year >= 0) {
    d = new Date(d);
    d.setUTCFullYear(d.getUTCFullYear() - 1900);
  }

  return +d;
}
function weeksInWeekYear(weekYear) {
  var p1 = (weekYear + Math.floor(weekYear / 4) - Math.floor(weekYear / 100) + Math.floor(weekYear / 400)) % 7,
      last = weekYear - 1,
      p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;
  return p1 === 4 || p2 === 3 ? 53 : 52;
}
function untruncateYear(year) {
  if (year > 99) {
    return year;
  } else return year > 60 ? 1900 + year : 2000 + year;
} // PARSING

function parseZoneInfo(ts, offsetFormat, locale, timeZone) {
  if (timeZone === void 0) {
    timeZone = null;
  }

  var date = new Date(ts),
      intlOpts = {
    hourCycle: "h23",
    year: "numeric",
    month: "2-digit",
    day: "2-digit",
    hour: "2-digit",
    minute: "2-digit"
  };

  if (timeZone) {
    intlOpts.timeZone = timeZone;
  }

  var modified = _extends({
    timeZoneName: offsetFormat
  }, intlOpts);

  var parsed = new Intl.DateTimeFormat(locale, modified).formatToParts(date).find(function (m) {
    return m.type.toLowerCase() === "timezonename";
  });
  return parsed ? parsed.value : null;
} // signedOffset('-5', '30') -> -330

function signedOffset(offHourStr, offMinuteStr) {
  var offHour = parseInt(offHourStr, 10); // don't || this because we want to preserve -0

  if (Number.isNaN(offHour)) {
    offHour = 0;
  }

  var offMin = parseInt(offMinuteStr, 10) || 0,
      offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;
  return offHour * 60 + offMinSigned;
} // COERCION

function asNumber(value) {
  var numericValue = Number(value);
  if (typeof value === "boolean" || value === "" || Number.isNaN(numericValue)) throw new InvalidArgumentError("Invalid unit value " + value);
  return numericValue;
}
function normalizeObject(obj, normalizer) {
  var normalized = {};

  for (var u in obj) {
    if (hasOwnProperty(obj, u)) {
      var v = obj[u];
      if (v === undefined || v === null) continue;
      normalized[normalizer(u)] = asNumber(v);
    }
  }

  return normalized;
}
function formatOffset(offset, format) {
  var hours = Math.trunc(Math.abs(offset / 60)),
      minutes = Math.trunc(Math.abs(offset % 60)),
      sign = offset >= 0 ? "+" : "-";

  switch (format) {
    case "short":
      return "" + sign + padStart(hours, 2) + ":" + padStart(minutes, 2);

    case "narrow":
      return "" + sign + hours + (minutes > 0 ? ":" + minutes : "");

    case "techie":
      return "" + sign + padStart(hours, 2) + padStart(minutes, 2);

    default:
      throw new RangeError("Value format " + format + " is out of range for property format");
  }
}
function timeObject(obj) {
  return pick(obj, ["hour", "minute", "second", "millisecond"]);
}
var ianaRegex = /[A-Za-z_+-]{1,256}(:?\/[A-Za-z_+-]{1,256}(\/[A-Za-z_+-]{1,256})?)?/;

/**
 * @private
 */


var monthsLong = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var monthsShort = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var monthsNarrow = ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"];
function months(length) {
  switch (length) {
    case "narrow":
      return [].concat(monthsNarrow);

    case "short":
      return [].concat(monthsShort);

    case "long":
      return [].concat(monthsLong);

    case "numeric":
      return ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"];

    case "2-digit":
      return ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"];

    default:
      return null;
  }
}
var weekdaysLong = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
var weekdaysShort = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
var weekdaysNarrow = ["M", "T", "W", "T", "F", "S", "S"];
function weekdays(length) {
  switch (length) {
    case "narrow":
      return [].concat(weekdaysNarrow);

    case "short":
      return [].concat(weekdaysShort);

    case "long":
      return [].concat(weekdaysLong);

    case "numeric":
      return ["1", "2", "3", "4", "5", "6", "7"];

    default:
      return null;
  }
}
var meridiems = ["AM", "PM"];
var erasLong = ["Before Christ", "Anno Domini"];
var erasShort = ["BC", "AD"];
var erasNarrow = ["B", "A"];
function eras(length) {
  switch (length) {
    case "narrow":
      return [].concat(erasNarrow);

    case "short":
      return [].concat(erasShort);

    case "long":
      return [].concat(erasLong);

    default:
      return null;
  }
}
function meridiemForDateTime(dt) {
  return meridiems[dt.hour < 12 ? 0 : 1];
}
function weekdayForDateTime(dt, length) {
  return weekdays(length)[dt.weekday - 1];
}
function monthForDateTime(dt, length) {
  return months(length)[dt.month - 1];
}
function eraForDateTime(dt, length) {
  return eras(length)[dt.year < 0 ? 0 : 1];
}
function formatRelativeTime(unit, count, numeric, narrow) {
  if (numeric === void 0) {
    numeric = "always";
  }

  if (narrow === void 0) {
    narrow = false;
  }

  var units = {
    years: ["year", "yr."],
    quarters: ["quarter", "qtr."],
    months: ["month", "mo."],
    weeks: ["week", "wk."],
    days: ["day", "day", "days"],
    hours: ["hour", "hr."],
    minutes: ["minute", "min."],
    seconds: ["second", "sec."]
  };
  var lastable = ["hours", "minutes", "seconds"].indexOf(unit) === -1;

  if (numeric === "auto" && lastable) {
    var isDay = unit === "days";

    switch (count) {
      case 1:
        return isDay ? "tomorrow" : "next " + units[unit][0];

      case -1:
        return isDay ? "yesterday" : "last " + units[unit][0];

      case 0:
        return isDay ? "today" : "this " + units[unit][0];

    }
  }

  var isInPast = Object.is(count, -0) || count < 0,
      fmtValue = Math.abs(count),
      singular = fmtValue === 1,
      lilUnits = units[unit],
      fmtUnit = narrow ? singular ? lilUnits[1] : lilUnits[2] || lilUnits[1] : singular ? units[unit][0] : unit;
  return isInPast ? fmtValue + " " + fmtUnit + " ago" : "in " + fmtValue + " " + fmtUnit;
}

function stringifyTokens(splits, tokenToString) {
  var s = "";

  for (var _iterator = _createForOfIteratorHelperLoose(splits), _step; !(_step = _iterator()).done;) {
    var token = _step.value;

    if (token.literal) {
      s += token.val;
    } else {
      s += tokenToString(token.val);
    }
  }

  return s;
}

var _macroTokenToFormatOpts = {
  D: DATE_SHORT,
  DD: DATE_MED,
  DDD: DATE_FULL,
  DDDD: DATE_HUGE,
  t: TIME_SIMPLE,
  tt: TIME_WITH_SECONDS,
  ttt: TIME_WITH_SHORT_OFFSET,
  tttt: TIME_WITH_LONG_OFFSET,
  T: TIME_24_SIMPLE,
  TT: TIME_24_WITH_SECONDS,
  TTT: TIME_24_WITH_SHORT_OFFSET,
  TTTT: TIME_24_WITH_LONG_OFFSET,
  f: DATETIME_SHORT,
  ff: DATETIME_MED,
  fff: DATETIME_FULL,
  ffff: DATETIME_HUGE,
  F: DATETIME_SHORT_WITH_SECONDS,
  FF: DATETIME_MED_WITH_SECONDS,
  FFF: DATETIME_FULL_WITH_SECONDS,
  FFFF: DATETIME_HUGE_WITH_SECONDS
};
/**
 * @private
 */

var Formatter = /*#__PURE__*/function () {
  Formatter.create = function create(locale, opts) {
    if (opts === void 0) {
      opts = {};
    }

    return new Formatter(locale, opts);
  };

  Formatter.parseFormat = function parseFormat(fmt) {
    var current = null,
        currentFull = "",
        bracketed = false;
    var splits = [];

    for (var i = 0; i < fmt.length; i++) {
      var c = fmt.charAt(i);

      if (c === "'") {
        if (currentFull.length > 0) {
          splits.push({
            literal: bracketed,
            val: currentFull
          });
        }

        current = null;
        currentFull = "";
        bracketed = !bracketed;
      } else if (bracketed) {
        currentFull += c;
      } else if (c === current) {
        currentFull += c;
      } else {
        if (currentFull.length > 0) {
          splits.push({
            literal: false,
            val: currentFull
          });
        }

        currentFull = c;
        current = c;
      }
    }

    if (currentFull.length > 0) {
      splits.push({
        literal: bracketed,
        val: currentFull
      });
    }

    return splits;
  };

  Formatter.macroTokenToFormatOpts = function macroTokenToFormatOpts(token) {
    return _macroTokenToFormatOpts[token];
  };

  function Formatter(locale, formatOpts) {
    this.opts = formatOpts;
    this.loc = locale;
    this.systemLoc = null;
  }

  var _proto = Formatter.prototype;

  _proto.formatWithSystemDefault = function formatWithSystemDefault(dt, opts) {
    if (this.systemLoc === null) {
      this.systemLoc = this.loc.redefaultToSystem();
    }

    var df = this.systemLoc.dtFormatter(dt, _extends({}, this.opts, opts));
    return df.format();
  };

  _proto.formatDateTime = function formatDateTime(dt, opts) {
    if (opts === void 0) {
      opts = {};
    }

    var df = this.loc.dtFormatter(dt, _extends({}, this.opts, opts));
    return df.format();
  };

  _proto.formatDateTimeParts = function formatDateTimeParts(dt, opts) {
    if (opts === void 0) {
      opts = {};
    }

    var df = this.loc.dtFormatter(dt, _extends({}, this.opts, opts));
    return df.formatToParts();
  };

  _proto.resolvedOptions = function resolvedOptions(dt, opts) {
    if (opts === void 0) {
      opts = {};
    }

    var df = this.loc.dtFormatter(dt, _extends({}, this.opts, opts));
    return df.resolvedOptions();
  };

  _proto.num = function num(n, p) {
    if (p === void 0) {
      p = 0;
    }

    // we get some perf out of doing this here, annoyingly
    if (this.opts.forceSimple) {
      return padStart(n, p);
    }

    var opts = _extends({}, this.opts);

    if (p > 0) {
      opts.padTo = p;
    }

    return this.loc.numberFormatter(opts).format(n);
  };

  _proto.formatDateTimeFromString = function formatDateTimeFromString(dt, fmt) {
    var _this = this;

    var knownEnglish = this.loc.listingMode() === "en",
        useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== "gregory",
        string = function string(opts, extract) {
      return _this.loc.extract(dt, opts, extract);
    },
        formatOffset = function formatOffset(opts) {
      if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {
        return "Z";
      }

      return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : "";
    },
        meridiem = function meridiem() {
      return knownEnglish ? meridiemForDateTime(dt) : string({
        hour: "numeric",
        hourCycle: "h12"
      }, "dayperiod");
    },
        month = function month(length, standalone) {
      return knownEnglish ? monthForDateTime(dt, length) : string(standalone ? {
        month: length
      } : {
        month: length,
        day: "numeric"
      }, "month");
    },
        weekday = function weekday(length, standalone) {
      return knownEnglish ? weekdayForDateTime(dt, length) : string(standalone ? {
        weekday: length
      } : {
        weekday: length,
        month: "long",
        day: "numeric"
      }, "weekday");
    },
        maybeMacro = function maybeMacro(token) {
      var formatOpts = Formatter.macroTokenToFormatOpts(token);

      if (formatOpts) {
        return _this.formatWithSystemDefault(dt, formatOpts);
      } else {
        return token;
      }
    },
        era = function era(length) {
      return knownEnglish ? eraForDateTime(dt, length) : string({
        era: length
      }, "era");
    },
        tokenToString = function tokenToString(token) {
      // Where possible: http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles
      switch (token) {
        // ms
        case "S":
          return _this.num(dt.millisecond);

        case "u": // falls through

        case "SSS":
          return _this.num(dt.millisecond, 3);
        // seconds

        case "s":
          return _this.num(dt.second);

        case "ss":
          return _this.num(dt.second, 2);
        // minutes

        case "m":
          return _this.num(dt.minute);

        case "mm":
          return _this.num(dt.minute, 2);
        // hours

        case "h":
          return _this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);

        case "hh":
          return _this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);

        case "H":
          return _this.num(dt.hour);

        case "HH":
          return _this.num(dt.hour, 2);
        // offset

        case "Z":
          // like +6
          return formatOffset({
            format: "narrow",
            allowZ: _this.opts.allowZ
          });

        case "ZZ":
          // like +06:00
          return formatOffset({
            format: "short",
            allowZ: _this.opts.allowZ
          });

        case "ZZZ":
          // like +0600
          return formatOffset({
            format: "techie",
            allowZ: _this.opts.allowZ
          });

        case "ZZZZ":
          // like EST
          return dt.zone.offsetName(dt.ts, {
            format: "short",
            locale: _this.loc.locale
          });

        case "ZZZZZ":
          // like Eastern Standard Time
          return dt.zone.offsetName(dt.ts, {
            format: "long",
            locale: _this.loc.locale
          });
        // zone

        case "z":
          // like America/New_York
          return dt.zoneName;
        // meridiems

        case "a":
          return meridiem();
        // dates

        case "d":
          return useDateTimeFormatter ? string({
            day: "numeric"
          }, "day") : _this.num(dt.day);

        case "dd":
          return useDateTimeFormatter ? string({
            day: "2-digit"
          }, "day") : _this.num(dt.day, 2);
        // weekdays - standalone

        case "c":
          // like 1
          return _this.num(dt.weekday);

        case "ccc":
          // like 'Tues'
          return weekday("short", true);

        case "cccc":
          // like 'Tuesday'
          return weekday("long", true);

        case "ccccc":
          // like 'T'
          return weekday("narrow", true);
        // weekdays - format

        case "E":
          // like 1
          return _this.num(dt.weekday);

        case "EEE":
          // like 'Tues'
          return weekday("short", false);

        case "EEEE":
          // like 'Tuesday'
          return weekday("long", false);

        case "EEEEE":
          // like 'T'
          return weekday("narrow", false);
        // months - standalone

        case "L":
          // like 1
          return useDateTimeFormatter ? string({
            month: "numeric",
            day: "numeric"
          }, "month") : _this.num(dt.month);

        case "LL":
          // like 01, doesn't seem to work
          return useDateTimeFormatter ? string({
            month: "2-digit",
            day: "numeric"
          }, "month") : _this.num(dt.month, 2);

        case "LLL":
          // like Jan
          return month("short", true);

        case "LLLL":
          // like January
          return month("long", true);

        case "LLLLL":
          // like J
          return month("narrow", true);
        // months - format

        case "M":
          // like 1
          return useDateTimeFormatter ? string({
            month: "numeric"
          }, "month") : _this.num(dt.month);

        case "MM":
          // like 01
          return useDateTimeFormatter ? string({
            month: "2-digit"
          }, "month") : _this.num(dt.month, 2);

        case "MMM":
          // like Jan
          return month("short", false);

        case "MMMM":
          // like January
          return month("long", false);

        case "MMMMM":
          // like J
          return month("narrow", false);
        // years

        case "y":
          // like 2014
          return useDateTimeFormatter ? string({
            year: "numeric"
          }, "year") : _this.num(dt.year);

        case "yy":
          // like 14
          return useDateTimeFormatter ? string({
            year: "2-digit"
          }, "year") : _this.num(dt.year.toString().slice(-2), 2);

        case "yyyy":
          // like 0012
          return useDateTimeFormatter ? string({
            year: "numeric"
          }, "year") : _this.num(dt.year, 4);

        case "yyyyyy":
          // like 000012
          return useDateTimeFormatter ? string({
            year: "numeric"
          }, "year") : _this.num(dt.year, 6);
        // eras

        case "G":
          // like AD
          return era("short");

        case "GG":
          // like Anno Domini
          return era("long");

        case "GGGGG":
          return era("narrow");

        case "kk":
          return _this.num(dt.weekYear.toString().slice(-2), 2);

        case "kkkk":
          return _this.num(dt.weekYear, 4);

        case "W":
          return _this.num(dt.weekNumber);

        case "WW":
          return _this.num(dt.weekNumber, 2);

        case "o":
          return _this.num(dt.ordinal);

        case "ooo":
          return _this.num(dt.ordinal, 3);

        case "q":
          // like 1
          return _this.num(dt.quarter);

        case "qq":
          // like 01
          return _this.num(dt.quarter, 2);

        case "X":
          return _this.num(Math.floor(dt.ts / 1000));

        case "x":
          return _this.num(dt.ts);

        default:
          return maybeMacro(token);
      }
    };

    return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);
  };

  _proto.formatDurationFromString = function formatDurationFromString(dur, fmt) {
    var _this2 = this;

    var tokenToField = function tokenToField(token) {
      switch (token[0]) {
        case "S":
          return "millisecond";

        case "s":
          return "second";

        case "m":
          return "minute";

        case "h":
          return "hour";

        case "d":
          return "day";

        case "M":
          return "month";

        case "y":
          return "year";

        default:
          return null;
      }
    },
        tokenToString = function tokenToString(lildur) {
      return function (token) {
        var mapped = tokenToField(token);

        if (mapped) {
          return _this2.num(lildur.get(mapped), token.length);
        } else {
          return token;
        }
      };
    },
        tokens = Formatter.parseFormat(fmt),
        realTokens = tokens.reduce(function (found, _ref) {
      var literal = _ref.literal,
          val = _ref.val;
      return literal ? found : found.concat(val);
    }, []),
        collapsed = dur.shiftTo.apply(dur, realTokens.map(tokenToField).filter(function (t) {
      return t;
    }));

    return stringifyTokens(tokens, tokenToString(collapsed));
  };

  return Formatter;
}();

var Invalid = /*#__PURE__*/function () {
  function Invalid(reason, explanation) {
    this.reason = reason;
    this.explanation = explanation;
  }

  var _proto = Invalid.prototype;

  _proto.toMessage = function toMessage() {
    if (this.explanation) {
      return this.reason + ": " + this.explanation;
    } else {
      return this.reason;
    }
  };

  return Invalid;
}();

/**
 * @interface
 */

var Zone = /*#__PURE__*/function () {
  function Zone() {}

  var _proto = Zone.prototype;

  /**
   * Returns the offset's common name (such as EST) at the specified timestamp
   * @abstract
   * @param {number} ts - Epoch milliseconds for which to get the name
   * @param {Object} opts - Options to affect the format
   * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.
   * @param {string} opts.locale - What locale to return the offset name in.
   * @return {string}
   */
  _proto.offsetName = function offsetName(ts, opts) {
    throw new ZoneIsAbstractError();
  }
  /**
   * Returns the offset's value as a string
   * @abstract
   * @param {number} ts - Epoch milliseconds for which to get the offset
   * @param {string} format - What style of offset to return.
   *                          Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively
   * @return {string}
   */
  ;

  _proto.formatOffset = function formatOffset(ts, format) {
    throw new ZoneIsAbstractError();
  }
  /**
   * Return the offset in minutes for this zone at the specified timestamp.
   * @abstract
   * @param {number} ts - Epoch milliseconds for which to compute the offset
   * @return {number}
   */
  ;

  _proto.offset = function offset(ts) {
    throw new ZoneIsAbstractError();
  }
  /**
   * Return whether this Zone is equal to another zone
   * @abstract
   * @param {Zone} otherZone - the zone to compare
   * @return {boolean}
   */
  ;

  _proto.equals = function equals(otherZone) {
    throw new ZoneIsAbstractError();
  }
  /**
   * Return whether this Zone is valid.
   * @abstract
   * @type {boolean}
   */
  ;

  _createClass(Zone, [{
    key: "type",
    get:
    /**
     * The type of zone
     * @abstract
     * @type {string}
     */
    function get() {
      throw new ZoneIsAbstractError();
    }
    /**
     * The name of this zone.
     * @abstract
     * @type {string}
     */

  }, {
    key: "name",
    get: function get() {
      throw new ZoneIsAbstractError();
    }
    /**
     * Returns whether the offset is known to be fixed for the whole year.
     * @abstract
     * @type {boolean}
     */

  }, {
    key: "isUniversal",
    get: function get() {
      throw new ZoneIsAbstractError();
    }
  }, {
    key: "isValid",
    get: function get() {
      throw new ZoneIsAbstractError();
    }
  }]);

  return Zone;
}();

var singleton$1 = null;
/**
 * Represents the local zone for this JavaScript environment.
 * @implements {Zone}
 */

var SystemZone = /*#__PURE__*/function (_Zone) {
  _inheritsLoose(SystemZone, _Zone);

  function SystemZone() {
    return _Zone.apply(this, arguments) || this;
  }

  var _proto = SystemZone.prototype;

  /** @override **/
  _proto.offsetName = function offsetName(ts, _ref) {
    var format = _ref.format,
        locale = _ref.locale;
    return parseZoneInfo(ts, format, locale);
  }
  /** @override **/
  ;

  _proto.formatOffset = function formatOffset$1(ts, format) {
    return formatOffset(this.offset(ts), format);
  }
  /** @override **/
  ;

  _proto.offset = function offset(ts) {
    return -new Date(ts).getTimezoneOffset();
  }
  /** @override **/
  ;

  _proto.equals = function equals(otherZone) {
    return otherZone.type === "system";
  }
  /** @override **/
  ;

  _createClass(SystemZone, [{
    key: "type",
    get:
    /** @override **/
    function get() {
      return "system";
    }
    /** @override **/

  }, {
    key: "name",
    get: function get() {
      return new Intl.DateTimeFormat().resolvedOptions().timeZone;
    }
    /** @override **/

  }, {
    key: "isUniversal",
    get: function get() {
      return false;
    }
  }, {
    key: "isValid",
    get: function get() {
      return true;
    }
  }], [{
    key: "instance",
    get:
    /**
     * Get a singleton instance of the local zone
     * @return {SystemZone}
     */
    function get() {
      if (singleton$1 === null) {
        singleton$1 = new SystemZone();
      }

      return singleton$1;
    }
  }]);

  return SystemZone;
}(Zone);

var matchingRegex = RegExp("^" + ianaRegex.source + "$");
var dtfCache = {};

function makeDTF(zone) {
  if (!dtfCache[zone]) {
    dtfCache[zone] = new Intl.DateTimeFormat("en-US", {
      hourCycle: "h23",
      timeZone: zone,
      year: "numeric",
      month: "2-digit",
      day: "2-digit",
      hour: "2-digit",
      minute: "2-digit",
      second: "2-digit"
    });
  }

  return dtfCache[zone];
}

var typeToPos = {
  year: 0,
  month: 1,
  day: 2,
  hour: 3,
  minute: 4,
  second: 5
};

function hackyOffset(dtf, date) {
  var formatted = dtf.format(date).replace(/\u200E/g, ""),
      parsed = /(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(formatted),
      fMonth = parsed[1],
      fDay = parsed[2],
      fYear = parsed[3],
      fHour = parsed[4],
      fMinute = parsed[5],
      fSecond = parsed[6];
  return [fYear, fMonth, fDay, fHour, fMinute, fSecond];
}

function partsOffset(dtf, date) {
  var formatted = dtf.formatToParts(date),
      filled = [];

  for (var i = 0; i < formatted.length; i++) {
    var _formatted$i = formatted[i],
        type = _formatted$i.type,
        value = _formatted$i.value,
        pos = typeToPos[type];

    if (!isUndefined(pos)) {
      filled[pos] = parseInt(value, 10);
    }
  }

  return filled;
}

var ianaZoneCache = {};
/**
 * A zone identified by an IANA identifier, like America/New_York
 * @implements {Zone}
 */

var IANAZone = /*#__PURE__*/function (_Zone) {
  _inheritsLoose(IANAZone, _Zone);

  /**
   * @param {string} name - Zone name
   * @return {IANAZone}
   */
  IANAZone.create = function create(name) {
    if (!ianaZoneCache[name]) {
      ianaZoneCache[name] = new IANAZone(name);
    }

    return ianaZoneCache[name];
  }
  /**
   * Reset local caches. Should only be necessary in testing scenarios.
   * @return {void}
   */
  ;

  IANAZone.resetCache = function resetCache() {
    ianaZoneCache = {};
    dtfCache = {};
  }
  /**
   * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.
   * @param {string} s - The string to check validity on
   * @example IANAZone.isValidSpecifier("America/New_York") //=> true
   * @example IANAZone.isValidSpecifier("Fantasia/Castle") //=> true
   * @example IANAZone.isValidSpecifier("Sport~~blorp") //=> false
   * @return {boolean}
   */
  ;

  IANAZone.isValidSpecifier = function isValidSpecifier(s) {
    return !!(s && s.match(matchingRegex));
  }
  /**
   * Returns whether the provided string identifies a real zone
   * @param {string} zone - The string to check
   * @example IANAZone.isValidZone("America/New_York") //=> true
   * @example IANAZone.isValidZone("Fantasia/Castle") //=> false
   * @example IANAZone.isValidZone("Sport~~blorp") //=> false
   * @return {boolean}
   */
  ;

  IANAZone.isValidZone = function isValidZone(zone) {
    try {
      new Intl.DateTimeFormat("en-US", {
        timeZone: zone
      }).format();
      return true;
    } catch (e) {
      return false;
    }
  } // Etc/GMT+8 -> -480

  /** @ignore */
  ;

  IANAZone.parseGMTOffset = function parseGMTOffset(specifier) {
    if (specifier) {
      var match = specifier.match(/^Etc\/GMT(0|[+-]\d{1,2})$/i);

      if (match) {
        return -60 * parseInt(match[1]);
      }
    }

    return null;
  };

  function IANAZone(name) {
    var _this;

    _this = _Zone.call(this) || this;
    /** @private **/

    _this.zoneName = name;
    /** @private **/

    _this.valid = IANAZone.isValidZone(name);
    return _this;
  }
  /** @override **/


  var _proto = IANAZone.prototype;

  /** @override **/
  _proto.offsetName = function offsetName(ts, _ref) {
    var format = _ref.format,
        locale = _ref.locale;
    return parseZoneInfo(ts, format, locale, this.name);
  }
  /** @override **/
  ;

  _proto.formatOffset = function formatOffset$1(ts, format) {
    return formatOffset(this.offset(ts), format);
  }
  /** @override **/
  ;

  _proto.offset = function offset(ts) {
    var date = new Date(ts);
    if (isNaN(date)) return NaN;

    var dtf = makeDTF(this.name),
        _ref2 = dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date),
        year = _ref2[0],
        month = _ref2[1],
        day = _ref2[2],
        hour = _ref2[3],
        minute = _ref2[4],
        second = _ref2[5];

    var asUTC = objToLocalTS({
      year: year,
      month: month,
      day: day,
      hour: hour,
      minute: minute,
      second: second,
      millisecond: 0
    });
    var asTS = +date;
    var over = asTS % 1000;
    asTS -= over >= 0 ? over : 1000 + over;
    return (asUTC - asTS) / (60 * 1000);
  }
  /** @override **/
  ;

  _proto.equals = function equals(otherZone) {
    return otherZone.type === "iana" && otherZone.name === this.name;
  }
  /** @override **/
  ;

  _createClass(IANAZone, [{
    key: "type",
    get: function get() {
      return "iana";
    }
    /** @override **/

  }, {
    key: "name",
    get: function get() {
      return this.zoneName;
    }
    /** @override **/

  }, {
    key: "isUniversal",
    get: function get() {
      return false;
    }
  }, {
    key: "isValid",
    get: function get() {
      return this.valid;
    }
  }]);

  return IANAZone;
}(Zone);

var singleton = null;
/**
 * A zone with a fixed offset (meaning no DST)
 * @implements {Zone}
 */

var FixedOffsetZone = /*#__PURE__*/function (_Zone) {
  _inheritsLoose(FixedOffsetZone, _Zone);

  /**
   * Get an instance with a specified offset
   * @param {number} offset - The offset in minutes
   * @return {FixedOffsetZone}
   */
  FixedOffsetZone.instance = function instance(offset) {
    return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);
  }
  /**
   * Get an instance of FixedOffsetZone from a UTC offset string, like "UTC+6"
   * @param {string} s - The offset string to parse
   * @example FixedOffsetZone.parseSpecifier("UTC+6")
   * @example FixedOffsetZone.parseSpecifier("UTC+06")
   * @example FixedOffsetZone.parseSpecifier("UTC-6:00")
   * @return {FixedOffsetZone}
   */
  ;

  FixedOffsetZone.parseSpecifier = function parseSpecifier(s) {
    if (s) {
      var r = s.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);

      if (r) {
        return new FixedOffsetZone(signedOffset(r[1], r[2]));
      }
    }

    return null;
  };

  function FixedOffsetZone(offset) {
    var _this;

    _this = _Zone.call(this) || this;
    /** @private **/

    _this.fixed = offset;
    return _this;
  }
  /** @override **/


  var _proto = FixedOffsetZone.prototype;

  /** @override **/
  _proto.offsetName = function offsetName() {
    return this.name;
  }
  /** @override **/
  ;

  _proto.formatOffset = function formatOffset$1(ts, format) {
    return formatOffset(this.fixed, format);
  }
  /** @override **/
  ;

  /** @override **/
  _proto.offset = function offset() {
    return this.fixed;
  }
  /** @override **/
  ;

  _proto.equals = function equals(otherZone) {
    return otherZone.type === "fixed" && otherZone.fixed === this.fixed;
  }
  /** @override **/
  ;

  _createClass(FixedOffsetZone, [{
    key: "type",
    get: function get() {
      return "fixed";
    }
    /** @override **/

  }, {
    key: "name",
    get: function get() {
      return this.fixed === 0 ? "UTC" : "UTC" + formatOffset(this.fixed, "narrow");
    }
  }, {
    key: "isUniversal",
    get: function get() {
      return true;
    }
  }, {
    key: "isValid",
    get: function get() {
      return true;
    }
  }], [{
    key: "utcInstance",
    get:
    /**
     * Get a singleton instance of UTC
     * @return {FixedOffsetZone}
     */
    function get() {
      if (singleton === null) {
        singleton = new FixedOffsetZone(0);
      }

      return singleton;
    }
  }]);

  return FixedOffsetZone;
}(Zone);

/**
 * A zone that failed to parse. You should never need to instantiate this.
 * @implements {Zone}
 */

var InvalidZone = /*#__PURE__*/function (_Zone) {
  _inheritsLoose(InvalidZone, _Zone);

  function InvalidZone(zoneName) {
    var _this;

    _this = _Zone.call(this) || this;
    /**  @private */

    _this.zoneName = zoneName;
    return _this;
  }
  /** @override **/


  var _proto = InvalidZone.prototype;

  /** @override **/
  _proto.offsetName = function offsetName() {
    return null;
  }
  /** @override **/
  ;

  _proto.formatOffset = function formatOffset() {
    return "";
  }
  /** @override **/
  ;

  _proto.offset = function offset() {
    return NaN;
  }
  /** @override **/
  ;

  _proto.equals = function equals() {
    return false;
  }
  /** @override **/
  ;

  _createClass(InvalidZone, [{
    key: "type",
    get: function get() {
      return "invalid";
    }
    /** @override **/

  }, {
    key: "name",
    get: function get() {
      return this.zoneName;
    }
    /** @override **/

  }, {
    key: "isUniversal",
    get: function get() {
      return false;
    }
  }, {
    key: "isValid",
    get: function get() {
      return false;
    }
  }]);

  return InvalidZone;
}(Zone);

/**
 * @private
 */
function normalizeZone(input, defaultZone) {
  var offset;

  if (isUndefined(input) || input === null) {
    return defaultZone;
  } else if (input instanceof Zone) {
    return input;
  } else if (isString(input)) {
    var lowered = input.toLowerCase();
    if (lowered === "local" || lowered === "system") return defaultZone;else if (lowered === "utc" || lowered === "gmt") return FixedOffsetZone.utcInstance;else if ((offset = IANAZone.parseGMTOffset(input)) != null) {
      // handle Etc/GMT-4, which V8 chokes on
      return FixedOffsetZone.instance(offset);
    } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);
  } else if (isNumber(input)) {
    return FixedOffsetZone.instance(input);
  } else if (typeof input === "object" && input.offset && typeof input.offset === "number") {
    // This is dumb, but the instanceof check above doesn't seem to really work
    // so we're duck checking it
    return input;
  } else {
    return new InvalidZone(input);
  }
}

var now = function now() {
  return Date.now();
},
    defaultZone = "system",
    defaultLocale = null,
    defaultNumberingSystem = null,
    defaultOutputCalendar = null,
    throwOnInvalid;
/**
 * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.
 */


var Settings = /*#__PURE__*/function () {
  function Settings() {}

  /**
   * Reset Luxon's global caches. Should only be necessary in testing scenarios.
   * @return {void}
   */
  Settings.resetCaches = function resetCaches() {
    Locale.resetCache();
    IANAZone.resetCache();
  };

  _createClass(Settings, null, [{
    key: "now",
    get:
    /**
     * Get the callback for returning the current timestamp.
     * @type {function}
     */
    function get() {
      return now;
    }
    /**
     * Set the callback for returning the current timestamp.
     * The function should return a number, which will be interpreted as an Epoch millisecond count
     * @type {function}
     * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future
     * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time
     */
    ,
    set: function set(n) {
      now = n;
    }
    /**
     * Set the default time zone to create DateTimes in. Does not affect existing instances.
     * Use the value "system" to reset this value to the system's time zone.
     * @type {string}
     */

  }, {
    key: "defaultZone",
    get:
    /**
     * Get the default time zone object currently used to create DateTimes. Does not affect existing instances.
     * The default value is the system's time zone (the one set on the machine that runs this code).
     * @type {Zone}
     */
    function get() {
      return normalizeZone(defaultZone, SystemZone.instance);
    }
    /**
     * Get the default locale to create DateTimes with. Does not affect existing instances.
     * @type {string}
     */
    ,
    set: function set(zone) {
      defaultZone = zone;
    }
  }, {
    key: "defaultLocale",
    get: function get() {
      return defaultLocale;
    }
    /**
     * Set the default locale to create DateTimes with. Does not affect existing instances.
     * @type {string}
     */
    ,
    set: function set(locale) {
      defaultLocale = locale;
    }
    /**
     * Get the default numbering system to create DateTimes with. Does not affect existing instances.
     * @type {string}
     */

  }, {
    key: "defaultNumberingSystem",
    get: function get() {
      return defaultNumberingSystem;
    }
    /**
     * Set the default numbering system to create DateTimes with. Does not affect existing instances.
     * @type {string}
     */
    ,
    set: function set(numberingSystem) {
      defaultNumberingSystem = numberingSystem;
    }
    /**
     * Get the default output calendar to create DateTimes with. Does not affect existing instances.
     * @type {string}
     */

  }, {
    key: "defaultOutputCalendar",
    get: function get() {
      return defaultOutputCalendar;
    }
    /**
     * Set the default output calendar to create DateTimes with. Does not affect existing instances.
     * @type {string}
     */
    ,
    set: function set(outputCalendar) {
      defaultOutputCalendar = outputCalendar;
    }
    /**
     * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals
     * @type {boolean}
     */

  }, {
    key: "throwOnInvalid",
    get: function get() {
      return throwOnInvalid;
    }
    /**
     * Set whether Luxon will throw when it encounters inv
Download .txt
gitextract_3mavbe2u/

├── .obsidian/
│   ├── app.json
│   ├── appearance.json
│   ├── community-plugins.json
│   ├── core-plugins.json
│   ├── graph.json
│   ├── hotkeys.json
│   ├── plugins/
│   │   ├── calendar/
│   │   │   ├── data.json
│   │   │   ├── main.js
│   │   │   └── manifest.json
│   │   ├── dataview/
│   │   │   ├── main.js
│   │   │   ├── manifest.json
│   │   │   └── styles.css
│   │   ├── hotkeysplus-obsidian/
│   │   │   ├── main.js
│   │   │   └── manifest.json
│   │   ├── maximise-active-pane-obsidian/
│   │   │   ├── main.js
│   │   │   ├── manifest.json
│   │   │   └── styles.css
│   │   ├── nldates-obsidian/
│   │   │   ├── data.json
│   │   │   ├── main.js
│   │   │   └── manifest.json
│   │   ├── note-refactor-obsidian/
│   │   │   ├── data.json
│   │   │   ├── main.js
│   │   │   ├── manifest.json
│   │   │   └── styles.css
│   │   ├── obsidian-tasks-plugin/
│   │   │   ├── data.json
│   │   │   ├── main.js
│   │   │   ├── manifest.json
│   │   │   └── styles.css
│   │   ├── periodic-notes/
│   │   │   ├── data.json
│   │   │   ├── main.js
│   │   │   ├── manifest.json
│   │   │   └── styles.css
│   │   └── templater-obsidian/
│   │       ├── data.json
│   │       ├── main.js
│   │       ├── manifest.json
│   │       └── styles.css
│   ├── starred.json
│   └── workspace
├── 00 🏠 Main Dashboard.md
├── 000 Inbox/
│   └── 00 ❗ Readme.md
├── 100 Projects/
│   └── Setup/
│       ├── 00 🧰 Setup.md
│       ├── 10 💗 Defining Life.md
│       ├── 11 🔀 Divergence to Disciplines.md
│       ├── 12 🔂 Convergence to Ikigai.md
│       └── 13 🎎 Ikigai Expansion.md
├── 200 Disciplines/
│   └── 210 🎀 Well-being (EXAMPLE)/
│       ├── 210 🎀 Well-being (EXAMPLE).md
│       ├── 211 🎨 Alternative Dashboard (EXAMPLE).md
│       └── Random Note of Abundant Information (EXAMPLE).md
├── 300 Habits/
│   └── Flossing (Habit).md
├── 400 Life/
│   └── 400 💗 Life.md
├── 500 Alignment/
│   ├── 510 Daily/
│   │   └── .gitignore
│   ├── 520 Weekly/
│   │   └── .gitignore
│   ├── 530 Monthly/
│   │   └── .gitignore
│   ├── 540 Quarterly/
│   │   └── .gitignore
│   └── 550 Yearly/
│       └── .gitignore
├── 600 Resources/
│   ├── Agile Project Management.md
│   ├── Artifacts (Scrum).md
│   ├── Ceremonies (Scrum).md
│   ├── Dashboards.md
│   ├── Decision Paralysis.md
│   ├── Disciplines.md
│   ├── Dynamics.md
│   ├── Friction.md
│   ├── Fundamentals of LDP.md
│   ├── Getting Things Done.md
│   ├── Habits.md
│   ├── Ikigai.md
│   ├── Inbox.md
│   ├── Kanban (Agile).md
│   ├── Kanban vs Scrum.md
│   ├── Life (LDP).md
│   ├── Minimalism.md
│   ├── Note Tags.md
│   ├── Ongoing Tasks.md
│   ├── Philosophy - How to Approach LDP.md
│   ├── Pillars, Pipelines, Vaults (PPV).md
│   ├── Pillars.md
│   ├── Planned Tasks.md
│   ├── Projects.md
│   ├── Resources.md
│   ├── Scrum (Agile).md
│   ├── Simple Integration Into Obsidian.md
│   ├── Sprints (Scrum).md
│   ├── Suggestions After Learning Initial LDP.md
│   ├── Systems Thinking.md
│   ├── Systems.md
│   ├── Tags As Categories and Characteristics.md
│   ├── Tags As Categories.md
│   ├── Tags As Characteristics.md
│   ├── Tasks as Habits in Obsidian.md
│   ├── Tasks.md
│   ├── True Deadlines.md
│   ├── When to Tag.md
│   ├── Work Hierarchy (Scrum).md
│   └── Working with LDP.md
├── 700 Views/
│   ├── Habits (View).md
│   ├── Ongoing Tasks (View).md
│   └── Planned Tasks (View).md
├── 800 Templates/
│   ├── Due.md
│   ├── Em Dash.md
│   ├── Note.md
│   ├── Repeat.md
│   ├── arrowleft.md
│   ├── arrowright.md
│   ├── cite.md
│   ├── no.md
│   └── yes.md
├── 99 🗃️ Master Backlog.md
├── README.md
└── Workbench.md
Download .txt
Showing preview only (221K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2892 symbols across 9 files)

FILE: .obsidian/plugins/calendar/main.js
  function _interopDefaultLegacy (line 5) | function _interopDefaultLegacy (e) { return e && typeof e === 'object' &...
  constant DEFAULT_WEEK_FORMAT (line 9) | const DEFAULT_WEEK_FORMAT = "gggg-[W]ww";
  constant DEFAULT_WORDS_PER_DOT (line 10) | const DEFAULT_WORDS_PER_DOT = 250;
  constant VIEW_TYPE_CALENDAR (line 11) | const VIEW_TYPE_CALENDAR = "calendar";
  constant TRIGGER_ON_OPEN (line 12) | const TRIGGER_ON_OPEN = "calendar:open";
  constant DEFAULT_DAILY_NOTE_FORMAT (line 14) | const DEFAULT_DAILY_NOTE_FORMAT = "YYYY-MM-DD";
  constant DEFAULT_WEEKLY_NOTE_FORMAT (line 15) | const DEFAULT_WEEKLY_NOTE_FORMAT = "gggg-[W]ww";
  constant DEFAULT_MONTHLY_NOTE_FORMAT (line 16) | const DEFAULT_MONTHLY_NOTE_FORMAT = "YYYY-MM";
  function shouldUsePeriodicNotesSettings (line 18) | function shouldUsePeriodicNotesSettings(periodicity) {
  function getDailyNoteSettings (line 27) | function getDailyNoteSettings() {
  function getWeeklyNoteSettings (line 54) | function getWeeklyNoteSettings() {
  function getMonthlyNoteSettings (line 83) | function getMonthlyNoteSettings() {
  function getDateUID$1 (line 105) | function getDateUID$1(date, granularity = "day") {
  function removeEscapedCharacters (line 109) | function removeEscapedCharacters(format) {
  function isFormatAmbiguous (line 117) | function isFormatAmbiguous(format, granularity) {
  function getDateFromFile (line 125) | function getDateFromFile(file, granularity) {
  function join (line 150) | function join(...partSegments) {
  function ensureFolderExists (line 174) | async function ensureFolderExists(path) {
  function getNotePath (line 184) | async function getNotePath(directory, filename) {
  function getTemplateInfo (line 192) | async function getTemplateInfo(template) {
  class DailyNotesFolderMissingError (line 212) | class DailyNotesFolderMissingError extends Error {
  function createDailyNote (line 221) | async function createDailyNote(date) {
  function getDailyNote (line 260) | function getDailyNote(date, dailyNotes) {
  function getAllDailyNotes (line 263) | function getAllDailyNotes() {
  class WeeklyNotesFolderMissingError (line 286) | class WeeklyNotesFolderMissingError extends Error {
  function getDaysOfWeek$1 (line 288) | function getDaysOfWeek$1() {
  function getDayOfWeekNumericalValue (line 307) | function getDayOfWeekNumericalValue(dayOfWeekName) {
  function createWeeklyNote (line 310) | async function createWeeklyNote(date) {
  function getWeeklyNote (line 348) | function getWeeklyNote(date, weeklyNotes) {
  function getAllWeeklyNotes (line 351) | function getAllWeeklyNotes() {
  function appHasDailyNotesPluginLoaded (line 371) | function appHasDailyNotesPluginLoaded() {
  function noop$1 (line 394) | function noop$1() { }
  function run$1 (line 395) | function run$1(fn) {
  function blank_object$1 (line 398) | function blank_object$1() {
  function run_all$1 (line 401) | function run_all$1(fns) {
  function is_function$1 (line 404) | function is_function$1(thing) {
  function safe_not_equal$1 (line 407) | function safe_not_equal$1(a, b) {
  function not_equal$1 (line 410) | function not_equal$1(a, b) {
  function is_empty$1 (line 413) | function is_empty$1(obj) {
  function subscribe (line 416) | function subscribe(store, ...callbacks) {
  function get_store_value (line 423) | function get_store_value(store) {
  function component_subscribe (line 428) | function component_subscribe(component, store, callback) {
  function detach$1 (line 431) | function detach$1(node) {
  function children$1 (line 434) | function children$1(element) {
  function set_current_component$1 (line 439) | function set_current_component$1(component) {
  function get_current_component$1 (line 442) | function get_current_component$1() {
  function onDestroy (line 447) | function onDestroy(fn) {
  function schedule_update$1 (line 457) | function schedule_update$1() {
  function add_render_callback$1 (line 463) | function add_render_callback$1(fn) {
  function add_flush_callback (line 466) | function add_flush_callback(fn) {
  function flush$1 (line 471) | function flush$1() {
  function update$1 (line 507) | function update$1($$) {
  function transition_in$1 (line 519) | function transition_in$1(block, local) {
  function transition_out$1 (line 525) | function transition_out$1(block, local, detach, callback) {
  function bind (line 542) | function bind(component, name, callback) {
  function create_component$1 (line 549) | function create_component$1(block) {
  function mount_component$1 (line 552) | function mount_component$1(component, target, anchor, customElement) {
  function destroy_component$1 (line 572) | function destroy_component$1(component, detaching) {
  function make_dirty$1 (line 583) | function make_dirty$1(component, i) {
  function init$1 (line 591) | function init$1(component, options, instance, create_fragment, not_equal...
  class SvelteComponent$1 (line 653) | class SvelteComponent$1 {
    method $destroy (line 654) | $destroy() {
    method $on (line 658) | $on(type, callback) {
    method $set (line 667) | $set($$props) {
  function writable (line 682) | function writable(value, start = noop$1) {
  function appHasPeriodicNotesPluginLoaded (line 747) | function appHasPeriodicNotesPluginLoaded() {
  class CalendarSettingsTab (line 753) | class CalendarSettingsTab extends obsidian.PluginSettingTab {
    method constructor (line 754) | constructor(app, plugin) {
    method display (line 758) | display() {
    method addDotThresholdSetting (line 796) | addDotThresholdSetting() {
    method addWeekStartSetting (line 811) | addWeekStartSetting() {
    method addConfirmCreateSetting (line 832) | addConfirmCreateSetting() {
    method addShowWeeklyNoteSetting (line 845) | addShowWeeklyNoteSetting() {
    method addWeeklyNoteFormatSetting (line 857) | addWeeklyNoteFormatSetting() {
    method addWeeklyNoteTemplateSetting (line 869) | addWeeklyNoteTemplateSetting() {
    method addWeeklyNoteFolderSetting (line 880) | addWeeklyNoteFolderSetting() {
    method addLocaleOverrideSetting (line 891) | addLocaleOverrideSetting() {
  function clamp (line 918) | function clamp(num, lowerBound, upperBound) {
  function partition (line 921) | function partition(arr, predicate) {
  function getDateUIDFromFile (line 940) | function getDateUIDFromFile(file) {
  function getWordCount (line 955) | function getWordCount(text) {
  function createDailyNotesStore (line 967) | function createDailyNotesStore() {
  function createWeeklyNotesStore (line 986) | function createWeeklyNotesStore() {
  function createSelectedFileStore (line 1008) | function createSelectedFileStore() {
  class ConfirmationModal (line 1017) | class ConfirmationModal extends obsidian.Modal {
    method constructor (line 1018) | constructor(app, config) {
  function createConfirmationDialog (line 1039) | function createConfirmationDialog({ cta, onAccept, text, title, }) {
  function tryToCreateDailyNote (line 1046) | async function tryToCreateDailyNote(date, inNewSplit, settings, cb) {
  function tryToCreateWeeklyNote (line 1074) | async function tryToCreateWeeklyNote(date, inNewSplit, settings, cb) {
  function noop (line 1099) | function noop() { }
  function assign (line 1100) | function assign(tar, src) {
  function is_promise (line 1106) | function is_promise(value) {
  function run (line 1109) | function run(fn) {
  function blank_object (line 1112) | function blank_object() {
  function run_all (line 1115) | function run_all(fns) {
  function is_function (line 1118) | function is_function(thing) {
  function safe_not_equal (line 1121) | function safe_not_equal(a, b) {
  function not_equal (line 1124) | function not_equal(a, b) {
  function is_empty (line 1127) | function is_empty(obj) {
  function create_slot (line 1130) | function create_slot(definition, ctx, $$scope, fn) {
  function get_slot_context (line 1136) | function get_slot_context(definition, ctx, $$scope, fn) {
  function get_slot_changes (line 1141) | function get_slot_changes(definition, $$scope, dirty, fn) {
  function update_slot (line 1159) | function update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slo...
  function null_to_empty (line 1166) | function null_to_empty(value) {
  function append (line 1170) | function append(target, node) {
  function insert (line 1173) | function insert(target, node, anchor) {
  function detach (line 1176) | function detach(node) {
  function destroy_each (line 1179) | function destroy_each(iterations, detaching) {
  function element (line 1185) | function element(name) {
  function svg_element (line 1188) | function svg_element(name) {
  function text (line 1191) | function text(data) {
  function space (line 1194) | function space() {
  function empty (line 1197) | function empty() {
  function listen (line 1200) | function listen(node, event, handler, options) {
  function attr (line 1204) | function attr(node, attribute, value) {
  function set_attributes (line 1210) | function set_attributes(node, attributes) {
  function children (line 1231) | function children(element) {
  function set_data (line 1234) | function set_data(text, data) {
  function toggle_class (line 1239) | function toggle_class(element, name, toggle) {
  function set_current_component (line 1244) | function set_current_component(component) {
  function get_current_component (line 1247) | function get_current_component() {
  function schedule_update (line 1259) | function schedule_update() {
  function add_render_callback (line 1265) | function add_render_callback(fn) {
  function flush (line 1270) | function flush() {
  function update (line 1306) | function update($$) {
  function group_outros (line 1318) | function group_outros() {
  function check_outros (line 1325) | function check_outros() {
  function transition_in (line 1331) | function transition_in(block, local) {
  function transition_out (line 1337) | function transition_out(block, local, detach, callback) {
  function handle_promise (line 1354) | function handle_promise(promise, info) {
  function outro_and_destroy_block (line 1424) | function outro_and_destroy_block(block, lookup) {
  function update_keyed_each (line 1429) | function update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, lis...
  function get_spread_update (line 1505) | function get_spread_update(levels, updates) {
  function get_spread_object (line 1538) | function get_spread_object(spread_props) {
  function create_component (line 1541) | function create_component(block) {
  function mount_component (line 1544) | function mount_component(component, target, anchor, customElement) {
  function destroy_component (line 1564) | function destroy_component(component, detaching) {
  function make_dirty (line 1575) | function make_dirty(component, i) {
  function init (line 1583) | function init(component, options, instance, create_fragment, not_equal, ...
  class SvelteComponent (line 1645) | class SvelteComponent {
    method $destroy (line 1646) | $destroy() {
    method $on (line 1650) | $on(type, callback) {
    method $set (line 1659) | $set($$props) {
  function getDateUID (line 1672) | function getDateUID(date, granularity = "day") {
  function add_css$5 (line 1680) | function add_css$5() {
  function create_else_block$1 (line 1688) | function create_else_block$1(ctx) {
  function create_if_block$2 (line 1725) | function create_if_block$2(ctx) {
  function create_fragment$6 (line 1761) | function create_fragment$6(ctx) {
  function instance$6 (line 1803) | function instance$6($$self, $$props, $$invalidate) {
  class Dot (line 1817) | class Dot extends SvelteComponent {
    method constructor (line 1818) | constructor(options) {
  function create_else_block (line 1833) | function create_else_block(ctx) {
  function create_if_block$1 (line 1872) | function create_if_block$1(ctx) {
  function create_catch_block (line 1936) | function create_catch_block(ctx) {
  function create_then_block (line 1948) | function create_then_block(ctx) {
  function create_pending_block (line 1987) | function create_pending_block(ctx) {
  function create_fragment$5 (line 1998) | function create_fragment$5(ctx) {
  function instance$5 (line 2067) | function instance$5($$self, $$props, $$invalidate) {
  class MetadataResolver (line 2080) | class MetadataResolver extends SvelteComponent {
    method constructor (line 2081) | constructor(options) {
  function isMacOS (line 2087) | function isMacOS() {
  function isMetaPressed (line 2090) | function isMetaPressed(e) {
  function getDaysOfWeek (line 2093) | function getDaysOfWeek(..._args) {
  function isWeekend (line 2096) | function isWeekend(date) {
  function getStartOfWeek (line 2099) | function getStartOfWeek(days) {
  function getMonth (line 2106) | function getMonth(displayedMonth, ..._args) {
  function add_css$4 (line 2129) | function add_css$4() {
  function get_each_context$2 (line 2136) | function get_each_context$2(ctx, list, i) {
  function create_each_block$2 (line 2143) | function create_each_block$2(ctx) {
  function create_default_slot$1 (line 2186) | function create_default_slot$1(ctx) {
  function create_fragment$4 (line 2334) | function create_fragment$4(ctx) {
  function instance$4 (line 2389) | function instance$4($$self, $$props, $$invalidate) {
  class Day (line 2430) | class Day extends SvelteComponent {
    method constructor (line 2431) | constructor(options) {
  function add_css$3 (line 2450) | function add_css$3() {
  function create_fragment$3 (line 2457) | function create_fragment$3(ctx) {
  function instance$3 (line 2515) | function instance$3($$self, $$props, $$invalidate) {
  class Arrow (line 2532) | class Arrow extends SvelteComponent {
    method constructor (line 2533) | constructor(options) {
  function add_css$2 (line 2542) | function add_css$2() {
  function create_fragment$2 (line 2549) | function create_fragment$2(ctx) {
  function instance$2 (line 2673) | function instance$2($$self, $$props, $$invalidate) {
  class Nav (line 2706) | class Nav extends SvelteComponent {
    method constructor (line 2707) | constructor(options) {
  function add_css$1 (line 2723) | function add_css$1() {
  function get_each_context$1 (line 2730) | function get_each_context$1(ctx, list, i) {
  function create_each_block$1 (line 2737) | function create_each_block$1(ctx) {
  function create_default_slot (line 2780) | function create_default_slot(ctx) {
  function create_fragment$1 (line 2909) | function create_fragment$1(ctx) {
  function instance$1 (line 2965) | function instance$1($$self, $$props, $$invalidate) {
  class WeekNum (line 3011) | class WeekNum extends SvelteComponent {
    method constructor (line 3012) | constructor(options) {
  function metadataReducer (line 3028) | async function metadataReducer(promisedMetadata) {
  function getDailyMetadata (line 3041) | function getDailyMetadata(sources, date, ..._args) {
  function getWeeklyMetadata (line 3044) | function getWeeklyMetadata(sources, date, ..._args) {
  function add_css (line 3050) | function add_css() {
  function get_each_context (line 3057) | function get_each_context(ctx, list, i) {
  function get_each_context_1 (line 3063) | function get_each_context_1(ctx, list, i) {
  function get_each_context_2 (line 3069) | function get_each_context_2(ctx, list, i) {
  function get_each_context_3 (line 3075) | function get_each_context_3(ctx, list, i) {
  function create_if_block_2 (line 3082) | function create_if_block_2(ctx) {
  function create_each_block_3 (line 3099) | function create_each_block_3(ctx) {
  function create_if_block_1 (line 3123) | function create_if_block_1(ctx) {
  function create_each_block_2 (line 3142) | function create_each_block_2(ctx) {
  function create_if_block (line 3167) | function create_if_block(ctx) {
  function create_each_block_1 (line 3234) | function create_each_block_1(key_1, ctx) {
  function create_each_block (line 3295) | function create_each_block(key_1, ctx) {
  function create_fragment$7 (line 3402) | function create_fragment$7(ctx) {
  function instance$7 (line 3637) | function instance$7($$self, $$props, $$invalidate) {
  class Calendar$1 (line 3717) | class Calendar$1 extends SvelteComponent {
    method constructor (line 3718) | constructor(options) {
    method incrementDisplayedMonth (line 3741) | get incrementDisplayedMonth() {
    method decrementDisplayedMonth (line 3745) | get decrementDisplayedMonth() {
    method resetDisplayedMonth (line 3749) | get resetDisplayedMonth() {
  function overrideGlobalMomentWeekStart (line 3787) | function overrideGlobalMomentWeekStart(weekStart) {
  function configureGlobalMomentLocale (line 3815) | function configureGlobalMomentLocale(localeOverride = "system-default", ...
  function create_fragment (line 3835) | function create_fragment(ctx) {
  function instance (line 3910) | function instance($$self, $$props, $$invalidate) {
  class Calendar (line 3996) | class Calendar extends SvelteComponent$1 {
    method constructor (line 3997) | constructor(options) {
    method tick (line 4013) | get tick() {
  function showFileMenu (line 4018) | function showFileMenu(app, file, position) {
  function getNoteTags (line 4053) | function getNoteTags(note) {
  function getFormattedTagAttributes (line 4068) | function getFormattedTagAttributes(note) {
  function getNumberOfRemainingTasks (line 4097) | async function getNumberOfRemainingTasks(note) {
  function getDotsForDailyNote$1 (line 4105) | async function getDotsForDailyNote$1(dailyNote) {
  constant NUM_MAX_DOTS (line 4137) | const NUM_MAX_DOTS = 5;
  function getWordLengthAsDots (line 4138) | async function getWordLengthAsDots(note) {
  function getDotsForDailyNote (line 4148) | async function getDotsForDailyNote(dailyNote) {
  class CalendarView (line 4179) | class CalendarView extends obsidian.ItemView {
    method constructor (line 4180) | constructor(leaf) {
    method getViewType (line 4209) | getViewType() {
    method getDisplayText (line 4212) | getDisplayText() {
    method getIcon (line 4215) | getIcon() {
    method onClose (line 4218) | onClose() {
    method onOpen (line 4224) | async onOpen() {
    method onHoverDay (line 4248) | onHoverDay(date, targetEl, isMetaPressed) {
    method onHoverWeek (line 4256) | onHoverWeek(date, targetEl, isMetaPressed) {
    method onContextMenuDay (line 4264) | onContextMenuDay(date, event) {
    method onContextMenuWeek (line 4275) | onContextMenuWeek(date, event) {
    method onNoteSettingsUpdate (line 4286) | onNoteSettingsUpdate() {
    method onFileDeleted (line 4291) | async onFileDeleted(file) {
    method onFileModified (line 4301) | async onFileModified(file) {
    method onFileCreated (line 4307) | onFileCreated(file) {
    method onFileOpen (line 4319) | onFileOpen(_file) {
    method updateActiveFile (line 4324) | updateActiveFile() {
    method revealActiveNote (line 4335) | revealActiveNote() {
    method openOrCreateWeeklyNote (line 4354) | async openOrCreateWeeklyNote(date, inNewSplit) {
    method openOrCreateDailyNote (line 4371) | async openOrCreateDailyNote(date, inNewSplit) {
  class CalendarPlugin (line 4391) | class CalendarPlugin extends obsidian.Plugin {
    method onunload (line 4392) | onunload() {
    method onload (line 4397) | async onload() {
    method initLeaf (line 4436) | initLeaf() {
    method loadOptions (line 4444) | async loadOptions() {
    method writeOptions (line 4451) | async writeOptions(changeOpts) {

FILE: .obsidian/plugins/dataview/main.js
  function __awaiter (line 20) | function __awaiter(thisArg, _arguments, P, generator) {
  function _defineProperties (line 36) | function _defineProperties(target, props) {
  function _createClass (line 46) | function _createClass(Constructor, protoProps, staticProps) {
  function _extends (line 52) | function _extends() {
  function _inheritsLoose (line 70) | function _inheritsLoose(subClass, superClass) {
  function _getPrototypeOf (line 77) | function _getPrototypeOf(o) {
  function _setPrototypeOf (line 84) | function _setPrototypeOf(o, p) {
  function _isNativeReflectConstruct (line 93) | function _isNativeReflectConstruct() {
  function _construct (line 106) | function _construct(Parent, args, Class) {
  function _isNativeFunction (line 123) | function _isNativeFunction(fn) {
  function _wrapNativeSuper (line 127) | function _wrapNativeSuper(Class) {
  function _objectWithoutPropertiesLoose (line 161) | function _objectWithoutPropertiesLoose(source, excluded) {
  function _unsupportedIterableToArray (line 176) | function _unsupportedIterableToArray(o, minLen) {
  function _arrayLikeToArray (line 185) | function _arrayLikeToArray(arr, len) {
  function _createForOfIteratorHelperLoose (line 193) | function _createForOfIteratorHelperLoose(o, allowArrayLike) {
  function LuxonError (line 222) | function LuxonError() {
  function InvalidDateTimeError (line 236) | function InvalidDateTimeError(reason) {
  function InvalidIntervalError (line 249) | function InvalidIntervalError(reason) {
  function InvalidDurationError (line 262) | function InvalidDurationError(reason) {
  function ConflictingSpecificationError (line 275) | function ConflictingSpecificationError() {
  function InvalidUnitError (line 288) | function InvalidUnitError(unit) {
  function InvalidArgumentError (line 301) | function InvalidArgumentError() {
  function ZoneIsAbstractError (line 314) | function ZoneIsAbstractError() {
  function isUndefined (line 480) | function isUndefined(o) {
  function isNumber (line 483) | function isNumber(o) {
  function isInteger (line 486) | function isInteger(o) {
  function isString (line 489) | function isString(o) {
  function isDate (line 492) | function isDate(o) {
  function hasRelative (line 496) | function hasRelative() {
  function maybeArray (line 504) | function maybeArray(thing) {
  function bestBy (line 507) | function bestBy(arr, by, compare) {
  function pick (line 524) | function pick(obj, keys) {
  function hasOwnProperty (line 530) | function hasOwnProperty(obj, prop) {
  function integerBetween (line 534) | function integerBetween(thing, bottom, top) {
  function floorMod (line 538) | function floorMod(x, n) {
  function padStart (line 541) | function padStart(input, n) {
  function parseInteger (line 558) | function parseInteger(string) {
  function parseMillis (line 565) | function parseMillis(fraction) {
  function roundTo (line 574) | function roundTo(number, digits, towardZero) {
  function isLeapYear (line 584) | function isLeapYear(year) {
  function daysInYear (line 587) | function daysInYear(year) {
  function daysInMonth (line 590) | function daysInMonth(year, month) {
  function objToLocalTS (line 601) | function objToLocalTS(obj) {
  function weeksInWeekYear (line 611) | function weeksInWeekYear(weekYear) {
  function untruncateYear (line 617) | function untruncateYear(year) {
  function parseZoneInfo (line 623) | function parseZoneInfo(ts, offsetFormat, locale, timeZone) {
  function signedOffset (line 652) | function signedOffset(offHourStr, offMinuteStr) {
  function asNumber (line 664) | function asNumber(value) {
  function normalizeObject (line 669) | function normalizeObject(obj, normalizer) {
  function formatOffset (line 682) | function formatOffset(offset, format) {
  function timeObject (line 701) | function timeObject(obj) {
  function months (line 714) | function months(length) {
  function weekdays (line 738) | function weekdays(length) {
  function eras (line 760) | function eras(length) {
  function meridiemForDateTime (line 775) | function meridiemForDateTime(dt) {
  function weekdayForDateTime (line 778) | function weekdayForDateTime(dt, length) {
  function monthForDateTime (line 781) | function monthForDateTime(dt, length) {
  function eraForDateTime (line 784) | function eraForDateTime(dt, length) {
  function formatRelativeTime (line 787) | function formatRelativeTime(unit, count, numeric, narrow) {
  function stringifyTokens (line 832) | function stringifyTokens(splits, tokenToString) {
  function Formatter (line 934) | function Formatter(locale, formatOpts) {
  function Invalid (line 1365) | function Invalid(reason, explanation) {
  function Zone (line 1388) | function Zone() {}
  function SystemZone (line 1498) | function SystemZone() {
  function makeDTF (line 1579) | function makeDTF(zone) {
  function hackyOffset (line 1605) | function hackyOffset(dtf, date) {
  function partsOffset (line 1617) | function partsOffset(dtf, date) {
  function IANAZone (line 1714) | function IANAZone(name) {
  function FixedOffsetZone (line 1850) | function FixedOffsetZone(offset) {
  function InvalidZone (line 1939) | function InvalidZone(zoneName) {
  function normalizeZone (line 2010) | function normalizeZone(input, defaultZone) {
  function Settings (line 2048) | function Settings() {}
  function getCachedDTF (line 2180) | function getCachedDTF(locString, opts) {
  function getCachedINF (line 2198) | function getCachedINF(locString, opts) {
  function getCachedRTF (line 2216) | function getCachedRTF(locString, opts) {
  function systemLocale (line 2239) | function systemLocale() {
  function parseLocaleString (line 2248) | function parseLocaleString(localeStr) {
  function intlConfigString (line 2277) | function intlConfigString(localeStr, numberingSystem, outputCalendar) {
  function mapMonths (line 2295) | function mapMonths(f) {
  function mapWeekdays (line 2306) | function mapWeekdays(f) {
  function listStuff (line 2317) | function listStuff(loc, length, defaultOK, englishFn, intlFn) {
  function supportsFastNumbers (line 2329) | function supportsFastNumbers(loc) {
  function PolyNumberFormatter (line 2342) | function PolyNumberFormatter(intl, forceSimple, opts) {
  function PolyDateFormatter (line 2377) | function PolyDateFormatter(dt, intl, opts) {
  function PolyRelFormatter (line 2449) | function PolyRelFormatter(intl, isEnglish, opts) {
  function Locale (line 2518) | function Locale(locale, numbering, outputCalendar, specifiedLocale) {
  function combineRegexes (line 2757) | function combineRegexes() {
  function combineExtractors (line 2768) | function combineExtractors() {
  function parse (line 2789) | function parse(s) {
  function simpleParse (line 2812) | function simpleParse() {
  function int (line 2844) | function int(match, pos, fallback) {
  function extractISOYmd (line 2849) | function extractISOYmd(match, cursor) {
  function extractISOTime (line 2858) | function extractISOTime(match, cursor) {
  function extractISOOffset (line 2868) | function extractISOOffset(match, cursor) {
  function extractIANAZone (line 2875) | function extractIANAZone(match, cursor) {
  function extractISODuration (line 2885) | function extractISODuration(match) {
  function fromStrings (line 2933) | function fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, min...
  function extractRFC2822 (line 2953) | function extractRFC2822(match) {
  function preprocessRFC2822 (line 2979) | function preprocessRFC2822(s) {
  function extractRFC1123Or850 (line 2989) | function extractRFC1123Or850(match) {
  function extractASCII (line 3001) | function extractASCII(match) {
  function parseISODate (line 3025) | function parseISODate(s) {
  function parseRFC2822Date (line 3028) | function parseRFC2822Date(s) {
  function parseHTTPDate (line 3031) | function parseHTTPDate(s) {
  function parseISODuration (line 3034) | function parseISODuration(s) {
  function parseISOTimeOnly (line 3038) | function parseISOTimeOnly(s) {
  function parseSQL (line 3045) | function parseSQL(s) {
  function clone$1 (line 3143) | function clone$1(dur, alts, clear) {
  function antiTrunc (line 3157) | function antiTrunc(n) {
  function convert (line 3162) | function convert(matrix, fromMap, fromUnit, toMap, toUnit) {
  function normalizeValues (line 3173) | function normalizeValues(matrix, vals) {
  function Duration (line 3205) | function Duration(config) {
  function eq (line 3832) | function eq(v1, v2) {
  function friendlyDuration (line 3985) | function friendlyDuration(durationish) {
  function validateStartEnd (line 3999) | function validateStartEnd(start, end) {
  function Interval (line 4028) | function Interval(config) {
  function Info (line 4714) | function Info() {}
  function dayDiff (line 4949) | function dayDiff(earlier, later) {
  function highOrderDiffs (line 4960) | function highOrderDiffs(cursor, later, units) {
  function _diff (line 5002) | function _diff (earlier, later, units, opts) {
  function parseDigits (line 5082) | function parseDigits(str) {
  function digitRegex (line 5111) | function digitRegex(_ref, append) {
  function intUnit (line 5123) | function intUnit(regex, post) {
  function fixListRegex (line 5143) | function fixListRegex(s) {
  function stripInsensitivities (line 5149) | function stripInsensitivities(s) {
  function oneOf (line 5155) | function oneOf(strings, startIndex) {
  function offset (line 5171) | function offset(regex, groups) {
  function simple (line 5183) | function simple(regex) {
  function escapeToken (line 5193) | function escapeToken(value) {
  function unitForToken (line 5197) | function unitForToken(token, loc) {
  function tokenForPart (line 5422) | function tokenForPart(part, locale, formatOpts) {
  function buildRegex (line 5450) | function buildRegex(units) {
  function match (line 5459) | function match(input, regex, handlers) {
  function dateTimeFromMatches (line 5485) | function dateTimeFromMatches(matches) {
  function getDummyDateTime (line 5576) | function getDummyDateTime() {
  function maybeExpandMacroToken (line 5584) | function maybeExpandMacroToken(token, locale) {
  function expandMacroTokens (line 5608) | function expandMacroTokens(tokens, locale) {
  function explainFromTokens (line 5620) | function explainFromTokens(locale, input, format) {
  function parseFromTokens (line 5662) | function parseFromTokens(locale, input, format) {
  function unitOutOfRange (line 5674) | function unitOutOfRange(unit, value) {
  function dayOfWeek (line 5678) | function dayOfWeek(year, month, day) {
  function computeOrdinal (line 5683) | function computeOrdinal(year, month, day) {
  function uncomputeOrdinal (line 5687) | function uncomputeOrdinal(year, ordinal) {
  function gregorianToWeek (line 5703) | function gregorianToWeek(gregObj) {
  function weekToGregorian (line 5728) | function weekToGregorian(weekData) {
  function gregorianToOrdinal (line 5757) | function gregorianToOrdinal(gregData) {
  function ordinalToGregorian (line 5767) | function ordinalToGregorian(ordinalData) {
  function hasInvalidWeekData (line 5781) | function hasInvalidWeekData(obj) {
  function hasInvalidOrdinalData (line 5794) | function hasInvalidOrdinalData(obj) {
  function hasInvalidGregorianData (line 5804) | function hasInvalidGregorianData(obj) {
  function hasInvalidTimeData (line 5817) | function hasInvalidTimeData(obj) {
  function unsupportedZone (line 5841) | function unsupportedZone(zone) {
  function possiblyCachedWeekData (line 5846) | function possiblyCachedWeekData(dt) {
  function clone (line 5856) | function clone(inst, alts) {
  function fixOffset (line 5872) | function fixOffset(localTS, o, tz) {
  function tsToObj (line 5896) | function tsToObj(ts, offset) {
  function objToTS (line 5911) | function objToTS(obj, offset, zone) {
  function adjustTime (line 5916) | function adjustTime(inst, dur) {
  function parseDataToDateTime (line 5956) | function parseDataToDateTime(parsed, parsedZone, opts, format, text) {
  function toTechFormat (line 5973) | function toTechFormat(dt, format, allowZ) {
  function toTechTimeFormat (line 5986) | function toTechTimeFormat(dt, _ref) {
  function normalizeUnit (line 6058) | function normalizeUnit(unit) {
  function quickDT (line 6095) | function quickDT(obj, opts) {
  function diffRelative (line 6134) | function diffRelative(start, end, opts) {
  function lastOpts (line 6167) | function lastOpts(argList) {
  function DateTime (line 6206) | function DateTime(config) {
  function friendlyDateTime (line 8343) | function friendlyDateTime(dateTimeish) {
  constant DEFAULT_QUERY_SETTINGS (line 8372) | const DEFAULT_QUERY_SETTINGS = {
  constant DEFAULT_SETTINGS (line 8387) | const DEFAULT_SETTINGS = Object.assign(Object.assign({}, DEFAULT_QUERY_S...
  class Success (line 8397) | class Success {
    method constructor (line 8398) | constructor(value) {
    method map (line 8402) | map(f) {
    method flatMap (line 8405) | flatMap(f) {
    method orElse (line 8408) | orElse(_value) {
    method orElseThrow (line 8411) | orElseThrow(_message) {
  class Failure (line 8415) | class Failure {
    method constructor (line 8416) | constructor(error) {
    method map (line 8420) | map(_f) {
    method flatMap (line 8423) | flatMap(_f) {
    method orElse (line 8426) | orElse(value) {
    method orElseThrow (line 8429) | orElseThrow(message) {
  function success (line 8438) | function success(value) {
  function failure (line 8442) | function failure(error) {
  function flatMap2 (line 8446) | function flatMap2(first, second, f) {
  function map2 (line 8458) | function map2(first, second, f) {
  function r (line 8467) | function r(e){if(t[e])return t[e].exports;var u=t[e]={i:e,l:!1,exports:{...
  function e (line 8467) | function e(n){if(!(this instanceof e))return new e(n);this._=n;}
  function o (line 8467) | function o(n,t){for(var r=0;r<n;r++)t(r);}
  function i (line 8467) | function i(n,t,r){return function(n,t){o(t.length,function(r){n(t[r],r,t...
  function f (line 8467) | function f(n,t){return i(function(t,r,e,u){return t.concat([n(r,e,u)])},...
  function a (line 8467) | function a(n,t){var r={v:0,buf:t};return o(n,function(){var n;r={v:r.v<<...
  function c (line 8467) | function c(){return "undefined"!=typeof Buffer}
  function s (line 8467) | function s(){if(!c())throw new Error("Buffer global does not exist; plea...
  function l (line 8467) | function l(n){s();var t=i(function(n,t){return n+t},0,n);if(t%8!=0)throw...
  function p (line 8467) | function p(n,t){return new e(function(r,e){return s(),e+t>r.length?x(e,t...
  function h (line 8467) | function h(n,t){if("number"!=typeof(r=t)||Math.floor(r)!==r||t<0||t>6)th...
  function d (line 8467) | function d(n){return h("uintBE",n),p("uintBE("+n+")",n).map(function(t){...
  function v (line 8467) | function v(n){return h("uintLE",n),p("uintLE("+n+")",n).map(function(t){...
  function g (line 8467) | function g(n){return h("intBE",n),p("intBE("+n+")",n).map(function(t){re...
  function m (line 8467) | function m(n){return h("intLE",n),p("intLE("+n+")",n).map(function(t){re...
  function y (line 8467) | function y(n){return n instanceof e}
  function E (line 8467) | function E(n){return "[object Array]"==={}.toString.call(n)}
  function w (line 8467) | function w(n){return c()&&Buffer.isBuffer(n)}
  function b (line 8467) | function b(n,t){return {status:!0,index:n,value:t,furthest:-1,expected:[]}}
  function x (line 8467) | function x(n,t){return E(t)||(t=[t]),{status:!1,index:-1,value:null,furt...
  function B (line 8467) | function B(n,t){if(!t)return n;if(n.furthest>t.furthest)return n;var r=n...
  function S (line 8467) | function S(n,t){if(w(n))return {offset:t,line:-1,column:-1};n in j||(j[n...
  function _ (line 8467) | function _(n){if(!y(n))throw new Error("not a parser: "+n)}
  function L (line 8467) | function L(n,t){return "string"==typeof n?n.charAt(t):n[t]}
  function O (line 8467) | function O(n){if("number"!=typeof n)throw new Error("not a number: "+n)}
  function k (line 8467) | function k(n){if("function"!=typeof n)throw new Error("not a function: "...
  function P (line 8467) | function P(n){if("string"!=typeof n)throw new Error("not a string: "+n)}
  function R (line 8467) | function R(n,t){return new Array(t+1).join(n)}
  function U (line 8467) | function U(n,t,r){var e=t-n.length;return e<=0?n:R(r,e)+n}
  function W (line 8467) | function W(n,t,r,e){return {from:n-t>0?n-t:0,to:n+r>e?e:n+r}}
  function D (line 8467) | function D(n,t){var r,e,u,o,a,c=t.index,s=c.offset,l=1;if(s===n.length)r...
  function N (line 8467) | function N(n,t){return ["\n","-- PARSING FAILED "+R("-",50),"\n\n",D(n,t...
  function G (line 8467) | function G(n){return void 0!==n.flags?n.flags:[n.global?"g":"",n.ignoreC...
  function C (line 8467) | function C(){for(var n=[].slice.call(arguments),t=n.length,r=0;r<t;r+=1)...
  function J (line 8467) | function J(){var n=[].slice.call(arguments);if(0===n.length)throw new Er...
  function T (line 8467) | function T(){var n=[].slice.call(arguments),t=n.length;if(0===t)return Y...
  function V (line 8467) | function V(n,t){return H(n,t).or(X([]))}
  function H (line 8467) | function H(n,t){return _(n),_(t),J(n,t.then(n).many(),function(n,t){retu...
  function K (line 8467) | function K(n){P(n);var t="'"+n+"'";return e(function(r,e){var u=e+n.leng...
  function Q (line 8467) | function Q(n,t){!function(n){if(!(n instanceof RegExp))throw new Error("...
  function X (line 8467) | function X(n){return e(function(t,r){return b(r,n)})}
  function Y (line 8467) | function Y(n){return e(function(t,r){return x(r,n)})}
  function Z (line 8467) | function Z(n){if(y(n))return e(function(t,r){var e=n._(t,r);return e.ind...
  function $ (line 8467) | function $(n){return _(n),e(function(t,r){var e=n._(t,r),u=t.slice(r,e.i...
  function nn (line 8467) | function nn(n){return k(n),e(function(t,r){var e=L(t,r);return r<t.lengt...
  function tn (line 8467) | function tn(n,t){arguments.length<2&&(t=n,n=void 0);var r=e(function(n,e...
  function rn (line 8467) | function rn(){return Y("fantasy-land/empty")}
  function normalizeDuration (line 8476) | function normalizeDuration(dur) {
  function stripTime (line 8480) | function stripTime(dt) {
  function extractDate (line 8488) | function extractDate(str) {
  function getParentFolder (line 8501) | function getParentFolder(path) {
  function getFileTitle (line 8505) | function getFileTitle(path) {
  function getExtension (line 8513) | function getExtension(path) {
  function tryOrPropogate (line 8519) | function tryOrPropogate(func) {
  function asyncTryOrPropogate (line 8528) | function asyncTryOrPropogate(func) {
  function escapeRegex (line 8542) | function escapeRegex(str) {
  constant VAR_NAME_CANONICALIZER (line 8546) | const VAR_NAME_CANONICALIZER = parsimmon_umd_min.exports.alt(parsimmon_u...
  function canonicalizeVarName (line 8550) | function canonicalizeVarName(name) {
  constant HEADER_CANONICALIZER (line 8553) | const HEADER_CANONICALIZER = parsimmon_umd_min.exports.alt(parsimmon_umd...
  function normalizeHeaderForLink (line 8562) | function normalizeHeaderForLink(header) {
  class Task (line 8567) | class Task {
    method constructor (line 8568) | constructor(init) {
    method fromObject (line 8573) | static fromObject(obj) {
    method id (line 8576) | id() {
    method markdown (line 8579) | markdown() {
    method withDefaultDates (line 8584) | withDefaultDates(defaultCreated, defaultCompleted) {
    method toObject (line 8593) | toObject(inlineAnnotations = true) {
  class Link (line 8629) | class Link {
    method constructor (line 8630) | constructor(fields) {
    method file (line 8633) | static file(path, embed = false, display) {
    method header (line 8641) | static header(path, header, embed, display) {
    method block (line 8651) | static block(path, blockId, embed, display) {
    method fromObject (line 8660) | static fromObject(object) {
    method equals (line 8664) | equals(other) {
    method toString (line 8667) | toString() {
    method toObject (line 8671) | toObject() {
    method withDisplay (line 8675) | withDisplay(display) {
    method withHeader (line 8679) | withHeader(header) {
    method toFile (line 8683) | toFile() {
    method toEmbed (line 8687) | toEmbed() {
    method markdown (line 8697) | markdown() {
    method fileName (line 8714) | fileName() {
  function toString (line 8721) | function toString(field, setting = DEFAULT_QUERY_SETTINGS, recursive = f...
  function wrapValue (line 8764) | function wrapValue(val) {
  function compareValue (line 8794) | function compareValue(val1, val2, linkNormalizer) {
  function typeOf (line 8905) | function typeOf(val) {
  function isTruthy (line 8911) | function isTruthy(field) {
  function deepCopy (line 8944) | function deepCopy(field) {
  function isString (line 8961) | function isString(val) {
  function isNumber (line 8965) | function isNumber(val) {
  function isDate (line 8969) | function isDate(val) {
  function isDuration (line 8973) | function isDuration(val) {
  function isNull (line 8977) | function isNull(val) {
  function isArray (line 8981) | function isArray(val) {
  function isBoolean (line 8985) | function isBoolean(val) {
  function isLink (line 8989) | function isLink(val) {
  function isTask (line 8993) | function isTask(val) {
  function isHtml (line 8997) | function isHtml(val) {
  function isObject (line 9006) | function isObject(val) {
  function isFunction (line 9016) | function isFunction(val) {
  function base (line 9023) | function base(value) {
  function grouped (line 9027) | function grouped(values) {
  class DataArrayImpl (line 9034) | class DataArrayImpl {
    method constructor (line 9035) | constructor(values, settings, defaultComparator = Values.compareValue) {
    method wrap (line 9041) | static wrap(arr, settings, defaultComparator = Values.compareValue) {
    method lwrap (line 9044) | lwrap(values) {
    method where (line 9047) | where(predicate) {
    method filter (line 9050) | filter(predicate) {
    method map (line 9053) | map(f) {
    method flatMap (line 9056) | flatMap(f) {
    method mutate (line 9067) | mutate(f) {
    method limit (line 9071) | limit(count) {
    method slice (line 9074) | slice(start, end) {
    method concat (line 9077) | concat(other) {
    method indexOf (line 9081) | indexOf(element, fromIndex) {
    method find (line 9085) | find(pred) {
    method findIndex (line 9092) | findIndex(pred, fromIndex) {
    method includes (line 9099) | includes(element) {
    method join (line 9102) | join(sep) {
    method sort (line 9107) | sort(key, direction, comparator) {
    method groupBy (line 9123) | groupBy(key, comparator) {
    method distinct (line 9147) | distinct(key, comparator) {
    method every (line 9164) | every(f) {
    method some (line 9167) | some(f) {
    method none (line 9170) | none(f) {
    method first (line 9173) | first() {
    method last (line 9176) | last() {
    method to (line 9179) | to(key) {
    method into (line 9192) | into(key) {
    method expand (line 9202) | expand(key) {
    method forEach (line 9220) | forEach(f) {
    method array (line 9225) | array() {
    method toString (line 9231) | toString() {
  method [Symbol.iterator] (line 9228) | [Symbol.iterator]() {
  function wrap (line 9285) | function wrap(raw, settings) {
  function from (line 9290) | function from(raw, settings) {
  function convert (line 9299) | function convert(object, settings) {
  function isDataArray (line 9318) | function isDataArray(obj) {
  function currentLocale (line 9325) | function currentLocale() {
  function renderCompactMarkdown (line 9332) | function renderCompactMarkdown(markdown, container, sourcePath, componen...
  function renderList (line 9346) | function renderList(container, elements, component, originFile, settings) {
  function renderTable (line 9356) | function renderTable(container, headers, values, component, originFile, ...
  function renderErrorPre (line 9375) | function renderErrorPre(container, error) {
  function renderMinimalDate (line 9381) | function renderMinimalDate(time, settings) {
  function renderMinimalDuration (line 9389) | function renderMinimalDuration(dur) {
  function renderValue (line 9413) | function renderValue(field, container, originFile, component, settings, ...
  function variable (line 9512) | function variable(name) {
  function literal (line 9516) | function literal(value) {
  function binaryOp (line 9520) | function binaryOp(left, op, right) {
  function index (line 9524) | function index(obj, index) {
  function indexVariable (line 9529) | function indexVariable(name) {
  function lambda (line 9538) | function lambda(args, value) {
  function func (line 9542) | function func(func, args) {
  function list (line 9546) | function list(values) {
  function object (line 9550) | function object(values) {
  function negate (line 9554) | function negate(child) {
  function isCompareOp (line 9558) | function isCompareOp(op) {
  function tag (line 9569) | function tag(tag) {
  function csv (line 9573) | function csv(path) {
  function folder (line 9577) | function folder(prefix) {
  function link (line 9581) | function link(file, incoming) {
  function binaryOp (line 9585) | function binaryOp(left, op, right) {
  function negate (line 9589) | function negate(child) {
  function empty (line 9593) | function empty() {
  constant EMOJI_REGEX (line 9600) | const EMOJI_REGEX = new RegExp(emojiRegex(), "");
  constant DURATION_TYPES (line 9602) | const DURATION_TYPES = {
  constant KEYWORDS (line 9639) | const KEYWORDS = ["FROM", "WHERE", "LIMIT", "GROUP", "FLATTEN"];
  function parseInnerLink (line 9644) | function parseInnerLink(link) {
  function createBinaryParser (line 9662) | function createBinaryParser(child, sep, combine) {
  function chainOpt (line 9673) | function chainOpt(base, ...funcs) {
  constant EXPRESSION (line 9689) | const EXPRESSION = parsimmon_umd_min.exports.createLanguage({
  function parseField (line 9868) | function parseField(text) {
  constant INLINE_FIELD_WRAPPERS (line 9879) | const INLINE_FIELD_WRAPPERS = Object.freeze({
  function findClosing (line 9887) | function findClosing(line, start, open, close) {
  function findSeparator (line 9913) | function findSeparator(line, start) {
  function findSpecificInlineField (line 9924) | function findSpecificInlineField(line, start) {
  function parseInlineValue (line 9942) | function parseInlineValue(value) {
  function extractInlineFields (line 9958) | function extractInlineFields(line) {
  function setInlineField (line 9976) | function setInlineField(source, key, value) {
  class PageMetadata (line 9999) | class PageMetadata {
    method constructor (line 10000) | constructor(path, init) {
    method parseSubtags (line 10010) | static parseSubtags(tag) {
    method name (line 10019) | name() {
    method folder (line 10023) | folder() {
    method extension (line 10027) | extension() {
    method fullTags (line 10031) | fullTags() {
    method fileLinks (line 10041) | fileLinks() {
    method toObject (line 10045) | toObject(index) {
  function findDate (line 10083) | function findDate(file, fields) {
  function parseFrontmatter (line 10106) | function parseFrontmatter(value) {
  function addInlineField (line 10149) | function addInlineField(fields, name, value) {
  constant TASK_REGEX (line 10162) | const TASK_REGEX = /^(\s*)[-*]\s*(\[[ Xx\.]?\])?\s*([^-*].*)$/iu;
  function parsePage (line 10164) | function parsePage(file, cache, markdownData) {
  function u (line 10232) | function u(e,t,i){var r="";"string"==typeof e&&(e=JSON.parse(e)),"string...
  function v (line 10232) | function v(e,t){if(null==e)return "";if(e.constructor===Date)return JSON...
  function e (line 10232) | function e(){if(0!==h.length){var e,t,i,r,n=h[0];if(M(o.before)){var s=o...
  function u (line 10232) | function u(){h.splice(0,1),e();}
  function u (line 10232) | function u(e){this._handle=null,this._finished=!1,this._completed=!1,thi...
  function l (line 10232) | function l(e){var r;(e=e||{}).chunkSize||(e.chunkSize=b.RemoteChunkSize)...
  function c (line 10232) | function c(e){var r,n;(e=e||{}).chunkSize||(e.chunkSize=b.LocalChunkSize...
  function p (line 10232) | function p(e){var i;u.call(this,e=e||{}),this.stream=function(e){return ...
  function g (line 10232) | function g(e){u.call(this,e=e||{});var t=[],i=!0,r=!1;this.pause=functio...
  function i (line 10232) | function i(m){var a,o,h,r=Math.pow(2,53),n=-r,s=/^\s*-?(\d+\.?|\.\d+|\d+...
  function j (line 10232) | function j(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}
  function E (line 10232) | function E(e){var S,O=(e=e||{}).delimiter,x=e.newline,I=e.comments,T=e.s...
  function _ (line 10232) | function _(e){var t=e.data,i=a[t.workerId],r=!1;if(t.error)i.userError(t...
  function m (line 10232) | function m(e,t){var i=a[e];M(i.userComplete)&&i.userComplete(t),i.termin...
  function y (line 10232) | function y(){throw new Error("Not implemented.")}
  function w (line 10232) | function w(e){if("object"!=typeof e||null===e)return e;var t=Array.isArr...
  function v (line 10232) | function v(e,t){return function(){e.apply(t,arguments);}}
  function M (line 10232) | function M(e){return "function"==typeof e}
  function parseCsv (line 10236) | function parseCsv(content) {
  function transferable (line 10259) | function transferable(value) {
  function value (line 10307) | function value(transferable) {
  function decodeBase64 (line 10358) | function decodeBase64(base64, enableUnicode) {
  function createURL (line 10370) | function createURL(base64, sourcemapArg, enableUnicodeArg) {
  function createBase64WorkerFactory (line 10380) | function createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeAr...
  class FileImporter (line 10393) | class FileImporter {
    method constructor (line 10394) | constructor(numWorkers, vault, metadataCache) {
    method reload (line 10414) | reload(file) {
    method finish (line 10437) | finish(path, data, index) {
    method send (line 10455) | send(file, workerId) {
    method nextAvailableWorker (line 10464) | nextAvailableWorker() {
  class IndexMap (line 10471) | class IndexMap {
    method constructor (line 10473) | constructor() {
    method get (line 10478) | get(key) {
    method getInverse (line 10488) | getInverse(value) {
    method set (line 10497) | set(key, values) {
    method delete (line 10510) | delete(key) {
    method rename (line 10522) | rename(oldKey, newKey) {
    method clear (line 10531) | clear() {
  class FullIndex (line 10537) | class FullIndex {
    method constructor (line 10539) | constructor(vault, metadataCache, events) {
    method create (line 10557) | static create(vault, metadata, events) {
    method initialize (line 10561) | initialize() {
    method reload (line 10598) | reload(file) {
    method touch (line 10602) | touch() {
    method reloadInternal (line 10605) | reloadInternal(file, parsed) {
  class PrefixIndexNode (line 10617) | class PrefixIndexNode {
    method constructor (line 10618) | constructor(element) {
    method add (line 10624) | static add(root, path) {
    method remove (line 10636) | static remove(root, path) {
    method find (line 10653) | static find(root, prefix) {
    method gather (line 10666) | static gather(root, filter) {
    method gatherRec (line 10676) | static gatherRec(root, output) {
  class PrefixIndex (line 10684) | class PrefixIndex {
    method constructor (line 10685) | constructor(vault, updateRevision) {
    method create (line 10690) | static create(vault, updateRevision) {
    method initialize (line 10694) | initialize() {
    method get (line 10716) | get(prefix, filter) {
    method pathExists (line 10723) | pathExists(path) {
    method nodeExists (line 10728) | nodeExists(prefix) {
    method resolveRelative (line 10734) | resolveRelative(path, origin) {
  function csv (line 10749) | function csv(path) {
  function markdown (line 10753) | function markdown(path) {
  class CsvCache (line 10763) | class CsvCache {
    method constructor (line 10764) | constructor(vault) {
    method get (line 10769) | get(path) {
    method load (line 10785) | load(path) {
    method clearOldEntries (line 10812) | clearOldEntries() {
  function renderTasks (line 10829) | function renderTasks(container, tasks, originFile, component, vault, set...
  function renderTaskList (line 10847) | function renderTaskList(container, tasks, component, vault, settings) {
  function createCheckbox (line 10890) | function createCheckbox(file, line, text, checked) {
  function addCheckHandler (line 10904) | function addCheckHandler(checkbox, vault, component, settings) {
  function setTaskCheckedInFile (line 10929) | function setTaskCheckedInFile(vault, path, taskLine, taskText, wasChecke...
  function named (line 10986) | function named(name, field) {
  function sortBy (line 10990) | function sortBy(field, dir) {
  constant QUERY_LANGUAGE (line 10997) | const QUERY_LANGUAGE = parsimmon_umd_min.exports.createLanguage({
  function parseQuery (line 11070) | function parseQuery(text) {
  class BinaryOpHandler (line 11082) | class BinaryOpHandler {
    method constructor (line 11083) | constructor() {
    method create (line 11086) | static create() {
    method register (line 11089) | register(left, op, right, func) {
    method registerComm (line 11093) | registerComm(left, op, right, func) {
    method compare (line 11097) | compare(type, compare) {
    method evaluate (line 11106) | evaluate(op, left, right, ctx) {
    method repr (line 11131) | static repr(op, left, right) {
  function createBinaryOps (line 11136) | function createBinaryOps(linkNormalizer) {
  class FunctionBuilder (line 11172) | class FunctionBuilder {
    method constructor (line 11173) | constructor(name) {
    method vararg (line 11179) | vararg(impl) {
    method add1 (line 11184) | add1(argType, impl) {
    method add2 (line 11193) | add2(arg1, arg2, impl) {
    method add3 (line 11202) | add3(arg1, arg2, arg3, impl) {
    method vectorize (line 11211) | vectorize(numArgs, positions) {
    method build (line 11216) | build() {
  function bind (line 11272) | function bind(func, context) {
  function bindAll (line 11277) | function bindAll(funcs, context) {
  constant DEFAULT_FUNCTIONS (line 11710) | const DEFAULT_FUNCTIONS = {
  class Context (line 11771) | class Context {
    method constructor (line 11776) | constructor(linkHandler, settings, globals = {}, binaryOps = createBin...
    method set (line 11784) | set(name, value) {
    method get (line 11789) | get(name) {
    method tryEvaluate (line 11794) | tryEvaluate(field, data = {}) {
    method evaluate (line 11798) | evaluate(field, data = {}) {
  function matchingSourcePaths (line 11994) | function matchingSourcePaths(source, index, originFile = "") {
  function resolvePathData (line 12066) | function resolvePathData(path, index) {
  function resolveCsvData (line 12076) | function resolveCsvData(path, index) {
  function resolveMarkdownData (line 12090) | function resolveMarkdownData(path, index) {
  function resolveSource (line 12102) | function resolveSource(source, index, originFile = "") {
  function iden (line 12119) | function iden(x) {
  function executeCore (line 12123) | function executeCore(rows, context, ops) {
  function executeCoreExtract (line 12279) | function executeCoreExtract(rows, context, ops, fields) {
  function executeList (line 12323) | function executeList(query, index, origin, settings) {
  function executeTable (line 12349) | function executeTable(query, index, origin, settings) {
  function extractTaskGroupings (line 12375) | function extractTaskGroupings(id, rows) {
  function executeTask (line 12391) | function executeTask(query, origin, index, settings) {
  function executeInline (line 12431) | function executeInline(field, origin, index, settings) {
  function defaultLinkHandler (line 12438) | function defaultLinkHandler(index, origin) {
  class DataviewIOApi (line 12463) | class DataviewIOApi {
    method constructor (line 12464) | constructor(api) {
    method csv (line 12468) | csv(path, originFile) {
    method load (line 12481) | load(path, originFile) {
    method normalize (line 12490) | normalize(path, originFile) {
  class DataviewApi (line 12499) | class DataviewApi {
    method constructor (line 12500) | constructor(app, index, settings) {
    method pagePaths (line 12514) | pagePaths(query, originFile) {
    method page (line 12530) | page(path, originFile) {
    method pages (line 12544) | pages(query, originFile) {
    method array (line 12557) | array(raw) {
    method isArray (line 12565) | isArray(raw) {
    method fileLink (line 12569) | fileLink(path, embed = false, display) {
    method date (line 12573) | date(pathlike) {
    method compare (line 12580) | compare(a, b) {
    method equal (line 12584) | equal(a, b) {
    method list (line 12591) | list(values, container, component, filePath) {
    method table (line 12599) | table(headers, values, container, component, filePath) {
    method taskList (line 12607) | taskList(tasks, groupByFile = true, container, component, filePath = "...
    method renderValue (line 12634) | renderValue(value, container, component, filePath, inline = false) {
  class DataviewInlineIOApi (line 12643) | class DataviewInlineIOApi {
    method constructor (line 12644) | constructor(api, currentFile) {
    method csv (line 12649) | csv(path, originFile) {
    method load (line 12655) | load(path, originFile) {
    method normalize (line 12661) | normalize(path, originFile) {
  class DataviewInlineApi (line 12665) | class DataviewInlineApi {
    method constructor (line 12666) | constructor(index, component, container, app, settings, currentFilePat...
    method pagePaths (line 12687) | pagePaths(query) {
    method page (line 12691) | page(path) {
    method pages (line 12695) | pages(query) {
    method current (line 12699) | current() {
    method array (line 12709) | array(raw) {
    method isArray (line 12713) | isArray(raw) {
    method fileLink (line 12717) | fileLink(path, embed = false, display) {
    method date (line 12721) | date(pathlike) {
    method compare (line 12728) | compare(a, b) {
    method equal (line 12732) | equal(a, b) {
    method el (line 12739) | el(el, text) {
    method header (line 12749) | header(level, text) {
    method paragraph (line 12776) | paragraph(text) {
    method span (line 12780) | span(text) {
    method view (line 12787) | view(viewName, input) {
    method list (line 12831) | list(values) {
    method table (line 12835) | table(headers, values) {
    method taskList (line 12839) | taskList(tasks, groupByFile = true) {
  function evalInContext (line 12846) | function evalInContext(script, context) {
  function asyncEvalInContext (line 12854) | function asyncEvalInContext(script, context) {
  function makeApiContext (line 12865) | function makeApiContext(index, component, app, settings, container, orig...
  class DataviewPlugin (line 12869) | class DataviewPlugin extends obsidian.Plugin {
    method onload (line 12870) | onload() {
    method onunload (line 12905) | onunload() { }
    method registerPriorityMarkdownPostProcessor (line 12906) | registerPriorityMarkdownPostProcessor(priority, processor) {
    method registerHighPriorityCodeblockProcessor (line 12915) | registerHighPriorityCodeblockProcessor(language, processor) {
    method dataview (line 12944) | dataview(source, el, component, sourcePath) {
    method dataviewjs (line 12967) | dataviewjs(source, el, component, sourcePath) {
    method dataviewInline (line 12973) | dataviewInline(el, component, sourcePath) {
    method updateSettings (line 13000) | updateSettings(settings) {
    method withApi (line 13007) | withApi(callback) {
  class DataviewSettingsTab (line 13012) | class DataviewSettingsTab extends obsidian.PluginSettingTab {
    method constructor (line 13013) | constructor(app, plugin) {
    method display (line 13017) | display() {
  class DataviewListRenderer (line 13172) | class DataviewListRenderer extends obsidian.MarkdownRenderChild {
    method constructor (line 13173) | constructor(query, container, index, origin, settings) {
    method onload (line 13181) | onload() {
    method render (line 13190) | render() {
  class DataviewTableRenderer (line 13224) | class DataviewTableRenderer extends obsidian.MarkdownRenderChild {
    method constructor (line 13225) | constructor(query, container, index, origin, settings) {
    method onload (line 13233) | onload() {
    method render (line 13242) | render() {
  class DataviewTaskRenderer (line 13270) | class DataviewTaskRenderer extends obsidian.MarkdownRenderChild {
    method constructor (line 13271) | constructor(query, container, index, origin, vault, settings) {
    method onload (line 13280) | onload() {
    method render (line 13291) | render() {
  class DataviewInlineRenderer (line 13320) | class DataviewInlineRenderer extends obsidian.MarkdownRenderChild {
    method constructor (line 13321) | constructor(field, fieldText, container, target, index, origin, settin...
    method onload (line 13331) | onload() {
    method render (line 13341) | render() {
  class DataviewJSRenderer (line 13356) | class DataviewJSRenderer extends obsidian.MarkdownRenderChild {
    method constructor (line 13357) | constructor(script, container, app, index, origin, settings) {
    method onload (line 13366) | onload() {
    method render (line 13375) | render() {
  class DataviewInlineJSRenderer (line 13395) | class DataviewInlineJSRenderer extends obsidian.MarkdownRenderChild {
    method constructor (line 13396) | constructor(script, container, target, app, index, origin, settings) {
    method onload (line 13406) | onload() {
    method render (line 13416) | render() {
  function onIndexChange (line 13444) | function onIndexChange(index, interval, component, action) {
  function replaceInlineFields (line 13455) | function replaceInlineFields(ctx, container, originFile, settings) {

FILE: .obsidian/plugins/hotkeysplus-obsidian/main.js
  function __extends (line 28) | function __extends(d, b) {
  function HotkeysPlus (line 38) | function HotkeysPlus() {

FILE: .obsidian/plugins/maximise-active-pane-obsidian/main.js
  function __extends (line 28) | function __extends(d, b) {
  function __awaiter (line 36) | function __awaiter(thisArg, _arguments, P, generator) {
  function __generator (line 46) | function __generator(thisArg, body) {
  function PluginBase (line 76) | function PluginBase() {
  function MaximiseActivePanePlugin (line 139) | function MaximiseActivePanePlugin() {

FILE: .obsidian/plugins/nldates-obsidian/main.js
  function _interopDefaultLegacy (line 5) | function _interopDefaultLegacy (e) { return e && typeof e === 'object' &...
  function __extends (line 32) | function __extends(d, b) {
  function __awaiter (line 40) | function __awaiter(thisArg, _arguments, P, generator) {
  function __generator (line 50) | function __generator(thisArg, body) {
  function getDefaultExportFromCjs (line 80) | function getDefaultExportFromCjs (x) {
  function createCommonjsModule (line 84) | function createCommonjsModule(fn, basedir, module) {
  function commonjsRequire (line 94) | function commonjsRequire () {
  function shouldUsePeriodicNotesSettings (line 108) | function shouldUsePeriodicNotesSettings(periodicity) {
  function getDailyNoteSettings (line 117) | function getDailyNoteSettings() {
  function getWeeklyNoteSettings (line 144) | function getWeeklyNoteSettings() {
  function getMonthlyNoteSettings (line 173) | function getMonthlyNoteSettings() {
  function join (line 192) | function join(...partSegments) {
  function basename (line 216) | function basename(fullPath) {
  function ensureFolderExists (line 222) | async function ensureFolderExists(path) {
  function getNotePath (line 232) | async function getNotePath(directory, filename) {
  function getTemplateInfo (line 240) | async function getTemplateInfo(template) {
  function getDateUID (line 264) | function getDateUID(date, granularity = "day") {
  function removeEscapedCharacters (line 268) | function removeEscapedCharacters(format) {
  function isFormatAmbiguous (line 276) | function isFormatAmbiguous(format, granularity) {
  function getDateFromFile (line 284) | function getDateFromFile(file, granularity) {
  function getDateFromPath (line 287) | function getDateFromPath(path, granularity) {
  function getDateFromFilename (line 290) | function getDateFromFilename(filename, granularity) {
  class DailyNotesFolderMissingError (line 314) | class DailyNotesFolderMissingError extends Error {
  function createDailyNote (line 323) | async function createDailyNote(date) {
  function getDailyNote (line 362) | function getDailyNote(date, dailyNotes) {
  function getAllDailyNotes (line 365) | function getAllDailyNotes() {
  class WeeklyNotesFolderMissingError (line 388) | class WeeklyNotesFolderMissingError extends Error {
  function getDaysOfWeek (line 390) | function getDaysOfWeek() {
  function getDayOfWeekNumericalValue (line 409) | function getDayOfWeekNumericalValue(dayOfWeekName) {
  function createWeeklyNote (line 412) | async function createWeeklyNote(date) {
  function getWeeklyNote (line 450) | function getWeeklyNote(date, weeklyNotes) {
  function getAllWeeklyNotes (line 453) | function getAllWeeklyNotes() {
  class MonthlyNotesFolderMissingError (line 476) | class MonthlyNotesFolderMissingError extends Error {
  function createMonthlyNote (line 485) | async function createMonthlyNote(date) {
  function getMonthlyNote (line 520) | function getMonthlyNote(date, monthlyNotes) {
  function getAllMonthlyNotes (line 523) | function getAllMonthlyNotes() {
  function appHasDailyNotesPluginLoaded (line 546) | function appHasDailyNotesPluginLoaded() {
  function appHasWeeklyNotesPluginLoaded (line 561) | function appHasWeeklyNotesPluginLoaded() {
  function appHasMonthlyNotesPluginLoaded (line 571) | function appHasMonthlyNotesPluginLoaded() {
  function getPeriodicNoteSettings (line 577) | function getPeriodicNoteSettings(granularity) {
  function createPeriodicNote (line 585) | function createPeriodicNote(granularity, date) {
  function DatePickerModal (line 622) | function DatePickerModal(app, plugin) {
  function repeatedTimeunitPattern (line 715) | function repeatedTimeunitPattern(prefix, singleTimeunitPattern) {
  function extractTerms (line 720) | function extractTerms(dictionary) {
  function matchAnyPattern (line 734) | function matchAnyPattern(dictionary) {
  function d (line 745) | function d(t){this.$L=D(t.locale,null,!0),this.parse(t);}
  function findMostLikelyADYear (line 755) | function findMostLikelyADYear(yearNumber) {
  function findYearClosestToRef (line 767) | function findYearClosestToRef(refDate, day, month) {
  function parseNumberPattern (line 915) | function parseNumberPattern(match) {
  function parseOrdinalNumberPattern (line 939) | function parseOrdinalNumberPattern(match) {
  function parseYear (line 949) | function parseYear(match) {
  function parseTimeUnits (line 969) | function parseTimeUnits(timeunitText) {
  function collectDateTimeFragment (line 981) | function collectDateTimeFragment(fragments, match) {
  function assignTheNextDay (line 995) | function assignTheNextDay(component, targetDayJs) {
  function assignSimilarDate (line 1001) | function assignSimilarDate(component, targetDayJs) {
  function assignSimilarTime (line 1007) | function assignSimilarTime(component, targetDayJs) {
  function implySimilarTime (line 1015) | function implySimilarTime(component, targetDayJs) {
  class ParsingComponents (line 1035) | class ParsingComponents {
    method constructor (line 1036) | constructor(refDate, knownComponents) {
    method get (line 1053) | get(component) {
    method isCertain (line 1062) | isCertain(component) {
    method getCertainComponents (line 1065) | getCertainComponents() {
    method imply (line 1068) | imply(component, value) {
    method assign (line 1075) | assign(component, value) {
    method delete (line 1080) | delete(component) {
    method clone (line 1084) | clone() {
    method isOnlyDate (line 1096) | isOnlyDate() {
    method isOnlyTime (line 1099) | isOnlyTime() {
    method isOnlyWeekdayComponent (line 1102) | isOnlyWeekdayComponent() {
    method isOnlyDayMonthComponent (line 1105) | isOnlyDayMonthComponent() {
    method isValidDate (line 1108) | isValidDate() {
    method toString (line 1122) | toString() {
    method dayjs (line 1125) | dayjs() {
    method date (line 1128) | date() {
    method dateWithoutTimezoneAdjustment (line 1132) | dateWithoutTimezoneAdjustment() {
    method getTimezoneAdjustmentMinute (line 1137) | getTimezoneAdjustmentMinute(date) {
    method createRelativeFromRefDate (line 1144) | static createRelativeFromRefDate(refDate, fragments) {
  class ParsingResult (line 1185) | class ParsingResult {
    method constructor (line 1186) | constructor(refDate, index, text, start, end) {
    method clone (line 1193) | clone() {
    method date (line 1199) | date() {
    method toString (line 1202) | toString() {
  class AbstractParserWithWordBoundaryChecking (line 1212) | class AbstractParserWithWordBoundaryChecking {
    method constructor (line 1213) | constructor() {
    method pattern (line 1217) | pattern(context) {
    method extract (line 1226) | extract(context, match) {
  class ENTimeUnitWithinFormatParser (line 1247) | class ENTimeUnitWithinFormatParser extends AbstractParserWithWordBoundar...
    method innerPattern (line 1248) | innerPattern(context) {
    method innerExtract (line 1251) | innerExtract(context, match) {
  class ENMonthNameLittleEndianParser (line 1286) | class ENMonthNameLittleEndianParser extends AbstractParserWithWordBounda...
    method innerPattern (line 1287) | innerPattern() {
    method innerExtract (line 1290) | innerExtract(context, match) {
  class ENMonthNameMiddleEndianParser (line 1343) | class ENMonthNameMiddleEndianParser extends AbstractParserWithWordBounda...
    method innerPattern (line 1344) | innerPattern() {
    method innerExtract (line 1347) | innerExtract(context, match) {
  class ENMonthNameParser (line 1396) | class ENMonthNameParser extends AbstractParserWithWordBoundary.AbstractP...
    method innerPattern (line 1397) | innerPattern() {
    method innerExtract (line 1400) | innerExtract(context, match) {
  class ENCasualYearMonthDayParser (line 1436) | class ENCasualYearMonthDayParser extends AbstractParserWithWordBoundary....
    method innerPattern (line 1437) | innerPattern() {
    method innerExtract (line 1440) | innerExtract(context, match) {
  class ENSlashMonthFormatParser (line 1465) | class ENSlashMonthFormatParser extends AbstractParserWithWordBoundary.Ab...
    method innerPattern (line 1466) | innerPattern() {
    method innerExtract (line 1469) | innerExtract(context, match) {
  function primaryTimePattern (line 1482) | function primaryTimePattern(primaryPrefix, primarySuffix) {
  function followingTimePatten (line 1498) | function followingTimePatten(followingPhase, followingSuffix) {
  class AbstractTimeExpressionParser (line 1517) | class AbstractTimeExpressionParser {
    method constructor (line 1518) | constructor(strictMode = false) {
    method primarySuffix (line 1527) | primarySuffix() {
    method followingSuffix (line 1530) | followingSuffix() {
    method pattern (line 1533) | pattern(context) {
    method extract (line 1536) | extract(context, match) {
    method extractPrimaryTimeComponents (line 1559) | extractPrimaryTimeComponents(context, match, strict = false) {
    method extractFollowingTimeComponents (line 1630) | extractFollowingTimeComponents(context, match, result) {
    method checkAndReturnWithoutFollowingPattern (line 1722) | checkAndReturnWithoutFollowingPattern(result) {
    method checkAndReturnWithFollowingPattern (line 1742) | checkAndReturnWithFollowingPattern(result) {
    method getPrimaryTimePatternThroughCache (line 1764) | getPrimaryTimePatternThroughCache() {
    method getFollowingTimePatternThroughCache (line 1775) | getFollowingTimePatternThroughCache() {
  class ENTimeExpressionParser (line 1794) | class ENTimeExpressionParser extends AbstractTimeExpressionParser_1.Abst...
    method constructor (line 1795) | constructor(strictMode) {
    method followingPhase (line 1798) | followingPhase() {
    method primaryPrefix (line 1801) | primaryPrefix() {
    method primarySuffix (line 1804) | primarySuffix() {
    method extractPrimaryTimeComponents (line 1807) | extractPrimaryTimeComponents(context, match) {
  function reverseTimeUnits (line 1844) | function reverseTimeUnits(timeUnits) {
  function addImpliedTimeUnits (line 1852) | function addImpliedTimeUnits(components, timeUnits) {
  class ENTimeUnitAgoFormatParser (line 1881) | class ENTimeUnitAgoFormatParser extends AbstractParserWithWordBoundary.A...
    method constructor (line 1882) | constructor(strictMode) {
    method innerPattern (line 1886) | innerPattern() {
    method innerExtract (line 1889) | innerExtract(context, match) {
  class ENTimeUnitLaterFormatParser (line 1906) | class ENTimeUnitLaterFormatParser extends AbstractParserWithWordBoundary...
    method constructor (line 1907) | constructor(strictMode) {
    method innerPattern (line 1911) | innerPattern() {
    method innerExtract (line 1914) | innerExtract(context, match) {
  class Filter (line 1925) | class Filter {
    method refine (line 1926) | refine(context, results) {
  class MergingRefiner (line 1931) | class MergingRefiner {
    method refine (line 1932) | refine(context, results) {
  class AbstractMergeDateRangeRefiner (line 1968) | class AbstractMergeDateRangeRefiner extends abstractRefiners.MergingRefi...
    method shouldMergeResults (line 1969) | shouldMergeResults(textBetween, currentResult, nextResult) {
    method mergeResults (line 1972) | mergeResults(textBetween, fromResult, toResult) {
  class ENMergeDateRangeRefiner (line 2026) | class ENMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1$1....
    method patternBetween (line 2027) | patternBetween() {
  function mergeDateTimeResult (line 2038) | function mergeDateTimeResult(dateResult, timeResult) {
  function mergeDateTimeComponent (line 2060) | function mergeDateTimeComponent(dateComponent, timeComponent) {
  class ENMergeDateTimeRefiner (line 2111) | class ENMergeDateTimeRefiner extends abstractRefiners.MergingRefiner {
    method shouldMergeResults (line 2112) | shouldMergeResults(textBetween, currentResult, nextResult) {
    method mergeResults (line 2117) | mergeResults(textBetween, currentResult, nextResult) {
    method patternBetween (line 2136) | patternBetween() {
  class ENMergeDateTimeRefiner (line 2135) | class ENMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.defa...
    method shouldMergeResults (line 2112) | shouldMergeResults(textBetween, currentResult, nextResult) {
    method mergeResults (line 2117) | mergeResults(textBetween, currentResult, nextResult) {
    method patternBetween (line 2136) | patternBetween() {
  class ExtractTimezoneAbbrRefiner (line 2339) | class ExtractTimezoneAbbrRefiner {
    method constructor (line 2340) | constructor(timezoneOverrides) {
    method refine (line 2343) | refine(context, results) {
  class ExtractTimezoneOffsetRefiner (line 2385) | class ExtractTimezoneOffsetRefiner {
    method refine (line 2386) | refine(context, results) {
  class OverlapRemovalRefiner (line 2419) | class OverlapRemovalRefiner {
    method refine (line 2420) | refine(context, results) {
  class ForwardDateRefiner (line 2453) | class ForwardDateRefiner {
    method refine (line 2454) | refine(context, results) {
  class UnlikelyFormatFilter (line 2512) | class UnlikelyFormatFilter extends abstractRefiners.Filter {
    method constructor (line 2513) | constructor(strictMode) {
    method isValid (line 2517) | isValid(context, result) {
    method isStrictModeValid (line 2541) | isStrictModeValid(context, result) {
  class ISOFormatParser (line 2583) | class ISOFormatParser extends AbstractParserWithWordBoundary.AbstractPar...
    method innerPattern (line 2584) | innerPattern() {
    method innerExtract (line 2587) | innerExtract(context, match) {
  class MergeWeekdayComponentRefiner (line 2629) | class MergeWeekdayComponentRefiner extends abstractRefiners.MergingRefin...
    method mergeResults (line 2630) | mergeResults(textBetween, currentResult, nextResult) {
    method shouldMergeResults (line 2640) | shouldMergeResults(textBetween, currentResult, nextResult) {
  function includeCommonConfiguration (line 2663) | function includeCommonConfiguration(configuration, strictMode = false) {
  function now (line 2687) | function now(refDate) {
  function today (line 2695) | function today(refDate) {
  function yesterday (line 2703) | function yesterday(refDate) {
  function tomorrow (line 2712) | function tomorrow(refDate) {
  function tonight (line 2719) | function tonight(refDate, implyHour = 22) {
  class ENCasualDateParser (line 2759) | class ENCasualDateParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 2760) | innerPattern(context) {
    method innerExtract (line 2763) | innerExtract(context, match) {
  class ENCasualTimeParser (line 2805) | class ENCasualTimeParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 2806) | innerPattern() {
    method innerExtract (line 2809) | innerExtract(context, match) {
  function toDayJSWeekday (line 2850) | function toDayJSWeekday(refDate, offset, modifier) {
  function toDayJSClosestWeekday (line 2869) | function toDayJSClosestWeekday(refDate, offset) {
  class ENWeekdayParser (line 2902) | class ENWeekdayParser extends AbstractParserWithWordBoundary.AbstractPar...
    method innerPattern (line 2903) | innerPattern() {
    method innerExtract (line 2906) | innerExtract(context, match) {
  class ENRelativeDateFormatParser (line 2949) | class ENRelativeDateFormatParser extends AbstractParserWithWordBoundary....
    method innerPattern (line 2950) | innerPattern() {
    method innerExtract (line 2953) | innerExtract(context, match) {
  class Chrono (line 2999) | class Chrono {
    method constructor (line 3000) | constructor(configuration) {
    method clone (line 3005) | clone() {
    method parseDate (line 3011) | parseDate(text, referenceDate, option) {
    method parse (line 3015) | parse(text, referenceDate, option) {
    method executeParser (line 3030) | static executeParser(context, parser) {
  class ParsingContext (line 3065) | class ParsingContext {
    method constructor (line 3066) | constructor(text, refDate, option) {
    method createParsingComponents (line 3071) | createParsingComponents(components) {
    method createParsingResult (line 3077) | createParsingResult(index, textOrEndIndex, startComponents, endCompone...
    method debug (line 3083) | debug(block) {
  class SlashDateFormatParser (line 3110) | class SlashDateFormatParser {
    method constructor (line 3111) | constructor(littleEndian) {
    method pattern (line 3115) | pattern() {
    method extract (line 3118) | extract(context, match) {
  class ENTimeUnitCasualRelativeFormatParser (line 3171) | class ENTimeUnitCasualRelativeFormatParser extends AbstractParserWithWor...
    method innerPattern (line 3172) | innerPattern() {
    method innerExtract (line 3175) | innerExtract(context, match) {
  function parse (line 3219) | function parse(text, ref, option) {
  function parseDate (line 3223) | function parseDate(text, ref, option) {
  function createCasualConfiguration (line 3227) | function createCasualConfiguration(littleEndian = false) {
  function createConfiguration (line 3237) | function createConfiguration(strictMode = true, littleEndian = false) {
  class DETimeExpressionParser (line 3261) | class DETimeExpressionParser extends AbstractTimeExpressionParser_1.Abst...
    method primaryPrefix (line 3262) | primaryPrefix() {
    method followingPhase (line 3265) | followingPhase() {
    method primarySuffix (line 3268) | primarySuffix() {
    method extractPrimaryTimeComponents (line 3271) | extractPrimaryTimeComponents(context, match) {
  function parseNumberPattern (line 3398) | function parseNumberPattern(match) {
  function parseYear (line 3422) | function parseYear(match) {
  function parseTimeUnits (line 3436) | function parseTimeUnits(timeunitText) {
  function collectDateTimeFragment (line 3448) | function collectDateTimeFragment(fragments, match) {
  class DEWeekdayParser (line 3471) | class DEWeekdayParser extends AbstractParserWithWordBoundary.AbstractPar...
    method innerPattern (line 3472) | innerPattern() {
    method innerExtract (line 3475) | innerExtract(context, match) {
  class DEMergeDateRangeRefiner (line 3511) | class DEMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1$1....
    method patternBetween (line 3512) | patternBetween() {
  class DEMergeDateTimeRefiner (line 3525) | class DEMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.defa...
    method patternBetween (line 3526) | patternBetween() {
  class DECasualTimeParser (line 3543) | class DECasualTimeParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 3544) | innerPattern(context) {
    method innerExtract (line 3547) | innerExtract(context, match) {
    method extractTimeComponents (line 3554) | static extractTimeComponents(component, timeKeywordPattern) {
  class DECasualDateParser (line 3643) | class DECasualDateParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 3644) | innerPattern(context) {
    method innerExtract (line 3647) | innerExtract(context, match) {
  class DEMonthNameLittleEndianParser (line 3714) | class DEMonthNameLittleEndianParser extends AbstractParserWithWordBounda...
    method innerPattern (line 3715) | innerPattern() {
    method innerExtract (line 3718) | innerExtract(context, match) {
  function parse (line 3766) | function parse(text, ref, option) {
  function parseDate (line 3770) | function parseDate(text, ref, option) {
  function createCasualConfiguration (line 3774) | function createCasualConfiguration(littleEndian = true) {
  function createConfiguration (line 3781) | function createConfiguration(strictMode = true, littleEndian = true) {
  class FRCasualDateParser (line 3825) | class FRCasualDateParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 3826) | innerPattern(context) {
    method innerExtract (line 3829) | innerExtract(context, match) {
  class FRCasualTimeParser (line 3864) | class FRCasualTimeParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 3865) | innerPattern(context) {
    method innerExtract (line 3868) | innerExtract(context, match) {
  class FRTimeExpressionParser (line 3907) | class FRTimeExpressionParser extends AbstractTimeExpressionParser_1.Abst...
    method primaryPrefix (line 3908) | primaryPrefix() {
    method followingPhase (line 3911) | followingPhase() {
    method extractPrimaryTimeComponents (line 3914) | extractPrimaryTimeComponents(context, match) {
  class FRMergeDateTimeRefiner (line 3930) | class FRMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.defa...
    method patternBetween (line 3931) | patternBetween() {
  class FRMergeDateRangeRefiner (line 3944) | class FRMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1$1....
    method patternBetween (line 3945) | patternBetween() {
  function parseNumberPattern (line 4053) | function parseNumberPattern(match) {
  function parseOrdinalNumberPattern (line 4071) | function parseOrdinalNumberPattern(match) {
  function parseYear (line 4078) | function parseYear(match) {
  function parseTimeUnits (line 4102) | function parseTimeUnits(timeunitText) {
  function collectDateTimeFragment (line 4114) | function collectDateTimeFragment(fragments, match) {
  class FRWeekdayParser (line 4135) | class FRWeekdayParser extends AbstractParserWithWordBoundary.AbstractPar...
    method innerPattern (line 4136) | innerPattern() {
    method innerExtract (line 4139) | innerExtract(context, match) {
  class FRSpecificTimeExpressionParser (line 4187) | class FRSpecificTimeExpressionParser {
    method pattern (line 4188) | pattern(context) {
    method extract (line 4191) | extract(context, match) {
    method extractTimeComponent (line 4212) | static extractTimeComponent(extractingComponents, match) {
  class FRMonthNameLittleEndianParser (line 4287) | class FRMonthNameLittleEndianParser extends AbstractParserWithWordBounda...
    method innerPattern (line 4288) | innerPattern() {
    method innerExtract (line 4291) | innerExtract(context, match) {
  class FRTimeUnitAgoFormatParser (line 4326) | class FRTimeUnitAgoFormatParser extends AbstractParserWithWordBoundary.A...
    method constructor (line 4327) | constructor() {
    method innerPattern (line 4330) | innerPattern() {
    method innerExtract (line 4333) | innerExtract(context, match) {
    method constructor (line 4367) | constructor() {
    method innerPattern (line 4370) | innerPattern() {
    method innerExtract (line 4377) | innerExtract(context, match) {
  class FRTimeUnitWithinFormatParser (line 4347) | class FRTimeUnitWithinFormatParser extends AbstractParserWithWordBoundar...
    method innerPattern (line 4348) | innerPattern() {
    method innerExtract (line 4351) | innerExtract(context, match) {
  class FRTimeUnitAgoFormatParser (line 4366) | class FRTimeUnitAgoFormatParser extends AbstractParserWithWordBoundary.A...
    method constructor (line 4327) | constructor() {
    method innerPattern (line 4330) | innerPattern() {
    method innerExtract (line 4333) | innerExtract(context, match) {
    method constructor (line 4367) | constructor() {
    method innerPattern (line 4370) | innerPattern() {
    method innerExtract (line 4377) | innerExtract(context, match) {
  function parse (line 4418) | function parse(text, ref, option) {
  function parseDate (line 4422) | function parseDate(text, ref, option) {
  function createCasualConfiguration (line 4426) | function createCasualConfiguration(littleEndian = true) {
  function createConfiguration (line 4434) | function createConfiguration(strictMode = true, littleEndian = true) {
  function toHankaku (line 4454) | function toHankaku(text) {
  function alphaNum (line 4463) | function alphaNum(token) {
  class JPStandardParser (line 4483) | class JPStandardParser {
    method pattern (line 4484) | pattern() {
    method extract (line 4487) | extract(context, match) {
  class JPMergeDateRangeRefiner (line 4528) | class JPMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1$1....
    method patternBetween (line 4529) | patternBetween() {
  class JPCasualDateParser (line 4564) | class JPCasualDateParser {
    method pattern (line 4565) | pattern() {
    method extract (line 4568) | extract(context, match) {
  function parse (line 4610) | function parse(text, ref, option) {
  function parseDate (line 4614) | function parseDate(text, ref, option) {
  function createCasualConfiguration (line 4618) | function createCasualConfiguration() {
  function createConfiguration (line 4624) | function createConfiguration() {
  function parseYear (line 4697) | function parseYear(match) {
  class PTWeekdayParser (line 4734) | class PTWeekdayParser extends AbstractParserWithWordBoundary.AbstractPar...
    method innerPattern (line 4735) | innerPattern() {
    method innerExtract (line 4738) | innerExtract(context, match) {
  class PTTimeExpressionParser (line 4773) | class PTTimeExpressionParser extends AbstractTimeExpressionParser_1.Abst...
    method primaryPrefix (line 4774) | primaryPrefix() {
    method followingPhase (line 4777) | followingPhase() {
  class PTMergeDateTimeRefiner (line 4790) | class PTMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.defa...
    method patternBetween (line 4791) | patternBetween() {
  class PTMergeDateRangeRefiner (line 4804) | class PTMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1$1....
    method patternBetween (line 4805) | patternBetween() {
  class PTMonthNameLittleEndianParser (line 4829) | class PTMonthNameLittleEndianParser extends AbstractParserWithWordBounda...
    method innerPattern (line 4830) | innerPattern() {
    method innerExtract (line 4833) | innerExtract(context, match) {
  class PTCasualDateParser (line 4885) | class PTCasualDateParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 4886) | innerPattern(context) {
    method innerExtract (line 4889) | innerExtract(context, match) {
  class PTCasualTimeParser (line 4918) | class PTCasualTimeParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 4919) | innerPattern() {
    method innerExtract (line 4922) | innerExtract(context, match) {
  function parse (line 4974) | function parse(text, ref, option) {
  function parseDate (line 4978) | function parseDate(text, ref, option) {
  function createCasualConfiguration (line 4982) | function createCasualConfiguration(littleEndian = true) {
  function createConfiguration (line 4989) | function createConfiguration(strictMode = true, littleEndian = true) {
  class NLMergeDateRangeRefiner (line 5009) | class NLMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1$1....
    method patternBetween (line 5010) | patternBetween() {
  class NLMergeDateTimeRefiner (line 5023) | class NLMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.defa...
    method patternBetween (line 5024) | patternBetween() {
  class NLCasualDateParser (line 5054) | class NLCasualDateParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 5055) | innerPattern(context) {
    method innerExtract (line 5058) | innerExtract(context, match) {
  class NLCasualTimeParser (line 5089) | class NLCasualTimeParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 5090) | innerPattern() {
    method innerExtract (line 5093) | innerExtract(context, match) {
  function parseNumberPattern (line 5284) | function parseNumberPattern(match) {
  function parseOrdinalNumberPattern (line 5299) | function parseOrdinalNumberPattern(match) {
  function parseYear (line 5309) | function parseYear(match) {
  function parseTimeUnits (line 5325) | function parseTimeUnits(timeunitText) {
  function collectDateTimeFragment (line 5337) | function collectDateTimeFragment(fragments, match) {
  class NLTimeUnitWithinFormatParser (line 5349) | class NLTimeUnitWithinFormatParser extends AbstractParserWithWordBoundar...
    method innerPattern (line 5350) | innerPattern() {
    method innerExtract (line 5353) | innerExtract(context, match) {
  class NLWeekdayParser (line 5375) | class NLWeekdayParser extends AbstractParserWithWordBoundary.AbstractPar...
    method innerPattern (line 5376) | innerPattern() {
    method innerExtract (line 5379) | innerExtract(context, match) {
  class NLMonthNameMiddleEndianParser (line 5436) | class NLMonthNameMiddleEndianParser extends AbstractParserWithWordBounda...
    method innerPattern (line 5437) | innerPattern() {
    method innerExtract (line 5440) | innerExtract(context, match) {
  class NLMonthNameParser (line 5488) | class NLMonthNameParser extends AbstractParserWithWordBoundary.AbstractP...
    method innerPattern (line 5489) | innerPattern() {
    method innerExtract (line 5492) | innerExtract(context, match) {
  class NLSlashMonthFormatParser (line 5518) | class NLSlashMonthFormatParser extends AbstractParserWithWordBoundary.Ab...
    method innerPattern (line 5519) | innerPattern() {
    method innerExtract (line 5522) | innerExtract(context, match) {
  class NLTimeExpressionParser (line 5534) | class NLTimeExpressionParser extends AbstractTimeExpressionParser_1.Abst...
    method primaryPrefix (line 5535) | primaryPrefix() {
    method followingPhase (line 5538) | followingPhase() {
    method extractPrimaryTimeComponents (line 5541) | extractPrimaryTimeComponents(context, match) {
  class NLCasualYearMonthDayParser (line 5564) | class NLCasualYearMonthDayParser extends AbstractParserWithWordBoundary....
    method innerPattern (line 5565) | innerPattern() {
    method innerExtract (line 5568) | innerExtract(context, match) {
  class NLCasualDateTimeParser (line 5598) | class NLCasualDateTimeParser extends AbstractParserWithWordBoundary.Abst...
    method innerPattern (line 5599) | innerPattern(context) {
    method innerExtract (line 5602) | innerExtract(context, match) {
  function parse (line 5665) | function parse(text, ref, option) {
  function parseDate (line 5669) | function parseDate(text, ref, option) {
  function createCasualConfiguration (line 5673) | function createCasualConfiguration(littleEndian = true) {
  function createConfiguration (line 5681) | function createConfiguration(strictMode = true, littleEndian = true) {
  function parse (line 5741) | function parse(text, ref, option) {
  function parseDate (line 5745) | function parseDate(text, ref, option) {
  function getLocalizedChrono (line 5756) | function getLocalizedChrono() {
  function getConfiguredChrono (line 5765) | function getConfiguredChrono() {
  function NLDParser (line 5781) | function NLDParser() {
  function NLDSettingsTab (line 5843) | function NLDSettingsTab(app, plugin) {
  function Suggest (line 6011) | function Suggest(owner, containerEl, scope) {
  function checkForInputPhrase (line 6081) | function checkForInputPhrase(cmEditor, pos, phrase) {
  function isCursorBeforePos (line 6088) | function isCursorBeforePos(pos, cursor) {
  function CodeMirrorSuggest (line 6095) | function CodeMirrorSuggest(app, triggerPhrase) {
  function DateSuggest (line 6170) | function DateSuggest(app, plugin) {
  function NaturalLanguageDates (line 6272) | function NaturalLanguageDates() {

FILE: .obsidian/plugins/note-refactor-obsidian/main.js
  function __extends (line 28) | function __extends(d, b) {
  function __awaiter (line 36) | function __awaiter(thisArg, _arguments, P, generator) {
  function __generator (line 46) | function __generator(thisArg, body) {
  function createCommonjsModule (line 82) | function createCommonjsModule(fn, basedir, module) {
  function commonjsRequire (line 92) | function commonjsRequire () {
  function hooks (line 102) | function hooks() {
  function setHookCallback (line 108) | function setHookCallback(callback) {
  function isArray (line 112) | function isArray(input) {
  function isObject (line 119) | function isObject(input) {
  function hasOwnProp (line 128) | function hasOwnProp(a, b) {
  function isObjectEmpty (line 132) | function isObjectEmpty(obj) {
  function isUndefined (line 146) | function isUndefined(input) {
  function isNumber (line 150) | function isNumber(input) {
  function isDate (line 157) | function isDate(input) {
  function map (line 164) | function map(arr, fn) {
  function extend (line 173) | function extend(a, b) {
  function createUTC (line 191) | function createUTC(input, format, locale, strict) {
  function defaultParsingFlags (line 195) | function defaultParsingFlags() {
  function getParsingFlags (line 217) | function getParsingFlags(m) {
  function isValid (line 243) | function isValid(m) {
  function createInvalid (line 279) | function createInvalid(flags) {
  function copyConfig (line 295) | function copyConfig(to, from) {
  function Moment (line 343) | function Moment(config) {
  function isMoment (line 358) | function isMoment(obj) {
  function warn (line 364) | function warn(msg) {
  function deprecate (line 374) | function deprecate(msg, fn) {
  function deprecateSimple (line 416) | function deprecateSimple(name, msg) {
  function isFunction (line 429) | function isFunction(input) {
  function set (line 436) | function set(config) {
  function mergeConfigs (line 459) | function mergeConfigs(parentConfig, childConfig) {
  function Locale (line 488) | function Locale(config) {
  function calendar (line 520) | function calendar(key, mom, now) {
  function zeroFill (line 525) | function zeroFill(number, targetLength, forceSign) {
  function addFormatToken (line 545) | function addFormatToken(token, padded, ordinal, callback) {
  function removeFormattingTokens (line 570) | function removeFormattingTokens(input) {
  function makeFormatFunction (line 577) | function makeFormatFunction(format) {
  function formatMoment (line 603) | function formatMoment(m, format) {
  function expandFormat (line 615) | function expandFormat(format, locale) {
  function longDateFormat (line 644) | function longDateFormat(key) {
  function invalidDate (line 672) | function invalidDate() {
  function ordinal (line 679) | function ordinal(number) {
  function relativeTime (line 702) | function relativeTime(number, withoutSuffix, string, isFuture) {
  function pastFuture (line 709) | function pastFuture(diff, output) {
  function addUnitAlias (line 716) | function addUnitAlias(unit, shorthand) {
  function normalizeUnits (line 721) | function normalizeUnits(units) {
  function normalizeObjectUnits (line 727) | function normalizeObjectUnits(inputObject) {
  function addUnitPriority (line 746) | function addUnitPriority(unit, priority) {
  function getPrioritizedUnits (line 750) | function getPrioritizedUnits(unitsObj) {
  function isLeapYear (line 764) | function isLeapYear(year) {
  function absFloor (line 768) | function absFloor(number) {
  function toInt (line 777) | function toInt(argumentForCoercion) {
  function makeGetSet (line 788) | function makeGetSet(unit, keepTime) {
  function get (line 800) | function get(mom, unit) {
  function set$1 (line 806) | function set$1(mom, unit, value) {
  function stringGet (line 828) | function stringGet(units) {
  function stringSet (line 836) | function stringSet(units, value) {
  function addRegexToken (line 876) | function addRegexToken(token, regex, strictRegex) {
  function getParseRegexForToken (line 884) | function getParseRegexForToken(token, config) {
  function unescapeFormat (line 893) | function unescapeFormat(s) {
  function regexEscape (line 909) | function regexEscape(s) {
  function addParseToken (line 915) | function addParseToken(token, callback) {
  function addWeekParseToken (line 931) | function addWeekParseToken(token, callback) {
  function addTimeToArrayFromToken (line 938) | function addTimeToArrayFromToken(token, input, config) {
  function mod (line 954) | function mod(n, x) {
  function daysInMonth (line 975) | function daysInMonth(year, month) {
  function localeMonths (line 1047) | function localeMonths(m, format) {
  function localeMonthsShort (line 1062) | function localeMonthsShort(m, format) {
  function handleStrictParse (line 1075) | function handleStrictParse(monthName, format, strict) {
  function localeMonthsParse (line 1122) | function localeMonthsParse(monthName, format, strict) {
  function setMonth (line 1177) | function setMonth(mom, value) {
  function getSetMonth (line 1202) | function getSetMonth(value) {
  function getDaysInMonth (line 1212) | function getDaysInMonth() {
  function monthsShortRegex (line 1216) | function monthsShortRegex(isStrict) {
  function monthsRegex (line 1236) | function monthsRegex(isStrict) {
  function computeMonthsParse (line 1256) | function computeMonthsParse() {
  function daysInYear (line 1344) | function daysInYear(year) {
  function getIsLeapYear (line 1358) | function getIsLeapYear() {
  function createDate (line 1362) | function createDate(y, m, d, h, M, s, ms) {
  function createUTCDate (line 1380) | function createUTCDate(y) {
  function firstWeekOffset (line 1399) | function firstWeekOffset(year, dow, doy) {
  function dayOfYearFromWeeks (line 1409) | function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
  function weekOfYear (line 1433) | function weekOfYear(mom, dow, doy) {
  function weeksInYear (line 1456) | function weeksInYear(year, dow, doy) {
  function localeWeek (line 1497) | function localeWeek(mom) {
  function localeFirstDayOfWeek (line 1506) | function localeFirstDayOfWeek() {
  function localeFirstDayOfYear (line 1510) | function localeFirstDayOfYear() {
  function getSetWeek (line 1516) | function getSetWeek(input) {
  function getSetISOWeek (line 1521) | function getSetISOWeek(input) {
  function parseWeekday (line 1587) | function parseWeekday(input, locale) {
  function parseIsoWeekday (line 1604) | function parseIsoWeekday(input, locale) {
  function shiftWeekdays (line 1612) | function shiftWeekdays(ws, n) {
  function localeWeekdays (line 1625) | function localeWeekdays(m, format) {
  function localeWeekdaysShort (line 1640) | function localeWeekdaysShort(m) {
  function localeWeekdaysMin (line 1648) | function localeWeekdaysMin(m) {
  function handleStrictParse$1 (line 1656) | function handleStrictParse$1(weekdayName, format, strict) {
  function localeWeekdaysParse (line 1729) | function localeWeekdaysParse(weekdayName, format, strict) {
  function getSetDayOfWeek (line 1798) | function getSetDayOfWeek(input) {
  function getSetLocaleDayOfWeek (line 1811) | function getSetLocaleDayOfWeek(input) {
  function getSetISODayOfWeek (line 1819) | function getSetISODayOfWeek(input) {
  function weekdaysRegex (line 1836) | function weekdaysRegex(isStrict) {
  function weekdaysShortRegex (line 1856) | function weekdaysShortRegex(isStrict) {
  function weekdaysMinRegex (line 1876) | function weekdaysMinRegex(isStrict) {
  function computeWeekdaysParse (line 1896) | function computeWeekdaysParse() {
  function hFormat (line 1950) | function hFormat() {
  function kFormat (line 1954) | function kFormat() {
  function meridiem (line 1988) | function meridiem(token, lowercase) {
  function matchMeridiem (line 2010) | function matchMeridiem(isStrict, locale) {
  function localeIsPM (line 2070) | function localeIsPM(input) {
  function localeMeridiem (line 2083) | function localeMeridiem(hours, minutes, isLower) {
  function commonPrefix (line 2116) | function commonPrefix(arr1, arr2) {
  function normalizeLocale (line 2127) | function normalizeLocale(key) {
  function chooseLocale (line 2134) | function chooseLocale(names) {
  function loadLocale (line 2166) | function loadLocale(name) {
  function getSetGlobalLocale (line 2193) | function getSetGlobalLocale(key, values) {
  function defineLocale (line 2218) | function defineLocale(name, config) {
  function updateLocale (line 2272) | function updateLocale(name, config) {
  function getLocale (line 2318) | function getLocale(key) {
  function listLocales (line 2341) | function listLocales() {
  function checkOverflow (line 2345) | function checkOverflow(m) {
  function configFromISO (line 2438) | function configFromISO(config) {
  function extractFromRFC2822Strings (line 2494) | function extractFromRFC2822Strings(
  function untruncateYear (line 2517) | function untruncateYear(yearStr) {
  function preprocessRFC2822 (line 2527) | function preprocessRFC2822(s) {
  function checkWeekday (line 2536) | function checkWeekday(weekdayStr, parsedInput, config) {
  function calculateOffset (line 2554) | function calculateOffset(obsOffset, militaryOffset, numOffset) {
  function configFromRFC2822 (line 2569) | function configFromRFC2822(config) {
  function configFromString (line 2598) | function configFromString(config) {
  function defaults (line 2637) | function defaults(a, b, c) {
  function currentDateArray (line 2647) | function currentDateArray(config) {
  function configFromArray (line 2664) | function configFromArray(config) {
  function dayOfYearFromWeekInfo (line 2753) | function dayOfYearFromWeekInfo(config) {
  function configFromStringAndFormat (line 2821) | function configFromStringAndFormat(config) {
  function meridiemFixWrap (line 2910) | function meridiemFixWrap(locale, hour, meridiem) {
  function configFromStringAndArray (line 2936) | function configFromStringAndArray(config) {
  function configFromObject (line 2996) | function configFromObject(config) {
  function createFromConfig (line 3013) | function createFromConfig(config) {
  function prepareConfig (line 3024) | function prepareConfig(config) {
  function configFromInput (line 3057) | function configFromInput(config) {
  function createLocalOrUTC (line 3080) | function createLocalOrUTC(input, format, locale, strict, isUTC) {
  function createLocal (line 3111) | function createLocal(input, format, locale, strict) {
  function pickBy (line 3143) | function pickBy(fn, moments) {
  function min (line 3161) | function min() {
  function max (line 3167) | function max() {
  function isDurationValid (line 3189) | function isDurationValid(m) {
  function isValid$1 (line 3219) | function isValid$1() {
  function createInvalid$1 (line 3223) | function createInvalid$1() {
  function Duration (line 3227) | function Duration(duration) {
  function isDuration (line 3262) | function isDuration(obj) {
  function absRound (line 3266) | function absRound(number) {
  function compareArrays (line 3275) | function compareArrays(array1, array2, dontConvert) {
  function offset (line 3293) | function offset(token, separator) {
  function offsetFromString (line 3329) | function offsetFromString(matcher, string) {
  function cloneWithOffset (line 3347) | function cloneWithOffset(input, model) {
  function getDateOffset (line 3364) | function getDateOffset(m) {
  function getSetOffset (line 3388) | function getSetOffset(input, keepLocalTime, keepMinutes) {
  function getSetZone (line 3431) | function getSetZone(input, keepLocalTime) {
  function setOffsetToUTC (line 3445) | function setOffsetToUTC(keepLocalTime) {
  function setOffsetToLocal (line 3449) | function setOffsetToLocal(keepLocalTime) {
  function setOffsetToParsedOffset (line 3461) | function setOffsetToParsedOffset() {
  function hasAlignedHourOffset (line 3475) | function hasAlignedHourOffset(input) {
  function isDaylightSavingTime (line 3484) | function isDaylightSavingTime() {
  function isDaylightSavingTimeShifted (line 3491) | function isDaylightSavingTimeShifted() {
  function isLocal (line 3513) | function isLocal() {
  function isUtcOffset (line 3517) | function isUtcOffset() {
  function isUtc (line 3521) | function isUtc() {
  function createDuration (line 3532) | function createDuration(input, key) {
  function parseIso (line 3607) | function parseIso(inp, sign) {
  function positiveMomentsDifference (line 3616) | function positiveMomentsDifference(base, other) {
  function momentsDifference (line 3630) | function momentsDifference(base, other) {
  function createAdder (line 3649) | function createAdder(direction, name) {
  function addSubtract (line 3674) | function addSubtract(mom, duration, isAdding, updateOffset) {
  function isString (line 3703) | function isString(input) {
  function isMomentInput (line 3708) | function isMomentInput(input) {
  function isMomentInputObject (line 3721) | function isMomentInputObject(input) {
  function isNumberOrStringArray (line 3761) | function isNumberOrStringArray(input) {
  function isCalendarSpec (line 3773) | function isCalendarSpec(input) {
  function getCalendarFormat (line 3795) | function getCalendarFormat(myMoment, now) {
  function calendar$1 (line 3812) | function calendar$1(time, formats) {
  function clone (line 3842) | function clone() {
  function isAfter (line 3846) | function isAfter(input, units) {
  function isBefore (line 3859) | function isBefore(input, units) {
  function isBetween (line 3872) | function isBetween(from, to, units, inclusivity) {
  function isSame (line 3889) | function isSame(input, units) {
  function isSameOrAfter (line 3907) | function isSameOrAfter(input, units) {
  function isSameOrBefore (line 3911) | function isSameOrBefore(input, units) {
  function diff (line 3915) | function diff(input, units, asFloat) {
  function monthDiff (line 3964) | function monthDiff(a, b) {
  function toString (line 3994) | function toString() {
  function toISOString (line 3998) | function toISOString(keepOffset) {
  function inspect (line 4034) | function inspect() {
  function format (line 4056) | function format(inputString) {
  function from (line 4066) | function from(time, withoutSuffix) {
  function fromNow (line 4079) | function fromNow(withoutSuffix) {
  function to (line 4083) | function to(time, withoutSuffix) {
  function toNow (line 4096) | function toNow(withoutSuffix) {
  function locale (line 4103) | function locale(key) {
  function localeData (line 4128) | function localeData() {
  function mod$1 (line 4138) | function mod$1(dividend, divisor) {
  function localStartOfDate (line 4142) | function localStartOfDate(y, m, d) {
  function utcStartOfDate (line 4152) | function utcStartOfDate(y, m, d) {
  function startOf (line 4162) | function startOf(units) {
  function endOf (line 4225) | function endOf(units) {
  function valueOf (line 4294) | function valueOf() {
  function unix (line 4298) | function unix() {
  function toDate (line 4302) | function toDate() {
  function toArray (line 4306) | function toArray() {
  function toObject (line 4319) | function toObject() {
  function toJSON (line 4332) | function toJSON() {
  function isValid$2 (line 4337) | function isValid$2() {
  function parsingFlags (line 4341) | function parsingFlags() {
  function invalidAt (line 4345) | function invalidAt() {
  function creationData (line 4349) | function creationData() {
  function localeEras (line 4410) | function localeEras(m, format) {
  function localeErasParse (line 4438) | function localeErasParse(eraName, format, strict) {
  function localeErasConvertYear (line 4480) | function localeErasConvertYear(era, year) {
  function getEraName (line 4489) | function getEraName() {
  function getEraNarrow (line 4509) | function getEraNarrow() {
  function getEraAbbr (line 4529) | function getEraAbbr() {
  function getEraYear (line 4549) | function getEraYear() {
  function erasNameRegex (line 4575) | function erasNameRegex(isStrict) {
  function erasAbbrRegex (line 4582) | function erasAbbrRegex(isStrict) {
  function erasNarrowRegex (line 4589) | function erasNarrowRegex(isStrict) {
  function matchEraAbbr (line 4596) | function matchEraAbbr(isStrict, locale) {
  function matchEraName (line 4600) | function matchEraName(isStrict, locale) {
  function matchEraNarrow (line 4604) | function matchEraNarrow(isStrict, locale) {
  function matchEraYearOrdinal (line 4608) | function matchEraYearOrdinal(isStrict, locale) {
  function computeErasParse (line 4612) | function computeErasParse() {
  function addWeekYearFormatToken (line 4650) | function addWeekYearFormatToken(token, getter) {
  function getSetWeekYear (line 4695) | function getSetWeekYear(input) {
  function getSetISOWeekYear (line 4706) | function getSetISOWeekYear(input) {
  function getISOWeeksInYear (line 4717) | function getISOWeeksInYear() {
  function getISOWeeksInISOWeekYear (line 4721) | function getISOWeeksInISOWeekYear() {
  function getWeeksInYear (line 4725) | function getWeeksInYear() {
  function getWeeksInWeekYear (line 4730) | function getWeeksInWeekYear() {
  function getSetWeekYearHelper (line 4735) | function getSetWeekYearHelper(input, week, weekday, dow, doy) {
  function setWeekAll (line 4748) | function setWeekAll(weekYear, week, weekday, dow, doy) {
  function getSetQuarter (line 4779) | function getSetQuarter(input) {
  function getSetDayOfYear (line 4839) | function getSetDayOfYear(input) {
  function parseMs (line 4940) | function parseMs(input, array) {
  function getZoneAbbr (line 4957) | function getZoneAbbr() {
  function getZoneName (line 4961) | function getZoneName() {
  function createUnix (line 5069) | function createUnix(input) {
  function createInZone (line 5073) | function createInZone() {
  function preParsePostFormat (line 5077) | function preParsePostFormat(string) {
  function get$1 (line 5120) | function get$1(format, index, field, setter) {
  function listMonthsImpl (line 5126) | function listMonthsImpl(format, index, field) {
  function listWeekdaysImpl (line 5154) | function listWeekdaysImpl(localeSorted, format, index, field) {
  function listMonths (line 5190) | function listMonths(format, index) {
  function listMonthsShort (line 5194) | function listMonthsShort(format, index) {
  function listWeekdays (line 5198) | function listWeekdays(localeSorted, format, index) {
  function listWeekdaysShort (line 5202) | function listWeekdaysShort(localeSorted, format, index) {
  function listWeekdaysMin (line 5206) | function listWeekdaysMin(localeSorted, format, index) {
  function abs (line 5259) | function abs() {
  function addSubtract$1 (line 5276) | function addSubtract$1(duration, input, value, direction) {
  function add$1 (line 5287) | function add$1(input, value) {
  function subtract$1 (line 5292) | function subtract$1(input, value) {
  function absCeil (line 5296) | function absCeil(number) {
  function bubble (line 5304) | function bubble() {
  function daysToMonths (line 5359) | function daysToMonths(days) {
  function monthsToDays (line 5365) | function monthsToDays(months) {
  function as (line 5370) | function as(units) {
  function valueOf$1 (line 5415) | function valueOf$1() {
  function makeAs (line 5427) | function makeAs(alias) {
  function clone$1 (line 5443) | function clone$1() {
  function get$2 (line 5447) | function get$2(units) {
  function makeGetter (line 5452) | function makeGetter(name) {
  function weeks (line 5466) | function weeks() {
  function substituteTimeAgo (line 5482) | function substituteTimeAgo(string, number, withoutSuffix, isFuture, loca...
  function relativeTime$1 (line 5486) | function relativeTime$1(posNegDuration, withoutSuffix, thresholds, local...
  function getSetRelativeTimeRounding (line 5523) | function getSetRelativeTimeRounding(roundingFunction) {
  function getSetRelativeTimeThreshold (line 5535) | function getSetRelativeTimeThreshold(threshold, limit) {
  function humanize (line 5549) | function humanize(argWithSuffix, argThresholds) {
  function sign (line 5585) | function sign(x) {
  function toISOString$1 (line 5589) | function toISOString$1() {
  function MomentDateRegex (line 5765) | function MomentDateRegex() {
  function NoteRefactorSettings (line 5811) | function NoteRefactorSettings() {
  function NoteRefactorSettingsTab (line 5833) | function NoteRefactorSettingsTab(app, plugin) {
  function NRFile (line 6020) | function NRFile(setting) {
  function ObsidianFile (line 6037) | function ObsidianFile(setting, app) {
  function NotePlaceholders (line 6165) | function NotePlaceholders() {
  function Placeholder (line 6177) | function Placeholder(key) {
  function NRDoc (line 6187) | function NRDoc(settings, vault, fileManager) {
  function NoteRefactorModal (line 6328) | function NoteRefactorModal(app, modalNoteCreation) {
  function ModalNoteCreation (line 6381) | function ModalNoteCreation(app, settings, doc, file, obsFile, content, e...
  function NoteRefactor (line 6477) | function NoteRefactor() {

FILE: .obsidian/plugins/obsidian-tasks-plugin/main.js
  function __awaiter (line 144) | function __awaiter(thisArg, _arguments, P, generator) {
  function __generator (line 154) | function __generator(thisArg, body) {
  function Semaphore (line 185) | function Semaphore(_maxConcurrency, _cancelError) {
  function Mutex (line 283) | function Mutex(cancelError) {
  class LayoutOptions (line 434) | class LayoutOptions {
    method constructor (line 435) | constructor() {
  function Weekday (line 454) | function Weekday(weekday, n) {
  function padStart (line 529) | function padStart(item, targetLength, padString) {
  function IterResult (line 745) | function IterResult(method, args) {
  function __extends (line 850) | function __extends(d, b) {
  function __spreadArrays (line 867) | function __spreadArrays() {
  function CallbackIterResult (line 881) | function CallbackIterResult(method, args, iterator) {
  function ToText (line 975) | function ToText(rrule, gettext, language, dateFormatter) {
  function Parser (line 1336) | function Parser(rules) {
  function parseText (line 1409) | function parseText(text, language) {
  function freqIsDailyOrGreater (line 1746) | function freqIsDailyOrGreater(freq) {
  function Time (line 1867) | function Time(hour, minute, second, millisecond) {
  function DateTime (line 1893) | function DateTime(year, month, day, hour, minute, second, millisecond) {
  function initializeOptions$1 (line 2038) | function initializeOptions$1(options) {
  function parseOptions (line 2054) | function parseOptions(options) {
  function buildTimeset (line 2214) | function buildTimeset(opts) {
  function parseString (line 2230) | function parseString(rfcString) {
  function parseDtstart (line 2234) | function parseDtstart(line) {
  function parseLine (line 2247) | function parseLine(rfcString) {
  function parseRrule (line 2266) | function parseRrule(line) {
  function parseNumber (line 2317) | function parseNumber(value) {
  function parseIndividualNumber (line 2324) | function parseIndividualNumber(value) {
  function parseWeekday (line 2330) | function parseWeekday(value) {
  function getDefaultExportFromCjs (line 2348) | function getDefaultExportFromCjs (x) {
  function createCommonjsModule (line 2352) | function createCommonjsModule(fn, basedir, module) {
  function commonjsRequire (line 2362) | function commonjsRequire () {
  function _defineProperties (line 2370) | function _defineProperties(target, props) {
  function _createClass (line 2380) | function _createClass(Constructor, protoProps, staticProps) {
  function _inheritsLoose (line 2386) | function _inheritsLoose(subClass, superClass) {
  function _getPrototypeOf (line 2392) | function _getPrototypeOf(o) {
  function _setPrototypeOf (line 2399) | function _setPrototypeOf(o, p) {
  function _isNativeReflectConstruct (line 2408) | function _isNativeReflectConstruct() {
  function _construct (line 2421) | function _construct(Parent, args, Class) {
  function _isNativeFunction (line 2438) | function _isNativeFunction(fn) {
  function _wrapNativeSuper (line 2442) | function _wrapNativeSuper(Class) {
  function _objectWithoutPropertiesLoose (line 2476) | function _objectWithoutPropertiesLoose(source, excluded) {
  function _unsupportedIterableToArray (line 2491) | function _unsupportedIterableToArray(o, minLen) {
  function _arrayLikeToArray (line 2500) | function _arrayLikeToArray(arr, len) {
  function _createForOfIteratorHelperLoose (line 2508) | function _createForOfIteratorHelperLoose(o) {
  function LuxonError (line 2536) | function LuxonError() {
  function InvalidDateTimeError (line 2550) | function InvalidDateTimeError(reason) {
  function InvalidIntervalError (line 2563) | function InvalidIntervalError(reason) {
  function InvalidDurationError (line 2576) | function InvalidDurationError(reason) {
  function ConflictingSpecificationError (line 2589) | function ConflictingSpecificationError() {
  function InvalidUnitError (line 2602) | function InvalidUnitError(unit) {
  function InvalidArgumentError (line 2615) | function InvalidArgumentError() {
  function ZoneIsAbstractError (line 2628) | function ZoneIsAbstractError() {
  function isUndefined (line 2819) | function isUndefined(o) {
  function isNumber (line 2822) | function isNumber(o) {
  function isInteger (line 2825) | function isInteger(o) {
  function isString (line 2828) | function isString(o) {
  function isDate (line 2831) | function isDate(o) {
  function hasIntl (line 2835) | function hasIntl() {
  function hasFormatToParts (line 2842) | function hasFormatToParts() {
  function hasRelative (line 2845) | function hasRelative() {
  function maybeArray (line 2853) | function maybeArray(thing) {
  function bestBy (line 2856) | function bestBy(arr, by, compare) {
  function pick (line 2873) | function pick(obj, keys) {
  function hasOwnProperty (line 2879) | function hasOwnProperty(obj, prop) {
  function integerBetween (line 2883) | function integerBetween(thing, bottom, top) {
  function floorMod (line 2887) | function floorMod(x, n) {
  function padStart (line 2890) | function padStart(input, n) {
  function parseInteger (line 2907) | function parseInteger(string) {
  function parseMillis (line 2914) | function parseMillis(fraction) {
  function roundTo (line 2923) | function roundTo(number, digits, towardZero) {
  function isLeapYear (line 2933) | function isLeapYear(year) {
  function daysInYear (line 2936) | function daysInYear(year) {
  function daysInMonth (line 2939) | function daysInMonth(year, month) {
  function objToLocalTS (line 2950) | function objToLocalTS(obj) {
  function weeksInWeekYear (line 2960) | function weeksInWeekYear(weekYear) {
  function untruncateYear (line 2966) | function untruncateYear(year) {
  function parseZoneInfo (line 2972) | function parseZoneInfo(ts, offsetFormat, locale, timeZone) {
  function signedOffset (line 3013) | function signedOffset(offHourStr, offMinuteStr) {
  function asNumber (line 3025) | function asNumber(value) {
  function normalizeObject (line 3030) | function normalizeObject(obj, normalizer, nonUnitKeys) {
  function formatOffset (line 3044) | function formatOffset(offset, format) {
  function timeObject (line 3063) | function timeObject(obj) {
  function stringify (line 3068) | function stringify(obj) {
  function months (line 3079) | function months(length) {
  function weekdays (line 3103) | function weekdays(length) {
  function eras (line 3125) | function eras(length) {
  function meridiemForDateTime (line 3140) | function meridiemForDateTime(dt) {
  function weekdayForDateTime (line 3143) | function weekdayForDateTime(dt, length) {
  function monthForDateTime (line 3146) | function monthForDateTime(dt, length) {
  function eraForDateTime (line 3149) | function eraForDateTime(dt, length) {
  function formatRelativeTime (line 3152) | function formatRelativeTime(unit, count, numeric, narrow) {
  function formatString (line 3196) | function formatString(knownFormat) {
  function stringifyTokens (line 3275) | function stringifyTokens(splits, tokenToString) {
  function Formatter (line 3377) | function Formatter(locale, formatOpts) {
  function Invalid (line 3808) | function Invalid(reason, explanation) {
  function Zone (line 3831) | function Zone() {}
  function LocalZone (line 3941) | function LocalZone() {
  function makeDTF (line 4024) | function makeDTF(zone) {
  function hackyOffset (line 4050) | function hackyOffset(dtf, date) {
  function partsOffset (line 4062) | function partsOffset(dtf, date) {
  function IANAZone (line 4159) | function IANAZone(name) {
  function FixedOffsetZone (line 4312) | function FixedOffsetZone(offset) {
  function InvalidZone (line 4387) | function InvalidZone(zoneName) {
  function normalizeZone (line 4458) | function normalizeZone(input, defaultZone) {
  function Settings (line 4497) | function Settings() {}
  function getCachedDTF (line 4640) | function getCachedDTF(locString, opts) {
  function getCachedINF (line 4658) | function getCachedINF(locString, opts) {
  function getCachedRTF (line 4676) | function getCachedRTF(locString, opts) {
  function systemLocale (line 4699) | function systemLocale() {
  function parseLocaleString (line 4713) | function parseLocaleString(localeStr) {
  function intlConfigString (line 4742) | function intlConfigString(localeStr, numberingSystem, outputCalendar) {
  function mapMonths (line 4764) | function mapMonths(f) {
  function mapWeekdays (line 4775) | function mapWeekdays(f) {
  function listStuff (line 4786) | function listStuff(loc, length, defaultOK, englishFn, intlFn) {
  function supportsFastNumbers (line 4798) | function supportsFastNumbers(loc) {
  function PolyNumberFormatter (line 4811) | function PolyNumberFormatter(intl, forceSimple, opts) {
  function PolyDateFormatter (line 4846) | function PolyDateFormatter(dt, intl, opts) {
  function PolyRelFormatter (line 4941) | function PolyRelFormatter(intl, isEnglish, opts) {
  function Locale (line 5010) | function Locale(locale, numbering, outputCalendar, specifiedLocale) {
  function combineRegexes (line 5261) | function combineRegexes() {
  function combineExtractors (line 5272) | function combineExtractors() {
  function parse (line 5293) | function parse(s) {
  function simpleParse (line 5316) | function simpleParse() {
  function int (line 5348) | function int(match, pos, fallback) {
  function extractISOYmd (line 5353) | function extractISOYmd(match, cursor) {
  function extractISOTime (line 5362) | function extractISOTime(match, cursor) {
  function extractISOOffset (line 5372) | function extractISOOffset(match, cursor) {
  function extractIANAZone (line 5379) | function extractIANAZone(match, cursor) {
  function extractISODuration (line 5389) | function extractISODuration(match) {
  function fromStrings (line 5437) | function fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, min...
  function extractRFC2822 (line 5457) | function extractRFC2822(match) {
  function preprocessRFC2822 (line 5483) | function preprocessRFC2822(s) {
  function extractRFC1123Or850 (line 5493) | function extractRFC1123Or850(match) {
  function extractASCII (line 5505) | function extractASCII(match) {
  function parseISODate (line 5529) | function parseISODate(s) {
  function parseRFC2822Date (line 5532) | function parseRFC2822Date(s) {
  function parseHTTPDate (line 5535) | function parseHTTPDate(s) {
  function parseISODuration (line 5538) | function parseISODuration(s) {
  function parseISOTimeOnly (line 5542) | function parseISOTimeOnly(s) {
  function parseSQL (line 5549) | function parseSQL(s) {
  function clone (line 5646) | function clone(dur, alts, clear) {
  function antiTrunc (line 5660) | function antiTrunc(n) {
  function convert (line 5665) | function convert(matrix, fromMap, fromUnit, toMap, toUnit) {
  function normalizeValues (line 5676) | function normalizeValues(matrix, vals) {
  function Duration (line 5708) | function Duration(config) {
  function eq (line 6344) | function eq(v1, v2) {
  function friendlyDuration (line 6497) | function friendlyDuration(durationish) {
  function validateStartEnd (line 6511) | function validateStartEnd(start, end) {
  function Interval (line 6540) | function Interval(config) {
  function Info (line 7226) | function Info() {}
  function dayDiff (line 7486) | function dayDiff(earlier, later) {
  function highOrderDiffs (line 7497) | function highOrderDiffs(cursor, later, units) {
  function _diff (line 7539) | function _diff (earlier, later, units, opts) {
  function parseDigits (line 7620) | function parseDigits(str) {
  function digitRegex (line 7649) | function digitRegex(_ref, append) {
  function intUnit (line 7661) | function intUnit(regex, post) {
  function fixListRegex (line 7681) | function fixListRegex(s) {
  function stripInsensitivities (line 7687) | function stripInsensitivities(s) {
  function oneOf (line 7693) | function oneOf(strings, startIndex) {
  function offset (line 7709) | function offset(regex, groups) {
  function simple (line 7721) | function simple(regex) {
  function escapeToken (line 7731) | function escapeToken(value) {
  function unitForToken (line 7736) | function unitForToken(token, loc) {
  function tokenForPart (line 7961) | function tokenForPart(part, locale, formatOpts) {
  function buildRegex (line 7989) | function buildRegex(units) {
  function match (line 7998) | function match(input, regex, handlers) {
  function dateTimeFromMatches (line 8024) | function dateTimeFromMatches(matches) {
  function getDummyDateTime (line 8115) | function getDummyDateTime() {
  function maybeExpandMacroToken (line 8123) | function maybeExpandMacroToken(token, locale) {
  function expandMacroTokens (line 8147) | function expandMacroTokens(tokens, locale) {
  function explainFromTokens (line 8159) | function explainFromTokens(locale, input, format) {
  function parseFromTokens (line 8201) | function parseFromTokens(locale, input, format) {
  function unitOutOfRange (line 8213) | function unitOutOfRange(unit, value) {
  function dayOfWeek (line 8217) | function dayOfWeek(year, month, day) {
  function computeOrdinal (line 8222) | function computeOrdinal(year, month, day) {
  function uncomputeOrdinal (line 8226) | function uncomputeOrdinal(year, ordinal) {
  function gregorianToWeek (line 8242) | function gregorianToWeek(gregObj) {
  function weekToGregorian (line 8267) | function weekToGregorian(weekData) {
  function gregorianToOrdinal (line 8296) | function gregorianToOrdinal(gregData) {
  function ordinalToGregorian (line 8306) | function ordinalToGregorian(ordinalData) {
  function hasInvalidWeekData (line 8319) | function hasInvalidWeekData(obj) {
  function hasInvalidOrdinalData (line 8332) | function hasInvalidOrdinalData(obj) {
  function hasInvalidGregorianData (line 8342) | function hasInvalidGregorianData(obj) {
  function hasInvalidTimeData (line 8355) | function hasInvalidTimeData(obj) {
  function unsupportedZone (line 8379) | function unsupportedZone(zone) {
  function possiblyCachedWeekData (line 8384) | function possiblyCachedWeekData(dt) {
  function clone$1 (line 8394) | function clone$1(inst, alts) {
  function fixOffset (line 8410) | function fixOffset(localTS, o, tz) {
  function tsToObj (line 8434) | function tsToObj(ts, offset) {
  function objToTS (line 8449) | function objToTS(obj, offset, zone) {
  function adjustTime (line 8454) | function adjustTime(inst, dur) {
  function parseDataToDateTime (line 8494) | function parseDataToDateTime(parsed, parsedZone, opts, format, text) {
  function toTechFormat (line 8513) | function toTechFormat(dt, format, allowZ) {
  function toTechTimeFormat (line 8526) | function toTechTimeFormat(dt, _ref) {
  function normalizeUnit (line 8598) | function normalizeUnit(unit) {
  function quickDT (line 8632) | function quickDT(obj, zone) {
  function diffRelative (line 8661) | function diffRelative(start, end, opts) {
  function DateTime (line 8719) | function DateTime(config) {
  function friendlyDateTime (line 10827) | function friendlyDateTime(dateTimeish) {
  function DateWithZone (line 10856) | function DateWithZone(date, tzid) {
  function optionsToString (line 10897) | function optionsToString(options) {
  function buildDtstart (line 10979) | function buildDtstart(dtstart, tzid) {
  function Cache (line 10987) | function Cache() {
    method constructor (line 12805) | constructor({ metadataCache, vault, events, }) {
    method unload (line 12821) | unload() {
    method getTasks (line 12832) | getTasks() {
    method getState (line 12835) | getState() {
    method notifySubscribers (line 12838) | notifySubscribers() {
    method subscribeToCache (line 12844) | subscribeToCache() {
    method subscribeToVault (line 12862) | subscribeToVault() {
    method subscribeToEvents (line 12902) | subscribeToEvents() {
    method loadVault (line 12908) | loadVault() {
    method indexFile (line 12919) | indexFile(file) {
    method getSection (line 12982) | getSection({ lineNumberTask, sections, }) {
    method getPrecedingHeader (line 12995) | getPrecedingHeader({ lineNumberTask, sections, fileLines, }) {
  function rebuildYear (line 11094) | function rebuildYear(year, options) {
  function baseYearMasks (line 11200) | function baseYearMasks(year) {
  function rebuildMonth (line 11222) | function rebuildMonth(year, month, yearlen, mrange, wdaymask, options) {
  function easter (line 11271) | function easter(y, offset) {
  function Iterinfo (line 11296) | function Iterinfo(options) {
  function buildPoslist (line 11467) | function buildPoslist(bysetpos, timeset, start, end, ii, dayset) {
  function iter (line 11507) | function iter(iterResult, options) {
  function isFiltered (line 11583) | function isFiltered(ii, currentDay, options) {
  function rezoneIfNeeded (line 11601) | function rezoneIfNeeded(date, options) {
  function emitResult (line 11604) | function emitResult(iterResult) {
  function removeFilteredDays (line 11607) | function removeFilteredDays(dayset, start, end, ii, options) {
  function makeTimeset (line 11617) | function makeTimeset(ii, counterDate, options) {
  function RRule (line 11677) | function RRule(options, noCache) {
  function iterSet (line 11849) | function iterSet(iterResult, _rrule, _exrule, _rdate, _exdate, tzid) {
  function parseInput (line 11921) | function parseInput(s, options) {
  function buildRule (line 11970) | function buildRule(s, options) {
  function rrulestr (line 12004) | function rrulestr(s, options) {
  function groomRruleOptions (line 12008) | function groomRruleOptions(val, dtstart, tzid) {
  function initializeOptions (line 12012) | function initializeOptions(options) {
  function extractName (line 12025) | function extractName(line) {
  function breakDownLine (line 12038) | function breakDownLine(line) {
  function splitIntoLines (line 12049) | function splitIntoLines(s, unfold) {
  function validateDateParm (line 12077) | function validateDateParm(parms) {
  function parseRDate (line 12084) | function parseRDate(rdateval, parms) {
  function createGetterSetter (line 12091) | function createGetterSetter(fieldName) {
  function RRuleSet (line 12116) | function RRuleSet(noCache) {
  function _addRule (line 12237) | function _addRule(rrule, collection) {
  function _addDate (line 12245) | function _addDate(date, collection) {
  function rdatesToString (line 12254) | function rdatesToString(param, rdates, tzid) {
  class Recurrence (line 12263) | class Recurrence {
    method constructor (line 12264) | constructor({ rrule, referenceDate, startDate, scheduledDate, dueDate,...
    method fromText (line 12271) | static fromText({ recurrenceRuleText, startDate, scheduledDate, dueDat...
    method toText (line 12310) | toText() {
    method next (line 12316) | next() {
  class Urgency (line 12374) | class Urgency {
    method calculate (line 12375) | static calculate(task) {
  class Task (line 12439) | class Task {
    method constructor (line 12440) | constructor({ status, description, path, indentation, sectionStart, se...
    method fromLine (line 12458) | static fromLine({ line, path, sectionStart, sectionIndex, precedingHea...
    method toLi (line 12582) | toLi({ parentUlElement, listIndex, layoutOptions, }) {
    method toString (line 12643) | toString(layoutOptions) {
    method toFileLineString (line 12694) | toFileLineString() {
    method toggle (line 12705) | toggle() {
    method urgency (line 12729) | get urgency() {
    method addTooltip (line 12735) | addTooltip({ element }) {
    method toTooltipDate (line 12782) | static toTooltipDate({ signifier, date, }) {
  class Cache (line 12804) | class Cache {
    method constructor (line 12805) | constructor({ metadataCache, vault, events, }) {
    method unload (line 12821) | unload() {
    method getTasks (line 12832) | getTasks() {
    method getState (line 12835) | getState() {
    method notifySubscribers (line 12838) | notifySubscribers() {
    method subscribeToCache (line 12844) | subscribeToCache() {
    method subscribeToVault (line 12862) | subscribeToVault() {
    method subscribeToEvents (line 12902) | subscribeToEvents() {
    method loadVault (line 12908) | loadVault() {
    method indexFile (line 12919) | indexFile(file) {
    method getSection (line 12982) | getSection({ lineNumberTask, sections, }) {
    method getPrecedingHeader (line 12995) | getPrecedingHeader({ lineNumberTask, sections, fileLines, }) {
  function noop (line 13025) | function noop() { }
  function run (line 13026) | function run(fn) {
  function blank_object (line 13029) | function blank_object() {
  function run_all (line 13032) | function run_all(fns) {
  function is_function (line 13035) | function is_function(thing) {
  function safe_not_equal (line 13038) | function safe_not_equal(a, b) {
  function is_empty (line 13041) | function is_empty(obj) {
  function append (line 13044) | function append(target, node) {
  function insert (line 13047) | function insert(target, node, anchor) {
  function detach (line 13050) | function detach(node) {
  function element (line 13053) | function element(name) {
  function text (line 13056) | function text(data) {
  function space (line 13059) | function space() {
  function listen (line 13062) | function listen(node, event, handler, options) {
  function prevent_default (line 13066) | function prevent_default(fn) {
  function attr (line 13073) | function attr(node, attribute, value) {
  function children (line 13079) | function children(element) {
  function set_data (line 13082) | function set_data(text, data) {
  function set_input_value (line 13087) | function set_input_value(input, value) {
  function select_option (line 13090) | function select_option(select, value) {
  function select_value (line 13100) | function select_value(select) {
  class HtmlTag (line 13104) | class HtmlTag {
    method constructor (line 13105) | constructor() {
    method c (line 13108) | c(html) {
    method m (line 13111) | m(html, target, anchor = null) {
    method h (line 13119) | h(html) {
    method i (line 13123) | i(anchor) {
    method p (line 13128) | p(html) {
    method d (line 13133) | d() {
  function set_current_component (line 13139) | function set_current_component(component) {
  function get_current_component (line 13142) | function get_current_component() {
  function onMount (line 13147) | function onMount(fn) {
  function schedule_update (line 13157) | function schedule_update() {
  function add_render_callback (line 13163) | function add_render_callback(fn) {
  function flush (line 13168) | function flush() {
  function update (line 13204) | function update($$) {
  function transition_in (line 13215) | function transition_in(block, local) {
  function mount_component (line 13221) | function mount_component(component, target, anchor, customElement) {
  function destroy_component (line 13241) | function destroy_component(component, detaching) {
  function make_dirty (line 13252) | function make_dirty(component, i) {
  function init (line 13260) | function init(component, options, instance, create_fragment, not_equal, ...
  class SvelteComponent (line 13324) | class SvelteComponent {
    method $destroy (line 13325) | $destroy() {
    method $on (line 13329) | $on(type, callback) {
    method $set (line 13338) | $set($$props) {
  function repeatedTimeunitPattern (line 13350) | function repeatedTimeunitPattern(prefix, singleTimeunitPattern) {
  function extractTerms (line 13355) | function extractTerms(dictionary) {
  function matchAnyPattern (line 13369) | function matchAnyPattern(dictionary) {
  function M (line 13380) | function M(t){this.$L=S(t.locale,null,!0),this.parse(t);}
  function findMostLikelyADYear (line 13390) | function findMostLikelyADYear(yearNumber) {
  function findYearClosestToRef (line 13402) | function findYearClosestToRef(refDate, day, month) {
  function parseNumberPattern (line 13550) | function parseNumberPattern(match) {
  function parseOrdinalNumberPattern (line 13574) | function parseOrdinalNumberPattern(match) {
  function parseYear (line 13584) | function parseYear(match) {
  function parseTimeUnits (line 13604) | function parseTimeUnits(timeunitText) {
  function collectDateTimeFragment (line 13616) | function collectDateTimeFragment(fragments, match) {
  function assignTheNextDay (line 13630) | function assignTheNextDay(component, targetDayJs) {
  function assignSimilarDate (line 13636) | function assignSimilarDate(component, targetDayJs) {
  function assignSimilarTime (line 13642) | function assignSimilarTime(component, targetDayJs) {
  function implySimilarTime (line 13650) | function implySimilarTime(component, targetDayJs) {
  class ParsingComponents (line 13670) | class ParsingComponents {
    method constructor (line 13671) | constructor(refDate, knownComponents) {
    method get (line 13688) | get(component) {
    method isCertain (line 13697) | isCertain(component) {
    method getCertainComponents (line 13700) | getCertainComponents() {
    method imply (line 13703) | imply(component, value) {
    method assign (line 13710) | assign(component, value) {
    method delete (line 13715) | delete(component) {
    method clone (line 13719) | clone() {
    method isOnlyDate (line 13731) | isOnlyDate() {
    method isOnlyTime (line 13734) | isOnlyTime() {
    method isOnlyWeekdayComponent (line 13737) | isOnlyWeekdayComponent() {
    method isOnlyDayMonthComponent (line 13740) | isOnlyDayMonthComponent() {
    method isValidDate (line 13743) | isValidDate() {
    method toString (line 13757) | toString() {
    method dayjs (line 13760) | dayjs() {
    method date (line 13763) | date() {
    method dateWithoutTimezoneAdjustment (line 13767) | dateWithoutTimezoneAdjustment() {
    method getTimezoneAdjustmentMinute (line 13772) | getTimezoneAdjustmentMinute(date) {
    method createRelativeFromRefDate (line 13779) | static createRelativeFromRefDate(refDate, fragments) {
  class ParsingResult (line 13820) | class ParsingResult {
    method constructor (line 13821) | constructor(refDate, index, text, start, end) {
    method clone (line 13828) | clone() {
    method date (line 13834) | date() {
    method toString (line 13837) | toString() {
  class AbstractParserWithWordBoundaryChecking (line 13847) | class AbstractParserWithWordBoundaryChecking {
    method constructor (line 13848) | constructor() {
    method pattern (line 13852) | pattern(context) {
    method extract (line 13861) | extract(context, match) {
  class ENTimeUnitWithinFormatParser (line 13882) | class ENTimeUnitWithinFormatParser extends AbstractParserWithWordBoundar...
    method innerPattern (line 13883) | innerPattern(context) {
    method innerExtract (line 13886) | innerExtract(context, match) {
  class ENMonthNameLittleEndianParser (line 13921) | class ENMonthNameLittleEndianParser extends AbstractParserWithWordBounda...
    method innerPattern (line 13922) | innerPattern() {
    method innerExtract (line 13925) | innerExtract(context, match) {
  class ENMonthNameMiddleEndianParser (line 13978) | class ENMonthNameMiddleEndianParser extends AbstractParserWithWordBounda...
    method innerPattern (line 13979) | innerPattern() {
    method innerExtract (line 13982) | innerExtract(context, match) {
  class ENMonthNameParser (line 14031) | class ENMonthNameParser extends AbstractParserWithWordBoundary.AbstractP...
    method innerPattern (line 14032) | innerPattern() {
    method innerExtract (line 14035) | innerExtract(context, match) {
  class ENCasualYearMonthDayParser (line 14071) | class ENCasualYearMonthDayParser extends AbstractParserWithWordBoundary....
    method innerPattern (line 14072) | innerPattern() {
    method innerExtract (line 14075) | innerExtract(context, match) {
  class ENSlashMonthFormatParser (line 14100) | class ENSlashMonthFormatParser extends AbstractParserWithWordBoundary.Ab...
    method innerPattern (line 14101) | innerPattern() {
    method innerExtract (line 14104) | innerExtract(context, match) {
  function primaryTimePattern (line 14117) | function primaryTimePattern(primaryPrefix, primarySuffix) {
  function followingTimePatten (line 14133) | function followingTimePatten(followingPhase, followingSuffix) {
  class AbstractTimeExpressionParser (line 14152) | class AbstractTimeExpressionParser {
    method constructor (line 14153) | constructor(strictMode = false) {
    method primarySuffix (line 14162) | primarySuffix() {
    method followingSuffix (line 14165) | followingSuffix() {
    method pattern (line 14168) | pattern(context) {
    method extract (line 14171) | extract(context, match) {
    method extractPrimaryTimeComponents (line 14194) | extractPrimaryTimeComponents(context, match, strict = false) {
    method extractFollowingTimeComponents (line 14265) | extractFollowingTimeComponents(context, match, result) {
    method checkAndReturnWithoutFollowingPattern (line 14357) | checkAndReturnWithoutFollowingPattern(result) {
    method checkAndReturnWithFollowingPattern (line 14377) | checkAndReturnWithFollowingPattern(result) {
    method getPrimaryTimePatternThroughCache (line 14399) | getPrimaryTimePatternThroughCache() {
    method getFollowingTimePatternThroughCache (line 14410) | getFollowingTimePatternThroughCache() {
  class ENTimeExpressionParser (line 14429) | class ENTimeExpressionParser extends AbstractTimeExpressionParser_1.Abst...
    method constructor (line 14430) | constructor(strictMode) {
    method followingPhase (line 14433) | followingPhase() {
    method primaryPrefix (line 14436) | primaryPrefix() {
    method primarySuffix (line 14439) | primarySuffix() {
    method extractPrimaryTimeComponents (line 14442) | extractPrimaryTimeComponents(context, match) {
  function reverseTimeUnits (line 14479) | function reverseTimeUnits(timeUnits) {
  function addImpliedTimeUnits (line 14487) | function addImpliedTimeUnits(components, timeUnits) {
  class ENTimeUnitAgoFormatParser (line 14516) | class ENTimeUnitAgoFormatParser extends AbstractParserWithWordBoundary.A...
    method constructor (line 14517) | constructor(strictMode) {
    method innerPattern (line 14521) | innerPattern() {
    method innerExtract (line 14524) | innerExtract(context, match) {
  class ENTimeUnitLaterFormatParser (line 14541) | class ENTimeUnitLaterFormatParser extends AbstractParserWithWordBoundary...
    method constructor (line 14542) | constructor(strictMode) {
    method innerPattern (line 14546) | innerPattern() {
    method innerExtract (line 14549) | innerExtract(context, match) {
  class Filter (line 14560) | class Filter {
    method refine (line 14561) | refine(context, results) {
  class MergingRefiner (line 14566) | class MergingRefiner {
    method refine (line 14567) | refine(context, results) {
  class AbstractMergeDateRangeRefiner (line 14603) | class AbstractMergeDateRangeRefiner extends abstractRefiners.MergingRefi...
    method shouldMergeResults (line 14604) | shouldMergeResults(textBetween, currentResult, nextResult) {
    method mergeResults (line 14607) | mergeResults(textBetween, fromResult, toResult) {
  class ENMergeDateRangeRefiner (line 14661) | class ENMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1$1....
    method patternBetween (line 14662) | patternBetween() {
  function mergeDateTimeResult (line 14673) | function mergeDateTimeResult(dateResult, timeResult) {
  function mergeDateTimeComponent (line 14695) | function mergeDateTimeComponent(dateComponent, timeComponent) {
  class ENMergeDateTimeRefiner (line 14746) | class ENMergeDateTimeRefiner extends abstractRefiners.MergingRefiner {
    method shouldMergeResults (line 14747) | shouldMergeResults(textBetween, currentResult, nextResult) {
    method mergeResults (line 14752) | mergeResults(textBetween, currentResult, nextResult) {
    method patternBetween (line 14771) | patternBetween() {
  class ENMergeDateTimeRefiner (line 14770) | class ENMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.defa...
    method shouldMergeResults (line 14747) | shouldMergeResults(textBetween, currentResult, nextResult) {
    method mergeResults (line 14752) | mergeResults(textBetween, currentResult, nextResult) {
    method patternBetween (line 14771) | patternBetween() {
  class ExtractTimezoneAbbrRefiner (line 14974) | class ExtractTimezoneAbbrRefiner {
    method constructor (line 14975) | constructor(timezoneOverrides) {
    method refine (line 14978) | refine(context, results) {
  class ExtractTimezoneOffsetRefiner (line 15020) | class ExtractTimezoneOffsetRefiner {
    method refine (line 15021) | refine(context, results) {
  class OverlapRemovalRefiner (line 15054) | class OverlapRemovalRefiner {
    method refine (line 15055) | refine(context, results) {
  class ForwardDateRefiner (line 15088) | class ForwardDateRefiner {
    method refine (line 15089) | refine(context, results) {
  class UnlikelyFormatFilter (line 15147) | class UnlikelyFormatFilter extends abstractRefiners.Filter {
    method constructor (line 15148) | constructor(strictMode) {
    method isValid (line 15152) | isValid(context, result) {
    method isStrictModeValid (line 15176) | isStrictModeValid(context, result) {
  class ISOFormatParser (line 15218) | class ISOFormatParser extends AbstractParserWithWordBoundary.AbstractPar...
    method innerPattern (line 15219) | innerPattern() {
    method innerExtract (line 15222) | innerExtract(context, match) {
  class MergeWeekdayComponentRefiner (line 15264) | class MergeWeekdayComponentRefiner extends abstractRefiners.MergingRefin...
    method mergeResults (line 15265) | mergeResults(textBetween, currentResult, nextResult) {
    method shouldMergeResults (line 15275) | shouldMergeResults(textBetween, currentResult, nextResult) {
  function includeCommonConfiguration (line 15298) | function includeCommonConfiguration(configuration, strictMode = false) {
  function now (line 15322) | function now(refDate) {
  function today (line 15330) | function today(refDate) {
  function yesterday (line 15338) | function yesterday(refDate) {
  function tomorrow (line 15347) | function tomorrow(refDate) {
  function tonight (line 15354) | function tonight(refDate, implyHour = 22) {
  class ENCasualDateParser (line 15394) | class ENCasualDateParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 15395) | innerPattern(context) {
    method innerExtract (line 15398) | innerExtract(context, match) {
  class ENCasualTimeParser (line 15440) | class ENCasualTimeParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 15441) | innerPattern() {
    method innerExtract (line 15444) | innerExtract(context, match) {
  function toDayJSWeekday (line 15485) | function toDayJSWeekday(refDate, offset, modifier) {
  function toDayJSClosestWeekday (line 15504) | function toDayJSClosestWeekday(refDate, offset) {
  class ENWeekdayParser (line 15537) | class ENWeekdayParser extends AbstractParserWithWordBoundary.AbstractPar...
    method innerPattern (line 15538) | innerPattern() {
    method innerExtract (line 15541) | innerExtract(context, match) {
  class ENRelativeDateFormatParser (line 15584) | class ENRelativeDateFormatParser extends AbstractParserWithWordBoundary....
    method innerPattern (line 15585) | innerPattern() {
    method innerExtract (line 15588) | innerExtract(context, match) {
  class Chrono (line 15634) | class Chrono {
    method constructor (line 15635) | constructor(configuration) {
    method clone (line 15640) | clone() {
    method parseDate (line 15646) | parseDate(text, referenceDate, option) {
    method parse (line 15650) | parse(text, referenceDate, option) {
    method executeParser (line 15665) | static executeParser(context, parser) {
  class ParsingContext (line 15700) | class ParsingContext {
    method constructor (line 15701) | constructor(text, refDate, option) {
    method createParsingComponents (line 15706) | createParsingComponents(components) {
    method createParsingResult (line 15712) | createParsingResult(index, textOrEndIndex, startComponents, endCompone...
    method debug (line 15718) | debug(block) {
  class SlashDateFormatParser (line 15745) | class SlashDateFormatParser {
    method constructor (line 15746) | constructor(littleEndian) {
    method pattern (line 15750) | pattern() {
    method extract (line 15753) | extract(context, match) {
  class ENTimeUnitCasualRelativeFormatParser (line 15806) | class ENTimeUnitCasualRelativeFormatParser extends AbstractParserWithWor...
    method innerPattern (line 15807) | innerPattern() {
    method innerExtract (line 15810) | innerExtract(context, match) {
  function parse (line 15854) | function parse(text, ref, option) {
  function parseDate (line 15858) | function parseDate(text, ref, option) {
  function createCasualConfiguration (line 15862) | function createCasualConfiguration(littleEndian = false) {
  function createConfiguration (line 15872) | function createConfiguration(strictMode = true, littleEndian = false) {
  class DETimeExpressionParser (line 15896) | class DETimeExpressionParser extends AbstractTimeExpressionParser_1.Abst...
    method primaryPrefix (line 15897) | primaryPrefix() {
    method followingPhase (line 15900) | followingPhase() {
    method primarySuffix (line 15903) | primarySuffix() {
    method extractPrimaryTimeComponents (line 15906) | extractPrimaryTimeComponents(context, match) {
  function parseNumberPattern (line 16033) | function parseNumberPattern(match) {
  function parseYear (line 16057) | function parseYear(match) {
  function parseTimeUnits (line 16071) | function parseTimeUnits(timeunitText) {
  function collectDateTimeFragment (line 16083) | function collectDateTimeFragment(fragments, match) {
  class DEWeekdayParser (line 16106) | class DEWeekdayParser extends AbstractParserWithWordBoundary.AbstractPar...
    method innerPattern (line 16107) | innerPattern() {
    method innerExtract (line 16110) | innerExtract(context, match) {
  class DEMergeDateRangeRefiner (line 16146) | class DEMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1$1....
    method patternBetween (line 16147) | patternBetween() {
  class DEMergeDateTimeRefiner (line 16160) | class DEMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.defa...
    method patternBetween (line 16161) | patternBetween() {
  class DECasualTimeParser (line 16178) | class DECasualTimeParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 16179) | innerPattern(context) {
    method innerExtract (line 16182) | innerExtract(context, match) {
    method extractTimeComponents (line 16189) | static extractTimeComponents(component, timeKeywordPattern) {
  class DECasualDateParser (line 16278) | class DECasualDateParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 16279) | innerPattern(context) {
    method innerExtract (line 16282) | innerExtract(context, match) {
  class DEMonthNameLittleEndianParser (line 16349) | class DEMonthNameLittleEndianParser extends AbstractParserWithWordBounda...
    method innerPattern (line 16350) | innerPattern() {
    method innerExtract (line 16353) | innerExtract(context, match) {
  function parse (line 16401) | function parse(text, ref, option) {
  function parseDate (line 16405) | function parseDate(text, ref, option) {
  function createCasualConfiguration (line 16409) | function createCasualConfiguration(littleEndian = true) {
  function createConfiguration (line 16416) | function createConfiguration(strictMode = true, littleEndian = true) {
  class FRCasualDateParser (line 16460) | class FRCasualDateParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 16461) | innerPattern(context) {
    method innerExtract (line 16464) | innerExtract(context, match) {
  class FRCasualTimeParser (line 16499) | class FRCasualTimeParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 16500) | innerPattern(context) {
    method innerExtract (line 16503) | innerExtract(context, match) {
  class FRTimeExpressionParser (line 16542) | class FRTimeExpressionParser extends AbstractTimeExpressionParser_1.Abst...
    method primaryPrefix (line 16543) | primaryPrefix() {
    method followingPhase (line 16546) | followingPhase() {
    method extractPrimaryTimeComponents (line 16549) | extractPrimaryTimeComponents(context, match) {
  class FRMergeDateTimeRefiner (line 16565) | class FRMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.defa...
    method patternBetween (line 16566) | patternBetween() {
  class FRMergeDateRangeRefiner (line 16579) | class FRMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1$1....
    method patternBetween (line 16580) | patternBetween() {
  function parseNumberPattern (line 16688) | function parseNumberPattern(match) {
  function parseOrdinalNumberPattern (line 16706) | function parseOrdinalNumberPattern(match) {
  function parseYear (line 16713) | function parseYear(match) {
  function parseTimeUnits (line 16737) | function parseTimeUnits(timeunitText) {
  function collectDateTimeFragment (line 16749) | function collectDateTimeFragment(fragments, match) {
  class FRWeekdayParser (line 16770) | class FRWeekdayParser extends AbstractParserWithWordBoundary.AbstractPar...
    method innerPattern (line 16771) | innerPattern() {
    method innerExtract (line 16774) | innerExtract(context, match) {
  class FRSpecificTimeExpressionParser (line 16822) | class FRSpecificTimeExpressionParser {
    method pattern (line 16823) | pattern(context) {
    method extract (line 16826) | extract(context, match) {
    method extractTimeComponent (line 16847) | static extractTimeComponent(extractingComponents, match) {
  class FRMonthNameLittleEndianParser (line 16922) | class FRMonthNameLittleEndianParser extends AbstractParserWithWordBounda...
    method innerPattern (line 16923) | innerPattern() {
    method innerExtract (line 16926) | innerExtract(context, match) {
  class FRTimeUnitAgoFormatParser (line 16961) | class FRTimeUnitAgoFormatParser extends AbstractParserWithWordBoundary.A...
    method constructor (line 16962) | constructor() {
    method innerPattern (line 16965) | innerPattern() {
    method innerExtract (line 16968) | innerExtract(context, match) {
    method constructor (line 17002) | constructor() {
    method innerPattern (line 17005) | innerPattern() {
    method innerExtract (line 17012) | innerExtract(context, match) {
  class FRTimeUnitWithinFormatParser (line 16982) | class FRTimeUnitWithinFormatParser extends AbstractParserWithWordBoundar...
    method innerPattern (line 16983) | innerPattern() {
    method innerExtract (line 16986) | innerExtract(context, match) {
  class FRTimeUnitAgoFormatParser (line 17001) | class FRTimeUnitAgoFormatParser extends AbstractParserWithWordBoundary.A...
    method constructor (line 16962) | constructor() {
    method innerPattern (line 16965) | innerPattern() {
    method innerExtract (line 16968) | innerExtract(context, match) {
    method constructor (line 17002) | constructor() {
    method innerPattern (line 17005) | innerPattern() {
    method innerExtract (line 17012) | innerExtract(context, match) {
  function parse (line 17053) | function parse(text, ref, option) {
  function parseDate (line 17057) | function parseDate(text, ref, option) {
  function createCasualConfiguration (line 17061) | function createCasualConfiguration(littleEndian = true) {
  function createConfiguration (line 17069) | function createConfiguration(strictMode = true, littleEndian = true) {
  function toHankaku (line 17089) | function toHankaku(text) {
  function alphaNum (line 17098) | function alphaNum(token) {
  class JPStandardParser (line 17118) | class JPStandardParser {
    method pattern (line 17119) | pattern() {
    method extract (line 17122) | extract(context, match) {
  class JPMergeDateRangeRefiner (line 17163) | class JPMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1$1....
    method patternBetween (line 17164) | patternBetween() {
  class JPCasualDateParser (line 17199) | class JPCasualDateParser {
    method pattern (line 17200) | pattern() {
    method extract (line 17203) | extract(context, match) {
  function parse (line 17245) | function parse(text, ref, option) {
  function parseDate (line 17249) | function parseDate(text, ref, option) {
  function createCasualConfiguration (line 17253) | function createCasualConfiguration() {
  function createConfiguration (line 17259) | function createConfiguration() {
  function parseYear (line 17332) | function parseYear(match) {
  class PTWeekdayParser (line 17369) | class PTWeekdayParser extends AbstractParserWithWordBoundary.AbstractPar...
    method innerPattern (line 17370) | innerPattern() {
    method innerExtract (line 17373) | innerExtract(context, match) {
  class PTTimeExpressionParser (line 17408) | class PTTimeExpressionParser extends AbstractTimeExpressionParser_1.Abst...
    method primaryPrefix (line 17409) | primaryPrefix() {
    method followingPhase (line 17412) | followingPhase() {
  class PTMergeDateTimeRefiner (line 17425) | class PTMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.defa...
    method patternBetween (line 17426) | patternBetween() {
  class PTMergeDateRangeRefiner (line 17439) | class PTMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1$1....
    method patternBetween (line 17440) | patternBetween() {
  class PTMonthNameLittleEndianParser (line 17464) | class PTMonthNameLittleEndianParser extends AbstractParserWithWordBounda...
    method innerPattern (line 17465) | innerPattern() {
    method innerExtract (line 17468) | innerExtract(context, match) {
  class PTCasualDateParser (line 17520) | class PTCasualDateParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 17521) | innerPattern(context) {
    method innerExtract (line 17524) | innerExtract(context, match) {
  class PTCasualTimeParser (line 17553) | class PTCasualTimeParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 17554) | innerPattern() {
    method innerExtract (line 17557) | innerExtract(context, match) {
  function parse (line 17609) | function parse(text, ref, option) {
  function parseDate (line 17613) | function parseDate(text, ref, option) {
  function createCasualConfiguration (line 17617) | function createCasualConfiguration(littleEndian = true) {
  function createConfiguration (line 17624) | function createConfiguration(strictMode = true, littleEndian = true) {
  class NLMergeDateRangeRefiner (line 17644) | class NLMergeDateRangeRefiner extends AbstractMergeDateRangeRefiner_1$1....
    method patternBetween (line 17645) | patternBetween() {
  class NLMergeDateTimeRefiner (line 17658) | class NLMergeDateTimeRefiner extends AbstractMergeDateTimeRefiner_1.defa...
    method patternBetween (line 17659) | patternBetween() {
  class NLCasualDateParser (line 17689) | class NLCasualDateParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 17690) | innerPattern(context) {
    method innerExtract (line 17693) | innerExtract(context, match) {
  class NLCasualTimeParser (line 17724) | class NLCasualTimeParser extends AbstractParserWithWordBoundary.Abstract...
    method innerPattern (line 17725) | innerPattern() {
    method innerExtract (line 17728) | innerExtract(context, match) {
  function parseNumberPattern (line 17919) | function parseNumberPattern(match) {
  function parseOrdinalNumberPattern (line 17934) | function parseOrdinalNumberPattern(match) {
  function parseYear (line 17944) | function parseYear(match) {
  function parseTimeUnits (line 17960) | function parseTimeUnits(timeunitText) {
  function collectDateTimeFragment (line 17972) | function collectDateTimeFragment(fragments, match) {
  class NLTimeUnitWithinFormatParser (line 17984) | class NLTimeUnitWithinFormatParser extends AbstractParserWithWordBoundar...
    method innerPattern (line 17985) | innerPattern() {
    method innerExtract (line 17988) | innerExtract(context, match) {
  class NLWeekdayParser (line 18010) | class NLWeekdayParser extends AbstractParserWithWordBoundary.AbstractPar...
    method innerPattern (line 18011) | innerPattern() {
    method innerExtract (line 18014) | innerExtract(context, match) {
  class NLMonthNameMiddleEndianParser (line 18071) | class NLMonthNameMiddleEndianParser extends AbstractParserWithWordBounda...
    method innerPattern (line 18072) | innerPattern() {
    method innerExtract (line 18075) | innerExtract(context, match) {
  class NLMonthNameParser (line 18123) | class NLMonthNameParser extends AbstractParserWithWordBoundary.AbstractP...
    method innerPattern (line 18124) | innerPattern() {
    method innerExtract (line 18127) | innerExtract(context, match) {
  class NLSlashMonthFormatParser (line 18153) | class NLSlashMonthFormatParser extends AbstractParserWithWordBoundary.Ab...
    method innerPattern (line 18154) | innerPattern() {
    method innerExtract (line 18157) | innerExtract(context, match) {
  class NLTimeExpressionParser (line 18169) | class NLTimeExpressionParser extends AbstractTimeExpressionParser_1.Abst...
    method primaryPrefix (line 18170) | primaryPrefix() {
    method followingPhase (line 18173) | followingPhase() {
    method extractPrimaryTimeComponents (line 18176) | extractPrimaryTimeComponents(context, match) {
  class NLCasualYearMonthDayParser (line 18199) | class NLCasualYearMonthDayParser extends AbstractParserWithWordBoundary....
    method innerPattern (line 18200) | innerPattern() {
    method innerExtract (line 18203) | innerExtract(context, match) {
  class NLCasualDateTimeParser (line 18233) | class NLCasualDateTimeParser extends AbstractParserWithWordBoundary.Abst...
    method innerPattern (line 18234) | innerPattern(context) {
    method innerExtract (line 18237) | innerExtract(context, match) {
  function parse (line 18300) | function parse(text, ref, option) {
  function parseDate (line 18304) | function parseDate(text, ref, option) {
  function createCasualConfiguration (line 18308) | function createCasualConfiguration(littleEndian = true) {
  function createConfiguration (line 18316) | function createConfiguration(strictMode = true, littleEndian = true) {
  function parse (line 18376) | function parse(text, ref, option) {
  function parseDate (line 18380) | function parseDate(text, ref, option) {
  function create_fragment (line 18390) | function create_fragment(ctx) {
  function instance (line 18770) | function instance($$self, $$props, $$invalidate) {
  class EditTask (line 19052) | class EditTask extends SvelteComponent {
    method constructor (line 19053) | constructor(options) {
  class TaskModal (line 19059) | class TaskModal extends obsidian.Modal {
    method constructor (line 19060) | constructor({ app, task, onSubmit, }) {
    method onOpen (line 19068) | onOpen() {
    method onClose (line 19076) | onClose() {
  class Commands (line 19274) | class Commands {
    method constructor (line 19275) | constructor({ plugin }) {
    method app (line 19292) | get app() {
  class Events (line 19302) | class Events {
    method constructor (line 19303) | constructor({ obsidianEents }) {
    method onCacheUpdate (line 19306) | onCacheUpdate(handler) {
    method triggerCacheUpdate (line 19309) | triggerCacheUpdate(cacheData) {
    method onRequestCacheUpdate (line 19312) | onRequestCacheUpdate(handler) {
    method triggerRequestCacheUpdate (line 19315) | triggerRequestCacheUpdate(fn) {
    method off (line 19318) | off(eventRef) {
  class InlineRenderer (line 19323) | class InlineRenderer {
    method constructor (line 19324) | constructor({ plugin }) {
    method _markdownPostProcessor (line 19328) | _markdownPostProcessor(element, context) {
  class Query (line 19434) | class Query {
    method constructor (line 19435) | constructor({ source }) {
    method limit (line 19533) | get limit() {
    method layoutOptions (line 19536) | get layoutOptions() {
    method filters (line 19539) | get filters() {
    method sorting (line 19542) | get sorting() {
    method error (line 19545) | get error() {
    method parseHideOptions (line 19548) | parseHideOptions({ line }) {
    method parsePriorityFilter (line 19585) | parsePriorityFilter({ line }) {
    method parseStartFilter (line 19628) | parseStartFilter({ line }) {
    method parseScheduledFilter (line 19652) | parseScheduledFilter({ line }) {
    method parseDueFilter (line 19681) | parseDueFilter({ line }) {
    method parseDoneFilter (line 19705) | parseDoneFilter({ line }) {
    method parsePathFilter (line 19726) | parsePathFilter({ line }) {
    method parseDescriptionFilter (line 19744) | parseDescriptionFilter({ line }) {
    method parseHeadingFilter (line 19771) | parseHeadingFilter({ line }) {
    method parseLimit (line 19791) | parseLimit({ line }) {
    method parseSortBy (line 19802) | parseSortBy({ line }) {
    method parseDate (line 19814) | parseDate(input) {
    method stringIncludesCaseInsensitive (line 19818) | stringIncludesCaseInsensitive(haystack, needle) {
  class Sort (line 19825) | class Sort {
    method by (line 19826) | static by(query, tasks) {
    method makeReversedComparator (line 19844) | static makeReversedComparator(comparator) {
    method makeCompositeComparator (line 19847) | static makeCompositeComparator(comparators) {
    method compareByUrgency (line 19858) | static compareByUrgency(a, b) {
    method compareByStatus (line 19862) | static compareByStatus(a, b) {
    method compareByPriority (line 19873) | static compareByPriority(a, b) {
    method compareByStartDate (line 19876) | static compareByStartDate(a, b) {
    method compareByScheduledDate (line 19879) | static compareByScheduledDate(a, b) {
    method compareByDueDate (line 19882) | static compareByDueDate(a, b) {
    method compareByDoneDate (line 19885) | static compareByDoneDate(a, b) {
    method compareByDate (line 19888) | static compareByDate(a, b) {
    method compareByPath (line 19910) | static compareByPath(a, b) {
    method compareByDescription (line 19927) | static compareByDescription(a, b) {
    method cleanDescription (line 19936) | static cleanDescription(description) {
  class QueryRenderer (line 19980) | class QueryRenderer {
    method constructor (line 19981) | constructor({ plugin, events }) {
    method _addQueryRenderChild (line 19987) | _addQueryRenderChild(source, element, context) {
  class QueryRenderChild (line 19998) | class QueryRenderChild extends obsidian.MarkdownRenderChild {
    method constructor (line 19999) | constructor({ app, events, container, source, }) {
    method onload (line 20006) | onload() {
    method onunload (line 20013) | onunload() {
    method reloadQueryAtMidnight (line 20029) | reloadQueryAtMidnight() {
    method render (line 20041) | render({ tasks, state }) {
    method createTasksList (line 20067) | createTasksList({ tasks, content, }) {
    method addEditButton (line 20107) | addEditButton(postInfo, task) {
    method addBacklinks (line 20128) | addBacklinks(postInfo, fileName, task) {
  class SettingsTab (line 20151) | class SettingsTab extends obsidian.PluginSettingTab {
    method constructor (line 20152) | constructor({ plugin }) {
    method display (line 20156) | display() {
  class TasksPlugin (line 20199) | class TasksPlugin extends obsidian.Plugin {
    method onload (line 20200) | onload() {
    method onunload (line 20220) | onunload() {
    method loadSettings (line 20225) | loadSettings() {
    method saveSettings (line 20231) | saveSettings() {

FILE: .obsidian/plugins/periodic-notes/main.js
  function _interopDefaultLegacy (line 5) | function _interopDefaultLegacy (e) { return e && typeof e === 'object' &...
  constant DEFAULT_DAILY_NOTE_FORMAT (line 9) | const DEFAULT_DAILY_NOTE_FORMAT = "YYYY-MM-DD";
  constant DEFAULT_WEEKLY_NOTE_FORMAT (line 10) | const DEFAULT_WEEKLY_NOTE_FORMAT = "gggg-[W]ww";
  constant DEFAULT_MONTHLY_NOTE_FORMAT (line 11) | const DEFAULT_MONTHLY_NOTE_FORMAT = "YYYY-MM";
  constant DEFAULT_QUARTERLY_NOTE_FORMAT (line 12) | const DEFAULT_QUARTERLY_NOTE_FORMAT = "YYYY-[Q]Q";
  constant DEFAULT_YEARLY_NOTE_FORMAT (line 13) | const DEFAULT_YEARLY_NOTE_FORMAT = "YYYY";
  function shouldUsePeriodicNotesSettings (line 15) | function shouldUsePeriodicNotesSettings(periodicity) {
  function getDailyNoteSettings (line 24) | function getDailyNoteSettings() {
  function getWeeklyNoteSettings (line 51) | function getWeeklyNoteSettings() {
  function getMonthlyNoteSettings (line 79) | function getMonthlyNoteSettings() {
  function getQuarterlyNoteSettings (line 100) | function getQuarterlyNoteSettings() {
  function getYearlyNoteSettings (line 121) | function getYearlyNoteSettings() {
  function join (line 140) | function join(...partSegments) {
  function ensureFolderExists (line 164) | async function ensureFolderExists(path) {
  function getNotePath (line 174) | async function getNotePath(directory, filename) {
  function getTemplateInfo (line 182) | async function getTemplateInfo(template) {
  function getDateUID (line 206) | function getDateUID(date, granularity = "day") {
  function removeEscapedCharacters (line 210) | function removeEscapedCharacters(format) {
  function isFormatAmbiguous (line 218) | function isFormatAmbiguous(format, granularity) {
  function getDateFromFile (line 226) | function getDateFromFile(file, granularity) {
  function getDateFromFilename (line 229) | function getDateFromFilename(filename, granularity) {
  class DailyNotesFolderMissingError (line 255) | class DailyNotesFolderMissingError extends Error {
  function createDailyNote (line 264) | async function createDailyNote(date) {
  function getDailyNote (line 303) | function getDailyNote(date, dailyNotes) {
  function getAllDailyNotes (line 306) | function getAllDailyNotes() {
  class WeeklyNotesFolderMissingError (line 329) | class WeeklyNotesFolderMissingError extends Error {
  function getDaysOfWeek (line 331) | function getDaysOfWeek() {
  function getDayOfWeekNumericalValue (line 350) | function getDayOfWeekNumericalValue(dayOfWeekName) {
  function createWeeklyNote (line 353) | async function createWeeklyNote(date) {
  function getWeeklyNote (line 391) | function getWeeklyNote(date, weeklyNotes) {
  function getAllWeeklyNotes (line 394) | function getAllWeeklyNotes() {
  class MonthlyNotesFolderMissingError (line 417) | class MonthlyNotesFolderMissingError extends Error {
  function createMonthlyNote (line 426) | async function createMonthlyNote(date) {
  function getMonthlyNote (line 461) | function getMonthlyNote(date, monthlyNotes) {
  function getAllMonthlyNotes (line 464) | function getAllMonthlyNotes() {
  class QuarterlyNotesFolderMissingError (line 487) | class QuarterlyNotesFolderMissingError extends Error {
  function createQuarterlyNote (line 496) | async function createQuarterlyNote(date) {
  function getQuarterlyNote (line 531) | function getQuarterlyNote(date, quarterly) {
  function getAllQuarterlyNotes (line 534) | function getAllQuarterlyNotes() {
  class YearlyNotesFolderMissingError (line 557) | class YearlyNotesFolderMissingError extends Error {
  function createYearlyNote (line 566) | async function createYearlyNote(date) {
  function getYearlyNote (line 601) | function getYearlyNote(date, yearlyNotes) {
  function getAllYearlyNotes (line 604) | function getAllYearlyNotes() {
  function appHasDailyNotesPluginLoaded (line 627) | function appHasDailyNotesPluginLoaded() {
  function appHasWeeklyNotesPluginLoaded (line 642) | function appHasWeeklyNotesPluginLoaded() {
  function appHasMonthlyNotesPluginLoaded (line 652) | function appHasMonthlyNotesPluginLoaded() {
  function appHasQuarterlyNotesPluginLoaded (line 658) | function appHasQuarterlyNotesPluginLoaded() {
  function appHasYearlyNotesPluginLoaded (line 664) | function appHasYearlyNotesPluginLoaded() {
  function orderedValues (line 697) | function orderedValues(unordered) {
  function getCalendarPlugin (line 705) | function getCalendarPlugin() {
  function getDailyNotesPlugin (line 709) | function getDailyNotesPlugin() {
  function capitalize (line 715) | function capitalize(text) {
  function hasLegacyDailyNoteSettings (line 718) | function hasLegacyDailyNoteSettings() {
  function getLegacyDailyNoteSettings (line 726) | function getLegacyDailyNoteSettings() {
  function hasLegacyWeeklyNoteSettings (line 735) | function hasLegacyWeeklyNoteSettings() {
  function getLegacyWeeklyNoteSettings (line 745) | function getLegacyWeeklyNoteSettings() {
  function isMacOS (line 754) | function isMacOS() {
  function isMetaPressed (line 757) | function isMetaPressed(e) {
  function openPeriodicNote (line 798) | async function openPeriodicNote(periodicity, date, inNewSplit) {
  function getActiveFile (line 816) | function getActiveFile() {
  function openFile (line 821) | async function openFile(file, inNewSplit) {
  function openNextNote (line 828) | async function openNextNote(periodicity) {
  function openPrevNote (line 844) | async function openPrevNote(periodicity) {
  function getCommands (line 860) | function getCommands(periodicity) {
  constant SETTINGS_UPDATED (line 893) | const SETTINGS_UPDATED = "periodic-notes:settings-updated";
  function showFileMenu (line 927) | function showFileMenu(app, settings, position) {
  function noop (line 943) | function noop() { }
  function run (line 945) | function run(fn) {
  function blank_object (line 948) | function blank_object() {
  function run_all (line 951) | function run_all(fns) {
  function is_function (line 954) | function is_function(thing) {
  function safe_not_equal (line 957) | function safe_not_equal(a, b) {
  function is_empty (line 960) | function is_empty(obj) {
  function subscribe (line 963) | function subscribe(store, ...callbacks) {
  function component_subscribe (line 970) | function component_subscribe(component, store, callback) {
  function set_store_value (line 973) | function set_store_value(store, ret, value = ret) {
  function run_tasks (line 985) | function run_tasks(now) {
  function loop (line 999) | function loop(callback) {
  function append (line 1013) | function append(target, node) {
  function insert (line 1016) | function insert(target, node, anchor) {
  function detach (line 1019) | function detach(node) {
  function destroy_each (line 1022) | function destroy_each(iterations, detaching) {
  function element (line 1028) | function element(name) {
  function svg_element (line 1031) | function svg_element(name) {
  function text (line 1034) | function text(data) {
  function space (line 1037) | function space() {
  function empty (line 1040) | function empty() {
  function listen (line 1043) | function listen(node, event, handler, options) {
  function attr (line 1047) | function attr(node, attribute, value) {
  function children (line 1053) | function children(element) {
  function set_data (line 1056) | function set_data(text, data) {
  function set_input_value (line 1061) | function set_input_value(input, value) {
  function toggle_class (line 1064) | function toggle_class(element, name, toggle) {
  function custom_event (line 1067) | function custom_event(type, detail) {
  function hash$2 (line 1076) | function hash$2(str) {
  function create_rule (line 1083) | function create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {
  function delete_rule (line 1105) | function delete_rule(node, name) {
  function clear_rules (line 1119) | function clear_rules() {
  function set_current_component (line 1135) | function set_current_component(component) {
  function get_current_component (line 1138) | function get_current_component() {
  function onMount (line 1143) | function onMount(fn) {
  function onDestroy (line 1146) | function onDestroy(fn) {
  function schedule_update (line 1156) | function schedule_update() {
  function add_render_callback (line 1162) | function add_render_callback(fn) {
  function flush (line 1167) | function flush() {
  function update (line 1203) | function update($$) {
  function wait (line 1215) | function wait() {
  function dispatch (line 1224) | function dispatch(node, direction, kind) {
  function group_outros (line 1229) | function group_outros() {
  function check_outros (line 1236) | function check_outros() {
  function transition_in (line 1242) | function transition_in(block, local) {
  function transition_out (line 1248) | function transition_out(block, local, detach, callback) {
  function create_in_transition (line 1265) | function create_in_transition(node, fn, params) {
  function create_out_transition (line 1327) | function create_out_transition(node, fn, params) {
  function create_component (line 1383) | function create_component(block) {
  function mount_component (line 1386) | function mount_component(component, target, anchor, customElement) {
  function destroy_component (line 1406) | function destroy_component(component, detaching) {
  function make_dirty (line 1417) | function make_dirty(component, i) {
  function init (line 1425) | function init(component, options, instance, create_fragment, not_equal, ...
  class SvelteComponent (line 1487) | class SvelteComponent {
    method $destroy (line 1488) | $destroy() {
    method $on (line 1492) | $on(type, callback) {
    method $set (line 1501) | $set($$props) {
  function writable (line 1516) | function writable(value, start = noop) {
  function cubicOut (line 1562) | function cubicOut(t) {
  function slide (line 1567) | function slide(node, { delay = 0, duration = 400, easing = cubicOut } = ...
  function add_css$1 (line 1595) | function add_css$1() {
  function create_fragment$5 (line 1602) | function create_fragment$5(ctx) {
  class Checkmark (line 1633) | class Checkmark extends SvelteComponent {
    method constructor (line 1634) | constructor(options) {
  function add_css (line 1643) | function add_css() {
  function create_if_block_3 (line 1651) | function create_if_block_3(ctx) {
  function create_else_block_2 (line 1761) | function create_else_block_2(ctx) {
  function create_if_block_5 (line 1780) | function create_if_block_5(ctx) {
  function create_else_block_1 (line 1803) | function create_else_block_1(ctx) {
  function create_if_block_4 (line 1839) | function create_if_block_4(ctx) {
  function create_if_block_1$2 (line 1878) | function create_if_block_1$2(ctx) {
  function create_else_block (line 1962) | function create_else_block(ctx) {
  function create_if_block_2 (line 1983) | function create_if_block_2(ctx) {
  function create_if_block$4 (line 2021) | function create_if_block$4(ctx) {
  function create_fragment$4 (line 2038) | function create_fragment$4(ctx) {
  function instance$4 (line 2177) | function instance$4($$self, $$props, $$invalidate) {
  class GettingStartedBanner (line 2213) | class GettingStartedBanner extends SvelteComponent {
    method constructor (line 2214) | constructor(options) {
  function getBasename (line 2226) | function getBasename(format) {
  function isValidFilename (line 2230) | function isValidFilename(filename) {
  function validateFormat (line 2240) | function validateFormat(format, periodicity) {
  function validateTemplate (line 2255) | function validateTemplate(template) {
  function validateFolder (line 2266) | function validateFolder(folder) {
  function create_if_block_1$1 (line 2279) | function create_if_block_1$1(ctx) {
  function create_if_block$3 (line 2321) | function create_if_block$3(ctx) {
  function create_fragment$3 (line 2344) | function create_fragment$3(ctx) {
  function instance$3 (line 2483) | function instance$3($$self, $$props, $$invalidate) {
  class NoteFormatSetting (line 2567) | class NoteFormatSetting extends SvelteComponent {
    method constructor (line 2568) | constructor(options) {
  function getNodeName (line 2606) | function getNodeName(element) {
  function getWindow (line 2610) | function getWindow(node) {
  function isElement (line 2623) | function isElement(node) {
  function isHTMLElement (line 2628) | function isHTMLElement(node) {
  function isShadowRoot (line 2633) | function isShadowRoot(node) {
  function applyStyles (line 2645) | function applyStyles(_ref) {
  function effect$2 (line 2672) | function effect$2(_ref2) {
  function getBasePlacement (line 2726) | function getBasePlacement(placement) {
  function getBoundingClientRect (line 2730) | function getBoundingClientRect(element) {
  function getLayoutRect (line 2746) | function getLayoutRect(element) {
  function contains (line 2769) | function contains(parent, child) {
  function getComputedStyle$1 (line 2792) | function getComputedStyle$1(element) {
  function isTableElement (line 2796) | function isTableElement(element) {
  function getDocumentElement (line 2800) | function getDocumentElement(element) {
  function getParentNode (line 2806) | function getParentNode(element) {
  function getTrueOffsetParent (line 2823) | function getTrueOffsetParent(element) {
  function getContainingBlock (line 2834) | function getContainingBlock(element) {
  function getOffsetParent (line 2855) | function getOffsetParent(element) {
  function getMainAxisFromPlacement (line 2870) | function getMainAxisFromPlacement(placement) {
  function within (line 2878) | function within(min$1, value, max$1) {
  function getFreshSideObject (line 2882) | function getFreshSideObject() {
  function mergePaddingObject (line 2891) | function mergePaddingObject(paddingObject) {
  function expandToHashMap (line 2895) | function expandToHashMap(value, keys) {
  function arrow (line 2909) | function arrow(_ref) {
  function effect$1 (line 2946) | function effect$1(_ref2) {
  function roundOffsetsByDPR (line 3002) | function roundOffsetsByDPR(_ref) {
  function mapToStyles (line 3013) | function mapToStyles(_ref2) {
  function computeStyles (line 3082) | function computeStyles(_ref4) {
  function effect (line 3145) | function effect(_ref) {
  function getOppositePlacement (line 3195) | function getOppositePlacement(placement) {
  function getOppositeVariationPlacement (line 3205) | function getOppositeVariationPlacement(placement) {
  function getWindowScroll (line 3211) | function getWindowScroll(node) {
  function getWindowScrollBarX (line 3221) | function getWindowScrollBarX(element) {
  function getViewportRect (line 3232) | function getViewportRect(element) {
  function getDocumentRect (line 3272) | function getDocumentRect(element) {
  function isScrollParent (line 3295) | function isScrollParent(element) {
  function getScrollParent (line 3305) | function getScrollParent(node) {
  function listScrollParents (line 3325) | function listScrollParents(element, list) {
  function rectToClientRect (line 3341) | function rectToClientRect(rect) {
  function getInnerBoundingClientRect (line 3350) | function getInnerBoundingClientRect(element) {
  function getClientRectFromMixedType (line 3363) | function getClientRectFromMixedType(element, clippingParent) {
  function getClippingParents (line 3370) | function getClippingParents(element) {
  function getClippingRect (line 3387) | function getClippingRect(element, boundary, rootBoundary) {
  function getVariation (line 3406) | function getVariation(placement) {
  function computeOffsets (line 3410) | function computeOffsets(_ref) {
  function detectOverflow (line 3475) | function detectOverflow(state, options) {
  function computeAutoPlacement (line 3530) | function computeAutoPlacement(state, options) {
  function getExpandedFallbackPlacements (line 3574) | function getExpandedFallbackPlacements(placement) {
  function flip (line 3583) | function flip(_ref) {
  function getSideOffsets (line 3714) | function getSideOffsets(overflow, rect, preventedOffsets) {
  function isAnySideFullyClipped (line 3730) | function isAnySideFullyClipped(overflow) {
  function hide (line 3736) | function hide(_ref) {
  function distanceAndSkiddingToXY (line 3773) | function distanceAndSkiddingToXY(placement, rects, offset) {
  function offset (line 3794) | function offset(_ref2) {
  function popperOffsets (line 3825) | function popperOffsets(_ref) {
  function getAltAxis (line 3849) | function getAltAxis(axis) {
  function preventOverflow (line 3853) | function preventOverflow(_ref) {
  function getHTMLElementScroll (line 3965) | function getHTMLElementScroll(element) {
  function getNodeScroll (line 3972) | function getNodeScroll(node) {
  function getCompositeRect (line 3982) | function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
  function order (line 4022) | function order(modifiers) {
  function orderModifiers (line 4054) | function orderModifiers(modifiers) {
  function debounce (line 4065) | function debounce(fn) {
  function format (line 4081) | function format(str) {
  function validateModifiers (line 4094) | function validateModifiers(modifiers) {
  function uniqueBy (line 4166) | function uniqueBy(arr, fn) {
  function mergeByName (line 4178) | function mergeByName(modifiers) {
  function areValidElements (line 4201) | function areValidElements() {
  function popperGenerator (line 4211) | function popperGenerator(generatorOptions) {
  class Suggest (line 4440) | class Suggest {
    method constructor (line 4441) | constructor(owner, containerEl, scope) {
    method onSuggestionClick (line 4465) | onSuggestionClick(event, el) {
    method onSuggestionMouseover (line 4471) | onSuggestionMouseover(_event, el) {
    method setSuggestions (line 4475) | setSuggestions(values) {
    method useSelectedItem (line 4487) | useSelectedItem(event) {
    method setSelectedItem (line 4493) | setSelectedItem(selectedIndex, scrollIntoView) {
  class TextInputSuggest (line 4505) | class TextInputSuggest {
    method constructor (line 4506) | constructor(app, inputEl) {
    method onInputChanged (line 4521) | onInputChanged() {
    method open (line 4530) | open(container, inputEl) {
    method close (line 4558) | close() {
  class FileSuggest (line 4567) | class FileSuggest extends TextInputSuggest {
    method getSuggestions (line 4568) | getSuggestions(inputStr) {
    method renderSuggestion (line 4581) | renderSuggestion(file, el) {
    method selectSuggestion (line 4584) | selectSuggestion(file) {
  class FolderSuggest (line 4590) | class FolderSuggest extends TextInputSuggest {
    method getSuggestions (line 4591) | getSuggestions(inputStr) {
    method renderSuggestion (line 4603) | renderSuggestion(file, el) {
    method selectSuggestion (line 4606) | selectSuggestion(file) {
  function create_if_block$2 (line 4615) | function create_if_block$2(ctx) {
  function create_fragment$2 (line 4638) | function create_fragment$2(ctx) {
  function instance$2 (line 4742) | function instance$2($$self, $$props, $$invalidate) {
  class NoteTemplateSetting (line 4806) | class NoteTemplateSetting extends SvelteComponent {
    method constructor (line 4807) | constructor(options) {
  function create_if_block$1 (line 4815) | function create_if_block$1(ctx) {
  function create_fragment$1 (line 4838) | function create_fragment$1(ctx) {
  function instance$1 (line 4944) | function instance$1($$self, $$props, $$invalidate) {
  class NoteFolderSetting (line 5008) | class NoteFolderSetting extends SvelteComponent {
    method constructor (line 5009) | constructor(options) {
  function get_each_context (line 5017) | function get_each_context(ctx, list, i) {
  function create_if_block_1 (line 5024) | function create_if_block_1(ctx) {
  function create_if_block (line 5065) | function create_if_block(ctx) {
  function create_each_block (line 5152) | function create_each_block(ctx) {
  function create_fragment (line 5266) | function create_fragment(ctx) {
  function instance (line 5384) | function instance($$self, $$props, $$invalidate) {
  class SettingsTab (line 5433) | class SettingsTab extends SvelteComponent {
    method constructor (line 5434) | constructor(options) {
  constant DEFAULT_SETTINGS (line 5440) | const DEFAULT_SETTINGS = Object.freeze({
  class PeriodicNotesSettingsTab (line 5445) | class PeriodicNotesSettingsTab extends obsidian.PluginSettingTab {
    method constructor (line 5446) | constructor(app, plugin) {
    method display (line 5450) | display() {
  class PeriodicNotesPlugin (line 5462) | class PeriodicNotesPlugin extends obsidian.Plugin {
    method onload (line 5463) | async onload() {
    method onLayoutReady (line 5475) | onLayoutReady() {
    method migrateWeeklySettings (line 5485) | migrateWeeklySettings() {
    method configureRibbonIcons (line 5492) | configureRibbonIcons() {
    method configureCommands (line 5514) | configureCommands() {
    method loadSettings (line 5530) | async loadSettings() {
    method onSettingsUpdate (line 5546) | onSettingsUpdate() {
    method updateSettings (line 5552) | async updateSettings(val) {

FILE: .obsidian/plugins/templater-obsidian/main.js
  function _interopNamespace (line 9) | function _interopNamespace(e) {
  function __awaiter (line 47) | function __awaiter(thisArg, _arguments, P, generator) {
  function log_error (line 57) | function log_error(e) {
  class TemplaterError (line 71) | class TemplaterError extends Error {
    method constructor (line 72) | constructor(msg, console_msg) {
  function errorWrapper (line 79) | function errorWrapper(fn, msg) {
  function errorWrapperSync (line 95) | function errorWrapperSync(fn, msg) {
  function getNodeName (line 137) | function getNodeName(element) {
  function getWindow (line 141) | function getWindow(node) {
  function isElement (line 154) | function isElement(node) {
  function isHTMLElement (line 159) | function isHTMLElement(node) {
  function isShadowRoot (line 164) | function isShadowRoot(node) {
  function applyStyles (line 176) | function applyStyles(_ref) {
  function effect$2 (line 203) | function effect$2(_ref2) {
  function getBasePlacement (line 257) | function getBasePlacement(placement) {
  function getBoundingClientRect (line 262) | function getBoundingClientRect(element, // eslint-disable-next-line unus...
  function getLayoutRect (line 299) | function getLayoutRect(element) {
  function contains (line 322) | function contains(parent, child) {
  function getComputedStyle (line 345) | function getComputedStyle(element) {
  function isTableElement (line 349) | function isTableElement(element) {
  function getDocumentElement (line 353) | function getDocumentElement(element) {
  function getParentNode (line 359) | function getParentNode(element) {
  function getTrueOffsetParent (line 376) | function getTrueOffsetParent(element) {
  function getContainingBlock (line 387) | function getContainingBlock(element) {
  function getOffsetParent (line 419) | function getOffsetParent(element) {
  function getMainAxisFromPlacement (line 434) | function getMainAxisFromPlacement(placement) {
  function within (line 442) | function within(min$1, value, max$1) {
  function getFreshSideObject (line 446) | function getFreshSideObject() {
  function mergePaddingObject (line 455) | function mergePaddingObject(paddingObject) {
  function expandToHashMap (line 459) | function expandToHashMap(value, keys) {
  function arrow (line 473) | function arrow(_ref) {
  function effect$1 (line 510) | function effect$1(_ref2) {
  function getVariation (line 557) | function getVariation(placement) {
  function roundOffsetsByDPR (line 570) | function roundOffsetsByDPR(_ref) {
  function mapToStyles (line 581) | function mapToStyles(_ref2) {
  function computeStyles (line 651) | function computeStyles(_ref4) {
  function effect (line 715) | function effect(_ref) {
  function getOppositePlacement (line 765) | function getOppositePlacement(placement) {
  function getOppositeVariationPlacement (line 775) | function getOppositeVariationPlacement(placement) {
  function getWindowScroll (line 781) | function getWindowScroll(node) {
  function getWindowScrollBarX (line 791) | function getWindowScrollBarX(element) {
  function getViewportRect (line 802) | function getViewportRect(element) {
  function getDocumentRect (line 842) | function getDocumentRect(element) {
  function isScrollParent (line 865) | function isScrollParent(element) {
  function getScrollParent (line 875) | function getScrollParent(node) {
  function listScrollParents (line 895) | function listScrollParents(element, list) {
  function rectToClientRect (line 911) | function rectToClientRect(rect) {
  function getInnerBoundingClientRect (line 920) | function getInnerBoundingClientRect(element) {
  function getClientRectFromMixedType (line 933) | function getClientRectFromMixedType(element, clippingParent) {
  function getClippingParents (line 940) | function getClippingParents(element) {
  function getClippingRect (line 957) | function getClippingRect(element, boundary, rootBoundary) {
  function computeOffsets (line 976) | function computeOffsets(_ref) {
  function detectOverflow (line 1041) | function detectOverflow(state, options) {
  function computeAutoPlacement (line 1095) | function computeAutoPlacement(state, options) {
  function getExpandedFallbackPlacements (line 1139) | function getExpandedFallbackPlacements(placement) {
  function flip (line 1148) | function flip(_ref) {
  function getSideOffsets (line 1279) | function getSideOffsets(overflow, rect, preventedOffsets) {
  function isAnySideFullyClipped (line 1295) | function isAnySideFullyClipped(overflow) {
  function hide (line 1301) | function hide(_ref) {
  function distanceAndSkiddingToXY (line 1338) | function distanceAndSkiddingToXY(placement, rects, offset) {
  function offset (line 1359) | function offset(_ref2) {
  function popperOffsets (line 1390) | function popperOffsets(_ref) {
  function getAltAxis (line 1414) | function getAltAxis(axis) {
  function preventOverflow (line 1418) | function preventOverflow(_ref) {
  function getHTMLElementScroll (line 1530) | function getHTMLElementScroll(element) {
  function getNodeScroll (line 1537) | function getNodeScroll(node) {
  function isElementScaled (line 1545) | function isElementScaled(element) {
  function getCompositeRect (line 1554) | function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
  function order (line 1595) | function order(modifiers) {
  function orderModifiers (line 1627) | function orderModifiers(modifiers) {
  function debounce (line 1638) | function debounce(fn) {
  function format (line 1654) | function format(str) {
  function validateModifiers (line 1667) | function validateModifiers(modifiers) {
  function uniqueBy (line 1744) | function uniqueBy(arr, fn) {
  function mergeByName (line 1756) | function mergeByName(modifiers) {
  function areValidElements (line 1779) | function areValidElements() {
  function popperGenerator (line 1789) | function popperGenerator(generatorOptions) {
  class Suggest (line 2023) | class Suggest {
    method constructor (line 2024) | constructor(owner, containerEl, scope) {
    method onSuggestionClick (line 2048) | onSuggestionClick(event, el) {
    method onSuggestionMouseover (line 2054) | onSuggestionMouseover(_event, el) {
    method setSuggestions (line 2058) | setSuggestions(values) {
    method useSelectedItem (line 2070) | useSelectedItem(event) {
    method setSelectedItem (line 2076) | setSelectedItem(selectedIndex, scrollIntoView) {
  class TextInputSuggest (line 2088) | class TextInputSuggest {
    method constructor (line 2089) | constructor(app, inputEl) {
    method onInputChanged (line 2104) | onInputChanged() {
    method open (line 2120) | open(container, inputEl) {
    method close (line 2148) | close() {
  class FolderSuggest (line 2159) | class FolderSuggest extends TextInputSuggest {
    method getSuggestions (line 2160) | getSuggestions(inputStr) {
    method renderSuggestion (line 2172) | renderSuggestion(file, el) {
    method selectSuggestion (line 2175) | selectSuggestion(file) {
  function delay (line 2182) | function delay(ms) {
  function escape_RegExp (line 2185) | function escape_RegExp(str) {
  function resolve_tfolder (line 2188) | function resolve_tfolder(app, folder_str) {
  function resolve_tfile (line 2199) | function resolve_tfile(app, file_str) {
  function get_tfiles_from_folder (line 2210) | function get_tfiles_from_folder(app, folder_str) {
  function arraymove (line 2223) | function arraymove(arr, fromIndex, toIndex) {
  class FileSuggest (line 2238) | class FileSuggest extends TextInputSuggest {
    method constructor (line 2239) | constructor(app, inputEl, plugin, mode) {
    method get_folder (line 2246) | get_folder(mode) {
    method get_error_msg (line 2254) | get_error_msg(mode) {
    method getSuggestions (line 2262) | getSuggestions(input_str) {
    method renderSuggestion (line 2278) | renderSuggestion(file, el) {
    method selectSuggestion (line 2281) | selectSuggestion(file) {
  constant DEFAULT_SETTINGS (line 2288) | const DEFAULT_SETTINGS = {
  class TemplaterSettingTab (line 2303) | class TemplaterSettingTab extends obsidian_module.PluginSettingTab {
    method constructor (line 2304) | constructor(app, plugin) {
    method display (line 2309) | display() {
    method add_general_s
Condensed preview — 110 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,691K chars).
[
  {
    "path": ".obsidian/app.json",
    "chars": 343,
    "preview": "{\n  \"foldHeading\": true,\n  \"foldIndent\": true,\n  \"newFileLocation\": \"current\",\n  \"attachmentFolderPath\": \"./\",\n  \"always"
  },
  {
    "path": ".obsidian/appearance.json",
    "chars": 24,
    "preview": "{\n  \"baseFontSize\": 15\n}"
  },
  {
    "path": ".obsidian/community-plugins.json",
    "chars": 212,
    "preview": "[\n  \"calendar\",\n  \"dataview\",\n  \"nldates-obsidian\",\n  \"periodic-notes\",\n  \"obsidian-tasks-plugin\",\n  \"templater-obsidian"
  },
  {
    "path": ".obsidian/core-plugins.json",
    "chars": 262,
    "preview": "[\n  \"file-explorer\",\n  \"global-search\",\n  \"switcher\",\n  \"graph\",\n  \"backlink\",\n  \"tag-pane\",\n  \"page-preview\",\n  \"note-c"
  },
  {
    "path": ".obsidian/graph.json",
    "chars": 620,
    "preview": "{\n  \"collapse-filter\": false,\n  \"search\": \"-path:000\",\n  \"showTags\": false,\n  \"showAttachments\": false,\n  \"hideUnresolve"
  },
  {
    "path": ".obsidian/hotkeys.json",
    "chars": 3448,
    "preview": "{\n  \"obsidian-shortcuts-for-starred-files:open-file-in-new-pane-1\": [\n    {\n      \"modifiers\": [\n        \"Alt\",\n        "
  },
  {
    "path": ".obsidian/plugins/calendar/data.json",
    "chars": 230,
    "preview": "{\n  \"shouldConfirmBeforeCreate\": true,\n  \"weekStart\": \"locale\",\n  \"wordsPerDot\": 250,\n  \"showWeeklyNote\": true,\n  \"weekl"
  },
  {
    "path": ".obsidian/plugins/calendar/main.js",
    "chars": 141494,
    "preview": "'use strict';\n\nvar obsidian = require('obsidian');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'objec"
  },
  {
    "path": ".obsidian/plugins/calendar/manifest.json",
    "chars": 249,
    "preview": "{\n  \"id\": \"calendar\",\n  \"name\": \"Calendar\",\n  \"description\": \"Calendar view of your daily notes\",\n  \"version\": \"1.5.10\","
  },
  {
    "path": ".obsidian/plugins/dataview/main.js",
    "chars": 1671256,
    "preview": "'use strict';\n\nvar obsidian = require('obsidian');\n\n/*! ****************************************************************"
  },
  {
    "path": ".obsidian/plugins/dataview/manifest.json",
    "chars": 290,
    "preview": "{\n  \"id\": \"dataview\",\n  \"name\": \"Dataview\",\n  \"version\": \"0.4.20\",\n  \"minAppVersion\": \"0.12.0\",\n  \"description\": \"Comple"
  },
  {
    "path": ".obsidian/plugins/dataview/styles.css",
    "chars": 1643,
    "preview": "/* List View Default Styling; rendered internally as a table. */\n.table-view-table {\n    width: 100%;\n}\n\n.table-view-tab"
  },
  {
    "path": ".obsidian/plugins/hotkeysplus-obsidian/main.js",
    "chars": 45345,
    "preview": "'use strict';\n\nvar obsidian = require('obsidian');\n\n/*! ****************************************************************"
  },
  {
    "path": ".obsidian/plugins/hotkeysplus-obsidian/manifest.json",
    "chars": 233,
    "preview": "{\n  \"id\": \"hotkeysplus-obsidian\",\n  \"name\": \"Hotkeys++\",\n  \"description\": \"Additional hotkeys to do common things in Obs"
  },
  {
    "path": ".obsidian/plugins/maximise-active-pane-obsidian/main.js",
    "chars": 36929,
    "preview": "'use strict';\n\nvar obsidian = require('obsidian');\n\n/*! ****************************************************************"
  },
  {
    "path": ".obsidian/plugins/maximise-active-pane-obsidian/manifest.json",
    "chars": 217,
    "preview": "{\n  \"id\": \"maximise-active-pane-obsidian\",\n  \"name\": \"Maximise Active Pane\",\n  \"author\": \"death_au\",\n  \"description\": \"S"
  },
  {
    "path": ".obsidian/plugins/maximise-active-pane-obsidian/styles.css",
    "chars": 331,
    "preview": ".plugin-maximise-active-pane .workspace-split.maximised .workspace-leaf:not(.mod-active),\n.plugin-maximise-active-pane ."
  },
  {
    "path": ".obsidian/plugins/nldates-obsidian/data.json",
    "chars": 299,
    "preview": "{\n  \"autosuggestToggleLink\": false,\n  \"autocompleteTriggerPhrase\": \"@\",\n  \"isAutosuggestEnabled\": true,\n  \"format\": \"YYY"
  },
  {
    "path": ".obsidian/plugins/nldates-obsidian/main.js",
    "chars": 968006,
    "preview": "'use strict';\n\nvar obsidian = require('obsidian');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'objec"
  },
  {
    "path": ".obsidian/plugins/nldates-obsidian/manifest.json",
    "chars": 265,
    "preview": "{\n  \"id\": \"nldates-obsidian\",\n  \"name\": \"Natural Language Dates\",\n  \"description\": \"Create date-links based on natural l"
  },
  {
    "path": ".obsidian/plugins/note-refactor-obsidian/data.json",
    "chars": 263,
    "preview": "{\n  \"includeFirstLineAsNoteHeading\": false,\n  \"excludeFirstLineInNote\": false,\n  \"headingFormat\": \"#\",\n  \"newFileLocatio"
  },
  {
    "path": ".obsidian/plugins/note-refactor-obsidian/main.js",
    "chars": 819180,
    "preview": "'use strict';\n\nvar obsidian = require('obsidian');\n\n/*! ****************************************************************"
  },
  {
    "path": ".obsidian/plugins/note-refactor-obsidian/manifest.json",
    "chars": 224,
    "preview": "{\n  \"id\": \"note-refactor-obsidian\",\n  \"name\": \"Note Refactor\",\n  \"version\": \"1.7.1\",\n  \"description\": \"Extract note cont"
  },
  {
    "path": ".obsidian/plugins/note-refactor-obsidian/styles.css",
    "chars": 138,
    "preview": ".note-refactor-filename .setting-item-info {\n    margin-right: 0;\n}\n\n.note-refactor-filename .setting-item-name {\n    pa"
  },
  {
    "path": ".obsidian/plugins/obsidian-tasks-plugin/data.json",
    "chars": 60,
    "preview": "{\n  \"globalFilter\": \"#task\",\n  \"removeGlobalFilter\": false\n}"
  },
  {
    "path": ".obsidian/plugins/obsidian-tasks-plugin/main.js",
    "chars": 2611017,
    "preview": "/*\nTHIS IS A GENERATED/BUNDLED FILE BY ROLLUP\nif you want to view the source visit the plugins github repository\n*/\n\n/*\n"
  },
  {
    "path": ".obsidian/plugins/obsidian-tasks-plugin/manifest.json",
    "chars": 257,
    "preview": "{\n  \"id\": \"obsidian-tasks-plugin\",\n  \"name\": \"Tasks\",\n  \"version\": \"1.4.1\",\n  \"minAppVersion\": \"0.12.17\",\n  \"description"
  },
  {
    "path": ".obsidian/plugins/obsidian-tasks-plugin/styles.css",
    "chars": 2414,
    "preview": ".tasks-count {\n    color: var(--text-faint);\n    padding-left: 20px;\n}\n\n/* Pencil icon. */\n.tasks-edit {\n    background-"
  },
  {
    "path": ".obsidian/plugins/periodic-notes/data.json",
    "chars": 723,
    "preview": "{\n  \"showGettingStartedBanner\": false,\n  \"hasMigratedDailyNoteSettings\": false,\n  \"hasMigratedWeeklyNoteSettings\": false"
  },
  {
    "path": ".obsidian/plugins/periodic-notes/main.js",
    "chars": 180561,
    "preview": "'use strict';\n\nvar obsidian = require('obsidian');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'objec"
  },
  {
    "path": ".obsidian/plugins/periodic-notes/manifest.json",
    "chars": 280,
    "preview": "{\n  \"id\": \"periodic-notes\",\n  \"name\": \"Periodic Notes\",\n  \"description\": \"Create/manage your daily, weekly, and monthly "
  },
  {
    "path": ".obsidian/plugins/periodic-notes/styles.css",
    "chars": 488,
    "preview": ".periodic-modal {\n  min-width: 40vw;\n}\n\n.settings-banner {\n  background-color: var(--background-primary-alt);\n  border-r"
  },
  {
    "path": ".obsidian/plugins/templater-obsidian/data.json",
    "chars": 506,
    "preview": "{\n  \"command_timeout\": 5,\n  \"templates_folder\": \"800 Templates\",\n  \"templates_pairs\": [\n    [\n      \"\",\n      \"\"\n    ]\n "
  },
  {
    "path": ".obsidian/plugins/templater-obsidian/main.js",
    "chars": 982311,
    "preview": "'use strict';\n\nvar obsidian_module = require('obsidian');\nvar child_process = require('child_process');\nvar util = requi"
  },
  {
    "path": ".obsidian/plugins/templater-obsidian/manifest.json",
    "chars": 271,
    "preview": "{\n    \"id\": \"templater-obsidian\",\n    \"name\": \"Templater\",\n    \"version\": \"1.9.9\",\n    \"description\": \"Create and use te"
  },
  {
    "path": ".obsidian/plugins/templater-obsidian/styles.css",
    "chars": 5366,
    "preview": ".templater_search {\n    width: calc(100% - 20px);\n}\n\n.templater_div {\n    border-top: 1px solid var(--background-modifie"
  },
  {
    "path": ".obsidian/starred.json",
    "chars": 1384,
    "preview": "{\n  \"items\": [\n    {\n      \"type\": \"file\",\n      \"title\": \"00 ❗ Readme\",\n      \"path\": \"000 Inbox/00 ❗ Readme.md\"\n    },"
  },
  {
    "path": ".obsidian/workspace",
    "chars": 6277,
    "preview": "{\n  \"main\": {\n    \"id\": \"c419ae07d5d81988\",\n    \"type\": \"split\",\n    \"children\": [\n      {\n        \"id\": \"9f985d914e2477"
  },
  {
    "path": "00 🏠 Main Dashboard.md",
    "chars": 656,
    "preview": "---\naliases: 🏠 Main Dashboard\ntags: [ dashboard ]\n---\n[[99 🗃️ Master Backlog|🗃️ Master Backlog]]\n# 🏠 Main Dashboard\n## O"
  },
  {
    "path": "000 Inbox/00 ❗ Readme.md",
    "chars": 2782,
    "preview": "---\naliases: [❗ Readme, LDP]\ntags: [ info ]\nversion: 0.3\n---\n# Hello!\nWelcome to Life-Disciplines-Projects (LDP), a life"
  },
  {
    "path": "100 Projects/Setup/00 🧰 Setup.md",
    "chars": 2538,
    "preview": "---\naliases: 🧰 Setup\ntags: [dashboard, project]\nstatus: Planned\n---\n[[210 🎀 Well-being (EXAMPLE)]]\n# 🧰 Setup\n## Abstract"
  },
  {
    "path": "100 Projects/Setup/10 💗 Defining Life.md",
    "chars": 3400,
    "preview": "---\naliases: 💗 Defining Life\ntags: [ data ]\n---\n# 💗 Defining Life\n## Preface\nThese series of notes are a guided setup on"
  },
  {
    "path": "100 Projects/Setup/11 🔀 Divergence to Disciplines.md",
    "chars": 4978,
    "preview": "---\naliases: 🔀 Divergence to Disciplines\ntags: [ data ]\n---\n# 🔀 Divergence to Disciplines\nThis document serves to explor"
  },
  {
    "path": "100 Projects/Setup/12 🔂 Convergence to Ikigai.md",
    "chars": 7693,
    "preview": "---\naliases: [▶ Convergence to Ikigai,98 ▶ Convergence to Ikigai,Convergence to Ikigai]\ntags: [ data ]\n---\n# 🔂 Convergen"
  },
  {
    "path": "100 Projects/Setup/13 🎎 Ikigai Expansion.md",
    "chars": 3721,
    "preview": "---\naliases: 🎎 Ikigai Expansion\ntags: [ data ]\n---\n# 🎎 Ikigai Expansion\nBased on your process from on [[12 🔂 Convergence"
  },
  {
    "path": "200 Disciplines/210 🎀 Well-being (EXAMPLE)/210 🎀 Well-being (EXAMPLE).md",
    "chars": 1486,
    "preview": "---\naliases: 🎀 Example Discipline\ntags: [dashboard, discipline, example_discipline]\nikigai:\n  - love\n  - world\n  - skill"
  },
  {
    "path": "200 Disciplines/210 🎀 Well-being (EXAMPLE)/211 🎨 Alternative Dashboard (EXAMPLE).md",
    "chars": 457,
    "preview": "---\naliases: \ntags: [dashboard]\n---\n[[210 🎀 Well-being (EXAMPLE)]]\n# 🎨 Alternative Dashboard (EXAMPLE)\nFiddle-dee-doo, h"
  },
  {
    "path": "200 Disciplines/210 🎀 Well-being (EXAMPLE)/Random Note of Abundant Information (EXAMPLE).md",
    "chars": 319,
    "preview": "---\naliases: \ntags: [info]\n---\n# Random Note of Abundant Information (EXAMPLE)\nYar har de doo. Here lies a note that is "
  },
  {
    "path": "300 Habits/Flossing (Habit).md",
    "chars": 305,
    "preview": "---\naliases: \ntags: [data, habit]\n---\n# Flossing (Habit)\nFloss your teeth in the morning.\n\n- [ ] #task #hb [Morning] Flo"
  },
  {
    "path": "400 Life/400 💗 Life.md",
    "chars": 232,
    "preview": "---\naliases: [ 💗 Life ]\ntags: [ data ]\n---\n# 💗 Life\n## Life Pillars\n**What are your Life Pillars? How and why are they r"
  },
  {
    "path": "500 Alignment/510 Daily/.gitignore",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "500 Alignment/520 Weekly/.gitignore",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "500 Alignment/530 Monthly/.gitignore",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "500 Alignment/540 Quarterly/.gitignore",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "500 Alignment/550 Yearly/.gitignore",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "600 Resources/Agile Project Management.md",
    "chars": 2134,
    "preview": "---\naliases: Agile\ntags: [ info, 'productivity', 'agile', ]\n---\n# Agile Project Management\n**Agile** is a set of project"
  },
  {
    "path": "600 Resources/Artifacts (Scrum).md",
    "chars": 754,
    "preview": "---\naliases: Artifacts\ntags: [ info, 'agile', 'productivity' ]\n---\n# Artifacts (Scrum)\n**Artifacts** are key sources of "
  },
  {
    "path": "600 Resources/Ceremonies (Scrum).md",
    "chars": 3040,
    "preview": "---\naliases: Ceremony (Scrum)\ntags: [ info, 'agile', 'productivity' ]\n---\n# Ceremonies (Scrum)\n**Ceremonies** in [[Scrum"
  },
  {
    "path": "600 Resources/Dashboards.md",
    "chars": 772,
    "preview": "---\naliases: Dashboard\ntags: [info, productivity]\n---\n### Dashboards\nDashboards are the master note for whatever it serv"
  },
  {
    "path": "600 Resources/Decision Paralysis.md",
    "chars": 327,
    "preview": "---\naliases: \ntags: [info]\n---\n# Decision Paralysis\n**Decision Paralysis** is the inability to act given a large amount "
  },
  {
    "path": "600 Resources/Disciplines.md",
    "chars": 1742,
    "preview": "---\naliases: Discipline\ntags: [ info, productivity ]\n---\n# Disciplines\nA **Discipline** is a pathway of [[Life (LDP)|Lif"
  },
  {
    "path": "600 Resources/Dynamics.md",
    "chars": 555,
    "preview": "---\naliases: [ Emergence, Dynamic ]\ntags: [ info ]\n---\n# Dynamics\n**Dynamics** is the multiplicative experience that com"
  },
  {
    "path": "600 Resources/Friction.md",
    "chars": 558,
    "preview": "---\naliases: null\ntags: [ info, productivity, well-being ]\n---\n# Friction\n**Friction** in Workflow refers to the relucta"
  },
  {
    "path": "600 Resources/Fundamentals of LDP.md",
    "chars": 4666,
    "preview": "---\naliases: \ntags: [ info, alignment ]\n---\n[[00 ❗ Readme|❗ Readme]]\n## Fundamentals of LDP\n### Organization and Overvie"
  },
  {
    "path": "600 Resources/Getting Things Done.md",
    "chars": 3680,
    "preview": "---\naliases: GTD\ntags: [ info, productivity ]\n---\n# Getting Things Done\n**Getting Things Done** is a framework designed "
  },
  {
    "path": "600 Resources/Habits.md",
    "chars": 542,
    "preview": "---\naliases: \ntags: [info]\n---\n# Habits\n**Habits** are regular practices or routines that are small and easy, and are pa"
  },
  {
    "path": "600 Resources/Ikigai.md",
    "chars": 2404,
    "preview": "---\naliases: Life Meaning\ntags: [info, well-being]\n---\n# Ikigai\n**Ikigai** is a Japanese concept of a motivating force t"
  },
  {
    "path": "600 Resources/Inbox.md",
    "chars": 248,
    "preview": "---\naliases: \ntags: [info, productivity]\n---\n# Inbox\nYour inbox is where temporary work goes into. It may not fit into a"
  },
  {
    "path": "600 Resources/Kanban (Agile).md",
    "chars": 1184,
    "preview": "---\naliases: Kanban\ntags: [ info, 'agile' ]\n---\n# Kanban (Agile)\n**Kanban** is an adaptation of [[Agile Project Manageme"
  },
  {
    "path": "600 Resources/Kanban vs Scrum.md",
    "chars": 432,
    "preview": "---\ntags: [ info, 'agile', 'productivity' ]\n---\n# Kanban vs Scrum\n[[Kanban (Agile)|Kanban]] and [[Scrum (Agile)|Scrum]] "
  },
  {
    "path": "600 Resources/Life (LDP).md",
    "chars": 968,
    "preview": "---\naliases: Life\ntags: [ info, well-being ]\n---\n# Life (LDP)\n**Life** is ideals and values, which can be simplified int"
  },
  {
    "path": "600 Resources/Minimalism.md",
    "chars": 1541,
    "preview": "---\ntags: [info, well-being]\n---\n# Minimalism\n**Minimalism** is the pursuit of value and freedom, and general well-being"
  },
  {
    "path": "600 Resources/Note Tags.md",
    "chars": 753,
    "preview": "---\naliases: [Tagging, Tags, Tag]\ntags: [note/info, productivity, original]\n---\n# Note Tags\nTagging a notes can serve va"
  },
  {
    "path": "600 Resources/Ongoing Tasks.md",
    "chars": 487,
    "preview": "---\naliases: \ntags: [ info, 'productivity' ]\n---\n# Ongoing Tasks\n**Ongoing Tasks** are any task you are currently workin"
  },
  {
    "path": "600 Resources/Philosophy - How to Approach LDP.md",
    "chars": 3527,
    "preview": "---\naliases: \ntags: [ info ]\n---\n[[00 ❗ Readme|❗ Readme]]\n# Philosophy - How to Approach LDP\n## Build a System that Work"
  },
  {
    "path": "600 Resources/Pillars, Pipelines, Vaults (PPV).md",
    "chars": 3948,
    "preview": "---\naliases: PPV\ntags: [ info, productivity ]\n---\n# Pillars, Pipelines, Vaults (PPV)\n**Pillars, Pipelines, Vaults (PPV)*"
  },
  {
    "path": "600 Resources/Pillars.md",
    "chars": 1124,
    "preview": "---\naliases: Pillar\ntags: [ info, productivity, alignment ]\n---\n# Pillars\n**Pillars** are Values, Philosophies, Foundati"
  },
  {
    "path": "600 Resources/Planned Tasks.md",
    "chars": 408,
    "preview": "---\naliases: \ntags: [info]\n---\n# Planned Tasks\n**Planned Tasks** are [[Tasks]] that are set to be worked on soon, prefer"
  },
  {
    "path": "600 Resources/Projects.md",
    "chars": 2973,
    "preview": "---\naliases: Project\ntags: [ info, productivity ]\n---\n# Projects\n**Projects** are derived from [[Disciplines]] and have "
  },
  {
    "path": "600 Resources/Resources.md",
    "chars": 296,
    "preview": "---\naliases: [Personal Knowledge Management, PKM]\ntags: [info]\n---\n# Resources\n**Resources** in [[Fundamentals of LDP|LD"
  },
  {
    "path": "600 Resources/Scrum (Agile).md",
    "chars": 813,
    "preview": "---\naliases: Scrum\ntags: [ info, 'productivity', 'agile' ]\n---\n# Scrum (Agile)\n**Scrum** is one of many methodologies bu"
  },
  {
    "path": "600 Resources/Simple Integration Into Obsidian.md",
    "chars": 5208,
    "preview": "---\naliases: LDP within Obsidian\ntags: [info, alignment]\n---\n[[00 ❗ Readme]]\n## Simple Integration Into Obsidian\n### Why"
  },
  {
    "path": "600 Resources/Sprints (Scrum).md",
    "chars": 1776,
    "preview": "---\naliases: [ Sprint, Sprints ]\ntags: [ info, 'productivity' ]\n---\n# Sprints (Scrum)\n**Sprints** are a core concept of "
  },
  {
    "path": "600 Resources/Suggestions After Learning Initial LDP.md",
    "chars": 900,
    "preview": "---\naliases: \ntags: [ info, productivity ]\n---\n[[00 ❗ Readme]]\n## Suggestions After Learning Initial LDP\nRemember the fi"
  },
  {
    "path": "600 Resources/Systems Thinking.md",
    "chars": 646,
    "preview": "---\ntags: [ info, productivity ]\n---\n# Systems Thinking\n**Systems Thinking** is a methodology of thought such that a Sys"
  },
  {
    "path": "600 Resources/Systems.md",
    "chars": 607,
    "preview": "---\naliases: null\ntags: [ info ]\n---\n# Systems\nA **System** is a group of components that share and process a common for"
  },
  {
    "path": "600 Resources/Tags As Categories and Characteristics.md",
    "chars": 313,
    "preview": "---\naliases: \ntags: [ note/info ]\n---\n# Tags As Categories and Characteristics\nOr just use both methods described above."
  },
  {
    "path": "600 Resources/Tags As Categories.md",
    "chars": 821,
    "preview": "---\naliases: \ntags: [ note/info ]\n---\n# Tags As Categories\nTags might be used as a means of grouping notes together on a"
  },
  {
    "path": "600 Resources/Tags As Characteristics.md",
    "chars": 1017,
    "preview": "---\naliases: \ntags: [ note/info ]\n---\n# Tags As Characteristics\nTags might be used to identify traits of something. For "
  },
  {
    "path": "600 Resources/Tasks as Habits in Obsidian.md",
    "chars": 1079,
    "preview": "---\naliases: \ntags: [info]\n---\n# Tasks as Habits in Obsidian\n[[Tasks]] can be automated into [[Habits]] using the [Obsid"
  },
  {
    "path": "600 Resources/Tasks.md",
    "chars": 2635,
    "preview": "---\naliases: [ Task ]\ntags: [ info, productivity ]\n---\n# Tasks\n**Tasks** are Actionable items with a clearly defined com"
  },
  {
    "path": "600 Resources/True Deadlines.md",
    "chars": 839,
    "preview": "---\naliases: True Deadline\ntags: [ info, productivity ]\n---\n# True Deadlines\n**True Deadlines** are deadlines that must "
  },
  {
    "path": "600 Resources/When to Tag.md",
    "chars": 1142,
    "preview": "---\naliases: \ntags: [ note/info ]\n---\n# When to Tag\nThere is an arbitrary threshold on when a note should have a certain"
  },
  {
    "path": "600 Resources/Work Hierarchy (Scrum).md",
    "chars": 1463,
    "preview": "---\naliases: Work Hierarchy\ntags: [ info, productivity, agile ]\n---\n# Work Hierarchy (Scrum)\nWork (tasks) are simplified"
  },
  {
    "path": "600 Resources/Working with LDP.md",
    "chars": 3157,
    "preview": "---\naliases: \ntags: [ info, productivity ]\n---\n[[00 ❗ Readme|❗ Readme]]\n# Working with LDP\n## Setup\nThere's a moderate a"
  },
  {
    "path": "700 Views/Habits (View).md",
    "chars": 160,
    "preview": "**Habits Today**\n```tasks\nnot done\ndescription includes #hb\ndue today\n```\n---\n**Habits Overdue**\n```tasks\nnot done\ndescr"
  },
  {
    "path": "700 Views/Ongoing Tasks (View).md",
    "chars": 106,
    "preview": "**Ongoing Tasks**\n```tasks\nnot done \ndescription includes #ongoing\npath does not include 800 Templates\n```"
  },
  {
    "path": "700 Views/Planned Tasks (View).md",
    "chars": 177,
    "preview": "**Planned Tasks**\n```tasks\nnot done \ndescription includes #planned\ndescription does not include #ongoing\ndescription doe"
  },
  {
    "path": "800 Templates/Due.md",
    "chars": 2,
    "preview": "📅 "
  },
  {
    "path": "800 Templates/Em Dash.md",
    "chars": 1,
    "preview": "—"
  },
  {
    "path": "800 Templates/Note.md",
    "chars": 65,
    "preview": "---\naliases: \ntags: []\n---\n# <% tp.file.title %>\n\n\n## References\n"
  },
  {
    "path": "800 Templates/Repeat.md",
    "chars": 1,
    "preview": "🔁"
  },
  {
    "path": "800 Templates/arrowleft.md",
    "chars": 12,
    "preview": "$\\leftarrow$"
  },
  {
    "path": "800 Templates/arrowright.md",
    "chars": 13,
    "preview": "$\\rightarrow$"
  },
  {
    "path": "800 Templates/cite.md",
    "chars": 35,
    "preview": "<cite><% tp.file.cursor() %></cite>"
  },
  {
    "path": "800 Templates/no.md",
    "chars": 1,
    "preview": "❌"
  },
  {
    "path": "800 Templates/yes.md",
    "chars": 1,
    "preview": "✅"
  },
  {
    "path": "99 🗃️ Master Backlog.md",
    "chars": 205,
    "preview": "---\naliases: 🗃️ Master Backlog\ntags: [dashboard]\n---\n[[00 🏠 Main Dashboard|🏠 Main Dashboard]]\n# 🗃️ Master Backlog\n```tas"
  },
  {
    "path": "README.md",
    "chars": 4496,
    "preview": "# Life Discipline Projects\nWelcome to Life-Disciplines-Projects (LDP), a life-management framework designed by [uwi](htt"
  },
  {
    "path": "Workbench.md",
    "chars": 0,
    "preview": ""
  }
]

About this extraction

This page contains the full source code of the uwidev/life-disciplines-projects GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 110 files (7.2 MB), approximately 1.9M tokens, and a symbol index with 2892 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!